From 34cc828c4fa3b5e2581ea24c43bb8acb386d25d0 Mon Sep 17 00:00:00 2001 From: historicalsource Date: Sat, 13 Apr 2019 21:46:22 -0400 Subject: [PATCH] Revision 88 (Original Source) --- 1actions.zil | 4123 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1dungeon.zil | 2664 ++++++++++++++++++++++++++++++++ README.md | 1 + gclock.zil | 66 + gglobals.zil | 316 ++++ gmacros.zil | 162 ++ gmain.zil | 295 ++++ gparser.zil | 1193 +++++++++++++++ gsyntax.zil | 547 +++++++ gverbs.zil | 2103 +++++++++++++++++++++++++ zork1.zil | 56 + zork1.zip | Bin 0 -> 84876 bytes 12 files changed, 11526 insertions(+) create mode 100644 1actions.zil create mode 100644 1dungeon.zil create mode 100644 README.md create mode 100644 gclock.zil create mode 100644 gglobals.zil create mode 100644 gmacros.zil create mode 100644 gmain.zil create mode 100644 gparser.zil create mode 100644 gsyntax.zil create mode 100644 gverbs.zil create mode 100644 zork1.zil create mode 100644 zork1.zip diff --git a/1actions.zil b/1actions.zil new file mode 100644 index 0000000..44f234c --- /dev/null +++ b/1actions.zil @@ -0,0 +1,4123 @@ +"1ACTIONS for + Zork I: The Great Underground Empire + (c) Copyright 1983 Infocom, Inc. All Rights Reserved." + +"SUBTITLE THE WHITE HOUSE" + + + + )> + )>> + + + + + ) + (T )> + )>> + + + + >) + (T + + )> + ) + ( + + + + T) + (T >)> + )>> + + + )>> + + + > + + > + ) + ( + ) + (T + )>)>> + + + + )>) + ( + + )>) + ( + + ) + (T )>) + (T + )>> + + + ) + ( + ) + ( + ) + (T + )>> + + + + ) + ( + + T)>) + ( + >> + + + ) + (T + )>) + (T )>) + ( + ) + ( + + T) + ( + ) + ( + + + ) + (T + + )>) + (T + )>) + ( + )>> + + + ) + ( + ) + ( + ) + ( + )>> + + + )>> + + ) + ( + CR> + ) + ( ;"fill bottle with water =>" + ;"put water in bottle" + + + + >) + ( + > + + >) + ( + )> + + + )>)> + ) + (T )> + > + > >)> + > + + + >>>> + + + ) + (>> + + ) + ( + > + + ) + (> + + ) + (T + + )>) + ( + + > + ) + (T + )>) + (.PI? ) + ( + + + ) + (T + + )>) + ( + + )>> + +> + + + + ) + ( + > + ) + ( + + ) + (T + )> + ) + ( + + + ) + (T + )>)>> + + + + >) + ( + ) + ( > + ) + (T + )>> + + + + + CR>) + (T + + + + + )>) + ( + + CR>) + (T + + + + + > + >>> + )> + T)>) + ( + > + ) + ( + > + )>> + + + + >) + ( + ,WINNER ,HERE> + ) + (T )>)>> + + + + <>> + + T> + +> 1> ) + (T )>> + > + +> + + + + > + ) + (T + )>)>> + + + ) + ( ,PRSI>> + + + ) + ( + ) + (T + )>) + ( + + + + ) + ( + )>> + + + ) + ( + )>> + + + )>> + + + )>> + + + + + ) + (T + )>) + (<==? .RARG ,M-BEG> + > + ) + ( > + )>)>> + + + + + > + + >>> + + 8> 0> + ) + (T + )> + >)>> + + + )>> + + + )>> + +\ + + > + )>> + +> + + + + ) + (T + )> + + + > + ) + (.RUG? + ) + ( + ) + (T + )> + + T) + ( + + + >> + + )> + >> + + )>)>> + +> + ) + (T + + )>)> + >>> + +> + )> + >> + )> + >>> + + + + ) + ( + > + ) + ( > + + ) + (T )>) + ( + + >> + ) + ( >> + + + ) + ( + CR>)>)>> + + + ) + ( + + >> + + + )>)>> + + + + + ) + (T )> + )>> + +>> + + ) + (>> + >> + > + > + )> + ) + (T + + )>> + + + ) + (T + + + )>) + (T + + )>> + + + + ) + (T + )>) + ( + ) + (T + + + + )>) + ( + ) + ( + + >> + ) + ( + + >> + ) + (ELSE + )>)>> + +\ + +"SUBTITLE TROLL" + +) + (T )>> + +> + +> ) + ( + + ) + (T + )> + T)>> + +)) + + + >) + ( + <>) + ( > + + + + + + > + T) + ( + + + T)>) + ( + + + + )> + ) + ( + + + + + )> + + ) + ( + + + )> + + ) + ( + + + + ) + (T + )> + >) + ( + + + > + T)>) + ( + + CR>) + ( + ,PRSO + > + > + + + + > + + + + ) + ( + + )> + + ) + (T + )> + + > + + + + ,F-DEAD> + ) + ( + + + ) + (T + + )>) + ( + ) + ( + )>) + ( + ) + (> + )>)>> + +\ + +"SUBTITLE GRATING/MAZE" + +> +> +> + +> + > + + ) + (T )> + + )> + <>> + + + ) + ( + + + + ) + (T + )>) + ( + + + ) + ( + + )> + )> + + ) + (T )>) + ( + > + )>> + + + + )>) + ( + + + + ) + (,GRATE-REVEALED + + )> + )>> + + + ) + ( + + + ) + (,GRUNLOCK + ) + (T + )> + )>> + + > + + ) + ( + + > + ) + ( + )>) + ( > + > + + ) + ( + > + ) + (T + )>) + ( + ) + ( + + "The grating opens.") + (T +"The grating opens to reveal trees above you.")> + "The grating is closed."> + + > + > + + + )> + ) + (T )>) + (T )>) + ( > + 20> + ) + (T + + )>)>> + + + ,MAZE-4) + ( ,DEAD-END-1) + ( ,MAZE-11) + ( ,MAZE-5)>> + + + + > + <>) + ( + > + + + ,PRSI>> + + )>> + + + + )>> + + + + + + T)>> + +\ + + + ) + ( + > + ) + ( > + )>> + +\ + +"SUBTITLE MIRROR, MIRROR, ON THE WALL" + + + + )>)>> + +> + + + > + >> + + )> + + )> + > + > + )> + > + + > + )> + > + + > + > + ) + ( + ) + (T + )> + ) + ( + ) + ( + ) + (T + + > + )>)>> + +\ + +"SUBTITLE THE DOME" + + + + )>)>> + + + + )>) + ( + + + + ) + ( + )>)>> + +> + +\ + +"SUBTITLE LAND OF THE DEAD" + + + + > + )>) + ( + + + + + > + ) + (T + )>)>) + ( + + > + + + + + + + + + + >)> + > + >) + ( + + > + + + + >)>) + ( + + + > + + + > + >)>)>> + +> + +> + + + >> + >> + +> + > + + + + + )>> + +\ + +"SUBTITLE FLOOD CONTROL DAM #3" + +> +> + + + + + ) + (,GATES-OPEN + ) + (,LOW-TIDE + ) + (T + )> + + )> + )>> + + + + + > + + + > + + T) + (T + + + > + + T)>) + (T )>) + (,PRSI ) + (T )>) + ( + ) + ( + )>> + + + )>> + +> + + + + + + + > + > + + ,VEHBIT> + ) + (T + )>) + ( + ) + ( + + >) + ( + )> + T> + +> + + + + + + + + + ,VEHBIT>> + ) + ( + ) + ( + )> + T> + +> + + + + + + ) + ( + + + + + + > + T) + (T + )>) + ( + + + + ) + (T + + )>) + ( + + > + ) + ( + + + )>)>> + + + ) + ( + +) + ( + )>> + +> + >> )> + > + > + + + )>) + ( + > + )> + > + + + + > + ) + ( + + ) + (T )>)>)>> + + + + > + + + > + + >> + )>> + + + > + ) + ( + + > + + ) + ( + ) + (T + )>)>> + + + ) + ( + + ) + (T + )>)>> + +> + + + + ) + (,GATES-OPEN + ) + (,LOW-TIDE + ) + (T + )> + + )>> + + + ,VEHBIT>> + + ,LOW-TIDE> + ) + ( + ) + (T + )> + )>> + + + + ) + (,GATES-OPEN + ) + (,LOW-TIDE + ) + (T + )> + + )>> + +\ + +"SUBTITLE WATER, WATER EVERYWHERE..." + +)) + <==? ,PRSO ,BOTTLE>> + + + ) + ( + + + ) + ( + > + )>)> + > + + + T) + (.E? )>> + +\ + +"SUBTITLE CYCLOPS" + + + + + + ) + ( + + + ) + (ELSE + )>) + (,CYCLOPS-FLAG + + ) + ( + + > + + + >) + (T + )>)>) + ( + ) + ( > + + > + + + >>)> + >) + ( + + >> + + + + + + + ) + (T + )>) + ( + ) + (T + )>) + ( + > + + ) + (T + + + )> + )>) + ( + ) + ( + ) + ( + )>> + + ) + (> + >) + (T + 5> + > + ) + (T + + >) + (T + >)> + + 1>> + CR>)>)>)>> + + + + > + ) + (,MAGIC-FLAG + ) + (<0? ,CYCLOWRATH> + ) + ( + ) + ( + )>) + ( + >>)>> + +> + +\ + +"SUBTITLE LOUD LOUD LOUD" + +> + + + + ,LOW-TIDE>> + ) + (T + )> + ) + ( ,GATES-OPEN > + + > + ) + ( + ,LOW-TIDE>> + ) + (> + ) + (T + + + >)> + + "> + + > + + )> + > + + >) + ( + >)> + + ) + ( + ) + ( + ) + ( + >) + ( + >) + ( + >) + ( + ) + ( + + + + ) + ;(,DEAD ) + (T + )>>)>)>> + + + + > + ) + ( ,LOW-TIDE> + + ) + (T + )> + )>> + + +> + +\ + +"SUBTITLE A SEEDY LOOKING GENTLEMAN..." + +> + +;"I-THIEF moved to DEMONS" + +\ + +"SUBTITLE THINGS THIEF MIGHT DO" + +"INTERACTION WITH ADVENTURER -- RETURNS T IF THIEF FINISHED." + +)) + >) + ( + > + + + + + ) + ( + + + + + + )>) + ( + >> + + + + + ) + ( > + ) + (> + + + + ) + ( ) + ( + ) + ( + + )> + + > + + ) + (.HERE? + + + ) + (T )> + + ) + (T + )> + + > + ) + (T + + )>)>) + (T + + + >> + + ) + (T + )> + + > + )>)>)> + > + + + > + .OLD-LIT> + )> + > + +"SNARF STILETTO IF DROPPED IT" + +;"RECOVER-STILETTO moved to DEMONS" + +"PUT HIS BOOTY IN TREASURE ROOM" + + + + > + ) + (T )> + >>> + +)) + > + )> + > + ) + ( 0> + + + + + )>)> + >> + +"TAKE ALL OF THE VALUABLES SOMEWHERE AND PUT THEM SOMEWHERE ELSE" + +"MOVED TO DEMONS" + +"ROB MAZE" + +> + )> + > + + > + > + + + + + )> + )> + >> + +"STEAL SOME JUNK - moved to DEMONS" + +"DROP SOME JUNK - moved to DEMONS" + + + +\ + +"ROBBER-FUNCTION -- more prosaic thiefly occupations" + +> + +) "AUX" (FLG <>) X N) + + + >) + ( + + ,ROBBER-U-DESC>> + ) + ( + + >> + + + > + + ) + (T + )> + + ) + (T + + )>) + ( + ,PRSO + > + > + 0> + >> + > + + + )> + + 0> + + ) + (T + )>) + ( + ) + ( + ) + ( + )>) + ( + <>) + (> + + + + )> + T)>) + ( + + + > + + > + + + ) + (> + + + + )> + + + > + + )> + )> + >>) + (.X + )> + >) + ( + > + > + + > + T)>) + ( + > + + + + ) + ( + ,HERE> + + )> + > + + )>> + + + + + + + ,ROBBER-U-DESC> + ) + (T + )>) + ( + > + ) + ( + ) + ( + )>> + +> + )> + > + + + >)>> + + + + + + > + + ,ROBBER-U-DESC>>> + )>) + ( > + ) + (T )>> + +) TL) + + <1? ,C-ENABLED?>> + > + >> + + + + ) + (T + )> + )>> + +> + > + )> + ) + (> + >> + )> + >>> + + + ) + ( + ) + ( + ) + ( + )>> + +\ + +"SUBTITLE RANDOM FUNCTIONS" + + + ) + ( + )>> + + + ) + ( + ) + ( + + + >>> + ) + ( + + )>> + + + + + )>> + +\ + +"SUBTITLE LET THERE BE LIGHT SOURCES" + +> + + + + > + + ) + ( + + ) + (T + > + <>)>) + ( + + ) + (T + > + <>)>) + ( + + + ) + ( + ) + (T + )> + )>> + + > + )>> + + + + > + + >)> + > + ) + ( + ) + (T + + + > + + + + )> + )>) + ( > + + + + > + )> + + ) + ( + + > + > ) + (T )> + + > ) (T )> + ) + ( + + ) + (T + )> + )>> + + + + + > + > + +)) + >>> + + > + >)>> + +)) + + >>> + + > + >)>> + + + + )> + > + + ) + (T + CR>)>)>> + + .N1) + (T .N2)>> + +> + >)> + ) + (T + + + ) + ( + + + + ) + (T + + )>) + ( + > + + + ) + (T + + + >)>) + ( + + ) + (T + + )>) + (T + )>) + ( + ) + ( + > + + + + > + + )> + + ) + (T )>) + ( > + ) + ( + + + ) + (T )> + )>)>> + +> + + + + + > + > + + + >> + )>)>)>> + +\ + +"SUBTITLE ASSORTED WEAPONS" + + > + > + <>) + ( + > 1> + ) + ( + )>)>> + +"SUBTITLE COAL MINE" + +) FLAME) + + + + > + )> + + > + + > + + >> + ) + (T + )> + )>)>> + + ,WINNER ,HERE> + ) + (T + )>> + + + ) + ( > + ,WINNER ,HERE>> + + )>)>> + + + + + ) + (T )> + )>> + + + ) + ( + + CR>) + ( + + + + ) + (T + + )>) + ( + + + + T) + (T + CR>)>) + ( + + ) + (T + + )>)>> + + + + + ) + (T + + + ) + (T + > + ) + (T )>> + ) + (T)>)>) + ( + ) + (T + )>)>> + + + > + + + > + + ) + ( 4> + > + )> + >> + ,LIT> + + )> + )>> + + + >> + )>> + + + + +\ + +"SUBTITLE OLD MAN RIVER, THAT OLD MAN RIVER..." + + + + >) + (T + )>)>> + + + + > + + + + + > + )> + ) + (T + + + >)>) + ( + > + ) + (T + )>)>> + + + + ) + (T + )> + )>> + + + + + )> + + ) + ( + ) + (T + )>) + (T + )>) + ( + )>> + + + > + ) + ( + ) + ( + + ) + (T )>)>> + + + > + > + + + + + ) + ( + ) + ( + + ) + (T + + )>)>) + ( + )>> + +> + +> + +> + +> + >> + >) + (> + + + >>) + (T + )>> + +) "AUX" TMP) + <>) + ( + + + ) + ( + > + ) + ( + > + ) + (T + + )>) + ( + + > + + + ) + ( + ) + (T )> + ) + (> 1> + >> + ) + (> + + ) + (T )>) + ( + > + + + > + + >> + + + + + + ) + (T )> + + + + + ) + (T + )>)> + ) + ( + )>) + ( + + + + + + > + + + + + T)>) + ( + ) + ( + ,INFLATED-BOAT> + ) + (> + ) + (T + + + + )>)>> + +> + + + > + ) + ( + + > + )> + > + + + ) + ( + ) + (T + )>)>> + + + + + ,BUOY-FLAG> + + >)>)>> + + + + + + <==? ,PRSI ,SHOVEL>> + > + + + > + ) + ( + + + + )>) + (T + CR>)>)>> + +> + +\ + +"SUBTITLE TOITY POIPLE BOIDS A CHOIPIN' AN' A BOIPIN' ... " + + + + > + > + + + )>) + ( + > + ) + ( + > + ) + ( + > ) + ( > + + + ) + ( + + + + ) + (> + + ) + ( + )>)>) + ( >)>> + + > + + ) + ( + ) + ( + ) + ( + + > + + + ) + ( + ) + (T + + )>) + ( + + + ) + ( + )> + + + )>> + + + >) + (T )> + > + + > + +> + + + + > + + + ,PATH) + (T ,HERE)>>) + (T + )>) + (T + )>)>> + + + >> + +> + > + ) + ( + )>> + + >) + ( + + > + )>)>> + + + )>> + + + >> + ) + ( + + + )>)>> + +\ + +"SUBTITLE CHUTES AND LADDERS" + +> + > + + )>) + ( + + ) + (T + + + + > + + >> + )> + T)>)>) + ( ,DOME-FLAG> + ) + ( + > + + 0> + + ) + (T + )>) + (T + )>) + ( + > + + ) + (T + )>) + ( + + > + + ) + ( + )>)>> + + + >> + ) + (T )>> + + + >> + + + ) + (T + + )>) + ( + )>> + + + + ) + (T + )>) + (T CR>)>> + + + > + )>> + +"MORE RANDOMNESS" + +) "AUX" M) + + + > + )>) + ( + <>) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + + > + ) + (T + )> + + > + )> + + <>) + ( + + + + > + > + > + + >)> + + ) + (T + )>) + (T + + > + )>> + +;"Pseudo-object routines" + +) + ( + ) + ( + )>> + + + ) + ( + )>> + + + >> + ) + ( + ) + ( > + + )>> + + + )>> + + + + ) + (T + )>> + + + ) + ( + )>> + + + )>> + + ;"REALLY BLOW" + ) + ( + )>> + +"SUBTITLE MELEE" + +"melee actions (object functions for villains called with these" + + ;"busy recovering weapon?" + ;"mistah kurtz, he dead." + ;"into dreamland" + ;"rise and shine" + ;"strike first?" + +\ + +"blow results" + + ;"attacker misses" + ;"defender unconscious" + ;"defender dead" + ;"defender lightly wounded" + ;"defender seriously wounded" + ;"defender staggered (miss turn)" + ;"defender loses weapon" + ;"hesitates (miss on free swing)" + ;"sitting duck (crunch!)" + +"tables of melee results" + +> + +> + +> + +> + +> + +> + + + 0 ;>> + + + 0; >> + + + DEF3B + 0 ; + DEF3C>> + +\ + +"useful constants" + + + + + +\ + +"I-FIGHT moved to DEMONS" + +)) + + > + + + )> + > + > + >) + ( + ,F-BUSY?>) + (>> + > + ) + ( + >>)>> + ) + (T + > + )>)>) + (T )>>> + +\ + +"takes a remark, defender, and good-guy's weapon" + +) (CNT 0) STR) + > .LEN> )> + > + ) + ( ) + (T )>> + > + +"Strength of the player is a basic value (S) adjusted by his P?STRENGTH +property, which is normally 0" + +>>>> + >)(T .S)>> + +) + OD TMP) + > + > + ,THIEF-ENGROSSED> + )> + >)> + + ,PRSI>> + >> + )> + )>)> + .OD> + +"find a weapon (if any) in possession of argument" + +> + + )> + + > + ) + (>> )>>> + +\ + +) + (REMARKS ) + DWEAPON ATT DEF OA OD TBL RES NWEAPON) + + + + + )> + >> + > 0>> )> + >> + > + ) + (T + + )> + >>) + ( + )> + >>) + ( + > + ) + ( )> + >>)> + 1>>> + ) + (T )>)> + + .DWEAPON + >> + )> + >> + ,WINNER + .DWEAPON>)> + >) + () + ( + > + ) + ( + > + )> + + >)>) + ( + > + )> + + >)>) + ( ) + (T + .DWEAPON> + + > + )>)> + > + +) DWEAPON ATT DEF (CNT 0) + OA OD TBL RES NWEAPON (LEN )) + > + )> + > + ,PRSO> + )>> + + + + + )> + > + )> + + > + >>> + + >)> + + )> + > + > + + ) + (T )> + + ) + (T + + )> + >>) + ( + )> + >>) + ( + > + ) + ( )> + >>)> + 1>>> + ) + (T )>)> + .DWEAPON > + )> + >> + ,PRSO + ,PRSI>)> + >) + ( >) + ( > + ) + ( + > + )>) + ( + > + )>) + ( ) + (T + .DWEAPON> + + + + )> + > + +\ + + -10000)(T <- .DEF .OD>)>> + 0> + >)> + 0>> + >>>> + + <>) + (T .RES)>> + + + + + + + ,F-DEAD> + .RES) + ( + ,F-UNCONSCIOUS> + .RES) + (T .RES)>> + +\ + +> + >> + ) + ( ) + (<0? .PS> ) + ( ) + (T )>> + +)) + ) + ( > )> + + + >)> + >) + (T + + >)>> + +"FIGHTS" + +"messages for winner" + + ;"means print weapon name" + ;"means print defender name (villain, e.g.)" + + + + + + + > + + + + + > + + + > + + + + > + + + + > + + + + + > + + >>> + +\ + +"messages for cyclops (note that he has no weapon" + + + > + > + > + + > + + > + + > + + > + > + >>> + +\ + +"messages for troll" + + + + + > + > + + + > + + + + > + + + > + + + + > + + + > + + > + >>> + +\ + +"messages for thief" + + + + + > + + > + + + > + + + + > + + + + > + + + > + + + > + + + > + + >>> + + +"each table entry is:" + + ;"villain" + ;"best weapon" + ;"advantage it confers" + ;"prob of waking if unconscious" + ;"messages for that villain" + +"This table must be after TROLL-MELEE, THIEF-MELEE, CYCLOPS-MELEE defined!" + + + +
0 0 CYCLOPS-MELEE>>> + +"DEMONS" + +"Fighting demon" + +) (LEN ) + CNT OO O P) + )> + + > + )> + > + > ,HERE> + >> + ,THIEF-ENGROSSED> + >) + ( 0> + > + > > + + ) + (T + >)>) + ( + ,F-FIRST?>> + )>) + (T + + ,F-BUSY?>)> + >)> + + + + )>> + )> + > + +)) + + > + ,F-CONSCIOUS>)> + T> + +"SWORD demon" + +) (G ) + (NG 0) P T L) + + ) + (T + + >> + ) + (> + > + > + + > + + )>)>)>>)> + ) + ( + ) + (<1? .NG> + ) + (<0? .NG> + )> + + ) + (T + + )>> + +)) + ) + ( >> + ) + (>> )>>> + +"THIEF demon" + +) ROBJ HERE? (ONCE <>) (FLG <>)) + >> + >)> + >> + >)> + ;"silent") + ( + > + >> + )> + >)>) + (T + + >> ;"Leave if victim left" + + >)> + ;"Hack the adventurer's belongings" + + + > + ) + (T )>>)>)> + > > + ;"Move to next room, and hack." + + >>) + (T >)> + > + > + + + + > + )>> + )>> + > + )> + .FLG> + +)) + > + )> + > + ) + (> > + + + > + + )>)> + >> + +> + + )>> + +> + )> + > + > + + > + > + + >> + + + + >)> + + + ) + (ELSE )>)> + >> + +) "AUX" N X (ROBBED? <>)) + > + )> + > + > + > + 0> + >> + + + )> + )> + >> + +^/L + +;"special-cased routines" + +>) + (WD ) (RS <+ .MS .WD>)) + #DECL ((MS WD RS) FIX) + ,C-ENABLED?>> ) + (ELSE >)> + ) + (T + + ) + ( ) + ( ) + ( )>)> + > + + > + ,C-TICK>>> + )> + + + ) + (<1? .RS> ) + ( ) + ( ) + ( + )> + + > + + ) + (T )> + )>> + +) + + + + + ) (ELSE )> + + + ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + (T )> + + ,SCORE> + +)) + + )> + + + )> + + + ,VEHBIT> + )> + > + + ) + (T + > + + + + + + + + + ) + (T + + )> + + > + + )>>> + +) F N L) + + )> + + )> + + > + > + + )> + > + 0> + >)> + + > + > + + ) + (ELSE >)>>) + (ELSE + >>)>>> + +> + > + > + > + > + > + > + > + + > + +> + +> + + + ) + ( + ) + ( > + )>> + + + ) + ( + )>> + + + + )>> + + + ) + ( + ) + ( + )>> + + + > + )>> \ No newline at end of file diff --git a/1dungeon.zil b/1dungeon.zil new file mode 100644 index 0000000..ea5dbcb --- /dev/null +++ b/1dungeon.zil @@ -0,0 +1,2664 @@ +"1DUNGEON for + Zork I: The Great Underground Empire + (c) Copyright 1983 Infocom, Inc. All Rights Reserved." + + + + + +> + +"SUBTITLE OBJECTS" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + )>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +;" The construction of FCD#3 took 112 days from ground breaking to +the dedication. It required a work force of 384 slaves, 34 slave +drivers, 12 engineers, 2 turtle doves, and a partridge in a pear +tree. The work was managed by a command team composed of 2345 +bureaucrats, 2347 secretaries (at least two of whom can type), +12,256 paper shufflers, 52,469 rubber stampers, 245,193 red tape +processors, and nearly one million dead trees.|" + + + + + + Frobozz Magic Gunk Company <---| + All-Purpose Gunk")> + + + + + + + + + + + + + + + + + + + + + + + + + + + +\ + +"SUBTITLE ROOMS" + +"SUBTITLE CONDITIONAL EXIT FLAGS" + +> +> +> +> +> +> +> +> +> +> +> + +"SUBTITLE FOREST AND OUTSIDE OF HOUSE" + + + + + + + + + + + + + + + + + + + + + + + + + + + ,GRATING-ROOM) + (T + + + )>) + (T )>> + + + +\ + +"SUBTITLE HOUSE" + + + + + + + +\ + +"SUBTITLE CELLAR AND VICINITY" + + + + + + + + + + + +\ + +"SUBTITLE MAZE" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\ + +"SUBTITLE CYCLOPS AND HIDEAWAY" + + + + + + + +\ + +"SUBTITLE RESERVOIR AREA" + + + + + + + + + + + +\ + +"SUBTITLE MIRROR ROOMS AND VICINITY" + + + + + + + + + + + + + + + + + + + +\ + +"SUBTITLE ROUND ROOM AND VICINITY" + + + + + + + + + + + + + + + +\ + +"SUBTITLE HADES ET AL" + + + + + +\ + +"SUBTITLE DOME, TEMPLE, EGYPT" + + + + + + + + + + + + + +\ + +"SUBTITLE FLOOD CONTROL DAM #3" + + + + + + + +\ + +"SUBTITLE RIVER AREA" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + > + + )>> + + +\ + +"SUBTITLE COAL MINE AREA" + + + + + + + + + + + + + + + + + + + + + + + + + +\ + +"SUBTITLE COAL MINE" + + + + + + + + + + + +\ + +;"RANDOM TABLES FOR WALK-AROUND" + +> + +> + +> + +> + +;"The GO routine must live here." + +> + + > + + + + > + > + > + > + > + > + + + > + + )> + + + + + + + > \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..50dda13 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# zork1 diff --git a/gclock.zil b/gclock.zil new file mode 100644 index 0000000..6fdf9f2 --- /dev/null +++ b/gclock.zil @@ -0,0 +1,66 @@ +"GCLOCK for + The Zork Trilogy + (c) Copyright 1983 Infocom, Inc. All Rights Reserved" + + + +> + + + + + + + + + + + + + +) + > ,C-TICK .TICK> + .CINT> + +) + > ,C-TICK .TICK> + .CINT> + +) E C INT) + #DECL ((RTN) ATOM (DEMON) (E C INT) ) + > + > + + > + >> + > + + ) + ( .RTN> )> + >>> + +> + +)) + #DECL ((C E) (TICK) FIX (FLG) ) + > )> + >> + > + + > 999> + )> + ) + (>> + > + ) + (T + > + > + >> + )>)>)> + >>> diff --git a/gglobals.zil b/gglobals.zil new file mode 100644 index 0000000..dd7fd27 --- /dev/null +++ b/gglobals.zil @@ -0,0 +1,316 @@ + "Generic GLOBALS file for + The ZORK Trilogy + started on 7/28/83 by MARC" + +"SUBTITLE GLOBAL OBJECTS" + + + + + +;"Yes, this synonym for LOCAL-GLOBALS needs to exist... sigh" + + + + + + + + + + + + + > + + ) + ( + ) + (T + + >)> + ;"Here is the default 'cant see any' printer" + > + > + + + + ) + (T + + + )> + > + + returns + number of matches. If 1, then P-MOBY-FOUND is it. One may treat + the 0 and >1 cases alike or different. It doesn't matter. Always + return RFALSE (not handled) if you have resolved the problem." + > + ;)> + + ,P?GLOBAL>>> + + )> + + ;)> + ) + (T )> + ) + ( + + + + ) + (T ,NOT-HERE-OBJECT)>> + +>)> + > + > + + ) + (T )> + > + + )> + )>) + (.PRSO? + <>>) + (T + <>>)>> + +> + +/^L + +"Objects shared by all three Zorks go here" + + + + + + + + + + + )>> + + + + + > + % + '> + + + ) + (<==? ,HERE ,FLATHEAD-OCEAN> + ) + (T + )>)>) + (T + ')> + > + ) + (<0? > + ) + (T + )>)>> + + + + + > + + ) + % + '( + )) + (T + '( + ))> + ( + )>> + + + + + ) + ( + ) + ( + )>> + + + + + + + > + > + ) + ( + > + + ) + ( + ) + ( + ) + ( + ) + ( + > + ) + (T + )>) + ( + ) + ( + + '( > + )) + (T + '( ))> + (T + )>)>> + + + + + + + ) + ( + ) + ( + )>> + + + + + ) + ( + )>> + + \ No newline at end of file diff --git a/gmacros.zil b/gmacros.zil new file mode 100644 index 0000000..17748f0 --- /dev/null +++ b/gmacros.zil @@ -0,0 +1,162 @@ +"GMACROS for + The Zork Trilogy + (c) Copyright 1983 Infocom, Inc. All Rights Reserved" + + + + + + ) + (> + >)> + + > + "CRLF"> + <=? .P "CR">> + >) + ( + ) + (ELSE + > + > + > + "DESC"> + <=? .P "D"> + <=? .P "OBJ"> + <=? .P "O">> + >) + ( + <=? .P "AN">> + >) + ( + <=? .P "N">> + >) + ( + <=? .P "CHR"> + <=? .P "C">> + >) + (ELSE + >>)>)>) + ( + >) + ( + >) + (ELSE )>>>>> + +> + +> + +> + +> + +> + + + + + ) + ( ) + (ELSE )>>)> + )> + > + +
+ >>) + (ELSE .ATM)>>) + (ELSE .ATM)> + !.L)> + > + 3> )>> + !.L>)>>> + >> + +> + +> + +> + + + ) + (<==? .X FSET?> ) + (ELSE )>>)> + > + > + .ATM) + (ELSE )>> + !.O)>>> + + + + >> + + ) + (ELSE >)>> + +>) + (ELSE >)>> + +>>> + +) (CNT ) RND MSG RFROB) + > + > + >> + >> + > + > + + > + )> + + .MSG> + +> + +> + + + >> + + + >> + + ) + (T .NUM)>> \ No newline at end of file diff --git a/gmain.zil b/gmain.zil new file mode 100644 index 0000000..a80632b --- /dev/null +++ b/gmain.zil @@ -0,0 +1,295 @@ + "Generic MAIN file for + The ZORK Trilogy + started on 7/28/83 by MARC" + +> + +> + + + + + +> + +> + + + + + + + + + + + + + +;"GO now lives in SPECIAL.ZIL" + + + + > + + > + > + >> .OCNT) + ( + + >) + (T >)> + .OCNT) + ( + > + + > + .ICNT) + (T 1)>> + <1? .ICNT>> >)> + >) + (<0? .NUM> + ,P-SONUMS>> + > + >) + ( + ) + (T + + >)>) + (T + + > + )> + > + > .NUM> + + + > + )> + + > + )> + + > + ) + (T )> + ) + ( + )> + ) + (T + >) + (T >)> + > + > + + + 0> + ,W?ALL>> + + > + ) + ( + ,PRSI + + 0> + ,W?ALL> + >> + ) + ( + + + ,WINNER + ,HERE>> + + ,SURFACEBIT>>> + + >>>> + ) + (T + + ) + (T )> + )>)> + + > + )>)>>)> + > + ; ,PRSO> + >)> + ,P?ACTION> ,M-END>>)> + T) + (T + + + )> + >)>) + (T + >)> + T) + (T >)>)>>> + +> + +> + +> + +> + + + + + +% + +') (I <>) "AUX" V OA OO OI) + ; + % ') + (T ' 1>>>)> + >> + )> + )> + )> + + + + + >> + + )> + )> + )> + + + > >> + + )> + + + >> .V) + (T + + + >> .V) + ( ,P?ACTION> ,M-BEG>> .V) + (>> .V) + (>>> .V) + (> + + ,P?CONTFCN>>>> + .V) + (> + >>> + .V) + (>> .V)>)> + + + + .V>) + (T + +'> + +) (I <>) "AUX" V OA OO OI) + #DECL ((A) FIX (O) (I) (V) ANY) + + )> + )> + )> + + + >> + + )> + + + >> .V) + (T + + + >> .V) + ( ,P?ACTION> + ,M-BEG>> .V) + (>> .V) + (>>> .V) + (> + + ,P?CONTFCN> + + ,P?CONTFCN>>>> + .V) + (> + >>> + .V) + ( + >> .V)>)> + + + + .V> + + <>) + (T + + " CR>) + (T ">)>)> + + ) + (T )>> + + + ) + ( + ) + (T )>)> + .RES)>> + +)) + )> + > +>)> + diff --git a/gparser.zil b/gparser.zil new file mode 100644 index 0000000..9e97911 --- /dev/null +++ b/gparser.zil @@ -0,0 +1,1193 @@ + "Generic PARSER file for + The ZORK Trilogy + started on 7/28/83 by MARC" + +;"WHICH and TRAP retrofixes installed" + +"Parser global variable convention: All parser globals will + begin with 'P-'. Local variables are not restricted in any + way. +" + + + +> + +> + +> + +> + + + + + + + + + + + + + + + + + +> +;"INBUF - Input buffer for READ" + +> +;"Parse-cont variable" + +> + +> +> + +;"Orphan flag" + +> + +> + +> + +> + +> +;"Parser variables and temporaries" + + + + + + +;"Byte offset to # of entries in LEXV" + + +;"Word offset to start of LEXV entries" + + +;"Number of words per LEXV entry" + + + + +;"Offset to parts of speech byte" + + +;"Offset to first part of speech" + + +;"First part of speech bit mask in PSOFF byte" + + + + + +> + +> + +> + + + + + + + + + + + + + + + + + + + + + + + +> + +" Grovel down the input finding the verb, prepositions, and noun clauses. + If the input is or , fall out immediately + setting PRSA to ,V?WALK and PRSO to . Otherwise, perform + all required orphaning, syntax checking, and noun clause lookup." + +) + LEN (DIR <>) (NW 0) (LW 0) NUM SCNT (CNT -1)) + > ,P-ITBLLEN> ) + (T )>> + > + > + + + + > + + ,VEHBIT>> + >)> + >)> + + + <==? ,PLAYER ,WINNER> + >> + )> + >) + (T + + > + ,VEHBIT>> + >)> + > + )> + "> + )> + > + )> + + > + + + > 0> + > + ) + (> + >> + + > + ) + ( + + ;"Last NOT added 7/3"> + + + )> + + > + + >) + (T )>)> + + >> + + ) + (> + ,ACT?WALK> + + + > + >> + ,W?THEN + ,W?PERIOD + ,W?QUOTE> + >> + + > + + >>> + + + + ,W?THEN>)> + > + > + )>) + (> + > + + + + + 2>>>> + >>) + (> + + + > + >> + + <==? > + ,W?OF> + <0? .VAL> + >>) + (> + + > + ,W?THEN ,W?PERIOD>>> + + + )>) + (<==? ,P-NCN 2> + + ) + (T + > + > + > + + > + )>)>) + () + ( + > + + ) + (T + + )>) + (T + + )> + + >> + + + + )> + > + )> + > + T)>> + + +> + +;"Check whether word pointed at by PTR is the correct part of speech. + The second argument is the part of speech (,PS?). The + 3rd argument (,P1?), if given, causes the value + for that part of speech to be returned." + +> .BIT> + ) + (T + > + > >)> + )>)>> + +;" Scan through a noun clause, leave a pointer to its starting location" + +) (FIRST?? T) NW (LW 0)) + 2>> + > + > .VAL> + .WRD> + >) + (T >)> + > )> + > >> + ,W?THE ,W?A ,W?AN> + 4>>)> + > 0> + >> + )> + > + >> + ) + (T >>)> + ) + ( + + > + >)>) + ( + + + ;"ADDED 4/27 FOR TURTLE,UP" + >> + > + + >> + >) + ( + + + >> + T) + ( + > + >) + ( + > + >> + + 2>>> + ) + (T >)>) + ( 0>>> + + >>) + ( + >> + > + ,W?THEN> + >) + ( T) + (T + + )>) + (T )> + + > + >>> + +)) + > 2>> + > 3>> + > 0> ) + (T + > + + + ) + ( ) + ( > + <- .CHR 48>>>) + (T )> + >)>> + + ) + (.TIM + >) + ( )> + >>)> + + ,W?INTNUM> + + + + + +;"New ORPHAN-MERGE for TRAP Retrofix 6/21/84" + +) WRD) + > + 0> ,PS?ADJECTIVE ,P1?ADJECTIVE> + )> + >>> + + >>> + ) + (<==? ,P-NCN 2> ) + (<==? 1> + > + > + <0? .TEMP>> + > + >) + (T + > + >)>) + (T )>) + (<==? 1> + > + > + <0? .TEMP>> + > + >)> + > + > + ) + (T )>) + (> + > > + > + ) + (T + > + > >)> + > + > + + ) + (T > )>) + ( + + ,PS?ADJECTIVE> + >> + ) + ( ,PS?OBJECT> + <==? .WRD ,W?ONE>> + > + ) + (T )>)> + > + + + + > + )>>)>)> + > ,P-ITBLLEN> + + ) + (T >)>> + T> + +;"New ACLAUSE-WIN for TRAP retrofix 6/21/84" + +> + + .ADJ> + 0>> > + > + > + +;"Print undefined word in input. + PTR points to the unknown word in P-LEXV" + + ) + (ELSE + > + >)>>> + + + + )> + + >> 2> + 3>> + + > + >> + + + + )> + + >> 2> + 3>> + + > + >> + +;" Perform syntax matching operations, using P-ITBL as the source of + the verb and adjectives for this input. Returns false if no + syntax matches, and does it's own orphaning. If return is true, + the syntax is saved in P-SYNTAX." + + + + + + + + + + + + + + + + + + + + + + + +) (DRIVE2 <>) PREP VERB TMP) + >> + + )> + >> + > + > + ,P-SONUMS>> + T) + (> + <0? ,P-NCN> + >> + <==? .PREP >>> + ) + (<==? > + <==? ,P-NCN 1>> + ) + (<==? + > + + )>)> + + ) + (T + + )>) + (T >)>> + + + >>> + + + ) + ( + + >>> + + + ) + ( + + ) + (> + ) + (T + + + > + ) + (<0? > + >) + (T + > + )> + )> + + ) + (T )>> + + )>> + + + > + + + + + ) + (T >)>> + )> + > )> + > + ) + (.D2 + > + )>> + + .THE?>> + +) WRD (FIRST?? T) (PN <>)) + ) + (T + >) + (T )> + > ,W?PERIOD> + ) + (T + .CP> + )> + ) + ( + <==? ,P-IT-LOC ,HERE>> + ) + (T + + >)> + >)>)> + >>> + +> 32>> + 1> <+ 1>>> + +> + + > + )>> + +) "AUX" BEG END) + > + > + ,P-LEXELEN> 2>>> + + ,P-LEXELEN> + 2>>> + ) + (T + >> + )> + >)> + >>> + + + 2>> + .WRD> + + > + + 2>> + ) + (<==? .PREP> + >>)>>> + + + >> + + + + + )> + + + + > + + 1> + > ,ME> + )> + + > + >> + + )> + + ) + (T + )>)> + > + )> + .OBJ)>) + (T )>> + +> 0>> + > + ,P-PRSO> > + > + >>)> + > 0>> + > + ,P-PRSI> > + >> + 1> + >) + (T >)>)>)> + > + +> + + ) + (> ,P-BUTS>) + (T + .OBJ> + >)> + >> + + + + .NTBL> + +> + +> + +> + +> + +> + +> + +> + +> + +> + + + + + + + + + + + +> +> + +> + +) LEN WV WRD NW) + + + + > + + + > + >>) + (T + > + + + + >)>) + ( + > > + + ) + ( + + + + >)>) + (T + + > > + >)>) + ( + >> + + > > + T) + () + () + (<==? .WRD ,W?OF> + + )>) + (> + > + + ) + ( + + )>)> + > + > + )>>> + + + + + + + + + + + + + + + +) (OLEN 0) OBJ) + + > + )> + ,P-ADJ > + + >)> + + + > + <0? ,P-GWIMBIT>> + )> + )> + > <0? ,P-SLOCBITS>> + )> + + ) + (T + + + )> + )> + .TLEN>> + ) + ( + >> + > + >> + + > + )> + ) + ( + >>> + + + + .LEN>> + ) + (T + )> + > + + ) + ( + + ,P-NC1) + (T ,P-NC2)>> + + + <>> + ) + (.VRB + )> + > + > + )>) + ( .GCHECK> + + + + + > + > + > + ) + (T )>)> + > + > + ) + (<0? .LEN> )> + + > + > + >> + + + + + + > + ) + (T + + >)>> + > 0> + )> + > 0> + )> + > 1> + >)> + > + > + .LEN> + +> +> +> +> + + + + ) + (<==? .TBL ,P-PRSO> + >) + (T >)> + + > + > + + + > )> + ) + ( )> + > 1> + + )>>> + + +> + + > + 1>> + > .TBL> + )> + )>>)> + > + 4> 1>> + + >> + 1>>> + 5>> + > + > + + ) + ( )>>)> + .LEN> + + + + + > + > + )>)>> + +> + ) + (T + + ) + ( + ) + (T )>)>> + + + + + + + +> + > + + > + )> + > + + > + > + + >> + + ,P-SRCALL) + ( + ,P-SRCALL) + (T ,P-SRCTOP)>>>)> + >) (T )>>)>> + +> + .OBJ> + >> + +> + >>> + +) + > + + >> + > 0> ) + (T + >> + )> + > + >> + + + ) + (> + >) + ( + <==? > T>> + >) + (T )> + > + + + )> + + + + ) + ( + <==? ,WINNER ,ADVENTURER>> + )>)>)>>) + (T)>> + +) TMP) + 1> + ,SMANY>>> + ) + ( 1> + ,SMANY>>> + )> + + )> + + > + ) + ( + >) + (T + >)> + + ) + (T)>> + + )> + > ) + (ELSE >)> + > ) + ( )>>> + +> ) + ( )>>> + +> + +)) + > + )> + + + + > + ) + (T + + + + + + > + > + )>)> + + 0> )>)> + + + .LIT> + +> 0> ,W?IT>> + ) + (T <>>)>> + +> 0> ,W?IT>> + ) + (T <>>)>> + +;"former CRUFTY routine, re-written by SWG" + + ) + (> + <- 2> 1>>>> + ) + (>> + 1>>>>> + ) + (> >> + )> + > \ No newline at end of file diff --git a/gsyntax.zil b/gsyntax.zil new file mode 100644 index 0000000..6d5cb66 --- /dev/null +++ b/gsyntax.zil @@ -0,0 +1,547 @@ + "Generic SYNTAX file for + The ZORK Trilogy + started on 7/21/83 by SEM" + +^L + +"Buzzwords, Prepositions and Directions" + + + + + + + + + + + + + + + + + + + +^L + +"Game Commands" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + +^L + +"Real Verbs" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gverbs.zil b/gverbs.zil new file mode 100644 index 0000000..2244f94 --- /dev/null +++ b/gverbs.zil @@ -0,0 +1,2103 @@ + "Generic VERBS file for + The ZORK Trilogy + started on 7/25/83 by SEM" + +^L + +"Verb Functions for Game Commands" + +> +> +> + + + > + > + +> + > + > + + + > + +;"V-DIAGNOSE is in ACTIONS.ZIL" + + ) + (T )>> + + + + > + > + ) + (ELSE )>> + + + + + + + )>> + + + + ) + (T + )>> + + + ) + (T + )>> + +;"V-SCORE is in ACTIONS.ZIL" + + 1>> + + + > + + + + -2>> + > + + + ') + (<==? ,ZORK-NUMBER 2> + ') + (T + ')> + + 8> 0>> + )> + + *3777*>> + + > 23> + ) + (T + >)>> + > + + + + ) + (T + )>> + +^L + +"Real Verb Functions" + +> + +)) + + ) + (T + > + > + )>)> + > + > + )>)> + >> + + ) + (T + )>)>> + + + + '( 0> + + )) + (T + '( ))> + (T + )>) + (T + )>> + + + > + > + > + +> + ) + ( + > + ) + (> + ) + (> + ) + (T + % + ') + (T + ')>)>> + +> + +> + +> + + '( + )) + (T + '( ))> + ( + > + ) + ( + ) + (T + )>) + (T + )> + > + + + + ,M-ENTER> + > + +> + +> + +> + + + ) + (T + )>> + + + '( ,RECEPTACLE> + + )) + (T + '( ))> + ( + + > + + + + + ) + (T )> + ) + (T + + )>) + (T + )>> + +> + +> + +> + + + + ) + (T + )>> + +) "AUX" X TX) + ,PRSO> + )> + > + > + + + >>>> + + > + )> + + + ) + (T )> + + )>)> + + ) + ( + ) + (> >> + ) + (T + )>> + +> + >> + ) + (> + 0>>> + + + + >>> + )> + ) + (T + )>) + ( + + + ) + (T + )>) + (T + )>> + + + ) + (T + )>> + + + ) + (T + )>> + +> + + + ) + (T + )>) + (T + )>> + + + ) + ( + > + + + )> + + ) + (> + ) + (T + )>> + +> + + + )> + + ) + ( + ) + (T + )>> + + ,PRSO>> + + ) + ( + + ) + (T + + )>> + + + '> + ) + ( + + > + + + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + )>)>) + ( + ) + ( + )>) + (T + ')>> + +> + +> + +> + + )>> + + + )>> + +) (DRINK? <>) (NOBJ <>)) + > + > + ,WINNER>>> + ) + ( + ) + (T + + )> + ) + ( + + > + + + > + ) + ( + ) + (> + ) + (> + ) + (T + )>) + (> + )>> + + + > + + (MAX CNT ECH) FIX) + % + ' 0> + ,P-WORDLEN>>> + > 1>> + > 2> + + ) + (T + 1>> + > .MAX> + ) + (T + >)>> + )>>) + (T )>) + (T + ')>> + + + ')>) + (T + ')> +% + ' + + )> + + + > + + ) + (T + )>) + ;( + ) + ( + ) + ( + + + + ) + ( + + + + + ) + (ELSE + )>) + ( + > + + > + )> + ) + ( + > + + + ) + (ELSE + > + )>) + (ELSE + > + )>) + (T + ')>> + + + > + >)> + + + > + >> + )> + T> + +> + + + CR>) + ( + > + ) + (T + )>> + +> + +> + + >> + 1>> + + ) + (T + + )>)> + > + + )>> + + + + + ) + (> + + ) + (T + )>) + (T + )>> + +)) + + ) + ( + ) + ( + ) + ( + ) + ( + + > + ) + ( + ) + ( + ) + ( + ) + (T + )>> + +> + +> + +> + )>> + +> + ) + (T + )>> + +> + + ;"counts occurences of HELLO, SAILOR" + + + ) + (T + )>) + (T + CR>)>> + + + ') + (,WAND-ON + + > + + >>> + > + ) + (T + )>) + (T + ')> + > + > + > + +> + + + + + ) + (T + )> + ) + (T + )>> + +> + +> + + + ) + (T + )>> + + + > + ) + (T + + >)> + + + )>)>) + (T + )> + > + + + + ) + (T + + + + > + + )>)>) + (T + )> + > + + + ) + (T + )>> + +> + + + + ) + (T + )>) + (T + )>) + (> + > + ;NEXIT + ;CEXIT + >>>> + + >) + % + '( + + + )) + (T '( T))> + (T + )>) + (T + )>> + +> + +> + +> + +> + + + )>> + +> + + + + ) + (T + )> + ) + ( + + ) + ( + + > + ) + (T + )>) + (T + )>) + (T + )>> + + + + ) + (T + )>> + +> + +> + +> + +> + + + )>> + + + ) + (T + )>> + +> + + + '( + )) + (T + '( ))> + ( + >> + + + ) + (T + )> + )>> + + + + ) + (T + )>> + + + '( + + > + > + + + + + )) + (T + '( T))> + (T + )>> + +> + + + 0>>> + + ) + (T + + + > > + ) + (> + > + > + >> + + ) + (T + + + )>)>) + ( + + ) + (T + + )>) + (T + )>> + + + '( + > ,VEHBIT> + > + ) + (T + )>)) + (T '( T))> + (T + )>> + +> + +> + +> + + + + + + + ) + (T + )>) + % + '( + )) + (T + '( ))> + (T + )>> + + + '( + )) + (T + '( ))> + (T + )>> + + + '(>> + )) + (T + '( ))> + % + '( + )) + (T + '( ))> + (T + )>> + +> + +> + + + '( + )) + (T + '( + ))> + (T + )>> ;"That's easy for you to say..." + + + + >) + (T + + )> + > + + ) + ( + ) + ( + ) + ( > + > + > + ) + (> + > + + ) + (> + >> + ) + (T + + + + )>> + +> + + + + ) + ( + ) + (T + )>> + +> + +> + +> + + + ) + (>> + )>> + +> + ) + (T + CR>)>> + + + > + +> + + + > + > + > + +> + +> + + + ' + + )>) + (<==? ,ZORK-NUMBER 3> + ' + ,W?FROTZ> + > ,W?OZMOO>> + > + + + + ) + (T + )> + )>) + (T + ' + + )>)> + > + + >) + ( ,W?HELLO>> + > + )> + > + > + +> + + + ) + (T + )>> + + + > + +> + + + ) + (> + ) + ( + + + + + > + ) + (T + )> + ) + (T + )>) + (T + + ) + (T + )>)>) + (T + )>> + +> + + + ' + ,PATH) + (> + ,PSEUDO-OBJECT) + (T + ,HERE)>) + (<==? ,ZORK-NUMBER 2> + ' + ,PSEUDO-OBJECT) + (> + ,PSEUDO-OBJECT) + (T + ,HERE)>) + (T + ' + ,IN-LAKE) + (T + ,HERE)>)>>) + (T + )>>> + + CR>> + +> + +> + +> + +> + + + ) + (T + )> + > + +> + +> + + ) + (T + )>> + + ,VEHBIT> + > + ) + (T + )>> + +> + + + ) + (T + + )>> + + + <==? ,ZORK-NUMBER 2>> + '( + + ) + (T + )> + )) + (T + '( + ))> + % + '( + )) + (T + '( + ))> + (T + )>> + + + ) + (T + )>> + + + + ) + (T + )>) + ( ,CONTBIT> + ,OPENBIT>>> + + ) + (,PRSI + + > + ) + (>> + ) + (T + > + )>) + (> + )>> + + T> + + ) + (T + )>)>> + + + + >) + (T + )>) + (T + + > + > + )>> + +) "AUX" M) + #DECL ((OBJ) (M) ) + + > + ) + ( > + + ) + ( >> + + '(>> + + )) + (T + '( ))> + % + '( + + ,SCOL-ROOM> + + )) + (T + '( ))> + % + '( + > 1>>> + > + > + ) + (T + )> + )) + (T + '( ))> + % + '( + + )) + (T + '( ))> + (T + )>) + (.OBJ + ) + ( + ) + (T + CR>)>> + + + + + ) + ( + ) + (T )>)>> + +> + + + ) + (T + )>> + +> + + + '( + )) + (T + '( ))> + % + '( + )) + (T + '( ))> + (T + )>> + +> + )>> + +> + +> + +> + + + > 0> ) + ( )>> + > + + + + ) + (> + > ,UEXIT> + >) + ( + CR> + ) + ( + >> + ) + % + '( ,CP-MOVED> + )) + (T + '( ))> + (T + )>) + ( + > + >) + (> + + ) + (T + + )>) + ( + > ,OPENBIT> + >) + (> + + ) + (T + + + )>)>) + ( + + >> + + ) + % + '( + )) + (T + '( + ))> + (T + )>) + (T + + )>> + +> + + + > + ) + (T + )>> + +> + +> + ) + (T + + )>> + +> + +> + + + ') + (T + ')>> + +> + +> + +^L + +"Verb-Associated Routines" + +"Descriptions" + +> + +> + + + + )>)>> + +) "AUX" V? STR AV) + > + + + + )> + + % + ' + )>) + (T + ')> + >)> + > + + )> + % + ' + )>) + (T + ')> + + ;"Was " + + > ,VEHBIT> + )> + )> + > + > + ; + )> + ,M-LOOK>> + ) + (>> + ) + (T + ,M-FLASH>)> + > > + ,M-LOOK>)>)> + T> + +)) + + > -1>)>) + (T + )>> + +"DESCRIBE-OBJECT -- takes object and flag. if flag is true will print a +long description (fdesc or ldesc), otherwise will print short." + +> + +) AV) + + + ,M-OBJDESC>> + ) + ( + > + >> + >>> + ) + (<0? .LEVEL> + + + )> + ) + (T + > + + + ) + ( + )>)> + % + ' + > + )>) + (T + ')> + + > + > + )> + + > + )>> + +) (TWO? <>)) + > + > + >) + (ELSE + + )>)> + + > + ) + (ELSE + + >)> + + + > + )> + )>>)>> + +) (LEVEL 0) + "AUX" Y 1ST? SHIT AV STR (PV? <>) (INV? <>)) + >> )> + > > + T) + (ELSE >)> + + + > + ) + (ELSE + + ) + ( ) + () + (> + > + >> + > + + > + ;>)> + + ,P?DESCFCN>> + > + + >)>)>)> + >>)> + > + + > + > ;"not in Zork III" + )> + ) + () + (> + + >>> + > + + + )>)> + > + >)> + )> + ) + ( > + > ;"not in Zork III" + )>)> + >> + ) (T )>> + + + '( + )) + (T + '( ))> + ( + ) + (> + + >)> + + ) + ( + ) + (T + )>)>> + +> + >>> + +"Scoring" + + + + + + + +> + +> + > + % + ' + > + + + + )>) + (T + ')> + T> + +> 0> + + )>> + + + > + +"> + + ,W?YES ,W?Y> + ) + (T + )>> + +"Death" + +> + + + + + +;"JIGS-UP is in ACTIONS.ZIL" + +;"RANDOMIZE-OBJECTS is in ACTIONS.ZIL" + +;"KILL-INTERRUPTS is in ACTIONS.ZIL" + +"Object Manipulation" + + + + + + (CNT) FIX (OBJ) OBJECT) + + '(,DEAD + )> + )) + (T + '( + ))> + (> + CR>)> + ) + % + '( + > + + ) + (T + )> + )) + (T + '( + ))> + ( ,CONTBIT> + ,OPENBIT>>> + ;"Kludge for parser calling itake" + ) + ( ,WINNER>> + > ,LOAD-ALLOWED>> + + + ) + (T + )> + )> + ) + ( + > ,FUMBLE-NUMBER> + >> + + ) + (T + + + % + ' + + + )>)>) + (T + ')> + % + <==? ,ZORK-NUMBER 2>> + ') + (T + ')> + )>> + +> + ,WINNER>>> + + ) + (> + ,OPENBIT>>> + + ) + (T + > + )>> + +> + > + >)> + >> + )>>)> + .CNT> + +> + + > + >) + (T + >>)> + >> )>>)> + <+ .WT >> + +"Miscellaneous" + + + + + + + + + + + + + + + +> + + + > + ) + (T + CR>)>> + +> + +) + (T + )> + > + +) (WLOC ) + (AV <>) OLIT) + + + >)> + + > + + ) + ( + >> + + ) + ( + .LB + .AV + > + >> + + ) + ( + CR> + ) + (T + > + + > + )> + ) + (T + )> + + > + + + > + ) + % + '( + )) + (T + '( + ))> + (T + + ,VEHBIT> + >) + (T )> + + )>)> + + > + + >)> + ,M-ENTER> + + > ) + (> + ) + (.V? )> + )>> + +;"0 -> no next, 1 -> success, 2 -> failed move" + +> + > 2) + (T 1)>)>> + +)) + > .LEN> + ) + ( .ITM> + ) + (T + >>)>)>>> + + + > + +> + <- 2> 1>>> + +> + 1>>)>> + +> + + )> + + >> + ) + (>> + >)>>> + + + + >> + +> + ) + ( )>>> + +> ,LOW-DIRECTION> + >) + (ELSE + > + ,DEXIT> + .DOBJ>> + )>)>>> + + + > + + + > + +> + +> + +> + +> \ No newline at end of file diff --git a/zork1.zil b/zork1.zil new file mode 100644 index 0000000..651f1de --- /dev/null +++ b/zork1.zil @@ -0,0 +1,56 @@ +"ZORK1 for + Zork I: The Great Underground Empire + (c) Copyright 1983 Infocom, Inc. All Rights Reserved." + + + + + + + + + + + + + >> + +) "AUX" (TIM