commit 34cc828c4fa3b5e2581ea24c43bb8acb386d25d0 Author: historicalsource Date: Sat Apr 13 21:46:22 2019 -0400 Revision 88 (Original Source) 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