Zork
Tech stack: Originally MDL (“Muddle”), a Lisp dialect; commercial releases compiled to the Z-machine bytecode for a portable runtime License: Original proprietary (Infocom); modern source releases of related Infocom titles via the “InfoTaskForce” / Activision archive — Zork I/II/III playable under modern Z-machine interpreters (Frotz, Lectrote, etc.)
What it does
Section titled “What it does”Zork is the original text adventure — a parser-driven interactive fiction game set in the ruins of a Great Underground Empire. The player types imperative English commands (OPEN MAILBOX, GO NORTH, LIGHT LAMP, KILL TROLL WITH SWORD); the game responds with second-person, present-tense prose that paints the scene, advances the world, and occasionally — memorably — eats the player (“It is pitch black. You are likely to be eaten by a grue.”). The entire UI is text on a terminal. There are no graphics, no menus, no cursor. You read, you type, you read.
The thing that makes Zork worth a folder slot in 2026 isn’t the puzzles. It’s the engineering: Zork was authored in a Lisp dialect, compiled to a custom bytecode VM (the Z-machine) explicitly designed for memory-constrained, portable distribution across heterogeneous hardware. The same instinct KN-86 follows with KEC Lisp (ADR-0001) on the Fe interpreter (ADR-0004), routed through the .kn86 cart container (ADR-0006) — with one deliberate divergence: KN-86 currently tree-walks Lisp source rather than compiling to bytecode. The AOT-bytecode half of the Z-machine parallel is a deferred aspiration (ADR-0004 2026-06-14 amendment), not current behavior; the portability and per-cart memory discipline are achieved by the interpreter + arena today. Zork did its trick 46 years earlier, on hardware with one to two orders of magnitude less RAM, and the resulting executables are still being run on emulators today.
Background — why this is the deepest historical parallel in the set
Section titled “Background — why this is the deepest historical parallel in the set”Three points of resonance:
- Authored in Lisp, distributed as a portable image. MDL (Muddle) was MIT’s Lisp dialect, used to write the original Zork. To get it onto a Commodore 64 / Apple II / TRS-80 / IBM PC / Atari 8-bit, Infocom built the Z-machine — a 16-bit virtual machine targeting whichever host they were shipping to. The author wrote in a high-level Lisp; the host ran the image; portability was free. This is a direct precedent for the KN-86 stack: cart author writes KEC Lisp → ships as source in the
.kn86cart → the nOSh runtime tree-walks it identically on the desktop emulator (SDL3) and the Pi Zero 2 W. KN-86 stops short of Zork’s compile-to-bytecode step — AOT bytecode is a deferred aspiration (ADR-0004 2026-06-14 amendment); portability + author ergonomics + per-cart memory determinism are delivered by the interpreter + arena today, and the same design tradeoff (pay an interpreter cost for portability) holds. - The Z-machine is the working precedent for “tiny VM, decades of usefulness.” Z-machine images from 1980 still execute correctly under modern interpreters. The instruction set was narrow, the memory model was disciplined, the encoding (Z-strings, 5-bit packed text) was ruthless about every byte. Fe VM’s arena discipline and bounded memory model is the same instinct, four decades on.
- “Feelies” — the box as part of the experience. Infocom shipped each Zork-era title in a box with maps, props, swag, manuals, and copy-protection trinkets. The physical object carried tone the executable couldn’t. KN-86’s cartridge-as-artifact decision (ADR-0019: the SD card lives inside a labeled, openable two-piece sled) is the same instinct: the object the user holds is part of the work. The Pelican case + cart sled + label surface is, in spirit, an Infocom-style feelies package.
Aspirational features for KN-86
Section titled “Aspirational features for KN-86”- Imperative text parser as a first-class surface. Verb-noun grammar with prepositions and pronouns. Strong fit for the TERM key + nEmacs REPL context (ADR-0016). KN-86 already has Lisp at the REPL; a Zork-style English imperative dispatch layered on top would give cart authors a second authoring grammar for narrative carts that doesn’t require operators to think in s-expressions.
- Atmospheric second-person, present-tense, dry voice. This is the CIPHER voice tone reference the cipher-voice-style-guide (GWP-321) can cite directly. Zork’s writing is taut, declarative, slightly amused, and refuses to break the fourth wall. The voice is the UI. Add Zork as an explicit tone-reference in
cipher-voice-style-guide.mdalongside the existing references. - The Z-machine as the historical precedent to cite for ADR-0001 / ADR-0004. Worth a sentence in those ADRs’ background sections: “Prior art for the Lisp-authoring + bytecode-VM pattern on memory-constrained portable hardware is the Infocom Z-machine (1979–1989).” Strengthens the architecture’s lineage claim.
- In-game meta-commands (
SAVE,RESTORE,SCORE,INVENTORY,VERBOSE,BRIEF,LOOK,WAIT,AGAIN). Stable, learnable, universal across every Zork-style cart. KN-86 should sanction a comparable firmware-internal verb set that every narrative cart inherits: a player typingSAVEshould save, regardless of whether the cart author thought about it. - Genre + difficulty classification on the cart label. The C64/128 Zork I box carries
INTERACTIVE FICTION / FANTASY / STANDARD LEVELas classification stamps in the lower-right corner. KN-86’s cart sled has a label surface (ADR-0019); a small, fixed taxonomy on every cart label (CART KIND/TONE/STANDARD LEVEL-style difficulty) reads as a callback to Infocom’s design language and gives the operator at-a-glance discrimination across a cart shelf. - “You are likely to be eaten by a grue” as the design north for failure-state writing. Death/failure prose in Zork is the most-quoted writing in the genre because it commits to the bit. KN-86 failure states (mission failure, low battery, cart corruption) deserve the same posture: short, present-tense, second-person, no apology, no retry-prompt-bloat.
- Cartridge-as-artifact confirmation. KN-86 has already committed to this (ADR-0019); Zork is the cleanest historical case study of why it matters even when the executable could ship on a wire. Useful citation in marketing / pitch / FAQ contexts.
UX / interaction patterns
Section titled “UX / interaction patterns”- Verb-noun-preposition-noun imperative grammar.
KILL TROLL WITH SWORD.PUT COIN IN SLOT.GIVE LANTERN TO THIEF. Two-word minimum, longer accepted. Pronouns (IT) resolved from recent context. - Disambiguation prompts when a noun is ambiguous: “Which sword do you mean, the elvish sword or the rusty sword?”
- Persistent world state. Rooms remember what the player dropped, doors remember whether they’re open, NPCs (the thief) wander persistently between visits.
- Universal meta-commands.
SAVE,RESTORE,RESTART,QUIT,SCORE,INVENTORY(I),LOOK(L),WAIT(Z),AGAIN(G),VERBOSE/BRIEF(room-description toggles). - No UI chrome. The terminal is the UI. The current room’s description scrolls in; the player’s prompt is the bottom line; everything else is prose.
Visual style
Section titled “Visual style”- Pure-text terminal output. Monochrome (or single-hue) on the original Apple II / TRS-80 / Commodore 64 / IBM PC releases. The early text-mode terminal is the canvas; the prose is the only renderer. The C64 release uses the familiar light-blue-on-darker-blue palette; the IBM PC release is white-on-black.
- Box art as a deliberate counterpoint to the spare text. Infocom’s Zork I retail boxes (across platforms) carried carved-stone titlework, iron-banded wooden doors, the tagline “Your greatest challenge lies ahead — and downwards,” and three-stamp classification reading
INTERACTIVE FICTION / FANTASY / STANDARD LEVEL. The contrast between the lush physical packaging and the austere on-screen experience is part of the design — the box promises adventure; the terminal makes you imagine it. - Iconography of the Great Underground Empire. Iron, stone, lanterns, doors, mailboxes, white house, west-of-the-house starting frame. Cartographically dense even though never drawn.
Screenshot
Section titled “Screenshot”
The image above is the C64 release’s opening screen, preserved on the Internet Archive’s Zork Trilogy clean dump: top-row status strip (West of House location | Score: 0/0), title block (ZORK I: The Great Underground Empire / Copyright 1982 by Infocom, Inc.), the canonical opening prose (You are standing in an open field west of a white house, with a boarded front door. / There is a small mailbox here.), and the parser prompt (> █). This is the entire renderer surface — no graphics, no chrome, no widgets. The prose is the UI.
For KN-86 reference purposes this is the on-target visual: it shows what an Infocom Z-machine cart looked like to the operator — single status strip on top, scrollable content area, prompt cursor at the bottom. The structural rhyme with KN-86’s Row 0 status / Rows 1-23 content / Row 24 action bar contract (ADR-0015) is direct, with the Infocom layout pre-dating it by four decades.
Notes / open questions for KN-86
Section titled “Notes / open questions for KN-86”- Strongest single takeaway: cite Zork in ADR-0001 and ADR-0004. A single paragraph in each ADR’s “Prior art” / “Background” section explicitly anchors the KEC Lisp + Fe VM choice to the Z-machine precedent. This is the lineage claim worth making — it costs nothing to write and clarifies the architecture’s instincts for anyone reading the decision fresh.
- Open question: should KN-86 ship a “narrative cart” first-party kit — Z-machine-style verb-noun dispatch over KEC Lisp, sanctioned meta-commands (
SAVE/LOOK/INVENTORY/VERBOSE), a small room-graph DSL — as a cartridge-authoring template? This isn’t a cart it’s a template: any cart author who wants to write a parser-driven narrative gets the verb dispatch, the meta-command set, the disambiguation, and the room/inventory state machine for free. Scope question for the gameplay design / SDK track. - Open question: should the firmware-internal verb set extend to non-narrative carts? A player typing
SAVEon the TERM line should save Universal Deck State regardless of which cart is loaded. Same forINVENTORY(deck-level credits + reputation + cartridge history) andSCORE(some interpretation of operator reputation). Frames the TERM key as a “deck-wide parser” with a small, universal verb dictionary — which would also be a tight pairing with the existing nEmacs context-polymorphic dispatch in ADR-0016. - Open question: classification stamps on cart labels. The Infocom three-stamp pattern (
FORMAT/GENRE/DIFFICULTY) is a small, durable design move. The KN-86 equivalent might be (CART KIND/TONE/STANDARD LEVEL) —MISSION BOARD CART/NOIR/STANDARD. Three words on every label. Low cost, high tone-of-voice yield. - CIPHER voice style guide should cite Zork’s failure-state prose as the tone target for KN-86’s failure / refusal / boundary-condition writing. The cipher-voice-style-guide already exists (
docs/software/runtime/cipher-voice-style-guide.md); add Zork’s grue passages to its reference corpus.