From a24d33a0ad2a36ca02d4ed5b5af0ef409ce9ae61 Mon Sep 17 00:00:00 2001 From: historicalsource Date: Sat, 13 Apr 2019 21:54:32 -0400 Subject: [PATCH] Final Revision --- README.md | 1 + alice.zabstr | 132 + alice.zap | 366 ++ alice.zil | 607 ++++ dungeon.zabstr | 147 + dungeon.zap | 367 ++ dungeon.zil | 679 ++++ globals.zabstr | 93 + globals.zap | 309 ++ globals.zil | 477 +++ mini2.chart | 2 + mini2.errors | 25 + mini2.record | 462 +++ mini2.serial | 1 + mini2.zap | 50 + mini2.zil | 35 + mini2.zip | Bin 0 -> 55690 bytes mini2dat.zap | 8455 +++++++++++++++++++++++++++++++++++++++++++++++ mini2freq.xzap | 200 ++ mini2pur.zap | 8 + mini2str.zap | 263 ++ misc.zabstr | 77 + misc.zap | 318 ++ misc.zil | 535 +++ parser.zabstr | 151 + parser.zap | 1600 +++++++++ parser.zil | 1483 +++++++++ princess.zabstr | 126 + princess.zap | 460 +++ princess.zil | 684 ++++ syntax.zil | 390 +++ verbs.zabstr | 158 + verbs.zap | 1818 ++++++++++ verbs.zil | 1388 ++++++++ volcano.zabstr | 131 + volcano.zap | 462 +++ volcano.zil | 686 ++++ wizard.zabstr | 171 + wizard.zap | 870 +++++ wizard.zil | 1220 +++++++ 40 files changed, 25407 insertions(+) create mode 100644 README.md create mode 100644 alice.zabstr create mode 100644 alice.zap create mode 100644 alice.zil create mode 100644 dungeon.zabstr create mode 100644 dungeon.zap create mode 100644 dungeon.zil create mode 100644 globals.zabstr create mode 100644 globals.zap create mode 100644 globals.zil create mode 100644 mini2.chart create mode 100644 mini2.errors create mode 100644 mini2.record create mode 100644 mini2.serial create mode 100644 mini2.zap create mode 100644 mini2.zil create mode 100644 mini2.zip create mode 100644 mini2dat.zap create mode 100644 mini2freq.xzap create mode 100644 mini2pur.zap create mode 100644 mini2str.zap create mode 100644 misc.zabstr create mode 100644 misc.zap create mode 100644 misc.zil create mode 100644 parser.zabstr create mode 100644 parser.zap create mode 100644 parser.zil create mode 100644 princess.zabstr create mode 100644 princess.zap create mode 100644 princess.zil create mode 100644 syntax.zil create mode 100644 verbs.zabstr create mode 100644 verbs.zap create mode 100644 verbs.zil create mode 100644 volcano.zabstr create mode 100644 volcano.zap create mode 100644 volcano.zil create mode 100644 wizard.zabstr create mode 100644 wizard.zap create mode 100644 wizard.zil diff --git a/README.md b/README.md new file mode 100644 index 0000000..e55b7c5 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# minizork2-1988 diff --git a/alice.zabstr b/alice.zabstr new file mode 100644 index 0000000..7420dde --- /dev/null +++ b/alice.zabstr @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + +> +> + + + + + + + + +ROBOT, | +A product of the Frobozz Magic Robot Company.")> + + + + + + + +> + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/alice.zap b/alice.zap new file mode 100644 index 0000000..e7f613b --- /dev/null +++ b/alice.zap @@ -0,0 +1,366 @@ + + + .FUNCT RIDDLE-ROOM-F,RARG + EQUAL? RARG,M-LOOK \?CCL3 + PRINTI "This bare room has an exit in the northwest corner. To the east is a great " + FSET? RIDDLE-DOOR,OPENBIT \?PRG11 + PRINTI "open" + JUMP ?PRG13 +?PRG11: PRINTI "closed" +?PRG13: PRINTI " door of stone. Above it is written: ""No one shall pass without solving this riddle:" + CRLF + CRLF + PRINT RIDDLE-TEXT + RTRUE +?CCL3: EQUAL? RARG,M-BEG \FALSE + EQUAL? PRSA,V?SAY \FALSE + FSET? RIDDLE-DOOR,OPENBIT /FALSE + GET P-LEXV,P-CONT + EQUAL? STACK,W?WELL /?CTR23 + ADD P-CONT,2 + GET P-LEXV,STACK + EQUAL? STACK,W?WELL \?PRG29 +?CTR23: ADD SCORE,5 >SCORE + FSET RIDDLE-DOOR,OPENBIT + PRINTI "With a deafening clap of thunder, the door opens." + CRLF + JUMP ?CND20 +?PRG29: PRINTI "A hollow laugh comes from the door." + CRLF +?CND20: SET 'P-CONT,FALSE-VALUE + SET 'QUOTE-FLAG,FALSE-VALUE + RTRUE + + + .FUNCT RIDDLE-PSEUDO + EQUAL? PRSA,V?READ,V?EXAMINE \FALSE + PRINT RIDDLE-TEXT + RTRUE + + + .FUNCT RIDDLE-DOOR-F + EQUAL? PRSA,V?OPEN \?PRD5 + FSET? RIDDLE-DOOR,OPENBIT \?PRG10 +?PRD5: EQUAL? PRSA,V?CLOSE \FALSE + FSET? RIDDLE-DOOR,OPENBIT \FALSE +?PRG10: PRINTR "It won't budge." + + + .FUNCT BUCKET-CONT + EQUAL? PRSA,V?TAKE \FALSE + IN? WINNER,BUCKET /FALSE + PRINTR "You must get in the bucket to reach it." + + + .FUNCT BUCKET-F,RARG=M-BEG + EQUAL? RARG,M-BEG \?CCL3 + EQUAL? PRSA,V?BURN \?CCL6 + EQUAL? PRSO,BUCKET \?CCL6 + PRINTR "The bucket appears to be fireproof." +?CCL6: EQUAL? PRSA,V?PUT,V?DROP \?CCL12 + EQUAL? PRSO,WATER \?CCL12 + EQUAL? PRSI,BUCKET \?CCL12 + IN? BUCKET,CIRCULAR-ROOM \?CCL12 + IN? WINNER,BUCKET /?CCL12 + MOVE BUCKET,TOP-OF-WELL + MOVE WATER,BUCKET + SET 'BUCKET-TOP-FLAG,TRUE-VALUE + CALL QUEUE,I-BUCKET,100 + PUT STACK,0,1 + PRINTR "The bucket swiftly rises up, and is gone." +?CCL12: EQUAL? PRSA,V?KICK \FALSE + CALL JIGS-UP,STR?172 + RSTACK +?CCL3: EQUAL? RARG,M-END \?CCL23 + IN? WATER,BUCKET \?CCL26 + ZERO? BUCKET-TOP-FLAG \?CCL26 + SET 'BUCKET-TOP-FLAG,TRUE-VALUE + SET 'EVAPORATED,FALSE-VALUE + CALL PASS-THE-BUCKET,TOP-OF-WELL + CALL QUEUE,I-BUCKET,100 + PUT STACK,0,1 + PRINTI "The bucket rises and" + PRINT STOPS + RTRUE +?CCL26: ZERO? BUCKET-TOP-FLAG /FALSE + IN? WATER,BUCKET /FALSE + ZERO? EVAPORATED /?PRG40 + PRINTI "The last of the water evaporates, and the bucket descends." + CRLF + CRLF + JUMP ?CND35 +?PRG40: PRINTI "The bucket descends and" + PRINT STOPS +?CND35: SET 'BUCKET-TOP-FLAG,FALSE-VALUE + CALL PASS-THE-BUCKET,CIRCULAR-ROOM + RSTACK +?CCL23: EQUAL? PRSA,V?CLIMB-ON \FALSE + CALL PERFORM,V?ENTER,PRSO + RTRUE + + + .FUNCT PASS-THE-BUCKET,R + MOVE BUCKET,R + IN? WINNER,BUCKET \FALSE + CALL GOTO,R + RSTACK + + + .FUNCT I-BUCKET + IN? WATER,BUCKET \FALSE + SET 'EVAPORATED,TRUE-VALUE + REMOVE WATER + RFALSE + + + .FUNCT WELL-F + EQUAL? PRSA,V?DROP,V?PUT,V?THROW \?CCL3 + FSET? PRSO,TAKEBIT \?CCL3 + MOVE PRSO,CIRCULAR-ROOM + PRINTI "The " + PRINTD PRSO + PRINTR " is now at the bottom of the well." +?CCL3: EQUAL? PRSA,V?CLIMB-DOWN,V?CLIMB \FALSE + PRINTR "You can't climb the well." + + + .FUNCT CRACK-PSEUDO + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It's a small, uninteresting crack." + + + .FUNCT ROBOT-F,RARG=M-OBJECT + EQUAL? WINNER,ROBOT \?CCL3 + EQUAL? PRSA,V?SGIVE /FALSE + EQUAL? PRSA,V?FOLLOW \?CCL8 + PRINTR """I'm too primitive. I can walk in any direction you order, though.""" +?CCL8: EQUAL? PRSA,V?MOVE,V?TAKE,V?RAISE \?CCL12 + EQUAL? PRSO,CAGE-OBJECT \?CCL12 + PRINTI "The robots pulverizes the cage to dust." + CRLF + CRLF + CALL INT,I-CAGE-DEATH + PUT STACK,0,0 + SET 'WINNER,ADVENTURER + FCLEAR ROBOT,NDESCBIT + FSET PALANTIR-1,TAKEBIT + MOVE ROBOT,DINGY-CLOSET + SET 'CAGE-SOLVE-FLAG,TRUE-VALUE + CALL GOTO,DINGY-CLOSET + RSTACK +?CCL12: EQUAL? PRSA,V?THROW,V?PUT,V?DROP \?CCL18 + CALL ACCESSIBLE?,ROBOT + ZERO? STACK /FALSE + PRINT B-W-C + IN? PRSO,ROBOT \?PRG29 + PRINTC 34 + CRLF + RFALSE +?PRG29: PRINTR " I don't have that!""" +?CCL18: EQUAL? PRSA,V?WALK /?CTR31 + EQUAL? PRSA,V?PUSH,V?TAKE \?CCL32 + FSET? PRSO,ACTORBIT /?CCL32 +?CTR31: CALL ACCESSIBLE?,ROBOT + ZERO? STACK /FALSE + PRINT B-W-C + PRINTC 34 + CRLF + RFALSE +?CCL32: CALL ACCESSIBLE?,ROBOT + ZERO? STACK /TRUE + PRINTR """My programming is insufficient for that task.""" +?CCL3: EQUAL? PRSA,V?CLOSE,V?LOOK-INSIDE,V?OPEN \?CCL47 + PRINTR "The robot has no access panel." +?CCL47: EQUAL? PRSA,V?GIVE \?CCL51 + EQUAL? PRSI,ROBOT \?CCL51 + MOVE PRSO,ROBOT + PRINTI "The robot accepts the " + PRINTD PRSO + PRINT PERIOD-CR + RTRUE +?CCL51: EQUAL? PRSA,V?MUNG,V?THROW \FALSE + PRINTI "The robot (being of shoddy construction) disintegrates before your eyes." + CRLF + EQUAL? PRSA,V?THROW \?CCL62 + PUSH PRSI + JUMP ?CND60 +?CCL62: PUSH PRSO +?CND60: REMOVE STACK + RTRUE + + + .FUNCT TRIANGULAR-BUTTON-F + EQUAL? PRSA,V?PUSH \FALSE + EQUAL? WINNER,ADVENTURER \?CCL6 + CALL JIGS-UP,STR?178 + RSTACK +?CCL6: ZERO? CAROUSEL-ON /?PRT7 + SET 'CAROUSEL-ON,0 + JUMP ?PRE9 +?PRT7: SET 'CAROUSEL-ON,1 +?PRE9: FSET? VIOLIN,INVISIBLE \?PRG15 + FCLEAR VIOLIN,INVISIBLE + FCLEAR CAROUSEL-ROOM,TOUCHBIT + PRINTR "You hear a distant thump." +?PRG15: PRINTR "Click." + + + .FUNCT CAGE-F,RARG + ZERO? CAGE-SOLVE-FLAG /FALSE + SET 'HERE,DINGY-CLOSET + RETURN HERE + + + .FUNCT I-CAGE-DEATH + EQUAL? HERE,DINGY-CLOSET,CAGE \FALSE + FSET PALANTIR-1,INVISIBLE + CALL JIGS-UP,STR?181 + RSTACK + + + .FUNCT ALICE-HOLE + EQUAL? PRSA,V?EXAMINE,V?ENTER \?CCL3 + CALL DO-WALK,P?EAST + RSTACK +?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL5 + PRINT ONLY-DARKNESS + RTRUE +?CCL5: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,PSEUDO-OBJECT \FALSE + PRINTR "It doesn't fit." + + + .FUNCT GREEN-CAKE-F,F,N + EQUAL? PRSA,V?EAT \?CCL3 + EQUAL? PRSO,GREEN-CAKE \?CCL3 + EQUAL? HERE,TEA-ROOM \?CCL3 + REMOVE GREEN-CAKE + FSET ALICE-TABLE,INVISIBLE + FSET ROBOT,INVISIBLE + FIRST? HERE >F /?PRG8 +?PRG8: ZERO? F /?PRG17 + NEXT? F >N /?BOGUS12 +?BOGUS12: EQUAL? F,ADVENTURER /?CND13 + FSET? F,TAKEBIT \?CND13 + FSET F,NONLANDBIT + FSET F,TRYTAKEBIT + MOVE F,POSTS-ROOM +?CND13: SET 'F,N + JUMP ?PRG8 +?PRG17: PRINTI "Suddenly, the room becomes huge (although your possessions retain their normal size)." + CRLF + CRLF + CALL GOTO,POSTS-ROOM + RSTACK +?CCL3: CALL CAKE-CRUMBLE + RSTACK + + + .FUNCT CAKE-F,F,N + EQUAL? PRSA,V?READ \?CCL3 + FSET? PRSO,NONLANDBIT \?PRG9 + PRINTR "The cake is now too tall to read." +?PRG9: PRINTI "The letters are tiny; all you can make out is ""E" + EQUAL? PRSO,RED-CAKE \?CCL13 + PRINTI "VA" + JUMP ?PRG22 +?CCL13: EQUAL? PRSO,ORANGE-CAKE \?PRG20 + PRINTI "XP" + JUMP ?PRG22 +?PRG20: PRINTI "NL" +?PRG22: PRINTR """." +?CCL3: EQUAL? PRSA,V?EAT \?CCL25 + EQUAL? HERE,TEA-ROOM,POSTS-ROOM,POOL-ROOM \?CCL25 + EQUAL? PRSO,ORANGE-CAKE \?CCL30 + REMOVE PRSO + CALL JIGS-UP,STR?186 + RSTACK +?CCL30: EQUAL? PRSO,RED-CAKE \?CCL32 + REMOVE PRSO + CALL JIGS-UP,STR?187 + RSTACK +?CCL32: EQUAL? PRSO,BLUE-CAKE \FALSE + REMOVE PRSO + PRINTI "The room shrinks." + CRLF + CRLF + EQUAL? HERE,POSTS-ROOM \?CCL39 + FCLEAR ROBOT,INVISIBLE + FCLEAR ALICE-TABLE,INVISIBLE + FSET POSTS,INVISIBLE + FIRST? HERE >F /?PRG41 +?PRG41: ZERO? F /?REP42 + NEXT? F >N /?BOGUS45 +?BOGUS45: EQUAL? F,ADVENTURER /?CND46 + FSET? F,TAKEBIT \?CND46 + FCLEAR F,NONLANDBIT + FCLEAR F,TRYTAKEBIT + MOVE F,TEA-ROOM +?CND46: SET 'F,N + JUMP ?PRG41 +?REP42: CALL GOTO,TEA-ROOM + RSTACK +?CCL39: CALL JIGS-UP,STR?188 + RSTACK +?CCL25: EQUAL? PRSA,V?PUT,V?THROW \?CCL51 + EQUAL? PRSO,ORANGE-CAKE \?CCL51 + EQUAL? HERE,TEA-ROOM,POSTS-ROOM,POOL-ROOM \?CCL51 + REMOVE PRSO + CALL JIGS-UP,STR?186 + RSTACK +?CCL51: EQUAL? PRSA,V?PUT,V?THROW \?CCL56 + EQUAL? PRSI,POOL \?CCL56 + EQUAL? PRSO,BLUE-CAKE,ORANGE-CAKE \?CND59 + PRINTI """Splash!""" + CRLF + REMOVE PRSO + RTRUE +?CND59: MOVE PRSO,HERE + REMOVE PRSI + FCLEAR CANDY,INVISIBLE + PRINTR "The pool evaporates, leaving a damp (but still valuable) package of rare candies." +?CCL56: CALL CAKE-CRUMBLE + RSTACK + + + .FUNCT CAKE-CRUMBLE,CAKE + FSET? PRSO,FOODBIT \?CCL3 + SET 'CAKE,PRSO + JUMP ?CND1 +?CCL3: SET 'CAKE,PRSI +?CND1: EQUAL? HERE,TEA-ROOM,POSTS-ROOM,POOL-ROOM /FALSE + EQUAL? HERE,MACHINE-ROOM,DINGY-CLOSET,TOP-OF-WELL /FALSE + EQUAL? HERE,CAGE /FALSE + REMOVE CAKE + PRINTI "The " + PRINTD CAKE + PRINTR " crumbles to dust." + + + .FUNCT POSTS-ROOM-F,RARG + EQUAL? RARG,M-BEG \FALSE + EQUAL? PRSA,V?TAKE \FALSE + FSET? PRSO,NONLANDBIT \FALSE + PRINTI "The " + PRINTD PRSO + PRINTR " is now huge. You have no hope of taking it." + + + .FUNCT POOL-F + EQUAL? PRSA,V?DRINK \?CCL3 + CALL PERFORM,V?DRINK,WATER + RTRUE +?CCL3: EQUAL? PRSA,V?LOOK-UNDER \?CCL5 + PRINTR "You can't make out what's below the surface." +?CCL5: EQUAL? PRSA,V?ENTER \FALSE + CALL V-SWIM + RSTACK + + + .FUNCT CANDY-F + EQUAL? PRSA,V?READ,V?EXAMINE \?CCL3 + PRINTR """Frobozz Magic Candy Company -- Special Assortment! Candied Grasshoppers, Chocolated Ants, and Worms Glacee!""" +?CCL3: EQUAL? PRSA,V?OPEN,V?EAT \FALSE + PRINTR "It's too rich for your tastes." + + .ENDI diff --git a/alice.zil b/alice.zil new file mode 100644 index 0000000..44db9fc --- /dev/null +++ b/alice.zil @@ -0,0 +1,607 @@ +"ALICE for + Mini-Zork II: The Wizard of Frobozz + (c) Copyright 1988 Infocom, Inc. All Rights Reserved." + + + + + + + ) + (T + )> + ) + ( + + + ) + ( ,W?WELL> + > ,W?WELL>> + > + + ) + (T + )> + > + > + )>)>> + + + )>> + + + + + >> + + >> + )>> + + + + + + + + + + + >> + )>> + + + + > + ) + ( + + + + >> + + + + > + ) + ( + )>) + ( + + > + + > + + > + ) + (>> + ) + (T + )> + > + )>) + ( + + )>> + + + + )>> + +> + +> + + + + )> + > + + + + + > + + ) + ( + )>> + + + + + )>> + + + + + + + + ) + ( + ) + ( + > + + > + + + + + + ) + ( + > + ) + (T + + + + ) + (T + )>)>) + ( + + >>> + > + ) + (T + )> + ) + (T + + )> + )>) + ( + ) + ( + > + + ) + ( + + ,PRSI) + (T ,PRSO)>>)>> + +ROBOT, | +A product of the Frobozz Magic Robot Company.")> + + + + + + + + + + ) + (T + > + + + + ) + (T + )>)>)>> + + + + + + + +> + +)>> + + + + )>> + + + + + ) + ( + ) + ( + > + )>> + + + + + + + + + + > + + + + > + + )> + > + > + > + + + )> + > + + ) + (T + )>> + + + + + + + + + + ) + (T + + + ) + ( + ) + (T + )> + )>) + ( + > + + + ) + ( + + ) + ( + + + + + + + > + + )> + > + > + > + + + )> + > + ) + (T + )>)>) + ( + + > + + ) + ( + > + + + + )> + + + + ) + (T + )>> + + + ) + (T + )> + + + > + ) + (T + + )>> + + + + + + > + )>> + + + + + + + + + + ) + ( + ) + ( + )>> + + + + + ) + ( + )>> \ No newline at end of file diff --git a/dungeon.zabstr b/dungeon.zabstr new file mode 100644 index 0000000..6d7c83d --- /dev/null +++ b/dungeon.zabstr @@ -0,0 +1,147 @@ + + + + +> + +> + + + + +> + + + +> + + + + + + + +> + + + + + + + + + + + + + +> + + + + + + + + +> +> +> +> + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dungeon.zap b/dungeon.zap new file mode 100644 index 0000000..7f10245 --- /dev/null +++ b/dungeon.zap @@ -0,0 +1,367 @@ + + + .FUNCT LAMP-F + EQUAL? PRSA,V?THROW \?CCL3 + EQUAL? PRSO,LAMP \?CCL3 + PRINTR "You'd break it!" +?CCL3: EQUAL? PRSA,V?LAMP-OFF,V?LAMP-ON,V?EXAMINE \?CCL9 + ZERO? LAMP-BURNED-OUT /?CCL9 + PRINTR "The lamp has burned out." +?CCL9: EQUAL? PRSA,V?LAMP-ON \?CCL15 + CALL INT,I-LANTERN + PUT STACK,0,1 + RFALSE +?CCL15: EQUAL? PRSA,V?LAMP-OFF \?CCL17 + CALL INT,I-LANTERN + PUT STACK,0,0 + RFALSE +?CCL17: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "The lamp is o" + FSET? LAMP,ONBIT \?PRG27 + PRINTC 110 + JUMP ?PRG29 +?PRG27: PRINTI "ff" +?PRG29: PRINT PERIOD-CR + RTRUE + + + .FUNCT I-LANTERN,TICK,TBL + VALUE 'LAMP-TABLE >TBL + GET TBL,0 >TICK + CALL QUEUE,I-LANTERN,TICK + PUT STACK,0,1 + ZERO? TICK \?CND1 + FCLEAR LAMP,ONBIT + SET 'LAMP-BURNED-OUT,TRUE-VALUE +?CND1: CALL ACCESSIBLE?,LAMP + ZERO? STACK /?CND3 + ZERO? TICK \?PRG10 + PRINTI "You'd better have more light than from the " + PRINTD LAMP + PRINT PERIOD-CR + JUMP ?CND3 +?PRG10: GET TBL,1 + PRINT STACK + CRLF +?CND3: ZERO? TICK /FALSE + ADD TBL,4 >LAMP-TABLE + RETURN LAMP-TABLE + + + .FUNCT CAROUSEL-ROOM-F,RARG + EQUAL? RARG,M-LOOK \?CCL3 + PRINTI "Eight identical passages leave this large circular room. The ceiling is lost in gloom." + ZERO? CAROUSEL-ON /?CND6 + PRINTR " A loud whirring sound comes from all around, and you feel disoriented." +?CND6: CRLF + RTRUE +?CCL3: ZERO? CAROUSEL-ON /FALSE + EQUAL? RARG,M-BEG \FALSE + EQUAL? PRSA,V?WALK \FALSE + EQUAL? PRSO,P?DOWN,P?UP /FALSE + PRINTI "You're not sure which direction is which..." + CRLF + CRLF + EQUAL? PRSO,P?WEST /?CTR19 + RANDOM 100 + GRTR? 80,STACK \FALSE +?CTR19: CALL PICK-ONE,CAROUSEL-EXITS + CALL GOTO,STACK + RSTACK + + + .FUNCT VIOLIN-F + EQUAL? PRSA,V?PLAY \FALSE + EQUAL? PRSO,VIOLIN \FALSE + PRINTR "An offensive noise issues from the violin." + + + .FUNCT BILLS-F + EQUAL? PRSA,V?BURN \FALSE + PRINTI "Nothing like having money to burn! " + RFALSE + + + .FUNCT MENHIR-ROOM-F,RARG + EQUAL? RARG,M-FLASH \?CCL3 + ZERO? MENHIR-POSITION /?CCL3 + CALL DESCRIBE-MENHIR + RSTACK +?CCL3: EQUAL? RARG,M-LOOK \FALSE + PRINTI "Large limestone chunks lie about this former quarry, which appears to have produced menhirs (standing stones). Obvious passages lead north and south." + CRLF + IN? MENHIR,LOCAL-GLOBALS \TRUE + CALL DESCRIBE-MENHIR + RTRUE + + + .FUNCT DESCRIBE-MENHIR + EQUAL? HERE,MENHIR-ROOM \?PRG23 + EQUAL? MENHIR-POSITION,FALSE-VALUE \?CCL6 + PRINTR "One large menhir blocks a dark opening leading southwest." +?CCL6: EQUAL? MENHIR-POSITION,1 \?CCL10 + PRINTR "A menhir lies near a southwest passage." +?CCL10: EQUAL? MENHIR-POSITION,2 \?CCL14 + PRINTR "A dark opening leads southwest." +?CCL14: EQUAL? MENHIR-POSITION,3 \?PRG21 + PRINTR "There is a huge menhir here." +?PRG21: PRINTR "A huge menhir is floating in midair above a southwest passage." +?PRG23: PRINTR "A dark opening leads southwest." + + + .FUNCT GLOBAL-MENHIR-F + PRINTR "It's not here." + + + .FUNCT MENHIR-F + EQUAL? PRSA,V?LOOK-BEHIND,V?LOOK-UNDER \?CCL3 + ZERO? MENHIR-POSITION \?CCL3 + PRINTR "There's a dark passage beyond the menhir." +?CCL3: EQUAL? PRSA,V?TURN,V?MOVE,V?TAKE \?CCL9 + PRINTR "The menhir weighs many tons!" +?CCL9: EQUAL? PRSA,V?READ \?CCL13 + PRINTR """F""" +?CCL13: EQUAL? PRSA,V?EXAMINE \?CCL17 + PRINTR "The menhir is carved with an ornate letter ""F""." +?CCL17: EQUAL? PRSA,V?ENCHANT \?CCL21 + EQUAL? SPELL-USED,W?FLOAT \?CCL21 + SET 'MENHIR-POSITION,3 + PRINTR "The menhir floats majestically into the air. The passage beyond beckons invitingly." +?CCL21: EQUAL? PRSA,V?DISENCHANT \FALSE + EQUAL? SPELL-USED,W?FLOAT \FALSE + SET 'MENHIR-POSITION,FALSE-VALUE + EQUAL? HERE,MENHIR-ROOM,KENNEL \FALSE + PRINTR "The menhir sinks to the ground." + + + .FUNCT COLLAR-F + EQUAL? PRSA,V?TAKE \?CCL3 + ZERO? CERBERUS-LEASHED /?CCL3 + CALL JIGS-UP,STR?127 + RSTACK +?CCL3: EQUAL? PRSA,V?ENCHANT \FALSE + EQUAL? SPELL-USED,W?FLOAT \FALSE + CALL PERFORM,V?ENCHANT,CERBERUS + RTRUE + + + .FUNCT TOMB-PSEUDO + EQUAL? PRSA,V?ENTER \FALSE + CALL DO-WALK,P?SOUTH + RSTACK + + + .FUNCT GLOBAL-CERBERUS-F + PRINTR "He's not here." + + + .FUNCT CERBERUS-F + EQUAL? PRSA,V?RAISE,V?RUB,V?WAVE \?CCL3 + EQUAL? PRSO,WAND \?CCL3 + PRINTI "The dog looks puzzled." + CRLF + RFALSE +?CCL3: ZERO? WAND-ON /?CCL9 + EQUAL? PRSA,V?INCANT,V?SAY /FALSE +?CCL9: CALL HELLO?,CERBERUS + ZERO? STACK /?CCL13 + ZERO? CERBERUS-LEASHED /?PRG19 + PRINTR """Arf! Arf!""" +?PRG19: PRINTR """Grrrr!""" +?CCL13: EQUAL? PRSA,V?MUNG,V?ATTACK \?CCL22 + ZERO? CERBERUS-LEASHED /?PRG28 + REMOVE CERBERUS + PRINTR "With a quiet bark of disappointment, the creature expires into a small pile of dust which blows away into nothing." +?PRG28: PRINTR "The maddened dog-thing snaps at you viciously." +?CCL22: EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL31 + EQUAL? PRSO,COLLAR \?CCL31 + SET 'CERBERUS-LEASHED,TRUE-VALUE + MOVE COLLAR,CERBERUS + FSET COLLAR,NDESCBIT + FSET COLLAR,TRYTAKEBIT + PUTP CERBERUS,P?LDESC,STR?131 + PRINTR "All three heads begin licking your face, and its huge tail wags enthusiastically, almost blowing you over from the breeze it creates." +?CCL31: EQUAL? PRSA,V?ENCHANT \?CCL37 + EQUAL? SPELL-USED,W?FLOAT \?CCL40 + SET 'SPELL-HANDLED?,TRUE-VALUE + PRINTR "The huge dog rises an inch off the ground, for a moment." +?CCL40: EQUAL? SPELL-USED,W?FEEBLE \FALSE + PRINTR "What an effect! He now has the strength of just one elephant, rather than ten!" +?CCL37: ZERO? CERBERUS-LEASHED \?CCL48 + PRINTR "The three-headed dog snaps at you viciously!" +?CCL48: ZERO? CERBERUS-LEASHED /FALSE + EQUAL? PRSA,V?RUB \FALSE + PRINTR "The dog slobbers and whines with uncontained joy." + + + .FUNCT HEADS-F + EQUAL? PRSA,V?TELL,V?HELLO \?CCL3 + PRINTR "Dead Flatheads tell no tales." +?CCL3: EQUAL? PRSA,V?RUB,V?ATTACK,V?KICK /?CCL7 + EQUAL? PRSA,V?BURN,V?TAKE,V?OPEN \FALSE +?CCL7: CALL JIGS-UP,STR?133 + RSTACK + + + .FUNCT CRYPT-OBJECT-F + EQUAL? PRSA,V?OPEN \FALSE + PRINTR "The crypt is sealed for all time." + + + .FUNCT ZORK3-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "A rough-hewn stair leads down into darkness. " + IN? WAND,WINNER \?CCL8 + PRINTI "The wand vibrates and are compelled downward. There is a burst of light, and you tumble down the staircase! At the bottom, a vast red-lit hall, guarded by sinister statues, is visible far ahead. + +You have conquered the Wizard of Frobozz and become master of his domain, but the final challenge awaits! (The Zork Trilogy concludes with ""Zork III: The Dungeon Master"".)" + CRLF + CRLF + CALL FINISH + RSTACK +?CCL8: CALL JIGS-UP,STR?135 + RSTACK + + + .FUNCT LEDGE-IN-RAVINE-F,RARG + EQUAL? RARG,M-LOOK \?CCL3 + PRINTI "To the south, a stream runs through a narrow ravine. It looks as if you could scramble down to the stream. A smokey odor drifts in from the west. " + CALL P-DOOR,STR?136 + RSTACK +?CCL3: EQUAL? PRSA,V?LOOK /FALSE + CALL PCHECK + RFALSE + + + .FUNCT P-DOOR,STR + ZERO? PLOOK-FLAG /?PRG3 + SET 'PLOOK-FLAG,FALSE-VALUE + RFALSE +?PRG3: PRINTI "On the " + PRINT STR + PRINTI " side of the room is an oak door with a small barred window and a formidable lock (with keyhole)." + ZERO? MUD-FLAG /?CND5 + PRINTC 32 + PRINT PLACE-MAT-VISIBLE + ZERO? MATOBJ /?CND5 + PRINTI " Lying on the place mat is a " + PRINTD MATOBJ + PRINTR "." +?CND5: CRLF + RTRUE + + + .FUNCT PCHECK + SET 'PLOOK-FLAG,FALSE-VALUE + IN? KEY,KEYHOLE-2 \?CCL3 + FSET KEY,NDESCBIT + JUMP ?CND1 +?CCL3: FCLEAR KEY,NDESCBIT +?CND1: CALL HELD?,PLACE-MAT + ZERO? STACK /?CND4 + SET 'MUD-FLAG,FALSE-VALUE +?CND4: ZERO? MUD-FLAG /?CCL8 + MOVE PLACE-MAT,HERE + FSET PLACE-MAT,NDESCBIT + RTRUE +?CCL8: FCLEAR PLACE-MAT,NDESCBIT + RTRUE + + + .FUNCT DREARY-ROOM-F,RARG + EQUAL? RARG,M-LOOK \?CCL3 + PRINTI "The room is eerily lit by a red glow emanating from a crack in one wall. The light falls upon a dusty wooden table. " + CALL P-DOOR,STR?137 + RSTACK +?CCL3: CALL PCHECK + RFALSE + + + .FUNCT PDOOR-F,K + EQUAL? PRSA,V?LOOK-UNDER \?CCL3 + ZERO? MUD-FLAG /?CCL3 + PRINT PLACE-MAT-VISIBLE + CRLF + RTRUE +?CCL3: EQUAL? PRSA,V?UNLOCK \?CCL9 + EQUAL? PRSI,KEY \?CCL12 + SET 'PUNLOCK-FLAG,TRUE-VALUE + PRINTR "The door is now unlocked." +?CCL12: EQUAL? PRSI,GOLD-KEY \?PRG19 + PRINT DOESNT-FIT-LOCK + RTRUE +?PRG19: CALL PICK-ONE,YUKS + PRINT STACK + CRLF + RTRUE +?CCL9: EQUAL? PRSA,V?LOCK \?CCL22 + EQUAL? PRSI,KEY \?CCL25 + SET 'PUNLOCK-FLAG,FALSE-VALUE + PRINTR "The door is locked." +?CCL25: EQUAL? PRSI,GOLD-KEY \?PRG32 + PRINT DOESNT-FIT-LOCK + RTRUE +?PRG32: CALL PICK-ONE,YUKS + PRINT STACK + CRLF + RTRUE +?CCL22: EQUAL? PRSA,V?PUT-UNDER \?CCL35 + EQUAL? PRSO,ROBOT-LABEL \?CCL38 + PRINTI "The tiny paper vanishes under the door." + CRLF + EQUAL? HERE,LEDGE-IN-RAVINE \?CCL43 + PUSH DREARY-ROOM + JUMP ?CND41 +?CCL43: PUSH LEDGE-IN-RAVINE +?CND41: MOVE PRSO,STACK + RTRUE +?CCL38: EQUAL? PRSO,NEWSPAPER \FALSE + PRINTR "The newspaper crumples up and won't go under the door." +?CCL35: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE + ZERO? PUNLOCK-FLAG /?PRG53 + CALL OPEN-CLOSE + RSTACK +?PRG53: PRINTR "The door is locked." + + + .FUNCT PWINDOW-F + EQUAL? PRSA,V?LOOK-INSIDE \?CCL3 + SET 'PLOOK-FLAG,TRUE-VALUE + FSET? PDOOR,OPENBIT \?CCL6 + PRINTR "The door is open!" +?CCL6: EQUAL? HERE,DREARY-ROOM \?CCL11 + PUSH LEDGE-IN-RAVINE + JUMP ?CND9 +?CCL11: PUSH DREARY-ROOM +?CND9: CALL GO&LOOK,STACK + RSTACK +?CCL3: EQUAL? PRSA,V?ENTER \FALSE + PRINTR "Perhaps if you were diced...." + + + .FUNCT PKEYHOLE-F + EQUAL? PRSA,V?LOOK-INSIDE \?CCL3 + PRINTI "You can" + IN? KEY,KEYHOLE-2 /?PRG13 + EQUAL? HERE,DREARY-ROOM \?CCL12 + PUSH LEDGE-IN-RAVINE + JUMP ?CND10 +?CCL12: PUSH DREARY-ROOM +?CND10: CALL LIT?,STACK + ZERO? STACK \?PRG15 +?PRG13: PRINTI "'t" +?PRG15: PRINTR " see light through the keyhole." +?CCL3: EQUAL? PRSA,V?PUT \FALSE + IN? KEY,KEYHOLE-2 \?CCL21 + EQUAL? PRSO,LETTER-OPENER \?PRG29 + ZERO? MUD-FLAG /?CND25 + SET 'MATOBJ,KEY +?CND25: MOVE KEY,DREARY-ROOM + PRINTR "There is a faint thud behind the door." +?PRG29: PRINTI "The " + PRINTD PRSO + PRINTR " doesn't fit." +?CCL21: CALL PERFORM,V?UNLOCK,PDOOR,PRSO + RTRUE + + .ENDI diff --git a/dungeon.zil b/dungeon.zil new file mode 100644 index 0000000..4b4c8ba --- /dev/null +++ b/dungeon.zil @@ -0,0 +1,679 @@ +"DUNGEON for + Mini-Zork II: The Wizard of Frobozz + (c) Copyright 1988 Infocom, Inc. All Rights Reserved." + + + + + + + > + ) + ( + ,LAMP-BURNED-OUT> + ) + ( + > + ) + ( + > + ) + ( + + + ) + (T + )> + )>> + +> + +)) + >>> + + + )> + + + ) + (T + CR>)>)> + > + >)>> + +> + + + + + + + + + +> + + + + + + + + )> + ) + ( + + >> + + + > + >) + (T + )>)>> + +> + + + + + > + )>> + + + + + + + + )>> + + + + + ,MENHIR-POSITION> + ) + ( + + + )> + )>> + +> + + + > + ) + ( + ) + ( + ) + ( + ) + (T + )> + ) + (T + )>> + + + +> + + + + + > + ) + ( + ) + ( + ) + ( + ) + ( + > + + ) + ( + > + > + + )>)>> + + + + + + + ,CERBERUS-LEASHED> + ) + ( + > + + )>> + + + + + )>> + + + +> + + + +> + + + > + + ) + (> + ) + ( + ) + (T + )>) + ( + + ) + (T + )>) + ( + > + + + + + + ) + ( + + + ) + ( + )>) + ( + ) + (> + )>> + + + + + + + ) + ( + )>> + + + + + )>> + + + + + + + + ) + (T + )>)>> +\ +;"blue palantir puzzle (the old mat-under-the-door trick)" + +> + +> + +> + +> + + + + + + ) + (> + + )>> + +> + )> + + + )>)> + > + +> + + ) + (T + )> + + >)> ;"HUH?" + + ) + (T + )>> + + + + + + ) + (T + + )>> + + + + + ,MUD-FLAG> + ) + ( + + + ) + ( + ) + (T + CR>)>) + ( + + > + ) + ( + ) + (T + CR>)>) + ( + + + + ,DREARY-ROOM) + (T + ,LEDGE-IN-RAVINE)>>) + ( + )>) + ( + ) + (T + )>)>> + + + + + + + ) + (T + + ,LEDGE-IN-RAVINE) + (T + ,DREARY-ROOM)>>)>) + ( + )>> + + + + + + + + + + + + + + ,LEDGE-IN-RAVINE) + (T + ,DREARY-ROOM)>>>> + )> + ) + ( + + + )> + + ) + (T + )>) + (T + + )>)>> + + \ No newline at end of file diff --git a/globals.zabstr b/globals.zabstr new file mode 100644 index 0000000..85638df --- /dev/null +++ b/globals.zabstr @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> +> + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/globals.zap b/globals.zap new file mode 100644 index 0000000..d01fc9a --- /dev/null +++ b/globals.zap @@ -0,0 +1,309 @@ + + + .FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ + EQUAL? PRSO,NOT-HERE-OBJECT \?CCL3 + EQUAL? PRSI,NOT-HERE-OBJECT \?CCL3 + PRINTR "Those things aren't here!" +?CCL3: EQUAL? PRSO,NOT-HERE-OBJECT \?CCL9 + SET 'TBL,P-PRSO + JUMP ?CND1 +?CCL9: SET 'TBL,P-PRSI + SET 'PRSO?,FALSE-VALUE +?CND1: SET 'P-CONT,FALSE-VALUE + SET 'QUOTE-FLAG,FALSE-VALUE + EQUAL? WINNER,ADVENTURER \?PRG17 + PRINTI "You can't see any " + CALL NOT-HERE-PRINT,PRSO? + PRINTR " here!" +?PRG17: PRINTI "The " + PRINTD WINNER + PRINTI " seems confused. ""I don't see any " + CALL NOT-HERE-PRINT,PRSO? + PRINTR " here!""" + + + .FUNCT NOT-HERE-PRINT,PRSO?,?TMP1 + ZERO? P-OFLAG /?CCL3 + ZERO? P-XADJ /?CND4 + PRINTB P-XADJN +?CND4: ZERO? P-XNAM /FALSE + PRINTB P-XNAM + RTRUE +?CCL3: ZERO? PRSO? /?CCL10 + GET P-ITBL,P-NC1 >?TMP1 + GET P-ITBL,P-NC1L + CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE + RSTACK +?CCL10: GET P-ITBL,P-NC2 >?TMP1 + GET P-ITBL,P-NC2L + CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE + RSTACK + + + .FUNCT GROUND-F + EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE + EQUAL? PRSI,GROUND \FALSE + CALL PERFORM,V?DROP,PRSO + RTRUE + + + .FUNCT WATER-F,AV,W,PI? + EQUAL? PRSA,V?SGIVE /FALSE + EQUAL? PRSA,V?ENTER \?CCL5 + CALL PERFORM,V?SWIM,PRSO + RTRUE +?CCL5: EQUAL? PRSA,V?FILL \?CCL7 + SET 'W,PRSI + SET 'PRSA,V?PUT + SET 'PRSI,PRSO + SET 'PRSO,W + SET 'PI?,FALSE-VALUE + JUMP ?CND1 +?CCL7: EQUAL? PRSO,GLOBAL-WATER,WATER \?CCL9 + SET 'W,PRSO + SET 'PI?,FALSE-VALUE + JUMP ?CND1 +?CCL9: ZERO? PRSI /?CND1 + SET 'W,PRSI + SET 'PI?,TRUE-VALUE +?CND1: EQUAL? W,GLOBAL-WATER \?CND11 + SET 'W,WATER + EQUAL? PRSA,V?PUT,V?TAKE \?CND11 + REMOVE W +?CND11: ZERO? PI? /?CCL17 + SET 'PRSI,W + JUMP ?CND15 +?CCL17: SET 'PRSO,W +?CND15: LOC WINNER >AV + FSET? AV,VEHBIT /?CND18 + SET 'AV,FALSE-VALUE +?CND18: EQUAL? PRSA,V?PUT,V?TAKE \?CCL22 + ZERO? PI? \?CCL22 + ZERO? AV /?CCL27 + EQUAL? AV,PRSI \?CCL27 + CALL PUDDLE,AV + RSTACK +?CCL27: ZERO? AV /?CCL31 + ZERO? PRSI \?CCL31 + IN? W,AV /?CCL31 + CALL PUDDLE,AV + RSTACK +?CCL31: ZERO? PRSI /?CCL36 + EQUAL? PRSI,TEAPOT /?CCL36 + PRINTI "The water leaks out of the " + PRINTD PRSI + PRINTI " and evaporates immediately." + CRLF + REMOVE W + RTRUE +?CCL36: IN? TEAPOT,WINNER \?CCL42 + FIRST? TEAPOT /?PRG48 + MOVE WATER,TEAPOT + PRINTR "The teapot is now full of water." +?PRG48: PRINTR "The teapot isn't currently empty." +?CCL42: IN? PRSO,TEAPOT \?PRG55 + EQUAL? PRSA,V?TAKE \?PRG55 + ZERO? PRSI \?PRG55 + SET 'PRSO,TEAPOT + CALL ITAKE + SET 'PRSO,W + RETURN PRSO +?PRG55: PRINTR "The water slips through your fingers." +?CCL22: ZERO? PI? /?CCL58 + PRINTR "Nice try." +?CCL58: EQUAL? PRSA,V?GIVE,V?DROP \?CCL62 + EQUAL? PRSO,WATER \?CND63 + CALL HELD?,WATER + ZERO? STACK \?CND63 + PRINTR "You don't have any water." +?CND63: REMOVE WATER + ZERO? AV /?PRG72 + CALL PUDDLE,AV + RSTACK +?PRG72: PRINTI "The water spills to the floor and evaporates." + CRLF + REMOVE WATER + RTRUE +?CCL62: EQUAL? PRSA,V?THROW \FALSE + PRINTI "The water splashes on the walls and evaporates." + CRLF + REMOVE WATER + RTRUE + + + .FUNCT PUDDLE,AV + PRINTI "There is now a puddle in the bottom of the " + PRINTD AV + PRINT PERIOD-CR + MOVE PRSO,AV + RTRUE + + + .FUNCT GRUE-F + EQUAL? PRSA,V?EXAMINE \?CCL3 + PRINTR "The grue is a sinister, lurking presence in the dark places of the earth. Its favorite diet is adventurers, but its insatiable appetite is tempered by its fear of light." +?CCL3: EQUAL? PRSA,V?FIND \FALSE + PRINTR "There's probably one lurking in the darkness nearby. Don't let your light go out!" + + + .FUNCT ME-F + EQUAL? PRSA,V?TELL \?CCL3 + SET 'P-CONT,FALSE-VALUE + SET 'QUOTE-FLAG,FALSE-VALUE + PRINTR "Talking to yourself is a sign of impending mental collapse." +?CCL3: EQUAL? PRSA,V?GIVE \?CCL7 + EQUAL? PRSI,ME \?CCL7 + CALL PERFORM,V?TAKE,PRSO + RTRUE +?CCL7: EQUAL? PRSA,V?EAT \?CCL11 + PRINTR "Auto-cannibalism is not the answer." +?CCL11: EQUAL? PRSA,V?MUNG,V?ATTACK \?CCL15 + CALL JIGS-UP,STR?22 + RSTACK +?CCL15: EQUAL? PRSA,V?TAKE \?CCL17 + PRINTR "How romantic!" +?CCL17: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "Difficult, unless your eyes are prehensile." + + + .FUNCT PATH-OBJECT-F + EQUAL? PRSA,V?FOLLOW,V?TAKE \FALSE + CALL V-WALK-AROUND + RSTACK + + + .FUNCT ZORKMID-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "The zorkmid is the unit of currency of" + PRINT GUE-NAME + PRINT PERIOD-CR + RTRUE + + + .FUNCT STREAM-F + EQUAL? PRSA,V?ENTER \FALSE + CALL V-SWIM + RSTACK + + + .FUNCT CHASM-F + EQUAL? PRSA,V?LEAP /?CTR2 + EQUAL? PRSA,V?PUT \?CCL3 + EQUAL? PRSO,ME \?CCL3 +?CTR2: CALL JIGS-UP,STR?7 + RSTACK +?CCL3: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,PSEUDO-OBJECT \FALSE + REMOVE PRSO + PRINTI "The " + PRINTD PRSO + PRINTR " disappears into the chasm." + + + .FUNCT BRIDGE-F + EQUAL? PRSA,V?LEAP \FALSE + CALL JIGS-UP,STR?7 + RSTACK + + + .FUNCT OPEN-CLOSE + EQUAL? PRSA,V?OPEN \?CCL3 + FSET? PRSO,OPENBIT \?CCL6 + PRINT LOOK-AROUND + RTRUE +?CCL6: FSET PRSO,OPENBIT + PRINTI "The " + PRINTD PRSO + PRINTR " is now open." +?CCL3: FSET? PRSO,OPENBIT \?PRG15 + FCLEAR PRSO,OPENBIT + PRINTI "The " + PRINTD PRSO + PRINTR " is now closed." +?PRG15: PRINT LOOK-AROUND + RTRUE + + + .FUNCT HELLO?,WHO + EQUAL? WINNER,WHO /?CCL3 + EQUAL? PRSA,V?HELLO,V?SAY,V?TELL /?CCL3 + EQUAL? PRSA,V?INCANT \FALSE +?CCL3: EQUAL? PRSA,V?INCANT,V?SAY,V?TELL \TRUE + SET 'P-CONT,FALSE-VALUE + SET 'QUOTE-FLAG,FALSE-VALUE + RTRUE + + + .FUNCT FIND-TARGET,TARGET,P,TX,L,ROOM + IN? TARGET,HERE \?CCL3 + RETURN HERE +?CCL3: SET 'P,0 +?PRG4: NEXTP HERE,P >P + ZERO? P /FALSE + LESS? P,LOW-DIRECTION /?PRG4 + GETPT HERE,P >TX + PTSIZE TX >L + EQUAL? L,UEXIT,CEXIT,DEXIT \?PRG4 + GETB TX,0 >ROOM + IN? TARGET,ROOM \?PRG4 + RETURN ROOM + + + .FUNCT NOW-DARK? + CALL LIT?,HERE >LIT + ZERO? LIT \TRUE + PRINTR "It is now pitch black." + + + .FUNCT DO-WALK,DIR + SET 'P-WALK-DIR,DIR + CALL PERFORM,V?WALK,DIR + RSTACK + + + .FUNCT GLOBAL-IN?,OBJ1,OBJ2,TX + GETPT OBJ2,P?GLOBAL >TX + ZERO? TX /FALSE + PTSIZE TX + SUB STACK,1 + CALL ZMEMQB,OBJ1,TX,STACK + RSTACK + + + .FUNCT FIND-IN,WHERE,WHAT,W + FIRST? WHERE >W /?BOGUS1 +?BOGUS1: ZERO? W /FALSE +?PRG4: FSET? W,WHAT \?CCL8 + EQUAL? W,ADVENTURER /?CCL8 + RETURN W +?CCL8: NEXT? W >W /?PRG4 + RFALSE + + + .FUNCT HELD?,CAN +?PRG1: LOC CAN >CAN + ZERO? CAN /FALSE + EQUAL? CAN,WINNER \?PRG1 + RTRUE + + + .FUNCT OTHER-SIDE,DOBJ,P=0,TX +?PRG1: NEXTP HERE,P >P + LESS? P,LOW-DIRECTION /FALSE + GETPT HERE,P >TX + PTSIZE TX + EQUAL? STACK,DEXIT \?PRG1 + GETB TX,DEXITOBJ + EQUAL? STACK,DOBJ \?PRG1 + RETURN P + + + .FUNCT HACK-HACK,STR + PRINT STR + PRINTD PRSO + CALL PICK-ONE,HO-HUM + PRINT STACK + CRLF + RTRUE + + .ENDI diff --git a/globals.zil b/globals.zil new file mode 100644 index 0000000..08f3b7e --- /dev/null +++ b/globals.zil @@ -0,0 +1,477 @@ +"GLOBALS for + Mini-Zork II: The Wizard of Frobozz + (c) Copyright 1988 Infocom, Inc. All Rights Reserved." + + + + + + + + + + + + + + + + + + + > + + ) + ( + ) + (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 + <>>)>> + + + + + > + + )>> + + + + + + + ) + ( + + ) + ( ;"fill bottle with water =>" + ;"put water in bottle" + + + + >) + ( + + >) + (,PRSI + + )> + + + )>)> + ) + (T )> + > + > >)> + > + > + ) + ( >> + ) + (>> + + ) + ( + > + + ) + (T + + )>) + ( + + > + + + ) + (T + )>) + (.PI? + ) + ( + + >> + + )> + + ) + (T + + )>) + ( + + )>> + + + > + + + + + ) + ( + )>> + + + + + > + > + ) + ( + > + + ) + ( + ) + ( + ) + ( + ) + ( + )>> + + + + + + + )>> + + + + + )>> + + + + + + + )>> + + + + + + >> + ) + ( + > + + )>> + + + + + )>> + + + + + + ) + (T + + )>) + ( + + ) + (T + )>> + + + > + + > + >)> + )>> + + ,HERE) + (T + + >> + >) + (> + > + > + + > + + )>)>)>>)>> + +> + + )> + > + + + > + +> + 1>>)>> + +> + + )> + + >> + ) + (>> + >)>>> + +> + + ) + ( + )>>> + +> ,LOW-DIRECTION> + >) + (T + > + ,DEXIT> + .DOBJ>> + )>)>>> + + CR>> + +> + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mini2.chart b/mini2.chart new file mode 100644 index 0000000..c872819 --- /dev/null +++ b/mini2.chart @@ -0,0 +1,2 @@ +-date- -rel- -size- -pre- -obj- -glo- -voc- +11/23 2 55690 13518 163 148 501 diff --git a/mini2.errors b/mini2.errors new file mode 100644 index 0000000..4d9b78d --- /dev/null +++ b/mini2.errors @@ -0,0 +1,25 @@ +Assembling MINI2.ZAP.1 on Monday, November 23, 1987 16:29:54 +Release: 2 + + 64 Inserting MINI2FREQ.XZAP.1 (616 bytes) + 680 Inserting MINI2DAT.ZAP.1 (12838 bytes) + 13518 Inserting MINI2PUR.ZAP.1 (0 bytes) + 13518 Inserting MISC.ZAP.1 (1166 bytes) + 14684 Inserting PARSER.ZAP.1 (6616 bytes) + 21300 Inserting VERBS.ZAP.1 (7467 bytes) + 28767 Inserting GLOBALS.ZAP.1 (1396 bytes) + 30163 Inserting WIZARD.ZAP.1 (7558 bytes) + 37721 Inserting DUNGEON.ZAP.1 (2520 bytes) + 40241 Inserting PRINCESS.ZAP.1 (3527 bytes) + 43768 Inserting ALICE.ZAP.1 (1920 bytes) + 45688 Inserting VOLCANO.ZAP.1 (2678 bytes) + 48366 Inserting MINI2STR.ZAP.1 (7324 bytes) +163 objects. +148 globals. +501 word vocabulary. + + 55690 bytes (55K). + 13518 bytes of preload. + 8349 bytes of impure. + +Outputting symbol tables diff --git a/mini2.record b/mini2.record new file mode 100644 index 0000000..2d2f1c5 --- /dev/null +++ b/mini2.record @@ -0,0 +1,462 @@ + +Combined ZIL Compiler Ver 2.0 (MIM) +----------------------------------- + +Incremental compilation disabled, because top-level ZIL file changed. + +Input file: SS:MINI2.ZIL.10 +Compiling routine: RANDOM-ELEMENT +Compiling routine: PICK-ONE +Compiling routine: GO +Compiling routine: MAIN-LOOP +Compiling routine: MAIN-LOOP-1 +Compiling routine: PERFORM +Compiling routine: QUEUE +Compiling routine: INT +Compiling routine: CLOCKER +Compiling routine: PARSER +Compiling routine: STUFF +Compiling routine: INBUF-STUFF +Compiling routine: INBUF-ADD +Compiling routine: WT? +Compiling routine: CLAUSE +Compiling routine: NUMBER? +Compiling routine: ORPHAN-MERGE +Compiling routine: ACLAUSE-WIN +Compiling routine: NCLAUSE-WIN +Compiling routine: WORD-PRINT +Compiling routine: UNKNOWN-WORD +Compiling routine: CANT-USE +Compiling routine: GET-PREP +Compiling routine: SYNTAX-CHECK +Compiling routine: CANT-ORPHAN +Compiling routine: ORPHAN +Compiling routine: THING-PRINT +Compiling routine: BUFFER-PRINT +Compiling routine: PREP-PRINT +Compiling routine: CLAUSE-COPY +Compiling routine: CLAUSE-ADD +Compiling routine: PREP-FIND +Compiling routine: SYNTAX-FOUND +Compiling routine: GWIM +Compiling routine: SNARF-OBJECTS +Compiling routine: BUT-MERGE +Compiling routine: SNARFEM +Compiling routine: GET-OBJECT +Compiling routine: WHICH-PRINT +Compiling routine: GLOBAL-CHECK +Compiling routine: DO-SL +Compiling routine: SEARCH-LIST +Compiling routine: OBJ-FOUND +Compiling routine: TAKE-CHECK +Compiling routine: ITAKE-CHECK +Compiling routine: MANY-CHECK +Compiling routine: ZMEMQ +Compiling routine: ZMEMQB +Compiling routine: LIT? +Compiling routine: THIS-IT? +Compiling routine: ACCESSIBLE? +Compiling routine: META-LOC +Compiling routine: V-VERBOSE +Compiling routine: V-BRIEF +Compiling routine: V-SUPER-BRIEF +Compiling routine: V-DIAGNOSE +Compiling routine: V-INVENTORY +Compiling routine: FINISH +Compiling routine: V-QUIT +Compiling routine: V-RESTART +Compiling routine: DO-YOU-WISH +Compiling routine: YES? +Compiling routine: V-RESTORE +Compiling routine: V-SAVE +Compiling routine: V-SCORE +Compiling routine: SCORE-OBJ +Compiling routine: V-SCRIPT +Compiling routine: INTERACTION +Compiling routine: V-UNSCRIPT +Compiling routine: V-VERSION +Compiling routine: V-VERIFY +Compiling routine: V-COMMAND-FILE +Compiling routine: V-RANDOM +Compiling routine: V-RECORD +Compiling routine: V-UNRECORD +Compiling routine: V-ALARM +Compiling routine: V-ATTACK +Compiling routine: V-BLAST +Compiling routine: PRE-BURN +Compiling routine: V-BURN +Compiling routine: V-CLIMB-DOWN +Compiling routine: V-CLIMB +Compiling routine: V-CLIMB-ON +Compiling routine: V-CLOSE +Compiling routine: V-COMMAND +Compiling routine: V-COUNT +Compiling routine: V-CURSES +Compiling routine: V-CUT +Compiling routine: V-DEFLATE +Compiling routine: V-DISEMBARK +Compiling routine: V-DISENCHANT +Compiling routine: V-DRINK +Compiling routine: V-DRINK-FROM +Compiling routine: PRE-DROP +Compiling routine: V-DROP +Compiling routine: V-EAT +Compiling routine: HIT-SPOT +Compiling routine: V-ENCHANT +Compiling routine: REMOVE-CAREFULLY +Compiling routine: PRE-ENTER +Compiling routine: V-ENTER +Compiling routine: V-EXAMINE +Compiling routine: V-EXIT +Compiling routine: PRE-FILL +Compiling routine: V-FILL +Compiling routine: V-FIND +Compiling routine: V-FOLLOW +Compiling routine: PRE-GIVE +Compiling routine: V-GIVE +Compiling routine: V-HELLO +Compiling routine: V-INCANT +Compiling routine: I-SPELL +Compiling routine: V-INFLATE +Compiling routine: V-KICK +Compiling routine: V-KISS +Compiling routine: V-KNOCK +Compiling routine: V-LAMP-OFF +Compiling routine: V-LAMP-ON +Compiling routine: V-LAUNCH +Compiling routine: V-LEAP +Compiling routine: V-LEAVE +Compiling routine: V-LISTEN +Compiling routine: V-LOCK +Compiling routine: V-LOOK +Compiling routine: V-LOOK-BEHIND +Compiling routine: V-LOOK-INSIDE +Compiling routine: V-LOOK-UNDER +Compiling routine: V-LOWER +Compiling routine: V-MELT +Compiling routine: V-MOVE +Compiling routine: PRE-MUNG +Compiling routine: V-MUNG +Compiling routine: V-OPEN +Compiling routine: V-PICK +Compiling routine: V-PLAY +Compiling routine: V-POUR-ON +Compiling routine: V-PUSH +Compiling routine: PRE-PUT +Compiling routine: V-PUT +Compiling routine: V-PUT-ON +Compiling routine: V-PUT-UNDER +Compiling routine: V-RAISE +Compiling routine: V-RAPE +Compiling routine: PRE-READ +Compiling routine: V-READ +Compiling routine: V-RUB +Compiling routine: V-SAY +Compiling routine: V-SEARCH +Compiling routine: V-SGIVE +Compiling routine: V-SHAKE +Compiling routine: V-SKIP +Compiling routine: V-SMELL +Compiling routine: V-STAND +Compiling routine: V-STRIKE +Compiling routine: V-SWIM +Compiling routine: V-SWING +Compiling routine: PRE-TAKE +Compiling routine: V-TAKE +Compiling routine: V-TELL +Compiling routine: V-THROW +Compiling routine: V-THROW-OFF +Compiling routine: V-TIE +Compiling routine: V-TIE-UP +Compiling routine: V-TURN +Compiling routine: V-UNLOCK +Compiling routine: V-UNTIE +Compiling routine: V-WAIT +Compiling routine: V-WALK +Compiling routine: V-WALK-AROUND +Compiling routine: V-WALK-TO +Compiling routine: V-WAVE +Compiling routine: V-YELL +Compiling routine: V-ZORK +Compiling routine: DESCRIBE-ROOM +Compiling routine: DESCRIBE-OBJECTS +Compiling routine: DESCRIBE-OBJECT +Compiling routine: PRINT-CONTENTS +Compiling routine: PRINT-CONT +Compiling routine: FIRSTER +Compiling routine: SEE-INSIDE? +Compiling routine: JIGS-UP +Compiling routine: NO-GO-TELL +Compiling routine: GOTO +Compiling routine: ITAKE +Compiling routine: IDROP +Compiling routine: CCOUNT +Compiling routine: WEIGHT +Compiling routine: NOT-HERE-OBJECT-F +Compiling routine: NOT-HERE-PRINT +Compiling routine: GROUND-F +Compiling routine: WATER-F +Compiling routine: PUDDLE +Compiling routine: GRUE-F +Compiling routine: ME-F +Compiling routine: PATH-OBJECT-F +Compiling routine: ZORKMID-F +Compiling routine: STREAM-F +Compiling routine: CHASM-F +Compiling routine: BRIDGE-F +Compiling routine: OPEN-CLOSE +Compiling routine: HELLO? +Compiling routine: FIND-TARGET +Compiling routine: NOW-DARK? +Compiling routine: DO-WALK +Compiling routine: GLOBAL-IN? +Compiling routine: FIND-IN +Compiling routine: HELD? +Compiling routine: OTHER-SIDE +Compiling routine: HACK-HACK +Compiling routine: WIZARD-F + ** Note: Atomic argument to routine assumed constant - MAGIC-ACTOR + +Compiling routine: I-WIZARD + ** Note: Atomic argument to routine assumed constant - MAGIC-ACTOR + +Compiling routine: MAGIC-ACTOR +Compiling routine: RANDOM-WALK +Compiling routine: WAND-F +Compiling routine: I-WAND +Compiling routine: GUARDED-ROOM-F +Compiling routine: WIZ-DOOR-F +Compiling routine: DOOR-KEEPER-F +Compiling routine: TROPHY-ROOM-F +Compiling routine: TROPHY-PSEUDO +Compiling routine: STAND-F +Compiling routine: PENTAGRAM-F +Compiling routine: DEMON-F +Compiling routine: DEMON-LEAVES +Compiling routine: AQUARIUM-F +Compiling routine: SERPENT-F +Compiling routine: DEAD-SERPENT-F +Compiling routine: MURKY-ROOM-F +Compiling routine: WIZARD-QUARTERS-F +Compiling routine: SPHERE-F +Compiling routine: PALANTIR-LOOK +Compiling routine: GO&LOOK +Compiling routine: DEAD-PALANTIR-F +Compiling routine: GLOBAL-PALANTIR-F +Compiling routine: LAMP-F +Compiling routine: I-LANTERN +Compiling routine: CAROUSEL-ROOM-F +Compiling routine: VIOLIN-F +Compiling routine: BILLS-F +Compiling routine: MENHIR-ROOM-F +Compiling routine: DESCRIBE-MENHIR +Compiling routine: GLOBAL-MENHIR-F +Compiling routine: MENHIR-F +Compiling routine: COLLAR-F +Compiling routine: TOMB-PSEUDO +Compiling routine: GLOBAL-CERBERUS-F +Compiling routine: CERBERUS-F +Compiling routine: HEADS-F +Compiling routine: CRYPT-OBJECT-F +Compiling routine: ZORK3-F +Compiling routine: LEDGE-IN-RAVINE-F +Compiling routine: P-DOOR +Compiling routine: PCHECK +Compiling routine: DREARY-ROOM-F +Compiling routine: PDOOR-F +Compiling routine: PWINDOW-F +Compiling routine: PKEYHOLE-F +Compiling routine: FORMAL-GARDEN-F +Compiling routine: I-GARDEN +Compiling routine: UNICORN-F +Compiling routine: GAZEBO-OBJECT-F +Compiling routine: NEWSPAPER-F +Compiling routine: PLACE-MAT-F +Compiling routine: TEAPOT-F +Compiling routine: MATCH-F +Compiling routine: I-MATCH +Compiling routine: TOPIARY-F +Compiling routine: I-TOPIARY +Compiling routine: HEDGES-F +Compiling routine: DRAGON-F +Compiling routine: DRAGON-LEAVES +Compiling routine: I-DRAGON +Compiling routine: CHEST-F +Compiling routine: PRINCESS-F +Compiling routine: I-PRINCESS +Compiling routine: I-UNICORN +Compiling routine: ICE-ROOM-F +Compiling routine: ICE-F +Compiling routine: RIDDLE-ROOM-F +Compiling routine: RIDDLE-PSEUDO +Compiling routine: RIDDLE-DOOR-F +Compiling routine: BUCKET-CONT +Compiling routine: BUCKET-F +Compiling routine: PASS-THE-BUCKET +Compiling routine: I-BUCKET +Compiling routine: WELL-F +Compiling routine: CRACK-PSEUDO +Compiling routine: ROBOT-F +Compiling routine: TRIANGULAR-BUTTON-F +Compiling routine: CAGE-F +Compiling routine: I-CAGE-DEATH +Compiling routine: ALICE-HOLE +Compiling routine: GREEN-CAKE-F +Compiling routine: CAKE-F +Compiling routine: CAKE-CRUMBLE +Compiling routine: POSTS-ROOM-F +Compiling routine: POOL-F +Compiling routine: CANDY-F +Compiling routine: BALLOON-F +Compiling routine: I-BALLOON +Compiling routine: BALLOON-BURN +Compiling routine: PUT-BALLOON +Compiling routine: RISE-AND-SHINE +Compiling routine: DECLINE-AND-FALL +Compiling routine: LKP +Compiling routine: I-BURNUP +Compiling routine: BRAIDED-WIRE-F +Compiling routine: BCONTENTS +Compiling routine: VOLCANO-BY-LEDGE-F +Compiling routine: RANDOM-BOOK-F +Compiling routine: PURPLE-BOOK-F +Compiling routine: LEDGE-F +Compiling routine: DUSTY-ROOM-F +Compiling routine: SAFE-F +Compiling routine: SAFE-HOLE-F +Compiling routine: BRICK-F +Compiling routine: FUSE-F +Compiling routine: I-FUSE +Compiling routine: BOMB? +Compiling routine: I-SAFE + ** Note: OBJECT has no properties: GLOBAL-OBJECTS +Vocabulary: 501 + +Prepositions: 18 + +ABOUT AROUND AWAY DOWN FROM OFF OUT TO UP +ACROSS AT BEHIND FOR IN ON OVER UNDER WITH + +Real globals: 141 + +AGAIN-DIR LOAD-ALLOWED P-SLOCBITS +AGAIN-LEXV LOOK-AROUND P-SYNTAX +ALREADY MATCH-COUNT P-TABLE +ALWAYS-LIT MATOBJ P-VTBL +B-W-C MENHIR-POSITION P-WALK-DIR +BALLOON-DOWNS MOVED-IN-DARK P-WON +BALLOON-FLOATS MUD-FLAG P-XADJ +BALLOON-INFLATED OLD-HERE P-XADJN +BALLOON-LOC ONLY-DARKNESS P-XNAM +BALLOON-TIED OOPS-INBUF PERIOD-CR +BALLOON-UPS OOPS-TABLE PLACE-MAT-VISIBLE +BUCKET-TOP-FLAG OTHER-PROPERTIES PLOOK-FLAG +C-DEMONS P-AADJ PRCOUNT +C-INTS P-ACLAUSE PRDIRS +C-TABLE P-ACT PRFOLLOW +CAGE-SOLVE-FLAG P-ADJ PRINCESS-AWAKE +CANT-GO P-ADJN PRSA +CAROUSEL-EXITS P-ADVERB PRSI +CAROUSEL-ON P-ANAM PRSO +CERBERUS-LEASHED P-AND PUNLOCK-FLAG +CLOCK-WAIT P-BUTS QUOTE-FLAG +DEAD P-CCTBL REFERRING +DEATHS P-CONT RESERVE-LEXV +DEMON-GONE P-DIR RESERVE-PTR +DEMON-HOARD P-END-ON-PREP RIDDLE-TEXT +DEMON-PAID P-GETFLAGS SECRET-DOOR +DEMON-THANKS P-GWIMBIT SPELL-HANDLED? +DESC-OBJECT P-INBUF SPELL-HINTS +DOESNT-FIT-LOCK P-IT-OBJECT SPELL-NAMES +DRAGON-ANGER P-ITBL SPELL-STOPS +DRAGON-ATTACKS P-LEN SPELL-USED +DUSTY-ROOM-COLLAPSED P-LEXV SPELL-VICTIM +EVAPORATED P-MATCHLEN SPELL? +FANTASIES P-MERGE STOPS +FUMBLE-NUMBER P-MERGED STRANGE-VISION +FUMBLE-PROB P-MULT TOO-DARK +GREEDILY-DEVOURS P-NAM TOPIARY-COUNTER +GUARDIAN-FED P-NCN UNICORN-FRIGHTENED +GUE-NAME P-NOT-HERE VERBOSITY +HO-HUM P-NUMBER WAND-ON +ICE-MELTED P-OCLAUSE WAND-ON-LOC +INDENTS P-OFLAG WAND-STOPS-GLOWING +INVISIBLE-HAND P-ONEOBJ WAVES-WAND +LABEL-REVEALED P-OTBL WINNER +LAMP-BURNED-OUT P-OVTBL WIZ-DOOR-FLAG +LAMP-TABLE P-PRSI WIZQDESCS +LIT P-PRSO YUKS + +Objects: 163 + +ADVENTURER GLOBAL-OBJECTS PTABLE +ALICE-TABLE GLOBAL-PALANTIR PURPLE-BOOK +AQUARIUM GLOBAL-WATER PWINDOW +AQUARIUM-ROOM GOLD-KEY RECEPTACLE +BALLOON GREAT-CAVERN RED-CAKE +BALLOON-LABEL GREEN-CAKE RIBBON +BILLS GROUND RIDDLE-DOOR +BLUE-BOOK GRUE RIDDLE-ROOM +BLUE-CAKE GUARDED-ROOM ROBOT +BOTTOM-ETCHINGS HANDS ROBOT-LABEL +BRAIDED-WIRE HEADS ROOM-8 +BRICK HEDGES ROOMS +BRIDGE HOOK RUBY +BUCKET ICE SAFE +CAGE ICE-ROOM SAFE-HOLE +CAGE-OBJECT INSIDE-THE-BARROW SERPENT +CANDY INTNUM SHALLOW-FORD +CARD IT STAMP +CAROUSEL-ROOM KENNEL STAND-1 +CERBERUS KEY STAND-2 +CERBERUS-ROOM KEYHOLE-1 STAND-3 +CHASM KEYHOLE-2 STAND-4 +CHEST LAMP STATUETTE +CIRCULAR-ROOM LEDGE-IN-RAVINE STONE-BRIDGE +CLOTH-BAG LETTER-OPENER STREAM +COIN LIBRARY SWORD +COLLAR LOCAL-GLOBALS TEA-ROOM +COOL-ROOM MACHINE-ROOM TEAPOT +CROWN MATCH TOP-ETCHINGS +CRYPT ME TOP-OF-WELL +CRYPT-OBJECT MENHIR TOPIARY +DARK-TUNNEL MENHIR-ROOM TRIANGULAR-BUTTON +DEAD-PALANTIR-1 MURKY-ROOM TROPHY-ROOM +DEAD-PALANTIR-2 NARROW-LEDGE UNICORN +DEAD-PALANTIR-3 NEWSPAPER VIOLIN +DEAD-PALANTIR-4 NOT-HERE-OBJECT VOLCANO-BOTTOM +DEAD-SERPENT ORANGE-CAKE VOLCANO-BY-SMALL-LEDGE +DEEP-FORD PALANTIR-1 VOLCANO-BY-WIDE-LEDGE +DEGREE PALANTIR-2 VOLCANO-CORE +DEMON PALANTIR-3 WALL +DINGY-CLOSET PALANTIR-4 WAND +DOOR-KEEPER PATH-OBJECT WANDS +DRAGON PCRACK WATER +DRAGON-LAIR PDOOR WELL +DRAGON-ROOM PEARL-NECKLACE WHITE-BOOK +DREARY-ROOM PENTAGRAM WIDE-LEDGE +DUSTY-ROOM PENTAGRAM-ROOM WIZ-DOOR +EXPLOSION PLACE-MAT WIZARD +FORMAL-GARDEN POOL WIZARDS-QUARTERS +FUSE POOL-ROOM WIZARDS-WORKSHOP +GAZEBO PORTRAIT WORKBENCH +GAZEBO-OBJECT POSTS ZORK3 +GAZEBO-TABLE POSTS-ROOM ZORKMID +GLOBAL-CERBERUS PRINCESS +GLOBAL-MENHIR PSEUDO-OBJECT + +Properties: 28 + +P?ACTION P?DOWN P?LAND P?OUT P?STRENGTH P?VALUE +P?ADJECTIVE P?EAST P?LDESC P?PSEUDO P?SW P?VTYPE +P?CAPACITY P?FDESC P?NE P?SE P?SYNONYM P?WEST +P?CONTFCN P?GLOBAL P?NORTH P?SIZE P?TEXT +P?DESCFCN P?IN P?NW P?SOUTH P?UP + +Flags: 28 + +ACTORBIT DRINKBIT NDESCBIT READBIT TAKEBIT TRYTAKEBIT +BURNBIT FLAMEBIT NONLANDBIT RLANDBIT TOOLBIT VEHBIT +CLIMBBIT FOODBIT NWALLBIT SACREDBIT TOUCHBIT WEAPONBIT +CONTBIT INVISIBLE ONBIT SEARCHBIT TRANSBIT +DOORBIT LIGHTBIT OPENBIT SURFACEBIT TREASUREBIT diff --git a/mini2.serial b/mini2.serial new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/mini2.serial @@ -0,0 +1 @@ +1 diff --git a/mini2.zap b/mini2.zap new file mode 100644 index 0000000..5599966 --- /dev/null +++ b/mini2.zap @@ -0,0 +1,50 @@ +; Low core locations +%ZVERSION:: .BYTE 0 + .BYTE FLAGS +%ZORKID:: ZORKID +%ENDLOD:: ENDLOD +%START:: START +%VOCAB:: VOCAB +%OBJECT:: OBJECT +%GLOBAL:: GLOBAL +%PURBOT:: IMPURE +%FLAGS:: .WORD 0 +%SERIAL:: .WORD 0 +%SERI1:: .WORD 0 +%SERI2:: .WORD 0 +%FWORDS:: WORDS +%PLENTH:: .WORD 0 +%PCHKSM:: .WORD 0 +%INTWRD:: .WORD 0 +%SCRWRD:: .WORD 0 + .WORD 0 +.WORD 0 +.WORD 0 +.WORD 0 +.WORD 0 +.WORD 0 +.WORD 0 +.WORD 0 +.WORD 0 +.WORD 0 +.WORD 0 +.WORD 0 +.WORD 0 +.WORD 0 +.WORD 0 + .INSERT "SS:MINI2FREQ" ;Frequent word table + .INSERT "SS:MINI2DAT" ; Data file + .INSERT "SS:MINI2PUR" + .INSERT "SS:MISC" + .INSERT "SS:PARSER" + .INSERT "SS:VERBS" + .INSERT "SS:GLOBALS" + .INSERT "SS:WIZARD" + .INSERT "SS:DUNGEON" + .INSERT "SS:PRINCESS" + .INSERT "SS:ALICE" + .INSERT "SS:VOLCANO" + + .INSERT "SS:MINI2STR" + + .END diff --git a/mini2.zil b/mini2.zil new file mode 100644 index 0000000..ad3311e --- /dev/null +++ b/mini2.zil @@ -0,0 +1,35 @@ +"MINI2 for + Mini-Zork II: The Wizard of Frobozz + (c) Copyright 1988 Infocom, Inc. All Rights Reserved." + +ON!-INITIAL +OFF!-INITIAL + + + + + >> + + + + + )> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mini2.zip b/mini2.zip new file mode 100644 index 0000000000000000000000000000000000000000..354ccbb70e9c461ff590f10082aaec22527ccae7 GIT binary patch literal 55690 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 BM+yJ{ literal 0 HcmV?d00001 diff --git a/mini2dat.zap b/mini2dat.zap new file mode 100644 index 0000000..10df2f4 --- /dev/null +++ b/mini2dat.zap @@ -0,0 +1,8455 @@ + + +; TOP LEVEL DEFINITIONS + + TRUE-VALUE=1 + FALSE-VALUE=0 + FATAL-VALUE=2 + + O?ANY=1 + + PS?OBJECT=128 + PS?VERB=64 + PS?ADJECTIVE=32 + PS?DIRECTION=16 + PS?PREPOSITION=8 + PS?BUZZ-WORD=4 + + P1?NONE=0 + P1?OBJECT=0 + P1?VERB=1 + P1?ADJECTIVE=2 + P1?DIRECTION=3 + + +; OBJECT FLAGS ARE DEFINED HERE + + + NWALLBIT=4 + FX?NWALLBIT=2048 + + NONLANDBIT=5 + FX?NONLANDBIT=1024 + + TREASUREBIT=6 + FX?TREASUREBIT=512 + + SACREDBIT=7 + FX?SACREDBIT=256 + + NDESCBIT=8 + FX?NDESCBIT=128 + + TRANSBIT=9 + FX?TRANSBIT=64 + + SEARCHBIT=10 + FX?SEARCHBIT=32 + + OPENBIT=11 + FX?OPENBIT=16 + + TRYTAKEBIT=12 + FX?TRYTAKEBIT=8 + + SURFACEBIT=13 + FX?SURFACEBIT=4 + + TOUCHBIT=14 + FX?TOUCHBIT=2 + + INVISIBLE=15 + FX?INVISIBLE=1 + + READBIT=16 + FX?READBIT=32768 + + TAKEBIT=17 + FX?TAKEBIT=16384 + + LIGHTBIT=18 + FX?LIGHTBIT=8192 + + CONTBIT=19 + FX?CONTBIT=4096 + + ONBIT=20 + FX?ONBIT=2048 + + FOODBIT=21 + FX?FOODBIT=1024 + + DRINKBIT=22 + FX?DRINKBIT=512 + + WEAPONBIT=23 + FX?WEAPONBIT=256 + + DOORBIT=24 + FX?DOORBIT=128 + + VEHBIT=25 + FX?VEHBIT=64 + + CLIMBBIT=26 + FX?CLIMBBIT=32 + + RLANDBIT=27 + FX?RLANDBIT=16 + + FLAMEBIT=28 + FX?FLAMEBIT=8 + + BURNBIT=29 + FX?BURNBIT=4 + + TOOLBIT=30 + FX?TOOLBIT=2 + + ACTORBIT=31 + FX?ACTORBIT=1 + +; ACTION IDENTIFIERS ARE ASSIGNED HERE + + V?VERBOSE=0 + V?BRIEF=1 + V?SUPER-BRIEF=2 + V?DIAGNOSE=3 + V?INVENTORY=4 + V?QUIT=5 + V?RESTART=6 + V?RESTORE=7 + V?SAVE=8 + V?SCORE=9 + V?SCRIPT=10 + V?UNSCRIPT=11 + V?VERSION=12 + V?VERIFY=13 + V?RANDOM=14 + V?COMMAND-FILE=15 + V?RECORD=16 + V?UNRECORD=17 + V?ATTACK=18 + V?BLAST=19 + V?LAMP-OFF=20 + V?INFLATE=21 + V?BURN=22 + V?CLIMB=23 + V?CLIMB-DOWN=24 + V?ENTER=25 + V?CLIMB-ON=26 + V?CLOSE=27 + V?COMMAND=28 + V?COUNT=29 + V?WALK-AROUND=30 + V?CUT=31 + V?CURSES=32 + V?DEFLATE=33 + V?MUNG=34 + V?DISEMBARK=35 + V?DISENCHANT=36 + V?DRINK=37 + V?DRINK-FROM=38 + V?DROP=39 + V?PUT=40 + V?PUT-ON=41 + V?EAT=42 + V?ENCHANT=43 + V?EXAMINE=44 + V?LOOK-INSIDE=45 + V?EXIT=46 + V?FILL=47 + V?FIND=48 + V?FOLLOW=49 + V?GIVE=50 + V?SGIVE=51 + V?HELLO=52 + V?INCANT=53 + V?LEAP=54 + V?KICK=55 + V?KISS=56 + V?KNOCK=57 + V?LAUNCH=58 + V?LEAVE=59 + V?LAMP-ON=60 + V?LISTEN=61 + V?LOCK=62 + V?LOOK=63 + V?LOOK-UNDER=64 + V?LOOK-BEHIND=65 + V?LOWER=66 + V?MELT=67 + V?MOVE=68 + V?TURN=69 + V?OPEN=70 + V?PICK=71 + V?TAKE=72 + V?PLAY=73 + V?POUR-ON=74 + V?PUSH=75 + V?PUT-UNDER=76 + V?RAISE=77 + V?RAPE=78 + V?READ=79 + V?RUB=80 + V?SAY=81 + V?SEARCH=82 + V?SHAKE=83 + V?SKIP=84 + V?SMELL=85 + V?STAND=86 + V?STRIKE=87 + V?SWIM=88 + V?SWING=89 + V?TELL=90 + V?THROW=91 + V?THROW-OFF=92 + V?TIE=93 + V?TIE-UP=94 + V?UNLOCK=95 + V?UNTIE=96 + V?WAIT=97 + V?ALARM=98 + V?WALK=99 + V?WALK-TO=100 + V?WAVE=101 + V?YELL=102 + V?ZORK=103 + +; PROPERTIES ARE DEFINED HERE + + P?NORTH=31 + P?EAST=30 + P?WEST=29 + P?SOUTH=28 + P?NE=27 + P?NW=26 + P?SE=25 + P?SW=24 + P?UP=23 + P?DOWN=22 + P?IN=21 + P?OUT=20 + P?LAND=19 + P?SYNONYM=18 + P?ACTION=17 + P?LDESC=16 + P?SIZE=15 + P?ADJECTIVE=14 + P?STRENGTH=13 + P?VALUE=12 + P?GLOBAL=11 + P?PSEUDO=10 + P?TEXT=9 + P?CAPACITY=8 + P?FDESC=7 + P?VTYPE=6 + P?CONTFCN=5 + P?DESCFCN=4 + +; ADJECTIVES ARE DEFINED HERE + + A?LURKING=255 + A?DARK=254 + A?DAMP=253 + A?SMOKEY=252 + A?SCORCHED=251 + A?NARROW=250 + A?BARE=249 + A?COLD=248 + A?DEEP=247 + A?STONE=246 + A?EAST=245 + A?EASTERN=244 + A?WEST=243 + A?WESTERN=242 + A?SOUTH=241 + A?SOUTHE=240 + A?NORTH=239 + A?NORTHE=238 + A?LITTLE=237 + A?FROBOZZ=236 + A?OLD=235 + A?MAGIC=234 + A?BATTERED=233 + A?NASTY=232 + A?WORN=231 + A?USED=230 + A?WORK=229 + A?WIZARD=228 + A?CRYSTAL=227 + A?RUBY=226 + A?SAPPHIRE=225 + A?DIAMOND=224 + A?OBSIDIAN=223 + A?BLACK=222 + A?STRANGE=221 + A?GREAT=220 + A?HUGE=219 + A?BABY=218 + A?SEA=217 + A?DEAD=216 + A?RED=215 + A?BLUE=214 + A?WHITE=213 + A?CLEAR=212 + A?BRASS=211 + A?ELVISH=210 + A?ANTIQUE=209 + A?FANCY=208 + A?NEAT=207 + A?ZORKMID=206 + A?HEAVY=205 + A?ENORMOUS=204 + A?GIANT=203 + A?DOG=202 + A?THREE=201 + A?HEADED=200 + A?MARBLE=199 + A?WOODEN=198 + A?OAK=197 + A?BARRED=196 + A?DUSTY=195 + A?IRON=194 + A?RUSTY=193 + A?BEAUTIFUL=192 + A?DELICATE=191 + A?GOLD=190 + A?VELVET=189 + A?SATIN=188 + A?NEWS=187 + A?NEWSPAPER=186 + A?PLACE=185 + A?CHINA=184 + A?TEA=183 + A?LETTER=182 + A?YOUNG=181 + A?ICY=180 + A?PEARL=179 + A?GREEN=178 + A?TRIANGULAR=177 + A?STEEL=176 + A?SOLID=175 + A?RARE=174 + A?FLATHEAD=173 + A?OBLONG=172 + A?FROSTED=171 + A?ORANGE=170 + A?CANDIED=169 + A?MOBY=168 + A?WICKER=167 + A?BRAIDED=166 + A?CLOTH=165 + A?METAL=164 + A?PRICELESS=163 + A?PURPLE=162 + A?SMALL=161 + A?GAUDY=160 + A?SQUARE=159 + A?CLAY=158 + A?THIN=157 + +; BUZZ WORDS ARE DEFINED HERE + + B?A=255 + B?AN=254 + B?THE=253 + B?IS=252 + B?AND=251 + B?OF=250 + B?THEN=249 + B?ALL=248 + B?ONE=247 + B?BUT=246 + B?EXCEPT=245 + B?PERIOD=244 + B?COMMA=243 + B?QUOTE=242 + B?YES=241 + B?NO=240 + B?Y=239 + B?HERE=238 + B?FEEBLE=237 + B?FUMBLE=236 + B?FREEZE=235 + B?FALL=234 + B?FRY=233 + B?FLUORESCE=232 + B?FERMENT=231 + B?FLOAT=230 + B?FIREPROOF=229 + B?FENCE=228 + B?FUDGE=227 + B?FANTASIZE=226 + B?AGAIN=225 + B?G=224 + B?OOPS=223 + +; PREPOSITIONS ARE DEFINED HERE + + PR?WITH=255 + PR?OUT=254 + PR?UP=253 + PR?DOWN=252 + PR?IN=251 + PR?ON=250 + PR?FROM=249 + PR?TO=248 + PR?OVER=247 + PR?ACROSS=246 + PR?OFF=245 + PR?AT=244 + PR?AROUND=243 + PR?UNDER=242 + PR?BEHIND=241 + PR?FOR=240 + PR?ABOUT=239 + PR?AWAY=238 + +; DIRECTIONS ARE DEFINED HERE + + +; ACTIONS ARE DEFINED HERE + + ACT?KISS=255 + ACT?SKIP=254 + ACT?INFLAT=253 + ACT?PULL=252 + ACT?PUT=251 + ACT?RAPE=250 + ACT?VERBOSE=249 + ACT?WALK=248 + ACT?QUIT=247 + ACT?FIND=246 + ACT?DESTROY=245 + ACT?UNLOCK=244 + ACT?READ=243 + ACT?SAY=242 + ACT?JUMP=241 + ACT?POUR=240 + ACT?WAIT=239 + ACT?TAKE=238 + ACT?COUNT=237 + ACT?RAISE=236 + ACT?FOLLOW=235 + ACT?VERSION=234 + ACT?#UNRECORD=233 + ACT?LIGHT=232 + ACT?MOVE=231 + ACT?PLAY=230 + ACT?OPEN=229 + ACT?#COMMAND=228 + ACT?BLOW=227 + ACT?KNOCK=226 + ACT?PICK=225 + ACT?DEFLATE=224 + ACT?#RANDOM=223 + ACT?STAND=222 + ACT?ENCHANT=221 + ACT?LISTEN=220 + ACT?TIE=219 + ACT?SAVE=218 + ACT?TELL=217 + ACT?THROW=216 + ACT?ZORK=215 + ACT?LOWER=214 + ACT?COMMAND=213 + ACT?TALK=212 + ACT?SHAKE=211 + ACT?INVENTORY=210 + ACT?ATTACK=209 + ACT?ENTER=208 + ACT?SEARCH=207 + ACT?DISEMBARK=206 + ACT?SWIM=205 + ACT?UNTIE=204 + ACT?CUT=203 + ACT?UNSCRIPT=202 + ACT?MELT=201 + ACT?PUSH=200 + ACT?RUB=199 + ACT?SUPER=198 + ACT?INCANT=197 + ACT?SCORE=196 + ACT?LOOK=195 + ACT?DROP=194 + ACT?LEAVE=193 + ACT?CURSE=192 + ACT?SCRIPT=191 + ACT?$VERIFY=190 + ACT?EXTINGUISH=189 + ACT?SWING=188 + ACT?RESTART=187 + ACT?POKE=186 + ACT?SMELL=185 + ACT?BRIEF=184 + ACT?DIAGNOSE=183 + ACT?GIVE=182 + ACT?WAKE=181 + ACT?DRINK=180 + ACT?YELL=179 + ACT?LOCK=178 + ACT?BURN=177 + ACT?KICK=176 + ACT?TURN=175 + ACT?#RECORD=174 + ACT?CROSS=173 + ACT?RESTORE=172 + ACT?CLOSE=171 + ACT?STRIKE=170 + ACT?SLIDE=169 + ACT?WAVE=168 + ACT?EXIT=167 + ACT?EXAMINE=166 + ACT?DISENCHANT=165 + ACT?EAT=164 + ACT?FILL=163 + ACT?CLIMB=162 + ACT?LAUNCH=161 + ACT?HELLO=160 + +; USER DEFINED CONSTANTS ARE INITIALIZED HERE + + SOG=16 + SIR=32 + DEXITSTR=1 + XEQUAL?=4 + S-FANTASIZE=9 + P-ITBLLEN=9 + P-SYNLEN=8 + P-SRCTOP=0 + C-INTLEN=6 + S-FERMENT=5 + O-START=1 + DEXITOBJ=1 + P-P1OFF=5 + O-PTR=0 + S-FEEBLE=1 + O-LENGTH=2 + C-TABLELEN=180 + P-NC2=8 + P-NC1=6 + S-FLOAT=6 + P-WORDLEN=4 + SERIAL=0 + P-VERBN=1 + P-P1BITS=3 + FEXIT=3 + S-FENCE=8 + CC-SEPTR=1 + P-SPREP1=0 + CC-SBPTR=0 + P-PREP1=2 + M-BEG=1 + XDIV=3 + M-FATAL=2 + XGRTR?=5 + NEXITSTR=0 + SPELLS=9 + NEXIT=2 + P-SLOC2=6 + SC=64 + P-PREP1N=3 + P-PSOFF=4 + XLESS?=6 + P-VERB=0 + M-HANDLED=1 + M-ENTER=2 + DEXIT=5 + CC-DEPTR=3 + SHAVE=2 + P-SRCBOT=2 + P-SYNLEN-1=4 + P-SYNLEN-0=2 + M-OBJDESC=5 + CC-DBPTR=2 + P-SYNLEN-2=7 + SMANY=4 + STAKE=8 + P-SPREP2=4 + XSUB=1 + XADD=0 + S-FALL=4 + CEXIT=4 + P-LEXSTART=1 + TREASURES-MAX=10 + M-LOOK=3 + UEXIT=1 + S-FIREPROOF=7 + O-END=3 + P-LEXELEN=2 + P-LEXWORDS=1 + P-ALL=1 + XMUL=2 + P-SFWIM1=2 + P-INHIBIT=4 + CEXITFLAG=1 + M-FLASH=4 + M-OBJECT=0 + FEXITFCN=0 + M-NOT-HANDLED=0 + CEXITSTR=1 + P-SRCALL=1 + S-FUMBLE=2 + P-SLOC1=3 + M-END=6 + P-PREP2=4 + LOW-DIRECTION=19 + C-TICK=1 + P-NC2L=9 + P-NC1L=7 + S-FREEZE=3 + P-ONE=2 + P-SACTION=1 + P-PREP2N=5 + P-SFWIM2=5 + C-ENABLED?=0 + REXIT=0 + SH=128 + C-RTN=2 + +; THE GLOBAL VARIABLES ARE ALL LOCATED HERE + +GLOBAL::.TABLE + .GVAR HERE=0 + .GVAR SCORE=0 + .GVAR MOVES=0 + .GVAR P-END-ON-PREP=0 + .GVAR B-W-C=STR?47,STRING + .GVAR SPELL-VICTIM=0 + .GVAR P-BUTS=T?1402,TABLE + .GVAR EVAPORATED=0 + .GVAR PERIOD-CR=STR?32,STRING + .GVAR DUSTY-ROOM-COLLAPSED=0 + .GVAR P-DIR=0 + .GVAR P-ACLAUSE=0 + .GVAR LABEL-REVEALED=0 + .GVAR P-SLOCBITS=0 + .GVAR P-MATCHLEN=0 + .GVAR P-ADVERB=0 + .GVAR PUNLOCK-FLAG=0 + .GVAR P-MULT=0 + .GVAR CLOCK-WAIT=0 + .GVAR P-OTBL=T?902,TABLE + .GVAR GREEDILY-DEVOURS=STR?50,STRING + .GVAR WIZQDESCS=T?606,TABLE + .GVAR P-NAM=0 + .GVAR ALWAYS-LIT=0 + .GVAR C-TABLE=T?101,TABLE + .GVAR P-XNAM=0 + .GVAR OOPS-TABLE=T?702,TABLE + .GVAR P-WALK-DIR=0 + .GVAR P-ANAM=0 + .GVAR OTHER-PROPERTIES=STR?222,STRING + .GVAR MUD-FLAG=0 + .GVAR P-CONT=0 + .GVAR P-PRSI=T?1302,TABLE + .GVAR PRCOUNT=0 + .GVAR AGAIN-LEXV=T?302,TABLE + .GVAR VERBOSITY=1 + .GVAR SPELL-USED=0 + .GVAR REFERRING=STR?45,STRING + .GVAR MENHIR-POSITION=0 + .GVAR FUMBLE-NUMBER=7 + .GVAR CANT-GO=STR?41,STRING + .GVAR DESC-OBJECT=0 + .GVAR LIT=0 + .GVAR DOESNT-FIT-LOCK=STR?43,STRING + .GVAR P-VTBL=T?1002,TABLE + .GVAR P-XADJN=0 + .GVAR SPELL-NAMES=T?106,TABLE + .GVAR RESERVE-LEXV=T?402,TABLE + .GVAR LAMP-TABLE=T?107,TABLE + .GVAR P-ACT=0 + .GVAR P-ADJ=0 + .GVAR P-LEN=0 + .GVAR CAROUSEL-EXITS=T?207,TABLE + .GVAR C-INTS=180 + .GVAR P-CCTBL=T?102,TABLE + .GVAR P-LEXV=T?202,TABLE + .GVAR LOAD-ALLOWED=100 + .GVAR STOPS=STR?46,STRING + .GVAR TOPIARY-COUNTER=0 + .GVAR BALLOON-TIED=0 + .GVAR WAND-ON-LOC=0 + .GVAR TOO-DARK=STR?37,STRING + .GVAR ONLY-DARKNESS=STR?38,STRING + .GVAR BALLOON-INFLATED=0 + .GVAR PRSO=0 + .GVAR BUCKET-TOP-FLAG=0 + .GVAR GUE-NAME=STR?44,STRING + .GVAR P-MERGED=0 + .GVAR PRFOLLOW=0 + .GVAR P-GWIMBIT=0 + .GVAR C-DEMONS=180 + .GVAR PLOOK-FLAG=0 + .GVAR MATCH-COUNT=6 + .GVAR P-OCLAUSE=T?1602,TABLE + .GVAR PRINCESS-AWAKE=0 + .GVAR P-SYNTAX=0 + .GVAR P-XADJ=0 + .GVAR P-AADJ=0 + .GVAR PRSA=0 + .GVAR ICE-MELTED=0 + .GVAR PRDIRS=T?208,TABLE + .GVAR P-PRSO=T?1202,TABLE + .GVAR MOVED-IN-DARK=STR?34,STRING + .GVAR SPELL?=0 + .GVAR P-AND=0 + .GVAR UNICORN-FRIGHTENED=0 + .GVAR P-ONEOBJ=0 + .GVAR DEMON-PAID=0 + .GVAR P-INBUF=T?502,TABLE + .GVAR DEAD=0 + .GVAR P-MERGE=T?1502,TABLE + .GVAR WAND-STOPS-GLOWING=STR?40,STRING + .GVAR DEATHS=0 + .GVAR P-WON=0 + .GVAR WIZ-DOOR-FLAG=0 + .GVAR SPELL-STOPS=T?306,TABLE + .GVAR P-OVTBL=T?1102,TABLE + .GVAR SPELL-HANDLED?=0 + .GVAR LOOK-AROUND=STR?36,STRING + .GVAR DRAGON-ATTACKS=T?108,TABLE + .GVAR P-ITBL=T?802,TABLE + .GVAR QUOTE-FLAG=0 + .GVAR RIDDLE-TEXT=STR?31,STRING + .GVAR P-TABLE=0 + .GVAR CERBERUS-LEASHED=0 + .GVAR P-GETFLAGS=0 + .GVAR ALREADY=STR?39,STRING + .GVAR DRAGON-ANGER=0 + .GVAR YUKS=T?205,TABLE + .GVAR OOPS-INBUF=T?602,TABLE + .GVAR INDENTS=T?104,TABLE + .GVAR FUMBLE-PROB=8 + .GVAR P-NUMBER=0 + .GVAR P-OFLAG=0 + .GVAR STRANGE-VISION=STR?35,STRING + .GVAR WINNER=0 + .GVAR BALLOON-UPS=T?110,TABLE + .GVAR P-ADJN=0 + .GVAR LAMP-BURNED-OUT=0 + .GVAR AGAIN-DIR=0 + .GVAR PLACE-MAT-VISIBLE=STR?42,STRING + .GVAR BALLOON-LOC=VOLCANO-BOTTOM + .GVAR DEMON-THANKS=T?506,TABLE + .GVAR FANTASIES=T?406,TABLE + .GVAR MATOBJ=0 + .GVAR CAGE-SOLVE-FLAG=0 + .GVAR DEMON-GONE=STR?33,STRING + .GVAR CAROUSEL-ON=1 + .GVAR WAND-ON=0 + .GVAR GUARDIAN-FED=0 + .GVAR P-IT-OBJECT=0 + .GVAR HO-HUM=T?105,TABLE + .GVAR WAVES-WAND=STR?48,STRING + .GVAR OLD-HERE=DRAGON-ROOM + .GVAR DEMON-HOARD=0 + .GVAR BALLOON-DOWNS=T?310,TABLE + .GVAR PRSI=0 + .GVAR RESERVE-PTR=0 + .GVAR BALLOON-FLOATS=T?210,TABLE + .GVAR SPELL-HINTS=T?206,TABLE + .GVAR INVISIBLE-HAND=STR?49,STRING + .GVAR P-NOT-HERE=0 + .GVAR P-NCN=0 + .GVAR SECRET-DOOR=0 + .GVAR PREPOSITIONS=PRTBL,TABLE + .GVAR ACTIONS=ATBL,TABLE + .GVAR PREACTIONS=PATBL,TABLE + .GVAR VERBS=VTBL,TABLE + .ENDT + +GLOEND:: + + +; PROPERTY DEFAULTS AND OBJECTS ARE DEFINED HERE + +OBJECT::.TABLE + 0 ;() + 0 ;() + 0 ;() + 0 ;(P?DESCFCN) + 0 ;(P?CONTFCN) + 0 ;(P?VTYPE) + 0 ;(P?FDESC) + 0 ;(P?CAPACITY) + 0 ;(P?TEXT) + 0 ;(P?PSEUDO) + 0 ;(P?GLOBAL) + 0 ;(P?VALUE) + 0 ;(P?STRENGTH) + 0 ;(P?ADJECTIVE) + 5 ;(P?SIZE) + 0 ;(P?LDESC) + 0 ;(P?ACTION) + 0 ;(P?SYNONYM) + 0 ;(P?LAND) + 0 ;(P?OUT) + 0 ;(P?IN) + 0 ;(P?DOWN) + 0 ;(P?UP) + 0 ;(P?SW) + 0 ;(P?SE) + 0 ;(P?NW) + 0 ;(P?NE) + 0 ;(P?SOUTH) + 0 ;(P?WEST) + 0 ;(P?EAST) + 0 ;(P?NORTH) + .OBJECT STATUETTE,FX?TREASUREBIT,FX?TAKEBIT,CHEST,0,0,T?STATUETTE + .OBJECT MURKY-ROOM,0,FX?ONBIT+FX?RLANDBIT,ROOMS,AQUARIUM-ROOM,PALANTIR-3,T?MURKY-ROOM + .OBJECT TRIANGULAR-BUTTON,FX?NDESCBIT,0,MACHINE-ROOM,0,0,T?TRIANGULAR-BUTTON + .OBJECT GLOBAL-WATER,0,FX?DRINKBIT,LOCAL-GLOBALS,PSEUDO-OBJECT,0,T?GLOBAL-WATER + .OBJECT RIDDLE-DOOR,FX?NDESCBIT,FX?CONTBIT+FX?DOORBIT,RIDDLE-ROOM,0,0,T?RIDDLE-DOOR + .OBJECT BOTTOM-ETCHINGS,FX?NDESCBIT,FX?READBIT,CIRCULAR-ROOM,0,0,T?BOTTOM-ETCHINGS + .OBJECT WELL,FX?NDESCBIT,0,LOCAL-GLOBALS,GAZEBO-OBJECT,0,T?WELL + .OBJECT HANDS,FX?NDESCBIT,FX?TOOLBIT,GLOBAL-OBJECTS,ZORKMID,0,T?HANDS + .OBJECT CAGE,FX?NWALLBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,DINGY-CLOSET,0,T?CAGE + .OBJECT INSIDE-THE-BARROW,0,FX?ONBIT+FX?RLANDBIT,ROOMS,DEAD-PALANTIR-4,LAMP,T?INSIDE-THE-BARROW + .OBJECT KEY,FX?NDESCBIT,FX?TOOLBIT+FX?TAKEBIT,KEYHOLE-2,0,0,T?KEY + .OBJECT NARROW-LEDGE,FX?NONLANDBIT,FX?RLANDBIT,ROOMS,VOLCANO-BY-WIDE-LEDGE,COIN,T?NARROW-LEDGE + .OBJECT WIZARD,FX?OPENBIT,FX?CONTBIT+FX?ACTORBIT,0,0,WAND,T?WIZARD + .OBJECT DEAD-SERPENT,0,FX?TAKEBIT,0,0,0,T?DEAD-SERPENT + .OBJECT WAND,FX?TRYTAKEBIT+FX?NDESCBIT,FX?TAKEBIT,WIZARD,0,0,T?WAND + .OBJECT MATCH,0,FX?TAKEBIT+FX?READBIT,GAZEBO-TABLE,LETTER-OPENER,0,T?MATCH + .OBJECT ME,0,FX?ACTORBIT,GLOBAL-OBJECTS,GRUE,0,T?ME + .OBJECT UNICORN,FX?OPENBIT+FX?TRYTAKEBIT,FX?CONTBIT+FX?ACTORBIT,0,0,RIBBON,T?UNICORN + .OBJECT PALANTIR-1,FX?TRYTAKEBIT+FX?TRANSBIT,FX?TAKEBIT,DINGY-CLOSET,0,0,T?PALANTIR-1 + .OBJECT HOOK,0,0,LOCAL-GLOBALS,WELL,0,T?HOOK + .OBJECT PALANTIR-3,FX?TRANSBIT+FX?NDESCBIT,FX?TAKEBIT,MURKY-ROOM,0,0,T?PALANTIR-3 + .OBJECT SERPENT,0,FX?ACTORBIT,AQUARIUM,0,0,T?SERPENT + .OBJECT PALANTIR-2,FX?TRANSBIT,FX?TAKEBIT,DREARY-ROOM,0,0,T?PALANTIR-2 + .OBJECT ICE-ROOM,0,FX?RLANDBIT,ROOMS,COOL-ROOM,ICE,T?ICE-ROOM + .OBJECT GAZEBO-OBJECT,FX?NDESCBIT,0,LOCAL-GLOBALS,PWINDOW,0,T?GAZEBO-OBJECT + .OBJECT PALANTIR-4,FX?TRANSBIT,FX?TAKEBIT,STAND-4,0,0,T?PALANTIR-4 + .OBJECT ROOMS,0,0,0,0,DUSTY-ROOM,T?ROOMS + .OBJECT POOL,0,0,POOL-ROOM,0,0,T?POOL + .OBJECT ADVENTURER,FX?SACREDBIT+FX?INVISIBLE+FX?NDESCBIT,FX?ACTORBIT,INSIDE-THE-BARROW,0,0,T?ADVENTURER + .OBJECT WIDE-LEDGE,FX?NONLANDBIT,FX?RLANDBIT,ROOMS,LIBRARY,0,T?WIDE-LEDGE + .OBJECT WIZ-DOOR,0,FX?CONTBIT+FX?DOORBIT,LOCAL-GLOBALS,BRIDGE,0,T?WIZ-DOOR + .OBJECT LOCAL-GLOBALS,0,0,GLOBAL-OBJECTS,0,HOOK,T?LOCAL-GLOBALS + .OBJECT WIZARDS-WORKSHOP,0,FX?ONBIT+FX?RLANDBIT,ROOMS,TROPHY-ROOM,WORKBENCH,T?WIZARDS-WORKSHOP + .OBJECT BUCKET,FX?OPENBIT,FX?CONTBIT+FX?VEHBIT,CIRCULAR-ROOM,PEARL-NECKLACE,0,T?BUCKET + .OBJECT SHALLOW-FORD,0,FX?ONBIT+FX?RLANDBIT,ROOMS,GREAT-CAVERN,0,T?SHALLOW-FORD + .OBJECT PORTRAIT,0,FX?BURNBIT+FX?TAKEBIT,TEA-ROOM,0,0,T?PORTRAIT + .OBJECT CARD,0,FX?BURNBIT+FX?TAKEBIT+FX?READBIT,SAFE,0,0,T?CARD + .OBJECT DREARY-ROOM,0,FX?ONBIT+FX?RLANDBIT,ROOMS,LEDGE-IN-RAVINE,KEYHOLE-2,T?DREARY-ROOM + .OBJECT CERBERUS,FX?OPENBIT,FX?CONTBIT+FX?ACTORBIT,CERBERUS-ROOM,0,0,T?CERBERUS + .OBJECT BLUE-BOOK,0,FX?BURNBIT+FX?CONTBIT+FX?TAKEBIT+FX?READBIT,LIBRARY,0,0,T?BLUE-BOOK + .OBJECT GLOBAL-OBJECTS,FX?TRANSBIT+FX?SEARCHBIT+FX?OPENBIT+FX?TRYTAKEBIT+FX?SURFACEBIT+FX?TOUCHBIT+FX?INVISIBLE,FX?RLANDBIT+FX?ONBIT,0,0,WALL,T?GLOBAL-OBJECTS + .OBJECT TROPHY-ROOM,0,FX?RLANDBIT,ROOMS,GUARDED-ROOM,WANDS,T?TROPHY-ROOM + .OBJECT SAFE-HOLE,FX?NDESCBIT+FX?OPENBIT,0,DUSTY-ROOM,SAFE,0,T?SAFE-HOLE + .OBJECT IT,FX?TOUCHBIT+FX?NDESCBIT,0,GLOBAL-OBJECTS,INTNUM,0,T?IT + .OBJECT WIZARDS-QUARTERS,0,FX?RLANDBIT,ROOMS,MURKY-ROOM,0,T?WIZARDS-QUARTERS + .OBJECT COLLAR,0,FX?TAKEBIT,KENNEL,0,0,T?COLLAR + .OBJECT RIBBON,FX?NDESCBIT,0,UNICORN,GOLD-KEY,0,T?RIBBON + .OBJECT BRIDGE,FX?NDESCBIT,0,LOCAL-GLOBALS,CHASM,0,T?BRIDGE + .OBJECT WORKBENCH,FX?OPENBIT+FX?SURFACEBIT+FX?NDESCBIT,FX?CONTBIT,WIZARDS-WORKSHOP,0,STAND-3,T?WORKBENCH + .OBJECT PCRACK,FX?NDESCBIT,0,DREARY-ROOM,PTABLE,0,T?PCRACK + .OBJECT STAMP,0,FX?BURNBIT+FX?TAKEBIT+FX?READBIT,PURPLE-BOOK,0,0,T?STAMP + .OBJECT DOOR-KEEPER,FX?NDESCBIT,0,GUARDED-ROOM,0,0,T?DOOR-KEEPER + .OBJECT DINGY-CLOSET,0,FX?RLANDBIT+FX?ONBIT,ROOMS,MACHINE-ROOM,CAGE-OBJECT,T?DINGY-CLOSET + .OBJECT STONE-BRIDGE,0,FX?RLANDBIT,ROOMS,DRAGON-LAIR,BRICK,T?STONE-BRIDGE + .OBJECT CHEST,0,FX?TAKEBIT+FX?CONTBIT,DRAGON-LAIR,0,STATUETTE,T?CHEST + .OBJECT POOL-ROOM,0,FX?RLANDBIT,ROOMS,POSTS-ROOM,CANDY,T?POOL-ROOM + .OBJECT MENHIR,FX?NDESCBIT,FX?READBIT,LOCAL-GLOBALS,GLOBAL-MENHIR,0,T?MENHIR + .OBJECT TOPIARY,0,FX?RLANDBIT,ROOMS,GAZEBO,HEDGES,T?TOPIARY + .OBJECT CRYPT-OBJECT,FX?NDESCBIT,FX?READBIT,CRYPT,HEADS,0,T?CRYPT-OBJECT + .OBJECT PEARL-NECKLACE,0,FX?TAKEBIT,CIRCULAR-ROOM,BOTTOM-ETCHINGS,0,T?PEARL-NECKLACE + .OBJECT MACHINE-ROOM,0,FX?ONBIT+FX?RLANDBIT,ROOMS,TOP-OF-WELL,TRIANGULAR-BUTTON,T?MACHINE-ROOM + .OBJECT BLUE-CAKE,0,FX?FOODBIT+FX?TAKEBIT+FX?READBIT,ALICE-TABLE,GREEN-CAKE,0,T?BLUE-CAKE + .OBJECT STAND-1,FX?OPENBIT+FX?SURFACEBIT+FX?NDESCBIT,FX?CONTBIT,WORKBENCH,0,0,T?STAND-1 + .OBJECT PENTAGRAM-ROOM,0,FX?ONBIT+FX?RLANDBIT,ROOMS,WIZARDS-WORKSHOP,PENTAGRAM,T?PENTAGRAM-ROOM + .OBJECT CLOTH-BAG,FX?NDESCBIT,0,BALLOON,BRAIDED-WIRE,0,T?CLOTH-BAG + .OBJECT WANDS,FX?TRYTAKEBIT+FX?NDESCBIT,0,TROPHY-ROOM,DEGREE,0,T?WANDS + .OBJECT RUBY,0,FX?TAKEBIT,VOLCANO-BOTTOM,0,0,T?RUBY + .OBJECT ROBOT,FX?OPENBIT,FX?CONTBIT+FX?ACTORBIT,TOP-OF-WELL,TOP-ETCHINGS,0,T?ROBOT + .OBJECT STAND-3,FX?OPENBIT+FX?SURFACEBIT+FX?NDESCBIT,FX?CONTBIT,WORKBENCH,STAND-2,0,T?STAND-3 + .OBJECT PLACE-MAT,FX?OPENBIT+FX?SURFACEBIT,FX?CONTBIT+FX?TAKEBIT,GAZEBO-TABLE,NEWSPAPER,0,T?PLACE-MAT + .OBJECT EXPLOSION,0,0,0,0,0,T?EXPLOSION + .OBJECT STREAM,FX?NDESCBIT,0,LOCAL-GLOBALS,GLOBAL-WATER,0,T?STREAM + .OBJECT CHASM,FX?NDESCBIT,0,LOCAL-GLOBALS,STREAM,0,T?CHASM + .OBJECT TEAPOT,FX?OPENBIT+FX?TRANSBIT,FX?CONTBIT+FX?TAKEBIT,GAZEBO-TABLE,PLACE-MAT,0,T?TEAPOT + .OBJECT KEYHOLE-2,FX?NDESCBIT,0,DREARY-ROOM,PCRACK,KEY,T?KEYHOLE-2 + .OBJECT DUSTY-ROOM,0,FX?ONBIT+FX?RLANDBIT,ROOMS,WIDE-LEDGE,SAFE-HOLE,T?DUSTY-ROOM + .OBJECT ICE,0,0,ICE-ROOM,0,0,T?ICE + .OBJECT ZORKMID,0,0,GLOBAL-OBJECTS,PATH-OBJECT,0,T?ZORKMID + .OBJECT CRYPT,0,FX?RLANDBIT,ROOMS,CERBERUS-ROOM,CRYPT-OBJECT,T?CRYPT + .OBJECT HEADS,FX?TRYTAKEBIT+FX?NDESCBIT,0,CRYPT,0,0,T?HEADS + .OBJECT HEDGES,FX?NDESCBIT,0,TOPIARY,0,0,T?HEDGES + .OBJECT POSTS-ROOM,0,FX?ONBIT+FX?RLANDBIT,ROOMS,TEA-ROOM,POSTS,T?POSTS-ROOM + .OBJECT RECEPTACLE,FX?NDESCBIT+FX?SEARCHBIT,FX?CONTBIT,BALLOON,CLOTH-BAG,0,T?RECEPTACLE + .OBJECT GOLD-KEY,FX?TRYTAKEBIT+FX?NDESCBIT,FX?TOOLBIT+FX?TAKEBIT,UNICORN,0,0,T?GOLD-KEY + .OBJECT KENNEL,0,FX?RLANDBIT,ROOMS,MENHIR-ROOM,COLLAR,T?KENNEL + .OBJECT PATH-OBJECT,FX?NDESCBIT,0,GLOBAL-OBJECTS,ME,0,T?PATH-OBJECT + .OBJECT KEYHOLE-1,FX?NDESCBIT,0,LEDGE-IN-RAVINE,0,0,T?KEYHOLE-1 + .OBJECT CANDY,FX?INVISIBLE,FX?READBIT+FX?TAKEBIT+FX?FOODBIT,POOL-ROOM,POOL,0,T?CANDY + .OBJECT CIRCULAR-ROOM,FX?NONLANDBIT,FX?RLANDBIT,ROOMS,RIDDLE-ROOM,BUCKET,T?CIRCULAR-ROOM + .OBJECT SAFE,FX?NDESCBIT,FX?CONTBIT,DUSTY-ROOM,0,CROWN,T?SAFE + .OBJECT PDOOR,0,FX?CONTBIT+FX?DOORBIT,LOCAL-GLOBALS,GLOBAL-CERBERUS,0,T?PDOOR + .OBJECT BALLOON-LABEL,0,FX?BURNBIT+FX?TAKEBIT+FX?READBIT,0,0,0,T?BALLOON-LABEL + .OBJECT LIBRARY,0,FX?RLANDBIT,ROOMS,NARROW-LEDGE,PURPLE-BOOK,T?LIBRARY + .OBJECT VIOLIN,FX?INVISIBLE,FX?TAKEBIT,CAROUSEL-ROOM,0,0,T?VIOLIN + .OBJECT CAROUSEL-ROOM,0,FX?RLANDBIT,ROOMS,DEEP-FORD,VIOLIN,T?CAROUSEL-ROOM + .OBJECT CAGE-OBJECT,FX?INVISIBLE,0,DINGY-CLOSET,PALANTIR-1,0,T?CAGE-OBJECT + .OBJECT CROWN,0,FX?TAKEBIT,SAFE,CARD,0,T?CROWN + .OBJECT GUARDED-ROOM,0,FX?RLANDBIT,ROOMS,0,DOOR-KEEPER,T?GUARDED-ROOM + .OBJECT LAMP,0,FX?LIGHTBIT+FX?TAKEBIT,INSIDE-THE-BARROW,ADVENTURER,0,T?LAMP + .OBJECT PRINCESS,0,FX?ACTORBIT,DRAGON-LAIR,CHEST,0,T?PRINCESS + .OBJECT ALICE-TABLE,FX?OPENBIT+FX?SURFACEBIT,FX?CONTBIT,TEA-ROOM,PORTRAIT,RED-CAKE,T?ALICE-TABLE + .OBJECT FORMAL-GARDEN,0,FX?RLANDBIT,ROOMS,DREARY-ROOM,0,T?FORMAL-GARDEN + .OBJECT DARK-TUNNEL,0,FX?RLANDBIT,ROOMS,SHALLOW-FORD,SWORD,T?DARK-TUNNEL + .OBJECT MENHIR-ROOM,0,FX?RLANDBIT,ROOMS,ROOM-8,0,T?MENHIR-ROOM + .OBJECT CERBERUS-ROOM,0,FX?RLANDBIT,ROOMS,KENNEL,CERBERUS,T?CERBERUS-ROOM + .OBJECT GLOBAL-MENHIR,FX?NDESCBIT,FX?READBIT,LOCAL-GLOBALS,GLOBAL-PALANTIR,0,T?GLOBAL-MENHIR + .OBJECT BALLOON,FX?OPENBIT,FX?VEHBIT,VOLCANO-BOTTOM,RUBY,RECEPTACLE,T?BALLOON + .OBJECT BRAIDED-WIRE,FX?NDESCBIT,0,BALLOON,0,0,T?BRAIDED-WIRE + .OBJECT GRUE,0,0,GLOBAL-OBJECTS,GROUND,0,T?GRUE + .OBJECT PWINDOW,0,FX?DOORBIT,LOCAL-GLOBALS,PDOOR,0,T?PWINDOW + .OBJECT COOL-ROOM,0,FX?RLANDBIT,ROOMS,STONE-BRIDGE,0,T?COOL-ROOM + .OBJECT DEGREE,FX?TRYTAKEBIT+FX?NDESCBIT,FX?READBIT,TROPHY-ROOM,0,0,T?DEGREE + .OBJECT VOLCANO-BOTTOM,FX?NONLANDBIT,FX?RLANDBIT,ROOMS,POOL-ROOM,BALLOON,T?VOLCANO-BOTTOM + .OBJECT BILLS,0,FX?BURNBIT+FX?TAKEBIT+FX?READBIT,ROOM-8,0,0,T?BILLS + .OBJECT GAZEBO-TABLE,FX?OPENBIT+FX?SURFACEBIT+FX?NDESCBIT,FX?CONTBIT,GAZEBO,0,MATCH,T?GAZEBO-TABLE + .OBJECT RED-CAKE,0,FX?FOODBIT+FX?TAKEBIT+FX?READBIT,ALICE-TABLE,ORANGE-CAKE,0,T?RED-CAKE + .OBJECT NEWSPAPER,0,FX?READBIT+FX?BURNBIT+FX?TAKEBIT,GAZEBO-TABLE,0,0,T?NEWSPAPER + .OBJECT LEDGE-IN-RAVINE,0,FX?RLANDBIT,ROOMS,ZORK3,KEYHOLE-1,T?LEDGE-IN-RAVINE + .OBJECT GREAT-CAVERN,0,FX?ONBIT+FX?RLANDBIT,ROOMS,INSIDE-THE-BARROW,0,T?GREAT-CAVERN + .OBJECT WATER,0,FX?DRINKBIT+FX?TAKEBIT,0,0,0,T?WATER + .OBJECT GROUND,0,0,GLOBAL-OBJECTS,IT,0,T?GROUND + .OBJECT GLOBAL-PALANTIR,FX?NDESCBIT,0,LOCAL-GLOBALS,WIZ-DOOR,0,T?GLOBAL-PALANTIR + .OBJECT TOP-ETCHINGS,FX?NDESCBIT,FX?READBIT,TOP-OF-WELL,0,0,T?TOP-ETCHINGS + .OBJECT TEA-ROOM,0,FX?ONBIT+FX?RLANDBIT,ROOMS,CAGE,ALICE-TABLE,T?TEA-ROOM + .OBJECT NOT-HERE-OBJECT,0,0,0,0,0,T?NOT-HERE-OBJECT + .OBJECT DRAGON,0,FX?ACTORBIT,DRAGON-ROOM,0,0,T?DRAGON + .OBJECT POSTS,FX?NDESCBIT,0,POSTS-ROOM,0,0,T?POSTS + .OBJECT INTNUM,0,FX?TOOLBIT,GLOBAL-OBJECTS,LOCAL-GLOBALS,0,T?INTNUM + .OBJECT STAND-4,FX?OPENBIT+FX?SURFACEBIT,FX?CONTBIT,0,0,PALANTIR-4,T?STAND-4 + .OBJECT PURPLE-BOOK,FX?SEARCHBIT,FX?BURNBIT+FX?CONTBIT+FX?TAKEBIT+FX?READBIT,LIBRARY,WHITE-BOOK,STAMP,T?PURPLE-BOOK + .OBJECT DRAGON-LAIR,0,FX?RLANDBIT,ROOMS,DRAGON-ROOM,PRINCESS,T?DRAGON-LAIR + .OBJECT PENTAGRAM,FX?OPENBIT+FX?SURFACEBIT+FX?NDESCBIT,FX?CONTBIT,PENTAGRAM-ROOM,0,0,T?PENTAGRAM + .OBJECT ROOM-8,0,FX?RLANDBIT,ROOMS,CAROUSEL-ROOM,BILLS,T?ROOM-8 + .OBJECT GLOBAL-CERBERUS,0,0,LOCAL-GLOBALS,MENHIR,0,T?GLOBAL-CERBERUS + .OBJECT DEAD-PALANTIR-4,0,FX?ONBIT+FX?RLANDBIT,ROOMS,DEAD-PALANTIR-3,0,T?DEAD-PALANTIR-4 + .OBJECT FUSE,0,FX?BURNBIT+FX?TAKEBIT,RIDDLE-ROOM,RIDDLE-DOOR,0,T?FUSE + .OBJECT STAND-2,FX?OPENBIT+FX?SURFACEBIT+FX?NDESCBIT,FX?CONTBIT,WORKBENCH,STAND-1,0,T?STAND-2 + .OBJECT GREEN-CAKE,0,FX?FOODBIT+FX?TAKEBIT+FX?READBIT,ALICE-TABLE,0,0,T?GREEN-CAKE + .OBJECT DEAD-PALANTIR-1,0,FX?ONBIT+FX?RLANDBIT,ROOMS,WIZARDS-QUARTERS,0,T?DEAD-PALANTIR-1 + .OBJECT SWORD,FX?TRYTAKEBIT,FX?WEAPONBIT+FX?TAKEBIT,DARK-TUNNEL,0,0,T?SWORD + .OBJECT BRICK,FX?SEARCHBIT+FX?OPENBIT,FX?BURNBIT+FX?TAKEBIT,STONE-BRIDGE,0,0,T?BRICK + .OBJECT DEAD-PALANTIR-2,0,FX?ONBIT+FX?RLANDBIT,ROOMS,DEAD-PALANTIR-1,0,T?DEAD-PALANTIR-2 + .OBJECT DEAD-PALANTIR-3,0,FX?ONBIT+FX?RLANDBIT,ROOMS,DEAD-PALANTIR-2,0,T?DEAD-PALANTIR-3 + .OBJECT ORANGE-CAKE,0,FX?FOODBIT+FX?TAKEBIT+FX?READBIT,ALICE-TABLE,BLUE-CAKE,0,T?ORANGE-CAKE + .OBJECT VOLCANO-BY-WIDE-LEDGE,FX?NWALLBIT+FX?NONLANDBIT,0,ROOMS,VOLCANO-BY-SMALL-LEDGE,0,T?VOLCANO-BY-WIDE-LEDGE + .OBJECT ZORK3,0,FX?ONBIT+FX?RLANDBIT,ROOMS,CRYPT,0,T?ZORK3 + .OBJECT VOLCANO-BY-SMALL-LEDGE,FX?NWALLBIT+FX?NONLANDBIT,0,ROOMS,VOLCANO-CORE,0,T?VOLCANO-BY-SMALL-LEDGE + .OBJECT DEEP-FORD,0,FX?RLANDBIT,ROOMS,DARK-TUNNEL,0,T?DEEP-FORD + .OBJECT VOLCANO-CORE,FX?NWALLBIT+FX?NONLANDBIT,0,ROOMS,VOLCANO-BOTTOM,0,T?VOLCANO-CORE + .OBJECT WHITE-BOOK,0,FX?BURNBIT+FX?CONTBIT+FX?TAKEBIT+FX?READBIT,LIBRARY,BLUE-BOOK,0,T?WHITE-BOOK + .OBJECT DEMON,FX?INVISIBLE,FX?ACTORBIT,0,0,0,T?DEMON + .OBJECT AQUARIUM-ROOM,0,FX?ONBIT+FX?RLANDBIT,ROOMS,PENTAGRAM-ROOM,AQUARIUM,T?AQUARIUM-ROOM + .OBJECT GAZEBO,0,FX?ONBIT+FX?RLANDBIT,ROOMS,FORMAL-GARDEN,GAZEBO-TABLE,T?GAZEBO + .OBJECT WALL,0,0,GLOBAL-OBJECTS,HANDS,0,T?WALL + .OBJECT RIDDLE-ROOM,0,FX?RLANDBIT,ROOMS,ICE-ROOM,FUSE,T?RIDDLE-ROOM + .OBJECT TOP-OF-WELL,FX?NONLANDBIT,FX?RLANDBIT,ROOMS,CIRCULAR-ROOM,ROBOT-LABEL,T?TOP-OF-WELL + .OBJECT ROBOT-LABEL,0,FX?BURNBIT+FX?TAKEBIT+FX?READBIT,TOP-OF-WELL,ROBOT,0,T?ROBOT-LABEL + .OBJECT COIN,0,FX?TAKEBIT+FX?READBIT,NARROW-LEDGE,0,0,T?COIN + .OBJECT LETTER-OPENER,0,FX?TOOLBIT+FX?TAKEBIT,GAZEBO-TABLE,TEAPOT,0,T?LETTER-OPENER + .OBJECT PSEUDO-OBJECT,0,0,LOCAL-GLOBALS,0,0,T?PSEUDO-OBJECT + .OBJECT DRAGON-ROOM,0,FX?RLANDBIT,ROOMS,TOPIARY,DRAGON,T?DRAGON-ROOM + .OBJECT AQUARIUM,FX?OPENBIT,FX?CONTBIT,AQUARIUM-ROOM,0,SERPENT,T?AQUARIUM + .OBJECT PTABLE,FX?OPENBIT+FX?SURFACEBIT+FX?NDESCBIT,FX?CONTBIT,DREARY-ROOM,PALANTIR-2,0,T?PTABLE + .ENDT + +; OBJECT PROPERTY TABLES ARE DEFINED HERE + +OBJPRP:: + +T?STATUETTE:: .TABLE ; TABLE FOR OBJECT STATUETTE + .STRL "golden dragon statuette" + .PROP 6,P?SYNONYM + W?TREASURE + W?STATUE + W?DRAGON + .PROP 1,P?ADJECTIVE + .BYTE A?GOLD + .PROP 2,P?VALUE + 20 + .PROP 2,P?FDESC + STR?156 + .BYTE 0 + .ENDT + +T?MURKY-ROOM:: .TABLE ; TABLE FOR OBJECT MURKY-ROOM + .STRL "Murky Room" + .PROP 1,P?OUT ; UNCONDITIONAL EXIT + .BYTE AQUARIUM-ROOM ; TO ROOM + .PROP 2,P?ACTION + MURKY-ROOM-F + .BYTE 0 + .ENDT + +T?TRIANGULAR-BUTTON:: .TABLE ; TABLE FOR OBJECT TRIANGULAR-BUTTON + .STRL "triangular button" + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 2,P?ACTION + TRIANGULAR-BUTTON-F + .PROP 1,P?ADJECTIVE + .BYTE A?TRIANGULAR + .BYTE 0 + .ENDT + +T?GLOBAL-WATER:: .TABLE ; TABLE FOR OBJECT GLOBAL-WATER + .STRL "water" + .PROP 2,P?SYNONYM + W?WATER + .PROP 2,P?ACTION + WATER-F + .BYTE 0 + .ENDT + +T?RIDDLE-DOOR:: .TABLE ; TABLE FOR OBJECT RIDDLE-DOOR + .STRL "stone door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 2,P?ACTION + RIDDLE-DOOR-F + .PROP 2,P?ADJECTIVE + .BYTE A?GREAT + .BYTE A?STONE + .BYTE 0 + .ENDT + +T?BOTTOM-ETCHINGS:: .TABLE ; TABLE FOR OBJECT BOTTOM-ETCHINGS + .STRL "wall with etchings" + .PROP 4,P?SYNONYM + W?ETCHINGS + W?WALL + .PROP 2,P?TEXT + STR?170 + .BYTE 0 + .ENDT + +T?WELL:: .TABLE ; TABLE FOR OBJECT WELL + .STRL "well" + .PROP 2,P?SYNONYM + W?WELL + .PROP 2,P?ACTION + WELL-F + .PROP 1,P?ADJECTIVE + .BYTE A?MAGIC + .BYTE 0 + .ENDT + +T?HANDS:: .TABLE ; TABLE FOR OBJECT HANDS + .STRL "pair of hands" + .PROP 6,P?SYNONYM + W?PAIR + W?HANDS + W?HAND + .PROP 1,P?ADJECTIVE + .BYTE A?BARE + .BYTE 0 + .ENDT + +T?CAGE:: .TABLE ; TABLE FOR OBJECT CAGE + .STRL "Cage" + .PROP 2,P?ACTION + CAGE-F + .PROP 2,P?LDESC + STR?180 + .BYTE 0 + .ENDT + +T?INSIDE-THE-BARROW:: .TABLE ; TABLE FOR OBJECT INSIDE-THE-BARROW + .STRL "Inside the Barrow" + .PROP 1,P?SW ; UNCONDITIONAL EXIT + .BYTE GREAT-CAVERN ; TO ROOM + .PROP 2,P?LDESC + STR?110 + .BYTE 0 + .ENDT + +T?KEY:: .TABLE ; TABLE FOR OBJECT KEY + .STRL "rusty iron key" + .PROP 2,P?SYNONYM + W?KEY + .PROP 2,P?SIZE + 2 + .PROP 2,P?ADJECTIVE + .BYTE A?IRON + .BYTE A?RUSTY + .BYTE 0 + .ENDT + +T?NARROW-LEDGE:: .TABLE ; TABLE FOR OBJECT NARROW-LEDGE + .STRL "Narrow Ledge" + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE LIBRARY ; TO ROOM + .PROP 2,P?DOWN ; IMPOSSIBLE EXIT + STR?205 ; FAILURE MESSAGE + .PROP 1,P?IN ; UNCONDITIONAL EXIT + .BYTE LIBRARY ; TO ROOM + .PROP 2,P?ACTION + LEDGE-F + .PROP 1,P?GLOBAL + .BYTE HOOK + .BYTE 0 + .ENDT + +T?WIZARD:: .TABLE ; TABLE FOR OBJECT WIZARD + .STRL "Wizard of Frobozz" + .PROP 4,P?SYNONYM + W?WIZARD + W?MAN + .PROP 2,P?ACTION + WIZARD-F + .PROP 2,P?LDESC + STR?51 + .PROP 3,P?ADJECTIVE + .BYTE A?LITTLE + .BYTE A?FROBOZZ + .BYTE A?OLD + .BYTE 0 + .ENDT + +T?DEAD-SERPENT:: .TABLE ; TABLE FOR OBJECT DEAD-SERPENT + .STRL "dead sea serpent" + .PROP 4,P?SYNONYM + W?SERPENT + W?SNAKE + .PROP 2,P?ACTION + DEAD-SERPENT-F + .PROP 2,P?SIZE + 400 + .PROP 3,P?ADJECTIVE + .BYTE A?DEAD + .BYTE A?BABY + .BYTE A?SEA + .BYTE 0 + .ENDT + +T?WAND:: .TABLE ; TABLE FOR OBJECT WAND + .STRL "magic wand" + .PROP 2,P?SYNONYM + W?WAND + .PROP 2,P?ACTION + WAND-F + .PROP 1,P?ADJECTIVE + .BYTE A?MAGIC + .PROP 2,P?VALUE + 30 + .BYTE 0 + .ENDT + +T?MATCH:: .TABLE ; TABLE FOR OBJECT MATCH + .STRL "matchbook" + .PROP 6,P?SYNONYM + W?MATCH + W?MATCHES + W?MATCHBOOK + .PROP 2,P?ACTION + MATCH-F + .PROP 2,P?LDESC + STR?141 + .PROP 2,P?SIZE + 2 + .PROP 2,P?TEXT + STR?142 + .BYTE 0 + .ENDT + +T?ME:: .TABLE ; TABLE FOR OBJECT ME + .STRL "brave adventurer" + .PROP 6,P?SYNONYM + W?ME + W?MYSELF + W?SELF + .PROP 2,P?ACTION + ME-F + .BYTE 0 + .ENDT + +T?UNICORN:: .TABLE ; TABLE FOR OBJECT UNICORN + .STRL "unicorn" + .PROP 4,P?SYNONYM + W?UNICORN + W?ANIMAL + .PROP 2,P?ACTION + UNICORN-F + .PROP 2,P?LDESC + STR?139 + .PROP 2,P?ADJECTIVE + .BYTE A?BEAUTIFUL + .BYTE A?WHITE + .BYTE 0 + .ENDT + +T?PALANTIR-1:: .TABLE ; TABLE FOR OBJECT PALANTIR-1 + .STRL "red crystal sphere" + .PROP 2,P?SYNONYM + W?SPHERE + .PROP 2,P?ACTION + SPHERE-F + .PROP 2,P?SIZE + 10 + .PROP 2,P?ADJECTIVE + .BYTE A?CRYSTAL + .BYTE A?RED + .PROP 2,P?VALUE + 20 + .BYTE 0 + .ENDT + +T?HOOK:: .TABLE ; TABLE FOR OBJECT HOOK + .STRL "hook" + .PROP 2,P?SYNONYM + W?HOOK + .PROP 1,P?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 + .ENDT + +T?PALANTIR-3:: .TABLE ; TABLE FOR OBJECT PALANTIR-3 + .STRL "clear crystal sphere" + .PROP 2,P?SYNONYM + W?SPHERE + .PROP 2,P?ACTION + SPHERE-F + .PROP 3,P?ADJECTIVE + .BYTE A?CRYSTAL + .BYTE A?WHITE + .BYTE A?CLEAR + .PROP 2,P?VALUE + 20 + .PROP 2,P?FDESC + STR?108 + .BYTE 0 + .ENDT + +T?SERPENT:: .TABLE ; TABLE FOR OBJECT SERPENT + .STRL "baby sea serpent" + .PROP 4,P?SYNONYM + W?SERPENT + W?SNAKE + .PROP 2,P?ACTION + SERPENT-F + .PROP 2,P?LDESC + STR?97 + .PROP 2,P?ADJECTIVE + .BYTE A?BABY + .BYTE A?SEA + .BYTE 0 + .ENDT + +T?PALANTIR-2:: .TABLE ; TABLE FOR OBJECT PALANTIR-2 + .STRL "blue crystal sphere" + .PROP 2,P?SYNONYM + W?SPHERE + .PROP 2,P?ACTION + SPHERE-F + .PROP 2,P?ADJECTIVE + .BYTE A?CRYSTAL + .BYTE A?BLUE + .PROP 2,P?VALUE + 20 + .PROP 2,P?FDESC + STR?107 + .BYTE 0 + .ENDT + +T?ICE-ROOM:: .TABLE ; TABLE FOR OBJECT ICE-ROOM + .STRL "Ice Room" + .PROP 1,P?EAST ; UNCONDITIONAL EXIT + .BYTE COOL-ROOM ; TO ROOM + .PROP 4,P?WEST ; CONDITIONAL EXIT + .BYTE VOLCANO-BOTTOM ; TO ROOM + .BYTE ICE-MELTED ; IF FLAG IS TRUE + STR?166 ; FAILURE MESSAGE + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE GUARDED-ROOM ; TO ROOM + .PROP 2,P?ACTION + ICE-ROOM-F + .BYTE 0 + .ENDT + +T?GAZEBO-OBJECT:: .TABLE ; TABLE FOR OBJECT GAZEBO-OBJECT + .STRL "gazebo" + .PROP 2,P?SYNONYM + W?GAZEBO + .PROP 2,P?ACTION + GAZEBO-OBJECT-F + .PROP 1,P?ADJECTIVE + .BYTE A?WOODEN + .BYTE 0 + .ENDT + +T?PALANTIR-4:: .TABLE ; TABLE FOR OBJECT PALANTIR-4 + .STRL "black crystal sphere" + .PROP 2,P?SYNONYM + W?SPHERE + .PROP 2,P?ACTION + SPHERE-F + .PROP 2,P?LDESC + STR?82 + .PROP 2,P?SIZE + 10 + .PROP 3,P?ADJECTIVE + .BYTE A?CRYSTAL + .BYTE A?STRANGE + .BYTE A?BLACK + .PROP 2,P?VALUE + 30 + .BYTE 0 + .ENDT + +T?ROOMS:: .TABLE ; TABLE FOR OBJECT ROOMS + .STRL "" + .PROP 1,P?IN ; UNCONDITIONAL EXIT + .BYTE ROOMS ; TO ROOM + .BYTE 0 + .ENDT + +T?POOL:: .TABLE ; TABLE FOR OBJECT POOL + .STRL "pool" + .PROP 2,P?SYNONYM + W?POOL + .PROP 2,P?ACTION + POOL-F + .PROP 2,P?LDESC + STR?192 + .BYTE 0 + .ENDT + +T?ADVENTURER:: .TABLE ; TABLE FOR OBJECT ADVENTURER + .STRL "thing" + .PROP 2,P?SYNONYM + W?ADVENTURER + .PROP 2,P?ACTION + 0 + .PROP 2,P?STRENGTH + 0 + .BYTE 0 + .ENDT + +T?WIDE-LEDGE:: .TABLE ; TABLE FOR OBJECT WIDE-LEDGE + .STRL "Wide Ledge" + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE DUSTY-ROOM ; TO ROOM + .PROP 2,P?DOWN ; IMPOSSIBLE EXIT + STR?164 ; FAILURE MESSAGE + .PROP 1,P?IN ; UNCONDITIONAL EXIT + .BYTE DUSTY-ROOM ; TO ROOM + .PROP 2,P?ACTION + LEDGE-F + .PROP 1,P?GLOBAL + .BYTE HOOK + .BYTE 0 + .ENDT + +T?WIZ-DOOR:: .TABLE ; TABLE FOR OBJECT WIZ-DOOR + .STRL "door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 2,P?ACTION + WIZ-DOOR-F + .PROP 1,P?ADJECTIVE + .BYTE A?BATTERED + .BYTE 0 + .ENDT + +T?LOCAL-GLOBALS:: .TABLE ; TABLE FOR OBJECT LOCAL-GLOBALS + .STRL "" + .PROP 2,P?SYNONYM + W?ZZMGCK + .BYTE 0 + .ENDT + +T?WIZARDS-WORKSHOP:: .TABLE ; TABLE FOR OBJECT WIZARDS-WORKSHOP + .STRL "Wizard's Workshop" + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE TROPHY-ROOM ; TO ROOM + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE PENTAGRAM-ROOM ; TO ROOM + .PROP 2,P?LDESC + STR?81 + .BYTE 0 + .ENDT + +T?BUCKET:: .TABLE ; TABLE FOR OBJECT BUCKET + .STRL "wooden bucket" + .PROP 2,P?SYNONYM + W?BUCKET + .PROP 2,P?ACTION + BUCKET-F + .PROP 2,P?LDESC + STR?171 + .PROP 2,P?SIZE + 100 + .PROP 1,P?ADJECTIVE + .BYTE A?WOODEN + .PROP 2,P?CAPACITY + 100 + .PROP 2,P?VTYPE + 0 + .PROP 2,P?CONTFCN + BUCKET-CONT + .BYTE 0 + .ENDT + +T?SHALLOW-FORD:: .TABLE ; TABLE FOR OBJECT SHALLOW-FORD + .STRL "Shallow Ford" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE GREAT-CAVERN ; TO ROOM + .PROP 1,P?SW ; UNCONDITIONAL EXIT + .BYTE DARK-TUNNEL ; TO ROOM + .PROP 2,P?LDESC + STR?116 + .PROP 2,P?GLOBAL + .BYTE GLOBAL-WATER + .BYTE STREAM + .BYTE 0 + .ENDT + +T?PORTRAIT:: .TABLE ; TABLE FOR OBJECT PORTRAIT + .STRL "portrait of J. Pierpont Flathead" + .PROP 6,P?SYNONYM + W?PORTRAIT + W?PAINTING + W?TREASURE + .PROP 2,P?SIZE + 25 + .PROP 2,P?ADJECTIVE + .BYTE A?RARE + .BYTE A?FLATHEAD + .PROP 2,P?VALUE + 20 + .PROP 2,P?FDESC + STR?184 + .BYTE 0 + .ENDT + +T?CARD:: .TABLE ; TABLE FOR OBJECT CARD + .STRL "card" + .PROP 4,P?SYNONYM + W?CARD + W?NOTE + .PROP 2,P?LDESC + STR?215 + .PROP 2,P?SIZE + 1 + .PROP 2,P?TEXT + STR?216 + .BYTE 0 + .ENDT + +T?DREARY-ROOM:: .TABLE ; TABLE FOR OBJECT DREARY-ROOM + .STRL "Dreary Room" + .PROP 5,P?SOUTH ; CONDITIONAL EXIT + .BYTE LEDGE-IN-RAVINE ; TO ROOM + .BYTE PDOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .BYTE 0 + .PROP 5,P?OUT ; CONDITIONAL EXIT + .BYTE LEDGE-IN-RAVINE ; TO ROOM + .BYTE PDOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .BYTE 0 + .PROP 2,P?ACTION + DREARY-ROOM-F + .PROP 2,P?GLOBAL + .BYTE PDOOR + .BYTE PWINDOW + .BYTE 0 + .ENDT + +T?CERBERUS:: .TABLE ; TABLE FOR OBJECT CERBERUS + .STRL "three-headed dog" + .PROP 8,P?SYNONYM + W?CERBERUS + W?DOG + W?HOUND + W?MONSTER + .PROP 2,P?ACTION + CERBERUS-F + .PROP 2,P?LDESC + STR?130 + .PROP 4,P?ADJECTIVE + .BYTE A?HUGE + .BYTE A?GIANT + .BYTE A?THREE + .BYTE A?HEADED + .BYTE 0 + .ENDT + +T?BLUE-BOOK:: .TABLE ; TABLE FOR OBJECT BLUE-BOOK + .STRL "blue book" + .PROP 4,P?SYNONYM + W?BOOK + W?BOOKS + .PROP 2,P?ACTION + RANDOM-BOOK-F + .PROP 2,P?SIZE + 10 + .PROP 1,P?ADJECTIVE + .BYTE A?BLUE + .PROP 2,P?TEXT + STR?210 + .PROP 2,P?CAPACITY + 2 + .PROP 2,P?FDESC + STR?209 + .BYTE 0 + .ENDT + +T?GLOBAL-OBJECTS:: .TABLE ; TABLE FOR OBJECT GLOBAL-OBJECTS + .STRL "" + .BYTE 0 + .ENDT + +T?TROPHY-ROOM:: .TABLE ; TABLE FOR OBJECT TROPHY-ROOM + .STRL "Trophy Room" + .PROP 5,P?NORTH ; CONDITIONAL EXIT + .BYTE GUARDED-ROOM ; TO ROOM + .BYTE WIZ-DOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .BYTE 0 + .PROP 1,P?EAST ; UNCONDITIONAL EXIT + .BYTE WIZARDS-WORKSHOP ; TO ROOM + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE AQUARIUM-ROOM ; TO ROOM + .PROP 5,P?OUT ; CONDITIONAL EXIT + .BYTE GUARDED-ROOM ; TO ROOM + .BYTE WIZ-DOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .BYTE 0 + .PROP 2,P?ACTION + TROPHY-ROOM-F + .PROP 2,P?VALUE + 10 + .PROP 1,P?GLOBAL + .BYTE WIZ-DOOR + .PROP 4,P?PSEUDO + W?OWL ; NAME + TROPHY-PSEUDO ; HANDLER + .BYTE 0 + .ENDT + +T?SAFE-HOLE:: .TABLE ; TABLE FOR OBJECT SAFE-HOLE + .STRL "hole" + .PROP 4,P?SYNONYM + W?SLOT + W?HOLE + .PROP 2,P?ACTION + SAFE-HOLE-F + .PROP 2,P?CAPACITY + 10 + .BYTE 0 + .ENDT + +T?IT:: .TABLE ; TABLE FOR OBJECT IT + .STRL "thing" + .PROP 8,P?SYNONYM + W?IT + W?THEM + W?HER + W?HIM + .BYTE 0 + .ENDT + +T?WIZARDS-QUARTERS:: .TABLE ; TABLE FOR OBJECT WIZARDS-QUARTERS + .STRL "Wizard's Quarters" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE AQUARIUM-ROOM ; TO ROOM + .PROP 2,P?ACTION + WIZARD-QUARTERS-F + .BYTE 0 + .ENDT + +T?COLLAR:: .TABLE ; TABLE FOR OBJECT COLLAR + .STRL "gigantic dog collar" + .PROP 2,P?SYNONYM + W?COLLAR + .PROP 2,P?ACTION + COLLAR-F + .PROP 3,P?ADJECTIVE + .BYTE A?HUGE + .BYTE A?GIANT + .BYTE A?DOG + .PROP 2,P?VALUE + 15 + .PROP 2,P?FDESC + STR?126 + .BYTE 0 + .ENDT + +T?RIBBON:: .TABLE ; TABLE FOR OBJECT RIBBON + .STRL "ribbon" + .PROP 2,P?SYNONYM + W?RIBBON + .PROP 2,P?ACTION + UNICORN-F + .PROP 2,P?ADJECTIVE + .BYTE A?VELVET + .BYTE A?SATIN + .BYTE 0 + .ENDT + +T?BRIDGE:: .TABLE ; TABLE FOR OBJECT BRIDGE + .STRL "bridge" + .PROP 2,P?SYNONYM + W?BRIDGE + .PROP 2,P?ACTION + BRIDGE-F + .PROP 1,P?ADJECTIVE + .BYTE A?STONE + .BYTE 0 + .ENDT + +T?WORKBENCH:: .TABLE ; TABLE FOR OBJECT WORKBENCH + .STRL "Wizard's workbench" + .PROP 6,P?SYNONYM + W?WORKBENCH + W?BENCH + W?TABLE + .PROP 2,P?ADJECTIVE + .BYTE A?WORK + .BYTE A?WIZARD + .PROP 2,P?CAPACITY + 200 + .BYTE 0 + .ENDT + +T?PCRACK:: .TABLE ; TABLE FOR OBJECT PCRACK + .STRL "crack" + .PROP 2,P?SYNONYM + W?CRACK + .PROP 1,P?ADJECTIVE + .BYTE A?NARROW + .BYTE 0 + .ENDT + +T?STAMP:: .TABLE ; TABLE FOR OBJECT STAMP + .STRL "Flathead stamp" + .PROP 4,P?SYNONYM + W?STAMP + W?TREASURE + .PROP 2,P?SIZE + 1 + .PROP 1,P?ADJECTIVE + .BYTE A?FLATHEAD + .PROP 2,P?VALUE + 10 + .PROP 2,P?TEXT + STR?214 + .BYTE 0 + .ENDT + +T?DOOR-KEEPER:: .TABLE ; TABLE FOR OBJECT DOOR-KEEPER + .STRL "lizard" + .PROP 6,P?SYNONYM + W?GUARDIAN + W?LIZARD + W?HEAD + .PROP 2,P?ACTION + DOOR-KEEPER-F + .PROP 1,P?ADJECTIVE + .BYTE A?NASTY + .BYTE 0 + .ENDT + +T?DINGY-CLOSET:: .TABLE ; TABLE FOR OBJECT DINGY-CLOSET + .STRL "Dingy Closet" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE MACHINE-ROOM ; TO ROOM + .PROP 1,P?OUT ; UNCONDITIONAL EXIT + .BYTE MACHINE-ROOM ; TO ROOM + .PROP 2,P?LDESC + STR?179 + .BYTE 0 + .ENDT + +T?STONE-BRIDGE:: .TABLE ; TABLE FOR OBJECT STONE-BRIDGE + .STRL "Stone Bridge" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE DRAGON-ROOM ; TO ROOM + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE COOL-ROOM ; TO ROOM + .PROP 2,P?DOWN ; IMPOSSIBLE EXIT + STR?164 ; FAILURE MESSAGE + .PROP 2,P?LDESC + STR?163 + .PROP 2,P?GLOBAL + .BYTE BRIDGE + .BYTE CHASM + .BYTE 0 + .ENDT + +T?CHEST:: .TABLE ; TABLE FOR OBJECT CHEST + .STRL "wooden chest" + .PROP 4,P?SYNONYM + W?CHEST + W?TRUNK + .PROP 2,P?ACTION + CHEST-F + .PROP 2,P?SIZE + 40 + .PROP 2,P?ADJECTIVE + .BYTE A?WOODEN + .BYTE A?OLD + .PROP 2,P?CAPACITY + 40 + .PROP 2,P?FDESC + STR?155 + .BYTE 0 + .ENDT + +T?POOL-ROOM:: .TABLE ; TABLE FOR OBJECT POOL-ROOM + .STRL "Pool Room" + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE POSTS-ROOM ; TO ROOM + .PROP 1,P?OUT ; UNCONDITIONAL EXIT + .BYTE POSTS-ROOM ; TO ROOM + .PROP 2,P?LDESC + STR?191 + .BYTE 0 + .ENDT + +T?MENHIR:: .TABLE ; TABLE FOR OBJECT MENHIR + .STRL "enormous menhir" + .PROP 8,P?SYNONYM + W?MENHIR + W?ROCK + W?STONE + W?F + .PROP 2,P?ACTION + MENHIR-F + .PROP 3,P?ADJECTIVE + .BYTE A?HUGE + .BYTE A?HEAVY + .BYTE A?ENORMOUS + .BYTE 0 + .ENDT + +T?TOPIARY:: .TABLE ; TABLE FOR OBJECT TOPIARY + .STRL "Topiary" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE FORMAL-GARDEN ; TO ROOM + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE CAROUSEL-ROOM ; TO ROOM + .PROP 2,P?ACTION + TOPIARY-F + .PROP 2,P?LDESC + STR?143 + .BYTE 0 + .ENDT + +T?CRYPT-OBJECT:: .TABLE ; TABLE FOR OBJECT CRYPT-OBJECT + .STRL "marble crypt" + .PROP 6,P?SYNONYM + W?TOMB + W?CRYPT + W?GRAVE + .PROP 2,P?ACTION + CRYPT-OBJECT-F + .PROP 1,P?ADJECTIVE + .BYTE A?MARBLE + .PROP 2,P?TEXT + STR?134 + .BYTE 0 + .ENDT + +T?PEARL-NECKLACE:: .TABLE ; TABLE FOR OBJECT PEARL-NECKLACE + .STRL "pearl necklace" + .PROP 4,P?SYNONYM + W?NECKLACE + W?TREASURE + .PROP 2,P?SIZE + 10 + .PROP 1,P?ADJECTIVE + .BYTE A?PEARL + .PROP 2,P?VALUE + 15 + .BYTE 0 + .ENDT + +T?MACHINE-ROOM:: .TABLE ; TABLE FOR OBJECT MACHINE-ROOM + .STRL "Machine Room" + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE DINGY-CLOSET ; TO ROOM + .PROP 1,P?SW ; UNCONDITIONAL EXIT + .BYTE TOP-OF-WELL ; TO ROOM + .PROP 2,P?LDESC + STR?177 + .BYTE 0 + .ENDT + +T?BLUE-CAKE:: .TABLE ; TABLE FOR OBJECT BLUE-CAKE + .STRL "cake frosted with blue letters" + .PROP 8,P?SYNONYM + W?CAKE + W?ICING + W?CAKES + W?LETTER + .PROP 2,P?ACTION + CAKE-F + .PROP 2,P?SIZE + 4 + .PROP 2,P?ADJECTIVE + .BYTE A?BLUE + .BYTE A?FROSTED + .BYTE 0 + .ENDT + +T?STAND-1:: .TABLE ; TABLE FOR OBJECT STAND-1 + .STRL "ruby stand" + .PROP 4,P?SYNONYM + W?STAND + W?STANDS + .PROP 2,P?ACTION + STAND-F + .PROP 2,P?ADJECTIVE + .BYTE A?CRYSTAL + .BYTE A?RUBY + .PROP 2,P?CAPACITY + 10 + .BYTE 0 + .ENDT + +T?PENTAGRAM-ROOM:: .TABLE ; TABLE FOR OBJECT PENTAGRAM-ROOM + .STRL "Pentagram Room" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE WIZARDS-WORKSHOP ; TO ROOM + .PROP 2,P?LDESC + STR?83 + .PROP 2,P?GLOBAL + .BYTE GLOBAL-MENHIR + .BYTE GLOBAL-CERBERUS + .BYTE 0 + .ENDT + +T?CLOTH-BAG:: .TABLE ; TABLE FOR OBJECT CLOTH-BAG + .STRL "cloth bag" + .PROP 2,P?SYNONYM + W?BAG + .PROP 2,P?ACTION + BCONTENTS + .PROP 1,P?ADJECTIVE + .BYTE A?CLOTH + .BYTE 0 + .ENDT + +T?WANDS:: .TABLE ; TABLE FOR OBJECT WANDS + .STRL "set of used wands" + .PROP 8,P?SYNONYM + W?WANDS + W?WAND + W?RACK + W?SET + .PROP 2,P?ACTION + TROPHY-PSEUDO + .PROP 2,P?ADJECTIVE + .BYTE A?WORN + .BYTE A?USED + .BYTE 0 + .ENDT + +T?RUBY:: .TABLE ; TABLE FOR OBJECT RUBY + .STRL "ruby" + .PROP 4,P?SYNONYM + W?RUBY + W?TREASURE + .PROP 2,P?LDESC + STR?195 + .PROP 1,P?ADJECTIVE + .BYTE A?MOBY + .PROP 2,P?VALUE + 15 + .BYTE 0 + .ENDT + +T?ROBOT:: .TABLE ; TABLE FOR OBJECT ROBOT + .STRL "robot" + .PROP 2,P?SYNONYM + W?ROBOT + .PROP 2,P?ACTION + ROBOT-F + .BYTE 0 + .ENDT + +T?STAND-3:: .TABLE ; TABLE FOR OBJECT STAND-3 + .STRL "diamond stand" + .PROP 4,P?SYNONYM + W?STAND + W?STANDS + .PROP 2,P?ACTION + STAND-F + .PROP 2,P?ADJECTIVE + .BYTE A?DIAMOND + .BYTE A?CRYSTAL + .PROP 2,P?CAPACITY + 10 + .BYTE 0 + .ENDT + +T?PLACE-MAT:: .TABLE ; TABLE FOR OBJECT PLACE-MAT + .STRL "place mat" + .PROP 4,P?SYNONYM + W?MAT + W?PLACEM + .PROP 2,P?ACTION + PLACE-MAT-F + .PROP 2,P?SIZE + 12 + .PROP 1,P?ADJECTIVE + .BYTE A?PLACE + .PROP 2,P?CAPACITY + 20 + .BYTE 0 + .ENDT + +T?EXPLOSION:: .TABLE ; TABLE FOR OBJECT EXPLOSION + .STRL "debris from an explosion" + .PROP 2,P?SYNONYM + W?KREBF + .PROP 2,P?LDESC + STR?221 + .BYTE 0 + .ENDT + +T?STREAM:: .TABLE ; TABLE FOR OBJECT STREAM + .STRL "stream" + .PROP 2,P?SYNONYM + W?STREAM + .PROP 2,P?ACTION + STREAM-F + .PROP 1,P?ADJECTIVE + .BYTE A?COLD + .BYTE 0 + .ENDT + +T?CHASM:: .TABLE ; TABLE FOR OBJECT CHASM + .STRL "chasm" + .PROP 4,P?SYNONYM + W?CHASM + W?RAVINE + .PROP 2,P?ACTION + CHASM-F + .PROP 1,P?ADJECTIVE + .BYTE A?DEEP + .BYTE 0 + .ENDT + +T?TEAPOT:: .TABLE ; TABLE FOR OBJECT TEAPOT + .STRL "china teapot" + .PROP 4,P?SYNONYM + W?TEAPOT + W?POT + .PROP 2,P?ACTION + TEAPOT-F + .PROP 2,P?ADJECTIVE + .BYTE A?CHINA + .BYTE A?TEA + .PROP 2,P?CAPACITY + 4 + .BYTE 0 + .ENDT + +T?KEYHOLE-2:: .TABLE ; TABLE FOR OBJECT KEYHOLE-2 + .STRL "keyhole" + .PROP 4,P?SYNONYM + W?KEYHOLE + W?HOLE + .PROP 2,P?ACTION + PKEYHOLE-F + .BYTE 0 + .ENDT + +T?DUSTY-ROOM:: .TABLE ; TABLE FOR OBJECT DUSTY-ROOM + .STRL "Dusty Room" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE WIDE-LEDGE ; TO ROOM + .PROP 1,P?OUT ; UNCONDITIONAL EXIT + .BYTE WIDE-LEDGE ; TO ROOM + .PROP 2,P?ACTION + DUSTY-ROOM-F + .BYTE 0 + .ENDT + +T?ICE:: .TABLE ; TABLE FOR OBJECT ICE + .STRL "glacier" + .PROP 6,P?SYNONYM + W?ICE + W?MASS + W?GLACIER + .PROP 2,P?ACTION + ICE-F + .PROP 2,P?LDESC + STR?167 + .PROP 2,P?ADJECTIVE + .BYTE A?COLD + .BYTE A?ICY + .BYTE 0 + .ENDT + +T?ZORKMID:: .TABLE ; TABLE FOR OBJECT ZORKMID + .STRL "zorkmid" + .PROP 2,P?SYNONYM + W?ZORKMID + .PROP 2,P?ACTION + ZORKMID-F + .BYTE 0 + .ENDT + +T?CRYPT:: .TABLE ; TABLE FOR OBJECT CRYPT + .STRL "Crypt" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE CERBERUS-ROOM ; TO ROOM + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE ZORK3 ; TO ROOM + .PROP 2,P?LDESC + STR?132 + .PROP 2,P?VALUE + 2 + .BYTE 0 + .ENDT + +T?HEADS:: .TABLE ; TABLE FOR OBJECT HEADS + .STRL "set of poled heads" + .PROP 8,P?SYNONYM + W?HEADS + W?HEAD + W?POLE + W?POLES + .PROP 2,P?ACTION + HEADS-F + .BYTE 0 + .ENDT + +T?HEDGES:: .TABLE ; TABLE FOR OBJECT HEDGES + .STRL "hedge" + .PROP 4,P?SYNONYM + W?HEDGE + W?HEDGES + .PROP 2,P?ACTION + HEDGES-F + .BYTE 0 + .ENDT + +T?POSTS-ROOM:: .TABLE ; TABLE FOR OBJECT POSTS-ROOM + .STRL "Posts Room" + .PROP 1,P?EAST ; UNCONDITIONAL EXIT + .BYTE POOL-ROOM ; TO ROOM + .PROP 2,P?WEST ; IMPOSSIBLE EXIT + STR?190 ; FAILURE MESSAGE + .PROP 2,P?ACTION + POSTS-ROOM-F + .PROP 2,P?LDESC + STR?189 + .PROP 2,P?VALUE + 10 + .PROP 1,P?GLOBAL + .BYTE CHASM + .BYTE 0 + .ENDT + +T?RECEPTACLE:: .TABLE ; TABLE FOR OBJECT RECEPTACLE + .STRL "receptacle" + .PROP 2,P?SYNONYM + W?RECEPTACLE + .PROP 2,P?ACTION + BCONTENTS + .PROP 1,P?ADJECTIVE + .BYTE A?METAL + .PROP 2,P?CAPACITY + 6 + .BYTE 0 + .ENDT + +T?GOLD-KEY:: .TABLE ; TABLE FOR OBJECT GOLD-KEY + .STRL "delicate gold key" + .PROP 4,P?SYNONYM + W?KEY + W?TREASURE + .PROP 2,P?ACTION + UNICORN-F + .PROP 2,P?SIZE + 3 + .PROP 2,P?ADJECTIVE + .BYTE A?DELICATE + .BYTE A?GOLD + .PROP 2,P?VALUE + 15 + .BYTE 0 + .ENDT + +T?KENNEL:: .TABLE ; TABLE FOR OBJECT KENNEL + .STRL "Kennel" + .PROP 4,P?NE ; CONDITIONAL EXIT + .BYTE MENHIR-ROOM ; TO ROOM + .BYTE MENHIR-POSITION ; IF FLAG IS TRUE + STR?124 ; FAILURE MESSAGE + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE MENHIR-ROOM ; TO ROOM + .BYTE MENHIR-POSITION ; IF FLAG IS TRUE + STR?124 ; FAILURE MESSAGE + .PROP 2,P?LDESC + STR?125 + .PROP 1,P?GLOBAL + .BYTE MENHIR + .BYTE 0 + .ENDT + +T?PATH-OBJECT:: .TABLE ; TABLE FOR OBJECT PATH-OBJECT + .STRL "passage" + .PROP 6,P?SYNONYM + W?PATH + W?PASSAGE + W?TUNNEL + .PROP 2,P?ACTION + PATH-OBJECT-F + .PROP 5,P?ADJECTIVE + .BYTE A?DARK + .BYTE A?DAMP + .BYTE A?SMOKEY + .BYTE A?SCORCHED + .BYTE A?NARROW + .BYTE 0 + .ENDT + +T?KEYHOLE-1:: .TABLE ; TABLE FOR OBJECT KEYHOLE-1 + .STRL "keyhole" + .PROP 4,P?SYNONYM + W?KEYHOLE + W?HOLE + .PROP 2,P?ACTION + PKEYHOLE-F + .BYTE 0 + .ENDT + +T?CANDY:: .TABLE ; TABLE FOR OBJECT CANDY + .STRL "package of candy" + .PROP 6,P?SYNONYM + W?PACKAGE + W?CANDY + W?INSECTS + .PROP 2,P?ACTION + CANDY-F + .PROP 2,P?LDESC + STR?193 + .PROP 2,P?SIZE + 8 + .PROP 2,P?ADJECTIVE + .BYTE A?CANDIED + .BYTE A?RARE + .PROP 2,P?VALUE + 15 + .BYTE 0 + .ENDT + +T?CIRCULAR-ROOM:: .TABLE ; TABLE FOR OBJECT CIRCULAR-ROOM + .STRL "Circular Room" + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE RIDDLE-ROOM ; TO ROOM + .PROP 2,P?UP ; IMPOSSIBLE EXIT + STR?169 ; FAILURE MESSAGE + .PROP 2,P?LDESC + STR?168 + .PROP 1,P?GLOBAL + .BYTE WELL + .BYTE 0 + .ENDT + +T?SAFE:: .TABLE ; TABLE FOR OBJECT SAFE + .STRL "box" + .PROP 4,P?SYNONYM + W?SAFE + W?BOX + .PROP 2,P?ACTION + SAFE-F + .PROP 2,P?ADJECTIVE + .BYTE A?STEEL + .BYTE A?RUSTY + .PROP 2,P?CAPACITY + 15 + .BYTE 0 + .ENDT + +T?PDOOR:: .TABLE ; TABLE FOR OBJECT PDOOR + .STRL "door of oak" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 2,P?ACTION + PDOOR-F + .PROP 2,P?ADJECTIVE + .BYTE A?WOODEN + .BYTE A?OAK + .BYTE 0 + .ENDT + +T?BALLOON-LABEL:: .TABLE ; TABLE FOR OBJECT BALLOON-LABEL + .STRL "blue label" + .PROP 2,P?SYNONYM + W?LABEL + .PROP 2,P?LDESC + STR?202 + .PROP 2,P?SIZE + 1 + .PROP 1,P?ADJECTIVE + .BYTE A?BLUE + .PROP 2,P?TEXT + STR?203 + .BYTE 0 + .ENDT + +T?LIBRARY:: .TABLE ; TABLE FOR OBJECT LIBRARY + .STRL "Library" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE NARROW-LEDGE ; TO ROOM + .PROP 1,P?OUT ; UNCONDITIONAL EXIT + .BYTE NARROW-LEDGE ; TO ROOM + .PROP 2,P?LDESC + STR?208 + .BYTE 0 + .ENDT + +T?VIOLIN:: .TABLE ; TABLE FOR OBJECT VIOLIN + .STRL "fancy violin" + .PROP 6,P?SYNONYM + W?STRADIVARIUS + W?VIOLIN + W?TREASURE + .PROP 2,P?ACTION + VIOLIN-F + .PROP 2,P?LDESC + STR?120 + .PROP 2,P?SIZE + 10 + .PROP 1,P?ADJECTIVE + .BYTE A?FANCY + .PROP 2,P?VALUE + 20 + .BYTE 0 + .ENDT + +T?CAROUSEL-ROOM:: .TABLE ; TABLE FOR OBJECT CAROUSEL-ROOM + .STRL "Carousel Room" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE DEEP-FORD ; TO ROOM + .PROP 1,P?EAST ; UNCONDITIONAL EXIT + .BYTE TOPIARY ; TO ROOM + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE ROOM-8 ; TO ROOM + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE MENHIR-ROOM ; TO ROOM + .PROP 1,P?NE ; UNCONDITIONAL EXIT + .BYTE DARK-TUNNEL ; TO ROOM + .PROP 1,P?NW ; UNCONDITIONAL EXIT + .BYTE COOL-ROOM ; TO ROOM + .PROP 1,P?SE ; UNCONDITIONAL EXIT + .BYTE RIDDLE-ROOM ; TO ROOM + .PROP 1,P?SW ; UNCONDITIONAL EXIT + .BYTE GUARDED-ROOM ; TO ROOM + .PROP 2,P?ACTION + CAROUSEL-ROOM-F + .BYTE 0 + .ENDT + +T?CAGE-OBJECT:: .TABLE ; TABLE FOR OBJECT CAGE-OBJECT + .STRL "solid steel cage" + .PROP 2,P?SYNONYM + W?CAGE + .PROP 2,P?ADJECTIVE + .BYTE A?STEEL + .BYTE A?SOLID + .BYTE 0 + .ENDT + +T?CROWN:: .TABLE ; TABLE FOR OBJECT CROWN + .STRL "gaudy crown" + .PROP 4,P?SYNONYM + W?CROWN + W?TREASURE + .PROP 2,P?LDESC + STR?218 + .PROP 2,P?SIZE + 10 + .PROP 1,P?ADJECTIVE + .BYTE A?GAUDY + .PROP 2,P?VALUE + 20 + .PROP 2,P?FDESC + STR?217 + .BYTE 0 + .ENDT + +T?GUARDED-ROOM:: .TABLE ; TABLE FOR OBJECT GUARDED-ROOM + .STRL "Guarded Room" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE ICE-ROOM ; TO ROOM + .PROP 5,P?SOUTH ; CONDITIONAL EXIT + .BYTE TROPHY-ROOM ; TO ROOM + .BYTE WIZ-DOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .BYTE 0 + .PROP 5,P?IN ; CONDITIONAL EXIT + .BYTE TROPHY-ROOM ; TO ROOM + .BYTE WIZ-DOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .BYTE 0 + .PROP 2,P?ACTION + GUARDED-ROOM-F + .PROP 1,P?GLOBAL + .BYTE WIZ-DOOR + .BYTE 0 + .ENDT + +T?LAMP:: .TABLE ; TABLE FOR OBJECT LAMP + .STRL "lamp" + .PROP 6,P?SYNONYM + W?LAMP + W?LANTERN + W?LIGHT + .PROP 2,P?ACTION + LAMP-F + .PROP 2,P?SIZE + 15 + .PROP 1,P?ADJECTIVE + .BYTE A?BRASS + .PROP 2,P?FDESC + STR?111 + .BYTE 0 + .ENDT + +T?PRINCESS:: .TABLE ; TABLE FOR OBJECT PRINCESS + .STRL "beautiful princess" + .PROP 6,P?SYNONYM + W?PRINCESS + W?WOMAN + W?LADY + .PROP 2,P?ACTION + PRINCESS-F + .PROP 2,P?ADJECTIVE + .BYTE A?BEAUTIFUL + .BYTE A?YOUNG + .PROP 2,P?FDESC + STR?157 + .BYTE 0 + .ENDT + +T?ALICE-TABLE:: .TABLE ; TABLE FOR OBJECT ALICE-TABLE + .STRL "table" + .PROP 2,P?SYNONYM + W?TABLE + .PROP 1,P?ADJECTIVE + .BYTE A?OBLONG + .PROP 2,P?CAPACITY + 50 + .BYTE 0 + .ENDT + +T?FORMAL-GARDEN:: .TABLE ; TABLE FOR OBJECT FORMAL-GARDEN + .STRL "Formal Garden" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE DARK-TUNNEL ; TO ROOM + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE TOPIARY ; TO ROOM + .PROP 1,P?IN ; UNCONDITIONAL EXIT + .BYTE GAZEBO ; TO ROOM + .PROP 2,P?ACTION + FORMAL-GARDEN-F + .PROP 2,P?LDESC + STR?138 + .PROP 1,P?GLOBAL + .BYTE GAZEBO-OBJECT + .BYTE 0 + .ENDT + +T?DARK-TUNNEL:: .TABLE ; TABLE FOR OBJECT DARK-TUNNEL + .STRL "Dark Tunnel" + .PROP 4,P?WEST ; CONDITIONAL EXIT + .BYTE DEEP-FORD ; TO ROOM + .BYTE SECRET-DOOR ; IF FLAG IS TRUE + 0 ; FAILURE MESSAGE + .PROP 1,P?NE ; UNCONDITIONAL EXIT + .BYTE SHALLOW-FORD ; TO ROOM + .PROP 1,P?SE ; UNCONDITIONAL EXIT + .BYTE FORMAL-GARDEN ; TO ROOM + .PROP 1,P?SW ; UNCONDITIONAL EXIT + .BYTE CAROUSEL-ROOM ; TO ROOM + .PROP 2,P?LDESC + STR?117 + .BYTE 0 + .ENDT + +T?MENHIR-ROOM:: .TABLE ; TABLE FOR OBJECT MENHIR-ROOM + .STRL "Menhir Room" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE CAROUSEL-ROOM ; TO ROOM + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE CERBERUS-ROOM ; TO ROOM + .PROP 4,P?SW ; CONDITIONAL EXIT + .BYTE KENNEL ; TO ROOM + .BYTE MENHIR-POSITION ; IF FLAG IS TRUE + STR?124 ; FAILURE MESSAGE + .PROP 2,P?ACTION + MENHIR-ROOM-F + .PROP 1,P?GLOBAL + .BYTE MENHIR + .BYTE 0 + .ENDT + +T?CERBERUS-ROOM:: .TABLE ; TABLE FOR OBJECT CERBERUS-ROOM + .STRL "Cerberus Room" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE MENHIR-ROOM ; TO ROOM + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE CRYPT ; TO ROOM + .BYTE CERBERUS-LEASHED ; IF FLAG IS TRUE + STR?129 ; FAILURE MESSAGE + .PROP 4,P?IN ; CONDITIONAL EXIT + .BYTE CRYPT ; TO ROOM + .BYTE CERBERUS-LEASHED ; IF FLAG IS TRUE + STR?129 ; FAILURE MESSAGE + .PROP 2,P?LDESC + STR?128 + .PROP 8,P?PSEUDO + W?TOMB ; NAME + TOMB-PSEUDO ; HANDLER + W?CRYPT ; NAME + TOMB-PSEUDO ; HANDLER + .BYTE 0 + .ENDT + +T?GLOBAL-MENHIR:: .TABLE ; TABLE FOR OBJECT GLOBAL-MENHIR + .STRL "enormous menhir" + .PROP 6,P?SYNONYM + W?MENHIR + W?ROCK + W?STONE + .PROP 2,P?ACTION + GLOBAL-MENHIR-F + .PROP 3,P?ADJECTIVE + .BYTE A?HUGE + .BYTE A?HEAVY + .BYTE A?ENORMOUS + .BYTE 0 + .ENDT + +T?BALLOON:: .TABLE ; TABLE FOR OBJECT BALLOON + .STRL "basket" + .PROP 4,P?SYNONYM + W?BALLOON + W?BASKET + .PROP 2,P?ACTION + BALLOON-F + .PROP 2,P?SIZE + 70 + .PROP 1,P?ADJECTIVE + .BYTE A?WICKER + .PROP 2,P?CAPACITY + 100 + .PROP 2,P?VTYPE + 0 + .PROP 2,P?DESCFCN + BALLOON-F + .BYTE 0 + .ENDT + +T?BRAIDED-WIRE:: .TABLE ; TABLE FOR OBJECT BRAIDED-WIRE + .STRL "braided wire" + .PROP 4,P?SYNONYM + W?ROPE + W?WIRE + .PROP 2,P?ACTION + BRAIDED-WIRE-F + .PROP 1,P?ADJECTIVE + .BYTE A?BRAIDED + .BYTE 0 + .ENDT + +T?GRUE:: .TABLE ; TABLE FOR OBJECT GRUE + .STRL "lurking grue" + .PROP 2,P?SYNONYM + W?GRUE + .PROP 2,P?ACTION + GRUE-F + .PROP 1,P?ADJECTIVE + .BYTE A?LURKING + .BYTE 0 + .ENDT + +T?PWINDOW:: .TABLE ; TABLE FOR OBJECT PWINDOW + .STRL "barred window" + .PROP 2,P?SYNONYM + W?WINDOW + .PROP 2,P?ACTION + PWINDOW-F + .PROP 1,P?ADJECTIVE + .BYTE A?BARRED + .BYTE 0 + .ENDT + +T?COOL-ROOM:: .TABLE ; TABLE FOR OBJECT COOL-ROOM + .STRL "Cool Room" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE STONE-BRIDGE ; TO ROOM + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE ICE-ROOM ; TO ROOM + .PROP 1,P?SE ; UNCONDITIONAL EXIT + .BYTE CAROUSEL-ROOM ; TO ROOM + .PROP 2,P?LDESC + STR?165 + .PROP 1,P?GLOBAL + .BYTE BRIDGE + .BYTE 0 + .ENDT + +T?DEGREE:: .TABLE ; TABLE FOR OBJECT DEGREE + .STRL "degree" + .PROP 4,P?SYNONYM + W?DEGREE + W?DIPLOMA + .PROP 2,P?ACTION + TROPHY-PSEUDO + .PROP 2,P?TEXT + STR?80 + .BYTE 0 + .ENDT + +T?VOLCANO-BOTTOM:: .TABLE ; TABLE FOR OBJECT VOLCANO-BOTTOM + .STRL "Volcano Bottom" + .PROP 1,P?EAST ; UNCONDITIONAL EXIT + .BYTE ICE-ROOM ; TO ROOM + .PROP 2,P?LDESC + STR?194 + .BYTE 0 + .ENDT + +T?BILLS:: .TABLE ; TABLE FOR OBJECT BILLS + .STRL "stack of zorkmid bills" + .PROP 8,P?SYNONYM + W?BILLS + W?STACK + W?MONEY + W?TREASURE + .PROP 2,P?ACTION + BILLS-F + .PROP 2,P?LDESC + STR?122 + .PROP 2,P?SIZE + 10 + .PROP 2,P?ADJECTIVE + .BYTE A?NEAT + .BYTE A?ZORKMID + .PROP 2,P?VALUE + 25 + .PROP 2,P?TEXT + STR?123 + .BYTE 0 + .ENDT + +T?GAZEBO-TABLE:: .TABLE ; TABLE FOR OBJECT GAZEBO-TABLE + .STRL "table" + .PROP 2,P?SYNONYM + W?TABLE + .PROP 2,P?CAPACITY + 100 + .BYTE 0 + .ENDT + +T?RED-CAKE:: .TABLE ; TABLE FOR OBJECT RED-CAKE + .STRL "cake frosted with red letters" + .PROP 8,P?SYNONYM + W?CAKE + W?CAKES + W?ICING + W?LETTER + .PROP 2,P?ACTION + CAKE-F + .PROP 2,P?SIZE + 4 + .PROP 2,P?ADJECTIVE + .BYTE A?RED + .BYTE A?FROSTED + .BYTE 0 + .ENDT + +T?NEWSPAPER:: .TABLE ; TABLE FOR OBJECT NEWSPAPER + .STRL "newspaper" + .PROP 4,P?SYNONYM + W?PAPER + W?NEWSPAPER + .PROP 2,P?ACTION + NEWSPAPER-F + .PROP 2,P?ADJECTIVE + .BYTE A?NEWS + .BYTE A?NEWSPAPER + .BYTE 0 + .ENDT + +T?LEDGE-IN-RAVINE:: .TABLE ; TABLE FOR OBJECT LEDGE-IN-RAVINE + .STRL "Ledge in Ravine" + .PROP 5,P?NORTH ; CONDITIONAL EXIT + .BYTE DREARY-ROOM ; TO ROOM + .BYTE PDOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .BYTE 0 + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE DRAGON-ROOM ; TO ROOM + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE DEEP-FORD ; TO ROOM + .PROP 1,P?DOWN ; UNCONDITIONAL EXIT + .BYTE DEEP-FORD ; TO ROOM + .PROP 5,P?IN ; CONDITIONAL EXIT + .BYTE DREARY-ROOM ; TO ROOM + .BYTE PDOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .BYTE 0 + .PROP 2,P?ACTION + LEDGE-IN-RAVINE-F + .PROP 4,P?GLOBAL + .BYTE CHASM + .BYTE PDOOR + .BYTE STREAM + .BYTE PWINDOW + .BYTE 0 + .ENDT + +T?GREAT-CAVERN:: .TABLE ; TABLE FOR OBJECT GREAT-CAVERN + .STRL "Great Cavern" + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE SHALLOW-FORD ; TO ROOM + .PROP 1,P?NE ; UNCONDITIONAL EXIT + .BYTE INSIDE-THE-BARROW ; TO ROOM + .PROP 2,P?LDESC + STR?115 + .BYTE 0 + .ENDT + +T?WATER:: .TABLE ; TABLE FOR OBJECT WATER + .STRL "quantity of water" + .PROP 4,P?SYNONYM + W?WATER + W?LIQUID + .PROP 2,P?ACTION + WATER-F + .PROP 2,P?LDESC + STR?21 + .PROP 2,P?SIZE + 4 + .BYTE 0 + .ENDT + +T?GROUND:: .TABLE ; TABLE FOR OBJECT GROUND + .STRL "ground" + .PROP 6,P?SYNONYM + W?GROUND + W?DIRT + W?FLOOR + .PROP 2,P?ACTION + GROUND-F + .BYTE 0 + .ENDT + +T?GLOBAL-PALANTIR:: .TABLE ; TABLE FOR OBJECT GLOBAL-PALANTIR + .STRL "sphere" + .PROP 2,P?SYNONYM + W?SPHERE + .PROP 2,P?ACTION + GLOBAL-PALANTIR-F + .PROP 4,P?ADJECTIVE + .BYTE A?RED + .BYTE A?BLUE + .BYTE A?WHITE + .BYTE A?CRYSTAL + .BYTE 0 + .ENDT + +T?TOP-ETCHINGS:: .TABLE ; TABLE FOR OBJECT TOP-ETCHINGS + .STRL "wall with etchings" + .PROP 4,P?SYNONYM + W?ETCHINGS + W?WALL + .PROP 2,P?TEXT + STR?175 + .BYTE 0 + .ENDT + +T?TEA-ROOM:: .TABLE ; TABLE FOR OBJECT TEA-ROOM + .STRL "Tea Room" + .PROP 2,P?EAST ; IMPOSSIBLE EXIT + STR?183 ; FAILURE MESSAGE + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE TOP-OF-WELL ; TO ROOM + .PROP 2,P?LDESC + STR?182 + .PROP 4,P?PSEUDO + W?HOLE ; NAME + ALICE-HOLE ; HANDLER + .BYTE 0 + .ENDT + +T?NOT-HERE-OBJECT:: .TABLE ; TABLE FOR OBJECT NOT-HERE-OBJECT + .STRL "thing" + .PROP 2,P?ACTION + NOT-HERE-OBJECT-F + .BYTE 0 + .ENDT + +T?DRAGON:: .TABLE ; TABLE FOR OBJECT DRAGON + .STRL "huge red dragon" + .PROP 2,P?SYNONYM + W?DRAGON + .PROP 2,P?ACTION + DRAGON-F + .PROP 2,P?LDESC + STR?147 + .PROP 2,P?ADJECTIVE + .BYTE A?RED + .BYTE A?HUGE + .PROP 2,P?FDESC + STR?148 + .BYTE 0 + .ENDT + +T?POSTS:: .TABLE ; TABLE FOR OBJECT POSTS + .STRL "group of wooden posts" + .PROP 4,P?SYNONYM + W?POSTS + W?POST + .PROP 1,P?ADJECTIVE + .BYTE A?WOODEN + .BYTE 0 + .ENDT + +T?INTNUM:: .TABLE ; TABLE FOR OBJECT INTNUM + .STRL "number" + .PROP 2,P?SYNONYM + W?INTNUM + .BYTE 0 + .ENDT + +T?STAND-4:: .TABLE ; TABLE FOR OBJECT STAND-4 + .STRL "black obsidian stand" + .PROP 4,P?SYNONYM + W?STAND + W?STANDS + .PROP 2,P?ACTION + STAND-F + .PROP 2,P?SIZE + 5 + .PROP 4,P?ADJECTIVE + .BYTE A?OBSIDIAN + .BYTE A?BLACK + .BYTE A?CRYSTAL + .BYTE A?STRANGE + .PROP 2,P?CAPACITY + 10 + .BYTE 0 + .ENDT + +T?PURPLE-BOOK:: .TABLE ; TABLE FOR OBJECT PURPLE-BOOK + .STRL "purple book" + .PROP 4,P?SYNONYM + W?BOOK + W?BOOKS + .PROP 2,P?ACTION + PURPLE-BOOK-F + .PROP 2,P?SIZE + 10 + .PROP 1,P?ADJECTIVE + .BYTE A?PURPLE + .PROP 2,P?TEXT + STR?210 + .PROP 2,P?CAPACITY + 2 + .PROP 2,P?FDESC + STR?213 + .BYTE 0 + .ENDT + +T?DRAGON-LAIR:: .TABLE ; TABLE FOR OBJECT DRAGON-LAIR + .STRL "Dragon's Lair" + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE DRAGON-ROOM ; TO ROOM + .PROP 1,P?OUT ; UNCONDITIONAL EXIT + .BYTE DRAGON-ROOM ; TO ROOM + .PROP 2,P?LDESC + STR?154 + .BYTE 0 + .ENDT + +T?PENTAGRAM:: .TABLE ; TABLE FOR OBJECT PENTAGRAM + .STRL "pentagram" + .PROP 6,P?SYNONYM + W?PENTAGRAM + W?STAR + W?CIRCLE + .PROP 2,P?ACTION + PENTAGRAM-F + .PROP 2,P?ADJECTIVE + .BYTE A?GREAT + .BYTE A?BLACK + .PROP 2,P?CAPACITY + 200 + .BYTE 0 + .ENDT + +T?ROOM-8:: .TABLE ; TABLE FOR OBJECT ROOM-8 + .STRL "Room 8" + .PROP 1,P?EAST ; UNCONDITIONAL EXIT + .BYTE CAROUSEL-ROOM ; TO ROOM + .PROP 2,P?LDESC + STR?121 + .BYTE 0 + .ENDT + +T?GLOBAL-CERBERUS:: .TABLE ; TABLE FOR OBJECT GLOBAL-CERBERUS + .STRL "three-headed dog" + .PROP 8,P?SYNONYM + W?CERBERUS + W?DOG + W?HOUND + W?MONSTER + .PROP 2,P?ACTION + GLOBAL-CERBERUS-F + .PROP 4,P?ADJECTIVE + .BYTE A?HUGE + .BYTE A?GIANT + .BYTE A?THREE + .BYTE A?HEADED + .BYTE 0 + .ENDT + +T?DEAD-PALANTIR-4:: .TABLE ; TABLE FOR OBJECT DEAD-PALANTIR-4 + .STRL "Room of Black Mist" + .PROP 2,P?ACTION + DEAD-PALANTIR-F + .BYTE 0 + .ENDT + +T?FUSE:: .TABLE ; TABLE FOR OBJECT FUSE + .STRL "black string" + .PROP 6,P?SYNONYM + W?FUSE + W?STRING + W?COIL + .PROP 2,P?ACTION + FUSE-F + .PROP 2,P?LDESC + STR?220 + .PROP 2,P?SIZE + 1 + .PROP 2,P?ADJECTIVE + .BYTE A?BLACK + .BYTE A?THIN + .BYTE 0 + .ENDT + +T?STAND-2:: .TABLE ; TABLE FOR OBJECT STAND-2 + .STRL "sapphire stand" + .PROP 4,P?SYNONYM + W?STAND + W?STANDS + .PROP 2,P?ACTION + STAND-F + .PROP 2,P?ADJECTIVE + .BYTE A?CRYSTAL + .BYTE A?SAPPHIRE + .PROP 2,P?CAPACITY + 10 + .BYTE 0 + .ENDT + +T?GREEN-CAKE:: .TABLE ; TABLE FOR OBJECT GREEN-CAKE + .STRL "cake frosted with green letters" + .PROP 8,P?SYNONYM + W?CAKE + W?ICING + W?CAKES + W?LETTER + .PROP 2,P?ACTION + GREEN-CAKE-F + .PROP 2,P?SIZE + 4 + .PROP 2,P?ADJECTIVE + .BYTE A?GREEN + .BYTE A?FROSTED + .PROP 2,P?TEXT + STR?185 + .BYTE 0 + .ENDT + +T?DEAD-PALANTIR-1:: .TABLE ; TABLE FOR OBJECT DEAD-PALANTIR-1 + .STRL "Room of Red Mist" + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE DEAD-PALANTIR-2 ; TO ROOM + .PROP 2,P?ACTION + DEAD-PALANTIR-F + .PROP 1,P?GLOBAL + .BYTE GLOBAL-PALANTIR + .BYTE 0 + .ENDT + +T?SWORD:: .TABLE ; TABLE FOR OBJECT SWORD + .STRL "elvish sword" + .PROP 4,P?SYNONYM + W?SWORD + W?BLADE + .PROP 2,P?LDESC + STR?118 + .PROP 2,P?SIZE + 30 + .PROP 3,P?ADJECTIVE + .BYTE A?ELVISH + .BYTE A?OLD + .BYTE A?ANTIQUE + .BYTE 0 + .ENDT + +T?BRICK:: .TABLE ; TABLE FOR OBJECT BRICK + .STRL "brick" + .PROP 2,P?SYNONYM + W?BRICK + .PROP 2,P?ACTION + BRICK-F + .PROP 2,P?LDESC + STR?219 + .PROP 2,P?SIZE + 9 + .PROP 2,P?ADJECTIVE + .BYTE A?SQUARE + .BYTE A?CLAY + .PROP 2,P?CAPACITY + 2 + .BYTE 0 + .ENDT + +T?DEAD-PALANTIR-2:: .TABLE ; TABLE FOR OBJECT DEAD-PALANTIR-2 + .STRL "Room of Blue Mist" + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE DEAD-PALANTIR-3 ; TO ROOM + .PROP 2,P?ACTION + DEAD-PALANTIR-F + .PROP 1,P?GLOBAL + .BYTE GLOBAL-PALANTIR + .BYTE 0 + .ENDT + +T?DEAD-PALANTIR-3:: .TABLE ; TABLE FOR OBJECT DEAD-PALANTIR-3 + .STRL "Room of White Mist" + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE DEAD-PALANTIR-4 ; TO ROOM + .PROP 2,P?ACTION + DEAD-PALANTIR-F + .PROP 1,P?GLOBAL + .BYTE GLOBAL-PALANTIR + .BYTE 0 + .ENDT + +T?ORANGE-CAKE:: .TABLE ; TABLE FOR OBJECT ORANGE-CAKE + .STRL "cake frosted with orange letters" + .PROP 8,P?SYNONYM + W?CAKE + W?CAKES + W?ICING + W?LETTER + .PROP 2,P?ACTION + CAKE-F + .PROP 2,P?SIZE + 4 + .PROP 2,P?ADJECTIVE + .BYTE A?ORANGE + .BYTE A?FROSTED + .BYTE 0 + .ENDT + +T?VOLCANO-BY-WIDE-LEDGE:: .TABLE ; TABLE FOR OBJECT VOLCANO-BY-WIDE-LEDGE + .STRL "Volcano By Wide Ledge" + .PROP 1,P?WEST ; UNCONDITIONAL EXIT + .BYTE WIDE-LEDGE ; TO ROOM + .PROP 1,P?LAND ; UNCONDITIONAL EXIT + .BYTE WIDE-LEDGE ; TO ROOM + .PROP 2,P?ACTION + VOLCANO-BY-LEDGE-F + .BYTE 0 + .ENDT + +T?ZORK3:: .TABLE ; TABLE FOR OBJECT ZORK3 + .STRL "Landing" + .PROP 2,P?ACTION + ZORK3-F + .BYTE 0 + .ENDT + +T?VOLCANO-BY-SMALL-LEDGE:: .TABLE ; TABLE FOR OBJECT VOLCANO-BY-SMALL-LEDGE + .STRL "Volcano By Small Ledge" + .PROP 1,P?EAST ; UNCONDITIONAL EXIT + .BYTE NARROW-LEDGE ; TO ROOM + .PROP 1,P?LAND ; UNCONDITIONAL EXIT + .BYTE NARROW-LEDGE ; TO ROOM + .PROP 2,P?ACTION + VOLCANO-BY-LEDGE-F + .BYTE 0 + .ENDT + +T?DEEP-FORD:: .TABLE ; TABLE FOR OBJECT DEEP-FORD + .STRL "Deep Ford" + .PROP 1,P?NORTH ; UNCONDITIONAL EXIT + .BYTE LEDGE-IN-RAVINE ; TO ROOM + .PROP 4,P?EAST ; CONDITIONAL EXIT + .BYTE DARK-TUNNEL ; TO ROOM + .BYTE SECRET-DOOR ; IF FLAG IS TRUE + 0 ; FAILURE MESSAGE + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE CAROUSEL-ROOM ; TO ROOM + .PROP 1,P?UP ; UNCONDITIONAL EXIT + .BYTE LEDGE-IN-RAVINE ; TO ROOM + .PROP 2,P?LDESC + STR?119 + .PROP 2,P?GLOBAL + .BYTE GLOBAL-WATER + .BYTE STREAM + .BYTE 0 + .ENDT + +T?VOLCANO-CORE:: .TABLE ; TABLE FOR OBJECT VOLCANO-CORE + .STRL "Volcano Core" + .PROP 2,P?LDESC + STR?204 + .BYTE 0 + .ENDT + +T?WHITE-BOOK:: .TABLE ; TABLE FOR OBJECT WHITE-BOOK + .STRL "white book" + .PROP 4,P?SYNONYM + W?BOOK + W?BOOKS + .PROP 2,P?ACTION + RANDOM-BOOK-F + .PROP 2,P?SIZE + 5 + .PROP 1,P?ADJECTIVE + .BYTE A?WHITE + .PROP 2,P?TEXT + STR?212 + .PROP 2,P?CAPACITY + 2 + .PROP 2,P?FDESC + STR?211 + .BYTE 0 + .ENDT + +T?DEMON:: .TABLE ; TABLE FOR OBJECT DEMON + .STRL "demon" + .PROP 6,P?SYNONYM + W?DEVIL + W?DEMON + W?GENIE + .PROP 2,P?ACTION + DEMON-F + .PROP 2,P?LDESC + STR?84 + .BYTE 0 + .ENDT + +T?AQUARIUM-ROOM:: .TABLE ; TABLE FOR OBJECT AQUARIUM-ROOM + .STRL "Aquarium Room" + .PROP 1,P?EAST ; UNCONDITIONAL EXIT + .BYTE TROPHY-ROOM ; TO ROOM + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE WIZARDS-QUARTERS ; TO ROOM + .PROP 1,P?IN ; UNCONDITIONAL EXIT + .BYTE MURKY-ROOM ; TO ROOM + .PROP 2,P?LDESC + STR?93 + .BYTE 0 + .ENDT + +T?GAZEBO:: .TABLE ; TABLE FOR OBJECT GAZEBO + .STRL "Gazebo" + .PROP 1,P?OUT ; UNCONDITIONAL EXIT + .BYTE FORMAL-GARDEN ; TO ROOM + .PROP 2,P?LDESC + STR?140 + .PROP 1,P?GLOBAL + .BYTE GAZEBO-OBJECT + .BYTE 0 + .ENDT + +T?WALL:: .TABLE ; TABLE FOR OBJECT WALL + .STRL "wall" + .PROP 2,P?SYNONYM + W?WALL + .PROP 8,P?ADJECTIVE + .BYTE A?EAST + .BYTE A?EASTERN + .BYTE A?WEST + .BYTE A?WESTERN + .BYTE A?SOUTH + .BYTE A?SOUTHE + .BYTE A?NORTH + .BYTE A?NORTHE + .BYTE 0 + .ENDT + +T?RIDDLE-ROOM:: .TABLE ; TABLE FOR OBJECT RIDDLE-ROOM + .STRL "Riddle Room" + .PROP 5,P?EAST ; CONDITIONAL EXIT + .BYTE CIRCULAR-ROOM ; TO ROOM + .BYTE RIDDLE-DOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .BYTE 0 + .PROP 1,P?NW ; UNCONDITIONAL EXIT + .BYTE CAROUSEL-ROOM ; TO ROOM + .PROP 2,P?ACTION + RIDDLE-ROOM-F + .PROP 4,P?PSEUDO + W?RIDDLE ; NAME + RIDDLE-PSEUDO ; HANDLER + .BYTE 0 + .ENDT + +T?TOP-OF-WELL:: .TABLE ; TABLE FOR OBJECT TOP-OF-WELL + .STRL "Top of Well" + .PROP 1,P?EAST ; UNCONDITIONAL EXIT + .BYTE TEA-ROOM ; TO ROOM + .PROP 1,P?NE ; UNCONDITIONAL EXIT + .BYTE MACHINE-ROOM ; TO ROOM + .PROP 2,P?DOWN ; IMPOSSIBLE EXIT + STR?174 ; FAILURE MESSAGE + .PROP 2,P?LDESC + STR?173 + .PROP 2,P?VALUE + 10 + .PROP 1,P?GLOBAL + .BYTE WELL + .PROP 4,P?PSEUDO + W?CRACK ; NAME + CRACK-PSEUDO ; HANDLER + .BYTE 0 + .ENDT + +T?ROBOT-LABEL:: .TABLE ; TABLE FOR OBJECT ROBOT-LABEL + .STRL "green piece of paper" + .PROP 4,P?SYNONYM + W?PAPER + W?PIECE + .PROP 2,P?SIZE + 3 + .PROP 1,P?ADJECTIVE + .BYTE A?GREEN + .PROP 2,P?TEXT + STR?176 + .BYTE 0 + .ENDT + +T?COIN:: .TABLE ; TABLE FOR OBJECT COIN + .STRL "priceless zorkmid" + .PROP 8,P?SYNONYM + W?COIN + W?ZORKMID + W?GOLD + W?TREASURE + .PROP 2,P?SIZE + 10 + .PROP 2,P?ADJECTIVE + .BYTE A?GOLD + .BYTE A?PRICELESS + .PROP 2,P?VALUE + 20 + .PROP 2,P?TEXT + STR?207 + .PROP 2,P?FDESC + STR?206 + .BYTE 0 + .ENDT + +T?LETTER-OPENER:: .TABLE ; TABLE FOR OBJECT LETTER-OPENER + .STRL "letter opener" + .PROP 2,P?SYNONYM + W?OPENER + .PROP 2,P?SIZE + 2 + .PROP 1,P?ADJECTIVE + .BYTE A?LETTER + .BYTE 0 + .ENDT + +T?PSEUDO-OBJECT:: .TABLE ; TABLE FOR OBJECT PSEUDO-OBJECT + .STRL "pseudo" + .PROP 2,P?ACTION + ME-F + .BYTE 0 + .ENDT + +T?DRAGON-ROOM:: .TABLE ; TABLE FOR OBJECT DRAGON-ROOM + .STRL "Dragon Room" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE DRAGON-LAIR ; TO ROOM + .BYTE ICE-MELTED ; IF FLAG IS TRUE + STR?146 ; FAILURE MESSAGE + .PROP 1,P?EAST ; UNCONDITIONAL EXIT + .BYTE LEDGE-IN-RAVINE ; TO ROOM + .PROP 1,P?SOUTH ; UNCONDITIONAL EXIT + .BYTE STONE-BRIDGE ; TO ROOM + .PROP 4,P?IN ; CONDITIONAL EXIT + .BYTE DRAGON-LAIR ; TO ROOM + .BYTE ICE-MELTED ; IF FLAG IS TRUE + STR?146 ; FAILURE MESSAGE + .PROP 2,P?LDESC + STR?145 + .PROP 1,P?GLOBAL + .BYTE BRIDGE + .BYTE 0 + .ENDT + +T?AQUARIUM:: .TABLE ; TABLE FOR OBJECT AQUARIUM + .STRL "aquarium" + .PROP 4,P?SYNONYM + W?AQUARIUM + W?GLASS + .PROP 2,P?ACTION + AQUARIUM-F + .PROP 2,P?LDESC + STR?94 + .PROP 1,P?ADJECTIVE + .BYTE A?HUGE + .PROP 2,P?CAPACITY + 200 + .BYTE 0 + .ENDT + +T?PTABLE:: .TABLE ; TABLE FOR OBJECT PTABLE + .STRL "table" + .PROP 2,P?SYNONYM + W?TABLE + .PROP 2,P?ADJECTIVE + .BYTE A?DUSTY + .BYTE A?WOODEN + .PROP 2,P?CAPACITY + 40 + .BYTE 0 + .ENDT + + +; IMPURE TABLES ARE DEFINED HERE + +IMPTBL:: + +T?101:: +T?C-TABLE:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?102:: +T?P-CCTBL:: .TABLE + 0 + 0 + 0 + 0 + .ENDT + +T?202:: +T?P-LEXV:: .TABLE + .BYTE 59 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?302:: +T?AGAIN-LEXV:: .TABLE + .BYTE 59 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?402:: +T?RESERVE-LEXV:: .TABLE + .BYTE 59 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?502:: +T?P-INBUF:: .TABLE + .BYTE 120 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?602:: +T?OOPS-INBUF:: .TABLE + .BYTE 120 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?702:: +T?OOPS-TABLE:: .TABLE + 0 + 0 + 0 + 0 + .ENDT + +T?802:: +T?P-ITBL:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?902:: +T?P-OTBL:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?1002:: +T?P-VTBL:: .TABLE + 0 + 0 + 0 + 0 + .ENDT + +T?1102:: +T?P-OVTBL:: .TABLE + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?1202:: +T?P-PRSO:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?1302:: +T?P-PRSI:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?1402:: +T?P-BUTS:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?1502:: +T?P-MERGE:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?1602:: +T?P-OCLAUSE:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?104:: +T?INDENTS:: .TABLE + STR?14 + STR?15 + STR?16 + STR?17 + STR?18 + STR?19 + .ENDT + +T?105:: +T?HO-HUM:: .TABLE + 4 + 0 + STR?23 + STR?24 + STR?25 + .ENDT + +T?205:: +T?YUKS:: .TABLE + 6 + 0 + STR?26 + STR?27 + STR?28 + STR?29 + STR?30 + .ENDT + +T?106:: +T?SPELL-NAMES:: .TABLE + 9 + STR?56 + STR?57 + STR?58 + STR?59 + STR?60 + STR?61 + STR?62 + STR?63 + STR?64 + .ENDT + +T?206:: +T?SPELL-HINTS:: .TABLE + 9 + STR?65 + 0 + STR?66 + 0 + STR?67 + 0 + 0 + 0 + 0 + .ENDT + +T?306:: +T?SPELL-STOPS:: .TABLE + 9 + STR?68 + 0 + STR?69 + 0 + STR?70 + STR?71 + 0 + 0 + 0 + .ENDT + +T?406:: +T?FANTASIES:: .TABLE + 8 + STR?72 + STR?73 + STR?74 + STR?75 + STR?76 + STR?77 + STR?78 + STR?79 + .ENDT + +T?506:: +T?DEMON-THANKS:: .TABLE + 9 + STR?87 + STR?88 + STR?89 + STR?90 + STR?91 + STR?88 + STR?89 + STR?91 + STR?92 + .ENDT + +T?606:: +T?WIZQDESCS:: .TABLE + 6 + STR?101 + STR?102 + STR?103 + STR?104 + STR?105 + STR?106 + .ENDT + +T?107:: +T?LAMP-TABLE:: .TABLE + 225 + STR?112 + 75 + STR?113 + 25 + STR?114 + 0 + .ENDT + +T?207:: +T?CAROUSEL-EXITS:: .TABLE + COOL-ROOM + DARK-TUNNEL + DEEP-FORD + TOPIARY + RIDDLE-ROOM + MENHIR-ROOM + GUARDED-ROOM + .ENDT + +T?108:: +T?DRAGON-ATTACKS:: .TABLE + 4 + STR?149 + STR?150 + STR?151 + STR?152 + .ENDT + +T?208:: +T?PRDIRS:: .TABLE + STR?137 + DRAGON-ROOM + STR?136 + P?SOUTH + STR?159 + LEDGE-IN-RAVINE + STR?160 + P?EAST + STR?137 + DEEP-FORD + STR?136 + P?SOUTH + STR?159 + DARK-TUNNEL + STR?160 + P?EAST + STR?137 + FORMAL-GARDEN + STR?136 + P?SOUTH + STR?161 + GAZEBO + STR?162 + P?IN + .ENDT + +T?110:: +T?BALLOON-UPS:: .TABLE + 3 + VOLCANO-CORE + VOLCANO-BY-SMALL-LEDGE + VOLCANO-BY-WIDE-LEDGE + .ENDT + +T?210:: +T?BALLOON-FLOATS:: .TABLE + 4 + NARROW-LEDGE + VOLCANO-BY-SMALL-LEDGE + WIDE-LEDGE + VOLCANO-BY-WIDE-LEDGE + .ENDT + +T?310:: +T?BALLOON-DOWNS:: .TABLE + 3 + VOLCANO-BY-WIDE-LEDGE + VOLCANO-BY-SMALL-LEDGE + VOLCANO-CORE + .ENDT + + +; END OF IMPURENESS + +IMPURE:: + + + +; VERB TABLE IS DEFINED HERE + +VTBL:: .TABLE + ST?KISS + ST?SKIP + ST?INFLAT + ST?PULL + ST?PUT + ST?RAPE + ST?VERBOSE + ST?WALK + ST?QUIT + ST?FIND + ST?DESTROY + ST?UNLOCK + ST?READ + ST?SAY + ST?JUMP + ST?POUR + ST?WAIT + ST?TAKE + ST?COUNT + ST?RAISE + ST?FOLLOW + ST?VERSION + ST?#UNRECORD + ST?LIGHT + ST?MOVE + ST?PLAY + ST?OPEN + ST?#COMMAND + ST?BLOW + ST?KNOCK + ST?PICK + ST?DEFLATE + ST?#RANDOM + ST?STAND + ST?ENCHANT + ST?LISTEN + ST?TIE + ST?SAVE + ST?TELL + ST?THROW + ST?ZORK + ST?LOWER + ST?COMMAND + ST?TALK + ST?SHAKE + ST?INVENTORY + ST?ATTACK + ST?ENTER + ST?SEARCH + ST?DISEMBARK + ST?SWIM + ST?UNTIE + ST?CUT + ST?UNSCRIPT + ST?MELT + ST?PUSH + ST?RUB + ST?SUPER + ST?INCANT + ST?SCORE + ST?LOOK + ST?DROP + ST?LEAVE + ST?CURSE + ST?SCRIPT + ST?$VERIFY + ST?EXTINGUISH + ST?SWING + ST?RESTART + ST?POKE + ST?SMELL + ST?BRIEF + ST?DIAGNOSE + ST?GIVE + ST?WAKE + ST?DRINK + ST?YELL + ST?LOCK + ST?BURN + ST?KICK + ST?TURN + ST?#RECORD + ST?CROSS + ST?RESTORE + ST?CLOSE + ST?STRIKE + ST?SLIDE + ST?WAVE + ST?EXIT + ST?EXAMINE + ST?DISENCHANT + ST?EAT + ST?FILL + ST?CLIMB + ST?LAUNCH + ST?HELLO + .ENDT + +; SYNTAX DEFINITION TABLES ARE DEFINED HERE + +ST?KISS:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?KISS + .BYTE ACTORBIT + .BYTE SOG+SIR + .ENDT + +ST?SKIP:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?SKIP + .ENDT + +ST?INFLAT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?INFLATE + .BYTE 0 + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE TOOLBIT + .BYTE 0 + .ENDT + +ST?PULL:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 125 ; 1 PR?UP + .BYTE V?MOVE + .BYTE 0 + .BYTE SOG+SIR + .BYTE 122 ; 1 PR?ON + .BYTE V?MOVE + .BYTE 0 + .BYTE SOG+SIR + .BYTE 64 ; 1 0 + .BYTE V?MOVE + .BYTE 0 + .BYTE SOG+SIR + .ENDT + +ST?PUT:: .TABLE + .BYTE 5 ;NUMBER OF SYNTAXES + .BYTE 126 ; 1 PR?OUT + .BYTE V?LAMP-OFF + .BYTE ONBIT + .BYTE STAKE+SHAVE + .BYTE 128 ; 2 0 + .BYTE V?PUT-UNDER + .BYTE 0 + .BYTE SH+SHAVE + .BYTE 50 ;PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 124 ; 1 PR?DOWN + .BYTE V?DROP + .BYTE 0 + .BYTE SH+SMANY + .BYTE 128 ; 2 0 + .BYTE V?PUT-ON + .BYTE 0 + .BYTE SH+SMANY+SHAVE + .BYTE 58 ;PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?PUT + .BYTE 0 + .BYTE SH+SMANY+SHAVE + .BYTE 59 ;PR?IN + .BYTE 0 + .BYTE 0 + .ENDT + +ST?RAPE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?RAPE + .BYTE ACTORBIT + .BYTE 0 + .ENDT + +ST?VERBOSE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?VERBOSE + .ENDT + +ST?WALK:: .TABLE + .BYTE 11 ;NUMBER OF SYNTAXES + .BYTE 124 ; 1 PR?DOWN + .BYTE V?CLIMB-DOWN + .BYTE CLIMBBIT + .BYTE SOG+SIR + .BYTE 125 ; 1 PR?UP + .BYTE V?CLIMB + .BYTE CLIMBBIT + .BYTE SOG+SIR + .BYTE 115 ; 1 PR?AROUND + .BYTE V?WALK-AROUND + .BYTE RLANDBIT + .BYTE 0 + .BYTE 120 ; 1 PR?TO + .BYTE V?WALK-TO + .BYTE 0 + .BYTE 0 + .BYTE 119 ; 1 PR?OVER + .BYTE V?LEAP + .BYTE 0 + .BYTE 0 + .BYTE 122 ; 1 PR?ON + .BYTE V?ENTER + .BYTE VEHBIT + .BYTE SOG+SIR + .BYTE 127 ; 1 PR?WITH + .BYTE V?ENTER + .BYTE VEHBIT + .BYTE SOG+SIR + .BYTE 123 ; 1 PR?IN + .BYTE V?ENTER + .BYTE VEHBIT + .BYTE SOG+SIR + .BYTE 110 ; 1 PR?AWAY + .BYTE V?WALK + .BYTE 0 + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?WALK + .BYTE 0 + .BYTE 0 + .BYTE 0 ; 0 0 + .BYTE V?WALK-AROUND + .ENDT + +ST?QUIT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?QUIT + .ENDT + +ST?FIND:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?FIND + .BYTE 0 + .BYTE 0 + .ENDT + +ST?DESTROY:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 188 ; 2 PR?DOWN + .BYTE V?MUNG + .BYTE 0 + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE 0 + .BYTE SH+SC+STAKE + .BYTE 128 ; 2 0 + .BYTE V?MUNG + .BYTE 0 + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE 0 + .BYTE SH+SC+STAKE + .ENDT + +ST?UNLOCK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?UNLOCK + .BYTE 0 + .BYTE SOG+SIR + .BYTE 63 ;PR?WITH + .BYTE TOOLBIT + .BYTE STAKE + .ENDT + +ST?READ:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 121 ; 1 PR?FROM + .BYTE V?READ + .BYTE READBIT + .BYTE STAKE + .BYTE 64 ; 1 0 + .BYTE V?READ + .BYTE READBIT + .BYTE STAKE + .ENDT + +ST?SAY:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?SAY + .BYTE 0 + .BYTE 0 + .BYTE 0 ; 0 0 + .BYTE V?SAY + .ENDT + +ST?JUMP:: .TABLE + .BYTE 6 ;NUMBER OF SYNTAXES + .BYTE 117 ; 1 PR?OFF + .BYTE V?LEAP + .BYTE 0 + .BYTE 0 + .BYTE 121 ; 1 PR?FROM + .BYTE V?LEAP + .BYTE 0 + .BYTE 0 + .BYTE 123 ; 1 PR?IN + .BYTE V?LEAP + .BYTE 0 + .BYTE 0 + .BYTE 118 ; 1 PR?ACROSS + .BYTE V?LEAP + .BYTE 0 + .BYTE 0 + .BYTE 119 ; 1 PR?OVER + .BYTE V?LEAP + .BYTE 0 + .BYTE 0 + .BYTE 0 ; 0 0 + .BYTE V?LEAP + .ENDT + +ST?POUR:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?DROP + .BYTE 0 + .BYTE SH+SC + .BYTE 57 ;PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?POUR-ON + .BYTE 0 + .BYTE SH+SC + .BYTE 58 ;PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?DROP + .BYTE 0 + .BYTE SH+SC + .BYTE 59 ;PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?DROP + .BYTE 0 + .BYTE SH+SC + .ENDT + +ST?WAIT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?WAIT + .ENDT + +ST?TAKE:: .TABLE + .BYTE 8 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?TAKE + .BYTE TAKEBIT + .BYTE SIR+SC+SMANY + .BYTE 57 ;PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?TAKE + .BYTE TAKEBIT + .BYTE SC+SIR+SMANY + .BYTE 53 ;PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?TAKE + .BYTE TAKEBIT + .BYTE SC+SIR+SMANY + .BYTE 62 ;PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 125 ; 1 PR?UP + .BYTE V?STAND + .BYTE RLANDBIT + .BYTE 0 + .BYTE 122 ; 1 PR?ON + .BYTE V?CLIMB-ON + .BYTE VEHBIT + .BYTE SOG+SIR + .BYTE 126 ; 1 PR?OUT + .BYTE V?DISEMBARK + .BYTE RLANDBIT + .BYTE SOG+SIR + .BYTE 123 ; 1 PR?IN + .BYTE V?ENTER + .BYTE VEHBIT + .BYTE SOG+SIR + .BYTE 64 ; 1 0 + .BYTE V?TAKE + .BYTE TAKEBIT + .BYTE SOG+SIR+SMANY + .ENDT + +ST?COUNT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?COUNT + .BYTE 0 + .BYTE 0 + .ENDT + +ST?RAISE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 125 ; 1 PR?UP + .BYTE V?RAISE + .BYTE 0 + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?RAISE + .BYTE 0 + .BYTE 0 + .ENDT + +ST?FOLLOW:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?FOLLOW + .BYTE 0 + .BYTE 0 + .BYTE 0 ; 0 0 + .BYTE V?FOLLOW + .ENDT + +ST?VERSION:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?VERSION + .ENDT + +ST?#UNRECORD:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?UNRECORD + .ENDT + +ST?LIGHT:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?BURN + .BYTE LIGHTBIT + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE FLAMEBIT + .BYTE SH+SC+STAKE+SHAVE + .BYTE 64 ; 1 0 + .BYTE V?LAMP-ON + .BYTE LIGHTBIT + .BYTE STAKE+SHAVE + .ENDT + +ST?MOVE:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?TURN + .BYTE 0 + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE TOOLBIT + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?PUT + .BYTE 0 + .BYTE SH+SMANY+SHAVE + .BYTE 59 ;PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?MOVE + .BYTE 0 + .BYTE SOG+SIR + .ENDT + +ST?PLAY:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?PLAY + .BYTE 0 + .BYTE 0 + .ENDT + +ST?OPEN:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?OPEN + .BYTE DOORBIT + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE TOOLBIT + .BYTE SHAVE + .BYTE 125 ; 1 PR?UP + .BYTE V?OPEN + .BYTE DOORBIT + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?OPEN + .BYTE DOORBIT + .BYTE 0 + .ENDT + +ST?#COMMAND:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?COMMAND-FILE + .ENDT + +ST?BLOW:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 125 ; 1 PR?UP + .BYTE V?BLAST + .BYTE 0 + .BYTE 0 + .BYTE 189 ; 2 PR?UP + .BYTE V?INFLATE + .BYTE 0 + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE TOOLBIT + .BYTE 0 + .BYTE 126 ; 1 PR?OUT + .BYTE V?LAMP-OFF + .BYTE 0 + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?BLAST + .BYTE 0 + .BYTE 0 + .ENDT + +ST?KNOCK:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 124 ; 1 PR?DOWN + .BYTE V?ATTACK + .BYTE ACTORBIT + .BYTE SOG+SIR + .BYTE 122 ; 1 PR?ON + .BYTE V?KNOCK + .BYTE 0 + .BYTE 0 + .BYTE 116 ; 1 PR?AT + .BYTE V?KNOCK + .BYTE 0 + .BYTE 0 + .ENDT + +ST?PICK:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 125 ; 1 PR?UP + .BYTE V?TAKE + .BYTE TAKEBIT + .BYTE SOG+SMANY + .BYTE 128 ; 2 0 + .BYTE V?PICK + .BYTE 0 + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?PICK + .BYTE 0 + .BYTE 0 + .ENDT + +ST?DEFLATE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?DEFLATE + .BYTE 0 + .BYTE 0 + .ENDT + +ST?#RANDOM:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?RANDOM + .BYTE 0 + .BYTE 0 + .ENDT + +ST?STAND:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 125 ; 1 PR?UP + .BYTE V?STAND + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 ; 0 0 + .BYTE V?STAND + .ENDT + +ST?ENCHANT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?ENCHANT + .BYTE 0 + .BYTE SOG+SIR + .ENDT + +ST?LISTEN:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 120 ; 1 PR?TO + .BYTE V?LISTEN + .BYTE 0 + .BYTE 0 + .ENDT + +ST?TIE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 189 ; 2 PR?UP + .BYTE V?TIE-UP + .BYTE ACTORBIT + .BYTE SOG+SIR + .BYTE 63 ;PR?WITH + .BYTE TOOLBIT + .BYTE SHAVE + .BYTE 128 ; 2 0 + .BYTE V?TIE + .BYTE 0 + .BYTE 0 + .BYTE 56 ;PR?TO + .BYTE 0 + .BYTE 0 + .ENDT + +ST?SAVE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?SAVE + .ENDT + +ST?TELL:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?TELL + .BYTE ACTORBIT + .BYTE SIR + .BYTE 47 ;PR?ABOUT + .BYTE 0 + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?TELL + .BYTE ACTORBIT + .BYTE SIR + .ENDT + +ST?THROW:: .TABLE + .BYTE 6 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?THROW-OFF + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 55 ;PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?THROW-OFF + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 53 ;PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?PUT-ON + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 58 ;PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?PUT + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 59 ;PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?THROW + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 63 ;PR?WITH + .BYTE ACTORBIT + .BYTE SOG+SIR + .BYTE 128 ; 2 0 + .BYTE V?THROW + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 52 ;PR?AT + .BYTE ACTORBIT + .BYTE SOG+SIR + .ENDT + +ST?ZORK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?ZORK + .ENDT + +ST?LOWER:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?LOWER + .BYTE 0 + .BYTE 0 + .ENDT + +ST?COMMAND:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?COMMAND + .BYTE ACTORBIT + .BYTE 0 + .ENDT + +ST?TALK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 120 ; 1 PR?TO + .BYTE V?TELL + .BYTE ACTORBIT + .BYTE SIR + .ENDT + +ST?SHAKE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?SHAKE + .BYTE 0 + .BYTE SHAVE + .ENDT + +ST?INVENTORY:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?INVENTORY + .ENDT + +ST?ATTACK:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?ATTACK + .BYTE ACTORBIT + .BYTE SOG+SIR + .BYTE 63 ;PR?WITH + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 64 ; 1 0 + .BYTE V?ATTACK + .BYTE ACTORBIT + .BYTE SOG+SIR + .ENDT + +ST?ENTER:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?ENTER + .BYTE VEHBIT + .BYTE SOG+SIR + .BYTE 0 ; 0 0 + .BYTE V?ENTER + .ENDT + +ST?SEARCH:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 112 ; 1 PR?FOR + .BYTE V?FIND + .BYTE 0 + .BYTE 0 + .BYTE 123 ; 1 PR?IN + .BYTE V?SEARCH + .BYTE 0 + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?SEARCH + .BYTE 0 + .BYTE 0 + .ENDT + +ST?DISEMBARK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?DISEMBARK + .BYTE VEHBIT + .BYTE SOG+SIR + .ENDT + +ST?SWIM:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 118 ; 1 PR?ACROSS + .BYTE V?SWIM + .BYTE 0 + .BYTE 0 + .BYTE 123 ; 1 PR?IN + .BYTE V?SWIM + .BYTE 0 + .BYTE 0 + .BYTE 0 ; 0 0 + .BYTE V?SWIM + .ENDT + +ST?UNTIE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?UNTIE + .BYTE 0 + .BYTE 0 + .BYTE 57 ;PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?UNTIE + .BYTE 0 + .BYTE 0 + .ENDT + +ST?CUT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?CUT + .BYTE 0 + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE WEAPONBIT + .BYTE SC+SH + .ENDT + +ST?UNSCRIPT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?UNSCRIPT + .ENDT + +ST?MELT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?MELT + .BYTE 0 + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE FLAMEBIT + .BYTE 0 + .ENDT + +ST?PUSH:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?PUT-UNDER + .BYTE 0 + .BYTE 0 + .BYTE 50 ;PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?TURN + .BYTE 0 + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE TOOLBIT + .BYTE 0 + .BYTE 122 ; 1 PR?ON + .BYTE V?PUSH + .BYTE 0 + .BYTE SIR+SOG+SMANY + .BYTE 64 ; 1 0 + .BYTE V?PUSH + .BYTE 0 + .BYTE SIR+SOG+SMANY + .ENDT + +ST?RUB:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?RUB + .BYTE 0 + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?RUB + .BYTE 0 + .BYTE 0 + .ENDT + +ST?SUPER:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?SUPER-BRIEF + .ENDT + +ST?INCANT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?INCANT + .ENDT + +ST?SCORE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?SCORE + .ENDT + +ST?LOOK:: .TABLE + .BYTE 11 ;NUMBER OF SYNTAXES + .BYTE 112 ; 1 PR?FOR + .BYTE V?FIND + .BYTE 0 + .BYTE 0 + .BYTE 123 ; 1 PR?IN + .BYTE V?LOOK-INSIDE + .BYTE 0 + .BYTE SMANY + .BYTE 113 ; 1 PR?BEHIND + .BYTE V?LOOK-BEHIND + .BYTE 0 + .BYTE 0 + .BYTE 114 ; 1 PR?UNDER + .BYTE V?LOOK-UNDER + .BYTE 0 + .BYTE 0 + .BYTE 127 ; 1 PR?WITH + .BYTE V?LOOK-INSIDE + .BYTE 0 + .BYTE SMANY + .BYTE 122 ; 1 PR?ON + .BYTE V?LOOK-INSIDE + .BYTE 0 + .BYTE 0 + .BYTE 116 ; 1 PR?AT + .BYTE V?EXAMINE + .BYTE 0 + .BYTE SMANY + .BYTE 124 ; 1 PR?DOWN + .BYTE V?LOOK + .BYTE RLANDBIT + .BYTE 0 + .BYTE 125 ; 1 PR?UP + .BYTE V?LOOK + .BYTE RLANDBIT + .BYTE 0 + .BYTE 115 ; 1 PR?AROUND + .BYTE V?LOOK + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 ; 0 0 + .BYTE V?LOOK + .ENDT + +ST?DROP:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?PUT-ON + .BYTE 0 + .BYTE SH+SMANY+SHAVE + .BYTE 58 ;PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?PUT + .BYTE 0 + .BYTE SH+SMANY+SHAVE + .BYTE 59 ;PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?PUT + .BYTE 0 + .BYTE SH+SMANY+SHAVE + .BYTE 60 ;PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?DROP + .BYTE 0 + .BYTE SH+SMANY+SHAVE + .ENDT + +ST?LEAVE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?DROP + .BYTE 0 + .BYTE 0 + .BYTE 0 ; 0 0 + .BYTE V?LEAVE + .ENDT + +ST?CURSE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?CURSES + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 ; 0 0 + .BYTE V?CURSES + .ENDT + +ST?SCRIPT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?SCRIPT + .ENDT + +ST?$VERIFY:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?VERIFY + .ENDT + +ST?EXTINGUISH:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?LAMP-OFF + .BYTE ONBIT + .BYTE STAKE+SHAVE + .ENDT + +ST?SWING:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?SWING + .BYTE WEAPONBIT + .BYTE SH+SC+SHAVE + .BYTE 52 ;PR?AT + .BYTE ACTORBIT + .BYTE SOG+SIR + .BYTE 64 ; 1 0 + .BYTE V?SWING + .BYTE WEAPONBIT + .BYTE SH+SC+SHAVE + .ENDT + +ST?RESTART:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?RESTART + .ENDT + +ST?POKE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?MUNG + .BYTE ACTORBIT + .BYTE SOG+SIR + .BYTE 63 ;PR?WITH + .BYTE WEAPONBIT + .BYTE SH+SC+SHAVE + .ENDT + +ST?SMELL:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?SMELL + .BYTE 0 + .BYTE 0 + .ENDT + +ST?BRIEF:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?BRIEF + .ENDT + +ST?DIAGNOSE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?DIAGNOSE + .ENDT + +ST?GIVE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?SGIVE + .BYTE ACTORBIT + .BYTE SOG + .BYTE 0 ;0 + .BYTE 0 + .BYTE SMANY+SH+SHAVE + .BYTE 128 ; 2 0 + .BYTE V?GIVE + .BYTE 0 + .BYTE SMANY+SH+SHAVE + .BYTE 56 ;PR?TO + .BYTE ACTORBIT + .BYTE SOG + .ENDT + +ST?WAKE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 125 ; 1 PR?UP + .BYTE V?ALARM + .BYTE ACTORBIT + .BYTE SOG+SIR + .BYTE 64 ; 1 0 + .BYTE V?ALARM + .BYTE ACTORBIT + .BYTE SOG+SIR + .ENDT + +ST?DRINK:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 121 ; 1 PR?FROM + .BYTE V?DRINK-FROM + .BYTE 0 + .BYTE SH+SC + .BYTE 64 ; 1 0 + .BYTE V?DRINK + .BYTE DRINKBIT + .BYTE 0 + .ENDT + +ST?YELL:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?YELL + .ENDT + +ST?LOCK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?LOCK + .BYTE 0 + .BYTE SOG+SIR + .BYTE 63 ;PR?WITH + .BYTE TOOLBIT + .BYTE STAKE + .ENDT + +ST?BURN:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 188 ; 2 PR?DOWN + .BYTE V?BURN + .BYTE BURNBIT + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE FLAMEBIT + .BYTE SHAVE + .BYTE 128 ; 2 0 + .BYTE V?BURN + .BYTE BURNBIT + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE FLAMEBIT + .BYTE SHAVE + .ENDT + +ST?KICK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?KICK + .BYTE 0 + .BYTE 0 + .ENDT + +ST?TURN:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 117 ; 1 PR?OFF + .BYTE V?LAMP-OFF + .BYTE ONBIT + .BYTE STAKE+SHAVE + .BYTE 186 ; 2 PR?ON + .BYTE V?LAMP-ON + .BYTE 0 + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE 0 + .BYTE SHAVE + .BYTE 122 ; 1 PR?ON + .BYTE V?LAMP-ON + .BYTE LIGHTBIT + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?TURN + .BYTE 0 + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE 0 + .BYTE 0 + .ENDT + +ST?#RECORD:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?RECORD + .ENDT + +ST?CROSS:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?WALK-AROUND + .BYTE 0 + .BYTE 0 + .ENDT + +ST?RESTORE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ; 0 0 + .BYTE V?RESTORE + .ENDT + +ST?CLOSE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?CLOSE + .BYTE DOORBIT + .BYTE SH+SC+SOG+SIR + .ENDT + +ST?STRIKE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?STRIKE + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?ATTACK + .BYTE ACTORBIT + .BYTE SOG+SIR + .BYTE 63 ;PR?WITH + .BYTE WEAPONBIT + .BYTE SHAVE + .ENDT + +ST?SLIDE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 128 ; 2 0 + .BYTE V?PUT-UNDER + .BYTE 0 + .BYTE 0 + .BYTE 50 ;PR?UNDER + .BYTE 0 + .BYTE 0 + .ENDT + +ST?WAVE:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 116 ; 1 PR?AT + .BYTE V?WAVE + .BYTE 0 + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?WAVE + .BYTE 0 + .BYTE SH+SC+STAKE+SHAVE + .BYTE 52 ;PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 64 ; 1 0 + .BYTE V?WAVE + .BYTE 0 + .BYTE SH+SC+STAKE+SHAVE + .ENDT + +ST?EXIT:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?EXIT + .BYTE 0 + .BYTE 0 + .BYTE 0 ; 0 0 + .BYTE V?EXIT + .ENDT + +ST?EXAMINE:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 122 ; 1 PR?ON + .BYTE V?LOOK-INSIDE + .BYTE 0 + .BYTE SMANY + .BYTE 123 ; 1 PR?IN + .BYTE V?LOOK-INSIDE + .BYTE 0 + .BYTE SMANY + .BYTE 64 ; 1 0 + .BYTE V?EXAMINE + .BYTE 0 + .BYTE SMANY + .ENDT + +ST?DISENCHANT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?DISENCHANT + .BYTE 0 + .BYTE 0 + .ENDT + +ST?EAT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?EAT + .BYTE FOODBIT + .BYTE SHAVE+STAKE + .ENDT + +ST?FILL:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?FILL + .BYTE CONTBIT + .BYTE 0 + .BYTE 128 ; 2 0 + .BYTE V?FILL + .BYTE CONTBIT + .BYTE 0 + .BYTE 63 ;PR?WITH + .BYTE 0 + .BYTE 0 + .ENDT + +ST?CLIMB:: .TABLE + .BYTE 5 ;NUMBER OF SYNTAXES + .BYTE 122 ; 1 PR?ON + .BYTE V?CLIMB-ON + .BYTE VEHBIT + .BYTE SOG+SIR + .BYTE 123 ; 1 PR?IN + .BYTE V?ENTER + .BYTE VEHBIT + .BYTE SOG+SIR + .BYTE 64 ; 1 0 + .BYTE V?CLIMB + .BYTE CLIMBBIT + .BYTE SOG+SIR + .BYTE 124 ; 1 PR?DOWN + .BYTE V?CLIMB-DOWN + .BYTE RLANDBIT + .BYTE 0 + .BYTE 125 ; 1 PR?UP + .BYTE V?CLIMB + .BYTE RLANDBIT + .BYTE 0 + .ENDT + +ST?LAUNCH:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?LAUNCH + .BYTE VEHBIT + .BYTE 0 + .ENDT + +ST?HELLO:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 64 ; 1 0 + .BYTE V?HELLO + .BYTE 0 + .BYTE 0 + .BYTE 0 ; 0 0 + .BYTE V?HELLO + .ENDT + + +; THE ACTION CALLING TABLE IS DEFINED HERE + +ATBL:: .TABLE + V-VERBOSE + V-BRIEF + V-SUPER-BRIEF + V-DIAGNOSE + V-INVENTORY + V-QUIT + V-RESTART + V-RESTORE + V-SAVE + V-SCORE + V-SCRIPT + V-UNSCRIPT + V-VERSION + V-VERIFY + V-RANDOM + V-COMMAND-FILE + V-RECORD + V-UNRECORD + V-ATTACK + V-BLAST + V-LAMP-OFF + V-INFLATE + V-BURN + V-CLIMB + V-CLIMB-DOWN + V-ENTER + V-CLIMB-ON + V-CLOSE + V-COMMAND + V-COUNT + V-WALK-AROUND + V-CUT + V-CURSES + V-DEFLATE + V-MUNG + V-DISEMBARK + V-DISENCHANT + V-DRINK + V-DRINK-FROM + V-DROP + V-PUT + V-PUT-ON + V-EAT + V-ENCHANT + V-EXAMINE + V-LOOK-INSIDE + V-EXIT + V-FILL + V-FIND + V-FOLLOW + V-GIVE + V-SGIVE + V-HELLO + V-INCANT + V-LEAP + V-KICK + V-KISS + V-KNOCK + V-LAUNCH + V-LEAVE + V-LAMP-ON + V-LISTEN + V-LOCK + V-LOOK + V-LOOK-UNDER + V-LOOK-BEHIND + V-LOWER + V-MELT + V-MOVE + V-TURN + V-OPEN + V-PICK + V-TAKE + V-PLAY + V-POUR-ON + V-PUSH + V-PUT-UNDER + V-RAISE + V-RAPE + V-READ + V-RUB + V-SAY + V-SEARCH + V-SHAKE + V-SKIP + V-SMELL + V-STAND + V-STRIKE + V-SWIM + V-SWING + V-TELL + V-THROW + V-THROW-OFF + V-TIE + V-TIE-UP + V-UNLOCK + V-UNTIE + V-WAIT + V-ALARM + V-WALK + V-WALK-TO + V-WAVE + V-YELL + V-ZORK + .ENDT + +; THE PREACTION CALLING TABLE IS DEFINED HERE + +PATBL:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-BURN + 0 + 0 + PRE-ENTER + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-MUNG + 0 + 0 + 0 + 0 + PRE-DROP + PRE-PUT + PRE-PUT + 0 + 0 + 0 + 0 + 0 + PRE-FILL + 0 + 0 + PRE-GIVE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-TAKE + 0 + 0 + 0 + 0 + 0 + 0 + PRE-READ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + + +; PREPOSITION TABLE IS DEFINED HERE + +PRTBL:: .TABLE + .WORD 18 + W?AWAY + PR?AWAY + W?ABOUT + PR?ABOUT + W?FOR + PR?FOR + W?BEHIND + PR?BEHIND + W?UNDER + PR?UNDER + W?AROUND + PR?AROUND + W?AT + PR?AT + W?OFF + PR?OFF + W?ACROSS + PR?ACROSS + W?OVER + PR?OVER + W?TO + PR?TO + W?FROM + PR?FROM + W?ON + PR?ON + W?IN + PR?IN + W?DOWN + PR?DOWN + W?UP + PR?UP + W?OUT + PR?OUT + W?WITH + PR?WITH + .ENDT + + +; VOCABULARY TABLE IS HERE + +VOCAB:: .TABLE + .BYTE 3 + .BYTE 46 + .BYTE 44 + .BYTE 34 + .BYTE 7 + 501 +W?$VERIFY:: .ZWORD "$verif" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?$VERIFY + .BYTE 0 +W?PERIOD:: .ZWORD "." + .BYTE PS?BUZZ-WORD + .BYTE B?PERIOD + .BYTE 0 +W?COMMA:: .ZWORD "," + .BYTE PS?BUZZ-WORD + .BYTE B?COMMA + .BYTE 0 +W?#COMMAND:: .ZWORD "#comma" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#COMMAND + .BYTE 0 +W?#RANDOM:: .ZWORD "#rando" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#RANDOM + .BYTE 0 +W?#RECORD:: .ZWORD "#recor" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#RECORD + .BYTE 0 +W?#UNRECORD:: .ZWORD "#unrec" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#UNRECORD + .BYTE 0 +W?QUOTE:: .ZWORD """" + .BYTE PS?BUZZ-WORD + .BYTE B?QUOTE + .BYTE 0 +W?A:: .ZWORD "a" + .BYTE PS?BUZZ-WORD + .BYTE B?A + .BYTE 0 +W?ABOUT:: .ZWORD "about" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?ABOUT + .BYTE 0 +W?ACROSS:: .ZWORD "across" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?ACROSS + .BYTE 0 +W?ADVENTURER:: .ZWORD "advent" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?AGAIN:: .ZWORD "again" + .BYTE PS?BUZZ-WORD + .BYTE B?AGAIN + .BYTE 0 +W?ALL:: .ZWORD "all" + .BYTE PS?BUZZ-WORD + .BYTE B?ALL + .BYTE 0 +W?AN:: .ZWORD "an" + .BYTE PS?BUZZ-WORD + .BYTE B?AN + .BYTE 0 +W?AND:: .ZWORD "and" + .BYTE PS?BUZZ-WORD + .BYTE B?AND + .BYTE 0 +W?ANIMAL:: .ZWORD "animal" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?ANSWER:: .ZWORD "answer" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SAY + .BYTE 0 +W?ANTIQUE:: .ZWORD "antiqu" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ANTIQUE + .BYTE 0 +W?AQUARIUM:: .ZWORD "aquari" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?AROUND:: .ZWORD "around" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AROUND + .BYTE 0 +W?ASK:: .ZWORD "ask" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TELL + .BYTE 0 +W?AT:: .ZWORD "at" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AT + .BYTE 0 +W?ATTACH:: .ZWORD "attach" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?ATTACK:: .ZWORD "attack" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?AWAKE:: .ZWORD "awake" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAKE + .BYTE 0 +W?AWAY:: .ZWORD "away" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AWAY + .BYTE 0 +W?BABY:: .ZWORD "baby" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BABY + .BYTE 0 +W?BAG:: .ZWORD "bag" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?BALLOON:: .ZWORD "balloo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?BARE:: .ZWORD "bare" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BARE + .BYTE 0 +W?BARRED:: .ZWORD "barred" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BARRED + .BYTE 0 +W?BASKET:: .ZWORD "basket" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?BATTERED:: .ZWORD "batter" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BATTERED + .BYTE 0 +W?BEAUTIFUL:: .ZWORD "beauti" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BEAUTIFUL + .BYTE 0 +W?BEHIND:: .ZWORD "behind" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?BEHIND + .BYTE 0 +W?BELOW:: .ZWORD "below" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?UNDER + .BYTE 0 +W?BENCH:: .ZWORD "bench" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?BENEATH:: .ZWORD "beneat" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?UNDER + .BYTE 0 +W?BILLS:: .ZWORD "bills" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?BITE:: .ZWORD "bite" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?BLACK:: .ZWORD "black" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BLACK + .BYTE 0 +W?BLADE:: .ZWORD "blade" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?BLAST:: .ZWORD "blast" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BLOW + .BYTE 0 +W?BLOW:: .ZWORD "blow" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BLOW + .BYTE 0 +W?BLUE:: .ZWORD "blue" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BLUE + .BYTE 0 +W?BOARD:: .ZWORD "board" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ENTER + .BYTE 0 +W?BOOK:: .ZWORD "book" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?BOOKS:: .ZWORD "books" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?BOX:: .ZWORD "box" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?BRAIDED:: .ZWORD "braide" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BRAIDED + .BYTE 0 +W?BRASS:: .ZWORD "brass" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BRASS + .BYTE 0 +W?BREAK:: .ZWORD "break" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DESTROY + .BYTE 0 +W?BRICK:: .ZWORD "brick" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?BRIDGE:: .ZWORD "bridge" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?BRIEF:: .ZWORD "brief" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BRIEF + .BYTE 0 +W?BUCKET:: .ZWORD "bucket" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?BURN:: .ZWORD "burn" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BURN + .BYTE 0 +W?BUT:: .ZWORD "but" + .BYTE PS?BUZZ-WORD + .BYTE B?BUT + .BYTE 0 +W?BUTTON:: .ZWORD "button" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CAGE:: .ZWORD "cage" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CAKE:: .ZWORD "cake" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CAKES:: .ZWORD "cakes" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CANDIED:: .ZWORD "candie" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CANDIED + .BYTE 0 +W?CANDY:: .ZWORD "candy" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CARD:: .ZWORD "card" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CARRY:: .ZWORD "carry" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?CATCH:: .ZWORD "catch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?CERBERUS:: .ZWORD "cerber" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CHANT:: .ZWORD "chant" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?INCANT + .BYTE 0 +W?CHASE:: .ZWORD "chase" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOLLOW + .BYTE 0 +W?CHASM:: .ZWORD "chasm" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CHEST:: .ZWORD "chest" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CHINA:: .ZWORD "china" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CHINA + .BYTE 0 +W?CIRCLE:: .ZWORD "circle" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CLAY:: .ZWORD "clay" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CLAY + .BYTE 0 +W?CLEAR:: .ZWORD "clear" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CLEAR + .BYTE 0 +W?CLIMB:: .ZWORD "climb" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLIMB + .BYTE 0 +W?CLOSE:: .ZWORD "close" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLOSE + .BYTE 0 +W?CLOTH:: .ZWORD "cloth" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CLOTH + .BYTE 0 +W?COIL:: .ZWORD "coil" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?COIN:: .ZWORD "coin" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?COLD:: .ZWORD "cold" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COLD + .BYTE 0 +W?COLLAR:: .ZWORD "collar" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?COMMAND:: .ZWORD "comman" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?COMMAND + .BYTE 0 +W?COUNT:: .ZWORD "count" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?COUNT + .BYTE 0 +W?CRACK:: .ZWORD "crack" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CROSS:: .ZWORD "cross" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CROSS + .BYTE 0 +W?CROWN:: .ZWORD "crown" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CRYPT:: .ZWORD "crypt" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?CRYSTAL:: .ZWORD "crysta" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CRYSTAL + .BYTE 0 +W?CURSE:: .ZWORD "curse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CURSE + .BYTE 0 +W?CUT:: .ZWORD "cut" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CUT + .BYTE 0 +W?D:: .ZWORD "d" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?DOWN + .BYTE 22 +W?DAMN:: .ZWORD "damn" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CURSE + .BYTE 0 +W?DAMP:: .ZWORD "damp" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DAMP + .BYTE 0 +W?DARK:: .ZWORD "dark" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DARK + .BYTE 0 +W?DEAD:: .ZWORD "dead" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DEAD + .BYTE 0 +W?DEEP:: .ZWORD "deep" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DEEP + .BYTE 0 +W?DEFLATE:: .ZWORD "deflat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEFLATE + .BYTE 0 +W?DEGREE:: .ZWORD "degree" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?DELICATE:: .ZWORD "delica" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DELICATE + .BYTE 0 +W?DEMON:: .ZWORD "demon" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?DESCRIBE:: .ZWORD "descri" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?DESTROY:: .ZWORD "destro" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DESTROY + .BYTE 0 +W?DEVIL:: .ZWORD "devil" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?DIAGNOSE:: .ZWORD "diagno" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DIAGNOSE + .BYTE 0 +W?DIAMOND:: .ZWORD "diamon" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DIAMOND + .BYTE 0 +W?DIPLOMA:: .ZWORD "diplom" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?DIRT:: .ZWORD "dirt" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?DISEMBARK:: .ZWORD "disemb" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DISEMBARK + .BYTE 0 +W?DISENCHANT:: .ZWORD "disenc" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DISENCHANT + .BYTE 0 +W?DIVE:: .ZWORD "dive" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?DOG:: .ZWORD "dog" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DOG + .BYTE O?ANY +W?DOOR:: .ZWORD "door" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?DOUSE:: .ZWORD "douse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXTINGUISH + .BYTE 0 +W?DOWN:: .ZWORD "down" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?DOWN + .BYTE 22 +W?DRAGON:: .ZWORD "dragon" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?DRINK:: .ZWORD "drink" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DRINK + .BYTE 0 +W?DROP:: .ZWORD "drop" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DROP + .BYTE 0 +W?DUSTY:: .ZWORD "dusty" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DUSTY + .BYTE 0 +W?E:: .ZWORD "e" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 30 + .BYTE A?EAST +W?EAST:: .ZWORD "east" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 30 + .BYTE A?EAST +W?EASTERN:: .ZWORD "easter" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?EASTERN + .BYTE 0 +W?EAT:: .ZWORD "eat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?ELVISH:: .ZWORD "elvish" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ELVISH + .BYTE 0 +W?ENCHANT:: .ZWORD "enchan" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ENCHANT + .BYTE 0 +W?ENORMOUS:: .ZWORD "enormo" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ENORMOUS + .BYTE 0 +W?ENTER:: .ZWORD "enter" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ENTER + .BYTE 0 +W?ETCHINGS:: .ZWORD "etchin" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?EXAMINE:: .ZWORD "examin" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?EXCEPT:: .ZWORD "except" + .BYTE PS?BUZZ-WORD + .BYTE B?EXCEPT + .BYTE 0 +W?EXIT:: .ZWORD "exit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXIT + .BYTE 0 +W?EXTINGUISH:: .ZWORD "exting" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXTINGUISH + .BYTE 0 +W?F:: .ZWORD "f" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?FALL:: .ZWORD "fall" + .BYTE PS?BUZZ-WORD + .BYTE B?FALL + .BYTE 0 +W?FANCY:: .ZWORD "fancy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FANCY + .BYTE 0 +W?FANTASIZE:: .ZWORD "fantas" + .BYTE PS?BUZZ-WORD + .BYTE B?FANTASIZE + .BYTE 0 +W?FASTEN:: .ZWORD "fasten" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?FEEBLE:: .ZWORD "feeble" + .BYTE PS?BUZZ-WORD + .BYTE B?FEEBLE + .BYTE 0 +W?FEED:: .ZWORD "feed" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GIVE + .BYTE 0 +W?FEEL:: .ZWORD "feel" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RUB + .BYTE 0 +W?FENCE:: .ZWORD "fence" + .BYTE PS?BUZZ-WORD + .BYTE B?FENCE + .BYTE 0 +W?FERMENT:: .ZWORD "fermen" + .BYTE PS?BUZZ-WORD + .BYTE B?FERMENT + .BYTE 0 +W?FIGHT:: .ZWORD "fight" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?FILL:: .ZWORD "fill" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FILL + .BYTE 0 +W?FIND:: .ZWORD "find" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FIND + .BYTE 0 +W?FIREPROOF:: .ZWORD "firepr" + .BYTE PS?BUZZ-WORD + .BYTE B?FIREPROOF + .BYTE 0 +W?FLATHEAD:: .ZWORD "flathe" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FLATHEAD + .BYTE 0 +W?FLOAT:: .ZWORD "float" + .BYTE PS?BUZZ-WORD + .BYTE B?FLOAT + .BYTE 0 +W?FLOOR:: .ZWORD "floor" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?FLUORESCE:: .ZWORD "fluore" + .BYTE PS?BUZZ-WORD + .BYTE B?FLUORESCE + .BYTE 0 +W?FOLLOW:: .ZWORD "follow" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOLLOW + .BYTE 0 +W?FOR:: .ZWORD "for" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?FOR + .BYTE 0 +W?FORD:: .ZWORD "ford" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CROSS + .BYTE 0 +W?FREE:: .ZWORD "free" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?FREEZE:: .ZWORD "freeze" + .BYTE PS?BUZZ-WORD + .BYTE B?FREEZE + .BYTE 0 +W?FROBOZZ:: .ZWORD "froboz" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FROBOZZ + .BYTE 0 +W?FROM:: .ZWORD "from" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?FROM + .BYTE 0 +W?FROSTED:: .ZWORD "froste" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FROSTED + .BYTE 0 +W?FRY:: .ZWORD "fry" + .BYTE PS?BUZZ-WORD + .BYTE B?FRY + .BYTE 0 +W?FUCK:: .ZWORD "fuck" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CURSE + .BYTE 0 +W?FUDGE:: .ZWORD "fudge" + .BYTE PS?BUZZ-WORD + .BYTE B?FUDGE + .BYTE 0 +W?FUMBLE:: .ZWORD "fumble" + .BYTE PS?BUZZ-WORD + .BYTE B?FUMBLE + .BYTE 0 +W?FUSE:: .ZWORD "fuse" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?G:: .ZWORD "g" + .BYTE PS?BUZZ-WORD + .BYTE B?G + .BYTE 0 +W?GAUDY:: .ZWORD "gaudy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GAUDY + .BYTE 0 +W?GAZEBO:: .ZWORD "gazebo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?GENIE:: .ZWORD "genie" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?GET:: .ZWORD "get" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?GIANT:: .ZWORD "giant" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GIANT + .BYTE 0 +W?GIVE:: .ZWORD "give" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GIVE + .BYTE 0 +W?GLACIER:: .ZWORD "glacie" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?GLASS:: .ZWORD "glass" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?GO:: .ZWORD "go" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?GOLD:: .ZWORD "gold" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GOLD + .BYTE O?ANY +W?GRAB:: .ZWORD "grab" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?GRAVE:: .ZWORD "grave" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?GREAT:: .ZWORD "great" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GREAT + .BYTE 0 +W?GREEN:: .ZWORD "green" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GREEN + .BYTE 0 +W?GROUND:: .ZWORD "ground" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?GRUE:: .ZWORD "grue" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?GUARDIAN:: .ZWORD "guardi" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?HAND:: .ZWORD "hand" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?HANDS:: .ZWORD "hands" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?HEAD:: .ZWORD "head" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?HEADED:: .ZWORD "headed" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HEADED + .BYTE 0 +W?HEADS:: .ZWORD "heads" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?HEAVY:: .ZWORD "heavy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HEAVY + .BYTE 0 +W?HEDGE:: .ZWORD "hedge" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?HEDGES:: .ZWORD "hedges" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?HELLO:: .ZWORD "hello" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?HER:: .ZWORD "her" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?HERE:: .ZWORD "here" + .BYTE PS?BUZZ-WORD + .BYTE B?HERE + .BYTE 0 +W?HI:: .ZWORD "hi" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?HIDE:: .ZWORD "hide" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?HIM:: .ZWORD "him" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?HIT:: .ZWORD "hit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?HOLD:: .ZWORD "hold" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?HOLE:: .ZWORD "hole" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?HOOK:: .ZWORD "hook" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?HOP:: .ZWORD "hop" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SKIP + .BYTE 0 +W?HOUND:: .ZWORD "hound" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?HUGE:: .ZWORD "huge" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HUGE + .BYTE 0 +W?HURL:: .ZWORD "hurl" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THROW + .BYTE 0 +W?I:: .ZWORD "i" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?INVENTORY + .BYTE 0 +W?ICE:: .ZWORD "ice" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?ICING:: .ZWORD "icing" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?ICY:: .ZWORD "icy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ICY + .BYTE 0 +W?IGNITE:: .ZWORD "ignite" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BURN + .BYTE 0 +W?IN:: .ZWORD "in" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?IN + .BYTE 21 +W?INCANT:: .ZWORD "incant" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?INCANT + .BYTE 0 +W?INFLAT:: .ZWORD "inflat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?INFLAT + .BYTE 0 +W?INSECTS:: .ZWORD "insect" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?INSERT:: .ZWORD "insert" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?INSIDE:: .ZWORD "inside" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?IN + .BYTE 21 +W?INTNUM:: .ZWORD "intnum" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?INTO:: .ZWORD "into" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?IN + .BYTE 21 +W?INVENTORY:: .ZWORD "invent" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?INVENTORY + .BYTE 0 +W?IRON:: .ZWORD "iron" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?IRON + .BYTE 0 +W?IS:: .ZWORD "is" + .BYTE PS?BUZZ-WORD + .BYTE B?IS + .BYTE 0 +W?IT:: .ZWORD "it" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?JUMP:: .ZWORD "jump" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?KEY:: .ZWORD "key" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?KEYHOLE:: .ZWORD "keyhol" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?KICK:: .ZWORD "kick" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KICK + .BYTE 0 +W?KILL:: .ZWORD "kill" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?KISS:: .ZWORD "kiss" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KISS + .BYTE 0 +W?KNOCK:: .ZWORD "knock" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KNOCK + .BYTE 0 +W?KREBF:: .ZWORD "krebf" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?L:: .ZWORD "l" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOOK + .BYTE 0 +W?LABEL:: .ZWORD "label" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?LADY:: .ZWORD "lady" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?LAMP:: .ZWORD "lamp" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?LAND:: .ZWORD "land" + .BYTE PS?DIRECTION+P1?DIRECTION + .BYTE 19 + .BYTE 0 +W?LANTERN:: .ZWORD "lanter" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?LAUNCH:: .ZWORD "launch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LAUNCH + .BYTE 0 +W?LEAP:: .ZWORD "leap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?LEAVE:: .ZWORD "leave" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LEAVE + .BYTE 0 +W?LETTER:: .ZWORD "letter" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LETTER + .BYTE O?ANY +W?LIFT:: .ZWORD "lift" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAISE + .BYTE 0 +W?LIGHT:: .ZWORD "light" + .BYTE PS?OBJECT+PS?VERB+P1?OBJECT + .BYTE O?ANY + .BYTE ACT?LIGHT +W?LIQUID:: .ZWORD "liquid" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?LISTEN:: .ZWORD "listen" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LISTEN + .BYTE 0 +W?LITTLE:: .ZWORD "little" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LITTLE + .BYTE 0 +W?LIZARD:: .ZWORD "lizard" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?LOCK:: .ZWORD "lock" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOCK + .BYTE 0 +W?LOOK:: .ZWORD "look" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOOK + .BYTE 0 +W?LOWER:: .ZWORD "lower" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOWER + .BYTE 0 +W?LURKING:: .ZWORD "lurkin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LURKING + .BYTE 0 +W?MAGIC:: .ZWORD "magic" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MAGIC + .BYTE 0 +W?MAN:: .ZWORD "man" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?MARBLE:: .ZWORD "marble" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MARBLE + .BYTE 0 +W?MASS:: .ZWORD "mass" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?MAT:: .ZWORD "mat" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?MATCH:: .ZWORD "match" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?MATCHBOOK:: .ZWORD "matchb" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?MATCHES:: .ZWORD "matche" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?ME:: .ZWORD "me" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?MELT:: .ZWORD "melt" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MELT + .BYTE 0 +W?MENHIR:: .ZWORD "menhir" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?METAL:: .ZWORD "metal" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?METAL + .BYTE 0 +W?MOBY:: .ZWORD "moby" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MOBY + .BYTE 0 +W?MOLEST:: .ZWORD "molest" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAPE + .BYTE 0 +W?MONEY:: .ZWORD "money" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?MONSTER:: .ZWORD "monste" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?MOVE:: .ZWORD "move" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MOVE + .BYTE 0 +W?MURDER:: .ZWORD "murder" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?MYSELF:: .ZWORD "myself" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?N:: .ZWORD "n" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 31 + .BYTE A?NORTH +W?NARROW:: .ZWORD "narrow" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NARROW + .BYTE 0 +W?NASTY:: .ZWORD "nasty" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NASTY + .BYTE 0 +W?NE:: .ZWORD "ne" + .BYTE PS?DIRECTION+P1?DIRECTION + .BYTE 27 + .BYTE 0 +W?NEAT:: .ZWORD "neat" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NEAT + .BYTE 0 +W?NECKLACE:: .ZWORD "neckla" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?NEWS:: .ZWORD "news" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NEWS + .BYTE 0 +W?NEWSPAPER:: .ZWORD "newspa" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?OBJECT + .BYTE O?ANY + .BYTE A?NEWSPAPER +W?NO:: .ZWORD "no" + .BYTE PS?BUZZ-WORD + .BYTE B?NO + .BYTE 0 +W?NORTH:: .ZWORD "north" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 31 + .BYTE A?NORTH +W?NORTHE:: .ZWORD "northe" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?NORTHE + .BYTE 27 +W?NORTHWEST:: .ZWORD "northw" + .BYTE PS?DIRECTION+P1?DIRECTION + .BYTE 26 + .BYTE 0 +W?NOTE:: .ZWORD "note" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?NW:: .ZWORD "nw" + .BYTE PS?DIRECTION+P1?DIRECTION + .BYTE 26 + .BYTE 0 +W?OAK:: .ZWORD "oak" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?OAK + .BYTE 0 +W?OBLONG:: .ZWORD "oblong" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?OBLONG + .BYTE 0 +W?OBSIDIAN:: .ZWORD "obsidi" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?OBSIDIAN + .BYTE 0 +W?OF:: .ZWORD "of" + .BYTE PS?BUZZ-WORD + .BYTE B?OF + .BYTE 0 +W?OFF:: .ZWORD "off" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?OFF + .BYTE 0 +W?OFFER:: .ZWORD "offer" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GIVE + .BYTE 0 +W?OLD:: .ZWORD "old" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?OLD + .BYTE 0 +W?ON:: .ZWORD "on" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?ON + .BYTE 0 +W?ONE:: .ZWORD "one" + .BYTE PS?BUZZ-WORD + .BYTE B?ONE + .BYTE 0 +W?ONTO:: .ZWORD "onto" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?ON + .BYTE 0 +W?OOPS:: .ZWORD "oops" + .BYTE PS?BUZZ-WORD + .BYTE B?OOPS + .BYTE 0 +W?OPEN:: .ZWORD "open" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?OPEN + .BYTE 0 +W?OPENER:: .ZWORD "opener" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?ORANGE:: .ZWORD "orange" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ORANGE + .BYTE 0 +W?OUT:: .ZWORD "out" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?OUT + .BYTE 20 +W?OVER:: .ZWORD "over" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?OVER + .BYTE 0 +W?OWL:: .ZWORD "owl" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?PACKAGE:: .ZWORD "packag" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?PAINTING:: .ZWORD "painti" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?PAIR:: .ZWORD "pair" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?PAPER:: .ZWORD "paper" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?PASSAGE:: .ZWORD "passag" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?PAT:: .ZWORD "pat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RUB + .BYTE 0 +W?PATH:: .ZWORD "path" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?PEARL:: .ZWORD "pearl" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PEARL + .BYTE 0 +W?PENTAGRAM:: .ZWORD "pentag" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?PET:: .ZWORD "pet" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RUB + .BYTE 0 +W?PICK:: .ZWORD "pick" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PICK + .BYTE 0 +W?PIECE:: .ZWORD "piece" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?PLACE:: .ZWORD "place" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PLACE + .BYTE ACT?PUT +W?PLACEM:: .ZWORD "placem" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?PLAY:: .ZWORD "play" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PLAY + .BYTE 0 +W?POINT:: .ZWORD "point" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAVE + .BYTE 0 +W?POKE:: .ZWORD "poke" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POKE + .BYTE 0 +W?POLE:: .ZWORD "pole" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?POLES:: .ZWORD "poles" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?POOL:: .ZWORD "pool" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?PORTRAIT:: .ZWORD "portra" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?POST:: .ZWORD "post" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?POSTS:: .ZWORD "posts" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?POT:: .ZWORD "pot" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?POUR:: .ZWORD "pour" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POUR + .BYTE 0 +W?PRESS:: .ZWORD "press" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUSH + .BYTE 0 +W?PRICELESS:: .ZWORD "pricel" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PRICELESS + .BYTE 0 +W?PRINCESS:: .ZWORD "prince" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?PROCEED:: .ZWORD "procee" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?PULL:: .ZWORD "pull" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PULL + .BYTE 0 +W?PUNCTURE:: .ZWORD "punctu" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POKE + .BYTE 0 +W?PURPLE:: .ZWORD "purple" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PURPLE + .BYTE 0 +W?PUSH:: .ZWORD "push" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUSH + .BYTE 0 +W?PUT:: .ZWORD "put" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUT + .BYTE 0 +W?Q:: .ZWORD "q" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?QUIT + .BYTE 0 +W?QUIT:: .ZWORD "quit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?QUIT + .BYTE 0 +W?RACK:: .ZWORD "rack" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?RAISE:: .ZWORD "raise" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAISE + .BYTE 0 +W?RAP:: .ZWORD "rap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KNOCK + .BYTE 0 +W?RAPE:: .ZWORD "rape" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAPE + .BYTE 0 +W?RARE:: .ZWORD "rare" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RARE + .BYTE 0 +W?RAVINE:: .ZWORD "ravine" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?READ:: .ZWORD "read" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?READ + .BYTE 0 +W?RECEPTACLE:: .ZWORD "recept" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?RED:: .ZWORD "red" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RED + .BYTE 0 +W?RELEASE:: .ZWORD "releas" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?REMOVE:: .ZWORD "remove" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?REPLY:: .ZWORD "reply" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SAY + .BYTE 0 +W?RESTART:: .ZWORD "restar" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RESTART + .BYTE 0 +W?RESTORE:: .ZWORD "restor" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RESTORE + .BYTE 0 +W?RIBBON:: .ZWORD "ribbon" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?RIDDLE:: .ZWORD "riddle" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?ROBOT:: .ZWORD "robot" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?ROCK:: .ZWORD "rock" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?ROLL:: .ZWORD "roll" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MOVE + .BYTE 0 +W?ROPE:: .ZWORD "rope" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?RUB:: .ZWORD "rub" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RUB + .BYTE 0 +W?RUBY:: .ZWORD "ruby" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RUBY + .BYTE O?ANY +W?RUN:: .ZWORD "run" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?RUSTY:: .ZWORD "rusty" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RUSTY + .BYTE 0 +W?S:: .ZWORD "s" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 28 + .BYTE A?SOUTH +W?SAFE:: .ZWORD "safe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?SAPPHIRE:: .ZWORD "sapphi" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SAPPHIRE + .BYTE 0 +W?SATIN:: .ZWORD "satin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SATIN + .BYTE 0 +W?SAVE:: .ZWORD "save" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SAVE + .BYTE 0 +W?SAY:: .ZWORD "say" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SAY + .BYTE 0 +W?SCORCHED:: .ZWORD "scorch" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SCORCHED + .BYTE 0 +W?SCORE:: .ZWORD "score" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCORE + .BYTE 0 +W?SCREAM:: .ZWORD "scream" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YELL + .BYTE 0 +W?SCRIPT:: .ZWORD "script" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCRIPT + .BYTE 0 +W?SE:: .ZWORD "se" + .BYTE PS?DIRECTION+P1?DIRECTION + .BYTE 25 + .BYTE 0 +W?SEA:: .ZWORD "sea" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SEA + .BYTE 0 +W?SEARCH:: .ZWORD "search" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SEARCH + .BYTE 0 +W?SECURE:: .ZWORD "secure" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?SELF:: .ZWORD "self" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?SERPENT:: .ZWORD "serpen" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?SET:: .ZWORD "set" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?SHAKE:: .ZWORD "shake" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHAKE + .BYTE 0 +W?SHIT:: .ZWORD "shit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CURSE + .BYTE 0 +W?SHOUT:: .ZWORD "shout" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YELL + .BYTE 0 +W?SHUT:: .ZWORD "shut" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?SIT:: .ZWORD "sit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLIMB + .BYTE 0 +W?SKIM:: .ZWORD "skim" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?READ + .BYTE 0 +W?SKIP:: .ZWORD "skip" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SKIP + .BYTE 0 +W?SLAY:: .ZWORD "slay" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?SLICE:: .ZWORD "slice" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CUT + .BYTE 0 +W?SLIDE:: .ZWORD "slide" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SLIDE + .BYTE 0 +W?SLOT:: .ZWORD "slot" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?SMALL:: .ZWORD "small" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 +W?SMASH:: .ZWORD "smash" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DESTROY + .BYTE 0 +W?SMELL:: .ZWORD "smell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SMELL + .BYTE 0 +W?SMOKEY:: .ZWORD "smokey" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMOKEY + .BYTE 0 +W?SNAKE:: .ZWORD "snake" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?SOLID:: .ZWORD "solid" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SOLID + .BYTE 0 +W?SOUTH:: .ZWORD "south" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 28 + .BYTE A?SOUTH +W?SOUTHE:: .ZWORD "southe" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?SOUTHE + .BYTE 25 +W?SOUTHWEST:: .ZWORD "southw" + .BYTE PS?DIRECTION+P1?DIRECTION + .BYTE 24 + .BYTE 0 +W?SPHERE:: .ZWORD "sphere" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?SPILL:: .ZWORD "spill" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POUR + .BYTE 0 +W?SQUARE:: .ZWORD "square" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SQUARE + .BYTE 0 +W?STAB:: .ZWORD "stab" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?STACK:: .ZWORD "stack" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?STAMP:: .ZWORD "stamp" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?STAND:: .ZWORD "stand" + .BYTE PS?OBJECT+PS?VERB+P1?OBJECT + .BYTE O?ANY + .BYTE ACT?STAND +W?STANDS:: .ZWORD "stands" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?STAR:: .ZWORD "star" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?STATUE:: .ZWORD "statue" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?STEEL:: .ZWORD "steel" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STEEL + .BYTE 0 +W?STEP:: .ZWORD "step" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?STONE:: .ZWORD "stone" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STONE + .BYTE O?ANY +W?STRADIVARIUS:: .ZWORD "stradi" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?STRANGE:: .ZWORD "strang" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STRANGE + .BYTE 0 +W?STREAM:: .ZWORD "stream" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?STRIKE:: .ZWORD "strike" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STRIKE + .BYTE 0 +W?STRING:: .ZWORD "string" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?SUPER:: .ZWORD "super" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SUPER + .BYTE 0 +W?SUPERBRIEF:: .ZWORD "superb" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SUPER + .BYTE 0 +W?SW:: .ZWORD "sw" + .BYTE PS?DIRECTION+P1?DIRECTION + .BYTE 24 + .BYTE 0 +W?SWIM:: .ZWORD "swim" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SWIM + .BYTE 0 +W?SWING:: .ZWORD "swing" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SWING + .BYTE 0 +W?SWORD:: .ZWORD "sword" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?TABLE:: .ZWORD "table" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?TAKE:: .ZWORD "take" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?TALK:: .ZWORD "talk" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TALK + .BYTE 0 +W?TASTE:: .ZWORD "taste" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?TEA:: .ZWORD "tea" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TEA + .BYTE 0 +W?TEAPOT:: .ZWORD "teapot" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?TELL:: .ZWORD "tell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TELL + .BYTE 0 +W?THE:: .ZWORD "the" + .BYTE PS?BUZZ-WORD + .BYTE B?THE + .BYTE 0 +W?THEM:: .ZWORD "them" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?THEN:: .ZWORD "then" + .BYTE PS?BUZZ-WORD + .BYTE B?THEN + .BYTE 0 +W?THIN:: .ZWORD "thin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?THIN + .BYTE 0 +W?THREE:: .ZWORD "three" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?THREE + .BYTE 0 +W?THROUGH:: .ZWORD "throug" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?WITH + .BYTE 0 +W?THROW:: .ZWORD "throw" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THROW + .BYTE 0 +W?THRU:: .ZWORD "thru" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?WITH + .BYTE 0 +W?THRUST:: .ZWORD "thrust" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SWING + .BYTE 0 +W?TIE:: .ZWORD "tie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?TO:: .ZWORD "to" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?TO + .BYTE 0 +W?TOMB:: .ZWORD "tomb" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?TOSS:: .ZWORD "toss" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THROW + .BYTE 0 +W?TOUCH:: .ZWORD "touch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RUB + .BYTE 0 +W?TREASURE:: .ZWORD "treasu" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?TRIANGULAR:: .ZWORD "triang" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TRIANGULAR + .BYTE 0 +W?TRUNK:: .ZWORD "trunk" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?TUG:: .ZWORD "tug" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PULL + .BYTE 0 +W?TUNNEL:: .ZWORD "tunnel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?TURN:: .ZWORD "turn" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?U:: .ZWORD "u" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?UP + .BYTE 23 +W?UNATTACH:: .ZWORD "unatta" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UNDER:: .ZWORD "under" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?UNDER + .BYTE 0 +W?UNDERNEATH:: .ZWORD "undern" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?UNDER + .BYTE 0 +W?UNFASTEN:: .ZWORD "unfast" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UNHOOK:: .ZWORD "unhook" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UNICORN:: .ZWORD "unicor" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?UNLOCK:: .ZWORD "unlock" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNLOCK + .BYTE 0 +W?UNSCRIPT:: .ZWORD "unscri" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNSCRIPT + .BYTE 0 +W?UNTIE:: .ZWORD "untie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UP:: .ZWORD "up" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?UP + .BYTE 23 +W?USED:: .ZWORD "used" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?USED + .BYTE 0 +W?USING:: .ZWORD "using" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?WITH + .BYTE 0 +W?VELVET:: .ZWORD "velvet" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VELVET + .BYTE 0 +W?VERBOSE:: .ZWORD "verbos" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VERBOSE + .BYTE 0 +W?VERSION:: .ZWORD "versio" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VERSION + .BYTE 0 +W?VIOLIN:: .ZWORD "violin" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?W:: .ZWORD "w" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 29 + .BYTE A?WEST +W?WADE:: .ZWORD "wade" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SWIM + .BYTE 0 +W?WAIT:: .ZWORD "wait" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAIT + .BYTE 0 +W?WAKE:: .ZWORD "wake" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAKE + .BYTE 0 +W?WALK:: .ZWORD "walk" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?WALL:: .ZWORD "wall" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?WAND:: .ZWORD "wand" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?WANDS:: .ZWORD "wands" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?WATER:: .ZWORD "water" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?WAVE:: .ZWORD "wave" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAVE + .BYTE 0 +W?WELL:: .ZWORD "well" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?WEST:: .ZWORD "west" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 29 + .BYTE A?WEST +W?WESTERN:: .ZWORD "wester" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WESTERN + .BYTE 0 +W?WHAT:: .ZWORD "what" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?WHATS:: .ZWORD "whats" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?WHERE:: .ZWORD "where" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FIND + .BYTE 0 +W?WHITE:: .ZWORD "white" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WHITE + .BYTE 0 +W?WICKER:: .ZWORD "wicker" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WICKER + .BYTE 0 +W?WINDOW:: .ZWORD "window" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?WIRE:: .ZWORD "wire" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?WITH:: .ZWORD "with" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?WITH + .BYTE 0 +W?WIZARD:: .ZWORD "wizard" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?OBJECT + .BYTE O?ANY + .BYTE A?WIZARD +W?WOMAN:: .ZWORD "woman" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?WOODEN:: .ZWORD "wooden" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WOODEN + .BYTE 0 +W?WORK:: .ZWORD "work" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WORK + .BYTE 0 +W?WORKBENCH:: .ZWORD "workbe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 +W?WORN:: .ZWORD "worn" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WORN + .BYTE 0 +W?Y:: .ZWORD "y" + .BYTE PS?BUZZ-WORD + .BYTE B?Y + .BYTE 0 +W?YANK:: .ZWORD "yank" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PULL + .BYTE 0 +W?YELL:: .ZWORD "yell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YELL + .BYTE 0 +W?YES:: .ZWORD "yes" + .BYTE PS?BUZZ-WORD + .BYTE B?YES + .BYTE 0 +W?YOUNG:: .ZWORD "young" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?YOUNG + .BYTE 0 +W?Z:: .ZWORD "z" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAIT + .BYTE 0 +W?ZORK:: .ZWORD "zork" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ZORK + .BYTE 0 +W?ZORKMID:: .ZWORD "zorkmi" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?OBJECT + .BYTE O?ANY + .BYTE A?ZORKMID +W?ZZMGCK:: .ZWORD "zzmgck" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE O?ANY + .BYTE 0 + .ENDT + + +; END LOAD + +ENDLOD:: + + + .ENDI diff --git a/mini2freq.xzap b/mini2freq.xzap new file mode 100644 index 0000000..6a48244 --- /dev/null +++ b/mini2freq.xzap @@ -0,0 +1,200 @@ + .FSTR FSTR?1,"the " ;894 448 + .FSTR FSTR?2,"The " ;828 277 + .FSTR FSTR?3,"You " ;465 156 + .FSTR FSTR?4,", " ;302 303 + .FSTR FSTR?5,"and " ;286 144 + .FSTR FSTR?6,"is " ;264 265 + .FSTR FSTR?7,"you " ;250 126 + .FSTR FSTR?8,"can't " ;225 46 + .FSTR FSTR?9,"There " ;220 45 + .FSTR FSTR?10,". " ;218 219 + .FSTR FSTR?11,"to " ;185 186 + .FSTR FSTR?12,"with " ;171 58 + .FSTR FSTR?13,"of " ;167 168 + .FSTR FSTR?14,"your " ;159 54 + .FSTR FSTR?15,"from " ;150 51 + .FSTR FSTR?16,"have " ;144 49 + .FSTR FSTR?17,"Wizard " ;138 24 + .FSTR FSTR?18,"This " ;128 33 + .FSTR FSTR?19,"that " ;117 40 + .FSTR FSTR?20,"are " ;114 58 + .FSTR FSTR?21,"dragon " ;100 21 + .FSTR FSTR?22,"in " ;97 98 + .FSTR FSTR?23,"don't " ;90 19 + .FSTR FSTR?24,"room " ;84 29 + .FSTR FSTR?25,"into " ;84 29 + .FSTR FSTR?26,"princess " ;84 13 + .FSTR FSTR?27,"It " ;80 41 + .FSTR FSTR?28,"It's " ;80 17 + .FSTR FSTR?29,"huge " ;78 27 + .FSTR FSTR?30,"balloon " ;78 14 + .FSTR FSTR?31,"seems " ;72 19 + .FSTR FSTR?32,"already " ;72 13 + .FSTR FSTR?33,"here" ;70 36 + .FSTR FSTR?34,"but " ;70 36 + .FSTR FSTR?35,"this " ;69 24 + .FSTR FSTR?36,"A " ;68 69 + .FSTR FSTR?37,"Wizard's " ;63 8 + .FSTR FSTR?38,"his " ;62 32 + .FSTR FSTR?39,"appears " ;60 11 + .FSTR FSTR?40,"for " ;54 28 + .FSTR FSTR?41,"Room" ;54 19 + .FSTR FSTR?42,"nothing " ;54 10 + .FSTR FSTR?43,"that" ;52 27 + .FSTR FSTR?44,"not " ;52 27 + .FSTR FSTR?45,"which " ;52 14 + .FSTR FSTR?46,"sphere" ;52 14 + .FSTR FSTR?47,"closed" ;52 14 + .FSTR FSTR?48,"out " ;50 26 + .FSTR FSTR?49,"has " ;50 26 + .FSTR FSTR?50,"enormous " ;49 8 + .FSTR FSTR?51,"doesn't " ;49 8 + .FSTR FSTR?52,"You're " ;49 8 + .FSTR FSTR?53,"Frobozz " ;49 8 + .FSTR FSTR?54,"He " ;48 25 + .FSTR FSTR?55,"demon " ;48 13 + .FSTR FSTR?56,"crystal " ;48 9 + .FSTR FSTR?57,"There's " ;48 7 + .FSTR FSTR?58,"on " ;47 48 + .FSTR FSTR?59,"wand " ;45 16 + .FSTR FSTR?60,"door " ;45 16 + .FSTR FSTR?61,"isn't " ;45 10 + .FSTR FSTR?62,"would " ;44 12 + .FSTR FSTR?63,"small " ;44 12 + .FSTR FSTR?64,"you're " ;42 8 + .FSTR FSTR?65,"through " ;42 8 + .FSTR FSTR?66,"passage " ;42 8 + .FSTR FSTR?67,"direction" ;42 7 + .FSTR FSTR?68,"Nothing " ;42 7 + .FSTR FSTR?69,"light " ;40 11 + .FSTR FSTR?70,"leads " ;40 11 + .FSTR FSTR?71,"ground" ;40 11 + .FSTR FSTR?72,"Your " ;40 11 + .FSTR FSTR?73,"That " ;40 11 + .FSTR FSTR?74,"menhir " ;40 9 + .FSTR FSTR?75,"cannot " ;40 9 + .FSTR FSTR?76,"before " ;40 9 + .FSTR FSTR?77,"something " ;40 6 + .FSTR FSTR?78,"I " ;39 40 + .FSTR FSTR?79,"one " ;38 20 + .FSTR FSTR?80,"you" ;37 38 + .FSTR FSTR?81,"be " ;37 38 + .FSTR FSTR?82,"! " ;37 38 + .FSTR FSTR?83,"as " ;36 37 + .FSTR FSTR?84,"an " ;36 37 + .FSTR FSTR?85,"only " ;36 13 + .FSTR FSTR?86,"been " ;36 13 + .FSTR FSTR?87,"takes " ;36 10 + .FSTR FSTR?88,"south " ;36 10 + .FSTR FSTR?89,"looks " ;36 10 + .FSTR FSTR?90,"large " ;36 10 + .FSTR FSTR?91,"unicorn " ;36 7 + .FSTR FSTR?92,"wooden " ;35 8 + .FSTR FSTR?93,"southwest" ;35 6 + .FSTR FSTR?94,"You'll " ;35 6 + .FSTR FSTR?95,"it " ;34 35 + .FSTR FSTR?96,"now " ;34 18 + + +;word frequency table of 96 most common words + +WORDS:: .TABLE + FSTR?1 + FSTR?2 + FSTR?3 + FSTR?4 + FSTR?5 + FSTR?6 + FSTR?7 + FSTR?8 + FSTR?9 + FSTR?10 + FSTR?11 + FSTR?12 + FSTR?13 + FSTR?14 + FSTR?15 + FSTR?16 + FSTR?17 + FSTR?18 + FSTR?19 + FSTR?20 + FSTR?21 + FSTR?22 + FSTR?23 + FSTR?24 + FSTR?25 + FSTR?26 + FSTR?27 + FSTR?28 + FSTR?29 + FSTR?30 + FSTR?31 + FSTR?32 + FSTR?33 + FSTR?34 + FSTR?35 + FSTR?36 + FSTR?37 + FSTR?38 + FSTR?39 + FSTR?40 + FSTR?41 + FSTR?42 + FSTR?43 + FSTR?44 + FSTR?45 + FSTR?46 + FSTR?47 + FSTR?48 + FSTR?49 + FSTR?50 + FSTR?51 + FSTR?52 + FSTR?53 + FSTR?54 + FSTR?55 + FSTR?56 + FSTR?57 + FSTR?58 + FSTR?59 + FSTR?60 + FSTR?61 + FSTR?62 + FSTR?63 + FSTR?64 + FSTR?65 + FSTR?66 + FSTR?67 + FSTR?68 + FSTR?69 + FSTR?70 + FSTR?71 + FSTR?72 + FSTR?73 + FSTR?74 + FSTR?75 + FSTR?76 + FSTR?77 + FSTR?78 + FSTR?79 + FSTR?80 + FSTR?81 + FSTR?82 + FSTR?83 + FSTR?84 + FSTR?85 + FSTR?86 + FSTR?87 + FSTR?88 + FSTR?89 + FSTR?90 + FSTR?91 + FSTR?92 + FSTR?93 + FSTR?94 + FSTR?95 + FSTR?96 + .ENDT + + .ENDI diff --git a/mini2pur.zap b/mini2pur.zap new file mode 100644 index 0000000..a2ba0d2 --- /dev/null +++ b/mini2pur.zap @@ -0,0 +1,8 @@ + + +; PURE TABLES ARE DEFINED HERE + +PURTBL:: + +PURTND:: + .ENDI diff --git a/mini2str.zap b/mini2str.zap new file mode 100644 index 0000000..f7d960c --- /dev/null +++ b/mini2str.zap @@ -0,0 +1,263 @@ + + +; STRINGS ARE DEFINED HERE + +STRBEG:: + + .GSTR STR?14,"" + .GSTR STR?25," has no effect." + .GSTR STR?61,"Float" + .GSTR STR?76,"yellow sphere" + .GSTR STR?77,"grue" + .GSTR STR?155,"An old wooden chest sits in the corner." + .GSTR STR?173,"You have made it to the top. Well done. There are etchings on the well. A crack runs across the floor at the doorway to the east, but it can be crossed easily. Another doorway leads northeast." + .GSTR STR?32,". +" + .GSTR STR?218,"Lord Dimwit's crown is here." + .GSTR STR?12,"Oh, no! You have walked into the slavering fangs of a lurking grue!" + .GSTR STR?16," " + .GSTR STR?106,"a dim cave, its floor piled with furs and old bones" + .GSTR STR?107,"On the table sits a blue crystal sphere." + .GSTR STR?122,"On the floor is a neat stack of 200 zorkmid bills." + .GSTR STR?149,"Dragon hide is tough as steel, but you have annoyed him a bit. He looks as if deciding whether or not to eat you." + .GSTR STR?195,"On the floor lies a moby ruby." + .GSTR STR?206,"On the floor is a priceless gold zorkmid (a valuable collector's item)." + .GSTR STR?222,"Now you've done it. It seems that the brick is an explosive and you have been blown to bits." + .GSTR STR?43,"It doesn't fit the lock. +" + .GSTR STR?59,"Fall" + .GSTR STR?20," and devoured you!" + .GSTR STR?44," the Great Underground Empire" + .GSTR STR?150,"That captured his interest. He stares at you balefully." + .GSTR STR?152,"That did no damage, but he turns his smoky yellow eyes in your direction." + .GSTR STR?165,"The air is cool and damp. A path from the southeast splits here; north toward a stone bridge, and west into a narrow tunnel. It is from the latter that the chill originates." + .GSTR STR?72,"pile of jewels" + .GSTR STR?196,"The balloon floats majestically out of the volcano, revealing a breathtaking view of a forest clearing with a white house. High winds carry you into the snow-capped (and jagged) cliffs of the Flathead Mountains!" + .GSTR STR?201,"descends." + .GSTR STR?212,"The book details the use of the so-called ""magic wand"". Apparently, these work by pointing them at the object to be ensorcelled, and then chanting the appropriate magic word. (Amazing how credulous these ancients were.)" + .GSTR STR?3,"begin" + .GSTR STR?30,"What a concept!" + .GSTR STR?52,"You plunge down the well." + .GSTR STR?53,"You plunge down the volcano." + .GSTR STR?94,"Filling the northern half of the room is a huge aquarium." + .GSTR STR?115,"This is a huge limestone cavern, glowing with dim, phosphorescent light from far above. Narrow paths wind south and northeast." + .GSTR STR?117,"This smooth-walled tunnel runs northeast to southwest. A faint whirring sound comes from the latter direction. Another opening, choked with leaves, leads southeast." + .GSTR STR?121,"This is a small chamber carved from the western end of a short crawl. On the wall is crudely chiseled the number ""8""." + .GSTR STR?125,"This was once a kennel for a large dog (some of the bones would fit a dinosaur). The only exit is northeast." + .GSTR STR?128,"This is the entrance to a huge tomb. A passage leads north." + .GSTR STR?140,"This is a gazebo in the midst of a formal garden. It is cool and restful here. A tea table adorns the center of the gazebo." + .GSTR STR?143,"This is the southern end of a garden, where fantastically shaped hedges are arrayed with geometric precision. Though recently untended, the bushes have clearly been shaped: There is a dragon, a unicorn, a great serpent, a huge misshapen dog, and several human figures. To the west is a tunnel." + .GSTR STR?168,"This is a tall, damp room with brick walls. There are some etchings on the walls. A passage leads west." + .GSTR STR?176,"This robot was trained at GUE Tech to perform simple household functions. To activate, say: + >ROBOT, +A product of the Frobozz Magic Robot Company." + .GSTR STR?177,"This room is full of assorted machinery, whirring noisily. On one wall is a triangular button labelled, ""DANGER -- HIGH VOLTAGE."" There are exits to the south and southwest." + .GSTR STR?179,"This is a former broom closet. A larger room lies to the north. Chiselled on the wall are the words ""Protected by the Frobozz Magic Alarm Company.""" + .GSTR STR?207,"This octagonal coin reads ""1000 Zorkmids"" and ""In Frobs We Trust""." + .GSTR STR?208,"This must have been a large library, probably for the royal family. All of the shelves have been gnawed to pieces by unfriendly gnomes. To the north is an exit." + .GSTR STR?210,"This book is written in an unfamiliar tongue." + .GSTR STR?214,"This three zorkmid stamp portrays Lord Dimwit Flathead the Excessive." + .GSTR STR?26,"A valiant attempt." + .GSTR STR?33,"The demon is gone for a moment. " + .GSTR STR?46," comes to a stop. + +" + .GSTR STR?85,"The demon crushes you with his enormous hand." + .GSTR STR?146,"The dragon hisses and blocks your way." + .GSTR STR?151,"The dragon is surprised and interested (for the moment)." + .GSTR STR?192,"The depressed area is filled with water. There is something hazy at the deepest part of the pool." + .GSTR STR?42,"The edge of a place mat is visible under the door." + .GSTR STR?132,"Before you are the earthly remains of the mighty Flatheads, twelve somewhat flat heads mounted securely on poles. There is writing carved on the crypt. To the north and south are dark doorways." + .GSTR STR?134,"""Here lie the Flatheads, whose heads were placed on poles by the Dungeon Master for amazing untastefulness.""" + .GSTR STR?147,"A huge red dragon is lying on the rocks, watching." + .GSTR STR?148,"A huge red dragon is blocking the north exit. Smoke curls from his nostrils." + .GSTR STR?160,"west" + .GSTR STR?217,"The excessively gaudy crown of Lord Dimwit Flathead sits in the safe." + .GSTR STR?7,"You should have looked before you leaped." + .GSTR STR?38,"You see only darkness. +" + .GSTR STR?71,"You sink quietly down again." + .GSTR STR?95,"A shattered aquarium fills the northern half of the room." + .GSTR STR?159,"east" + .GSTR STR?162,"out" + .GSTR STR?191,"The far half of this room is depressed. The only exit is west." + .GSTR STR?50,"The guardian greedily devours " + .GSTR STR?54,"You trip on something and fall over the edge of the bridge." + .GSTR STR?74,"basilisk" + .GSTR STR?129,"The huge dog snaps at you." + .GSTR STR?136,"north" + .GSTR STR?36,"Look around you. +" + .GSTR STR?101,"almost monkish in its austerity" + .GSTR STR?161,"in" + .GSTR STR?185,"The icing spells, ""Eat Me.""" + .GSTR STR?9,"Pushing the " + .GSTR STR?31,"What's tall as a house, + round as a cup, + and all the king's horses + can't draw it up?"" +" + .GSTR STR?55,"and the resulting fall does you in." + .GSTR STR?86,"A dejected and fearful Wizard watches from the corner." + .GSTR STR?109,"""" + .GSTR STR?211,"Beside the purple book is a white one." + .GSTR STR?83,"Inscribed on the floor is a great pentagram drawn with black chalk. In its center is a black circle." + .GSTR STR?49,", almost as though an invisible hand had tipped it over. +" + .GSTR STR?60,"Ferment" + .GSTR STR?112,"The lamp appears a bit dimmer." + .GSTR STR?113,"The lamp is definitely dimmer now." + .GSTR STR?114,"The lamp is nearly out." + .GSTR STR?47,"""Buzz, whirr, click!" + .GSTR STR?65,"All at once you feel very tired." + .GSTR STR?37,"It's too dark to see." + .GSTR STR?45,"It's not clear what you're referring to. +" + .GSTR STR?164,"It's a long way down." + .GSTR STR?174,"It's a long way down!" + .GSTR STR?183,"Only a mouse could fit." + .GSTR STR?105,"a suburban bedroom out of the 1950's, complete with bunk beds" + .GSTR STR?181,"The poison gas takes effect." + .GSTR STR?88,"Very nice, but not enough!" + .GSTR STR?93,"Here a dark hallway turns a corner. To the south is a dark room, to the east is fitful light." + .GSTR STR?137,"south" + .GSTR STR?142,"""Visit Exotic ZORK I! Consult the Frobozz Magic Travel Agency, or visit your local computer store for details.""" + .GSTR STR?199,"lifts off." + .GSTR STR?6,"Kicking the " + .GSTR STR?131,"A grinning, three-headed dog, wearing a huge collar, wags its tail here." + .GSTR STR?154,"The rock walls are scarred by flame, and a blackened doorway leads south." + .GSTR STR?188,"The room is now too small to hold you, and the walls are tougher than your body." + .GSTR STR?209,"In one corner sits a blue book." + .GSTR STR?221,"The room is cluttered with debris from an explosion. The walls seem ready to collapse." + .GSTR STR?223,"The room trembles and 5000 tons of rock fall on you." + .GSTR STR?24," isn't notably helpful." + .GSTR STR?90,"Almost halfway there, oh worthy one!" + .GSTR STR?21,"There is some water here." + .GSTR STR?80,"The text is in an obscure tongue." + .GSTR STR?82,"There is a strange black sphere here." + .GSTR STR?84,"There is a demon floating in midair here." + .GSTR STR?97,"There is a baby sea serpent swimming in the aquarium." + .GSTR STR?108,"There is a clear crystal sphere lying in the sand." + .GSTR STR?120,"There is a Stradivarius here." + .GSTR STR?141,"There is a matchbook saying ""Visit ZORK I"" here." + .GSTR STR?144,"The topiary animals attack! You are crushed by their branches and clawed by their thorns." + .GSTR STR?171,"There is a wooden bucket here, 3 feet in diameter and 3 feet high." + .GSTR STR?187,"Taste: yum. Effect: massive dehydration." + .GSTR STR?193,"There is a package of candied insects here." + .GSTR STR?202,"There is a blue label here." + .GSTR STR?203,"""FROBOZZ MAGIC BALLOON COMPANY! Hello, Aviator! + +To land your balloon, say LAND. Otherwise, you're on your own! (No warranty expressed or implied.)""" + .GSTR STR?215,"There is a card with writing on it here." + .GSTR STR?219,"There is a square brick here which feels like clay." + .GSTR STR?220,"There is a coil of black, braided string here." + .GSTR STR?104,"overhung with palm-trees and lianas. The only furniture is a hammock" + .GSTR STR?133,"The Flatheads foresaw that someone might tamper with their remains, and took steps to punish such actions." + .GSTR STR?135,"Strands of light vibrate toward you, as if searching for something. One by one your possessions glow bright green. Finally, you are attacked by these magical wardens, and destroyed!" + .GSTR STR?205,"I wouldn't jump from here." + .GSTR STR?35,"As you peer into the sphere, a strange vision takes shape" + .GSTR STR?103,"decorated in the Louis XIV style" + .GSTR STR?8,"Playing in this way with the " + .GSTR STR?13,"Waving the " + .GSTR STR?40,"The wand stops glowing, but there is no other apparent effect. +" + .GSTR STR?58,"Freeze" + .GSTR STR?145,"The walls of this large cavern are scorched and a sooty dry smell is very strong here. A stone bridge leads the south, and a smokey tunnel opens to the north. To the east is a small opening." + .GSTR STR?169,"The walls cannot be climbed." + .GSTR STR?1,"leave the game" + .GSTR STR?118,"An Elvish sword of great antiquity is here." + .GSTR STR?153,", but you barely feel the heat. The dragon is puzzled, but not too puzzled to crush you in his jaws." + .GSTR STR?156,"Nestled in the chest is a gold statuette of a dragon." + .GSTR STR?200,"lands." + .GSTR STR?89,"Ah, truly magnificent! Keep them coming." + .GSTR STR?123,"Each bill is worth 100 zorkmids and bears the legend ""In Frobs We Trust""." + .GSTR STR?22,"Poof, you're dead!" + .GSTR STR?57,"Fumble" + .GSTR STR?127,"Bad idea. As you unfasten the collar, the monster rends you into little doggy biscuits." + .GSTR STR?10,"Fiddling with the " + .GSTR STR?75,"bulging chest" + .GSTR STR?79,"copy of ZORK I" + .GSTR STR?111,"A familiar brass lantern is lying on the ground." + .GSTR STR?29,"An interesting idea..." + .GSTR STR?81,"Halls lead west and south. The Wizard's workbench dominates the room. It is stained from years of use, and is deeply gouged as though some huge clawed animal was imprisoned on it. In the center of the bench, three stands - ruby, sapphire, and diamond - form a triangle." + .GSTR STR?172,"If you insist." + .GSTR STR?190,"A chasm blocks your way." + .GSTR STR?96,"rends you limb from limb before he drowns in the air." + .GSTR STR?216,"Warning: This room was constructed near weak rock strata. Detonation of explosives here is strictly prohibited!" + .GSTR STR?63,"Fence" + .GSTR STR?28,"Not bloody likely." + .GSTR STR?66,"Your limbs suddenly feel like stone. You can't move a muscle." + .GSTR STR?69,"Your little finger begins to twitch, and then your whole body is free again." + .GSTR STR?70,"Your head is clearer now." + .GSTR STR?78,"convention of wizards" + .GSTR STR?91,"Your generosity overwhelms me!" + .GSTR STR?130,"A vicious-looking dog guards the entrance to the south. It's your usual dog, except that it has three heads and is the size of an elephant." + .GSTR STR?138,"A path of crushed white stone winds among bushes and flower beds of this garden from south to north. Almost hidden by the shrubbery is a small white gazebo." + .GSTR STR?182,"An oblong table here is set for afternoon tea. It is clear that the users were indeed mad. To the east is a small hole (perhaps four inches high). A doorway leads west." + .GSTR STR?197,"ascends." + .GSTR STR?198,"floats, ascending due to its light load." + .GSTR STR?56,"Feeble" + .GSTR STR?15," " + .GSTR STR?62,"Fireproof" + .GSTR STR?73,"gold ingot" + .GSTR STR?158,". ""Fry!"" he intones, and a bolt of lightning reduces you to a pile of ash. (Serves you right, too, if you ask me.)" + .GSTR STR?17," " + .GSTR STR?18," " + .GSTR STR?19," " + .GSTR STR?39,"It already is! +" + .GSTR STR?98,"He takes you instead. ""Uurrp!""" + .GSTR STR?110,"You are in an ancient barrow which opens to the southwest." + .GSTR STR?116,"You are ankle deep in a stream. To the southwest is a dark tunnel, and to the north a dim cavern." + .GSTR STR?119,"You are waist deep in a cold stream. On the northern bank, the walls rise to a small ledge. A ""whir"" comes from an opening to the south." + .GSTR STR?124,"You are trying to walk through an enormous rock." + .GSTR STR?163,"You are on a north-south bridge spanning a deep ravine. Water flows far beneath." + .GSTR STR?170," o b o + + A G I + + E L + + m p a" + .GSTR STR?175," o b o + r z +f M A G I C z + +c W E L L y + o n + m p a" + .GSTR STR?178,"You are instantly electrocuted." + .GSTR STR?180,"You are trapped in a solid steel cage." + .GSTR STR?186,"You are blasted to smithereens (wherever they are)." + .GSTR STR?194,"You are at the base of a dormant volcano. High above, light enters the cone of the volcano. The only exit is east." + .GSTR STR?204,"You are about one hundred feet above the bottom of the volcano." + .GSTR STR?4,"end" + .GSTR STR?67,"You begin to feel lightheaded." + .GSTR STR?87,"Most fine, master! But 'tis not enough. I will do a great service, and are not great services bought at great price?" + .GSTR STR?92,"Wondrous fine, master! But one treasure is yet to be given!" + .GSTR STR?102,"an opulently furnished seraglio out of an Arabian folktale" + .GSTR STR?2,"restart" + .GSTR STR?27,"You can't be serious." + .GSTR STR?41,"You can't go that way. +" + .GSTR STR?100,"You cut yourself severely on the broken glass." + .GSTR STR?5," it at the time." + .GSTR STR?48,"The Wizard waves his wand " + .GSTR STR?51,"The Wizard of Frobozz is here, eyeing you warily." + .GSTR STR?99,"You drop into the aquarium with a splash, which attracts the serpent. Being a hungry baby, he greedily eats you." + .GSTR STR?166,"You don't even have an ice-pick." + .GSTR STR?64,"Fantasize" + .GSTR STR?126,"A gigantic dog collar lies amidst the dust." + .GSTR STR?139,"A beautiful unicorn is munching grass here." + .GSTR STR?157,"A beautiful princess sits on a rock in the corner. Her hair is unkempt and she appears to be in a trance." + .GSTR STR?184,"A rare portrait of J. Pierpont Flathead hangs on the wall." + .GSTR STR?23," doesn't seem to work." + .GSTR STR?34,"You feel a rush of air as something moved nearby. +" + .GSTR STR?68,"You feel more energetic now." + .GSTR STR?213,"Lying in the dust, covered with mold, is a purple book." + .GSTR STR?11,"." + .GSTR STR?167,"A mass of ice fills the western half of the room." + .GSTR STR?189,"In the center of this enormous room, four wooden posts support a huge oblong roof. To the east is a large hole; to the west a gaping chasm." + + .ENDI diff --git a/misc.zabstr b/misc.zabstr new file mode 100644 index 0000000..22babb8 --- /dev/null +++ b/misc.zabstr @@ -0,0 +1,77 @@ + + + + + ) (> >)> > "CRLF"> <=? .P "CR">> >) ( ) (ELSE > < +SET A > > "DESC"> <=? .P "D"> <=? .P +"OBJ"> <=? .P "O">> >) ( <=? .P "AN">> < +MAPRET
>) ( <=? .P "N">> >) ( <=? .P "CHR"> <=? .P "C">> >) +(ELSE >>)>)>) ( < +MAPRET >) ( >) +(ELSE )>>!>>> +> +> +> +> + ) ( < +NTH .OO 2>) (ELSE )>>)> < +RETURN>)> > >>) (ELSE .ATM)>>) (ELSE . +ATM)> !.L)> > 3> )>> !.L>)>>> >> +> +> +> + ) (<==? .X FSET?> ) ( +ELSE )>>)> > > < +SET O ( .ATM) (ELSE )>> +!.O)>>> + >> +>> + + +> +> + >> + >> + ) (T .NUM)>> + 64>> + +> + + +> +> + + + + + + + + + +> + + + +> + + + + + + + + +> + + \ No newline at end of file diff --git a/misc.zap b/misc.zap new file mode 100644 index 0000000..d1bb78c --- /dev/null +++ b/misc.zap @@ -0,0 +1,318 @@ + + + .FUNCT RANDOM-ELEMENT,FROB + GET FROB,0 + RANDOM STACK + GET FROB,STACK + RSTACK + + + .FUNCT PICK-ONE,FROB,L,CNT,RND,MSG,RFROB + GET FROB,0 >L + GET FROB,1 >CNT + DEC 'L + ADD FROB,2 >FROB + MUL CNT,2 + ADD FROB,STACK >RFROB + SUB L,CNT + RANDOM STACK >RND + GET RFROB,RND >MSG + GET RFROB,1 + PUT RFROB,RND,STACK + PUT RFROB,1,MSG + INC 'CNT + EQUAL? CNT,L \?CND1 + SET 'CNT,0 +?CND1: PUT FROB,0,CNT + RETURN MSG + + + .FUNCT GO +START:: + +?FCN: PUTB P-LEXV,0,59 + CALL QUEUE,I-WIZARD,4 + PUT STACK,0,1 + CALL QUEUE,I-LANTERN,200 + PUTP BALLOON,P?VTYPE,NONLANDBIT + PUTP BUCKET,P?VTYPE,NONLANDBIT + SET 'LIT,TRUE-VALUE + SET 'WINNER,ADVENTURER + SET 'HERE,INSIDE-THE-BARROW + SET 'P-IT-OBJECT,FALSE-VALUE + FSET? HERE,TOUCHBIT /?CND1 + CALL V-VERSION + CRLF +?CND1: CALL V-LOOK + CALL MAIN-LOOP + JUMP ?FCN + + + .FUNCT MAIN-LOOP,TRASH +?PRG1: CALL MAIN-LOOP-1 >TRASH + JUMP ?PRG1 + + + .FUNCT MAIN-LOOP-1,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,O,I + SET 'CNT,0 + SET 'OBJ,FALSE-VALUE + SET 'PTBL,TRUE-VALUE + CALL PARSER >P-WON + ZERO? P-WON /?CCL3 + GET P-PRSI,P-MATCHLEN >ICNT + GET P-PRSO,P-MATCHLEN >OCNT + ZERO? P-IT-OBJECT /?CND4 + CALL ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK /?CND4 + SET 'TMP,FALSE-VALUE +?PRG8: IGRTR? 'CNT,ICNT /?REP9 + GET P-PRSI,CNT + EQUAL? STACK,IT \?PRG8 + PUT P-PRSI,CNT,P-IT-OBJECT + SET 'TMP,TRUE-VALUE +?REP9: ZERO? TMP \?CND15 + SET 'CNT,0 +?PRG17: IGRTR? 'CNT,OCNT /?CND15 + GET P-PRSO,CNT + EQUAL? STACK,IT \?PRG17 + PUT P-PRSO,CNT,P-IT-OBJECT +?CND15: SET 'CNT,0 +?CND4: ZERO? OCNT \?CCL26 + SET 'NUM,OCNT + JUMP ?CND24 +?CCL26: GRTR? OCNT,1 \?CCL28 + SET 'TBL,P-PRSO + ZERO? ICNT \?CCL31 + SET 'OBJ,FALSE-VALUE + JUMP ?CND29 +?CCL31: GET P-PRSI,1 >OBJ +?CND29: SET 'NUM,OCNT + JUMP ?CND24 +?CCL28: GRTR? ICNT,1 \?CCL33 + SET 'PTBL,FALSE-VALUE + SET 'TBL,P-PRSI + GET P-PRSO,1 >OBJ + SET 'NUM,ICNT + JUMP ?CND24 +?CCL33: SET 'NUM,1 +?CND24: ZERO? OBJ \?CND34 + EQUAL? ICNT,1 \?CND34 + GET P-PRSI,1 >OBJ +?CND34: EQUAL? PRSA,V?WALK \?CCL40 + ZERO? P-WALK-DIR /?CCL40 + CALL PERFORM,PRSA,PRSO >V + JUMP ?CND38 +?CCL40: ZERO? NUM \?CCL44 + GETB P-SYNTAX,P-SPREP1 + DIV STACK,64 + ZERO? STACK \?CCL47 + CALL PERFORM,PRSA >V + SET 'PRSO,FALSE-VALUE + JUMP ?CND38 +?CCL47: ZERO? LIT \?PRG52 + PRINT TOO-DARK + CRLF + JUMP ?CND38 +?PRG52: PRINT REFERRING + SET 'V,FALSE-VALUE + JUMP ?CND38 +?CCL44: SET 'P-NOT-HERE,0 + SET 'P-MULT,FALSE-VALUE + GRTR? NUM,1 \?CND54 + SET 'P-MULT,TRUE-VALUE +?CND54: SET 'TMP,FALSE-VALUE +?PRG56: IGRTR? 'CNT,NUM \?CCL60 + GRTR? P-NOT-HERE,0 \?CCL63 + PRINTI "The " + EQUAL? P-NOT-HERE,NUM /?PRG70 + PRINTI "other " +?PRG70: PRINTI "object" + EQUAL? P-NOT-HERE,1 /?PRG76 + PRINTC 115 +?PRG76: PRINTI " that you mentioned " + EQUAL? P-NOT-HERE,1 /?PRG83 + PRINTI "are" + JUMP ?PRG85 +?PRG83: PRINTI "is" +?PRG85: PRINTI "n't here." + CRLF + JUMP ?CND38 +?CCL63: ZERO? TMP \?CND38 + PRINTI "There's nothing here you can take." + CRLF + JUMP ?CND38 +?CCL60: ZERO? PTBL /?CCL92 + GET P-PRSO,CNT >OBJ1 + JUMP ?CND90 +?CCL92: GET P-PRSI,CNT >OBJ1 +?CND90: ZERO? PTBL /?CCL95 + SET 'O,OBJ1 + JUMP ?CND93 +?CCL95: SET 'O,OBJ +?CND93: ZERO? PTBL /?CCL98 + SET 'I,OBJ + JUMP ?CND96 +?CCL98: SET 'I,OBJ1 +?CND96: GRTR? NUM,1 /?CCL100 + GET P-ITBL,P-NC1 + GET STACK,0 + EQUAL? STACK,W?ALL \?CND99 +?CCL100: LOC WINNER >V + EQUAL? O,NOT-HERE-OBJECT \?CCL105 + INC 'P-NOT-HERE + JUMP ?PRG56 +?CCL105: EQUAL? PRSA,V?TAKE \?CCL107 + ZERO? I /?CCL107 + GET P-ITBL,P-NC1 + GET STACK,0 + EQUAL? STACK,W?ALL \?CCL107 + IN? O,I \?PRG56 +?CCL107: EQUAL? P-GETFLAGS,P-ALL \?CCL113 + EQUAL? PRSA,V?TAKE \?CCL113 + LOC O + EQUAL? STACK,WINNER,HERE,V /?PRD118 + LOC O + EQUAL? STACK,I /?PRD118 + LOC O + FSET? STACK,SURFACEBIT \?PRG56 +?PRD118: FSET? O,TAKEBIT /?CCL113 + FSET? O,TRYTAKEBIT \?PRG56 +?CCL113: EQUAL? OBJ1,IT \?CCL126 + PRINTD P-IT-OBJECT + JUMP ?PRG127 +?CCL126: PRINTD OBJ1 +?PRG127: PRINTI ": " +?CND99: SET 'PRSO,O + SET 'PRSI,I + SET 'TMP,TRUE-VALUE + CALL PERFORM,PRSA,PRSO,PRSI >V + EQUAL? V,M-FATAL \?PRG56 +?CND38: EQUAL? V,M-FATAL /?CND131 + LOC WINNER + GETP STACK,P?ACTION + CALL STACK,M-END >V +?CND131: EQUAL? V,M-FATAL \?CND1 + SET 'P-CONT,FALSE-VALUE + JUMP ?CND1 +?CCL3: SET 'P-CONT,FALSE-VALUE +?CND1: ZERO? P-WON /FALSE + EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?TELL /TRUE + EQUAL? PRSA,V?VERSION,V?SAVE,V?VERBOSE /TRUE + EQUAL? PRSA,V?SCORE,V?RESTART,V?QUIT /TRUE + EQUAL? PRSA,V?RESTORE,V?UNSCRIPT,V?SCRIPT /TRUE + CALL CLOCKER >V + RETURN V + + + .FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI + SET 'OA,PRSA + SET 'OO,PRSO + SET 'OI,PRSI + EQUAL? IT,I,O \?CND1 + CALL ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK \?CND1 + PRINT REFERRING + RETURN 2 +?CND1: EQUAL? O,IT \?CND9 + SET 'O,P-IT-OBJECT +?CND9: EQUAL? I,IT \?CND11 + SET 'I,P-IT-OBJECT +?CND11: SET 'PRSA,A + SET 'PRSO,O + ZERO? PRSO /?CND13 + EQUAL? PRSI,IT /?CND13 + EQUAL? PRSA,V?WALK /?CND13 + SET 'P-IT-OBJECT,PRSO +?CND13: SET 'PRSI,I + EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?CCL20 + CALL NOT-HERE-OBJECT-F >V + ZERO? V \?CND18 +?CCL20: SET 'O,PRSO + SET 'I,PRSI + GETP WINNER,P?ACTION + CALL STACK >V + ZERO? V \?CND18 + LOC WINNER + GETP STACK,P?ACTION + CALL STACK,M-BEG >V + ZERO? V \?CND18 + GET PREACTIONS,A + CALL STACK >V + ZERO? V \?CND18 + ZERO? I /?CCL31 + GETP I,P?ACTION + CALL STACK >V + ZERO? V \?CND18 +?CCL31: ZERO? O /?CCL35 + EQUAL? A,V?WALK /?CCL35 + LOC O + ZERO? STACK /?CCL35 + LOC O + GETP STACK,P?CONTFCN + CALL STACK >V + ZERO? V \?CND18 +?CCL35: ZERO? O /?CCL41 + EQUAL? A,V?WALK /?CCL41 + GETP O,P?ACTION + CALL STACK >V + ZERO? V \?CND18 +?CCL41: GET ACTIONS,A + CALL STACK >V + ZERO? V /?CND18 +?CND18: SET 'PRSA,OA + SET 'PRSO,OO + SET 'PRSI,OI + RETURN V + + + .FUNCT QUEUE,RTN,TICK,CINT + CALL INT,RTN >CINT + PUT CINT,C-TICK,TICK + RETURN CINT + + + .FUNCT INT,RTN,DEMON=0,E,C,INT + ADD C-TABLE,C-TABLELEN >E + ADD C-TABLE,C-INTS >C +?PRG1: EQUAL? C,E \?CCL5 + SUB C-INTS,C-INTLEN >C-INTS + ZERO? DEMON /?PEN6 + SUB C-DEMONS,C-INTLEN >C-DEMONS +?PEN6: ADD C-TABLE,C-INTS >INT + PUT INT,C-RTN,RTN + RETURN INT +?CCL5: GET C,C-RTN + EQUAL? STACK,RTN \?CND3 + RETURN C +?CND3: ADD C,C-INTLEN >C + JUMP ?PRG1 + + + .FUNCT CLOCKER,C,E,TICK,FLG=0 + ZERO? CLOCK-WAIT /?CND1 + SET 'CLOCK-WAIT,FALSE-VALUE + RFALSE +?CND1: ZERO? P-WON /?CCL5 + PUSH C-INTS + JUMP ?CND3 +?CCL5: PUSH C-DEMONS +?CND3: ADD C-TABLE,STACK >C + ADD C-TABLE,C-TABLELEN >E +?PRG6: EQUAL? C,E \?CCL10 + INC 'MOVES + RETURN FLG +?CCL10: GET C,C-ENABLED? + ZERO? STACK /?CND8 + GET C,C-TICK >TICK + ZERO? TICK /?CND8 + SUB TICK,1 + PUT C,C-TICK,STACK + GRTR? TICK,1 /?CND8 + GET C,C-RTN + CALL STACK + ZERO? STACK /?CND8 + SET 'FLG,TRUE-VALUE +?CND8: ADD C,C-INTLEN >C + JUMP ?PRG6 + + .ENDI diff --git a/misc.zil b/misc.zil new file mode 100644 index 0000000..00312ff --- /dev/null +++ b/misc.zil @@ -0,0 +1,535 @@ +"MISC for + Mini-Zork II: The Wizard of Frobozz + (c) Copyright 1988 Infocom, Inc. All Rights Reserved." + +;"former MACROS stuff" + + + + + + ) + (> + >)> + + > + "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)>>> + + >> + +>> + +>>> + +) (CNT ) RND MSG RFROB) + > + > + >> + >> + > + > + + > + )> + + .MSG> + +> + +> + + + >> + + + >> + + ) + (T .NUM)>> + +; "taa 11/7/87 Macro to return number of objects needed by syntax + in compact format" + 64>> + +\ +;"former MAIN stuff" + + + +> + + + + + +> + +> + + + + + + + + + + + + + + + > + + + + + + + > + > + + )> + + + > + +>>> + + + > + + > + > + > + > + > + > .ICNT> + ) + (T + ,IT> + + + )>)>> + + + > .OCNT> + ) + (T + ,IT> + + )>)>>)> + )> + .OCNT) + ( + + >) + (T >)> + .OCNT) + ( + > + + > + .ICNT) + (T 1)>> + <1? .ICNT>> >)> + + >> + >) + (<0? .NUM> + + ; ,P-SONUMS>> + > + >) + ( + ) + (T + + >)>) + (T + + > + )> + > + > .NUM> + + + > + )> + + > + )> + + > + ) + (T )> + ) + ( + )> + ) + (T + >) + (T >)> + > + > + +;"multiple exceptions" + + 0> ,W?ALL>> + > + + > + ) + ( + .I + 0> ,W?ALL> + >> + ) + ( + + ,WINNER ,HERE .V>> + .I>> + ,SURFACEBIT>>> + + >>>> + ) + (ELSE + + ) + (T )> + )>)> +;"end multiple exceptions" + + + + > + )>)>>)> + > + ; ,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) + >> .V) + (T + + + >> .V) + ( ,P?ACTION> + ,M-BEG>> .V) + (>> .V) + (>>> .V) + (> + + ,P?CONTFCN> + + ,P?CONTFCN>>>> + .V) + (> + >>> + .V) + ( + >> .V)>)> + + + + .V> + + <>) + (T + + " CR>) + (T ">)>)> + + ) + (T )>> + + + ) + ( + ) + (T )>)> + .RES)>> + +)) + )> + > +>)> +\ +;"former CLOCK stuff" + + + +> + + + + + + + + + + + + + +> ,C-TICK .TICK> + .CINT> + +) E C INT) + > + > + + > + >> + > + + ) + ( .RTN> )> + >>> + +> + + + +)) + > )> + >> + > + + > + ) + (>> + > + ) + (T + > + > + >> + )>)>)> + >>> \ No newline at end of file diff --git a/parser.zabstr b/parser.zabstr new file mode 100644 index 0000000..7fd5ac8 --- /dev/null +++ b/parser.zabstr @@ -0,0 +1,151 @@ + + +> +> +> + + + +> + + + + + + + + +> +> +> +> +> +> + <> <> <>>> + + + + +> +> +> +> +> +> +> + + + + + + + + +> +> +> +> + + + + + + + + + + + +> +> + +> +> +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> +> +> +> +> +> +> +> +> + + + + + +> + + + + + + + + + +> +> +> + + + + + + + + + + + + + +> + + + + \ No newline at end of file diff --git a/parser.zap b/parser.zap new file mode 100644 index 0000000..9c55f98 --- /dev/null +++ b/parser.zap @@ -0,0 +1,1600 @@ + + + .FUNCT PARSER,PTR=P-LEXSTART,WRD,VAL=0,VERB=0,OF-FLAG=0,OWINNER,OMERGED,LEN,DIR=0,NW=0,LW=0,CNT=-1,?TMP2,?TMP1 +?PRG1: IGRTR? 'CNT,P-ITBLLEN /?REP2 + ZERO? P-OFLAG \?CND6 + GET P-ITBL,CNT + PUT P-OTBL,CNT,STACK +?CND6: PUT P-ITBL,CNT,0 + JUMP ?PRG1 +?REP2: SET 'OWINNER,WINNER + SET 'OMERGED,P-MERGED + SET 'P-ADVERB,FALSE-VALUE + SET 'P-MERGED,FALSE-VALUE + SET 'P-END-ON-PREP,FALSE-VALUE + PUT P-PRSO,P-MATCHLEN,0 + PUT P-PRSI,P-MATCHLEN,0 + PUT P-BUTS,P-MATCHLEN,0 + ZERO? QUOTE-FLAG \?CND8 + EQUAL? WINNER,ADVENTURER /?CND8 + SET 'WINNER,ADVENTURER + CALL META-LOC,ADVENTURER >HERE + CALL LIT?,HERE >LIT +?CND8: ZERO? RESERVE-PTR /?CCL14 + SET 'PTR,RESERVE-PTR + CALL STUFF,RESERVE-LEXV,P-LEXV + GRTR? VERBOSITY,0 \?CND15 + EQUAL? ADVENTURER,WINNER \?CND15 + CRLF +?CND15: SET 'RESERVE-PTR,FALSE-VALUE + SET 'P-CONT,FALSE-VALUE + JUMP ?CND12 +?CCL14: ZERO? P-CONT /?CCL20 + SET 'PTR,P-CONT + GRTR? VERBOSITY,0 \?CND21 + EQUAL? ADVENTURER,WINNER \?CND21 + EQUAL? PRSA,V?SAY /?CND21 + CRLF +?CND21: SET 'P-CONT,FALSE-VALUE + JUMP ?CND12 +?CCL20: SET 'WINNER,ADVENTURER + SET 'QUOTE-FLAG,FALSE-VALUE + LOC WINNER + FSET? STACK,VEHBIT /?CND26 + LOC WINNER >HERE +?CND26: CALL LIT?,HERE >LIT + GRTR? VERBOSITY,0 \?PRG30 + CRLF +?PRG30: PRINTC 62 + READ P-INBUF,P-LEXV +?CND12: GETB P-LEXV,P-LEXWORDS >P-LEN + ZERO? P-LEN \?CND32 + PRINTI "I beg your pardon?" + CRLF + RFALSE +?CND32: GET P-LEXV,PTR >WRD + EQUAL? WRD,W?OOPS \?CCL38 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?PERIOD,W?COMMA \?CND39 + ADD PTR,P-LEXELEN >PTR + DEC 'P-LEN +?CND39: GRTR? P-LEN,1 /?CCL43 + PRINTI "I can't help your clumsiness." + CRLF + RFALSE +?CCL43: GET OOPS-TABLE,O-PTR + ZERO? STACK /?CCL47 + GRTR? P-LEN,2 \?CCL50 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?QUOTE \?CCL50 + PRINTI "Sorry, you can't correct mistakes in quoted text." + CRLF + RFALSE +?CCL50: GRTR? P-LEN,2 \?CND48 + PRINTI "Warning: only the first word after OOPS is used." + CRLF +?CND48: GET OOPS-TABLE,O-PTR >?TMP1 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + PUT AGAIN-LEXV,?TMP1,STACK + SET 'WINNER,OWINNER + MUL PTR,P-LEXELEN + ADD STACK,6 + GETB P-LEXV,STACK >?TMP2 + MUL PTR,P-LEXELEN + ADD STACK,7 + GETB P-LEXV,STACK >?TMP1 + GET OOPS-TABLE,O-PTR + MUL STACK,P-LEXELEN + ADD STACK,3 + CALL INBUF-ADD,?TMP2,?TMP1,STACK + CALL STUFF,AGAIN-LEXV,P-LEXV + GETB P-LEXV,P-LEXWORDS >P-LEN + GET OOPS-TABLE,O-START >PTR + CALL INBUF-STUFF,OOPS-INBUF,P-INBUF + JUMP ?CND36 +?CCL47: PUT OOPS-TABLE,O-END,FALSE-VALUE + PRINTI "There was no word to replace!" + CRLF + RFALSE +?CCL38: EQUAL? WRD,W?AGAIN,W?G /?CND60 + SET 'P-NUMBER,0 +?CND60: PUT OOPS-TABLE,O-END,FALSE-VALUE +?CND36: GET P-LEXV,PTR + EQUAL? STACK,W?AGAIN,W?G \?CCL64 + GETB OOPS-INBUF,1 + ZERO? STACK \?CCL67 + PRINTI "Beg pardon?" + CRLF + RFALSE +?CCL67: ZERO? P-OFLAG /?CCL71 + PRINTI "It's difficult to repeat fragments." + CRLF + RFALSE +?CCL71: ZERO? P-WON \?CCL75 + PRINTI "That would just repeat a mistake." + CRLF + RFALSE +?CCL75: GRTR? P-LEN,1 \?CCL79 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?PERIOD,W?COMMA,W?THEN /?CTR81 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?AND \?PRG85 +?CTR81: ADD PTR,4 >PTR + GETB P-LEXV,P-LEXWORDS + SUB STACK,2 + PUTB P-LEXV,P-LEXWORDS,STACK + JUMP ?CND65 +?PRG85: PRINTI "I couldn't understand that sentence." + CRLF + RFALSE +?CCL79: ADD PTR,P-LEXELEN >PTR + GETB P-LEXV,P-LEXWORDS + SUB STACK,1 + PUTB P-LEXV,P-LEXWORDS,STACK +?CND65: GETB P-LEXV,P-LEXWORDS + GRTR? STACK,0 \?CCL89 + CALL STUFF,P-LEXV,RESERVE-LEXV + SET 'RESERVE-PTR,PTR + JUMP ?CND87 +?CCL89: SET 'RESERVE-PTR,FALSE-VALUE +?CND87: SET 'WINNER,OWINNER + SET 'P-MERGED,OMERGED + CALL INBUF-STUFF,OOPS-INBUF,P-INBUF + CALL STUFF,AGAIN-LEXV,P-LEXV + SET 'CNT,-1 + SET 'DIR,AGAIN-DIR +?PRG90: IGRTR? 'CNT,P-ITBLLEN /?CND62 + GET P-OTBL,CNT + PUT P-ITBL,CNT,STACK + JUMP ?PRG90 +?CCL64: CALL STUFF,P-LEXV,AGAIN-LEXV + CALL INBUF-STUFF,P-INBUF,OOPS-INBUF + PUT OOPS-TABLE,O-START,PTR + MUL 4,P-LEN + PUT OOPS-TABLE,O-LENGTH,STACK + GETB P-LEXV,P-LEXWORDS + MUL P-LEXELEN,STACK + ADD PTR,STACK + MUL 2,STACK >LEN + SUB LEN,1 + GETB P-LEXV,STACK >?TMP1 + SUB LEN,2 + GETB P-LEXV,STACK + ADD ?TMP1,STACK + PUT OOPS-TABLE,O-END,STACK + SET 'RESERVE-PTR,FALSE-VALUE + SET 'LEN,P-LEN + SET 'P-DIR,FALSE-VALUE + SET 'P-NCN,0 + SET 'P-GETFLAGS,0 +?PRG95: DLESS? 'P-LEN,0 \?CCL99 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND62 +?CCL99: GET P-LEXV,PTR >WRD + ZERO? WRD \?CTR100 + CALL NUMBER?,PTR >WRD + ZERO? WRD /?CCL101 +?CTR100: ZERO? P-LEN \?CCL106 + SET 'NW,0 + JUMP ?CND104 +?CCL106: ADD PTR,P-LEXELEN + GET P-LEXV,STACK >NW +?CND104: EQUAL? WRD,W?TO \?CCL109 + EQUAL? VERB,ACT?TELL \?CCL109 + SET 'WRD,W?QUOTE + JUMP ?CND107 +?CCL109: EQUAL? WRD,W?THEN \?CND107 + GRTR? P-LEN,0 \?CND107 + ZERO? VERB \?CND107 + ZERO? QUOTE-FLAG \?CND107 + EQUAL? LW,0,W?PERIOD \?CCL119 + SET 'WRD,W?THE + JUMP ?CND107 +?CCL119: PUT P-ITBL,P-VERB,ACT?TELL + PUT P-ITBL,P-VERBN,0 + SET 'WRD,W?QUOTE +?CND107: EQUAL? WRD,W?THEN,W?PERIOD,W?QUOTE \?CCL122 + EQUAL? WRD,W?QUOTE \?CND123 + ZERO? QUOTE-FLAG /?CCL127 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND123 +?CCL127: SET 'QUOTE-FLAG,TRUE-VALUE +?CND123: ZERO? P-LEN /?PEN128 + ADD PTR,P-LEXELEN >P-CONT +?PEN128: PUTB P-LEXV,P-LEXWORDS,P-LEN + JUMP ?CND62 +?CCL122: CALL WT?,WRD,16,3 >VAL + ZERO? VAL /?CCL131 + EQUAL? VERB,FALSE-VALUE,ACT?WALK \?CCL131 + EQUAL? LEN,1 /?CTR130 + EQUAL? LEN,2 \?PRD137 + EQUAL? VERB,ACT?WALK /?CTR130 +?PRD137: EQUAL? NW,W?THEN,W?PERIOD,W?QUOTE \?PRD140 + LESS? LEN,2 \?CTR130 +?PRD140: ZERO? QUOTE-FLAG /?PRD143 + EQUAL? LEN,2 \?PRD143 + EQUAL? NW,W?QUOTE /?CTR130 +?PRD143: GRTR? LEN,2 \?CCL131 + EQUAL? NW,W?COMMA,W?AND \?CCL131 +?CTR130: SET 'DIR,VAL + EQUAL? NW,W?COMMA,W?AND \?CND149 + ADD PTR,P-LEXELEN + PUT P-LEXV,STACK,W?THEN +?CND149: GRTR? LEN,2 /?CND97 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND62 +?CCL131: CALL WT?,WRD,64,1 >VAL + ZERO? VAL /?CCL154 + ZERO? VERB \?CCL154 + SET 'VERB,VAL + PUT P-ITBL,P-VERB,VAL + PUT P-ITBL,P-VERBN,P-VTBL + PUT P-VTBL,0,WRD + MUL PTR,2 + ADD STACK,2 >CNT + GETB P-LEXV,CNT + PUTB P-VTBL,2,STACK + ADD CNT,1 + GETB P-LEXV,STACK + PUTB P-VTBL,3,STACK + JUMP ?CND97 +?CCL154: CALL WT?,WRD,8,0 >VAL + ZERO? VAL \?CTR157 + EQUAL? WRD,W?ALL,W?ONE /?CTR157 + CALL WT?,WRD,32 + ZERO? STACK \?CTR157 + CALL WT?,WRD,128 + ZERO? STACK /?CCL158 +?CTR157: GRTR? P-LEN,1 \?CCL165 + EQUAL? NW,W?OF \?CCL165 + ZERO? VAL \?CCL165 + EQUAL? WRD,W?ALL,W?ONE,W?A /?CCL165 + SET 'OF-FLAG,TRUE-VALUE + JUMP ?CND97 +?CCL165: ZERO? VAL /?CCL171 + ZERO? P-LEN /?CTR170 + EQUAL? NW,W?THEN,W?PERIOD \?CCL171 +?CTR170: SET 'P-END-ON-PREP,TRUE-VALUE + LESS? P-NCN,2 \?CND97 + PUT P-ITBL,P-PREP1,VAL + PUT P-ITBL,P-PREP1N,WRD + JUMP ?CND97 +?CCL171: EQUAL? P-NCN,2 \?CCL179 + PRINTI "There were too many nouns in that sentence." + CRLF + RFALSE +?CCL179: INC 'P-NCN + SET 'P-ACT,VERB + CALL CLAUSE,PTR,VAL,WRD >PTR + ZERO? PTR /FALSE + LESS? PTR,0 \?CND97 + SET 'QUOTE-FLAG,FALSE-VALUE +?CND62: PUT OOPS-TABLE,O-PTR,FALSE-VALUE + ZERO? DIR /?CCL203 + SET 'PRSA,V?WALK + SET 'PRSO,DIR + SET 'P-OFLAG,FALSE-VALUE + SET 'P-WALK-DIR,DIR + SET 'AGAIN-DIR,DIR + RETURN AGAIN-DIR +?CCL158: EQUAL? WRD,W?OF \?CCL187 + ZERO? OF-FLAG /?CTR189 + EQUAL? NW,W?PERIOD,W?THEN \?CCL190 +?CTR189: CALL CANT-USE,PTR + RFALSE +?CCL190: SET 'OF-FLAG,FALSE-VALUE +?CND97: SET 'LW,WRD + ADD PTR,P-LEXELEN >PTR + JUMP ?PRG95 +?CCL187: CALL WT?,WRD,4 + ZERO? STACK \?CND97 + EQUAL? VERB,ACT?TELL \?CCL195 + CALL WT?,WRD,64,1 + ZERO? STACK /?CCL195 + EQUAL? WINNER,ADVENTURER \?CCL195 + PRINTI "Please consult your manual for the correct way to talk to other people or creatures." + CRLF + RFALSE +?CCL195: CALL CANT-USE,PTR + RFALSE +?CCL101: CALL UNKNOWN-WORD,PTR + RFALSE +?CCL203: ZERO? P-OFLAG /?CND204 + CALL ORPHAN-MERGE +?CND204: SET 'P-WALK-DIR,FALSE-VALUE + SET 'AGAIN-DIR,FALSE-VALUE + CALL SYNTAX-CHECK + ZERO? STACK /FALSE + CALL SNARF-OBJECTS + ZERO? STACK /FALSE + CALL MANY-CHECK + ZERO? STACK /FALSE + CALL TAKE-CHECK + ZERO? STACK \TRUE + RFALSE + + + .FUNCT STUFF,SRC,DEST,MAX=29,PTR=P-LEXSTART,CTR=1,BPTR + GETB SRC,0 + PUTB DEST,0,STACK + GETB SRC,1 + PUTB DEST,1,STACK +?PRG1: GET SRC,PTR + PUT DEST,PTR,STACK + MUL PTR,2 + ADD STACK,2 >BPTR + GETB SRC,BPTR + PUTB DEST,BPTR,STACK + MUL PTR,2 + ADD STACK,3 >BPTR + GETB SRC,BPTR + PUTB DEST,BPTR,STACK + ADD PTR,P-LEXELEN >PTR + IGRTR? 'CTR,MAX \?PRG1 + RTRUE + + + .FUNCT INBUF-STUFF,SRC,DEST,CNT + GETB SRC,0 + SUB STACK,1 >CNT +?PRG1: GETB SRC,CNT + PUTB DEST,CNT,STACK + DLESS? 'CNT,0 \?PRG1 + RTRUE + + + .FUNCT INBUF-ADD,LEN,BEG,SLOT,DBEG,CTR=0,TMP,?TMP1 + GET OOPS-TABLE,O-END >TMP + ZERO? TMP /?CCL3 + SET 'DBEG,TMP + JUMP ?CND1 +?CCL3: GET OOPS-TABLE,O-LENGTH >TMP + GETB AGAIN-LEXV,TMP >?TMP1 + ADD TMP,1 + GETB AGAIN-LEXV,STACK + ADD ?TMP1,STACK >DBEG +?CND1: ADD DBEG,LEN + PUT OOPS-TABLE,O-END,STACK +?PRG4: ADD DBEG,CTR >?TMP1 + ADD BEG,CTR + GETB P-INBUF,STACK + PUTB OOPS-INBUF,?TMP1,STACK + INC 'CTR + EQUAL? CTR,LEN \?PRG4 + PUTB AGAIN-LEXV,SLOT,DBEG + SUB SLOT,1 + PUTB AGAIN-LEXV,STACK,LEN + RTRUE + + + .FUNCT WT?,PTR,BIT,B1=5,OFFS=P-P1OFF,TYP + GETB PTR,P-PSOFF >TYP + BTST TYP,BIT \FALSE + GRTR? B1,4 /TRUE + BAND TYP,P-P1BITS >TYP + EQUAL? TYP,B1 /?CND7 + INC 'OFFS +?CND7: GETB PTR,OFFS + RSTACK + + + .FUNCT CLAUSE,PTR,VAL,WRD,OFF,NUM,ANDFLG=0,FIRST??=1,NW,LW=0,?TMP1 + SUB P-NCN,1 + MUL STACK,2 >OFF + ZERO? VAL /?CCL3 + ADD P-PREP1,OFF >NUM + PUT P-ITBL,NUM,VAL + ADD NUM,1 + PUT P-ITBL,STACK,WRD + ADD PTR,P-LEXELEN >PTR + JUMP ?CND1 +?CCL3: INC 'P-LEN +?CND1: ZERO? P-LEN \?CND4 + DEC 'P-NCN + RETURN -1 +?CND4: ADD P-NC1,OFF >NUM + MUL PTR,2 + ADD P-LEXV,STACK + PUT P-ITBL,NUM,STACK + GET P-LEXV,PTR + EQUAL? STACK,W?THE,W?A,W?AN \?PRG8 + GET P-ITBL,NUM + ADD STACK,4 + PUT P-ITBL,NUM,STACK +?PRG8: DLESS? 'P-LEN,0 \?CND10 + ADD NUM,1 >?TMP1 + MUL PTR,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + RETURN -1 +?CND10: GET P-LEXV,PTR >WRD + ZERO? WRD \?CTR13 + CALL NUMBER?,PTR >WRD + ZERO? WRD /?CCL14 +?CTR13: ZERO? P-LEN \?CCL19 + SET 'NW,0 + JUMP ?CND17 +?CCL19: ADD PTR,P-LEXELEN + GET P-LEXV,STACK >NW +?CND17: EQUAL? WRD,W?AND,W?COMMA \?CCL22 + SET 'ANDFLG,TRUE-VALUE + JUMP ?CND12 +?CCL22: EQUAL? WRD,W?ALL,W?ONE \?CCL24 + EQUAL? NW,W?OF \?CND12 + DEC 'P-LEN + ADD PTR,P-LEXELEN >PTR + JUMP ?CND12 +?CCL24: EQUAL? WRD,W?THEN,W?PERIOD /?CTR27 + CALL WT?,WRD,8 + ZERO? STACK /?CCL28 + GET P-ITBL,P-VERB + ZERO? STACK /?CCL28 + ZERO? FIRST?? \?CCL28 +?CTR27: INC 'P-LEN + ADD NUM,1 >?TMP1 + MUL PTR,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + SUB PTR,P-LEXELEN + RSTACK +?CCL28: CALL WT?,WRD,128 + ZERO? STACK /?CCL35 + GRTR? P-LEN,0 \?CCL38 + EQUAL? NW,W?OF \?CCL38 + EQUAL? WRD,W?ALL,W?ONE \?CND12 +?CCL38: CALL WT?,WRD,32,2 + ZERO? STACK /?CCL42 + ZERO? NW /?CCL42 + CALL WT?,NW,128 + ZERO? STACK \?CND12 +?CCL42: ZERO? ANDFLG \?CCL47 + EQUAL? NW,W?BUT,W?EXCEPT /?CCL47 + EQUAL? NW,W?AND,W?COMMA /?CCL47 + ADD NUM,1 >?TMP1 + ADD PTR,2 + MUL STACK,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + RETURN PTR +?CCL47: SET 'ANDFLG,FALSE-VALUE + JUMP ?CND12 +?CCL35: ZERO? P-MERGED \?PRD53 + ZERO? P-OFLAG \?PRD53 + GET P-ITBL,P-VERB + ZERO? STACK /?CCL51 +?PRD53: CALL WT?,WRD,32 + ZERO? STACK \?CND12 + CALL WT?,WRD,4 + ZERO? STACK \?CND12 +?CCL51: ZERO? ANDFLG /?CCL60 + CALL WT?,WRD,16 + ZERO? STACK \?CTR59 + CALL WT?,WRD,64 + ZERO? STACK /?CCL60 +?CTR59: SUB PTR,4 >PTR + ADD PTR,2 + PUT P-LEXV,STACK,W?THEN + ADD P-LEN,2 >P-LEN +?CND12: SET 'LW,WRD + SET 'FIRST??,FALSE-VALUE + ADD PTR,P-LEXELEN >PTR + JUMP ?PRG8 +?CCL60: CALL WT?,WRD,8 + ZERO? STACK \?CND12 + CALL CANT-USE,PTR + RFALSE +?CCL14: CALL UNKNOWN-WORD,PTR + RFALSE + + + .FUNCT NUMBER?,PTR,CNT,BPTR,CHR,SUM=0,TIM=0,?TMP1 + MUL PTR,2 + ADD P-LEXV,STACK + GETB STACK,2 >CNT + MUL PTR,2 + ADD P-LEXV,STACK + GETB STACK,3 >BPTR +?PRG1: DLESS? 'CNT,0 /?REP2 + GETB P-INBUF,BPTR >CHR + EQUAL? CHR,58 \?CCL8 + SET 'TIM,SUM + SET 'SUM,0 + JUMP ?CND6 +?CCL8: GRTR? SUM,10000 /FALSE + LESS? CHR,58 \FALSE + GRTR? CHR,47 \FALSE + MUL SUM,10 >?TMP1 + SUB CHR,48 + ADD ?TMP1,STACK >SUM +?CND6: INC 'BPTR + JUMP ?PRG1 +?REP2: PUT P-LEXV,PTR,W?INTNUM + GRTR? SUM,1000 /FALSE + ZERO? TIM /?CND15 + LESS? TIM,8 \?CCL21 + ADD TIM,12 >TIM + JUMP ?CND19 +?CCL21: GRTR? TIM,23 /FALSE +?CND19: MUL TIM,60 + ADD SUM,STACK >SUM +?CND15: SET 'P-NUMBER,SUM + RETURN W?INTNUM + + + .FUNCT ORPHAN-MERGE,CNT=-1,TEMP,VERB,BEG,END,ADJ=0,WRD,?TMP1 + SET 'P-OFLAG,FALSE-VALUE + GET P-ITBL,P-VERBN + GET STACK,0 >WRD + CALL WT?,WRD,64,1 >?TMP1 + GET P-OTBL,P-VERB + EQUAL? ?TMP1,STACK /?CTR2 + CALL WT?,WRD,32 + ZERO? STACK /?CCL3 +?CTR2: SET 'ADJ,TRUE-VALUE + JUMP ?CND1 +?CCL3: CALL WT?,WRD,128,0 + ZERO? STACK /?CND1 + ZERO? P-NCN \?CND1 + PUT P-ITBL,P-VERB,0 + PUT P-ITBL,P-VERBN,0 + ADD P-LEXV,2 + PUT P-ITBL,P-NC1,STACK + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK + SET 'P-NCN,1 +?CND1: GET P-ITBL,P-VERB >VERB + ZERO? VERB /?CCL11 + ZERO? ADJ \?CCL11 + GET P-OTBL,P-VERB + EQUAL? VERB,STACK \FALSE +?CCL11: EQUAL? P-NCN,2 /FALSE + GET P-OTBL,P-NC1 + EQUAL? STACK,1 \?CCL18 + GET P-ITBL,P-PREP1 >TEMP + GET P-OTBL,P-PREP1 + EQUAL? TEMP,STACK /?CTR20 + ZERO? TEMP \FALSE +?CTR20: ZERO? ADJ /?CCL26 + ADD P-LEXV,2 + PUT P-OTBL,P-NC1,STACK + GET P-ITBL,P-NC1L + ZERO? STACK \?CND27 + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK +?CND27: ZERO? P-NCN \?CND24 + SET 'P-NCN,1 + JUMP ?CND24 +?CCL26: GET P-ITBL,P-NC1 + PUT P-OTBL,P-NC1,STACK +?CND24: GET P-ITBL,P-NC1L + PUT P-OTBL,P-NC1L,STACK + JUMP ?CND9 +?CCL18: GET P-OTBL,P-NC2 + EQUAL? STACK,1 \?CCL32 + GET P-ITBL,P-PREP1 >TEMP + GET P-OTBL,P-PREP2 + EQUAL? TEMP,STACK /?CTR34 + ZERO? TEMP \FALSE +?CTR34: ZERO? ADJ /?CND38 + ADD P-LEXV,2 + PUT P-ITBL,P-NC1,STACK + GET P-ITBL,P-NC1L + ZERO? STACK \?CND38 + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK +?CND38: GET P-ITBL,P-NC1 + PUT P-OTBL,P-NC2,STACK + GET P-ITBL,P-NC1L + PUT P-OTBL,P-NC2L,STACK + SET 'P-NCN,2 + JUMP ?CND9 +?CCL32: ZERO? P-ACLAUSE /?CND9 + EQUAL? P-NCN,1 /?CCL45 + ZERO? ADJ \?CCL45 + SET 'P-ACLAUSE,FALSE-VALUE + RFALSE +?CCL45: GET P-ITBL,P-NC1 >BEG + ZERO? ADJ /?CND48 + ADD P-LEXV,2 >BEG + SET 'ADJ,FALSE-VALUE +?CND48: GET P-ITBL,P-NC1L >END +?PRG50: GET BEG,0 >WRD + EQUAL? BEG,END \?CCL54 + ZERO? ADJ /?CCL57 + CALL ACLAUSE-WIN,ADJ + JUMP ?CND9 +?CCL57: SET 'P-ACLAUSE,FALSE-VALUE + RFALSE +?CCL54: ZERO? ADJ \?CCL59 + GETB WRD,P-PSOFF + BTST STACK,32 /?CTR58 + EQUAL? WRD,W?ALL,W?ONE \?CCL59 +?CTR58: SET 'ADJ,WRD +?CND52: ADD BEG,P-WORDLEN >BEG + ZERO? END \?PRG50 + SET 'END,BEG + SET 'P-NCN,1 + SUB BEG,4 + PUT P-ITBL,P-NC1,STACK + PUT P-ITBL,P-NC1L,BEG + JUMP ?PRG50 +?CCL59: EQUAL? WRD,W?ONE \?CCL65 + CALL ACLAUSE-WIN,ADJ + JUMP ?CND9 +?CCL65: GETB WRD,P-PSOFF + BTST STACK,128 \?CND52 + EQUAL? WRD,P-ANAM \?CCL69 + CALL ACLAUSE-WIN,ADJ + JUMP ?CND9 +?CCL69: CALL NCLAUSE-WIN +?CND9: GET P-OVTBL,0 + PUT P-VTBL,0,STACK + GETB P-OVTBL,2 + PUTB P-VTBL,2,STACK + GETB P-OVTBL,3 + PUTB P-VTBL,3,STACK + PUT P-OTBL,P-VERBN,P-VTBL + PUTB P-VTBL,2,0 +?PRG72: IGRTR? 'CNT,P-ITBLLEN \?CCL76 + SET 'P-MERGED,TRUE-VALUE + RTRUE +?CCL76: GET P-OTBL,CNT + PUT P-ITBL,CNT,STACK + JUMP ?PRG72 + + + .FUNCT ACLAUSE-WIN,ADJ + GET P-OTBL,P-VERB + PUT P-ITBL,P-VERB,STACK + PUT P-CCTBL,CC-SBPTR,P-ACLAUSE + ADD P-ACLAUSE,1 + PUT P-CCTBL,CC-SEPTR,STACK + PUT P-CCTBL,CC-DBPTR,P-ACLAUSE + ADD P-ACLAUSE,1 + PUT P-CCTBL,CC-DEPTR,STACK + CALL CLAUSE-COPY,P-OTBL,P-OTBL,ADJ + GET P-OTBL,P-NC2 + ZERO? STACK /?PEN1 + SET 'P-NCN,2 +?PEN1: SET 'P-ACLAUSE,FALSE-VALUE + RTRUE + + + .FUNCT NCLAUSE-WIN + PUT P-CCTBL,CC-SBPTR,P-NC1 + PUT P-CCTBL,CC-SEPTR,P-NC1L + PUT P-CCTBL,CC-DBPTR,P-ACLAUSE + ADD P-ACLAUSE,1 + PUT P-CCTBL,CC-DEPTR,STACK + CALL CLAUSE-COPY,P-ITBL,P-OTBL + GET P-OTBL,P-NC2 + ZERO? STACK /?PEN1 + SET 'P-NCN,2 +?PEN1: SET 'P-ACLAUSE,FALSE-VALUE + RTRUE + + + .FUNCT WORD-PRINT,CNT,BUF +?PRG1: DLESS? 'CNT,0 /TRUE + GETB P-INBUF,BUF + PRINTC STACK + INC 'BUF + JUMP ?PRG1 + + + .FUNCT UNKNOWN-WORD,PTR,BUF,?TMP1 + PUT OOPS-TABLE,O-PTR,PTR + EQUAL? PRSA,V?SAY \?PRG5 + PRINTI "Nothing happens." + CRLF + RFALSE +?PRG5: PRINTI "I don't know the word """ + MUL PTR,2 >BUF + ADD P-LEXV,BUF + GETB STACK,2 >?TMP1 + ADD P-LEXV,BUF + GETB STACK,3 + CALL WORD-PRINT,?TMP1,STACK + PRINTI """." + CRLF + SET 'QUOTE-FLAG,FALSE-VALUE + SET 'P-OFLAG,FALSE-VALUE + RETURN P-OFLAG + + + .FUNCT CANT-USE,PTR,BUF,?TMP1 + EQUAL? PRSA,V?SAY \?PRG5 + PRINTI "Nothing happens." + CRLF + RFALSE +?PRG5: PRINTI "You used the word """ + MUL PTR,2 >BUF + ADD P-LEXV,BUF + GETB STACK,2 >?TMP1 + ADD P-LEXV,BUF + GETB STACK,3 + CALL WORD-PRINT,?TMP1,STACK + PRINTI """ in a way that I don't understand." + CRLF + SET 'QUOTE-FLAG,FALSE-VALUE + SET 'P-OFLAG,FALSE-VALUE + RETURN P-OFLAG + + + .FUNCT GET-PREP,SYN,WHICH,PREP + EQUAL? WHICH,1 \?CCL3 + GETB SYN,P-SPREP1 >PREP + JUMP ?CND1 +?CCL3: GETB SYN,P-SPREP2 >PREP +?CND1: BAND PREP,63 >PREP + ZERO? PREP /FALSE + ADD PREP,192 + RSTACK + + + .FUNCT SYNTAX-CHECK,SYN,LEN,NUM,OBJ,DRIVE1=0,DRIVE2=0,PREP,VERB,TMP,?TMP2,?TMP1 + GET P-ITBL,P-VERB >VERB + ZERO? VERB \?CND1 + PRINTI "There was no verb in that sentence!" + CRLF + RFALSE +?CND1: SUB 255,VERB + GET VERBS,STACK >SYN + GETB SYN,0 >LEN + INC 'SYN +?PRG5: GETB SYN,P-SPREP1 + DIV STACK,64 >NUM + GRTR? P-NCN,NUM /?CND7 + LESS? NUM,1 /?CCL11 + ZERO? P-NCN \?CCL11 + GET P-ITBL,P-PREP1 >PREP + ZERO? PREP /?CTR10 + CALL GET-PREP,SYN,1 + EQUAL? PREP,STACK \?CCL11 +?CTR10: SET 'DRIVE1,SYN + JUMP ?CND7 +?CCL11: CALL GET-PREP,SYN,1 >?TMP1 + GET P-ITBL,P-PREP1 + EQUAL? ?TMP1,STACK \?CND7 + EQUAL? NUM,2 \?CCL20 + EQUAL? P-NCN,1 \?CCL20 + SET 'DRIVE2,SYN +?CND7: DLESS? 'LEN,1 \?CCL28 + ZERO? DRIVE1 \?REP6 + ZERO? DRIVE2 \?REP6 + PRINTI "That sentence isn't one I recognize." + CRLF + RFALSE +?CCL20: GRTR? NUM,1 \?CCL23 + CALL GET-PREP,SYN,2 >?TMP1 + GET P-ITBL,P-PREP2 + EQUAL? ?TMP1,STACK \?CND7 +?CCL23: CALL SYNTAX-FOUND,SYN + RTRUE +?CCL28: ZERO? NUM \?CCL38 + ADD SYN,P-SYNLEN-0 >SYN + JUMP ?PRG5 +?CCL38: EQUAL? NUM,1 \?CCL40 + ADD SYN,P-SYNLEN-1 >SYN + JUMP ?PRG5 +?CCL40: ADD SYN,P-SYNLEN-2 >SYN + JUMP ?PRG5 +?REP6: ZERO? DRIVE1 /?CCL43 + GETB DRIVE1,P-SFWIM1 >?TMP2 + GETB DRIVE1,P-SLOC1 >?TMP1 + CALL GET-PREP,DRIVE1,1 + CALL GWIM,?TMP2,?TMP1,STACK >OBJ + ZERO? OBJ /?CCL43 + PUT P-PRSO,P-MATCHLEN,1 + PUT P-PRSO,1,OBJ + CALL SYNTAX-FOUND,DRIVE1 + RSTACK +?CCL43: ZERO? DRIVE2 /?CCL47 + GETB DRIVE2,P-SFWIM2 >?TMP2 + GETB DRIVE2,P-SLOC2 >?TMP1 + CALL GET-PREP,DRIVE2,2 + CALL GWIM,?TMP2,?TMP1,STACK >OBJ + ZERO? OBJ /?CCL47 + PUT P-PRSI,P-MATCHLEN,1 + PUT P-PRSI,1,OBJ + CALL SYNTAX-FOUND,DRIVE2 + RSTACK +?CCL47: EQUAL? VERB,ACT?FIND \?CCL51 + PRINTI "That question can't be answered." + CRLF + RFALSE +?CCL51: EQUAL? WINNER,ADVENTURER /?CCL55 + CALL CANT-ORPHAN + RSTACK +?CCL55: CALL ORPHAN,DRIVE1,DRIVE2 + PRINTI "What do you want to " + GET P-OTBL,P-VERBN >TMP + ZERO? TMP \?CCL60 + PRINTI "tell" + JUMP ?CND58 +?CCL60: GETB P-VTBL,2 + ZERO? STACK \?CCL64 + GET TMP,0 + PRINTB STACK + JUMP ?CND58 +?CCL64: GETB TMP,2 >?TMP1 + GETB TMP,3 + CALL WORD-PRINT,?TMP1,STACK + PUTB P-VTBL,2,0 +?CND58: ZERO? DRIVE2 /?CND65 + PRINTC 32 + CALL THING-PRINT,TRUE-VALUE,TRUE-VALUE +?CND65: SET 'P-OFLAG,TRUE-VALUE + ZERO? DRIVE1 /?CCL71 + CALL GET-PREP,DRIVE1,1 + JUMP ?CND69 +?CCL71: CALL GET-PREP,DRIVE2,2 +?CND69: CALL PREP-PRINT,STACK + PRINTC 63 + CRLF + RFALSE + + + .FUNCT CANT-ORPHAN + PRINTI """I don't understand! What are you referring to?""" + CRLF + RFALSE + + + .FUNCT ORPHAN,D1,D2,CNT=-1 + ZERO? P-MERGED \?CND1 + PUT P-OCLAUSE,P-MATCHLEN,0 +?CND1: GET P-VTBL,0 + PUT P-OVTBL,0,STACK + GETB P-VTBL,2 + PUTB P-OVTBL,2,STACK + GETB P-VTBL,3 + PUTB P-OVTBL,3,STACK +?PRG3: IGRTR? 'CNT,P-ITBLLEN /?REP4 + GET P-ITBL,CNT + PUT P-OTBL,CNT,STACK + JUMP ?PRG3 +?REP4: EQUAL? P-NCN,2 \?CND8 + PUT P-CCTBL,CC-SBPTR,P-NC2 + PUT P-CCTBL,CC-SEPTR,P-NC2L + PUT P-CCTBL,CC-DBPTR,P-NC2 + PUT P-CCTBL,CC-DEPTR,P-NC2L + CALL CLAUSE-COPY,P-ITBL,P-OTBL +?CND8: LESS? P-NCN,1 /?CND10 + PUT P-CCTBL,CC-SBPTR,P-NC1 + PUT P-CCTBL,CC-SEPTR,P-NC1L + PUT P-CCTBL,CC-DBPTR,P-NC1 + PUT P-CCTBL,CC-DEPTR,P-NC1L + CALL CLAUSE-COPY,P-ITBL,P-OTBL +?CND10: ZERO? D1 /?CCL14 + CALL GET-PREP,D1,1 + PUT P-OTBL,P-PREP1,STACK + PUT P-OTBL,P-NC1,1 + RTRUE +?CCL14: ZERO? D2 /FALSE + CALL GET-PREP,D2,2 + PUT P-OTBL,P-PREP2,STACK + PUT P-OTBL,P-NC2,1 + RTRUE + + + .FUNCT THING-PRINT,PRSO?,THE?=0,BEG,END + ZERO? PRSO? /?CCL3 + GET P-ITBL,P-NC1 >BEG + GET P-ITBL,P-NC1L >END + JUMP ?CND1 +?CCL3: GET P-ITBL,P-NC2 >BEG + GET P-ITBL,P-NC2L >END +?CND1: CALL BUFFER-PRINT,BEG,END,THE? + RSTACK + + + .FUNCT BUFFER-PRINT,BEG,END,CP,NOSP=1,WRD,FIRST??=1,PN=0,Q?=0,?TMP1 +?PRG1: EQUAL? BEG,END /TRUE + GET BEG,0 >WRD + EQUAL? WRD,W?COMMA \?CCL8 + PRINTI ", " + JUMP ?CND6 +?CCL8: ZERO? NOSP /?PRG13 + SET 'NOSP,FALSE-VALUE + JUMP ?CND6 +?PRG13: PRINTC 32 +?CND6: EQUAL? WRD,W?PERIOD,W?COMMA \?CCL17 + SET 'NOSP,TRUE-VALUE + JUMP ?CND3 +?CCL17: EQUAL? WRD,W?ME \?CCL19 + PRINTD ME + SET 'PN,TRUE-VALUE + JUMP ?CND3 +?CCL19: EQUAL? WRD,W?INTNUM \?CCL21 + PRINTN P-NUMBER + SET 'PN,TRUE-VALUE + JUMP ?CND3 +?CCL21: ZERO? FIRST?? /?CND22 + ZERO? PN \?CND22 + ZERO? CP /?CND22 + PRINTI "the " +?CND22: ZERO? P-OFLAG \?CTR30 + ZERO? P-MERGED /?CCL31 +?CTR30: PRINTB WRD + JUMP ?CND29 +?CCL31: EQUAL? WRD,W?IT \?CCL35 + CALL ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK /?CCL35 + PRINTD P-IT-OBJECT + JUMP ?CND29 +?CCL35: GETB BEG,2 >?TMP1 + GETB BEG,3 + CALL WORD-PRINT,?TMP1,STACK +?CND29: SET 'FIRST??,FALSE-VALUE +?CND3: ADD BEG,P-WORDLEN >BEG + JUMP ?PRG1 + + + .FUNCT PREP-PRINT,PREP,WRD + ZERO? PREP /FALSE + PRINTC 32 + CALL PREP-FIND,PREP >WRD + PRINTB WRD + RTRUE + + + .FUNCT CLAUSE-COPY,SRC,DEST,INSRT=0,BEG,END,?TMP1 + GET P-CCTBL,CC-SBPTR + GET SRC,STACK >BEG + GET P-CCTBL,CC-SEPTR + GET SRC,STACK >END + GET P-CCTBL,CC-DBPTR >?TMP1 + GET P-OCLAUSE,P-MATCHLEN + MUL STACK,P-LEXELEN + ADD STACK,2 + ADD P-OCLAUSE,STACK + PUT DEST,?TMP1,STACK +?PRG1: EQUAL? BEG,END \?CCL5 + GET P-CCTBL,CC-DEPTR >?TMP1 + GET P-OCLAUSE,P-MATCHLEN + MUL STACK,P-LEXELEN + ADD STACK,2 + ADD P-OCLAUSE,STACK + PUT DEST,?TMP1,STACK + RTRUE +?CCL5: ZERO? INSRT /?CND6 + GET BEG,0 + EQUAL? P-ANAM,STACK \?CND6 + CALL CLAUSE-ADD,INSRT +?CND6: GET BEG,0 + CALL CLAUSE-ADD,STACK + ADD BEG,P-WORDLEN >BEG + JUMP ?PRG1 + + + .FUNCT CLAUSE-ADD,WRD,PTR + GET P-OCLAUSE,P-MATCHLEN + ADD STACK,2 >PTR + SUB PTR,1 + PUT P-OCLAUSE,STACK,WRD + PUT P-OCLAUSE,PTR,0 + PUT P-OCLAUSE,P-MATCHLEN,PTR + RTRUE + + + .FUNCT PREP-FIND,PREP,CNT=0,SIZE + GET PREPOSITIONS,0 + MUL STACK,2 >SIZE +?PRG1: IGRTR? 'CNT,SIZE /FALSE + GET PREPOSITIONS,CNT + EQUAL? STACK,PREP \?PRG1 + SUB CNT,1 + GET PREPOSITIONS,STACK + RSTACK + + + .FUNCT SYNTAX-FOUND,SYN + SET 'P-SYNTAX,SYN + GETB SYN,P-SACTION >PRSA + RETURN PRSA + + + .FUNCT GWIM,GBIT,LBIT,PREP,OBJ + EQUAL? GBIT,RLANDBIT \?CND1 + RETURN ROOMS +?CND1: SET 'P-GWIMBIT,GBIT + SET 'P-SLOCBITS,LBIT + PUT P-MERGE,P-MATCHLEN,0 + CALL GET-OBJECT,P-MERGE,FALSE-VALUE + ZERO? STACK /?CCL5 + SET 'P-GWIMBIT,0 + GET P-MERGE,P-MATCHLEN + EQUAL? STACK,1 \FALSE + GET P-MERGE,1 >OBJ + PRINTC 40 + ZERO? PREP /?PRG31 + ZERO? P-END-ON-PREP \?PRG31 + CALL PREP-FIND,PREP >PREP + PRINTB PREP + EQUAL? PREP,W?OUT \?PRG20 + PRINTI " of" +?PRG20: PRINTC 32 + EQUAL? OBJ,HANDS \?PRG27 + PRINTI "your hands" + JUMP ?PRG29 +?PRG27: PRINTI "the " + PRINTD OBJ +?PRG29: PRINTC 41 + CRLF + RETURN OBJ +?PRG31: PRINTD OBJ + PRINTC 41 + CRLF + RETURN OBJ +?CCL5: SET 'P-GWIMBIT,0 + RFALSE + + + .FUNCT SNARF-OBJECTS,OPTR,IPTR,L + PUT P-BUTS,P-MATCHLEN,0 + GET P-ITBL,P-NC2 >IPTR + ZERO? IPTR /?CND1 + GETB P-SYNTAX,P-SLOC2 >P-SLOCBITS + GET P-ITBL,P-NC2L + CALL SNARFEM,IPTR,STACK,P-PRSI + ZERO? STACK /FALSE +?CND1: GET P-ITBL,P-NC1 >OPTR + ZERO? OPTR /?CND5 + GETB P-SYNTAX,P-SLOC1 >P-SLOCBITS + GET P-ITBL,P-NC1L + CALL SNARFEM,OPTR,STACK,P-PRSO + ZERO? STACK /FALSE +?CND5: GET P-BUTS,P-MATCHLEN + ZERO? STACK /TRUE + GET P-PRSO,P-MATCHLEN >L + ZERO? OPTR /?CND11 + CALL BUT-MERGE,P-PRSO >P-PRSO +?CND11: ZERO? IPTR /TRUE + ZERO? OPTR /?CCL14 + GET P-PRSO,P-MATCHLEN + EQUAL? L,STACK \TRUE +?CCL14: CALL BUT-MERGE,P-PRSI >P-PRSI + RTRUE + + + .FUNCT BUT-MERGE,TBL,LEN,BUTLEN,CNT=1,MATCHES=0,OBJ,NTBL + GET TBL,P-MATCHLEN >LEN + PUT P-MERGE,P-MATCHLEN,0 +?PRG1: DLESS? 'LEN,0 /?REP2 + GET TBL,CNT >OBJ + CALL ZMEMQ,OBJ,P-BUTS + ZERO? STACK \?CND3 + ADD MATCHES,1 + PUT P-MERGE,STACK,OBJ + INC 'MATCHES +?CND3: INC 'CNT + JUMP ?PRG1 +?REP2: PUT P-MERGE,P-MATCHLEN,MATCHES + SET 'NTBL,P-MERGE + SET 'P-MERGE,TBL + RETURN NTBL + + + .FUNCT SNARFEM,PTR,EPTR,TBL,BUT=0,LEN,WV,WRD,NW,WAS-ALL=0 + SET 'P-AND,FALSE-VALUE + EQUAL? P-GETFLAGS,P-ALL \?CND1 + SET 'WAS-ALL,TRUE-VALUE +?CND1: SET 'P-GETFLAGS,0 + PUT TBL,P-MATCHLEN,0 + GET PTR,0 >WRD +?PRG3: EQUAL? PTR,EPTR \?CCL7 + ZERO? BUT /?PRD10 + PUSH BUT + JUMP ?PEN8 +?PRD10: PUSH TBL +?PEN8: CALL GET-OBJECT,STACK >WV + ZERO? WAS-ALL \?CCL12 + RETURN WV +?CCL12: SET 'P-GETFLAGS,P-ALL + RETURN WV +?CCL7: ADD PTR,P-WORDLEN + EQUAL? EPTR,STACK \?CCL15 + SET 'NW,0 + JUMP ?CND13 +?CCL15: GET PTR,P-LEXELEN >NW +?CND13: EQUAL? WRD,W?ALL \?CCL18 + SET 'P-GETFLAGS,P-ALL + EQUAL? NW,W?OF \?CND5 + ADD PTR,P-WORDLEN >PTR + JUMP ?CND5 +?CCL18: EQUAL? WRD,W?BUT,W?EXCEPT \?CCL22 + ZERO? BUT /?PRD27 + PUSH BUT + JUMP ?PEN25 +?PRD27: PUSH TBL +?PEN25: CALL GET-OBJECT,STACK + ZERO? STACK /FALSE + SET 'BUT,P-BUTS + PUT BUT,P-MATCHLEN,0 + JUMP ?CND5 +?CCL22: EQUAL? WRD,W?A,W?ONE \?CCL29 + ZERO? P-ADJ \?CCL32 + SET 'P-GETFLAGS,P-ONE + EQUAL? NW,W?OF \?CND5 + ADD PTR,P-WORDLEN >PTR + JUMP ?CND5 +?CCL32: SET 'P-NAM,P-ONEOBJ + ZERO? BUT /?PRD39 + PUSH BUT + JUMP ?PEN37 +?PRD39: PUSH TBL +?PEN37: CALL GET-OBJECT,STACK + ZERO? STACK /FALSE + ZERO? NW \?CND5 + RTRUE +?CCL29: EQUAL? WRD,W?AND,W?COMMA \?CCL43 + EQUAL? NW,W?AND,W?COMMA /?CCL43 + SET 'P-AND,TRUE-VALUE + ZERO? BUT /?PRD50 + PUSH BUT + JUMP ?PEN48 +?PRD50: PUSH TBL +?PEN48: CALL GET-OBJECT,STACK + ZERO? STACK \?CND5 + RFALSE +?CCL43: CALL WT?,WRD,4 + ZERO? STACK \?CND5 + EQUAL? WRD,W?AND,W?COMMA /?CND5 + EQUAL? WRD,W?OF \?CCL54 + ZERO? P-GETFLAGS \?CND5 + SET 'P-GETFLAGS,P-INHIBIT + JUMP ?CND5 +?CCL54: CALL WT?,WRD,32,2 >WV + ZERO? WV /?CCL58 + ZERO? P-ADJ \?CCL58 + SET 'P-ADJ,WV + SET 'P-ADJN,WRD + JUMP ?CND5 +?CCL58: CALL WT?,WRD,128,0 + ZERO? STACK /?CND5 + SET 'P-NAM,WRD + SET 'P-ONEOBJ,WRD +?CND5: EQUAL? PTR,EPTR /?PRG3 + ADD PTR,P-WORDLEN >PTR + SET 'WRD,NW + JUMP ?PRG3 + + + .FUNCT GET-OBJECT,TBL,VRB=1,BITS,LEN,XBITS,TLEN,GCHECK=0,OLEN=0,OBJ + SET 'XBITS,P-SLOCBITS + GET TBL,P-MATCHLEN >TLEN + BTST P-GETFLAGS,P-INHIBIT /TRUE + ZERO? P-NAM \?CND3 + ZERO? P-ADJ /?CND3 + CALL WT?,P-ADJN,128,0 + ZERO? STACK /?CND3 + SET 'P-NAM,P-ADJN + SET 'P-ADJ,FALSE-VALUE +?CND3: ZERO? P-NAM \?CND9 + ZERO? P-ADJ \?CND9 + EQUAL? P-GETFLAGS,P-ALL /?CND9 + ZERO? P-GWIMBIT \?CND9 + ZERO? VRB /FALSE + PRINTI "There seems to be a noun missing in that sentence!" + CRLF + RFALSE +?CND9: EQUAL? P-GETFLAGS,P-ALL \?CCL20 + ZERO? P-SLOCBITS \?CND19 +?CCL20: SET 'P-SLOCBITS,-1 +?CND19: SET 'P-TABLE,TBL +?PRG23: ZERO? GCHECK /?CCL27 + CALL GLOBAL-CHECK,TBL + JUMP ?CND25 +?CCL27: ZERO? LIT /?CND28 + FCLEAR ADVENTURER,TRANSBIT + CALL DO-SL,HERE,SOG,SIR + FSET ADVENTURER,TRANSBIT +?CND28: CALL DO-SL,ADVENTURER,SH,SC +?CND25: GET TBL,P-MATCHLEN + SUB STACK,TLEN >LEN + BTST P-GETFLAGS,P-ALL /?CND30 + BTST P-GETFLAGS,P-ONE \?CCL33 + ZERO? LEN /?CCL33 + EQUAL? LEN,1 /?CND36 + RANDOM LEN + GET TBL,STACK + PUT TBL,1,STACK + PRINTI "(How about the " + GET TBL,1 + PRINTD STACK + PRINTI "?)" + CRLF +?CND36: PUT TBL,P-MATCHLEN,1 + JUMP ?CND30 +?CCL33: GRTR? LEN,1 /?CCL42 + ZERO? LEN \?CND30 + EQUAL? P-SLOCBITS,-1 /?CND30 +?CCL42: EQUAL? P-SLOCBITS,-1 \?CCL49 + SET 'P-SLOCBITS,XBITS + SET 'OLEN,LEN + GET TBL,P-MATCHLEN + SUB STACK,LEN + PUT TBL,P-MATCHLEN,STACK + JUMP ?PRG23 +?CCL49: ZERO? LEN \?CND50 + SET 'LEN,OLEN +?CND50: EQUAL? WINNER,ADVENTURER /?CCL54 + CALL CANT-ORPHAN + RFALSE +?CCL54: ZERO? VRB /?CCL56 + ZERO? P-NAM /?CCL56 + CALL WHICH-PRINT,TLEN,LEN,TBL + EQUAL? TBL,P-PRSO \?CCL61 + SET 'P-ACLAUSE,P-NC1 + JUMP ?CND59 +?CCL61: SET 'P-ACLAUSE,P-NC2 +?CND59: SET 'P-AADJ,P-ADJ + SET 'P-ANAM,P-NAM + CALL ORPHAN,FALSE-VALUE,FALSE-VALUE + SET 'P-OFLAG,TRUE-VALUE + JUMP ?CND52 +?CCL56: ZERO? VRB /?CND52 + PRINTI "There seems to be a noun missing in that sentence!" + CRLF +?CND52: SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RFALSE +?CND30: ZERO? LEN \?CCL67 + ZERO? GCHECK /?CCL67 + ZERO? VRB /?CND70 + SET 'P-SLOCBITS,XBITS + ZERO? LIT \?CTR73 + EQUAL? PRSA,V?TELL \?PRG77 +?CTR73: CALL OBJ-FOUND,NOT-HERE-OBJECT,TBL + SET 'P-XNAM,P-NAM + SET 'P-XADJ,P-ADJ + SET 'P-XADJN,P-ADJN + SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + SET 'P-ADJN,FALSE-VALUE + RTRUE +?PRG77: PRINT TOO-DARK + CRLF +?CND70: SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RFALSE +?CCL67: ZERO? LEN \?CND65 + SET 'GCHECK,TRUE-VALUE + JUMP ?PRG23 +?CND65: SET 'P-SLOCBITS,XBITS + SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RTRUE + + + .FUNCT WHICH-PRINT,TLEN,LEN,TBL,OBJ,RLEN + SET 'RLEN,LEN + PRINTI "Which " + ZERO? P-OFLAG \?CTR4 + ZERO? P-MERGED \?CTR4 + ZERO? P-AND /?CCL5 +?CTR4: ZERO? P-NAM /?CCL11 + PUSH P-NAM + JUMP ?CND9 +?CCL11: ZERO? P-ADJ /?CCL13 + PUSH P-ADJN + JUMP ?CND9 +?CCL13: PUSH W?ONE +?CND9: PRINTB STACK + JUMP ?PRG16 +?CCL5: EQUAL? TBL,P-PRSO /?PRD14 + PUSH 0 + JUMP ?PRD15 +?PRD14: PUSH 1 +?PRD15: CALL THING-PRINT,STACK +?PRG16: PRINTI " do you mean, " +?PRG18: INC 'TLEN + GET TBL,TLEN >OBJ + PRINTI "the " + PRINTD OBJ + EQUAL? LEN,2 \?CCL24 + EQUAL? RLEN,2 /?PRG29 + PRINTC 44 +?PRG29: PRINTI " or " + JUMP ?CND22 +?CCL24: GRTR? LEN,2 \?CND22 + PRINTI ", " +?CND22: DLESS? 'LEN,1 \?PRG18 + PRINTR "?" + + + .FUNCT GLOBAL-CHECK,TBL,LEN,RMG,RMGL,CNT=0,OBJ,OBITS,FOO + GET TBL,P-MATCHLEN >LEN + SET 'OBITS,P-SLOCBITS + GETPT HERE,P?GLOBAL >RMG + ZERO? RMG /?CND1 + PTSIZE RMG + SUB STACK,1 >RMGL +?PRG3: GETB RMG,CNT >OBJ + CALL THIS-IT?,OBJ,TBL + ZERO? STACK /?CND5 + CALL OBJ-FOUND,OBJ,TBL +?CND5: IGRTR? 'CNT,RMGL \?PRG3 +?CND1: GETPT HERE,P?PSEUDO >RMG + ZERO? RMG /?CND9 + PTSIZE RMG + DIV STACK,4 + SUB STACK,1 >RMGL + SET 'CNT,0 +?PRG11: MUL CNT,2 + GET RMG,STACK + EQUAL? P-NAM,STACK \?CCL15 + MUL CNT,2 + ADD STACK,1 + GET RMG,STACK + PUTP PSEUDO-OBJECT,P?ACTION,STACK + GETPT PSEUDO-OBJECT,P?ACTION + SUB STACK,5 >FOO + GET P-NAM,0 + PUT FOO,0,STACK + GET P-NAM,1 + PUT FOO,1,STACK + CALL OBJ-FOUND,PSEUDO-OBJECT,TBL + JUMP ?CND9 +?CCL15: IGRTR? 'CNT,RMGL \?PRG11 +?CND9: GET TBL,P-MATCHLEN + EQUAL? STACK,LEN \FALSE + SET 'P-SLOCBITS,-1 + SET 'P-TABLE,TBL + CALL DO-SL,GLOBAL-OBJECTS,1,1 + SET 'P-SLOCBITS,OBITS + GET TBL,P-MATCHLEN + ZERO? STACK \FALSE + EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH,V?EXAMINE \FALSE + CALL DO-SL,ROOMS,1,1 + RSTACK + + + .FUNCT DO-SL,OBJ,BIT1,BIT2,BTS + ADD BIT1,BIT2 + BTST P-SLOCBITS,STACK \?CCL3 + CALL SEARCH-LIST,OBJ,P-TABLE,P-SRCALL + RSTACK +?CCL3: BTST P-SLOCBITS,BIT1 \?CCL6 + CALL SEARCH-LIST,OBJ,P-TABLE,P-SRCTOP + RSTACK +?CCL6: BTST P-SLOCBITS,BIT2 \TRUE + CALL SEARCH-LIST,OBJ,P-TABLE,P-SRCBOT + RSTACK + + + .FUNCT SEARCH-LIST,OBJ,TBL,LVL,FLS,NOBJ + FIRST? OBJ >OBJ \FALSE +?PRG4: EQUAL? LVL,P-SRCBOT /?CND6 + GETPT OBJ,P?SYNONYM + ZERO? STACK /?CND6 + CALL THIS-IT?,OBJ,TBL + ZERO? STACK /?CND6 + CALL OBJ-FOUND,OBJ,TBL +?CND6: ZERO? LVL \?PRD14 + FSET? OBJ,SEARCHBIT /?PRD14 + FSET? OBJ,SURFACEBIT \?CND11 +?PRD14: FIRST? OBJ >NOBJ \?CND11 + FSET? OBJ,OPENBIT /?CCL12 + FSET? OBJ,TRANSBIT \?CND11 +?CCL12: FSET? OBJ,SURFACEBIT \?CCL23 + PUSH P-SRCALL + JUMP ?CND21 +?CCL23: FSET? OBJ,SEARCHBIT \?CCL25 + PUSH P-SRCALL + JUMP ?CND21 +?CCL25: PUSH P-SRCTOP +?CND21: CALL SEARCH-LIST,OBJ,TBL,STACK >FLS +?CND11: NEXT? OBJ >OBJ /?PRG4 + RTRUE + + + .FUNCT OBJ-FOUND,OBJ,TBL,PTR + GET TBL,P-MATCHLEN >PTR + ADD PTR,1 + PUT TBL,STACK,OBJ + ADD PTR,1 + PUT TBL,P-MATCHLEN,STACK + RTRUE + + + .FUNCT TAKE-CHECK,N + GETB P-SYNTAX,P-SPREP1 + DIV STACK,64 >N + GRTR? N,0 \TRUE + GETB P-SYNTAX,P-SLOC1 + CALL ITAKE-CHECK,P-PRSO,STACK + ZERO? STACK /FALSE + GRTR? N,1 \TRUE + GETB P-SYNTAX,P-SLOC2 + CALL ITAKE-CHECK,P-PRSI,STACK + RSTACK + + + .FUNCT ITAKE-CHECK,TBL,IBITS,PTR,OBJ,TAKEN + GET TBL,P-MATCHLEN >PTR + ZERO? PTR /TRUE + BTST IBITS,SHAVE /?PRG8 + BTST IBITS,STAKE \TRUE +?PRG8: DLESS? 'PTR,0 /TRUE + ADD PTR,1 + GET TBL,STACK >OBJ + EQUAL? OBJ,IT \?CND13 + CALL ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK \?CCL17 + PRINT REFERRING + RFALSE +?CCL17: SET 'OBJ,P-IT-OBJECT +?CND13: CALL HELD?,OBJ + ZERO? STACK \?PRG8 + EQUAL? OBJ,HANDS,ME /?PRG8 + SET 'PRSO,OBJ + FSET? OBJ,TRYTAKEBIT \?CCL26 + SET 'TAKEN,TRUE-VALUE + JUMP ?CND24 +?CCL26: EQUAL? WINNER,ADVENTURER /?CCL28 + SET 'TAKEN,FALSE-VALUE + JUMP ?CND24 +?CCL28: BTST IBITS,STAKE \?CCL30 + CALL ITAKE,FALSE-VALUE + EQUAL? STACK,TRUE-VALUE \?CCL30 + SET 'TAKEN,FALSE-VALUE + JUMP ?CND24 +?CCL30: SET 'TAKEN,TRUE-VALUE +?CND24: ZERO? TAKEN /?CCL35 + BTST IBITS,SHAVE \?CCL35 + EQUAL? WINNER,ADVENTURER \?CCL35 + EQUAL? OBJ,NOT-HERE-OBJECT \?PRG43 + PRINTI "You don't have that!" + CRLF + RFALSE +?PRG43: PRINTI "You don't have the " + PRINTD OBJ + PRINT PERIOD-CR + RFALSE +?CCL35: ZERO? TAKEN \?PRG8 + EQUAL? WINNER,ADVENTURER \?PRG8 + PRINTI "(Taken)" + CRLF + JUMP ?PRG8 + + + .FUNCT MANY-CHECK,LOSS=0,TMP,?TMP1 + GET P-PRSO,P-MATCHLEN + GRTR? STACK,1 \?CCL3 + GETB P-SYNTAX,P-SLOC1 + BTST STACK,SMANY /?CCL3 + SET 'LOSS,1 + JUMP ?CND1 +?CCL3: GET P-PRSI,P-MATCHLEN + GRTR? STACK,1 \?CND1 + GETB P-SYNTAX,P-SLOC2 + BTST STACK,SMANY /?CND1 + SET 'LOSS,2 +?CND1: ZERO? LOSS /TRUE + PRINTI "You can't use multiple " + EQUAL? LOSS,2 \?PRG18 + PRINTI "in" +?PRG18: PRINTI "direct objects with """ + GET P-ITBL,P-VERBN >TMP + ZERO? TMP \?CCL22 + PRINTI "tell" + JUMP ?PRG29 +?CCL22: ZERO? P-OFLAG \?CTR25 + ZERO? P-MERGED /?CCL26 +?CTR25: GET TMP,0 + PRINTB STACK + JUMP ?PRG29 +?CCL26: GETB TMP,2 >?TMP1 + GETB TMP,3 + CALL WORD-PRINT,?TMP1,STACK +?PRG29: PRINTI """." + CRLF + RFALSE + + + .FUNCT ZMEMQ,ITM,TBL,SIZE=-1,CNT=1 + ZERO? TBL /FALSE + LESS? SIZE,0 /?CCL5 + SET 'CNT,0 + JUMP ?PRG6 +?CCL5: GET TBL,0 >SIZE +?PRG6: GET TBL,CNT + EQUAL? ITM,STACK \?CCL10 + MUL CNT,2 + ADD TBL,STACK + RSTACK +?CCL10: IGRTR? 'CNT,SIZE \?PRG6 + RFALSE + + + .FUNCT ZMEMQB,ITM,TBL,SIZE,CNT=0 +?PRG1: GETB TBL,CNT + EQUAL? ITM,STACK /TRUE + IGRTR? 'CNT,SIZE \?PRG1 + RFALSE + + + .FUNCT LIT?,RM,RMBIT=1,OHERE,LIT=0 + ZERO? ALWAYS-LIT /?CND1 + EQUAL? WINNER,ADVENTURER /TRUE +?CND1: SET 'P-GWIMBIT,ONBIT + SET 'OHERE,HERE + SET 'HERE,RM + ZERO? RMBIT /?CCL7 + FSET? RM,ONBIT \?CCL7 + SET 'LIT,TRUE-VALUE + JUMP ?CND5 +?CCL7: PUT P-MERGE,P-MATCHLEN,0 + SET 'P-TABLE,P-MERGE + SET 'P-SLOCBITS,-1 + EQUAL? OHERE,RM \?CND10 + CALL DO-SL,WINNER,1,1 + EQUAL? WINNER,ADVENTURER /?CND10 + IN? ADVENTURER,RM \?CND10 + CALL DO-SL,ADVENTURER,1,1 +?CND10: CALL DO-SL,RM,1,1 + GET P-TABLE,P-MATCHLEN + GRTR? STACK,0 \?CND5 + SET 'LIT,TRUE-VALUE +?CND5: SET 'HERE,OHERE + SET 'P-GWIMBIT,0 + RETURN LIT + + + .FUNCT THIS-IT?,OBJ,TBL,SYNS,?TMP1 + FSET? OBJ,INVISIBLE /FALSE + ZERO? P-NAM /?CCL5 + GETPT OBJ,P?SYNONYM >SYNS + PTSIZE SYNS + DIV STACK,2 + SUB STACK,1 + CALL ZMEMQ,P-NAM,SYNS,STACK + ZERO? STACK /FALSE +?CCL5: ZERO? P-ADJ /?CCL9 + GETPT OBJ,P?ADJECTIVE >SYNS + ZERO? SYNS /FALSE + PTSIZE SYNS + SUB STACK,1 + CALL ZMEMQB,P-ADJ,SYNS,STACK + ZERO? STACK /FALSE +?CCL9: ZERO? P-GWIMBIT /TRUE + FSET? OBJ,P-GWIMBIT /TRUE + RFALSE + + + .FUNCT ACCESSIBLE?,OBJ,L,?TMP1 + LOC OBJ >L + FSET? OBJ,INVISIBLE /FALSE + ZERO? L /FALSE + EQUAL? L,GLOBAL-OBJECTS /TRUE + EQUAL? L,LOCAL-GLOBALS \?CCL9 + CALL GLOBAL-IN?,OBJ,HERE + ZERO? STACK \TRUE +?CCL9: CALL META-LOC,OBJ >?TMP1 + LOC WINNER + EQUAL? ?TMP1,HERE,STACK \FALSE + LOC WINNER + EQUAL? L,WINNER,HERE,STACK /TRUE + FSET? L,OPENBIT \FALSE + CALL ACCESSIBLE?,L + ZERO? STACK /FALSE + RTRUE + + + .FUNCT META-LOC,OBJ +?PRG1: ZERO? OBJ /FALSE + IN? OBJ,GLOBAL-OBJECTS \?CND3 + RETURN GLOBAL-OBJECTS +?CND3: IN? OBJ,ROOMS \?CCL9 + RETURN OBJ +?CCL9: LOC OBJ >OBJ + JUMP ?PRG1 + + .ENDI diff --git a/parser.zil b/parser.zil new file mode 100644 index 0000000..aba8b6c --- /dev/null +++ b/parser.zil @@ -0,0 +1,1483 @@ +"PARSER for + Mini-Zork II: The Wizard of Frobozz + (c) Copyright 1988 Infocom, Inc. All Rights Reserved." + +;"WHICH and TRAP retrofixes installed" + +"Parser global variable convention: All parser globals will + begin with 'P-'. Local variables are not restricted in any + way. +" + + + +> +> +> + + + + + +> +;"pointers used by CLAUSE-COPY (source/destination beginning/end pointers)" + + + + + + + + + + + ;> + ;> + ;> +> + +;"INBUF - Input buffer for READ" + + + ;> + + ;> + <> <> <>>> + "word pointer to unknown token in P-LEXV" + "word pointer to sentence start in P-LEXV" + "byte length of unparsed tokens in P-LEXV" + "byte pointer to first free byte in OOPS-INBUF" + +;"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." + +) (OF-FLAG <>) + OWINNER OMERGED LEN (DIR <>) (NW 0) (LW 0) (CNT -1)) + > ,P-ITBLLEN> ) + (T + + >)> + )>> + + + > + > + > + + + + > + + > + ; ,VEHBIT>> + >)> + >)> + + + + > + )> + > + >) + (,P-CONT + + + + >> + )> + >) + (T + + > + ,VEHBIT>> + >)> + > + + )> + "> + )> + > + )> + > ,W?OOPS> + > + ,W?PERIOD ,W?COMMA> + > + >)> + > + + ) + ( + + > + ,W?QUOTE>> + + ) + ( + )> + + >> + ;"maybe fix oops vs. chars.?" + 6>> + 7>> + <+ <* ,P-LEXELEN> 3>> + + > + > + ) + (T + > + + )>) + (T + > + )> + >)> + ,W?AGAIN ,W?G> + > + + ) + (,P-OFLAG + + ) + ( + + ) + ( + > + ,W?PERIOD ,W?COMMA ,W?THEN> + > + ,W?AND>> + >> + 2>>) + (T + + )>) + (T + > + 1>>)> + 0> + + ) + (T + >)> + ;> + + + + + + + ) + (T >)>>) + (T + + + + > + >>>> + > + >>> + > + + > + + + > 0> + > + ) + (> + >> + ) + (T >>)> + + > + ) + ( + + + ;"Last NOT added 7/3"> + + ) + (ELSE + + + )>)> + + + >) + (T )>)> + + >> + + ) + (> + ,ACT?WALK> + + + > + + >> + + > + + >>> + + + + ,W?THEN>)> + > + > + )>) + (> + > + + + + + 2>>>> + >>) + (> + + + > + + + + > + ;>> + ) + (> + + >> + + + + )>) + ( + + ) + (T + > + + > + > + + > + )>)>) + ( + + > + + ) + (T + >)>) + () + ( + + > + + ) + (T + + )>) + (T + + )> + + >>)> + > + + + > + + ) + (ELSE + )> + > + > + + + + > + T)>)>> + +> +> +> + +;"For AGAIN purposes, put contents of one LEXV table into another." +> + > + > + 2>> + > + 3>> + > + > + + )>>> + +;"Put contents of one INBUF into another" + 1>> + > + )>>> + +;"Put the word in the positions specified from P-INBUF to the end of +OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV" +> + ) + (T + >> + >>>)> + > + >> + > + )>> + + .LEN>> + +;"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?VERB ,P1?VERB> + > + >>> + ) + (>> + > + + + > + > + )> + >>> + + >>> + ) + ( ) + ( 1> + > + > + > + > + > + >)> + )>) + (T + >)> + >) + (T )>) + ( 1> + > + > + > + > + > + >)>)> + > + > + ) + (T )>) + (> + > > + > + ) + (T + > + > >)> + > + > + + ) + (T > )>) + ( + + ,PS?ADJECTIVE> + >> + ) + ( + + ) + ( ,PS?OBJECT> + + ) + (T + )> + )> + > + + + + > + )>>)>)> + > + > + > + + + > ,P-ITBLLEN> + + ) + (T >)>> + T> + +;"New ACLAUSE-WIN for TRAP retrofix 6/21/84" + +> + + > + + > + + 0>> > + > + > + + + + + > + + 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." + + + + + +; +; +; +; +; +; +; +; +; + +; "Constants for compact syntax tables. TAA 11/7/87" +; "See also P-SONUMS macro in MISC." + + + + + + + +; "Syntax lengths, for 0, 1, & 2 objects" + + + + + >) + (T + >)> + >> <>) + (T + <+ .PREP 192>)>> + +) (DRIVE2 <>) PREP VERB TMP) + >> + + )> + >> + > + > + > ;"TAA" + ; ,P-SONUMS>> + T) + ( + + >> + ;"TAA" + ;>>> + ) + ( ;"TAA" + ; > + > + ) + ( ;"TAA" + + ; + >> + + )>)> + + ) + (T + + )>) + (T + ;"TAA" + >) + (<1? .NUM> + >) + (T + >)> + ;>)>> + + + ;"TAA" + ;>>> + + + ) + ( + + + ;>>> + + + ) + ( + + ) + (> + ) + (T + + + > + ) + (> + >) + (T + > + )> + + )> + + ;"TAA" + ;) + (T + ;"TAA" + ;)>> + + )>> + + + > + + + + )> + > + > + > + ) + (T >)>> + + + + + + )> + > + + + + + )> + ;"TAA" + ;> + ) + (.D2 + + ;> + )>> + +; .THE?>> + +) "AUX" BEG END) + > + >) + (ELSE + > + >)> + > + +) (Q? <>)) + ) + (T + > + T) + ( + ) + (.NOSP >) + (ELSE )> + + ) + ( + + ) + ( + + ) + (T + .CP> + )> + ) + ( + > + ) + (T + + >)> + >)>)> + >>> + +> + + + ) + (T + > + )>)>> + +) "AUX" BEG END) + >> + >> + + ,P-LEXELEN> 2>>> + + + ,P-LEXELEN> + 2>>> + ) + (T + >> + )> + >)> + >>> + + + 2>> + .WRD> + + > + + 2>> + ) + ( .PREP> + >>)>>> + + + >> + + + + + )> + + + + > + + 1> + > + + > + > + >> + + )> + + + ) + (T + )> + ) + (ELSE + )> + .OBJ)>) + (T )>> + + + > 0>> + > + ,P-PRSI> >)> + > 0>> + > + ,P-PRSO> >)> + >> + > + >)> + + >>> + >)>)> + > + +> + + ) + (> ,P-BUTS>) + (T + .OBJ> + >)> + >> + + + + .NTBL> + +> +> +> +> +> +> +> +> +> + + + + + + + +> + +) LEN WV WRD NW (WAS-ALL <>)) + > + + )> + + + > + + >> + )> + ) + (T + > + ) + (T >)> + + + + >)>) + ( + > > + + ) + ( + + + + >)>) + (T + + > > + >)>) + ( + >> + + > > + T) + () + () + ( + + )>) + (> + > + + ) + ( + + )>)> + > + > + )>>> + + + + + + + + + +) (OLEN 0) OBJ) + + > + )> + ,P-ADJ> + + + >)>)> + + + > + > + )> + )> + > > + )> + + ) + (T + + + )> + )> + .TLEN>> + ) + ( + >> + > + >> + + > + )> + ) + ( + >>> + + + + .LEN>> + ) + (T + )> + > + + ) + ( + + ,P-NC1) + (T ,P-NC2)>> + + + <>> + ) + (.VRB + )> + > + > + )>)> + .GCHECK> + + > + ;"Changed 6/10/83 - MARC" + + + + + > + > + > + ) + (T + )>)> + > + > + ) + ( )> + + > + > + >> + +; + + + + > + ) + (T + + >)>> + > 0> + )> + > 0> + )> + > 1> + >)> + > + > + .LEN> + +;> +> +> +> + + + + + >) + (ELSE + >)> + + > + > + + + > )> + ) + ( )> + > 1> + + )>>> + + +> + + > + 1>> + > .TBL> + )> + )>>)> + > + 4> 1>> + + >> + 1>>> + 5>> + > + > + + ) + ( )>>)> + .LEN> + + + + + > + > + )>)>> + +> + ) + (T + + ) + ( + ) + (T )>)>> + + + + + +> + > + + > + )> + > + + > + > + + >> + + ,P-SRCALL) + ( + ,P-SRCALL) + (T ,P-SRCTOP)>>>)> + >) (T )>>)>> + +> + .OBJ> + >> + +> 0> ;"TAA" + > + + >) + (T + )>)>) + (T + )>> + +> + + >> + > 0> ) + (T + >> + + > + + ) + (T + )>)> + > + >> + + + ) + (> + >) + ( + > T>> + >) + (T )> + + > + + + )> + + + + ) + ( + > + )>)>)>>) + (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>>>>> + ) + (> >> + )> + > + +)) ;"can player TOUCH object?" + ;"revised 5/2/84 by SEM and SWG" + + ) + ;( + + ) + (T + )>) + ( + ) + ( + ) + ( + > + ) + ( ,HERE >> + ) + (> + ) + ( + > + ) + (T + )>> + + + ) + ( + )> + + ) + (T + >)>>> diff --git a/princess.zabstr b/princess.zabstr new file mode 100644 index 0000000..80484f1 --- /dev/null +++ b/princess.zabstr @@ -0,0 +1,126 @@ + +