commit 67b9cb45f6dabc80f26785c71610704706a0ebe5 Author: historicalsource Date: Sun Apr 14 02:30:20 2019 -0400 Revision 59 (Original Source) diff --git a/README.md b/README.md new file mode 100644 index 0000000..276b5ba --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# leathergoddesses diff --git a/cleveland.zap b/cleveland.zap new file mode 100644 index 0000000..ccba09f --- /dev/null +++ b/cleveland.zap @@ -0,0 +1,651 @@ + + + .FUNCT CLEVELAND-OBJECT-F + EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5 + EQUAL? HERE,CLEVELAND \?ELS10 + PRINT LOOK-AROUND + RTRUE +?ELS10: EQUAL? HERE,LAWN \FALSE + CALL DO-WALK,P?NORTH + RSTACK +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS14 + EQUAL? HERE,CLEVELAND \?ELS19 + CALL V-WALK-AROUND + RSTACK +?ELS19: PRINT LOOK-AROUND + RTRUE +?ELS14: EQUAL? PRSA,V?EXAMINE \FALSE + CALL V-LOOK + RSTACK + + + .FUNCT LAWN-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "Yes, ""Lawn"" is the kindest word for this muddy patch of limp crabgrass. " + FSET? RAKE,TRYTAKEBIT \?CND6 + FSET? SACK,TRYTAKEBIT \?CND6 + PRINTI "Miraculously, someone actually seems to " + ZERO? NAUGHTY-LEVEL \?ELS13 + PRINTI "care" + JUMP ?CND11 +?ELS13: PRINTI "give a " + EQUAL? NAUGHTY-LEVEL,1 \?ELS18 + PRINTI "damn" + JUMP ?CND11 +?ELS18: PRINTI "shit" +?CND11: PRINTI " about this lawn, because there are signs of recent activity:" + CALL APRINT,RAKE + PRINTI " and a large " + PRINTD SACK + PRINTI ". " +?CND6: PRINTI "A fence rings the lawn; through an opening to the north you can see Cleveland." + RTRUE +?ELS5: EQUAL? RARG,M-END \FALSE + FCLEAR RAKE,TRYTAKEBIT + FCLEAR SACK,TRYTAKEBIT + FCLEAR RAKE,NDESCBIT + FCLEAR SACK,NDESCBIT + RTRUE + + + .FUNCT FENCE-F + EQUAL? PRSA,V?CLIMB-UP,V?CLIMB,V?LOOK-OVER /?THN6 + EQUAL? PRSA,V?CLIMB-OVER \?ELS5 +?THN6: PRINTR "It's too tall." +?ELS5: EQUAL? PRSA,V?PUT-AGAINST \FALSE + EQUAL? PRSO,TRELLIS \FALSE + CALL PERFORM-PRSA,TRELLIS,HOUSE + RTRUE + + + .FUNCT LAWN-OBJECT-F + EQUAL? PRSA,V?RAKE \?ELS5 + PRINTR "It's already raked." +?ELS5: EQUAL? PRSA,V?CLIMB,V?CLIMB-ON,V?CLIMB-UP /?THN8 + EQUAL? PRSA,V?LOOK-UNDER,V?BOARD \?ELS7 +?THN8: CALL PERFORM-PRSA,GROUND,PRSI + RTRUE +?ELS7: EQUAL? PRSA,V?PUT-ON \?ELS11 + EQUAL? PRSI,PSEUDO-OBJECT \?ELS11 + CALL PERFORM,V?DROP,PRSO + RTRUE +?ELS11: EQUAL? PRSA,V?SEARCH \?ELS15 + PRINT NOTHING-NEW + RTRUE +?ELS15: EQUAL? PRSA,V?EXAMINE \FALSE + CALL V-LOOK + RSTACK + + + .FUNCT LEAVES-F + EQUAL? PRSA,V?ENTER \?ELS5 + CALL ULTIMATELY-IN?,LEAVES + ZERO? STACK /?ELS10 + PRINT HOLDING-IT + RTRUE +?ELS10: CALL WEE + RSTACK +?ELS5: EQUAL? PRSA,V?TAKE \?ELS14 + CALL PRE-TOUCH + ZERO? STACK \TRUE + PRINT YOU-CANT + PRINTR "hold so many leaves in your arms!" +?ELS14: EQUAL? PRSA,V?RAKE \?ELS19 + PRINTI "They're already in a " + IN? LEAVES,SACK \?ELS22 + PRINTD SACK + JUMP ?CND20 +?ELS22: PRINTI "pile" +?CND20: PRINT PERIOD-CR + RTRUE +?ELS19: EQUAL? PRSA,V?COUNT \?ELS26 + PRINTR "69,105." +?ELS26: EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH \?ELS28 + PRINTR "You find ... more leaves!" +?ELS28: EQUAL? PRSA,V?POUR \?ELS30 + EQUAL? PRSO,LEAVES \?ELS30 + CALL ULTIMATELY-IN?,LEAVES + ZERO? STACK /?ELS37 + EQUAL? PRSI,WINDOW \?ELS42 + CALL PERFORM,V?PUT-THROUGH,LEAVES,WINDOW + RTRUE +?ELS42: CALL PERFORM,V?PUT,LEAVES,PRSI + RTRUE +?ELS37: PRINT YNH + CALL TRPRINT,LEAVES + RSTACK +?ELS30: EQUAL? PRSA,V?PUT,V?PUSH \?ELS52 + EQUAL? PRSI,SACK /?THN49 +?ELS52: EQUAL? PRSA,V?FILL \?ELS48 + EQUAL? PRSO,SACK \?ELS48 +?THN49: CALL UNTOUCHABLE?,LEAVES + ZERO? STACK /?ELS57 + CALL CANT-REACH,LEAVES + RTRUE +?ELS57: IN? LEAVES,SACK /FALSE +?CND55: FCLEAR LEAVES,TRYTAKEBIT + SET 'LEAVES-PLACED,FALSE-VALUE + FSET TREE-HOLE,OPENBIT + FCLEAR LEAVES,NDESCBIT + MOVE LEAVES,SACK + PRINTR "Done." +?ELS48: EQUAL? PRSA,V?MOVE \?ELS61 + ZERO? LEAVES-PLACED /?ELS61 + FCLEAR LEAVES,TRYTAKEBIT + SET 'LEAVES-PLACED,FALSE-VALUE + FSET TREE-HOLE,OPENBIT + FCLEAR LEAVES,NDESCBIT + MOVE LEAVES,HERE + PRINTR "You uncover the trellis." +?ELS61: EQUAL? PRSA,V?LOOK-UNDER \?ELS65 + ZERO? LEAVES-PLACED /?ELS65 + CALL TRELLIS-VISIBLE + CRLF + RTRUE +?ELS65: EQUAL? PRSA,V?EMPTY \?ELS69 + EQUAL? PRSO,LEAVES \?ELS69 + IN? LEAVES,SACK \?ELS69 + CALL PERFORM,V?DROP,LEAVES + RTRUE +?ELS69: EQUAL? PRSA,V?BOARD,V?CLIMB-ON,V?STAND-ON \FALSE + ZERO? LEAVES-PLACED /FALSE + CALL PERFORM,V?STAND-ON,TRELLIS + RTRUE + + + .FUNCT GARDEN-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "The house opens onto a fragrant garden! A piece of sod has been " + FSET? SOD,MUNGBIT \?ELS8 + PRINTI "rolled aside, revealing" + CALL APRINT,HOLE + JUMP ?CND6 +?ELS8: PRINTI "recently planted" +?CND6: PRINTI ", and a clump of yellow, bulbous flowers grows nearby." + FSET? TRELLIS,TRYTAKEBIT \?CND11 + PRINTI " The flowers barely reach the trellis which rises behind them." +?CND11: PRINTI " You can re-enter the house to the west." + RTRUE + + + .FUNCT FLOWERS-F + EQUAL? PRSA,V?SMELL \?ELS5 + CALL PERFORM-PRSA,ODOR + RTRUE +?ELS5: EQUAL? PRSA,V?MUNG,V?TAKE,V?PICK \FALSE + PRINTR "That would be the act of a philistine." + + + .FUNCT SOD-F + EQUAL? PRSA,V?TAKE \?ELS5 + CALL EXAMINE-SOD,TRUE-VALUE + RSTACK +?ELS5: EQUAL? PRSA,V?PUSH,V?ROLL,V?MOVE \?ELS7 + FSET? SOD,MUNGBIT \?ELS12 + PRINT SENILITY-STRIKES + RTRUE +?ELS12: FSET SOD,MUNGBIT + CALL THIS-IS-IT,HOLE + PRINTI "Moving the sod reveals" + CALL ARPRINT,HOLE + RSTACK +?ELS7: EQUAL? PRSA,V?PUT-ON \?ELS20 + EQUAL? PRSI,HOLE /?THN17 +?ELS20: EQUAL? PRSA,V?UNROLL \?ELS16 +?THN17: FSET? SOD,MUNGBIT \?ELS25 + FCLEAR SOD,MUNGBIT + PRINTI "You re-cover" + CALL TRPRINT,HOLE + RSTACK +?ELS25: PRINT LOOK-AROUND + RTRUE +?ELS16: EQUAL? PRSA,V?LOOK-UNDER,V?RAISE \?ELS29 + FSET? SOD,MUNGBIT /?ELS29 + PRINTR "You lift a corner. Before the sod drops back to the ground, you notice something dark." +?ELS29: EQUAL? PRSA,V?EXAMINE \FALSE + CALL EXAMINE-SOD + RSTACK + + + .FUNCT EXAMINE-SOD,TAKING=0 + PRINTI "Although the sod hasn't taken root yet, it" + ZERO? TAKING /?ELS3 + PRINTI "'" + JUMP ?CND1 +?ELS3: PRINTI " look" +?CND1: PRINTR "s too heavy to carry." + + + .FUNCT TRELLIS-F,OARG=0 + ZERO? OARG /?ELS5 + FSET? TRELLIS,MUNGBIT \FALSE + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " " + CALL DESCRIBE-TRELLIS-ON-HOLE + RSTACK +?ELS5: FSET? TRELLIS,UNTEEDBIT /FALSE + EQUAL? PRSA,V?PUT,V?PUT-ON \?ELS20 + EQUAL? PRSO,LEAVES \?ELS20 + FSET? TRELLIS,MUNGBIT \?ELS20 + IN? LEAVES,TREE-HOLE \?ELS27 + CALL CANT-REACH,LEAVES + RSTACK +?ELS27: SET 'LEAVES-PLACED,TRUE-VALUE + FCLEAR TREE-HOLE,OPENBIT + FSET LEAVES,NDESCBIT + FSET LEAVES,TRYTAKEBIT + MOVE LEAVES,TRELLIS + PRINTR "The leaves cover the trellis." +?ELS20: EQUAL? PRSA,V?PUT-ON \?ELS31 + EQUAL? PRSI,TREE-HOLE \?ELS31 + FSET? TRELLIS,MUNGBIT \?ELS38 + PRINT SENILITY-STRIKES + RTRUE +?ELS38: IN? LEAVES,TRELLIS \?CND41 + SET 'LEAVES-PLACED,TRUE-VALUE + FCLEAR TREE-HOLE,OPENBIT + FSET LEAVES,NDESCBIT + FSET LEAVES,TRYTAKEBIT +?CND41: MOVE TRELLIS,HERE + FSET TRELLIS,TRYTAKEBIT + FSET TRELLIS,MUNGBIT + PRINTR "The trellis barely spans the hole." +?ELS31: EQUAL? PRSA,V?TAKE \?ELS45 + FSET? TRELLIS,TRYTAKEBIT \?ELS45 + CALL UNTOUCHABLE?,TRELLIS + ZERO? STACK \?ELS45 + CALL UNDO-TRAP + RFALSE +?ELS45: EQUAL? PRSA,V?CLIMB-ON,V?CLIMB \?ELS49 + EQUAL? HERE,GARDEN \?ELS49 + FSET? TRELLIS,TRYTAKEBIT \?ELS49 + CALL UNDO-TRAP + PRINTR "It falls over." +?ELS49: EQUAL? PRSA,V?REMOVE,V?MOVE \?ELS53 + FSET? TRELLIS,MUNGBIT \?ELS53 + CALL UNDO-TRAP + PRINTR "You uncover the hole." +?ELS53: EQUAL? PRSA,V?PUT-AGAINST \?ELS57 + EQUAL? PRSI,HOUSE \?ELS57 + PRINTR "The trellis is too flimsy to climb." +?ELS57: EQUAL? PRSA,V?LOOK-INSIDE \?ELS61 + GET P-ITBL,P-PREP1 + EQUAL? STACK,PR?THROUGH \?ELS61 + CALL V-LOOK + RSTACK +?ELS61: EQUAL? PRSA,V?MEASURE \?ELS65 + PRINTR "It's six or seven feet wide." +?ELS65: EQUAL? PRSA,V?EXAMINE \?ELS67 + ZERO? LEAVES-PLACED /?ELS67 + FCLEAR LEAVES,NDESCBIT + CALL V-EXAMINE + FSET LEAVES,NDESCBIT + RTRUE +?ELS67: EQUAL? PRSA,V?EXAMINE \?ELS71 + FIRST? TRELLIS /?ELS71 + PRINTR "The trellis is a tight lattice of white wood. Though slightly wider at the top, it is approximately square in shape." +?ELS71: EQUAL? PRSA,V?PUT \?ELS75 + EQUAL? PRSI,TREE-HOLE \?ELS75 + PRINT TRELLIS-TOO-WIDE + RTRUE +?ELS75: EQUAL? PRSA,V?BOARD,V?STAND-ON \FALSE + FSET? TRELLIS,MUNGBIT \FALSE + CALL ROB,TRELLIS,TREE-HOLE + REMOVE TRELLIS + MOVE PROTAGONIST,TREE-HOLE + PRINTI "Crash! You" + CALL AND-SIDEKICK,TREE-HOLE + CALL UNDO-TRAP + PRINTR " are now in the hole, along with some splinters." + + + .FUNCT TRELLIS-VISIBLE + PRINTI "The edge of a trellis is just visible under" + CALL APRINT,LEAVES + PRINTI "." + RTRUE + + + .FUNCT DESCRIBE-TRELLIS-ON-HOLE + ZERO? LEAVES-PLACED /?ELS5 + CALL TRELLIS-VISIBLE + RSTACK +?ELS5: PRINTI "A trellis covers the hole." + RTRUE + + + .FUNCT UNDO-TRAP + ZERO? LEAVES-PLACED /?CND1 + SET 'LEAVES-PLACED,FALSE-VALUE + FCLEAR LEAVES,TRYTAKEBIT + FCLEAR LEAVES,NDESCBIT +?CND1: FSET TREE-HOLE,OPENBIT + FCLEAR TRELLIS,TRYTAKEBIT + FCLEAR TRELLIS,MUNGBIT + FCLEAR TRELLIS,NDESCBIT + FSET TRELLIS,OPENBIT + FSET TRELLIS,CONTBIT + FSET TRELLIS,SURFACEBIT + RTRUE + + + .FUNCT FIRST-FLOOR-F + EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5 + EQUAL? HERE,BEDROOM \?ELS10 + CALL DO-WALK,P?DOWN + RSTACK +?ELS10: EQUAL? HERE,TEENSY-WEENSY-HOUSE \FALSE + PRINT LOOK-AROUND + RTRUE +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS14 + EQUAL? HERE,BEDROOM \?ELS19 + PRINT LOOK-AROUND + RTRUE +?ELS19: CALL DO-WALK,P?UP + RSTACK +?ELS14: EQUAL? HERE,TEENSY-WEENSY-HOUSE \FALSE + EQUAL? PRSO,PSEUDO-OBJECT \?ELS28 + CALL PERFORM-PRSA,GLOBAL-ROOM,PRSI + RTRUE +?ELS28: CALL PERFORM-PRSA,PRSO,GLOBAL-ROOM + RSTACK + + + .FUNCT SECOND-FLOOR-F + EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5 + EQUAL? HERE,TEENSY-WEENSY-HOUSE \?ELS10 + CALL DO-WALK,P?UP + RSTACK +?ELS10: EQUAL? HERE,BEDROOM \FALSE + PRINT LOOK-AROUND + RTRUE +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS14 + EQUAL? HERE,BEDROOM \?ELS19 + CALL DO-WALK,P?DOWN + RSTACK +?ELS19: PRINT LOOK-AROUND + RTRUE +?ELS14: EQUAL? HERE,BEDROOM \FALSE + EQUAL? PRSO,PSEUDO-OBJECT \?ELS28 + CALL PERFORM-PRSA,GLOBAL-ROOM,PRSI + RTRUE +?ELS28: CALL PERFORM-PRSA,PRSO,GLOBAL-ROOM + RSTACK + + + .FUNCT BEDROOM-EXIT-F,CALLED-BY-STAIRS-F=0 + ZERO? SIDEKICK-TRIP-FLAG /?ELS5 + CALL QUEUED?,I-SIDEKICK-OUT-WINDOW + ZERO? STACK /?ELS5 + PRINTI "Just as you are about to..." + CRLF + RFALSE +?ELS5: ZERO? SHEET-HANGING /?ELS9 + ZERO? CALLED-BY-STAIRS-F \?ELS9 + PRINTI "Choice: You could climb down the stairs or the rope." + CRLF + RFALSE +?ELS9: RETURN TEENSY-WEENSY-HOUSE + + + .FUNCT BED-F + EQUAL? PRSA,V?MAKE \?ELS5 + CALL V-CLEAN + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7 + ZERO? SHEET-TIED \?THN10 + FSET? SHEET,TRYTAKEBIT \?ELS7 +?THN10: CALL SHEET-F,M-OBJDESC + FIRST? BED \?ELS16 + FIRST? BED /?KLU34 +?KLU34: EQUAL? STACK,SHEET \?ELS21 + NEXT? SHEET /?ELS21 + CRLF + RTRUE +?ELS21: PRINTI " " + RFALSE +?ELS16: CRLF + RTRUE +?ELS7: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS29 + EQUAL? PRSO,STOOL,RAFT \?ELS29 + CALL WASTES + RSTACK +?ELS29: EQUAL? PRSA,V?PUSH,V?MOVE \FALSE + PRINTR "The bed is too heavy to move." + + + .FUNCT SHEET-F,OARG=0 + ZERO? OARG /?ELS5 + ZERO? SHEET-TIED \?THN12 + FSET? SHEET,TRYTAKEBIT \FALSE +?THN12: EQUAL? OARG,M-OBJDESC? /TRUE + EQUAL? PRSA,V?EXAMINE /?CND17 + PRINTI " " +?CND17: ZERO? SHEET-TIED /?ELS24 + PRINTI "A " + CALL DPRINT,SHEET + PRINTI " is tied to the bed" + ZERO? SHEET-HANGING /?CND26 + PRINTI ", its other end out the window" +?CND26: PRINTI "." + RTRUE +?ELS24: PRINTI "The bed is unmade, with the sheet lying half on the floor." + RTRUE +?ELS5: EQUAL? PRSA,V?MAKE \?ELS35 + CALL NOUN-USED,W?ROPE,SHEET + ZERO? STACK /?ELS35 + FSET? SHEET,MUNGBIT \?ELS42 + CALL PERFORM,V?TIE-TOGETHER,SHEET + RTRUE +?ELS42: PRINTR "Be less general." +?ELS35: EQUAL? PRSA,V?MAKE-WITH,V?TIE \?ELS46 + EQUAL? PRSO,PRSI \?ELS46 + CALL PERFORM,V?TIE-TOGETHER,SHEET + RTRUE +?ELS46: EQUAL? PRSA,V?TIE-TOGETHER \?ELS50 + FSET? SHEET,MUNGBIT \?ELS55 + PRINT SENILITY-STRIKES + RTRUE +?ELS55: FSET? SHEET,NARTICLEBIT \?ELS57 + FCLEAR SHEET,NARTICLEBIT + FCLEAR SHEET,PLURALBIT + FSET SHEET,MUNGBIT + PUTP SHEET,P?SDESC,STR?377 + PUTP SHEET,P?NO-T-DESC,STR?378 + PRINTR "With the expertise of one who has watched countless prison escape movies, you tie the strips into a rope." +?ELS57: PRINTI "Tying the ends of the sheet together" + CALL HO-HUM + RSTACK +?ELS50: CALL NOUN-USED,W?ROPE,SHEET + ZERO? STACK /?ELS61 + FSET? SHEET,MUNGBIT /?ELS61 + CALL CANT-SEE,SHEET + RSTACK +?ELS61: EQUAL? PRSA,V?TAKE,V?PUT \?ELS65 + EQUAL? PRSO,SHEET \?ELS65 + FSET? SHEET,TRYTAKEBIT \?ELS65 + EQUAL? PRSI,WINDOW /?ELS65 + ZERO? SHEET-TIED /?ELS72 + CALL DO-FIRST,STR?379 + RSTACK +?ELS72: FCLEAR SHEET,TRYTAKEBIT + FCLEAR BED,NDESCBIT + RFALSE +?ELS65: FSET? SHEET,UNTEEDBIT /FALSE + EQUAL? PRSA,V?RIP /?THN80 + EQUAL? PRSA,V?CUT \?ELS79 + EQUAL? PRSO,SHEET \?ELS79 +?THN80: FSET? SHEET,NARTICLEBIT /?THN89 + FSET? SHEET,MUNGBIT \?ELS88 +?THN89: PRINT SENILITY-STRIKES + RTRUE +?ELS88: SET 'SHEET-TIED,FALSE-VALUE + FSET SHEET,NARTICLEBIT + FCLEAR SHEET,TRYTAKEBIT + FCLEAR BED,NDESCBIT + FSET SHEET,PLURALBIT + PUTP SHEET,P?SDESC,STR?380 + PUTP SHEET,P?NO-T-DESC,STR?381 + PRINTI "You rip the sheet into" + CALL TRPRINT,SHEET + RSTACK +?ELS79: EQUAL? PRSA,V?TIE \?ELS94 + EQUAL? PRSO,SHEET \?ELS94 + ZERO? SHEET-TIED /?ELS101 + PRINTI "But" + CALL TPRINT,SHEET + PRINTR " is already tied to the bed." +?ELS101: FSET? SHEET,NARTICLEBIT \?ELS104 + PRINTI "Unless you want to make a nice decorative fringe for" + CALL TPRINT-PRSI + PRINTI ", that" + CALL HO-HUM + RSTACK +?ELS104: EQUAL? PRSI,BED \?ELS106 + SET 'SHEET-TIED,TRUE-VALUE + FSET BED,NDESCBIT + FSET SHEET,TRYTAKEBIT + MOVE SHEET,HERE + CALL NOW-TIED,BED + RSTACK +?ELS106: FSET? PRSI,ACTORBIT \?ELS108 + ZERO? NAUGHTY-LEVEL \FALSE +?ELS108: EQUAL? PRSO,BLANKET /FALSE + CALL WASTES + RSTACK +?ELS94: EQUAL? PRSA,V?UNTIE \?ELS114 + ZERO? SHEET-TIED /?ELS114 + FCLEAR SHEET,TRYTAKEBIT + SET 'SHEET-TIED,FALSE-VALUE + LOC PROTAGONIST + MOVE SHEET,STACK + ZERO? SHEET-HANGING /?ELS121 + FCLEAR BED,NDESCBIT + SET 'SHEET-HANGING,FALSE-VALUE + PRINTI "You pull in" + CALL TPRINT-PRSO + PRINTR " and untie it." +?ELS121: PRINTR "Untied." +?ELS114: EQUAL? PRSA,V?PUT,V?PUT-THROUGH \?ELS126 + EQUAL? PRSI,WINDOW \?ELS126 + ZERO? SHEET-HANGING /?ELS133 + PRINT SENILITY-STRIKES + RTRUE +?ELS133: ZERO? SHEET-TIED /FALSE + FSET? SHEET,MUNGBIT /?CND138 + PRINTR "The sheet would barely reach the window, let alone the ground below!" +?CND138: MOVE SHEET,HERE + SET 'SHEET-HANGING,TRUE-VALUE + PRINTI "The " + CALL DPRINT,SHEET + PRINTI " hangs almost to the ground." + IN? SIDEKICK,HERE \?THN144 + ZERO? SIDEKICK-TRIP-FLAG /?CND141 +?THN144: CRLF + RTRUE +?CND141: CALL QUEUE,I-SIDEKICK-OUT-WINDOW,2 + PRINTI " " + CALL DPRINT-SIDEKICK + PRINTR " looks awed. ""Super idea! Doesn't look too strong, though. I'm lighter, so I'll go down.""" +?ELS126: EQUAL? PRSA,V?MOVE \?ELS147 + ZERO? SHEET-HANGING /?ELS152 + SET 'SHEET-HANGING,FALSE-VALUE + PRINTI "You pull" + CALL TPRINT,SHEET + PRINTR " back into the room." +?ELS152: ZERO? SHEET-TIED /FALSE + CALL PERFORM-PRSA,BED + RTRUE +?ELS147: EQUAL? PRSA,V?CLIMB-DOWN \?ELS158 + ZERO? SHEET-HANGING /?ELS158 + PRINTI "The rope rips under your weight. " + CALL PLUMMET-TO-PAVEMENT + RSTACK +?ELS158: EQUAL? PRSA,V?MEASURE \?ELS162 + FSET? SHEET,MUNGBIT \?ELS162 + PRINTR "Long enough." +?ELS162: EQUAL? PRSA,V?EXAMINE \FALSE + ZERO? SHEET-TIED \?THN169 + FSET? SHEET,TRYTAKEBIT \FALSE +?THN169: CALL SHEET-F,M-OBJDESC + CRLF + RTRUE + + + .FUNCT PLUMMET-TO-PAVEMENT + CALL JIGS-UP,STR?382 + RSTACK + + + .FUNCT I-SIDEKICK-OUT-WINDOW + PRINTI " " + ZERO? SIDEKICK-TRIP-FLAG /?ELS5 + FSET BEDROOM,MUNGBIT + MOVE SIDEKICK,HERE + MOVE HEADLIGHT,HERE + CALL INCREMENT-SCORE,14,33,TRUE-VALUE + PRINTI "The ceiling collapses into a cloud of old plaster and startled termites, and out of the middle of it steps " + CALL DPRINT-SIDEKICK + PRINTI ", looking dishevelled but, for the most part, alive! + ""That truck explosion knocked me into the basement of some nutty professor, who strapped me into a faster-than-light missile he was about to test! Halfway to Pluto, I was intercepted by slavers looking for asteroid mining laborers. I beat off about thirty of 'em, but they just kept coming and coming. Just then I noticed" + CALL APRINT,HOLE + PRINTI " which led to a spot about four feet above the floor of the attic ... or what used to be the floor of the attic. Anyway, I got the " + PRINTD HEADLIGHT + PRINTI "!"" " + CALL HE-SHE,TRUE-VALUE + PRINTI " points to the battered but usable " + PRINTD HEADLIGHT + PRINTR " on the floor." +?ELS5: EQUAL? HERE,BEDROOM \?THN9 + ZERO? SHEET-HANGING \?ELS8 +?THN9: CALL DEQUEUE,I-SIDEKICK-OUT-WINDOW + PRINTI """Okay, forget the " + PRINTD HEADLIGHT + PRINTI ","" shrugs " + CALL DPRINT-SIDEKICK + PRINT PERIOD-CR + RTRUE +?ELS8: MOVE FORD,HERE + REMOVE SIDEKICK + REMOVE HEADLIGHT + SET 'FOLLOW-FLAG,1 + CALL QUEUE,I-FOLLOW,2 + FCLEAR HEADLIGHT,NDESCBIT + FCLEAR HEADLIGHT,TRYTAKEBIT + SET 'SIDEKICK-TRIP-FLAG,TRUE-VALUE + CALL QUEUE,I-SIDEKICK-OUT-WINDOW,1 + CALL DPRINT-SIDEKICK + PRINTI " climbs down the rope and unscrews the " + PRINTD HEADLIGHT + PRINTI ". Suddenly, a truck barrels down the street and hits " + CALL DPRINT-SIDEKICK + PRINTI ", carrying " + CALL HIM-HER + PRINTI " out of sight. Moments later, you hear an explosion. As the smoke drifts past the window" + CALL MEMORIAM + RSTACK + + + .FUNCT HEADLIGHT-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + FSET? HEADLIGHT,TRYTAKEBIT \?ELS5 + PRINTR "It looks loose." +?ELS5: CALL TOUCHING?,HEADLIGHT + ZERO? STACK /FALSE + FSET? HEADLIGHT,TRYTAKEBIT \FALSE + CALL CANT-REACH,HEADLIGHT + RSTACK + + + .FUNCT FORD-F + CALL ADJ-USED,A?NUMBER + ZERO? STACK /?ELS5 + EQUAL? P-NUMBER,1933 /?ELS5 + CALL CANT-SEE,FORD + RSTACK +?ELS5: CALL TOUCHING?,FORD + ZERO? STACK /FALSE + CALL CANT-REACH,FORD + RSTACK + + .ENDI diff --git a/cleveland.zil b/cleveland.zil new file mode 100644 index 0000000..14fe3d8 --- /dev/null +++ b/cleveland.zil @@ -0,0 +1,724 @@ +"CLEVELAND for + LEATHER GODDESSES OF PHOBOS + (c) Copyright 1986 Infocom, Inc. All Rights Reserved." + + + + + + ) + ( + )>) + ( + + ) + (T + )>) + ( + )>> + + + + LAWN LAWN-OBJECT-F)>)> + + + + + > + + + ) + (T + + + ) + (T + )>)> + )> + ) + ( + + + + )>> + + + ) + ( + > + + )>> + + + ) + ( + + ) + ( + > + + ) + ( + ) + ( + )>> + + + + + + + + + + ) + (T + )>) + ( + + )> + ) + ( + + + ) + (T + )> + ) + ( + ) + ( + ) + ( + > + + + + ) + (T + + )>) + (T + )>) + ( + > + + >> + + + ) + ( + )> + + > + + + + ) + ( + ,LEAVES-PLACED> + + > + + + + ) + ( + ,LEAVES-PLACED> + + ) + ( + + > + + ) + ( + ,LEAVES-PLACED> + + )>> + +)> + + FLOWER FLOWERS-F)>)> + + + + + ) + (T + )> + + + )> + )>> + + + + ) + ( + )>> + + + + + ) + ( + + ) + (T + + + )>) + ( + > + > + + + ) + (T + )>) + ( + >> + ) + ( + )>> + +)) + + ) + (T + )> + > + + + +)) + + + )> + + ) + (T + )>) + ( + ) + ( + + > + + ) + (T + + + + + + )>) + ( + > + + ) + (T + + + + + )> + + + + )>) + ( + + >> + + ) + ( + + > + + ) + ( + > + + ) + ( + > + ) + ( + ,PR?THROUGH>> + ) + ( + ) + ( + ,LEAVES-PLACED> + + + ) + ( + >> + ) + ( + > + ) + ( + > + + + + + + + )>> + +> + +) + (T + )>> + +> + + )> + + + + ;"for first time you take it in Garden" + ;"ditto" + ;"ditto" + ;"ditto"> + + + + ) + ( + )>) + ( + + ) + (T + )>) + ( + + + ) + (T + )>)>> + + + + ) + ( + )>) + ( + + ) + (T + )>) + ( + + + ) + (T + )>)>> + +)> + +)) + > + + ) + (> + + ) + (T + ,TEENSY-WEENSY-HOUSE)>> + + + + + ) + ( + >> + + + ,SHEET> + >> + ) + (T + + )>) + (T + )>) + ( + > + ;"don't want nested vehicles") + ( + )>> + +> + +> + + + +)) + > + + )> + > + )> + + )> + ) + (T + )>) + (T + )>) + ( + > + + + ) + (T + )>) + ( + ;"both PRSO and PRSI are the sheet"> + + ) + ( + + ) + ( + + + + + + ) + (T + + )>) + ( + >> + ) + ( + + + >> + ) + (T + + + )>) + ( + ) + ( + + >> + + > + ) + (T + > + + + + + + + )>) + ( + > + ) + ( + + ) + ( + + + + + ) + ( + >> + ;"V-TIE will say KINKY!") + (> ;"BLANKET-F handles it" + )>) + ( + ,SHEET-TIED> + + > + > + + > + ) + (T + )>) + ( + > + ) + (,SHEET-TIED + > + + )> + + + + > + ,SIDEKICK-TRIP-FLAG ;"he already went once"> + + )> + + )>) + ( + > + ) + (,SHEET-TIED + + )>) + ( + ,SHEET-HANGING> + + ) + ( + > + ) + ( + >> + + )>> + +> + + + + + + + + + ) + (> + > + + ) + (T + + + + + + + + + + + + + )>> + + + + + > + ) + ( + > + )>> + + + + + >> + ;"will this really work?") + ( + )>> \ No newline at end of file diff --git a/earth.zap b/earth.zap new file mode 100644 index 0000000..bbfd014 --- /dev/null +++ b/earth.zap @@ -0,0 +1,433 @@ + + + .FUNCT JOES-BAR-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "An undistinguished bar, yet the social center of Upper Sandusky. The front door is almost lost amidst the hazy maze of neon that shrouds the grimy glass of the south wall. " + PRINT DOORS-MARKED + RTRUE + + + .FUNCT BAR-DOOR-F + EQUAL? PRSA,V?ENTER \?ELS5 + CALL DO-WALK,P?SOUTH + RSTACK +?ELS5: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS7 + PRINTR "It's a swinging door." +?ELS7: EQUAL? PRSA,V?LOOK-INSIDE \FALSE + CALL PERFORM-PRSA,WINDOW + RTRUE + + + .FUNCT BAR-F + EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS5 + CALL DO-WALK,P?SOUTH + RSTACK +?ELS5: EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS7 + PRINT LOOK-AROUND + RTRUE +?ELS7: EQUAL? PRSA,V?EXAMINE \?ELS9 + CALL V-LOOK + RSTACK +?ELS9: EQUAL? PRSA,V?SEARCH \FALSE + PRINT NOTHING-NEW + RTRUE + + + .FUNCT JOE-F + EQUAL? PRSA,V?TELL /?THN6 + EQUAL? PRSA,V?ASK-FOR \?ELS5 + EQUAL? PRSI,BEER \?ELS5 +?THN6: PRINTI """You've had enough.""" + CRLF + CALL STOP + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "Joe is bartending." + + + .FUNCT BEER-F + EQUAL? PRSA,V?BUY \FALSE + EQUAL? HERE,JOES-BAR \FALSE + PRINTI "The bartender" + CALL RUNNING?,I-URGE + ZERO? STACK /?CND8 + PRINTI ", a keen judge of bladders," +?CND8: PRINTI " says, " + CALL PERFORM,V?TELL,JOE + RTRUE + + + .FUNCT GARMENT-F + CALL WRONG-SEX-WORD,GARMENT,W?LOINCLOTH,W?BIKINI + ZERO? STACK /?ELS5 + CALL STOP + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7 + FSET? CELL,TOUCHBIT \?ELS7 + PRINTI "The " + CALL DPRINT,GARMENT + PRINTR ", tight but comfy, covers only the ""bare essentials.""" +?ELS7: EQUAL? PRSA,V?LOOK-INSIDE \?ELS11 + PRINTI "1. You +2. A " + CALL DPRINT,COMIC-BOOK + CRLF + RTRUE +?ELS11: EQUAL? PRSA,V?TAKE-OFF /?THN14 + EQUAL? PRSA,V?TAKE \FALSE + ZERO? GONE-APE /FALSE +?THN14: PRINTI "But" + CALL TPRINT,GARMENT + FSET? GARMENT,PLURALBIT \?ELS20 + PRINTI " are" + JUMP ?CND18 +?ELS20: PRINTI " is" +?CND18: PRINTR " so becoming!" + + + .FUNCT POCKET-F + EQUAL? PRSA,V?LOOK-INSIDE \?ELS5 + PRINTI "There's" + CALL APRINT,COMIC-BOOK + PRINTR " there." +?ELS5: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,POCKET \FALSE + PRINTI "There's no room. " + CALL PERFORM,V?LOOK-INSIDE,POCKET + RTRUE + + + .FUNCT COMIC-BOOK-F + EQUAL? PRSA,V?BURN,V?TAKE,V?REMOVE \?ELS5 + EQUAL? PRSO,COMIC-BOOK \?ELS5 + PRINTI "You change your mind and" + PRINT STICK-IT-IN-POCKET + PRINTR " instead." +?ELS5: EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?READ \FALSE + FSET? CELL,TOUCHBIT \?ELS12 + PRINTI """Hello, Prisoner! + You are a captive of " + PRINTD LGOP + PRINTI ". As an experimental subject, your unspeakably painful death will help our effort to enslave humanity and turn the Earth into our private pleasure world. Consider this to be a great honor, human."" + The remainder of the book covers the exacting rules of behavior expected of a prisoner of " + PRINTD LGOP + PRINTI ". For example, it mentions that escapees will be killed immediately and painfully by crack Leckbandi guards." + JUMP ?CND10 +?ELS12: CALL IN-YOUR-PACKAGE,STR?205 +?CND10: PRINTI " After reading it, you" + PRINT STICK-IT-IN-POCKET + PRINT PERIOD-CR + RTRUE + + + .FUNCT FLASHLIGHT-F + EQUAL? PRSA,V?LOOK-INSIDE,V?OPEN \?ELS5 + PRINTI "The " + PRINTD FLASHLIGHT + PRINTR " has rusted shut." +?ELS5: EQUAL? PRSA,V?POINT \FALSE + FSET? FLASHLIGHT,ONBIT \FALSE + ZERO? PRSI /FALSE + PRINT NOTHING-NEW + RTRUE + + + .FUNCT MENS-ROOM-ENTER-F + ZERO? SEX-CHOSEN \?ELS5 + SET 'SEX-CHOSEN,TRUE-VALUE + SET 'MALE,TRUE-VALUE + MOVE STOOL,MENS-ROOM + FSET SULTANS-WIFE,FEMALEBIT + FSET HAREM-GUARD,FEMALEBIT + FSET YOUNG-WOMAN,FEMALEBIT + PUTP SIDEKICK,P?SDESC,STR?207 + PUTP SIDEKICKS-BODY,P?SDESC,STR?208 + PUTP SPLATTERED-SIDEKICK,P?SDESC,STR?209 + PUTP THORBAST,P?SDESC,STR?210 + PUTP THORBAST-SWORD,P?SDESC,STR?211 + PUTP SULTAN,P?SDESC,STR?212 + PUTP YOUNG-WOMAN,P?SDESC,STR?213 + PUTP PHOTO,P?SDESC,STR?214 + PUTP HAREM,P?ODOR,STR?215 + RETURN MENS-ROOM +?ELS5: ZERO? MALE /?ELS7 + RETURN MENS-ROOM +?ELS7: PRINTD MENS-ROOM + CALL WRONG-BATHROOM,STR?216 + RFALSE + + + .FUNCT LADIES-ROOM-ENTER-F + ZERO? SEX-CHOSEN \?ELS5 + SET 'SEX-CHOSEN,TRUE-VALUE + MOVE STOOL,LADIES-ROOM + FSET ME,FEMALEBIT + FSET SULTAN,FEMALEBIT + FSET SIDEKICK,FEMALEBIT + FSET THORBAST,FEMALEBIT + PUTP SIDEKICK,P?SDESC,STR?217 + PUTP SIDEKICKS-BODY,P?SDESC,STR?218 + PUTP SPLATTERED-SIDEKICK,P?SDESC,STR?219 + PUTP THORBAST,P?SDESC,STR?220 + PUTP THORBAST-SWORD,P?SDESC,STR?221 + PUTP SULTAN,P?SDESC,STR?222 + PUTP YOUNG-WOMAN,P?SDESC,STR?223 + PUTP PHOTO,P?SDESC,STR?224 + PUTP HAREM,P?ODOR,STR?225 + RETURN LADIES-ROOM +?ELS5: ZERO? MALE /?ELS7 + PRINTD LADIES-ROOM + CALL WRONG-BATHROOM,STR?226 + RFALSE +?ELS7: RETURN LADIES-ROOM + + + .FUNCT WRONG-BATHROOM,STRING + PRINTI " + As you enter the wrong bathroom, a " + PRINT STRING + PRINTI ". You hustle out. + +" + CALL DESCRIBE-ROOM + RSTACK + + + .FUNCT BATHROOM-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "This filthy bathroom belies the existence of disinfectant. A single toilet and sink are the only fixtures. More breathable air can be found to the south" + EQUAL? HERE,MENS-ROOM \?ELS8 + PRINTI "ea" + JUMP ?CND6 +?ELS8: PRINTI "we" +?CND6: PRINTI "st." + RTRUE +?ELS5: EQUAL? RARG,M-SMELL \FALSE + CALL THIS-IS-IT,PIZZA + MOVE PIZZA,HERE + PRINTI "You trace the smell to" + CALL APRINT,PIZZA + PRINTI ", crumpled in the corner. [Incidentally, we had some pretty putrid scents available, all of which would've seemed right at home in a filthy restroom. In the end, we were too kind to use them -- but we were sorely tempted!]" + RTRUE + + + .FUNCT MENS-ROOM-OBJECT-F + EQUAL? PRSA,V?ENTER,V?FIND \?ELS5 + EQUAL? HERE,JOES-BAR \?ELS10 + CALL DO-WALK,P?NW + RSTACK +?ELS10: PRINT LOOK-AROUND + RTRUE +?ELS5: EQUAL? PRSA,V?WALK-TO \?ELS14 + EQUAL? HERE,JOES-BAR \?ELS19 + CALL DO-WALK,P?NW + RSTACK +?ELS19: EQUAL? HERE,MENS-ROOM \FALSE + CALL V-PEE + RSTACK +?ELS14: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS23 + EQUAL? HERE,MENS-ROOM \?ELS28 + CALL DO-WALK,P?SE + RSTACK +?ELS28: PRINT LOOK-AROUND + RTRUE +?ELS23: EQUAL? PRSA,V?LOOK-INSIDE \?ELS32 + EQUAL? HERE,MENS-ROOM \?ELS37 + PRINT LOOK-AROUND + RTRUE +?ELS37: PRINT CANT-FROM-HERE + RTRUE +?ELS32: EQUAL? PRSA,V?SEARCH \?ELS41 + PRINT NOTHING-NEW + RTRUE +?ELS41: EQUAL? PRSA,V?USE \?ELS43 + EQUAL? HERE,JOES-BAR \?ELS48 + PRINT LOOK-AROUND + RTRUE +?ELS48: CALL V-PEE + RSTACK +?ELS43: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "Filthy." + + + .FUNCT LADIES-ROOM-OBJECT-F + EQUAL? PRSA,V?ENTER,V?FIND \?ELS5 + EQUAL? HERE,JOES-BAR \?ELS10 + CALL DO-WALK,P?NE + RSTACK +?ELS10: PRINT LOOK-AROUND + RTRUE +?ELS5: EQUAL? PRSA,V?WALK-TO \?ELS14 + EQUAL? HERE,JOES-BAR \?ELS19 + CALL DO-WALK,P?NE + RSTACK +?ELS19: EQUAL? HERE,LADIES-ROOM \FALSE + CALL V-PEE + RSTACK +?ELS14: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS23 + EQUAL? HERE,LADIES-ROOM \?ELS28 + CALL DO-WALK,P?SW + RSTACK +?ELS28: PRINT LOOK-AROUND + RTRUE +?ELS23: EQUAL? PRSA,V?LOOK-INSIDE \?ELS32 + EQUAL? HERE,LADIES-ROOM \?ELS37 + PRINT LOOK-AROUND + RTRUE +?ELS37: PRINT CANT-FROM-HERE + RTRUE +?ELS32: EQUAL? PRSA,V?SEARCH \?ELS41 + PRINT NOTHING-NEW + RTRUE +?ELS41: EQUAL? PRSA,V?EXAMINE,V?USE \FALSE + CALL PERFORM-PRSA,MENS-ROOM-OBJECT + RTRUE + + + .FUNCT GENERIC-RESTROOM-F + EQUAL? PRSA,V?ENTER,V?FIND,V?WALK-TO \?ELS5 + EQUAL? HERE,JOES-BAR \?ELS5 + PRINT DOORS-MARKED + CRLF + RETURN NOT-HERE-OBJECT +?ELS5: EQUAL? PRSA,V?WALK-TO \?ELS9 + CALL V-PEE + RETURN NOT-HERE-OBJECT +?ELS9: ZERO? SEX-CHOSEN /FALSE + ZERO? MALE /?ELS17 + RETURN MENS-ROOM-OBJECT +?ELS17: RETURN LADIES-ROOM-OBJECT + + + .FUNCT TOILET-F + EQUAL? PRSA,V?USE,V?PEE-IN \?ELS5 + CALL V-PEE + RSTACK +?ELS5: EQUAL? PRSA,V?CLOSE \?ELS7 + CALL NO-LID + RSTACK +?ELS7: EQUAL? PRSA,V?FLUSH \?ELS9 + PRINTR "Probably the first fresh water to enter this john in a month." +?ELS9: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \FALSE + PRINT YECHH + RTRUE + + + .FUNCT SINK-F + EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \FALSE + CALL PERFORM,V?EXAMINE,TOILET + RTRUE + + + .FUNCT STOOL-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + FSET? STOOL,TOUCHBIT /?ELS5 + PRINTR "It's safe to take, if you receive my meaning." +?ELS5: EQUAL? PRSA,V?CLIMB,V?BOARD \FALSE + FIRST? STOOL \?ELS14 + CALL DO-FIRST,STR?228,STOOL + RSTACK +?ELS14: IN? PROTAGONIST,TREE-HOLE \FALSE + MOVE PROTAGONIST,HERE + PRINTI "Using the stool, you" + CALL AND-SIDEKICK,HERE + PRINTR " climb out of the hole." + + + .FUNCT I-URGE + CALL QUEUE,I-URGE,-1 + INC 'URGE-COUNTER + PRINTI " " + EQUAL? URGE-COUNTER,1 \?ELS5 + PRINTR "You feel an urge." +?ELS5: EQUAL? URGE-COUNTER,2 \?ELS7 + PRINTR "You trace the urge to the region of your bladder." +?ELS7: EQUAL? URGE-COUNTER,3 \?ELS9 + PRINTI "Though operating at far below normal speed, your mind begins to conclude that it would be best at this point to " + EQUAL? HERE,MENS-ROOM,LADIES-ROOM \?ELS12 + PRINTI "use the" + JUMP ?CND10 +?ELS12: PRINTI "find a" +?CND10: PRINTR " bathroom." +?ELS9: EQUAL? URGE-COUNTER,4 \?ELS16 + PRINTR "Even if you don't care about your clothes, imagine the embarrassment!" +?ELS16: PRINT YOU-CANT + PRINTI "wait another second. " + EQUAL? HERE,MENS-ROOM,LADIES-ROOM \?ELS23 + CALL QUEUE,I-KIDNAPPING,3 + CALL DEQUEUE,I-URGE + MOVE PROTAGONIST,HERE + PRINTI "Fortunately, you've stumbled upon a bathroom. A moment later, you are feeling much better, although your thigh muscles are still quivering a tad." + CALL NOTICE-PIZZA-ODOR + RSTACK +?ELS23: PRINTI "Without going into embarrassing detail, you've made a mess. A moment later, before even half the people in Joe's have begun tittering, a flash of green light precedes the arrival of two VERY odd patrons. They rotate their bellies to get a better look at you. As their mouth stalks open you find that, despite an evolution that occurred dozens of astronomical units from Upper Sandusky, these fellows speak in perfect midwestern English. + ""This one?"" + ""A pitiful specimen ... can't even control simple bodily functions ... the tests would be worthless..."" + ""Agreed. Must've been a screw-up somewhere. Let's take this one instead."" + They grab a blonde woman, whose scream is cut short by another green flash. Three weeks later, when the Earth is invaded and everyone is enslaved by " + PRINTD LGOP + PRINTI ", you wonder if there was a connection." + CRLF + CALL FINISH + RSTACK + + + .FUNCT PIZZA-F + EQUAL? PRSA,V?TAKE,V?TASTE,V?EAT \FALSE + FSET PIZZA,TOUCHBIT + PRINTI "The very thought is enough to make stronger " + ZERO? MALE \?CND6 + PRINTI "wo" +?CND6: PRINTI "men than yourself " + ZERO? NAUGHTY-LEVEL \?ELS11 + PRINTI "become quite ill" + JUMP ?CND9 +?ELS11: EQUAL? NAUGHTY-LEVEL,1 \?ELS13 + PRINTI "vomit" + JUMP ?CND9 +?ELS13: PRINTI "puke their guts out" +?CND9: PRINT PERIOD-CR + RTRUE + + + .FUNCT NOTICE-PIZZA-ODOR + FSET? NOSE,MUNGBIT /FALSE + CALL THIS-IS-IT,ODOR + CRLF + PRINTR " Now that the ""crisis"" has passed, you notice a strong and familiar odor pervading the room." + + + .FUNCT I-KIDNAPPING + IN? PROTAGONIST,STOOL \?CND1 + MOVE STOOL,CELL +?CND1: MOVE PROTAGONIST,HERE + ZERO? MALE /?ELS6 + PUTP GARMENT,P?SDESC,STR?229 + JUMP ?CND4 +?ELS6: PUTP GARMENT,P?SDESC,STR?230 +?CND4: PUTP COMIC-BOOK,P?SDESC,STR?231 + FCLEAR GARMENT,NARTICLEBIT + FCLEAR GARMENT,VOWELBIT + FCLEAR GARMENT,PLURALBIT + CALL ROB,PROTAGONIST,CELL + MOVE GARMENT,PROTAGONIST + MOVE COMIC-BOOK,PROTAGONIST + CALL INCREMENT-SCORE,1,7 + ZERO? VERBOSITY /?CND10 + PRINTI " A brilliant flash of green light seems less unusual when followed by the appearance of tentacled aliens, as is the case with the current flash of green light. The tentacles wrap roughly around you as you faint. + After an unknown amount of time... Well, let's " + ZERO? NAUGHTY-LEVEL \?ELS15 + PRINTI "be frank" + JUMP ?CND13 +?ELS15: PRINTI "cut the " + EQUAL? NAUGHTY-LEVEL,1 \?ELS20 + PRINTI "crap" + JUMP ?CND13 +?ELS20: PRINTI "bullshit" +?CND13: PRINTI ". 7.3 hours later, you wake. Your head feels as if it's been run over by several locomotives, or at least one very large locomotive, and your clothes are now unrecognizable" + PRINT ELLIPSIS +?CND10: CALL GOTO,CELL + CALL CELL-F,M-END + RSTACK + + .ENDI diff --git a/earth.zil b/earth.zil new file mode 100644 index 0000000..0bf46b0 --- /dev/null +++ b/earth.zil @@ -0,0 +1,536 @@ +"EARTH for + LEATHER GODDESSES OF PHOBOS + (c) Copyright 1986 Infocom, Inc. All Rights Reserved." + + DUST UNIMPORTANT-THING-F) + (FRONT DOOR BAR-DOOR-F) + (<> BAR BAR-F)>)> + + + )>> + + + + + ) + ( + ) + ( + + )>> + + + ) + ( + ) + ( + ) + ( + )>> + + + + + + >> + + ) + ( + )>> + + + + + > + + + )> + + + )>> + + + + + ) + ( + > + ) + ( + ) + ;( + ,GONE-APE> + ) + ( + + ,GONE-APE>> + ; + )> + + + ) + (T + )> + )>> + + + + + ) + ( + > + + + )>> + + + + ;"TAKE possible as gorilla" + > + ) + ( + + ) + (T + )> + )>> + + + + + ) + ( + + ,PRSI> + )>> + + SINK SINK-F)>)> + + SINK SINK-F)>)> + + + + + + + + + + + + + + + + + + ,MENS-ROOM) + (,MALE + ,MENS-ROOM) + (T + + + )>> + + + + + + + + + + + + + + + + + + ,LADIES-ROOM) + (,MALE + + + ) + (T + ,LADIES-ROOM)>> + + + > + + + + + ) + (T + )> + ) + ( + + + )>> + + + + + + ) + (T + )>) + ( + + ) + ( + )>) + ( + + ) + (T + )>) + ( + + ) + (T + )>) + ( + ) + ( + + ) + (T + )>) + ( + )>> + + + + + + ) + (T + )>) + ( + + ) + ( + )>) + ( + + ) + (T + )>) + ( + + ) + (T + )>) + ( + ) + ( + + )>> + + + > + + ) + ( + + ) + (,SEX-CHOSEN + ) + (T + )>) + (T + )>> + + + + + ) + ( + ) + ( + ) + ( + )>> + + + + )>> + + + + + >> + ) + ( + + ) + ( + + + + )>)>> + +> ;"...is main character male? T = male, <> = female." + +> + + + + + > + + + ) + ( + ) + ( + + + ) + (T + )> + ) + ( + ) + (T + + + + + + + ) + (T + + )>)>> + + + + + ;"for V-VOMIT" + + + )> + + + ) + ( + ) + (T + )> + )>> + +> + + )>> + + + )> + + ) + (T + )> + + + + + ;"drop everything you have but..." + ;"...your clothes..." + ;"...and the rule book" + + > + + + ) + (T + + + ) + (T + )>)> + )> + + > \ No newline at end of file diff --git a/globals.zap b/globals.zap new file mode 100644 index 0000000..e60f145 --- /dev/null +++ b/globals.zap @@ -0,0 +1,1560 @@ + + + .FUNCT INCREMENT-SCORE,BASE,VAR,INC-RANK=0,CHANGE,DIF + ZERO? INC-RANK /?CND1 + INC 'RANK +?CND1: RANDOM VAR + ADD STACK,BASE >CHANGE + ADD BASE,VAR + SUB STACK,CHANGE >DIF + SUB INT-MAX,DIF >INT-MAX + SUB EXT-MAX,INT-MAX + RANDOM STACK + ADD INT-MAX,STACK >EXT-MAX + ADD SCORE,CHANGE >SCORE + RETURN SCORE + + + .FUNCT INTDIR-F + EQUAL? PRSA,V?BOARD \FALSE + EQUAL? P-PRSA-WORD,W?RIDE \FALSE + IN? PROTAGONIST,STALLION \?ELS12 + CALL DO-WALK,P-DIRECTION + RSTACK +?ELS12: IN? STALLION,HERE \?ELS14 + CALL DO-FIRST,STR?124 + RSTACK +?ELS14: PRINT THERES-NOTHING + PRINTR "to ride!" + + + .FUNCT INTNUM-F + CALL ADJ-USED,A?WIFE + ZERO? STACK /?ELS5 + EQUAL? HERE,INNER-HAREM \?THN8 + ZERO? MALE \?ELS5 +?THN8: CALL PICKING-WIFE + ZERO? STACK \?ELS5 + SET 'P-WON,FALSE-VALUE + PRINT YOU-CANT-SEE-ANY + PRINTR "wife here!" +?ELS5: CALL ADJ-USED,A?HUSBAND + ZERO? STACK /?ELS11 + EQUAL? HERE,INNER-HAREM \?THN14 + ZERO? MALE /?ELS11 +?THN14: CALL PICKING-WIFE + ZERO? STACK \?ELS11 + SET 'P-WON,FALSE-VALUE + PRINT YOU-CANT-SEE-ANY + PRINTR "husband here!" +?ELS11: EQUAL? PRSA,V?ANSWER-KLUDGE \?ELS17 + CALL PERFORM,V?USE-QUOTES,INTNUM + RTRUE +?ELS17: EQUAL? P-NUMBER,CHOICE-NUMBER \?ELS19 + IN? SULTANS-WIFE,HERE \?ELS19 + EQUAL? PRSO,INTNUM \?ELS26 + CALL PERFORM-PRSA,SULTANS-WIFE,PRSI + RTRUE +?ELS26: CALL PERFORM-PRSA,PRSO,SULTANS-WIFE + RTRUE +?ELS19: EQUAL? PRSA,V?PICK,V?ASK-NO-ONE-FOR \?ELS34 + IN? HAREM-GUARD,HERE /?THN31 +?ELS34: EQUAL? PRSA,V?ASK-FOR \?ELS30 + EQUAL? PRSO,HAREM-GUARD \?ELS30 +?THN31: CALL PICK-WIFE,INTNUM + RSTACK +?ELS30: EQUAL? HERE,VIZICOMM-BOOTH \FALSE + EQUAL? PRSA,V?SET \FALSE + CALL PERFORM-PRSA,VIZICOMM + RTRUE + + + .FUNCT PICKING-WIFE + EQUAL? PRSA,V?PICK,V?ASK-NO-ONE-FOR \?ELS5 + IN? HAREM-GUARD,HERE /TRUE +?ELS5: EQUAL? PRSA,V?ASK-FOR \FALSE + EQUAL? PRSO,HAREM-GUARD \FALSE + RTRUE + + + .FUNCT EACH-OTHER-F + EQUAL? PRSI,EACH-OTHER \?ELS5 + CALL PERFORM-PRSA,PRSO,PRSO + RTRUE +?ELS5: CALL NOUN-USED,W?ITSELF,EACH-OTHER + ZERO? STACK \FALSE + SET 'P-WON,FALSE-VALUE + CALL ADJ-USED,A?EACH + ZERO? STACK /?ELS10 + CALL CANT-USE,A?EACH,TRUE-VALUE + RTRUE +?ELS10: CALL CANT-USE,W?OTHER,TRUE-VALUE + RTRUE + + + .FUNCT MAN-WOMAN-F,PERSON + EQUAL? PRSA,V?FOLLOW \?ELS5 + EQUAL? FOLLOW-FLAG,4 \?ELS10 + PRINT DONT-WANT-TO + RTRUE +?ELS10: EQUAL? FOLLOW-FLAG,5 \?ELS12 + CALL DO-WALK,P?NORTH + RSTACK +?ELS12: EQUAL? FOLLOW-FLAG,6 \?ELS14 + CALL DO-WALK,P?EAST + RSTACK +?ELS14: CALL V-WALK-AROUND + RSTACK +?ELS5: GET P-NAMW,0 + EQUAL? STACK,W?MAN \?ELS18 + EQUAL? PRSO,MAN-WOMAN \?ELS18 + CALL FIND-MAN >PERSON + ZERO? PERSON /?ELS25 + CALL PERFORM-PRSA,PERSON,PRSI + RTRUE +?ELS25: CALL CANT-SEE,MAN-WOMAN + RSTACK +?ELS18: GET P-NAMW,0 + EQUAL? STACK,W?WOMAN \?ELS29 + EQUAL? PRSO,MAN-WOMAN \?ELS29 + CALL FIND-WOMAN >PERSON + ZERO? PERSON /?ELS36 + CALL PERFORM-PRSA,PERSON,PRSI + RTRUE +?ELS36: CALL CANT-SEE,MAN-WOMAN + RSTACK +?ELS29: GET P-NAMW,1 + EQUAL? STACK,W?MAN \?ELS40 + EQUAL? PRSI,MAN-WOMAN \?ELS40 + CALL FIND-MAN >PERSON + ZERO? PERSON /?ELS47 + CALL PERFORM-PRSA,PRSO,PERSON + RTRUE +?ELS47: CALL CANT-SEE,MAN-WOMAN + RSTACK +?ELS40: GET P-NAMW,1 + EQUAL? STACK,W?WOMAN \FALSE + EQUAL? PRSI,MAN-WOMAN \FALSE + CALL FIND-WOMAN >PERSON + ZERO? PERSON /?ELS58 + CALL PERFORM-PRSA,PRSO,PERSON + RTRUE +?ELS58: CALL CANT-SEE,MAN-WOMAN + RSTACK + + + .FUNCT FIND-MAN + PUTP MAN-WOMAN,P?SDESC,STR?125 + IN? SALESMAN,HERE \?ELS5 + RETURN SALESMAN +?ELS5: IN? MAD-SCIENTIST,HERE \?ELS7 + RETURN MAD-SCIENTIST +?ELS7: IN? MITRE,HERE \?ELS9 + RETURN MITRE +?ELS9: IN? PROPRIETOR,HERE \?ELS11 + RETURN PROPRIETOR +?ELS11: IN? THORBAST,HERE \?ELS13 + ZERO? MALE /?ELS13 + RETURN THORBAST +?ELS13: IN? YOUNG-WOMAN,HERE \?ELS17 + ZERO? MALE \?ELS17 + RETURN YOUNG-WOMAN +?ELS17: IN? SULTAN,HERE \?ELS21 + ZERO? MALE /?ELS21 + RETURN SULTAN +?ELS21: IN? SULTANS-WIFE,HERE \?ELS25 + ZERO? MALE \?ELS25 + RETURN SULTANS-WIFE +?ELS25: CALL VISIBLE?,SIDEKICK + ZERO? STACK /FALSE + ZERO? MALE /FALSE + RETURN SIDEKICK + + + .FUNCT FIND-WOMAN + PUTP MAN-WOMAN,P?SDESC,STR?126 + IN? THORBAST,HERE \?ELS5 + ZERO? MALE \?ELS5 + RETURN THORBAST +?ELS5: IN? YOUNG-WOMAN,HERE \?ELS9 + ZERO? MALE /?ELS9 + RETURN YOUNG-WOMAN +?ELS9: IN? THETA,HERE \?ELS13 + FSET? THETA,MUNGBIT /?ELS13 + RETURN THETA +?ELS13: IN? LGOP,HERE \?ELS17 + RETURN LGOP +?ELS17: IN? SULTAN,HERE \?ELS19 + ZERO? MALE \?ELS19 + RETURN SULTAN +?ELS19: IN? SULTANS-WIFE,HERE \?ELS23 + ZERO? MALE /?ELS23 + RETURN SULTANS-WIFE +?ELS23: CALL VISIBLE?,SIDEKICK + ZERO? STACK /FALSE + ZERO? MALE \FALSE + RETURN SIDEKICK + + + .FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ,X=0 + EQUAL? PRSO,NOT-HERE-OBJECT \?ELS3 + EQUAL? PRSI,NOT-HERE-OBJECT \?ELS3 + PRINTR "Those things aren't here!" +?ELS3: EQUAL? P-XNAM,W?BODY \?ELS7 + EQUAL? P-XADJN,W?MY,FALSE-VALUE \?ELS7 + EQUAL? PRSO,NOT-HERE-OBJECT \?ELS12 + SET 'PRSO,ME + RFALSE +?ELS12: SET 'PRSI,ME + RFALSE +?ELS7: EQUAL? P-XNAM,W?HAND,W?HANDS \?ELS16 + EQUAL? P-XADJN,W?MITRE,W?KING'S \?ELS16 + EQUAL? PRSA,V?TAKE,V?SHAKE \?ELS16 + CALL PERFORM,V?SHAKE-WITH,HANDS,MITRE + RTRUE +?ELS16: EQUAL? P-XNAM,W?HANDS,W?HAND,W?PALM /?THN23 + EQUAL? P-XNAM,W?FINGER,W?EYE,W?EYES /?THN23 + EQUAL? P-XNAM,W?HEAD,W?EARS,W?EAR /?THN23 + EQUAL? P-XNAM,W?LIP,W?LIPS,W?MOUTH /?THN23 + EQUAL? P-XNAM,W?KNEECAP,W?KNEE,W?KNEES /?THN23 + EQUAL? P-XNAM,W?NOSE,W?NOSTRIL,W?BALLS /?THN23 + EQUAL? P-XNAM,W?PENIS,W?COCK,W?ASS /?THN23 + EQUAL? P-XNAM,W?TITS,W?BREAST,W?BOSOM /?THN23 + EQUAL? P-XNAM,W?CUNT,W?VAGINA,W?PUSSY /?THN23 + EQUAL? P-XNAM,W?TIT,W?BODY \?ELS20 +?THN23: EQUAL? P-XADJN,W?TRENT,W?TIFFAN,W?TIFF'S /?THN25 + EQUAL? P-XADJN,W?GODDESSES,W?SHAPE,W?COUCHMATE /?THN25 + EQUAL? P-XADJN,W?THORBAST,W?ASSASSIN,W?SALESMAN /?THN25 + EQUAL? P-XADJN,W?SCIENTIST,W?GORILLA,W?MONKEY /?THN25 + EQUAL? P-XADJN,W?KING'S,W?MITRE,W?SULTAN /?THN25 + EQUAL? P-XADJN,W?PROPRIETOR,W?OWNER,W?GUARD /?THN25 + EQUAL? P-XADJN,W?PRINCE,W?DAUGHTER,W?THETA /?THN25 + EQUAL? P-XADJN,W?BARTENDER,W?WIFE'S,W?HUSBAND /?THN25 + EQUAL? P-XADJN,W?ELYSIA,W?ELYSIUM,W?WOMAN /?THN25 + EQUAL? P-XADJN,W?ROBOT,W?BABY'S /?THN25 + EQUAL? P-XADJN,W?MAN'S,W?HIS,W?HER \?ELS20 +?THN25: PRINTR "[Sorry. Given limited space, we can't handle everything. Therefore, you can only refer to characters in the story, not individual body parts. For example, you can KISS IRWIN but you can't KISS IRWIN'S ELBOW.]" +?ELS20: EQUAL? PRSO,NOT-HERE-OBJECT \?ELS28 + SET 'TBL,P-PRSO + JUMP ?CND1 +?ELS28: SET 'TBL,P-PRSI + SET 'PRSO?,FALSE-VALUE +?CND1: ZERO? PRSO? /?ELS33 + CALL PRSO-MOBY-VERB? + ZERO? STACK /?ELS33 + SET 'X,TRUE-VALUE + JUMP ?CND31 +?ELS33: ZERO? PRSO? \?CND31 + CALL PRSI-MOBY-VERB? + ZERO? STACK /?CND31 + SET 'X,TRUE-VALUE +?CND31: ZERO? X /?ELS42 + CALL FIND-NOT-HERE,TBL,PRSO? >OBJ + ZERO? OBJ /FALSE + EQUAL? OBJ,NOT-HERE-OBJECT \TRUE + EQUAL? PRSA,V?FOLLOW,V?WALK-TO \?ELS54 + CALL V-WALK-AROUND + JUMP ?CND40 +?ELS54: PRINTI "[" + PRINT YOULL-HAVE-TO + PRINTI "be more specific.]" + CRLF + JUMP ?CND40 +?ELS42: EQUAL? WINNER,PROTAGONIST \?ELS61 + PRINTI "You" + JUMP ?CND59 +?ELS61: PRINTI "Looking confused," + CALL TPRINT,WINNER + PRINTI " says, ""I" +?CND59: PRINTI " can't " + EQUAL? P-XNAM,W?ODOR,W?SMELL,W?SCENT \?ELS66 + PRINTI "smell" + JUMP ?CND64 +?ELS66: PRINTI "see" +?CND64: CALL NAME?,P-XNAM + ZERO? STACK /?THN72 + EQUAL? P-XNAM,W?FORD \?CND69 +?THN72: PRINTI " any" +?CND69: CALL NOT-HERE-PRINT,PRSO? + PRINTI " here!" + EQUAL? WINNER,PROTAGONIST /?CND74 + PRINTI """" +?CND74: CRLF +?CND40: CALL STOP + RSTACK + + + .FUNCT PRSO-MOBY-VERB? + EQUAL? PRSA,V?WHAT,V?WHERE /TRUE + EQUAL? PRSA,V?WAIT-FOR,V?WALK-TO,V?MAKE /TRUE + EQUAL? PRSA,V?BUY,V?CALL,V?SAY /TRUE + EQUAL? PRSA,V?FIND,V?FOLLOW,V?PHONE /TRUE + EQUAL? PRSA,V?USE-QUOTES,V?ANSWER-KLUDGE \FALSE + RTRUE + + + .FUNCT PRSI-MOBY-VERB? + EQUAL? PRSA,V?ASK-ABOUT,V?ASK-FOR,V?TELL-ABOUT \FALSE + RTRUE + + + .FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ + CALL MOBY-FIND,TBL >M-F + EQUAL? 1,M-F \?ELS5 + ZERO? PRSO? /?ELS8 + SET 'PRSO,P-MOBY-FOUND + CALL THIS-IS-IT,PRSO + RFALSE +?ELS8: SET 'PRSI,P-MOBY-FOUND + RFALSE +?ELS5: LESS? 1,M-F \?ELS13 + GET TBL,1 >OBJ + GETP OBJ,P?GENERIC + CALL STACK >OBJ + ZERO? OBJ /?ELS13 + EQUAL? OBJ,NOT-HERE-OBJECT /TRUE + ZERO? PRSO? /?ELS20 + SET 'PRSO,OBJ + CALL THIS-IS-IT,PRSO + RFALSE +?ELS20: SET 'PRSI,OBJ + RFALSE +?ELS13: RETURN NOT-HERE-OBJECT + + + .FUNCT NOT-HERE-PRINT,PRSO?,?TMP1 + ZERO? P-OFLAG /?ELS5 + ZERO? P-XADJ /?CND7 + PRINTI " " + PRINTB P-XADJN +?CND7: ZERO? P-XNAM /FALSE + PRINTI " " + PRINTB P-XNAM + RTRUE +?ELS5: ZERO? PRSO? /?ELS18 + GET P-ITBL,P-NC1 >?TMP1 + GET P-ITBL,P-NC1L + CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE + RSTACK +?ELS18: GET P-ITBL,P-NC2 >?TMP1 + GET P-ITBL,P-NC2L + CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE + RSTACK + + + .FUNCT LOVE-F,LOVER + EQUAL? PRSA,V?MAKE \FALSE + CALL FIND-IN,HERE,ACTORBIT,STR?80 >LOVER + ZERO? LOVER /?ELS10 + CALL PERFORM,V?FUCK,LOVER + RTRUE +?ELS10: PRINTR "Alone? How odd." + + + .FUNCT GLOBAL-SLEEP-F + EQUAL? PRSA,V?TAKE,V?WALK-TO \?ELS5 + CALL PERFORM,V?SLEEP + RTRUE +?ELS5: EQUAL? PRSA,V?PUT-TO \FALSE + EQUAL? PRSI,GLOBAL-SLEEP \FALSE + PRINTR "You're not a hypnotist." + + + .FUNCT GROUND-F + EQUAL? HERE,IN-SPACE \?ELS3 + CALL CANT-SEE,GROUND + RTRUE +?ELS3: FSET? HERE,INDOORSBIT /?THN6 + LOC PROTAGONIST + EQUAL? STACK,BARGE \?ELS5 +?THN6: PUTP GROUND,P?SDESC,STR?128 + JUMP ?CND1 +?ELS5: PUTP GROUND,P?SDESC,STR?127 +?CND1: EQUAL? PRSA,V?EXAMINE \?ELS14 + EQUAL? HERE,SPAWNING-GROUND \?ELS19 + PRINT OOZY-WITH-SLIME + CRLF + RTRUE +?ELS19: CALL GLOBAL-IN?,HOLE,HERE + ZERO? STACK /?ELS21 + CALL HOLE-INVISIBLE + ZERO? STACK \?ELS21 + PRINTI "You notice" + CALL ARPRINT,HOLE + RSTACK +?ELS21: EQUAL? HERE,CELL \?ELS25 + PRINTR "Soft. Cushiony." +?ELS25: EQUAL? HERE,OTHER-CELL \?ELS27 + PRINTR "Rock-hard." +?ELS27: EQUAL? HERE,HOLD \?ELS29 + EQUAL? SIDEKICK-EXPLODED,1 \?ELS29 + CALL SPLATTERED-DESC + CRLF + RTRUE +?ELS29: CALL IN-CATACOMBS + ZERO? STACK /FALSE + PRINT CATACOMBS-WATER-DESC + CRLF + RTRUE +?ELS14: EQUAL? PRSA,V?TOUCH \?ELS35 + EQUAL? HERE,CELL,OTHER-CELL \?ELS35 + CALL PERFORM,V?EXAMINE,GROUND + RTRUE +?ELS35: EQUAL? PRSA,V?CLIMB,V?CLIMB-ON,V?CLIMB-UP /?THN40 + EQUAL? PRSA,V?BOARD \?ELS39 +?THN40: CALL WASTES + RSTACK +?ELS39: EQUAL? PRSA,V?LOOK-UNDER \?ELS43 + CALL IMPOSSIBLES + RSTACK +?ELS43: EQUAL? PRSA,V?LEAVE \?ELS45 + CALL DO-WALK,P?UP + RSTACK +?ELS45: EQUAL? PRSA,V?STAND-ON,V?LEAP \FALSE + EQUAL? HERE,ROOF \FALSE + CALL PERFORM,V?LEAP,ROOMS + RTRUE + + + .FUNCT CEILING-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + EQUAL? HERE,HOLD \?ELS10 + EQUAL? SIDEKICK-EXPLODED,1 \?ELS10 + CALL SPLATTERED-DESC + CRLF + RTRUE +?ELS10: EQUAL? HERE,CELL \?ELS14 + ZERO? HOLE-OPEN /?ELS14 + PRINTR "There's a hole in the ceiling." +?ELS14: EQUAL? HERE,BEDROOM \FALSE + FSET? BEDROOM,MUNGBIT \FALSE + PRINTR "Most of the ceiling is now gone." +?ELS5: FSET? HERE,INDOORSBIT /?ELS22 + CALL CANT-SEE,CEILING + RSTACK +?ELS22: EQUAL? PRSA,V?ENTER \?ELS24 + EQUAL? HERE,CELL \?ELS24 + ZERO? HOLE-OPEN /?ELS24 + CALL DO-WALK,P?UP + RSTACK +?ELS24: EQUAL? PRSA,V?LOOK-UNDER \FALSE + CALL PERFORM,V?LOOK + RTRUE + + + .FUNCT ODOR-F + EQUAL? HERE,IN-SPACE \?ELS5 + IN? THORBAST,HERE /?ELS5 + PRINT CANT-SMELL + RTRUE +?ELS5: EQUAL? HERE,MENS-ROOM,LADIES-ROOM \?ELS9 + CALL RUNNING?,I-URGE + ZERO? STACK /?ELS9 + PRINT CANT-SMELL + RTRUE +?ELS9: EQUAL? HERE,PLAZA \?ELS13 + LESS? PLAZA-COUNTER,9 \?ELS13 + PRINT CANT-SMELL + RTRUE +?ELS13: EQUAL? PRSA,V?SMELL /?THN18 + EQUAL? PRSA,V?EXAMINE \FALSE + EQUAL? P-PRSA-WORD,W?DESCRIBE \FALSE +?THN18: GETP HERE,P?ODOR + ZERO? STACK /?ELS26 + FSET? HERE,SMELLEDBIT \?ELS31 + PRINTI "There is a strong odor of " + GETP HERE,P?ODOR + PRINT STACK + PRINTR " in the air." +?ELS31: FSET HERE,SMELLEDBIT + CALL SCRATCH-N-SNIFF + GETP HERE,P?ACTION + CALL STACK,M-SMELL + CRLF + RTRUE +?ELS26: EQUAL? HERE,INNER-HAREM \?ELS35 + SET 'HERE,HAREM + CALL PERFORM,V?SMELL,ODOR + SET 'HERE,INNER-HAREM + RTRUE +?ELS35: EQUAL? HERE,GARDEN \?ELS37 + CALL NO-SCRATCH-N-SNIFF,STR?129 + RSTACK +?ELS37: CALL ACCESSIBLE?,CHOCOLATE + ZERO? STACK /?ELS39 + FSET? CHOCOLATE,UNTEEDBIT /?ELS39 + PRINTI "[the " + CALL DPRINT,CHOCOLATE + PRINTI "]" + CRLF + CALL PERFORM,V?SMELL,CHOCOLATE + RTRUE +?ELS39: PRINT CANT-SMELL + RTRUE + + + .FUNCT SCRATCH-N-SNIFF,NUM=0 + PRINTI "[Scratch 'n' sniff spot number " + ZERO? NUM /?ELS3 + PRINTN NUM + JUMP ?CND1 +?ELS3: GETP HERE,P?ODOR-NUMBER + PRINTN STACK +?CND1: PRINT HIT-RETURN + PRINTI "continue.]" + READ P-INBUF,P-LEXV + CRLF + RTRUE + + + .FUNCT NO-SCRATCH-N-SNIFF,STRING + PRINTI "[Too bad there's no scratch 'n' sniff for this one, huh?] + +Ahhh, the odor of " + PRINT STRING + PRINTR "!" + + + .FUNCT WATER-F + EQUAL? HERE,MINARET,DUNETOP \?ELS5 + CALL TOUCHING?,WATER + ZERO? STACK /?ELS5 + CALL CANT-REACH,WATER + RSTACK +?ELS5: EQUAL? PRSA,V?BUY,V?DRINK \?ELS9 + PRINTR "You're not thirsty." +?ELS9: EQUAL? PRSA,V?EXAMINE,V?LOOK-UNDER,V?LOOK-INSIDE \?ELS11 + PRINTR "The water is dark and murky." +?ELS11: EQUAL? PRSA,V?MAKE,V?PASS \?ELS13 + CALL V-PEE + RSTACK +?ELS13: EQUAL? PRSA,V?REACH-IN \?ELS15 + PRINTR "Your hand is now wet." +?ELS15: EQUAL? PRSA,V?PUT-ON \?ELS17 + EQUAL? PRSI,WATER \?ELS17 + CALL PERFORM,V?PUT,PRSO,WATER + RTRUE +?ELS17: CALL GLOBAL-IN?,CANAL-OBJECT,HERE + ZERO? STACK /?ELS21 + EQUAL? PRSO,WATER \?ELS26 + CALL PERFORM-PRSA,CANAL-OBJECT,PRSI + RTRUE +?ELS26: CALL PERFORM-PRSA,PRSO,CANAL-OBJECT + RTRUE +?ELS21: EQUAL? PRSA,V?PUT \?ELS30 + EQUAL? PRSI,WATER \?ELS30 + EQUAL? PRSO,RAFT \?ELS37 + EQUAL? HERE,OASIS \?ELS37 + PRINTR "Next you'll be putting yachts in bathtubs!" +?ELS37: EQUAL? PRSO,RAFT \?ELS41 + CALL IN-CATACOMBS + ZERO? STACK /?ELS41 + CALL PERFORM,V?DROP,RAFT + RTRUE +?ELS41: CALL WASTES + RSTACK +?ELS30: EQUAL? PRSA,V?WALK,V?ON \?ELS47 + EQUAL? HERE,MENS-ROOM,LADIES-ROOM \?ELS47 + CALL PERFORM,V?FLUSH,TOILET + RTRUE +?ELS47: EQUAL? PRSA,V?CRAWL-UNDER,V?ENTER,V?BOARD \FALSE + CALL V-SWIM + RSTACK + + + .FUNCT HANDS-F,ACTOR + EQUAL? PRSA,V?APPLAUD \?ELS5 + SET 'PRSO,FALSE-VALUE + CALL V-APPLAUD + RSTACK +?ELS5: EQUAL? PRSA,V?SHAKE \?ELS7 + EQUAL? HERE,THRONE-ROOM \?ELS12 + CALL PERFORM,V?SHAKE-WITH,HANDS,MITRE + RTRUE +?ELS12: CALL FIND-IN,HERE,ACTORBIT,STR?52 >ACTOR + ZERO? ACTOR /?ELS14 + CALL PERFORM,V?SHAKE-WITH,HANDS,ACTOR + RTRUE +?ELS14: PRINTR "Pleased to meet you." +?ELS7: EQUAL? PRSA,V?COUNT \?ELS18 + CALL NOUN-USED,W?FINGER,HANDS + ZERO? STACK /?ELS21 + PRINTI "Ten" + JUMP ?CND19 +?ELS21: PRINTI "Two" +?CND19: PRINTR ", as usual." +?ELS18: EQUAL? PRSA,V?CLEAN \?ELS25 + PRINTR "Done." +?ELS25: EQUAL? PRSA,V?TAKE-WITH \?ELS27 + EQUAL? PRSI,HANDS \?ELS27 + CALL PERFORM,V?TAKE,PRSO + RTRUE +?ELS27: EQUAL? PRSA,V?PUT-ON \?ELS31 + EQUAL? PRSI,EYES \?ELS31 + CALL PERFORM,V?SPUT-ON,EYES,HANDS + RTRUE +?ELS31: EQUAL? PRSA,V?PUT,V?PUT-ON \?ELS35 + EQUAL? PRSI,EARS \?ELS35 + CALL PERFORM,V?SPUT-ON,EARS,HANDS + RTRUE +?ELS35: EQUAL? PRSA,V?SPUT-ON \FALSE + EQUAL? PRSO,NOSE,EARS,EYES \FALSE + ZERO? GONE-APE /?ELS46 + PRINT DEXTERITY + RTRUE +?ELS46: CALL ITEMS-CARRIED + GRTR? STACK,0 \?ELS49 + PRINT YOU-CANT + PRINTI "do that with " + PRINTD HANDS + PRINTR "s full!" +?ELS49: ZERO? HAND-COVER /?ELS54 + PRINTI "You're already" + JUMP ?CND52 +?ELS54: SET 'HAND-COVER,PRSO + FSET PRSO,MUNGBIT + EQUAL? HAND-COVER,EARS \?ELS60 + PRINT MUFFLED + PRINTI "'re" + JUMP ?CND52 +?ELS60: PRINTI "Okay, you're now" +?CND52: PRINTI " covering " + CALL DPRINT,HAND-COVER + PRINTI " with " + PRINTD HANDS + PRINTR "s." + + + .FUNCT ITEMS-CARRIED,X,CNT=0 + FIRST? PROTAGONIST >X /?KLU10 +?KLU10: +?PRG1: ZERO? X \?ELS5 + RETURN CNT +?ELS5: FSET? X,WORNBIT /?CND3 + EQUAL? X,COMIC-BOOK /?CND3 + INC 'CNT +?CND3: NEXT? X >X /?KLU11 +?KLU11: JUMP ?PRG1 + + + .FUNCT HEAD-F + EQUAL? PRSA,V?PUT-ON \FALSE + EQUAL? PRSO,SACK,SHEET,BLANKET \FALSE + SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTR "Where do you think you are, Traal?" + + + .FUNCT EYES-F + EQUAL? PRSA,V?CLOSE \?ELS5 + ZERO? GONE-APE /?ELS10 + CALL WASTES + RSTACK +?ELS10: FSET? EYES,MUNGBIT \?ELS13 + EQUAL? EYES,HAND-COVER \?ELS18 + PRINT HANDS-OVER-EYES + RTRUE +?ELS18: PRINT SENILITY-STRIKES + RTRUE +?ELS13: FSET EYES,MUNGBIT + CALL EYES-ARE-NOW,STR?130 + RSTACK +?ELS5: EQUAL? PRSA,V?OPEN \FALSE + FSET? EYES,MUNGBIT \?ELS29 + EQUAL? EYES,HAND-COVER \?ELS34 + PRINT HANDS-OVER-EYES + RTRUE +?ELS34: CALL SENSE-AGAIN,EYES + RSTACK +?ELS29: PRINTR "They are open!" + + + .FUNCT EYES-ARE-NOW,STRING + PRINTI "Your eyes are now " + PRINT STRING + PRINT PERIOD-CR + RTRUE + + + .FUNCT OPEN-EYES-AND-REMOVE-HANDS + FCLEAR EYES,MUNGBIT + ZERO? HAND-COVER /FALSE + FCLEAR HAND-COVER,MUNGBIT + SET 'HAND-COVER,FALSE-VALUE + RETURN HAND-COVER + + + .FUNCT EARS-F + EQUAL? PRSA,V?TAKE \?ELS5 + EQUAL? P-PRSA-WORD,W?HOLD \?ELS5 + CALL PERFORM,V?SPUT-ON,EARS,HANDS + RTRUE +?ELS5: EQUAL? PRSA,V?UNCOVER \FALSE + FSET? COTTON-BALLS,WORNBIT \FALSE + ZERO? GONE-APE \FALSE + EQUAL? EARS,HAND-COVER \?CND12 + SET 'HAND-COVER,FALSE-VALUE +?CND12: CALL PERFORM,V?REMOVE,COTTON-BALLS + RTRUE + + + .FUNCT NOSE-F + EQUAL? PRSA,V?PICK,V?BLOW \?ELS5 + PRINT YECHH + RTRUE +?ELS5: EQUAL? PRSA,V?TAKE \?ELS7 + EQUAL? P-PRSA-WORD,W?HOLD \?ELS7 + CALL PERFORM,V?SPUT-ON,NOSE,HANDS + RTRUE +?ELS7: EQUAL? PRSA,V?UNCOVER \FALSE + FSET? CLOTHES-PIN,WORNBIT \FALSE + ZERO? GONE-APE \FALSE + EQUAL? NOSE,HAND-COVER \?CND14 + SET 'HAND-COVER,FALSE-VALUE +?CND14: CALL PERFORM,V?REMOVE,CLOTHES-PIN + RTRUE + + + .FUNCT MOUTH-F + EQUAL? PRSA,V?CLEAN \?ELS5 + FSET? LIP-BALM,WORNBIT \?ELS5 + CALL PERFORM,V?REMOVE,LIP-BALM + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9 + FSET? LIP-BALM,WORNBIT \?ELS9 + CALL ROB,PROTAGONIST,TOILET + MOVE LIP-BALM,PROTAGONIST + CALL V-INVENTORY + CALL ROB,TOILET,PROTAGONIST + RSTACK +?ELS9: EQUAL? PRSA,V?PUT \?ELS13 + EQUAL? PRSI,MOUTH \?ELS13 + CALL PERFORM,V?EAT,PRSO + RTRUE +?ELS13: EQUAL? PRSA,V?OPEN \FALSE + PRINTR "This fails to catch any flies." + + + .FUNCT NAUGHTY-BITS-F + CALL NOUN-USED,W?PUSSY,CUNT + ZERO? STACK /?ELS5 + CALL ADJ-USED,A?MY + ZERO? STACK \?ELS5 + CALL VISIBLE?,PAINTING + ZERO? STACK /?ELS5 + EQUAL? PRSO,CUNT \?ELS12 + CALL PERFORM-PRSA,PAINTING,PRSI + RTRUE +?ELS12: CALL PERFORM-PRSA,PRSI,PAINTING + RTRUE +?ELS5: PRINTI "You don't need to refer to " + PRINTD COCK + PRINTI " to complete " + PRINT LGOP-CAPS + PRINT PERIOD-CR + RTRUE + + + .FUNCT ME-F + EQUAL? PRSA,V?TELL \?ELS5 + PRINTI "Talking to yourself is a sign of impending mental collapse." + CRLF + CALL STOP + RSTACK +?ELS5: EQUAL? PRSA,V?RELIEVE \?ELS7 + CALL V-PEE + RSTACK +?ELS7: EQUAL? PRSA,V?PUT \?ELS9 + EQUAL? PRSI,ME \?ELS9 + ZERO? MALE \?ELS9 + ZERO? NAUGHTY-LEVEL /?ELS9 + CALL PERFORM,V?FUCK,ME + RTRUE +?ELS9: EQUAL? PRSA,V?EAT,V?FUCK,V?TOUCH \?ELS13 + ZERO? NAUGHTY-LEVEL /?ELS13 + PRINTI "Encouraging such behavior would endanger the possibility of landing a lucrative Hollywood contract to make a film of " + PRINT LGOP-CAPS + PRINT PERIOD-CR + RTRUE +?ELS13: EQUAL? PRSA,V?GIVE \?ELS17 + EQUAL? PRSI,ME \?ELS17 + CALL PERFORM,V?TAKE,PRSO + RTRUE +?ELS17: EQUAL? PRSA,V?SHOW \?ELS21 + EQUAL? PRSI,ME \?ELS21 + CALL PERFORM,V?EXAMINE,PRSO + RTRUE +?ELS21: EQUAL? PRSA,V?MOVE \?ELS25 + CALL V-WALK-AROUND + RSTACK +?ELS25: EQUAL? PRSA,V?SEARCH \?ELS27 + CALL V-INVENTORY + RTRUE +?ELS27: EQUAL? PRSA,V?EXAMINE \?ELS29 + ZERO? GONE-APE /?ELS34 + PRINTR "You've gone ape!" +?ELS34: PRINTI "You're wearing" + FSET? WHITE-SUIT,WORNBIT \?ELS42 + CALL ARPRINT,WHITE-SUIT + RSTACK +?ELS42: CALL ARPRINT,GARMENT + RSTACK +?ELS29: EQUAL? PRSA,V?MUNG,V?KILL \?ELS46 + CALL JIGS-UP,STR?131 + RSTACK +?ELS46: EQUAL? PRSA,V?WHERE,V?FIND \?ELS48 + PRINTI "You're in" + CALL TRPRINT,HERE + RSTACK +?ELS48: EQUAL? PRSA,V?MEASURE \?ELS50 + PRINTR "You don't measure up." +?ELS50: EQUAL? PRSA,V?UNTIE \?ELS52 + ZERO? BODY-TIED-TO-SLAB /?ELS52 + ZERO? GONE-APE /?ELS59 + CALL PERFORM-PRSA,YOUR-BODY + RTRUE +?ELS59: CALL YUKS + RSTACK +?ELS52: EQUAL? PRSA,V?TIE \?ELS64 + EQUAL? PRSI,SECOND-SLAB,FIRST-SLAB \?ELS64 + ZERO? BODY-TIED-TO-SLAB /?ELS71 + ZERO? GONE-APE \?ELS71 + PRINTR "You are!" +?ELS71: PRINT YOU-CANT + PRINTR "tie yourself down!" +?ELS64: EQUAL? PRSA,V?FOLLOW \FALSE + PRINTR "Like most computers, I don't have legs." + + + .FUNCT GLOBAL-ROOM-F + EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE,V?LOOK \?ELS5 + CALL V-LOOK + RSTACK +?ELS5: EQUAL? PRSA,V?WALK-TO,V?ENTER \?ELS7 + CALL V-WALK-AROUND + RSTACK +?ELS7: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS9 + CALL DO-WALK,P?OUT + RSTACK +?ELS9: EQUAL? PRSA,V?SEARCH \?ELS11 + EQUAL? HERE,EXIT-SHOP \?ELS16 + CALL PERFORM-PRSA,DUST + RTRUE +?ELS16: PRINT NOTHING-NEW + RTRUE +?ELS11: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,GLOBAL-ROOM \FALSE + EQUAL? P-PRSA-WORD,W?THROW \?ELS27 + CALL PERFORM,V?THROW,PRSO + RTRUE +?ELS27: CALL PERFORM,V?DROP,PRSO + RTRUE + + + .FUNCT HOUSE-F + EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5 + EQUAL? HERE,BEDROOM,TEENSY-WEENSY-HOUSE /?THN11 + EQUAL? HERE,LABORATORY,LOOKS-CAN-BE-DECEIVING \?ELS10 +?THN11: PRINT LOOK-AROUND + RTRUE +?ELS10: EQUAL? HERE,FRONT-DOOR \?ELS14 + CALL DO-WALK,P?NORTH + RSTACK +?ELS14: EQUAL? HERE,BACK-DOOR \?ELS16 + CALL DO-WALK,P?SOUTH + RSTACK +?ELS16: EQUAL? HERE,CLEVELAND \?ELS18 + CALL DO-WALK,P?NE + RSTACK +?ELS18: EQUAL? HERE,BEDROOM,GARDEN \FALSE + CALL DO-WALK,P?WEST + RSTACK +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS22 + EQUAL? HERE,LABORATORY,BEDROOM \?ELS27 + PRINT CANT-FROM-HERE + RTRUE +?ELS27: EQUAL? HERE,TEENSY-WEENSY-HOUSE,LABORATORY \?ELS29 + CALL V-WALK-AROUND + RSTACK +?ELS29: PRINT LOOK-AROUND + RTRUE +?ELS22: EQUAL? PRSA,V?LOOK-INSIDE \?ELS33 + EQUAL? HERE,FRONT-DOOR,BACK-DOOR,GARDEN \?ELS38 + PRINT CANT-FROM-HERE + RTRUE +?ELS38: CALL V-LOOK + RSTACK +?ELS33: EQUAL? PRSA,V?SEARCH \FALSE + PRINT NOTHING-NEW + RTRUE + + + .FUNCT SIGN-F,NUM + CALL CANAL-LOC >NUM + EQUAL? HERE,CANAL \?ELS5 + EQUAL? NUM,15 /?ELS5 + CALL CANT-SEE,SIGN + RSTACK +?ELS5: EQUAL? PRSA,V?READ \FALSE + EQUAL? HERE,END-OF-HALLWAY \?ELS14 + PRINTR """Up To Observation Room.""" +?ELS14: EQUAL? HERE,OBSERVATION-ROOM \?ELS16 + PRINTR """Down to Cells.""" +?ELS16: EQUAL? HERE,EXIT-SHOP \?ELS18 + PRINTI """E" + PRINT BOUGHT-AND-SOLD + PRINTR ".""" +?ELS18: EQUAL? HERE,VIZICOMM-BOOTH \?ELS20 + PRINTR """Out of order.""" +?ELS20: EQUAL? HERE,SOUTH-POLE \?ELS22 + PRINTR """Martian Orphanages, Inc. + South Polar Branch""" +?ELS22: EQUAL? HERE,PENGUIN-PARK \?ELS24 + PRINTR """Give generously to the Penguin Retirement Fund.""" +?ELS24: EQUAL? HERE,CANAL,WATTZ-UPP-DOCK \FALSE + PRINTR "The sign has no writing, only the skull and crossbones." + + + .FUNCT STAIRS-F + EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \?ELS5 + CALL DO-WALK,P?UP + RSTACK +?ELS5: EQUAL? PRSA,V?CLIMB-DOWN \?ELS7 + EQUAL? HERE,BEDROOM \?ELS12 + CALL BEDROOM-EXIT-F,TRUE-VALUE + ZERO? STACK /TRUE + CALL GOTO,TEENSY-WEENSY-HOUSE + RSTACK +?ELS12: CALL DO-WALK,P?DOWN + RSTACK +?ELS7: EQUAL? PRSA,V?THROW \FALSE + EQUAL? PRSI,STAIRS \FALSE + CALL WASTES + RSTACK + + + .FUNCT WINDOW-F + EQUAL? PRSA,V?LOOK-INSIDE \?ELS5 + EQUAL? HERE,OBSERVATION-ROOM \?ELS10 + SET 'SEEN-EXAMINATION-ROOM,TRUE-VALUE + PRINT YOU-SEE + PRINTI " a large room below. " + CALL EXAMINATION-ROOM-DESC,TRUE-VALUE + RSTACK +?ELS10: EQUAL? HERE,BEDROOM \?ELS12 + MOVE FORD,HERE + FSET? HEADLIGHT,TRYTAKEBIT \?CND13 + MOVE HEADLIGHT,HERE +?CND13: MOVE FORD,HERE + PRINTI "A car is parked on the street, twenty feet below. It's a Ford, a 1933 Ford ... and one of its " + PRINTD HEADLIGHT + PRINTI "s is " + IN? HEADLIGHT,HERE \?ELS18 + FSET? HEADLIGHT,TRYTAKEBIT \?ELS18 + PRINTI "loose" + JUMP ?CND16 +?ELS18: PRINTI "missing" +?CND16: PRINT PERIOD-CR + RTRUE +?ELS12: EQUAL? HERE,HOLD \?ELS24 + PRINT YOU-SEE + PRINTI " Saturn and her ample rings." + EQUAL? SPACESHIP-SCENE-STATUS,1 /?CND25 + PRINTI " Much closer, no more than a hundred feet away, is" + CALL APRINT,PASSENGER-SHIP + PRINTI ". Judging by the steam blowing from her ion engines, she's preparing to depart." +?CND25: CRLF + RTRUE +?ELS24: EQUAL? HERE,JOES-BAR \?ELS29 + PRINTR "It's raw and blowy outside. Little whirlpools of dust dance by." +?ELS29: EQUAL? HERE,SOUTH-POLE \?ELS31 + FSET? ORPHANAGE-FOYER,TOUCHBIT \?ELS36 + PRINTR "The window is fogged." +?ELS36: SET 'COTTON-BALLS-SEEN,TRUE-VALUE + MOVE COTTON-BALLS,HERE + PRINT YOU-SEE + PRINTI " a " + PRINTD COTTON-BALLS + PRINTR " sitting in an entrance foyer." +?ELS31: EQUAL? HERE,ORPHANAGE-FOYER \?ELS40 + PRINT YOU-SEE + PRINTR " an icy plain." +?ELS40: EQUAL? HERE,MAIN-HALL-OF-PALACE \FALSE + PRINTR "Colored light spills through the window." +?ELS5: EQUAL? PRSA,V?OPEN \?ELS44 + EQUAL? HERE,BEDROOM \?ELS49 + PRINT ALREADY-IS + RTRUE +?ELS49: PRINTR "It's not that kind of window." +?ELS44: EQUAL? PRSA,V?CLOSE \?ELS53 + EQUAL? HERE,BEDROOM \?ELS58 + PRINTR "It seems stuck." +?ELS58: PRINT ALREADY-IS + RTRUE +?ELS53: EQUAL? PRSA,V?PUT,V?PUT-THROUGH \?ELS62 + EQUAL? PRSI,WINDOW \?ELS62 + EQUAL? HERE,BEDROOM \?ELS62 + EQUAL? PRSO,HANDS \?ELS69 + PRINT HUH + RTRUE +?ELS69: IN? PROTAGONIST,BED \?ELS71 + CALL CANT-REACH,PRSI + RSTACK +?ELS71: EQUAL? PRSO,SHEET \?ELS73 + ZERO? SHEET-HANGING \FALSE + ZERO? SHEET-TIED \FALSE +?ELS73: REMOVE PRSO + CALL PRONOUN + PRINTI " land" + FSET? PRSO,PLURALBIT /?CND80 + PRINTI "s" +?CND80: PRINTI " on the street below. An urchin dashes up and runs off with" + CALL TRPRINT,PRSO + RSTACK +?ELS62: EQUAL? PRSA,V?EMPTY-FROM \?ELS84 + EQUAL? PRSI,WINDOW \?ELS84 + EQUAL? HERE,BEDROOM \?ELS84 + CALL PERFORM,V?EMPTY,PRSO,WINDOW + RTRUE +?ELS84: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?ENTER /?THN89 + EQUAL? PRSA,V?LEAP-OFF \FALSE +?THN89: EQUAL? HERE,BEDROOM \?ELS95 + ZERO? SHEET-HANGING /?ELS100 + CALL PERFORM,V?CLIMB-DOWN,SHEET + RTRUE +?ELS100: CALL PLUMMET-TO-PAVEMENT + RSTACK +?ELS95: EQUAL? HERE,SOUTH-POLE,ORPHANAGE-FOYER \?ELS105 + PRINTR "It's barred!" +?ELS105: EQUAL? HERE,OBSERVATION-ROOM \?ELS107 + CALL DO-WALK,P?WEST + RSTACK +?ELS107: CALL DO-FIRST,STR?66,WINDOW + RSTACK + + + .FUNCT TREE-F + EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \FALSE + PRINTR "The trees are all unclimbable." + + + .FUNCT HOLE-F,OLD-HERE + CALL CIRCLE-ISNT-BLACK + ZERO? STACK \?ELS9 + EQUAL? PRSO,HOLE \?ELS9 + GET P-ADJW,0 + EQUAL? STACK,A?WHITE /?THN6 +?ELS9: CALL CIRCLE-ISNT-BLACK + ZERO? STACK \?ELS11 + EQUAL? PRSI,HOLE \?ELS11 + GET P-ADJW,1 + EQUAL? STACK,A?WHITE /?THN6 +?ELS11: CALL CIRCLE-ISNT-BLACK + ZERO? STACK /?ELS13 + EQUAL? PRSO,HOLE \?ELS13 + GET P-ADJW,0 + EQUAL? STACK,A?BLACK /?THN6 +?ELS13: CALL CIRCLE-ISNT-BLACK + ZERO? STACK /?ELS5 + EQUAL? PRSI,HOLE \?ELS5 + GET P-ADJW,1 + EQUAL? STACK,A?BLACK \?ELS5 +?THN6: CALL CANT-SEE,HOLE + RSTACK +?ELS5: CALL HOLE-INVISIBLE + ZERO? STACK /?ELS17 + CALL CANT-SEE,HOLE + RSTACK +?ELS17: EQUAL? HERE,CELL \?ELS19 + CALL NOUN-USED,W?HOLE,HOLE + ZERO? STACK /?ELS19 + EQUAL? PRSA,V?WALK-TO,V?ENTER,V?BOARD /?THN22 + EQUAL? PRSA,V?LOOK-INSIDE \?ELS19 +?THN22: CALL DO-WALK,P?UP + RSTACK +?ELS19: LOC PROTAGONIST + EQUAL? STACK,CAGE,FIRST-SLAB,SECOND-SLAB \?ELS25 + CALL TOUCHING?,HOLE + ZERO? STACK /?ELS25 + CALL CANT-REACH,HOLE + RTRUE +?ELS25: EQUAL? PRSA,V?BOARD,V?ENTER,V?STAND-ON \?ELS29 + CALL CIRCLE-ISNT-BLACK + ZERO? STACK /?ELS32 + PRINT NOTHING-HAPPENS + RTRUE +?ELS32: IN? PROTAGONIST,HERE /?CND30 + CALL NOT-GOING-ANYWHERE + RTRUE +?CND30: CALL FALL-THROUGH-HOLE + SET 'LONG-CORRIDOR-LOC,1 + SET 'MAD-SCIENTIST-COUNTER,0 + SET 'IMPATIENCE-COUNTER,0 + CALL DEQUEUE,I-MAD-SCIENTIST + SET 'OLD-HERE,HERE + EQUAL? HERE,LONG-CORRIDOR \?ELS37 + PRINTI "Geronimo! + Yow! You appear in midair, high above a canal-studded desertscape. The ground is approaching uncomfortably fast. + Caw! Caw! A pterodactyl snatches you" + CALL AND-SIDEKICK + PRINTI " in midair and deposits you safely in" + PRINT ELLIPSIS + FSET? MY-KIND-OF-DOCK,TOUCHBIT \?ELS40 + RANDOM 100 + LESS? 60,STACK /?ELS40 + CALL GOTO,MY-KIND-OF-DOCK + JUMP ?CND35 +?ELS40: FSET? OASIS,TOUCHBIT \?ELS44 + RANDOM 100 + LESS? 40,STACK /?ELS44 + CALL GOTO,OASIS + JUMP ?CND35 +?ELS44: CALL GOTO,RUINED-CASTLE-2 + JUMP ?CND35 +?ELS37: GETP HERE,P?HOLE-DESTINATION + CALL GOTO,STACK +?CND35: EQUAL? OLD-HERE,WELL-BOTTOM \TRUE + IN? SIDEKICK,WELL-BOTTOM \TRUE + SET 'HOLE-MOVE,TRUE-VALUE + CALL SIDEKICK-FOLLOWS-YOU + SET 'HOLE-MOVE,FALSE-VALUE + RTRUE +?ELS29: EQUAL? PRSA,V?TAKE,V?LOOK-UNDER \?ELS57 + PRINTR "It's not liftable." +?ELS57: EQUAL? PRSA,V?PUT-ON,V?RUB,V?POUR \?ELS59 + CALL NOUN-USED,W?STAIN,STAIN + ZERO? STACK /?ELS59 + EQUAL? PRSO,STAIN \?ELS59 + CALL APPLY-STAIN,HOLE + RSTACK +?ELS59: EQUAL? PRSA,V?PUT-THROUGH,V?PUT-ON,V?PUT \?ELS63 + EQUAL? PRSI,HOLE \?ELS63 + CALL CIRCLE-ISNT-BLACK + ZERO? STACK /?ELS70 + CALL WASTES + RSTACK +?ELS70: EQUAL? PRSO,SOD /FALSE + EQUAL? HERE,LONG-CORRIDOR \?ELS77 + REMOVE PRSO + JUMP ?CND75 +?ELS77: EQUAL? PRSO,TORCH \?CND80 + EQUAL? HERE,WELL-BOTTOM \?CND80 + CALL TORCH-OFF +?CND80: GETP HERE,P?HOLE-DESTINATION + MOVE PRSO,STACK +?CND75: CALL NON-DIMENSIONAL-JOURNEY + RSTACK +?ELS63: CALL CIRCLE-ISNT-BLACK + ZERO? STACK \FALSE + EQUAL? PRSA,V?TOUCH,V?REACH-IN \?ELS88 + PRINT HAND-DWINDLES + RTRUE +?ELS88: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS90 + PRINT STARING-INTO-VOID + RTRUE +?ELS90: EQUAL? PRSA,V?MEASURE \FALSE + CALL PERFORM-PRSA,FLEXIBLE-HOLE + RTRUE + + + .FUNCT HOLE-INVISIBLE + EQUAL? HERE,GARDEN \?ELS9 + FSET? SOD,MUNGBIT \TRUE +?ELS9: EQUAL? HERE,CELL \?ELS11 + ZERO? HOLE-OPEN /TRUE +?ELS11: EQUAL? HERE,LONG-CORRIDOR \FALSE + EQUAL? LONG-CORRIDOR-LOC,3 /FALSE + RTRUE + + + .FUNCT NON-DIMENSIONAL-JOURNEY + PRINTI "You get all cross-eyed trying to follow the non-dimensional journey of" + CALL TPRINT-PRSO + PRINTI " into" + CALL TPRINT,HOLE + PRINTI ". When you get your eyeballs untangled again," + CALL TPRINT-PRSO + PRINTR " is gone." + + + .FUNCT FALL-THROUGH-HOLE + SET 'HOLE-MOVE,TRUE-VALUE + SET 'RAFT-HELD,FALSE-VALUE + PRINTI "You're sucked into the hole in a direction that isn't down, but neither is it one of the other directions with which you're familiar." + CALL ULTIMATELY-IN?,WHITE-SUIT + ZERO? STACK /?CND1 + MOVE WHITE-SUIT,AT-MAIN-HATCH + FCLEAR WHITE-SUIT,TOUCHBIT + FCLEAR WHITE-SUIT,WORNBIT + CALL VISIBLE?,WHITE-SUIT + ZERO? STACK /?CND1 + PRINTI " Oddly, your " + CALL DPRINT,WHITE-SUIT + PRINTI " vanishes without a trace." +?CND1: CRLF + CRLF + RTRUE + + + .FUNCT TOUCHING?,THING + EQUAL? PRSO,THING \?ELS5 + EQUAL? PRSA,V?TAKE,V?TOUCH,V?SHAKE /TRUE + EQUAL? PRSA,V?CLEAN,V?KISS,V?SWIM /TRUE + EQUAL? PRSA,V?PUSH,V?CLOSE,V?LOOK-UNDER /TRUE + EQUAL? PRSA,V?MOVE,V?OPEN,V?KNOCK /TRUE + EQUAL? PRSA,V?SET,V?SHAKE,V?RAISE /TRUE + EQUAL? PRSA,V?UNLOCK,V?LOCK,V?CLIMB-UP /TRUE + EQUAL? PRSA,V?CLIMB,V?CLIMB-DOWN,V?CLIMB-ON /TRUE + EQUAL? PRSA,V?BOARD,V?ENTER,V?ON /TRUE + EQUAL? PRSA,V?OFF,V?SET,V?THROW /TRUE + EQUAL? PRSA,V?TASTE,V?FUCK,V?RAPE /TRUE + EQUAL? PRSA,V?LOOK-INSIDE,V?STAND-ON,V?TIE /TRUE + EQUAL? PRSA,V?MUNG,V?KICK,V?KILL /TRUE + EQUAL? PRSA,V?KNOCK,V?CUT,V?WHIP /TRUE + EQUAL? PRSA,V?BITE,V?PUSH /TRUE +?ELS5: EQUAL? PRSI,THING \FALSE + EQUAL? PRSA,V?PUT-ON,V?PUT,V?GIVE \FALSE + RTRUE + + + .FUNCT IN-CATACOMBS + EQUAL? HERE,CATACOMBS,WELL-BOTTOM,LADDER-ROOM /TRUE + EQUAL? HERE,BURIAL-CHAMBER,FORGOTTEN-STOREHOUSE \FALSE + RTRUE + + + .FUNCT IN-SPACE? + EQUAL? HERE,HOLD,STABLE,AT-MAIN-HATCH /TRUE + EQUAL? HERE,LONG-CORRIDOR,IN-SPACE,SPACE-YACHT \FALSE + RTRUE + + + .FUNCT CANT-SEE,OBJ=0,STRING=0 + SET 'P-WON,FALSE-VALUE + PRINT YOU-CANT + EQUAL? OBJ,ODOR \?ELS3 + PRINTI "smell" + JUMP ?CND1 +?ELS3: PRINTI "see" +?CND1: ZERO? OBJ /?THN9 + ZERO? OBJ /?CND6 + CALL NAME?,OBJ + ZERO? STACK \?CND6 +?THN9: PRINTI " any" +?CND6: ZERO? OBJ \?ELS15 + PRINTI " " + PRINT STRING + JUMP ?CND13 +?ELS15: EQUAL? OBJ,PRSI \?ELS17 + CALL PRSI-PRINT + JUMP ?CND13 +?ELS17: CALL PRSO-PRINT +?CND13: PRINTI " here." + CRLF + CALL STOP + RSTACK + + + .FUNCT CANT-VERB-A-PRSO,STRING + PRINT YOU-CANT + PRINT STRING + CALL APRINT,PRSO + PRINTR "!" + + + .FUNCT OPEN-YOUR-EYES + FSET? EYES,MUNGBIT \?ELS5 + CALL DO-FIRST,STR?66,EYES + RSTACK +?ELS5: CALL DO-FIRST,STR?133,EYES + RSTACK + + + .FUNCT NOW-TIED,OBJ + PRINTI "Okay," + CALL TPRINT-PRSO + PRINTI " is now tied to" + CALL TRPRINT,OBJ + RSTACK + + + .FUNCT TELL-HIT-HEAD + PRINTI "You bang your bean against" + CALL TPRINT-PRSO + PRINTR " as you attempt this." + + + .FUNCT NOUN-USED,TEST-NOUN,OBJ + EQUAL? PRSO,OBJ \?ELS5 + GET P-NAMW,0 + EQUAL? STACK,TEST-NOUN /TRUE +?ELS5: EQUAL? PRSI,OBJ \FALSE + GET P-NAMW,1 + EQUAL? STACK,TEST-NOUN \FALSE + RTRUE + + + .FUNCT ADJ-USED,TEST-ADJ,?TMP1 + GET P-ADJW,0 >?TMP1 + GET P-ADJW,1 + EQUAL? TEST-ADJ,?TMP1,STACK \FALSE + RTRUE + + + .FUNCT OFF-VEHICLE?,OBJ + EQUAL? OBJ,STOOL,TOILET,FRONT-STOOP /TRUE + EQUAL? OBJ,FIRST-SLAB,SECOND-SLAB \FALSE + RTRUE + + + .FUNCT OPEN-CLOSED,OBJ + FSET? OBJ,OPENBIT \?ELS5 + PRINTI "open" + RTRUE +?ELS5: PRINTI "closed" + RTRUE + + + .FUNCT WEE + SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTR "Wasn't that fun?" + + + .FUNCT IN-YOUR-PACKAGE,STRING + PRINTI "This is the " + PRINT STRING + CALL IN-PACKAGE + RSTACK + + + .FUNCT IN-PACKAGE + PRINTI " that came in your " + PRINT LGOP-CAPS + PRINTI " package." + RTRUE + + + .FUNCT HIS-HER,CAP-H=0 + ZERO? CAP-H /?ELS3 + PRINTI "H" + JUMP ?CND1 +?ELS3: PRINTI "h" +?CND1: ZERO? MALE /?ELS11 + PRINTI "is" + RTRUE +?ELS11: PRINTI "er" + RTRUE + + + .FUNCT HER-HIS,CAP-H=0 + ZERO? CAP-H /?ELS3 + PRINTI "H" + JUMP ?CND1 +?ELS3: PRINTI "h" +?CND1: ZERO? MALE /?ELS11 + PRINTI "er" + RTRUE +?ELS11: PRINTI "is" + RTRUE + + + .FUNCT HIM-HER + ZERO? MALE /?ELS5 + PRINTI "him" + RTRUE +?ELS5: PRINTI "her" + RTRUE + + + .FUNCT HER-HIM + ZERO? MALE /?ELS5 + PRINTI "her" + RTRUE +?ELS5: PRINTI "him" + RTRUE + + + .FUNCT HE-SHE,CAP=0 + ZERO? MALE /?ELS3 + ZERO? CAP /?ELS7 + PRINTI "H" + JUMP ?CND1 +?ELS7: PRINTI "h" + JUMP ?CND1 +?ELS3: ZERO? CAP /?ELS15 + PRINTI "Sh" + JUMP ?CND1 +?ELS15: PRINTI "sh" +?CND1: PRINTI "e" + RTRUE + + + .FUNCT SHE-HE,CAP=0 + ZERO? MALE /?ELS3 + ZERO? CAP /?ELS7 + PRINTI "Sh" + JUMP ?CND1 +?ELS7: PRINTI "sh" + JUMP ?CND1 +?ELS3: ZERO? CAP /?ELS15 + PRINTI "H" + JUMP ?CND1 +?ELS15: PRINTI "h" +?CND1: PRINTI "e" + RTRUE + + + .FUNCT CANT-REACH,OBJ + PRINT YOU-CANT + PRINTI "reach" + CALL TPRINT,OBJ + IN? PROTAGONIST,HERE /?CND1 + PRINTI " from" + LOC PROTAGONIST + CALL TPRINT,STACK +?CND1: PRINT PERIOD-CR + RTRUE + + + .FUNCT EAGERLY-ACCEPTS + MOVE PRSO,PRSI + PRINTI "Eagerly," + CALL TPRINT-PRSI + PRINTI " accepts" + CALL TPRINT-PRSO + RSTACK + + + .FUNCT NOT-ON-GROUND,VEHICLE + PRINTI "But" + CALL TPRINT,VEHICLE + PRINTR " isn't on the ground!" + + + .FUNCT AND-SIDEKICK,NEW-SIDEKICK-LOC=0 + CALL VISIBLE?,SIDEKICK + ZERO? STACK /FALSE + ZERO? NEW-SIDEKICK-LOC /?CND6 + MOVE SIDEKICK,NEW-SIDEKICK-LOC +?CND6: PRINTI " and " + CALL DPRINT-SIDEKICK + RSTACK + + + .FUNCT PLAYER-CANT-SEE + FSET? EYES,MUNGBIT /?THN6 + EQUAL? HAND-COVER,EYES \?ELS5 +?THN6: CALL OPEN-YOUR-EYES + RSTACK +?ELS5: ZERO? LIT \FALSE + PRINT TOO-DARK + CRLF + RTRUE + + + .FUNCT DO-FIRST,STRING,OBJ=0 + PRINT YOULL-HAVE-TO + PRINT STRING + ZERO? OBJ /?CND1 + CALL TPRINT,OBJ +?CND1: PRINTR " first." + + + .FUNCT NOT-IN + PRINTI "But" + CALL TPRINT-PRSO + PRINTI " isn't " + FSET? PRSI,ACTORBIT \?ELS3 + PRINTI "being held by" + JUMP ?CND1 +?ELS3: FSET? PRSI,SURFACEBIT \?ELS5 + PRINTI "on" + JUMP ?CND1 +?ELS5: PRINTI "in" +?CND1: CALL TRPRINT,PRSI + RSTACK + + + .FUNCT NO-LID + PRINTI "The " + CALL DPRINT,PRSO + PRINTR " has no lid." + + + .FUNCT SORE,STRING + PRINTI "You begin to get a sore " + PRINT STRING + PRINT PERIOD-CR + RTRUE + + + .FUNCT CANT-USE-THAT-WAY,STRING + PRINTI "[" + PRINT YOU-CANT + PRINTI "use " + PRINT STRING + PRINTR " that way.]" + + + .FUNCT RECOGNIZE + SET 'P-WON,FALSE-VALUE + PRINTR "[That sentence isn't one I recognize.]" + + + .FUNCT EXPLETIVE + PRINTI " ""Oh " + ZERO? NAUGHTY-LEVEL \?ELS3 + PRINTI "shucks" + JUMP ?CND1 +?ELS3: EQUAL? NAUGHTY-LEVEL,1 \?ELS5 + PRINTI "damn" + JUMP ?CND1 +?ELS5: PRINTI "shit" +?CND1: PRINTI "! " + RTRUE + + + .FUNCT PRONOUN + EQUAL? PRSO,ME \?ELS5 + PRINTI "You" + RTRUE +?ELS5: FSET? PRSO,PLURALBIT \?ELS7 + PRINTI "They" + RTRUE +?ELS7: FSET? PRSO,FEMALEBIT \?ELS9 + PRINTI "She" + RTRUE +?ELS9: FSET? PRSO,ACTORBIT \?ELS11 + PRINTI "He" + RTRUE +?ELS11: PRINTI "It" + RTRUE + + + .FUNCT REFERRING,HIM-HER=0 + PRINTI "I don't see wh" + ZERO? HIM-HER /?ELS3 + PRINTI "o" + JUMP ?CND1 +?ELS3: PRINTI "at" +?CND1: PRINTR " you're referring to." + + + .FUNCT NO-ONE-HERE,STRING + PRINTI "There's no one here to " + PRINT STRING + PRINT PERIOD-CR + RTRUE + + + .FUNCT SEE-MANUAL,STRING + PRINTI "[You need quotes to " + PRINT STRING + PRINTR " See the instruction manual section entitled ""Communicating With Infocom's Interactive Fiction.""]" + + + .FUNCT UNIMPORTANT-THING-F + PRINTR "That's not important; leave it alone." + + .ENDI diff --git a/globals.zil b/globals.zil new file mode 100644 index 0000000..d35d704 --- /dev/null +++ b/globals.zil @@ -0,0 +1,1775 @@ +"GLOBALS for + LEATHER GODDESSES OF PHOBOS + (c) Copyright 1986 Infocom, Inc. All Rights Reserved." + + + + + + + + + + + + + + + + + + + +> + + ;"sum of highest possible scores" + + ;"what you tell player the maximum score is" + +) "AUX" CHANGE DIF) + >)> + .BASE>> + .CHANGE>> + > + >>> + >> + + + +)> + + + + + + + > + + ) + ( + ) + (T + )>)>> + + + + + > + > + >> + > + ) + ( + > + ,MALE> + >> + > + ) + ( + + ) + ( + > + + + ) + (T + + )>) + ( + > + + >> + ) + ( + > + + )>> + + + > + ) + ( + > + ) + (T + )>> + + + + + + + + + + + + + + ) + (> + > + + ) + (T + )> + )>> + + + + ;"for YOUNG WOMAN" + + ) + ( + ) + ( + ) + (T + )>) + ( ,W?MAN> ;"MAN is the PRSO" + ;"in case PRSI is also MAN or WOMAN"> + > + + ) + (T + )>) + ( ,W?WOMAN> ;"WOMAN is the PRSO" + ;"in case PRSI is also MAN or WOMAN"> + > + + ) + (T + )>) + ( ,W?MAN> ;"MAN is the PRSI" + ;"in case PRSO is also MAN or WOMAN"> + > + + ) + (T + )>) + ( ,W?WOMAN> ;"WOMAN is the PRSI" + ;"in case PRSO is also MAN or WOMAN"> + > + + ) + (T + )>)>> + + + + ) + ( + ) + ( + ) + ( + ) + ( + ,MALE> + ) + ( + > + ) + ( + ,MALE> + ) + ( + > + ) + ( + ,MALE> + ) + (T + )>> + + + + > + ) + ( + ,MALE> + ) + ( + >> + ) + ( + ) + ( + > + ) + ( + ,MALE> + ) + ( + > + ) + (T + )>> + + + +)) + + > + + ) + ( + >> + + ) + (T + )> + ) + ( + + > + + ) + ( + + + + + + + + + > + + + + + + + + + + + >> + + ) + ( + ) + (T + + >)> + > + ) + ( + > + )> + > + > + )>) + (T + )> + + ) + (T + )>) + (T + + ) + (T + )> + + + ) + (T + )> + > + > + )> + + + > + )> + )> + > + + + + + + > + ) + (T + )>> + + + ) + (T + )>> + + if PRSO/PRSI ready to use" +;"Special-case code goes here. returns # of matches. If 1, +then P-MOBY-FOUND is it. You can treat the 0 and >1 cases alike or differently. +Always return RFALSE (not handled) if you have resolved the problem." + > + ;)> + + ;)> + + ) + (T + )> + ) + ( + > ,P?GENERIC>>>> +;"Protocol: returns .OBJ if that's the one to use + ,NOT-HERE-OBJECT if case was handled and msg TELLed + <> if WHICH-PRINT should be called" + ;)> + + ) + (.PRSO? + + ) + (T + )> + ) + (T + ,NOT-HERE-OBJECT)>> + + + )> + + )>) + (.PRSO? + <>>) + (T + <>>)>> + + + + + > + + ) + (T + )>)>> + + + + + + ) + ( + > + )>> + + + + + + ) + ( + ,BARGE>> + ) + (T + )> + + + ) + ( + >> + ) + ( + ) + ( + ) + ( + > + + ) + ( + )>) + ( + > + + ) + ( + ) + ( + ) + ( + ) + ( + > + ;"V-LEAP handles it" + )>> + +; + +; + + > + + )>> + + + + + + > + + ) + ( + ,HOLE-OPEN> + ) + ( + > + )>) + (> + ) + ( + + ,HOLE-OPEN> + ) + ( + + )>> + + + + + >> + ) + ( + > + ) + ( + > + ;"the Plaza odor comes after final prompt") + ( + + >> + + + " in the air." CR>) + (T + + + ,M-SMELL> + )>) + ( + + + + ) + ( + ) + ( + >> + + + ) + (T + )>)>> + +)) + + ) + (T + >)> + + + > + +> + + + + + > + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + > + + ) + ( + + + ) + (T + + )>) + ( + > + + > + ) + ( + > + + ) + (T + )>) + ( ;"for TURN ON WATER or RUN WATER" + > + + ) + ( + )>> + +; + +; + )>> + + + + + > + ) + ( + + + ) + (> + + ) + (T + )>) + ( + + ) + (T + )> + ) + ( + ) + ( + > + + ) + ( + > + + ) + ( + > + + ) + ( + > + ) + ( 0> + ) + (T + ) + (T + + + + ) + (T + )>)> + )>)>> + +> + + ) + (> + >> + >)> + >> + > + +> + + + + + > + + + )>> + + + + + ) + ( + + ) + (T + )>) + (T + + )>) + ( + + + ) + (T + )>) + (T + )>)>> + +> + + + + >)>> + + + + + > + + ) + ( + + > + + >)> + + )>> + + + + + ) + ( + > + + ) + ( + + > + + >)> + + )>> + + + + + > + + ) + ( + > + + + ;"should say YOU HAVE LIP BALM (SMEARED...)" + ) + ( + > + + ) + ( + )>> + + + + + + + + + + + > + > + + + ) + (T + + )>) + (T + )>> + + + + + + + + ) + ( + ) + ( + + + >> + + ) + ( + >> + ) + ( + > + + ) + ( + > + + ) + ( + ) + ( + + ) + ( + ) + (T + + + ) + (T + )>)>) + ( + ) + ( + ) + ( + ) + ( + ,BODY-TIED-TO-SLAB> + + ) + (T + )>) + ( + > + > + ) + (T + )>) + ( + )>> + + + + + ) + ( + ) + ( + ) + ( + + + ) + (T + )>) + ;( + + + ) + ( + > + + + ) + (T + + )>)>> + + + + + + > + ) + ( + ) + ( + ) + ( + ) + ( + )>) + ( + + ) + ( + ) + (T + )>) + ( + + ) + (T + )>) + ( + )>> + + + +> + + >> + ) + ( + + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + )>)>> + + + + + ) + ( + + > + )> + ) + (T + )>) + ( + > + )>> + + + + + + + + ) + ( + + + )> + + + + > + ) + (T + )> + ) + ( + + > + )> + ) + ( + ) + ( + + ) + (T + + ;"so you can refer" + )>) + ( + ) + ( + )>) + ( + + ) + (T + )>) + ( + + ) + (T + )>) + ( + + > + + ) + ( + ) + ( + > + ;"SHEET-F handles it") + (T + + + + > + )> + )>) + ( + + > + + ) + ( + + + ) + (T + )>) + ( + ) + ( + ) + (T + )>)>> + + + + + )>> + + + +> + +> + + ,A?WHITE>> + > + + ,A?WHITE>> + + + ,A?BLACK>> + + + ,A?BLACK>>> + ) + ( + ) + ( + + > + ) + ( ,CAGE ,FIRST-SLAB ,SECOND-SLAB> + > + + ) + ( + + + ) + (> + + )> + + + + + + + + + + + + > + ) + ( + > + ) + (T + )>) + (T + >)> + + > + ;"the call to GOTO, above, clears it" + + >)> + ) + ( + ) + ( + + > + ) + ( + > + + ) + ( + ;"SOD-F handles it") + (T + + ;"Geronimo!") + (T + + > + )> + >)> + )>) + ( + ) + ( + ) + ( + ) + ( + + )>> + + + >> + + > + + >>> + ) + (T + )>> + +> + + + > + + + + + + + )>)> + > + + + + + + + + + + + + + + + + >> + ) + ( + > + ) + (T + )>> + + + ) + ( + ) + (T + )>> + + + > + ) + (T + )>> + +) (STRING <>)) + > + + + ) + (T + )> + + >>> + )> + + ) + ( + ) + (T + )> + + > + +> + + + ) + (T + )>> + +> + +> + + + .TEST-NOUN>> + ) + ( + .TEST-NOUN>> + ) + (T + )>> + + > + ) + (T + )>> + + + > + ) + (T + )>> + + + ) + (T + )>> + + + + > + + + > + +> + +)) + ) + (T + )> + ) + (T + )>> + +)) + ) + (T + )> + ) + (T + )>> + +) + (T + )>> + +) + (T + )>> + +)) + ) + (T + )>) + (T + ) + (T + )>)> + > + +)) + ) + (T + )>) + (T + ) + (T + )>)> + > + + + > + >)> + > + + + > + +> + +)) + + )> + )>> + + + > + ) + ( + ) + (T + )>> + +)) + + )> + > + + + + ) + ( + ) + (T + )> + > + +> + +> + +> + +> + > + + + + ) + ( + ) + (T + )> + > + + + ) + ( + ) + ( + ) + ( + ) + (T + )>> + + +)) + + ) + (T + )> + > + +> + +> + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mars.zap b/mars.zap new file mode 100644 index 0000000..f27c765 --- /dev/null +++ b/mars.zap @@ -0,0 +1,3367 @@ + + + .FUNCT NAME-CASTLE + FSET? HERE,TOUCHBIT /FALSE + ZERO? CASTLES-SEEN \?ELS6 + PUTP HERE,P?SDESC,STR?233 + JUMP ?CND4 +?ELS6: EQUAL? CASTLES-SEEN,1 \?ELS8 + PUTP HERE,P?SDESC,STR?234 + JUMP ?CND4 +?ELS8: EQUAL? CASTLES-SEEN,2 \?CND4 + PUTP HERE,P?SDESC,STR?235 +?CND4: INC 'CASTLES-SEEN + RETURN CASTLES-SEEN + + + .FUNCT CASTLE-NOTE + EQUAL? CASTLES-SEEN,2 \?ELS5 + PRINTI "(There do seem to be quite a few of them around here, eh?) " + RTRUE +?ELS5: EQUAL? CASTLES-SEEN,3 \FALSE + PRINTI "(It's no wonder this section of Mars is considered the Ruined Castle Capital of the Solar System.) " + RTRUE + + + .FUNCT RUINED-CASTLE-1-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + CALL NAME-CASTLE + RSTACK +?ELS5: EQUAL? RARG,M-LOOK \FALSE + PRINTI "You stand amongst the ruins of a mighty castle. " + CALL CASTLE-NOTE + PRINTI "The only part of the castle that is more than a pile of rubble is to the north. A path leads out of the ruin to the south." + RTRUE + + + .FUNCT THRONE-ROOM-F,RARG + EQUAL? RARG,M-LOOK \FALSE + REMOVE MITRE + MOVE MITRE,HERE + PRINTI "This is the " + PRINTD HERE + PRINTI " of the once-potent " + PRINTD MITRE + PRINTI ", of legendary fame. Of course, the version you've probably heard is significantly warped from What Really Happened. + In the diseased version of the legend commonly transmitted on Earth, Mitre is called Midas. The King was granted his wish that everything he touched would turn to gold. His greed caught up with him when he transformed even his own daughter into gold. + " + PRINTD MITRE + PRINTI "'s wish was, in fact, that everything he touched would turn to" + PRINT 45-DEGREE-ANGLE + PRINTI "s. " + ZERO? NAUGHTY-LEVEL \?ELS8 + PRINTI "T" + JUMP ?CND6 +?ELS8: PRINTI "No one has ever explained this strange wish; the most likely hypothesis is a sexual fetish. In any case, t" +?CND6: PRINTI "he tale has a similar climax, with Mitre turning his own daughter into a" + PRINT 45-DEGREE-ANGLE + PRINTI "." + RTRUE + + + .FUNCT MITRE-CROWN-F + EQUAL? PRSA,V?TAKE \?ELS5 + PRINT MORE-ROYAL-BLOOD + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It's not very round for a crown." + + + .FUNCT GOWN-F + EQUAL? PRSA,V?TAKE \FALSE + CALL PERFORM-PRSA,THETA + RTRUE + + + .FUNCT MITRE-F,OARG=0 + ZERO? OARG /?ELS5 + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " King Mitre sits upon the throne, looking " + FSET? THETA,MUNGBIT \?ELS12 + PRINTI "dejected and lonely. Next to him is a pile of" + PRINT 45-DEGREE-ANGLE + PRINTI "s. One stands out from the others, thanks to its golden hair and flowing white gown" + JUMP ?CND10 +?ELS12: PRINTI "delirious with joy" +?CND10: PRINTI ". The main entrance of the throne room is to the south, but a tight opening leads north." + RTRUE +?ELS5: EQUAL? MITRE,WINNER \?ELS16 + EQUAL? PRSA,V?WHAT \?ELS25 + EQUAL? PRSO,LGOP /?THN22 +?ELS25: EQUAL? PRSA,V?TELL-ABOUT \?ELS21 + EQUAL? PRSO,ME \?ELS21 + EQUAL? PRSI,LGOP \?ELS21 +?THN22: PRINTR """Leather fetishists, every one of them. Me, I'm not into fetishes.""" +?ELS21: EQUAL? PRSA,V?CHEER \?ELS29 + EQUAL? PRSO,ROOMS \?ELS29 + SET 'WINNER,PROTAGONIST + CALL PERFORM-PRSA,MITRE + SET 'WINNER,MITRE + RTRUE +?ELS29: EQUAL? PRSA,V?TOUCH \?ELS33 + FSET? PRSO,TAKEBIT \?ELS33 + EQUAL? PRSO,COMIC-BOOK,GARMENT /?ELS33 + SET 'WINNER,PROTAGONIST + CALL PERFORM,V?GIVE,PRSO,MITRE + SET 'WINNER,MITRE + RTRUE +?ELS33: PRINTI """I don't feel like talking. I'm too " + FSET? THETA,MUNGBIT \?CND38 + PRINTI "un" +?CND38: PRINTI "happy.""" + CRLF + CALL STOP + RSTACK +?ELS16: EQUAL? PRSA,V?EXAMINE \?ELS42 + PRINTI "The old king looks very " + FSET? THETA,MUNGBIT \?ELS45 + PRINTI "down" + JUMP ?CND43 +?ELS45: PRINTI "up" +?CND43: PRINTR ". His appearance is rather odd, since his clothes, his jewelry, his crown, even his very throne, all have a rather angular appearance." +?ELS42: EQUAL? PRSA,V?ASK-ABOUT \?ELS53 + EQUAL? PRSI,THETA /?THN50 +?ELS53: EQUAL? PRSA,V?SHOW \?ELS49 + EQUAL? PRSO,THETA \?ELS49 +?THN50: FSET? THETA,MUNGBIT \?ELS60 + PRINTR "The king weeps pitifully." +?ELS60: PRINTR "The king beams." +?ELS49: EQUAL? PRSA,V?GIVE \?ELS64 + EQUAL? PRSI,MITRE \?ELS64 + REMOVE PRSO + PRINTI "As Mitre touches" + CALL TPRINT-PRSO + PRINTI "," + CALL TPRINT,PILE-OF-ANGLES + PRINTR " becomes a bit larger." +?ELS64: EQUAL? PRSA,V?TOUCH \?ELS68 + PRINTR "It only works the other way." +?ELS68: EQUAL? PRSA,V?SHAKE-WITH \FALSE + EQUAL? PRSO,HANDS \FALSE + PRINTI "As you join the other angles in the pile, life becomes very boring. Two centuries later, following Mitre's death, the " + PRINTD PILE-OF-ANGLES + PRINTI " is sold to a geometry teacher on Baffin Island, who uses you to demonstrate bisections, trigonometric proofs, and basic picture framing techniques." + CRLF + CALL FINISH + RSTACK + + + .FUNCT THETA-F + CALL ADJ-USED,A?NUMBER + ZERO? STACK /?ELS5 + EQUAL? P-NUMBER,45 /?ELS5 + CALL NO-X-DEGREE-ANGLE + RSTACK +?ELS5: EQUAL? THETA,WINNER \?ELS9 + EQUAL? PRSA,V?WHAT \?ELS18 + EQUAL? PRSO,LGOP /?THN15 +?ELS18: EQUAL? PRSA,V?TELL-ABOUT \?ELS14 + EQUAL? PRSO,ME \?ELS14 + EQUAL? PRSI,LGOP \?ELS14 +?THN15: PRINTR """The travelling acrobatic troupe! I saw them while I was mooning on Phobos. Their costumes are made of pure Chomperhide leather.""" +?ELS14: PRINTR "The princess, whose recent experience has made her more obtuse, just looks at you dumbly." +?ELS9: EQUAL? PRSA,V?MEASURE \?ELS24 + FSET? THETA,MUNGBIT \?ELS24 + CALL PERFORM-PRSA,PILE-OF-ANGLES + RTRUE +?ELS24: EQUAL? PRSA,V?EXAMINE \?ELS28 + FSET? THETA,MUNGBIT \?ELS33 + PRINTR "The angle has the sort of golden hair and satiny robes that one normally associates with princesses." +?ELS33: PRINTR "The princess, once acute, is now cute." +?ELS28: EQUAL? PRSA,V?FUCK,V?KISS,V?TAKE /?THN38 + EQUAL? PRSA,V?BEND,V?TOUCH \?ELS37 +?THN38: PRINTI "Mitre growls, ""Keep " + PRINTD HANDS + PRINTR "s off my daughter.""" +?ELS37: EQUAL? PRSA,V?MARRY \FALSE + FSET? THETA,MUNGBIT \?ELS46 + CALL WANT-CHILDREN,STR?237 + RSTACK +?ELS46: PRINTR """Only one of royal blood shall bisect ... er, wed ... my Theta!"" bellows Mitre." + + + .FUNCT WANT-CHILDREN,STRING + SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTI "Would you really want " + PRINT STRING + PRINTR " children?" + + + .FUNCT EIGHTY-TWO-DEGREE-ANGLE-F + CALL ADJ-USED,A?NUMBER + ZERO? STACK /?ELS5 + EQUAL? P-NUMBER,82 /?ELS5 + CALL NO-X-DEGREE-ANGLE + RSTACK +?ELS5: EQUAL? PRSA,V?MEASURE \FALSE + FSET? EIGHTY-TWO-DEGREE-ANGLE,UNTEEDBIT /FALSE + PRINTR "82 degrees." + + + .FUNCT NO-X-DEGREE-ANGLE + PRINT YOU-CANT-SEE-ANY + PRINTN P-NUMBER + PRINTR " degree angle here!" + + + .FUNCT GENERIC-ANGLE-F + FSET? THETA,MUNGBIT /FALSE + RETURN EIGHTY-TWO-DEGREE-ANGLE + + + .FUNCT PILE-OF-ANGLES-F + CALL ADJ-USED,A?NUMBER + ZERO? STACK /?ELS5 + EQUAL? P-NUMBER,45 /?ELS5 + CALL NO-X-DEGREE-ANGLE + RSTACK +?ELS5: EQUAL? PRSA,V?COUNT \?ELS9 + PRINTR "Lots." +?ELS9: EQUAL? PRSA,V?TAKE \?ELS11 + PRINTI "The " + PRINTD PILE-OF-ANGLES + PRINTI " is too big to carry." + FSET? THETA,MUNGBIT \?CND12 + PRINTI " Besides, other than" + CALL TPRINT,THETA + PRINTI ", none of them are interesting." +?CND12: CRLF + RTRUE +?ELS11: EQUAL? PRSA,V?MEASURE \FALSE + PRINTR "45 degrees." + + + .FUNCT FROG-CROWN-F + EQUAL? PRSA,V?TAKE \?ELS5 + PRINT MORE-ROYAL-BLOOD + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It's tiny." + + + .FUNCT RUINED-CASTLE-2-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + FCLEAR RUINED-CASTLE-2,MUNGBIT + CALL NAME-CASTLE + RSTACK +?ELS5: EQUAL? RARG,M-LOOK \FALSE + PRINTI "This ancient castle now lies in ruins. " + CALL CASTLE-NOTE + PRINTI "All that remains of its once-proud ramparts are dust and rubble, and an occasional stone block. A path leads away from the ruin to the west" + CALL UNCHARTABLE-DESERT,STR?239 + RSTACK + + + .FUNCT UNCHARTABLE-DESERT,STRING + PRINTI ". To the " + PRINT STRING + PRINTI ": unchartable desert." + RTRUE + + + .FUNCT FROG-F + EQUAL? PRSA,V?LISTEN,V?TELL /?THN6 + EQUAL? PRSA,V?GIVE \?ELS5 + EQUAL? PRSI,FROG \?ELS5 +?THN6: PRINTI """Ribit.""" + CRLF + EQUAL? PRSA,V?TELL \TRUE + CALL STOP + RTRUE +?ELS5: EQUAL? PRSA,V?SUCK,V?TASTE,V?EAT /?THN15 + EQUAL? PRSA,V?SMELL \?ELS14 +?THN15: PRINT YECHH + RTRUE +?ELS14: EQUAL? PRSA,V?EXAMINE \?ELS18 + PRINTR "You realize what aroused your attention: the tiny gold crown on the frog's head. The frog is otherwise totally ordinary. Ordinary for a frog, that is. By any other measure it is a repulsive creature, with swollen eyes, oozing warts, slimy skin, and a grating croak." +?ELS18: EQUAL? PRSA,V?TOUCH \?ELS20 + PRINTI "Huge, ugly warts cover every inch of " + PRINTD YOUR-BODY + ZERO? NAUGHTY-LEVEL \?ELS23 + PRINTI ", but" + JUMP ?CND21 +?ELS23: PRINTI ". Fortunately for your sex life," +?CND21: PRINTR " they quickly fade away." +?ELS20: EQUAL? PRSA,V?MARRY \?ELS27 + CALL WANT-CHILDREN,STR?241 + RSTACK +?ELS27: EQUAL? PRSA,V?KISS \FALSE + PRINTI "You lean forward" + FSET? EYES,MUNGBIT \?ELS34 + PRINTI " with " + PRINTD EYES + PRINTI " " + EQUAL? EYES,HAND-COVER \?ELS37 + PRINTI "covered" + JUMP ?CND35 +?ELS37: PRINTI "closed" +?CND35: FSET? NOSE,MUNGBIT \?ELS44 + FSET? EARS,MUNGBIT \?ELS47 + PRINTI "," + JUMP ?CND45 +?ELS47: PRINTI " and" +?CND45: PRINTI " " + PRINTD NOSE + PRINTI " shut" + FSET? EARS,MUNGBIT \?ELS54 + FSET? MOUTH,MUNGBIT \?ELS57 + PRINTI "," + JUMP ?CND55 +?ELS57: PRINTI " and" +?CND55: PRINTI " " + PRINTD EARS + PRINTI " " + EQUAL? EARS,HAND-COVER \?ELS62 + PRINTI "covered" + JUMP ?CND60 +?ELS62: PRINTI "stuffed up" +?CND60: FSET? MOUTH,MUNGBIT \?ELS69 + CALL FROG-SEX-SCENE + RTRUE +?ELS69: PRINT ABOUT-TO-KISS + PRINTR "the thought of slimy frog lips pressing against your own makes you shudder away." +?ELS54: PRINT ABOUT-TO-KISS + PRINTR "the creature lets loose a loud, croaking ""ribit."" You admit that you are incapable of kissing under such circumstances." +?ELS44: PRINT ABOUT-TO-KISS + PRINTR "the stench of old pond scum overwhelms you, and you lurch back, retching." +?ELS34: PRINT ABOUT-TO-KISS + PRINTR "the sight of its green warts and slimy skin make it impossible to continue." + + + .FUNCT FROG-SEX-SCENE + MOVE FROG,LOCAL-GLOBALS + MOVE BLENDER,HERE + CALL INCREMENT-SCORE,17,17,TRUE-VALUE + CALL OPEN-EYES-AND-REMOVE-HANDS + PRINTI " and your lips smeared with balm. Planting " + PRINTD MOUTH + PRINTI " solidly against the frog's, you kiss deeply. " + ZERO? NAUGHTY-LEVEL \?ELS3 + PRINTI "The kiss is surprisingly pleasant, until you notice that you're embracing a " + ZERO? MALE /?ELS6 + PRINTI "beautiful princess. Sh" + JUMP ?CND4 +?ELS6: PRINTI "handsome prince. H" +?CND4: PRINTI "e leaps back, blushing deeply. ""We're ... we're not married,"" " + CALL SHE-HE + PRINTI " stammers. Then, still reddening, " + CALL SHE-HE + PRINTI " vanishes into thin air! Y" + JUMP ?CND1 +?ELS3: FSET RUINED-CASTLE-2,MUNGBIT + PRINTI "When you feel a tongue sliding into " + PRINTD MOUTH + PRINTI ", revulsion gives way to pleasure, as the no-longer-enchanted but quite enchanting prince" + ZERO? MALE /?CND12 + PRINTI "ss" +?CND12: PRINTI " presses against you. " + EQUAL? NAUGHTY-LEVEL,1 \?ELS18 + PRINTI "Some time later, after the prince" + ZERO? MALE /?CND19 + PRINTI "ss" +?CND19: PRINTI " has departed..." + JUMP ?CND16 +?ELS18: ZERO? MALE /?ELS27 + PRINTI "Rubbing her hot, naked body against yours, s" + JUMP ?CND25 +?ELS27: PRINTI "As your arms grip his naked, muscular back, " +?CND25: PRINTI "he effortlessly slips off your " + CALL DPRINT,GARMENT + PRINTI ". A warm and wild feeling springs from your loins, spreading like a fiery potion through your veins. Within moments you are joined in passionate love, and just as a quick and lustful orgasm seems inevitable, a force crackles in the air, and you are alone, naked, sweating, and unsatisfied." +?CND16: CRLF + PRINTI " As you gather up your garment and put it on, y" +?CND1: PRINTI "ou notice" + CALL APRINT,BLENDER + PRINTI " on the ground. " + PRINT ITS-ENGRAVED + IN? SIDEKICK,HERE \?CND31 + PRINTI " " + CALL DPRINT-SIDEKICK + PRINTI " is at the other end of the ruin, sifting through some rubble, oblivious to your ""experience.""" +?CND31: CRLF + RTRUE + + + .FUNCT BLENDER-F + EQUAL? PRSA,V?READ \?ELS5 + ZERO? NAUGHTY-LEVEL /?ELS8 + PRINTI """Dearest," + CRLF + EQUAL? NAUGHTY-LEVEL,2 \?ELS11 + PRINTI " Sorry to leave so abruptly; p" + JUMP ?CND9 +?ELS11: PRINTI " P" +?CND9: PRINTI "erhaps some day we will meet again" + EQUAL? NAUGHTY-LEVEL,2 \?CND14 + PRINTI ", and finish what we began" +?CND14: PRINTI ". " + JUMP ?CND6 +?ELS8: PRINTI """" +?CND6: PRINTR "Please accept this token of my gratitude for delivering me from enchantment.""" +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS20 + CALL NOUN-USED,W?ENGRAV,BLENDER + ZERO? STACK /?ELS25 + CALL PERFORM,V?READ,BLENDER + RTRUE +?ELS25: PRINT ITS-ENGRAVED + CRLF + RTRUE +?ELS20: EQUAL? PRSA,V?ON \?ELS29 + PRINTR """Whirr.""" +?ELS29: EQUAL? PRSA,V?LOOK-INSIDE \?ELS31 + PRINTR "It's empty." +?ELS31: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,BLENDER \FALSE + PRINTI "But" + CALL TPRINT-PRSO + PRINTR " doesn't need blending." + + + .FUNCT RUINED-CASTLE-3-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + CALL NAME-CASTLE + RSTACK +?ELS5: EQUAL? RARG,M-LOOK \FALSE + PRINTI "Wind whistles among the fallen archways, crumbled balustrades, and black circle of this ruined castle. " + CALL CASTLE-NOTE + PRINTI "Paths lead east and northwest through the rubble." + RTRUE + + + .FUNCT MOUSE-F + EQUAL? PRSA,V?CLICK \?ELS5 + SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTR "You expect maybe a window to open?" +?ELS5: EQUAL? PRSA,V?SHOW \?ELS7 + EQUAL? PRSO,PAINTING \?ELS7 + FSET? PAINTING,UNTEEDBIT /?ELS7 + FCLEAR MOUSE,TRYTAKEBIT + FSET MOUSE,TOUCHBIT + CALL QUEUE,I-MOUSE,2 + PRINTR "The mouse freezes with fear." +?ELS7: EQUAL? PRSA,V?GIVE \?ELS11 + EQUAL? PRSI,MOUSE \?ELS11 + PRINTR "Marsmice, like earthmice, prefer cheese." +?ELS11: EQUAL? PRSA,V?CATCH \?ELS15 + CALL PERFORM,V?TAKE,MOUSE + RTRUE +?ELS15: CALL TOUCHING?,MOUSE + ZERO? STACK /?ELS17 + IN? MOUSE,HERE \?ELS17 + FSET? MOUSE,TRYTAKEBIT \?ELS17 + PRINTR "The little fellow scurries easily away from you." +?ELS17: EQUAL? PRSA,V?FOLLOW \?ELS21 + EQUAL? P-PRSA-WORD,W?CHASE \?ELS21 + IN? MOUSE,HERE \?ELS21 + FSET? MOUSE,TRYTAKEBIT \?ELS21 + CALL PERFORM,V?TAKE,MOUSE + RTRUE +?ELS21: EQUAL? PRSA,V?TAKE \?ELS25 + FSET? MOUSE,MUNGBIT /?ELS25 + CALL CCOUNT,PROTAGONIST + LESS? STACK,11 \?ELS25 + FSET MOUSE,MUNGBIT + CALL INCREMENT-SCORE,14,9,TRUE-VALUE + RFALSE +?ELS25: EQUAL? PRSA,V?MEASURE \?ELS29 + PRINTR "Tiny." +?ELS29: EQUAL? PRSA,V?TOUCH \FALSE + PRINTR "The mouse squeaks happily." + + + .FUNCT I-MOUSE + FSET MOUSE,TRYTAKEBIT + IN? MOUSE,RUINED-CASTLE-1 \?CND1 + FCLEAR MOUSE,TOUCHBIT +?CND1: IN? MOUSE,HERE \FALSE + PRINTR " The mouse relaxes and begins scampering about." + + + .FUNCT ROYAL-DOCKS-F,RARG + EQUAL? RARG,M-LOOK \FALSE + ZERO? NAUGHTY-LEVEL \?ELS8 + PRINTI "This dock juts" + JUMP ?CND6 +?ELS8: PRINTI "During the peak of King Mitre's reign, a cruel joke went around the kingdom that Mitre's two greatest loves were his Royal Docks and his Royal Ducks. The joke was never very good and has long since been forgotten, and the ducks perished years ago from a sexually-transmitted disease, but the docks remain, jutting" +?CND6: PRINTI " into a wide Martian Canal which flows from west to east. Behind you, to the south, is a ruined castle." + RTRUE + + + .FUNCT BARGE-F,OARG=0 + ZERO? OARG /?ELS5 + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " A barge, hand-crafted from fine Martian cedarwood, is " + EQUAL? HERE,CANAL \?ELS14 + PRINTI "floating nearby." + RTRUE +?ELS14: PRINTI "moored at the end of the dock." + RTRUE +?ELS5: EQUAL? HERE,CANAL \?ELS18 + IN? PROTAGONIST,RAFT \?ELS18 + EQUAL? RAFT-LOC-NUM,BARGE-LOC-NUM /?ELS18 + CALL CANT-SEE,BARGE + RSTACK +?ELS18: EQUAL? PRSA,V?SINK \?ELS22 + PRINTR "The barge is unsinkable. (Then again, so was the Titanic.)" +?ELS22: EQUAL? PRSA,V?LAUNCH,V?UNTIE \?ELS24 + PRINTI "The barge isn't moored" + IN? BARGE,CANAL /?CND25 + PRINTI " with ropes" +?CND25: PRINT PERIOD-CR + RTRUE +?ELS24: EQUAL? PRSA,V?EXAMINE \?ELS29 + CALL NOUN-USED,W?CONTROL,BARGE + ZERO? STACK /?ELS34 + PRINTI "The controls consist of a " + PRINTD ORANGE-BUTTON + PRINTI ", and a " + PRINTD PURPLE-BUTTON + PRINTR ". Both buttons have writing on them." +?ELS34: PRINTI "This large barge could host a host of royal guests." + EQUAL? HERE,CANAL /?CND37 + PRINTI " The barge rests immobile at the dockside, despite a strong current and no visible mooring lines." +?CND37: PRINTI " There are some simple controls on the side of the barge" + EQUAL? HERE,CANAL /?CND40 + PRINTI " nearest the dock" +?CND40: PRINT PERIOD-CR + RTRUE +?ELS29: EQUAL? PRSA,V?READ \?ELS44 + CALL PERFORM-PRSA,ORANGE-BUTTON + CALL PERFORM-PRSA,PURPLE-BUTTON + RTRUE +?ELS44: EQUAL? PRSA,V?PUSH \?ELS46 + CALL NOUN-USED,W?CONTROL,BARGE + ZERO? STACK /?ELS46 + CALL PERFORM-PRSA,ORANGE-BUTTON + PRINTI " " + CALL PERFORM-PRSA,PURPLE-BUTTON + RTRUE +?ELS46: EQUAL? PRSA,V?SET \?ELS50 + PRINT NO-STEERING + RTRUE +?ELS50: EQUAL? PRSA,V?TAKE,V?BOARD \?ELS52 + EQUAL? HERE,CANAL \?ELS52 + IN? PROTAGONIST,RAFT \?ELS52 + MOVE PROTAGONIST,BARGE + PRINTI "Grabbing onto the barge, you" + CALL AND-SIDEKICK,BARGE + MOVE RAFT,PROTAGONIST + SET 'RAFT-HELD,FALSE-VALUE + PRINTI " climb in" + PRINT KEEP-IT-FROM-FLOATING-AWAY + RTRUE +?ELS52: EQUAL? PRSA,V?PUT-ON \?ELS56 + EQUAL? PRSI,BARGE \?ELS56 + CALL PERFORM,V?PUT,PRSO,BARGE + RTRUE +?ELS56: EQUAL? PRSA,V?SMELL \?ELS60 + CALL NO-SCRATCH-N-SNIFF,STR?245 + RSTACK +?ELS60: EQUAL? PRSA,V?SHAKE \?ELS62 + IN? PROTAGONIST,BARGE \?ELS62 + CALL SHAKE-BOAT + RSTACK +?ELS62: EQUAL? PRSA,V?LAND \FALSE + SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTI "Read any " + PRINTD ORANGE-BUTTON + PRINTR "s lately?" + + + .FUNCT SHAKE-BOAT + PRINTI "You knock yourself overboard." + CRLF + CRLF + CALL PERFORM,V?BOARD,CANAL-OBJECT + RTRUE + + + .FUNCT ORANGE-BUTTON-F + EQUAL? PRSA,V?EXAMINE,V?READ \?ELS5 + PRINTI "The " + PRINTD ORANGE-BUTTON + PRINTI " reads: MagnetoMoor O" + ZERO? MOORING-ON /?ELS8 + PRINTI "n" + JUMP ?CND6 +?ELS8: PRINTI "ff" +?CND6: PRINT PERIOD-CR + RTRUE +?ELS5: EQUAL? PRSA,V?PUSH \FALSE + ZERO? MOORING-ON /?ELS16 + SET 'MOORING-ON,FALSE-VALUE + JUMP ?CND14 +?ELS16: SET 'MOORING-ON,TRUE-VALUE +?CND14: PRINT WRITING-CHANGES + PRINTI "." + IN? BARGE,CANAL /?ELS22 + ZERO? MOORING-ON \?ELS22 + EQUAL? HERE,ICY-DOCK /?ELS22 + MOVE BARGE,CANAL + ZERO? RAFT-HELD /?CND25 + IN? PROTAGONIST,BARGE \?CND25 + MOVE RAFT,CANAL + SET 'RAFT-LOC-NUM,BARGE-LOC-NUM +?CND25: FCLEAR BARGE,NDESCBIT + CALL QUEUE,I-CANAL,-1 + PRINTI " The barge s" + ZERO? BARGE-UNDER-POWER /?ELS32 + PRINTI "hoot" + JUMP ?CND30 +?ELS32: PRINTI "lide" +?CND30: PRINTI "s away from the dock, into the deeper waters of the canal." + CRLF + IN? PROTAGONIST,BARGE \TRUE + CRLF + CALL GOTO,BARGE + RTRUE +?ELS22: CALL BARGE-DOCKS + ZERO? STACK \TRUE + CRLF + RTRUE + + + .FUNCT PURPLE-BUTTON-F + EQUAL? PRSA,V?EXAMINE,V?READ \?ELS5 + PRINTI "The " + PRINTD PURPLE-BUTTON + PRINTI " reads: " + ZERO? BARGE-UNDER-POWER /?ELS8 + PRINTI "Full Speed Ahead" + JUMP ?CND6 +?ELS8: PRINTI "Go With The Flow" +?CND6: PRINT PERIOD-CR + RTRUE +?ELS5: EQUAL? PRSA,V?PUSH \FALSE + PRINT WRITING-CHANGES + ZERO? BARGE-UNDER-POWER /?ELS16 + SET 'BARGE-UNDER-POWER,FALSE-VALUE + JUMP ?CND14 +?ELS16: SET 'BARGE-UNDER-POWER,TRUE-VALUE + IN? PROTAGONIST,RAFT \?CND14 + EQUAL? HERE,CANAL \?CND14 + CALL BARGE-FORGES-AHEAD +?CND14: PRINT PERIOD-CR + RTRUE + + + .FUNCT BARGE-FORGES-AHEAD + LESS? BARGE-LOC-NUM,16 \?ELS3 + ZERO? MOORING-ON /?ELS3 + SET 'BARGE-LOC-NUM,15 + MOVE BARGE,WATTZ-UPP-DOCK + JUMP ?CND1 +?ELS3: SET 'BARGE-LOC-NUM,36 + MOVE BARGE,ICY-DOCK +?CND1: PRINTI ". The barge, under power, forges ahead and disappears from sight" + RTRUE + + + .FUNCT CANAL-LOC + EQUAL? HERE,CANAL \FALSE + IN? PROTAGONIST,BARGE \?ELS7 + RETURN BARGE-LOC-NUM +?ELS7: RETURN RAFT-LOC-NUM + + + .FUNCT SET-RAFT-LOC + EQUAL? HERE,CANAL \?ELS5 + SET 'RAFT-LOC-NUM,BARGE-LOC-NUM + RETURN RAFT-LOC-NUM +?ELS5: EQUAL? HERE,HICKORY-AND-DICKORY-DOCK \?ELS7 + SET 'RAFT-LOC-NUM,-1 + RETURN RAFT-LOC-NUM +?ELS7: EQUAL? HERE,ROYAL-DOCKS \?ELS9 + SET 'RAFT-LOC-NUM,1 + RETURN RAFT-LOC-NUM +?ELS9: EQUAL? HERE,BABY-DOCK \?ELS11 + SET 'RAFT-LOC-NUM,6 + RETURN RAFT-LOC-NUM +?ELS11: EQUAL? HERE,DONALD-DOCK \?ELS13 + SET 'RAFT-LOC-NUM,7 + RETURN RAFT-LOC-NUM +?ELS13: EQUAL? HERE,WATTZ-UPP-DOCK \?ELS15 + SET 'RAFT-LOC-NUM,15 + RETURN RAFT-LOC-NUM +?ELS15: SET 'RAFT-LOC-NUM,10 + RETURN RAFT-LOC-NUM + + + .FUNCT CANAL-OBJECT-F + CALL ADJ-USED,A?SMALL + ZERO? STACK /?ELS5 + CALL UNIMPORTANT-THING-F + RSTACK +?ELS5: EQUAL? HERE,DUNETOP,MINARET \?ELS7 + CALL TOUCHING?,CANAL-OBJECT + ZERO? STACK /?ELS7 + CALL CANT-REACH,CANAL-OBJECT + RSTACK +?ELS7: EQUAL? PRSA,V?SWIM,V?ENTER,V?BOARD /?THN12 + EQUAL? PRSA,V?CRAWL-UNDER \?ELS11 +?THN12: CALL UNTOUCHABLE?,CANAL-OBJECT + ZERO? STACK /?ELS16 + CALL CANT-REACH,CANAL-OBJECT + JUMP ?CND14 +?ELS16: EQUAL? HERE,ICY-DOCK \?ELS18 + PRINTI "The current sucks you under" + EQUAL? NAUGHTY-LEVEL,2 \?CND19 + PRINTI ", which really sucks" +?CND19: CALL JIGS-UP,STR?246 + JUMP ?CND14 +?ELS18: PRINTI "In The Canal + As you swim in the cool waters of the canal, a slimy tentacle touches you, convincing you that it's safer back " +?CND14: LOC PROTAGONIST + EQUAL? STACK,RAFT,BARGE \?ELS26 + PRINTI "in" + LOC PROTAGONIST + CALL TRPRINT,STACK + JUMP ?CND24 +?ELS26: PRINTI "on the dock." + CRLF +?CND24: CRLF + CALL DESCRIBE-ROOM + RSTACK +?ELS11: EQUAL? PRSA,V?CROSS \?ELS30 + CALL PERFORM,V?ENTER,CANAL-OBJECT + RTRUE +?ELS30: EQUAL? PRSA,V?PUT \?ELS32 + EQUAL? P-PRSA-WORD,W?THROW \?ELS32 + EQUAL? PRSO,RAFT \?ELS32 + FSET? RAFT,UNTEEDBIT /?ELS32 + IN? PROTAGONIST,RAFT /?ELS32 + MOVE RAFT,HERE + SET 'RAFT-HELD,TRUE-VALUE + CALL PERFORM,V?DROP,RAFT + RTRUE +?ELS32: EQUAL? PRSA,V?THROW,V?PUT \?ELS36 + EQUAL? PRSI,CANAL-OBJECT \?ELS36 + EQUAL? PRSO,RAFT \?ELS43 + FSET? RAFT,UNTEEDBIT /?THN49 + FSET? RAFT,MUNGBIT \?ELS48 +?THN49: REMOVE RAFT + PRINTI "It sinks like a stone." + FSET? RAFT,UNTEEDBIT \?CND51 + PRINTI " I guess a raf doesn't float nearly as well as a raft." +?CND51: CRLF + RTRUE +?ELS48: ZERO? RAFT-HELD \?THN56 + IN? RAFT,CANAL \?ELS55 +?THN56: PRINT ALREADY-IS + RTRUE +?ELS55: PRINTI "The raft is now " + EQUAL? HERE,ICY-DOCK \?ELS64 + MOVE RAFT,HERE + PRINTI "in the water" + PRINT PINNED + RTRUE +?ELS64: SET 'RAFT-HELD,TRUE-VALUE + MOVE RAFT,HERE + EQUAL? HERE,CANAL \?CND67 + SET 'RAFT-LOC-NUM,BARGE-LOC-NUM +?CND67: PRINTI "bobbing in the canal." + EQUAL? HERE,CANAL \?THN73 + ZERO? BARGE-UNDER-POWER /?CND70 +?THN73: PRINTI " If you weren't holding it, it would surely be " + EQUAL? HERE,CANAL \?ELS77 + PRINTI "left behind." + JUMP ?CND70 +?ELS77: PRINTI "carried away." +?CND70: CRLF + RTRUE +?ELS43: REMOVE PRSO + EQUAL? PRSO,TORCH \?ELS84 + FSET? TORCH,ONBIT \?ELS84 + PRINTI """Phfffft!" + JUMP ?CND82 +?ELS84: PRINTI """Glub." +?CND82: PRINTI """ " + FSET? PRSO,PLURALBIT \?ELS91 + PRINTI "They're" + JUMP ?CND89 +?ELS91: PRINTI "It's" +?CND89: PRINTI " gone" + EQUAL? PRSO,BABY /?THN97 + CALL ULTIMATELY-IN?,BABY,PRSO + ZERO? STACK /?CND94 +?THN97: PRINTI ", you heartless baby murderer, you" +?CND94: PRINT PERIOD-CR + RTRUE +?ELS36: EQUAL? PRSA,V?LOOK-INSIDE \FALSE + CALL PERFORM-PRSA,WATER + RTRUE + + + .FUNCT DOCK-OBJECT-F,NUM,DOCK-ROOM + CALL CANAL-LOC >NUM + EQUAL? HERE,CANAL \?CND1 + EQUAL? NUM,-1,1,6 /?CND1 + EQUAL? NUM,7,10,15 /?CND1 + CALL CANT-SEE,DOCK-OBJECT + RTRUE +?CND1: EQUAL? HERE,DUNETOP,MINARET \?ELS10 + CALL TOUCHING?,DOCK-OBJECT + ZERO? STACK /?ELS10 + PRINT CANT-FROM-HERE + RTRUE +?ELS10: EQUAL? PRSA,V?BOARD,V?TAKE \?ELS14 + EQUAL? HERE,CANAL \?ELS14 + IN? PROTAGONIST,RAFT \?ELS14 + PRINTI "You lunge for the dock and secure a handhold. An agile clamber places you" + CALL AND-SIDEKICK + PRINTI " on the dock" + PRINT KEEP-IT-FROM-FLOATING-AWAY + CRLF + SET 'RAFT-WAIT,FALSE-VALUE + SET 'DONT-PRINT-VEHICLE,TRUE-VALUE + CALL SET-DOCK-ROOM,RAFT-LOC-NUM >DOCK-ROOM + CALL GOTO,DOCK-ROOM + SET 'DONT-PRINT-VEHICLE,FALSE-VALUE + IN? SIDEKICK,RAFT \?CND17 + MOVE SIDEKICK,HERE +?CND17: MOVE RAFT,HERE + RTRUE +?ELS14: EQUAL? PRSA,V?BOARD \?ELS21 + EQUAL? HERE,CANAL \?ELS26 + CALL DO-FIRST,STR?247 + RSTACK +?ELS26: IN? PROTAGONIST,HERE \?ELS28 + PRINT LOOK-AROUND + RTRUE +?ELS28: LOC PROTAGONIST + CALL PERFORM,V?DISEMBARK,STACK + RTRUE +?ELS21: EQUAL? PRSA,V?TAKE-OFF \?ELS32 + EQUAL? P-PRSA-WORD,W?GET \?ELS32 + CALL PERFORM,V?BOARD,CANAL-OBJECT + RTRUE +?ELS32: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS36 + EQUAL? PRSI,DOCK-OBJECT \?ELS36 + EQUAL? HERE,CANAL /?ELS36 + CALL PERFORM,V?PUT-ON,PRSO,GROUND + RTRUE +?ELS36: EQUAL? PRSA,V?LEAP-OFF \?ELS40 + EQUAL? HERE,DUNETOP,CANAL \?ELS45 + PRINT LOOK-AROUND + RTRUE +?ELS45: CALL PERFORM,V?ENTER,CANAL-OBJECT + RTRUE +?ELS40: EQUAL? PRSA,V?SEARCH \?ELS49 + PRINT NOTHING-NEW + RTRUE +?ELS49: EQUAL? PRSA,V?EXAMINE \FALSE + EQUAL? HERE,CANAL,MINARET,DUNETOP /FALSE + CALL V-LOOK + RSTACK + + + .FUNCT DUNES-F + EQUAL? HERE,MINARET \?ELS5 + CALL TOUCHING?,DUNES + ZERO? STACK /?ELS5 + CALL CANT-REACH,DUNES + RSTACK +?ELS5: EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \?ELS9 + EQUAL? HERE,DUNETOP \?ELS14 + PRINT LOOK-AROUND + RTRUE +?ELS14: EQUAL? HERE,CANALVIEW-MALL,DONALD-DOCK \?ELS16 + CALL DO-WALK,P?UP + RSTACK +?ELS16: PRINTR "This dune is too steep." +?ELS9: EQUAL? PRSA,V?CLIMB-DOWN \FALSE + EQUAL? HERE,DUNETOP \FALSE + CALL DO-WALK,P?DOWN + RSTACK + + + .FUNCT CANAL-F,RARG,NUM,DOCK-DIR + EQUAL? RARG,M-LOOK \FALSE + CALL CANAL-LOC >NUM + CALL SET-DOCK-DIR,NUM >DOCK-DIR + PRINTI "The " + LOC PROTAGONIST + CALL DPRINT,STACK + PRINTI " rocks gently in the current of a wide canal." + EQUAL? NUM,1,7,15 /?THN9 + EQUAL? NUM,-1,6 /?THN9 + EQUAL? NUM,10 \?ELS8 + IN? PROTAGONIST,RAFT \?ELS8 +?THN9: PRINTI " A dock is " + IN? PROTAGONIST,RAFT \?ELS15 + PRINTI "close enough to grab" + JUMP ?CND13 +?ELS15: PRINTI "visible" +?CND13: PRINTI " on the " + PRINT DOCK-DIR + PRINTI "ern shore." + JUMP ?CND6 +?ELS8: EQUAL? NUM,10 \?ELS19 + PRINTI " There are docks on both banks." + JUMP ?CND6 +?ELS19: PRINTI " The banks of the canal are steep and sandy." +?CND6: CALL BARGE-VISIBLE-AT-DOCK + ZERO? STACK /?CND22 + PRINTI " A " + PRINTD BARGE + PRINTI " is moored to the dock" + EQUAL? NUM,10 \?CND25 + PRINTI " on the " + IN? BARGE,ABANDONED-DOCK \?ELS30 + PRINTI "we" + JUMP ?CND28 +?ELS30: PRINTI "ea" +?CND28: PRINTI "stern shore" +?CND25: PRINTI "." +?CND22: EQUAL? NUM,5,12,29 \?ELS35 + PRINTI " A smaller canal flows diagonally into this one, and the channel widens slightly to accommodate the heavier flow." + JUMP ?CND33 +?ELS35: EQUAL? NUM,9,10 \?CND33 + PRINTI " Just " + EQUAL? NUM,9 \?ELS40 + PRINTI "ahead" + JUMP ?CND38 +?ELS40: PRINTI "behind" +?CND38: PRINTI ", the canal curves sharply to the " + EQUAL? NUM,9 \?ELS45 + PRINTI "south." + JUMP ?CND33 +?ELS45: PRINTI "west." +?CND33: EQUAL? NUM,4,5,8 \?CND48 + PRINTI " Sculpted reddish " + PRINTD DUNES + PRINTI " rise into view beyond the banks of the canal." +?CND48: RANDOM 100 + LESS? 15,STACK /?CND51 + PRINTI " The dark clouds of a sandstorm are visible on the horizon." +?CND51: EQUAL? NUM,15 \?CND54 + PRINTI " A red warning buoy is anchored nearby. A sign atop the swaying buoy shows a skull and crossbones." +?CND54: GRTR? NUM,12 \TRUE + LESS? NUM,32 \TRUE + EQUAL? NUM,31 \?ELS64 + CRLF + PRINTI " " + CALL DESCRIBE-POWER-TRANSMITTER,31 + FSET? POWER-TRANSMITTER,TOUCHBIT /TRUE + FSET POWER-TRANSMITTER,TOUCHBIT + CRLF + PRINTI " As the " + LOC PROTAGONIST + CALL DPRINT,STACK + PRINTI " passes through the beam, you feel a tingling from every cell in " + PRINTD YOUR-BODY + PRINTI "." + RTRUE +?ELS64: PRINTI " " + CALL DESCRIBE-POWER-TRANSMITTER,NUM + RTRUE + + + .FUNCT BARGE-VISIBLE-AT-DOCK,NUM + CALL CANAL-LOC >NUM + EQUAL? NUM,1 \?ELS9 + IN? BARGE,ROYAL-DOCKS /TRUE +?ELS9: EQUAL? NUM,6 \?ELS11 + IN? BARGE,BABY-DOCK /TRUE +?ELS11: EQUAL? NUM,7 \?ELS13 + IN? BARGE,DONALD-DOCK /TRUE +?ELS13: EQUAL? NUM,10 \?ELS15 + LOC BARGE + EQUAL? STACK,MY-KIND-OF-DOCK,ABANDONED-DOCK /TRUE +?ELS15: EQUAL? NUM,15 \FALSE + IN? BARGE,WATTZ-UPP-DOCK \FALSE + RTRUE + + + .FUNCT BARGE-FROM-CANAL-F + CALL BARGE-VISIBLE-AT-DOCK + ZERO? STACK \?ELS5 + CALL CANT-SEE,PSEUDO-OBJECT + RSTACK +?ELS5: CALL TOUCHING?,PSEUDO-OBJECT + ZERO? STACK /FALSE + CALL CANT-REACH,PSEUDO-OBJECT + RSTACK + + + .FUNCT BUOY-F,NUM + CALL CANAL-LOC >NUM + EQUAL? NUM,15 /?ELS5 + EQUAL? HERE,WATTZ-UPP-DOCK /?ELS5 + CALL CANT-SEE,PSEUDO-OBJECT + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE,V?READ \?ELS9 + CALL PERFORM,V?READ,SIGN + RTRUE +?ELS9: EQUAL? PRSA,V?OPEN,V?TAKE \?ELS11 + PRINT YOU-CANT + EQUAL? PRSA,V?TAKE \?ELS14 + PRINTI "take" + JUMP ?CND12 +?ELS14: PRINTI "open" +?CND12: PRINTR " a buoy! Where'd you get such a silly idea?" +?ELS11: CALL TOUCHING?,PSEUDO-OBJECT + ZERO? STACK /FALSE + CALL CANT-REACH,PSEUDO-OBJECT + RSTACK + + + .FUNCT I-CANAL,NUM=0,MOVED=0 + IN? BARGE,CANAL /?CND1 + IN? RAFT,CANAL /?CND1 + CALL DEQUEUE,I-CANAL + RFALSE +?CND1: IN? BARGE,CANAL \?CND6 + ZERO? BARGE-UNDER-POWER \?THN12 + ZERO? BARGE-WAIT /?ELS11 +?THN12: IN? PROTAGONIST,BARGE \?CND14 + SET 'MOVED,TRUE-VALUE +?CND14: SET 'BARGE-WAIT,FALSE-VALUE + ZERO? RAFT-HELD /?CND17 + IN? RAFT,CANAL \?CND17 + IN? PROTAGONIST,BARGE \?CND17 + INC 'RAFT-LOC-NUM +?CND17: INC 'BARGE-LOC-NUM + JUMP ?CND6 +?ELS11: SET 'BARGE-WAIT,TRUE-VALUE +?CND6: IN? RAFT,CANAL \?CND24 + ZERO? RAFT-HELD \?CND24 + ZERO? RAFT-WAIT /?ELS31 + IN? PROTAGONIST,RAFT \?CND33 + SET 'MOVED,TRUE-VALUE +?CND33: SET 'RAFT-WAIT,FALSE-VALUE + INC 'RAFT-LOC-NUM + JUMP ?CND24 +?ELS31: SET 'RAFT-WAIT,TRUE-VALUE +?CND24: CALL CANAL-LOC >NUM + EQUAL? NUM,31 \?CND38 + CALL QUEUED?,I-ION-DEATH + ZERO? STACK \?CND38 + LOC PROTAGONIST + IN? SIDEKICK,STACK \?CND43 + SET 'SIDEKICK-IONIZED,TRUE-VALUE +?CND43: CALL QUEUE,I-ION-DEATH,6 +?CND38: LESS? NUM,17 \?ELS48 + PUTP POWER-TRANSMITTER,P?SDESC,STR?248 + JUMP ?CND46 +?ELS48: GRTR? NUM,30 \?ELS50 + PUTP POWER-TRANSMITTER,P?SDESC,STR?249 + JUMP ?CND46 +?ELS50: PUTP POWER-TRANSMITTER,P?SDESC,STR?250 +?CND46: EQUAL? HERE,CANAL /?ELS55 + GRTR? BARGE-LOC-NUM,36 \?CND56 + MOVE BARGE,ICY-DOCK + ZERO? RAFT-HELD /?CND56 + MOVE RAFT,ICY-DOCK +?CND56: GRTR? RAFT-LOC-NUM,36 \?CND63 + MOVE RAFT,ICY-DOCK +?CND63: CALL BARGE-DOCKS + RFALSE +?ELS55: ZERO? MOVED /FALSE +?CND53: PRINTI " The " + LOC PROTAGONIST + CALL DPRINT,STACK + PRINTI " " + EQUAL? NUM,10 \?ELS70 + ZERO? BARGE-UNDER-POWER /?ELS73 + IN? PROTAGONIST,BARGE \?ELS73 + SET 'NEARER-DOCK,MY-KIND-OF-DOCK + PRINTI "chugs quickly" + JUMP ?CND71 +?ELS73: SET 'NEARER-DOCK,ABANDONED-DOCK + PRINTI "drifts slowly" +?CND71: PRINTI " around the bend, ending up near the " + ZERO? BARGE-UNDER-POWER /?ELS80 + IN? PROTAGONIST,BARGE \?ELS80 + PRINTI "ea" + JUMP ?CND78 +?ELS80: PRINTI "we" +?CND78: PRINTI "stern bank of" + JUMP ?CND68 +?ELS70: ZERO? BARGE-UNDER-POWER /?ELS89 + IN? PROTAGONIST,BARGE \?ELS89 + PRINTI "barges" + JUMP ?CND87 +?ELS89: PRINTI "drifts" +?CND87: PRINTI " further down" +?CND68: PRINTI " the canal." + EQUAL? NUM,36 \?CND94 + PRINTI " A wide dock spans the canal to the south. The " + LOC PROTAGONIST + CALL DPRINT,STACK + PRINTI " butts up against it" + PRINT PINNED + CRLF + IN? PROTAGONIST,RAFT \?ELS99 + IN? BARGE,CANAL \?ELS99 + EQUAL? BARGE-LOC-NUM,36 \?ELS99 + MOVE BARGE,ICY-DOCK + JUMP ?CND97 +?ELS99: IN? PROTAGONIST,BARGE \?CND97 + IN? RAFT,CANAL \?CND97 + EQUAL? RAFT-LOC-NUM,36 \?CND97 + MOVE BARGE,ICY-DOCK +?CND97: LOC PROTAGONIST + MOVE STACK,ICY-DOCK + LOC PROTAGONIST + CALL GOTO,STACK + RTRUE +?CND94: EQUAL? HAND-COVER,EYES /?THN109 + FSET? EYES,MUNGBIT \?ELS108 +?THN109: PRINTI " " + PRINT YOU-CANT + PRINTI "see a thing, of course." + CRLF + JUMP ?CND106 +?ELS108: CRLF + CRLF + CALL DESCRIBE-ROOM +?CND106: EQUAL? BARGE-LOC-NUM,RAFT-LOC-NUM \?CND113 + IN? RAFT,CANAL \?CND113 + IN? BARGE,CANAL \?CND113 + IN? PROTAGONIST,RAFT \?ELS120 + CALL BARGE-F,M-OBJDESC + CRLF + JUMP ?CND113 +?ELS120: CALL RAFT-F,M-OBJDESC + CRLF +?CND113: CALL BARGE-DOCKS,TRUE-VALUE + RTRUE + + + .FUNCT POWER-TRANSMITTER-F,NUM=0 + CALL CANAL-LOC >NUM + GRTR? NUM,31 /?THN6 + LESS? NUM,13 \?ELS5 +?THN6: CALL CANT-SEE,POWER-TRANSMITTER + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9 + CALL DESCRIBE-POWER-TRANSMITTER,NUM + CRLF + RTRUE +?ELS9: CALL TOUCHING?,POWER-TRANSMITTER + ZERO? STACK /FALSE + CALL CANT-REACH,POWER-TRANSMITTER + RSTACK + + + .FUNCT DESCRIBE-POWER-TRANSMITTER,NUM + EQUAL? NUM,31 \?ELS5 + PRINTI "The " + LOC PROTAGONIST + CALL DPRINT,STACK + PRINTI " is now passing the metal structure that has been looming closer for the last hour. Its size and power are overwhelming; a relic of Martian technology at its height. Vacuum tubes the size of telephone booths produce power that was once beamed all over Mars. But now, in the twilight of the planet's civilization, the machine's base has rusted away. The massive tower now shoots its ion power beam uselessly across the canal, into the sand of the opposite bank." + RTRUE +?ELS5: LESS? NUM,17 \?ELS7 + PRINTI "You spy a metallic glint, far ahead." + RTRUE +?ELS7: GRTR? NUM,27 \?ELS9 + PRINTI "A massive machine, unlike anything you've ever seen, rises from the shore, looming closer with each passing minute." + RTRUE +?ELS9: PRINTI "A metal structure, glinting in the weak Martian sunlight, is visible at the edge of the canal" + LESS? NUM,21 \?ELS16 + PRINTI ", but far, far ahead." + RTRUE +?ELS16: LESS? NUM,24 \?ELS18 + PRINTI " far ahead of you." + RTRUE +?ELS18: PRINTI ", a bit too far to make out any details." + RTRUE + + + .FUNCT I-ION-DEATH + INC 'ION-DEATH-COUNTER + PRINTI " " + GRTR? ION-DEATH-COUNTER,4 \?ELS5 + CALL JIGS-UP,STR?255 + RSTACK +?ELS5: FSET? POWER-TRANSMITTER,MUNGBIT \?ELS10 + CALL QUEUE,I-ION-DEATH,2 + JUMP ?CND8 +?ELS10: CALL QUEUE,I-ION-DEATH,6 +?CND8: CALL V-DIAGNOSE + ZERO? SIDEKICK-IONIZED /TRUE + CALL VISIBLE?,SIDEKICK + ZERO? STACK /TRUE + EQUAL? ION-DEATH-COUNTER,3 \TRUE + PRINTI " " + CALL DPRINT-SIDEKICK + PRINTR " says, ""My head is pounding! I wish we had some aspirin.""" + + + .FUNCT BARGE-DOCKS,CALLED-BY-INT=0,DOCK-ROOM,DOCK-DIR + ZERO? MOORING-ON /FALSE + IN? BARGE,CANAL \FALSE + EQUAL? BARGE-LOC-NUM,7,10,15 /?THN8 + EQUAL? BARGE-LOC-NUM,1,6 \FALSE +?THN8: ZERO? CALLED-BY-INT /?CND10 + PRINTI " " +?CND10: CALL SET-DOCK-ROOM,BARGE-LOC-NUM >DOCK-ROOM + CALL SET-DOCK-DIR,BARGE-LOC-NUM >DOCK-DIR + IN? BARGE,HERE \?CND14 + PRINTI " The barge drifts toward the dock on the " + PRINT DOCK-DIR + PRINTI "ern shore, butting against it with a loud ""clank.""" + IN? PROTAGONIST,BARGE \?CND17 + CRLF +?CND17: CRLF +?CND14: MOVE BARGE,DOCK-ROOM + IN? PROTAGONIST,BARGE \?CND20 + ZERO? RAFT-HELD /?CND23 + MOVE RAFT,DOCK-ROOM +?CND23: CALL GOTO,BARGE +?CND20: SET 'BARGE-WAIT,FALSE-VALUE + RTRUE + + + .FUNCT SET-DOCK-ROOM,NUM + EQUAL? NUM,-1 \?ELS5 + RETURN HICKORY-AND-DICKORY-DOCK +?ELS5: EQUAL? NUM,1 \?ELS7 + RETURN ROYAL-DOCKS +?ELS7: EQUAL? NUM,6 \?ELS9 + RETURN BABY-DOCK +?ELS9: EQUAL? NUM,7 \?ELS11 + RETURN DONALD-DOCK +?ELS11: EQUAL? NUM,15 \?ELS13 + RETURN WATTZ-UPP-DOCK +?ELS13: EQUAL? NEARER-DOCK,MY-KIND-OF-DOCK \?ELS15 + RETURN MY-KIND-OF-DOCK +?ELS15: RETURN ABANDONED-DOCK + + + .FUNCT SET-DOCK-DIR,NUM + EQUAL? NUM,-1,1,7 \?ELS5 + RETURN STR?256 +?ELS5: EQUAL? NUM,6 \?ELS7 + RETURN STR?257 +?ELS7: EQUAL? NUM,15 \?ELS9 + RETURN STR?258 +?ELS9: EQUAL? NEARER-DOCK,MY-KIND-OF-DOCK \?ELS11 + RETURN STR?239 +?ELS11: RETURN STR?258 + + + .FUNCT AMONG-THE-DUNES-F,RARG + EQUAL? RARG,M-ENTER \FALSE + FSET? AMONG-THE-DUNES,TOUCHBIT /FALSE +?PRG8: RANDOM 8270 + ADD 100,STACK >WIFE-NUMBER + MOD WIFE-NUMBER,10 + ZERO? STACK /?PRG8 + CALL PALINDROME-NUMBER?,WIFE-NUMBER + ZERO? STACK \?PRG8 + RTRUE + + + .FUNCT PALINDROME-NUMBER?,NUM,?TMP1 + GRTR? NUM,999 \?ELS5 + DIV NUM,1000 >?TMP1 + MOD NUM,10 + EQUAL? ?TMP1,STACK \FALSE + RTRUE +?ELS5: DIV NUM,100 >?TMP1 + MOD NUM,10 + EQUAL? ?TMP1,STACK \FALSE + RTRUE + + + .FUNCT LIP-BALM-F + FSET? LIP-BALM,UNTEEDBIT /FALSE + EQUAL? PRSA,V?PUT-ON \?ELS11 + EQUAL? PRSI,MOUTH /?THN8 +?ELS11: EQUAL? PRSA,V?WEAR \?ELS7 +?THN8: FSET? LIP-BALM,WORNBIT \?ELS16 + PRINT SENILITY-STRIKES + RTRUE +?ELS16: MOVE LIP-BALM,PROTAGONIST + FSET LIP-BALM,WORNBIT + FSET MOUTH,MUNGBIT + PRINTR "You coat your lips with the glistening balm, using up the whole stick." +?ELS7: EQUAL? PRSA,V?EXAMINE \?ELS20 + FSET? LIP-BALM,WORNBIT \?ELS20 + CALL PERFORM-PRSA,MOUTH + RTRUE +?ELS20: EQUAL? PRSA,V?CLEAN,V?REMOVE \FALSE + FSET? LIP-BALM,WORNBIT \FALSE + MOVE LIP-BALM,LOCAL-GLOBALS + FCLEAR MOUTH,MUNGBIT + PRINTR "You wipe away the lip balm." + + + .FUNCT CODED-MESSAGE-F + EQUAL? PRSA,V?EXAMINE,V?READ \FALSE + PRINTI "VSDFHHQN UXRB VVLN RW " + ZERO? MALE /?ELS8 + PRINTI "UH" + JUMP ?CND6 +?ELS8: PRINTI "PL" +?CND6: PRINTI "K JQLNVD BE " + ZERO? MALE /?ELS14 + PRINTI "UH" + JUMP ?CND12 +?ELS14: PRINTI "PL" +?CND12: PRINTI "K RW IOHVUXRB BILWQHGL -- SDP WHUFHV HKW WHJ GQD " + ZERO? MALE \?CND18 + PRINTI "VVH" +?CND18: PRINTI "QDWOXV HKW IR " + CALL REVERSE-NUMBER,WIFE-NUMBER + PRINTI " UHEPXQ " + ZERO? MALE /?ELS23 + PRINTI "HILZ" + JUMP ?CND21 +?ELS23: PRINTI "GQDEVXK" +?CND21: PRINTR " WFDWQRF RW VL QRLVVLP UXRB" + + + .FUNCT REVERSE-NUMBER,NUM +?PRG1: MOD NUM,10 + PRINTN STACK + DIV NUM,10 >NUM + ZERO? NUM \?PRG1 + RTRUE + + + .FUNCT MESSENGER-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "It's dead. Very dead." +?ELS5: EQUAL? PRSA,V?KISS,V?FUCK \?ELS7 + PRINTR "Is there even a word for this sort of perverse behavior? Necro-xeno-philia? Xeno-necro-philia? Grosso-sicko-philia?" +?ELS7: EQUAL? PRSA,V?PUT-ON \?ELS9 + EQUAL? PRSO,LIP-BALM \?ELS9 + PRINTR "Too late." +?ELS9: EQUAL? PRSA,V?SEARCH \?ELS13 + PRINT NOTHING-NEW + RTRUE +?ELS13: EQUAL? PRSA,V?ALARM \FALSE + PRINTR "This guy's not resting, he's deceased!" + + + .FUNCT DUNETOP-F,RARG + EQUAL? RARG,M-ENTER \FALSE + ZERO? TITS-COUNTER \FALSE + CALL QUEUE,I-TITS,-1 + RSTACK + + + .FUNCT I-TITS + INC 'TITS-COUNTER + EQUAL? NAUGHTY-LEVEL,2 /?ELS5 + CALL DEQUEUE,I-TITS + RFALSE +?ELS5: EQUAL? TITS-COUNTER,4 \?ELS7 + PRINTR " [A warning for any Jerry Falwell groupies who are miraculously still playing: we'll be using the word ""tits"" in five turns or so. Please consult the manual for the proper way to stop playing.]" +?ELS7: EQUAL? TITS-COUNTER,7 \?ELS9 + PRINTR " [Only a few turns until the ""tits"" reference! Use QUIT now if you might be offended!]" +?ELS9: EQUAL? TITS-COUNTER,9 \?ELS11 + PRINTR " [Last warning! The word ""tits"" will appear in the very next turn! This is your absolutely last chance to avoid seeing ""tits"" used!!!]" +?ELS11: EQUAL? TITS-COUNTER,10 \FALSE + CALL DEQUEUE,I-TITS + PRINTI " A hyperdimensional traveller suddenly appears out of thin air. ""My sister has tremendous breasts,"" says the traveller and, without further explanation, vanishes" + FSET? NOSE,MUNGBIT /?CND14 + PRINTI ", leaving only a vague trace of interdimensional ozone" +?CND14: PRINTR ". + [Oh, regarding the use of ""tits,"" we changed our mind at the last minute. Everyone agreed it was too risque.]" + + + .FUNCT OUTSIDE-SHOP-F + EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5 + CALL DO-WALK,P?SOUTH + RSTACK +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \FALSE + PRINT LOOK-AROUND + RTRUE + + + .FUNCT INSIDE-SHOP-F + EQUAL? PRSA,V?EXIT,V?LEAVE,V?DISEMBARK \?ELS5 + CALL DO-WALK,P?NORTH + RSTACK +?ELS5: EQUAL? PRSA,V?ENTER,V?WALK-TO,V?BOARD \?ELS7 + PRINT LOOK-AROUND + RTRUE +?ELS7: EQUAL? PRSA,V?SEARCH \?ELS9 + CALL PERFORM-PRSA,DUST + RTRUE +?ELS9: EQUAL? PRSA,V?EXAMINE \FALSE + CALL V-LOOK + RSTACK + + + .FUNCT EXIT-SHOP-F,RARG + EQUAL? RARG,M-END \FALSE + FSET? PROPRIETOR,TOUCHBIT /FALSE + FSET PROPRIETOR,TOUCHBIT + PRINTI " " + PRINT PROPRIETOR-STIRS + PRINTR "Don't get many customers these days, since they abandoned the dock. In fact, you're only the third in the last hundred and fifty centuries."" He slips back into a drowse." + + + .FUNCT PROPRIETOR-F + EQUAL? PROPRIETOR,WINNER \?ELS5 + EQUAL? PRSA,V?WHAT \?ELS14 + EQUAL? PRSO,LGOP /?THN11 +?ELS14: EQUAL? PRSA,V?TELL-ABOUT \?ELS10 + EQUAL? PRSO,ME \?ELS10 + EQUAL? PRSI,LGOP \?ELS10 +?THN11: PRINTR """A bunch of deadbeats! Never pay their bills -- I've had to repossess God knows how many exits!""" +?ELS10: SET 'WINNER,PROTAGONIST + CALL PERFORM,V?ALARM,PROPRIETOR + CALL STOP + RSTACK +?ELS5: EQUAL? PRSA,V?ALARM \?ELS20 + PRINT PROPRIETOR-STIRS + PRINTI "E" + PRINT BOUGHT-AND-SOLD + PRINTI ","" he mumbles, ""e" + PRINT BOUGHT-AND-SOLD + PRINTR "."" A moment later, he nods off." +?ELS20: EQUAL? PRSA,V?BARTER-WITH /?THN23 + EQUAL? PRSA,V?ASK-FOR \?ELS22 + EQUAL? PRSI,EXIT-OBJECT \?ELS22 +?THN23: CALL PERFORM,V?BUY,EXIT-OBJECT + RTRUE +?ELS22: EQUAL? PRSA,V?SHOW,V?GIVE \?ELS28 + EQUAL? PRSO,TEN-MARSMID-COIN \?ELS28 + PRINTR """Humph? Eh, oh, sorry, no change for a ten. And the Mall Merchants Association would have my license if I accepted an overpayment. Try again in a year ... or two ... grunt snore.""" +?ELS28: EQUAL? PRSA,V?SHOW,V?GIVE \?ELS32 + EQUAL? PRSO,ONE-MARSMID-COIN \?ELS32 + REMOVE ONE-MARSMID-COIN + MOVE TUBE,DUST + CALL INCREMENT-SCORE,5,12 + PRINTR "The proprietor slowly focuses one eye on the coin. ""Not much in stock these days,"" he explains. ""My supplier went bankrupt ninety thousand years ago."" He takes the coin and starts to hand you a cardboard tube, but his eye drifts out of focus again, and he drops it wearily into the dust." +?ELS32: EQUAL? PRSA,V?SHOW,V?GIVE \FALSE + EQUAL? PRSO,FLEXIBLE-HOLE \FALSE + PRINT PROPRIETOR-STIRS + PRINTR "Don't think I could sell such an out-of-date model. No one wants exits anymore, anyway. Don't know why I bother ... to stay in business ... zzzz.""" + + + .FUNCT EXIT-OBJECT-F + EQUAL? PRSA,V?BUY \?ELS5 + EQUAL? HERE,EXIT-SHOP \?ELS10 + PRINTR """One marsmid, please, grunt snore zzz.""" +?ELS10: FSET? EXIT-SHOP,TOUCHBIT \?ELS12 + PRINTI "This isn't an " + PRINTD EXIT-SHOP + PRINTR "!" +?ELS12: PRINTR "Buy an exit?!?!" +?ELS5: EQUAL? PRSA,V?BUY-WITH \?ELS16 + EQUAL? PRSI,TEN-MARSMID-COIN,ONE-MARSMID-COIN \?ELS16 + CALL PERFORM,V?GIVE,PRSI,PROPRIETOR + RTRUE +?ELS16: EQUAL? PRSA,V?TAKE \FALSE + IN? TUBE,DUST \FALSE + EQUAL? HERE,EXIT-SHOP \FALSE + PRINTR "It's lost in the dust." + + + .FUNCT DUST-F,X=0 + EQUAL? PRSA,V?DIG,V?REACH-IN,V?SEARCH /?THN6 + EQUAL? PRSA,V?RAKE,V?LOOK-INSIDE \?ELS5 +?THN6: FIRST? DUST >X \?ELS12 + MOVE X,PROTAGONIST + CALL THIS-IS-IT,X + PRINTI "You grasp" + CALL APRINT,X + PRINTR "!" +?ELS12: PRINTR "You sift through the dust but find nothing." +?ELS5: EQUAL? PRSA,V?BOARD,V?ENTER \?ELS16 + PRINTR "You're already up to your neck in dust." +?ELS16: EQUAL? PRSA,V?PUT \?ELS18 + EQUAL? PRSI,DUST \?ELS18 + CALL PERFORM,V?DROP,PRSO + RTRUE +?ELS18: EQUAL? PRSA,V?BLOW,V?MOVE,V?CLEAN \FALSE + PRINTR "You'd need a plow to move this dust." + + + .FUNCT FLEXIBLE-HOLE-F,SIDEKICK-VISIBLE=0 + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "The " + PRINTD FLEXIBLE-HOLE + PRINTR " looks just like a portable version of the ""holes"" you've been encountering all over the solar system." +?ELS5: EQUAL? PRSA,V?MEASURE \?ELS7 + PRINTI "The " + CALL DPRINT,HOLE + PRINTR " is two feet across." +?ELS7: EQUAL? PRSA,V?LOOK-INSIDE,V?TOUCH,V?REACH-IN \?ELS9 + IN? FLEXIBLE-HOLE,TUBE \?ELS9 + CALL MEANT-OTHER-HOLE + ZERO? STACK \TRUE + CALL NOT-ON-GROUND,FLEXIBLE-HOLE + RSTACK +?ELS9: EQUAL? PRSA,V?TOUCH,V?REACH-IN \?ELS16 + PRINT HAND-DWINDLES + RTRUE +?ELS16: EQUAL? PRSA,V?LOOK-INSIDE \?ELS18 + PRINT STARING-INTO-VOID + RTRUE +?ELS18: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS20 + EQUAL? PRSI,FLEXIBLE-HOLE \?ELS20 + LOC FLEXIBLE-HOLE + EQUAL? STACK,HERE,RAFT,BARGE \?ELS27 + MOVE PRSO,BOUDOIR + CALL NON-DIMENSIONAL-JOURNEY + RSTACK +?ELS27: CALL MEANT-OTHER-HOLE + ZERO? STACK \TRUE + CALL NOT-ON-GROUND,FLEXIBLE-HOLE + RSTACK +?ELS20: EQUAL? PRSA,V?BOARD,V?ENTER,V?STAND-ON \FALSE + CALL ULTIMATELY-IN?,FLEXIBLE-HOLE + ZERO? STACK /?ELS38 + CALL MEANT-OTHER-HOLE + ZERO? STACK \TRUE + PRINT HOLDING-IT + RTRUE +?ELS38: IN? PROTAGONIST,HERE /?ELS43 + LOC PROTAGONIST + IN? FLEXIBLE-HOLE,STACK /?ELS43 + CALL NOT-GOING-ANYWHERE + RSTACK +?ELS43: LOC FLEXIBLE-HOLE + EQUAL? STACK,HERE,TREE-HOLE /?ELS47 + LOC FLEXIBLE-HOLE + EQUAL? STACK,RAFT,BARGE /?ELS47 + CALL MEANT-OTHER-HOLE + ZERO? STACK \TRUE + CALL NOT-ON-GROUND,FLEXIBLE-HOLE + RSTACK +?ELS47: ZERO? SIDEKICK-TRIP-FLAG /?ELS54 + CALL QUEUED?,I-SIDEKICK-OUT-WINDOW + ZERO? STACK /?ELS54 + CALL DO-WALK,P?DOWN + RSTACK +?ELS54: CALL VISIBLE?,SIDEKICK + ZERO? STACK /?CND59 + SET 'SIDEKICK-VISIBLE,TRUE-VALUE +?CND59: CALL FALL-THROUGH-HOLE + CALL GOTO,BOUDOIR + CALL QUEUED?,I-ION-DEATH + ZERO? STACK /?CND62 + FSET POWER-TRANSMITTER,MUNGBIT + CALL QUEUE,I-ION-DEATH,1 +?CND62: ZERO? SIDEKICK-VISIBLE /TRUE + SET 'HOLE-MOVE,TRUE-VALUE + CALL SIDEKICK-FOLLOWS-YOU + RTRUE + + + .FUNCT MEANT-OTHER-HOLE + EQUAL? PRSO,FLEXIBLE-HOLE \?ELS9 + GET P-ADJW,0 + EQUAL? STACK,A?FLEXIBLE,A?PORTABLE /FALSE +?ELS9: EQUAL? PRSI,FLEXIBLE-HOLE \?ELS5 + GET P-ADJW,1 + EQUAL? STACK,A?FLEXIBLE,A?PORTABLE /FALSE +?ELS5: CALL GLOBAL-IN?,HOLE,HERE + ZERO? STACK /FALSE + EQUAL? PRSO,FLEXIBLE-HOLE \?ELS15 + CALL PERFORM-PRSA,HOLE,PRSI + RTRUE +?ELS15: CALL PERFORM-PRSA,PRSO,HOLE + RTRUE + + + .FUNCT LAUNDRY-ROOM-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "One of the less pleasant aspects of running a palace is the sheer volume of dirty laundry its occupants produce. Why, the 8379 " + ZERO? MALE /?ELS8 + PRINTI "wive" + JUMP ?CND6 +?ELS8: PRINTI "husband" +?CND6: PRINTI "s alone could keep a crew of cleaners sleepless. Add in the servants, cooks, gardeners, stablehands, jesters, visiting nobles, brothers-in-law in virtual permanent residence... Suffice it to say that there's " + ZERO? NAUGHTY-LEVEL \?ELS14 + PRINTI "quite" + JUMP ?CND12 +?ELS14: PRINTI "one hell of" +?CND12: PRINTI " a lot of dirty laundry here. You can barely see the exit to the north through it all." + RTRUE + + + .FUNCT CLOTHES-PIN-F + FSET? CLOTHES-PIN,UNTEEDBIT /FALSE + EQUAL? PRSA,V?PIN,V?PUT-ON \?ELS7 + EQUAL? PRSO,CLOTHES-PIN \?ELS7 + EQUAL? PRSI,NOSE /?ELS14 + CALL WASTES + RSTACK +?ELS14: ZERO? GONE-APE /?ELS16 + PRINT DEXTERITY + RTRUE +?ELS16: FSET? CLOTHES-PIN,WORNBIT \?ELS19 + PRINT SENILITY-STRIKES + RTRUE +?ELS19: MOVE CLOTHES-PIN,PROTAGONIST + FSET CLOTHES-PIN,WORNBIT + FSET NOSE,MUNGBIT + PRINTR "You pin your proboscis." +?ELS7: EQUAL? PRSA,V?PUT \?ELS23 + EQUAL? PRSO,NOSE \?ELS23 + CALL PERFORM,V?PUT-ON,CLOTHES-PIN,NOSE + RTRUE +?ELS23: EQUAL? PRSA,V?TIE \?ELS27 + EQUAL? P-PRSA-WORD,W?ATTACH \?ELS27 + EQUAL? PRSO,CLOTHES-PIN \?ELS27 + ZERO? PRSI /?ELS27 + CALL PERFORM,V?PUT-ON,CLOTHES-PIN,PRSI + RTRUE +?ELS27: EQUAL? PRSA,V?TAKE-WITH \?ELS31 + EQUAL? P-PRSA-WORD,W?HOLD \?ELS31 + EQUAL? PRSO,NOSE \?ELS31 + CALL PERFORM,V?PUT-ON,CLOTHES-PIN,NOSE + RTRUE +?ELS31: EQUAL? PRSA,V?TAKE-OFF,V?REMOVE \FALSE + FSET? CLOTHES-PIN,WORNBIT \FALSE + ZERO? GONE-APE /?CND38 + CALL PERFORM,V?TAKE,CLOTHES-PIN + RTRUE +?CND38: CALL OPEN-EYES-AND-REMOVE-HANDS + FCLEAR CLOTHES-PIN,WORNBIT + CALL SENSE-AGAIN,NOSE + RSTACK + + + .FUNCT WELL-ENTER-F + PRINTI "You climb down the well for a long distance. Near the bottom the handholds end, so you" + CALL AND-SIDEKICK,WELL-BOTTOM + PRINTI " leap the rest of the way, landing on" + CALL APRINT,HOLE + PRINTI ". " + SET 'HERE,WELL-BOTTOM + MOVE PROTAGONIST,WELL-BOTTOM + CALL PERFORM,V?STAND-ON,HOLE + RFALSE + + + .FUNCT WELL-F + EQUAL? PRSA,V?REACH-IN,V?LOOK-INSIDE \?ELS5 + PRINTR "Handholds lead downward!" +?ELS5: EQUAL? PRSA,V?CLIMB-UP,V?CLIMB,V?CLIMB-DOWN /?THN8 + EQUAL? PRSA,V?ENTER,V?BOARD \?ELS7 +?THN8: EQUAL? HERE,WELL-BOTTOM \?ELS12 + CALL DO-WALK,P?UP + RTRUE +?ELS12: CALL WELL-ENTER-F + RTRUE +?ELS7: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,PSEUDO-OBJECT \FALSE + EQUAL? HERE,ORIENTAL-GARDEN \FALSE + MOVE PRSO,BARGE + EQUAL? PRSO,TORCH \?CND19 + CALL TORCH-OFF +?CND19: PRINTR "It drops out of sight." + + + .FUNCT TOWER-F + EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER /?THN6 + EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \?ELS5 +?THN6: EQUAL? HERE,BASE-OF-TOWER \?ELS12 + CALL DO-WALK,P?UP + RSTACK +?ELS12: EQUAL? HERE,MINARET \FALSE + PRINT LOOK-AROUND + RTRUE +?ELS5: EQUAL? PRSA,V?EXIT,V?LEAVE,V?DISEMBARK \FALSE + EQUAL? HERE,BASE-OF-TOWER \?ELS21 + PRINT LOOK-AROUND + RTRUE +?ELS21: CALL DO-WALK,P?DOWN + RSTACK + + + .FUNCT AUDIENCE-CHAMBER-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "The good news is that this hall is intoxicatingly beautiful, laid with the snow-white fur of the rare Martian Velvetworm and endowed with platinum arches and balustrades. Silky curtains embrace openings to the south, southwest, and west. + The bad news is that no " + ZERO? MALE \?CND6 + PRINTI "wo" +?CND6: PRINTI "man has ever entered the " + CALL DPRINT,HERE + PRINTI " of" + CALL TPRINT,SULTAN + PRINTI " and departed alive." + RTRUE +?ELS5: EQUAL? RARG,M-END \FALSE + FSET? SULTAN,TOUCHBIT /FALSE + FSET SULTAN,TOUCHBIT + CALL QUEUE,I-SULTAN,-1 + RSTACK + + + .FUNCT AUDIENCE-CHAMBER-EXIT-F + ZERO? RIDDLE-ANSWERED \?ELS5 + PRINTI """Rule violation! Rule violation!"" " + CALL RIDDLE-DEATH + RSTACK +?ELS5: EQUAL? PRSO,P?SOUTH \?ELS7 + RETURN ORIENTAL-GARDEN +?ELS7: EQUAL? PRSO,P?SW \?ELS9 + RETURN MAIN-HALL-OF-PALACE +?ELS9: GRTR? CHOICE-NUMBER,0 /?THN12 + EQUAL? HAREM-GUARD-COUNTER,5 \?ELS11 +?THN12: RETURN HAREM +?ELS11: CALL RUNNING?,I-HAREM-GUARD + ZERO? STACK /?ELS15 + CALL QUEUE,I-HAREM-GUARD,2 + PRINTI """Hey!"" The " + PRINTD HAREM-GUARD + PRINTI " pushes you back. ""Pick a number first!" + CRLF + RFALSE +?ELS15: CALL QUEUE,I-HAREM-GUARD,2 + MOVE HAREM-GUARD,AUDIENCE-CHAMBER + SET 'AWAITING-FAKE-ORPHAN,TRUE-VALUE + PRINTI "A well-armed " + ZERO? MALE /?CND18 + PRINTI "fe" +?CND18: PRINTI "male guard blocks you. ""Congratulations on your performance,"" " + CALL SHE-HE + PRINTI " says in a bored voice. You wonder how the guard can be so unmoved by your historic feat. As though sensing your thoughts, the guard says, ""The " + CALL DPRINT,SULTAN + PRINTI " likes to pretend that no one's ever gotten the riddle, but someone got it last year, the word spread around, and now everyone knows the answer. You're the twelfth winner this week already. " + CALL HE-SHE,TRUE-VALUE + PRINTI " sent away to Maude's House of Riddles on Ganymede for a new one, but the mail is so slow..."" The guard shakes " + CALL HER-HIS + PRINTI " head. ""Well, pick a " + ZERO? MALE /?ELS24 + PRINTI "wife" + JUMP ?CND22 +?ELS24: PRINTI "husband" +?CND22: PRINTI "; any number from 1 to 8379. Don't waste time thinking; they're all clones anyway."" " + CALL SHE-HE,TRUE-VALUE + PRINTI " looks at you expectantly." + CRLF + RFALSE + + + .FUNCT MATE-F + EQUAL? PRSA,V?PICK \?ELS5 + IN? HAREM-GUARD,HERE \?ELS5 + CALL I-HAREM-GUARD,TRUE-VALUE + RSTACK +?ELS5: CALL PRSO-MOBY-VERB? + ZERO? STACK \FALSE + CALL PRSI-MOBY-VERB? + ZERO? STACK \FALSE + CALL CANT-SEE,PSEUDO-OBJECT + RSTACK + + + .FUNCT HAREM-GUARD-F + EQUAL? HAREM-GUARD,WINNER \?ELS5 + EQUAL? PRSA,V?ANSWER-KLUDGE \?ELS10 + EQUAL? PRSO,INTNUM \?ELS10 + CALL PICK-WIFE,INTNUM + RSTACK +?ELS10: CALL I-HAREM-GUARD,TRUE-VALUE + RSTACK +?ELS5: EQUAL? PRSA,V?FOLLOW \FALSE + EQUAL? FOLLOW-FLAG,13,14 \FALSE + CALL DO-WALK,P?WEST + RSTACK + + + .FUNCT I-HAREM-GUARD,CALLED-BY-HAREM-GUARD-F=0 + INC 'HAREM-GUARD-COUNTER + ZERO? CALLED-BY-HAREM-GUARD-F /?ELS3 + CALL QUEUE,I-HAREM-GUARD,2 + JUMP ?CND1 +?ELS3: CALL QUEUE,I-HAREM-GUARD,-1 +?CND1: EQUAL? HERE,AUDIENCE-CHAMBER \?THN10 + GRTR? CHOICE-NUMBER,0 \?CND7 +?THN10: SET 'AWAITING-FAKE-ORPHAN,FALSE-VALUE + CALL DEQUEUE,I-HAREM-GUARD + REMOVE HAREM-GUARD + RFALSE +?CND7: ZERO? CALLED-BY-HAREM-GUARD-F \?CND12 + PRINTI " " +?CND12: PRINTI """" + EQUAL? HAREM-GUARD-COUNTER,5 \?ELS19 + REMOVE HAREM-GUARD + SET 'FOLLOW-FLAG,14 + CALL QUEUE,I-FOLLOW,2 + CALL DEQUEUE,I-HAREM-GUARD + SET 'AWAITING-FAKE-ORPHAN,FALSE-VALUE + PRINTR "I'm not waiting around anymore! You blew it, sucker."" The guard storms angrily away." +?ELS19: PRINTI "Ahem? A number...?"" says" + CALL TPRINT,HAREM-GUARD + EQUAL? HAREM-GUARD-COUNTER,4 \?CND22 + PRINTI " with growing impatience" +?CND22: PRINT PERIOD-CR + RTRUE + + + .FUNCT PICK-WIFE,OBJ=0,DUPE + EQUAL? OBJ,INTNUM /?THN4 + CALL NUMBER?,P-CONT + EQUAL? STACK,W?NUMBER \?ELS3 +?THN4: LESS? P-NUMBER,1 \?ELS8 + PRINT GIMME-TROUBLE + JUMP ?CND1 +?ELS8: GRTR? P-NUMBER,8379 \?ELS10 + PRINTI """There're only 8379 of 'em.""" + CRLF + JUMP ?CND1 +?ELS10: CALL ZMEMQ,P-NUMBER,WRONG-ANSWERS,7 >DUPE + ZERO? DUPE /?ELS12 + PRINTI """You already asked for that one, dodo-brain!""" + CRLF + JUMP ?CND1 +?ELS12: EQUAL? P-NUMBER,WIFE-NUMBER /?THN15 + RANDOM 100 + LESS? HAREM-PROB,STACK /?ELS14 +?THN15: SET 'CHOICE-NUMBER,P-NUMBER + SET 'AWAITING-FAKE-ORPHAN,FALSE-VALUE + SET 'FOLLOW-FLAG,13 + CALL QUEUE,I-FOLLOW,2 + REMOVE HAREM-GUARD + CALL QUEUE,I-HAREM,5 + PRINTI "The guard, walking off, says, ""I'll summon that one. You may enter.""" + CRLF + JUMP ?CND1 +?ELS14: DIV HAREM-PROB,15 + PUT WRONG-ANSWERS,STACK,P-NUMBER + ADD HAREM-PROB,15 >HAREM-PROB + PRINTI "The guard consults a list. """ + RANDOM 100 + LESS? 25,STACK /?ELS21 + PRINTI "Traded to the Du" + ZERO? MALE /?ELS24 + PRINTI "ke" + JUMP ?CND22 +?ELS24: PRINTI "chess" +?CND22: PRINTI " of Deimos for two eunuchs and a jester to be named later" + JUMP ?CND19 +?ELS21: CALL PICK-ONE,EXCUSES + PRINT STACK +?CND19: PRINTI ". Pick another number.""" + CRLF + JUMP ?CND1 +?ELS3: PRINTI "[Please give your selection in numerical form.]" + CRLF +?CND1: CALL QUEUE,I-HAREM-GUARD,2 + CALL STOP + RSTACK + + + .FUNCT SULTAN-F,OARG=0 + ZERO? OARG /?ELS5 + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " The " + CALL DPRINT,SULTAN + PRINTI " is here," + ZERO? RIDDLE-ANSWERED /?ELS14 + CALL ARGUING-WITH-LEGAL-ADVISOR + RSTACK +?ELS14: PRINTI " enthroned." + RTRUE +?ELS5: EQUAL? SULTAN,WINNER \?ELS19 + EQUAL? PRSA,V?TELL-ABOUT \?ELS24 + EQUAL? PRSO,ME \?ELS24 + EQUAL? PRSI,LGOP \?ELS24 + PRINTR """They were exiled from Leather Island in the Caribbean, after cheating in the Miss Leather Island beauty pageant; the silicone injectionist spilled the beans. Now they rule all of Phobos. Hmmph! They call that hunk of rock a Sultanate? Those bimbos never told a decent riddle in their lives!""" +?ELS24: EQUAL? PRSA,V?WHERE,V?WHAT \?ELS28 + PRINTR """I ask the riddles around here!""" +?ELS28: EQUAL? PRSA,V?YES \?ELS30 + EQUAL? AWAITING-REPLY,1 \?ELS30 + CALL V-YES + RSTACK +?ELS30: EQUAL? PRSA,V?NO \?ELS34 + EQUAL? AWAITING-REPLY,1 \?ELS34 + CALL V-NO + RSTACK +?ELS34: EQUAL? PRSA,V?USE-QUOTES,V?ANSWER-KLUDGE \?ELS38 + ZERO? AWAITING-FAKE-ORPHAN /?ELS38 + ZERO? RIDDLE-ANSWERED \?ELS38 + EQUAL? PRSO,RIDDLE /?CND41 + CALL RIDDLE-ANSWER + RTRUE +?CND41: SET 'RIDDLE-ANSWERED,TRUE-VALUE + CALL DEQUEUE,I-SNEEZE + CALL INCREMENT-SCORE,8,11 + PRINTI "The " + CALL DPRINT,SULTAN + PRINTI " looks crestfallen. ""Yes, that's right."" The " + CALL DPRINT,SULTAN + PRINTI " is struck by a thought. ""Can we kill " + CALL HIM-HER + PRINTI " anyway?"" " + CALL HE-SHE,TRUE-VALUE + PRINTI " begins" + CALL ARGUING-WITH-LEGAL-ADVISOR + PRINTR " This might be a good time to make a beeline for the harem to the west." +?ELS38: PRINTI "The " + CALL DPRINT,SULTAN + PRINTI " ignores you." + CRLF + CALL STOP + RSTACK +?ELS19: ZERO? RIDDLE-ANSWERED \?ELS47 + CALL TOUCHING?,SULTAN + ZERO? STACK \?THN50 + EQUAL? PRSA,V?THROW \?ELS47 + EQUAL? PRSI,SULTAN \?ELS47 +?THN50: CALL DO-WALK,P?WEST + RSTACK +?ELS47: EQUAL? PRSA,V?SHOW,V?GIVE \?ELS55 + EQUAL? PRSO,CODED-MESSAGE \?ELS55 + PRINTI """A spy! A spy!"" " + CALL RIDDLE-DEATH + RSTACK +?ELS55: EQUAL? PRSA,V?LISTEN \FALSE + ZERO? RIDDLE-ANSWERED /FALSE + PRINTI "The " + CALL DPRINT,SULTAN + PRINTI " is" + CALL ARGUING-WITH-LEGAL-ADVISOR + CRLF + RTRUE + + + .FUNCT ARGUING-WITH-LEGAL-ADVISOR + PRINTI " arguing loudly with one of " + CALL HIS-HER + PRINTI " legal advisors." + RTRUE + + + .FUNCT I-SULTAN + INC 'SULTAN-COUNTER + PRINTI " " + GRTR? SULTAN-COUNTER,1 \?ELS3 + EQUAL? SULTAN-COUNTER,4 \?ELS6 + PRINTI """Have this bore devoured."" " + CALL RIDDLE-DEATH + JUMP ?CND1 +?ELS6: PRINTI """I grow impatient. " + JUMP ?CND1 +?ELS3: SET 'AWAITING-REPLY,1 + PRINTI """Ah,"" says" + CALL TPRINT,SULTAN + PRINTI ", ""a visitor. This is pleasing; it was turning out to be a very dull morning."" " + CALL HE-SHE,TRUE-VALUE + PRINTI " clears " + CALL HIS-HER + PRINTI " throat. ""The rules: I will pose a riddle. If you answer it correctly, you may spend one hour with any of my " + ZERO? MALE /?ELS13 + PRINTI "wive" + JUMP ?CND11 +?ELS13: PRINTI "husband" +?CND11: PRINTI "s." + CALL YOU-WILL-DIE,STR?285 + CALL YOU-WILL-DIE,STR?286 + CALL YOU-WILL-DIE,STR?287 + CALL YOU-WILL-DIE,STR?288 + CALL YOU-WILL-DIE,STR?289 + CALL YOU-WILL-DIE,STR?290 + CALL YOU-WILL-DIE,STR?291 + PRINTI """ " + CALL HE-SHE,TRUE-VALUE + SET 'AWAITING-REPLY,1 + PRINTI " motions to one of the palace eunuchs. ""Go tell the animal tenders not to feed the tigers yet."" Pause. """ +?CND1: PRINTR "Are you ready?""" + + + .FUNCT YOU-WILL-DIE,STRING + PRINTI " If " + PRINT STRING + PRINTI ", you will die." + RTRUE + + + .FUNCT RIDDLE-DEATH + CALL JIGS-UP,STR?292 + RSTACK + + + .FUNCT I-SNEEZE + CALL QUEUE,I-SNEEZE,-1 + INC 'SULTAN-COUNTER + PRINTI " The " + CALL DPRINT,SULTAN + EQUAL? SULTAN-COUNTER,4 \?ELS5 + PRINTI " convulses. ""Achoooooo!!!!"" " + CALL RIDDLE-DEATH + RSTACK +?ELS5: EQUAL? SULTAN-COUNTER,3 \?ELS7 + PRINTR " is squinting and drawing in quick gasps of air!" +?ELS7: EQUAL? SULTAN-COUNTER,2 \?ELS9 + PRINTI " is rubbing " + CALL HIS-HER + PRINTI " nose with the back of " + CALL HIS-HER + PRINTR " hand." +?ELS9: PRINTI " is twitching " + CALL HIS-HER + PRINTR " nose." + + + .FUNCT RIDDLE-ANSWER + ZERO? P-CONT \?ELS5 + ZERO? PRSO \?ELS5 + SET 'PRSO,SULTAN + CALL V-TELL + RETURN STR?293 +?ELS5: ZERO? P-CONT /?ELS9 + GET P-LEXV,P-CONT + EQUAL? STACK,W?RIDDLE /?THN12 + ADD P-CONT,2 + GET P-LEXV,STACK + EQUAL? STACK,W?RIDDLE \?ELS9 +?THN12: SET 'WINNER,SULTAN + CALL PERFORM,V?ANSWER-KLUDGE,RIDDLE + SET 'WINNER,PROTAGONIST + CALL STOP + RSTACK +?ELS9: ZERO? P-CONT /?ELS19 + GET P-LEXV,P-CONT + EQUAL? STACK,W?SEX,W?LOVE /?THN16 +?ELS19: EQUAL? PRSO,LOVE \?ELS15 +?THN16: PRINTI """Good guess! It's wrong, though."" " + CALL RIDDLE-DEATH + RSTACK +?ELS15: PRINTI """Wrongo!"" " + CALL RIDDLE-DEATH + RSTACK + + + .FUNCT HAREM-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "This is a sensuous location of silks and satins and furs. A draped exit leads east." + FSET? NOSE,MUNGBIT /TRUE + PRINTI " A pleasant odor" + FSET? HERE,SMELLEDBIT \?CND9 + PRINTI " of " + GETP HERE,P?ODOR + PRINT STACK +?CND9: PRINTI " tickles mischievously at " + PRINTD NOSE + PRINTI "." + RTRUE +?ELS5: EQUAL? RARG,M-END \?ELS13 + IN? SIDEKICK,HERE \?ELS13 + CALL QUEUED?,I-HAREM + ZERO? STACK /?ELS13 + PRINTI " A " + PRINTD HAREM-GUARD + PRINTI " grabs " + CALL DPRINT-SIDEKICK + PRINTI ". ""You didn't answer the riddle!"" " + CALL TIGER-EATS-SIDEKICK + RSTACK +?ELS13: EQUAL? RARG,M-SMELL \FALSE + PRINT IT-SEEMS-THAT + CALL TPRINT,SULTAN + PRINTI " likes h" + ZERO? MALE /?ELS20 + PRINTI "is wives" + JUMP ?CND18 +?ELS20: PRINTI "er husbands" +?CND18: PRINTI " to wear fine " + GETP HERE,P?ODOR + PRINT STACK + PRINTI "." + RTRUE + + + .FUNCT TIGER-EATS-SIDEKICK + REMOVE SIDEKICK + SET 'FOLLOW-FLAG,2 + CALL QUEUE,I-FOLLOW,2 + SET 'SIDEKICK-EATEN,TRUE-VALUE + CALL DPRINT-SIDEKICK + PRINTI " is led away. As you hear, from nearby, a fierce roar followed by a blood-curdling scream" + CALL MEMORIAM + RSTACK + + + .FUNCT I-HAREM + EQUAL? HERE,HAREM \FALSE + PRINTI " A figure, completely cloaked in veils of silk, enters and beckons you deeper into the harem" + PRINT ELLIPSIS + CALL GOTO,INNER-HAREM + CALL THIS-IS-IT,SULTANS-WIFE + FCLEAR SULTANS-WIFE,NDESCBIT + CALL QUEUE,I-HOUR,60 + PRINTI " " + CALL DPRINT,SULTANS-WIFE + ZERO? NAUGHTY-LEVEL \?ELS10 + PRINTR " sits down at the far end of the room." +?ELS10: PRINTI " touches a button at the shoulder of " + CALL HER-HIS + PRINTI " tunic and it slowly floats to the floor. " + CALL SHE-HE,TRUE-VALUE + PRINTR " pulls you down onto the furs, whispering in a husky voice, ""For an hour, I am yours.""" + + + .FUNCT I-HOUR + EQUAL? HERE,INNER-HAREM \FALSE + PRINTI " ""The hour is over,"" sighs " + CALL DPRINT,SULTANS-WIFE + PRINTI ", reluctantly leading you out of the " + PRINTD HERE + PRINT ELLIPSIS + CALL GOTO,HAREM + RSTACK + + + .FUNCT HAREM-OBJECT-F + EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5 + EQUAL? HERE,AUDIENCE-CHAMBER \?ELS10 + CALL DO-WALK,P?WEST + RSTACK +?ELS10: EQUAL? HERE,HAREM,INNER-HAREM \FALSE + PRINT LOOK-AROUND + RTRUE +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS14 + EQUAL? HERE,AUDIENCE-CHAMBER \?ELS19 + PRINT LOOK-AROUND + RTRUE +?ELS19: CALL DO-WALK,P?OUT + RSTACK +?ELS14: EQUAL? PRSA,V?EXAMINE \?ELS23 + EQUAL? HERE,AUDIENCE-CHAMBER /?ELS23 + CALL V-LOOK + RSTACK +?ELS23: EQUAL? PRSA,V?SMELL \?ELS27 + EQUAL? HERE,AUDIENCE-CHAMBER /?ELS27 + CALL PERFORM-PRSA,ODOR + RTRUE +?ELS27: EQUAL? PRSA,V?SEARCH \FALSE + PRINT NOTHING-NEW + RTRUE + + + .FUNCT INNER-HAREM-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This luxurious bedroom, presumably one of many throughout the harem, is appointed with a multitude of exotic furs, warm to the touch as though still alive. " + FSET? NOSE,MUNGBIT /?CND6 + PRINTI "The heady aroma of " + GETP HAREM,P?ODOR + PRINT STACK + PRINTI " and incense mingle in the air. " +?CND6: PRINTI "There's an exit to the southeast" + ZERO? CATACOMBS-OPEN /?CND9 + PRINTI " and a secret passage leads downward" +?CND9: PRINTI "." + RTRUE + + + .FUNCT INNER-HAREM-EXIT-F + CALL ULTIMATELY-IN?,MAP + ZERO? STACK /?ELS5 + CALL VISIBLE?,MAP + ZERO? STACK /?ELS5 + PRINTI "As" + CALL TPRINT,SULTANS-WIFE + CALL JIGS-UP,STR?294 + RSTACK +?ELS5: RETURN HAREM + + + .FUNCT SULTANS-WIFE-F,OARG=0 + ZERO? OARG /?ELS5 + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " " + CALL DPRINT,SULTANS-WIFE + PRINTI " is here" + ZERO? NAUGHTY-LEVEL /?CND10 + PRINTI ", lying seductively naked on a bed of furs" +?CND10: PRINTI "." + RTRUE +?ELS5: EQUAL? WINNER,SULTANS-WIFE \?ELS14 + EQUAL? PRSA,V?KISS \?ELS23 + EQUAL? PRSO,KNEECAPS \?ELS23 + ZERO? CATACOMBS-OPEN /?THN20 +?ELS23: EQUAL? PRSA,V?KISS-ON \?ELS19 + EQUAL? PRSO,ME \?ELS19 + EQUAL? PRSI,KNEECAPS \?ELS19 + ZERO? CATACOMBS-OPEN \?ELS19 +?THN20: EQUAL? CHOICE-NUMBER,WIFE-NUMBER \?ELS30 + MOVE MAP,HERE + MOVE TORCH,HERE + CALL QUEUE,I-TORCH,23 + CALL DEQUEUE,I-HOUR + SET 'CATACOMBS-OPEN,TRUE-VALUE + CALL OPEN-EYES-AND-REMOVE-HANDS + PRINTI """Oh,"" whispers " + CALL DPRINT,SULTANS-WIFE + PRINTI ", ""you're from the rebels! Here's" + CALL TPRINT,MAP + PRINTI ","" " + CALL SHE-HE + PRINTI " says, laying" + CALL APRINT,MAP + PRINTI " at your feet, ""and here's" + CALL APRINT,TORCH + PRINTI ","" " + CALL SHE-HE + PRINTI " says, lighting" + CALL APRINT,TORCH + PRINTI " and placing it next to the map. " + CALL SHE-HE,TRUE-VALUE + PRINTI " moves some furs to reveal a secret entrance leading downwards. ""The only way out is through the catacombs -- if you come back this way with" + CALL TPRINT,MAP + PRINTI "," + CALL TPRINT,HAREM-GUARD + PRINTR "s will...""" +?ELS30: PRINTR """I'm not into that kinky stuff.""" +?ELS19: EQUAL? PRSA,V?FUCK,V?SUCK,V?KISS /?THN37 + EQUAL? PRSA,V?BLOW,V?LICK,V?EAT /?THN37 + EQUAL? PRSA,V?TOUCH,V?TAKE \?ELS34 +?THN37: ZERO? NAUGHTY-LEVEL \?ELS34 + EQUAL? PRSO,COCK,ME \?ELS34 + SET 'WINNER,PROTAGONIST + CALL PERFORM,V?FUCK,SULTANS-WIFE + SET 'WINNER,SULTANS-WIFE + RTRUE +?ELS34: EQUAL? PRSA,V?KISS \?ELS40 + EQUAL? PRSO,ME \?ELS40 + SET 'WINNER,PROTAGONIST + CALL PERFORM-PRSA,SULTANS-WIFE + SET 'WINNER,SULTANS-WIFE + RTRUE +?ELS40: EQUAL? PRSA,V?TAKE,V?FUCK \?ELS44 + EQUAL? PRSO,ME \?ELS44 + SET 'WINNER,PROTAGONIST + CALL PERFORM,V?FUCK,SULTANS-WIFE + SET 'WINNER,SULTANS-WIFE + RTRUE +?ELS44: EQUAL? PRSA,V?BLOW,V?LICK,V?EAT /?THN51 + EQUAL? PRSA,V?SUCK \?ELS48 +?THN51: EQUAL? PRSO,COCK,ME \?ELS48 + EQUAL? NAUGHTY-LEVEL,1 \?ELS57 + PRINT MISSIONARY-ONLY + RTRUE +?ELS57: CALL DPRINT,SULTANS-WIFE + PRINTI " nods eagerly and slides downward. Skillful tongue-work soon has you squirming on the edge of orgasm... Eventually, spent and satisfied, you take " + CALL DPRINT,SULTANS-WIFE + PRINTR " lovingly into your arms." +?ELS48: EQUAL? PRSA,V?WHAT \?ELS65 + EQUAL? PRSO,LGOP /?THN62 +?ELS65: EQUAL? PRSA,V?TELL-ABOUT \?ELS61 + EQUAL? PRSO,ME \?ELS61 + EQUAL? PRSI,LGOP \?ELS61 +?THN62: PRINTR """That's the code name of the cadre who lead the rebel underground. It is said they have pledged their lives and souls to the revolution!""" +?ELS61: PRINTI """Shhh... " + ZERO? NAUGHTY-LEVEL \?ELS74 + PRINTI "It's past bedtime for the children of" + CALL TPRINT,SULTAN + PRINTI "! You'll wake them!""" + CRLF + CALL STOP + RSTACK +?ELS74: PRINTI "Let " + PRINTD YOUR-BODY + PRINTI " do the talking,"" says " + CALL DPRINT,SULTANS-WIFE + PRINTI ", reaching out toward you." + CRLF + CALL STOP + RSTACK +?ELS14: CALL WRONG-SEX-WORD,SULTANS-WIFE,W?WIFE,W?HUSBAND + ZERO? STACK /?ELS78 + CALL STOP + RSTACK +?ELS78: EQUAL? PRSA,V?THANK \?ELS80 + ZERO? CATACOMBS-OPEN /?ELS80 + CALL DPRINT,SULTANS-WIFE + PRINTR " gives you a grand salute. ""For the revolution!""" +?ELS80: EQUAL? PRSA,V?FUCK,V?TOUCH,V?KISS /?THN87 + EQUAL? PRSA,V?TAKE \?ELS84 +?THN87: ZERO? NAUGHTY-LEVEL \?ELS84 + PRINTI "Instead, you decide to get to know " + CALL DPRINT,SULTANS-WIFE + PRINTI " better, so you engage " + CALL HER-HIM + PRINTI " in a stimulating discussion about " + CALL PICK-ONE,DISCUSSION-TOPICS + PRINT STACK + CRLF + RTRUE +?ELS84: EQUAL? PRSA,V?EAT \?ELS90 + ZERO? NAUGHTY-LEVEL \?ELS95 + CALL V-FUCK + RSTACK +?ELS95: EQUAL? NAUGHTY-LEVEL,1 \?ELS97 + PRINT MISSIONARY-ONLY + RTRUE +?ELS97: CALL DPRINT,PRSO + PRINTI " arches " + CALL HER-HIS + PRINTR " body to meet you, passionately stroking your neck and shoulders." +?ELS90: EQUAL? PRSA,V?UNDRESS \?ELS101 + ZERO? NAUGHTY-LEVEL /?ELS101 + CALL SHE-HE,TRUE-VALUE + PRINTR " is!" +?ELS101: EQUAL? PRSA,V?DRESS \?ELS105 + PRINTR "You must be from Massachusetts." +?ELS105: EQUAL? PRSA,V?TAKE,V?TOUCH,V?KISS \?ELS107 + CALL DPRINT,SULTANS-WIFE + PRINTR " moans softly and draws closer to you." +?ELS107: EQUAL? PRSA,V?FUCK \?ELS109 + ZERO? WIFE-FUCKED /?CND110 + PRINTR "You shouldn't wear yourself out. [Besides, do you think there's infinite room on this disk for long, lurid descriptions of sex acts?]" +?CND110: SET 'WIFE-FUCKED,TRUE-VALUE + CALL DPRINT,SULTANS-WIFE + PRINTI " draws you into " + CALL HER-HIS + PRINTI " arms. " + EQUAL? NAUGHTY-LEVEL,2 \?CND114 + PRINTI "As " + PRINTD HANDS + PRINTI "s explore h" + ZERO? MALE /?ELS119 + PRINTI "er soft, rounded" + JUMP ?CND117 +?ELS119: PRINTI "is firm, strong" +?CND117: PRINTI " body, a faint sweaty, musky odor triggers a passionate fire within you, and you find yourself " + ZERO? MALE /?ELS125 + PRINTI "ris" + JUMP ?CND123 +?ELS125: PRINTI "warm" +?CND123: PRINTI "ing to the occasion. Your lovemaking is slow and gentle, and as you reach a crescendo of pleasure, you cry out softly, passionately, and repeatedly. ""Oh,"" moans " + CALL DPRINT,SULTANS-WIFE + PRINTI ", ""say my number again ... say it in French...""" + CRLF +?CND114: PRINTI "Much later, you and " + CALL DPRINT,SULTANS-WIFE + PRINTR " fall back upon the furs, basking in the aura of postcoital bliss." +?ELS109: EQUAL? PRSA,V?MARRY \?ELS130 + PRINTI "But " + CALL DPRINT,PRSO + PRINTR " is already married!" +?ELS130: EQUAL? PRSA,V?MEASURE \?ELS132 + ZERO? MALE /?ELS135 + PRINTI "36-24-36" + JUMP ?CND133 +?ELS135: ZERO? NAUGHTY-LEVEL \?ELS138 + PRINTI "Tall" + JUMP ?CND133 +?ELS138: EQUAL? NAUGHTY-LEVEL,1 \?ELS140 + PRINTI "Long" + JUMP ?CND133 +?ELS140: PRINTI "Ten delicious inches" +?CND133: PRINT PERIOD-CR + RTRUE +?ELS132: EQUAL? PRSA,V?EXAMINE \?ELS144 + ZERO? NAUGHTY-LEVEL /?ELS144 + PRINTI "A mere glance at the succulent, sexy body of " + CALL DPRINT,SULTANS-WIFE + PRINTI " is enough to " + EQUAL? NAUGHTY-LEVEL,1 \?ELS149 + PRINTI "really turn you on" + JUMP ?CND147 +?ELS149: ZERO? MALE /?ELS151 + PRINTI "give you an instant hard-on" + JUMP ?CND147 +?ELS151: PRINTI "get you all moist and randy" +?CND147: PRINT PERIOD-CR + RTRUE +?ELS144: EQUAL? PRSA,V?SMELL \FALSE + CALL SHE-HE,TRUE-VALUE + PRINTI " smells of " + GETP HAREM,P?ODOR + PRINT STACK + PRINT PERIOD-CR + RTRUE + + + .FUNCT TORCH-F + EQUAL? PRSA,V?OFF \?ELS5 + FSET? TORCH,ONBIT \?ELS5 + CALL TORCH-OFF + PRINT PFFT + RTRUE +?ELS5: EQUAL? PRSA,V?ON \?ELS9 + FSET? TORCH,ONBIT /?ELS9 + CALL PERFORM,V?BURN,TORCH + RTRUE +?ELS9: EQUAL? PRSA,V?BURN \?ELS13 + EQUAL? PRSO,TORCH \?ELS13 + FSET? TORCH,ONBIT \?ELS13 + CALL PERFORM,V?ON,TORCH + RTRUE +?ELS13: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS17 + FSET? TORCH,ONBIT \?ELS17 + EQUAL? PRSI,TRELLIS,BARGE \?ELS17 + FSET? PRSI,UNTEEDBIT /?ELS17 + PRINTI "The " + PRINTD PRSI + PRINTR " would burn!" +?ELS17: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,WATER,CANAL \FALSE + FSET? TORCH,ONBIT \FALSE + CALL TORCH-OFF + PRINT PFFT + RTRUE + + + .FUNCT TORCH-OFF + CALL DEQUEUE,I-TORCH + FCLEAR TORCH,ONBIT + FCLEAR TORCH,LIGHTBIT + PUTP TORCH,P?SDESC,STR?302 + FSET TORCH,VOWELBIT + RTRUE + + + .FUNCT I-TORCH + DEC 'TORCH-LIFE + ZERO? TORCH-LIFE \?ELS3 + CALL TORCH-OFF + JUMP ?CND1 +?ELS3: MUL TORCH-LIFE,6 + CALL QUEUE,I-TORCH,STACK +?CND1: CALL VISIBLE?,TORCH + ZERO? STACK /FALSE + FSET? EYES,MUNGBIT /FALSE + EQUAL? HAND-COVER,EYES /FALSE + PRINTI " " + ZERO? TORCH-LIFE \?ELS13 + PRINT PFFT + CALL NOW-DARK? + RFALSE +?ELS13: PRINTI "The torch is noticeably dimmer." + CRLF + RFALSE + + + .FUNCT MAP-F + EQUAL? PRSA,V?EXAMINE,V?READ \FALSE + FSET? PRSO,UNTEEDBIT /FALSE + CALL IN-YOUR-PACKAGE,STR?304 + CRLF + RTRUE + + + .FUNCT CATACOMBS-ENTER-F + ZERO? CATACOMBS-OPEN /?ELS5 + CALL QUEUE,I-BEETLES,6 + CALL QUEUE,I-CRABS,10 + CALL QUEUE,I-GATOR,12 + PRINTI "As you leave, " + ZERO? NAUGHTY-LEVEL \?ELS9 + CALL PERFORM,V?THANK,SULTANS-WIFE + CRLF + RETURN CATACOMBS +?ELS9: CALL DPRINT,SULTANS-WIFE + ZERO? MALE /?ELS14 + PRINTI " throws herself into your arms. Her ample bosom presses against your chest as she whispers into your ear, ""Please, oh, please be careful down there!"" Sh" + JUMP ?CND12 +?ELS14: PRINTI " gathers you into his powerful arms. Nibbling tenderly on your neck, he whispers, ""Be wary -- the catacombs are dangerous."" H" +?CND12: PRINTI "e kisses you longingly, but eventually you descend, reluctantly, into the gloom of the catacombs" + PRINT ELLIPSIS + RETURN CATACOMBS +?ELS5: PRINT CANT-GO + RFALSE + + + .FUNCT CATACOMBS-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "You're at a junction within an ancient, crumbling catacomb. Your " + CALL ULTIMATELY-IN?,TORCH + ZERO? STACK /?CND6 + FSET? TORCH,ONBIT \?CND6 + PRINTI "torch" +?CND6: PRINTI "light pierces the gloom for only a few feet in each direction. " + PRINT CATACOMBS-WATER-DESC + RTRUE +?ELS5: EQUAL? RARG,M-END \FALSE + ZERO? SIDEKICK-EATEN /FALSE + MOVE SIDEKICK,HERE + SET 'SIDEKICK-EATEN,FALSE-VALUE + PRINTI " ""Yo!"" says " + CALL DPRINT-SIDEKICK + PRINTI ", tapping your shoulder. ""Looked like my number was up that time! Would've been, if those dimension-hopping midgets hadn't come through at the right moment. Good thing the tiger cage leads to the catacombs, eh?"" " + CALL HE-SHE,TRUE-VALUE + PRINTI " brushes a stray patch of fur off " + CALL HIS-HER + PRINTR " shoulder." + + + .FUNCT CATACOMBS-MOVEMENT-F,DIR-OFFSET,TABLE-VALUE + ZERO? LIT \?CND1 + CALL JIGS-UP,STR?305 +?CND1: EQUAL? PRSO,P?NORTH \?ELS8 + PUSH 0 + JUMP ?CND4 +?ELS8: EQUAL? PRSO,P?NE \?ELS10 + PUSH 1 + JUMP ?CND4 +?ELS10: EQUAL? PRSO,P?EAST \?ELS12 + PUSH 2 + JUMP ?CND4 +?ELS12: EQUAL? PRSO,P?SE \?ELS14 + PUSH 3 + JUMP ?CND4 +?ELS14: EQUAL? PRSO,P?SOUTH \?ELS16 + PUSH 4 + JUMP ?CND4 +?ELS16: EQUAL? PRSO,P?SW \?ELS18 + PUSH 5 + JUMP ?CND4 +?ELS18: EQUAL? PRSO,P?WEST \?ELS20 + PUSH 6 + JUMP ?CND4 +?ELS20: EQUAL? PRSO,P?NW \?ELS22 + PUSH 7 + JUMP ?CND4 +?ELS22: EQUAL? PRSO,P?UP \?ELS24 + PUSH 8 + JUMP ?CND4 +?ELS24: PUSH 9 +?CND4: SET 'DIR-OFFSET,STACK + SUB CATACOMBS-LOC,1 + MUL STACK,10 + ADD STACK,DIR-OFFSET + GET CATACOMBS-TABLE,STACK >TABLE-VALUE + PRINTI "You wade into the gloom ... and find " + ZERO? TABLE-VALUE \?ELS31 + EQUAL? PRSO,P?DOWN,P?UP \?ELS34 + PRINTI "a severe paucity of passages leading " + EQUAL? PRSO,P?UP \?ELS37 + PRINTI "up" + JUMP ?CND32 +?ELS37: PRINTI "down" + JUMP ?CND32 +?ELS34: PRINTI "yourself face to face with a blank wall" +?CND32: PRINT PERIOD-CR + RFALSE +?ELS31: PRINTI "a " + EQUAL? PRSO,P?DOWN,P?UP \?ELS46 + PRINTI "hidden passage leading " + EQUAL? PRSO,P?UP \?ELS49 + PRINTI "up" + JUMP ?CND47 +?ELS49: PRINTI "down" +?CND47: PRINTI "wards." + JUMP ?CND44 +?ELS46: PRINTI "dark and winding tunnel." +?CND44: EQUAL? TABLE-VALUE,99 \?ELS58 + PRINTI " Unfortunately, you soon come to a point where the tunnel has collapsed, hopelessly blocking your way." + CRLF + RFALSE +?ELS58: EQUAL? TABLE-VALUE,80 \?ELS60 + PRINTI " Unfortunately, it's too steep and slippery." + CRLF + RFALSE +?ELS60: CRLF + CRLF + EQUAL? TABLE-VALUE,40 \?ELS67 + RETURN FORGOTTEN-STOREHOUSE +?ELS67: EQUAL? TABLE-VALUE,50 \?ELS69 + RETURN WELL-BOTTOM +?ELS69: EQUAL? TABLE-VALUE,60 \?ELS71 + RETURN LADDER-ROOM +?ELS71: EQUAL? TABLE-VALUE,70 \?ELS73 + RETURN BURIAL-CHAMBER +?ELS73: SET 'CATACOMBS-LOC,TABLE-VALUE + CALL DESCRIBE-ROOM + IN? SIDEKICK,HERE \?CND76 + CALL SIDEKICK-FOLLOWS-YOU + RETURN ROOMS +?CND76: RETURN ROOMS + + + .FUNCT PHONE-BOOK-F + EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?READ \?ELS5 + PRINTR "How useful. Now you know how many Smiths live in Cleveland." +?ELS5: EQUAL? PRSA,V?CLOSE \?ELS7 + PRINTR "It is." +?ELS7: EQUAL? PRSA,V?TAKE \FALSE + FSET? PHONE-BOOK,TOUCHBIT /FALSE + FSET PHONE-BOOK,TOUCHBIT + CALL INCREMENT-SCORE,13,26,TRUE-VALUE + RFALSE + + + .FUNCT WELL-BOTTOM-EXIT-F + EQUAL? PRSO,P?EAST \?ELS3 + SET 'CATACOMBS-LOC,21 + RETURN CATACOMBS +?ELS3: SET 'CATACOMBS-LOC,22 + RETURN CATACOMBS + + + .FUNCT WELL-BOTTOM-LOOP-F + CALL DESCRIBE-ROOM + IN? SIDEKICK,HERE \FALSE + CALL NORMAL-SIDEKICK-FOLLOW + RFALSE + + + .FUNCT LADDER-ROOM-EXIT-F + PRINTI "You climb for a seemingly endless time, with the ladder becoming increasingly rickety. Suddenly a rung snaps, and you tumble into the darkness! You bounce painfully into a slanted ventilation shaft, slide through a wooden grating, and land amidst thousands of silk " + ZERO? MALE /?ELS3 + PRINTI "brassieres" + JUMP ?CND1 +?ELS3: PRINTI "jockstraps" +?CND1: PRINT PERIOD-CR + CRLF + RETURN LAUNDRY-ROOM + + + .FUNCT LADDER-F + EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \FALSE + CALL DO-WALK,P?UP + RSTACK + + + .FUNCT RAFT-F,OARG=0,NUM=0 + ZERO? OARG /?ELS5 + FSET? RAFT,TOUCHBIT /?ELS11 + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " On the other hand, another Sultan had a considerably more modest vision of the afterlife, bringing only a simple rubber life raft." + RTRUE +?ELS11: ZERO? RAFT-HELD /?ELS16 + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " There is a raft here, which you're keeping a hand on." + RTRUE +?ELS16: EQUAL? HERE,CANAL \FALSE + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " A raft is floating nearby." + RTRUE +?ELS5: EQUAL? HERE,CANAL \?ELS29 + IN? PROTAGONIST,BARGE \?ELS29 + IN? RAFT,CANAL \?ELS29 + EQUAL? RAFT-LOC-NUM,BARGE-LOC-NUM /?ELS29 + CALL CANT-SEE,RAFT + RSTACK +?ELS29: FSET? RAFT,UNTEEDBIT /FALSE + EQUAL? PRSA,V?SINK \?ELS35 + ZERO? RAFT-HELD \?THN41 + EQUAL? HERE,CANAL \?ELS40 + IN? PROTAGONIST,RAFT \?ELS40 +?THN41: CALL PERFORM,V?DEFLATE,RAFT + RTRUE +?ELS40: PRINTR "It's not even in water!" +?ELS35: EQUAL? PRSA,V?PUT \?ELS48 + CALL IN-CATACOMBS + ZERO? STACK /?ELS48 + EQUAL? PRSI,WATER \?ELS48 + CALL PERFORM,V?DROP,RAFT + RTRUE +?ELS48: EQUAL? PRSA,V?THROW,V?DROP \?ELS52 + EQUAL? PRSO,RAFT \?ELS52 + CALL IN-CATACOMBS + ZERO? STACK /?ELS52 + REMOVE RAFT + PRINTR "The raft floats into the darkness. Oh, well, easy come, easy go." +?ELS52: EQUAL? PRSA,V?DROP \?ELS56 + ZERO? RAFT-HELD /?ELS56 + SET 'RAFT-HELD,FALSE-VALUE + MOVE RAFT,CANAL + CALL SET-RAFT-LOC + CALL QUEUE,I-CANAL,-1 + PRINTI "The raft " + EQUAL? HERE,CANAL \?ELS63 + ZERO? BARGE-UNDER-POWER /?ELS66 + PRINTI "is left behind in the wake of" + JUMP ?CND64 +?ELS66: SET 'RAFT-WAIT,BARGE-WAIT + PRINTI "floats along beside" +?CND64: PRINTR " the barge." +?ELS63: PRINTR "is swept away." +?ELS56: EQUAL? PRSA,V?TAKE \?ELS73 + EQUAL? PRSO,RAFT \?ELS73 + FSET? RAFT,TOUCHBIT /?ELS73 + FSET RAFT,TOUCHBIT + CALL INCREMENT-SCORE,8,3 + RFALSE +?ELS73: EQUAL? PRSA,V?TAKE \?ELS77 + IN? YOUR-BODY,RAFT /?THN80 + IN? SIDEKICKS-BODY,RAFT \?ELS77 +?THN80: PRINTR "It's too heavy." +?ELS77: EQUAL? PRSA,V?BOARD \?ELS83 + IN? RAFT,BARGE \?ELS88 + PRINTI "Hrumph! There's no reason to board the raft inside the barge! " + CALL PERFORM,V?SINK,BARGE + RTRUE +?ELS88: IN? RAFT,ODD-MACHINE \?ELS90 + CALL DO-FIRST,STR?314,ODD-MACHINE + RSTACK +?ELS90: CALL ULTIMATELY-IN?,RAFT,MALE-GORILLA + ZERO? STACK \?THN93 + CALL ULTIMATELY-IN?,RAFT,FEMALE-GORILLA + ZERO? STACK /?ELS92 +?THN93: CALL NOT-ON-GROUND,RAFT + RSTACK +?ELS92: ZERO? RAFT-HELD \?THN99 + IN? RAFT,CANAL \FALSE +?THN99: IN? PROTAGONIST,RAFT /FALSE + CALL QUEUE,I-CANAL,-1 + CALL SET-RAFT-LOC + EQUAL? HERE,MY-KIND-OF-DOCK \?ELS103 + SET 'NEARER-DOCK,MY-KIND-OF-DOCK + JUMP ?CND101 +?ELS103: SET 'NEARER-DOCK,ABANDONED-DOCK +?CND101: GRTR? BARGE-LOC-NUM,RAFT-LOC-NUM \?CND106 + IN? BARGE,CANAL \?CND106 + SET 'BARGE-LOC-NUM,36 + MOVE BARGE,ICY-DOCK +?CND106: PRINTI "As you" + CALL AND-SIDEKICK,RAFT + PRINTI " board the raft, " + EQUAL? HERE,CANAL \?ELS113 + PRINTI "it begins drifting away from the barge" + ZERO? BARGE-UNDER-POWER /?CND111 + CALL BARGE-FORGES-AHEAD + JUMP ?CND111 +?ELS113: PRINTI "the current sweeps it away from the dock" +?CND111: PRINT PERIOD-CR + ZERO? BARGE-WAIT /?ELS122 + EQUAL? RAFT-LOC-NUM,BARGE-LOC-NUM \?ELS122 + SET 'RAFT-WAIT,TRUE-VALUE + JUMP ?CND120 +?ELS122: SET 'RAFT-WAIT,FALSE-VALUE +?CND120: SET 'RAFT-HELD,FALSE-VALUE + MOVE RAFT,CANAL + EQUAL? HERE,CANAL \?ELS131 + MOVE PROTAGONIST,RAFT + RTRUE +?ELS131: CRLF + CALL GOTO,RAFT + RSTACK +?ELS83: EQUAL? PRSA,V?STAND-ON \?ELS135 + CALL PERFORM,V?BOARD,RAFT + RTRUE +?ELS135: EQUAL? PRSA,V?KILL,V?MUNG,V?DEFLATE \?ELS137 + FSET? RAFT,MUNGBIT \?ELS142 + PRINT ALREADY-IS + RTRUE +?ELS142: PRINTI """Phssss.""" + ZERO? RAFT-HELD \?THN150 + IN? RAFT,CANAL \?ELS149 +?THN150: PRINTI " The raft sinks" + IN? PROTAGONIST,RAFT \?ELS156 + CALL JIGS-UP,STR?315 + RSTACK +?ELS156: SET 'RAFT-HELD,FALSE-VALUE + REMOVE RAFT + PRINT PERIOD-CR + RTRUE +?ELS149: FSET RAFT,MUNGBIT + PUTP RAFT,P?SDESC,STR?316 + CRLF + RTRUE +?ELS137: EQUAL? PRSA,V?INFLATE \?ELS162 + FSET? RAFT,MUNGBIT \?ELS167 + PRINTR "Without a pump? Forget it." +?ELS167: PRINT ALREADY-IS + RTRUE +?ELS162: EQUAL? PRSA,V?SHAKE \?ELS171 + EQUAL? HERE,CANAL \?ELS171 + IN? PROTAGONIST,RAFT \?ELS171 + CALL SHAKE-BOAT + RSTACK +?ELS171: EQUAL? PRSA,V?PUSH-DIR \?ELS175 + EQUAL? PRSI,INTDIR \?ELS175 + IN? PROTAGONIST,RAFT \?ELS182 + EQUAL? P-PRSA-WORD,W?MOVE /?ELS182 + PRINTR "You're in it!" +?ELS182: IN? RAFT,CANAL \?ELS186 + PRINT NO-STEERING + RTRUE +?ELS186: CALL DO-WALK,P-DIRECTION + MOVE RAFT,HERE + RTRUE +?ELS175: EQUAL? PRSA,V?SET \?ELS190 + IN? RAFT,CANAL \?ELS190 + PRINT NO-STEERING + RTRUE +?ELS190: EQUAL? PRSA,V?LAND \FALSE + PRINTR "Try grabbing a dock." + + + .FUNCT I-BEETLES + CALL IN-CATACOMBS + ZERO? STACK /FALSE + CALL QUEUE,I-BEETLES,6 + IN? PROTAGONIST,HERE \?ELS8 + RANDOM CATACOMBS-LOC >CATACOMBS-LOC + IN? SIDEKICK,HERE \?CND9 + MOVE SIDEKICK,CATACOMBS +?CND9: MOVE PROTAGONIST,CATACOMBS + SET 'HERE,CATACOMBS + FSET CATACOMBS,MUNGBIT + CALL OPEN-EYES-AND-REMOVE-HANDS + PRINTR " Suddenly the water explodes with life! A swarm of the nastiest beetles this side of Pluto starts munching your flesh. You escape by running blindly through the catacombs, completely losing track of your location." +?ELS8: CALL HARMLESS-SNAP,STR?317 + RSTACK + + + .FUNCT I-CRABS,OBJ + CALL IN-CATACOMBS + ZERO? STACK /FALSE + CALL QUEUE,I-CRABS,10 + IN? PROTAGONIST,HERE \?ELS8 + CALL OPEN-EYES-AND-REMOVE-HANDS + FSET CATACOMBS,MUNGBIT + PRINTI " You feel an intense pain, like a tuft of hair being yanked out -- except that it's coming from your feet, and in about a hundred places. As you flail at the pack of Martian sand crabs, the splashing startles them away" + FIRST? PROTAGONIST >OBJ \?ELS13 + EQUAL? OBJ,GARMENT,COMIC-BOOK /?ELS13 + EQUAL? OBJ,TORCH \?CND16 + NEXT? TORCH \?CND16 + NEXT? TORCH >OBJ /?KLU25 +?KLU25: +?CND16: PRINTI ", but during the struggle you seem to have lost your " + CALL DPRINT,OBJ + PRINT PERIOD-CR + REMOVE OBJ + CALL NOW-DARK? + RSTACK +?ELS13: PRINT PERIOD-CR + RTRUE +?ELS8: CALL HARMLESS-SNAP,STR?318 + RSTACK + + + .FUNCT I-GATOR + CALL IN-CATACOMBS + ZERO? STACK /FALSE + IN? PROTAGONIST,HERE \?ELS8 + CALL JIGS-UP,STR?319 + RSTACK +?ELS8: CALL QUEUE,I-GATOR,12 + CALL HARMLESS-SNAP,STR?320 + RSTACK + + + .FUNCT HARMLESS-SNAP,STRING + PRINTI " The calm water is suddenly shattered by the jaws of a huge Martian " + PRINT STRING + PRINTR " snapping harmlessly toward you. Good thing you were in the raft." + + + .FUNCT MARTIAN-DESSERT-EXIT-F + FSET? MARTIAN-DESSERT,MUNGBIT /?CND1 + FSET MARTIAN-DESSERT,MUNGBIT + PRINTI "I guess the paths aren't a mirage..." + CRLF + CRLF +?CND1: EQUAL? PRSO,P?NW \?ELS8 + RETURN RUINED-CASTLE-2 +?ELS8: RETURN OASIS + + + .FUNCT WATTZ-UPP-DOCK-ENTER-F + PUTP HOLE,P?SDESC,STR?132 + RETURN WATTZ-UPP-DOCK + + + .FUNCT MARTIAN-DESSERT-ENTER-F + PUTP HOLE,P?SDESC,STR?132 + RETURN MARTIAN-DESSERT + + + .FUNCT CIRCLE-ISNT-BLACK + ZERO? CIRCLE-BLACK \FALSE + EQUAL? HERE,OASIS \FALSE + RTRUE + + + .FUNCT OASIS-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + ZERO? CIRCLE-BLACK \?ELS5 + PUTP HOLE,P?SDESC,STR?323 + RTRUE +?ELS5: EQUAL? RARG,M-LOOK \?ELS9 + PRINTI "This is a remarkable sight on arid Mars -- subsurface water bubbling up in a fountain, flowing around" + CALL APRINT,HOLE + PRINTI ", and soaking into the thirsty sand. A path curves east around the " + PRINTD DUNES + CALL UNCHARTABLE-DESERT,STR?258 + RSTACK +?ELS9: EQUAL? RARG,M-END \FALSE + ZERO? SIDEKICK-DROWNED /?CND12 + MOVE SIDEKICK,HERE + SET 'SIDEKICK-DROWNED,FALSE-VALUE + PRINTI " Like a wet watermelon seed being squirted from between two fingers, " + CALL DPRINT-SIDEKICK + PRINTI " is ejected from the fountain and lands in a dripping heap at your feet. ""Good thing I'm so good at holding my breath,"" " + CALL HE-SHE + PRINTI " says." + CRLF +?CND12: ZERO? CIRCLE-FADED \FALSE + SET 'CIRCLE-FADED,TRUE-VALUE + SET 'CIRCLE-BLACK,FALSE-VALUE + PUTP HOLE,P?SDESC,STR?323 + PRINTR " Inexplicably, the circle fades before your very eyes, slowly going from black to white." + + + .FUNCT ICY-DOCK-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + FSET? ICY-DOCK,TOUCHBIT /?ELS5 + CALL RUNNING?,I-ION-DEATH + ZERO? STACK \?ELS5 + CALL INCREMENT-SCORE,4,14 + RSTACK +?ELS5: EQUAL? RARG,M-END \FALSE + IN? SIDEKICK,HERE \FALSE + SET 'FOLLOW-FLAG,3 + CALL QUEUE,I-FOLLOW,2 + REMOVE SIDEKICK + SET 'SIDEKICK-DROWNED,TRUE-VALUE + PRINTI " With a whoop of surprise, " + CALL DPRINT-SIDEKICK + PRINTI " loses " + CALL HIS-HER + PRINTI " footing on the ice, skids right into the canal, and is immediately dragged under by the strong current produced by the underwater teleporters. You search frantically for any sign of " + CALL HIM-HER + PRINTI ", but after several agonizingly long minutes you abandon all hope. As you gaze across " + CALL DPRINT-SIDEKICK + PRINTI "'s watery grave" + CALL MEMORIAM + RSTACK + + + .FUNCT TUNDRA-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This snowy plain is barren of all signs of life. Drifts block travel in all directions but north, south and southeast. It's pretty cold, but nothing a tough g" + ZERO? MALE /?ELS8 + PRINTI "uy" + JUMP ?CND6 +?ELS8: PRINTI "al" +?CND6: PRINTI " like yourself can't stand." + RTRUE + + + .FUNCT PENGUIN-PARK-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "Even on Mars, one could hardly expect a polar visit without seeing penguins. Well, here they are! A whole waddling mass of them, " + ZERO? PENGUINS-PARTED /?ELS8 + PRINTI "standing politely on either side of" + JUMP ?CND6 +?ELS8: PRINTI "a pack so dense they completely block" +?CND6: PRINTI " the path to the southeast. Other paths lead west and northwest." + ZERO? PENGUINS-PARTED \TRUE + CRLF + PRINTI " One penguin teasingly waves a sign in your direction, much like a matador waving his cape toward a bull." + RTRUE + + + .FUNCT PENGUINS-F + EQUAL? PRSA,V?GIVE \?ELS5 + EQUAL? PRSO,TEN-MARSMID-COIN \?ELS10 + SET 'PENGUINS-PARTED,TRUE-VALUE + REMOVE TEN-MARSMID-COIN + MOVE ONE-MARSMID-COIN,PROTAGONIST + PRINTR "The penguins, satisfied by your donation to the PRF, part ranks for you to pass. The going rate for donations to the fund must be nine marsmids, since one of the penguins hands you a one marsmid coin." +?ELS10: EQUAL? PRSO,ONE-MARSMID-COIN \FALSE + PRINTR "Nine marsmids is the minimum contribution to the PRF." +?ELS5: EQUAL? PRSA,V?SHOW \FALSE + EQUAL? PRSO,TEN-MARSMID-COIN \FALSE + PRINTR "The penguins wiggle eagerly." + + + .FUNCT GYPSY-CAMP-F,RARG + EQUAL? RARG,M-END \FALSE + ZERO? PARENTS-KILLED \?CND6 + SET 'PARENTS-KILLED,TRUE-VALUE + ZERO? VERBOSITY /TRUE + PRINTI " A male and a female robot emerge from the tent, waving in a gesture of gypsyish greeting. ""Hello, weary traveller" + IN? SIDEKICK,HERE \?CND12 + PRINTI "s" +?CND12: PRINTI "! We are but poor gypsies, but we invite you to spend the night in our humble tent and share our simple but delicious oil and silicon stew."" Suddenly, in an event so shocking that even a hardened space opera hero" + ZERO? MALE \?CND15 + PRINTI "ine" +?CND15: PRINTI " like yourself is stunned beyond belief, a meteorite shrieks through the atmosphere and completely obliterates the two robots." + CRLF +?CND6: IN? BABY,TENT \FALSE + IN? BLANKET,BABY /FALSE + PRINTR " You hear the sound of high-pitched crying, slightly muffled, coming from inside the tent." + + + .FUNCT OUTSIDE-TENT-F + EQUAL? PRSA,V?WALK-TO,V?BOARD,V?ENTER \?ELS5 + CALL DO-WALK,P?NORTH + RSTACK +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS7 + PRINT LOOK-AROUND + RTRUE +?ELS7: EQUAL? PRSA,V?LOOK-INSIDE \FALSE + PRINT CANT-FROM-HERE + RTRUE + + + .FUNCT INSIDE-TENT-F + EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS5 + CALL DO-WALK,P?SOUTH + RSTACK +?ELS5: EQUAL? PRSA,V?WALK-TO,V?BOARD,V?ENTER \?ELS7 + PRINT LOOK-AROUND + RTRUE +?ELS7: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS9 + CALL V-LOOK + RSTACK +?ELS9: EQUAL? PRSA,V?SEARCH \FALSE + PRINT NOTHING-NEW + RTRUE + + + .FUNCT TENT-F,RARG + EQUAL? RARG,M-ENTER \FALSE + CALL QUEUE,I-CRY,-1 + RSTACK + + + .FUNCT I-CRY + IN? BLANKET,BABY \?ELS5 + CALL DEQUEUE,I-CRY + RFALSE +?ELS5: CALL VISIBLE?,BABY + ZERO? STACK /FALSE + PRINTI " The baby continues to wail at the top of its lungs." + RANDOM 100 + LESS? 12,STACK /?CND10 + PRINTI " It's amazing that such small lungs have such a high top." +?CND10: CRLF + RTRUE + + + .FUNCT BABY-F,OARG=0 + ZERO? OARG /?ELS5 + FSET? BABY,TOUCHBIT /FALSE + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " A little baby robot is shivering in the corner. It stops crying long enough to open a tiny metal eyelid and look at you. """ + ZERO? MALE /?ELS19 + PRINTI "Momm" + JUMP ?CND17 +?ELS19: PRINTI "Dadd" +?CND17: PRINTI "y?"" it says, in a quavering, high-pitched, metallic voice." + RTRUE +?ELS5: EQUAL? PRSA,V?TELL \?ELS24 + IN? BLANKET,BABY \?ELS27 + SET 'WINNER,PROTAGONIST + CALL PERFORM,V?KISS,BABY + JUMP ?CND25 +?ELS27: PRINTI """Goo goo ga ga buzz whirr click.""" + CRLF +?CND25: CALL STOP + RSTACK +?ELS24: EQUAL? PRSA,V?PUT \?ELS35 + EQUAL? PRSI,BLANKET /?THN32 +?ELS35: EQUAL? PRSA,V?WRAP,V?PUT-ON \?ELS37 + EQUAL? PRSO,BLANKET /?THN32 +?ELS37: EQUAL? PRSA,V?PUT \?ELS31 + EQUAL? PRSI,BASKET \?ELS31 + IN? BLANKET,BASKET \?ELS31 +?THN32: FSET? BLANKET,UNTEEDBIT /FALSE + IN? BLANKET,BABY \?CND40 + PRINT SENILITY-STRIKES + RTRUE +?CND40: FSET BABY,TOUCHBIT + FSET BLANKET,NDESCBIT + MOVE BLANKET,BABY + EQUAL? PRSI,BASKET \?CND45 + MOVE BABY,BASKET +?CND45: PUTP BABY,P?SDESC,STR?332 + CALL DEQUEUE,I-CRY + PRINTR "The baby stops crying and, in the comfy warmth of the blanket, slips into a calm sleep. A peaceful smile creeps over its face." +?ELS31: EQUAL? PRSA,V?PUT \?ELS53 + EQUAL? PRSI,SHEET /?THN50 +?ELS53: EQUAL? PRSA,V?WRAP,V?PUT-ON \?ELS49 + EQUAL? PRSO,SHEET \?ELS49 +?THN50: IN? BLANKET,BABY /?THN61 + FSET? SHEET,MUNGBIT /?THN61 + FSET? SHEET,PLURALBIT \?ELS60 +?THN61: CALL WASTES + RSTACK +?ELS60: PRINTR "The sheet provides little warmth." +?ELS49: EQUAL? PRSA,V?PUT \?ELS66 + EQUAL? PRSI,BASKET \?ELS66 + IN? BASKET,FRONT-STOOP \?ELS66 + FIRST? BASKET /?ELS66 + IN? BLANKET,BABY \?ELS73 + MOVE BABY,BASKET + CALL ABANDON-BABY,STR?333 + RSTACK +?ELS73: CALL CRYING-ALERTS-MATRON + RSTACK +?ELS66: EQUAL? PRSA,V?REMOVE \?ELS77 + IN? BLANKET,BABY \?ELS77 + MOVE BLANKET,PROTAGONIST + FCLEAR BLANKET,NDESCBIT + PUTP BABY,P?SDESC,STR?331 + CALL QUEUE,I-CRY,-1 + PRINTI "The baby robo" + PRINT TWICE-AS-LOUD + CALL ULTIMATELY-IN?,BABY,FRONT-STOOP + ZERO? STACK /TRUE + PRINTI " " + CALL CRYING-ALERTS-MATRON + RTRUE +?ELS77: EQUAL? PRSA,V?KISS \?ELS84 + IN? BLANKET,BABY \?ELS89 + CALL PERFORM,V?ALARM,BABY + RTRUE +?ELS89: PRINTI "The " + CALL DPRINT,BABY + PRINTI " reacts as a human baby would react if kissed by a giant walking metal machine. In other words, i" + PRINT TWICE-AS-LOUD + RTRUE +?ELS84: EQUAL? PRSA,V?LISTEN \?ELS93 + IN? BLANKET,BABY /?ELS93 + PRINTR """Waaaa!""" +?ELS93: EQUAL? PRSA,V?SHAKE \?ELS97 + IN? BLANKET,BABY \?ELS102 + PRINTR "The baby's asleep!" +?ELS102: PRINTI "This upsets the " + CALL DPRINT,BABY + PRINTI "'s equilibrium mechanism. I" + PRINT TWICE-AS-LOUD + RTRUE +?ELS97: EQUAL? PRSA,V?ALARM \?ELS106 + IN? BLANKET,BABY \?ELS106 + PRINTR "The baby whimpers briefly, but the warm coziness of the blanket soon lulls it back to sleep." +?ELS106: CALL TAKE-BABY-FROM-STOOP,BABY + ZERO? STACK \TRUE + EQUAL? PRSA,V?SUCKLE \?ELS112 + ZERO? MALE /?ELS117 + PRINTR "You're a male, remember? You obviously have a poor mammary." +?ELS117: PRINTR "How touching that the baby robot has stirred your maternal instinct. Unfortunately, your mammaries won't produce #3 machine oil." +?ELS112: EQUAL? PRSA,V?PUT-NEAR,V?PUT \?ELS122 + EQUAL? PRSI,ORPHANAGE-DOOR \?ELS122 + CALL PERFORM,V?PUT-ON,BABY,FRONT-STOOP + RTRUE +?ELS122: EQUAL? PRSA,V?EXAMINE \?ELS126 + PRINTI "The " + CALL DPRINT,BABY + PRINTI " is " + IN? BLANKET,BABY \?ELS129 + PRINTI "sleep" + JUMP ?CND127 +?ELS129: PRINTI "cry" +?CND127: PRINTR "ing." +?ELS126: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE + PRINT HUH + RTRUE + + + .FUNCT CRYING-ALERTS-MATRON + PRINTI "The baby's crying alerts someone within the igloo. " + CALL SHOO,STR?334 + RSTACK + + + .FUNCT SHOO,STRING + CALL DEQUEUE,I-ORPHANAGE + PRINT MATRON-DESC + PRINTI "appears. ""Caught you, you baby-" + PRINT STRING + PRINTI "ing gypsy!"" she cries, in a voice that, in a more mountainous region, could probably initiate an avalanche. ""Begone!"" She " + CALL ULTIMATELY-IN?,BABY,FRONT-STOOP + ZERO? STACK /?CND1 + PRINTI "thrusts the babe into your arms and " +?CND1: IN? BASKET,FRONT-STOOP \?CND4 + MOVE BASKET,PROTAGONIST +?CND4: CALL ULTIMATELY-IN?,BABY,FRONT-STOOP + ZERO? STACK /?CND7 + MOVE BABY,PROTAGONIST +?CND7: PRINTI "drives you away with blows that would fell an elephant." + CRLF + CRLF + EQUAL? HERE,ORPHANAGE-FOYER \?ELS14 + CALL GOTO,SOUTH-POLE + RSTACK +?ELS14: CALL GOTO,GYPSY-CAMP + RSTACK + + + .FUNCT SOUTH-POLE-F,RARG + EQUAL? RARG,M-ENTER \FALSE + ZERO? COTTON-BALLS-SEEN /FALSE + FSET? COTTON-BALLS,TRYTAKEBIT \FALSE + MOVE COTTON-BALLS,HERE + FSET COTTON-BALLS,NDESCBIT + RTRUE + + + .FUNCT ORPHANAGE-DOOR-F + EQUAL? PRSA,V?KNOCK \FALSE + EQUAL? HERE,SOUTH-POLE \FALSE + CALL VISIBLE?,BABY + ZERO? STACK /?ELS12 + CALL SHOO,STR?334 + RSTACK +?ELS12: CALL SHOO,STR?339 + RSTACK + + + .FUNCT FRONT-STOOP-F + EQUAL? PRSA,V?PUT-NEAR,V?PUT-ON,V?PUT \?ELS5 + EQUAL? PRSO,BABY \?ELS10 + IN? BABY,BASKET /?ELS10 + IN? BLANKET,BABY \?CND13 + CALL COLD-CAUSES-CRYING +?CND13: MOVE PRSO,FRONT-STOOP + CALL CRYING-ALERTS-MATRON + RSTACK +?ELS10: EQUAL? PRSO,BABY,BASKET \FALSE + IN? BABY,BASKET \FALSE + IN? BLANKET,BABY /?ELS24 + CALL CRYING-ALERTS-MATRON + RSTACK +?ELS24: MOVE BASKET,FRONT-STOOP + CALL ABANDON-BABY,STR?340 + RSTACK +?ELS5: EQUAL? PRSA,V?STAND-ON,V?ENTER,V?BOARD \?ELS28 + CALL WASTES + RSTACK +?ELS28: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSO,BABY \FALSE + CALL COLD-CAUSES-CRYING + CALL CRYING-ALERTS-MATRON + RSTACK + + + .FUNCT COLD-CAUSES-CRYING + PRINTI "As you place the baby on the cold doorstep, i" + PRINT TWICE-AS-LOUD + PRINTI " " + RTRUE + + + .FUNCT ABANDON-BABY,STRING + CALL QUEUE,I-ORPHANAGE,5 + MOVE PROTAGONIST,HERE + PRINTI "You place the baby gently " + PRINT STRING + PRINTR " and sneak behind a nearby snowdrift." + + + .FUNCT I-ORPHANAGE + REMOVE BABY + REMOVE BASKET + FCLEAR ORPHANAGE-DOOR,LOCKEDBIT + EQUAL? HERE,SOUTH-POLE \FALSE + SET 'FOLLOW-FLAG,15 + CALL QUEUE,I-FOLLOW,2 + PRINTI " " + PRINT MATRON-DESC + PRINTI "opens the " + PRINTD ORPHANAGE-DOOR + PRINTR ". She coos over the baby for a moment then carries it inside, closing the door behind her." + + + .FUNCT ORPHANAGE-FOYER-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + FSET? COTTON-BALLS,TRYTAKEBIT \?CND6 + MOVE COTTON-BALLS,HERE + FCLEAR COTTON-BALLS,NDESCBIT +?CND6: CALL QUEUED?,I-ORPHANAGE-BOOT + ZERO? STACK \FALSE + CALL QUEUE,I-ORPHANAGE-BOOT,5 + RSTACK +?ELS5: EQUAL? RARG,M-LOOK \FALSE + PRINTI "The igloo's front hall has rooms to the northeast and northwest. A barred window is next to the " + CALL OPEN-CLOSED,ORPHANAGE-DOOR + PRINTI " door to the south." + RTRUE + + + .FUNCT IGLOO-ENTER-F + PRINTI "Nursery" + CRLF + CALL I-ORPHANAGE-BOOT + CALL DEQUEUE,I-ORPHANAGE-BOOT + RFALSE + + + .FUNCT I-ORPHANAGE-BOOT + EQUAL? HERE,ORPHANAGE-FOYER \?ELS5 + PRINTI " " + CALL SHOO,STR?339 + FCLEAR ORPHANAGE-DOOR,OPENBIT + FSET ORPHANAGE-DOOR,LOCKEDBIT + RTRUE +?ELS5: EQUAL? HERE,SOUTH-POLE \?ELS7 + FSET? ORPHANAGE-DOOR,OPENBIT \?ELS7 + PRINTI " The " + PRINTD ORPHANAGE-DOOR + PRINTI " slams shut." + CRLF + FCLEAR ORPHANAGE-DOOR,OPENBIT + FSET ORPHANAGE-DOOR,LOCKEDBIT + RTRUE +?ELS7: FCLEAR ORPHANAGE-DOOR,OPENBIT + FSET ORPHANAGE-DOOR,LOCKEDBIT + RFALSE + + + .FUNCT COTTON-BALLS-F + EQUAL? HERE,SOUTH-POLE \?ELS5 + FSET? COTTON-BALLS,TRYTAKEBIT \?ELS5 + CALL TOUCHING?,COTTON-BALLS + ZERO? STACK /?ELS5 + CALL CANT-REACH,COTTON-BALLS + RSTACK +?ELS5: EQUAL? PRSA,V?TAKE \?ELS9 + FSET? COTTON-BALLS,TRYTAKEBIT \?ELS9 + CALL INCREMENT-SCORE,16,29,TRUE-VALUE + FCLEAR COTTON-BALLS,TRYTAKEBIT + RFALSE +?ELS9: FSET? COTTON-BALLS,UNTEEDBIT \?ELS13 + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "Let's just say that some poor male raccoon is speaking in a particularly high-pitched voice." +?ELS13: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS22 + EQUAL? PRSI,EARS \?ELS22 + ZERO? GONE-APE /?ELS29 + PRINT DEXTERITY + RTRUE +?ELS29: FSET COTTON-BALLS,WORNBIT + FSET EARS,MUNGBIT + MOVE COTTON-BALLS,PROTAGONIST + PRINT MUFFLED + PRINTI " have " + CALL DPRINT,COTTON-BALLS + PRINTI " stuffed in " + PRINTD EARS + PRINT PERIOD-CR + RTRUE +?ELS22: EQUAL? PRSA,V?DISEMBARK,V?REMOVE \?ELS34 + FSET? COTTON-BALLS,WORNBIT \?ELS34 + ZERO? GONE-APE /?CND37 + CALL PERFORM,V?TAKE,COTTON-BALLS + RTRUE +?CND37: CALL OPEN-EYES-AND-REMOVE-HANDS + FCLEAR COTTON-BALLS,WORNBIT + CALL SENSE-AGAIN,EARS + RSTACK +?ELS34: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,NOSE \FALSE + PRINTI "The " + PRINTD COTTON-BALLS + PRINTR " is too itchy." + + + .FUNCT IGLOO-F + EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5 + EQUAL? HERE,ORPHANAGE-FOYER \?ELS10 + PRINT LOOK-AROUND + RTRUE +?ELS10: EQUAL? HERE,SOUTH-POLE \FALSE + CALL DO-WALK,P?IN + RSTACK +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS14 + EQUAL? HERE,SOUTH-POLE \?ELS19 + PRINT LOOK-AROUND + RTRUE +?ELS19: CALL DO-WALK,P?OUT + RSTACK +?ELS14: EQUAL? PRSA,V?LOOK-INSIDE \?ELS23 + EQUAL? HERE,SOUTH-POLE \?ELS28 + CALL PERFORM-PRSA,WINDOW + RTRUE +?ELS28: CALL V-LOOK + RSTACK +?ELS23: EQUAL? PRSA,V?SEARCH \FALSE + PRINT NOTHING-NEW + RTRUE + + .ENDI diff --git a/mars.zil b/mars.zil new file mode 100644 index 0000000..8925ff1 --- /dev/null +++ b/mars.zil @@ -0,0 +1,4226 @@ +"MARS for + LEATHER GODDESSES OF PHOBOS + (c) Copyright 1986 Infocom, Inc. All Rights Reserved." + + + + + + + )> + + ) + ( + ) + ( + )> + >> + + + ) + ( + )>> + + + + + ) + ( + + + )>> + +)> + + + ;"this is supposed to make Mitre..." + ;"...the first object described." + + + ) + (T + )> + )>> + + + ) + ( + )>> + + + + )>> + + + +)) + + )> + + + ) + (T + )> + ) + ( + + > + + + >> + ) + ( + > + + + + ) + ( + + >> + + + + ) + (T + + + )> + + )>) + ( + + + ) + (T + )> + ) + ( + > + + >> + + ) + (T + )>) + ( + > + + ) + ( + ) + ( + > + + )>> + + + + + >> + ;"will this really work?") + ( + + > + + + >> + ) + (T + )>) + ( + > + + ) + ( + + ) + (T + )>) + ( + ) + ( + + ) + (T + )>)>> + + + + > + + + + + >> + ;"will this really work?") + ( + >> + )>> + +> + + + ) + (T ;"the princess isn't an angle, at the moment" + ,EIGHTY-TWO-DEGREE-ANGLE)>> + + + + + >> + ;"will this really work?") + ( + ) + ( + + + )> + ) + ( + )>> + + DUST UNIMPORTANT-THING-F) + (SMALL CROWN FROG-CROWN-F) + (GOLD CROWN FROG-CROWN-F) + (FROG\'S CROWN FROG-CROWN-F)>)> + + + ) + ( + )>> + + + + ) + ( + + + + )>> + +> + + + + + + >> + + + )> + ) + ( + ) + ( + ) + ( + + + ) + (T + )> + ) + ( + ) + ( + + + + + ) + (T + )> + + + ) + (T + )> + + + + ) + (T + )> + + + ) + (T + )> + + + ) + (T + )>) + (T + )>) + (T + )>) + (T + )>)>> + + + + + + + + + ) + (T + )> + + + + + ) + (T + ;"for V-DIAGNOSE" + + )> + + + + )> + ) + (T + ) + (T + )> + )> + )> + + + )> + > + + + + + > + + + ) + (T + )> + + + )> + ) + (T + )> + ) + ( + + + ) + (T + )>) + ( + ) + ( + ) + ( + > + )>> + + + + + ) + ( + + + )>> + + + + + + + + + ) + ( + + >> + + + + ) + ( + > + ) + ( + + ) + ( + + > + ) + ( + + + > + + ) + ( + > + 11>> + + + ) + ( + ) + ( + )>> + + + + )> + + ) + (T + )>> + + + + + + ) + (T + )> + )>> + + + +)) + + )> + + + ) + (T + )>) + ( + + >> + ) + ( + ) + ( + + > + )> + ) + ( + + ) + (T + + > + )> + + > + )> + )>) + ( + + + ) + ( + > + + + + ) + ( + ) + ( + + > + + + + + > + ) + ( + > + + ) + ( + ) + ( + > + ) + ( + + + )>> + + + + > + + + + + + ) + (T + )> + ) + ( + >) + (T + )> + + > + + >> + + > + + )> + + + + ) + (T + )> + + + + )> + ) + (> + )> + )>> + + + + + + ) + (T + )> + ) + ( + + >) + (T + + + > + )>)> + )>> + + + ,MOORING-ON> + + ) + (T + + )> + > + + + +> + + + + + +> + +> + +> + +> + ) + ( + ) + (T + )>> + + ;"you're in the barge" + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + (T + )>> + + + + + ) + ( + > + ) + ( + + ) + ( + + + )> + ) + (T + )> + ,RAFT ,BARGE> + >) + (T + )> + + ) + ( + + ) + ( + + + > + >> + + + + ) + ( + > + + + > + + + + )> + ) + (> + ) + (T + + + + ) + (T + + + + )> + + > + ,BARGE-UNDER-POWER> + + + ) + (T + )>)> + )>)>) + (T + + + > + ) + (T + )> + + + ) + (T + )> + + + > + )> + )>) + ( + + )>> + + + +> + + > + >> + + )> + + > + ) + ( + + > + + + + > + ;"to supress ,IN THE RAFT" + > + + > + + )> + ) + ( + + ) + ( + ) + (T + > + )>) + ( + > + + ) + ( + + >> + + ) + ( + + ) + (T + + )>) + ( + ) + ( + >> + )>> + +> + + + + + > + ) + ( + + ) + ( + ) + (T + )>) + ( + > + )>> + +)> + + + > + > + " rocks gently in the current of a wide canal."> + + + + >> + + + ) + (T + )> + ) + ( + ) + (T + )> + + + + + + ) + (T + )> + )> + )> + + ) + ( + + + ) + (T + )> + + + ) + (T + )>)> + + )> + + )> + + )> + + > + + + + > + + " passes through the beam, you feel a +tingling from every cell in " 'YOUR-BODY ".">)>) + (T + + )>)> + )>> + +> + + > + + > + + > + + ,MY-KIND-OF-DOCK + ,ABANDONED-DOCK>> + + >> + ) + (T + )>> + +> + ) + ( + )>> + +> + > + >> + ) + ( + + ) + ( + + + ) + (T + )> + ) + ( + )>> + +)) + > + >> + + )> + ; + )> + + )>)> + + + + )> + > + + > + >)> + >) + (T + )>)> + + ;"barge clause, above, updates raft loc"> + + )> + > + >) + (T + )>)> + > + + >> + > + )> + )> + + ) + ( + ) + (T + )> + > + + + )>)> + + )> + + ) + ( + )> + " "> + + > + + ) + (T + + )> + + > + ) + (T + )> + ) + (T + > + ) + (T + )> + )> + + + +" butts up against it" ,PINNED CR> + + + > + ) + ( + + > + )> + ,ICY-DOCK> + > + )> + + > + ) + (T + + )> + + + > + + + ) + (T + + )>)> + + > + + + +> + + > + ) + ( + + ) + ( + )>> + + + " is now passing the metal structure that has been +looming closer for the last hour. Its size and power are overwhelming; a relic +of Martian technology at its height. Vacuum tubes the size of telephone booths +produce power that was once beamed all over Mars. But now, in the twilight of +the planet's civilization, the machine's base has rusted away. The massive +tower now shoots its ion power beam uselessly across the canal, into the sand +of the opposite bank.">) + ( + ) + ( + ) + (T + + + ) + ( + ) + (T + )>)>> + +> + + + +> + +> + + + ) + (T + + ;"so you can't win with headache") + (T + )> + + + > + )> + )>> + +) "AUX" DOCK-ROOM DOCK-DIR) + + + >> + )> + > + > + + + + ;"because room desc comes next")> + )> + + + )> + )> + > + ) + (T + )>> + + + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + (T + )>> + + + ) + ( + ) + ( + ) + ( + ) + (T + )>> + + + + + + + + + >> + >> + 0>> + >> + )>>)>> + + ;"for four digit numbers, this returns true + anytime the first and last digit are equal; + it doesn't bother checking the middle pair" + > + ) + (T + )>) + ( > + ) + (T + )>> + + + + + ) + ( + > + > + + ) + (T + + + + )>) + ( + > + + ) + ( + > + + + )>> + + + + +;"YOUR MISSION IS TO CONTACT (WIFE) (HUSBAND) NUMBER (N) OF THE +(SULTAN) (SULTANESS) AND GET THE SECRET MAP -- +IDENTIFY YOURSELF TO (HIM) (HER) BY ASKING (HIM) (HER) TO KISS YOUR KNEECAPS" +;"to translate, replace every letter with the letter three before it -- +D becomes A, E becomes B, and so forth. Then reverse the entire note." + + ) + (T + )> + + ) + (T + )> + + + )> + + + + ) + (T + )> + )>> + +> + > + + )>>> + + + + + ) + ( + ) + ( + > + ) + ( + ) + ( + )>> + + + + + + + > + )>> + + + +> + > + + ) + ( + ) + ( + ) + ( + ) + ( + + + > + )> + ) + (T + )>> + + + + STORE OUTSIDE-SHOP-F) + (<> SHOP OUTSIDE-SHOP-F)>)> + + + ) + ( + )>> + + + ) + ( + ) + ( + + ) + ( + )>> + + STORE INSIDE-SHOP-F) + (<> SHOP INSIDE-SHOP-F)>)> + + + >> + + )>> + + + + + + > + + + >> + ) + (T + + + )>) + ( + ) + ( + + >> + + ) + ( + > + ) + ( + > + + + + ) + ( + > + )>> + + + + + + ) + ( + + + ) + (T + )>) + ( + > + + ) + ( + + > + )>> + + + +)) + + > + + + ) + (T + )>) + ( + ) + ( + > + + ) + ( + )>> + + + + + +)) + + ) + ( + ) + ( + > + + )> + ) + ( + ) + ( + ) + ( + > + ,HERE ,RAFT ,BARGE> + + ) + ( + ) + (T + )>) + ( + + + )> + ) + (> + >>> + ) + ( ,HERE ,TREE-HOLE> + ,RAFT ,BARGE>>> + + )> + ) + (> + ) + (T + + )> + + ;"begin the endgame!" + ;"radiated, you can't win" + ;"speed it up" + )> + + )> + )>)>> + + + ,A?FLEXIBLE ,A?PORTABLE>> + + ,A?FLEXIBLE ,A?PORTABLE>>> + ) + (> + ) + ( + + ) + (T + + )>> + + LIGHT UNIMPORTANT-THING-F)>)> + + LIGHT UNIMPORTANT-THING-F)>)> + + BRA UNIMPORTANT-THING-F) + (<> BRAS UNIMPORTANT-THING-F) + (<> BRASSIERE UNIMPORTANT-THING-F) + (<> JOCKSTRAP UNIMPORTANT-THING-F)>)> + + + + ) + (T + )> + + + ) + (T + )> + )>> + + + + + ) + ( + > + > + ) + (,GONE-APE + ) + ( + ) + (T + + + + )>) + ( + > + + ) + ( + + + ,PRSI> + + ) + ( + + > + + ) + ( + > + + )> + + + )>> + +)> + + + + + + + + > + + + ) + ( + + ) + (T + )> + ) + ( + ;"that is, the well" + > + + + )> + )>> + + + + + + ) + ( + )>) + ( + + ) + (T + )>)>> + + + + + + HAREM HAREM-OBJECT-F) + (<> WIFE MATE-F) + (<> HUSBAND MATE-F)>)> + + + + + )> + ) + ( + >> + + )>> + + + + ) + ( + ,ORIENTAL-GARDEN) + ( + ,MAIN-HALL-OF-PALACE) + ( + ;"he's stormed off"> + ,HAREM) + ( + + + ) + (T + + + + + )> + + + + + + + + ) + (T + )> + + + + )>> + + + + + > + ) + (> + >> + )>> + + + + + + > + ) + (T + )>) + ( + > + )>> + + + +)) + > + ) + (T + )> + > + > + > + + + )> + + )> + + + + + + + > + ) + (T + + + )> + )>> + +) "AUX" DUPE) + + ,W?NUMBER>> + + ) + ( + ) + (> + ) + ( + > + + > + + + + + ) + (T + ,P-NUMBER> + > + + + + ) + (T + )> + ) + (T + >)> + )>) + (T + )> + + > + + + + + +> + +> + + + +)) + + )> + + ) + (T + )>) + ( + + + > + ) + ( + ) + ( + > + ) + ( + > + ) + ( + ,AWAITING-FAKE-ORPHAN + > + > + + )> + + + + + + + + + + ) + (T + + )>) + ( + + + >>> + ) + ( + > + + ) + ( + ,RIDDLE-ANSWERED> + + + )>> + + + + > + + + +> + + + + + ) + (T + )>) + (T + + + + + + + ) + (T + )> + + + + + + + + + + + + )> + > + +> + +> + + + > + + + + ) + ( + ) + ( + + + + + ) + (T + + + )>> + +> + + + > + + "if you just said SAY or ANSWER with nothing after") + ( ,W?RIDDLE> + > ,W?RIDDLE>>> + + + + ) + ( ,W?SEX ,W?LOVE>> + > + + ) + (T + + )>> + + HAREM HAREM-OBJECT-F)>)> + + + + > + + + >)> + )> + ) + ( + + > + ;"this can happen if you answer the riddle before ever + meeting sidekick, then go back, get him, and enter harem" + + ) + ( + + ) + (T + )> + ".">)>> + + + + + + + > + + + + + + + + + + ) + (T + + + + + )>) + (T + )>> + + + + ) + (T + )>> + + + + ) + ( + )>) + ( + + ) + (T + )>) + ( + >> + ) + ( + >> + + ) + ( + )>> + + HAREM HAREM-OBJECT-F)>)> + + + + > + +" and incense mingle in the air. ">)> + + )> + )>> + + + > + + ) + (T + ,HAREM)>> + + + +)) + + )> + + > + )> + ) + ( + + + > + + + + >> + + + + + + + + + + + + + + ) + (T + )>) + ( + + > + + + + ) + ( + > + + + + ) + ( + > + + + + ) + ( + > + + ) + (T + )>) + ( + > + + + >> + ) + (T + + + + ) + (T + + )>)>) + ( + ) + ( + ,CATACOMBS-OPEN> + ) + ( + > + + + CR>) + ( + + ) + ( + ) + (T + + + )>) + ( + >> + + ) + ( + ) + ( + ) + ( + + )> + + + + + + + ) + (T + )> + + ) + (T + )> + )> + ) + ( + ) + ( + ) + ( + ) + ( + ) + (T + )> + ) + ( + >> + + + ) + (,MALE + ) + (T + )> + ) + ( + + ,PERIOD-CR>)>> + +> + +> + + + + + > + + ) + ( + >> + + ) + ( + + > + + ) + ( + + + >> + ) + ( + + > + + )>> + + + + + + + + > + +> + + ) + (T + >)> + + > + >> + + + + ) + (T + )>)> + ;"won't stop a wait even if it prints"> + + + + + >> + + )>> + +> + + + + + + + + ) + (T + + ) + (T + )> + )> + ,CATACOMBS) + (T + + )>> + + + + + + + > + )> + ) + ( + ,SIDEKICK-EATEN> + + > + + + + + )>> + + + )> + 0) + ( 1) + ( 2) + ( 3) + ( 4) + ( 5) + ( 6) + ( 7) + ( 8) + (T 9)>> + 10> .DIR-OFFSET>>> + + + + + + ) + (T + )>) + (T + )> + + ) + (T + + + + + ) + (T + )> + ) + (T + )> + + + ) + ( ;"back up to harem" + + ) + (T + + + ) + ( + ) + ( + ) + ( + ) + (T + + + + )> + ;"next kludge keeps V-WALK from doing an RFATAL" + )>)>)>> + + + +> + + + + + + + ) + ( + ) + ( + >> + + + )>> + + LIGHT UNIMPORTANT-THING-F)>)> + + + ) + (T + )> + ,CATACOMBS> + + + + )> + > + + LADDER LADDER-F)>)> + + + ) + (T + )> + + ,LAUNDRY-ROOM> + + + )>> + + RUBY UNIMPORTANT-THING-F) + (<> RUBIES UNIMPORTANT-THING-F) + (<> DIRIGIBLE UNIMPORTANT-THING-F)>)> + + + +> + +) "AUX" (NUM 0)) + > + + )> + ) + (,RAFT-HELD + + )> + ) + ( + + )> + ) + (T + )>) + ( + + + >> + ) + ( + ) + ( + + >> + + ) + (T + )>) + ( + + > + + ) + ( + + > + + ) + ( + ,RAFT-HELD> + > + + + + + + ) + (T + ;"keep 'em in phase" + )> + ) + (T + )>) + ( + + >> + + + ) + ( + + >> + ;"this is possible if you get in raft in Lab and then + flip the switch again, then TAKE RAFT as gorilla" + ) + ( + + + + ) + ( + ) + ( + > + ) + (> + >> + + + + ) + (T + )> + + > + + )> + + + + + + )>) + (T + )> + + > + ) ;"so they'll drift together" + (T + >)> + > + + ;"not changing rooms" + ) + (T ;"changing rooms, so new room desc is wanted" + + )>)>) + ( ;"for JUMP ONTO RAFT" + + ) + ( + + ) + (T + + > + + + ) + (T + > + + )>) + (T + + + )>)>) + ( + + ) + (T + )>) + ( + + > + ) + ( + > + + >> + ) + ( + ) + (T + + )>) + ( + > + ) + ( + )>> + +> + )> + + + > + + )> + + ;"in case you're in Well Bottom, etc." + ;"for V-DIAGNOSE" + + ) + (T + )>> + +> + )> + + + + ;"for V-DIAGNOSE" + + > + >> + + ;"make torch last object lost" + > + >)> + + + ) + (T + )>) + (T + )>> + +> + )> + + ) + (T + + )>> + +> + + MIRAGE UNIMPORTANT-THING-F) + ;(<> DESSERT UNIMPORTANT-THING-F) + (CREAM PIE UNIMPORTANT-THING-F)>)> + +> + + )> + + ,RUINED-CASTLE-2) + (T + ,OASIS)>> + +; + +; + +; + + + ) + (T + )> + + + ) + (T + )> + ) + ( + ,ENTERED-MAZE-FROM + >> + + > + + + )>> + +;> + +; + ,LOST-IN-DESERT> + +; + +; + ,EASTERN-EDGE-OF-DESERT) + (T + ,WESTERN-EDGE-OF-DESERT)>> + +)> + + + + + ,WATTZ-UPP-DOCK> + + + ,MARTIAN-DESSERT> + +; + ,EASTERN-EDGE-OF-DESERT> + + + +> + + + > + ) + (T + )>> + + + > + ) + ( + + ) + ( + + > + + + )> + + + > + + )>)>> + + + + + + + > + >> + ) + ( + > + + + + + + + + + + )>> + + + + + + ) + (T + )> + )>> + + + + + + + + ) + (T + )> + + + )> + )>> + +> + + + + + + + + + ) + ( + )>) + ( + > + )>> + +)> + +> + + + + + + )> + + + )> + + + )> + )> + + >> + )>)>> + + + ) + ( + ) + ( + )>> + + + ) + ( + ) + ( + ) + ( + )>> + +)> + + + )>> + + + + ) + (> + ) + (T + + + )> + )>> + + + +)) + + ) + (T + + )> + + ) + (T + )> + )>) + ( + + + ) + (T + )> + ) + ( + > + + > + + + >> + + ) + ( + + )> + + + + + )> + + + ) + ( + > + + >> + + + > + ) + (T + )>) + ( + + + >> + + + ) + (T + )>) + ( + > + + + + + + + + )> + ) + ( + + + ) + (T + )>) + ( + >> + ) + ( + + ) + (T + )>) + ( + > + ) + ( + ) + ( + ) + (T + )>) + ( ;"for PUT BABY IN FRONT OF DOOR" + > + + ) + ( + + + ) + (T + )> + ) + ( + )>> + + + > + + + + + )> + + )> + + )> + + + ) + (T + )>> + + + + BAR WINDOW-F) + (<> BARS WINDOW-F)>)> + + + ,COTTON-BALLS-SEEN + > + + )>> + +> + + + + + > + + ) + (T + )>)>> + + + + + + >> + + )> + + ) + ( + > + > + ) + (T + + )>)>) + ( + ) + ( + > + + )>> + +> + + + + > + + + + + + + + ) + (T + )>> + + BAR WINDOW-F) + (<> BARS WINDOW-F)>)> + + + ;> + >> + )> + + + )> + > + )>) + ( + + + )>> + + + + + > + + + + + + ) + ( + > + + + ) + (T + + + )>> + + + + + + > + ) + ( + > + + + ) + ( + + ) + (T + )>) + ( ;"the verb PLUG turns into PUT-ON" + > + ) + (T + + + + )>) + ( ;"TAKE OUT BALLS = DISEMBARK" + > + + )> + + + ) + ( + > + )>> + + + + + + ) + ( + )>) + ( + + ) + (T + )>) + ( + + + ) + (T + )>) + ( + )>> \ No newline at end of file diff --git a/misc.zap b/misc.zap new file mode 100644 index 0000000..7c44ca5 --- /dev/null +++ b/misc.zap @@ -0,0 +1,602 @@ + + + .FUNCT PICK-ONE,TBL,LENGTH,CNT,RND,MSG,RFROB + GET TBL,0 >LENGTH + GET TBL,1 >CNT + DEC 'LENGTH + ADD TBL,2 >TBL + MUL CNT,2 + ADD TBL,STACK >RFROB + SUB LENGTH,CNT + RANDOM STACK >RND + GET RFROB,RND >MSG + GET RFROB,1 + PUT RFROB,RND,STACK + PUT RFROB,1,MSG + INC 'CNT + EQUAL? CNT,LENGTH \?CND1 + SET 'CNT,0 +?CND1: PUT TBL,0,CNT + RETURN MSG + + + .FUNCT DPRINT,OBJ + EQUAL? OBJ,SULTANS-WIFE \?ELS5 + PRINTI "Sultan" + ZERO? MALE /?ELS8 + PRINTI "'s wife #" + JUMP ?CND6 +?ELS8: PRINTI "ess' husband #" +?CND6: PRINTN CHOICE-NUMBER + RTRUE +?ELS5: FSET? OBJ,UNTEEDBIT \?ELS13 + GETP OBJ,P?NO-T-DESC + PRINT STACK + RTRUE +?ELS13: GETP OBJ,P?SDESC + ZERO? STACK /?ELS15 + GETP OBJ,P?SDESC + PRINT STACK + RTRUE +?ELS15: PRINTD OBJ + RTRUE + + + .FUNCT DPRINT-SIDEKICK + CALL DPRINT,SIDEKICK + RSTACK + + + .FUNCT APRINT,OBJ + FSET? OBJ,NARTICLEBIT \?ELS3 + PRINTI " " + JUMP ?CND1 +?ELS3: FSET? OBJ,VOWELBIT \?ELS5 + PRINTI " an " + JUMP ?CND1 +?ELS5: PRINTI " a " +?CND1: CALL DPRINT,OBJ + RSTACK + + + .FUNCT TPRINT,OBJ + FSET? OBJ,NARTICLEBIT \?ELS3 + PRINTI " " + JUMP ?CND1 +?ELS3: PRINTI " the " +?CND1: CALL DPRINT,OBJ + RSTACK + + + .FUNCT TPRINT-PRSO + CALL TPRINT,PRSO + RSTACK + + + .FUNCT TPRINT-PRSI + CALL TPRINT,PRSI + RSTACK + + + .FUNCT ARPRINT,OBJ + CALL APRINT,OBJ + PRINT PERIOD-CR + RTRUE + + + .FUNCT TRPRINT,OBJ + CALL TPRINT,OBJ + PRINT PERIOD-CR + RTRUE + + + .FUNCT GO +START:: + +?FCN: SET 'HERE,WARNING + USL + PRINTI " Some material in this story may not be suitable for children, especially the parts involving sex, which no one should know anything about until reaching the age of eighteen (twenty-one in certain states). This story is also unsuitable for censors, members of the Moral Majority, and anyone else who thinks that sex is dirty rather than fun. + The attitudes expressed and language used in this story are representative only of the views of the author, and in no way represent the views of Infocom, Inc. or its employees, many of whom are children, censors, and members of the Moral Majority. (But very few of whom, based on last year's Christmas Party, think that sex is dirty.) + By now, all the folks who might be offended by " + PRINT LGOP-CAPS + PRINTI " have whipped their disk out of their drive and, evidence in hand, are indignantly huffing toward their dealer, their lawyer, or their favorite repression-oriented politico. So.." + PRINT HIT-RETURN + PRINTI "begin!" + READ P-INBUF,P-LEXV + CALL CLEAR-SCREEN + SET 'WINNER,PROTAGONIST + SET 'HERE,JOES-BAR + USL + PRINTI "The place: Upper Sandusky, Ohio. The time: 1936. The beer: at a nickel a mug, you don't ask for brand names. All you know is that your fifth one tasted as bad as the first." + CRLF + CRLF + CALL V-VERSION + CRLF + CALL V-LOOK + CALL I-URGE + CALL MAIN-LOOP + JUMP ?FCN + + + .FUNCT CLEAR-SCREEN,CNT=24 +?PRG1: CRLF + DEC 'CNT + ZERO? CNT \?PRG1 + RTRUE + + + .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,?TMP1 + SET 'CNT,0 + SET 'OBJ,FALSE-VALUE + SET 'PTBL,TRUE-VALUE + CALL PARSER >P-WON + ZERO? P-WON /?ELS3 + 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 +?PRG9: IGRTR? 'CNT,ICNT \?ELS13 + JUMP ?REP10 +?ELS13: GET P-PRSI,CNT + EQUAL? STACK,IT \?PRG9 + CALL TOO-DARK-FOR-IT? + ZERO? STACK \TRUE + PUT P-PRSI,CNT,P-IT-OBJECT + SET 'TMP,TRUE-VALUE +?REP10: ZERO? TMP \?CND22 + SET 'CNT,0 +?PRG25: IGRTR? 'CNT,OCNT \?ELS29 + JUMP ?CND22 +?ELS29: GET P-PRSO,CNT + EQUAL? STACK,IT \?PRG25 + CALL TOO-DARK-FOR-IT? + ZERO? STACK \TRUE + PUT P-PRSO,CNT,P-IT-OBJECT +?CND22: SET 'CNT,0 +?CND4: ZERO? OCNT \?ELS42 + PUSH OCNT + JUMP ?CND38 +?ELS42: GRTR? OCNT,1 \?ELS44 + SET 'TBL,P-PRSO + ZERO? ICNT \?ELS47 + SET 'OBJ,FALSE-VALUE + JUMP ?CND45 +?ELS47: GET P-PRSI,1 >OBJ +?CND45: PUSH OCNT + JUMP ?CND38 +?ELS44: GRTR? ICNT,1 \?ELS51 + SET 'PTBL,FALSE-VALUE + SET 'TBL,P-PRSI + GET P-PRSO,1 >OBJ + PUSH ICNT + JUMP ?CND38 +?ELS51: PUSH 1 +?CND38: SET 'NUM,STACK + ZERO? OBJ \?CND54 + EQUAL? ICNT,1 \?CND54 + GET P-PRSI,1 >OBJ +?CND54: EQUAL? PRSA,V?WALK \?ELS61 + CALL PERFORM-PRSA,PRSO >V + JUMP ?CND59 +?ELS61: ZERO? NUM \?ELS63 + GETB P-SYNTAX,P-SBITS + BAND STACK,P-SONUMS + ZERO? STACK \?ELS66 + CALL PERFORM-PRSA >V + SET 'PRSO,FALSE-VALUE + JUMP ?CND59 +?ELS66: ZERO? LIT \?ELS68 + PRINT TOO-DARK + CRLF + CALL STOP + JUMP ?CND59 +?ELS68: PRINTI "There isn't anything to " + GET P-ITBL,P-VERBN >TMP + EQUAL? PRSA,V?TELL \?ELS73 + PRINTI "talk to" + JUMP ?CND71 +?ELS73: ZERO? P-OFLAG \?THN76 + ZERO? P-MERGED /?ELS75 +?THN76: GET TMP,0 + PRINTB STACK + JUMP ?CND71 +?ELS75: GETB TMP,2 >?TMP1 + GETB TMP,3 + CALL WORD-PRINT,?TMP1,STACK +?CND71: PRINTI "!" + CRLF + SET 'V,FALSE-VALUE + CALL STOP + JUMP ?CND59 +?ELS63: SET 'P-NOT-HERE,0 + SET 'P-MULT,FALSE-VALUE + GRTR? NUM,1 \?CND82 + SET 'P-MULT,TRUE-VALUE +?CND82: SET 'TMP,FALSE-VALUE +?PRG85: IGRTR? 'CNT,NUM \?ELS89 + GRTR? P-NOT-HERE,0 \?ELS92 + PRINTI "[The " + EQUAL? P-NOT-HERE,NUM /?CND93 + PRINTI "other " +?CND93: PRINTI "object" + EQUAL? P-NOT-HERE,1 /?CND96 + PRINTI "s" +?CND96: PRINTI " that you mentioned " + EQUAL? P-NOT-HERE,1 /?ELS101 + PRINTI "are" + JUMP ?CND99 +?ELS101: PRINTI "is" +?CND99: PRINTI "n't here.]" + CRLF + JUMP ?REP86 +?ELS92: ZERO? TMP \?REP86 + CALL REFERRING + JUMP ?REP86 +?ELS89: ZERO? PTBL /?ELS110 + GET P-PRSO,CNT >OBJ1 + JUMP ?CND108 +?ELS110: GET P-PRSI,CNT >OBJ1 +?CND108: ZERO? PTBL /?ELS118 + PUSH OBJ1 + JUMP ?CND114 +?ELS118: PUSH OBJ +?CND114: SET 'PRSO,STACK + ZERO? PTBL /?ELS126 + PUSH OBJ + JUMP ?CND122 +?ELS126: PUSH OBJ1 +?CND122: SET 'PRSI,STACK + GRTR? NUM,1 /?THN133 + GET P-ITBL,P-NC1 + GET STACK,0 + EQUAL? STACK,W?ALL,W?EVERYT \?CND130 +?THN133: CALL DONT-ALL,OBJ1 + ZERO? STACK /?ELS137 + JUMP ?PRG85 +?ELS137: EQUAL? OBJ1,IT \?ELS142 + CALL DPRINT,P-IT-OBJECT + JUMP ?CND140 +?ELS142: EQUAL? OBJ1,HIM \?ELS144 + CALL DPRINT,P-HIM-OBJECT + JUMP ?CND140 +?ELS144: EQUAL? OBJ1,HER \?ELS146 + CALL DPRINT,P-HER-OBJECT + JUMP ?CND140 +?ELS146: CALL DPRINT,OBJ1 +?CND140: PRINTI ": " +?CND130: SET 'TMP,TRUE-VALUE + CALL PERFORM-PRSA,PRSO,PRSI >V + EQUAL? V,M-FATAL \?PRG85 + JUMP ?CND59 +?REP86: +?CND59: EQUAL? V,M-FATAL \?CND152 + SET 'P-CONT,FALSE-VALUE +?CND152: CALL CLOCKER-VERB? + ZERO? STACK /?CND1 + EQUAL? PRSA,V?TELL /?CND1 + ZERO? P-WON /?CND1 + GETP HERE,P?ACTION + CALL STACK,M-END >V + JUMP ?CND1 +?ELS3: SET 'P-CONT,FALSE-VALUE +?CND1: ZERO? P-WON /?CND162 + CALL CLOCKER-VERB? + ZERO? STACK /?CND166 + CALL CLOCKER >V +?CND166: SET 'P-PRSA-WORD,FALSE-VALUE + SET 'PRSA,FALSE-VALUE + SET 'PRSO,FALSE-VALUE + SET 'PRSI,FALSE-VALUE +?CND162: ZERO? AWAITING-FAKE-ORPHAN /FALSE + ZERO? P-OFLAG \FALSE + CALL ORPHAN-VERB + RSTACK + + + .FUNCT TOO-DARK-FOR-IT? + ZERO? LIT \FALSE + CALL ULTIMATELY-IN?,P-IT-OBJECT,WINNER + ZERO? STACK \FALSE + IN? WINNER,P-IT-OBJECT /FALSE + PRINT TOO-DARK + CRLF + RTRUE + + + .FUNCT DONT-ALL,OBJ1,L + LOC OBJ1 >L + EQUAL? OBJ1,NOT-HERE-OBJECT \?ELS5 + INC 'P-NOT-HERE + RTRUE +?ELS5: EQUAL? PRSA,V?TAKE \?ELS7 + ZERO? PRSI /?ELS7 + IN? PRSO,PRSI \TRUE +?ELS7: CALL ACCESSIBLE?,OBJ1 + ZERO? STACK /TRUE + EQUAL? P-GETFLAGS,P-ALL \FALSE + ZERO? PRSI /?ELS18 + EQUAL? PRSO,PRSI /TRUE +?ELS18: EQUAL? PRSA,V?TAKE \?ELS22 + FSET? OBJ1,TAKEBIT /?ELS27 + FSET? OBJ1,TRYTAKEBIT \TRUE +?ELS27: EQUAL? L,WINNER,HERE,PRSI /?ELS31 + LOC WINNER + EQUAL? L,STACK /?ELS31 + FSET? L,SURFACEBIT \TRUE + FSET? L,TAKEBIT /TRUE + RFALSE +?ELS31: ZERO? PRSI \FALSE + CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /FALSE + RTRUE +?ELS22: EQUAL? PRSA,V?PUT-ON,V?PUT,V?DROP /?THN53 + EQUAL? PRSA,V?SGIVE,V?GIVE \?ELS50 +?THN53: IN? OBJ1,WINNER \TRUE +?ELS50: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE + IN? PRSO,WINNER /FALSE + CALL ULTIMATELY-IN?,PRSO,PRSI + ZERO? STACK \TRUE + RFALSE + + + .FUNCT CLOCKER-VERB? + EQUAL? PRSA,V?STATUS,V?HELP,V?VERSION /FALSE + EQUAL? PRSA,V?$COMMAND,V?$UNRECORD,V?$RECORD /FALSE + EQUAL? PRSA,V?RESTORE,V?SAVE,V?$RANDOM /FALSE + EQUAL? PRSA,V?SCRIPT,V?QUIT,V?RESTART /FALSE + EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?UNSCRIPT /FALSE + EQUAL? PRSA,V?TAME,V?LEWD,V?VERBOSE /FALSE + EQUAL? PRSA,V?SUGGESTIVE \TRUE + RFALSE + + + .FUNCT FAKE-ORPHAN,IT-WAS-USED=0,TMP,?TMP1 + CALL ORPHAN,P-SYNTAX,FALSE-VALUE + GET P-OTBL,P-VERBN >TMP + PRINTI "[Be specific: Wh" + ZERO? IT-WAS-USED /?ELS3 + PRINTI "at object" + JUMP ?CND1 +?ELS3: PRINTI "o" +?CND1: PRINTI " do you want to " + ZERO? TMP \?ELS9 + PRINTI "tell" + JUMP ?CND7 +?ELS9: GETB P-VTBL,2 + ZERO? STACK \?ELS11 + GET TMP,0 + PRINTB STACK + JUMP ?CND7 +?ELS11: GETB TMP,2 >?TMP1 + GETB TMP,3 + CALL WORD-PRINT,?TMP1,STACK + PUTB P-VTBL,2,0 +?CND7: SET 'P-OFLAG,TRUE-VALUE + SET 'P-WON,FALSE-VALUE + GETB P-SYNTAX,P-SPREP1 + CALL PREP-PRINT,STACK + PRINTR "?]" + + + .FUNCT PERFORM-PRSA,O=0,I=0 + CALL PERFORM,PRSA,O,I + RSTACK + + + .FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI + SET 'OA,PRSA + SET 'OO,PRSO + SET 'OI,PRSI + SET 'PRSA,A + EQUAL? IT,O,I \?CND1 + CALL VISIBLE?,P-IT-OBJECT + ZERO? STACK /?ELS6 + EQUAL? IT,O \?ELS9 + SET 'O,P-IT-OBJECT + JUMP ?CND4 +?ELS9: SET 'I,P-IT-OBJECT + JUMP ?CND4 +?ELS6: ZERO? I \?ELS16 + CALL FAKE-ORPHAN,TRUE-VALUE + RETURN 8 +?ELS16: CALL REFERRING + RETURN 8 +?CND4: +?CND1: EQUAL? HIM,O,I \?CND21 + CALL VISIBLE?,P-HIM-OBJECT + ZERO? STACK /?ELS26 + EQUAL? HIM,O \?ELS29 + SET 'O,P-HIM-OBJECT + JUMP ?CND24 +?ELS29: SET 'I,P-HIM-OBJECT + JUMP ?CND24 +?ELS26: ZERO? I \?ELS36 + CALL FAKE-ORPHAN + RETURN 8 +?ELS36: CALL REFERRING,TRUE-VALUE + RETURN 8 +?CND24: +?CND21: EQUAL? HER,O,I \?CND41 + CALL VISIBLE?,P-HER-OBJECT + ZERO? STACK /?ELS46 + EQUAL? HER,O \?ELS49 + SET 'O,P-HER-OBJECT + JUMP ?CND44 +?ELS49: SET 'I,P-HER-OBJECT + JUMP ?CND44 +?ELS46: ZERO? I \?ELS56 + CALL FAKE-ORPHAN + RETURN 8 +?ELS56: CALL REFERRING,TRUE-VALUE + RETURN 8 +?CND44: +?CND41: SET 'PRSO,O + SET 'PRSI,I + EQUAL? A,V?WALK /?ELS63 + EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?ELS63 + CALL D-APPLY,STR?1,NOT-HERE-OBJECT-F >V + ZERO? V /?ELS63 + SET 'P-WON,FALSE-VALUE + JUMP ?CND61 +?ELS63: SET 'O,PRSO + SET 'I,PRSI + CALL THIS-IS-IT,PRSI + CALL THIS-IS-IT,PRSO + GETP WINNER,P?ACTION + CALL D-APPLY,STR?2,STACK >V + ZERO? V /?ELS70 + JUMP ?CND61 +?ELS70: GET PREACTIONS,A + CALL D-APPLY,STR?3,STACK >V + ZERO? V /?ELS72 + JUMP ?CND61 +?ELS72: ZERO? I /?ELS74 + GETP I,P?ACTION + CALL D-APPLY,STR?4,STACK >V + ZERO? V /?ELS74 + JUMP ?CND61 +?ELS74: ZERO? O /?ELS78 + EQUAL? A,V?WALK /?ELS78 + GETP O,P?ACTION + CALL D-APPLY,STR?5,STACK >V + ZERO? V /?ELS78 + JUMP ?CND61 +?ELS78: GET ACTIONS,A + CALL D-APPLY,FALSE-VALUE,STACK >V + ZERO? V /?CND61 +?CND61: SET 'PRSA,OA + SET 'PRSO,OO + SET 'PRSI,OI + RETURN V + + + .FUNCT D-APPLY,STR,FCN,FOO=0,RES + ZERO? FCN /FALSE + ZERO? FOO /?ELS12 + CALL FCN,FOO + JUMP ?CND8 +?ELS12: CALL FCN +?CND8: SET 'RES,STACK + RETURN RES + + + .FUNCT DEQUEUE,RTN + CALL QUEUED?,RTN >RTN + ZERO? RTN /FALSE + PUT RTN,C-RTN,0 + RTRUE + + + .FUNCT QUEUED?,RTN,C,E + ADD C-TABLE,C-TABLELEN >E + ADD C-TABLE,C-INTS >C +?PRG1: EQUAL? C,E /FALSE + GET C,C-RTN + EQUAL? STACK,RTN \?CND3 + GET C,C-TICK + ZERO? STACK /FALSE + RETURN C +?CND3: ADD C,C-INTLEN >C + JUMP ?PRG1 + + + .FUNCT RUNNING?,RTN,C,E + ADD C-TABLE,C-TABLELEN >E + ADD C-TABLE,C-INTS >C +?PRG1: EQUAL? C,E /FALSE + GET C,C-RTN + EQUAL? STACK,RTN \?CND3 + GET C,C-TICK + ZERO? STACK /FALSE + GET C,C-TICK + GRTR? STACK,1 \TRUE + RFALSE +?CND3: ADD C,C-INTLEN >C + JUMP ?PRG1 + + + .FUNCT QUEUE,RTN,TICK,C,E,INT=0 + ADD C-TABLE,C-TABLELEN >E + ADD C-TABLE,C-INTS >C +?PRG1: EQUAL? C,E \?ELS5 + ZERO? INT /?ELS8 + SET 'C,INT + JUMP ?CND6 +?ELS8: LESS? C-INTS,C-INTLEN \?CND12 + PRINTI "**Too many ints!**" + CRLF +?CND12: SUB C-INTS,C-INTLEN >C-INTS + LESS? C-INTS,C-MAXINTS \?CND15 + SET 'C-MAXINTS,C-INTS +?CND15: ADD C-TABLE,C-INTS >INT +?CND6: PUT INT,C-RTN,RTN + JUMP ?REP2 +?ELS5: GET C,C-RTN + EQUAL? STACK,RTN \?ELS19 + SET 'INT,C + JUMP ?REP2 +?ELS19: GET C,C-RTN + ZERO? STACK \?CND3 + SET 'INT,C +?CND3: ADD C,C-INTLEN >C + JUMP ?PRG1 +?REP2: GRTR? INT,CLOCK-HAND \?CND22 + ADD TICK,3 + SUB 0,STACK >TICK +?CND22: PUT INT,C-TICK,TICK + RETURN INT + + + .FUNCT CLOCKER,E,TICK,RTN,FLG=0,Q?=0,OWINNER + ZERO? CLOCK-WAIT /?CND1 + SET 'CLOCK-WAIT,FALSE-VALUE + RFALSE +?CND1: ADD C-TABLE,C-INTS >CLOCK-HAND + ADD C-TABLE,C-TABLELEN >E + SET 'OWINNER,WINNER + SET 'WINNER,PROTAGONIST +?PRG5: EQUAL? CLOCK-HAND,E \?ELS9 + SET 'CLOCK-HAND,E + INC 'MOVES + SET 'WINNER,OWINNER + RETURN FLG +?ELS9: GET CLOCK-HAND,C-RTN + ZERO? STACK /?CND7 + GET CLOCK-HAND,C-TICK >TICK + LESS? TICK,-1 \?ELS14 + SUB 0,TICK + SUB STACK,3 + PUT CLOCK-HAND,C-TICK,STACK + SET 'Q?,CLOCK-HAND + JUMP ?CND7 +?ELS14: ZERO? TICK /?CND7 + GRTR? TICK,0 \?CND17 + DEC 'TICK + PUT CLOCK-HAND,C-TICK,TICK +?CND17: ZERO? TICK /?CND20 + SET 'Q?,CLOCK-HAND +?CND20: GRTR? TICK,0 /?CND12 + GET CLOCK-HAND,C-RTN >RTN + ZERO? TICK \?CND26 + PUT CLOCK-HAND,C-RTN,0 +?CND26: CALL RTN + ZERO? STACK /?CND29 + SET 'FLG,TRUE-VALUE +?CND29: ZERO? Q? \?CND7 + GET CLOCK-HAND,C-RTN + ZERO? STACK /?CND7 + SET 'Q?,TRUE-VALUE +?CND12: +?CND7: ADD CLOCK-HAND,C-INTLEN >CLOCK-HAND + ZERO? Q? \?PRG5 + ADD C-INTS,C-INTLEN >C-INTS + JUMP ?PRG5 + + .ENDI diff --git a/misc.zil b/misc.zil new file mode 100644 index 0000000..6219d82 --- /dev/null +++ b/misc.zil @@ -0,0 +1,703 @@ +"MISC for + LEATHER GODDESSES OF PHOBOS + (c) Copyright 1986 Infocom, Inc. All Rights Reserved." + +;"macros" + + + D ,SIDEKICK + D * + A * + T ,PRSO + T ,PRSI + T * + AR * + TR * + N * + C * > + +> + +> + +> + +> + + + ) + ( ) + (ELSE )>>)> + )> + > + + + >>) + (ELSE .ATM)> GVAL>) + (ELSE .ATM)> + !.L)> + > + 3> )>> + !.L>)>>> + >> + +> + +> + +> + + + ) + (
) + (ELSE )>>)> + > + > + .ATM) + (ELSE )>> + !.O)>>> + + >> + +>>> + +;>>> + +;"this new PICK-ONE won't begin repeating any of the items in the table until + they've all been used." +> + > + > + > + >> + >> + > + > + + > + + )> + + .MSG> + + + + ) + (T + )> + ) + ( + >) + ( + >) + (T + )>> + +> + + + ) + ( + ) + (T + )> + > + + + ) + (T + )> + > + +> + +> + + + > + + + > + + 3> + )> + + > NOUN>)> + + > ADJECTIVE>)> + <3 .OBJ>>> + .V>> + +;"MAIN-LOOP and associated routines" + + + + + + + + + + + + + + ;"else, ZIL gets confused between verb-word GO and routine GO" + + + + + + + + + + + + + + + + > + + + > + + )>>> + +>>> + + + > + + > + > + > + > + > + > .ICNT> + ) + (T + ,IT> + )> + + + )>)>> + + + > .OCNT> + ) + (T + ,IT> + )> + + )>)>>)> + )> + + .OCNT) + ( + + + >) + (T + >)> + .OCNT) + ( + > + + > + .ICNT) + (T + 1)>> + + <1? .ICNT>> + >)> + + >) + (<0? .NUM> + ,P-SONUMS>> + > + >) + ( + + ) + (T + + > + + ) + ( + >) + (T + >)> + + > + )>) + (T + + > + + )> + > + > .NUM> + + + > + )> + + > + )> + + > + ) + (T + )> + ) + ( + )> + ) + (T + >) + (T + >)> + > + > + + 0> + ,W?ALL + ,W?EVERYT>> + + ) + (T + + ) + ( + ) + ( + ) + (T + )> + )>)> + + > + + )>)>>)> + + >)> + + > + ,P-WON ;"fake YOU CANT SEE responses set P-WON to false"> + ,M-END>>)>) + (T + >)> + + >)> + > + ;"else, when input is just a direction, P-PRSA-WORD will remain + whatever it was for the previous turn" + > + > + >)> + > + )>> + + + > + >> + + )>> + +)) + ;"RFALSE if OBJ1 should be included in the ALL, otherwise RTRUE" + + > + ) + ( ;"TAKE prso FROM prsi and prso isn't in prsi" + ,PRSI + >> + ) + (> ;"can't get at object" + ) + ( ;"cases for ALL" + > + ) + ( + ;"TAKE ALL and object not accessible or takeable" + > + >> + ) + (> + >>> + + >> ;"tray" + ) + (T + )>) + ( + > ;"already have it" + ) + (T + )>) + ( + ;"VERB ALL, object not held" + >> + ) + ( ;"PUT ALL IN X,obj already in x" + > + > + )>)>> + + + ) + (T + )>> + +> + +> + + + +) "AUX" TMP) + > + > + + ) + (T + )> + + + ) + (<0? > + >) + (T + > + )> + + > + > + > + +) (I <>)) + > + +) (I <>) "AUX" V OA OO OI) + ; + % + ') + (T + ' 1>>>)> + )> + + + + + + + + ) + (T + )>) + (T + + ) + (T + )> + )>)> + + + + ) + (T + )>) + (T + + ) + (T + )> + )>)> + + + + ) + (T + )>) + (T + + ) + (T + )> + )>)> + + + > + + >> + > + .V) + (T + + + + + >> + .V) + ;( ,M-BEG>> + .V) + (>> + .V) + (>>> + .V) + ;(> + + ,P?CONTFCN> + ,P?CONTFCN>>>> + .V) + (> + >>> + .V) + ( >> + .V)>)> + + + + .V> + +) "AUX" RES) + <>) + (T + ; + " CR>) + (T + ">)>)> + ) + (T + )>> + ; + + ) + ( + ) + (T )>)> + .RES)>> + +;"CLOCKER and related routines" + + + ') + (T + ')>> + +> + + + + + +> + + + ;"length of an interrupt entry" + ;"offset of routine name" + ;"offset of count" + +> + )>> + +> + > + + ) + ( .RTN> + > + ) + (T + )>)> + >>> + +> + > + + ) + ( .RTN> + > + 1>> + ) + (T + )>)> + >>> + +)) ;"automatically enables as well" + > + > + + ) + (T + + )> + > + + )> + >)> + + ) + ( .RTN> + + ) + (> + )> + >> + + ') + (T + ' >)> + >>)> + + .INT> + +) (Q? <>) OWINNER) + > + )> + > + > + + + + + > + + ) + (>> + > + + 3>> + ) + (> + + > + )> + > + )> + > + + ') + (ELSE + ' + 1>>)>> + + )> + + )> + + >>> + )>)>)>)> + > + + >)>>> \ No newline at end of file diff --git a/parser.zap b/parser.zap new file mode 100644 index 0000000..fa9494c --- /dev/null +++ b/parser.zap @@ -0,0 +1,1927 @@ + + + .FUNCT THIS-IS-IT,OBJ + ZERO? OBJ /TRUE + EQUAL? PRSA,V?WALK \?ELS9 + EQUAL? PRSO,OBJ /TRUE +?ELS9: EQUAL? OBJ,PROTAGONIST /TRUE + EQUAL? OBJ,NOT-HERE-OBJECT,ME,GLOBAL-ROOM /TRUE + FSET? OBJ,FEMALEBIT \?ELS11 + SET 'P-HER-OBJECT,OBJ + RETURN P-HER-OBJECT +?ELS11: FSET? OBJ,ACTORBIT \?ELS13 + SET 'P-HIM-OBJECT,OBJ + RETURN P-HIM-OBJECT +?ELS13: SET 'P-IT-OBJECT,OBJ + RETURN P-IT-OBJECT + + + .FUNCT PARSER,PTR=P-LEXSTART,WRD,VAL=0,VERB=0,OMERGED,OWINNER,OLEN,LEN,DIR=0,NW=0,LW=0,CNT=-1,?TMP2,?TMP1 +?PRG1: IGRTR? 'CNT,P-ITBLLEN \?ELS5 + JUMP ?REP2 +?ELS5: ZERO? P-OFLAG \?CND8 + GET P-ITBL,CNT + PUT P-OTBL,CNT,STACK +?CND8: PUT P-ITBL,CNT,0 + JUMP ?PRG1 +?REP2: SET 'OMERGED,P-MERGED + SET 'OWINNER,WINNER + 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 \?CND11 + EQUAL? WINNER,PROTAGONIST /?CND11 + SET 'WINNER,PROTAGONIST + LOC WINNER + FSET? STACK,VEHBIT /?CND16 + LOC WINNER >HERE +?CND16: CALL LIT?,HERE >LIT +?CND11: ZERO? RESERVE-PTR /?ELS21 + SET 'PTR,RESERVE-PTR + CALL STUFF,P-LEXV,RESERVE-LEXV + CALL INBUF-STUFF,P-INBUF,RESERVE-INBUF + ZERO? VERBOSITY /?CND23 + EQUAL? PROTAGONIST,WINNER \?CND23 + CRLF +?CND23: SET 'RESERVE-PTR,FALSE-VALUE + SET 'P-CONT,FALSE-VALUE + JUMP ?CND19 +?ELS21: ZERO? P-CONT /?ELS29 + SET 'PTR,P-CONT + ZERO? VERBOSITY /?CND31 + EQUAL? PROTAGONIST,WINNER \?CND31 + CRLF +?CND31: SET 'P-CONT,FALSE-VALUE + JUMP ?CND19 +?ELS29: SET 'WINNER,PROTAGONIST + SET 'QUOTE-FLAG,FALSE-VALUE + LOC WINNER + FSET? STACK,VEHBIT /?CND38 + LOC WINNER >HERE +?CND38: CALL LIT?,HERE >LIT + ZERO? VERBOSITY /?CND41 + CRLF +?CND41: PRINTI ">" + READ P-INBUF,P-LEXV + GETB P-LEXV,P-LEXWORDS >OLEN +?CND19: GETB P-LEXV,P-LEXWORDS >P-LEN + ZERO? P-LEN \?ELS46 + PRINTI "[Come again?]" + CRLF + RFALSE +?ELS46: GET P-LEXV,PTR + EQUAL? STACK,W?OOPS \?ELS48 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?PERIOD,W?COMMA \?CND49 + ADD PTR,P-LEXELEN >PTR + DEC 'P-LEN +?CND49: GRTR? P-LEN,1 /?ELS54 + CALL CANT-USE-THAT-WAY,STR?6 + RFALSE +?ELS54: GET OOPS-TABLE,O-PTR + ZERO? STACK /?ELS56 + GRTR? P-LEN,2 \?CND57 + PRINTI "[Warning: Only the first word after OOPS is used.]" + CRLF +?CND57: 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,P-LEXV,AGAIN-LEXV + GETB P-LEXV,P-LEXWORDS >P-LEN + GET OOPS-TABLE,O-START >PTR + CALL INBUF-STUFF,P-INBUF,OOPS-INBUF + JUMP ?CND44 +?ELS56: PUT OOPS-TABLE,O-END,FALSE-VALUE + PRINTI "[There was no word to replace!]" + CRLF + RFALSE +?ELS48: PUT OOPS-TABLE,O-END,FALSE-VALUE +?CND44: GET P-LEXV,PTR + EQUAL? STACK,W?AGAIN,W?G \?ELS66 + ZERO? P-OFLAG /?ELS69 + CALL CANT-USE-THAT-WAY,STR?7 + RFALSE +?ELS69: ZERO? P-WON \?ELS72 + PRINTI "[That would just repeat a mistake!]" + CRLF + RFALSE +?ELS72: EQUAL? OWINNER,PROTAGONIST /?ELS74 + CALL VISIBLE?,OWINNER + ZERO? STACK \?ELS74 + PRINTI "[" + PRINT YOU-CANT + PRINTI "see " + CALL DPRINT,OWINNER + PRINTI " any more.]" + CRLF + RFALSE +?ELS74: GRTR? P-LEN,1 \?ELS78 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?PERIOD,W?COMMA,W?THEN /?THN82 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?AND \?ELS81 +?THN82: MUL 2,P-LEXELEN + ADD PTR,STACK >PTR + GETB P-LEXV,P-LEXWORDS + SUB STACK,2 + PUTB P-LEXV,P-LEXWORDS,STACK + JUMP ?CND67 +?ELS81: CALL RECOGNIZE + RFALSE +?ELS78: ADD PTR,P-LEXELEN >PTR + GETB P-LEXV,P-LEXWORDS + SUB STACK,1 + PUTB P-LEXV,P-LEXWORDS,STACK +?CND67: GETB P-LEXV,P-LEXWORDS + GRTR? STACK,0 \?ELS90 + CALL STUFF,RESERVE-LEXV,P-LEXV + CALL INBUF-STUFF,RESERVE-INBUF,P-INBUF + SET 'RESERVE-PTR,PTR + JUMP ?CND88 +?ELS90: SET 'RESERVE-PTR,FALSE-VALUE +?CND88: SET 'WINNER,OWINNER + SET 'P-MERGED,OMERGED + CALL INBUF-STUFF,P-INBUF,OOPS-INBUF + CALL STUFF,P-LEXV,AGAIN-LEXV + SET 'CNT,-1 + SET 'DIR,AGAIN-DIR +?PRG93: IGRTR? 'CNT,P-ITBLLEN \?ELS97 + JUMP ?CND64 +?ELS97: GET P-OTBL,CNT + PUT P-ITBL,CNT,STACK + JUMP ?PRG93 +?ELS66: CALL STUFF,AGAIN-LEXV,P-LEXV + CALL INBUF-STUFF,OOPS-INBUF,P-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-NCN,0 + SET 'P-GETFLAGS,0 +?PRG102: DLESS? 'P-LEN,0 \?ELS106 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND64 +?ELS106: GET P-LEXV,PTR >WRD + CALL NAUGHTY-WORD?,WRD + ZERO? STACK \FALSE + GET P-LEXV,PTR >WRD + ZERO? WRD \?THN111 + CALL NUMBER?,PTR >WRD + ZERO? WRD /?ELS110 +?THN111: CALL NEXT-WORD,PTR >NW + EQUAL? WRD,W?TO \?ELS115 + EQUAL? VERB,ACT?TELL,ACT?ASK \?ELS115 + CALL WT?,NW,PS?VERB,P1?VERB + ZERO? STACK /?ELS115 + PUT P-ITBL,P-VERB,ACT?TELL + SET 'WRD,W?QUOTE + JUMP ?CND113 +?ELS115: EQUAL? WRD,W?THEN \?CND113 + GRTR? P-LEN,0 \?CND113 + ZERO? VERB \?CND113 + ZERO? QUOTE-FLAG \?CND113 + PUT P-ITBL,P-VERB,ACT?TELL + PUT P-ITBL,P-VERBN,0 + SET 'WRD,W?QUOTE +?CND113: EQUAL? WRD,W?THEN,W?PERIOD /?THN125 + EQUAL? WRD,W?QUOTE \?ELS124 +?THN125: EQUAL? WRD,W?QUOTE \?CND127 + ZERO? QUOTE-FLAG /?ELS132 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND127 +?ELS132: SET 'QUOTE-FLAG,TRUE-VALUE +?CND127: ZERO? P-LEN /?THN136 + ADD PTR,P-LEXELEN >P-CONT +?THN136: PUTB P-LEXV,P-LEXWORDS,P-LEN + JUMP ?CND64 +?ELS124: CALL WT?,WRD,PS?DIRECTION,P1?DIRECTION >VAL + ZERO? VAL /?ELS139 + EQUAL? VERB,FALSE-VALUE,ACT?WALK,ACT?GO \?ELS139 + EQUAL? LEN,1 /?THN142 + EQUAL? LEN,2 \?ELS145 + EQUAL? VERB,ACT?WALK,ACT?GO /?THN142 +?ELS145: EQUAL? NW,W?THEN,W?PERIOD,W?QUOTE \?ELS147 + LESS? LEN,2 \?THN142 +?ELS147: ZERO? QUOTE-FLAG /?ELS149 + EQUAL? LEN,2 \?ELS149 + EQUAL? NW,W?QUOTE /?THN142 +?ELS149: GRTR? LEN,2 \?ELS139 + EQUAL? NW,W?COMMA,W?AND \?ELS139 +?THN142: SET 'DIR,VAL + EQUAL? NW,W?COMMA,W?AND \?CND152 + ADD PTR,P-LEXELEN + CALL CHANGE-LEXV,STACK,W?THEN +?CND152: GRTR? LEN,2 /?CND104 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND64 +?ELS139: CALL WT?,WRD,PS?VERB,P1?VERB >VAL + ZERO? VAL /?ELS159 + ZERO? VERB \?ELS159 + SET 'P-PRSA-WORD,WRD + 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 ?CND104 +?ELS159: CALL WT?,WRD,PS?PREPOSITION,0 >VAL + ZERO? VAL \?THN164 + EQUAL? WRD,W?ALL,W?ONE,W?BOTH /?THN168 + EQUAL? WRD,W?EVERYT /?THN168 + CALL WT?,WRD,PS?ADJECTIVE + ZERO? STACK \?THN168 + CALL WT?,WRD,PS?OBJECT + ZERO? STACK /?ELS163 +?THN168: SET 'VAL,0 \?ELS163 +?THN164: ZERO? VAL /?CND170 + EQUAL? WRD,W?BACK \?CND170 + EQUAL? VERB,ACT?HAND /?CND170 + SET 'VAL,0 +?CND170: GRTR? P-LEN,0 \?ELS177 + EQUAL? NW,W?OF \?ELS177 + ZERO? VAL \?ELS177 + EQUAL? WRD,W?ALL,W?ONE,W?A /?ELS177 + EQUAL? WRD,W?BOTH,W?EVERYT /?ELS177 + JUMP ?CND104 +?ELS177: ZERO? VAL /?ELS181 + ZERO? P-LEN /?THN184 + EQUAL? NW,W?THEN,W?PERIOD \?ELS181 +?THN184: SET 'P-END-ON-PREP,TRUE-VALUE + LESS? P-NCN,2 \?CND104 + PUT P-ITBL,P-PREP1,VAL + PUT P-ITBL,P-PREP1N,WRD + JUMP ?CND104 +?ELS181: EQUAL? P-NCN,2 \?ELS190 + PRINTI "[There were too many nouns in that sentence.]" + CRLF + RFALSE +?ELS190: INC 'P-NCN + CALL CLAUSE,PTR,VAL,WRD >PTR + ZERO? PTR /FALSE + LESS? PTR,0 \?CND104 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND64 +?ELS163: CALL WT?,WRD,PS?BUZZ-WORD + ZERO? STACK /?ELS199 + JUMP ?CND104 +?ELS199: EQUAL? VERB,ACT?TELL \?ELS201 + CALL WT?,WRD,PS?VERB,P1?VERB + ZERO? STACK /?ELS201 + EQUAL? WINNER,PROTAGONIST \?ELS201 + CALL SEE-MANUAL,STR?8 + RFALSE +?ELS201: CALL CANT-USE,PTR + RFALSE +?ELS110: CALL UNKNOWN-WORD,PTR + RFALSE +?CND104: SET 'LW,WRD + ADD PTR,P-LEXELEN >PTR + JUMP ?PRG102 +?CND64: PUT OOPS-TABLE,O-PTR,FALSE-VALUE + ZERO? DIR /?CND208 + SET 'PRSA,V?WALK + SET 'PRSO,DIR + SET 'P-OFLAG,FALSE-VALUE + SET 'P-WALK-DIR,DIR + SET 'AGAIN-DIR,DIR + RETURN TRUE-VALUE +?CND208: SET 'P-WALK-DIR,FALSE-VALUE + SET 'AGAIN-DIR,FALSE-VALUE + ZERO? P-OFLAG /?CND212 + CALL ORPHAN-MERGE +?CND212: CALL SYNTAX-CHECK + ZERO? STACK /FALSE + CALL SNARF-OBJECTS + ZERO? STACK /FALSE + CALL MANY-CHECK + ZERO? STACK /FALSE + CALL TAKE-CHECK + ZERO? STACK /FALSE + RTRUE + + + .FUNCT CHANGE-LEXV,PTR,WRD,PTRS?=0,X,Y,Z + ZERO? PTRS? /?CND1 + SUB PTR,P-LEXELEN + MUL 2,STACK + ADD 2,STACK >X + GETB P-LEXV,X >Y + MUL 2,PTR + ADD 2,STACK >Z + PUTB P-LEXV,Z,Y + PUTB AGAIN-LEXV,Z,Y + ADD 1,X + GETB P-LEXV,STACK >Y + MUL 2,PTR + ADD 3,STACK >Z + PUTB P-LEXV,Z,Y + PUTB AGAIN-LEXV,Z,Y +?CND1: PUT P-LEXV,PTR,WRD + PUT AGAIN-LEXV,PTR,WRD + RTRUE + + + .FUNCT STUFF,DEST,SRC,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,DEST,SRC,CNT=-1 +?PRG1: IGRTR? 'CNT,P-INBUF-LENGTH /TRUE + GETB SRC,CNT + PUTB DEST,CNT,STACK + JUMP ?PRG1 + + + .FUNCT INBUF-ADD,LEN,BEG,SLOT,DBEG,CTR=0,TMP,?TMP1 + GET OOPS-TABLE,O-END >TMP + ZERO? TMP /?ELS3 + SET 'DBEG,TMP + JUMP ?CND1 +?ELS3: 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 +?PRG6: ADD DBEG,CTR >?TMP1 + ADD BEG,CTR + GETB P-INBUF,STACK + PUTB OOPS-INBUF,?TMP1,STACK + INC 'CTR + EQUAL? CTR,LEN \?PRG6 + 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 + EQUAL? BIT,PS?OBJECT /TRUE + BAND TYP,P-P1BITS >TYP + EQUAL? TYP,B1 /?CND15 + INC 'OFFS +?CND15: GETB PTR,OFFS + RSTACK + + + .FUNCT NEXT-WORD,PTR,NW + ZERO? P-LEN /FALSE + ADD PTR,P-LEXELEN + GET P-LEXV,STACK >NW + ZERO? NW /?ELS10 + RETURN NW +?ELS10: ADD PTR,P-LEXELEN + CALL NUMBER?,STACK + 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 /?ELS3 + 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 +?ELS3: INC 'P-LEN +?CND1: ZERO? P-LEN \?CND6 + DEC 'P-NCN + RETURN -1 +?CND6: ADD P-NC1,OFF >NUM + MUL PTR,2 + ADD P-LEXV,STACK + PUT P-ITBL,NUM,STACK +?PRG9: DLESS? 'P-LEN,0 \?CND11 + ADD NUM,1 >?TMP1 + MUL PTR,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + RETURN -1 +?CND11: GET P-LEXV,PTR >WRD + CALL NAUGHTY-WORD?,WRD + ZERO? STACK \FALSE + ZERO? WRD \?THN19 + CALL NUMBER?,PTR >WRD + ZERO? WRD /?ELS18 +?THN19: CALL NEXT-WORD,PTR >NW + ZERO? FIRST?? /?ELS23 + EQUAL? WRD,W?THE,W?A,W?AN /?THN26 + ZERO? VAL /?ELS23 + CALL WT?,WRD,PS?PREPOSITION + ZERO? STACK /?ELS23 + CALL WT?,WRD,PS?ADJECTIVE + ZERO? STACK \?ELS23 +?THN26: GET P-ITBL,NUM + ADD STACK,4 + PUT P-ITBL,NUM,STACK + JUMP ?CND14 +?ELS23: EQUAL? WRD,W?AND,W?COMMA \?ELS31 + SET 'ANDFLG,TRUE-VALUE + JUMP ?CND14 +?ELS31: EQUAL? WRD,W?ALL,W?ONE,W?BOTH /?THN34 + EQUAL? WRD,W?EVERYT \?ELS33 +?THN34: EQUAL? NW,W?OF \?CND14 + DEC 'P-LEN + ADD PTR,P-LEXELEN >PTR + JUMP ?CND14 +?ELS33: EQUAL? WRD,W?THEN,W?PERIOD /?THN41 + CALL WT?,WRD,PS?PREPOSITION + ZERO? STACK /?ELS40 + GET P-ITBL,P-VERB + ZERO? STACK /?ELS40 + ZERO? FIRST?? \?ELS40 +?THN41: INC 'P-LEN + ADD NUM,1 >?TMP1 + MUL PTR,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + SUB PTR,P-LEXELEN + RSTACK +?ELS40: ZERO? ANDFLG /?ELS46 + GET P-ITBL,P-VERB + ZERO? STACK \?ELS46 + SUB PTR,4 >PTR + ADD PTR,2 + CALL CHANGE-LEXV,STACK,W?THEN + ADD P-LEN,2 >P-LEN + JUMP ?CND14 +?ELS46: CALL WT?,WRD,PS?OBJECT + ZERO? STACK /?ELS50 + GRTR? P-LEN,0 \?ELS53 + EQUAL? NW,W?OF \?ELS53 + EQUAL? WRD,W?ALL,W?EVERYT,W?ONE /?ELS53 + JUMP ?CND14 +?ELS53: GET P-ITBL,P-VERB + EQUAL? STACK,ACT?SHOW,ACT?HAND,ACT?FEED \?ELS57 + EQUAL? WRD,W?HER \?ELS57 + EQUAL? NW,W?SWORD \?ELS57 + JUMP ?CND14 +?ELS57: CALL WT?,WRD,PS?ADJECTIVE,P1?ADJECTIVE + ZERO? STACK /?ELS61 + ZERO? NW /?ELS61 + EQUAL? NW,W?HIS,W?HER,W?MY /?ELS61 + CALL WT?,NW,PS?OBJECT + ZERO? STACK \?THN64 + CALL WT?,NW,PS?ADJECTIVE + ZERO? STACK /?ELS61 +?THN64: GET P-ITBL,P-VERB + EQUAL? STACK,ACT?SHOW,ACT?HAND,ACT?FEED /?ELS61 + JUMP ?CND14 +?ELS61: ZERO? ANDFLG \?ELS67 + EQUAL? NW,W?BUT,W?EXCEPT /?ELS67 + EQUAL? NW,W?AND,W?COMMA /?ELS67 + ADD NUM,1 >?TMP1 + ADD PTR,2 + MUL STACK,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + RETURN PTR +?ELS67: SET 'ANDFLG,FALSE-VALUE + JUMP ?CND14 +?ELS50: CALL WT?,WRD,PS?ADJECTIVE + ZERO? STACK \?CND14 + CALL WT?,WRD,PS?BUZZ-WORD + ZERO? STACK /?ELS73 + JUMP ?CND14 +?ELS73: CALL WT?,WRD,PS?PREPOSITION + ZERO? STACK /?ELS77 + JUMP ?CND14 +?ELS77: CALL CANT-USE,PTR + RFALSE +?ELS18: CALL UNKNOWN-WORD,PTR + RFALSE +?CND14: SET 'LW,WRD + SET 'FIRST??,FALSE-VALUE + ADD PTR,P-LEXELEN >PTR + JUMP ?PRG9 + + + .FUNCT NUMBER?,PTR,CNT,BPTR,CHR,SUM=0,CCTR,TMP,XPTR,?TMP1 + MUL PTR,2 + ADD P-LEXV,STACK + GETB STACK,2 >CNT + MUL PTR,2 + ADD P-LEXV,STACK + GETB STACK,3 >BPTR +?PRG1: GRTR? SUM,10000 /FALSE + DLESS? 'CNT,0 \?ELS7 + JUMP ?REP2 +?ELS7: GETB P-INBUF,BPTR >CHR + LESS? CHR,58 \?ELS12 + GRTR? CHR,47 \?ELS12 + MUL SUM,10 >?TMP1 + SUB CHR,48 + ADD ?TMP1,STACK >SUM + JUMP ?CND10 +?ELS12: EQUAL? CHR,35 \FALSE +?CND10: INC 'BPTR + JUMP ?PRG1 +?REP2: CALL CHANGE-LEXV,PTR,W?NUMBER + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?COMMA \?CND17 + GRTR? P-LEN,1 \?CND17 + MUL P-LEXELEN,2 + ADD PTR,STACK >XPTR + CALL AFTER-COMMA-CHECK,XPTR >TMP + ZERO? TMP /?CND17 + MUL PTR,2 + ADD STACK,2 + GETB P-LEXV,STACK >CCTR + MUL XPTR,2 + ADD STACK,2 + GETB P-LEXV,STACK + ADD CCTR,STACK >CCTR + INC 'CCTR + MUL PTR,2 + ADD STACK,2 + PUTB P-LEXV,STACK,CCTR + EQUAL? TMP,1000 \?CND25 + SET 'TMP,0 +?CND25: MUL 1000,SUM + ADD STACK,TMP >SUM + SUB P-LEN,2 >CCTR +?PRG28: DLESS? 'CCTR,0 \?ELS32 + JUMP ?REP29 +?ELS32: ADD PTR,P-LEXELEN >PTR + MUL 2,P-LEXELEN + ADD PTR,STACK >XPTR + GET P-LEXV,XPTR + CALL CHANGE-LEXV,PTR,STACK + MUL PTR,2 + ADD STACK,2 >?TMP1 + MUL XPTR,2 + ADD STACK,2 + GETB P-LEXV,STACK + PUTB P-LEXV,?TMP1,STACK + MUL PTR,2 + ADD STACK,3 >?TMP1 + MUL XPTR,2 + ADD STACK,3 + GETB P-LEXV,STACK + PUTB P-LEXV,?TMP1,STACK + JUMP ?PRG28 +?REP29: SUB P-LEN,2 >P-LEN + GETB P-LEXV,P-LEXWORDS + SUB STACK,2 + PUTB P-LEXV,P-LEXWORDS,STACK +?CND17: GRTR? SUM,10000 /FALSE + SET 'P-NUMBER,SUM + RETURN W?NUMBER + + + .FUNCT AFTER-COMMA-CHECK,PTR,CNT,BPTR,CCTR=0,CHR,SUM=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 \?ELS5 + JUMP ?REP2 +?ELS5: GETB P-INBUF,BPTR >CHR + INC 'CCTR + GRTR? CCTR,3 \?ELS10 + JUMP ?REP2 +?ELS10: LESS? CHR,58 \FALSE + GRTR? CHR,47 \FALSE + MUL SUM,10 >?TMP1 + SUB CHR,48 + ADD ?TMP1,STACK >SUM +?CND8: INC 'BPTR + JUMP ?PRG1 +?REP2: EQUAL? CCTR,3 \FALSE + ZERO? SUM \?ELS23 + RETURN 1000 +?ELS23: RETURN SUM + + + .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,PS?VERB,P1?VERB >?TMP1 + GET P-OTBL,P-VERB + EQUAL? ?TMP1,STACK /?THN4 + CALL WT?,WRD,PS?ADJECTIVE + ZERO? STACK /?ELS3 +?THN4: SET 'ADJ,TRUE-VALUE + JUMP ?CND1 +?ELS3: CALL WT?,WRD,PS?OBJECT,P1?OBJECT + 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 /?ELS12 + ZERO? ADJ \?ELS12 + GET P-OTBL,P-VERB + EQUAL? VERB,STACK \FALSE +?ELS12: EQUAL? P-NCN,2 /FALSE + GET P-OTBL,P-NC1 + EQUAL? STACK,1 \?ELS18 + GET P-ITBL,P-PREP1 >TEMP + GET P-OTBL,P-PREP1 + EQUAL? TEMP,STACK /?THN22 + ZERO? TEMP \FALSE +?THN22: ZERO? ADJ /?ELS26 + ADD P-LEXV,2 + PUT P-OTBL,P-NC1,STACK + GET P-ITBL,P-NC1L + ZERO? STACK \?CND28 + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK +?CND28: ZERO? P-NCN \?CND24 + SET 'P-NCN,1 + JUMP ?CND24 +?ELS26: GET P-ITBL,P-NC1 + PUT P-OTBL,P-NC1,STACK +?CND24: GET P-ITBL,P-NC1L + PUT P-OTBL,P-NC1L,STACK + JUMP ?CND10 +?ELS18: GET P-OTBL,P-NC2 + EQUAL? STACK,1 \?ELS39 + GET P-ITBL,P-PREP1 >TEMP + GET P-OTBL,P-PREP2 + EQUAL? TEMP,STACK /?THN43 + ZERO? TEMP \FALSE +?THN43: ZERO? ADJ /?CND45 + ADD P-LEXV,2 + PUT P-ITBL,P-NC1,STACK + GET P-ITBL,P-NC1L + ZERO? STACK \?CND45 + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK +?CND45: 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 ?CND10 +?ELS39: ZERO? P-ACLAUSE /?CND10 + EQUAL? P-NCN,1 /?ELS59 + ZERO? ADJ \?ELS59 + SET 'P-ACLAUSE,FALSE-VALUE + RFALSE +?ELS59: GET P-ITBL,P-NC1 >BEG + ZERO? ADJ /?CND64 + ADD P-LEXV,2 >BEG + SET 'ADJ,FALSE-VALUE +?CND64: GET P-ITBL,P-NC1L >END +?PRG68: GET BEG,0 >WRD + EQUAL? BEG,END \?ELS72 + ZERO? ADJ /?ELS75 + CALL CLAUSE-WIN,ADJ + JUMP ?CND57 +?ELS75: SET 'P-ACLAUSE,FALSE-VALUE + RFALSE +?ELS72: EQUAL? WRD,W?ALL,W?EVERYT,W?ONE /?THN81 + GETB WRD,P-PSOFF + BTST STACK,PS?ADJECTIVE \?ELS80 + CALL ADJ-CHECK,WRD,ADJ,ADJ + ZERO? STACK /?ELS80 +?THN81: SET 'ADJ,WRD + JUMP ?CND70 +?ELS80: EQUAL? WRD,W?ONE \?ELS86 + CALL CLAUSE-WIN,ADJ + JUMP ?CND57 +?ELS86: GETB WRD,P-PSOFF + BTST STACK,PS?OBJECT \?CND70 + EQUAL? WRD,P-ANAM \?ELS91 + CALL CLAUSE-WIN,ADJ + JUMP ?CND10 +?ELS91: CALL CLAUSE-WIN + JUMP ?CND10 +?CND70: ADD BEG,P-WORDLEN >BEG + ZERO? END \?PRG68 + SET 'END,BEG + SET 'P-NCN,1 + SUB BEG,4 + PUT P-ITBL,P-NC1,STACK + PUT P-ITBL,P-NC1L,BEG + JUMP ?PRG68 +?CND57: +?CND10: 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 +?PRG97: IGRTR? 'CNT,P-ITBLLEN \?ELS101 + SET 'P-MERGED,TRUE-VALUE + RTRUE +?ELS101: GET P-OTBL,CNT + PUT P-ITBL,CNT,STACK + JUMP ?PRG97 + + + .FUNCT CLAUSE-WIN,ADJ=0 + ZERO? ADJ /?ELS3 + GET P-OTBL,P-VERB + PUT P-ITBL,P-VERB,STACK + JUMP ?CND1 +?ELS3: SET 'ADJ,TRUE-VALUE +?CND1: PUT P-CCTBL,CC-SBPTR,P-ACLAUSE + ADD P-ACLAUSE,1 + PUT P-CCTBL,CC-SEPTR,STACK + EQUAL? P-ACLAUSE,P-NC1 \?ELS9 + PUT P-CCTBL,CC-OCLAUSE,P-OCL1 + JUMP ?CND7 +?ELS9: PUT P-CCTBL,CC-OCLAUSE,P-OCL2 +?CND7: CALL CLAUSE-COPY,P-OTBL,P-OTBL,ADJ + GET P-OTBL,P-NC2 + ZERO? STACK /?ELS13 + SET 'P-NCN,2 +?ELS13: 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 + 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,FOR-EACH-OTHER=0,BUF,?TMP1 + PRINTI "[You used the word """ + ZERO? FOR-EACH-OTHER /?ELS3 + EQUAL? PTR,W?EACH \?ELS7 + PRINTI "each" + JUMP ?CND1 +?ELS7: PRINTI "other" + JUMP ?CND1 +?ELS3: MUL PTR,2 >BUF + ADD P-LEXV,BUF + GETB STACK,2 >?TMP1 + ADD P-LEXV,BUF + GETB STACK,3 + CALL WORD-PRINT,?TMP1,STACK +?CND1: PRINTI """ in a way that I don't understand.]" + CRLF + CALL STOP + RSTACK + + + .FUNCT SYNTAX-CHECK,SYN,LEN,NUM,OBJ,DRIVE1=0,DRIVE2=0,PREP,VERB,?TMP2,?TMP1 + GET P-ITBL,P-VERB >VERB + ZERO? VERB \?CND1 + PRINT NO-VERB + RFALSE +?CND1: SUB 255,VERB + GET VERBS,STACK >SYN + GETB SYN,0 >LEN + INC 'SYN +?PRG4: GETB SYN,P-SBITS + BAND STACK,P-SONUMS >NUM + GRTR? P-NCN,NUM \?ELS8 + JUMP ?CND6 +?ELS8: LESS? NUM,1 /?ELS10 + ZERO? P-NCN \?ELS10 + GET P-ITBL,P-PREP1 >PREP + ZERO? PREP /?THN13 + GETB SYN,P-SPREP1 + EQUAL? PREP,STACK \?ELS10 +?THN13: SET 'DRIVE1,SYN + JUMP ?CND6 +?ELS10: GETB SYN,P-SPREP1 >?TMP1 + GET P-ITBL,P-PREP1 + EQUAL? ?TMP1,STACK \?CND6 + EQUAL? NUM,2 \?ELS19 + EQUAL? P-NCN,1 \?ELS19 + SET 'DRIVE2,SYN + JUMP ?CND6 +?ELS19: GETB SYN,P-SPREP2 >?TMP1 + GET P-ITBL,P-PREP2 + EQUAL? ?TMP1,STACK \?CND6 + CALL SYNTAX-FOUND,SYN + RTRUE +?CND6: DLESS? 'LEN,1 \?ELS26 + ZERO? DRIVE1 \?REP5 + ZERO? DRIVE2 /?ELS29 + JUMP ?REP5 +?ELS29: CALL RECOGNIZE + RFALSE +?ELS26: ADD SYN,P-SYNLEN >SYN + JUMP ?PRG4 +?REP5: ZERO? DRIVE1 /?ELS40 + GETB DRIVE1,P-SFWIM1 >?TMP2 + GETB DRIVE1,P-SLOC1 >?TMP1 + GETB DRIVE1,P-SPREP1 + CALL GWIM,?TMP2,?TMP1,STACK >OBJ + ZERO? OBJ /?ELS40 + PUT P-PRSO,P-MATCHLEN,1 + PUT P-PRSO,1,OBJ + CALL SYNTAX-FOUND,DRIVE1 + RSTACK +?ELS40: ZERO? DRIVE2 /?ELS44 + GETB DRIVE2,P-SFWIM2 >?TMP2 + GETB DRIVE2,P-SLOC2 >?TMP1 + GETB DRIVE2,P-SPREP2 + CALL GWIM,?TMP2,?TMP1,STACK >OBJ + ZERO? OBJ /?ELS44 + PUT P-PRSI,P-MATCHLEN,1 + PUT P-PRSI,1,OBJ + CALL SYNTAX-FOUND,DRIVE2 + RSTACK +?ELS44: EQUAL? WINNER,PROTAGONIST \?ELS51 + CALL ORPHAN,DRIVE1,DRIVE2 + PRINTI "[Wh" + JUMP ?CND49 +?ELS51: PRINTI "[Your command was not complete. Next time, type wh" +?CND49: EQUAL? VERB,ACT?WALK,ACT?GO \?ELS56 + PRINTI "ere" + JUMP ?CND54 +?ELS56: ZERO? DRIVE1 /?ELS62 + GETB DRIVE1,P-SFWIM1 + EQUAL? STACK,ACTORBIT /?THN59 +?ELS62: ZERO? DRIVE2 /?ELS58 + GETB DRIVE2,P-SFWIM2 + EQUAL? STACK,ACTORBIT \?ELS58 +?THN59: PRINTI "om" + JUMP ?CND54 +?ELS58: PRINTI "at" +?CND54: EQUAL? WINNER,PROTAGONIST \?ELS69 + PRINTI " do you want to " + JUMP ?CND67 +?ELS69: PRINTI " you want" + CALL TPRINT,WINNER + PRINTI " to " +?CND67: CALL VERB-PRINT + SET 'P-OFLAG,FALSE-VALUE + ZERO? DRIVE2 /?CND72 + SET 'PREP,P-MERGED + SET 'P-MERGED,FALSE-VALUE + CALL CLAUSE-PRINT,P-NC1,P-NC1L + SET 'P-MERGED,PREP +?CND72: ZERO? DRIVE1 /?ELS80 + GETB DRIVE1,P-SPREP1 + JUMP ?CND76 +?ELS80: GETB DRIVE2,P-SPREP2 +?CND76: CALL PREP-PRINT,STACK + EQUAL? WINNER,PROTAGONIST \?ELS86 + SET 'P-OFLAG,TRUE-VALUE + PRINTI "?]" + CRLF + RFALSE +?ELS86: SET 'P-OFLAG,FALSE-VALUE + PRINTI ".]" + CRLF + RFALSE + + + .FUNCT VERB-PRINT,TMP,?TMP1 + GET P-ITBL,P-VERBN >TMP + ZERO? TMP \?ELS5 + PRINTI "tell" + RTRUE +?ELS5: EQUAL? TMP,W?ZZMGCK \?ELS7 + PRINTI "answer" + RTRUE +?ELS7: GETB TMP,2 + ZERO? STACK \?ELS9 + GET TMP,0 + PRINTB STACK + RTRUE +?ELS9: GETB TMP,2 >?TMP1 + GETB TMP,3 + CALL WORD-PRINT,?TMP1,STACK + PUTB TMP,2,0 + RTRUE + + + .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-OCL1,P-MATCHLEN,0 + PUT P-OCL2,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 +?PRG4: IGRTR? 'CNT,P-ITBLLEN \?ELS8 + JUMP ?REP5 +?ELS8: GET P-ITBL,CNT + PUT P-OTBL,CNT,STACK + JUMP ?PRG4 +?REP5: EQUAL? P-NCN,2 \?CND11 + PUT P-CCTBL,CC-SBPTR,P-NC2 + PUT P-CCTBL,CC-SEPTR,P-NC2L + PUT P-CCTBL,CC-OCLAUSE,P-OCL2 + CALL CLAUSE-COPY,P-ITBL,P-OTBL +?CND11: LESS? P-NCN,1 /?CND14 + PUT P-CCTBL,CC-SBPTR,P-NC1 + PUT P-CCTBL,CC-SEPTR,P-NC1L + PUT P-CCTBL,CC-OCLAUSE,P-OCL1 + CALL CLAUSE-COPY,P-ITBL,P-OTBL +?CND14: ZERO? D1 /?ELS21 + GETB D1,P-SPREP1 + PUT P-OTBL,P-PREP1,STACK + PUT P-OTBL,P-NC1,1 + RTRUE +?ELS21: ZERO? D2 /FALSE + GETB D2,P-SPREP2 + PUT P-OTBL,P-PREP2,STACK + PUT P-OTBL,P-NC2,1 + RTRUE + + + .FUNCT CLAUSE-PRINT,BPTR,EPTR,THE?=1,?TMP1 + GET P-ITBL,BPTR >?TMP1 + GET P-ITBL,EPTR + CALL BUFFER-PRINT,?TMP1,STACK,THE? + RSTACK + + + .FUNCT BUFFER-PRINT,BEG,END,CP,NOSP=0,WRD,FIRST??=1,PN=0,?TMP1 +?PRG1: EQUAL? BEG,END /TRUE + ZERO? NOSP /?ELS10 + SET 'NOSP,FALSE-VALUE + JUMP ?CND8 +?ELS10: PRINTI " " +?CND8: GET BEG,0 >WRD + EQUAL? WRD,W?PERIOD \?ELS16 + SET 'NOSP,TRUE-VALUE + JUMP ?CND3 +?ELS16: EQUAL? WRD,W?ME,W?MYSELF \?ELS18 + PRINTD ME + SET 'PN,TRUE-VALUE + JUMP ?CND3 +?ELS18: CALL NAME?,WRD + ZERO? STACK /?ELS20 + CALL CAPITALIZE,BEG + SET 'PN,TRUE-VALUE + JUMP ?CND3 +?ELS20: ZERO? FIRST?? /?CND23 + ZERO? PN \?CND23 + ZERO? CP /?CND23 + EQUAL? WRD,W?MY,W?HIS,W?HER /?CND23 + PRINTI "the " +?CND23: ZERO? P-OFLAG \?THN31 + ZERO? P-MERGED /?ELS30 +?THN31: PRINTB WRD + JUMP ?CND28 +?ELS30: EQUAL? WRD,W?IT,W?THEM \?ELS34 + CALL ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK /?ELS34 + CALL DPRINT,P-IT-OBJECT + JUMP ?CND28 +?ELS34: EQUAL? WRD,W?HIM,W?HIMSELF \?ELS38 + CALL ACCESSIBLE?,P-HIM-OBJECT + ZERO? STACK /?ELS38 + CALL DPRINT,P-HIM-OBJECT + JUMP ?CND28 +?ELS38: EQUAL? WRD,W?HER,W?HERSELF \?ELS42 + CALL ACCESSIBLE?,P-HER-OBJECT + ZERO? STACK /?ELS42 + CALL DPRINT,P-HER-OBJECT + JUMP ?CND28 +?ELS42: GETB BEG,2 >?TMP1 + GETB BEG,3 + CALL WORD-PRINT,?TMP1,STACK +?CND28: SET 'FIRST??,FALSE-VALUE +?CND3: ADD BEG,P-WORDLEN >BEG + JUMP ?PRG1 + + + .FUNCT NAME?,WRD + EQUAL? WRD,W?TRENT,W?TIFFAN,W?TIFF /TRUE + EQUAL? WRD,W?THETA,W?ELYSIA,W?ELYSIUM /TRUE + EQUAL? WRD,W?MITRE,W?THORBAST,W?FORD /TRUE + EQUAL? WRD,W?VENUS,W?CLEVELAND \FALSE + RTRUE + + + .FUNCT CAPITALIZE,PTR,?TMP1 + ZERO? P-OFLAG \?THN6 + ZERO? P-MERGED /?ELS5 +?THN6: GET PTR,0 + PRINTB STACK + RTRUE +?ELS5: GETB PTR,3 + GETB P-INBUF,STACK + SUB STACK,32 + PRINTC STACK + GETB PTR,2 + SUB STACK,1 >?TMP1 + GETB PTR,3 + ADD STACK,1 + CALL WORD-PRINT,?TMP1,STACK + RSTACK + + + .FUNCT PREP-PRINT,PREP,WRD + ZERO? PREP /FALSE + PRINTI " " + EQUAL? PREP,PR?THROUGH \?ELS10 + PRINTI "through" + RTRUE +?ELS10: CALL PREP-FIND,PREP >WRD + PRINTB WRD + RTRUE + + + .FUNCT CLAUSE-COPY,SRC,DEST,INSRT=0,OCL,BEG,END,BB,EE,OBEG,CNT,B,E + GET P-CCTBL,CC-SBPTR >BB + GET P-CCTBL,CC-SEPTR >EE + GET P-CCTBL,CC-OCLAUSE >OCL + GET SRC,BB >BEG + GET SRC,EE >END + GET OCL,P-MATCHLEN >OBEG +?PRG1: EQUAL? BEG,END \?CND3 + JUMP ?REP2 +?CND3: ZERO? INSRT /?ELS8 + GET BEG,0 + EQUAL? P-ANAM,STACK \?ELS8 + EQUAL? INSRT,TRUE-VALUE \?ELS13 + GET P-ITBL,P-NC1 >B + GET P-ITBL,P-NC1L >E +?PRG14: EQUAL? B,E \?CND16 + JUMP ?CND6 +?CND16: GET B,0 + CALL CLAUSE-ADD,STACK + ADD B,P-WORDLEN >B + JUMP ?PRG14 +?ELS13: GET OCL,1 + EQUAL? INSRT,STACK /?CND6 + CALL CLAUSE-ADD,INSRT + GET BEG,0 + CALL CLAUSE-ADD,STACK + JUMP ?CND6 +?ELS8: GET BEG,0 + CALL CLAUSE-ADD,STACK +?CND6: ADD BEG,P-WORDLEN >BEG + JUMP ?PRG1 +?REP2: EQUAL? SRC,DEST \?CND23 + GRTR? OBEG,0 \?CND23 + GET OCL,P-MATCHLEN + SUB STACK,OBEG >CNT + PUT OCL,P-MATCHLEN,0 + INC 'OBEG +?PRG28: GET OCL,OBEG + CALL CLAUSE-ADD,STACK + SUB CNT,2 >CNT + ZERO? CNT \?CND30 + JUMP ?REP29 +?CND30: ADD OBEG,2 >OBEG + JUMP ?PRG28 +?REP29: SET 'OBEG,0 +?CND23: MUL OBEG,P-LEXELEN + ADD STACK,2 + ADD OCL,STACK + PUT DEST,BB,STACK + GET OCL,P-MATCHLEN + MUL STACK,P-LEXELEN + ADD STACK,2 + ADD OCL,STACK + PUT DEST,EE,STACK + RTRUE + + + .FUNCT CLAUSE-ADD,WRD,OCL,PTR + GET P-CCTBL,CC-OCLAUSE >OCL + GET OCL,P-MATCHLEN + ADD STACK,2 >PTR + SUB PTR,1 + PUT OCL,STACK,WRD + PUT OCL,PTR,0 + PUT OCL,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 /?ELS8 + SET 'P-GWIMBIT,0 + GET P-MERGE,P-MATCHLEN + EQUAL? STACK,1 \FALSE + GET P-MERGE,1 >OBJ + PRINTI "[" + ZERO? PREP /?CND14 + ZERO? P-END-ON-PREP \?CND14 + CALL PREP-FIND,PREP >PREP + PRINTB PREP + EQUAL? PREP,W?OUT \?CND19 + PRINTI " of" +?CND19: FSET? OBJ,NARTICLEBIT /?ELS24 + PRINTI " the " + JUMP ?CND14 +?ELS24: PRINTI " " +?CND14: CALL DPRINT,OBJ + PRINTI "]" + CRLF + RETURN OBJ +?ELS8: SET 'P-GWIMBIT,0 + RFALSE + + + .FUNCT SNARF-OBJECTS,PTR + GET P-ITBL,P-NC1 >PTR + ZERO? PTR /?CND1 + SET 'P-PHR,0 + GETB P-SYNTAX,P-SLOC1 >P-SLOCBITS + GET P-ITBL,P-NC1L + CALL SNARFEM,PTR,STACK,P-PRSO + ZERO? STACK /FALSE + GET P-BUTS,P-MATCHLEN + ZERO? STACK /?CND1 + CALL BUT-MERGE,P-PRSO >P-PRSO +?CND1: GET P-ITBL,P-NC2 >PTR + ZERO? PTR /TRUE + SET 'P-PHR,1 + GETB P-SYNTAX,P-SLOC2 >P-SLOCBITS + GET P-ITBL,P-NC2L + CALL SNARFEM,PTR,STACK,P-PRSI + ZERO? STACK /FALSE + GET P-BUTS,P-MATCHLEN + ZERO? STACK /TRUE + GET P-PRSI,P-MATCHLEN + EQUAL? STACK,1 \?ELS18 + CALL BUT-MERGE,P-PRSO >P-PRSO + RTRUE +?ELS18: 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 \?ELS5 + JUMP ?REP2 +?ELS5: GET TBL,CNT >OBJ + CALL ZMEMQ,OBJ,P-BUTS + ZERO? STACK /?ELS7 + JUMP ?CND3 +?ELS7: 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 P-BUTS,P-MATCHLEN,0 + PUT TBL,P-MATCHLEN,0 + GET PTR,0 >WRD +?PRG4: EQUAL? PTR,EPTR \?ELS8 + ZERO? BUT /?ORP12 + PUSH BUT + JUMP ?THN9 +?ORP12: PUSH TBL +?THN9: CALL GET-OBJECT,STACK >WV + ZERO? WAS-ALL /?CND13 + SET 'P-GETFLAGS,P-ALL +?CND13: RETURN WV +?ELS8: ADD PTR,P-WORDLEN + EQUAL? EPTR,STACK \?ELS21 + SET 'NW,0 + JUMP ?CND19 +?ELS21: GET PTR,P-LEXELEN >NW +?CND19: EQUAL? WRD,W?ALL,W?BOTH,W?EVERYT \?ELS26 + CALL MANY-CHECK,P-PHR + ZERO? STACK /FALSE + SET 'P-GETFLAGS,P-ALL + EQUAL? NW,W?OF \?CND24 + ADD PTR,P-WORDLEN >PTR + JUMP ?CND24 +?ELS26: CALL NAUGHTY-WORD?,WRD + ZERO? STACK \FALSE + EQUAL? WRD,W?BUT,W?EXCEPT \?ELS36 + ZERO? BUT /?ORP42 + PUSH BUT + JUMP ?THN39 +?ORP42: PUSH TBL +?THN39: CALL GET-OBJECT,STACK + ZERO? STACK /FALSE + SET 'BUT,P-BUTS + PUT BUT,P-MATCHLEN,0 + JUMP ?CND6 +?ELS36: EQUAL? WRD,W?A,W?ONE \?ELS44 + ZERO? P-ADJ \?ELS47 + SET 'P-GETFLAGS,P-ONE + EQUAL? NW,W?OF \?CND6 + ADD PTR,P-WORDLEN >PTR + JUMP ?CND6 +?ELS47: SET 'P-NAM,P-ONEOBJ + ZERO? BUT /?ORP58 + PUSH BUT + JUMP ?THN55 +?ORP58: PUSH TBL +?THN55: CALL GET-OBJECT,STACK + ZERO? STACK /FALSE + ZERO? NW /TRUE + JUMP ?CND6 +?ELS44: EQUAL? WRD,W?AND,W?COMMA \?ELS62 + EQUAL? NW,W?AND,W?COMMA /?ELS62 + SET 'P-AND,TRUE-VALUE + ZERO? BUT /?ORP70 + PUSH BUT + JUMP ?THN67 +?ORP70: PUSH TBL +?THN67: CALL GET-OBJECT,STACK + ZERO? STACK \?CND24 + RFALSE +?ELS62: CALL WT?,WRD,PS?BUZZ-WORD + ZERO? STACK /?ELS72 + JUMP ?CND6 +?ELS72: EQUAL? WRD,W?AND,W?COMMA \?ELS74 + JUMP ?CND6 +?ELS74: EQUAL? WRD,W?OF \?ELS76 + ZERO? P-GETFLAGS \?CND24 + SET 'P-GETFLAGS,P-INHIBIT + JUMP ?CND24 +?ELS76: CALL WT?,WRD,PS?ADJECTIVE,P1?ADJECTIVE >WV + ZERO? WV /?ELS81 + CALL ADJ-CHECK,WRD,P-ADJ,P-ADJN + ZERO? STACK /?ELS81 + EQUAL? NW,W?OF /?ELS81 + SET 'P-ADJ,WV + SET 'P-ADJN,WRD + JUMP ?CND6 +?ELS81: CALL WT?,WRD,PS?OBJECT,P1?OBJECT + ZERO? STACK /?CND6 + SET 'P-NAM,WRD + SET 'P-ONEOBJ,WRD +?CND24: +?CND6: EQUAL? PTR,EPTR /?PRG4 + ADD PTR,P-WORDLEN >PTR + SET 'WRD,NW + JUMP ?PRG4 + + + .FUNCT NAUGHTY-WORD?,WORD + ZERO? NAUGHTY-LEVEL \FALSE + EQUAL? WORD,W?ASS,W?ASSHOLE \?ELS7 + CALL KNOW-WORD,STR?9 + RSTACK +?ELS7: EQUAL? WORD,W?BASTARD,W?BITCH \?ELS9 + CALL KNOW-WORD,STR?10 + RSTACK +?ELS9: EQUAL? WORD,W?COCK,W?COCKSU,W?CUNT \?ELS11 + CALL KNOW-WORD,STR?11 + RSTACK +?ELS11: EQUAL? WORD,W?DAMN,W?DAMNED \?ELS13 + CALL KNOW-WORD,STR?12 + RSTACK +?ELS13: EQUAL? WORD,W?FUCK,W?FUCKED,W?FUCKING \?ELS15 + CALL KNOW-WORD,STR?13 + RSTACK +?ELS15: EQUAL? WORD,W?SHIT,W?SHITHEAD \FALSE + CALL KNOW-WORD,STR?14 + RSTACK + + + .FUNCT KNOW-WORD,LETTER + PRINTI "[I don't know the " + PRINT LETTER + PRINTR "-word.]" + + + .FUNCT ADJ-CHECK,WRD,ADJ,ADJN + ZERO? ADJ /TRUE + EQUAL? WRD,W?RETURN \?ELS7 + EQUAL? ADJN,W?COIN /TRUE +?ELS7: EQUAL? WRD,W?NARROW,W?WIDE /TRUE + EQUAL? WRD,W?PURPLE,W?ORANGE \FALSE + RTRUE + + + .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 \?CND4 + ZERO? P-ADJ /?CND4 + CALL WT?,P-ADJN,PS?OBJECT,P1?OBJECT + ZERO? STACK /?ELS11 + SET 'P-NAM,P-ADJN + SET 'P-ADJ,FALSE-VALUE + SET 'P-ADJN,FALSE-VALUE + JUMP ?CND4 +?ELS11: CALL WT?,P-ADJN,PS?DIRECTION,P1?DIRECTION >BITS + ZERO? BITS /?CND4 + SET 'P-DIRECTION,BITS +?CND4: ZERO? P-NAM \?CND14 + ZERO? P-ADJ \?CND14 + EQUAL? P-GETFLAGS,P-ALL /?CND14 + ZERO? P-GWIMBIT \?CND14 + ZERO? VRB /FALSE + PRINT NOUN-MISSING + RFALSE +?CND14: EQUAL? P-GETFLAGS,P-ALL \?THN26 + ZERO? P-SLOCBITS \?CND23 +?THN26: SET 'P-SLOCBITS,-1 +?CND23: SET 'P-TABLE,TBL +?PRG28: ZERO? GCHECK /?ELS32 + CALL GLOBAL-CHECK,TBL + JUMP ?CND30 +?ELS32: ZERO? LIT \?THN39 + EQUAL? PRSA,V?TELL \?ELS38 +?THN39: FCLEAR PROTAGONIST,TRANSBIT + CALL DO-SL,HERE,SOG,SIR + FSET PROTAGONIST,TRANSBIT + JUMP ?CND36 +?ELS38: LOC PROTAGONIST + FSET? STACK,VEHBIT \?CND36 + LOC PROTAGONIST + CALL THIS-IT?,STACK + ZERO? STACK /?CND36 + LOC PROTAGONIST + CALL OBJ-FOUND,STACK,TBL +?CND36: CALL DO-SL,PROTAGONIST,SH,SC +?CND30: GET TBL,P-MATCHLEN + SUB STACK,TLEN >LEN + BTST P-GETFLAGS,P-ALL \?ELS47 + JUMP ?CND45 +?ELS47: EQUAL? P-GETFLAGS,P-ALL /?ELS49 + GRTR? LEN,1 /?THN52 + ZERO? LEN \?ELS49 + EQUAL? P-SLOCBITS,-1 /?ELS49 +?THN52: EQUAL? P-SLOCBITS,-1 \?ELS58 + SET 'P-SLOCBITS,XBITS + SET 'OLEN,LEN + GET TBL,P-MATCHLEN + SUB STACK,LEN + PUT TBL,P-MATCHLEN,STACK + JUMP ?PRG28 +?ELS58: CALL PUT-ADJ-NAM + ZERO? LEN \?CND61 + SET 'LEN,OLEN +?CND61: ZERO? P-NAM /?ELS66 + ADD TLEN,1 + GET TBL,STACK >OBJ + ZERO? OBJ /?ELS66 + GETP OBJ,P?GENERIC + CALL STACK >OBJ + ZERO? OBJ /?ELS66 + EQUAL? OBJ,NOT-HERE-OBJECT /FALSE + PUT TBL,1,OBJ + PUT TBL,P-MATCHLEN,1 + SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RTRUE +?ELS66: ZERO? VRB /?ELS73 + EQUAL? WINNER,PROTAGONIST /?ELS73 + CALL CANT-ORPHAN + SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RFALSE +?ELS73: ZERO? VRB /?ELS77 + ZERO? P-NAM /?ELS77 + CALL WHICH-PRINT,TLEN,LEN,TBL + EQUAL? TBL,P-PRSO \?ELS84 + PUSH P-NC1 + JUMP ?CND80 +?ELS84: PUSH P-NC2 +?CND80: SET 'P-ACLAUSE,STACK + SET 'P-AADJ,P-ADJ + SET 'P-ANAM,P-NAM + CALL ORPHAN,FALSE-VALUE,FALSE-VALUE + SET 'P-OFLAG,TRUE-VALUE + JUMP ?CND64 +?ELS77: ZERO? VRB /?CND64 + PRINT NOUN-MISSING +?CND64: SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RFALSE +?ELS49: ZERO? LEN \?ELS91 + ZERO? GCHECK /?ELS91 + CALL PUT-ADJ-NAM + ZERO? VRB /?CND94 + SET 'P-SLOCBITS,XBITS + ZERO? LIT \?THN101 + EQUAL? PRSA,V?TELL /?THN101 + EQUAL? PRSA,V?WHERE,V?WHAT \?ELS100 +?THN101: 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 +?ELS100: PRINT TOO-DARK + CRLF +?CND94: SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RFALSE +?ELS91: ZERO? LEN \?CND45 + SET 'GCHECK,TRUE-VALUE + JUMP ?PRG28 +?CND45: SET 'P-SLOCBITS,XBITS + CALL PUT-ADJ-NAM + SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RTRUE + + + .FUNCT PUT-ADJ-NAM + EQUAL? P-NAM,W?IT /FALSE + PUT P-NAMW,P-PHR,P-NAM + PUT P-ADJW,P-PHR,P-ADJ + RTRUE + + + .FUNCT MOBY-FIND,TBL,OBJ=1,LEN,FOO,NAM,ADJ + SET 'NAM,P-NAM + SET 'ADJ,P-ADJ + SET 'P-NAM,P-XNAM + SET 'P-ADJ,P-XADJ + PUT TBL,P-MATCHLEN,0 +?PRG3: IN? OBJ,ROOMS /?CND5 + CALL THIS-IT?,OBJ >FOO + ZERO? FOO /?CND5 + CALL OBJ-FOUND,OBJ,TBL >FOO +?CND5: IGRTR? 'OBJ,LAST-OBJECT \?PRG3 + GET TBL,P-MATCHLEN >LEN + EQUAL? LEN,1 \?CND13 + GET TBL,1 >P-MOBY-FOUND +?CND13: SET 'P-NAM,NAM + SET 'P-ADJ,ADJ + RETURN LEN + + + .FUNCT WHICH-PRINT,TLEN,LEN,TBL,OBJ,RLEN + SET 'RLEN,LEN + PRINTI "[Which" + ZERO? P-OFLAG \?THN4 + ZERO? P-MERGED \?THN4 + ZERO? P-AND /?ELS3 +?THN4: PRINTI " " + PRINTB P-NAM + JUMP ?CND1 +?ELS3: EQUAL? TBL,P-PRSO \?ELS7 + CALL CLAUSE-PRINT,P-NC1,P-NC1L,FALSE-VALUE + JUMP ?CND1 +?ELS7: CALL CLAUSE-PRINT,P-NC2,P-NC2L,FALSE-VALUE +?CND1: PRINTI " do you mean, " +?PRG10: INC 'TLEN + GET TBL,TLEN >OBJ + FSET? OBJ,NARTICLEBIT /?CND12 + PRINTI "the " +?CND12: CALL DPRINT,OBJ + EQUAL? LEN,2 \?ELS17 + EQUAL? RLEN,2 /?CND18 + PRINTI "," +?CND18: PRINTI " or " + JUMP ?CND15 +?ELS17: GRTR? LEN,2 \?CND15 + PRINTI ", " +?CND15: DLESS? 'LEN,1 \?PRG10 + 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 +?PRG4: GETB RMG,CNT >OBJ + CALL THIS-IT?,OBJ + ZERO? STACK /?CND6 + CALL OBJ-FOUND,OBJ,TBL +?CND6: IGRTR? 'CNT,RMGL \?PRG4 +?CND1: GETP HERE,P?THINGS >RMG + ZERO? RMG /?CND12 + GET RMG,0 >RMGL + SET 'CNT,0 +?PRG15: ZERO? P-NAM /?ELS19 + ADD CNT,1 + GET RMG,STACK + EQUAL? P-NAM,STACK /?ELS19 + JUMP ?CND17 +?ELS19: ZERO? P-ADJ /?ELS23 + ADD CNT,2 + GET RMG,STACK + CALL WT?,STACK,PS?ADJECTIVE,P1?ADJECTIVE + EQUAL? P-ADJ,STACK /?ELS23 + JUMP ?CND17 +?ELS23: ZERO? P-NAM \?THN28 + ZERO? P-ADJ /?CND17 +?THN28: SET 'LAST-PSEUDO-LOC,HERE + ADD CNT,3 + GET RMG,STACK + PUTP PSEUDO-OBJECT,P?ACTION,STACK + GETPT PSEUDO-OBJECT,P?ACTION + SUB STACK,5 >FOO + ADD CNT,1 + GET RMG,STACK >RMG + GET RMG,0 + PUT FOO,0,STACK + GET RMG,1 + PUT FOO,1,STACK + CALL OBJ-FOUND,PSEUDO-OBJECT,TBL + JUMP ?CND12 +?CND17: ADD CNT,3 >CNT + LESS? CNT,RMGL /?PRG15 +?CND12: 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 + RETURN P-SLOCBITS + + + .FUNCT DO-SL,OBJ,BIT1,BIT2,BTS + ADD BIT1,BIT2 + BTST P-SLOCBITS,STACK \?ELS5 + CALL SEARCH-LIST,OBJ,P-TABLE,P-SRCALL + RSTACK +?ELS5: BTST P-SLOCBITS,BIT1 \?ELS12 + CALL SEARCH-LIST,OBJ,P-TABLE,P-SRCTOP + RSTACK +?ELS12: 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 +?PRG6: EQUAL? LVL,P-SRCBOT /?CND8 + GETPT OBJ,P?SYNONYM + ZERO? STACK /?CND8 + CALL THIS-IT?,OBJ + ZERO? STACK /?CND8 + CALL OBJ-FOUND,OBJ,TBL +?CND8: EQUAL? LVL,P-SRCTOP \?THN18 + FSET? OBJ,SEARCHBIT /?THN18 + FSET? OBJ,SURFACEBIT \?CND13 +?THN18: FIRST? OBJ >NOBJ \?CND13 + FSET? OBJ,OPENBIT /?THN23 + FSET? OBJ,TRANSBIT /?THN23 + ZERO? P-MOBY-FLAG /?CND13 +?THN23: FSET? OBJ,SURFACEBIT \?ELS29 + PUSH P-SRCALL + JUMP ?CND25 +?ELS29: FSET? OBJ,SEARCHBIT \?ELS31 + PUSH P-SRCALL + JUMP ?CND25 +?ELS31: PUSH P-SRCTOP +?CND25: CALL SEARCH-LIST,OBJ,TBL,STACK >FLS +?CND13: NEXT? OBJ >OBJ /?PRG6 + 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 + GETB P-SYNTAX,P-SLOC1 + CALL ITAKE-CHECK,P-PRSO,STACK + ZERO? STACK /FALSE + 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 /?THN8 + BTST IBITS,STAKE \TRUE +?THN8: +?PRG10: DLESS? 'PTR,0 /TRUE + ADD PTR,1 + GET TBL,STACK >OBJ + EQUAL? OBJ,IT \?ELS19 + CALL VISIBLE?,P-IT-OBJECT + ZERO? STACK \?ELS22 + CALL REFERRING + RFALSE +?ELS22: SET 'OBJ,P-IT-OBJECT + JUMP ?CND17 +?ELS19: EQUAL? OBJ,HIM \?ELS26 + CALL VISIBLE?,P-HIM-OBJECT + ZERO? STACK \?ELS29 + CALL REFERRING,TRUE-VALUE + RFALSE +?ELS29: SET 'OBJ,P-HIM-OBJECT + JUMP ?CND17 +?ELS26: EQUAL? OBJ,HER \?CND17 + CALL VISIBLE?,P-HER-OBJECT + ZERO? STACK \?ELS36 + CALL REFERRING,TRUE-VALUE + RFALSE +?ELS36: SET 'OBJ,P-HER-OBJECT +?CND17: CALL ULTIMATELY-IN?,OBJ + ZERO? STACK \?PRG10 + EQUAL? OBJ,RAFT \?ELS45 + ZERO? RAFT-HELD \?PRG10 +?ELS45: EQUAL? OBJ,INTNUM,HANDS,HAND-COVER \?ELS41 + JUMP ?PRG10 +?ELS41: SET 'PRSO,OBJ + FSET? OBJ,TRYTAKEBIT \?ELS50 + SET 'TAKEN,TRUE-VALUE + JUMP ?CND48 +?ELS50: CALL UNTOUCHABLE?,OBJ + ZERO? STACK /?ELS52 + SET 'TAKEN,TRUE-VALUE + JUMP ?CND48 +?ELS52: EQUAL? WINNER,PROTAGONIST /?ELS54 + SET 'TAKEN,FALSE-VALUE + JUMP ?CND48 +?ELS54: BTST IBITS,STAKE \?ELS56 + CALL ITAKE,FALSE-VALUE + EQUAL? STACK,TRUE-VALUE \?ELS56 + SET 'TAKEN,FALSE-VALUE + JUMP ?CND48 +?ELS56: SET 'TAKEN,TRUE-VALUE +?CND48: ZERO? TAKEN /?ELS63 + BTST IBITS,SHAVE \?ELS63 + GET TBL,P-MATCHLEN + LESS? 1,STACK \?ELS68 + PRINT YNH + PRINTI " all those things!" + CRLF + RFALSE +?ELS68: EQUAL? OBJ,NOT-HERE-OBJECT \?CND66 + PRINT YOU-CANT + PRINTI "see that here!" + CRLF + RFALSE +?CND66: EQUAL? WINNER,PROTAGONIST \?ELS73 + PRINT YNH + JUMP ?CND71 +?ELS73: PRINTI "It doesn't look like" + CALL TPRINT,WINNER + PRINTI " has" +?CND71: CALL THIS-IS-IT,OBJ + CALL TRPRINT,OBJ + RFALSE +?ELS63: ZERO? TAKEN \?PRG10 + IN? PROTAGONIST,OBJ /?PRG10 + EQUAL? WINNER,PROTAGONIST \?PRG10 + PRINTI "[taking" + CALL TPRINT,OBJ + PRINTI " first]" + CRLF + JUMP ?PRG10 + + + .FUNCT MANY-CHECK,PHR=2,LOSS=0,TMP,?TMP1 + ZERO? PHR \?ELS3 + GETB P-SYNTAX,P-SLOC1 + BTST STACK,SMANY /?ELS3 + SET 'LOSS,1 + JUMP ?CND1 +?ELS3: EQUAL? PHR,1 \?ELS7 + GETB P-SYNTAX,P-SLOC2 + BTST STACK,SMANY /?ELS7 + SET 'LOSS,2 + JUMP ?CND1 +?ELS7: EQUAL? PHR,2 \?ELS11 + GET P-PRSO,P-MATCHLEN + GRTR? STACK,1 \?ELS11 + GETB P-SYNTAX,P-SLOC1 + BTST STACK,SMANY /?ELS11 + SET 'LOSS,1 + JUMP ?CND1 +?ELS11: EQUAL? PHR,2 \?CND1 + 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 "[" + PRINT YOU-CANT + PRINTI "use multiple " + EQUAL? LOSS,2 \?CND24 + PRINTI "in" +?CND24: PRINTI "direct objects with """ + GET P-ITBL,P-VERBN >TMP + ZERO? TMP \?ELS29 + PRINTI "tell" + JUMP ?CND27 +?ELS29: ZERO? P-OFLAG \?THN32 + ZERO? P-MERGED /?ELS31 +?THN32: GET TMP,0 + PRINTB STACK + JUMP ?CND27 +?ELS31: GETB TMP,2 >?TMP1 + GETB TMP,3 + CALL WORD-PRINT,?TMP1,STACK +?CND27: PRINTI """.]" + CRLF + RFALSE + + + .FUNCT ZMEMQ,ITM,TBL,SIZE=-1,CNT=1 + ZERO? TBL /FALSE + LESS? SIZE,0 /?ELS6 + SET 'CNT,0 + JUMP ?CND4 +?ELS6: GET TBL,0 >SIZE +?CND4: +?PRG9: GET TBL,CNT + EQUAL? ITM,STACK /TRUE + IGRTR? 'CNT,SIZE \?PRG9 + 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 + SET 'P-GWIMBIT,ONBIT + SET 'OHERE,HERE + SET 'HERE,RM + ZERO? RMBIT /?ELS3 + FSET? RM,ONBIT \?ELS3 + SET 'LIT,TRUE-VALUE + JUMP ?CND1 +?ELS3: PUT P-MERGE,P-MATCHLEN,0 + SET 'P-TABLE,P-MERGE + SET 'P-SLOCBITS,-1 + EQUAL? OHERE,RM \?CND8 + CALL DO-SL,WINNER,1,1 + EQUAL? WINNER,PROTAGONIST /?CND8 + IN? PROTAGONIST,RM \?CND8 + CALL DO-SL,PROTAGONIST,1,1 +?CND8: CALL DO-SL,RM,1,1 + GET P-TABLE,P-MATCHLEN + GRTR? STACK,0 \?CND1 + SET 'LIT,TRUE-VALUE +?CND1: SET 'HERE,OHERE + SET 'P-GWIMBIT,0 + RETURN LIT + + + .FUNCT PRSO-PRINT,PTR + ZERO? P-MERGED \?THN6 + GET P-ITBL,P-NC1 >PTR + GET PTR,0 + EQUAL? STACK,W?IT \?ELS5 +?THN6: PRINTI " " + CALL DPRINT,PRSO + RSTACK +?ELS5: GET P-ITBL,P-NC1L + CALL BUFFER-PRINT,PTR,STACK,FALSE-VALUE + RSTACK + + + .FUNCT PRSI-PRINT,PTR + ZERO? P-MERGED \?THN6 + GET P-ITBL,P-NC2 >PTR + GET PTR,0 + EQUAL? STACK,W?IT \?ELS5 +?THN6: PRINTI " " + CALL DPRINT,PRSI + RSTACK +?ELS5: GET P-ITBL,P-NC2L + CALL BUFFER-PRINT,PTR,STACK,FALSE-VALUE + RSTACK + + + .FUNCT THIS-IT?,OBJ,SYNS,?TMP1 + FSET? OBJ,INVISIBLE /FALSE + ZERO? P-NAM /?ELS5 + GETPT OBJ,P?SYNONYM >SYNS + PTSIZE SYNS + DIV STACK,2 + SUB STACK,1 + CALL ZMEMQ,P-NAM,SYNS,STACK + ZERO? STACK /FALSE +?ELS5: ZERO? P-ADJ /?ELS9 + GETPT OBJ,P?ADJECTIVE >SYNS + ZERO? SYNS /FALSE + PTSIZE SYNS + SUB STACK,1 + CALL ZMEMQB,P-ADJ,SYNS,STACK + ZERO? STACK /FALSE +?ELS9: ZERO? P-GWIMBIT /TRUE + FSET? OBJ,P-GWIMBIT /TRUE + RFALSE + + .ENDI diff --git a/parser.zil b/parser.zil new file mode 100644 index 0000000..997847d --- /dev/null +++ b/parser.zil @@ -0,0 +1,1781 @@ +"PARSER for + LEATHER GODDESSES OF PHOBOS + (c) Copyright 1986 Infocom, Inc. All Rights Reserved." + +;"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)" + + + + + + + + + >> + >> + >> + +> + + ;"number of bytes in input buffer" +> ;"INBUF - Input buffer for READ" +> ; "FIX #36" +> + + <> <> <>>> + + + + + +> ;"Parse-cont variable" + +> + +> + +> + + + + > ;"PRSO is a direction" + ;"is this necessary?" + > + ) + ( + ) + ( + ) + (T + )>> + +> + +> ;"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." + +) ;(DONT <>) + OMERGED OWINNER OLEN LEN (DIR <>) (NW 0) (LW 0) (CNT -1)) + > ,P-ITBLLEN> ) + (T + + >)> + )>> + + + ;> + ;> + ;> + ;> + > + > + > + + + + + > + + ,VEHBIT>> + >)> + >)> + + + ;"rfix no. 36" + > + > + )> + > + >) + (,P-CONT + + > + > + )> + >) + (T + + > + ,VEHBIT>> + >)> + > + > + )> + "> + + >)> + > + + + ) + ( ,W?OOPS> + > ;"rfix 36" + ,W?PERIOD ,W?COMMA> + > + >)> + > + + ) + ( + + )> + + >> + ;"Fixes OOPS w/char" + 6>> + 7>> + <+ <* ,P-LEXELEN> 3>> + + >;"Will this help?" + > + ) + (T + > + + )>) + (T >)> + ,W?AGAIN ,W?G> + + ) + ( + + ) + (> + >> + + ) + ( + > + ,W?PERIOD ,W?COMMA ,W?THEN> + > + ,W?AND>> + >> + 2>>) + (T + + )>) + (T + > + 1>>)> + 0> + + + ) + (T + >)> + ;> + + + + + + + ) + (T >)>>) + (T + + + + > ;"fix #36" + >>>> + > + >>> + > + + ;> + + + > 0> + > + ) + (>> + ) + (> + >> + > + + + ;"next clause added 8/20/84 by JW to + enable TELL MY NAME TO BEAST" + > + + ) + ( + + + > + + + ) + ;( + > + > + + + )> + + > + + >) + (T + )>)> + + >> + + ) + (> + ,ACT?WALK ,ACT?GO> + + + > + + >> + + > + + >>> + + + + ,W?THEN>)> + > + > + )>) + (> + > + + + + + + 2>>>> + >>) + (> + + + + > + >> + + >> + )> + ;"3/3/86 -- fix OPEN BACK DOOR given that + back is also a prep for HAND BACK OBJ -pdl" + + + + > + >>) + (> + + >> + + + + )>) + ( + + ) + (T + > + > + > + + > + )>)>) + ;( + > + ) + () + ( + + ;"Next expr added to fix FORD, TELL ME WHY" + > + + ) + (T + + )>) + (T + + )> + + >>)> + > + + + > + + + ; + )> + > + > + + >> + ) + (,P-OFLAG + )> + + + + > + T)>> + +; + > + +) "AUX" X Y Z) + >>> + > + >> + + + >> + >> + + )> + + > + +;> + +> + +> + +> + +;"For AGAIN purposes, put contents of one LEXV table into another." +> + > + > + 2>> + > + 3>> + > + > + + )>>> + +;"Put contents of one INBUF into another" + ) + (T >)>>> + +;"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>> + +;"WT? checks 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 + > + > >)> + )>)>> + +> .BIT> + + ) + ( + 1) + (T + > + > + >)> + )>)>> + +> + >> + .NW) + (ELSE + >)>)>> + +;" Scan through a noun clause, leave a pointer to its starting location" +) (FIRST?? T) NW (LW 0)) + 2>> + > + > .VAL> + .WRD> + >) + (T >)> + > )> + > >> + > 0> + >> + )> + > + + ) + (>> + > + + + > + ;"fix 'knock on back door', + break compiler">>> + 4>>) + ;( + > + ) + ( + ) + ( + > + + > + >)>) + ( + + + ;"ADDED 4/27 FOR TURTLE,UP" + >> + > + + >> + >) + ;"This next clause was 2 clauses further down" + ;"This attempts to fix EDDIE, TURN ON COMPUTER" + ( 0>> + > + ,W?THEN> + >) + ( + + + >> + T) + ( + ,ACT?SHOW ,ACT?HAND + ,ACT?FEED> + + > + ;"horrific kludge for + 'give her sword to...' --pdl") + ( + > + > + + > + + ,ACT?SHOW ,ACT?HAND + ,ACT?FEED>>>) + ( + > + >> + + 2>>> + ) + (T >)>) + ;"next clause replaced by following on from games + with characters" + ;( 0>>> + + >>) + ( + >) + ( T) + (T + + )>) + (T )> + + > + >>> + +> 2>> + > 3>> + ) + (> 0> + ) + (T + > + + > + <- .CHR 48>>>) + (>> + )> + >)>> + + ;"next COND handles inputs like 4,000" + > ,W?COMMA> + > + >> + > + 2>>> + 2>>>> + > + 2> + .CCTR> + ;"returning 0 would = false" + )> + .TMP>> + > + + ) + (T + > + >> + > + 2> + 2>>> + 3> + 3>>>)>> + > + 2>>)>)> + ;"this 10000 used to be 3000" + )> + + ,W?NUMBER> + +> 2>> + > 3>> + > 0> + ) + (T + > + > + + ) + ( + > + <- .CHR 48>>>) + (T + )> + >)>> + > ;"only handles 3 digits after the comma" + ) + ( ;"if it returned 0, the calling predicate becomes <>" + ) + (T + )>> + + + +) WRD) + > + 0>> + ,PS?VERB ,P1?VERB> + > + > + ) + ( + > + + + > + > + )> + >>> + + >>> + ) + ( ) + ( 1> + > + > + > + > + > + >)> + )>) + (T + > + ;>)> + >) + (T )>) + ( 1> + > + > + > + > + > + >)>)> + > + > + ) + (T )>) + (,P-ACLAUSE + > > + > + ) + (T + > + > >)> + > + > + + ) + (T > )>) + ( + + ,PS?ADJECTIVE> ;"same as WT?" + >> + ) + ( + + ) + ( ,PS?OBJECT> + + ) + (T + )> + )> + > + + + + > + )>>)>)> + > + > + > + + + ; 0>> > + > ,P-ITBLLEN> + + ) + (T >)>> + T> + +)) + >) + (ELSE )> + + > + + ) + (ELSE + )> + + 0>> > + > + > + +;"Print undefined word in input. + PTR points to the unknown word in P-LEXV" + + ) + (ELSE + > + >)>>> + + + + >> 2> + 3>> + + > + >> + +) "AUX" BUF) + + + ) + (T + )>) + (T + >> 2> + 3>>)> + + > + +;" Perform syntax matching operations, using P-ITBL as the source of + the verb and adjectives for this input. Returns false if no + syntax matches, and does it's own orphaning. If return is true, + the syntax is saved in P-SYNTAX." + + + + + + + + + + + + + + +) (DRIVE2 <>) PREP VERB) + >> + + )> + >> + > + > + ,P-SONUMS>> + T) + (> + + >> + >>> + ) + ( > + > + ) + ( + > + + )>)> + + ) + (T + + )>) + (T >)>> + + + >>> + + + ) + ( + + >>> + + + ) + ;( + + ) + (T + + + ) + (T + )> + + ) + ( ,ACTORBIT>> + ,ACTORBIT>>> + ) + (T + )> + + ) + (T + )> + + > + + > + + )> + ) + (T + )>> + + + ) + (T + > + )> + )>> + +> ;"? ,P-OTBL?" + + ) + ( + ) + (> + >) + (T + > + )>> + + + > + + + + )> + > + > + > + ) + (T >)>> + + + + + )> + > + + + + )> + > + ) + (.D2 + > + )>> + + .THE?>> + +) WRD (FIRST?? T) (PN <>)) + + ) + (T + >) + (T + )> + > ,W?PERIOD> + ) + ( + + ) + ( + + ) + (T + + .CP + >> + )> + + ) + ( + > + ) + ( + > + ) + ( + > + ) + (T + + >)> + >)>)> + >>> + + + + + > + ) + (T + )>> + + + >) + (T + > 32>> + 1> <+ 1>>)>> + +> + + + ) + (T + > + )>)>> + +) + "AUX" OCL BEG END BB EE OBEG CNT B E) + > + > + > + > + > + > + )> + >> + + > + > + )> + > + >>) + (>> + + >)>) + (ELSE + >)> + >> + > + .OBEG>> + + > + > + >> + )> + >> + )> + 2>>> + ,P-LEXELEN> 2>>>> + +> + 2>> + .WRD> + + > + + + + 2>> + ) + ( .PREP> + >>)>>> + + + >> + + + + + )> + + + + > + + 1> + > + + > + > + >> + + )> + > + ) + (T + )>)> + + .OBJ)>) + (T + + )>> + +> 0>> + + > + ,P-PRSO> > + > + >>)> + > 0>> + + > + ,P-PRSI> > + >> + 1> + >) + (T >)>)>)> + > + +> + + + ) + (> ,P-BUTS>) + (T + .OBJ> + >)> + >> + + + + .NTBL> + +> + +> + +> + +> + + + +> + +> + +> + +> + +> + +> + +> +> + + + + + + + + + +) LEN WV WRD NW (WAS-ALL <>)) + > + + )> + + ; + ; + + + > + + >> + )> + ) + (T + > + ) + (T >)> + + > + )> + + + >)>) + ( ;"This clause at PARSER too" + ) + ( + > > + + ) + ( + + + + >)>) + (T + + > > + >)>) + ( + >> + + > > + T) + () + () + ( + + )>) + (> + + >> ;"RFIX NO. 40" + + ) + ( + + )>)> + > + > + )>>> + + + +> + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + (T + )>> + +> + +;"grabs the first adjective, unless it comes across a special-cased adjective" + + ) + ( + > + ) + ( + ) + ( + ) + (T + )>> + + + + + + + + + +) (OLEN 0) OBJ) + + > + )> + + ,P-ADJ> + + + > + >) + (> + )>)> ;"Added by JW 4-17-85" + + + > + > + )> + )> + > > + )> + + ) + (T + > + + + ) + ( ,VEHBIT> + >> + .TBL>)> + )> + .TLEN>> + ;>>) + ;( + > + >> + "?]" CR> + ) + (ELSE + + )>) + (> + + >>>> + + + + .LEN>> + ) + (T + + + )> + >> + >>> + + )> + + + > + > + ) + (>> + + > + > + ) + ( + + ,P-NC1) + (T ,P-NC2)>> + + + <>> + ) + (.VRB + )> + > + > + )>) + ( .GCHECK> + + + + > + ;"Changed 6/10/83 - MARC" + + + + + > + > + > + ) + (T + )>)> + > + > + ) + ( )> + + + > + > + >> + +> + + )>> + + ;"ZILCH should stick the # of the last object here" + + + + + + ;)> + + % ;>> ;"ZIP case" + '> + > + >> + >)> + + )>>>) + (T ;"ZIL case" + ' + > + + ) + (T + + >)>> + + >)> + > 1> + >)> + + + > + +> +> +> +> +> + + + + + + ) + ( + >) + (T + >)> + + > + > + > + )> + + + > + )> + ) + ( + )> + > 1> + + )>>> + +> + + > + 1>> + >> + )> + + )>>)> + > + > + + >>>>) + ;(>>>>) + (> + ,PS?ADJECTIVE ,P1?ADJECTIVE>>>>) + ( + ; + ;) + (T + >)> + + >> + 5>> + >> + > + > + + )> + > + > + )>>)> + .LEN> + + + + + ;> + > + )>)>> + +> + ) + (T + + ) + ( + ) + (T )>)>> + + + + + +> + > + + > + )> + > + + > + >> + + + ,P-MOBY-FLAG> + + ,P-SRCALL) + ( + ,P-SRCALL) + (T ,P-SRCTOP)>>>)>)> + >) (T )>>)>> + +> + .OBJ> + >> + +> + >>> + +> + + >> + > 0> + ) + (T + >> + + > + + ) + (T + )>) + ( + > + + ) + (T + )>) + ( + > + + ) + (T + )>)> + + + ,RAFT-HELD> ;"for LET GO OF RAFT" + > + T) + (T + + + ) + ( + ) + (> + >) + ( + > T>> + >) + (T + )> + > + > + + ) + ( + + )> + + ) + (T + )> + + + ) + ( + > + > + )>)>)>>) + (T)>> + +) TMP) + + ,SMANY>>> + ) + ( + ,SMANY>>> + ) + ( + 1> + ,SMANY>>> + ) + ( + 1> + ,SMANY>>> + )> + + + )> + + > + + ) + ( + >) + (T + >)> + + ) + (T)>> + + )> + > ) + (ELSE >)> + > + ) + ( + )>>> + +> + ) + ( + )>>> + +)) + + + + > + ) + (T + + + + + + > + > + )>)> + + 0> + )>)> + + + .LIT> + +> 0> ,W?IT>> + ) + (T + <>>)>> + +> 0> ,W?IT>> + ) + (T + <>>)>> + +;"former CRUFTY.ZIL routine" + + + ) + (> + <- 2> 1>>>> + ) + (>> + 1>>>>> + ) + (> >> + )> + > \ No newline at end of file diff --git a/phobos.zap b/phobos.zap new file mode 100644 index 0000000..2956688 --- /dev/null +++ b/phobos.zap @@ -0,0 +1,1239 @@ + + + .FUNCT CELL-OBJECT-F + EQUAL? PRSA,V?WALK-TO,V?BOARD,V?ENTER \?ELS5 + CALL ADJ-USED,A?OTHER + ZERO? STACK \?THN11 + CALL ADJ-USED,A?SMALL + ZERO? STACK /?ELS10 +?THN11: EQUAL? HERE,OTHER-CELL \?ELS17 + PRINT LOOK-AROUND + RTRUE +?ELS17: EQUAL? HERE,END-OF-HALLWAY \?ELS19 + CALL DO-WALK,P?SOUTH + RSTACK +?ELS19: PRINT CANT-FROM-HERE + RTRUE +?ELS10: EQUAL? HERE,CELL \?ELS23 + PRINT LOOK-AROUND + RTRUE +?ELS23: EQUAL? HERE,END-OF-HALLWAY \?ELS25 + CALL DO-WALK,P?NORTH + RSTACK +?ELS25: PRINT CANT-FROM-HERE + RTRUE +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS29 + CALL ADJ-USED,A?OTHER + ZERO? STACK \?THN35 + CALL ADJ-USED,A?SMALL + ZERO? STACK /?ELS34 +?THN35: EQUAL? HERE,OTHER-CELL \?ELS41 + CALL DO-WALK,P?NORTH + RSTACK +?ELS41: PRINT LOOK-AROUND + RTRUE +?ELS34: EQUAL? HERE,CELL \?ELS45 + CALL DO-WALK,P?SOUTH + RSTACK +?ELS45: EQUAL? HERE,OTHER-CELL \?ELS47 + CALL DO-WALK,P?NORTH + RSTACK +?ELS47: PRINT LOOK-AROUND + RTRUE +?ELS29: EQUAL? PRSA,V?EXAMINE \?ELS51 + EQUAL? HERE,END-OF-HALLWAY /?ELS51 + CALL V-LOOK + RSTACK +?ELS51: EQUAL? PRSA,V?CLOSE,V?OPEN,V?LOOK-INSIDE \?ELS55 + EQUAL? HERE,END-OF-HALLWAY \?ELS58 + CALL ADJ-USED,A?OTHER + ZERO? STACK \?THN62 + CALL ADJ-USED,A?SMALL + ZERO? STACK /?ELS61 +?THN62: CALL PERFORM-PRSA,NARROW-CELL-DOOR + RTRUE +?ELS61: CALL PERFORM-PRSA,WIDE-CELL-DOOR + RTRUE +?ELS58: EQUAL? PRSA,V?LOOK-INSIDE \?ELS67 + CALL V-LOOK + RTRUE +?ELS67: EQUAL? HERE,CELL \?ELS69 + CALL PERFORM-PRSA,WIDE-CELL-DOOR + RTRUE +?ELS69: CALL PERFORM-PRSA,NARROW-CELL-DOOR + RTRUE +?ELS55: EQUAL? PRSA,V?PUT \?ELS73 + EQUAL? PRSI,CELL-OBJECT \?ELS73 + EQUAL? HERE,END-OF-HALLWAY \?ELS80 + PRINT CANT-FROM-HERE + RTRUE +?ELS80: CALL PERFORM,V?DROP,PRSO + RTRUE +?ELS73: EQUAL? HERE,END-OF-HALLWAY /FALSE + EQUAL? PRSO,CELL-OBJECT \FALSE + CALL PERFORM-PRSA,GLOBAL-ROOM,PRSI + RTRUE + + + .FUNCT CELL-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "You are in a large cell with a soft, cushiony floor. A wide door (" + FSET? WIDE-CELL-DOOR,OPENBIT \?ELS8 + PRINTI "now open" + JUMP ?CND6 +?ELS8: FSET? WIDE-CELL-DOOR,TOUCHBIT \?ELS10 + PRINTI "now closed" + JUMP ?CND6 +?ELS10: PRINTI "closed, naturally" +?CND6: PRINTI ") forms the southern wall of the cell" + ZERO? HOLE-OPEN /?CND13 + PRINTI ". A " + CALL DPRINT,HOLE + PRINTI " is lying on the ground amidst some rubble" +?CND13: PRINTI "." + RTRUE +?ELS5: EQUAL? RARG,M-END \?ELS18 + ZERO? TRAY-DELIVERED \?ELS18 + SET 'TRAY-DELIVERED,TRUE-VALUE + MOVE TRAY,HERE + PRINTI " Someone thrusts a tray into your cell. A " + CALL DPRINT,CHOCOLATE + PRINTI " on the tray" + PRINT LOOKS-UNAPPETIZING + RTRUE +?ELS18: EQUAL? RARG,M-END \FALSE + IN? SIDEKICK,HERE \FALSE + ZERO? CELL-GRIPE \FALSE + SET 'CELL-GRIPE,TRUE-VALUE + PRINTI " ""What a great cell!"" says " + CALL DPRINT-SIDEKICK + PRINTI ", looking around. ""Why didn't I get a cell like this? Maybe I shouldn't have kicked that guard " + EQUAL? NAUGHTY-LEVEL,1 \?ELS27 + PRINTI "below the waist " + JUMP ?CND25 +?ELS27: EQUAL? NAUGHTY-LEVEL,2 \?CND25 + PRINTI "in the nuts " +?CND25: PRINTR "when I first got here...""" + + + .FUNCT HOLE-ENTER-F + ZERO? HOLE-OPEN /?ELS3 + PRINT YOU-CANT + PRINTI "reach the hole in the ceiling." + CRLF + RFALSE +?ELS3: PRINT CANT-GO + RFALSE + + + .FUNCT BLANKET-F + FSET? BLANKET,UNTEEDBIT /FALSE + EQUAL? PRSA,V?MEASURE \?ELS7 + PRINTR "Small." +?ELS7: EQUAL? PRSA,V?WEAR /?THN10 + EQUAL? PRSA,V?WRAP \?ELS9 + EQUAL? PRSI,ME \?ELS9 +?THN10: PRINTR "It's too small; your jailors must have meant it to be used as a pillow." +?ELS9: EQUAL? PRSA,V?BOARD \?ELS15 + CALL WASTES + RSTACK +?ELS15: EQUAL? PRSA,V?TIE \?ELS17 + PRINTR "The material of the blanket is too thick to knot." +?ELS17: EQUAL? PRSA,V?TAKE,V?REMOVE \?ELS19 + IN? BLANKET,BABY \?ELS19 + CALL PERFORM,V?REMOVE,BABY + RTRUE +?ELS19: EQUAL? PRSA,V?PUT \?ELS23 + EQUAL? PRSI,BASKET \?ELS23 + IN? BLANKET,BABY \?ELS30 + CALL PERFORM-PRSA,BABY,BASKET + RTRUE +?ELS30: IN? BABY,BASKET \FALSE + MOVE BLANKET,BASKET + MOVE BABY,PROTAGONIST + CALL PERFORM-PRSA,BABY,BASKET + RTRUE +?ELS23: EQUAL? PRSA,V?THROW,V?PUT,V?DROP \?ELS34 + EQUAL? PRSO,BLANKET \?ELS34 + IN? BLANKET,BABY \?ELS34 + CALL DO-FIRST,STR?398 + RSTACK +?ELS34: EQUAL? PRSA,V?LOOK-INSIDE \?ELS38 + IN? BLANKET,BABY \?ELS38 + CALL PERFORM,V?ALARM,BABY + RTRUE +?ELS38: EQUAL? PRSA,V?PUT-ON \FALSE + EQUAL? PRSO,BLANKET \FALSE + FSET? PRSI,SURFACEBIT /FALSE + CALL WASTES + RSTACK + + + .FUNCT PAINTING-F + EQUAL? PRSA,V?EXAMINE \FALSE + FSET? PAINTING,UNTEEDBIT /FALSE + SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTR "It's a good likeness of a pussy, but is it art?" + + + .FUNCT TRAY-F + EQUAL? PRSA,V?EXAMINE \FALSE + FSET? TRAY,UNTEEDBIT \FALSE + PRINTR "It looks a little like Ray whatsisname from second grade." + + + .FUNCT CHOCOLATE-F + FSET? CHOCOLATE,UNTEEDBIT /FALSE + EQUAL? PRSA,V?EAT \?ELS7 + CALL ULTIMATELY-IN?,CHOCOLATE + ZERO? STACK \?CND8 + PRINT YNH + PRINTR " it!" +?CND8: REMOVE CHOCOLATE + CALL QUEUE,I-UNRUSH,6 + ZERO? GONE-APE /?ELS13 + SET 'SUGAR-RUSH,GORILLA-ATE-CHOCOLATE + JUMP ?CND11 +?ELS13: SET 'SUGAR-RUSH,HUMAN-ATE-CHOCOLATE +?CND11: PRINTI "Mmmm! " + ZERO? CHOCOLATE-IDENTIFIED /?ELS19 + PRINTI "G" + JUMP ?CND17 +?ELS19: PRINTI "It's a piece of really g" +?CND17: PRINTR "ood chocolate! You feel yourself getting a sugar rush." +?ELS7: EQUAL? PRSA,V?EXAMINE \?ELS24 + PRINTI "The " + CALL DPRINT,CHOCOLATE + PRINT LOOKS-UNAPPETIZING + RTRUE +?ELS24: EQUAL? PRSA,V?TASTE \?ELS26 + SET 'CHOCOLATE-IDENTIFIED,TRUE-VALUE + PUTP CHOCOLATE,P?SDESC,STR?404 + RFALSE +?ELS26: EQUAL? PRSA,V?SMELL \FALSE + FSET? CHOCOLATE,SMELLEDBIT /FALSE + SET 'CHOCOLATE-IDENTIFIED,TRUE-VALUE + FSET CHOCOLATE,SMELLEDBIT + PUTP CHOCOLATE,P?SDESC,STR?404 + CALL SCRATCH-N-SNIFF,2 + PRINTR "Luscious, creamy milk chocolate!" + + + .FUNCT I-UNRUSH + ZERO? GONE-APE /?ELS9 + EQUAL? SUGAR-RUSH,GORILLA-ATE-CHOCOLATE /?THN6 +?ELS9: ZERO? GONE-APE \?ELS5 + EQUAL? SUGAR-RUSH,HUMAN-ATE-CHOCOLATE \?ELS5 +?THN6: SET 'SUGAR-RUSH,FALSE-VALUE + PRINTR " You feel the sugar rush ebb." +?ELS5: SET 'SUGAR-RUSH,FALSE-VALUE + RFALSE + + + .FUNCT OTHER-CELL-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + FSET? OTHER-CELL,TOUCHBIT /?ELS5 + CALL THIS-IS-IT,SIDEKICK + CALL QUEUE,I-BLUEPRINT,19 + ZERO? VERBOSITY /FALSE + PRINTI "As you enter, a " + ZERO? MALE \?CND11 + PRINTI "wo" +?CND11: PRINTI "man sitting limply in the shadows stiffens and rises to " + CALL HIS-HER + PRINTI " feet. ""A human! They got you too? I've been here a week. When you opened the door, I figured it was a guard! Was it unlocked? I never thought of trying it. By the way, my name's " + CALL DPRINT-SIDEKICK + PRINTI ". From Alaska. I'm not too bright, but I'm strong as an ox, and I'm great with my hands. Maybe we can lick these Leather Goddesses together.""" + CRLF + CRLF + RTRUE +?ELS5: EQUAL? RARG,M-LOOK \FALSE + PRINTI "You are in a very tiny room with a rock-hard floor. A " + PRINTD NARROW-CELL-DOOR + PRINTI " to the north is " + CALL OPEN-CLOSED,NARROW-CELL-DOOR + PRINTI "." + RTRUE + + + .FUNCT NARROW-CELL-DOOR-F + EQUAL? PRSA,V?KNOCK \FALSE + IN? SIDEKICK,OTHER-CELL \FALSE + PRINTR "A muffled voice responds, ""Beat it, you alien fruitcake freako mutant weirdo scum!""" + + + .FUNCT SIDEKICK-F,OARG=0 + ZERO? OARG /?ELS5 + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " " + CALL DPRINT-SIDEKICK + PRINTI " is here, " + CALL SIDEKICK-DESC + PRINTI "." + RTRUE +?ELS5: EQUAL? SIDEKICK,WINNER \?ELS11 + EQUAL? PRSA,V?WHAT \?ELS16 + CALL PERFORM,V?TELL-ABOUT,ME,PRSO + RTRUE +?ELS16: EQUAL? PRSA,V?READ \?ELS18 + EQUAL? PRSO,SCRAP-OF-PAPER \?ELS18 + CALL PERFORM,V?TELL-ABOUT,ME,SCRAP-OF-PAPER + RTRUE +?ELS18: EQUAL? PRSA,V?TELL-ABOUT \?ELS22 + EQUAL? PRSO,ME \?ELS22 + EQUAL? PRSI,ODD-MACHINE \?ELS29 + IN? ODD-MACHINE,SALESMAN /?ELS29 + PRINTR """Hmmm, tee remover. For cleaning up golf courses?""" +?ELS29: EQUAL? PRSI,SCRAP-OF-PAPER \?ELS33 + PRINTR """I dunno what it means; I doodled it one night in my sleep!""" +?ELS33: EQUAL? PRSI,MATCHBOOK \?ELS35 + CALL QUEUED?,I-BLUEPRINT + ZERO? STACK \?ELS35 + CALL SCRAPE-UP-THESE-ITEMS + RSTACK +?ELS35: EQUAL? PRSI,LGOP \?ELS39 + PRINTR """No doubt some gang of interplanetary floozies who get their jollies from enslaving defenseless planets. We'll stop 'em!""" +?ELS39: CALL DPRINT-SIDEKICK + PRINTI " shrugs. ""What do I know? I'm from Alaska,"" " + CALL HE-SHE + PRINTR " says, in a burst of insecurity that will no doubt ease in a quarter-century or so when Alaska becomes a state." +?ELS22: EQUAL? PRSA,V?WALK \?ELS43 + PRINTR """After you!""" +?ELS43: EQUAL? PRSA,V?FOLLOW \?ELS45 + EQUAL? PRSO,ME \?ELS45 + PRINTR """Lead on!""" +?ELS45: EQUAL? PRSA,V?HELLO \?ELS49 + PRINTR """Hi!""" +?ELS49: EQUAL? PRSA,V?EXIT,V?ENTER,V?DISEMBARK \?ELS51 + EQUAL? PRSO,WINDOW \?ELS51 + EQUAL? HERE,BEDROOM \?ELS51 + ZERO? SIDEKICK-TRIP-FLAG /?ELS58 + PRINTR """Not again!""" +?ELS58: CALL QUEUED?,I-SIDEKICK-OUT-WINDOW + ZERO? STACK /?ELS61 + PRINTR """Gimme a second to get ready!""" +?ELS61: PRINTR """I'm dumb, but not that dumb!""" +?ELS51: EQUAL? PRSA,V?KISS \?ELS65 + EQUAL? PRSO,FROG \?ELS65 + PRINTR """I'd sooner kiss a pig!""" +?ELS65: EQUAL? PRSA,V?RAISE \?ELS69 + EQUAL? PRSO,ME \?ELS69 + LOC PROTAGONIST + EQUAL? STACK,TREE-HOLE,CLOSET \?ELS69 + SET 'WINNER,PROTAGONIST + CALL PERFORM,V?CLIMB-ON,SIDEKICK + SET 'WINNER,SIDEKICK + RTRUE +?ELS69: EQUAL? PRSA,V?TAKE \?ELS73 + EQUAL? PRSO,HEADLIGHT \?ELS73 + FSET? HEADLIGHT,TRYTAKEBIT \?ELS73 + SET 'WINNER,PROTAGONIST + CALL PERFORM,V?SHOW,HEADLIGHT,SIDEKICK + SET 'WINNER,SIDEKICK + RTRUE +?ELS73: EQUAL? PRSA,V?GIVE \?ELS77 + EQUAL? PRSI,ME \?ELS77 + SET 'WINNER,PROTAGONIST + CALL PERFORM,V?ASK-FOR,SIDEKICK,PRSO + SET 'WINNER,SIDEKICK + RTRUE +?ELS77: EQUAL? PRSA,V?SGIVE /FALSE + EQUAL? PRSA,V?MAKE \?ELS83 + EQUAL? PRSO,ANTI-LGOP-MACHINE \?ELS83 + PRINTR """Don't crowd me.""" +?ELS83: CALL DPRINT-SIDEKICK + PRINTI " is " + CALL SIDEKICK-DESC + PRINTI " and fails to notice that you've spoken." + CRLF + CALL STOP + RSTACK +?ELS11: CALL WRONG-SEX-WORD,SIDEKICK,W?TRENT,W?TIFFAN + ZERO? STACK /?ELS89 + CALL STOP + RSTACK +?ELS89: CALL WRONG-SEX-WORD,SIDEKICK,W?TRENT,W?TIFF + ZERO? STACK /?ELS91 + CALL STOP + RSTACK +?ELS91: EQUAL? PRSA,V?EXAMINE \?ELS93 + CALL DPRINT-SIDEKICK + PRINTI " is about your age" + ZERO? NAUGHTY-LEVEL /?CND94 + PRINTI " and has a body worthy of envy: tall and well-built, with wide shoulders, " + ZERO? MALE /?ELS99 + PRINTI "massive pectorals, and thick" + JUMP ?CND97 +?ELS99: PRINTI "a generous bosom, slim waist, and long" +?CND97: PRINTI ", tawny legs. The only minus seems to be slightly oversized feet, but even oversized feet are a plus if you're into toe-sucking" +?CND94: PRINTI "." + FIRST? SIDEKICK \?ELS107 + PRINTI " " + RFALSE +?ELS107: CRLF + RTRUE +?ELS93: EQUAL? PRSA,V?ASK-FOR \?ELS111 + EQUAL? PRSO,SIDEKICK \?ELS111 + CALL ULTIMATELY-IN?,PRSI,SIDEKICK + ZERO? STACK /?ELS118 + MOVE PRSI,PROTAGONIST + PRINTR """What's mine is yours!""" +?ELS118: PRINTI """I haven't got" + CALL APRINT,PRSI + PRINTR "!""" +?ELS111: EQUAL? PRSA,V?FOLLOW \?ELS122 + EQUAL? FOLLOW-FLAG,1 \?ELS127 + CALL PERFORM,V?CLIMB-DOWN,SHEET + RTRUE +?ELS127: EQUAL? FOLLOW-FLAG,2 \?ELS129 + PRINT DONT-WANT-TO + RTRUE +?ELS129: EQUAL? FOLLOW-FLAG,3 \FALSE + CALL PERFORM,V?ENTER,CANAL-OBJECT + RTRUE +?ELS122: EQUAL? PRSA,V?UNTIE \?ELS133 + CALL PERFORM-PRSA,SIDEKICKS-BODY + RTRUE +?ELS133: EQUAL? PRSA,V?TIE \?ELS135 + EQUAL? PRSI,SECOND-SLAB,FIRST-SLAB \?ELS135 + CALL PERFORM-PRSA,SIDEKICKS-BODY + RTRUE +?ELS135: EQUAL? PRSA,V?STAND-ON,V?BOARD,V?CLIMB-ON \?ELS139 + IN? PROTAGONIST,TREE-HOLE /?THN145 + EQUAL? HERE,CLOSET \?ELS144 + FIRST? SHELF \?ELS144 +?THN145: PRINTI "Using " + CALL DPRINT-SIDEKICK + PRINTI "'s shoulders, you " + IN? PROTAGONIST,TREE-HOLE \?ELS151 + MOVE PROTAGONIST,HERE + MOVE SIDEKICK,HERE + PRINTI "climb out of the hole and help " + CALL DPRINT-SIDEKICK + PRINTI " out" + JUMP ?CND149 +?ELS151: CALL ROB,SHELF,PROTAGONIST + PRINTI "get everything from the shelf" +?CND149: PRINT PERIOD-CR + RTRUE +?ELS144: CALL WASTES + RSTACK +?ELS139: EQUAL? PRSA,V?PUSH \?ELS157 + EQUAL? PRSI,TREE-HOLE \?ELS157 + CALL DPRINT-SIDEKICK + PRINTI " grabs wildly at you, pulling both of you into the hole" + FSET? TRELLIS,MUNGBIT \?CND160 + ZERO? LEAVES-PLACED /?CND163 + MOVE LEAVES,TREE-HOLE +?CND163: REMOVE TRELLIS + CALL UNDO-TRAP + PRINTI " with a crash of splintering wood" +?CND160: PRINTI ". " + IN? FLYTRAP,TREE-HOLE \?ELS171 + CALL PERFORM,V?ENTER,TREE-HOLE + RTRUE +?ELS171: MOVE PROTAGONIST,TREE-HOLE + MOVE SIDEKICK,TREE-HOLE + IN? TRELLIS,PROTAGONIST \?CND174 + MOVE TRELLIS,HERE +?CND174: PRINTI """Brilliant move, bozo,"" says " + CALL DPRINT-SIDEKICK + PRINT PERIOD-CR + RTRUE +?ELS157: EQUAL? PRSA,V?GIVE \?ELS178 + EQUAL? HERE,PLAZA \?ELS178 + SUB PLAZA-COUNTER,1 + GET PARTS-LIST,STACK + EQUAL? PRSO,STACK \?ELS183 + FSET? PRSO,UNTEEDBIT /?ELS183 + REMOVE PRSO + SET 'RIGHT-PART,TRUE-VALUE + CALL DPRINT-SIDEKICK + PRINTI " grabs" + CALL TPRINT-PRSO + PRINTI " and quickly incorporates it into " + CALL HIS-HER + PRINTI " contraption." + CRLF + RETURN 8 +?ELS183: CALL DPRINT-SIDEKICK + PRINTI " gives" + CALL TPRINT-PRSO + PRINTI " the barest glance. ""No good! It has to be a" + CALL PRINT-PART + PRINTI "!""" + CRLF + RETURN 8 +?ELS178: EQUAL? PRSA,V?GIVE \?ELS191 + CALL ZMEMQ,PRSO,PARTS-LIST,7 + ZERO? STACK /?ELS191 + FSET? PRSO,UNTEEDBIT /?ELS191 + CALL EAGERLY-ACCEPTS + PRINT PERIOD-CR + RTRUE +?ELS191: EQUAL? PRSA,V?SHOW \FALSE + EQUAL? PRSO,HEADLIGHT \?ELS200 + FSET? HEADLIGHT,TRYTAKEBIT \?ELS200 + PRINTR """Can't reach it from here!""" +?ELS200: EQUAL? PRSO,SCRAP-OF-PAPER \?ELS204 + CALL PERFORM,V?ASK-ABOUT,SIDEKICK,SCRAP-OF-PAPER + RTRUE +?ELS204: CALL ZMEMQ,PRSO,PARTS-LIST,7 + ZERO? STACK /FALSE + FSET? PRSO,UNTEEDBIT /FALSE + PRINTI """Hey, wow!"" says " + CALL DPRINT-SIDEKICK + PRINTI ", clearly impressed by your discovery of" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT SIDEKICK-DESC + GRTR? PLAZA-COUNTER,0 \?ELS5 + PRINTI "busy with" + CALL TPRINT,ANTI-LGOP-MACHINE + RSTACK +?ELS5: EQUAL? HERE,BOUDOIR \?ELS7 + PRINTI "lying on another couch" + RTRUE +?ELS7: RANDOM 100 + LESS? 33,STACK /?ELS9 + PRINTI "alertly surveying your surroundings" + RTRUE +?ELS9: RANDOM 100 + LESS? 50,STACK /?ELS11 + ZERO? SIDEKICKS-BODY-TIED-TO-SLAB \?ELS11 + PRINTI "doing some quick limbering exercises" + RTRUE +?ELS11: PRINTI "counting on " + CALL HIS-HER + PRINTI " fingers and mumbling to " + CALL HIM-HER + PRINTI "self" + RTRUE + + + .FUNCT GENERIC-SIDEKICK-F + GET P-NAMW,0 + EQUAL? STACK,W?BODY /FALSE + GET P-NAMW,1 + EQUAL? STACK,W?BODY /FALSE + RETURN SIDEKICK + + + .FUNCT MEMORIAM + PRINTI ", " + PRINTD EYES + PRINTI " fill with tears. You hang " + PRINTD HEAD + PRINTI " in sorrow for a moment to honor your brave, loyal companion who gave " + CALL HIS-HER + PRINTI " life that humanity might be safe from the terrible scourge of " + PRINTD LGOP + PRINT PERIOD-CR + RTRUE + + + .FUNCT CRAMPED-SPACE-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + ZERO? HOLE-OPEN \?ELS5 + CALL QUEUE,I-CRAMPED-SPACE,2 + RSTACK +?ELS5: EQUAL? RARG,M-LOOK \FALSE + PRINTI "You are in a dark space, too tiny to move around in. The" + ZERO? HOLE-OPEN /?ELS14 + PRINTI " only exit is a hole in the floor." + RTRUE +?ELS14: PRINTI "re are no visible exits." + RTRUE + + + .FUNCT I-CRAMPED-SPACE + PRINTI " Suddenly, part of the floor collapses, and you" + CALL AND-SIDEKICK + PRINTI " tumble through the resulting hole" + PRINT ELLIPSIS + CALL GOTO,CELL,TRUE-VALUE + IN? SIDEKICK,CRAMPED-SPACE \?CND1 + MOVE SIDEKICK,HERE +?CND1: SET 'HOLE-OPEN,TRUE-VALUE + FCLEAR CRAMPED-SPACE,TOUCHBIT + PRINTI " Among the new rubble, you notice" + CALL APRINT,HOLE + PRINTI ", attached to a piece of (what used to be) the floor of the cramped space." + CRLF + CALL CELL-F,M-END + RTRUE + + + .FUNCT CRAMPED-SPACE-HOLE-F + ZERO? HOLE-OPEN \?ELS5 + CALL CANT-SEE,PSEUDO-OBJECT + RSTACK +?ELS5: EQUAL? PRSA,V?ENTER,V?STAND-ON,V?CLIMB-DOWN /?THN8 + EQUAL? PRSA,V?BOARD \FALSE +?THN8: CALL DO-WALK,P?DOWN + RSTACK + + + .FUNCT END-OF-HALLWAY-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "A " + PRINTD WIDE-CELL-DOOR + PRINTI " lies " + CALL OPEN-CLOSED,WIDE-CELL-DOOR + PRINTI " to the north, and" + CALL APRINT,NARROW-CELL-DOOR + PRINTI " lies " + CALL OPEN-CLOSED,NARROW-CELL-DOOR + PRINTI " to the south. The hallway ends at a gleaming " + PRINTD EXAM-ROOM-DOOR + PRINTI " to the west, and continues east. Something, possibly this very sentence, tells you that it would be dangerous to travel east or west" + PRINT SIGN-AND-STAIRS + RTRUE + + + .FUNCT EXAMINATION-ROOM-DESC,VIEWING=0 + PRINTI "A number of hideous experiments fill th" + ZERO? VIEWING /?ELS3 + PRINTI "e" + JUMP ?CND1 +?ELS3: PRINTI "is" +?CND1: PRINTI " room. Their obvious purpose: studies of the human anatomy" + EQUAL? NAUGHTY-LEVEL,1 /?CND7 + PRINTI ", especially those parts rarely referred to in the New York Times" +?CND7: PRINTI ". A pathetic-looking human is the current subject; however, even an author as fond of lascivious detail as this one would hesitate to describe it " + EQUAL? NAUGHTY-LEVEL,2 \?ELS14 + PRINTR "even in LEWD mode, except to mention that it involves a lot of lubricants, some plastic tubing, and a yak." +?ELS14: PRINTI "to someone who's merely in " + ZERO? NAUGHTY-LEVEL \?ELS19 + PRINTI "TAME" + JUMP ?CND17 +?ELS19: PRINTI "SUGGESTIVE" +?CND17: PRINTR " mode." + + + .FUNCT EXAMINATION-ROOM-F + FSET? EXAM-ROOM-DOOR,OPENBIT \?ELS5 + PRINTI """Examination"" Room + " + ZERO? SEEN-EXAMINATION-ROOM /?ELS8 + PRINTI "The experiments look even more horrible from here than from the Observation Room window." + CRLF + JUMP ?CND6 +?ELS8: CALL EXAMINATION-ROOM-DESC +?CND6: PRINTI " Before you've really gotten as sick as you know you could get, one of the" + CALL LECKBANDI + RSTACK +?ELS5: CALL THIS-IS-IT,EXAM-ROOM-DOOR + CALL DO-FIRST,STR?66,EXAM-ROOM-DOOR + RFALSE + + + .FUNCT OTHER-END-OF-HALLWAY-F + PRINTI "Other End of Hallway + Before you can even begin to wonder what happened to the middle of the hallway, a guard patrol erupts from the shadows. A" + CALL LECKBANDI + RSTACK + + + .FUNCT LECKBANDI + CALL JIGS-UP,STR?407 + RSTACK + + + .FUNCT OBSERVATION-ROOM-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "Calvin Coolidge once described windows as ""rectangles of glass."" If so, he may have been thinking about the window which fills the western wall of this room. A tiny closet lies to the north" + PRINT SIGN-AND-STAIRS + RTRUE + + + .FUNCT CLOSET-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "This room is barely large enough to turn around in. Just to prove it, you turn around. As you do, you spot" + CALL APRINT,HOLE + PRINTI ", about two feet across, seemingly painted on the floor in the corner. A shelf protrudes from one wall, very close to the ceiling. The closet is open to the south." + FSET? NOSE,MUNGBIT /TRUE + PRINTI " A strong odor " + FSET? HERE,SMELLEDBIT \?CND9 + PRINTI "of " + PRINTD MOTHBALLS + PRINTI " " +?CND9: PRINTI "pervades the closet." + RTRUE +?ELS5: EQUAL? RARG,M-SMELL \FALSE + PRINTI "Apparently this section of Phobos has a significant moth problem." + RTRUE + + + .FUNCT CLOSET-EXIT-F + PRINTI "Ah! Coming out of the closet, I see" + PRINT ELLIPSIS + RETURN OBSERVATION-ROOM + + + .FUNCT CLOSET-OBJECT-F + EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5 + EQUAL? HERE,CLOSET \?ELS10 + PRINT LOOK-AROUND + RTRUE +?ELS10: EQUAL? HERE,OBSERVATION-ROOM \FALSE + CALL DO-WALK,P?NORTH + RSTACK +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS14 + EQUAL? HERE,CLOSET \?ELS19 + CALL DO-WALK,P?SOUTH + RSTACK +?ELS19: PRINT LOOK-AROUND + RTRUE +?ELS14: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS23 + PRINTR "No door." +?ELS23: EQUAL? PRSA,V?SMELL \?ELS25 + EQUAL? HERE,CLOSET \?ELS25 + CALL PERFORM-PRSA,ODOR + RTRUE +?ELS25: EQUAL? PRSA,V?SEARCH \?ELS29 + PRINT NOTHING-NEW + RTRUE +?ELS29: EQUAL? PRSA,V?LOOK-INSIDE \FALSE + EQUAL? HERE,CLOSET \?ELS36 + CALL V-LOOK + RSTACK +?ELS36: PRINT ONLY-BLACKNESS + RTRUE + + + .FUNCT SHELF-F + EQUAL? PRSA,V?PUT,V?PUT-ON \FALSE + EQUAL? PRSI,SHELF \FALSE + IN? PROTAGONIST,STOOL /FALSE + CALL CANT-REACH,SHELF + RSTACK + + + .FUNCT BASKET-F + FSET? BASKET,UNTEEDBIT /FALSE + EQUAL? PRSA,V?EXAMINE \?ELS7 + PRINTR "The basket is oval-shaped. A handle spans the narrow part." +?ELS7: EQUAL? PRSA,V?MEASURE \?ELS9 + PRINTR "The basket is about fifteen by thirty inches." +?ELS9: EQUAL? PRSA,V?CLOSE \?ELS11 + CALL NO-LID + RSTACK +?ELS11: EQUAL? PRSA,V?PUT-NEAR,V?PUT \?ELS13 + EQUAL? PRSI,ORPHANAGE-DOOR \?ELS13 + CALL PERFORM,V?PUT-ON,BASKET,FRONT-STOOP + RTRUE +?ELS13: CALL TAKE-BABY-FROM-STOOP,BASKET + ZERO? STACK \TRUE + RFALSE + + + .FUNCT TAKE-BABY-FROM-STOOP,OBJ + EQUAL? PRSA,V?TAKE \FALSE + EQUAL? PRSO,OBJ \FALSE + CALL QUEUED?,I-ORPHANAGE + ZERO? STACK /FALSE + CALL CCOUNT,PROTAGONIST + LESS? STACK,11 \FALSE + CALL DEQUEUE,I-ORPHANAGE + RFALSE + + + .FUNCT MOTHBALLS-F + EQUAL? HERE,CLOSET \FALSE + PRINT YOU-CANT-SEE-ANY + PRINTD MOTHBALLS + PRINTR " here. It must be some imitation mothball air mist." + + + .FUNCT ROOF-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "Your view extends to the horizon, which on tiny Phobos usually means a few hundred feet. Thrusting up into sight beyond the horizon are" + PRINT PLEASURE-PALACE-DESC + PRINTD LGOP + PRINTI ". On a wide plain between here and the palace, powerful warships are poised for the imminent invasion of Earth. + Mars dominates the view, a dull red orb spanning a quarter of the sky. Bright blue canals lace the surface, and white caps of ice are visible at both poles. + A stairway leads down into the building. Near the edge, seemingly painted onto the roof, is" + CALL APRINT,HOLE + PRINTI ". You might be able to jump to the ground, but frankly we advise against it." + RTRUE + + + .FUNCT ROOF-OBJECT-F + EQUAL? PRSA,V?DISEMBARK,V?LEAP-OFF /?THN6 + EQUAL? PRSA,V?TAKE-OFF \?ELS5 + EQUAL? P-PRSA-WORD,W?GET \?ELS5 +?THN6: SET 'PRSO,FALSE-VALUE + CALL V-LEAP + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS11 + CALL V-LOOK + RSTACK +?ELS11: EQUAL? PRSA,V?SEARCH \FALSE + PRINT NOTHING-NEW + RTRUE + + + .FUNCT I-BLUEPRINT + CALL VISIBLE?,SIDEKICK + ZERO? STACK /?ELS5 + CALL LIT?,HERE + ZERO? STACK /?ELS5 + LOC SIDEKICK + EQUAL? STACK,SECOND-SLAB,STALLION /?ELS5 + CALL QUEUED?,I-SIDEKICK-OUT-WINDOW + ZERO? STACK \?ELS5 + MOVE MATCHBOOK,PROTAGONIST + PRINTI " " + CALL DPRINT-SIDEKICK + PRINTI " trots over to you. ""I've got a plan to bring these Leather Goddess jokers to their knees,"" " + CALL HE-SHE + PRINTI " says, flipping you a " + PRINTD MATCHBOOK + PRINTI ". " + CALL COVER-FILLED-WITH-NOTES + CALL SCRAPE-UP-THESE-ITEMS + RSTACK +?ELS5: CALL QUEUE,I-BLUEPRINT,3 + RFALSE + + + .FUNCT SCRAPE-UP-THESE-ITEMS + PRINTI """If we can scrape up these items, I can whip up something that'll knock 'em cold! A " + PRINTD ANTI-LGOP-MACHINE + PRINTR "!!!""" + + + .FUNCT MATCHBOOK-F + FSET? MATCHBOOK,UNTEEDBIT /FALSE + EQUAL? PRSA,V?KILL \?ELS7 + EQUAL? P-PRSA-WORD,W?STRIKE \?ELS7 + CALL PERFORM,V?ON,MATCHBOOK + RTRUE +?ELS7: EQUAL? PRSA,V?LOOK-INSIDE,V?COUNT,V?OPEN /?THN12 + EQUAL? PRSA,V?ON \?ELS11 +?THN12: PRINTI "You briefly open the " + PRINTD MATCHBOOK + PRINTR " and see that there are no matches left." +?ELS11: EQUAL? PRSA,V?CLOSE \?ELS15 + PRINT ALREADY-IS + RTRUE +?ELS15: EQUAL? PRSA,V?READ \?ELS17 + PRINTI "Most of the scrawlings are a ""blueprint"" for a vastly complicated device. Below that is a parts list: + 1." + CALL APRINT,BLENDER + PRINTI " + 2. six feet of " + PRINTD RUBBER-HOSE + PRINTI " + 3. a " + PRINTD COTTON-BALLS + PRINTI " + 4. an " + PRINTD EIGHTY-TWO-DEGREE-ANGLE + PRINTI " + 5. a " + PRINTD HEADLIGHT + PRINTI " from any 1933 Ford + 6. a white mouse + 7. any size " + CALL DPRINT,PHOTO + PRINTI " + 8. a copy of" + CALL TPRINT,PHONE-BOOK + CRLF + RTRUE +?ELS17: EQUAL? PRSA,V?EXAMINE \FALSE + CALL COVER-FILLED-WITH-NOTES + CALL PERFORM,V?OPEN,MATCHBOOK + RTRUE + + + .FUNCT COVER-FILLED-WITH-NOTES + PRINTI "The cover of the " + PRINTD MATCHBOOK + PRINTI " is filled with scrawled notations. " + RTRUE + + + .FUNCT BOUDOIR-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + MOVE PROTAGONIST,DIVAN + CALL QUEUE,I-BOUDOIR,6 + RSTACK +?ELS5: EQUAL? RARG,M-LOOK \?ELS7 + PRINTI "There is only enough light here to make out vague shapes. " + IN? PROTAGONIST,DIVAN \?CND8 + PRINTI "You seem to be lying on a plush divan. " +?CND8: CALL NOT-ALONE-ON-DIVAN + FSET? NOSE,MUNGBIT /TRUE + PRINTI " A pleasing odor " + FSET? HERE,SMELLEDBIT \?CND14 + PRINTI "of leather " +?CND14: PRINTI "comes from close by." + RTRUE +?ELS7: EQUAL? RARG,M-SMELL \FALSE + PRINTI "Someone nearby is wearing leather. Lots of leather." + RTRUE + + + .FUNCT NOT-ALONE-ON-DIVAN + PRINTI "You hear heavy breathing from nearby" + IN? PROTAGONIST,DIVAN \?CND1 + PRINTI ", and realize that you are not alone on the couch" +?CND1: PRINTI "." + RTRUE + + + .FUNCT I-BOUDOIR,NOT-CALLED-BY-FUCK=1 + PRINTI " You hear a click, and " + IN? PROTAGONIST,HERE /?CND1 + PRINTI "leap to your feet as " +?CND1: PRINTI "the room is flooded with light! + +" + PRINTD HERE + PRINTI " + Oh, no! You have violated the sanctity of a boudoir! And not just any old boudoir, but an" + PRINT PRIVATE-BOUDOIR + PRINTI "! And not just any old" + PRINT PRIVATE-BOUDOIR + PRINTI ", but an" + PRINT PRIVATE-BOUDOIR + PRINTI " belonging to " + PRINTD LGOP + PRINTI "! + ""The escaped prisoner" + CALL VISIBLE?,SIDEKICK + ZERO? STACK /?CND4 + PRINTI "s" +?CND4: PRINTI "!"" cries one of " + PRINTD LGOP + PRINTI ". ""Sound the alarm!"" + ""Inform the guards!"" yells another. + ""Call out the army!"" + ""Alert the space fleet!"" + ""Summon my masseur,"" says the single unfrantic Goddess, calmly pulling a lever. As the floor opens up, you" + CALL AND-SIDEKICK + PRINTI " plunge down a long chute" + PRINT ELLIPSIS + CALL INCREMENT-SCORE,9,13 + CALL GOTO,PLAZA,TRUE-VALUE + CALL ULTIMATELY-IN?,SIDEKICK,BOUDOIR + ZERO? STACK /?CND7 + MOVE SIDEKICK,PLAZA +?CND7: ZERO? NOT-CALLED-BY-FUCK /TRUE + EQUAL? PRSA,V?WAIT /TRUE + CALL PLAZA-F,M-END + RTRUE + + + .FUNCT LGOP-F + EQUAL? LGOP,WINNER \?ELS5 + EQUAL? PRSA,V?KISS \?ELS10 + EQUAL? PRSO,ME \?ELS10 + SET 'WINNER,PROTAGONIST + CALL PERFORM-PRSA,LGOP + SET 'WINNER,LGOP + RTRUE +?ELS10: EQUAL? PRSA,V?TAKE,V?FUCK \?ELS14 + EQUAL? PRSO,ME \?ELS14 + SET 'WINNER,PROTAGONIST + CALL PERFORM,V?FUCK,LGOP + SET 'WINNER,LGOP + RTRUE +?ELS14: ZERO? NAUGHTY-LEVEL \?ELS18 + PRINT LEAVE-ME-ALONE + RTRUE +?ELS18: PRINTI """Shut up and kiss me, honey.""" + CRLF + CALL STOP + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS22 + PRINTI "The lighting is too dim to see more than vague shapes." + ZERO? NAUGHTY-LEVEL /?CND23 + PRINTI " But very shapely shapes!" +?CND23: CRLF + RTRUE +?ELS22: EQUAL? PRSA,V?KISS,V?FUCK,V?TOUCH \?ELS27 + ZERO? NAUGHTY-LEVEL \?ELS27 + PRINTI "You're pushed away. " + PRINT LEAVE-ME-ALONE + RTRUE +?ELS27: EQUAL? PRSA,V?EAT \?ELS31 + ZERO? NAUGHTY-LEVEL \?ELS36 + CALL V-FUCK + RSTACK +?ELS36: EQUAL? NAUGHTY-LEVEL,1 \?ELS38 + PRINT MISSIONARY-ONLY + RTRUE +?ELS38: PRINTR "As you dive between her thighs, she arches toward you, shivering with hedonistic pleasure." +?ELS31: EQUAL? PRSA,V?TOUCH \?ELS42 + PRINTI "Your arms discover a soft and eager body. You hear a purr of pleasure" + EQUAL? NAUGHTY-LEVEL,2 \?CND43 + CALL BODIES-PRESS-TOGETHER,STR?414,STR?415 +?CND43: PRINT PERIOD-CR + RTRUE +?ELS42: EQUAL? PRSA,V?KISS \?ELS47 + PRINTI "Your lips meet those of your couchmate -- full, moist lips; the lips of someone who knows how to kiss" + EQUAL? NAUGHTY-LEVEL,2 \?CND48 + PRINTI ". A tongue slides teasingly into " + PRINTD MOUTH + CALL BODIES-PRESS-TOGETHER,STR?416,STR?417 +?CND48: CALL VISIBLE?,SIDEKICK + ZERO? STACK /?CND51 + PRINT PERIOD-CR + PRINTI " You hear a ""thunk"" as " + CALL DPRINT-SIDEKICK + PRINTI ", humping enthusiastically, falls off " + CALL HIS-HER + PRINTI " couch" +?CND51: PRINT PERIOD-CR + RTRUE +?ELS47: EQUAL? PRSA,V?SMELL \?ELS55 + CALL PERFORM-PRSA,ODOR + RTRUE +?ELS55: EQUAL? PRSA,V?FUCK \FALSE + PRINTI "Your couchmate seems only too happy to oblige. You flush with passion" + EQUAL? NAUGHTY-LEVEL,2 \?CND58 + CALL BODIES-PRESS-TOGETHER,STR?418,STR?415 +?CND58: PRINTI ". Suddenly..." + CRLF + CALL DEQUEUE,I-BOUDOIR + CALL I-BOUDOIR,FALSE-VALUE + RSTACK + + + .FUNCT BODIES-PRESS-TOGETHER,VERB-STRING,NOUN-STRING + MOVE PROTAGONIST,DIVAN + PRINTI " as your two bodies draw closer together on the divan" + ZERO? MALE \FALSE + ZERO? DISCOVERED \FALSE + SET 'DISCOVERED,TRUE-VALUE + PRINTI ". You discover, much to your surprise, that you are " + PRINT VERB-STRING + PRINTI " a woman. Even more surprising, your misgivings are swept away by the heady pleasure of the soft, full " + PRINT NOUN-STRING + PRINTI " pressing against your own" + RTRUE + + + .FUNCT PLAZA-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "This is a wide plaza between" + PRINT PLEASURE-PALACE-DESC + PRINTD LGOP + PRINTI ". It is a lovely, bucolic area of gushing fountains, curving flower beds, and lawns of thick, green grass. Birds fly amongst the trees, singing peacefully, as baby squirrels hop across the lawn, lazily collecting nuts." + RTRUE +?ELS5: EQUAL? RARG,M-SMELL \?ELS7 + PRINTI "Through the smoke of battle, you see a banana peel squirt from" + CALL TPRINT,ANTI-LGOP-MACHINE + PRINTI "." + RTRUE +?ELS7: EQUAL? RARG,M-END \FALSE + INC 'PLAZA-COUNTER + PRINTI " " + EQUAL? PLAZA-COUNTER,1 \?ELS12 + PRINTI "A half-megaton grenade explodes nearby as the palace guards attempt to repel " + IN? SIDEKICK,HERE \?ELS15 + PRINTI "some" + JUMP ?CND13 +?ELS15: PRINTI "an" +?CND13: PRINTI " unwanted intruder" + IN? SIDEKICK,HERE \?CND18 + PRINTI "s" +?CND18: PRINTI " (namely: you" + CALL AND-SIDEKICK + PRINTI ")." + CRLF + JUMP ?CND10 +?ELS12: EQUAL? PLAZA-COUNTER,2 \?ELS22 + PRINTI "The guards now have reinforcements: a row of imposing radium-powered tanks are rolling towards you." + CRLF + JUMP ?CND10 +?ELS22: EQUAL? PLAZA-COUNTER,3 \?ELS24 + PRINTI "Giant berserk robotoid sumo wrestlers, each madly waving about three dozen samurai swords, are now storming across the plaza at you." + CRLF + JUMP ?CND10 +?ELS24: EQUAL? PLAZA-COUNTER,4 \?ELS26 + PRINTI "With a swooping roar, the" + PRINT ATTACK-FLEET + PRINTI " of " + PRINTD LGOP + PRINTI " joins the attack. Several nearby trees are suddenly vaporized." + CRLF + JUMP ?CND10 +?ELS26: EQUAL? PLAZA-COUNTER,5 \?ELS28 + PRINTI "The palace guards are setting up a massive dematerialization ray. Closer by, a sumo-robot discovers a boulder in its path, and a large quantity of gravel is created." + CRLF + JUMP ?CND10 +?ELS28: EQUAL? PLAZA-COUNTER,6 \?ELS30 + PRINTI "A Phobosian Chomper is faster than a cheetah, meaner than a Tyrannosaurus Rex, bigger than a sperm whale, and as hungry as the state of Texas. We mention this because fifty of them just entered the plaza and spotted you." + CRLF + JUMP ?CND10 +?ELS30: EQUAL? PLAZA-COUNTER,7 \?ELS32 + PRINTI "Several fifty-foot craters appear as the" + PRINT ATTACK-FLEET + PRINTI " begins lobbing ion bombs. As they veer around for a more precise attack, the tanks close in, and you realize that each one is larger than the Upper Sandusky City Hall." + CRLF + JUMP ?CND10 +?ELS32: EQUAL? PLAZA-COUNTER,8 \?ELS34 + PRINTI "A couple of buildings behind you silently vanish, indicating that the palace guards are better at assembling a death ray than at aiming it. However, in sixty centuries of repelling intruders, they've never missed twice. Meanwhile, one of the Chompers has stopped to swallow a herd of goats that was grazing nearby, thus slowing it down for a full tenth of a second." + CRLF + JUMP ?CND10 +?ELS34: EQUAL? PLAZA-COUNTER,9 \?ELS36 + PRINTI "The guards have finished aiming the death ray, and have begun the activation sequence. The ground quakes as the berserko robotoids plow through the rubble toward you; the wind from their whirling swords knocks over a few trees. The tanks loom above you, their gun turrets blocking out the sun. Beyond them, the" + PRINT ATTACK-FLEET + PRINTI " is sweeping in for a final attack." + CRLF + JUMP ?CND10 +?ELS36: EQUAL? PLAZA-COUNTER,10 \?CND10 + CALL JIGS-UP,STR?420 +?CND10: CALL VISIBLE?,SIDEKICK + ZERO? STACK /TRUE + PRINTI " " + CALL DPRINT-SIDEKICK + EQUAL? PLAZA-COUNTER,1 \?ELS44 + MOVE ANTI-LGOP-MACHINE,HERE + PRINTI " shouts, ""Okay, this is it!" + FIRST? SIDEKICK \?ELS47 + CALL ROB,SIDEKICK,PROTAGONIST + PRINTI """ " + CALL HE-SHE,TRUE-VALUE + PRINTI " hands you everything " + CALL HE-SHE + PRINTI "'s carrying. """ + JUMP ?CND45 +?ELS47: PRINTI " " +?CND45: PRINTI "Gotta start building that " + PRINTD ANTI-LGOP-MACHINE + PRINTI "! " + JUMP ?CND42 +?ELS44: PRINTI ", hammering and twiddling madly at the growing machine, yells, """ + ZERO? RIGHT-PART /?ELS54 + PRINTI "Okay, things are going " + SUB PLAZA-COUNTER,2 + GET HYPE-WORD,STACK + PRINT STACK + PRINTI "! " + JUMP ?CND52 +?ELS54: SUB PLAZA-COUNTER,2 + GET PARTS-LIST,STACK >MISSING-PART + PRINTI "Well, I'll try and work around the missing " + EQUAL? MISSING-PART,PHOTO \?ELS60 + GETP PHOTO,P?SDESC + PRINT STACK + JUMP ?CND58 +?ELS60: PRINTD MISSING-PART +?CND58: PRINTI ". " +?CND52: EQUAL? PLAZA-COUNTER,9 \?CND42 + PRINTI "There! I think it's all done. Cross your fingers, kiddo!"" " + CALL HE-SHE,TRUE-VALUE + PRINTI " switches on the device. Amidst showers of sparks, a powerful electric arc bridges two electrodes. The machine shudders, and " + ZERO? MISSING-PART /?ELS68 + PRINTI "awe-inspiring rays of raw plasma begin shooting in every direction. You and " + CALL DPRINT-SIDEKICK + PRINTI " dive to the ground. Crashing spaceships collide with careening robotoid monsters; the tanks, inches before pancaking you, become pools of molten metal. A stray plasma ray strikes the only remaining tree in the plaza, and you are fatally wounded as a coconut drops onto " + PRINTD HEAD + PRINTI ". The last sound you hear is " + CALL DPRINT-SIDEKICK + PRINTI "'s voice, saying," + CALL EXPLETIVE + PRINTI "I was going to use that " + EQUAL? MISSING-PART,PHOTO \?ELS72 + GETP PHOTO,P?SDESC + PRINT STACK + JUMP ?CND70 +?ELS72: PRINTD MISSING-PART +?CND70: PRINTI " to build a coconut deflector.""" + CRLF + JUMP ?CND66 +?ELS68: PRINTI "you " + FSET? NOSE,MUNGBIT \?ELS79 + PRINTI "see" + JUMP ?CND77 +?ELS79: PRINTI "smell" +?CND77: PRINTI " something yellow shoot from the machine." + FSET? NOSE,MUNGBIT \?ELS84 + PRINTI " It's a banana peel!" + CRLF + JUMP ?CND82 +?ELS84: CRLF + CALL PERFORM,V?SMELL,ODOR +?CND82: PRINTI " The peel lands a few feet away, as the " + PRINTD ANTI-LGOP-MACHINE + PRINTI " gives one final shudder and self-destructs in an orgy of flames and shrapnel! + The attacking forces continue to close, and certain death is only seconds away when one of the Chompers, loping toward you at nearly Mach One, steps on the banana peel, and slips a few inches to one side before righting itself. This is enough, however, to nudge a tank into a crater, tripping one of the samurai robots! + More and more of the attacking forces plow into the mess in the crater, like some improbably fantastical football tackle. A stray grenade lands right in its midst, and the resulting plume of debris shears the fins off the leading warship. Your heart leaps as the entire" + PRINT ATTACK-FLEET + PRINTI " of " + PRINTD LGOP + PRINTI " plummets toward the ground. The mass of flaming metal strikes the ground, and a tremendous explosion knocks you senseless! + + Eventually, daylight intrudes upon your senselessness and illuminates a sleepy-looking gas station. You are lying at the edge of a dusty road, once again wearing your comfortable old overalls. Though dirty, dishevelled, and bleeding from a few superficial cuts, you are nevertheless aglow in the knowledge that Earth is safe from the threat of " + PRINTD LGOP + PRINTI ". + As " + PRINTD HEAD + PRINTI " clears, three uniformed " + ZERO? MALE /?ELS89 + PRINTI "girls come bounc" + JUMP ?CND87 +?ELS89: PRINTI "guys come pound" +?CND87: PRINTI "ing out of the service station toward you. ""Oh, my goodness,"" they " + ZERO? MALE /?ELS95 + PRINTI "coo" + JUMP ?CND93 +?ELS95: PRINTI "call out" +?CND93: PRINTI ", in perfect unison. ""Are you all right?"" + + Coming soon from Infocom: GAS PUMP GIRLS MEET THE PULSATING INCONVENIENCE FROM PLANET X." + CRLF + SET 'RANK,9 + SET 'EXT-MAX,INT-MAX +?CND66: CALL FINISH +?CND42: PRINTI "Hand me a" + CALL PRINT-PART + PRINTI ".""" + CRLF + SET 'RIGHT-PART,FALSE-VALUE + CALL THIS-IS-IT,SIDEKICK + RSTACK + + + .FUNCT PRINT-PART,NEXT-PART + SUB PLAZA-COUNTER,1 + GET PARTS-LIST,STACK >NEXT-PART + CALL THIS-IS-IT,NEXT-PART + EQUAL? NEXT-PART,EIGHTY-TWO-DEGREE-ANGLE \?ELS3 + PRINTI "n " + JUMP ?CND1 +?ELS3: PRINTI " " +?CND1: EQUAL? NEXT-PART,PHOTO \?ELS10 + GETP PHOTO,P?SDESC + PRINT STACK + RTRUE +?ELS10: PRINTD NEXT-PART + RTRUE + + + .FUNCT GENERIC-MACHINE-F,NUM + CALL CANAL-LOC >NUM + EQUAL? HERE,CANAL \?ELS5 + GRTR? NUM,31 /?THN8 + LESS? NUM,13 \?ELS5 +?THN8: RETURN ODD-MACHINE +?ELS5: EQUAL? PRSA,V?ASK-ABOUT \?ELS11 + CALL VISIBLE?,ODD-MACHINE + ZERO? STACK /?ELS16 + RETURN ODD-MACHINE +?ELS16: RETURN ANTI-LGOP-MACHINE +?ELS11: EQUAL? SIDEKICK,WINNER \FALSE + CALL QUEUED?,I-BLUEPRINT + ZERO? STACK \FALSE + RETURN ANTI-LGOP-MACHINE + + .ENDI diff --git a/phobos.zil b/phobos.zil new file mode 100644 index 0000000..140edc2 --- /dev/null +++ b/phobos.zil @@ -0,0 +1,1434 @@ +"PHOBOS for + LEATHER GODDESSES OF PHOBOS + (c) Copyright 1986 Infocom, Inc. All Rights Reserved." + +;"NOTE: my calculations indicate that the surface gravity of Phobos is +approximately .175 cm/sec/sec, or about 1/5000th the surface gravity of Earth." + + + + + + > + + ) + ( + ) + (T + )>) + ( + ) + ( + ) + (T + )>) + ( + + > + + ) + (T + )>) + ( + ) + ( + ) + (T + )>) + ( + >> + ) + ( + + + > + ) + (T + )>) + ( + ) + ( + ) + (T + )> + ) + ( + > + + ) + (T + + )>) + (> + > + + )>> + + + + + + + ) + ( + ) + (T + )> + + )> + ) + ( + > + + + ) + ( + + > + + + + ) + ( + )> + )>> + +) + (T + )> + > + +> + +> + + + + + ) + ( + ) + ( + + >> + ) + ( + ) + ( + ) + ( + > + + ) + ( + > + + + ) + ( + + + + )>) + ( + + > + ) + ( + > + + ) + ( + + >> + )>> + + + + + >> + + + )>> + + + + + > + )>> + + + +> + +> + + + + + + + ) + ( + > + + )> + + + ) + (T + )> + + ) + (T + )> + ) + ( + ) + ( + + + ;"It tastes just like...") + ( + >> + + + + + )>> + +> + + >> + > + ) + (T + > + )>> + + + + + + + >> + + + + )> + + + )> + + + ) + ( + + + )>> + + + + + > + )>> + + + +)) + + )> + + + ) + ( + + + ) + ( + > + + ) + ( + > + + >> + ) + ( + ) + ( + >> + ) + ( + ) + (T + + + )>) + ( + ) + ( + > + ) + ( + ) + ( + + > + ) + ( + ) + (T + )>) + ( + > + ) + ( + + ,TREE-HOLE ,CLOSET>> + + + + ) + ( + + > + + + + ) + ( + > + + + + ) + ( + ) + ( + > + ) + (T + + + + )>) + ( + ) + ( + ) + ( + + > + + ) + (T + )> + )> + + + + ) + (T + )>) + ( + > + + + ) + (T + )>) + ( + + + ) + ( + ) + ( + + )>) + ( + + ) + ( + > + + ) + ( + + + >> + + + + + ) + (T + + )> + ) + (T + )>) + ( + > + + + )> + + + )> + + + + ) + (T + + + + )> + )>) + ( + > + >> + >> + + + + + ) + (T + + + )> + ) + ( + + >> + + ) + ( + + > + ) + ( + + ) + ( + >> + )>)>> + + + ) + ( + ) + ( + ) + ( + > + ) + (T + + + + + )>> + + ,W?BODY> + ,W?BODY>> + ;"confusion is between 2 bodies in Lab" + ) + (T + )>> + + ;"1 = blown up, 2 = reconstituted" + +> + +> + +> + + + + > + + + +> + + HOLE CRAMPED-SPACE-HOLE-F)>)> + + + > + ) + ( + + ) + (T + )>)>> + + + + + + + )> + + + + + > + + + ) + ( + )>> + + + + + + + + + )>> + + + +> + +)) + + ) + (T + )> + + > + )> + + + ) + (T + + + ) + (T + )> + )>> + + + + ) + (T + )> + + ) + (T + + + )>> + + + > + +> + + LIGHT UNIMPORTANT-THING-F)>)> + +)> + + + )>> + +)> + + + + > + + + )> + )> + ) + ( + )>> + + + ,OBSERVATION-ROOM> + + + + ) + ( + )>) + ( + + ) + (T + )>) + ( + ) + ( + > + + ) + ( + ) + ( + + ) + (T + )>)>> + + + + + + >> + )>> + + + + + ) + ( + ) + ( + ) + ( + ) + ( ;"for PUT BASKET IN FRONT OF DOOR" + > + + ) + ( + )>> + + + + + 11>> + + )>> + + + + + )>> + + ROOF ROOF-OBJECT-F)>)> + + + )>> + +;"NOTE: The above description of Mars spanning nearly a quarter of the Phobos' +sky is based on the following calculation: The radius of Mars is 3400km, and +the distance between Mars and Phobos is 9380km. These two dimensions form an +angle at the point of a viewer on Phobos between the center of Mars and one +edge of Mars. The tangent of this angle is 3400 divided by 9380 (.3625), so +the angle is approximately 20 degrees. The full width of Mars, edge to edge, +would be twice this, or 40 degrees. One quarter of the sky is 45 degrees." + + + + >> + > + ) + ( + ) + ( + )>> + +;"end game" + + + ,SECOND-SLAB ,STALLION>> + >> + + + + + + ) + (T + + )>> + +> + +> + + + + + ) + ( + > + + ) + ( + ) + ( + ) + ( + ) + ( + + + )>> + +> + + + + + + ) + ( + + + )> + + > + + + )> + )> + ) + ( + )>> + + + + )> + > + + + + + > + )> + + + )> + + + + + + + )> + > ;"WAIT calls CLOCKER, not MAIN-LOOP"> + )> + > + + + + + + > + + + + ) + ( + > + + + + ) + ( + ) + (T + + )>) + ( + + > + )> + ) + ( + > + ) + ( + + ) + ( + ) + (T + )>) + ( + + + )> + ) + ( + + + + )> + + + + )> + ) + ( + + ) + ( + + + )> + + + >)>> + + + + + > + + )>> + +> + + LAWN LAWN-OBJECT-F) + (<> BIRD UNIMPORTANT-THING-F) + (<> BIRDS UNIMPORTANT-THING-F) + (<> FLOWER UNIMPORTANT-THING-F) + (<> FOUNTAIN UNIMPORTANT-THING-F)>)> + + + ) + ( + ) + ( + > + + + + + ) + (T + )> + + + )> + + + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( ;"if SIDEKICK isn't present" + )> + > + )> + + + + + + + + + + + ) + (T + )> + ) + (T + + > "! ">) + (T + >> + + + >) + (T + )> + )> + + + + + + + + + >) + (T + )> + ) + (T + + + ) + (T + )> + + + ) + (T + + )> + + ) + (T + )> + + ) + (T + )> + + + )> + )>)> + + + + > + )>> + +>> + + + ) + (T + )> + + >) + (T + )>> + + + +> + +> + +> + + + +> + + + >> + ) + ( + + ) + (T + )>) + ( + >> + ;"example: TRENT, MAKE A MACHINE") + (T + )>> \ No newline at end of file diff --git a/spaceship.zap b/spaceship.zap new file mode 100644 index 0000000..4095d71 --- /dev/null +++ b/spaceship.zap @@ -0,0 +1,1001 @@ + + + .FUNCT HOLD-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + FSET? HERE,TOUCHBIT /?ELS5 + CALL QUEUE,I-PASSENGER-SHIP-DEPARTS,12 + RSTACK +?ELS5: EQUAL? RARG,M-LOOK \?ELS9 + PRINTI "You are in the cargo hold of a giant spaceship. " + EQUAL? SIDEKICK-EXPLODED,1 \?CND10 + CALL SPLATTERED-DESC + PRINTI " " +?CND10: PRINTI "A tiny viewport is set into the curving steel hull, and arched passageways lead in directions that we will arbitrarily call south and southwest." + RTRUE +?ELS9: EQUAL? RARG,M-END \FALSE + ZERO? SIDEKICK-EXPLODED \FALSE + PRINTI " A radium-powered grenade clatters against the deck! You glimpse a shadowy figure, dressed in black, slipping away. " + IN? SIDEKICK,HERE \?ELS21 + SET 'FOLLOW-FLAG,12 + CALL QUEUE,I-FOLLOW,2 + SET 'SIDEKICK-EXPLODED,1 + REMOVE SIDEKICK + MOVE SPLATTERED-SIDEKICK,HERE + CALL DPRINT-SIDEKICK + PRINTI " yells to hit the deck, and hurls " + CALL HIM-HER + PRINTI "self onto the grenade! + A sickening explosion splatters " + CALL DPRINT-SIDEKICK + PRINTI " all around the room! As you struggle to control your shock and nausea" + CALL MEMORIAM + RSTACK +?ELS21: CALL JIGS-UP,STR?384 + RSTACK + + + .FUNCT SPLATTERED-DESC + PRINTI "Little " + CALL DPRINT,SPLATTERED-SIDEKICK + PRINTI " cover all the walls, the floor, and the ceiling." + RTRUE + + + .FUNCT SPLATTERED-SIDEKICK-F + EQUAL? PRSA,V?TASTE,V?LICK,V?EAT \FALSE + PRINT YECHH + RTRUE + + + .FUNCT STABLE-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This must be the flagship for " + PRINTD LGOP + PRINT ATTACK-FLEET + PRINTI ", since this stable contains " + PRINTD LGOP + PRINT ATTACK-FLEET + PRINTI " Cavalry Mounts. " + FSET? STALLION,NDESCBIT \?CND6 + PRINTI "The most striking horse is a magnificent white stallion. " +?CND6: PRINTI "There are exits to the ""north"" and ""west.""" + RTRUE + + + .FUNCT HOLD-ENTER-F + IN? PROTAGONIST,STALLION /?THN6 + FSET? STALLION,MUNGBIT \?ELS5 +?THN6: PRINT HORSE-CANT-FIT + RFALSE +?ELS5: RETURN HOLD + + + .FUNCT STALLION-F + EQUAL? STALLION,WINNER \?ELS5 + EQUAL? PRSA,V?WALK \?ELS10 + IN? PROTAGONIST,STALLION \?ELS10 + SET 'WINNER,PROTAGONIST + CALL DO-WALK,PRSO + SET 'WINNER,STALLION + RETURN WINNER +?ELS10: EQUAL? PRSA,V?GIDDYAP \?ELS14 + SET 'WINNER,PROTAGONIST + CALL PERFORM,V?KICK,STALLION + SET 'WINNER,STALLION + RTRUE +?ELS14: PRINTR """Neighhh!!!""" +?ELS5: EQUAL? PRSA,V?DISEMBARK \?ELS18 + IN? PROTAGONIST,STALLION \?ELS18 + MOVE PROTAGONIST,HERE + PRINTI "You" + CALL AND-SIDEKICK,HERE + PRINTR " dismount." +?ELS18: EQUAL? PRSA,V?BOARD \?ELS22 + FCLEAR STALLION,NDESCBIT + RFALSE +?ELS22: EQUAL? PRSA,V?PUSH-DIR \?ELS24 + EQUAL? PRSI,INTDIR \?ELS24 + FSET STALLION,MUNGBIT + CALL DO-WALK,P-DIRECTION + FCLEAR STALLION,MUNGBIT + FCLEAR STALLION,NDESCBIT + MOVE STALLION,HERE + RTRUE +?ELS24: EQUAL? PRSA,V?BOARD-DIR \?ELS28 + EQUAL? P-PRSA-WORD,W?RIDE \?ELS28 + EQUAL? PRSI,INTDIR \?ELS28 + CALL PERFORM,V?BOARD,INTDIR + RTRUE +?ELS28: EQUAL? PRSA,V?EXAMINE \?ELS32 + PRINTR "The stallion is a magnificent white stud." +?ELS32: EQUAL? PRSA,V?FUCK \?ELS34 + ZERO? NAUGHTY-LEVEL \?ELS39 + CALL PERFORM-PRSA,MALE-GORILLA + RTRUE +?ELS39: PRINTR "You and Catherine the Great." +?ELS34: EQUAL? PRSA,V?KICK \FALSE + PRINTR "The horse gallops around in a circle." + + + .FUNCT LONG-CORRIDOR-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "You are partway along an ""east-west"" hall of mind-numbing length. Rings of light pulsate along the corridor in rhythm with the ship's throbbing engines" + EQUAL? LONG-CORRIDOR-LOC,3 \?ELS8 + PRINTI ". A tiny alcove contains" + CALL APRINT,HOLE + JUMP ?CND6 +?ELS8: EQUAL? LONG-CORRIDOR-LOC,1 \?CND6 + PRINTI ". Openings lead ""east"" and ""northeast""" +?CND6: PRINTI "." + RTRUE +?ELS5: EQUAL? RARG,M-END \FALSE + IN? STALLION,HERE \FALSE + PRINTI " The stallion whinnies then gallops " + EQUAL? LONG-CORRIDOR-LOC,1 \?ELS17 + MOVE STALLION,STABLE + PRINTI "ea" + JUMP ?CND15 +?ELS17: MOVE STALLION,AT-MAIN-HATCH + PRINTI "we" +?CND15: PRINTR "st." + + + .FUNCT LONG-CORRIDOR-EXIT-F + EQUAL? LONG-CORRIDOR-LOC,1 \?ELS5 + IN? PROTAGONIST,STALLION /?THN11 + FSET? STALLION,MUNGBIT \?ELS10 +?THN11: PRINT HORSE-CANT-FIT + RFALSE +?ELS10: RETURN HOLD +?ELS5: PRINT CANT-GO + RFALSE + + + .FUNCT LONG-CORRIDOR-MOVEMENT-F + IN? PROTAGONIST,STALLION \?ELS3 + CALL LONG-CORRIDOR-ENTER-F,TRUE-VALUE + RSTACK +?ELS3: EQUAL? PRSO,P?EAST \?ELS5 + EQUAL? LONG-CORRIDOR-LOC,1 \?ELS8 + RETURN STABLE +?ELS8: DEC 'LONG-CORRIDOR-LOC + JUMP ?CND1 +?ELS5: EQUAL? LONG-CORRIDOR-LOC,10 \?ELS12 + RETURN AT-MAIN-HATCH +?ELS12: INC 'LONG-CORRIDOR-LOC +?CND1: CALL DESCRIBE-ROOM + IN? SIDEKICK,HERE \?CND15 + CALL SIDEKICK-FOLLOWS-YOU + RETURN ROOMS +?CND15: RETURN ROOMS + + + .FUNCT AT-MAIN-HATCH-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + FSET PRIVATE-CABIN-DOOR,LOCKEDBIT + RTRUE +?ELS5: EQUAL? RARG,M-LOOK \?ELS7 + PRINTI "To the ""north,"" the main hatch of the flagship is " + CALL OPEN-CLOSED,HATCH + PRINTI ". A long corridor leads ""east.""" + RTRUE +?ELS7: EQUAL? RARG,M-END \?ELS9 + CALL ULTIMATELY-IN?,THORBAST-SWORD + ZERO? STACK \?THN12 + EQUAL? SPACESHIP-SCENE-STATUS,3 \?ELS9 +?THN12: EQUAL? SPACESHIP-SCENE-STATUS,1 /?ELS9 + CALL I-PASSENGER-SHIP-DEPARTS + RSTACK +?ELS9: EQUAL? RARG,M-END \FALSE + FSET? SPACE-YACHT,TOUCHBIT \FALSE + EQUAL? SIDEKICK-EXPLODED,1 \FALSE + SET 'SIDEKICK-EXPLODED,2 + MOVE SIDEKICK,HERE + REMOVE SPLATTERED-SIDEKICK + PRINTI " You hear panting as " + CALL DPRINT-SIDEKICK + PRINTR " dashes up behind you, somewhat out of breath. ""Good, you're still here! Thank God that time traveller who wandered by the hold had a matter reconstituter!""" + + + .FUNCT LONG-CORRIDOR-ENTER-F,ON-HORSE-IN-LONG-CORRIDOR=0 + IN? PROTAGONIST,STALLION \?ELS5 + PRINTI "Kicking your proud mount forcefully in the flank, you gallop down a long corridor pulsing with light. Above the echoes of the hoofbeats, you can hear, almost feel, the throbbing of mighty engines. After a minute of wild riding" + PRINT ELLIPSIS + ZERO? ON-HORSE-IN-LONG-CORRIDOR /?CND6 + EQUAL? PRSO,P?EAST \?ELS12 + SET 'HERE,AT-MAIN-HATCH + JUMP ?CND6 +?ELS12: SET 'HERE,STABLE +?CND6: EQUAL? HERE,AT-MAIN-HATCH \?ELS17 + SET 'LONG-CORRIDOR-LOC,1 + MOVE STALLION,STABLE + RETURN STALLION +?ELS17: SET 'LONG-CORRIDOR-LOC,10 + MOVE STALLION,AT-MAIN-HATCH + RETURN STALLION +?ELS5: RETURN LONG-CORRIDOR + + + .FUNCT HATCH-ENTER-F + FSET? HATCH,OPENBIT /?ELS5 + CALL DO-FIRST,STR?66,HATCH + CALL THIS-IS-IT,HATCH + RFALSE +?ELS5: IN? PROTAGONIST,STALLION /?THN8 + FSET? STALLION,MUNGBIT \?ELS7 +?THN8: PRINT HORSE-CANT-FIT + RFALSE +?ELS7: RETURN IN-SPACE + + + .FUNCT WHITE-SUIT-F + EQUAL? PRSA,V?TAKE-OFF \?ELS5 + EQUAL? HERE,IN-SPACE \?ELS5 + CALL QUEUE,I-CHILL,-1 + RFALSE +?ELS5: EQUAL? PRSA,V?PUT-ON \FALSE + FSET? PRSI,ACTORBIT \FALSE + CALL WASTES + RSTACK + + + .FUNCT SPACE-YACHT-ENTER-F + IN? THORBAST,HERE \?ELS5 + CALL DO-FIRST,STR?390 + RFALSE +?ELS5: EQUAL? SPACESHIP-SCENE-STATUS,1 \?ELS7 + PRINT CANT-GO + RFALSE +?ELS7: RETURN SPACE-YACHT + + + .FUNCT IN-SPACE-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + CALL DEQUEUE,I-PASSENGER-SHIP-DEPARTS + SET 'CHILL-COUNTER,0 + CALL QUEUE,I-CHILL,-1 + CALL THIS-IS-IT,YOUNG-WOMAN + CALL THIS-IS-IT,BEM + CALL THIS-IS-IT,THORBAST + ZERO? SPACESHIP-SCENE-STATUS \FALSE + REMOVE BEM + REMOVE YOUNG-WOMAN + REMOVE THORBAST + SET 'THORBAST-ATTACKED,FALSE-VALUE + SET 'FIGHT-COUNTER,0 + SET 'DISARM-PROB,0 + SET 'FREE-MOVE-COUNTER,0 + FSET SWORD,NARTICLEBIT + FCLEAR IN-SPACE,MUNGBIT + PUTP SWORD,P?SDESC,STR?391 + CALL QUEUE,I-FIGHT,-1 + SET 'BEM-COUNTER,0 + CALL QUEUE,I-BEM,-1 + RSTACK +?ELS5: EQUAL? RARG,M-LOOK \?ELS12 + PRINTI "You are floating in outer space near a " + PRINTD BATTLESHIP + PRINTI " (to the ""south"")" + EQUAL? SPACESHIP-SCENE-STATUS,1 /?CND13 + PRINTI " and" + CALL APRINT,PASSENGER-SHIP + PRINTI " (to the ""north"")" +?CND13: PRINTI ". " + PRINT BATTLESHIP-DESC + PRINTI " Saturn looms above (below?) you, her rings sparkling in the sunlight." + RTRUE +?ELS12: EQUAL? RARG,M-SMELL \FALSE + PRINTI "The rumors that " + CALL DPRINT,THORBAST + PRINTI " enjoys munching on hunks of raw garlic seem to be true. Let's hope " + CALL HE-SHE + PRINTI " doesn't talk anymore." + RTRUE + + + .FUNCT BATTLESHIP-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINT BATTLESHIP-DESC + CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?WALK-TO,V?BOARD,V?ENTER \?ELS7 + EQUAL? HERE,IN-SPACE \?ELS12 + CALL DO-WALK,P?SOUTH + RSTACK +?ELS12: CALL GLOBAL-IN?,BATTLESHIP,HERE + ZERO? STACK /FALSE + PRINT LOOK-AROUND + RTRUE +?ELS7: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \FALSE + EQUAL? HERE,AT-MAIN-HATCH \?ELS21 + CALL DO-WALK,P?NORTH + RSTACK +?ELS21: EQUAL? HERE,IN-SPACE \?ELS23 + PRINT LOOK-AROUND + RTRUE +?ELS23: PRINT CANT-FROM-HERE + RTRUE + + + .FUNCT PASSENGER-SHIP-F + EQUAL? SPACESHIP-SCENE-STATUS,1 \?ELS5 + CALL CANT-SEE,PASSENGER-SHIP + RSTACK +?ELS5: EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS7 + EQUAL? HERE,IN-SPACE \?ELS12 + CALL DO-WALK,P?NORTH + RSTACK +?ELS12: EQUAL? HERE,SPACE-YACHT \?ELS14 + PRINT LOOK-AROUND + RTRUE +?ELS14: PRINT CANT-FROM-HERE + RTRUE +?ELS7: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS18 + EQUAL? HERE,SPACE-YACHT \?ELS23 + CALL DO-WALK,P?SOUTH + RSTACK +?ELS23: PRINT LOOK-AROUND + RTRUE +?ELS18: EQUAL? PRSA,V?SEARCH \FALSE + PRINT NOTHING-NEW + RTRUE + + + .FUNCT GENERIC-SHIP-F + EQUAL? SPACESHIP-SCENE-STATUS,1 \FALSE + RETURN BATTLESHIP + + + .FUNCT I-CHILL + INC 'CHILL-COUNTER + EQUAL? HERE,IN-SPACE \?THN4 + FSET? WHITE-SUIT,WORNBIT \?CND1 +?THN4: SET 'CHILL-COUNTER,0 + CALL DEQUEUE,I-CHILL + RFALSE +?CND1: PRINTI " " + EQUAL? CHILL-COUNTER,1 \?ELS10 + PRINTR "It sure gets chilly this far from the sun!" +?ELS10: EQUAL? CHILL-COUNTER,2,3 \?ELS12 + PRINTR "You're becoming frigid." +?ELS12: CALL JIGS-UP,STR?392 + RSTACK + + + .FUNCT I-BEM + INC 'BEM-COUNTER + EQUAL? HERE,IN-SPACE /?ELS3 + EQUAL? BEM-COUNTER,12 \FALSE + SET 'SPACESHIP-SCENE-STATUS,3 + CALL DEQUEUE,I-BEM + REMOVE BEM + REMOVE YOUNG-WOMAN + RFALSE +?ELS3: EQUAL? BEM-COUNTER,1 /FALSE +?CND1: PRINTI " " + EQUAL? BEM-COUNTER,2 \?ELS13 + MOVE BEM,HERE + PRINTI "A " + PRINTD BEM + PRINTI ", sort of a cross between a space squid and a humanoid tree, swims into view. Its hideous ""bark"" is covered with squirmy little suckers, and its branches wave about like tentacles. It takes one look around and heads straight towards the defenseless " + CALL DPRINT,YOUNG-WOMAN + PRINT PERIOD-CR + RTRUE +?ELS13: EQUAL? BEM-COUNTER,3 \?ELS15 + PRINTI "The alien monstrosity reaches the " + CALL DPRINT,YOUNG-WOMAN + PRINTI ", and its tentacles begin undulating toward " + CALL HER-HIS + PRINTR " clothing." +?ELS15: EQUAL? BEM-COUNTER,12 \?ELS17 + SET 'FOLLOW-FLAG,4 + CALL QUEUE,I-FOLLOW,2 + REMOVE BEM + REMOVE YOUNG-WOMAN + CALL DEQUEUE,I-BEM + SET 'SPACESHIP-SCENE-STATUS,3 + PRINTI "The tree-squid finishes disrobing and untying the frenzied " + CALL DPRINT,YOUNG-WOMAN + PRINTI ". Wrapping a suckered tentacle around " + CALL HER-HIS + PRINTR " midsection, it swims away. You hear a shriek from the void, which slowly fades." +?ELS17: PRINTI "The monster " + CALL BEGIN-CONTINUE + PRINTI "undress the poor " + CALL DPRINT,YOUNG-WOMAN + PRINTI ", who " + CALL BEGIN-CONTINUE + PRINTR "shriek in terror." + + + .FUNCT BEGIN-CONTINUE + EQUAL? BEM-COUNTER,4 \?ELS3 + PRINTI "begin" + JUMP ?CND1 +?ELS3: PRINTI "continue" +?CND1: PRINTI "s to " + RTRUE + + + .FUNCT I-FIGHT + INC 'FIGHT-COUNTER + EQUAL? HERE,IN-SPACE /?ELS3 + CALL QUEUE,I-PASSENGER-SHIP-DEPARTS,6 + CALL DEQUEUE,I-FIGHT + RFALSE +?ELS3: FSET? THORBAST,MUNGBIT \?CND1 + CALL DEQUEUE,I-FIGHT + RFALSE +?CND1: PRINTI " " + EQUAL? FIGHT-COUNTER,1 \?ELS8 + MOVE THORBAST,HERE + MOVE YOUNG-WOMAN,HERE + PRINTI "A figure in black, doubtless the same person who tossed the grenade into the hold, is near the smaller ship. Given " + CALL HIS-HER + PRINTI " mean expression and characteristic black outfit, it must be " + CALL DPRINT,THORBAST + PRINTI ", the Chief Assassin for " + PRINTD LGOP + PRINTI ". + " + CALL DPRINT,THORBAST + PRINTI " is struggling with a " + CALL DPRINT,YOUNG-WOMAN + PRINTI " of wealthy garb and demeanor. Noticing you, " + CALL HE-SHE + PRINTI " straps the " + ZERO? MALE /?CND9 + PRINTI "wo" +?CND9: PRINTI "man to the hull of" + CALL TPRINT,PASSENGER-SHIP + PRINTI " and jumps toward you, stopping just a few feet away. + With a chillingly evil grin, " + CALL HE-SHE + PRINTI " draws a long, pointed sword." + FSET? THORBAST,TOUCHBIT /?CND13 + FSET THORBAST,TOUCHBIT + PRINTI " ""Ah, the escaped prisoner. Disposing of you will be a small but enjoyable feather in my cap.""" + FSET? NOSE,MUNGBIT /?CND13 + PRINTI " As " + CALL HE-SHE + PRINTI " speaks, a foul odor wafts toward you." +?CND13: CRLF + JUMP ?CND6 +?ELS8: IN? THORBAST-SWORD,THORBAST /?ELS20 + DEC 'FIGHT-COUNTER + CALL DPRINT,THORBAST + PRINTI " eyes you warily." + CRLF + JUMP ?CND6 +?ELS20: GRTR? FIGHT-COUNTER,1 \?ELS22 + ZERO? THORBAST-ATTACKED \?ELS22 + CALL DPRINT,THORBAST + PRINTI " takes advantage of your inactivity and " + EQUAL? FREE-MOVE-COUNTER,2 \?ELS27 + CALL SHISHKABOB + JUMP ?CND6 +?ELS27: INC 'FREE-MOVE-COUNTER + PRINTI "launches a fierce attack. You dodge, avoiding the blade more by luck than by skill." + CRLF + JUMP ?CND6 +?ELS22: RANDOM 100 + LESS? DISARM-PROB,STACK /?ELS31 + SET 'DISARM-PROB,0 + MOVE THORBAST-SWORD,HERE + FSET THORBAST-SWORD,TAKEBIT + FCLEAR THORBAST-SWORD,NDESCBIT + CALL THIS-IS-IT,THORBAST-SWORD + CALL DPRINT,THORBAST + PRINTI " feints backward and then launches a blow straight at your neck! Moving with a speed rarely associated with anything besides self-preservation, you parry, knocking the sword out of " + CALL DPRINT,THORBAST + PRINTI "'s hands! It drifts toward you, spinning slowly." + CRLF + JUMP ?CND6 +?ELS31: GRTR? FIGHT-COUNTER,24 \?ELS33 + PRINTI "Fatigue overcomes you. " + CALL DPRINT,THORBAST + PRINTI ", exhibiting more stamina, " + CALL SHISHKABOB + JUMP ?CND6 +?ELS33: EQUAL? FIGHT-COUNTER,6,12,18 \?CND36 + PRINTI "Your strength " + FSET? IN-SPACE,MUNGBIT /?ELS41 + FSET IN-SPACE,MUNGBIT + PRINTI "begin" + JUMP ?CND39 +?ELS41: PRINTI "continue" +?CND39: PRINTI "s to ebb. " +?CND36: ADD DISARM-PROB,12 >DISARM-PROB + RANDOM 100 + LESS? 33,STACK /?ELS46 + CALL DPRINT,THORBAST + PRINTI "'s blade whirls invisibly toward you. Ducking, you feel the blade whiz by an inch above " + PRINTD HEAD + PRINTI "!" + JUMP ?CND44 +?ELS46: RANDOM 100 + LESS? 50,STACK /?ELS48 + PRINTI "You fend off a volley of powerful blows, leaving you dizzy." + JUMP ?CND44 +?ELS48: CALL DPRINT,THORBAST + PRINTI " lunges at your chest, but your own blade knocks " + CALL HIS-HER + PRINTI " away in the nick of time." +?CND44: CRLF +?CND6: SET 'THORBAST-ATTACKED,FALSE-VALUE + RTRUE + + + .FUNCT SHISHKABOB + CALL JIGS-UP,STR?393 + RSTACK + + + .FUNCT THORBAST-F,OARG=0 + ZERO? OARG /?ELS5 + EQUAL? OARG,M-OBJDESC? /TRUE + EQUAL? PRSA,V?EXAMINE /?CND10 + PRINTI " " +?CND10: PRINTI "Chief Assassin " + CALL DPRINT,THORBAST + PRINTI " floats before you, " + CALL HIS-HER + PRINTI " black-garbed body almost invisible against the backdrop of space. " + CALL HE-SHE,TRUE-VALUE + PRINTI " is " + IN? THORBAST-SWORD,THORBAST \?ELS17 + PRINTI "brandishing a deadly-looking sword." + RTRUE +?ELS17: PRINTI "tensed, as though ready to strike like a snake." + RTRUE +?ELS5: EQUAL? THORBAST,WINNER \?ELS21 + EQUAL? PRSA,V?WHAT \?ELS30 + EQUAL? PRSO,LGOP /?THN27 +?ELS30: EQUAL? PRSA,V?TELL-ABOUT \?ELS26 + EQUAL? PRSO,ME \?ELS26 + EQUAL? PRSI,LGOP \?ELS26 +?THN27: PRINTI """Just the name is enough to psych out a wimp like you. In fact, they simply liked the initials L.G.O.P. and " + PRINTD LGOP + PRINTR " was the first thing they thought of.""" +?ELS26: CALL DPRINT,THORBAST + PRINTI " ignores you, although " + CALL HIS-HER + PRINTI " evil grin widens a bit." + CRLF + CALL STOP + RSTACK +?ELS21: EQUAL? PRSA,V?FOLLOW \?ELS36 + EQUAL? FOLLOW-FLAG,7 \?ELS41 + PRINT DONT-WANT-TO + RTRUE +?ELS41: EQUAL? FOLLOW-FLAG,12 \FALSE + CALL DO-WALK,P?SW + RSTACK +?ELS36: EQUAL? PRSA,V?LEAP,V?WALK-AROUND \?ELS45 + CALL DPRINT,THORBAST + PRINTI ", who's nobody's fool, keeps you in front of " + CALL HIM-HER + PRINT PERIOD-CR + RTRUE +?ELS45: EQUAL? PRSA,V?GIVE \?ELS47 + EQUAL? PRSO,SWORD \?ELS47 + CALL DPRINT,THORBAST + PRINTI ", delighted by your gift, " + CALL SHISHKABOB + RSTACK +?ELS47: EQUAL? PRSA,V?CUT,V?KILL \?ELS51 + CALL PLAYER-CANT-SEE + ZERO? STACK \TRUE + ZERO? PRSI \?CND52 + IN? SWORD,PROTAGONIST /?THN60 + IN? THORBAST-SWORD,PROTAGONIST \?ELS59 +?THN60: SET 'PRSI,SWORD + PRINTI "[with the sword]" + CRLF + JUMP ?CND52 +?ELS59: SET 'PRSI,HANDS +?CND52: EQUAL? PRSI,THORBAST-SWORD,SWORD \?ELS68 + MOVE PRSI,PROTAGONIST + SET 'THORBAST-ATTACKED,TRUE-VALUE + IN? THORBAST-SWORD,THORBAST \?ELS73 + RANDOM 100 + LESS? 25,STACK /?ELS76 + PRINTI "Your sword misses " + CALL DPRINT,THORBAST + PRINTI " by inches!" + JUMP ?CND74 +?ELS76: RANDOM 100 + LESS? 33,STACK /?ELS78 + PRINTI "You nick " + CALL DPRINT,THORBAST + PRINTI " on the arm, drawing blood!" + JUMP ?CND74 +?ELS78: RANDOM 100 + LESS? 50,STACK /?ELS80 + PRINTI "With a clang of steel, your sword smashes against " + CALL DPRINT,THORBAST + PRINTI "'s!" + JUMP ?CND74 +?ELS80: PRINTI "A mighty swing, but " + CALL DPRINT,THORBAST + PRINTI " easily dodges in this light gravity." +?CND74: CRLF + RTRUE +?ELS73: CALL DPRINT,THORBAST + PRINTI " somersaults in a neat circle, easily avoiding your thrust and ending up back in front of you. Further proof of " + CALL DPRINT,THORBAST + PRINTI "'s uncanny " + CALL VISIBLE?,THORBAST-SWORD + ZERO? STACK /?ELS87 + PRINTI "agility" + JUMP ?CND85 +?ELS87: PRINTI "legerdemain" +?CND85: MOVE THORBAST-SWORD,THORBAST + FSET THORBAST-SWORD,NDESCBIT + FCLEAR THORBAST-SWORD,TAKEBIT + PRINTI ": " + CALL HE-SHE + PRINTI " is again holding" + CALL TRPRINT,THORBAST-SWORD + RSTACK +?ELS68: PRINT YOU-CANT + PRINTI "expect to kill a tough g" + ZERO? MALE /?ELS94 + PRINTI "uy" + JUMP ?CND92 +?ELS94: PRINTI "al" +?CND92: PRINTI " like " + CALL DPRINT,THORBAST + PRINTI " with" + CALL ARPRINT,PRSI + RSTACK +?ELS51: EQUAL? PRSA,V?GIVE \?ELS99 + EQUAL? PRSO,THORBAST-SWORD \?ELS99 + SET 'SPACESHIP-SCENE-STATUS,2 + REMOVE THORBAST + REMOVE THORBAST-SWORD + SET 'FOLLOW-FLAG,7 + CALL QUEUE,I-FOLLOW,2 + CALL DEQUEUE,I-FIGHT + FSET THORBAST,MUNGBIT + PRINTI "As " + CALL DPRINT,THORBAST + PRINTI " accepts the sword, " + CALL INCREMENT-SCORE,5,15 + CALL HE-SHE + PRINTI " realizes that such a gesture is the final proof that you are the good guy, and therefore " + CALL HE-SHE + PRINTI " hasn't got a chance of winning. Being a practical person, " + CALL DPRINT,THORBAST + PRINTI " saves both of you a lot of time and aggravation by goring " + CALL HIM-HER + PRINTI "self on " + CALL HIS-HER + PRINTI " own blade. Spewing droplets of blood, " + CALL HIS-HER + PRINTI " body drifts away into the blackness of space." + CRLF + RETURN 8 +?ELS99: EQUAL? PRSA,V?SMELL \?ELS105 + CALL PERFORM-PRSA,ODOR + RTRUE +?ELS105: EQUAL? PRSA,V?EXAMINE \FALSE + CALL THORBAST-F,M-OBJDESC + CRLF + RTRUE + + + .FUNCT THORBAST-SUIT-F + EQUAL? PRSA,V?TAKE-OFF,V?TAKE \FALSE + CALL IMPOSSIBLES + RSTACK + + + .FUNCT THORBAST-SWORD-F + EQUAL? PRSA,V?RETURN \FALSE + ZERO? PRSI \FALSE + IN? THORBAST,HERE \FALSE + CALL PERFORM,V?GIVE,THORBAST-SWORD,THORBAST + RTRUE + + + .FUNCT YOUNG-WOMAN-F,OARG + ZERO? OARG /?ELS5 + EQUAL? HERE,IN-SPACE \FALSE + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " A " + CALL DPRINT,YOUNG-WOMAN + PRINTI " of refined bearing" + CALL DESCRIBE-YOUNG-WOMAN + RSTACK +?ELS5: ZERO? MALE /?ELS22 + CALL NOUN-USED,W?MAN,YOUNG-WOMAN + ZERO? STACK \?THN19 +?ELS22: ZERO? MALE \?ELS18 + CALL NOUN-USED,W?WOMAN,YOUNG-WOMAN + ZERO? STACK /?ELS18 +?THN19: EQUAL? PRSO,YOUNG-WOMAN \?ELS29 + CALL PERFORM-PRSA,MAN-WOMAN,PRSI + RTRUE +?ELS29: CALL PERFORM-PRSA,PRSO,MAN-WOMAN + RTRUE +?ELS18: EQUAL? YOUNG-WOMAN,WINNER \?ELS33 + IN? BEM,HERE \?ELS36 + EQUAL? PRSA,V?SHUT-UP \?ELS36 + EQUAL? PRSO,ROOMS \?ELS36 + PRINTI "You might as well tell the stars not to shine." + CRLF + JUMP ?CND34 +?ELS36: IN? BEM,HERE \?ELS40 + PRINTI "The " + CALL DPRINT,YOUNG-WOMAN + PRINTI " is too busy screaming to reply." + CRLF + JUMP ?CND34 +?ELS40: EQUAL? PRSA,V?WHAT \?ELS46 + EQUAL? PRSO,LGOP /?THN43 +?ELS46: EQUAL? PRSA,V?TELL-ABOUT \?ELS42 + EQUAL? PRSO,ME \?ELS42 + EQUAL? PRSI,LGOP \?ELS42 +?THN43: PRINTI """They've built up a real interplanetary rep for debauchery, but actually they're just plain Kansas girls -- a group of sisters from Wichita, the daughters of Gus and Elmira Leather.""" + CRLF + JUMP ?CND34 +?ELS42: PRINTI "The " + CALL DPRINT,YOUNG-WOMAN + PRINTI " blinks shyly, but says nothing." + CRLF +?CND34: CALL STOP + RSTACK +?ELS33: CALL TOUCHING?,YOUNG-WOMAN + ZERO? STACK /?ELS52 + IN? THORBAST,HERE \?ELS52 + CALL PERFORM,V?KILL,BEM + RTRUE +?ELS52: EQUAL? PRSA,V?EXAMINE \?ELS56 + EQUAL? HERE,IN-SPACE \?ELS56 + PRINTI "The " + CALL DPRINT,YOUNG-WOMAN + CALL DESCRIBE-YOUNG-WOMAN + CRLF + RTRUE +?ELS56: EQUAL? PRSA,V?FOLLOW \?ELS60 + EQUAL? FOLLOW-FLAG,4 \?ELS65 + PRINT DONT-WANT-TO + RTRUE +?ELS65: EQUAL? FOLLOW-FLAG,5 \?ELS67 + CALL DO-WALK,P?NORTH + RSTACK +?ELS67: EQUAL? FOLLOW-FLAG,6 \FALSE + CALL DO-WALK,P?EAST + RSTACK +?ELS60: EQUAL? PRSA,V?SAVE-SOMETHING \?ELS71 + EQUAL? HERE,IN-SPACE \?ELS71 + PRINTI "Psst! " + IN? BEM,HERE \?ELS78 + PRINTI "Kill" + CALL TRPRINT,BEM + RSTACK +?ELS78: PRINTI "Untie" + CALL TRPRINT,YOUNG-WOMAN + RSTACK +?ELS71: EQUAL? PRSA,V?UNTIE \?ELS82 + EQUAL? HERE,IN-SPACE \?ELS82 + IN? THORBAST,HERE \?ELS89 + CALL PERFORM,V?TOUCH,YOUNG-WOMAN + RTRUE +?ELS89: IN? BEM,HERE \?ELS91 + CALL DO-FIRST,STR?394 + RSTACK +?ELS91: MOVE YOUNG-WOMAN,SPACE-YACHT + SET 'FOLLOW-FLAG,5 + CALL QUEUE,I-FOLLOW,2 + PRINTI "You untie" + CALL TPRINT,YOUNG-WOMAN + PRINTI " who, beckoning you to follow, enters" + CALL TRPRINT,PASSENGER-SHIP + RSTACK +?ELS82: EQUAL? PRSA,V?KISS,V?FUCK,V?TOUCH /?THN98 + EQUAL? PRSA,V?EAT \FALSE +?THN98: EQUAL? HERE,IN-SPACE \FALSE + ZERO? NAUGHTY-LEVEL /FALSE + CALL V-RAPE + RSTACK + + + .FUNCT DESCRIBE-YOUNG-WOMAN + PRINTI " is tied to the hull of the " + PRINTD PASSENGER-SHIP + PRINTI ". " + CALL HER-HIS,TRUE-VALUE + PRINTI " elegantly expensive tunic is torn, exposing delicate white skin." + IN? BEM,HERE \TRUE + PRINTI " A " + PRINTD BEM + PRINTI " is attacking" + CALL TPRINT,YOUNG-WOMAN + PRINTI ", who is understandably screaming at the top of " + CALL HER-HIS + PRINTI " lungs." + RTRUE + + + .FUNCT BEM-F + CALL TOUCHING?,BEM + ZERO? STACK /?ELS5 + IN? THORBAST,HERE \?ELS10 + CALL DO-WALK,P?NORTH + RSTACK +?ELS10: REMOVE BEM + CALL DEQUEUE,I-BEM + SET 'FOLLOW-FLAG,4 + CALL QUEUE,I-FOLLOW,2 + SET 'BEM-COUNTER,12 + PRINTR "The tree-monster squawks and flees, proving that its bark is worse than its bite." +?ELS5: EQUAL? PRSA,V?FOLLOW \FALSE + EQUAL? FOLLOW-FLAG,4 \FALSE + PRINT DONT-WANT-TO + RTRUE + + + .FUNCT I-PASSENGER-SHIP-DEPARTS + EQUAL? SPACESHIP-SCENE-STATUS,1 /FALSE + SET 'SPACESHIP-SCENE-STATUS,1 + REMOVE THORBAST + REMOVE BEM + REMOVE YOUNG-WOMAN + CALL DEQUEUE,I-BEM + IN? THORBAST-SWORD,IN-SPACE \?CND4 + REMOVE THORBAST-SWORD +?CND4: CALL IN-SPACE? + ZERO? STACK /FALSE + PRINTI " A rumbling from outside the ship sends shivers running through the deck." + EQUAL? HERE,HOLD /?THN13 + EQUAL? HERE,AT-MAIN-HATCH \?CND10 + FSET? HATCH,OPENBIT \?CND10 +?THN13: PRINTI " Through the " + EQUAL? HERE,HOLD \?ELS19 + PRINTI "viewport" + JUMP ?CND17 +?ELS19: PRINTI "hatchway" +?CND17: PRINTI ", you see" + CALL TPRINT,PASSENGER-SHIP + PRINTI " roaring away on a tail of ion flame!" +?CND10: CRLF + RTRUE + + + .FUNCT SPACE-YACHT-F,RARG + EQUAL? RARG,M-END \FALSE + IN? YOUNG-WOMAN,HERE \FALSE + SET 'FOLLOW-FLAG,6 + CALL QUEUE,I-FOLLOW,2 + REMOVE YOUNG-WOMAN + FCLEAR PRIVATE-CABIN-DOOR,LOCKEDBIT + MOVE PHOTO,PROTAGONIST + CALL INCREMENT-SCORE,17,13,TRUE-VALUE + PRINTI " The " + CALL DPRINT,YOUNG-WOMAN + PRINTI " turns to you. ""I am called Elysi" + ZERO? MALE /?ELS10 + PRINTI "a" + JUMP ?CND8 +?ELS10: PRINTI "um" +?CND8: PRINTI "; my " + ZERO? MALE /?ELS16 + PRINTI "fa" + JUMP ?CND14 +?ELS16: PRINTI "mo" +?CND14: PRINTI "ther is the wealthiest " + ZERO? MALE \?CND20 + PRINTI "wo" +?CND20: PRINTI "man in the system. You will be grandly rewarded for saving me from that horrid kidnapper."" + " + CALL SHE-HE,TRUE-VALUE + PRINTI " grabs a photo off the wall, scribbles on the back of it, and hands it to you. ""Here is " + ZERO? MALE /?ELS25 + PRINTI "fa" + JUMP ?CND23 +?ELS25: PRINTI "mo" +?CND23: PRINTI "ther's address; see " + CALL HIM-HER + PRINTI " the next time you're on Ganymede, and you will be handsomely repaid. But now, I must retire to my cabin to recover from this hideous ordeal."" " + ZERO? MALE /?ELS31 + PRINTI "She curtsie" + JUMP ?CND29 +?ELS31: PRINTI "He bow" +?CND29: PRINTI "s, a bit unsteadily, and exits to the east, closing the door behind " + CALL HER-HIM + PRINT PERIOD-CR + RTRUE + + + .FUNCT PRIVATE-CABIN-DOOR-F + EQUAL? PRSA,V?KNOCK \FALSE + IN? YOUNG-WOMAN,IN-SPACE /FALSE + EQUAL? SPACESHIP-SCENE-STATUS,3 /FALSE + PRINTI """Please leave me to rest!""" + FSET? PRIVATE-CABIN-DOOR,LOCKEDBIT /?CND8 + FSET PRIVATE-CABIN-DOOR,LOCKEDBIT + FSET? PRIVATE-CABIN-DOOR,OPENBIT \?ELS13 + FCLEAR PRIVATE-CABIN-DOOR,OPENBIT + PRINTI " The door closes and y" + JUMP ?CND11 +?ELS13: PRINTI " Y" +?CND11: PRINTI "ou hear a click as the door is locked." +?CND8: CRLF + RTRUE + + + .FUNCT PRIVATE-CABIN-ENTER-F + FSET? PRIVATE-CABIN-DOOR,OPENBIT \?ELS3 + FCLEAR PRIVATE-CABIN-DOOR,OPENBIT + FSET PRIVATE-CABIN-DOOR,LOCKEDBIT + PRINTI "Private Cabin + You have entered a plush sleeping cabin. The " + CALL DPRINT,YOUNG-WOMAN + PRINTI " is standing in the center of the cabin, clutching " + CALL HER-HIS + PRINTI " clothes, looking shocked to see you." + ZERO? NAUGHTY-LEVEL \?ELS6 + PRINTI " Naturally, you apologize and beat a hasty retreat." + JUMP ?CND4 +?ELS6: CRLF + PRINTI " ""How dare you come in here without knocking! Am I to be allowed no privacy at all? Will my horror never end? Will..."" " + CALL SHE-HE,TRUE-VALUE + PRINTI " trails off and, as the multiple shocks of the day set in, begins sobbing. Moved, you take " + CALL HER-HIM + PRINTI " in your arms." + EQUAL? NAUGHTY-LEVEL,1 \?ELS11 + PRINTI " One thing leads to another..." + JUMP ?CND9 +?ELS11: CRLF + PRINTI " You dry " + CALL HER-HIS + PRINTI " tears, and as your bodies press closer, hysteria slowly turns to lust. You tenderly lead Elysi" + ZERO? MALE /?ELS16 + PRINTI "a" + JUMP ?CND14 +?ELS16: PRINTI "um" +?CND14: PRINTI " to the bed, and within seconds, your bodies lock together in slow rhythm. + After a series of spectacular climaxes, Elysi" + ZERO? MALE /?ELS22 + PRINTI "a" + JUMP ?CND20 +?ELS22: PRINTI "um" +?CND20: PRINTI " is struck with an idea. ""Would ... would you like to tie me up? It really turns me on...""" +?CND9: CRLF + PRINTI " Much, much later, making sure that Elysi" + ZERO? MALE /?ELS28 + PRINTI "a" + JUMP ?CND26 +?ELS28: PRINTI "um" +?CND26: PRINTI " is sleeping peacefully, you tiptoe out of the cabin, closing the door." +?CND4: CRLF + CRLF + CALL DESCRIBE-ROOM + RFALSE +?ELS3: CALL THIS-IS-IT,PRIVATE-CABIN-DOOR + CALL DO-FIRST,STR?66,PRIVATE-CABIN-DOOR + RFALSE + + + .FUNCT PHOTO-F + FSET? PHOTO,UNTEEDBIT /FALSE + EQUAL? PRSA,V?READ \?ELS7 + PRINTI " ""Elysi" + ZERO? MALE /?ELS10 + PRINTI "a's Dadd" + JUMP ?CND8 +?ELS10: PRINTI "um's Momm" +?CND8: PRINTR "y + The Big House With All The Windows + Ganymede""" +?ELS7: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "It is a " + CALL DPRINT,PHOTO + PRINTI " with writing on the back:" + CRLF + CALL PERFORM,V?READ,PHOTO + RTRUE + + .ENDI diff --git a/spaceship.zil b/spaceship.zil new file mode 100644 index 0000000..0cd7ed1 --- /dev/null +++ b/spaceship.zil @@ -0,0 +1,1102 @@ +"SPACESHIP for + LEATHER GODDESSES OF PHOBOS + (c) Copyright 1986 Infocom, Inc. All Rights Reserved." + + + + ;"0 = opening status + 1 = passenger ship departed + 2 = Thorbast killed + 3 = monster carried Elysia away" + + + >> + ) + ( + + + + )> + ) + ( + > + + + + + + + + + + + ) + (T + )>)>> + +> + + + + + )>> + + + + + + + + + )> + )>> + + + ;"you're leading the horse"> + + ) + (T + ,HOLD)>> + + + + + + > + + + ) + ( + + + + ) + (T + )>) + ( + > + + + + ) + ( + + ) + ( + > + ;"for exit functions" + + + + ) + ( + + > + + ) + ( + ) + ( + + + ) + (T + )>) + ( + )>> + + LIGHT UNIMPORTANT-THING-F)>)> + + + + + ) + ( + )> + ) + ( + > + + + + ) + (T + + )> + )>> + + + + + + ;"leading the horse"> + + ) + (T + ,HOLD)>) + (T + + )>> + + + >) + ( + + ) + (T + >)>) + ( + ) + (T + >)> + + + )> + ;"next kludge keeps V-WALK from doing an RFATAL" + > + + + + ;"blow chance for sex scene" + ) + ( + + + ) + ( + + > + >> + ) + ( + + > + + + + )>> + +)) + + + + ) + (T + )>)> + + + ) + (T + + )> + ,STALLION) ;"GOTO handles vehicles as well as rooms" + (T + ,LONG-CORRIDOR)>> + +> + + + ) + ( + ;"you're leading the horse"> + + ) + (T + ,IN-SPACE)>> + + + + + > + + ) + ( + > + )>> + + + +)> + + + + ) + ( + + ) + (T + ,SPACE-YACHT)>> + + + + + + + + + + + ;"so she's not described" + ;"ditto" + > + + + + + + + + + )>) + ( + + > + )> + ) + ( + + + )>> + + + + + + ) + ( + + ) + ( + )>) + ( + + ) + ( + ) + (T + )>)>> + + + + + ) + ( + + ) + ( + ) + (T + )>) + ( + + ) + (T + )>) + ( + )>> + + + ) + (T + )>> + +> + > + > + + + )> + + + ) + ( + ) + (T + )>> + + + +> + + + + + + + + + +> + > + + + + + )> + ) + ( + )> + + + + ) + ( + + + ) + ( + + + + + + + + + ) + (T + + + + + )>> + + + ) + (T + )> + > + +> + > + + + ) + ( + + )> + + + + + + + + + + )> + + + + > + + + > + + + )>)> + ) + (> + > + ) + ( + > + + + ) + (T + > + )>) + ( + + + + + + ) + ( + + ) + (T + + + > + + ) + (T + )> + )> + > + + ) + ( + ) + (T + + + )> + )> + > + > + +> + + + +)) + + )> + > + )> + + + + + + + ) + (T + )>) + ( + + > + + + >> + ) + (T + + + + )>) + ( + + ) + ( + )>) + ( + + + ) + ( + > + + + ) + ( + + ) + ( + + > + + ) + (T + )>)> + + + + + + ) + ( + ) + ( + ) + (T + )> + ) + (T + + + ) + (T + )> + + + + + + )>) + (T + + ) + (T + )> + )>) + ( + > + + + + + + + + + + + + + + + + + + + + ;"prevents GIVE ALL TO THORBAST bug") + ( + + ) + ( + + )>> + + + )>> + + + + + + > + + )>> + + + + + + )> + + ) + (T + )>) + (> + + >> + + + ) + (T + + )>) + ( + + + > + ) + ( + ) + ( + > + + + >> + ) + (T + )> + ) + ( + > + + ) + ( + > + + + ) + ( + + ) + ( + ) + ( + )>) + ( + > + + + ) + (T + )>) + ( + > + + + ) + ( + ) + (T + + + + )>) + ( + + >> + )>> + + + + + + + + )> + > + + + + + + ) + (T + + + + + + )>) + ( + > + )>> + + + )> + + + + + + + )> + > + )> + + + + >> + + + ) + (T + )> + )> + > + + + + + > + + + + + + + + ) + (T + )> + + ) + (T + )> + + + )> + + + + ) + (T + )> + + + + ) + (T + )> + + + )>> + + + + + > + >> + + > + + + + ) + (T + )> + )> + )>> + + + + + + + + + ) + (T + + + + + + + ) + (T + + + + ) + (T + )> + + ) + (T + )> + )> + + ) + (T + )> + )> + + + ;"next bit is no longer possible" + ; + >> + + + + + )>) + (T + + )> + > + + + + + ) + ( + + ) + (T + )> + ) + ( + + + )>> \ No newline at end of file diff --git a/syntax.zap b/syntax.zap new file mode 100644 index 0000000..a92e0b4 --- /dev/null +++ b/syntax.zap @@ -0,0 +1,2 @@ + + .ENDI diff --git a/syntax.zil b/syntax.zil new file mode 100644 index 0000000..cdcc122 --- /dev/null +++ b/syntax.zil @@ -0,0 +1,841 @@ +"SYNTAX for + LEATHER GODDESSES OF PHOBOS + (c) Copyright 1986 Infocom, Inc. All Rights Reserved." + + + +;"the following are all to make BODY-PARTS-HANDLER work" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +;"game commands" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + +; + +; + +; + +; +; + +; + +; + +; + +;"subtitle real verbs" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ;"ride horse west" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; +; +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ;"for ROLL SOD ON CIRCLE" + ;"ditto" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ;"for PUT BABY TO SLEEP" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ;"formerly V-LEAP" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/venus.zap b/venus.zap new file mode 100644 index 0000000..87209fd --- /dev/null +++ b/venus.zap @@ -0,0 +1,1319 @@ + + + .FUNCT VENUS-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + CALL V-LOOK + RSTACK +?ELS5: EQUAL? PRSA,V?EXIT,V?DISEMBARK,V?LEAVE \FALSE + PRINTR "How?" + + + .FUNCT JUNGLE-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + IN? FLYTRAP,HERE \?ELS5 + CALL QUEUE,I-FLYTRAP,-1 + RSTACK +?ELS5: EQUAL? RARG,M-LOOK \FALSE + PRINTI "You are surrounded by hot, steamy, primitive rain forest. Judging by the overpowering heat, the excessive humidity, and " + IN? FLYTRAP,HERE \?ELS12 + PRINTI "especially by the gigantic " + PRINTD FLYTRAP + PRINTI " sidling your way, " + JUMP ?CND10 +?ELS12: PRINTI "the odd flora, " +?CND10: PRINTI "you must be in the death-clogged jungles of Venus. + A path runs east-west through the jungle" + IN? FLYTRAP,HERE \?CND15 + PRINTI ", but don't even think about going west unless you love wading into four tons of " + ZERO? MALE \?CND18 + PRINTI "wo" +?CND18: PRINTI "man-eating lettuce" +?CND15: PRINTI "." + RTRUE + + + .FUNCT PASS-FLYTRAP-F + IN? FLYTRAP,HERE \?ELS5 + PRINTI "Despite being warned, you walk right into the orifice of the " + PRINTD FLYTRAP + PRINTI ". " + CALL FLYTRAP-DEATH + RSTACK +?ELS5: EQUAL? HERE,JUNGLE \?ELS7 + RETURN SPAWNING-GROUND +?ELS7: RETURN JUNGLE + + + .FUNCT FLYTRAP-DEATH + PRINTI "A little known fact about " + PRINTD FLYTRAP + PRINTI "s: they secrete an enzyme which stimulates the pleasure centers of their victim. Hence, you experience " + ZERO? NAUGHTY-LEVEL \?ELS3 + PRINTI "a feeling similar to eating a really good hot fudge sundae" + JUMP ?CND1 +?ELS3: PRINTI "multiple orgasms" +?CND1: CALL JIGS-UP,STR?342 + RSTACK + + + .FUNCT FLYTRAP-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It looks just like the Terrestrial variety -- except that " + PRINTD FLYTRAP + PRINTI "s on Earth" + PRINT EVOLVED + PRINTI "n ounce, and Venusian " + PRINTD FLYTRAP + PRINTI "s" + PRINT EVOLVED + PRINTI " ton. Oh, one other thing. Terrestrial " + PRINTD FLYTRAP + PRINTR "s don't usually stalk their prey." +?ELS5: EQUAL? PRSA,V?FOLLOW \?ELS7 + EQUAL? FOLLOW-FLAG,9 \?ELS12 + CALL DO-WALK,P?WEST + RSTACK +?ELS12: EQUAL? FOLLOW-FLAG,10 \?ELS14 + CALL PERFORM,V?DISEMBARK,TREE-HOLE + RTRUE +?ELS14: EQUAL? FOLLOW-FLAG,11 \FALSE + CALL PERFORM,V?ENTER,TREE-HOLE + RTRUE +?ELS7: CALL TOUCHING?,FLYTRAP + ZERO? STACK /FALSE + PRINTR "You don't want to get that close to the flytrap -- and it has nothing to do with its breath." + + + .FUNCT I-FLYTRAP + INC 'FLYTRAP-COUNTER + PRINTI " " + IN? FLYTRAP,HERE /?ELS5 + SET 'FLYTRAP-COUNTER,0 + EQUAL? HERE,CLEARING \?ELS10 + ZERO? LEAVES-PLACED /?ELS13 + ZERO? TOO-LATE \?ELS13 + CALL TRAP-FLYTRAP + PRINTI "You hear a crash from the west" + JUMP ?CND11 +?ELS13: MOVE FLYTRAP,JUNGLE + SET 'TOO-LATE,FALSE-VALUE + CALL DEQUEUE,I-FLYTRAP + SET 'FOLLOW-FLAG,9 + CALL QUEUE,I-FOLLOW,2 + PRINTI "Holy tropism! The " + PRINTD FLYTRAP + PRINTI " loses interest in you and crawls away" +?CND11: PRINT PERIOD-CR + RTRUE +?ELS10: MOVE FLYTRAP,HERE + ZERO? LEAVES-PLACED \?CND20 + SET 'TOO-LATE,TRUE-VALUE +?CND20: PRINTI "As" + CALL TPRINT,FLYTRAP + PRINTR " scurries along, you dash to the eastern side of the hole in order to be as far from it as possible." +?ELS5: IN? PROTAGONIST,TREE-HOLE \?ELS24 + MOVE FLYTRAP,JUNGLE + SET 'FOLLOW-FLAG,10 + CALL QUEUE,I-FOLLOW,2 + SET 'TOO-LATE,FALSE-VALUE + SET 'FLYTRAP-COUNTER,0 + CALL DEQUEUE,I-FLYTRAP + PRINTI "The " + PRINTD FLYTRAP + PRINTR " peers down, decides that it's not worth getting trapped for such a measly scrap of meat, and shuffles away." +?ELS24: EQUAL? FLYTRAP-COUNTER,1 \?ELS26 + FSET? FLYTRAP,TOUCHBIT \?ELS26 + EQUAL? HERE,JUNGLE \?ELS26 + PRINTI "Flies must be in short supply, because the " + PRINTD FLYTRAP + PRINTR " nearby expectantly rustles a few stalks and begins creeping in your direction." +?ELS26: LESS? FLYTRAP-COUNTER,4 \?ELS30 + FSET FLYTRAP,TOUCHBIT + PRINTI "The " + PRINTD FLYTRAP + PRINTI " sidles " + EQUAL? HERE,FORK-OF-SORTS \?ELS35 + ZERO? LEAVES-PLACED /?THN38 + ZERO? TOO-LATE /?ELS35 +?THN38: PRINTR "around the hole toward you." +?ELS35: PRINTR "closer." +?ELS30: EQUAL? HERE,FORK-OF-SORTS \?ELS43 + ZERO? LEAVES-PLACED /?ELS43 + ZERO? TOO-LATE \?ELS43 + CALL TRAP-FLYTRAP + PRINTR "Never before has splintering wood sounded so sweet or tossed salad looked so lovely. The amazing flying flytrap tumbles into your flytrap trap, covered with leaves and bits of shattered trellis, giving the plant the amusing appearance of a tar-and-feather victim." +?ELS43: CALL FLYTRAP-DEATH + RSTACK + + + .FUNCT TRAP-FLYTRAP + FSET FLYTRAP,MUNGBIT + CALL INCREMENT-SCORE,2,15 + MOVE FLYTRAP,TREE-HOLE + SET 'FOLLOW-FLAG,11 + CALL QUEUE,I-FOLLOW,2 + CALL ROB,TRELLIS,TREE-HOLE + REMOVE TRELLIS + FCLEAR FLYTRAP,NDESCBIT + CALL UNDO-TRAP + CALL DEQUEUE,I-FLYTRAP + RSTACK + + + .FUNCT SPAWNING-GROUND-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "As if this hasn't already been a rough enough day, you have stumbled upon a spawning ground for Venusian slime beasts. " + PRINT OOZY-WITH-SLIME + PRINTI " Fortunately, these beasts are still in the earliest (and least deadly) stage. Only one spot is free of slime:" + CALL TPRINT,HOLE + PRINTI " near the path to the east." + RTRUE + + + .FUNCT CREAM-F + EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS5 + CALL EXAMINE-CREAM-AND-STAIN + RSTACK +?ELS5: EQUAL? PRSA,V?READ \?ELS7 + PRINTI "The jar is marked ""Un" + FSET? CREAM,UNTEEDBIT /?CND8 + PRINTI "t" +?CND8: PRINTR "angling cream.""" +?ELS7: EQUAL? PRSA,V?EMPTY \?ELS12 + EQUAL? PRSO,CREAM \?ELS12 + ZERO? PRSI \?CND15 + PUT P-NAMW,1,FALSE-VALUE + SET 'PRSI,GROUND +?CND15: FSET? CREAM,MUNGBIT \?ELS22 + PRINT ALREADY-IS + RTRUE +?ELS22: PUT P-NAMW,0,W?CREAM + CALL PERFORM,V?PUT-ON,CREAM,PRSI + RTRUE +?ELS12: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS26 + CALL NO-LID + RSTACK +?ELS26: EQUAL? PRSA,V?EAT \?ELS28 + PRINT YECHH + RTRUE +?ELS28: EQUAL? PRSA,V?RUB,V?PUT-ON,V?POUR \FALSE + EQUAL? PRSO,CREAM \FALSE + GET P-NAMW,0 + EQUAL? STACK,W?JAR,FALSE-VALUE /FALSE + FSET? CREAM,MUNGBIT \?CND33 + CALL EXAMINE-CREAM-AND-STAIN + RTRUE +?CND33: MOVE CREAM,PROTAGONIST + FSET CREAM,MUNGBIT + PRINTI "As the lotion soaks in," + FSET? CREAM,UNTEEDBIT \?ELS40 + EQUAL? PRSI,THETA \?ELS40 + MOVE EIGHTY-TWO-DEGREE-ANGLE,THRONE-ROOM + FCLEAR THETA,MUNGBIT + FCLEAR THETA,NDESCBIT + FSET THETA,ACTORBIT + FSET THETA,FEMALEBIT + FSET THETA,NARTICLEBIT + PUTP THETA,P?SDESC,STR?346 + CALL INCREMENT-SCORE,16,10,TRUE-VALUE + PRINTI " the angle slowly transforms into a beautiful princess. Mitre, gushing tears of happiness, cries, ""You have restored my beloved Theta to me!"" He reveals a perfect " + CALL DPRINT,EIGHTY-TWO-DEGREE-ANGLE + PRINTI ". ""I only brushed against it,"" explains the King. ""Please accept it, along with my thanks."" He reaches out to shake " + PRINTD HANDS + PRINT PERIOD-CR + RTRUE +?ELS40: EQUAL? PRSI,PILE-OF-ANGLES \?ELS44 + FSET? CREAM,UNTEEDBIT \?ELS44 + CALL JIGS-UP,STR?347 + RSTACK +?ELS44: EQUAL? PRSI,ME \?ELS48 + PRINTR " your skin tingles a bit." +?ELS48: CALL TPRINT-PRSI + PRINTI " seem" + FSET? PRSI,PLURALBIT /?CND51 + PRINTI "s" +?CND51: PRINTI " unchanged. " + EQUAL? PRSI,MITRE \?ELS58 + FSET? CREAM,UNTEEDBIT \?ELS58 + PRINTR "(Like fighting a forest fire with a water pistol.)" +?ELS58: PRINTI "I guess " + FSET? PRSI,PLURALBIT \?ELS65 + PRINTI "they were" + JUMP ?CND63 +?ELS65: FSET? PRSI,FEMALEBIT \?ELS70 + PRINTI "she" + JUMP ?CND68 +?ELS70: FSET? PRSI,ACTORBIT \?ELS72 + PRINTI "he" + JUMP ?CND68 +?ELS72: PRINTI "it" +?CND68: PRINTI " was" +?CND63: PRINTI "n't very " + FSET? CREAM,UNTEEDBIT /?CND75 + PRINTI "t" +?CND75: PRINTR "angled." + + + .FUNCT FORK-OF-SORTS-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + FSET? HERE,TOUCHBIT /?ELS5 + ZERO? VERBOSITY /?ELS5 + PRINTI "A mighty tree rises before you in the center of the path. Suddenly and without warning (as is the nature of the jungle) it dies. Within seconds, the tree is consumed by Venusian hypertermites, which then move off in search of other dead trees, leaving a massive hole in the ground." + CRLF + CRLF + RTRUE +?ELS5: EQUAL? RARG,M-LOOK \FALSE + PRINTI "This jungle path once split here, went around a mighty tree, and rejoined off to the east. Now, it splits here, goes around a " + ZERO? LEAVES-PLACED /?ELS12 + PRINTD LEAVES + JUMP ?CND10 +?ELS12: PRINTI "mighty hole" +?CND10: PRINTI ", and rejoins off to the east." + RTRUE + + + .FUNCT TREE-HOLE-F + EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5 + PRINT HUH + RTRUE +?ELS5: EQUAL? PRSA,V?DISEMBARK \?ELS7 + IN? PROTAGONIST,TREE-HOLE \?ELS7 + PRINT YOU-CANT + PRINTR "climb out. You're trapped." +?ELS7: EQUAL? PRSA,V?REACH-IN \?ELS11 + IN? FLYTRAP,TREE-HOLE \?ELS11 + PRINTI "The " + PRINTD FLYTRAP + PRINTI " pulls you in. " + CALL FLYTRAP-DEATH + RSTACK +?ELS11: EQUAL? PRSA,V?BOARD \?ELS15 + FSET? TRELLIS,MUNGBIT \?ELS20 + PRINTR "The hole's covered." +?ELS20: CALL ULTIMATELY-IN?,TRELLIS + ZERO? STACK /?ELS22 + PRINT TRELLIS-TOO-WIDE + RTRUE +?ELS22: IN? FLYTRAP,TREE-HOLE \FALSE + PRINTI "Hey! There's a big, hungry, angry " + PRINTD FLYTRAP + CALL JIGS-UP,STR?348 + RSTACK +?ELS15: EQUAL? PRSA,V?MEASURE \?ELS26 + PRINTR "The hole is about six feet across." +?ELS26: EQUAL? PRSA,V?WALK-AROUND \?ELS28 + IN? FLYTRAP,HERE \?ELS33 + PRINTI "You circle the hole completely, with" + CALL TPRINT,FLYTRAP + PRINTR " in hot pursuit." +?ELS33: CALL WEE + RSTACK +?ELS28: EQUAL? PRSA,V?LOOK-INSIDE \?ELS37 + ZERO? LEAVES-PLACED /?ELS37 + CALL PERFORM,V?BOARD,TREE-HOLE + RTRUE +?ELS37: EQUAL? PRSA,V?PUT-ON \?ELS41 + EQUAL? PRSO,LEAVES \?ELS41 + FSET? TRELLIS,MUNGBIT \?ELS41 + CALL PERFORM-PRSA,LEAVES,TRELLIS + RTRUE +?ELS41: EQUAL? PRSA,V?EXAMINE \?ELS45 + FSET? TRELLIS,MUNGBIT \?ELS45 + CALL DESCRIBE-TRELLIS-ON-HOLE + CRLF + RTRUE +?ELS45: EQUAL? PRSA,V?UNCOVER \?ELS49 + FSET? TRELLIS,MUNGBIT \?ELS49 + CALL PERFORM,V?MOVE,TRELLIS + RTRUE +?ELS49: EQUAL? PRSA,V?HIDE \FALSE + IN? FLYTRAP,HERE \FALSE + CALL PERFORM,V?WALK-AROUND,TREE-HOLE + RTRUE + + + .FUNCT CLEARING-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is a tiny anti-oasis of barrenness amidst the teeming Venusian jungle. Winding paths enter the jungle in most directions." + RTRUE + + + .FUNCT CLEARING-EXIT-F + PRINTI "You walk swiftly down the trail! It turns! It twists! It narrows! Vines grab at your ankles and bird-sized insects close in for a kill! Suddenly" + PRINT ELLIPSIS + EQUAL? PRSO,P?NE \?ELS5 + RETURN FRONT-DOOR +?ELS5: EQUAL? PRSO,P?NW \?ELS7 + RETURN BACK-DOOR +?ELS7: CALL DESCRIBE-ROOM + IN? SIDEKICK,HERE \FALSE + CALL NORMAL-SIDEKICK-FOLLOW + RFALSE + + + .FUNCT STAIN-F + FSET? STAIN,UNTEEDBIT /FALSE + EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS7 + CALL EXAMINE-CREAM-AND-STAIN + RSTACK +?ELS7: EQUAL? PRSA,V?APPLY \?ELS9 + CALL GLOBAL-IN?,HOLE,HERE + ZERO? STACK /?ELS9 + CALL APPLY-STAIN,HOLE + RSTACK +?ELS9: EQUAL? PRSA,V?EMPTY \?ELS13 + EQUAL? PRSO,STAIN \?ELS13 + FSET? STAIN,MUNGBIT \?ELS20 + CALL EXAMINE-CREAM-AND-STAIN + RSTACK +?ELS20: ZERO? PRSI /?THN23 + EQUAL? PRSI,WATER,CANAL-OBJECT,GROUND /?THN23 + EQUAL? PRSI,TREE-HOLE \?ELS22 +?THN23: FSET STAIN,MUNGBIT + PRINTR "Done. What a waste of good stain!" +?ELS22: CALL APPLY-STAIN,PRSI + RSTACK +?ELS13: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS28 + CALL NO-LID + RSTACK +?ELS28: EQUAL? PRSA,V?DRINK \?ELS30 + PRINT YECHH + RTRUE +?ELS30: EQUAL? PRSA,V?POUR \?ELS32 + EQUAL? PRSI,WATER,CANAL-OBJECT,GROUND /?THN35 + EQUAL? PRSI,TREE-HOLE \?ELS32 +?THN35: CALL PERFORM,V?EMPTY,STAIN,GROUND + RTRUE +?ELS32: EQUAL? PRSA,V?RUB,V?PUT-ON,V?POUR \FALSE + EQUAL? PRSO,STAIN \FALSE + CALL NOUN-USED,W?STAIN,STAIN + ZERO? STACK /FALSE + CALL APPLY-STAIN,PRSI + RSTACK + + + .FUNCT APPLY-STAIN,OBJ + FSET? STAIN,MUNGBIT \?ELS5 + SET 'PRSO,STAIN + CALL EXAMINE-CREAM-AND-STAIN + RSTACK +?ELS5: EQUAL? OBJ,HOLE \?ELS7 + CALL THIS-IS-IT,HOLE + PRINTI "The circle is " + CALL CIRCLE-ISNT-BLACK + ZERO? STACK /?ELS10 + SET 'CIRCLE-BLACK,TRUE-VALUE + FSET STAIN,MUNGBIT + PUT P-ADJW,0,FALSE-VALUE + PUT P-ADJW,1,FALSE-VALUE + PUTP HOLE,P?SDESC,STR?132 + PRINTI "once again" + JUMP ?CND8 +?ELS10: PRINTI "already" +?CND8: PRINTR " black!" +?ELS7: EQUAL? OBJ,FLYTRAP \?ELS14 + CALL PERFORM,V?TOUCH,FLYTRAP + RTRUE +?ELS14: PRINTI "You apply a tiny dab to" + CALL TPRINT,OBJ + PRINTR " but it doesn't stick." + + + .FUNCT EXAMINE-CREAM-AND-STAIN + PRINTI "The " + CALL DPRINT,PRSO + PRINTI " is " + FSET? PRSO,MUNGBIT \?ELS3 + PRINTI "empty" + JUMP ?CND1 +?ELS3: PRINTI "full" +?CND1: EQUAL? PRSA,V?EXAMINE \?CND6 + PRINTI ", and has some writing on it" +?CND6: PRINT PERIOD-CR + RTRUE + + + .FUNCT BACK-DOOR-F,RARG + EQUAL? RARG,M-ENTER \FALSE + CALL QUEUE,I-SALESMAN,-1 + RSTACK + + + .FUNCT SALESMAN-F + EQUAL? SALESMAN,WINNER \?ELS5 + CALL QUEUE,I-SALESMAN,2 + EQUAL? PRSA,V?WHAT \?ELS14 + EQUAL? PRSO,LGOP /?THN11 +?ELS14: EQUAL? PRSA,V?TELL-ABOUT \?ELS10 + EQUAL? PRSO,ME \?ELS10 + EQUAL? PRSI,LGOP \?ELS10 +?THN11: PRINTR """I know the ones you mean. Made a fortune in interplanetary shoe and briefcase peddling. They really know the territory.""" +?ELS10: PRINTI """Let's cut the gab and cut a deal instead!""" + CRLF + CALL STOP + RSTACK +?ELS5: EQUAL? PRSA,V?GIVE \?ELS20 + EQUAL? PRSI,SALESMAN \?ELS20 + EQUAL? PRSO,FLASHLIGHT \?ELS27 + REMOVE FLASHLIGHT + MOVE ODD-MACHINE,HERE + FCLEAR ODD-MACHINE,TRYTAKEBIT + REMOVE SALESMAN + SET 'FOLLOW-FLAG,8 + CALL QUEUE,I-FOLLOW,2 + CALL INCREMENT-SCORE,3,7 + CALL EAGERLY-ACCEPTS + PRINTI ", mentioning that he knows a Plutonian plutocrat who'll trade his life fortune for one, and drops" + CALL APRINT,ODD-MACHINE + PRINTI " at your feet. ""It's a TEE remover,"" he explains. You ponder what it removes -- tea stains, hallway T-intersections -- even TV star Mr. T crosses your mind, until you recall that it's only 1936. But before you have a chance to ask the salesman, he " + FSET? FLASHLIGHT,ONBIT \?ELS30 + PRINTI "points" + CALL TPRINT,FLASHLIGHT + PRINTI " upwards" + JUMP ?CND28 +?ELS30: PRINTI "turns on" + CALL TPRINT,FLASHLIGHT +?CND28: PRINTI " and a giant Venusian MegaMoth swoops down and carries him off. The other salesmen scatter like frightened salesmen." + CRLF + RETURN 8 +?ELS27: CALL QUEUE,I-SALESMAN,2 + EQUAL? PRSO,ONE-MARSMID-COIN,TEN-MARSMID-COIN \?ELS39 + CALL PERFORM,V?BUY,ODD-MACHINE + RTRUE +?ELS39: CALL PICK-ONE,SALESMAN-REFUSALS + PRINT STACK +?CND37: PRINTR " Offer me something else.""" +?ELS20: EQUAL? PRSA,V?SHOW \?ELS47 + EQUAL? PRSO,FLASHLIGHT /?THN44 +?ELS47: EQUAL? PRSA,V?ASK-ABOUT \?ELS43 + EQUAL? PRSI,FLASHLIGHT \?ELS43 +?THN44: PRINTR "The salesman tries to look disinterested." +?ELS43: EQUAL? PRSA,V?FOLLOW \?ELS51 + EQUAL? FOLLOW-FLAG,8 \?ELS51 + PRINT DONT-WANT-TO + RTRUE +?ELS51: EQUAL? PRSA,V?BARTER-WITH \?ELS55 + PRINTR "Just give him something!" +?ELS55: EQUAL? PRSA,V?COUNT \FALSE + PRINTR "Lots." + + + .FUNCT I-SALESMAN + CALL QUEUE,I-SALESMAN,-1 + IN? SALESMAN,HERE /?CND1 + FCLEAR SALESMAN,TOUCHBIT + CALL DEQUEUE,I-SALESMAN + RFALSE +?CND1: PRINTI " " + FSET? SALESMAN,TOUCHBIT \?ELS8 + CALL PICK-ONE,SALESMANISMS + PRINT STACK + CRLF + RTRUE +?ELS8: FSET SALESMAN,TOUCHBIT + FCLEAR ODD-MACHINE,NDESCBIT + CALL THIS-IS-IT,SALESMAN + PRINTI "A salesman approaches you. ""You look like a " + ZERO? MALE /?ELS13 + PRINTI "fella" + JUMP ?CND11 +?ELS13: PRINTI "doll" +?CND11: PRINTR " who can spot a good deal. One of my machines could change your life! Let's barter; offer me something as an even-up trade.""" + + + .FUNCT ODD-MACHINE-F,OBJ-IN-MACHINE + FIRST? ODD-MACHINE >OBJ-IN-MACHINE /?KLU81 +?KLU81: EQUAL? PRSA,V?BUY \?ELS5 + IN? ODD-MACHINE,SALESMAN \?ELS5 + CALL QUEUE,I-SALESMAN,2 + PRINTR """I wouldn't part with this baby for a hundred marsmids!""" +?ELS5: EQUAL? PRSA,V?PUT \?ELS9 + FSET? ODD-MACHINE,OPENBIT \?ELS9 + EQUAL? PRSI,ODD-MACHINE \?ELS9 + ZERO? OBJ-IN-MACHINE /?ELS16 + EQUAL? PRSO,OBJ-IN-MACHINE /?ELS16 + PRINT ONLY-ONE-THING-IN-COMPARTMENT + RTRUE +?ELS16: EQUAL? PRSO,BABY \?ELS20 + PRINTR "The baby cries so ferociously, you reconsider." +?ELS20: FIRST? PRSO \FALSE + PRINT YOULL-HAVE-TO + PRINTI "empty" + CALL TPRINT-PRSO + PRINTI " first. " + PRINT ONLY-ONE-THING-IN-COMPARTMENT + RTRUE +?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS24 + PRINTI "The " + PRINTD ODD-MACHINE + PRINTI " is off, and has a small, " + CALL OPEN-CLOSED,ODD-MACHINE + PRINTI " compartment" + ZERO? OBJ-IN-MACHINE /?CND25 + FSET? ODD-MACHINE,OPENBIT \?CND25 + PRINTI " containing" + CALL APRINT,OBJ-IN-MACHINE +?CND25: PRINT PERIOD-CR + RTRUE +?ELS24: EQUAL? PRSA,V?ON,V?OPEN,V?TAKE \?ELS31 + FSET? ODD-MACHINE,TRYTAKEBIT \?ELS31 + CALL QUEUE,I-SALESMAN,2 + PRINTR """Hey!"" The salesman jumps back. ""No deal, no merchandise.""" +?ELS31: EQUAL? PRSA,V?BARTER-FOR \?ELS35 + EQUAL? PRSI,ODD-MACHINE \?ELS40 + CALL PERFORM,V?GIVE,PRSO,SALESMAN + RTRUE +?ELS40: CALL PERFORM,V?BARTER-WITH,SALESMAN + RTRUE +?ELS35: EQUAL? PRSA,V?OFF \?ELS44 + PRINT ALREADY-IS + RTRUE +?ELS44: EQUAL? PRSA,V?ON \?ELS46 + FSET? ODD-MACHINE,OPENBIT \?ELS51 + PRINT NOTHING-HAPPENS + RTRUE +?ELS51: ZERO? OBJ-IN-MACHINE /?ELS56 + GETP OBJ-IN-MACHINE,P?NO-T-DESC + ZERO? STACK /?ELS56 + EQUAL? OBJ-IN-MACHINE,TUBE,TORCH \?CND59 + FSET OBJ-IN-MACHINE,VOWELBIT +?CND59: EQUAL? OBJ-IN-MACHINE,TORCH \?CND62 + CALL DEQUEUE,I-TORCH +?CND62: FCLEAR OBJ-IN-MACHINE,CONTBIT + FCLEAR OBJ-IN-MACHINE,SEARCHBIT + FCLEAR OBJ-IN-MACHINE,OPENBIT + FCLEAR OBJ-IN-MACHINE,READBIT + FCLEAR OBJ-IN-MACHINE,VEHBIT + FCLEAR OBJ-IN-MACHINE,WEARBIT + FCLEAR OBJ-IN-MACHINE,ONBIT + FCLEAR OBJ-IN-MACHINE,SURFACEBIT + FSET OBJ-IN-MACHINE,UNTEEDBIT + JUMP ?CND54 +?ELS56: EQUAL? OBJ-IN-MACHINE,RABBIT \?CND54 + FSET RABBIT,UNTEEDBIT +?CND54: EQUAL? OBJ-IN-MACHINE,CHOCOLATE \?CND67 + FSET? CHOCOLATE,SMELLEDBIT /?CND67 + FCLEAR CHOCOLATE,UNTEEDBIT +?CND67: PRINTR "Sparks! Explosions! ""Pockita pockita pockita FEEP!"" exclaims the machine." +?ELS46: EQUAL? PRSA,V?OPEN \FALSE + IN? RABBIT,ODD-MACHINE \FALSE + FSET? RABBIT,UNTEEDBIT \FALSE + FSET ODD-MACHINE,OPENBIT + REMOVE RABBIT + PRINTI "A bearded rabbi wearing a prayer shawl leaps out of the machine, recites a Torah blessing, and " + EQUAL? HERE,CANAL,IN-SPACE \?ELS78 + PRINTI "swim" + JUMP ?CND76 +?ELS78: PRINTI "dashe" +?CND76: PRINTR "s off in search of a minyan." + + + .FUNCT MAD-SCIENTIST-DOOR-F + EQUAL? PRSA,V?KNOCK \FALSE + EQUAL? HERE,LOOKS-CAN-BE-DECEIVING /FALSE + FSET? CAGE,MUNGBIT /FALSE + FSET PRSO,OPENBIT + PRINTI "The door is thrown open by a wild-eyed " + PRINTD MAD-SCIENTIST + PRINTI ". """ + FSET? LOOKS-CAN-BE-DECEIVING,TOUCHBIT \?ELS10 + PRINTI "Ach! You haf returned! Ve can continue der experiment!" + JUMP ?CND8 +?ELS10: PRINTI "Nein! Nein! Nein! I don't need any!"" Then, taking a closer look at you through spectacles thick enough to stop gamma rays, he says, ""Oh! Not ein salesman! In fact, just der type I need for mein experiment." +?CND8: CALL ULTIMATELY-IN?,FLEXIBLE-HOLE + ZERO? STACK /?CND13 + PRINTI " But leaf your " + IN? FLEXIBLE-HOLE,TUBE \?ELS18 + PRINTD TUBE + MOVE TUBE,HERE + JUMP ?CND16 +?ELS18: PRINTD FLEXIBLE-HOLE + MOVE FLEXIBLE-HOLE,HERE +?CND16: PRINTI " outsite,"" he says, knocking it to the ground, ""I'm allergic." +?CND13: PRINTI """ He grips your wrist with surprising strength and drags you inside." + CRLF + CRLF + MOVE MAD-SCIENTIST,LOOKS-CAN-BE-DECEIVING + CALL GOTO,LOOKS-CAN-BE-DECEIVING + RSTACK + + + .FUNCT LOOKS-CAN-BE-DECEIVING-F,RARG,OPEN-DOOR=0 + FSET? FRONT-DOOR-OBJECT,OPENBIT \?ELS3 + SET 'OPEN-DOOR,FRONT-DOOR-OBJECT + JUMP ?CND1 +?ELS3: FSET? BACK-DOOR-OBJECT,OPENBIT \?CND1 + SET 'OPEN-DOOR,BACK-DOOR-OBJECT +?CND1: EQUAL? RARG,M-LOOK \?ELS10 + PRINTI "From the innocent appearance of this quiet living area, you'd never guess that all sorts of twisted, maniacal, perverted experiments are in progress a short flight of stairs below. There are doors to the north" + EQUAL? OPEN-DOOR,BACK-DOOR-OBJECT \?CND11 + PRINTI " (open)" +?CND11: PRINTI " and south" + EQUAL? OPEN-DOOR,FRONT-DOOR-OBJECT \?CND14 + PRINTI " (open)" +?CND14: ZERO? OPEN-DOOR \?CND17 + PRINTI ", both closed" +?CND17: PRINTI "." + RTRUE +?ELS10: EQUAL? RARG,M-END \FALSE + ZERO? OPEN-DOOR /FALSE + CALL QUEUE,I-MAD-SCIENTIST,2 + FCLEAR OPEN-DOOR,OPENBIT + PRINTI " You feel uneasy as" + CALL TPRINT,MAD-SCIENTIST + PRINTR " locks the door behind you and dissolves the key in a vat of acid." + + + .FUNCT MAD-SCIENTIST-F,OARG=0 + ZERO? OARG /?ELS5 + ZERO? IMPATIENCE-COUNTER /FALSE + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " The wild-eyed " + PRINTD MAD-SCIENTIST + PRINTI " is " + GET MAD-SCIENTIST-DESCS,MAD-SCIENTIST-COUNTER + PRINT STACK + RTRUE +?ELS5: EQUAL? MAD-SCIENTIST,WINNER \?ELS13 + EQUAL? PRSA,V?WHAT \?ELS22 + EQUAL? PRSO,LGOP /?THN19 +?ELS22: EQUAL? PRSA,V?TELL-ABOUT \?ELS18 + EQUAL? PRSO,ME \?ELS18 + EQUAL? PRSI,LGOP \?ELS18 +?THN19: PRINTI """Eh?"" yells" + CALL TPRINT,MAD-SCIENTIST + PRINTR ", cupping his ear. ""Heather bodices of no-doze? Vat in heck are you jabbering about?""" +?ELS18: PRINTI "The " + PRINTD MAD-SCIENTIST + PRINTI " ignores you, cackling with inner glee." + CRLF + CALL STOP + RSTACK +?ELS13: EQUAL? PRSA,V?FOLLOW \FALSE + EQUAL? FOLLOW-FLAG,17 \FALSE + CALL DO-WALK,P?NORTH + RSTACK + + + .FUNCT I-MAD-SCIENTIST + PRINTI " " + ZERO? MAD-SCIENTIST-COUNTER \?ELS5 + INC 'IMPATIENCE-COUNTER + CALL QUEUE,I-MAD-SCIENTIST,2 + EQUAL? IMPATIENCE-COUNTER,1 \?ELS10 + PRINTI """Let us retire to der laboratory,"" suggests" + CALL TRPRINT,MAD-SCIENTIST + RSTACK +?ELS10: EQUAL? IMPATIENCE-COUNTER,2 \?ELS12 + PRINTI """Downstairs, please,"" says" + CALL TPRINT,MAD-SCIENTIST + PRINTR ", impatiently." +?ELS12: EQUAL? IMPATIENCE-COUNTER,3 \?ELS14 + PRINTI "The " + PRINTD MAD-SCIENTIST + PRINTR ", fidgeting himself into a frenzy, motions toward the stairs." +?ELS14: PRINTI "The " + PRINTD MAD-SCIENTIST + PRINTI " loses his patience and opens the trapdoor, dumping you" + CALL AND-SIDEKICK,LABORATORY + PRINTI " down a chute" + PRINT ELLIPSIS + CALL GOTO,LABORATORY + CALL LABORATORY-F,M-END + RTRUE +?ELS5: EQUAL? MAD-SCIENTIST-COUNTER,1 \?ELS18 + MOVE PROTAGONIST,FIRST-SLAB + CALL QUEUE,I-MAD-SCIENTIST,3 + SET 'MAD-SCIENTIST-COUNTER,2 + SET 'BODY-TIED-TO-SLAB,TRUE-VALUE + PRINTI "Again exhibiting extraordinary strength," + CALL TPRINT,MAD-SCIENTIST + PRINTI " straps you down on" + CALL TPRINT,FIRST-SLAB + CALL VISIBLE?,SIDEKICK + ZERO? STACK /?CND19 + MOVE SIDEKICK,SECOND-SLAB + SET 'SIDEKICKS-BODY-TIED-TO-SLAB,TRUE-VALUE + PRINTI " and " + CALL DPRINT-SIDEKICK + PRINTI " onto" + CALL TPRINT,SECOND-SLAB +?CND19: PRINT PERIOD-CR + RTRUE +?ELS18: EQUAL? MAD-SCIENTIST-COUNTER,2 \?ELS23 + CALL QUEUE,I-MAD-SCIENTIST,6 + SET 'MAD-SCIENTIST-COUNTER,3 + CALL IDENTITY-TRANSFER + PRINTI "The " + PRINTD MAD-SCIENTIST + PRINTI " flips" + CALL TPRINT,POWER-SWITCH + PRINTI ", and you suddenly find yourself within the cage. Oddly, you can also see yourself still strapped to" + CALL TPRINT,FIRST-SLAB + PRINTR ". As you swing across the cage to get a better look, you realize that you're now inside the body of a gorilla." +?ELS23: EQUAL? MAD-SCIENTIST-COUNTER,3 \FALSE + CALL MINE-THEORY + RSTACK + + + .FUNCT LABORATORY-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + CALL QUEUED?,I-ION-DEATH + ZERO? STACK /?ELS5 + FSET POWER-TRANSMITTER,MUNGBIT + CALL QUEUE,I-ION-DEATH,1 + RSTACK +?ELS5: EQUAL? RARG,M-LOOK \?ELS9 + PRINTI "The scientist's madness is finally evident by his lab, filled with many expressions of insane genius, such as the " + FSET? MALE-GORILLA,NDESCBIT \?ELS12 + FSET? FEMALE-GORILLA,NDESCBIT \?ELS12 + PRINTI "two caged gorillas, one male and one female" + JUMP ?CND10 +?ELS12: PRINTI "cage" +?CND10: PRINTI ", the two slabs for strapping down human victims, and" + CALL TPRINT,POWER-SWITCH + PRINTI ". A closed door leads north; at the foot of the winding stone stairs is" + CALL APRINT,HOLE + PRINTI "." + RTRUE +?ELS9: EQUAL? RARG,M-END \FALSE + IN? MAD-SCIENTIST,LOOKS-CAN-BE-DECEIVING \FALSE + FCLEAR MALE-GORILLA,NDESCBIT + FCLEAR FEMALE-GORILLA,NDESCBIT + MOVE MAD-SCIENTIST,HERE + CALL QUEUE,I-MAD-SCIENTIST,5 + SET 'MAD-SCIENTIST-COUNTER,1 + PRINTI " The " + PRINTD MAD-SCIENTIST + PRINTR " bounds down from the first floor, activating a (guaranteed 100% effective) Vaporo-Zap Energy Barrier across the foot of the stairs." + + + .FUNCT LAB-DOOR-ENTER-F + CALL DO-FIRST,STR?364 + RFALSE + + + .FUNCT LAB-DOOR-F + EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5 + CALL PERFORM-PRSA,BACK-DOOR-OBJECT + RTRUE +?ELS5: EQUAL? PRSA,V?KNOCK \FALSE + CALL PERFORM-PRSA,WIDE-CELL-DOOR + RTRUE + + + .FUNCT STRAP-F + EQUAL? PRSA,V?OPEN,V?UNTIE \FALSE + CALL PERFORM,V?UNTIE,ME + RTRUE + + + .FUNCT POWER-SWITCH-F + CALL TOUCHING?,POWER-SWITCH + ZERO? STACK /?ELS5 + IN? PROTAGONIST,HERE /?ELS5 + CALL CANT-REACH,POWER-SWITCH + RSTACK +?ELS5: EQUAL? PRSA,V?OFF,V?ON,V?SET /?THN12 + EQUAL? PRSA,V?PUSH,V?MOVE,V?THROW /?THN12 + EQUAL? PRSA,V?OPEN,V?LOWER,V?RAISE /?THN12 + EQUAL? PRSA,V?CLOSE \FALSE +?THN12: EQUAL? PRSO,POWER-SWITCH \FALSE + IN? MAD-SCIENTIST,HERE \?ELS18 + PRINTI "The " + PRINTD MAD-SCIENTIST + PRINTR " stops you." +?ELS18: CALL IDENTITY-TRANSFER + PRINTI "Zap! You're back in " + ZERO? GONE-APE /?ELS23 + PRINTI "the body of the " + ZERO? MALE \?CND25 + PRINTI "fe" +?CND25: PRINTD MALE-GORILLA + PRINTI "." + JUMP ?CND21 +?ELS23: FSET? RUBBER-HOSE,MUNGBIT /?CND30 + FSET RUBBER-HOSE,MUNGBIT + CALL INCREMENT-SCORE,19,24,TRUE-VALUE +?CND30: MOVE MALE-GORILLA,CAGE + MOVE FEMALE-GORILLA,CAGE + PRINTI "your own body! The gorilla looks confused and slinks back into the comfortingly familiar environment of the cage." +?CND21: ZERO? BODY-TIED-TO-SLAB /?CND33 + ZERO? SIDEKICKS-BODY-TIED-TO-SLAB \?CND33 + CALL VISIBLE?,SIDEKICK + ZERO? STACK /?CND33 + SET 'BODY-TIED-TO-SLAB,FALSE-VALUE + MOVE SIDEKICK,HERE + PRINTI " " + CALL DPRINT-SIDEKICK + PRINTI " rushes over and unties you." +?CND33: CRLF + RTRUE + + + .FUNCT IDENTITY-TRANSFER + CALL OPEN-EYES-AND-REMOVE-HANDS + ZERO? GONE-APE /?ELS5 + ZERO? MALE /?ELS9 + CALL ROB,PROTAGONIST,MALE-GORILLA + LOC PROTAGONIST + MOVE MALE-GORILLA,STACK + FCLEAR MALE-GORILLA,NDESCBIT + JUMP ?CND7 +?ELS9: CALL ROB,PROTAGONIST,FEMALE-GORILLA + LOC PROTAGONIST + MOVE FEMALE-GORILLA,STACK + FCLEAR FEMALE-GORILLA,NDESCBIT +?CND7: CALL VISIBLE?,SIDEKICKS-BODY + ZERO? STACK /?CND13 + LOC SIDEKICKS-BODY + MOVE SIDEKICK,STACK + REMOVE SIDEKICKS-BODY +?CND13: LOC YOUR-BODY + MOVE PROTAGONIST,STACK + CALL ROB,YOUR-BODY,PROTAGONIST + REMOVE YOUR-BODY + SET 'GONE-APE,FALSE-VALUE + RETURN GONE-APE +?ELS5: SET 'GONE-APE,TRUE-VALUE + LOC PROTAGONIST + MOVE YOUR-BODY,STACK + CALL ROB,PROTAGONIST,YOUR-BODY + ZERO? MALE /?ELS20 + LOC MALE-GORILLA + MOVE PROTAGONIST,STACK + FSET MALE-GORILLA,NDESCBIT + CALL ROB,MALE-GORILLA,PROTAGONIST + JUMP ?CND18 +?ELS20: LOC FEMALE-GORILLA + MOVE PROTAGONIST,STACK + FSET FEMALE-GORILLA,NDESCBIT + CALL ROB,FEMALE-GORILLA,PROTAGONIST +?CND18: CALL VISIBLE?,SIDEKICK + ZERO? STACK /FALSE + LOC SIDEKICK + MOVE SIDEKICKS-BODY,STACK + REMOVE SIDEKICK + RTRUE + + + .FUNCT LABORATORY-EXIT-F + CALL JIGS-UP,STR?365 + RSTACK + + + .FUNCT CAGE-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "The bars " + FSET? CAGE,MUNGBIT \?ELS8 + PRINTI "have been" + PRINT SPREAD-APART + JUMP ?CND6 +?ELS8: PRINTI "seem sturdy" +?CND6: PRINT PERIOD-CR + RTRUE +?ELS5: EQUAL? PRSA,V?WALK-TO,V?BOARD,V?ENTER /?THN15 + EQUAL? PRSA,V?EXIT,V?LEAVE,V?DISEMBARK \?ELS12 +?THN15: EQUAL? HERE,LABORATORY \?ELS12 + FSET? CAGE,MUNGBIT /?ELS12 + PRINTR "You don't fit between the bars." +?ELS12: EQUAL? PRSA,V?BEND,V?MUNG,V?OPEN /?THN19 + EQUAL? PRSA,V?MOVE \?ELS18 + CALL NOUN-USED,W?CAGE,CAGE + ZERO? STACK \?ELS18 +?THN19: FSET? CAGE,MUNGBIT \?ELS27 + PRINT SENILITY-STRIKES + RTRUE +?ELS27: ZERO? GONE-APE \?ELS29 + PRINTR "This cage was built to hold an ape! Mere human strength is nothing against these bars!" +?ELS29: PRINTI "Bellowing madly, you pull at the bars! " + EQUAL? SUGAR-RUSH,GORILLA-ATE-CHOCOLATE \?ELS36 + FSET CAGE,MUNGBIT + PRINTI "Slowly, they" + PRINT SPREAD-APART + PRINTI "." + IN? MAD-SCIENTIST,HERE \?ELS41 + PRINTI " The " + PRINTD MAD-SCIENTIST + CALL JIGS-UP,STR?366 + RSTACK +?ELS41: CRLF + RTRUE +?ELS36: PRINTR "They almost give, but you haven't got quite enough strength." +?ELS18: EQUAL? PRSA,V?PUT \?ELS47 + EQUAL? PRSI,CAGE \?ELS47 + LOC PROTAGONIST + EQUAL? STACK,FIRST-SLAB,SECOND-SLAB \?ELS47 + CALL CANT-REACH,CAGE + RSTACK +?ELS47: EQUAL? PRSA,V?REACH-IN \FALSE + IN? PROTAGONIST,CAGE \?ELS56 + PRINT LOOK-AROUND + RTRUE +?ELS56: IN? RUBBER-HOSE,CAGE \FALSE + CALL CANT-REACH,RUBBER-HOSE + RSTACK + + + .FUNCT GORILLA-F + ZERO? GONE-APE /?ELS5 + ZERO? MALE /?ELS5 + EQUAL? PRSO,MALE-GORILLA \?ELS5 + CALL PERFORM-PRSA,ME,PRSI + RTRUE +?ELS5: ZERO? GONE-APE /?ELS9 + ZERO? MALE /?ELS9 + EQUAL? PRSI,MALE-GORILLA \?ELS9 + CALL PERFORM-PRSA,PRSO,ME + RTRUE +?ELS9: ZERO? GONE-APE /?ELS13 + ZERO? MALE \?ELS13 + EQUAL? PRSO,FEMALE-GORILLA \?ELS13 + CALL PERFORM-PRSA,ME,PRSI + RTRUE +?ELS13: ZERO? GONE-APE /?ELS17 + ZERO? MALE \?ELS17 + EQUAL? PRSI,FEMALE-GORILLA \?ELS17 + CALL PERFORM-PRSA,PRSO,ME + RTRUE +?ELS17: EQUAL? PRSA,V?TELL \?ELS21 + PRINTI """Ooo oo ee ee ee!""" + CRLF + CALL STOP + RSTACK +?ELS21: EQUAL? PRSA,V?GIVE \?ELS23 + EQUAL? PRSI,FEMALE-GORILLA,MALE-GORILLA \?ELS23 + LOC PROTAGONIST + EQUAL? STACK,FIRST-SLAB,SECOND-SLAB \?ELS30 + CALL CANT-REACH,PRSI + RSTACK +?ELS30: CALL EAGERLY-ACCEPTS + PRINT PERIOD-CR + RTRUE +?ELS23: EQUAL? PRSA,V?EXAMINE \?ELS34 + ZERO? GONE-APE /?ELS37 + SET 'GORILLA-EXAMINED,TRUE-VALUE + CALL NOT-BAD-LOOKING + JUMP ?CND35 +?ELS37: PRINTI "An uglier beast cannot possibly exist." +?CND35: FIRST? PRSO \?ELS45 + PRINTI " " + RFALSE +?ELS45: CRLF + RTRUE +?ELS34: EQUAL? PRSA,V?TOUCH,V?KISS,V?FUCK \FALSE + ZERO? GONE-APE \?ELS54 + PRINTR "What a repulsive, bestial idea!" +?ELS54: ZERO? NAUGHTY-LEVEL \?ELS59 + PRINTI "Normally, we wouldn't allow this in TAME mode, but it's okay in this case since you're only a gorilla. This sort of thing appears all the time in National Geographic." + JUMP ?CND57 +?ELS59: ZERO? GORILLA-EXAMINED \?CND62 + SET 'GORILLA-EXAMINED,TRUE-VALUE + CALL NOT-BAD-LOOKING + PRINTI " " +?CND62: PRINTI "You begin nuzzling, and things quickly get hot and heavy." + EQUAL? NAUGHTY-LEVEL,2 \?CND57 + PRINTI " The " + PRINTD PRSO + PRINTI " screams, ""Eee oo oo ah!"" which translates roughly as ""Oh, you animal!""" +?CND57: IN? MAD-SCIENTIST,HERE \?ELS72 + PRINTI " " + CALL MINE-THEORY,TRUE-VALUE + RSTACK +?ELS72: CRLF + RTRUE + + + .FUNCT GENERIC-GORILLA-F + ZERO? GONE-APE /FALSE + ZERO? MALE /?ELS7 + RETURN FEMALE-GORILLA +?ELS7: RETURN MALE-GORILLA + + + .FUNCT NOT-BAD-LOOKING + PRINTI "Hey! The " + PRINTD PRSO + PRINTI " isn't bad-looking!" + RTRUE + + + .FUNCT MINE-THEORY,RIGHT=0 + REMOVE MAD-SCIENTIST + CALL DEQUEUE,I-MAD-SCIENTIST + SET 'FOLLOW-FLAG,17 + CALL QUEUE,I-FOLLOW,2 + PRINTI """Ach!"" yells" + CALL TPRINT,MAD-SCIENTIST + PRINTI ", ""mein theory iss " + ZERO? RIGHT /?ELS3 + PRINTI "correct" + JUMP ?CND1 +?ELS3: PRINTI "wronk" +?CND1: PRINTI "! Der sex drive uf a species resides in der b" + ZERO? RIGHT /?ELS9 + PRINTI "ody" + JUMP ?CND7 +?ELS9: PRINTI "rain" +?CND7: PRINTI ", not in der b" + ZERO? RIGHT /?ELS15 + PRINTI "rain" + JUMP ?CND13 +?ELS15: PRINTI "ody" +?CND13: PRINTI "!"" He dashes off." + CRLF + CALL VISIBLE?,SIDEKICKS-BODY + ZERO? STACK /TRUE + PRINTI " Through the briefly open door, you see two " + PRINTD FLYTRAP + PRINTR "s running madly around the next room. One is chasing, while the other is frantically trying to stay as far away as possible." + + + .FUNCT RUBBER-HOSE-F + EQUAL? PRSA,V?MEASURE,V?EXAMINE \?ELS5 + PRINTR "The hose is around six feet long." +?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \FALSE + PRINT ONLY-BLACKNESS + RTRUE + + + .FUNCT FIRST-SLAB-F + EQUAL? PRSA,V?DISEMBARK \?ELS5 + ZERO? GONE-APE \?ELS5 + ZERO? BODY-TIED-TO-SLAB /?ELS5 + PRINTR "You're strapped down." +?ELS5: EQUAL? PRSA,V?PUT-ON \FALSE + EQUAL? PRSI,FIRST-SLAB \FALSE + IN? PROTAGONIST,CAGE \FALSE + CALL CANT-REACH,FIRST-SLAB + RSTACK + + + .FUNCT SECOND-SLAB-F + EQUAL? PRSA,V?PUT-ON \FALSE + EQUAL? PRSI,SECOND-SLAB \FALSE + IN? PROTAGONIST,CAGE \FALSE + CALL CANT-REACH,SECOND-SLAB + RSTACK + + + .FUNCT GENERIC-SLAB-F + LOC PROTAGONIST + EQUAL? STACK,FIRST-SLAB,SECOND-SLAB \FALSE + LOC PROTAGONIST + RSTACK + + + .FUNCT YOUR-BODY-F + EQUAL? PRSA,V?TELL \?ELS5 + CALL PERFORM-PRSA,MALE-GORILLA + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7 + PRINTI "Your body" + IN? YOUR-BODY,FIRST-SLAB \?CND8 + PRINTI " on" + CALL TPRINT,FIRST-SLAB +?CND8: PRINTR " is grunting, scratching itself with its foot, and looking around the room for a banana." +?ELS7: EQUAL? PRSA,V?GIVE \?ELS12 + EQUAL? PRSI,YOUR-BODY \?ELS12 + CALL EAGERLY-ACCEPTS + PRINT PERIOD-CR + RTRUE +?ELS12: EQUAL? PRSA,V?TAKE \?ELS16 + EQUAL? PRSO,YOUR-BODY \?ELS16 + PRINTI "Carrying " + PRINTD YOUR-BODY + PRINTI " around" + CALL HO-HUM + RSTACK +?ELS16: EQUAL? PRSA,V?TIE \?ELS20 + EQUAL? PRSO,SECOND-SLAB,FIRST-SLAB \?ELS20 + ZERO? BODY-TIED-TO-SLAB \?ELS20 + EQUAL? PRSO,SECOND-SLAB \?CND23 + PRINTI "[the first slab is closer]" + CRLF +?CND23: SET 'BODY-TIED-TO-SLAB,TRUE-VALUE + CALL NOW-TIED,FIRST-SLAB + RSTACK +?ELS20: EQUAL? PRSA,V?UNTIE \FALSE + IN? PROTAGONIST,CAGE \?ELS32 + CALL CANT-REACH,YOUR-BODY + RSTACK +?ELS32: ZERO? GONE-APE /?ELS34 + ZERO? BODY-TIED-TO-SLAB /?ELS40 + SET 'BODY-TIED-TO-SLAB,FALSE-VALUE + PRINTI "Your body leaps for a rafter and lands back on" + CALL TPRINT,FIRST-SLAB + PRINTR " with a loud ""whump,"" looking momentarily stunned." +?ELS40: PRINT SENILITY-STRIKES + RTRUE +?ELS34: ZERO? BODY-TIED-TO-SLAB /?ELS45 + CALL YUKS + RSTACK +?ELS45: PRINTR "Your body isn't tied down!" + + + .FUNCT SIDEKICKS-BODY-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + CALL HIS-HER,TRUE-VALUE + PRINTR " eyes are darting around the room, as though following a fly." +?ELS5: EQUAL? PRSA,V?TIE \?ELS7 + EQUAL? PRSO,SECOND-SLAB \?ELS12 + ZERO? SIDEKICKS-BODY-TIED-TO-SLAB /?ELS12 + CALL DPRINT-SIDEKICK + PRINTR " already is!" +?ELS12: EQUAL? PRSO,SECOND-SLAB \?ELS16 + ZERO? GONE-APE /?ELS16 + SET 'SIDEKICKS-BODY-TIED-TO-SLAB,TRUE-VALUE + CALL NOW-TIED,SECOND-SLAB + RSTACK +?ELS16: CALL WASTES + RSTACK +?ELS7: EQUAL? PRSA,V?UNTIE \FALSE + LOC PROTAGONIST + EQUAL? STACK,CAGE,FIRST-SLAB \?ELS27 + CALL CANT-REACH,SIDEKICKS-BODY + RSTACK +?ELS27: ZERO? GONE-APE /?ELS29 + ZERO? SIDEKICKS-BODY-TIED-TO-SLAB /?ELS35 + SET 'SIDEKICKS-BODY-TIED-TO-SLAB,FALSE-VALUE + PRINTI "As you untie " + CALL DPRINT,SIDEKICKS-BODY + PRINTR ", it attempts to wrap its arms around you as though they were tentacles." +?ELS35: PRINT SENILITY-STRIKES + RTRUE +?ELS29: CALL DPRINT,SIDEKICKS-BODY + PRINTR " isn't tied down!" + + + .FUNCT ROCKY-CLIFFTOP-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "Even the most adaptable Venusian flora can't gain a foothold on this outcropping, so the jungle (which can be entered to the north or west) peters out here. To the southeast, your clifftop vantage offers a stunning view of more lush jungle, stretching unbroken to the horizon. + To the northwest, between the two paths into the jungle, is a vizicomm booth. At the edge of the cliff is" + CALL APRINT,HOLE + PRINTI "." + RTRUE +?ELS5: EQUAL? RARG,M-END \FALSE + ZERO? GONE-APE /FALSE + CALL JIGS-UP,STR?368 + RSTACK + + + .FUNCT CLIFF-OBJECT-F + EQUAL? PRSA,V?LEAP-OFF \?ELS5 + SET 'PRSO,FALSE-VALUE + CALL V-LEAP + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + CALL V-LOOK + RSTACK + + + .FUNCT BOOTH-OBJECT-F + EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5 + EQUAL? HERE,ROCKY-CLIFFTOP \?ELS10 + CALL DO-WALK,P?NW + RSTACK +?ELS10: EQUAL? HERE,VIZICOMM-BOOTH \FALSE + PRINT LOOK-AROUND + RTRUE +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS14 + EQUAL? HERE,ROCKY-CLIFFTOP \?ELS19 + PRINT LOOK-AROUND + RTRUE +?ELS19: CALL DO-WALK,P?SE + RSTACK +?ELS14: EQUAL? PRSA,V?EXAMINE \?ELS23 + EQUAL? HERE,VIZICOMM-BOOTH \?ELS23 + CALL V-LOOK + RSTACK +?ELS23: EQUAL? PRSA,V?SEARCH \?ELS27 + PRINT NOTHING-NEW + RTRUE +?ELS27: EQUAL? PRSA,V?LOOK-INSIDE \FALSE + EQUAL? HERE,ROCKY-CLIFFTOP \FALSE + PRINT CANT-FROM-HERE + RTRUE + + + .FUNCT VIZICOMM-BOOTH-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "This small booth, which opens to the southeast, contains" + PRINT VIZICOMM-DESC + PRINTI " A red sign is posted over the vizicomm." + RTRUE +?ELS5: EQUAL? RARG,M-END \FALSE + ZERO? GONE-APE /FALSE + CALL VISIBLE?,FLEXIBLE-HOLE + ZERO? STACK /FALSE + CALL ROCKY-CLIFFTOP-F,M-END + RSTACK + + + .FUNCT VIZICOMM-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's" + PRINT VIZICOMM-DESC + CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?SET \FALSE + PRINTR "The dial is stuck and won't turn." + + + .FUNCT DIAL-F + EQUAL? PRSA,V?MOVE,V?SET \?ELS5 + CALL PERFORM,V?SET,VIZICOMM + RTRUE +?ELS5: EQUAL? PRSA,V?TAKE \FALSE + PRINT PART-OF-VIZICOMM + RTRUE + + + .FUNCT COIN-SLOT-F + EQUAL? PRSA,V?TAKE \?ELS5 + PRINT PART-OF-VIZICOMM + RTRUE +?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS7 + PRINT ONLY-BLACKNESS + RTRUE +?ELS7: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSO,ONE-MARSMID-COIN,TEN-MARSMID-COIN \FALSE + MOVE PRSO,COIN-RETURN-KNOB + PRINTR """Clink.""" + + + .FUNCT HANDSET-F + EQUAL? PRSA,V?RAISE,V?LISTEN,V?PICK-UP /?THN6 + EQUAL? PRSA,V?PICK-UP \?ELS5 +?THN6: PRINTR "There's no dial tone." +?ELS5: EQUAL? PRSA,V?TAKE \FALSE + PRINT PART-OF-VIZICOMM + RTRUE + + + .FUNCT COIN-RETURN-KNOB-F,COIN=0 + EQUAL? PRSA,V?SET,V?MOVE,V?PUSH \?ELS5 + FIRST? COIN-RETURN-KNOB >COIN \?ELS10 + MOVE COIN,COIN-RETURN-BOX + PRINTR """Clank.""" +?ELS10: PRINT NOTHING-HAPPENS + RTRUE +?ELS5: EQUAL? PRSA,V?TAKE \FALSE + PRINT PART-OF-VIZICOMM + RTRUE + + + .FUNCT COIN-RETURN-BOX-F,COIN=0 + EQUAL? PRSA,V?SEARCH,V?REACH-IN,V?LOOK-INSIDE /?THN6 + EQUAL? PRSA,V?OPEN \FALSE +?THN6: FIRST? COIN-RETURN-BOX >COIN \?ELS12 + MOVE COIN,HERE + CALL THIS-IS-IT,COIN + PRINTR "A coin falls to the ground!" +?ELS12: PRINTR "The box is empty. Upon letting go, it swings shut." + + + .FUNCT GENERIC-COIN-F + RETURN ONE-MARSMID-COIN + + .ENDI diff --git a/venus.zil b/venus.zil new file mode 100644 index 0000000..8715acf --- /dev/null +++ b/venus.zil @@ -0,0 +1,1560 @@ +"VENUS for + LEATHER GODDESSES OF PHOBOS + (c) Copyright 1986 Infocom, Inc. All Rights Reserved." + + + + + ) + ( + )>> + + + + + > + ) + ( + + + ) + (T + )> + + + + + )> + )> + )>> + + + + ) + ( + ,SPAWNING-GROUND) + (T + ,JUNGLE)>> + + + + ) + (T + )> + > + + + + + ) + ( + + ) + ( + + ) + ( + + )>) + ( + )>> + + + +> + +> + + > + + + > + + ) + (T + + > + + + + )> + ) + (T + + + )> + )>) + ( + + + + > + + + ) + ( + + > + ) + ( + + + + + ,TOO-LATE>> + ) + (T + )>) + ( + ,LEAVES-PLACED + > + + ) + (T + )>> + + + + + + + + + + + > + + + + + )>> + + + + + ) + ( + + > + )> + ) + ( + > + + > + )> + + ) + (T + ;"because PUT-ON checks it" + + )>) + ( + ) + ( + ) + ( + + ,W?JAR <> ;"false for ALL">>> + + + )> + + + + + > + + + + + + + + + ) + ( + > + ) + ( + ) + (T + + > + )> + + + > + ) + (T + + + ) + (T + + ) + ( + ) + (T + )> + )> + + > + )> + )>)>)>> + + + + + > + >> + ) + ( + + ) + (T + )> + )>> + +> + + + + + ) + ( + > + ) + ( + > + + ) + ( + + ) + ( + ) + ( + + )>) + ( + ) + ( + + ) + (T + )>) + ( + ,LEAVES-PLACED> + + ) + ( + + > + + ) + ( + > + + ) + ( + > + + ) + ( + > + + )>> + + + + + )>> + + + + ,FRONT-DOOR) + ( + ,BACK-DOOR) + (T + + + )> + )>> + + + + + ) + ( + ) + ( + > + ) + ( + > + + ) + ( + > + + ) + (T + )>) + ( + ) + ( + ) + ( + > + + ) + ( + + > + )>> + + + + ) + ( + + + + + + > ;"prevents YOU CAN'T SEE ANY... bug" + > ;"since parser doesn't clears P-ADJW" + + ) + (T + )> + ) + ( + + ) + (T + )>> + + + + ) + (T + )> + + )> + > + + + + + + + )>> + + + + + ;"he shouldn't speak twice in one turn" + + > + + + >> + ) + (T + + )>) + ( + > + + + + + + + + + + + + ) + (T + )> + + ) + (T + + + + ) + (T + >)> + )>) + ( + > + + >> + ) + ( + > + ) + ( + ) + ( + )>> + +> + +> + + + > + + + )> + + + CR>) + (T + + + + + ) + (T + )> + )>> + + + +> + + > + + ) + ( + + > + >> + ) + ( + ) + ( + )>) + ( + + + + > + )> + ) + ( + > + + ) + ( + + + ) + (T + + )>) + ( + ) + ( + + ) + (T + > + + )> + + )> + + + + + + + + + ) + ( + )> + + >> + ;"there's no T in it's DESC yet" + )> + )>) + ( + + > + + + + + ) + (T + )> + )>> + + + + + + + > + >> + + + + ) + (T + )> + + + + + ) + (T + + )> + )> + + + )>> + + + +)) + + ) + ( + )> + + + + )> + + + )> + + )> + ) + ( + .OPEN-DOOR> + + + )>> + + + +)) + + ) + ( + )> + >) + ( + + > + + + >> + ) + (T + + )>) + ( + > + )>> + +> + + + + + + + + > + + + ) + ( + ) + ( + ) + (T + + + + + + )>) + ( + + + + + + + + + )> + ) + ( + + + + ) + ( + )>> + + DOOR LAB-DOOR-F) + (<> STRAP STRAP-F) + (<> STRAPS STRAP-F)>)> + + + > + + ;"explode before ape transfer not after") + ( + + + > + ) + (T + )> + ) + ( + > + ;"for sake of room desc" + ;"ditto" + + + + )>> + + + > + + + ;"very locked" + ) + ( + ;"silence answers" + )>> + + + + )>> + + + + + >> + ) + ( + > + + ) + (T + + + + + )> + ) + (T + > + + )> + + + )> + + > + > + + )> + )>)>> + + + + > + ) + (T + + > + )> + + > + )> + > + + + >) + (T + + > + + > + ;"refer to it = you" + ) + (T + > + ;"refer to it = you" + )> + + > + )>)>> + +> + + + + + + + ) + (T + )> + ) + ( + + >> + ) + ( + + >>> + + ) + ( + ) + (T + + + + + + + ) + (T + )>) + (T + )>)>) + ( + + ,FIRST-SLAB ,SECOND-SLAB>> + ) + ( + + ) + ( + )>)>> + +> + +> + +> + +> + + + + + +> + + ) + (> + + ) + ( + > + + ) + ( + > + + ) + ( + + ) + ( + > + ,FIRST-SLAB ,SECOND-SLAB> + ) + (T + + )>) + ( + + ) + (T + )> + + + ) + (T + )>) + ( + + ) + (T + + ) + (T + + + + )> + + + )>)> + + + ) + (T + )>)>)>> + + + ) + (,MALE + ) + (T + )>> + +> + +)) + + + + + + ) + (T + )> + + ) + (T + )> + + ) + (T + )> + + + )> + > + + + + + ) + ( + )>> + + + + + + ,BODY-TIED-TO-SLAB> + ) + ( + + > + )>> + + + + + + > + )>> + + ,FIRST-SLAB ,SECOND-SLAB> + >) + (T + )>> + + + + + + ) + ( + + + )> + ) + ( + > + + ) + ( + > + + ) + ( + + > + + )> + + ) + ( + + ) + (,GONE-APE + > + ) + (T + )>) + (,BODY-TIED-TO-SLAB + ) + (T + )>)>> + + + + + + ) + ( + + ,SIDEKICKS-BODY-TIED-TO-SLAB> + ) + ( + ,GONE-APE> + + ) + (T + )>) + ( + ,CAGE ,FIRST-SLAB> + ) + (,GONE-APE + > + ) + (T + )>) + (T + )>)>> + +)> + + + ) + ( + ,GONE-APE> + )>> + + + > + ) + ( + )>> + + + + + + ) + ( + )>) + ( + + ) + (T + )>) + ( + > + ) + ( + ) + ( + > + )>> + + DIAL DIAL-F) + (COIN SLOT COIN-SLOT-F)>)> + + + ) + ( + ,GONE-APE + > + ;"since trank dart doesn't usually get you until Clifftop" + )>> + + + + + ) + ( + )>> + + + + ) + ( + )>> + + + ) + ( + ) + ( + > + + )>> + + + + + ) + ( + )>> + + + +)) + + > + + ) + (T + )>) + ( + )>> + + + +)) + + > + + + ) + (T + )>)>> + + + + + + \ No newline at end of file diff --git a/verbs.zap b/verbs.zap new file mode 100644 index 0000000..7c2bf9a --- /dev/null +++ b/verbs.zap @@ -0,0 +1,4061 @@ + + + .FUNCT V-VERBOSE + SET 'VERBOSITY,2 + PRINTI "Maximum verbosity." + CRLF + CRLF + CALL V-LOOK + RSTACK + + + .FUNCT V-BRIEF + SET 'VERBOSITY,1 + PRINTR "Brief descriptions." + + + .FUNCT V-SUPER-BRIEF + SET 'VERBOSITY,0 + PRINTR "Super-brief descriptions." + + + .FUNCT V-TAME + ZERO? NAUGHTY-LEVEL \?ELS5 + PRINT ALREADY-IN-MODE + RTRUE +?ELS5: SET 'NAUGHTY-LEVEL,0 + PRINTR "Tame descriptions. [Yawn.]" + + + .FUNCT V-SUGGESTIVE + EQUAL? NAUGHTY-LEVEL,1 \?ELS5 + PRINT ALREADY-IN-MODE + RTRUE +?ELS5: SET 'NAUGHTY-LEVEL,1 + PRINTR "Suggestive descriptions." + + + .FUNCT V-LEWD,ACCEPTABLE-AGE=0 + EQUAL? NAUGHTY-LEVEL,2 \?ELS3 + PRINT ALREADY-IN-MODE + RTRUE +?ELS3: GRTR? AGE,17 \?ELS5 + SET 'ACCEPTABLE-AGE,TRUE-VALUE + JUMP ?CND1 +?ELS5: PUTB P-LEXV,0,10 + PRINTI "What is your age? >" +?PRG8: READ P-INBUF,P-LEXV + CRLF + CALL NUMBER?,P-LEXSTART + EQUAL? STACK,W?NUMBER \?ELS12 + LESS? P-NUMBER,18 \?ELS15 + SET 'AGE,P-NUMBER + LESS? P-NUMBER,5 \?ELS18 + PRINTI "Precocious, aren't you! Unfortunately" + JUMP ?CND16 +?ELS18: PRINTI "Sorry" +?CND16: PRINTI ", you must be at least 18 to enter LEWD mode." + CRLF + JUMP ?REP9 +?ELS15: GRTR? P-NUMBER,120 \?ELS22 + PRINTI "Bullpuckies. Tell the truth. >" + JUMP ?PRG8 +?ELS22: GRTR? AGE,-1 \?ELS24 + LESS? AGE,19 \?ELS24 + PRINTI "Liar! You said before that you were " + PRINTN AGE + PRINT PERIOD-CR + JUMP ?REP9 +?ELS24: SET 'AGE,P-NUMBER + PRINTI "Acceptable age. " + SET 'ACCEPTABLE-AGE,TRUE-VALUE + JUMP ?REP9 +?ELS12: PRINTI "Please tell me your age! >" + JUMP ?PRG8 +?REP9: PUTB P-LEXV,0,60 +?CND1: ZERO? ACCEPTABLE-AGE /FALSE + PRINTI "Switching to LEWD level." + CRLF + SET 'NAUGHTY-LEVEL,2 + RETURN NAUGHTY-LEVEL + + + .FUNCT V-SAVE + EQUAL? HERE,AUDIENCE-CHAMBER \?CND1 + ZERO? RIDDLE-ANSWERED \?CND1 + PRINTI """Oh, all right,"" says" + CALL TPRINT,SULTAN + PRINTI ", ""I'll bend the rules a tad. You may SAVE.""" + CRLF + CRLF +?CND1: SET 'P-CONT,FALSE-VALUE + SET 'QUOTE-FLAG,FALSE-VALUE + SAVE \?ELS10 + PRINT OK + RTRUE +?ELS10: PRINT FAILED + RTRUE + + + .FUNCT V-RESTORE + RESTORE \?ELS5 + PRINT OK + RTRUE +?ELS5: PRINT FAILED + RTRUE + + + .FUNCT TELL-SCORE + PRINTI "In " + PRINTN MOVES + PRINTI " turn" + EQUAL? MOVES,1 /?CND1 + PRINTI "s" +?CND1: PRINTI ", you have achieved a score of, um, oh, call it " + PRINTN SCORE + PRINTI " out of " + PRINTN EXT-MAX + PRINTI " points. This gives you the rank of " + ZERO? MALE /?ELS6 + GET MALE-RANKS,RANK + PRINT STACK + JUMP ?CND4 +?ELS6: GET FEMALE-RANKS,RANK + PRINT STACK +?CND4: PRINT PERIOD-CR + RTRUE + + + .FUNCT V-SCRIPT + GET 0,8 + BOR STACK,1 + PUT 0,8,STACK + CALL CORP-NOTICE,STR?34 + CALL V-VERSION + RSTACK + + + .FUNCT V-UNSCRIPT + CALL CORP-NOTICE,STR?35 + CALL V-VERSION + GET 0,8 + BAND STACK,-2 + PUT 0,8,STACK + RTRUE + + + .FUNCT CORP-NOTICE,STRING + PRINTI "Here " + PRINT STRING + PRINTI " a transcript of interaction with " + PRINT LGOP-CAPS + PRINT PERIOD-CR + RTRUE + + + .FUNCT V-DIAGNOSE + FSET? CELL,TOUCHBIT /?ELS3 + PRINTI "You're pretty drunk" + CALL RUNNING?,I-URGE + ZERO? STACK /?CND1 + PRINTI ", and your bladder is about to burst" + JUMP ?CND1 +?ELS3: GRTR? ION-DEATH-COUNTER,0 \?ELS8 + PRINTI "You now have a " + GET ION-TABLE,ION-DEATH-COUNTER + PRINT STACK + PRINTI " headache" + JUMP ?CND1 +?ELS8: FSET? CATACOMBS,MUNGBIT \?ELS10 + CALL IN-CATACOMBS + ZERO? STACK /?ELS10 + PRINTI "You have some tiny wounds" + JUMP ?CND1 +?ELS10: ZERO? GONE-APE /?ELS18 + EQUAL? SUGAR-RUSH,GORILLA-ATE-CHOCOLATE /?THN15 +?ELS18: ZERO? GONE-APE \?ELS14 + EQUAL? SUGAR-RUSH,HUMAN-ATE-CHOCOLATE \?ELS14 +?THN15: PRINTI "You're experiencing a sugar rush" + JUMP ?CND1 +?ELS14: EQUAL? HERE,RUINED-CASTLE-2 \?ELS22 + FSET? HERE,MUNGBIT \?ELS22 + ZERO? NAUGHTY-LEVEL /?ELS22 + PRINTI "You feel " + EQUAL? NAUGHTY-LEVEL,1 \?ELS27 + PRINTI "sexually unsatisfied" + JUMP ?CND1 +?ELS27: PRINTI "horny" + JUMP ?CND1 +?ELS22: EQUAL? HERE,IN-SPACE \?ELS31 + FSET? WHITE-SUIT,WORNBIT /?ELS31 + PRINTI "Brrr" + JUMP ?CND1 +?ELS31: PRINTI "You are in good health" + ZERO? GONE-APE /?CND1 + PRINTI " (for a gorilla)" +?CND1: PRINT PERIOD-CR + RTRUE + + + .FUNCT V-INVENTORY + ZERO? GONE-APE /?ELS5 + FIRST? PROTAGONIST /?ELS5 + PRINTR "You are empty-pawed." +?ELS5: CALL DESCRIBE-CONTENTS,PROTAGONIST,FALSE-VALUE + CALL ULTIMATELY-IN?,FLASHLIGHT + ZERO? STACK /?CND10 + EQUAL? HERE,JOES-BAR,MENS-ROOM,LADIES-ROOM \?CND10 + PRINTI " It's not clear why you've carried" + CALL APRINT,FLASHLIGHT + PRINTI " into " + PRINTD JOES-BAR + PRINTI ", except that the lighting in the bathrooms isn't too reliable." +?CND10: CRLF + RTRUE + + + .FUNCT V-QUIT + CALL TELL-SCORE + CALL DO-YOU-WISH,STR?36 + CALL YES? + ZERO? STACK /?ELS5 + QUIT + RTRUE +?ELS5: PRINT OK + RTRUE + + + .FUNCT V-RESTART + CALL TELL-SCORE + CALL DO-YOU-WISH,STR?37 + CALL YES? + ZERO? STACK /FALSE + PRINTI "Restarting." + CRLF + RESTART + PRINT FAILED + RTRUE + + + .FUNCT DO-YOU-WISH,STRING + CRLF + PRINTI "Do you wish to " + PRINT STRING + PRINTI "? (Y is affirmative): " + RTRUE + + + .FUNCT YES? +?FCN: PRINTI ">" + READ P-INBUF,P-LEXV + GET P-LEXV,1 + CALL YES-WORD,STACK + ZERO? STACK \TRUE + GET P-LEXV,1 + CALL NO-WORD,STACK + ZERO? STACK \FALSE + GET P-LEXV,1 + EQUAL? STACK,W?N /FALSE + PRINTI "Please answer YES or NO. " + JUMP ?FCN + + + .FUNCT FINISH,REPEATING=0,CNT=0 +?PRG1: CRLF + ZERO? REPEATING \?CND3 + SET 'REPEATING,TRUE-VALUE + CALL TELL-SCORE +?CND3: PRINTI "Would you like to start over, restore a saved position, or end this session of the game? +(Type RESTART, RESTORE, or QUIT): >" + PUTB P-LEXV,0,10 + READ P-INBUF,P-LEXV + PUTB P-LEXV,0,60 + INC 'CNT + GET P-LEXV,1 + EQUAL? STACK,W?RESTAR \?ELS8 + RESTART + PRINT FAILED + JUMP ?PRG1 +?ELS8: GET P-LEXV,1 + EQUAL? STACK,W?RESTOR \?ELS10 + RESTORE /?ELS10 + PRINT FAILED + JUMP ?PRG1 +?ELS10: GET P-LEXV,1 + EQUAL? STACK,W?QUIT,W?Q /?THN15 + GRTR? CNT,10 \?PRG1 +?THN15: QUIT + JUMP ?PRG1 + + + .FUNCT V-STATUS + PRINTI "You are currently in " + ZERO? NAUGHTY-LEVEL \?ELS3 + PRINTI "tame" + JUMP ?CND1 +?ELS3: EQUAL? NAUGHTY-LEVEL,1 \?ELS5 + PRINTI "suggestive" + JUMP ?CND1 +?ELS5: PRINTI "lewd" +?CND1: PRINTI " mode and are getting " + ZERO? VERBOSITY \?ELS10 + PRINTI "super-brief" + JUMP ?CND8 +?ELS10: EQUAL? VERBOSITY,1 \?ELS12 + PRINTI "brief" + JUMP ?CND8 +?ELS12: PRINTI "verbose" +?CND8: PRINTI " descriptions. " + CALL TELL-SCORE + RSTACK + + + .FUNCT V-VERSION,CNT=17,V + GET 0,1 + BAND STACK,2047 >V + PRINT LGOP-CAPS + CRLF + PRINTI "Infocom interactive fiction -- a racy space-age spoof +Copyright (c) 1986 by Infocom, Inc. All rights reserved. +" + PRINT LGOP-CAPS + PRINTI " is a trademark of Infocom, Inc. +Release " + PRINTN V + PRINTI " / Serial number " +?PRG1: IGRTR? 'CNT,23 \?ELS5 + JUMP ?REP2 +?ELS5: GETB 0,CNT + PRINTC STACK + JUMP ?PRG1 +?REP2: CRLF + RTRUE + + + .FUNCT V-$COMMAND + DIRIN 1 + RTRUE + + + .FUNCT V-$RANDOM + EQUAL? PRSO,INTNUM /?ELS5 + PRINTR "ILLEGAL." +?ELS5: SUB 0,P-NUMBER + RANDOM STACK + RTRUE + + + .FUNCT V-$RECORD + DIROUT D-RECORD-ON + RTRUE + + + .FUNCT V-$UNRECORD + DIROUT D-RECORD-OFF + RTRUE + + + .FUNCT V-$VERIFY + EQUAL? PRSO,INTNUM \?ELS5 + EQUAL? P-NUMBER,69 \?ELS5 + PRINTN SERIAL + CRLF + RTRUE +?ELS5: PRINTI "Verifying." + CRLF + VERIFY \?ELS14 + PRINT OK + RTRUE +?ELS14: CRLF + PRINTR "** Bad **" + + + .FUNCT V-ALARM + EQUAL? PRSO,ROOMS \?ELS5 + CALL PERFORM-PRSA,ME + RTRUE +?ELS5: PRINTI "But" + CALL TPRINT-PRSO + PRINTR " isn't asleep." + + + .FUNCT V-ANSWER + ZERO? AWAITING-REPLY /?ELS5 + GET P-LEXV,P-CONT + CALL YES-WORD,STACK + ZERO? STACK /?ELS5 + CALL V-YES + CALL STOP + RSTACK +?ELS5: ZERO? AWAITING-REPLY /?ELS9 + GET P-LEXV,P-CONT + CALL NO-WORD,STACK + ZERO? STACK /?ELS9 + CALL V-NO + CALL STOP + RSTACK +?ELS9: CALL RUNNING?,I-SNEEZE + ZERO? STACK /?ELS13 + CALL RIDDLE-ANSWER + RSTACK +?ELS13: IN? HAREM-GUARD,HERE \?ELS15 + CALL PICK-WIFE + RSTACK +?ELS15: PRINTI "Nobody is awaiting your answer." + CRLF + CALL STOP + RSTACK + + + .FUNCT V-ANSWER-KLUDGE + CALL NOUN-USED,W?I,ME + ZERO? STACK /?ELS5 + CALL V-INVENTORY + RSTACK +?ELS5: SET 'P-WON,FALSE-VALUE + PRINT NO-VERB + CALL STOP + RSTACK + + + .FUNCT ORPHAN-VERB + EQUAL? HERE,AUDIENCE-CHAMBER,BEDROOM /?CND1 + SET 'AWAITING-FAKE-ORPHAN,FALSE-VALUE + RFALSE +?CND1: PUT P-VTBL,0,W?ZZMGCK + PUT P-OVTBL,0,W?ANSWER + PUT P-OTBL,P-VERB,ACT?ZZMGCK + PUT P-OTBL,P-VERBN,P-VTBL + PUT P-OTBL,P-PREP1,0 + PUT P-OTBL,P-PREP1N,0 + PUT P-OTBL,P-PREP2,0 + PUT P-OTBL,5,0 + PUT P-OTBL,P-NC1,1 + PUT P-OTBL,P-NC1L,0 + PUT P-OTBL,P-NC2,0 + PUT P-OTBL,P-NC2L,0 + SET 'P-OFLAG,TRUE-VALUE + RETURN P-OFLAG + + + .FUNCT V-APPLAUD + CALL IN-CATACOMBS + ZERO? STACK /?CND1 + CALL QUEUE,I-BEETLES,6 +?CND1: PRINTR "Clap." + + + .FUNCT V-APPLY + FSET? PRSO,WEARBIT \?ELS5 + CALL PERFORM,V?WEAR,PRSO + RTRUE +?ELS5: SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTI "Apply" + CALL TPRINT-PRSO + PRINTR " for what? A job?" + + + .FUNCT PRE-SPEAK + ZERO? GONE-APE /?ELS5 + PRINTI "You open " + PRINTD MOUTH + PRINTI " to speak, but all that comes out are a few grunts." + CRLF + CALL STOP + RSTACK +?ELS5: FSET? EARS,MUNGBIT \FALSE + PRINT YOU-CANT + PRINTI "carry on a conversation when " + PRINTD EARS + PRINTI " are" + EQUAL? EARS,HAND-COVER \?ELS11 + PRINTI " covered" + JUMP ?CND9 +?ELS11: PRINTI " plugged up" +?CND9: PRINT PERIOD-CR + CALL STOP + RSTACK + + + .FUNCT V-ASK-ABOUT,OWINNER + EQUAL? PRSO,ME \?ELS5 + CALL PERFORM,V?TELL,ME + RTRUE +?ELS5: FSET? PRSO,ACTORBIT /?THN8 + EQUAL? PRSO,INTNUM \?ELS7 + EQUAL? P-NUMBER,CHOICE-NUMBER \?ELS7 + IN? SULTANS-WIFE,HERE \?ELS7 +?THN8: SET 'OWINNER,WINNER + SET 'WINNER,PRSO + CALL PERFORM,V?TELL-ABOUT,ME,PRSI + SET 'WINNER,OWINNER + CALL THIS-IS-IT,PRSI + CALL THIS-IS-IT,PRSO + RTRUE +?ELS7: CALL PERFORM,V?TELL,PRSO + RTRUE + + + .FUNCT V-ASK-FOR + PRINTI "Unsurprisingly," + CALL TPRINT-PRSO + PRINTR " doesn't oblige." + + + .FUNCT V-ASK-NO-ONE-FOR,ACTOR + CALL FIND-IN,HERE,ACTORBIT >ACTOR + ZERO? ACTOR /?ELS5 + CALL PERFORM,V?ASK-FOR,ACTOR,PRSO + RTRUE +?ELS5: CALL NO-ONE-HERE,STR?38 + RSTACK + + + .FUNCT V-BARTER-WITH + FSET? PRSO,ACTORBIT \?ELS5 + PRINTI "But" + CALL TPRINT-PRSO + PRINTR " has nothing worth trading for." +?ELS5: CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-BARTER-FOR + CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-BEND + EQUAL? P-PRSA-WORD,W?SPREAD \?ELS5 + FSET? PRSO,ACTORBIT \?ELS10 + CALL V-BOARD + RSTACK +?ELS10: CALL HACK-HACK,STR?39 + RSTACK +?ELS5: CALL HACK-HACK,STR?40 + RSTACK + + + .FUNCT V-BITE + CALL HACK-HACK,STR?41 + RSTACK + + + .FUNCT V-BLOW + FSET? PRSO,ACTORBIT \?ELS5 + CALL PERFORM,V?EAT,PRSO + RTRUE +?ELS5: CALL CANT-VERB-A-PRSO,STR?42 + RSTACK + + + .FUNCT PRE-BOARD + IN? PROTAGONIST,PRSO \?ELS5 + PRINT LOOK-AROUND + RTRUE +?ELS5: CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS7 + EQUAL? PRSO,FLEXIBLE-HOLE /?ELS7 + PRINT HOLDING-IT + RTRUE +?ELS7: CALL UNTOUCHABLE?,PRSO + ZERO? STACK /FALSE + CALL CANT-REACH,PRSO + RSTACK + + + .FUNCT V-BOARD,AV + LOC PROTAGONIST >AV + FSET? PRSO,VEHBIT \?ELS5 + LOC PRSO + EQUAL? STACK,HERE,LOCAL-GLOBALS /?CND6 + PRINT YOU-CANT + PRINTI "board" + CALL TPRINT-PRSO + PRINTI " when it's " + LOC PRSO + FSET? STACK,SURFACEBIT \?ELS11 + PRINTI "on" + JUMP ?CND9 +?ELS11: PRINTI "in" +?CND9: LOC PRSO + CALL TRPRINT,STACK + RTRUE +?CND6: MOVE PROTAGONIST,PRSO + PRINTI "You are now " + FSET? PRSO,INBIT \?ELS16 + PRINTI "i" + JUMP ?CND14 +?ELS16: PRINTI "o" +?CND14: PRINTI "n" + CALL TPRINT-PRSO + PRINTI "." + IN? SIDEKICK,HERE \?CND19 + EQUAL? PRSO,STALLION,RAFT,BARGE /?THN24 + EQUAL? PRSO,TREE-HOLE \?CND19 +?THN24: MOVE SIDEKICK,PRSO + PRINTI " " + CALL DPRINT-SIDEKICK + PRINTI " gets " + FSET? PRSO,INBIT \?ELS28 + PRINTI "i" + JUMP ?CND26 +?ELS28: PRINTI "o" +?CND26: PRINTI "n behind you." +?CND19: EQUAL? PRSO,BARGE \?CND31 + FSET? BARGE,TOUCHBIT /?CND31 + PRINTI " You notice some simple controls." +?CND31: FSET PRSO,TOUCHBIT + CRLF + RTRUE +?ELS5: FSET? PRSO,ACTORBIT \?ELS37 + PRINTR "Let's not beat around the bush. Come out and say what you mean." +?ELS37: GET P-ITBL,P-PREP1 + EQUAL? STACK,PR?IN \?ELS39 + CALL CANT-VERB-A-PRSO,STR?43 + RSTACK +?ELS39: CALL CANT-VERB-A-PRSO,STR?44 + RSTACK + + + .FUNCT V-BOARD-DIR + CALL RECOGNIZE + RSTACK + + + .FUNCT V-BURN + ZERO? PRSI \?CND1 + CALL ULTIMATELY-IN?,TORCH + ZERO? STACK /?ELS6 + FSET? TORCH,ONBIT \?ELS6 + SET 'PRSI,TORCH + PRINTI "[with the torch]" + CRLF + JUMP ?CND1 +?ELS6: PRINTR "You have no source of fire." +?CND1: EQUAL? PRSI,TORCH \?THN16 + FSET? TORCH,ONBIT /?ELS15 +?THN16: PRINT YOU-CANT + PRINTI "burn something with" + CALL ARPRINT,PRSI + RSTACK +?ELS15: EQUAL? PRSO,SHEET \?ELS19 + ZERO? SHEET-TIED /?ELS19 + CALL DO-FIRST,STR?45,PRSO + RSTACK +?ELS19: IN? PROTAGONIST,PRSO \?ELS23 + CALL DO-FIRST,STR?46,PRSO + RSTACK +?ELS23: CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS25 + CALL DO-FIRST,STR?47,PRSO + RSTACK +?ELS25: FSET? PRSO,BURNBIT \?ELS27 + EQUAL? PRSO,LEAVES \?CND28 + ZERO? LEAVES-PLACED /?CND28 + SET 'PRSO,TRELLIS +?CND28: REMOVE PRSO + PRINTI "In an instant," + CALL TPRINT-PRSO + EQUAL? PRSO,TRELLIS \?ELS35 + ZERO? LEAVES-PLACED /?ELS35 + REMOVE LEAVES + SET 'LEAVES-PLACED,FALSE-VALUE + PRINTI " and leaves are" + JUMP ?CND33 +?ELS35: PRINTI " is" +?CND33: EQUAL? PRSO,TRELLIS \?ELS42 + CALL UNDO-TRAP + JUMP ?CND40 +?ELS42: EQUAL? PRSO,LEAVES \?CND40 + SET 'LEAVES-PLACED,FALSE-VALUE +?CND40: PRINTR " consumed by fire." +?ELS27: CALL CANT-VERB-A-PRSO,STR?48 + RSTACK + + + .FUNCT V-BUY + PRINTR "Sorry, there aren't any on sale here." + + + .FUNCT V-BUY-WITH + EQUAL? PRSI,TEN-MARSMID-COIN,ONE-MARSMID-COIN \?ELS5 + CALL PERFORM,V?BUY,PRSO + RTRUE +?ELS5: PRINTI "That must be a queer planet you come from, where" + CALL APRINT,PRSI + PRINTR " is a unit of money." + + + .FUNCT V-CALL + EQUAL? HERE,VIZICOMM-BOOTH \?ELS5 + CALL PERFORM,V?SET,VIZICOMM + RTRUE +?ELS5: CALL VISIBLE?,PRSO + ZERO? STACK \?ELS7 + CALL CANT-SEE,PRSO + RSTACK +?ELS7: CALL PERFORM,V?TELL,PRSO + RTRUE + + + .FUNCT V-CAST-OFF + EQUAL? PRSO,ROOMS \?ELS5 + LOC PROTAGONIST + CALL PERFORM,V?LAUNCH,STACK + RTRUE +?ELS5: CALL PERFORM,V?TAKE-OFF,PRSO + RTRUE + + + .FUNCT V-CATCH + PRINTR "The only thing you're good at catching is a cold." + + + .FUNCT V-CHASTISE + EQUAL? PRSO,INTDIR \?ELS5 + PRINT YOULL-HAVE-TO + PRINTR "go in that direction to see what's there." +?ELS5: PRINTR "Use prepositions to indicate precisely what you want to do: LOOK AT the object, LOOK INSIDE it, LOOK UNDER it, etc." + + + .FUNCT V-CHEER + EQUAL? PRSO,ROOMS \?ELS5 + PRINT OK + RTRUE +?ELS5: PRINTI "Probably," + CALL TPRINT-PRSO + PRINTR " is as happy as possible." + + + .FUNCT V-CLEAN + SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTR "Do you also do windows?" + + + .FUNCT V-CLICK + PRINTR """Click.""" + + + .FUNCT V-CLIMB + EQUAL? PRSO,ROOMS \?ELS5 + CALL DO-WALK,P?UP + RSTACK +?ELS5: CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS7 + PRINT HOLDING-IT + RTRUE +?ELS7: CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-CLIMB-DOWN + EQUAL? PRSO,ROOMS \?ELS5 + CALL DO-WALK,P?DOWN + RSTACK +?ELS5: CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS7 + PRINT HOLDING-IT + RTRUE +?ELS7: FSET? PRSO,ACTORBIT \?ELS9 + EQUAL? P-PRSA-WORD,W?GO \?ELS9 + CALL PERFORM,V?EAT,PRSO + RTRUE +?ELS9: CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-CLIMB-ON + FSET? PRSO,VEHBIT /?THN6 + FSET? PRSO,ACTORBIT \?ELS5 +?THN6: CALL PERFORM,V?BOARD,PRSO + RTRUE +?ELS5: CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS9 + PRINT HOLDING-IT + RTRUE +?ELS9: GET P-ITBL,P-PREP1 + EQUAL? STACK,PR?IN \?ELS11 + CALL CANT-VERB-A-PRSO,STR?49 + RSTACK +?ELS11: CALL CANT-VERB-A-PRSO,STR?50 + RSTACK + + + .FUNCT V-CLIMB-OVER + CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS5 + PRINT HOLDING-IT + RTRUE +?ELS5: CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-CLIMB-UP + EQUAL? PRSO,ROOMS \?ELS5 + CALL DO-WALK,P?UP + RSTACK +?ELS5: CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS7 + PRINT HOLDING-IT + RTRUE +?ELS7: CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-CLOSE + FSET? PRSO,SURFACEBIT /?THN6 + FSET? PRSO,ACTORBIT /?THN6 + FSET? PRSO,VEHBIT \?ELS5 +?THN6: CALL CANT-VERB-A-PRSO,STR?51 + RSTACK +?ELS5: FSET? PRSO,DOORBIT /?THN10 + FSET? PRSO,CONTBIT \?ELS9 +?THN10: FSET? PRSO,OPENBIT \?ELS16 + FCLEAR PRSO,OPENBIT + PRINTI "Okay," + CALL TPRINT-PRSO + PRINTI " is now closed." + CRLF + CALL NOW-DARK? + RSTACK +?ELS16: PRINT ALREADY-IS + RTRUE +?ELS9: CALL CANT-VERB-A-PRSO,STR?51 + RSTACK + + + .FUNCT V-COME + ZERO? NAUGHTY-LEVEL \?ELS5 + PRINTR "Go." +?ELS5: PRINTR "You're not even breathing hard." + + + .FUNCT V-COPULATE,LOVER=0 + CALL FIND-IN,HERE,ACTORBIT,STR?52 >LOVER + ZERO? LOVER /?ELS5 + CALL PERFORM,V?FUCK,LOVER + RTRUE +?ELS5: CALL PERFORM,V?MAKE,LOVE + RTRUE + + + .FUNCT V-COUNT + CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-CRAWL-UNDER + FSET? PRSO,TAKEBIT /?ELS5 + CALL TELL-HIT-HEAD + RSTACK +?ELS5: CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-CROSS + CALL V-WALK-AROUND + RSTACK + + + .FUNCT V-CUT + ZERO? PRSI \?ELS5 + CALL IMPOSSIBLES + RSTACK +?ELS5: PRINTI "To put it bluntly, neither" + CALL TPRINT-PRSI + PRINTR " nor you are very sharp." + + + .FUNCT V-DECODE + PRINT YOULL-HAVE-TO + PRINTR "figure it out yourself." + + + .FUNCT V-DEFLATE + CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-DIG + CALL WASTES + RSTACK + + + .FUNCT V-DISEMBARK + ZERO? PRSO \?ELS5 + IN? PROTAGONIST,HERE /?ELS10 + LOC PROTAGONIST + CALL PERFORM-PRSA,STACK + RTRUE +?ELS10: PRINT LOOK-AROUND + RTRUE +?ELS5: EQUAL? P-PRSA-WORD,W?TAKE \?ELS14 + CALL PERFORM,V?TAKE,PRSO + RTRUE +?ELS14: IN? PROTAGONIST,PRSO /?ELS16 + PRINT LOOK-AROUND + RETURN 8 +?ELS16: EQUAL? HERE,CANAL \?ELS20 + CALL PERFORM,V?ENTER,CANAL-OBJECT + RTRUE +?ELS20: MOVE PROTAGONIST,HERE + PRINTI "You" + IN? SIDEKICK,PRSO \?CND23 + MOVE SIDEKICK,HERE + PRINTI " and " + CALL DPRINT-SIDEKICK +?CND23: PRINTI " get o" + CALL OFF-VEHICLE?,PRSO + ZERO? STACK /?ELS28 + PRINTI "ff" + JUMP ?CND26 +?ELS28: PRINTI "ut of" +?CND26: CALL TPRINT-PRSO + PRINTI "." + IN? SIDEKICK,SECOND-SLAB \?CND31 + MOVE SIDEKICK,HERE + PRINTI " You also " + ZERO? SIDEKICKS-BODY-TIED-TO-SLAB /?ELS36 + PRINTI "untie " + CALL DPRINT-SIDEKICK + PRINTI " and help " + CALL HIM-HER + JUMP ?CND34 +?ELS36: PRINTI "help " + CALL DPRINT-SIDEKICK +?CND34: PRINTI " up from" + CALL TPRINT,SECOND-SLAB + PRINTI "." +?CND31: CRLF + RTRUE + + + .FUNCT V-DRESS + ZERO? PRSO /?ELS5 + FSET? PRSO,ACTORBIT \?ELS11 + FSET? PRSO,FEMALEBIT \?ELS14 + PRINTI "Sh" + JUMP ?CND12 +?ELS14: PRINTI "H" +?CND12: PRINTR "e is dressed!" +?ELS11: CALL IMPOSSIBLES + RSTACK +?ELS5: SET 'PRSO,ROOMS + CALL V-GET-DRESSED + RSTACK + + + .FUNCT V-DRINK + CALL CANT-VERB-A-PRSO,STR?53 + RSTACK + + + .FUNCT V-DRINK-FROM + CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-DROP + CALL SPECIAL-DROP + ZERO? STACK \FALSE + LOC PROTAGONIST + EQUAL? STACK,BARGE,RAFT /?THN9 + LOC PROTAGONIST + EQUAL? STACK,TREE-HOLE,CAGE \?ELS8 +?THN9: LOC PROTAGONIST + MOVE PRSO,STACK + JUMP ?CND6 +?ELS8: MOVE PRSO,HERE +?CND6: PRINTR "Dropped." + + + .FUNCT SPECIAL-DROP + CALL IN-CATACOMBS + ZERO? STACK /?ELS5 + REMOVE PRSO + PRINTI "With a splash," + CALL TPRINT-PRSO + PRINTR " is lost forever." +?ELS5: CALL IN-SPACE? + ZERO? STACK /?ELS7 + MOVE PRSO,PROTAGONIST + PRINTI "In the absence of gravity," + CALL TPRINT-PRSO + PRINTI " floats back into " + PRINTD HANDS + PRINTR "s." +?ELS7: EQUAL? HERE,EXIT-SHOP \?ELS9 + MOVE PRSO,DUST + PRINTI "You lose" + CALL TPRINT-PRSO + PRINTR " in the dust." +?ELS9: EQUAL? PRSO,TORCH \FALSE + FSET? TORCH,ONBIT \FALSE + IN? PROTAGONIST,BARGE \FALSE + CALL PERFORM,V?PUT,TORCH,BARGE + RTRUE + + + .FUNCT V-EAT + FSET? PRSO,ACTORBIT \?ELS5 + ZERO? GONE-APE \?ELS5 + ZERO? NAUGHTY-LEVEL /?ELS5 + PRINTI "As you try," + CALL TPRINT-PRSO + PRINTI " slaps you across the face." + EQUAL? PRSO,FEMALE-GORILLA,MALE-GORILLA /?CND8 + PRINTI " ""Really, we hardly know each other.""" +?CND8: CRLF + RTRUE +?ELS5: PRINTI "While the foodstuffs of the universe are many and varied," + CALL APRINT,PRSO + FSET? PRSO,PLURALBIT \?ELS15 + PRINTI " are" + JUMP ?CND13 +?ELS15: PRINTI " is" +?CND13: PRINTR " not one of them." + + + .FUNCT V-EMPTY,OBJ,NXT + ZERO? PRSI \?CND1 + SET 'PRSI,GROUND +?CND1: FSET? PRSO,CONTBIT /?ELS8 + PRINT HUH + RTRUE +?ELS8: FSET? PRSO,OPENBIT /?ELS10 + PRINTI "But" + CALL TPRINT-PRSO + PRINTR " isn't open." +?ELS10: FIRST? PRSO /?ELS12 + PRINTI "But" + CALL TPRINT-PRSO + PRINTR " is already empty!" +?ELS12: FIRST? PRSO /?KLU50 +?KLU50: EQUAL? PRSI,STACK \?ELS14 + NEXT? PRSI /?ELS14 + PRINT THERES-NOTHING + PRINTI "in" + CALL TPRINT-PRSO + PRINTI " but" + CALL TRPRINT,PRSI + RSTACK +?ELS14: CALL IN-SPACE? + ZERO? STACK /?ELS18 + PRINT YOU-CANT + PRINTI "empty" + CALL TPRINT-PRSO + PRINTR " without gravity!" +?ELS18: FIRST? PRSO >OBJ /?KLU51 +?KLU51: +?PRG21: NEXT? OBJ >NXT /?KLU52 +?KLU52: EQUAL? OBJ,PROTAGONIST /?CND23 + CALL DPRINT,OBJ + PRINTI ": " + EQUAL? PRSI,TRELLIS \?ELS28 + EQUAL? OBJ,LEAVES \?ELS28 + CALL PERFORM,V?PUT-ON,LEAVES,TRELLIS + JUMP ?CND23 +?ELS28: FSET? OBJ,TAKEBIT \?ELS32 + MOVE OBJ,PROTAGONIST + EQUAL? PRSI,HANDS \?ELS35 + PRINTI "Taken." + CRLF + JUMP ?CND26 +?ELS35: EQUAL? PRSI,GROUND \?ELS37 + CALL PERFORM,V?DROP,OBJ + JUMP ?CND26 +?ELS37: FSET? PRSI,SURFACEBIT \?ELS39 + CALL PERFORM,V?PUT-ON,OBJ,PRSI + JUMP ?CND26 +?ELS39: CALL PERFORM,V?PUT,OBJ,PRSI + JUMP ?CND26 +?ELS32: CALL YUKS +?CND26: +?CND23: ZERO? NXT /TRUE + SET 'OBJ,NXT + JUMP ?PRG21 + + + .FUNCT V-EMPTY-FROM + IN? PRSO,PRSI \?ELS5 + FSET? PRSO,TAKEBIT \?ELS10 + MOVE PRSO,PROTAGONIST + CALL PERFORM,V?DROP,PRSO + RTRUE +?ELS10: CALL YUKS + RSTACK +?ELS5: CALL NOT-IN + RSTACK + + + .FUNCT V-ENTER + FSET? PRSO,DOORBIT \?ELS5 + CALL OTHER-SIDE,PRSO + CALL DO-WALK,STACK + RTRUE +?ELS5: FSET? PRSO,VEHBIT \?ELS7 + CALL PERFORM,V?BOARD,PRSO + RTRUE +?ELS7: FSET? PRSO,ACTORBIT \?ELS9 + CALL PERFORM,V?BOARD,PRSO + RTRUE +?ELS9: FSET? PRSO,TAKEBIT /?ELS11 + CALL TELL-HIT-HEAD + RSTACK +?ELS11: CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS13 + PRINT HOLDING-IT + RTRUE +?ELS13: CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-EXAMINE + FSET? PRSO,UNTEEDBIT \?ELS5 + PRINTI "It looks just like" + CALL APRINT,PRSO + PRINTR ", whatever that is." +?ELS5: FSET? PRSO,ACTORBIT \?ELS7 + FIRST? PRSO \?ELS12 + CALL PERFORM,V?LOOK-INSIDE,PRSO + RTRUE +?ELS12: CALL NOTHING-INTERESTING + PRINTI "about" + CALL TRPRINT,PRSO + RSTACK +?ELS7: FSET? PRSO,DOORBIT /?THN17 + FSET? PRSO,SURFACEBIT \?ELS16 +?THN17: CALL V-LOOK-INSIDE + RSTACK +?ELS16: FSET? PRSO,CONTBIT \?ELS20 + FSET? PRSO,OPENBIT \?ELS25 + CALL V-LOOK-INSIDE + RSTACK +?ELS25: PRINTR "It's closed." +?ELS20: FSET? PRSO,LIGHTBIT \?ELS29 + PRINTI "It's o" + FSET? PRSO,ONBIT \?ELS32 + PRINTI "n" + JUMP ?CND30 +?ELS32: PRINTI "ff" +?CND30: PRINT PERIOD-CR + RTRUE +?ELS29: FSET? PRSO,READBIT \?ELS36 + CALL PERFORM,V?READ,PRSO + RTRUE +?ELS36: FSET? PRSO,NARTICLEBIT \?ELS38 + CALL SENSE-OBJECT,STR?54 + RSTACK +?ELS38: RANDOM 100 + LESS? 25,STACK \?THN41 + EQUAL? PRSO,PSEUDO-OBJECT \?ELS40 +?THN41: PRINTI "Totally ordinary looking " + CALL DPRINT,PRSO + PRINT PERIOD-CR + RTRUE +?ELS40: RANDOM 100 + LESS? 60,STACK /?ELS44 + CALL NOTHING-INTERESTING + PRINTI "about" + CALL TRPRINT,PRSO + RSTACK +?ELS44: CALL PRONOUN + PRINTI " look" + FSET? PRSO,PLURALBIT /?CND47 + EQUAL? PRSO,ME /?CND47 + PRINTI "s" +?CND47: PRINTI " like every other " + CALL DPRINT,PRSO + PRINTR " you've ever seen." + + + .FUNCT NOTHING-INTERESTING + PRINT THERES-NOTHING + RANDOM 100 + LESS? 25,STACK /?ELS3 + PRINTI "unusual" + JUMP ?CND1 +?ELS3: RANDOM 100 + LESS? 33,STACK /?ELS5 + PRINTI "noteworthy" + JUMP ?CND1 +?ELS5: RANDOM 100 + LESS? 50,STACK /?ELS7 + PRINTI "eye-catching" + JUMP ?CND1 +?ELS7: PRINTI "special" +?CND1: PRINTI " " + RTRUE + + + .FUNCT V-EXIT + ZERO? PRSO /?ELS5 + FSET? PRSO,VEHBIT \?ELS5 + CALL PERFORM,V?DISEMBARK,PRSO + RTRUE +?ELS5: CALL IN-EXITABLE-VEHICLE? + ZERO? STACK \FALSE + CALL DO-WALK,P?OUT + RSTACK + + + .FUNCT IN-EXITABLE-VEHICLE?,AV + LOC PROTAGONIST >AV + EQUAL? AV,RAFT,BARGE,CAGE /?THN6 + EQUAL? AV,TREE-HOLE \FALSE +?THN6: LOC PROTAGONIST + CALL PERFORM,V?DISEMBARK,STACK + RTRUE + + + .FUNCT V-FEED + CALL ULTIMATELY-IN?,CHOCOLATE + ZERO? STACK /?ELS5 + CALL PERFORM,V?GIVE,CHOCOLATE,PRSO + RTRUE +?ELS5: PRINTI "You have no food for" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-FILL + FSET? PRSO,CONTBIT /?ELS11 + EQUAL? PRSO,CREAM,STAIN \?ELS11 + FSET? STAIN,MUNGBIT \?ELS5 +?ELS11: EQUAL? PRSI,WATER /?THN12 + CALL GLOBAL-IN?,WATER,HERE + ZERO? STACK /?ELS5 +?THN12: CALL WASTES + RSTACK +?ELS5: ZERO? PRSI \?ELS15 + PRINT THERES-NOTHING + PRINTR "to fill it with." +?ELS15: CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-FIND,WHERE=0,L + LOC PRSO >L + ZERO? L \?ELS5 + CALL PRONOUN + PRINTR " could be anywhere!" +?ELS5: IN? PRSO,PROTAGONIST \?ELS7 + PRINTR "You have it!" +?ELS7: IN? PRSO,HERE \?ELS9 + PRINTR "Right in front of you." +?ELS9: IN? PRSO,GLOBAL-OBJECTS /?THN12 + CALL GLOBAL-IN?,PRSO,HERE + ZERO? STACK \?THN12 + EQUAL? PRSO,PSEUDO-OBJECT \?ELS11 +?THN12: CALL V-DECODE + RSTACK +?ELS11: FSET? L,ACTORBIT \?ELS15 + CALL VISIBLE?,L + ZERO? STACK /?ELS15 + PRINTI "Looks as if" + CALL TPRINT,L + PRINTR " has it." +?ELS15: FSET? L,CONTBIT \?ELS19 + CALL VISIBLE?,PRSO + ZERO? STACK /?ELS19 + IN? L,GLOBAL-OBJECTS /?ELS19 + FSET? L,SURFACEBIT \?ELS24 + PRINTI "O" + JUMP ?CND22 +?ELS24: FSET? L,VEHBIT \?ELS26 + FSET? L,INBIT /?ELS26 + PRINTI "O" + JUMP ?CND22 +?ELS26: PRINTI "I" +?CND22: PRINTI "n" + CALL TRPRINT,L + RSTACK +?ELS19: ZERO? WHERE /?ELS32 + PRINTR "Beats me." +?ELS32: CALL V-DECODE + RSTACK + + + .FUNCT V-FLUSH + PRINTR "It's your brain that needs flushing." + + + .FUNCT V-FOLLOW + CALL VISIBLE?,PRSO + ZERO? STACK /?ELS5 + PRINTI "But" + CALL TPRINT-PRSO + PRINTR " is right here!" +?ELS5: FSET? PRSO,ACTORBIT /?ELS7 + CALL IMPOSSIBLES + RSTACK +?ELS7: PRINTI "You have no idea where" + CALL TPRINT-PRSO + PRINTR " is." + + + .FUNCT I-FOLLOW + SET 'FOLLOW-FLAG,FALSE-VALUE + RFALSE + + + .FUNCT PRE-FUCK + GRTR? ION-DEATH-COUNTER,0 \FALSE + PRINTR "Not tonight; you have a headache." + + + .FUNCT V-FUCK + ZERO? NAUGHTY-LEVEL \?ELS5 + PRINTR "Shocking! What if your mother saw you typing inputs like that?" +?ELS5: FSET? PRSO,ACTORBIT /?ELS7 + PRINTR "Not in my game, you pansexual pervert!" +?ELS7: EQUAL? NAUGHTY-LEVEL,1 \?ELS9 + PRINTI "Unfortunately," + CALL TPRINT-PRSO + PRINTR " doesn't seem interested, and it takes two to tango." +?ELS9: PRINTI "A slap across the face alerts you that" + CALL TPRINT-PRSO + PRINTR " isn't that hot to trot. And not a goddam single cold shower in sight!" + + + .FUNCT PRE-GIVE + EQUAL? PRSA,V?GIVE \?ELS5 + EQUAL? PRSO,HANDS \?ELS5 + CALL PERFORM,V?SHAKE-WITH,PRSI + RTRUE +?ELS5: CALL IDROP + ZERO? STACK \TRUE + RFALSE + + + .FUNCT V-GET-DRESSED + EQUAL? PRSO,ROOMS \?ELS5 + PRINTR "You are!" +?ELS5: CALL RECOGNIZE + RSTACK + + + .FUNCT V-GET-DRUNK + EQUAL? PRSO,ROOMS /?ELS5 + CALL RECOGNIZE + RSTACK +?ELS5: EQUAL? HERE,JOES-BAR \?ELS7 + CALL PERFORM,V?BUY,BEER + RTRUE +?ELS7: SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTR "Here?" + + + .FUNCT V-GET-UNDRESSED + EQUAL? PRSO,ROOMS \?ELS5 + CALL PERFORM,V?TAKE-OFF,GARMENT + RTRUE +?ELS5: CALL RECOGNIZE + RSTACK + + + .FUNCT V-GIDDYAP + IN? STALLION,HERE \?ELS5 + CALL PERFORM,V?KICK,STALLION + RTRUE +?ELS5: PRINT HUH + RTRUE + + + .FUNCT V-GIVE + FSET? PRSI,ACTORBIT \?ELS5 + PRINTI "Briskly," + CALL TPRINT-PRSI + PRINTR " refuses your offer." +?ELS5: PRINT YOU-CANT + PRINTI "give" + CALL APRINT,PRSO + PRINTI " to" + CALL APRINT,PRSI + PRINTR "!" + + + .FUNCT V-GIVE-UP + EQUAL? PRSO,ROOMS \?ELS5 + CALL V-QUIT + RSTACK +?ELS5: CALL RECOGNIZE + RSTACK + + + .FUNCT V-HELLO + ZERO? PRSO /?ELS5 + PRINTR "[The proper way to talk to characters in the story is PERSON, HELLO.]" +?ELS5: CALL PERFORM,V?TELL,ME + RTRUE + + + .FUNCT V-HELP + PRINTI "If you're in a bind, maps and hint booklets are available from your ""dealer,"" or via mail order with the form" + CALL IN-PACKAGE + CRLF + RTRUE + + + .FUNCT V-HIDE + PRINT YOU-CANT + PRINTI "hide " + ZERO? PRSO /?CND1 + PRINTI "t" +?CND1: PRINTR "here." + + + .FUNCT V-HISS + CALL VISIBLE?,FLYTRAP + ZERO? STACK /?ELS5 + FSET? FLYTRAP,MUNGBIT /?CND6 + CALL INCREMENT-SCORE,2,15 +?CND6: CALL DEQUEUE,I-FLYTRAP + REMOVE FLYTRAP + PRINTI "The " + PRINTD FLYTRAP + PRINTR " assumes the hissing is a spray can of weed killer, dies of fright, and is immediately consumed by parasites who live inside flytraps waiting for just such an occasion." +?ELS5: PRINTR """Ssss.""" + + + .FUNCT V-IN,VEHICLE + CALL DO-WALK,P?IN + RSTACK + + + .FUNCT V-INFLATE + CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-INHALE + ZERO? PRSO \?ELS5 + PRINT OK + RTRUE +?ELS5: EQUAL? PRSO,ROOMS \?ELS7 + PRINTR "You begin to get light-headed." +?ELS7: CALL RECOGNIZE + RSTACK + + + .FUNCT V-KICK + CALL HACK-HACK,STR?55 + RSTACK + + + .FUNCT V-KILL + PRINTR "Relax." + + + .FUNCT V-KISS + PRINTR """Smack.""" + + + .FUNCT V-KISS-ON + CALL V-KISS + RSTACK + + + .FUNCT V-KNEEL + EQUAL? P-PRSA-WORD,W?BOW \?ELS5 + CALL SORE,STR?56 + RSTACK +?ELS5: CALL PRE-POUR + ZERO? STACK \FALSE + CALL SORE,STR?57 + RSTACK + + + .FUNCT V-KNOCK + FSET? PRSO,DOORBIT \?ELS5 + PRINTR "Silence answers back." +?ELS5: CALL HACK-HACK,STR?58 + RSTACK + + + .FUNCT V-KWEEPA + CALL IN-CATACOMBS + ZERO? STACK /?CND1 + CALL QUEUE,I-GATOR,12 +?CND1: PRINTR "A Martian hawk, hearing the cry of a possible mate, flies up and begins squawking and flapping a mating ritual. As it pauses to catch its breath, it takes a better look at you, rubs its eyes, and flies quickly away." + + + .FUNCT V-LAND + ZERO? PRSO \?ELS5 + LOC PROTAGONIST + EQUAL? STACK,RAFT,BARGE \?ELS5 + LOC PROTAGONIST + CALL PERFORM-PRSA,STACK + RTRUE +?ELS5: PRINT HUH + RTRUE + + + .FUNCT V-LAUGH + PRINTR """Tee hee.""" + + + .FUNCT V-LAUNCH + PRINTR "Your brain is out to launch." + + + .FUNCT V-LEAP + EQUAL? PRSO,ROOMS /?THN6 + ZERO? PRSO \?ELS5 +?THN6: EQUAL? HERE,ROOF \?ELS12 + CALL JIGS-UP,STR?59 + RSTACK +?ELS12: EQUAL? HERE,CLOSET \?ELS14 + PRINTR "You still can't reach the shelf." +?ELS14: EQUAL? HERE,ROCKY-CLIFFTOP,MINARET \?ELS16 + CALL JIGS-UP,STR?60 + RSTACK +?ELS16: CALL WEE + RSTACK +?ELS5: ZERO? PRSO /?ELS20 + IN? PRSO,HERE /?ELS20 + CALL IMPOSSIBLES + RSTACK +?ELS20: CALL WEE + RSTACK + + + .FUNCT V-LEAP-OFF + FSET? PRSO,VEHBIT \?ELS5 + CALL PERFORM,V?DISEMBARK,PRSO + RTRUE +?ELS5: CALL PERFORM,V?LEAP,PRSO + RTRUE + + + .FUNCT V-LEAVE + ZERO? PRSO \?CND1 + SET 'PRSO,ROOMS +?CND1: EQUAL? PRSO,ROOMS \?ELS8 + CALL DO-WALK,P?OUT + RSTACK +?ELS8: IN? PROTAGONIST,PRSO \?ELS10 + CALL PERFORM,V?DISEMBARK,PRSO + RTRUE +?ELS10: CALL PERFORM,V?DROP,PRSO + RTRUE + + + .FUNCT V-LICK + FSET? PRSO,ACTORBIT \?ELS5 + CALL PERFORM,V?EAT,PRSO + RTRUE +?ELS5: CALL PERFORM,V?TASTE,PRSO + RTRUE + + + .FUNCT V-LIE-DOWN + EQUAL? HERE,BEDROOM \?CND1 + EQUAL? PRSO,ROOMS \?CND1 + SET 'PRSO,BED +?CND1: FSET? PRSO,VEHBIT /?THN11 + FSET? PRSO,ACTORBIT \?ELS10 +?THN11: CALL PERFORM,V?BOARD,PRSO + RTRUE +?ELS10: CALL WASTES + RSTACK + + + .FUNCT V-LIMBER + PRINTR "Ahhh. Nothing like a little muscle-loosening." + + + .FUNCT PRE-LISTEN + FSET? EARS,MUNGBIT \FALSE + ZERO? GONE-APE \FALSE + PRINTI "You hear the sound of " + EQUAL? EARS,HAND-COVER \?ELS10 + PRINTI "sweating palms" + JUMP ?CND8 +?ELS10: PRINTI "rustling cotton" +?CND8: PRINT PERIOD-CR + RTRUE + + + .FUNCT V-LISTEN + ZERO? PRSO /?ELS5 + CALL SENSE-OBJECT,STR?61 + RSTACK +?ELS5: EQUAL? HERE,BOUDOIR \?ELS8 + CALL NOT-ALONE-ON-DIVAN + CRLF + RTRUE +?ELS8: PRINTR "You hear nothing of interest." + + + .FUNCT V-LOCK + CALL YUKS + RSTACK + + + .FUNCT PRE-LOOK + EQUAL? PRSA,V?EXAMINE \?ELS5 + EQUAL? P-PRSA-WORD,W?DESCRIBE \?ELS5 + EQUAL? PRSO,ODOR /FALSE +?ELS5: CALL PLAYER-CANT-SEE + ZERO? STACK \TRUE + RFALSE + + + .FUNCT V-LOOK + EQUAL? HAND-COVER,EYES \?ELS5 + CALL UNIFORMLY-COLORED,STR?62,STR?63 + RSTACK +?ELS5: FSET? EYES,MUNGBIT \?ELS7 + CALL UNIFORMLY-COLORED,STR?64,STR?65 + RSTACK +?ELS7: CALL DESCRIBE-ROOM,TRUE-VALUE + ZERO? STACK /TRUE + CALL DESCRIBE-OBJECTS + RTRUE + + + .FUNCT UNIFORMLY-COLORED,ROOM-NAME,STRING + PRINT ROOM-NAME + PRINTI " Room + This location is dim and uniformly colored, resembling what you see when you have your " + PRINT STRING + PRINTI ". In fact, you have your " + PRINT STRING + PRINT PERIOD-CR + RTRUE + + + .FUNCT V-LOOK-BEHIND + FSET? PRSO,DOORBIT \?CND1 + CALL PERFORM,V?LOOK-INSIDE,PRSO + RTRUE +?CND1: PRINTI "There is nothing behind" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-LOOK-DOWN + EQUAL? PRSO,ROOMS \?ELS5 + CALL PERFORM,V?EXAMINE,GROUND + RTRUE +?ELS5: CALL PERFORM,V?LOOK-INSIDE,PRSO + RTRUE + + + .FUNCT V-LOOK-INSIDE + FSET? PRSO,ACTORBIT \?ELS5 + PRINT IT-SEEMS-THAT + CALL TPRINT-PRSO + PRINTI " has" + CALL DESCRIBE-NOTHING + ZERO? STACK \TRUE + PRINT PERIOD-CR + RTRUE +?ELS5: IN? PROTAGONIST,PRSO \?ELS10 + CALL DESCRIBE-VEHICLE + RSTACK +?ELS10: FSET? PRSO,SURFACEBIT \?ELS12 + PRINT YOU-SEE + CALL DESCRIBE-NOTHING + ZERO? STACK \TRUE + PRINTI " on" + CALL TRPRINT,PRSO + RTRUE +?ELS12: FSET? PRSO,DOORBIT \?ELS17 + PRINTI "All you can tell is that" + CALL TPRINT-PRSO + PRINTI " is " + CALL OPEN-CLOSED,PRSO + PRINT PERIOD-CR + RTRUE +?ELS17: FSET? PRSO,CONTBIT \?ELS19 + CALL SEE-INSIDE?,PRSO + ZERO? STACK /?ELS24 + PRINT YOU-SEE + CALL DESCRIBE-NOTHING + ZERO? STACK \TRUE + PRINTI " in" + CALL TRPRINT,PRSO + RTRUE +?ELS24: FSET? PRSO,OPENBIT /?ELS29 + FIRST? PRSO \?ELS29 + CALL PRE-TOUCH + ZERO? STACK \TRUE + CALL PERFORM,V?OPEN,PRSO + RTRUE +?ELS29: CALL DO-FIRST,STR?66,PRSO + RSTACK +?ELS19: GET P-ITBL,P-PREP1 + EQUAL? STACK,PR?IN \?ELS38 + CALL CANT-VERB-A-PRSO,STR?67 + RSTACK +?ELS38: PRINTI "Even Superman would have trouble seeing through" + CALL ARPRINT,PRSO + RSTACK + + + .FUNCT V-LOOK-OVER + CALL V-EXAMINE + RSTACK + + + .FUNCT V-LOOK-UNDER + CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS5 + FSET? PRSO,WORNBIT \?ELS10 + PRINTR "You're wearing it!" +?ELS10: PRINT HOLDING-IT + RTRUE +?ELS5: CALL NOTHING-INTERESTING + PRINTI "under" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-LOOK-UP + EQUAL? PRSO,ROOMS \?ELS5 + EQUAL? HERE,WELL-BOTTOM \?ELS10 + PRINT YOU-SEE + PRINTR " a dot of light." +?ELS10: CALL IN-CATACOMBS + ZERO? STACK /?ELS12 + PRINT ONLY-BLACKNESS + RTRUE +?ELS12: FSET? HERE,INDOORSBIT \?ELS14 + CALL PERFORM,V?EXAMINE,CEILING + RTRUE +?ELS14: PRINTR "The sky is an inky black." +?ELS5: CALL PERFORM,V?LOOK-INSIDE,PRSO + RTRUE + + + .FUNCT V-LOVE + PRINTI "Not difficult, considering how lovable" + CALL TPRINT-PRSO + PRINTI " " + FSET? PRSO,PLURALBIT \?ELS3 + PRINTI "are" + JUMP ?CND1 +?ELS3: PRINTI "is" +?CND1: PRINT PERIOD-CR + RTRUE + + + .FUNCT V-LOWER + CALL V-RAISE + RSTACK + + + .FUNCT V-MAKE + CALL CANT-VERB-A-PRSO,STR?68 + RSTACK + + + .FUNCT V-MAKE-LOVE + EQUAL? PRSO,LOVE \?ELS5 + CALL PERFORM,V?FUCK,PRSI + RTRUE +?ELS5: CALL RECOGNIZE + RSTACK + + + .FUNCT V-MAKE-OUT,KISSEE + EQUAL? PRSO,ROOMS /?ELS3 + SET 'KISSEE,PRSO + JUMP ?CND1 +?ELS3: CALL FIND-IN,HERE,ACTORBIT,STR?52 >KISSEE + ZERO? KISSEE \?CND1 + SET 'KISSEE,ME +?CND1: CALL PERFORM,V?KISS,KISSEE + RTRUE + + + .FUNCT V-MAKE-WITH + CALL V-MAKE + RSTACK + + + .FUNCT V-MARRY + PRINTI "I doubt that" + CALL TPRINT-PRSO + PRINTR " is the marrying type." + + + .FUNCT V-MASTURBATE + ZERO? PRSO /?ELS5 + EQUAL? PRSO,ROOMS /?ELS5 + CALL RECOGNIZE + RSTACK +?ELS5: ZERO? NAUGHTY-LEVEL \?ELS9 + SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTR "Don't you know that this causes blindness?" +?ELS9: CALL PERFORM,V?FUCK,ME + RTRUE + + + .FUNCT V-MEASURE + FSET? PRSO,PARTBIT /?THN6 + EQUAL? PRSO,ME \?ELS5 +?THN6: PRINTR "Usual size." +?ELS5: PRINTI "The same size as any other " + CALL DPRINT,PRSO + PRINT PERIOD-CR + RTRUE + + + .FUNCT V-MOAN + PRINTR """Ohhhh...""" + + + .FUNCT V-MOVE + CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS5 + CALL WASTES + RSTACK +?ELS5: CALL LOC-CLOSED + ZERO? STACK \TRUE + FSET? PRSO,TAKEBIT \?ELS9 + PRINTI "Moving" + CALL TPRINT-PRSO + PRINTR " reveals nothing." +?ELS9: EQUAL? P-PRSA-WORD,W?PULL \?ELS11 + CALL HACK-HACK,STR?69 + RSTACK +?ELS11: CALL CANT-VERB-A-PRSO,STR?70 + RSTACK + + + .FUNCT V-MUNG + EQUAL? PRSO,ROOMS \?ELS5 + IN? PROTAGONIST,CAGE \?ELS10 + CALL PERFORM-PRSA,CAGE + RTRUE +?ELS10: PRINTR "Argh! Pimples!" +?ELS5: CALL HACK-HACK,STR?71 + RSTACK + + + .FUNCT V-NO + EQUAL? AWAITING-REPLY,1 \?ELS5 + PRINTI """Too bad."" " + CALL RIDDLE-DEATH + RSTACK +?ELS5: EQUAL? AWAITING-REPLY,2 \?ELS7 + CALL V-YES + RSTACK +?ELS7: CALL YOU-SOUND,STR?72 + RSTACK + + + .FUNCT NO-WORD,WRD + EQUAL? WRD,W?NO,W?NOPE /TRUE + EQUAL? WRD,W?NAH,W?UH-UH \FALSE + RTRUE + + + .FUNCT V-OFF + FSET? PRSO,LIGHTBIT \?ELS5 + FSET? PRSO,ONBIT \?ELS10 + FCLEAR PRSO,ONBIT + PRINTI "Okay," + CALL TPRINT-PRSO + PRINTI " is now off." + CRLF + CALL NOW-DARK? + RSTACK +?ELS10: PRINTR "It isn't on!" +?ELS5: CALL CANT-TURN,STR?73 + RSTACK + + + .FUNCT V-ON + FSET? PRSO,ACTORBIT \?ELS5 + PRINTR "Hopefully, your sexy body will do the trick." +?ELS5: FSET? PRSO,LIGHTBIT \?ELS7 + FSET? PRSO,ONBIT \?ELS12 + PRINT ALREADY-IS + RTRUE +?ELS12: FSET PRSO,ONBIT + PRINTI "Okay," + CALL TPRINT-PRSO + PRINTI " is now on." + CRLF + CALL NOW-LIT? + RSTACK +?ELS7: CALL CANT-TURN,STR?74 + RSTACK + + + .FUNCT CANT-TURN,STRING + PRINT YOU-CANT + PRINTI "turn that o" + PRINT STRING + PRINT PERIOD-CR + RTRUE + + + .FUNCT V-OPEN + FSET? PRSO,SURFACEBIT /?THN6 + FSET? PRSO,ACTORBIT /?THN6 + FSET? PRSO,VEHBIT \?ELS5 +?THN6: CALL IMPOSSIBLES + RSTACK +?ELS5: FSET? PRSO,OPENBIT \?ELS9 + PRINT ALREADY-IS + RTRUE +?ELS9: FSET? PRSO,DOORBIT \?ELS11 + FSET? PRSO,LOCKEDBIT \?ELS16 + PRINTR "It's locked. Very locked." +?ELS16: FSET PRSO,OPENBIT + FSET PRSO,TOUCHBIT + PRINTI "The " + CALL DPRINT,PRSO + PRINTR " swings open." +?ELS11: FSET? PRSO,CONTBIT \?ELS20 + FSET PRSO,OPENBIT + FSET PRSO,TOUCHBIT + FIRST? PRSO \?THN26 + FSET? PRSO,TRANSBIT \?ELS25 +?THN26: PRINTR "Opened." +?ELS25: PRINTI "Opening" + CALL TPRINT-PRSO + PRINTI " reveals" + CALL DESCRIBE-NOTHING + ZERO? STACK \?CND30 + PRINT PERIOD-CR +?CND30: CALL NOW-LIT? + RSTACK +?ELS20: CALL CANT-VERB-A-PRSO,STR?66 + RSTACK + + + .FUNCT V-PASS + PRINT YOULL-HAVE-TO + PRINTR "say who you want to pass it to." + + + .FUNCT V-PAY + CALL ULTIMATELY-IN?,ONE-MARSMID-COIN + ZERO? STACK /?ELS5 + CALL PERFORM,V?GIVE,ONE-MARSMID-COIN,PRSO + RTRUE +?ELS5: CALL ULTIMATELY-IN?,TEN-MARSMID-COIN + ZERO? STACK /?ELS7 + CALL PERFORM,V?GIVE,TEN-MARSMID-COIN,PRSO + RTRUE +?ELS7: PRINTR "You have no money!" + + + .FUNCT V-PEE + CALL RUNNING?,I-URGE + ZERO? STACK /?ELS5 + EQUAL? HERE,MENS-ROOM,LADIES-ROOM \?ELS10 + CALL DEQUEUE,I-URGE + CALL QUEUE,I-KIDNAPPING,5 + IN? PROTAGONIST,STOOL \?CND11 + MOVE PROTAGONIST,HERE + PRINTI "[getting off the stool first]" + CRLF +?CND11: PRINTI "Ahhh..." + CALL NOTICE-PIZZA-ODOR + RSTACK +?ELS10: SET 'AWAITING-REPLY,3 + CALL QUEUE,I-REPLY,2 + PRINTR "What, on the floor?" +?ELS5: CALL V-SHIT,TRUE-VALUE + RSTACK + + + .FUNCT V-PEE-IN + PRINTR "Miss Manners would be shocked." + + + .FUNCT V-PHONE + EQUAL? HERE,VIZICOMM-BOOTH \?ELS5 + CALL V-CALL + RSTACK +?ELS5: PRINT YOU-CANT-SEE-ANY + PRINTR "phone here!" + + + .FUNCT V-PICK + CALL CANT-VERB-A-PRSO,STR?75 + RSTACK + + + .FUNCT V-PICK-UP + CALL PERFORM,V?TAKE,PRSO,PRSI + RTRUE + + + .FUNCT V-PIN + ZERO? PRSI /?ELS5 + PRINT HUH + RTRUE +?ELS5: CALL VISIBLE?,CLOTHES-PIN + ZERO? STACK /?ELS8 + CALL PERFORM,V?PUT-ON,CLOTHES-PIN,PRSO + RTRUE +?ELS8: PRINTR "You have no pin." + + + .FUNCT V-POINT + PRINTR "That would be pointless." + + + .FUNCT PRE-POUR + CALL IN-SPACE? + ZERO? STACK /FALSE + PRINTR "There's no gravity!" + + + .FUNCT V-POUR + CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-PUSH + CALL HACK-HACK,STR?76 + RSTACK + + + .FUNCT V-PUSH-DIR + EQUAL? PRSI,INTDIR \?ELS5 + CALL V-PUSH + RSTACK +?ELS5: CALL RECOGNIZE + RSTACK + + + .FUNCT V-PUSH-OFF + EQUAL? PRSO,RAFT,DOCK-OBJECT,ROOMS /?THN8 + EQUAL? PRSO,BARGE \?ELS5 +?THN8: IN? PROTAGONIST,HERE /?ELS5 + LOC PROTAGONIST + CALL PERFORM,V?LAUNCH,STACK + RTRUE +?ELS5: PRINT HUH + RTRUE + + + .FUNCT PRE-PUT + EQUAL? PRSO,CUNT,TITS,COCK /FALSE + EQUAL? PRSI,GROUND \?ELS7 + CALL NOUN-USED,W?STAIN,STAIN + ZERO? STACK \FALSE + EQUAL? PRSO,CREAM \?CND8 + GET P-NAMW,0 + EQUAL? STACK,W?JAR \FALSE +?CND8: CALL PERFORM,V?DROP,PRSO + RTRUE +?ELS7: EQUAL? PRSO,HANDS \?ELS16 + EQUAL? PRSA,V?PUT,V?PUT-ON \?ELS21 + FSET? PRSI,PARTBIT /FALSE +?ELS21: EQUAL? PRSA,V?PUT \?ELS25 + CALL PERFORM,V?REACH-IN,PRSI + RTRUE +?ELS25: CALL IMPOSSIBLES + RSTACK +?ELS16: FSET? PRSI,PARTBIT /?ELS29 + CALL PLAYER-CANT-SEE + ZERO? STACK \TRUE +?ELS29: CALL ULTIMATELY-IN?,PRSI,PRSO + ZERO? STACK /?ELS33 + EQUAL? PRSO,BABY \?ELS38 + EQUAL? PRSI,BLANKET \?ELS38 + PRINT ALREADY-IS + RTRUE +?ELS38: PRINT YOU-CANT + PRINTI "put" + CALL TPRINT-PRSO + GET P-ITBL,P-PREP2 + EQUAL? STACK,PR?ON \?ELS45 + PRINTI " on" + JUMP ?CND43 +?ELS45: PRINTI " in" +?CND43: CALL TPRINT-PRSI + PRINTI " when" + CALL TPRINT-PRSI + PRINTI " is already " + FSET? PRSO,SURFACEBIT \?ELS50 + PRINTI "on" + JUMP ?CND48 +?ELS50: PRINTI "in" +?CND48: CALL TPRINT-PRSO + PRINTR "!" +?ELS33: EQUAL? PRSA,V?PUT-ON \?ELS54 + EQUAL? PRSO,SOD \?ELS54 + EQUAL? PRSI,HOLE /FALSE +?ELS54: CALL UNTOUCHABLE?,PRSI + ZERO? STACK /?ELS58 + CALL CANT-REACH,PRSI + RSTACK +?ELS58: CALL IDROP + ZERO? STACK \TRUE + RFALSE + + + .FUNCT V-PUT,?TMP1 + FSET? PRSI,OPENBIT /?ELS5 + FSET? PRSI,CONTBIT /?ELS5 + FSET? PRSI,SURFACEBIT /?ELS5 + FSET? PRSI,VEHBIT /?ELS5 + PRINT YOU-CANT + PRINTI "put" + CALL TPRINT-PRSO + PRINTI " in" + CALL APRINT,PRSI + PRINTR "!" +?ELS5: EQUAL? PRSI,PRSO /?THN10 + CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS9 + FSET? PRSO,TAKEBIT /?ELS9 +?THN10: PRINTR "How can you do that?" +?ELS9: FSET? PRSI,DOORBIT \?ELS15 + PRINT CANT-FROM-HERE + RTRUE +?ELS15: FSET? PRSI,OPENBIT /?ELS17 + FSET? PRSI,SURFACEBIT /?ELS17 + CALL THIS-IS-IT,PRSI + CALL DO-FIRST,STR?66,PRSI + RSTACK +?ELS17: IN? PRSO,PRSI \?ELS21 + PRINTI "But" + CALL TPRINT-PRSO + PRINTI " is already in" + CALL TRPRINT,PRSI + RSTACK +?ELS21: FSET? PRSI,ACTORBIT /?THN24 + EQUAL? PRSI,BABY,STALLION \?ELS23 +?THN24: PRINT HUH + RTRUE +?ELS23: CALL WEIGHT,PRSI >?TMP1 + CALL WEIGHT,PRSO + ADD ?TMP1,STACK >?TMP1 + GETP PRSI,P?SIZE + SUB ?TMP1,STACK >?TMP1 + GETP PRSI,P?CAPACITY + GRTR? ?TMP1,STACK \?ELS27 + CALL ULTIMATELY-IN?,PRSO,PRSI + ZERO? STACK \?ELS27 + PRINTI "There's no room " + FSET? PRSI,SURFACEBIT \?ELS32 + PRINTI "on" + JUMP ?CND30 +?ELS32: PRINTI "in" +?CND30: CALL TPRINT-PRSI + PRINTI " for" + CALL TRPRINT,PRSO + RSTACK +?ELS27: CALL ULTIMATELY-IN?,PRSO + ZERO? STACK \?ELS36 + CALL ITAKE + EQUAL? STACK,M-FATAL,FALSE-VALUE /TRUE +?ELS36: EQUAL? PRSO,TORCH /?THN43 + CALL ULTIMATELY-IN?,TORCH,PRSO + ZERO? STACK /?ELS40 +?THN43: FSET? TORCH,ONBIT \?ELS40 + EQUAL? PRSI,SACK,BASKET \?ELS40 + CALL DO-FIRST,STR?77,TORCH + RSTACK +?ELS40: IN? PRSI,ODD-MACHINE \?ELS46 + PRINT ONLY-ONE-THING-IN-COMPARTMENT + RTRUE +?ELS46: MOVE PRSO,PRSI + FSET PRSO,TOUCHBIT + PRINTR "Done." + + + .FUNCT V-PUT-AGAINST + CALL WASTES + RSTACK + + + .FUNCT V-PUT-BEHIND + CALL WASTES + RSTACK + + + .FUNCT V-PUT-NEAR + CALL WASTES + RSTACK + + + .FUNCT V-PUT-ON + EQUAL? PRSI,ME \?ELS5 + CALL PERFORM,V?WEAR,PRSO + RTRUE +?ELS5: FSET? PRSI,SURFACEBIT \?ELS7 + CALL V-PUT + RSTACK +?ELS7: PRINTI "There's no good surface on" + CALL TRPRINT,PRSI + RSTACK + + + .FUNCT V-PUT-THROUGH + FSET? PRSI,DOORBIT \?ELS5 + FSET? PRSI,OPENBIT \?ELS10 + CALL V-THROW + RSTACK +?ELS10: CALL DO-FIRST,STR?66,PRSI + RSTACK +?ELS5: LOC PROTAGONIST + EQUAL? PRSI,STACK \?ELS14 + EQUAL? P-PRSA-WORD,W?THROW,W?TOSS,W?HURL \?ELS14 + SET 'PRSI,FALSE-VALUE + CALL V-THROW + RSTACK +?ELS14: CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-PUT-TO + CALL RECOGNIZE + RSTACK + + + .FUNCT V-PUT-UNDER + CALL WASTES + RSTACK + + + .FUNCT V-RAISE + CALL HACK-HACK,STR?78 + RSTACK + + + .FUNCT PRE-RAKE + CALL ULTIMATELY-IN?,RAKE + ZERO? STACK \FALSE + PRINT ONLY-WITH-A-RAKE + RTRUE + + + .FUNCT V-RAKE + ZERO? PRSI \?CND1 + SET 'PRSI,RAKE +?CND1: EQUAL? PRSI,RAKE \?ELS8 + PRINTR "You'll never make it as a gardener." +?ELS8: PRINT ONLY-WITH-A-RAKE + RTRUE + + + .FUNCT V-RAPE + PRINTR "Unacceptably ungallant behavior." + + + .FUNCT V-REACH-IN,OBJ + FIRST? PRSO >OBJ /?KLU16 +?KLU16: FSET? PRSO,ACTORBIT /?THN6 + FSET? PRSO,SURFACEBIT /?THN6 + FSET? PRSO,CONTBIT /?ELS5 +?THN6: CALL YUKS + RSTACK +?ELS5: FSET? PRSO,OPENBIT /?ELS9 + CALL DO-FIRST,STR?66,PRSO + RSTACK +?ELS9: ZERO? OBJ /?THN12 + FSET? OBJ,INVISIBLE /?THN12 + FSET? OBJ,TAKEBIT /?ELS11 +?THN12: PRINT THERES-NOTHING + PRINTI "in" + CALL TRPRINT,PRSO + RSTACK +?ELS11: PRINTI "You feel something inside" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-READ + FSET? PRSO,READBIT \?ELS5 + GETP PRSO,P?TEXT + PRINT STACK + CRLF + RTRUE +?ELS5: CALL CANT-VERB-A-PRSO,STR?79 + RSTACK + + + .FUNCT V-RELIEVE + PRINT HUH + RTRUE + + + .FUNCT V-REMOVE + FSET? PRSO,WEARBIT \?ELS5 + CALL PERFORM,V?TAKE-OFF,PRSO + RTRUE +?ELS5: EQUAL? PRSO,HANDS \?ELS7 + ZERO? HAND-COVER /?ELS7 + CALL PERFORM,V?UNCOVER,HAND-COVER + RTRUE +?ELS7: EQUAL? PRSO,HANDS \?ELS11 + ZERO? RAFT-HELD /?ELS11 + CALL PERFORM,V?DROP,RAFT + RTRUE +?ELS11: CALL PERFORM,V?TAKE,PRSO + RTRUE + + + .FUNCT V-RETURN,ACTOR + ZERO? PRSI \?ELS5 + CALL FIND-IN,HERE,ACTORBIT,STR?80 >ACTOR + ZERO? ACTOR /?ELS10 + CALL PERFORM,V?GIVE,PRSO,ACTOR + RTRUE +?ELS10: CALL NO-ONE-HERE,STR?81 + RSTACK +?ELS5: FSET? PRSI,ACTORBIT \?ELS14 + CALL PERFORM,V?GIVE,PRSO,PRSI + RTRUE +?ELS14: CALL PERFORM,V?PUT,PRSO,PRSI + RTRUE + + + .FUNCT V-RIP + EQUAL? PRSO,MATCHBOOK,CODED-MESSAGE,SCRAP-OF-PAPER /?THN6 + EQUAL? PRSO,MAP \?ELS5 +?THN6: CALL WASTES + RSTACK +?ELS5: PRINTR "Unrippable." + + + .FUNCT V-ROLL + PRINTI "A rolling " + CALL DPRINT,PRSO + PRINTR " gathers no moss." + + + .FUNCT V-RUB + CALL PERFORM,V?TOUCH,PRSI,PRSO + RTRUE + + + .FUNCT V-SAVE-SOMETHING + PRINTI "Sorry, but" + CALL TPRINT-PRSO + PRINTR " is beyond help." + + + .FUNCT V-SAY,V + ZERO? AWAITING-REPLY /?ELS5 + GET P-LEXV,P-CONT + CALL YES-WORD,STACK + ZERO? STACK /?ELS5 + CALL V-YES + CALL STOP + RSTACK +?ELS5: ZERO? AWAITING-REPLY /?ELS9 + GET P-LEXV,P-CONT + CALL NO-WORD,STACK + ZERO? STACK /?ELS9 + CALL V-NO + CALL STOP + RSTACK +?ELS9: CALL RUNNING?,I-SNEEZE + ZERO? STACK /?ELS13 + CALL RIDDLE-ANSWER + RSTACK +?ELS13: IN? HAREM-GUARD,HERE \?ELS15 + CALL PICK-WIFE + RSTACK +?ELS15: GET P-LEXV,P-CONT + EQUAL? STACK,W?KWEEPA \?ELS17 + CALL V-KWEEPA + CALL STOP + RSTACK +?ELS17: GET P-LEXV,P-CONT + EQUAL? STACK,W?GIDDAP,W?GIDDYAP \?ELS19 + IN? STALLION,HERE \?ELS19 + CALL V-GIDDYAP + CALL STOP + RSTACK +?ELS19: CALL VISIBLE?,BEM + ZERO? STACK \?THN26 + CALL VISIBLE?,FLYTRAP + ZERO? STACK /?ELS23 +?THN26: GET P-LEXV,P-CONT + EQUAL? STACK,W?SCAT,W?BOO /?THN28 + GET P-LEXV,P-CONT + EQUAL? STACK,W?SCRAM,W?SHOO \?ELS23 +?THN28: CALL V-SCAT + CALL STOP + RSTACK +?ELS23: CALL FIND-IN,HERE,ACTORBIT >V + ZERO? V /?ELS31 + PRINTI "You must address" + CALL TPRINT,V + PRINTI " directly." + CRLF + CALL STOP + RSTACK +?ELS31: CALL PERFORM,V?TELL,ME + CALL STOP + RSTACK + + + .FUNCT V-SCAT,SCATEE=0 + CALL VISIBLE?,FLYTRAP + ZERO? STACK /?ELS3 + SET 'SCATEE,FLYTRAP + JUMP ?CND1 +?ELS3: CALL VISIBLE?,BEM + ZERO? STACK /?CND1 + SET 'SCATEE,BEM +?CND1: ZERO? SCATEE /?ELS10 + PRINTI "A weak attempt to scare away" + CALL ARPRINT,SCATEE + RSTACK +?ELS10: SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTR """Scat"" to you too!" + + + .FUNCT V-SCORE,ACTOR + ZERO? PRSO /?ELS5 + CALL PERFORM,V?FUCK,PRSO + RTRUE +?ELS5: ZERO? NAUGHTY-LEVEL \?ELS8 + CALL V-STATUS + RSTACK +?ELS8: LOC PROTAGONIST + CALL FIND-IN,STACK,ACTORBIT,STR?52 >ACTOR + ZERO? ACTOR /?ELS10 + CALL PERFORM,V?FUCK,ACTOR + RTRUE +?ELS10: CALL NO-ONE-HERE,STR?82 + RSTACK + + + .FUNCT V-SEARCH + FSET? PRSO,ACTORBIT \?ELS5 + CALL V-SHAKE + RSTACK +?ELS5: IN? PROTAGONIST,PRSO \?ELS7 + CALL DESCRIBE-VEHICLE + RSTACK +?ELS7: FSET? PRSO,CONTBIT \?ELS9 + FSET? PRSO,OPENBIT /?ELS9 + CALL DO-FIRST,STR?66,PRSO + RSTACK +?ELS9: FSET? PRSO,CONTBIT \?ELS13 + PRINTI "You find" + CALL DESCRIBE-NOTHING + ZERO? STACK \TRUE + PRINT PERIOD-CR + RTRUE +?ELS13: CALL CANT-VERB-A-PRSO,STR?83 + RSTACK + + + .FUNCT V-SET + EQUAL? PRSO,ROOMS \?ELS5 + CALL WEE + RSTACK +?ELS5: EQUAL? PRSO,INTDIR \?ELS7 + LOC PROTAGONIST + EQUAL? STACK,BARGE,RAFT \?ELS7 + LOC PROTAGONIST + CALL PERFORM-PRSA,STACK,INTNUM + RTRUE +?ELS7: ZERO? PRSI \?ELS11 + FSET? PRSO,TAKEBIT \?ELS16 + CALL HACK-HACK,STR?84 + RSTACK +?ELS16: PRINT YNH + CALL TRPRINT,PRSO + RSTACK +?ELS11: CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-SGIVE + CALL PERFORM,V?GIVE,PRSI,PRSO + RTRUE + + + .FUNCT V-SHAKE + FSET? PRSO,ACTORBIT \?ELS5 + PRINTR "That wouldn't be polite." +?ELS5: CALL HACK-HACK,STR?85 + RSTACK + + + .FUNCT V-SHAKE-WITH + EQUAL? PRSO,HANDS /?ELS5 + CALL RECOGNIZE + RSTACK +?ELS5: FSET? PRSI,ACTORBIT /?ELS7 + PRINTI "I don't think" + CALL TPRINT-PRSI + PRINTR " even has hands." +?ELS7: CALL PERFORM,V?THANK,PRSI + RTRUE + + + .FUNCT V-SHIT,NUMBER-ONE=0 + PRINTI "You don't have to go " + ZERO? NUMBER-ONE /?ELS3 + PRINTI "wee-wee" + JUMP ?CND1 +?ELS3: PRINTI "poo-poo" +?CND1: PRINTR " at the moment." + + + .FUNCT V-SHOW + PRINTI "It doesn't look like" + CALL TPRINT-PRSI + PRINTR " is interested." + + + .FUNCT V-SHUT-UP + EQUAL? PRSO,ROOMS \?ELS5 + PRINTR "[I hope you're not addressing me...]" +?ELS5: CALL PERFORM,V?CLOSE,PRSO + RTRUE + + + .FUNCT V-SIGH + PRINTR """Ahhhh...""" + + + .FUNCT V-SINK + CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-SIT,VEHICLE + CALL FIND-IN,HERE,VEHBIT >VEHICLE + ZERO? VEHICLE /?ELS5 + CALL PERFORM,V?BOARD,VEHICLE + RTRUE +?ELS5: CALL WASTES + RSTACK + + + .FUNCT V-SKIP + CALL IN-CATACOMBS + ZERO? STACK /?ELS5 + IN? PROTAGONIST,HERE \?ELS5 + CALL QUEUE,I-CRABS,10 + PRINTR "Splash." +?ELS5: CALL WEE + RSTACK + + + .FUNCT V-SLEEP + PRINTR "You're not tired." + + + .FUNCT PRE-SMELL + FSET? NOSE,MUNGBIT \FALSE + ZERO? GONE-APE \FALSE + PRINT YOU-CANT + PRINTI "smell a thing with " + PRINTD NOSE + PRINTR " blocked." + + + .FUNCT V-SMELL + ZERO? PRSO \?ELS5 + CALL PERFORM-PRSA,ODOR + RTRUE +?ELS5: CALL SENSE-OBJECT,STR?86 + RSTACK + + + .FUNCT SENSE-OBJECT,STRING + CALL PRONOUN + PRINTI " " + PRINT STRING + FSET? PRSO,PLURALBIT /?CND1 + EQUAL? PRSO,ME /?CND1 + PRINTI "s" +?CND1: PRINTI " just like" + CALL ARPRINT,PRSO + RSTACK + + + .FUNCT V-SPUT-ON + CALL PERFORM,V?PUT-ON,PRSI,PRSO + RTRUE + + + .FUNCT V-SRUB + CALL PERFORM,V?RUB,PRSI,PRSO + RTRUE + + + .FUNCT V-SSHOW + CALL PERFORM,V?SHOW,PRSI,PRSO + RTRUE + + + .FUNCT V-STAIN + ZERO? PRSI \?ELS5 + CALL ULTIMATELY-IN?,STAIN + ZERO? STACK /?ELS10 + FSET? STAIN,UNTEEDBIT /?ELS10 + CALL APPLY-STAIN,PRSO + RSTACK +?ELS10: PRINTR "You have no stain." +?ELS5: EQUAL? PRSI,STAIN \?ELS16 + CALL APPLY-STAIN,PRSO + RSTACK +?ELS16: CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-STAND + EQUAL? P-PRSA-WORD,W?HOLD \?ELS5 + CALL WASTES + RSTACK +?ELS5: EQUAL? P-PRSA-WORD,W?GET \?ELS7 + EQUAL? PRSO,ROOMS \?ELS7 + EQUAL? HERE,INNER-HAREM,BOUDOIR \?ELS7 + EQUAL? NAUGHTY-LEVEL,2 \?ELS7 + ZERO? MALE /?ELS7 + PRINTR "You're already quite hard." +?ELS7: LOC PROTAGONIST + FSET? STACK,VEHBIT \?ELS11 + LOC PROTAGONIST + EQUAL? STACK,TREE-HOLE,CAGE /?ELS11 + LOC PROTAGONIST + CALL PERFORM,V?DISEMBARK,STACK + RTRUE +?ELS11: ZERO? PRSO /?ELS15 + FSET? PRSO,TAKEBIT \?ELS15 + CALL WASTES + RSTACK +?ELS15: EQUAL? HERE,INNER-HAREM \?ELS19 + ZERO? NAUGHTY-LEVEL /?ELS19 + CALL DPRINT,SULTANS-WIFE + PRINTR " tugs you back down." +?ELS19: PRINTR "You're already standing." + + + .FUNCT V-STAND-ON + EQUAL? PRSO,STOOL \?ELS5 + CALL PERFORM,V?BOARD,STOOL + RTRUE +?ELS5: CALL WASTES + RSTACK + + + .FUNCT V-STELL + CALL PERFORM,V?TELL,PRSI + RTRUE + + + .FUNCT V-STHROW + CALL PERFORM,V?THROW-TO,PRSI,PRSO + RTRUE + + + .FUNCT V-SUCK + FSET? PRSO,ACTORBIT /?THN6 + ZERO? NAUGHTY-LEVEL \?ELS5 +?THN6: CALL PERFORM,V?EAT,PRSO + RTRUE +?ELS5: SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTR "Done. Some turn-on, huh?" + + + .FUNCT V-SUCKLE + CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-SWIM + EQUAL? PRSO,WATER /?THN4 + ZERO? PRSO \?ELS3 + CALL GLOBAL-IN?,WATER,HERE + ZERO? STACK /?ELS3 +?THN4: PRINTI "This is no time for" + JUMP ?CND1 +?ELS3: PRINTI "Your head must be" +?CND1: PRINTR " swimming." + + + .FUNCT V-SWING + ZERO? PRSI /?ELS5 + CALL PERFORM,V?KILL,PRSI,PRSO + RTRUE +?ELS5: PRINTR """Whoosh.""" + + + .FUNCT V-SWRAP + CALL PERFORM,V?WRAP,PRSI,PRSO + RTRUE + + + .FUNCT PRE-TAKE + EQUAL? PRSO,HANDS \?ELS5 + ZERO? PRSI /?ELS5 + EQUAL? PRSI,HAND-COVER \?ELS5 + CALL PERFORM,V?UNCOVER,HAND-COVER + RTRUE +?ELS5: EQUAL? PRSO,CLOTHES-PIN \?ELS13 + EQUAL? PRSI,NOSE \?ELS13 + FSET? CLOTHES-PIN,WORNBIT /?THN10 +?ELS13: EQUAL? PRSO,COTTON-BALLS \?ELS15 + EQUAL? PRSI,EARS \?ELS15 + FSET? COTTON-BALLS,WORNBIT /?THN10 +?ELS15: EQUAL? PRSO,LIP-BALM \?ELS9 + EQUAL? PRSI,MOUTH \?ELS9 + FSET? LIP-BALM,WORNBIT \?ELS9 +?THN10: CALL PERFORM,V?REMOVE,PRSO + RTRUE +?ELS9: FSET? PRSO,PARTBIT /?ELS19 + CALL PLAYER-CANT-SEE + ZERO? STACK \TRUE +?ELS19: CALL LOC-CLOSED + ZERO? STACK \TRUE + IN? PROTAGONIST,PRSO \?ELS25 + PRINTI "You're " + FSET? PRSO,INBIT \?ELS28 + PRINTI "i" + JUMP ?CND26 +?ELS28: PRINTI "o" +?CND26: PRINTR "n it!" +?ELS25: IN? PRSO,PROTAGONIST /?THN33 + CALL ULTIMATELY-IN?,PRSO + ZERO? STACK /?ELS32 + FSET? PRSO,TAKEBIT /?ELS32 +?THN33: EQUAL? PRSO,COMIC-BOOK \?ELS39 + EQUAL? PRSI,POCKET /FALSE +?ELS39: FSET? PRSO,WORNBIT \?ELS43 + PRINTI "You're already wearing" + JUMP ?CND37 +?ELS43: PRINTI "You already have" +?CND37: CALL TPRINT-PRSO + PRINT PERIOD-CR + RTRUE +?ELS32: ZERO? HAND-COVER /?ELS47 + EQUAL? PRSO,NOSE,EARS,EYES /?ELS47 + PRINT YOU-CANT + PRINTI "pick up anything while using " + PRINTD HANDS + PRINTI "s to cover" + CALL TRPRINT,HAND-COVER + RSTACK +?ELS47: IN? PRSO,TREE-HOLE \?ELS51 + IN? FLYTRAP,TREE-HOLE \?ELS51 + CALL PERFORM,V?REACH-IN,TREE-HOLE + RTRUE +?ELS51: ZERO? PRSI /FALSE + IN? PRSO,PRSI /FALSE + EQUAL? PRSO,ME \?ELS59 + CALL PERFORM,V?DROP,PRSI + RTRUE +?ELS59: EQUAL? PRSO,SHEET \?ELS61 + EQUAL? PRSI,WINDOW \?ELS61 + ZERO? SHEET-HANGING /?ELS61 + CALL PERFORM,V?MOVE,SHEET + RTRUE +?ELS61: EQUAL? PRSO,SHEET \?ELS65 + EQUAL? PRSI,BED \?ELS65 + FSET? SHEET,TOUCHBIT \FALSE +?ELS65: EQUAL? PRSO,BLANKET,BABY \?ELS69 + EQUAL? PRSI,BLANKET,BABY \?ELS69 + IN? BLANKET,BABY \?ELS69 + CALL PERFORM,V?REMOVE,BABY + RTRUE +?ELS69: EQUAL? PRSO,BLANKET \?ELS73 + EQUAL? PRSI,BABY \?ELS73 + IN? BLANKET,BABY /FALSE +?ELS73: IN? PRSO,PRSI /?ELS77 + CALL NOT-IN + RSTACK +?ELS77: SET 'PRSI,FALSE-VALUE + RFALSE + + + .FUNCT V-TAKE + CALL ITAKE + EQUAL? STACK,TRUE-VALUE \FALSE + EQUAL? PRSO,COTTON-BALLS \?ELS8 + FSET? COTTON-BALLS,WORNBIT \?ELS8 + FCLEAR COTTON-BALLS,WORNBIT + FCLEAR EARS,MUNGBIT + JUMP ?CND6 +?ELS8: EQUAL? PRSO,CLOTHES-PIN \?CND6 + FSET? CLOTHES-PIN,WORNBIT \?CND6 + FCLEAR CLOTHES-PIN,WORNBIT + FCLEAR NOSE,MUNGBIT +?CND6: PRINTR "Taken." + + + .FUNCT V-TAKE-A-LEAK + EQUAL? PRSO,ROOMS \?ELS5 + CALL V-PEE + RSTACK +?ELS5: CALL RECOGNIZE + RSTACK + + + .FUNCT V-TAKE-A-SHIT + EQUAL? PRSO,ROOMS \?ELS5 + CALL V-SHIT + RSTACK +?ELS5: CALL RECOGNIZE + RSTACK + + + .FUNCT V-TAKE-OFF + EQUAL? PRSO,ROOMS \?ELS5 + EQUAL? P-PRSA-WORD,W?GET \?ELS10 + LOC PROTAGONIST + FSET? STACK,VEHBIT \?ELS15 + PRINTI "[of" + LOC PROTAGONIST + CALL TPRINT,STACK + PRINTI "]" + CRLF + LOC PROTAGONIST + CALL PERFORM,V?DISEMBARK,STACK + RTRUE +?ELS15: ZERO? NAUGHTY-LEVEL \?ELS17 + CALL V-STAND + RSTACK +?ELS17: CALL PERFORM,V?FUCK,ME + RTRUE +?ELS10: CALL PERFORM-PRSA,GARMENT + RTRUE +?ELS5: FSET? PRSO,WORNBIT \?ELS23 + FCLEAR PRSO,WORNBIT + PRINTI "Okay, you're no longer wearing" + CALL TRPRINT,PRSO + RSTACK +?ELS23: FSET? PRSO,VEHBIT \?ELS25 + CALL PERFORM,V?DISEMBARK,PRSO + RTRUE +?ELS25: PRINTI "You aren't wearing" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-TAKE-WITH + PRINTI "Sorry," + CALL TPRINT-PRSI + PRINTI " is no help in getting" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-TASTE + CALL SENSE-OBJECT,STR?87 + RSTACK + + + .FUNCT V-TELL + EQUAL? PRSO,STALLION \?ELS5 + ZERO? P-CONT /?ELS5 + SET 'CLOCK-WAIT,TRUE-VALUE + SET 'WINNER,STALLION + RTRUE +?ELS5: FSET? PRSO,ACTORBIT /?THN10 + EQUAL? PRSO,INTNUM \?ELS9 + IN? SULTANS-WIFE,HERE \?ELS9 +?THN10: EQUAL? PRSO,INTNUM \?ELS18 + EQUAL? P-NUMBER,CHOICE-NUMBER /?ELS18 + PRINTI """That's not my number!""" + CRLF + CALL STOP + RSTACK +?ELS18: ZERO? P-CONT /?ELS22 + EQUAL? PRSO,INTNUM \?ELS26 + SET 'WINNER,SULTANS-WIFE + JUMP ?CND24 +?ELS26: SET 'WINNER,PRSO +?CND24: SET 'CLOCK-WAIT,TRUE-VALUE + RTRUE +?ELS22: PRINTI "Hmmm ..." + CALL TPRINT-PRSO + PRINTR " looks at you expectantly, as if you seemed to be about to talk." +?ELS9: EQUAL? PRSO,BEM,FLYTRAP \?ELS32 + GET P-LEXV,P-CONT + EQUAL? STACK,W?SCAT,W?BOO /?THN35 + GET P-LEXV,P-CONT + EQUAL? STACK,W?SCRAM,W?SHOO \?ELS32 +?THN35: CALL V-SCAT + CALL STOP + RSTACK +?ELS32: CALL CANT-VERB-A-PRSO,STR?88 + CALL STOP + RSTACK + + + .FUNCT V-TELL-ABOUT + EQUAL? PRSO,ME \?ELS5 + CALL PERFORM,V?WHAT,PRSI + RTRUE +?ELS5: CALL PERFORM,V?SHOW,PRSI,PRSO + RTRUE + + + .FUNCT V-THANK + ZERO? PRSO \?ELS5 + PRINTR "[Just doing my job.]" +?ELS5: FSET? PRSO,ACTORBIT \?ELS7 + PRINTR """You're welcome.""" +?ELS7: CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-THROW + CALL SPECIAL-DROP + ZERO? STACK \FALSE + EQUAL? HERE,CANAL \?ELS10 + CALL PERFORM,V?PUT,PRSO,CANAL-OBJECT + RTRUE +?ELS10: ZERO? PRSI /?ELS12 + MOVE PRSO,HERE + PRINTR "You missed." +?ELS12: MOVE PRSO,HERE + PRINTR "Thrown." + + + .FUNCT V-THROW-TO + FSET? PRSI,ACTORBIT \?ELS5 + CALL PERFORM,V?GIVE,PRSO,PRSI + RTRUE +?ELS5: CALL PERFORM,V?THROW,PRSO,PRSI + RTRUE + + + .FUNCT V-THROW-UP + EQUAL? PRSO,ROOMS \?ELS5 + CALL V-VOMIT + RSTACK +?ELS5: CALL PERFORM,V?THROW,PRSO + RTRUE + + + .FUNCT V-TIE + FSET? PRSO,ACTORBIT /?THN6 + FSET? PRSI,ACTORBIT \?ELS3 +?THN6: ZERO? NAUGHTY-LEVEL /?ELS3 + PRINTR "Kinky!" +?ELS3: EQUAL? P-PRSA-WORD,W?TIE \?ELS9 + PRINTI "You've tied" + CALL TPRINT-PRSO + PRINTI "! In the third quarter, with forty seconds on the clock, the score is " + CALL DPRINT,PRSO + PRINTI " 17, player 17!!! But seriously, folks, y" + JUMP ?CND1 +?ELS9: PRINTI "Y" +?CND1: PRINTI "ou can't tie" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-TIE-TOGETHER + CALL IMPOSSIBLES + RSTACK + + + .FUNCT PRE-TOUCH + CALL UNTOUCHABLE?,PRSO + ZERO? STACK /FALSE + CALL CANT-REACH,PRSO + RSTACK + + + .FUNCT V-TOUCH + CALL LOC-CLOSED + ZERO? STACK \TRUE + ZERO? NAUGHTY-LEVEL \?ELS7 + CALL HACK-HACK,STR?89 + RSTACK +?ELS7: CALL HACK-HACK,STR?90 + RSTACK + + + .FUNCT V-UNCOVER + EQUAL? PRSO,HAND-COVER \?ELS5 + CALL SENSE-AGAIN,HAND-COVER + SET 'HAND-COVER,FALSE-VALUE + RTRUE +?ELS5: FSET? PRSO,ACTORBIT \?ELS7 + CALL PERFORM,V?UNDRESS,OBJECT + RTRUE +?ELS7: FSET? PRSO,PLURALBIT \?ELS12 + PRINTI "They're" + JUMP ?CND10 +?ELS12: FSET? PRSO,FEMALEBIT \?ELS14 + PRINTI "She's" + JUMP ?CND10 +?ELS14: FSET? PRSO,ACTORBIT \?ELS16 + PRINTI "He's" + JUMP ?CND10 +?ELS16: PRINTI "It's" +?CND10: PRINTR " not covered!" + + + .FUNCT SENSE-AGAIN,BODY-PART + FCLEAR BODY-PART,MUNGBIT + PRINTI "You can once again sense with" + CALL TRPRINT,BODY-PART + RSTACK + + + .FUNCT V-UNDRESS + ZERO? PRSO /?ELS5 + FSET? PRSO,ACTORBIT \?ELS11 + CALL PERFORM,V?FUCK,PRSO + RTRUE +?ELS11: CALL IMPOSSIBLES + RSTACK +?ELS5: SET 'PRSO,ROOMS + CALL V-GET-UNDRESSED + RSTACK + + + .FUNCT V-UNLOCK + ZERO? PRSI /?ELS5 + CALL IMPOSSIBLES + RSTACK +?ELS5: FSET? PRSO,LOCKEDBIT \?ELS8 + SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTR "Your nose is key-shaped, I suppose?" +?ELS8: FSET? PRSO,DOORBIT \?ELS10 + PRINTI "But" + CALL TPRINT-PRSO + PRINTR " isn't locked." +?ELS10: CALL YUKS + RSTACK + + + .FUNCT V-UNROLL + CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-UNTIE + CALL IMPOSSIBLES + RSTACK + + + .FUNCT V-USE + PRINT YOULL-HAVE-TO + PRINTI "be more specific about how you want to use" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-USE-QUOTES + IN? HAREM-GUARD,HERE \?ELS5 + CALL PICK-WIFE,PRSO + RSTACK +?ELS5: CALL SEE-MANUAL,STR?91 + RSTACK + + + .FUNCT V-VOMIT + IN? PIZZA,HERE \?ELS5 + FSET? PIZZA,TOUCHBIT \?ELS5 + PRINTI "Just keep trying to eat that " + CALL DPRINT,PIZZA + PRINT PERIOD-CR + RTRUE +?ELS5: PRINTR "You stick a finger down your throat, but to no avail." + + + .FUNCT V-WALK,AV,VEHICLE,PT,PTS,STR,OBJ,RM + LOC PROTAGONIST >AV + ZERO? P-WALK-DIR \?ELS5 + CALL PERFORM,V?WALK-TO,PRSO + RTRUE +?ELS5: EQUAL? PRSO,P?OUT \?ELS7 + CALL IN-EXITABLE-VEHICLE? + ZERO? STACK \TRUE +?ELS7: EQUAL? PRSO,P?DOWN \?ELS11 + EQUAL? AV,STOOL,STALLION \?ELS11 + CALL PERFORM,V?DISEMBARK,AV + RTRUE +?ELS11: EQUAL? PRSO,P?IN \?ELS15 + EQUAL? HERE,LABORATORY \?ELS15 + CALL PERFORM,V?BOARD,CAGE + RTRUE +?ELS15: EQUAL? PRSO,P?IN \?ELS19 + GETPT HERE,P?IN + ZERO? STACK \?ELS19 + CALL FIND-IN,HERE,VEHBIT >VEHICLE + ZERO? VEHICLE /?ELS19 + CALL ULTIMATELY-IN?,VEHICLE + ZERO? STACK \?ELS19 + CALL PERFORM,V?BOARD,VEHICLE + RTRUE +?ELS19: ZERO? RAFT-HELD /?ELS23 + IN? PROTAGONIST,RAFT /?ELS23 + PRINTI "If you want to walk away, you'll either have to take the raft or let go of it!" + CRLF + RETURN 8 +?ELS23: FSET? AV,VEHBIT \?ELS29 + EQUAL? AV,STALLION /?ELS29 + EQUAL? HERE,CELL \?ELS36 + EQUAL? AV,STOOL \?ELS36 + ZERO? HOLE-OPEN /?ELS36 + EQUAL? PRSO,P?UP \?ELS36 + CALL HOLE-ENTER-F + RTRUE +?ELS36: CALL NOT-GOING-ANYWHERE + RSTACK +?ELS29: FSET? EYES,MUNGBIT /?THN43 + EQUAL? HAND-COVER,EYES \?ELS42 +?THN43: CALL OPEN-YOUR-EYES + RETURN 8 +?ELS42: GETPT HERE,PRSO >PT + ZERO? PT /?ELS48 + PTSIZE PT >PTS + EQUAL? PTS,UEXIT \?ELS53 + GETB PT,REXIT + CALL GOTO,STACK + RSTACK +?ELS53: EQUAL? PTS,NEXIT \?ELS55 + GET PT,NEXITSTR + PRINT STACK + CRLF + RETURN 8 +?ELS55: EQUAL? PTS,FEXIT \?ELS59 + GET PT,FEXITFCN + CALL STACK >RM + ZERO? RM /?ELS64 + EQUAL? RM,ROOMS /TRUE + CALL GOTO,RM + RSTACK +?ELS64: RETURN 8 +?ELS59: EQUAL? PTS,CEXIT \?ELS73 + GETB PT,CEXITFLAG + VALUE STACK + ZERO? STACK /?ELS78 + GETB PT,REXIT + CALL GOTO,STACK + RSTACK +?ELS78: GET PT,CEXITSTR >STR + ZERO? STR /?ELS80 + PRINT STR + CRLF + RETURN 8 +?ELS80: PRINT CANT-GO + RETURN 8 +?ELS73: EQUAL? PTS,DEXIT \FALSE + GETB PT,DEXITOBJ >OBJ + FSET? OBJ,OPENBIT \?ELS93 + GETB PT,REXIT + CALL GOTO,STACK + RSTACK +?ELS93: GET PT,DEXITSTR >STR + ZERO? STR /?ELS95 + CALL THIS-IS-IT,OBJ + PRINT STR + CRLF + RETURN 8 +?ELS95: CALL THIS-IS-IT,OBJ + CALL DO-FIRST,STR?66,OBJ + RETURN 8 +?ELS48: EQUAL? PRSO,P?IN,P?OUT \?ELS106 + CALL V-WALK-AROUND + RETURN 8 +?ELS106: EQUAL? HERE,WELL-BOTTOM,FORGOTTEN-STOREHOUSE /?THN109 + EQUAL? HERE,BURIAL-CHAMBER,LADDER-ROOM \?ELS108 +?THN109: PRINTI "You wade into the dark, but find no passage in that direction." + CRLF + RETURN 8 +?ELS108: PRINT CANT-GO + RETURN 8 + + + .FUNCT NOT-GOING-ANYWHERE,AV + LOC PROTAGONIST >AV + PRINTI "You're not going anywhere until you get " + CALL OFF-VEHICLE?,AV + ZERO? STACK /?ELS3 + PRINTI "off" + JUMP ?CND1 +?ELS3: PRINTI "out of" +?CND1: CALL TRPRINT,AV + RETURN 8 + + + .FUNCT V-WALK-AROUND + SET 'AWAITING-REPLY,2 + CALL QUEUE,I-REPLY,2 + PRINTR "Did you have any particular direction in mind?" + + + .FUNCT V-WALK-TO + EQUAL? PRSO,INTDIR \?ELS5 + CALL DO-WALK,P-DIRECTION + RSTACK +?ELS5: CALL V-WALK-AROUND + RSTACK + + + .FUNCT V-WAIT,NUM=3 + PRINTI "Time passes..." + CRLF +?PRG1: DLESS? 'NUM,0 \?ELS5 + JUMP ?REP2 +?ELS5: CALL CLOCKER + ZERO? STACK /?PRG1 +?REP2: SET 'CLOCK-WAIT,TRUE-VALUE + RETURN CLOCK-WAIT + + + .FUNCT V-WAIT-FOR + CALL VISIBLE?,PRSO + ZERO? STACK /?ELS5 + CALL V-FOLLOW + RSTACK +?ELS5: PRINTR "You may be waiting quite a while." + + + .FUNCT V-WEAR + FSET? PRSO,WEARBIT /?ELS5 + CALL CANT-VERB-A-PRSO,STR?92 + RSTACK +?ELS5: PRINTI "You're " + FSET? PRSO,WORNBIT \?ELS10 + PRINTI "already" + JUMP ?CND8 +?ELS10: MOVE PRSO,PROTAGONIST + FSET PRSO,WORNBIT + PRINTI "now" +?CND8: PRINTI " wearing" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT V-WHAT + PRINTR "Good question." + + + .FUNCT V-WHERE + CALL V-FIND,TRUE-VALUE + RSTACK + + + .FUNCT V-WHIP + ZERO? NAUGHTY-LEVEL \?ELS5 + CALL V-KILL + RSTACK +?ELS5: PRINTR "Oooo! S & M! Love it!!!" + + + .FUNCT V-WRAP + CALL WASTES + RSTACK + + + .FUNCT V-YELL + CALL SORE,STR?93 + CALL STOP + RSTACK + + + .FUNCT I-REPLY + SET 'AWAITING-REPLY,FALSE-VALUE + RFALSE + + + .FUNCT V-YES + EQUAL? AWAITING-REPLY,1 \?ELS5 + SET 'AWAITING-REPLY,FALSE-VALUE + SET 'AWAITING-FAKE-ORPHAN,TRUE-VALUE + SET 'SULTAN-COUNTER,0 + CALL QUEUE,I-SNEEZE,2 + CALL DEQUEUE,I-SULTAN + PRINTI """Here, then, is the riddle. Don't strain " + PRINTD HEAD + PRINTI "; no one's ever gotten it right."" You hear a growling snarl from somewhere nearby. + ""Some say I'm pointless, + yet many are obsessed by me. + I have caused heroic gambles + and sown endless frustration. + Uncounted deaths have I caused. + What am I?""" + CRLF + IN? SIDEKICK,HERE \TRUE + PRINTI " " + CALL DPRINT-SIDEKICK + PRINTI " steps briskly forward. ""That's easy!"" " + CALL HE-SHE + PRINTI " yells. ""A grapefruit!"" As the eunuchs snicker behind their weapons, the " + CALL DPRINT,SULTAN + PRINTI " cries ""Wrongo!"" and " + CALL TIGER-EATS-SIDEKICK + PRINTI " ""Your turn to guess,"" says the " + CALL DPRINT,SULTAN + PRINTR ", looking gleeful." +?ELS5: EQUAL? AWAITING-REPLY,2 \?ELS10 + PRINTR "That was just a rhetorical question." +?ELS10: EQUAL? AWAITING-REPLY,3 \?ELS12 + CALL V-PEE-IN + RSTACK +?ELS12: CALL YOU-SOUND,STR?94 + RSTACK + + + .FUNCT YOU-SOUND,STRING + PRINTI "You sound rather " + PRINT STRING + PRINTR "tive." + + + .FUNCT YES-WORD,WRD + EQUAL? WRD,W?YES,W?Y,W?YUP /TRUE + EQUAL? WRD,W?OK,W?OKAY,W?SURE \FALSE + RTRUE + + + .FUNCT ITAKE,VB=1,OBJ + FSET? PRSO,TAKEBIT /?ELS3 + ZERO? VB /?CND4 + CALL YUKS +?CND4: RETURN 8 +?ELS3: CALL PRE-TOUCH + ZERO? STACK /?ELS11 + RETURN 8 +?ELS11: CALL CCOUNT,PROTAGONIST + GRTR? STACK,10 \?CND1 + ZERO? VB /?CND16 + PRINTI "You're already juggling as many items as you could possibly carry." + CRLF +?CND16: RETURN 8 +?CND1: FSET PRSO,TOUCHBIT + FCLEAR PRSO,NDESCBIT + IN? PROTAGONIST,PRSO /FALSE + EQUAL? PRSO,RAFT \?CND22 + ZERO? RAFT-HELD /?CND22 + SET 'RAFT-HELD,FALSE-VALUE +?CND22: MOVE PRSO,PROTAGONIST + RTRUE + + + .FUNCT IDROP + EQUAL? PRSO,TITS,CUNT,COCK /FALSE + EQUAL? PRSO,HANDS \?ELS7 + EQUAL? PRSA,V?GIVE,V?THROW,V?DROP \FALSE + CALL IMPOSSIBLES + RSTACK +?ELS7: EQUAL? PRSO,POWER-SWITCH \?ELS16 + EQUAL? PRSA,V?THROW /FALSE +?ELS16: EQUAL? PRSO,HEAD \?ELS20 + EQUAL? PRSA,V?PUT \?ELS20 + EQUAL? PRSI,HOLE \?ELS20 + PRINTR "Hey wow! Vertigo city!" +?ELS20: EQUAL? PRSO,ME \?ELS24 + EQUAL? PRSA,V?PUT \?ELS24 + FSET? PRSI,ACTORBIT \?ELS24 + CALL PERFORM,V?BOARD,PRSI + RTRUE +?ELS24: EQUAL? PRSI,ME \?ELS28 + EQUAL? PRSA,V?PUT \?ELS28 + FSET? PRSO,ACTORBIT \?ELS28 + CALL PERFORM,V?BOARD,PRSO + RTRUE +?ELS28: EQUAL? PRSA,V?PUT-THROUGH,V?PUT \?ELS32 + EQUAL? PRSO,SHEET \?ELS32 + EQUAL? PRSI,WINDOW /FALSE +?ELS32: EQUAL? PRSO,HAND-COVER \?ELS36 + CALL PERFORM,V?UNCOVER,PRSO + RTRUE +?ELS36: EQUAL? PRSO,NOSE \?ELS38 + EQUAL? PRSI,CLOTHES-PIN /FALSE +?ELS38: EQUAL? PRSO,COMIC-BOOK \?ELS42 + EQUAL? PRSI,POCKET \?ELS47 + PRINT ALREADY-IS + RTRUE +?ELS47: CALL PERFORM,V?REMOVE,COMIC-BOOK + RTRUE +?ELS42: CALL ULTIMATELY-IN?,PRSO + ZERO? STACK \?ELS51 + EQUAL? PRSO,LEAVES /?ELS51 + EQUAL? PRSO,RAFT \?THN54 + ZERO? RAFT-HELD \?ELS51 +?THN54: EQUAL? PRSO,ME /?THN59 + FSET? PRSO,PARTBIT \?ELS58 +?THN59: CALL IMPOSSIBLES + RETURN 8 +?ELS58: EQUAL? PRSO,SOD \?ELS62 + EQUAL? PRSI,HOLE /FALSE +?ELS62: PRINTI "That's easy for you to say since you don't even have" + CALL TRPRINT,PRSO + RETURN 8 +?ELS51: IN? PRSO,PROTAGONIST /?ELS70 + LOC PRSO + FSET? STACK,CONTBIT \?ELS70 + LOC PRSO + FSET? STACK,OPENBIT /?ELS70 + LOC PRSO + CALL DO-FIRST,STR?66,STACK + RSTACK +?ELS70: FSET? PRSO,WORNBIT \FALSE + EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS79 + EQUAL? PRSO,CLOTHES-PIN \?ELS85 + EQUAL? PRSI,NOSE /?THN82 +?ELS85: EQUAL? PRSO,COTTON-BALLS \?ELS87 + EQUAL? PRSI,EARS /?THN82 +?ELS87: EQUAL? PRSO,LIP-BALM \?ELS79 + EQUAL? PRSI,MOUTH \?ELS79 +?THN82: PRINT SENILITY-STRIKES + RTRUE +?ELS79: CALL DO-FIRST,STR?95,PRSO + RSTACK + + + .FUNCT CCOUNT,OBJ,CNT=0,X + FIRST? OBJ >X \?CND1 +?PRG4: FSET? X,WORNBIT /?CND6 + INC 'CNT +?CND6: NEXT? X >X /?PRG4 +?CND1: RETURN CNT + + + .FUNCT WEIGHT,OBJ,CONT,WT=0 + FIRST? OBJ >CONT \?CND1 +?PRG4: CALL WEIGHT,CONT + ADD WT,STACK >WT + NEXT? CONT >CONT /?PRG4 +?CND1: GETP OBJ,P?SIZE + ADD WT,STACK + RSTACK + + + .FUNCT DESCRIBE-ROOM,VERB-IS-LOOK=0,FIRST-VISIT=0,NUM=0 + ZERO? LIT \?CND1 + PRINT TOO-DARK + EQUAL? HERE,CLOSET \?CND4 + FSET? NOSE,MUNGBIT /?CND4 + PRINTI " There's a distinctive odor here, though." +?CND4: CRLF + RFALSE +?CND1: FSET? HERE,TOUCHBIT /?CND9 + EQUAL? HERE,CANAL,CATACOMBS,LONG-CORRIDOR /?CND12 + FSET HERE,TOUCHBIT +?CND12: SET 'FIRST-VISIT,TRUE-VALUE +?CND9: CALL DPRINT,HERE + CALL CANAL-LOC >NUM + EQUAL? NUM,10 \?CND15 + PRINTI ", near the " + EQUAL? NEARER-DOCK,MY-KIND-OF-DOCK \?ELS20 + PRINTI "ea" + JUMP ?CND18 +?ELS20: PRINTI "we" +?CND18: PRINTI "st bank" +?CND15: LOC PROTAGONIST + FSET? STACK,VEHBIT \?CND23 + ZERO? DONT-PRINT-VEHICLE \?CND23 + PRINTI ", " + LOC PROTAGONIST + FSET? STACK,INBIT \?ELS30 + PRINTI "i" + JUMP ?CND28 +?ELS30: PRINTI "o" +?CND28: PRINTI "n" + LOC PROTAGONIST + CALL TPRINT,STACK +?CND23: CRLF + ZERO? VERB-IS-LOOK \?THN36 + EQUAL? VERBOSITY,2 /?THN36 + ZERO? FIRST-VISIT /TRUE + EQUAL? VERBOSITY,1 \TRUE +?THN36: PRINTI " " + GETP HERE,P?ACTION + CALL STACK,M-LOOK + ZERO? STACK \?CND40 + GETP HERE,P?LDESC + PRINT STACK +?CND40: CRLF + RTRUE + + + .FUNCT DESCRIBE-OBJECTS,O,STR,1ST?=1,AV + LOC WINNER >AV + FIRST? HERE >O /?KLU48 +?KLU48: ZERO? O /FALSE +?PRG4: ZERO? O \?ELS8 + JUMP ?REP5 +?ELS8: CALL DESCRIBABLE?,O + ZERO? STACK /?CND6 + FSET? O,TOUCHBIT /?CND6 + GETP O,P?FDESC >STR + ZERO? STR /?CND6 + PRINTI " " + PRINT STR + FSET? O,CONTBIT \?CND13 + ADD D-ALL?,D-PARA? + CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,STACK +?CND13: CRLF +?CND6: NEXT? O >O /?KLU49 +?KLU49: JUMP ?PRG4 +?REP5: FIRST? HERE >O /?KLU50 +?KLU50: SET '1ST?,TRUE-VALUE +?PRG16: ZERO? O \?ELS20 + JUMP ?REP17 +?ELS20: CALL DESCRIBABLE?,O + ZERO? STACK /?CND18 + GETP O,P?FDESC + ZERO? STACK /?ELS22 + FSET? O,TOUCHBIT /?ELS22 + JUMP ?CND18 +?ELS22: GETP O,P?DESCFCN >STR + ZERO? STR /?ELS28 + CALL STR,M-OBJDESC >STR + ZERO? STR /?ELS28 + FSET? O,CONTBIT \?CND31 + EQUAL? STR,M-FATAL /?CND31 + ADD D-ALL?,D-PARA? + CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,STACK +?CND31: CRLF + JUMP ?CND18 +?ELS28: GETP O,P?LDESC >STR + ZERO? STR /?CND18 + PRINTI " " + PRINT STR + FSET? O,CONTBIT \?CND38 + ADD D-ALL?,D-PARA? + CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,STACK +?CND38: CRLF +?CND18: NEXT? O >O /?KLU51 +?KLU51: JUMP ?PRG16 +?REP17: CALL DESCRIBE-CONTENTS,HERE,FALSE-VALUE,0 + ZERO? AV /FALSE + EQUAL? HERE,AV /FALSE + CALL DESCRIBE-CONTENTS,AV,FALSE-VALUE,0 + RSTACK + + + .FUNCT DESCRIBE-CONTENTS,OBJ,LEVEL=-1,ALL?=D-ALL?,F=0,N,1ST?=1,IT?=0,START?=0,TWO?=0,PARA?=0 + EQUAL? LEVEL,2 \?ELS3 + SET 'LEVEL,TRUE-VALUE + SET 'PARA?,TRUE-VALUE + SET 'START?,TRUE-VALUE + JUMP ?CND1 +?ELS3: BTST ALL?,D-PARA? \?CND1 + SET 'PARA?,TRUE-VALUE +?CND1: FIRST? OBJ >N /?KLU153 +?KLU153: ZERO? START? \?THN11 + IN? OBJ,ROOMS /?THN11 + FSET? OBJ,ACTORBIT /?THN11 + FSET? OBJ,CONTBIT \FALSE + FSET? OBJ,OPENBIT /?THN15 + FSET? OBJ,TRANSBIT \FALSE +?THN15: FSET? OBJ,SEARCHBIT \FALSE + ZERO? N /FALSE +?THN11: +?PRG17: ZERO? N /?THN26 + CALL DESCRIBABLE?,N + ZERO? STACK /?CND19 + BTST ALL?,D-ALL? /?THN26 + CALL SIMPLE-DESC?,N + ZERO? STACK /?CND19 +?THN26: ZERO? F /?CND28 + ZERO? 1ST? /?ELS34 + SET '1ST?,FALSE-VALUE + EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?ELS38 + ZERO? START? \?CND32 + ZERO? PARA? \?ELS44 + EQUAL? OBJ,PROTAGONIST /?CND45 + PRINTI " " +?CND45: SET 'PARA?,TRUE-VALUE + JUMP ?CND42 +?ELS44: EQUAL? LEVEL,TRUE-VALUE \?CND42 + PRINTI " " +?CND42: EQUAL? OBJ,HERE \?ELS52 + PRINT YOU-SEE + JUMP ?CND32 +?ELS52: EQUAL? OBJ,PROTAGONIST \?ELS54 + PRINTI "You have" + JUMP ?CND32 +?ELS54: FSET? OBJ,SURFACEBIT \?ELS56 + PRINTI "Sitting on" + CALL TPRINT,OBJ + PRINTI " is" + JUMP ?CND32 +?ELS56: PRINT IT-SEEMS-THAT + CALL TPRINT,OBJ + FSET? OBJ,ACTORBIT \?ELS61 + PRINTI " has" + JUMP ?CND32 +?ELS61: PRINTI " contains" + JUMP ?CND32 +?ELS38: EQUAL? LEVEL,-1 /?CND32 + PRINT LEVEL + JUMP ?CND32 +?ELS34: ZERO? N /?ELS70 + PRINTI "," + JUMP ?CND32 +?ELS70: PRINTI " and" +?CND32: CALL APRINT,F + FSET? F,WORNBIT \?ELS76 + EQUAL? F,LIP-BALM \?ELS79 + PRINTI " (smeared all over your lips)" + JUMP ?CND74 +?ELS79: EQUAL? F,COTTON-BALLS \?ELS81 + PRINTI " (stuffed in " + PRINTD EARS + PRINTI ")" + JUMP ?CND74 +?ELS81: EQUAL? F,CLOTHES-PIN \?ELS83 + PRINTI " (pinned to " + PRINTD NOSE + PRINTI ")" + JUMP ?CND74 +?ELS83: PRINTI " (being worn)" + JUMP ?CND74 +?ELS76: FSET? F,ONBIT \?ELS87 + PRINTI " (providing light)" + JUMP ?CND74 +?ELS87: EQUAL? F,COMIC-BOOK \?CND74 + PRINTI " (stuck in your back pocket)" +?CND74: ZERO? IT? \?ELS92 + ZERO? TWO? \?ELS92 + SET 'IT?,F + JUMP ?CND28 +?ELS92: SET 'TWO?,TRUE-VALUE + SET 'IT?,FALSE-VALUE +?CND28: SET 'F,N +?CND19: ZERO? N /?CND97 + NEXT? N >N /?KLU154 +?KLU154: +?CND97: ZERO? F \?PRG17 + ZERO? N \?PRG17 + ZERO? IT? /?CND106 + ZERO? TWO? \?CND106 + CALL THIS-IS-IT,IT? +?CND106: ZERO? 1ST? /?CND111 + ZERO? START? /?CND111 + PRINTI " nothing" + RFALSE +?CND111: ZERO? 1ST? \?REP18 + EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?REP18 + EQUAL? OBJ,HERE \?CND121 + PRINTI " here" +?CND121: PRINTI "." +?REP18: FIRST? OBJ >F /?KLU155 +?KLU155: +?PRG124: ZERO? F \?ELS128 + JUMP ?REP125 +?ELS128: FSET? F,CONTBIT \?CND126 + CALL DESCRIBABLE?,F,TRUE-VALUE + ZERO? STACK /?CND126 + BTST ALL?,D-ALL? /?THN133 + CALL SIMPLE-DESC?,F + ZERO? STACK /?CND126 +?THN133: ZERO? PARA? /?ELS142 + ADD D-ALL?,D-PARA? + JUMP ?CND138 +?ELS142: PUSH D-ALL? +?CND138: CALL DESCRIBE-CONTENTS,F,TRUE-VALUE,STACK + ZERO? STACK /?CND126 + SET '1ST?,FALSE-VALUE + SET 'PARA?,TRUE-VALUE +?CND126: NEXT? F >F /?KLU156 +?KLU156: JUMP ?PRG124 +?REP125: ZERO? 1ST? \?CND146 + EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?CND146 + LOC WINNER + EQUAL? OBJ,HERE,STACK \?CND146 + CRLF +?CND146: ZERO? 1ST? \FALSE + RTRUE + + + .FUNCT DESCRIBABLE?,OBJ,CONT?=0 + FSET? OBJ,INVISIBLE /FALSE + EQUAL? OBJ,WINNER /FALSE + LOC WINNER + EQUAL? OBJ,STACK \?ELS9 + LOC WINNER + EQUAL? HERE,STACK \FALSE +?ELS9: ZERO? CONT? \?ELS13 + FSET? OBJ,NDESCBIT /FALSE +?ELS13: EQUAL? OBJ,RAFT,BARGE \TRUE + EQUAL? HERE,CANAL \TRUE + CALL ULTIMATELY-IN?,OBJ + ZERO? STACK \TRUE + IN? OBJ,BARGE /TRUE + EQUAL? RAFT-LOC-NUM,BARGE-LOC-NUM /TRUE + RFALSE + + + .FUNCT SIMPLE-DESC?,OBJ,STR + GETP OBJ,P?FDESC + ZERO? STACK /?ELS5 + FSET? OBJ,TOUCHBIT \FALSE +?ELS5: GETP OBJ,P?DESCFCN >STR + ZERO? STR /?ELS9 + CALL STR,M-OBJDESC? + ZERO? STACK \FALSE +?ELS9: GETP OBJ,P?LDESC + ZERO? STACK /TRUE + RFALSE + + + .FUNCT DESCRIBE-VEHICLE + EQUAL? PRSO,DIVAN \?ELS5 + CALL NOT-ALONE-ON-DIVAN + CRLF + RTRUE +?ELS5: PRINTI "Other than yourself, you can see" + CALL DESCRIBE-NOTHING + ZERO? STACK \TRUE + FSET? PRSO,INBIT \?ELS13 + PRINTI " in" + JUMP ?CND11 +?ELS13: PRINTI " on" +?CND11: CALL TRPRINT,PRSO + RTRUE + + + .FUNCT DESCRIBE-NOTHING + CALL DESCRIBE-CONTENTS,PRSO,2 + ZERO? STACK /FALSE + IN? PROTAGONIST,PRSO /TRUE + CRLF + RTRUE + + + .FUNCT GOTO,NEW-LOC,DONT-DESCRIBE-SIDEKICK=0,OLD-HERE + EQUAL? HERE,THRONE-ROOM \?CND1 + FSET? THETA,MUNGBIT /?CND1 + FSET THETA,MUNGBIT + FSET THETA,NDESCBIT + FCLEAR THETA,ACTORBIT + FCLEAR THETA,FEMALEBIT + FCLEAR THETA,NARTICLEBIT + PUTP THETA,P?SDESC,STR?96 + PRINTI "As you leave, you hear behind you a sound like a" + PRINT 45-DEGREE-ANGLE + PRINTI " landing on a pile of" + PRINT 45-DEGREE-ANGLE + PRINTI "s." + CALL EXPLETIVE + PRINTI "Not again!"" you hear Mitre moan." + CRLF + CRLF +?CND1: SET 'OLD-HERE,HERE + CALL OPEN-EYES-AND-REMOVE-HANDS + MOVE PROTAGONIST,NEW-LOC + IN? NEW-LOC,ROOMS \?ELS8 + SET 'HERE,NEW-LOC + JUMP ?CND6 +?ELS8: LOC NEW-LOC >HERE +?CND6: CALL LIT?,HERE >LIT + GETP HERE,P?ACTION + CALL STACK,M-ENTER + CALL DESCRIBE-ROOM + ZERO? STACK /?CND11 + ZERO? VERBOSITY /?CND11 + CALL DESCRIBE-OBJECTS +?CND11: IN? SIDEKICK,OLD-HERE \?CND16 + IN? PROTAGONIST,HERE \?CND16 + ZERO? DONT-DESCRIBE-SIDEKICK \?CND16 + CALL SIDEKICK-FOLLOWS-YOU +?CND16: SET 'HOLE-MOVE,FALSE-VALUE + RTRUE + + + .FUNCT SIDEKICK-FOLLOWS-YOU + EQUAL? HERE,BOUDOIR \?ELS3 + MOVE SIDEKICK,HERE + JUMP ?CND1 +?ELS3: LOC PROTAGONIST + MOVE SIDEKICK,STACK +?CND1: ZERO? HOLE-MOVE /?ELS10 + PRINTI " A few seconds later, you " + CALL LIT?,HERE + ZERO? STACK /?ELS14 + PRINTI "see " + JUMP ?CND12 +?ELS14: PRINTI "feel " +?CND12: CALL DPRINT-SIDEKICK + PRINTI "'s " + CALL PICK-ONE,SIDEKICK-PARTS + PRINT STACK + PRINTI " appear, followed almost immediately by the rest of " + CALL HIM-HER + PRINT PERIOD-CR + RTRUE +?ELS10: CALL NORMAL-SIDEKICK-FOLLOW + RSTACK + + + .FUNCT NORMAL-SIDEKICK-FOLLOW + PRINTI " " + CALL DPRINT-SIDEKICK + CALL PICK-ONE,FOLLOWS + PRINT STACK + CRLF + RTRUE + + + .FUNCT JIGS-UP,DESC + PRINT DESC + CRLF + CRLF + PRINTI " **** You have died ****" + CRLF + CALL FINISH + RSTACK + + + .FUNCT ACCESSIBLE?,OBJ,L + ZERO? OBJ /FALSE + LOC OBJ >L + FSET? OBJ,INVISIBLE /FALSE + EQUAL? OBJ,PSEUDO-OBJECT \?ELS10 + EQUAL? LAST-PSEUDO-LOC,HERE \FALSE + RTRUE +?ELS10: ZERO? L /FALSE + EQUAL? L,GLOBAL-OBJECTS /TRUE + EQUAL? L,LOCAL-GLOBALS \?ELS23 + CALL GLOBAL-IN?,OBJ,HERE + ZERO? STACK \TRUE +?ELS23: CALL META-LOC,OBJ + EQUAL? STACK,HERE \FALSE + EQUAL? L,WINNER,HERE /TRUE + FSET? L,OPENBIT \FALSE + CALL ACCESSIBLE?,L + ZERO? STACK /FALSE + RTRUE + + + .FUNCT VISIBLE?,OBJ,L + ZERO? OBJ /FALSE + LOC OBJ >L + CALL ACCESSIBLE?,OBJ + ZERO? STACK \TRUE + CALL SEE-INSIDE?,L + ZERO? STACK /FALSE + CALL VISIBLE?,L + ZERO? STACK /FALSE + RTRUE + + + .FUNCT UNTOUCHABLE?,OBJ + ZERO? OBJ /FALSE + CALL ULTIMATELY-IN?,OBJ,SHELF + ZERO? STACK \?THN8 + EQUAL? OBJ,SHELF \?ELS7 +?THN8: IN? PROTAGONIST,STOOL \TRUE + RFALSE +?ELS7: CALL ULTIMATELY-IN?,OBJ,TREE-HOLE + ZERO? STACK /?ELS18 + IN? PROTAGONIST,TREE-HOLE \TRUE +?ELS18: CALL ULTIMATELY-IN?,OBJ,CAGE + ZERO? STACK /?ELS22 + IN? PROTAGONIST,CAGE \TRUE +?ELS22: IN? PROTAGONIST,FIRST-SLAB \?ELS26 + CALL NOUN-USED,W?STRAP,PSEUDO-OBJECT + ZERO? STACK \FALSE + CALL NOUN-USED,W?STRAPS,PSEUDO-OBJECT + ZERO? STACK \FALSE +?ELS26: IN? PROTAGONIST,HERE /FALSE + LOC PROTAGONIST + CALL ULTIMATELY-IN?,OBJ,STACK + ZERO? STACK \FALSE + LOC PROTAGONIST + EQUAL? OBJ,STACK /FALSE + IN? OBJ,GLOBAL-OBJECTS /FALSE + EQUAL? OBJ,RAFT \?ELS38 + ZERO? RAFT-HELD \FALSE +?ELS38: EQUAL? OBJ,CANAL-OBJECT,WATER,BARGE \?ELS42 + LOC PROTAGONIST + EQUAL? STACK,BARGE,RAFT /FALSE +?ELS42: EQUAL? PRSO,SHEET \?ELS46 + ZERO? SHEET-TIED \FALSE +?ELS46: EQUAL? PRSO,SHEET \TRUE + IN? PROTAGONIST,BED \TRUE + FSET? SHEET,TOUCHBIT /TRUE + RFALSE + + + .FUNCT META-LOC,OBJ +?PRG1: ZERO? OBJ /FALSE + IN? OBJ,GLOBAL-OBJECTS \?CND3 + RETURN GLOBAL-OBJECTS +?CND3: IN? OBJ,ROOMS \?ELS10 + RETURN OBJ +?ELS10: LOC OBJ >OBJ + JUMP ?PRG1 + + + .FUNCT OTHER-SIDE,DOBJ,P=0,TEE +?PRG1: NEXTP HERE,P >P + LESS? P,LOW-DIRECTION /FALSE + GETPT HERE,P >TEE + PTSIZE TEE + EQUAL? STACK,DEXIT \?PRG1 + GETB TEE,DEXITOBJ + EQUAL? STACK,DOBJ \?PRG1 + RETURN P + + + .FUNCT ULTIMATELY-IN?,OBJ,CONT=0 + ZERO? CONT \?CND1 + SET 'CONT,WINNER +?CND1: ZERO? OBJ /FALSE + IN? OBJ,CONT /TRUE + IN? OBJ,ROOMS /FALSE + LOC OBJ + CALL ULTIMATELY-IN?,STACK,CONT + RSTACK + + + .FUNCT SEE-INSIDE?,OBJ + ZERO? OBJ /FALSE + FSET? OBJ,INVISIBLE /FALSE + FSET? OBJ,TRANSBIT /TRUE + FSET? OBJ,OPENBIT /TRUE + RFALSE + + + .FUNCT GLOBAL-IN?,OBJ1,OBJ2,TEE + GETPT OBJ2,P?GLOBAL >TEE + ZERO? TEE /FALSE + PTSIZE TEE + SUB STACK,1 + CALL ZMEMQB,OBJ1,TEE,STACK + RSTACK + + + .FUNCT FIND-IN,WHERE,FLAG-IN-QUESTION,STRING=0,OBJ,RECURSIVE-OBJ + FIRST? WHERE >OBJ /?KLU19 +?KLU19: ZERO? OBJ /FALSE +?PRG4: FSET? OBJ,FLAG-IN-QUESTION \?ELS8 + FSET? OBJ,INVISIBLE /?ELS8 + ZERO? STRING /?CND11 + PRINTI "[" + PRINT STRING + CALL TPRINT,OBJ + PRINTI "]" + CRLF +?CND11: RETURN OBJ +?ELS8: CALL FIND-IN,OBJ,FLAG-IN-QUESTION >RECURSIVE-OBJ + ZERO? RECURSIVE-OBJ /?ELS16 + RETURN RECURSIVE-OBJ +?ELS16: NEXT? OBJ >OBJ /?PRG4 + RFALSE + + + .FUNCT NOW-DARK? + ZERO? LIT /FALSE + CALL LIT?,HERE + ZERO? STACK \FALSE + SET 'LIT,FALSE-VALUE + PRINTR " It is now too dark to see." + + + .FUNCT NOW-LIT? + ZERO? LIT \FALSE + CALL LIT?,HERE + ZERO? STACK /FALSE + SET 'LIT,TRUE-VALUE + CRLF + CALL V-LOOK + RSTACK + + + .FUNCT LOC-CLOSED,L + LOC PRSO >L + FSET? L,CONTBIT \FALSE + FSET? L,OPENBIT /FALSE + FSET? PRSO,TAKEBIT \FALSE + CALL DO-FIRST,STR?66,L + RSTACK + + + .FUNCT DO-WALK,DIR + SET 'P-WALK-DIR,DIR + CALL PERFORM,V?WALK,DIR + RSTACK + + + .FUNCT STOP + SET 'P-CONT,FALSE-VALUE + SET 'QUOTE-FLAG,FALSE-VALUE + RETURN 8 + + + .FUNCT ROB,WHO,WHERE=0,N,X + FIRST? WHO >X /?KLU6 +?KLU6: +?PRG1: ZERO? X /TRUE + NEXT? X >N /?KLU7 +?KLU7: MOVE X,WHERE + SET 'X,N + JUMP ?PRG1 + + + .FUNCT WRONG-SEX-WORD,OBJ,MALE-WORD,FEMALE-WORD + ZERO? SEX-CHOSEN /FALSE + ZERO? MALE /?ELS11 + CALL NOUN-USED,FEMALE-WORD,OBJ + ZERO? STACK \?THN8 +?ELS11: ZERO? MALE \FALSE + CALL NOUN-USED,MALE-WORD,OBJ + ZERO? STACK /FALSE +?THN8: PRINTI "There's no" + EQUAL? OBJ,SIDEKICK \?ELS16 + PRINTI " one by that name" + JUMP ?CND14 +?ELS16: EQUAL? PRSO,OBJ \?ELS18 + CALL PRSO-PRINT + JUMP ?CND14 +?ELS18: CALL PRSI-PRINT +?CND14: PRINTI " here." + ZERO? NAUGHTY-LEVEL /?CND21 + PRINTI " [I see you've been playing both as a male and as a female! I guess you're the type who goes both ways, eh? Nudge, nudge, wink, wink!]" +?CND21: SET 'P-WON,FALSE-VALUE + CRLF + RTRUE + + + .FUNCT HACK-HACK,STR + PRINT STR + CALL TPRINT-PRSO + CALL HO-HUM + RSTACK + + + .FUNCT HO-HUM + CALL PICK-ONE,HO-HUM-LIST + PRINT STACK + CRLF + RTRUE + + + .FUNCT YUKS + CALL PICK-ONE,YUK-LIST + PRINT STACK + CRLF + RTRUE + + + .FUNCT IMPOSSIBLES + CALL PICK-ONE,IMPOSSIBLE-LIST + PRINT STACK + CRLF + RTRUE + + + .FUNCT WASTES + CALL PICK-ONE,WASTE-LIST + PRINT STACK + CRLF + RTRUE + + .ENDI diff --git a/verbs.zil b/verbs.zil new file mode 100644 index 0000000..cbb30ac --- /dev/null +++ b/verbs.zil @@ -0,0 +1,3465 @@ +"VERBS for + LEATHER GODDESSES OF PHOBOS + (c) Copyright 1986 Infocom, Inc. All Rights Reserved." + +;"subtitle game commands" + + ;"0 = super-brief, 1 = brief, 2 = verbose" + + + + > + + + > + + + > + + ;"0 = tame, 1 = suggestive, 2 = lewd" + + + + + ) + (T + + )>> + + + ) + (T + + )>> + +)) + + + ) + ( + ) + (T + + "> + + + ,W?NUMBER> + + + + ) + (T + )> + + ) + ( + ">) + ( + > + + ) + (T + + + + )>) + (T + ">)>> + )> + + )>> + + + > + )> + > ;"flush anything on input line after SAVE" + > + + ) + (T + )>> + + + ) + (T + )>> + + + > + )> + + >) + (T + >)> + > + +> + +> + + 1>> + + > + + + + -2>> + > + +> + +> + + + )>) + ( + " headache">) + ( + > + ) + (> + + >> + ) + ( + + >> + + + ) + (T + )>) + ( + >> + ) + (T + + )>)> + > + +>> + ) + (T + > ;"you can't have nothing" + + > + )> + )>> + + + + + ) + (T + )>> + + + + + + + )>> + +> + +"> + + > + ) + (> + ,W?N>> + ) + (T + + )>> + +) (CNT 0)) + + + + )> + "> + + + + > + ,W?RESTAR> + + + ) + ( ,W?RESTOR> + >> + + ) + ( ,W?QUIT ,W?Q> + > + )> + >> + + + + ) + ( + ) + (T + )> + + + ) + ( + ) + (T + )> + + > + + *3777*>> + + > 23> + ) + (T + >)>> + > + + + + + + > + +> + ) + (T + > + )>> + + ;"all READS and INPUTS get sent to command file" + > + + + > + + + > + ) + (T + + + ) + (T + )>)>> + + + +;> + +; + > + ) + (T + + )> + > + +; + + + + + + + + + + + + + + + + > + +; + ,SIDEKICK> + > + + )>> + > + +; + + > + +; + > + +; + + > + +; + >> + 0>> + >> + )>> + + > + +; + + + + + + > + + + > + +; + + + > + + > + +;"subtitle real verbs" + + + + ) + (T + )>> + +>> + + ) + (>> + + ) + ( + ) + ( + ) + (T + + )>> + + + ) + (T + > + + )>> + +> + +> + > + )> + + ;"maybe fix 'what do you want to'" + + + + + + + + + + + > + + + )> + > + + + + ) + (T + + + )>> + + + ) + ( + + + ) + (T + )> + + )>> + + + + ) + ( + + + >> + + + + + + + ) + (T + + )>> + +> + +> + + ) + (T + )>> + + + ) + (T + )>> + +> + + + + ) + (T + )>) + (T + )>> + +> + + + + ) + (T + )>> + + + ) + ( + >> + ) + ( + )>> + +)) + + ,HERE ,LOCAL-GLOBALS>> + + ,SURFACEBIT> + ) + (T + )> + > + )> + + + + ) + (T + )> + + + > + + + + ) + (T + )> + )> + + >> + )> + + ) + ( + ) + ( ,PR?IN> + ) + (T + )>> + +> + + + + > + + ) + (T + + )>)> + > + >> + ) + ( + ,SHEET-TIED> + ) + ( + ) + ( + ) + ( + + ,LEAVES-PLACED> + )> + + + + ,LEAVES-PLACED> + + > + ) + (T + )> + + ) + ( + >)> + ) + (T + )>> + +> + + + + ) + (T + )>> + + + + ) + (> + ) + (T + + )>> + + + > + ) + (T + + )>> + +> + + + ) + (T + )>> + + + ) + (T + )>> + + + + > + +> + + + ) + ( + ) + (T + )>> + + + ) + ( + ) + ( ;"GO DOWN ON OBJECT" + > + + ) + (T + )>> + + + > + + ) + ( + ) + ( ,PR?IN ;,PR?INSIDE> + ) + (T + )>> + + + ) + (T + )>> + + + ) + ( + ) + (T + )>> + + + + > + ) + ( + > + + + + ) + (T + )>) + (T + )>> + + + ) + (T + )>> + +)) + > + + ) + (T + + )>> + +> + +> + ) + (T + )>> + +> + + + ) + (T + )>> + +> + +> + +> + + + > + > + ) + (T + )>) + ( ;"since GET OUT is also TAKE OUT" + + ) + (> + + ) + ( + + ) + (T + + + + + )> + + + ) + (T + )> + + + + + + ) + (T + )> + )> + )>> + + + + ) + (T + )> + ) + (T + )>) + (T + + )>> + +> + +> + +> + ,BARGE ,RAFT> + ,TREE-HOLE ,CAGE>> + >) + (T + )> + )>> + + + + ) + ( + + ) + ( + + ) + ( + + > + + )>> + + + + >> + + > + )> + ) + (T + + + ) + (T + )> + )>> + + + )> + > + ) + (> + ) + (> + ) + (> + >> + ) + ( + ) + (T + > + > + > + + + > + ) + ( + + + ) + ( + ) + ( + ) + (T + )>) + (T + )>)> + ) + (T + )>>)>> + + + + + + ) + (T + )>) + (T + )>> + + + > + ) + ( + + ) + ( + + ) + (> + ) + ( + + ) + (T + )>> + + + ) + ( + + + ) + (T + + )>) + ( + > + ) + ( + + ) + (T + )>) + ( + + + ) + (T + )> + ) + ( + + ) + ( + ) + ( + > + ) + ( + + ) + (T + + + > + >> + )> + )>> + + + + ) + ( + ) + ( + ) + (T + )> + > + +> + + ) + (> + )>> + +> + + > + > + ) + (T + )>> + + + + ) + (T + )>> + + + + >> + + >> + ) + ( + ) + (T + )>> + +) "AUX" (L )) + + + ) + ( + ) + ( + ) + ( + + > + ) + ( + > + ) + ( + + >> + + ) + ( + >> + ) + (T + )> + ) + (.WHERE + ) + (T + )>> + +> + + + ) + (> + ) + (T + )>> + +> + +> + > + + + )>> + + + ) + (> + ) + ( + ) + (T + )>> + + + > + + ) + ( + )>> + + + ) + (T + )>> + +> + ) + ( + + ) + (T + + + )>> + + + + ) + (T + )>> + + + + ) + (T + )>> + + + ) + (T + )>> + + + ) + (T + )>> + +) + (T + + )>> + + + + > + + + )> + > + + + > ;"prevent double score" + )> + + + ) + (T + )>> + +> + +> + + + ) + ( + ) + (T + )>> + +> + +> + +> + +> + + + ) + (> + )>> + + + ) + (T + )>> + + + )> + > + + + ,RAFT ,BARGE>> + > + ) + (T + )>> + +> + +> + + + > + + ) + ( + ) + ( + ) + (T + )>) + (>> + ) + (T + )>> + + + + ) + (T + + )>> + + + )> + + ) + ( + + ) + (T + + )>> + + + + ) + (T + + )>> + + + > + )> + + > + + ) + (T + )>> + +> + + + > + + + ) + (T + )> + )>> + +) + ( + + ) + (T + )>> + +> + + + + > + ) + ( + )>> + + + ) + ( + ) + (T + + )> + )>> + +> + + + + )> + > + + + + ) + (T + + )>> + + + + > + )> + ) + ( + ) + ( + + > + )> + ) + ( + + + ) + ( + + + > + )> + ) + (> + > + + )> + + ) + (T + )>) + ( ,PR?IN ;,PR?INSIDE> + ) + (T + )>> + +> + + + + ) + (T + )>) + (T + + )>> + + + + ) + ( + ) + ( + + ) + (T + )>) + (T + + )>> + + + + ) + (T + )> + > + +> + +> + + + + ) + (T + )>> + +> + ) + (>> + )> + + > + +> + +> + +>> + ) + ( + + + ) + (T + + )>> + + + > + ) + (T + )>> + +> + + + ) + ( + ) + ( + ) + ( + ) + (T + )>> + + ;"break out" + + + ) + (T + )>) + (T + )>> + + + + ) + ( + ) + (T + )>> + + + > + ) + (T + )>> + + + + + + ) + (T + )>) + (T + )>> + + + ) + ( + + ) + (T + + + )>) + (T + )>> + +> + + + + > + ) + ( + ) + ( + + ) + (T + + ;"important for CELL-DOOR desc" + )>) + ( + + + > + > + ) + (T + + > + )> + )>) + (T + )>> + +> + + + + ) + ( + + ) + (T + )>> + + + + + + + + )> + + ) + (T + + + )>) + (T + )>> + +> + + + ) + (T + )>> + +> + + + > + +) + ( + + ) + (T + )>> + +> + + + )>> + +> + +> + + + ) + (T + )>> + + + >> + > + ) + (T + )>> + + + ;"NAUGHTY-BITS-F handles") + ( + + ) + ( + ,W?JAR>>> + )> + + ) + ( + + > + ) + ( + + ) + (T + )>) + (> + > + ) + ( + + > + ) + (T + + ,PR?ON> + ) + (T + )> + + + ) + (T + )> + )>) + ( + + > + ) + ( + ) + ( + )>> + +> + > + > + >> + ) + ( + + >>> + ) + ( + ) + (> + >> + + ) + ( + ) + ( + > + ) + ( > + > + > + >> + + + ) + (T + )> + ) + (> + ,M-FATAL <>>> + ) + ( + > + + > + ) + ( + ) + (T + + + )>> + +> + +> + +> + + + + ) + ( + ) + (T + )>> + + + + ) + (T + )>) + (> + > + > + ) + (T + )>> + +> + +> + +> + +> + )>> + + + )> + + ) + (T + )>> + +> + +> + + + >> + ) + (> + ) + ( + + >> + ) + (T + )>> + + + CR>) + (T + )>> + +> + + + + ) + ( + ,HAND-COVER> + + ) + ( + ,RAFT-HELD> + + ) + (T + + )>> + + + > + + ) + (T + )>) + ( + + ) + (T + + )>> + + + ) + (T + )>> + +> + + + > + +> + +>> + + ) + (>> + + ) + ( + ) + ( + ) + ( ,W?KWEEPA> + + ) + ( ,W?GIDDAP ,W?GIDDYAP> + > + + ) + ( + > + ,W?SCAT ,W?BOO> + ,W?SCRAM ,W?SHOO>>> + + ) + (> + + ) + (T + + )>> + +)) + + ) + ( + )> + ) + (T + + + )>> + + + ) + ( + ) + ( ,ACTORBIT "with">> + + ) + (T + )>> + + + ) + ( + ) + ( + >> + ) + ( + + > + )> + ) + (T + )>> + + + ) + ( + ,BARGE ,RAFT>> + ,INTNUM> + ) + ( + + ) + (T + )>) + (T + )>> + + + > + + + ) + (T + )>> + +> + ) + (> + ) + (T + + )>> + +)) + + ) + (T + )> + > + +> + + + ) + (T + + )>> + +> + +> + +> + + ) + (T + )>> + + + > + + ) + (T + )>> + +> + + + > + )>> + + + + ) + (T + )>> + + + + > + >> + )> + > + + + > + + + > + + + > + + + + >> + ) + (T + )>) + ( + ) + (T + )>> + + ;"for HOLD UP OBJECT" + ) + ( + + + + ,MALE> + ) + ( ,VEHBIT> + ,TREE-HOLE ,CAGE>>> + > + ) + (> + ) + ( + >> + ) + (T + )>> + + + + ) + (T + )>> + + + > + + + > + + + > + + ) + (T + + + )>> + +> + +; + > + + + + >> + ) + (T + )> + > + + + ) + (T + )>> + + + > + + + ,PRSI + > + + ) + ( + + > + + + > + + + >> + + ) + (> + > + ) + ( + ) + ( + + + ) + (T + )> + ) + ( + + >>> + + > + ) + ( + ) + (T + )> + ) + (>> + ) + ( + > + + ) + ( + ) + ( + ) + ( + + ) + ( + + ,SHEET-HANGING> + + ) + ( + + >> + ) + ( + + > + + ) + ( + + > + ) + (> + ) + (T + > + )>> + + T> + ;"possible as gorilla" + > + + ) + ( ;"possible as gorilla" + > + + )> + )>> + + + ) + (T + )>> + + + ) + (T + )>> + + + + ,VEHBIT> + "]" CR> + > + ) + ( + ) + (T + + )>) + (T + + )>) + ( + + ) + ( + + ) + (T + )>> + +> + +> + + + ,P-CONT> + + + ) + ( + + >> + + >> + + ) + (,P-CONT + + ) + (T + )> + + ) + (T + )>) + ( + ,W?SCAT ,W?BOO> + ,W?SCRAM ,W?SHOO>>> + + ) + (T + + )>> + + + + ) + (T + + )>> + + + ) + ( + ) + (T + )>> + +> + + + ) + (,PRSI + + ) + (T + + )>)>> + +; ,BARGE ,RAFT> + > + + ) + (T + )>> + + + + ) + (T + + )>> + + + ) + (T + + )>> + + + > + >> + + ) + ( + ) + (T ;"if you used STRAP instead of TIE" + )> + > + +> + + + )>> + + + ) + ( + ) + (T + )>> + + + + > + ) + ( + + ) + (T + + ) + ( + ) + ( + ) + (T + )> + )>> + + + > + + + + ) + (T + )>) + (T + + )>> + +) + ( + + + ) + ( + ) + (T + )>> + +> + +> + +> + + + ) + (T + )>> + + + > + ) + (T + )>> + +> + + + ) + ( + > + ) + ( + > + + ) + ( + > + + ) + ( + > + > + >> + + ) + (>> + + ) + ( + >> + + + ,HOLE-OPEN + > + + ) + (T + )>) + ( + > + + ) + (> + > ,UEXIT> + >) + ( + CR> + ) + ( + >> + ;"catacombs fake-move" + )> + ) + (T + )>) + ( + > + >) + (> + + ) + (T + + )>) + ( + > ,OPENBIT> + >) + (> + + + ) + (T + + + )>)>) + (T + + ) + ( + > + ) + (T + )> + )>> + +> + + + ) + (T + )> + + > + + + + > + + + ) + (T + )>> + +; + > + + ) + (T + )> + ) + (T + )>> + + + > 0> + ) + ( + )>> + > + + + ) + (T + )>> + +> + ) + (T + + + ) + (T + + + )> + )>> + +> + +> + + + ) + (T + )>> + +> + + + > + +> + > + +> + + + > + + + + + + + + + + + )> + ) + ( + ) + ( + ) + (T + )>> + +> + + + > + ) + (T + )>> + +;"subtitle object manipulation" + +> + )> + ) + ( + ) + ;(> + > 100>> + )> + ) + ( 10> + )> + )> + + + + ;"Hope this is right -- pdl 4/22/86") + ( + ,RAFT-HELD> + >)> + > + +;"IDROP is called by PRE-GIVE and PRE-PUT. + IDROP acts directly as PRE-DROP, PRE-THROW and PRE-PUT-THROUGH." + + ) + ( + + ) + (T + )>) + ( + > + ) + ( + + > + ) + ( + + > + + ) + ( + + > + + ) + ( + + > + ) + ( ;"for LET GO OF NOSE" + + ) + ( + > ;"for PUT NOSE IN PIN" + ) + ( + + ) + (T + + )>) + (> + > + + ,RAFT-HELD>>> + + > + ) + ( + > + ) + (T + )> + ) + (> + ,CONTBIT> + ,OPENBIT>>> + >) + ( + + + > + + > + + >>> + ) + (T + )>) + (T + )>> + +> + > + >)> + >> + )>>)> + .CNT> + +;"Gets SIZE of supplied object, recursing to nth level." +> + >> + >> + )>>)> + <+ .WT >> + +;"subtitle describers" + +) + "AUX" (FIRST-VISIT <>) (NUM 0)) + + + + >> + )> + + ;"so DESCRIBE-CONTENTS of room isn't called")> + > + > + )> + )> + + > + + + + ) + (T + )> + )> + ,VEHBIT> + > + + ,INBIT> + ) + (T + )> + >)> + + + >> + + ,M-LOOK>> + >)> + )> + > + +;"Print FDESCs, then DESCFCNs and LDESCs, then everything else. DESCFCNs +must handle M-OBJDESC? by RTRUEing (but not printing) if the DESCFCN would +like to handle printing the object's description. RFALSE otherwise. DESCFCNs +are responsible for doing the beginning-of-paragraph indentation." + +)) + > + + )> + + ) + ( + > + >> + + + >)> + )> + >> + > + + + ) + (> + + >>> + T) + (> + >> + + > + >)> + ) + (> + + + >)> + )> + >> + 0> + >> + 0>)>> + + ;"print everything?" + ;"started paragraph?" + +"" + +) N (1ST? T) (IT? <>) + (START? <>) (TWO? <>) (PARA? <>)) + + + + ) + ( + )> + > + + + + + > + + .N>> + + + + >>> + > + T> + + + > + )> + ) + ( + )> + + ) + ( + ) + ( + ) + (T + + + ) + (T + )>)>)>) + (> + )>) + (T + ) + (T + )>)> + + + + ) + ( + ) + ( + ) + (T + )>) + ( + ) + ( + )> + > + ) + (T + + >)>)> + )> + >)> + + > + > + )> + + ;> + + )> + + T>> + + )> + )> + )>> + > + + ) + ( + + + >> + ) + (T + ,D-ALL?)>> + > + )>)> + >> + + T> + >> + )> + )>> + +)) + + ) + ( + ) + (> + >>> + ) + ( + > + ) + ( + + > + > + >> + ) + (T + )>> + + + >> + ) + (> + > + ) + ( + ) + (T + )>> + + + + ) + (T + + > + + ) + (T + )> + )> + )>> + + + > + )> + ) + (T ;"nothing" + )>> + +;"subtitle movement and death" + + + + + + + + + + + + + + + +) "AUX" OLD-HERE) + + >> + + + + + + + + + )> + + + + + ) + (T + >)> + > + ,M-ENTER> + + >> + )> + + ;"don't, if you're in a vehicle" + > + )> + > + > + + + ) + (T + >)> + + + ) + (T + )> + " appear, +followed almost immediately by the rest of "> + + ) + (T + )>> + + CR>> + +> + +> + + + + > + +;"subtitle useful utility routines" + + + )> + > + + ) + ( + + ) + (T + )>) + ( + ) + ( + ) + ( + > + ) + ( ,HERE>> + ) + ( + ) + ( + > + ) + (T + )>> + + + )> + > + + ) + ( + > + ) + (T + )>> + + + ) + ;"next four clauses are special cases for LGOP" + ( + > + + ) + (T + )>) + ( + >> + ) + ( + >> + ) + ( + + >> + ) + ( + ) + (> + > + ;"me, hands, etc."> + ) + ;"next four clauses are a special case for LGOP" + ( + ,RAFT-HELD> + ) + ( + ,BARGE ,RAFT>> + ) + ( + ,SHEET-TIED> ;"if it's tied you can reach it from bed" + ) + ( + + >> + ;"sheet is not in the bed, but it's described as being so" + ) + (T + )>> + + + ) + ( + )> + + ) + (T + >)>>> + +> ,LOW-DIRECTION> + >) + (T + > + ,DEXIT> + .DOBJ>> + )>)>>> + +)) ;"formerly HELD?" + + )> + + ) + ( + ) + ( + ) + ;( + ) + (T + .CONT>)>> + +> + + >>> + +> + 1>>)>> + +) "AUX" OBJ RECURSIVE-OBJ) + > + + )> + + >> + )> + ) + (> + ) + (>> + >)>>> + +; + + > + ) + (T + )>> + +>> + > + )>> + + + > + + + )>> + +)) + + > + > + ) + (T + )>> + + + > + +> + > + > + +) "AUX" N X) + > + + )> + > + + >> + + + ) + (> + + >> + + + ) + ( + ) + (T + )> + + > + )> + > + ) + (T + )>> + + + > + + CR>> + +> + + CR>> + +> + + CR>> + +> + + CR>> + +> \ No newline at end of file diff --git a/x1.zap b/x1.zap new file mode 100644 index 0000000..89a0ed3 --- /dev/null +++ b/x1.zap @@ -0,0 +1,39 @@ + + .INSERT "X1DAT" ; DATA IS IN THIS FILE + + .INSERT "MISC" + + + .INSERT "PARSER" + + + .INSERT "SYNTAX" + + + .INSERT "VERBS" + + + .INSERT "GLOBALS" + + + .INSERT "EARTH" + + + .INSERT "MARS" + + + .INSERT "VENUS" + + + .INSERT "CLEVELAND" + + + .INSERT "SPACESHIP" + + + .INSERT "PHOBOS" + + + .INSERT "X1STR" + + .END diff --git a/x1.zil b/x1.zil new file mode 100644 index 0000000..402399b --- /dev/null +++ b/x1.zil @@ -0,0 +1,39 @@ +"X1 for + LEATHER GODDESSES OF PHOBOS + (c) Copyright 1986 Infocom, Inc. All Rights Reserved." + + + +ON!-INITIAL +OFF!-INITIAL ;"makes debugging possible -- pdl" + +; + + )> + + + + + >> + + + )> + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/x1.zip b/x1.zip new file mode 100644 index 0000000..76c5ea7 Binary files /dev/null and b/x1.zip differ diff --git a/x1dat.zap b/x1dat.zap new file mode 100644 index 0000000..f24f51a --- /dev/null +++ b/x1dat.zap @@ -0,0 +1,16826 @@ + + +; TOP LEVEL DEFINITIONS + + TRUE-VALUE=1 + FALSE-VALUE=0 + + 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 + + + FEMALEBIT=1 + FX?FEMALEBIT=16384 + + INBIT=2 + FX?INBIT=8192 + + PLURALBIT=3 + FX?PLURALBIT=4096 + + PARTBIT=4 + FX?PARTBIT=2048 + + NARTICLEBIT=5 + FX?NARTICLEBIT=1024 + + UNTEEDBIT=6 + FX?UNTEEDBIT=512 + + SMELLEDBIT=7 + FX?SMELLEDBIT=256 + + NDESCBIT=8 + FX?NDESCBIT=128 + + LOCKEDBIT=9 + FX?LOCKEDBIT=64 + + VOWELBIT=10 + FX?VOWELBIT=32 + + INDOORSBIT=11 + FX?INDOORSBIT=16 + + MUNGBIT=12 + FX?MUNGBIT=8 + + TRANSBIT=13 + FX?TRANSBIT=4 + + SEARCHBIT=14 + FX?SEARCHBIT=2 + + OPENBIT=15 + FX?OPENBIT=1 + + TRYTAKEBIT=16 + FX?TRYTAKEBIT=32768 + + SURFACEBIT=17 + FX?SURFACEBIT=16384 + + TOUCHBIT=18 + FX?TOUCHBIT=8192 + + INVISIBLE=19 + FX?INVISIBLE=4096 + + WEARBIT=20 + FX?WEARBIT=2048 + + WORNBIT=21 + FX?WORNBIT=1024 + + READBIT=22 + FX?READBIT=512 + + TAKEBIT=23 + FX?TAKEBIT=256 + + CONTBIT=24 + FX?CONTBIT=128 + + LIGHTBIT=25 + FX?LIGHTBIT=64 + + DOORBIT=26 + FX?DOORBIT=32 + + BURNBIT=27 + FX?BURNBIT=16 + + RLANDBIT=28 + FX?RLANDBIT=8 + + VEHBIT=29 + FX?VEHBIT=4 + + ONBIT=30 + FX?ONBIT=2 + + ACTORBIT=31 + FX?ACTORBIT=1 + +; ACTION IDENTIFIERS ARE ASSIGNED HERE + + V?VERBOSE=0 + V?BRIEF=1 + V?SUPER-BRIEF=2 + V?TAME=3 + V?SUGGESTIVE=4 + V?LEWD=5 + V?DIAGNOSE=6 + V?INVENTORY=7 + V?QUIT=8 + V?RESTART=9 + V?RESTORE=10 + V?SAVE=11 + V?STATUS=12 + V?SCRIPT=13 + V?UNSCRIPT=14 + V?VERSION=15 + V?$RANDOM=16 + V?$COMMAND=17 + V?$RECORD=18 + V?$UNRECORD=19 + V?$VERIFY=20 + V?ANSWER=21 + V?USE-QUOTES=22 + V?APPLAUD=23 + V?APPLY=24 + V?PUT-ON=25 + V?WALK-TO=26 + V?ASK-ABOUT=27 + V?ASK-FOR=28 + V?ASK-NO-ONE-FOR=29 + V?KILL=30 + V?BARTER-WITH=31 + V?BARTER-FOR=32 + V?BEND=33 + V?BITE=34 + V?BLOW=35 + V?INFLATE=36 + V?OFF=37 + V?BOARD=38 + V?BOARD-DIR=39 + V?INHALE=40 + V?BURN=41 + V?BUY=42 + V?BUY-WITH=43 + V?CALL=44 + V?CAST-OFF=45 + V?CATCH=46 + V?CHEER=47 + V?WALK-AROUND=48 + V?CLICK=49 + V?CLIMB=50 + V?CLIMB-ON=51 + V?CLIMB-UP=52 + V?CLIMB-DOWN=53 + V?DISEMBARK=54 + V?CLIMB-OVER=55 + V?ENTER=56 + V?CRAWL-UNDER=57 + V?CLOSE=58 + V?SHUT-UP=59 + V?COME=60 + V?FOLLOW=61 + V?COPULATE=62 + V?SPUT-ON=63 + V?COUNT=64 + V?CROSS=65 + V?DECODE=66 + V?DEFLATE=67 + V?MUNG=68 + V?DIG=69 + V?DRESS=70 + V?DRINK=71 + V?DRINK-FROM=72 + V?DROP=73 + V?PUT=74 + V?PUT-THROUGH=75 + V?PUT-NEAR=76 + V?EAT=77 + V?EMPTY=78 + V?EMPTY-FROM=79 + V?IN=80 + V?EXAMINE=81 + V?EXIT=82 + V?FEED=83 + V?GIVE=84 + V?SGIVE=85 + V?FILL=86 + V?FIND=87 + V?FLUSH=88 + V?FUCK=89 + V?GIDDYAP=90 + V?WALK=91 + V?HIDE=92 + V?LEAVE=93 + V?GIVE-UP=94 + V?RETURN=95 + V?LISTEN=96 + V?HELLO=97 + V?HELP=98 + V?SAVE-SOMETHING=99 + V?HISS=100 + V?MASTURBATE=101 + V?WHIP=102 + V?LEAP=103 + V?LEAP-OFF=104 + V?STAND-ON=105 + V?KICK=106 + V?KISS=107 + V?KISS-ON=108 + V?KNEEL=109 + V?KNOCK=110 + V?KWEEPA=111 + V?LAND=112 + V?LAUGH=113 + V?LAUNCH=114 + V?PUT-AGAINST=115 + V?LICK=116 + V?LIE-DOWN=117 + V?ON=118 + V?LIMBER=119 + V?LOCK=120 + V?LOOK=121 + V?LOOK-DOWN=122 + V?LOOK-UP=123 + V?LOOK-INSIDE=124 + V?LOOK-UNDER=125 + V?LOOK-BEHIND=126 + V?LOOK-OVER=127 + V?CHASTISE=128 + V?LOVE=129 + V?LOWER=130 + V?MAKE=131 + V?MAKE-OUT=132 + V?MAKE-WITH=133 + V?MAKE-LOVE=134 + V?MARRY=135 + V?MEASURE=136 + V?MOAN=137 + V?MOVE=138 + V?PUSH-DIR=139 + V?RAISE=140 + V?NO=141 + V?OPEN=142 + V?PASS=143 + V?PAY=144 + V?PEE=145 + V?PEE-IN=146 + V?PHONE=147 + V?PICK=148 + V?PICK-UP=149 + V?PIN=150 + V?TOUCH=151 + V?POINT=152 + V?POUR=153 + V?PUSH=154 + V?PUSH-OFF=155 + V?PUT-UNDER=156 + V?RAKE=157 + V?RAPE=158 + V?REACH-IN=159 + V?READ=160 + V?RELIEVE=161 + V?REMOVE=162 + V?TAKE=163 + V?RIP=164 + V?ROLL=165 + V?RUB=166 + V?SRUB=167 + V?SAY=168 + V?SCAT=169 + V?SCORE=170 + V?SEARCH=171 + V?SHAKE=172 + V?SHAKE-WITH=173 + V?SHIT=174 + V?SHOW=175 + V?SSHOW=176 + V?SIGH=177 + V?SINK=178 + V?SIT=179 + V?SKIP=180 + V?SLEEP=181 + V?CUT=182 + V?SMELL=183 + V?STAIN=184 + V?STAND=185 + V?WEAR=186 + V?PUT-BEHIND=187 + V?PUT-TO=188 + V?SUCK=189 + V?SUCKLE=190 + V?SWIM=191 + V?SWING=192 + V?GET-DRESSED=193 + V?GET-UNDRESSED=194 + V?TAKE-WITH=195 + V?TAKE-OFF=196 + V?TAKE-A-LEAK=197 + V?TAKE-A-SHIT=198 + V?GET-DRUNK=199 + V?TELL=200 + V?TASTE=201 + V?TELL-ABOUT=202 + V?STELL=203 + V?THANK=204 + V?THROW=205 + V?THROW-TO=206 + V?STHROW=207 + V?THROW-UP=208 + V?TIE=209 + V?TIE-TOGETHER=210 + V?SET=211 + V?UNCOVER=212 + V?UNDRESS=213 + V?UNLOCK=214 + V?UNROLL=215 + V?UNTIE=216 + V?USE=217 + V?VOMIT=218 + V?WAIT=219 + V?WAIT-FOR=220 + V?ALARM=221 + V?CLEAN=222 + V?WHAT=223 + V?WHERE=224 + V?WRAP=225 + V?SWRAP=226 + V?YELL=227 + V?YES=228 + V?ANSWER-KLUDGE=229 + +; PROPERTIES ARE DEFINED HERE + + P?SYNONYM=31 + P?NORTH=30 + P?NE=29 + P?EAST=28 + P?SE=27 + P?SOUTH=26 + P?SW=25 + P?WEST=24 + P?NW=23 + P?UP=22 + P?DOWN=21 + P?IN=20 + P?OUT=19 + P?ADJECTIVE=18 + P?ACTION=17 + P?SDESC=16 + P?GLOBAL=15 + P?THINGS=14 + P?ODOR=13 + P?ODOR-NUMBER=12 + P?GENERIC=11 + P?CAPACITY=10 + P?NO-T-DESC=9 + P?SIZE=8 + P?LDESC=7 + P?DESCFCN=6 + P?HOLE-DESTINATION=5 + P?FDESC=4 + P?TEXT=3 + +; ADJECTIVES ARE DEFINED HERE + + A?GODDESSES=255 + A?SHAPE=254 + A?SALESMAN=253 + A?SCIENTIST=252 + A?GORILLA=251 + A?MONKEY=250 + A?PROPRIETOR=249 + A?OWNER=248 + A?GUARD=247 + A?PRINCE=246 + A?DAUGHTER=245 + A?THETA=244 + A?BARTENDER=243 + A?WIFE'S=242 + A?ELYSIA=241 + A?ELYSIUM=240 + A?MAN'S=239 + A?WOMAN=238 + A?BABY'S=237 + A?NORTH=236 + A?SOUTH=235 + A?EAST=234 + A?WEST=233 + A?NW=232 + A?NE=231 + A?SW=230 + A?SE=229 + A?WIFE=228 + A?HUSBAND=227 + A?#=226 + A?EACH=225 + A?TOWERING=224 + A?STRONG=223 + A?FAMILIAR=222 + A?FOUL=221 + A?HEADY=220 + A?PLEASANT=219 + A?FRESH=218 + A?CANAL=217 + A?DARK=216 + A?BRACKISH=215 + A?STAGNANT=214 + A?WARM=213 + A?LARGE=212 + A?REFLECTING=211 + A?BARE=210 + A?MY=209 + A?YOUR=208 + A?SMALL=207 + A?RICKETY=206 + A?MAD=205 + A?PLASTIC=204 + A?RED=203 + A?FADED=202 + A?WINDING=201 + A?RECTAN=200 + A?STAINED=199 + A?GLASS=198 + A?BARRED=197 + A?GRIMY=196 + A?BLACK=195 + A?WHITE=194 + A?FRONT=193 + A?BRASS=192 + A?TIGHT=191 + A?BACK=190 + A?RULE=189 + A?COMIC=188 + A?3-D=187 + A?FLASH=186 + A?MEN'S=185 + A?GENT'S=184 + A?MENS=183 + A?GENTS=182 + A?FILTHY=181 + A?LADIES=180 + A?WOMEN=179 + A?WOODEN=178 + A?DUBIOUS=177 + A?AGING=176 + A?CRUMPLED=175 + A?ROYAL=174 + A?MITRE=173 + A?KING'S=172 + A?GOLDEN=171 + A?FLOWING=170 + A?KING=169 + A?HIS=168 + A?DIFFER=167 + A?FORTY=166 + A?DEGREE=165 + A?NUMBER=164 + A?EIGHTY=163 + A?EIGHY=162 + A?GOLD=161 + A?FROG'S=160 + A?ENCHANTED=159 + A?GREEN=158 + A?COMMON=157 + A?HOUSEHOLD=156 + A?CEDAR=155 + A?CEDARWOOD=154 + A?SIMPLE=153 + A?ORANGE=152 + A?PURPLE=151 + A?MARTIAN=150 + A?WIDE=149 + A?SAND-COVERED=148 + A?BABY=147 + A?ABANDONED=146 + A?SAND=145 + A?REDDISH=144 + A?SCULPTED=143 + A?IMPASSABLE=142 + A?WARNING=141 + A?SWAYING=140 + A?METAL=139 + A?METALLIC=138 + A?POWER=137 + A?LOOMING=136 + A?RUSTED=135 + A?LIP=134 + A?SICK=133 + A?STRANGE=132 + A?CODED=131 + A?ALIEN=130 + A?DEAD=129 + A?FORLORN=128 + A?DROWSY=127 + A?CARDBOARD=126 + A?MAILING=125 + A?NARROW=124 + A?FLEXIBLE=123 + A?PORTABLE=122 + A?DIRTY=121 + A?CLOTHES=120 + A?CLOHES=119 + A?STONE=118 + A?SLENDER=117 + A?TALL=116 + A?HAREM=115 + A?SULTAN=114 + A?RELIABLE=113 + A?UNRELIABLE=112 + A?SECRET=111 + A?SECRE=110 + A?CLEVELAND=109 + A?PHONE=108 + A?TELEPHONE=107 + A?DEFLATE=106 + A?RUBBER=105 + A?LIFE=104 + A?CREAM=103 + A?BUNNY=102 + A?WADDLING=101 + A?RAGGED=100 + A?TATTERED=99 + A?INFANT=98 + A?ROBOT=97 + A?ROBOTIC=96 + A?IGLOO=95 + A?ORPHANAGE=94 + A?COTTON=93 + A?COON=92 + A?VENUS=91 + A?UNTANG=90 + A?UNANGL=89 + A?TREE=88 + A?SALES=87 + A?ODD=86 + A?T=85 + A?TEE=84 + A?TEA=83 + A?TEE-REMOVER=82 + A?TEA-REMOVER=81 + A?REAR=80 + A?MALE=79 + A?OTHER=78 + A?FEMALE=77 + A?FIRST=76 + A?SECOND=75 + A?TRENT=74 + A?TIFFAN=73 + A?TIFF'S=72 + A?ROCKY=71 + A?VIZICOMM=70 + A?COIN=69 + A?PAY=68 + A?RETURN=67 + A?TEN=66 + A?MARSMID=65 + A?ONE=64 + A?CANVAS=63 + A?WHOLE=62 + A?SQUARE=61 + A?SHEE=60 + A?CLOTH=59 + A?FORD=58 + A?HEAD=57 + A?SPLATTERED=56 + A?GLISTENING=55 + A?MAGNIFICENT=54 + A?THERMA=53 + A?WHIE=52 + A?THORBAST=51 + A?BATTLE=50 + A?LONG=49 + A?SPACE=48 + A?FLAG=47 + A?PASSENGER=46 + A?CHIEF=45 + A?SHADOWY=44 + A?ASSASSIN=43 + A?HER=42 + A?POINTED=41 + A?YOUNG=40 + A?BUG=39 + A?EYED=38 + A?BUG-EYED=37 + A?HUMANOID=36 + A?TENTAC=35 + A?JEAN=34 + A?DOUGLAS=33 + A?PHOO=32 + A?ADDRESS=31 + A?PRISON=30 + A?PUSSY=29 + A?ART=28 + A?BROWN=27 + A?LUSCIOUS=26 + A?MILK=25 + A?CREAMY=24 + A?CELL=23 + A?DISCARDED=22 + A?GLEAMING=21 + A?WICKER=20 + A?MOTH=19 + A?EMPTY=18 + A?MATCH=17 + A?MACH=16 + A?MATCHBOOK=15 + A?MATCHES=14 + A?BLUEPR=13 + A?NOTES=12 + A?NOTATI=11 + A?PLUSH=10 + A?LEATHER=9 + A?COUCHMATE=8 + A?SUPER=7 + A?DUPER=6 + A?ATTACK=5 + +; BUZZ WORDS ARE DEFINED HERE + + B?ASSHOLE=255 + B?BITCH=254 + B?BASTARD=253 + B?COCKSU=252 + B?DAMN=251 + B?DAMNED=250 + B?FUCKED=249 + B?FUCKING=248 + B?SHITHEAD=247 + B?SHITTY=246 + B?A=245 + B?AN=244 + B?THE=243 + B?IS=242 + B?ARE=241 + B?AM=240 + B?AND=239 + B?OF=238 + B?THEN=237 + B?ALL=236 + B?BUT=235 + B?EXCEPT=234 + B?PERIOD=233 + B?COMMA=232 + B?QUOTE=231 + B?PLEASE=230 + B?THIS=229 + B?THAT=228 + B?PRY=227 + B?HERE=226 + B?SOME=225 + B?MORE=224 + B?POUNDS=223 + B?G=222 + B?AGAIN=221 + B?OOPS=220 + B?SEX=219 + +; PREPOSITIONS ARE DEFINED HERE + + PR?TO=255 + PR?ABOUT=254 + PR?ON=253 + PR?FOR=252 + PR?WITH=251 + PR?UP=250 + PR?OUT=249 + PR?HARD=248 + PR?FROM=247 + PR?OFF=246 + PR?IN=245 + PR?DOWN=244 + PR?OVER=243 + PR?THROUGH=242 + PR?UNDER=241 + PR?BEFORE=240 + PR?AT=239 + PR?AROUND=238 + PR?BEHIND=237 + PR?AWAY=236 + PR?BACK=235 + PR?ACROSS=234 + PR?AGAINST=233 + PR?GO=232 + PR?HAPPY=231 + PR?APART=230 + PR?DRESSE=229 + PR?UNDRES=228 + PR?PISS=227 + PR?LEAK=226 + PR?SHIT=225 + PR?DRUNK=224 + PR?TOGETHER=223 + +; DIRECTIONS ARE DEFINED HERE + + +; ACTIONS ARE DEFINED HERE + + ACT?KISS=255 + ACT?APPROA=254 + ACT?SKIP=253 + ACT?RAPE=252 + ACT?WHIP=251 + ACT?VERBOSE=250 + ACT?WALK=249 + ACT?STICK=248 + ACT?QUIT=247 + ACT?FIND=246 + ACT?HEAR=245 + ACT?YES=244 + ACT?ZZMGCK=243 + ACT?UNCOVER=242 + ACT?SINK=241 + ACT?UNLOCK=240 + ACT?READ=239 + ACT?SAY=238 + ACT?JUMP=237 + ACT?POUR=236 + ACT?WAIT=235 + ACT?TAKE=234 + ACT?NO=233 + ACT?SUCK=232 + ACT?COUNT=231 + ACT?SHIT=230 + ACT?SIGH=229 + ACT?RAISE=228 + ACT?CALL=227 + ACT?FOLLOW=226 + ACT?SUCKLE=225 + ACT?CATCH=224 + ACT?VERSION=223 + ACT?#UNRECORD=222 + ACT?LIGHT=221 + ACT?LIE=220 + ACT?MOVE=219 + ACT?GIDDYAP=218 + ACT?MEASURE=217 + ACT?LET=216 + ACT?PLAY=215 + ACT?OPEN=214 + ACT?TASTE=213 + ACT?RELIEVE=212 + ACT?BUY=211 + ACT?MARRY=210 + ACT?TOUCH=209 + ACT?#COMMAND=208 + ACT?BLOW=207 + ACT?LIMBER=206 + ACT?WRAP=205 + ACT?KNOCK=204 + ACT?INVENT=203 + ACT?PICK=202 + ACT?LAND=201 + ACT?DEFLATE=200 + ACT?BOARD=199 + ACT?#RANDOM=198 + ACT?APPLY=197 + ACT?MASTURBATE=196 + ACT?LOVE=195 + ACT?STAND=194 + ACT?LISTEN=193 + ACT?HISS=192 + ACT?RAKE=191 + ACT?TIE=190 + ACT?WHERE=189 + ACT?PASS=188 + ACT?SHOW=187 + ACT?TAP=186 + ACT?SAVE=185 + ACT?HELP=184 + ACT?TELL=183 + ACT?THROW=182 + ACT?FEED=181 + ACT?DRESS=180 + ACT?LOWER=179 + ACT?TALK=178 + ACT?USE=177 + ACT?HIDE=176 + ACT?SHAKE=175 + ACT?ATTACK=174 + ACT?RESTOR=173 + ACT?ENTER=172 + ACT?THANKS=171 + ACT?SEARCH=170 + ACT?PIN=169 + ACT?WEAR=168 + ACT?PAY=167 + ACT?DISEMBARK=166 + ACT?KWEEPA=165 + ACT?SWIM=164 + ACT?UNTIE=163 + ACT?BEND=162 + ACT?WASH=161 + ACT?CIRCLE=160 + ACT?CHEER=159 + ACT?STIMULATE=158 + ACT?UNSCRIPT=157 + ACT?SUGGESTIVE=156 + ACT?PUSH=155 + ACT?RUB=154 + ACT?SUPER=153 + ACT?SIT=152 + ACT?RESTAR=151 + ACT?INFLATE=150 + ACT?APPLAUD=149 + ACT?UNDRES=148 + ACT?VOMIT=147 + ACT?FUCK=146 + ACT?REACH=145 + ACT?DIG=144 + ACT?SCORE=143 + ACT?TAME=142 + ACT?SMEAR=141 + ACT?LAUGH=140 + ACT?COVER=139 + ACT?STAIN=138 + ACT?COME=137 + ACT?SCAT=136 + ACT?LOOK=135 + ACT?EMPTY=134 + ACT?RIP=133 + ACT?CAST=132 + ACT?CLICK=131 + ACT?DROP=130 + ACT?PEE=129 + ACT?ROLL=128 + ACT?KNEEL=127 + ACT?LEAVE=126 + ACT?LICK=125 + ACT?HAND=124 + ACT?COPULATE=123 + ACT?SCRIPT=122 + ACT?$VERIFY=121 + ACT?EXTINGUISH=120 + ACT?SWING=119 + ACT?DESCEN=118 + ACT?SMELL=117 + ACT?BRIEF=116 + ACT?BREATHE=115 + ACT?DIAGNOSE=114 + ACT?SLEEP=113 + ACT?STATUS=112 + ACT?WAKE=111 + ACT?DRINK=110 + ACT?REMOVE=109 + ACT?ANSWER=108 + ACT?WHAT=107 + ACT?YELL=106 + ACT?PHONE=105 + ACT?LOCK=104 + ACT?BURN=103 + ACT?KICK=102 + ACT?BITE=101 + ACT?POINT=100 + ACT?TURN=99 + ACT?#RECORD=98 + ACT?CROSS=97 + ACT?START=96 + ACT?MAKE=95 + ACT?CLOSE=94 + ACT?GO=93 + ACT?SLIDE=92 + ACT?EXIT=91 + ACT?EXAMINE=90 + ACT?BARTER=89 + ACT?EAT=88 + ACT?FILL=87 + ACT?LEAN=86 + ACT?JERK=85 + ACT?CLIMB=84 + ACT?FLUSH=83 + ACT?LAUNCH=82 + ACT?RETURN=81 + ACT?DECODE=80 + ACT?DEMOLI=79 + ACT?MOAN=78 + ACT?UNROLL=77 + ACT?SLICE=76 + ACT?LEWD=75 + ACT?ASK=74 + ACT?HELLO=73 + +; USER DEFINED CONSTANTS ARE INITIALIZED HERE + + SOG=16 + SIR=32 + DEXITSTR=1 + XEQUAL?=4 + P-ITBLLEN=9 + P-SYNLEN=8 + P-SRCTOP=0 + C-INTLEN=4 + O-START=1 + DEXITOBJ=1 + P-P1OFF=5 + M-OBJDESC?=9 + O-PTR=0 + O-LENGTH=2 + C-TABLELEN=60 + P-NC2=8 + P-NC1=6 + P-WORDLEN=4 + P-VERBN=1 + SERIAL=0 + HUMAN-ATE-CHOCOLATE=1 + P-P1BITS=3 + FEXIT=3 + CC-SEPTR=1 + ZORKID=1 + P-SPREP1=1 + GORILLA-ATE-CHOCOLATE=2 + CC-SBPTR=0 + P-PREP1=2 + M-BEG=1 + M-SMELL=7 + XDIV=3 + M-FATAL=8 + XGRTR?=5 + NEXITSTR=0 + P-SLOC2=6 + NEXIT=2 + SC=64 + P-PREP1N=3 + P-PSOFF=4 + XLESS?=6 + P-VERB=0 + M-ENTER=2 + SHAVE=2 + DEXIT=5 + P-SRCBOT=2 + M-OBJDESC=5 + SMANY=4 + STAKE=8 + P-SPREP2=2 + XSUB=1 + XADD=0 + CEXIT=4 + P-LEXSTART=1 + M-LOOK=3 + D-RECORD-ON=4 + UEXIT=1 + O-END=3 + P-LEXELEN=2 + P-LEXWORDS=1 + P-ALL=1 + XMUL=2 + P-SFWIM1=3 + CC-OCLAUSE=2 + P-INHIBIT=4 + CEXITFLAG=1 + D-RECORD-OFF=-4 + M-FLASH=4 + FEXITFCN=0 + P-SBITS=0 + P-SRCALL=1 + CEXITSTR=1 + P-SLOC1=5 + M-END=6 + P-PREP2=4 + LOW-DIRECTION=19 + P-SONUMS=3 + D-PARA?=2 + C-TICK=1 + P-INBUF-LENGTH=120 + P-NC2L=9 + P-NC1L=7 + P-ONE=2 + P-SACTION=7 + P-SFWIM2=4 + D-ALL?=1 + REXIT=0 + SH=128 + C-RTN=0 + +; PROPERTY DEFAULTS AND OBJECTS ARE DEFINED HERE + +OBJECT::.TABLE + 0 ;() + 0 ;() + 0 ;(P?TEXT) + 0 ;(P?FDESC) + 0 ;(P?HOLE-DESTINATION) + 0 ;(P?DESCFCN) + 0 ;(P?LDESC) + 5 ;(P?SIZE) + 0 ;(P?NO-T-DESC) + 5 ;(P?CAPACITY) + 0 ;(P?GENERIC) + 0 ;(P?ODOR-NUMBER) + 0 ;(P?ODOR) + 0 ;(P?THINGS) + 0 ;(P?GLOBAL) + 0 ;(P?SDESC) + 0 ;(P?ACTION) + 0 ;(P?ADJECTIVE) + 0 ;(P?OUT) + 0 ;(P?IN) + 0 ;(P?DOWN) + 0 ;(P?UP) + 0 ;(P?NW) + 0 ;(P?WEST) + 0 ;(P?SW) + 0 ;(P?SOUTH) + 0 ;(P?SE) + 0 ;(P?EAST) + 0 ;(P?NE) + 0 ;(P?NORTH) + 0 ;(P?SYNONYM) + .OBJECT PURPLE-BUTTON,FX?NDESCBIT,0,BARGE,ORANGE-BUTTON,0,T?PURPLE-BUTTON + .OBJECT EXIT-OBJECT,FX?VOWELBIT,0,GLOBAL-OBJECTS,POCKET,0,T?EXIT-OBJECT + .OBJECT MITRE,FX?NARTICLEBIT,FX?ACTORBIT,THRONE-ROOM,0,0,T?MITRE + .OBJECT WARNING,0,0,ROOMS,0,0,T?WARNING + .OBJECT HANDS,FX?PARTBIT+FX?NARTICLEBIT+FX?NDESCBIT,FX?TOUCHBIT,GLOBAL-OBJECTS,CEILING,0,T?HANDS + .OBJECT BACK-DOOR,0,FX?ONBIT+FX?RLANDBIT,ROOMS,FRONT-DOOR,SALESMAN,T?BACK-DOOR + .OBJECT LOOKS-CAN-BE-DECEIVING,FX?NARTICLEBIT+FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,BACK-DOOR,0,T?LOOKS-CAN-BE-DECEIVING + .OBJECT CAGE,FX?INBIT+FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,FX?CONTBIT+FX?VEHBIT,LABORATORY,POWER-SWITCH,RUBBER-HOSE,T?CAGE + .OBJECT ANTI-LGOP-MACHINE,FX?NDESCBIT,0,0,0,0,T?ANTI-LGOP-MACHINE + .OBJECT TORCH,0,FX?LIGHTBIT+FX?ONBIT+FX?TAKEBIT,0,0,0,T?TORCH + .OBJECT THORBAST-SWORD,FX?NDESCBIT+FX?NARTICLEBIT,0,THORBAST,0,0,T?THORBAST-SWORD + .OBJECT WINDOW,0,0,LOCAL-GLOBALS,STAIRS,0,T?WINDOW + .OBJECT HAREM-GUARD,0,FX?ACTORBIT,0,0,0,T?HAREM-GUARD + .OBJECT ALLUSION-ROOM,0,FX?ONBIT+FX?RLANDBIT,ROOMS,TUNDRA,0,T?ALLUSION-ROOM + .OBJECT SIDEKICKS-BODY,FX?OPENBIT+FX?SEARCHBIT+FX?NARTICLEBIT,FX?ACTORBIT+FX?CONTBIT,0,0,0,T?SIDEKICKS-BODY + .OBJECT ME,FX?NARTICLEBIT,FX?TOUCHBIT,GLOBAL-OBJECTS,TITS,0,T?ME + .OBJECT CATACOMBS,FX?INDOORSBIT,0,ROOMS,INNER-HAREM,0,T?CATACOMBS + .OBJECT POCKET,0,0,GLOBAL-OBJECTS,GLOBAL-ROOM,0,T?POCKET + .OBJECT MAP,0,FX?READBIT+FX?BURNBIT+FX?TAKEBIT,0,0,0,T?MAP + .OBJECT FORD,FX?NDESCBIT,0,0,0,0,T?FORD + .OBJECT LADIES-ROOM-OBJECT,0,0,LOCAL-GLOBALS,MENS-ROOM-OBJECT,0,T?LADIES-ROOM-OBJECT + .OBJECT CLOTHES-PIN,0,FX?BURNBIT+FX?TAKEBIT,LAUNDRY-ROOM,0,0,T?CLOTHES-PIN + .OBJECT ODOR,FX?VOWELBIT,0,LOCAL-GLOBALS,PSEUDO-OBJECT,0,T?ODOR + .OBJECT TREE-HOLE,FX?INBIT+FX?OPENBIT+FX?SEARCHBIT+FX?NDESCBIT,FX?VEHBIT+FX?CONTBIT,FORK-OF-SORTS,0,0,T?TREE-HOLE + .OBJECT WATTZ-UPP-DOCK,0,FX?ONBIT+FX?RLANDBIT,ROOMS,MARTIAN-DESSERT,0,T?WATTZ-UPP-DOCK + .OBJECT VIZICOMM-BOOTH,0,FX?RLANDBIT+FX?ONBIT,ROOMS,ROCKY-CLIFFTOP,COIN-RETURN-BOX,T?VIZICOMM-BOOTH + .OBJECT ONE-MARSMID-COIN,0,FX?READBIT+FX?TAKEBIT,0,0,0,T?ONE-MARSMID-COIN + .OBJECT CLEVELAND-OBJECT,0,0,LOCAL-GLOBALS,BOOTH-OBJECT,0,T?CLEVELAND-OBJECT + .OBJECT LAWN,0,FX?ONBIT+FX?RLANDBIT,ROOMS,CLEVELAND,SACK,T?LAWN + .OBJECT MENS-ROOM-OBJECT,0,0,LOCAL-GLOBALS,HOLE,0,T?MENS-ROOM-OBJECT + .OBJECT FORGOTTEN-STOREHOUSE,FX?INDOORSBIT,0,ROOMS,CATACOMBS,PHONE-BOOK,T?FORGOTTEN-STOREHOUSE + .OBJECT CLEVELAND,FX?NARTICLEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,VIZICOMM-BOOTH,0,T?CLEVELAND + .OBJECT INTDIR,0,0,GLOBAL-OBJECTS,LOCAL-GLOBALS,0,T?INTDIR + .OBJECT ROOMS,0,0,0,0,PLAZA,T?ROOMS + .OBJECT LGOP,FX?PLURALBIT+FX?FEMALEBIT+FX?NARTICLEBIT+FX?NDESCBIT,FX?ACTORBIT,DIVAN,0,0,T?LGOP + .OBJECT BEM,FX?NDESCBIT,0,0,0,0,T?BEM + .OBJECT LAUNDRY-ROOM,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,MAIN-HALL-OF-PALACE,CLOTHES-PIN,T?LAUNDRY-ROOM + .OBJECT RIDDLE,FX?NDESCBIT,0,AUDIENCE-CHAMBER,0,0,T?RIDDLE + .OBJECT COIN-RETURN-KNOB,FX?NDESCBIT,0,VIZICOMM-BOOTH,HANDSET,TEN-MARSMID-COIN,T?COIN-RETURN-KNOB + .OBJECT LOCAL-GLOBALS,0,0,GLOBAL-OBJECTS,0,EXAM-ROOM-DOOR,T?LOCAL-GLOBALS + .OBJECT HEAD,FX?PARTBIT+FX?NARTICLEBIT,0,GLOBAL-OBJECTS,HANDS,0,T?HEAD + .OBJECT TENT,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,GYPSY-CAMP,BABY,T?TENT + .OBJECT VENUS,FX?NARTICLEBIT,0,LOCAL-GLOBALS,IGLOO,0,T?VENUS + .OBJECT HER,FX?NARTICLEBIT,FX?TOUCHBIT,GLOBAL-OBJECTS,HIM,0,T?HER + .OBJECT FIRST-SLAB,FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,FX?SURFACEBIT+FX?CONTBIT+FX?VEHBIT,LABORATORY,CAGE,0,T?FIRST-SLAB + .OBJECT FROG,0,0,RUINED-CASTLE-2,0,0,T?FROG + .OBJECT GLOBAL-SLEEP,FX?NARTICLEBIT,0,GLOBAL-OBJECTS,LOVE,0,T?GLOBAL-SLEEP + .OBJECT SIDEKICK,FX?SEARCHBIT+FX?OPENBIT+FX?NARTICLEBIT,FX?CONTBIT+FX?ACTORBIT,OTHER-CELL,0,0,T?SIDEKICK + .OBJECT ODD-MACHINE,FX?NDESCBIT+FX?SEARCHBIT+FX?VOWELBIT,FX?CONTBIT+FX?TRYTAKEBIT+FX?TAKEBIT,SALESMAN,0,0,T?ODD-MACHINE + .OBJECT CELL,FX?INDOORSBIT,FX?RLANDBIT+FX?ONBIT,ROOMS,SPACE-YACHT,PAINTING,T?CELL + .OBJECT EIGHTY-TWO-DEGREE-ANGLE,FX?VOWELBIT,FX?TAKEBIT,0,0,0,T?EIGHTY-TWO-DEGREE-ANGLE + .OBJECT MOTHBALLS,FX?NDESCBIT+FX?NARTICLEBIT,0,CLOSET,SHELF,0,T?MOTHBALLS + .OBJECT PHOTO,0,FX?READBIT+FX?BURNBIT+FX?TAKEBIT,0,0,0,T?PHOTO + .OBJECT GLOBAL-OBJECTS,FX?UNTEEDBIT+FX?SMELLEDBIT+FX?NDESCBIT+FX?LOCKEDBIT+FX?VOWELBIT+FX?INDOORSBIT+FX?MUNGBIT+FX?TRANSBIT+FX?SEARCHBIT+FX?OPENBIT,FX?ACTORBIT+FX?DOORBIT+FX?CONTBIT+FX?VEHBIT+FX?WORNBIT+FX?RLANDBIT+FX?LIGHTBIT+FX?ONBIT+FX?WEARBIT+FX?TRYTAKEBIT+FX?SURFACEBIT+FX?TOUCHBIT+FX?INVISIBLE,0,0,EXIT-OBJECT,T?GLOBAL-OBJECTS + .OBJECT SHELF,FX?NDESCBIT+FX?OPENBIT+FX?SEARCHBIT,FX?CONTBIT+FX?SURFACEBIT,CLOSET,0,BASKET,T?SHELF + .OBJECT MATCHBOOK,0,FX?BURNBIT+FX?TAKEBIT+FX?READBIT,0,0,0,T?MATCHBOOK + .OBJECT IT,FX?NARTICLEBIT+FX?VOWELBIT,FX?TOUCHBIT,GLOBAL-OBJECTS,INTNUM,0,T?IT + .OBJECT PHONE-BOOK,0,FX?BURNBIT+FX?TAKEBIT,FORGOTTEN-STOREHOUSE,0,0,T?PHONE-BOOK + .OBJECT ORPHANAGE-DOOR,FX?VOWELBIT+FX?LOCKEDBIT,FX?DOORBIT,LOCAL-GLOBALS,TOWER,0,T?ORPHANAGE-DOOR + .OBJECT SPLATTERED-SIDEKICK,FX?PLURALBIT+FX?NARTICLEBIT+FX?NDESCBIT,0,0,0,0,T?SPLATTERED-SIDEKICK + .OBJECT JOES-BAR,FX?NARTICLEBIT+FX?INDOORSBIT,FX?RLANDBIT+FX?ONBIT,ROOMS,WARNING,JOE,T?JOES-BAR + .OBJECT IN-SPACE,0,FX?ONBIT,ROOMS,AT-MAIN-HATCH,0,T?IN-SPACE + .OBJECT MESSENGER,0,0,AMONG-THE-DUNES,CODED-MESSAGE,0,T?MESSENGER + .OBJECT CUNT,FX?PARTBIT+FX?NARTICLEBIT,0,GLOBAL-OBJECTS,COCK,0,T?CUNT + .OBJECT SPAWNING-GROUND,0,FX?ONBIT+FX?RLANDBIT,ROOMS,JUNGLE,CREAM,T?SPAWNING-GROUND + .OBJECT SCRAP-OF-PAPER,0,FX?READBIT+FX?BURNBIT+FX?TAKEBIT,OTHER-CELL,SIDEKICK,0,T?SCRAP-OF-PAPER + .OBJECT CANAL-OBJECT,0,0,LOCAL-GLOBALS,TOILET,0,T?CANAL-OBJECT + .OBJECT LADIES-ROOM,FX?INDOORSBIT,FX?RLANDBIT+FX?ONBIT,ROOMS,MENS-ROOM,0,T?LADIES-ROOM + .OBJECT FRONT-DOOR-OBJECT,FX?LOCKEDBIT,FX?DOORBIT,LOCAL-GLOBALS,BACK-DOOR-OBJECT,0,T?FRONT-DOOR-OBJECT + .OBJECT TEENSY-WEENSY-HOUSE,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,LAWN,0,T?TEENSY-WEENSY-HOUSE + .OBJECT PRIVATE-CABIN-DOOR,FX?LOCKEDBIT+FX?NDESCBIT,FX?DOORBIT,SPACE-YACHT,0,0,T?PRIVATE-CABIN-DOOR + .OBJECT HOUSE,0,0,LOCAL-GLOBALS,WATER,0,T?HOUSE + .OBJECT LOVE,FX?NARTICLEBIT,0,GLOBAL-OBJECTS,MAN-WOMAN,0,T?LOVE + .OBJECT SOUTH-POLE,0,FX?ONBIT+FX?RLANDBIT,ROOMS,TENT,FRONT-STOOP,T?SOUTH-POLE + .OBJECT YOUR-BODY,FX?OPENBIT+FX?SEARCHBIT+FX?NARTICLEBIT,FX?ACTORBIT+FX?CONTBIT,0,0,0,T?YOUR-BODY + .OBJECT RAKE,FX?NDESCBIT,FX?TRYTAKEBIT+FX?BURNBIT+FX?TAKEBIT,LAWN,0,0,T?RAKE + .OBJECT CANALVIEW-MALL,0,FX?ONBIT+FX?RLANDBIT,ROOMS,ABANDONED-DOCK,0,T?CANALVIEW-MALL + .OBJECT PAINTING,0,FX?BURNBIT+FX?TAKEBIT,CELL,BLANKET,0,T?PAINTING + .OBJECT MAN-WOMAN,0,0,GLOBAL-OBJECTS,EACH-OTHER,0,T?MAN-WOMAN + .OBJECT MARTIAN-DESERT,0,FX?ONBIT+FX?RLANDBIT,ROOMS,LADIES-ROOM,0,T?MARTIAN-DESERT + .OBJECT BOUDOIR,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,ROOF,DIVAN,T?BOUDOIR + .OBJECT JUNGLE,0,FX?ONBIT+FX?RLANDBIT,ROOMS,ORPHANAGE-FOYER,FLYTRAP,T?JUNGLE + .OBJECT HOLE,0,0,LOCAL-GLOBALS,TREE,0,T?HOLE + .OBJECT DONALD-DOCK,0,FX?ONBIT+FX?RLANDBIT,ROOMS,AMONG-THE-DUNES,0,T?DONALD-DOCK + .OBJECT MALE-GORILLA,FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,FX?CONTBIT+FX?ACTORBIT,CAGE,0,0,T?MALE-GORILLA + .OBJECT RUBBER-HOSE,0,FX?TAKEBIT,CAGE,FEMALE-GORILLA,0,T?RUBBER-HOSE + .OBJECT STALLION,FX?NDESCBIT+FX?SEARCHBIT+FX?OPENBIT,FX?CONTBIT+FX?VEHBIT,STABLE,0,0,T?STALLION + .OBJECT LIP-BALM,0,FX?TAKEBIT,AMONG-THE-DUNES,0,0,T?LIP-BALM + .OBJECT ORIENTAL-GARDEN,0,FX?ONBIT+FX?RLANDBIT,ROOMS,LAUNDRY-ROOM,0,T?ORIENTAL-GARDEN + .OBJECT THORBAST,FX?NARTICLEBIT+FX?OPENBIT+FX?SEARCHBIT,FX?CONTBIT+FX?ACTORBIT,0,0,THORBAST-SWORD,T?THORBAST + .OBJECT SULTAN,0,FX?ACTORBIT,AUDIENCE-CHAMBER,RIDDLE,0,T?SULTAN + .OBJECT ROOF,0,FX?ONBIT+FX?RLANDBIT,ROOMS,CLOSET,0,T?ROOF + .OBJECT BASE-OF-TOWER,0,FX?ONBIT+FX?RLANDBIT,ROOMS,ORIENTAL-GARDEN,0,T?BASE-OF-TOWER + .OBJECT POWER-SWITCH,FX?NDESCBIT,0,LABORATORY,0,0,T?POWER-SWITCH + .OBJECT TREE,0,0,LOCAL-GLOBALS,WINDOW,0,T?TREE + .OBJECT POWER-TRANSMITTER,FX?NDESCBIT,0,CANAL,0,0,T?POWER-TRANSMITTER + .OBJECT RAFT,FX?OPENBIT+FX?SEARCHBIT+FX?INBIT,FX?CONTBIT+FX?VEHBIT+FX?TAKEBIT,BURIAL-CHAMBER,0,0,T?RAFT + .OBJECT TEN-MARSMID-COIN,0,FX?READBIT+FX?TAKEBIT,COIN-RETURN-KNOB,0,0,T?TEN-MARSMID-COIN + .OBJECT ICY-DOCK,0,FX?ONBIT+FX?RLANDBIT,ROOMS,OASIS,0,T?ICY-DOCK + .OBJECT HOLD,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,BEDROOM,SWORD,T?HOLD + .OBJECT BABY-DOCK,0,FX?ONBIT,ROOMS,CANAL,0,T?BABY-DOCK + .OBJECT ROCKY-CLIFFTOP,0,FX?ONBIT+FX?RLANDBIT,ROOMS,LABORATORY,0,T?ROCKY-CLIFFTOP + .OBJECT FLEXIBLE-HOLE,0,FX?TAKEBIT,TUBE,0,0,T?FLEXIBLE-HOLE + .OBJECT FRONT-DOOR,0,FX?ONBIT+FX?RLANDBIT,ROOMS,CLEARING,0,T?FRONT-DOOR + .OBJECT WELL-BOTTOM,FX?INDOORSBIT,FX?ONBIT,ROOMS,FORGOTTEN-STOREHOUSE,0,T?WELL-BOTTOM + .OBJECT TOWER,0,0,LOCAL-GLOBALS,DUNES,0,T?TOWER + .OBJECT KNEECAPS,FX?PARTBIT+FX?PLURALBIT+FX?NARTICLEBIT,0,GLOBAL-OBJECTS,MOUTH,0,T?KNEECAPS + .OBJECT BOOTH-OBJECT,0,0,LOCAL-GLOBALS,FRONT-DOOR-OBJECT,0,T?BOOTH-OBJECT + .OBJECT PASSENGER-SHIP,0,0,LOCAL-GLOBALS,BATTLESHIP,0,T?PASSENGER-SHIP + .OBJECT FLASHLIGHT,0,FX?LIGHTBIT+FX?TAKEBIT,PROTAGONIST,COMIC-BOOK,0,T?FLASHLIGHT + .OBJECT CLEARING,0,FX?ONBIT+FX?RLANDBIT,ROOMS,FORK-OF-SORTS,STAIN,T?CLEARING + .OBJECT AT-MAIN-HATCH,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,LONG-CORRIDOR,WHITE-SUIT,T?AT-MAIN-HATCH + .OBJECT BED,FX?OPENBIT+FX?SEARCHBIT+FX?NDESCBIT,FX?SURFACEBIT+FX?CONTBIT+FX?VEHBIT,BEDROOM,0,0,T?BED + .OBJECT STOOL,FX?SEARCHBIT+FX?OPENBIT,FX?BURNBIT+FX?CONTBIT+FX?SURFACEBIT+FX?VEHBIT+FX?TAKEBIT,0,0,0,T?STOOL + .OBJECT PIZZA,0,FX?TRYTAKEBIT,0,0,0,T?PIZZA + .OBJECT BARGE,FX?OPENBIT+FX?SEARCHBIT+FX?INBIT,FX?CONTBIT+FX?VEHBIT,ROYAL-DOCKS,0,PURPLE-BUTTON,T?BARGE + .OBJECT JOE,FX?NARTICLEBIT+FX?NDESCBIT,FX?ACTORBIT,JOES-BAR,PROTAGONIST,0,T?JOE + .OBJECT GLOBAL-ROOM,0,0,GLOBAL-OBJECTS,ME,0,T?GLOBAL-ROOM + .OBJECT LONG-CORRIDOR,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,STABLE,0,T?LONG-CORRIDOR + .OBJECT OBSERVATION-ROOM,FX?INDOORSBIT,FX?RLANDBIT+FX?ONBIT,ROOMS,BASEMENT,0,T?OBSERVATION-ROOM + .OBJECT THETA,FX?MUNGBIT+FX?NDESCBIT,0,THRONE-ROOM,MITRE,0,T?THETA + .OBJECT FEMALE-GORILLA,FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT+FX?FEMALEBIT,FX?CONTBIT+FX?ACTORBIT,CAGE,MALE-GORILLA,0,T?FEMALE-GORILLA + .OBJECT PROPRIETOR,FX?NDESCBIT,FX?ACTORBIT,EXIT-SHOP,0,0,T?PROPRIETOR + .OBJECT OASIS,0,FX?ONBIT+FX?RLANDBIT,ROOMS,WATTZ-UPP-DOCK,RABBIT,T?OASIS + .OBJECT TRELLIS,FX?SEARCHBIT+FX?NDESCBIT,FX?TRYTAKEBIT+FX?BURNBIT+FX?TAKEBIT,GARDEN,SOD,0,T?TRELLIS + .OBJECT EXIT-SHOP,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,CANALVIEW-MALL,DUST,T?EXIT-SHOP + .OBJECT HIM,FX?NARTICLEBIT,FX?TOUCHBIT,GLOBAL-OBJECTS,IT,0,T?HIM + .OBJECT EYES,FX?PARTBIT+FX?PLURALBIT+FX?NARTICLEBIT,0,GLOBAL-OBJECTS,HEAD,0,T?EYES + .OBJECT MAIN-HALL-OF-PALACE,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,MY-KIND-OF-DOCK,0,T?MAIN-HALL-OF-PALACE + .OBJECT LABORATORY,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,LOOKS-CAN-BE-DECEIVING,SECOND-SLAB,T?LABORATORY + .OBJECT COMIC-BOOK,0,FX?TAKEBIT+FX?READBIT,PROTAGONIST,GARMENT,0,T?COMIC-BOOK + .OBJECT PLAZA,0,FX?ONBIT+FX?RLANDBIT,ROOMS,BOUDOIR,0,T?PLAZA + .OBJECT BATTLESHIP,0,0,LOCAL-GLOBALS,HATCH,0,T?BATTLESHIP + .OBJECT GARMENT,FX?PLURALBIT+FX?NARTICLEBIT+FX?VOWELBIT,FX?WORNBIT+FX?WEARBIT+FX?TAKEBIT,PROTAGONIST,0,0,T?GARMENT + .OBJECT CODED-MESSAGE,0,FX?BURNBIT+FX?READBIT+FX?TAKEBIT,AMONG-THE-DUNES,LIP-BALM,0,T?CODED-MESSAGE + .OBJECT PILE-OF-ANGLES,FX?NDESCBIT,0,THRONE-ROOM,THETA,0,T?PILE-OF-ANGLES + .OBJECT INNER-HAREM,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,HAREM,SULTANS-WIFE,T?INNER-HAREM + .OBJECT RABBIT,0,FX?TAKEBIT,OASIS,0,0,T?RABBIT + .OBJECT HATCH,0,FX?DOORBIT,LOCAL-GLOBALS,CLEVELAND-OBJECT,0,T?HATCH + .OBJECT LEAVES,FX?PLURALBIT,FX?TRYTAKEBIT+FX?BURNBIT+FX?TAKEBIT,SACK,0,0,T?LEAVES + .OBJECT EXAM-ROOM-DOOR,FX?NDESCBIT,FX?DOORBIT,LOCAL-GLOBALS,NARROW-CELL-DOOR,0,T?EXAM-ROOM-DOOR + .OBJECT STAIN,0,FX?READBIT+FX?TAKEBIT,CLEARING,0,0,T?STAIN + .OBJECT HEADLIGHT,FX?NDESCBIT,FX?TRYTAKEBIT+FX?TAKEBIT,0,0,0,T?HEADLIGHT + .OBJECT COTTON-BALLS,FX?PLURALBIT+FX?NDESCBIT,FX?BURNBIT+FX?TRYTAKEBIT+FX?TAKEBIT,0,0,0,T?COTTON-BALLS + .OBJECT FORK-OF-SORTS,0,FX?ONBIT+FX?RLANDBIT,ROOMS,SPAWNING-GROUND,TREE-HOLE,T?FORK-OF-SORTS + .OBJECT MOUTH,FX?PARTBIT+FX?NARTICLEBIT,0,GLOBAL-OBJECTS,NOSE,0,T?MOUTH + .OBJECT BEDROOM,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,GARDEN,SHEET,T?BEDROOM + .OBJECT SIGN,0,FX?READBIT,LOCAL-GLOBALS,HOUSE,0,T?SIGN + .OBJECT HICKORY-AND-DICKORY-DOCK,0,FX?ONBIT+FX?RLANDBIT,ROOMS,RUINED-CASTLE-3,MOUSE,T?HICKORY-AND-DICKORY-DOCK + .OBJECT FRONT-STOOP,FX?OPENBIT+FX?SEARCHBIT+FX?NDESCBIT,FX?SURFACEBIT+FX?CONTBIT,SOUTH-POLE,0,0,T?FRONT-STOOP + .OBJECT BEER,0,0,0,0,0,T?BEER + .OBJECT DUNES,FX?PLURALBIT+FX?NARTICLEBIT,0,LOCAL-GLOBALS,DOCK-OBJECT,0,T?DUNES + .OBJECT IGLOO,FX?VOWELBIT,0,LOCAL-GLOBALS,ORPHANAGE-DOOR,0,T?IGLOO + .OBJECT SECOND-SLAB,FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,FX?SURFACEBIT+FX?CONTBIT+FX?VEHBIT,LABORATORY,FIRST-SLAB,0,T?SECOND-SLAB + .OBJECT BACK-DOOR-OBJECT,FX?LOCKEDBIT,FX?DOORBIT,LOCAL-GLOBALS,VENUS,0,T?BACK-DOOR-OBJECT + .OBJECT SHEET,0,FX?TRYTAKEBIT+FX?BURNBIT+FX?TAKEBIT,BEDROOM,BED,0,T?SHEET + .OBJECT STAIRS,0,0,LOCAL-GLOBALS,SIGN,0,T?STAIRS + .OBJECT BLANKET,0,FX?BURNBIT+FX?TAKEBIT,CELL,0,0,T?BLANKET + .OBJECT CLOSET,FX?INDOORSBIT,FX?RLANDBIT,ROOMS,OBSERVATION-ROOM,MOTHBALLS,T?CLOSET + .OBJECT MENS-ROOM,FX?INDOORSBIT,FX?RLANDBIT+FX?ONBIT,ROOMS,JOES-BAR,0,T?MENS-ROOM + .OBJECT END-OF-HALLWAY,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,CRAMPED-SPACE,0,T?END-OF-HALLWAY + .OBJECT EACH-OTHER,0,0,GLOBAL-OBJECTS,HER,0,T?EACH-OTHER + .OBJECT DUNETOP,0,FX?ONBIT+FX?RLANDBIT,ROOMS,DONALD-DOCK,0,T?DUNETOP + .OBJECT ABANDONED-DOCK,0,FX?ONBIT+FX?RLANDBIT,ROOMS,DUNETOP,0,T?ABANDONED-DOCK + .OBJECT OTHER-CELL,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,CELL,SCRAP-OF-PAPER,T?OTHER-CELL + .OBJECT WATER,FX?NARTICLEBIT,0,LOCAL-GLOBALS,ODOR,0,T?WATER + .OBJECT BASKET,FX?OPENBIT+FX?SEARCHBIT,FX?BURNBIT+FX?TAKEBIT+FX?CONTBIT,SHELF,0,0,T?BASKET + .OBJECT GROUND,0,0,GLOBAL-OBJECTS,GLOBAL-SLEEP,0,T?GROUND + .OBJECT MINARET,0,FX?ONBIT+FX?RLANDBIT,ROOMS,BASE-OF-TOWER,0,T?MINARET + .OBJECT WHITE-SUIT,0,FX?TAKEBIT+FX?WEARBIT,AT-MAIN-HATCH,0,0,T?WHITE-SUIT + .OBJECT NOT-HERE-OBJECT,FX?NARTICLEBIT,0,0,0,0,T?NOT-HERE-OBJECT + .OBJECT MARTIAN-DESSERT,0,FX?ONBIT+FX?RLANDBIT,ROOMS,BURIAL-CHAMBER,0,T?MARTIAN-DESSERT + .OBJECT CELL-OBJECT,0,0,LOCAL-GLOBALS,PASSENGER-SHIP,0,T?CELL-OBJECT + .OBJECT TITS,FX?PARTBIT+FX?PLURALBIT+FX?NARTICLEBIT,0,GLOBAL-OBJECTS,CUNT,0,T?TITS + .OBJECT COIN-RETURN-BOX,FX?NDESCBIT,FX?CONTBIT,VIZICOMM-BOOTH,COIN-RETURN-KNOB,0,T?COIN-RETURN-BOX + .OBJECT NARROW-CELL-DOOR,0,FX?DOORBIT,LOCAL-GLOBALS,WIDE-CELL-DOOR,0,T?NARROW-CELL-DOOR + .OBJECT TUBE,FX?SEARCHBIT,FX?BURNBIT+FX?TAKEBIT+FX?CONTBIT,0,0,FLEXIBLE-HOLE,T?TUBE + .OBJECT INTNUM,0,0,GLOBAL-OBJECTS,INTDIR,0,T?INTNUM + .OBJECT MOUSE,0,FX?TRYTAKEBIT+FX?TAKEBIT,HICKORY-AND-DICKORY-DOCK,0,0,T?MOUSE + .OBJECT DIVAN,FX?NDESCBIT+FX?SEARCHBIT+FX?OPENBIT,FX?CONTBIT+FX?VEHBIT,BOUDOIR,0,LGOP,T?DIVAN + .OBJECT CHOCOLATE,0,FX?TAKEBIT,TRAY,0,0,T?CHOCOLATE + .OBJECT LADDER-ROOM,FX?INDOORSBIT,0,ROOMS,WELL-BOTTOM,0,T?LADDER-ROOM + .OBJECT SOD,FX?NDESCBIT+FX?NARTICLEBIT,FX?TRYTAKEBIT,GARDEN,0,0,T?SOD + .OBJECT CEILING,FX?NDESCBIT,FX?TOUCHBIT,GLOBAL-OBJECTS,GROUND,0,T?CEILING + .OBJECT COCK,FX?PARTBIT+FX?NARTICLEBIT,0,GLOBAL-OBJECTS,KNEECAPS,0,T?COCK + .OBJECT BLENDER,0,FX?READBIT+FX?LIGHTBIT+FX?TAKEBIT,0,0,0,T?BLENDER + .OBJECT EARS,FX?PARTBIT+FX?PLURALBIT+FX?NARTICLEBIT,0,GLOBAL-OBJECTS,EYES,0,T?EARS + .OBJECT RUINED-CASTLE-1,0,FX?ONBIT+FX?RLANDBIT,ROOMS,MARTIAN-DESERT,0,T?RUINED-CASTLE-1 + .OBJECT PENGUIN-PARK,0,FX?ONBIT+FX?RLANDBIT,ROOMS,ALLUSION-ROOM,PENGUINS,T?PENGUIN-PARK + .OBJECT HANDSET,FX?NDESCBIT,0,VIZICOMM-BOOTH,VIZICOMM,0,T?HANDSET + .OBJECT MY-KIND-OF-DOCK,FX?NARTICLEBIT,FX?ONBIT,ROOMS,EXIT-SHOP,0,T?MY-KIND-OF-DOCK + .OBJECT SACK,FX?SEARCHBIT+FX?NDESCBIT,FX?BURNBIT+FX?CONTBIT+FX?TAKEBIT+FX?TRYTAKEBIT,LAWN,RAKE,LEAVES,T?SACK + .OBJECT BABY,FX?SEARCHBIT+FX?OPENBIT,FX?CONTBIT+FX?TAKEBIT,TENT,0,0,T?BABY + .OBJECT RUINED-CASTLE-3,0,FX?ONBIT+FX?RLANDBIT,ROOMS,RUINED-CASTLE-2,0,T?RUINED-CASTLE-3 + .OBJECT SULTANS-WIFE,FX?NDESCBIT+FX?NARTICLEBIT,FX?ACTORBIT,INNER-HAREM,0,0,T?SULTANS-WIFE + .OBJECT MAD-SCIENTIST,0,FX?ACTORBIT,0,0,0,T?MAD-SCIENTIST + .OBJECT GYPSY-CAMP,0,FX?ONBIT+FX?RLANDBIT,ROOMS,PENGUIN-PARK,0,T?GYPSY-CAMP + .OBJECT RUINED-CASTLE-2,0,FX?ONBIT+FX?RLANDBIT,ROOMS,THRONE-ROOM,FROG,T?RUINED-CASTLE-2 + .OBJECT CRAMPED-SPACE,FX?INDOORSBIT,0,ROOMS,OTHER-CELL,0,T?CRAMPED-SPACE + .OBJECT PROTAGONIST,FX?NDESCBIT,FX?ACTORBIT+FX?INVISIBLE,JOES-BAR,0,FLASHLIGHT,T?PROTAGONIST + .OBJECT ROYAL-DOCKS,0,FX?ONBIT+FX?RLANDBIT,ROOMS,HICKORY-AND-DICKORY-DOCK,BARGE,T?ROYAL-DOCKS + .OBJECT WIDE-CELL-DOOR,0,FX?DOORBIT,LOCAL-GLOBALS,CELL-OBJECT,0,T?WIDE-CELL-DOOR + .OBJECT DUST,FX?NARTICLEBIT+FX?NDESCBIT,0,EXIT-SHOP,PROPRIETOR,0,T?DUST + .OBJECT CANAL,0,FX?ONBIT,ROOMS,ROYAL-DOCKS,POWER-TRANSMITTER,T?CANAL + .OBJECT TRAY,FX?SEARCHBIT+FX?OPENBIT,FX?CONTBIT+FX?SURFACEBIT+FX?TAKEBIT,0,0,CHOCOLATE,T?TRAY + .OBJECT VIZICOMM,FX?NDESCBIT,0,VIZICOMM-BOOTH,0,0,T?VIZICOMM + .OBJECT NOSE,FX?PARTBIT+FX?NARTICLEBIT,0,GLOBAL-OBJECTS,EARS,0,T?NOSE + .OBJECT DOCK-OBJECT,0,0,LOCAL-GLOBALS,CANAL-OBJECT,0,T?DOCK-OBJECT + .OBJECT SWORD,0,FX?TAKEBIT,HOLD,0,0,T?SWORD + .OBJECT ORPHANAGE-FOYER,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,SOUTH-POLE,0,T?ORPHANAGE-FOYER + .OBJECT STABLE,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,HOLD,STALLION,T?STABLE + .OBJECT TOILET,FX?OPENBIT,FX?CONTBIT+FX?VEHBIT,LOCAL-GLOBALS,LADIES-ROOM-OBJECT,0,T?TOILET + .OBJECT BURIAL-CHAMBER,FX?INDOORSBIT,0,ROOMS,LADDER-ROOM,RAFT,T?BURIAL-CHAMBER + .OBJECT YOUNG-WOMAN,0,FX?ACTORBIT,0,0,0,T?YOUNG-WOMAN + .OBJECT AMONG-THE-DUNES,FX?NARTICLEBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,BABY-DOCK,MESSENGER,T?AMONG-THE-DUNES + .OBJECT TUNDRA,0,FX?ONBIT+FX?RLANDBIT,ROOMS,ICY-DOCK,0,T?TUNDRA + .OBJECT THRONE-ROOM,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,RUINED-CASTLE-1,PILE-OF-ANGLES,T?THRONE-ROOM + .OBJECT SPACE-YACHT,FX?INDOORSBIT,FX?RLANDBIT+FX?ONBIT,ROOMS,IN-SPACE,PRIVATE-CABIN-DOOR,T?SPACE-YACHT + .OBJECT PENGUINS,FX?NDESCBIT,0,PENGUIN-PARK,0,0,T?PENGUINS + .OBJECT FLYTRAP,FX?NDESCBIT,0,JUNGLE,0,0,T?FLYTRAP + .OBJECT BASEMENT,FX?INDOORSBIT,FX?RLANDBIT+FX?ONBIT,ROOMS,END-OF-HALLWAY,0,T?BASEMENT + .OBJECT ORANGE-BUTTON,FX?NDESCBIT,0,BARGE,0,0,T?ORANGE-BUTTON + .OBJECT HAREM,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,AUDIENCE-CHAMBER,0,T?HAREM + .OBJECT SALESMAN,FX?OPENBIT,FX?CONTBIT+FX?ACTORBIT,BACK-DOOR,0,ODD-MACHINE,T?SALESMAN + .OBJECT CREAM,0,FX?READBIT+FX?TAKEBIT,SPAWNING-GROUND,0,0,T?CREAM + .OBJECT AUDIENCE-CHAMBER,FX?INDOORSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,MINARET,SULTAN,T?AUDIENCE-CHAMBER + .OBJECT GARDEN,0,FX?ONBIT+FX?RLANDBIT,ROOMS,TEENSY-WEENSY-HOUSE,TRELLIS,T?GARDEN + .OBJECT PSEUDO-OBJECT,0,0,LOCAL-GLOBALS,0,0,T?PSEUDO-OBJECT + .ENDT + + LAST-OBJECT=228 + +; OBJECT PROPERTY TABLES ARE DEFINED HERE + +OBJPRP:: + +T?PURPLE-BUTTON:: .TABLE ; TABLE FOR OBJECT PURPLE-BUTTON + .STRL "huge purple button" + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 2,P?ADJECTIVE + .BYTE A?LARGE + .BYTE A?PURPLE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PURPLE-BUTTON-F + .BYTE 0 + .ENDT + +T?EXIT-OBJECT:: .TABLE ; TABLE FOR OBJECT EXIT-OBJECT + .STRL "exit" + .PROP 4,P?SYNONYM + W?EXIT + W?EGRESS + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + EXIT-OBJECT-F + .BYTE 0 + .ENDT + +T?MITRE:: .TABLE ; TABLE FOR OBJECT MITRE + .STRL "King Mitre" + .PROP 4,P?SYNONYM + W?KING + W?MITRE + .PROP 1,P?ADJECTIVE + .BYTE A?KING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MITRE-F + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + MITRE-F + .BYTE 0 + .ENDT + +T?WARNING:: .TABLE ; TABLE FOR OBJECT WARNING + .STRL "WARNING!" + .PROP 2,P?SYNONYM + W?ZZMGCK + .BYTE 0 + .ENDT + +T?HANDS:: .TABLE ; TABLE FOR OBJECT HANDS + .STRL "your hand" + .PROP 8,P?SYNONYM + W?HANDS + W?HAND + W?PALM + W?FINGER + .PROP 3,P?ADJECTIVE + .BYTE A?BARE + .BYTE A?MY + .BYTE A?YOUR + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HANDS-F + .BYTE 0 + .ENDT + +T?BACK-DOOR:: .TABLE ; TABLE FOR OBJECT BACK-DOOR + .STRL "Back Door" + .PROP 1,P?EAST + .BYTE ROCKY-CLIFFTOP + .PROP 5,P?SOUTH ; DOOR EXIT + .BYTE LOOKS-CAN-BE-DECEIVING ; ROOM NAME + .BYTE BACK-DOOR-OBJECT ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 1,P?WEST + .BYTE CLEARING + .PROP 5,P?IN ; DOOR EXIT + .BYTE LOOKS-CAN-BE-DECEIVING ; ROOM NAME + .BYTE BACK-DOOR-OBJECT ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BACK-DOOR-F + .PROP 4,P?GLOBAL + .BYTE BACK-DOOR-OBJECT + .BYTE HOUSE + .BYTE TREE + .BYTE VENUS + .PROP 2,P?LDESC ; STRING PROPERTY + STR?352 + .BYTE 0 + .ENDT + +T?LOOKS-CAN-BE-DECEIVING:: .TABLE ; TABLE FOR OBJECT LOOKS-CAN-BE-DECEIVING + .STRL "Looks Can Be Deceiving" + .PROP 5,P?NORTH ; DOOR EXIT + .BYTE BACK-DOOR ; ROOM NAME + .BYTE BACK-DOOR-OBJECT ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 5,P?SOUTH ; DOOR EXIT + .BYTE FRONT-DOOR ; ROOM NAME + .BYTE FRONT-DOOR-OBJECT ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 1,P?DOWN + .BYTE LABORATORY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LOOKS-CAN-BE-DECEIVING-F + .PROP 5,P?GLOBAL + .BYTE STAIRS + .BYTE FRONT-DOOR-OBJECT + .BYTE BACK-DOOR-OBJECT + .BYTE HOUSE + .BYTE VENUS + .BYTE 0 + .ENDT + +T?CAGE:: .TABLE ; TABLE FOR OBJECT CAGE + .STRL "cage" + .PROP 6,P?SYNONYM + W?CAGE + W?BAR + W?BARS + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CAGE-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 200 + .BYTE 0 + .ENDT + +T?ANTI-LGOP-MACHINE:: .TABLE ; TABLE FOR OBJECT ANTI-LGOP-MACHINE + .STRL "Super-Duper Anti-Leather Goddesses of Phobos Attack Machine" + .PROP 4,P?SYNONYM + W?MACHINE + W?DEVICE + .PROP 4,P?ADJECTIVE + .BYTE A?SUPER + .BYTE A?DUPER + .BYTE A?ATTACK + .BYTE A?LARGE + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-MACHINE-F + .BYTE 0 + .ENDT + +T?TORCH:: .TABLE ; TABLE FOR OBJECT TORCH + .STRL "" + .PROP 4,P?SYNONYM + W?TORCH + W?ORCH + .PROP 2,P?ADJECTIVE + .BYTE A?RELIABLE + .BYTE A?UNRELIABLE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TORCH-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?300 + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?301 + .BYTE 0 + .ENDT + +T?THORBAST-SWORD:: .TABLE ; TABLE FOR OBJECT THORBAST-SWORD + .STRL "" + .PROP 6,P?SYNONYM + W?SWORD + W?SWORDS + W?BLADE + .PROP 6,P?ADJECTIVE + .BYTE A?THORBAST + .BYTE A?ASSASSIN + .BYTE A?HIS + .BYTE A?HER + .BYTE A?LONG + .BYTE A?POINTED + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + THORBAST-SWORD-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?394 + .BYTE 0 + .ENDT + +T?WINDOW:: .TABLE ; TABLE FOR OBJECT WINDOW + .STRL "window" + .PROP 6,P?SYNONYM + W?WINDOW + W?VIEWPORT + W?GLASS + .PROP 6,P?ADJECTIVE + .BYTE A?RECTAN + .BYTE A?STAINED + .BYTE A?GLASS + .BYTE A?BARRED + .BYTE A?SMALL + .BYTE A?GRIMY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WINDOW-F + .BYTE 0 + .ENDT + +T?HAREM-GUARD:: .TABLE ; TABLE FOR OBJECT HAREM-GUARD + .STRL "harem guard" + .PROP 2,P?SYNONYM + W?GUARD + .PROP 1,P?ADJECTIVE + .BYTE A?HAREM + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HAREM-GUARD-F + .PROP 2,P?LDESC ; STRING PROPERTY + STR?281 + .BYTE 0 + .ENDT + +T?ALLUSION-ROOM:: .TABLE ; TABLE FOR OBJECT ALLUSION-ROOM + .STRL "Allusion Room" + .PROP 1,P?NORTH + .BYTE TUNDRA + .PROP 2,P?NE ; STRING PROPERTY + STR?327 + .PROP 1,P?EAST + .BYTE PENGUIN-PARK + .PROP 2,P?SE ; STRING PROPERTY + STR?327 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?327 + .PROP 2,P?SW ; STRING PROPERTY + STR?327 + .PROP 2,P?WEST ; STRING PROPERTY + STR?327 + .PROP 2,P?NW ; STRING PROPERTY + STR?327 + .PROP 1,P?GLOBAL + .BYTE HOLE + .PROP 2,P?LDESC ; STRING PROPERTY + STR?326 + .PROP 2,P?HOLE-DESTINATION ; ATOM (CONSTANT) PROPERTY + + WATTZ-UPP-DOCK + .BYTE 0 + .ENDT + +T?SIDEKICKS-BODY:: .TABLE ; TABLE FOR OBJECT SIDEKICKS-BODY + .STRL "" + .PROP 8,P?SYNONYM + W?BODY + W?TRENT + W?TIFFAN + W?TIFF + .PROP 3,P?ADJECTIVE + .BYTE A?TRENT + .BYTE A?TIFFAN + .BYTE A?TIFF'S + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SIDEKICKS-BODY-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?367 + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-SIDEKICK-F + .BYTE 0 + .ENDT + +T?ME:: .TABLE ; TABLE FOR OBJECT ME + .STRL "yourself" + .PROP 8,P?SYNONYM + W?I + W?ME + W?MYSELF + W?SELF + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ME-F + .BYTE 0 + .ENDT + +T?CATACOMBS:: .TABLE ; TABLE FOR OBJECT CATACOMBS + .STRL "Catacombs" + .PROP 3,P?NORTH + .WORD CATACOMBS-MOVEMENT-F + .BYTE 0 + .PROP 3,P?NE + .WORD CATACOMBS-MOVEMENT-F + .BYTE 0 + .PROP 3,P?EAST + .WORD CATACOMBS-MOVEMENT-F + .BYTE 0 + .PROP 3,P?SE + .WORD CATACOMBS-MOVEMENT-F + .BYTE 0 + .PROP 3,P?SOUTH + .WORD CATACOMBS-MOVEMENT-F + .BYTE 0 + .PROP 3,P?SW + .WORD CATACOMBS-MOVEMENT-F + .BYTE 0 + .PROP 3,P?WEST + .WORD CATACOMBS-MOVEMENT-F + .BYTE 0 + .PROP 3,P?NW + .WORD CATACOMBS-MOVEMENT-F + .BYTE 0 + .PROP 3,P?UP + .WORD CATACOMBS-MOVEMENT-F + .BYTE 0 + .PROP 3,P?DOWN + .WORD CATACOMBS-MOVEMENT-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CATACOMBS-F + .PROP 1,P?GLOBAL + .BYTE WATER + .BYTE 0 + .ENDT + +T?POCKET:: .TABLE ; TABLE FOR OBJECT POCKET + .STRL "pocket" + .PROP 2,P?SYNONYM + W?POCKET + .PROP 1,P?ADJECTIVE + .BYTE A?BACK + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + POCKET-F + .BYTE 0 + .ENDT + +T?MAP:: .TABLE ; TABLE FOR OBJECT MAP + .STRL "secret map" + .PROP 2,P?SYNONYM + W?MAP + .PROP 2,P?ADJECTIVE + .BYTE A?SECRET + .BYTE A?SECRE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MAP-F + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?303 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?FORD:: .TABLE ; TABLE FOR OBJECT FORD + .STRL "Ford" + .PROP 6,P?SYNONYM + W?FORD + W?CAR + W?AUTO + .PROP 1,P?ADJECTIVE + .BYTE A?NUMBER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FORD-F + .BYTE 0 + .ENDT + +T?LADIES-ROOM-OBJECT:: .TABLE ; TABLE FOR OBJECT LADIES-ROOM-OBJECT + .STRL "ladies' restroom" + .PROP 6,P?SYNONYM + W?BATHROOM + W?RESTROOM + W?ROOM + .PROP 3,P?ADJECTIVE + .BYTE A?LADIES + .BYTE A?WOMEN + .BYTE A?FILTHY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LADIES-ROOM-OBJECT-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-RESTROOM-F + .BYTE 0 + .ENDT + +T?CLOTHES-PIN:: .TABLE ; TABLE FOR OBJECT CLOTHES-PIN + .STRL "clothes pin" + .PROP 2,P?SYNONYM + W?PIN + .PROP 2,P?ADJECTIVE + .BYTE A?CLOTHES + .BYTE A?CLOHES + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CLOTHES-PIN-F + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?276 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?277 + .BYTE 0 + .ENDT + +T?ODOR:: .TABLE ; TABLE FOR OBJECT ODOR + .STRL "odor" + .PROP 8,P?SYNONYM + W?SMELL + W?ODOR + W?SCENT + W?AROMA + .PROP 5,P?ADJECTIVE + .BYTE A?STRONG + .BYTE A?FAMILIAR + .BYTE A?FOUL + .BYTE A?HEADY + .BYTE A?PLEASANT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ODOR-F + .BYTE 0 + .ENDT + +T?TREE-HOLE:: .TABLE ; TABLE FOR OBJECT TREE-HOLE + .STRL "tree hole" + .PROP 2,P?SYNONYM + W?HOLE + .PROP 2,P?ADJECTIVE + .BYTE A?TREE + .BYTE A?LARGE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TREE-HOLE-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 200 + .BYTE 0 + .ENDT + +T?WATTZ-UPP-DOCK:: .TABLE ; TABLE FOR OBJECT WATTZ-UPP-DOCK + .STRL "Wattz-Upp Dock" + .PROP 2,P?NE ; STRING PROPERTY + STR?243 + .PROP 2,P?EAST ; STRING PROPERTY + STR?243 + .PROP 2,P?SE ; STRING PROPERTY + STR?243 + .PROP 1,P?WEST + .BYTE OASIS + .PROP 4,P?GLOBAL + .BYTE CANAL-OBJECT + .BYTE DOCK-OBJECT + .BYTE WATER + .BYTE SIGN + .PROP 2,P?THINGS ; STRING PROPERTY + T?51 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?322 + .BYTE 0 + .ENDT + +T?VIZICOMM-BOOTH:: .TABLE ; TABLE FOR OBJECT VIZICOMM-BOOTH + .STRL "Vizicomm Booth" + .PROP 1,P?SE + .BYTE ROCKY-CLIFFTOP + .PROP 1,P?OUT + .BYTE ROCKY-CLIFFTOP + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + VIZICOMM-BOOTH-F + .PROP 3,P?GLOBAL + .BYTE SIGN + .BYTE BOOTH-OBJECT + .BYTE VENUS + .PROP 2,P?THINGS ; STRING PROPERTY + T?60 + .BYTE 0 + .ENDT + +T?ONE-MARSMID-COIN:: .TABLE ; TABLE FOR OBJECT ONE-MARSMID-COIN + .STRL "coin" + .PROP 6,P?SYNONYM + W?COIN + W?MARSMID + W?MONEY + .PROP 2,P?ADJECTIVE + .BYTE A?ONE + .BYTE A?MARSMID + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-COIN-F + .PROP 2,P?TEXT ; STRING PROPERTY + STR?370 + .BYTE 0 + .ENDT + +T?CLEVELAND-OBJECT:: .TABLE ; TABLE FOR OBJECT CLEVELAND-OBJECT + .STRL "Cleveland" + .PROP 2,P?SYNONYM + W?CLEVELAND + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CLEVELAND-OBJECT-F + .BYTE 0 + .ENDT + +T?LAWN:: .TABLE ; TABLE FOR OBJECT LAWN + .STRL "Lawn" + .PROP 1,P?NORTH + .BYTE CLEVELAND + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LAWN-F + .PROP 1,P?GLOBAL + .BYTE CLEVELAND-OBJECT + .PROP 2,P?THINGS ; STRING PROPERTY + T?61 + .BYTE 0 + .ENDT + +T?MENS-ROOM-OBJECT:: .TABLE ; TABLE FOR OBJECT MENS-ROOM-OBJECT + .STRL "gents' restroom" + .PROP 6,P?SYNONYM + W?BATHROOM + W?RESTROOM + W?ROOM + .PROP 5,P?ADJECTIVE + .BYTE A?MEN'S + .BYTE A?GENT'S + .BYTE A?MENS + .BYTE A?GENTS + .BYTE A?FILTHY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MENS-ROOM-OBJECT-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-RESTROOM-F + .BYTE 0 + .ENDT + +T?FORGOTTEN-STOREHOUSE:: .TABLE ; TABLE FOR OBJECT FORGOTTEN-STOREHOUSE + .STRL "Forgotten Storehouse" + .PROP 1,P?NW + .BYTE CATACOMBS + .PROP 1,P?OUT + .BYTE CATACOMBS + .PROP 1,P?GLOBAL + .BYTE WATER + .PROP 2,P?LDESC ; STRING PROPERTY + STR?306 + .BYTE 0 + .ENDT + +T?CLEVELAND:: .TABLE ; TABLE FOR OBJECT CLEVELAND + .STRL "Cleveland" + .PROP 1,P?NE + .BYTE TEENSY-WEENSY-HOUSE + .PROP 1,P?SOUTH + .BYTE LAWN + .PROP 2,P?GLOBAL + .BYTE CLEVELAND-OBJECT + .BYTE HOUSE + .PROP 2,P?LDESC ; STRING PROPERTY + STR?371 + .BYTE 0 + .ENDT + +T?INTDIR:: .TABLE ; TABLE FOR OBJECT INTDIR + .STRL "direction" + .PROP 2,P?SYNONYM + W?DIRECT + .PROP 8,P?ADJECTIVE + .BYTE A?NORTH + .BYTE A?SOUTH + .BYTE A?EAST + .BYTE A?WEST + .BYTE A?NW + .BYTE A?NE + .BYTE A?SW + .BYTE A?SE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + INTDIR-F + .BYTE 0 + .ENDT + +T?ROOMS:: .TABLE ; TABLE FOR OBJECT ROOMS + .STRL "it" + .PROP 1,P?IN + .BYTE ROOMS + .BYTE 0 + .ENDT + +T?LGOP:: .TABLE ; TABLE FOR OBJECT LGOP + .STRL "the Leather Goddesses of Phobos" + .PROP 8,P?SYNONYM + W?PHOBOS + W?GODDESSES + W?SHAPE + W?SHAPES + .PROP 2,P?ADJECTIVE + .BYTE A?LEATHER + .BYTE A?COUCHMATE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LGOP-F + .BYTE 0 + .ENDT + +T?BEM:: .TABLE ; TABLE FOR OBJECT BEM + .STRL "bug-eyed monster" + .PROP 8,P?SYNONYM + W?MONSTER + W?TREE + W?TREE- + W?SQUID + .PROP 6,P?ADJECTIVE + .BYTE A?BUG + .BYTE A?EYED + .BYTE A?BUG-EYED + .BYTE A?HUMANOID + .BYTE A?ALIEN + .BYTE A?TENTAC + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BEM-F + .BYTE 0 + .ENDT + +T?LAUNDRY-ROOM:: .TABLE ; TABLE FOR OBJECT LAUNDRY-ROOM + .STRL "Laundry Room" + .PROP 1,P?NORTH + .BYTE MAIN-HALL-OF-PALACE + .PROP 1,P?OUT + .BYTE MAIN-HALL-OF-PALACE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LAUNDRY-ROOM-F + .PROP 2,P?THINGS ; STRING PROPERTY + T?39 + .BYTE 0 + .ENDT + +T?RIDDLE:: .TABLE ; TABLE FOR OBJECT RIDDLE + .STRL "riddle" + .PROP 2,P?SYNONYM + W?RIDDLE + .BYTE 0 + .ENDT + +T?COIN-RETURN-KNOB:: .TABLE ; TABLE FOR OBJECT COIN-RETURN-KNOB + .STRL "coin return knob" + .PROP 2,P?SYNONYM + W?KNOB + .PROP 2,P?ADJECTIVE + .BYTE A?COIN + .BYTE A?RETURN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + COIN-RETURN-KNOB-F + .BYTE 0 + .ENDT + +T?LOCAL-GLOBALS:: .TABLE ; TABLE FOR OBJECT LOCAL-GLOBALS + .STRL "it" + .PROP 2,P?SYNONYM + W?ZZMGCK + .BYTE 0 + .ENDT + +T?HEAD:: .TABLE ; TABLE FOR OBJECT HEAD + .STRL "your head" + .PROP 2,P?SYNONYM + W?HEAD + .PROP 2,P?ADJECTIVE + .BYTE A?YOUR + .BYTE A?MY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HEAD-F + .BYTE 0 + .ENDT + +T?TENT:: .TABLE ; TABLE FOR OBJECT TENT + .STRL "Inside the Tent" + .PROP 1,P?SOUTH + .BYTE GYPSY-CAMP + .PROP 1,P?OUT + .BYTE GYPSY-CAMP + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TENT-F + .PROP 2,P?THINGS ; STRING PROPERTY + T?53 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?330 + .BYTE 0 + .ENDT + +T?VENUS:: .TABLE ; TABLE FOR OBJECT VENUS + .STRL "Venus" + .PROP 2,P?SYNONYM + W?VENUS + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + VENUS-F + .BYTE 0 + .ENDT + +T?HER:: .TABLE ; TABLE FOR OBJECT HER + .STRL "her" + .PROP 4,P?SYNONYM + W?HER + W?HERSELF + .BYTE 0 + .ENDT + +T?FIRST-SLAB:: .TABLE ; TABLE FOR OBJECT FIRST-SLAB + .STRL "first slab" + .PROP 2,P?SYNONYM + W?SLAB + .PROP 1,P?ADJECTIVE + .BYTE A?FIRST + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FIRST-SLAB-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-SLAB-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 100 + .BYTE 0 + .ENDT + +T?FROG:: .TABLE ; TABLE FOR OBJECT FROG + .STRL "frog" + .PROP 4,P?SYNONYM + W?FROG + W?PRINCE + .PROP 3,P?ADJECTIVE + .BYTE A?ENCHANTED + .BYTE A?LARGE + .BYTE A?GREEN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FROG-F + .PROP 2,P?LDESC ; STRING PROPERTY + STR?240 + .BYTE 0 + .ENDT + +T?GLOBAL-SLEEP:: .TABLE ; TABLE FOR OBJECT GLOBAL-SLEEP + .STRL "sleep" + .PROP 6,P?SYNONYM + W?SLEEP + W?NAP + W?SNOOZE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GLOBAL-SLEEP-F + .BYTE 0 + .ENDT + +T?SIDEKICK:: .TABLE ; TABLE FOR OBJECT SIDEKICK + .STRL "" + .PROP 8,P?SYNONYM + W?TIFFAN + W?TIFF + W?TRENT + W?BODY + .PROP 3,P?ADJECTIVE + .BYTE A?TRENT + .BYTE A?TIFFAN + .BYTE A?TIFF'S + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SIDEKICK-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?405 + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-SIDEKICK-F + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + SIDEKICK-F + .BYTE 0 + .ENDT + +T?ODD-MACHINE:: .TABLE ; TABLE FOR OBJECT ODD-MACHINE + .STRL "odd machine" + .PROP 8,P?SYNONYM + W?REMOVE + W?MACHINE + W?COMPAR + W?T-REMOVER + .PROP 8,P?ADJECTIVE + .BYTE A?YOUR + .BYTE A?ODD + .BYTE A?SMALL + .BYTE A?T + .BYTE A?TEE + .BYTE A?TEA + .BYTE A?TEE-REMOVER + .BYTE A?TEA-REMOVER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ODD-MACHINE-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-MACHINE-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 60 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 8 + .BYTE 0 + .ENDT + +T?CELL:: .TABLE ; TABLE FOR OBJECT CELL + .STRL "Cell" + .PROP 5,P?SOUTH ; DOOR EXIT + .BYTE END-OF-HALLWAY ; ROOM NAME + .BYTE WIDE-CELL-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 3,P?UP + .WORD HOLE-ENTER-F + .BYTE 0 + .PROP 5,P?OUT ; DOOR EXIT + .BYTE END-OF-HALLWAY ; ROOM NAME + .BYTE WIDE-CELL-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CELL-F + .PROP 3,P?GLOBAL + .BYTE WIDE-CELL-DOOR + .BYTE HOLE + .BYTE CELL-OBJECT + .PROP 2,P?HOLE-DESTINATION ; ATOM (CONSTANT) PROPERTY + + MAIN-HALL-OF-PALACE + .BYTE 0 + .ENDT + +T?EIGHTY-TWO-DEGREE-ANGLE:: .TABLE ; TABLE FOR OBJECT EIGHTY-TWO-DEGREE-ANGLE + .STRL "eighty-two degree angle" + .PROP 2,P?SYNONYM + W?ANGLE + .PROP 4,P?ADJECTIVE + .BYTE A?EIGHTY + .BYTE A?EIGHY + .BYTE A?DEGREE + .BYTE A?NUMBER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + EIGHTY-TWO-DEGREE-ANGLE-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-ANGLE-F + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?238 + .BYTE 0 + .ENDT + +T?MOTHBALLS:: .TABLE ; TABLE FOR OBJECT MOTHBALLS + .STRL "mothballs" + .PROP 6,P?SYNONYM + W?MOTHBALL + W?BALL + W?BALLS + .PROP 1,P?ADJECTIVE + .BYTE A?MOTH + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MOTHBALLS-F + .BYTE 0 + .ENDT + +T?PHOTO:: .TABLE ; TABLE FOR OBJECT PHOTO + .STRL "" + .PROP 8,P?SYNONYM + W?PHOTO + W?PICTURE + W?HARLOW + W?FAIRBANKS + .PROP 4,P?ADJECTIVE + .BYTE A?JEAN + .BYTE A?DOUGLAS + .BYTE A?PHOO + .BYTE A?ADDRESS + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PHOTO-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?396 + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?396 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 3 + .BYTE 0 + .ENDT + +T?GLOBAL-OBJECTS:: .TABLE ; TABLE FOR OBJECT GLOBAL-OBJECTS + .STRL "it" + .PROP 2,P?SYNONYM + W?ZZMGCK + .BYTE 0 + .ENDT + +T?SHELF:: .TABLE ; TABLE FOR OBJECT SHELF + .STRL "shelf" + .PROP 4,P?SYNONYM + W?SHELF + W?LEDGE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SHELF-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 40 + .BYTE 0 + .ENDT + +T?MATCHBOOK:: .TABLE ; TABLE FOR OBJECT MATCHBOOK + .STRL "matchbook" + .PROP 8,P?SYNONYM + W?MATCHBOOK + W?MACHBOOK + W?BOOK + W?COVER + .PROP 8,P?ADJECTIVE + .BYTE A?EMPTY + .BYTE A?MATCH + .BYTE A?MACH + .BYTE A?MATCHBOOK + .BYTE A?MATCHES + .BYTE A?BLUEPR + .BYTE A?NOTES + .BYTE A?NOTATI + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MATCHBOOK-F + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?412 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?IT:: .TABLE ; TABLE FOR OBJECT IT + .STRL "it" + .PROP 4,P?SYNONYM + W?IT + W?THEM + .BYTE 0 + .ENDT + +T?PHONE-BOOK:: .TABLE ; TABLE FOR OBJECT PHONE-BOOK + .STRL "Cleveland phone book" + .PROP 6,P?SYNONYM + W?BOOK + W?DIRECT + W?PHONEB + .PROP 3,P?ADJECTIVE + .BYTE A?CLEVELAND + .BYTE A?PHONE + .BYTE A?TELEPHONE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PHONE-BOOK-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?307 + .BYTE 0 + .ENDT + +T?ORPHANAGE-DOOR:: .TABLE ; TABLE FOR OBJECT ORPHANAGE-DOOR + .STRL "igloo door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 2,P?ADJECTIVE + .BYTE A?IGLOO + .BYTE A?ORPHANAGE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ORPHANAGE-DOOR-F + .BYTE 0 + .ENDT + +T?SPLATTERED-SIDEKICK:: .TABLE ; TABLE FOR OBJECT SPLATTERED-SIDEKICK + .STRL "" + .PROP 8,P?SYNONYM + W?BITS + W?TRENT + W?TIFFAN + W?TIFF + .PROP 2,P?ADJECTIVE + .BYTE A?SMALL + .BYTE A?SPLATTERED + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SPLATTERED-SIDEKICK-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?385 + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-SIDEKICK-F + .BYTE 0 + .ENDT + +T?JOES-BAR:: .TABLE ; TABLE FOR OBJECT JOES-BAR + .STRL "Joe's Bar" + .PROP 3,P?NE + .WORD LADIES-ROOM-ENTER-F + .BYTE 0 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?201 + .PROP 3,P?NW + .WORD MENS-ROOM-ENTER-F + .BYTE 0 + .PROP 2,P?OUT ; STRING PROPERTY + STR?201 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + JOES-BAR-F + .PROP 3,P?GLOBAL + .BYTE MENS-ROOM-OBJECT + .BYTE LADIES-ROOM-OBJECT + .BYTE WINDOW + .PROP 2,P?THINGS ; STRING PROPERTY + T?30 + .BYTE 0 + .ENDT + +T?IN-SPACE:: .TABLE ; TABLE FOR OBJECT IN-SPACE + .STRL "In Space" + .PROP 3,P?NORTH + .WORD SPACE-YACHT-ENTER-F + .BYTE 0 + .PROP 5,P?SOUTH ; DOOR EXIT + .BYTE AT-MAIN-HATCH ; ROOM NAME + .BYTE HATCH ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + IN-SPACE-F + .PROP 4,P?GLOBAL + .BYTE HATCH + .BYTE ODOR + .BYTE BATTLESHIP + .BYTE PASSENGER-SHIP + .PROP 2,P?THINGS ; STRING PROPERTY + T?64 + .PROP 2,P?ODOR ; STRING PROPERTY + STR?389 + .PROP 2,P?ODOR-NUMBER ; INTEGER/CONSTANT PROPERTY + + 5 + .BYTE 0 + .ENDT + +T?MESSENGER:: .TABLE ; TABLE FOR OBJECT MESSENGER + .STRL "dead alien" + .PROP 6,P?SYNONYM + W?ALIEN + W?SPY + W?BODY + .PROP 3,P?ADJECTIVE + .BYTE A?STRANGE + .BYTE A?ALIEN + .BYTE A?DEAD + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MESSENGER-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?264 + .BYTE 0 + .ENDT + +T?CUNT:: .TABLE ; TABLE FOR OBJECT CUNT + .STRL "your naughty bits" + .PROP 6,P?SYNONYM + W?CUNT + W?VAGINA + W?PUSSY + .PROP 2,P?ADJECTIVE + .BYTE A?YOUR + .BYTE A?MY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + NAUGHTY-BITS-F + .BYTE 0 + .ENDT + +T?SPAWNING-GROUND:: .TABLE ; TABLE FOR OBJECT SPAWNING-GROUND + .STRL "Spawning Ground" + .PROP 1,P?EAST + .BYTE JUNGLE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SPAWNING-GROUND-F + .PROP 2,P?GLOBAL + .BYTE HOLE + .BYTE VENUS + .PROP 2,P?HOLE-DESTINATION ; ATOM (CONSTANT) PROPERTY + + HOLD + .BYTE 0 + .ENDT + +T?SCRAP-OF-PAPER:: .TABLE ; TABLE FOR OBJECT SCRAP-OF-PAPER + .STRL "scrap of paper" + .PROP 4,P?SYNONYM + W?SCRAP + W?PAPER + .PROP 2,P?ADJECTIVE + .BYTE A?DISCARDED + .BYTE A?CRUMPLED + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?405 + .PROP 2,P?TEXT ; STRING PROPERTY + STR?406 + .BYTE 0 + .ENDT + +T?CANAL-OBJECT:: .TABLE ; TABLE FOR OBJECT CANAL-OBJECT + .STRL "canal" + .PROP 2,P?SYNONYM + W?CANAL + .PROP 3,P?ADJECTIVE + .BYTE A?MARTIAN + .BYTE A?SMALL + .BYTE A?WIDE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CANAL-OBJECT-F + .BYTE 0 + .ENDT + +T?LADIES-ROOM:: .TABLE ; TABLE FOR OBJECT LADIES-ROOM + .STRL "Ladies' Room" + .PROP 1,P?SW + .BYTE JOES-BAR + .PROP 1,P?OUT + .BYTE JOES-BAR + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BATHROOM-F + .PROP 4,P?GLOBAL + .BYTE TOILET + .BYTE ODOR + .BYTE WATER + .BYTE LADIES-ROOM-OBJECT + .PROP 2,P?THINGS ; STRING PROPERTY + T?31 + .PROP 2,P?ODOR ; STRING PROPERTY + STR?206 + .PROP 2,P?ODOR-NUMBER ; INTEGER/CONSTANT PROPERTY + + 1 + .BYTE 0 + .ENDT + +T?FRONT-DOOR-OBJECT:: .TABLE ; TABLE FOR OBJECT FRONT-DOOR-OBJECT + .STRL "front door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 1,P?ADJECTIVE + .BYTE A?FRONT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MAD-SCIENTIST-DOOR-F + .BYTE 0 + .ENDT + +T?TEENSY-WEENSY-HOUSE:: .TABLE ; TABLE FOR OBJECT TEENSY-WEENSY-HOUSE + .STRL "Teensy-Weensy House" + .PROP 1,P?EAST + .BYTE GARDEN + .PROP 1,P?SW + .BYTE CLEVELAND + .PROP 1,P?UP + .BYTE BEDROOM + .PROP 2,P?GLOBAL + .BYTE STAIRS + .BYTE HOUSE + .PROP 2,P?THINGS ; STRING PROPERTY + T?62 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?372 + .BYTE 0 + .ENDT + +T?PRIVATE-CABIN-DOOR:: .TABLE ; TABLE FOR OBJECT PRIVATE-CABIN-DOOR + .STRL "door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PRIVATE-CABIN-DOOR-F + .BYTE 0 + .ENDT + +T?HOUSE:: .TABLE ; TABLE FOR OBJECT HOUSE + .STRL "house" + .PROP 4,P?SYNONYM + W?HOUSE + W?HOME + .PROP 5,P?ADJECTIVE + .BYTE A?SMALL + .BYTE A?RICKETY + .BYTE A?MAD + .BYTE A?SCIENTIST + .BYTE A?PLASTIC + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HOUSE-F + .BYTE 0 + .ENDT + +T?LOVE:: .TABLE ; TABLE FOR OBJECT LOVE + .STRL "love" + .PROP 2,P?SYNONYM + W?LOVE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LOVE-F + .BYTE 0 + .ENDT + +T?SOUTH-POLE:: .TABLE ; TABLE FOR OBJECT SOUTH-POLE + .STRL "South Pole" + .PROP 1,P?NORTH + .BYTE GYPSY-CAMP + .PROP 2,P?EAST ; STRING PROPERTY + STR?338 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?337 + .PROP 2,P?WEST ; STRING PROPERTY + STR?338 + .PROP 5,P?IN ; DOOR EXIT + .BYTE ORPHANAGE-FOYER ; ROOM NAME + .BYTE ORPHANAGE-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SOUTH-POLE-F + .PROP 4,P?GLOBAL + .BYTE SIGN + .BYTE IGLOO + .BYTE ORPHANAGE-DOOR + .BYTE WINDOW + .PROP 2,P?THINGS ; STRING PROPERTY + T?54 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?336 + .BYTE 0 + .ENDT + +T?YOUR-BODY:: .TABLE ; TABLE FOR OBJECT YOUR-BODY + .STRL "your body" + .PROP 2,P?SYNONYM + W?BODY + .PROP 2,P?ADJECTIVE + .BYTE A?YOUR + .BYTE A?MY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + YOUR-BODY-F + .BYTE 0 + .ENDT + +T?RAKE:: .TABLE ; TABLE FOR OBJECT RAKE + .STRL "wooden rake" + .PROP 2,P?SYNONYM + W?RAKE + .PROP 1,P?ADJECTIVE + .BYTE A?WOODEN + .BYTE 0 + .ENDT + +T?CANALVIEW-MALL:: .TABLE ; TABLE FOR OBJECT CANALVIEW-MALL + .STRL "Canalview Mall" + .PROP 1,P?EAST + .BYTE ABANDONED-DOCK + .PROP 1,P?SOUTH + .BYTE EXIT-SHOP + .PROP 1,P?WEST + .BYTE DUNETOP + .PROP 1,P?UP + .BYTE DUNETOP + .PROP 1,P?GLOBAL + .BYTE DUNES + .PROP 2,P?THINGS ; STRING PROPERTY + T?36 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?269 + .BYTE 0 + .ENDT + +T?PAINTING:: .TABLE ; TABLE FOR OBJECT PAINTING + .STRL "painting" + .PROP 8,P?SYNONYM + W?PAINTING + W?PICTURE + W?CAT + W?PAINING + .PROP 2,P?ADJECTIVE + .BYTE A?PUSSY + .BYTE A?ART + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PAINTING-F + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?400 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?399 + .BYTE 0 + .ENDT + +T?MAN-WOMAN:: .TABLE ; TABLE FOR OBJECT MAN-WOMAN + .STRL "" + .PROP 4,P?SYNONYM + W?MAN + W?WOMAN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MAN-WOMAN-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?125 + .BYTE 0 + .ENDT + +T?MARTIAN-DESERT:: .TABLE ; TABLE FOR OBJECT MARTIAN-DESERT + .STRL "Martian Desert" + .PROP 1,P?NORTH + .BYTE RUINED-CASTLE-1 + .PROP 1,P?EAST + .BYTE RUINED-CASTLE-2 + .PROP 1,P?WEST + .BYTE RUINED-CASTLE-3 + .PROP 1,P?GLOBAL + .BYTE DUNES + .PROP 2,P?LDESC ; STRING PROPERTY + STR?232 + .BYTE 0 + .ENDT + +T?BOUDOIR:: .TABLE ; TABLE FOR OBJECT BOUDOIR + .STRL "Boudoir" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BOUDOIR-F + .PROP 1,P?GLOBAL + .BYTE ODOR + .PROP 2,P?ODOR ; STRING PROPERTY + STR?413 + .PROP 2,P?ODOR-NUMBER ; INTEGER/CONSTANT PROPERTY + + 6 + .BYTE 0 + .ENDT + +T?JUNGLE:: .TABLE ; TABLE FOR OBJECT JUNGLE + .STRL "Jungle" + .PROP 1,P?EAST + .BYTE FORK-OF-SORTS + .PROP 3,P?WEST + .WORD PASS-FLYTRAP-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + JUNGLE-F + .PROP 2,P?GLOBAL + .BYTE TREE + .BYTE VENUS + .BYTE 0 + .ENDT + +T?HOLE:: .TABLE ; TABLE FOR OBJECT HOLE + .STRL "" + .PROP 4,P?SYNONYM + W?HOLE + W?CIRCLE + .PROP 2,P?ADJECTIVE + .BYTE A?BLACK + .BYTE A?WHITE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HOLE-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?132 + .BYTE 0 + .ENDT + +T?DONALD-DOCK:: .TABLE ; TABLE FOR OBJECT DONALD-DOCK + .STRL "Donald Dock" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?243 + .PROP 2,P?NE ; STRING PROPERTY + STR?243 + .PROP 1,P?SOUTH + .BYTE DUNETOP + .PROP 2,P?NW ; STRING PROPERTY + STR?243 + .PROP 1,P?UP + .BYTE DUNETOP + .PROP 4,P?GLOBAL + .BYTE CANAL-OBJECT + .BYTE DOCK-OBJECT + .BYTE WATER + .BYTE DUNES + .PROP 2,P?LDESC ; STRING PROPERTY + STR?265 + .BYTE 0 + .ENDT + +T?MALE-GORILLA:: .TABLE ; TABLE FOR OBJECT MALE-GORILLA + .STRL "male gorilla" + .PROP 6,P?SYNONYM + W?GORILLA + W?APE + W?MONKEY + .PROP 2,P?ADJECTIVE + .BYTE A?MALE + .BYTE A?OTHER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GORILLA-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-GORILLA-F + .BYTE 0 + .ENDT + +T?RUBBER-HOSE:: .TABLE ; TABLE FOR OBJECT RUBBER-HOSE + .STRL "rubber hose" + .PROP 2,P?SYNONYM + W?HOSE + .PROP 1,P?ADJECTIVE + .BYTE A?RUBBER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + RUBBER-HOSE-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 3 + .BYTE 0 + .ENDT + +T?STALLION:: .TABLE ; TABLE FOR OBJECT STALLION + .STRL "stallion" + .PROP 8,P?SYNONYM + W?MOUNT + W?STALLION + W?HORSE + W?STUD + .PROP 2,P?ADJECTIVE + .BYTE A?MAGNIFICENT + .BYTE A?WHITE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + STALLION-F + .BYTE 0 + .ENDT + +T?LIP-BALM:: .TABLE ; TABLE FOR OBJECT LIP-BALM + .STRL "stick of lip balm" + .PROP 8,P?SYNONYM + W?STICK + W?BALM + W?CHAPST + W?GLOSS + .PROP 2,P?ADJECTIVE + .BYTE A?LIP + .BYTE A?SICK + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LIP-BALM-F + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?261 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?262 + .BYTE 0 + .ENDT + +T?ORIENTAL-GARDEN:: .TABLE ; TABLE FOR OBJECT ORIENTAL-GARDEN + .STRL "Oriental Garden" + .PROP 1,P?NORTH + .BYTE AUDIENCE-CHAMBER + .PROP 1,P?SE + .BYTE BASE-OF-TOWER + .PROP 1,P?WEST + .BYTE MAIN-HALL-OF-PALACE + .PROP 3,P?DOWN + .WORD WELL-ENTER-F + .BYTE 0 + .PROP 1,P?GLOBAL + .BYTE TREE + .PROP 2,P?THINGS ; STRING PROPERTY + T?40 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?278 + .BYTE 0 + .ENDT + +T?THORBAST:: .TABLE ; TABLE FOR OBJECT THORBAST + .STRL "" + .PROP 6,P?SYNONYM + W?THORBAST + W?ASSASSIN + W?FIGURE + .PROP 2,P?ADJECTIVE + .BYTE A?CHIEF + .BYTE A?SHADOWY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + THORBAST-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?394 + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + THORBAST-F + .BYTE 0 + .ENDT + +T?SULTAN:: .TABLE ; TABLE FOR OBJECT SULTAN + .STRL "" + .PROP 2,P?SYNONYM + W?SULTAN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SULTAN-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?285 + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + SULTAN-F + .BYTE 0 + .ENDT + +T?ROOF:: .TABLE ; TABLE FOR OBJECT ROOF + .STRL "Roof" + .PROP 1,P?DOWN + .BYTE OBSERVATION-ROOM + .PROP 1,P?IN + .BYTE OBSERVATION-ROOM + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ROOF-F + .PROP 2,P?GLOBAL + .BYTE STAIRS + .BYTE HOLE + .PROP 2,P?THINGS ; STRING PROPERTY + T?67 + .PROP 2,P?HOLE-DESTINATION ; ATOM (CONSTANT) PROPERTY + + MARTIAN-DESERT + .BYTE 0 + .ENDT + +T?BASE-OF-TOWER:: .TABLE ; TABLE FOR OBJECT BASE-OF-TOWER + .STRL "Base of Tower" + .PROP 1,P?NW + .BYTE ORIENTAL-GARDEN + .PROP 1,P?UP + .BYTE MINARET + .PROP 2,P?GLOBAL + .BYTE STAIRS + .BYTE TOWER + .PROP 2,P?LDESC ; STRING PROPERTY + STR?279 + .BYTE 0 + .ENDT + +T?POWER-SWITCH:: .TABLE ; TABLE FOR OBJECT POWER-SWITCH + .STRL "huge red power switch" + .PROP 2,P?SYNONYM + W?SWITCH + .PROP 3,P?ADJECTIVE + .BYTE A?LARGE + .BYTE A?RED + .BYTE A?POWER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + POWER-SWITCH-F + .BYTE 0 + .ENDT + +T?TREE:: .TABLE ; TABLE FOR OBJECT TREE + .STRL "tree" + .PROP 4,P?SYNONYM + W?TREE + W?TREES + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TREE-F + .BYTE 0 + .ENDT + +T?POWER-TRANSMITTER:: .TABLE ; TABLE FOR OBJECT POWER-TRANSMITTER + .STRL "" + .PROP 8,P?SYNONYM + W?GLINT + W?STRUCTURE + W?MACHINE + W?TOWER + .PROP 7,P?ADJECTIVE + .BYTE A?LARGE + .BYTE A?METAL + .BYTE A?METALLIC + .BYTE A?POWER + .BYTE A?LOOMING + .BYTE A?RUSTED + .BYTE A?MARTIAN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + POWER-TRANSMITTER-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?251 + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-MACHINE-F + .BYTE 0 + .ENDT + +T?RAFT:: .TABLE ; TABLE FOR OBJECT RAFT + .STRL "" + .PROP 6,P?SYNONYM + W?RAFT + W?RAF + W?LIFERAFT + .PROP 4,P?ADJECTIVE + .BYTE A?DEFLATE + .BYTE A?SIMPLE + .BYTE A?RUBBER + .BYTE A?LIFE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + RAFT-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?312 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 100 + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?313 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 60 + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + RAFT-F + .BYTE 0 + .ENDT + +T?TEN-MARSMID-COIN:: .TABLE ; TABLE FOR OBJECT TEN-MARSMID-COIN + .STRL "coin" + .PROP 6,P?SYNONYM + W?COIN + W?MARSMID + W?MONEY + .PROP 2,P?ADJECTIVE + .BYTE A?TEN + .BYTE A?MARSMID + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-COIN-F + .PROP 2,P?TEXT ; STRING PROPERTY + STR?369 + .BYTE 0 + .ENDT + +T?ICY-DOCK:: .TABLE ; TABLE FOR OBJECT ICY-DOCK + .STRL "Icy Dock" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?243 + .PROP 2,P?NE ; STRING PROPERTY + STR?243 + .PROP 1,P?SOUTH + .BYTE TUNDRA + .PROP 2,P?NW ; STRING PROPERTY + STR?243 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ICY-DOCK-F + .PROP 3,P?GLOBAL + .BYTE WATER + .BYTE DOCK-OBJECT + .BYTE CANAL-OBJECT + .PROP 2,P?LDESC ; STRING PROPERTY + STR?325 + .BYTE 0 + .ENDT + +T?HOLD:: .TABLE ; TABLE FOR OBJECT HOLD + .STRL "Hold" + .PROP 1,P?SOUTH + .BYTE STABLE + .PROP 1,P?SW + .BYTE LONG-CORRIDOR + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HOLD-F + .PROP 3,P?GLOBAL + .BYTE WINDOW + .BYTE BATTLESHIP + .BYTE PASSENGER-SHIP + .BYTE 0 + .ENDT + +T?BABY-DOCK:: .TABLE ; TABLE FOR OBJECT BABY-DOCK + .STRL "Baby Dock" + .PROP 1,P?NORTH + .BYTE AMONG-THE-DUNES + .PROP 2,P?SE ; STRING PROPERTY + STR?243 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?243 + .PROP 2,P?SW ; STRING PROPERTY + STR?243 + .PROP 4,P?GLOBAL + .BYTE CANAL-OBJECT + .BYTE DOCK-OBJECT + .BYTE WATER + .BYTE DUNES + .PROP 2,P?LDESC ; STRING PROPERTY + STR?259 + .BYTE 0 + .ENDT + +T?ROCKY-CLIFFTOP:: .TABLE ; TABLE FOR OBJECT ROCKY-CLIFFTOP + .STRL "Rocky Clifftop" + .PROP 1,P?NORTH + .BYTE BACK-DOOR + .PROP 2,P?EAST ; STRING PROPERTY + STR?367 + .PROP 2,P?SE ; STRING PROPERTY + STR?367 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?367 + .PROP 1,P?WEST + .BYTE FRONT-DOOR + .PROP 1,P?NW + .BYTE VIZICOMM-BOOTH + .PROP 2,P?DOWN ; STRING PROPERTY + STR?367 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ROCKY-CLIFFTOP-F + .PROP 4,P?GLOBAL + .BYTE HOLE + .BYTE TREE + .BYTE BOOTH-OBJECT + .BYTE VENUS + .PROP 2,P?THINGS ; STRING PROPERTY + T?59 + .PROP 2,P?HOLE-DESTINATION ; ATOM (CONSTANT) PROPERTY + + ROYAL-DOCKS + .BYTE 0 + .ENDT + +T?FLEXIBLE-HOLE:: .TABLE ; TABLE FOR OBJECT FLEXIBLE-HOLE + .STRL "flexible black circle" + .PROP 6,P?SYNONYM + W?CIRCLE + W?HOLE + W?EXIT + .PROP 3,P?ADJECTIVE + .BYTE A?FLEXIBLE + .BYTE A?BLACK + .BYTE A?PORTABLE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FLEXIBLE-HOLE-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 1 + .BYTE 0 + .ENDT + +T?FRONT-DOOR:: .TABLE ; TABLE FOR OBJECT FRONT-DOOR + .STRL "Front Door" + .PROP 5,P?NORTH ; DOOR EXIT + .BYTE LOOKS-CAN-BE-DECEIVING ; ROOM NAME + .BYTE FRONT-DOOR-OBJECT ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 1,P?EAST + .BYTE ROCKY-CLIFFTOP + .PROP 1,P?SOUTH + .BYTE CLEARING + .PROP 5,P?IN ; DOOR EXIT + .BYTE LOOKS-CAN-BE-DECEIVING ; ROOM NAME + .BYTE FRONT-DOOR-OBJECT ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 4,P?GLOBAL + .BYTE FRONT-DOOR-OBJECT + .BYTE HOUSE + .BYTE TREE + .BYTE VENUS + .PROP 2,P?LDESC ; STRING PROPERTY + STR?351 + .BYTE 0 + .ENDT + +T?WELL-BOTTOM:: .TABLE ; TABLE FOR OBJECT WELL-BOTTOM + .STRL "Well Bottom" + .PROP 3,P?EAST + .WORD WELL-BOTTOM-EXIT-F + .BYTE 0 + .PROP 3,P?SE + .WORD WELL-BOTTOM-EXIT-F + .BYTE 0 + .PROP 3,P?SW + .WORD WELL-BOTTOM-LOOP-F + .BYTE 0 + .PROP 3,P?NW + .WORD WELL-BOTTOM-LOOP-F + .BYTE 0 + .PROP 2,P?UP ; STRING PROPERTY + STR?309 + .PROP 2,P?GLOBAL + .BYTE HOLE + .BYTE WATER + .PROP 2,P?THINGS ; STRING PROPERTY + T?47 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?308 + .PROP 2,P?HOLE-DESTINATION ; ATOM (CONSTANT) PROPERTY + + BARGE + .BYTE 0 + .ENDT + +T?TOWER:: .TABLE ; TABLE FOR OBJECT TOWER + .STRL "tower" + .PROP 4,P?SYNONYM + W?TOWER + W?MINARET + .PROP 2,P?ADJECTIVE + .BYTE A?SLENDER + .BYTE A?TALL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TOWER-F + .BYTE 0 + .ENDT + +T?KNEECAPS:: .TABLE ; TABLE FOR OBJECT KNEECAPS + .STRL "your kneecaps" + .PROP 6,P?SYNONYM + W?KNEECAP + W?KNEE + W?KNEES + .PROP 2,P?ADJECTIVE + .BYTE A?YOUR + .BYTE A?MY + .BYTE 0 + .ENDT + +T?BOOTH-OBJECT:: .TABLE ; TABLE FOR OBJECT BOOTH-OBJECT + .STRL "booth" + .PROP 2,P?SYNONYM + W?BOOTH + .PROP 2,P?ADJECTIVE + .BYTE A?VIZICOMM + .BYTE A?SMALL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BOOTH-OBJECT-F + .BYTE 0 + .ENDT + +T?PASSENGER-SHIP:: .TABLE ; TABLE FOR OBJECT PASSENGER-SHIP + .STRL "small passenger spaceship" + .PROP 6,P?SYNONYM + W?SPACESHIP + W?SHIP + W?YACHT + .PROP 3,P?ADJECTIVE + .BYTE A?SPACE + .BYTE A?PASSENGER + .BYTE A?SMALL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PASSENGER-SHIP-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-SHIP-F + .BYTE 0 + .ENDT + +T?FLASHLIGHT:: .TABLE ; TABLE FOR OBJECT FLASHLIGHT + .STRL "flashlight" + .PROP 4,P?SYNONYM + W?FLASHLIGHT + W?LIGHT + .PROP 1,P?ADJECTIVE + .BYTE A?FLASH + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FLASHLIGHT-F + .BYTE 0 + .ENDT + +T?CLEARING:: .TABLE ; TABLE FOR OBJECT CLEARING + .STRL "Clearing" + .PROP 3,P?NE + .WORD CLEARING-EXIT-F + .BYTE 0 + .PROP 3,P?EAST + .WORD CLEARING-EXIT-F + .BYTE 0 + .PROP 3,P?SOUTH + .WORD CLEARING-EXIT-F + .BYTE 0 + .PROP 1,P?WEST + .BYTE FORK-OF-SORTS + .PROP 3,P?NW + .WORD CLEARING-EXIT-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CLEARING-F + .PROP 2,P?GLOBAL + .BYTE TREE + .BYTE VENUS + .BYTE 0 + .ENDT + +T?AT-MAIN-HATCH:: .TABLE ; TABLE FOR OBJECT AT-MAIN-HATCH + .STRL "At Main Hatch" + .PROP 3,P?NORTH + .WORD HATCH-ENTER-F + .BYTE 0 + .PROP 3,P?EAST + .WORD LONG-CORRIDOR-ENTER-F + .BYTE 0 + .PROP 3,P?OUT + .WORD HATCH-ENTER-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + AT-MAIN-HATCH-F + .PROP 2,P?GLOBAL + .BYTE HATCH + .BYTE BATTLESHIP + .BYTE 0 + .ENDT + +T?BED:: .TABLE ; TABLE FOR OBJECT BED + .STRL "bed" + .PROP 2,P?SYNONYM + W?BED + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BED-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 100 + .BYTE 0 + .ENDT + +T?STOOL:: .TABLE ; TABLE FOR OBJECT STOOL + .STRL "stool" + .PROP 4,P?SYNONYM + W?STOOL + W?SOOL + .PROP 2,P?ADJECTIVE + .BYTE A?SMALL + .BYTE A?WOODEN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + STOOL-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?227 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 50 + .BYTE 0 + .ENDT + +T?PIZZA:: .TABLE ; TABLE FOR OBJECT PIZZA + .STRL "dubious slice of pizza" + .PROP 4,P?SYNONYM + W?SLICE + W?PIZZA + .PROP 3,P?ADJECTIVE + .BYTE A?DUBIOUS + .BYTE A?AGING + .BYTE A?CRUMPLED + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PIZZA-F + .BYTE 0 + .ENDT + +T?BARGE:: .TABLE ; TABLE FOR OBJECT BARGE + .STRL "royal barge" + .PROP 8,P?SYNONYM + W?BARGE + W?BOAT + W?GONDOLA + W?CONTROL + .PROP 5,P?ADJECTIVE + .BYTE A?ROYAL + .BYTE A?WOODEN + .BYTE A?CEDAR + .BYTE A?CEDARWOOD + .BYTE A?SIMPLE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BARGE-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 200 + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + BARGE-F + .BYTE 0 + .ENDT + +T?JOE:: .TABLE ; TABLE FOR OBJECT JOE + .STRL "Joe" + .PROP 4,P?SYNONYM + W?JOE + W?BARTENDER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + JOE-F + .BYTE 0 + .ENDT + +T?GLOBAL-ROOM:: .TABLE ; TABLE FOR OBJECT GLOBAL-ROOM + .STRL "room" + .PROP 8,P?SYNONYM + W?ROOM + W?PLACE + W?LOCATI + W?AREA + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GLOBAL-ROOM-F + .BYTE 0 + .ENDT + +T?LONG-CORRIDOR:: .TABLE ; TABLE FOR OBJECT LONG-CORRIDOR + .STRL "Long Corridor" + .PROP 3,P?NE + .WORD LONG-CORRIDOR-EXIT-F + .BYTE 0 + .PROP 3,P?EAST + .WORD LONG-CORRIDOR-MOVEMENT-F + .BYTE 0 + .PROP 3,P?WEST + .WORD LONG-CORRIDOR-MOVEMENT-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LONG-CORRIDOR-F + .PROP 2,P?GLOBAL + .BYTE HOLE + .BYTE BATTLESHIP + .PROP 2,P?THINGS ; STRING PROPERTY + T?38 + .BYTE 0 + .ENDT + +T?OBSERVATION-ROOM:: .TABLE ; TABLE FOR OBJECT OBSERVATION-ROOM + .STRL "Observation Room" + .PROP 1,P?NORTH + .BYTE CLOSET + .PROP 2,P?WEST ; STRING PROPERTY + STR?409 + .PROP 1,P?UP + .BYTE ROOF + .PROP 1,P?DOWN + .BYTE END-OF-HALLWAY + .PROP 1,P?IN + .BYTE CLOSET + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + OBSERVATION-ROOM-F + .PROP 3,P?GLOBAL + .BYTE WINDOW + .BYTE SIGN + .BYTE STAIRS + .PROP 2,P?THINGS ; STRING PROPERTY + T?66 + .BYTE 0 + .ENDT + +T?THETA:: .TABLE ; TABLE FOR OBJECT THETA + .STRL "" + .PROP 8,P?SYNONYM + W?ANGLE + W?PRINCE + W?DAUGHTER + W?THETA + .PROP 8,P?ADJECTIVE + .BYTE A?HIS + .BYTE A?DIFFER + .BYTE A?FORTY + .BYTE A?DEGREE + .BYTE A?NUMBER + .BYTE A?KING'S + .BYTE A?DAUGHTER + .BYTE A?PRINCE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + THETA-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?96 + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-ANGLE-F + .PROP 2,P?LDESC ; STRING PROPERTY + STR?236 + .BYTE 0 + .ENDT + +T?FEMALE-GORILLA:: .TABLE ; TABLE FOR OBJECT FEMALE-GORILLA + .STRL "female gorilla" + .PROP 6,P?SYNONYM + W?GORILLA + W?APE + W?MONKEY + .PROP 2,P?ADJECTIVE + .BYTE A?FEMALE + .BYTE A?OTHER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GORILLA-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-GORILLA-F + .BYTE 0 + .ENDT + +T?PROPRIETOR:: .TABLE ; TABLE FOR OBJECT PROPRIETOR + .STRL "proprietor" + .PROP 4,P?SYNONYM + W?PROPRIETOR + W?OWNER + .PROP 2,P?ADJECTIVE + .BYTE A?FORLORN + .BYTE A?DROWSY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PROPRIETOR-F + .BYTE 0 + .ENDT + +T?OASIS:: .TABLE ; TABLE FOR OBJECT OASIS + .STRL "Oasis" + .PROP 3,P?EAST + .WORD WATTZ-UPP-DOCK-ENTER-F + .BYTE 0 + .PROP 3,P?WEST + .WORD MARTIAN-DESSERT-ENTER-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + OASIS-F + .PROP 3,P?GLOBAL + .BYTE HOLE + .BYTE WATER + .BYTE DUNES + .PROP 2,P?HOLE-DESTINATION ; ATOM (CONSTANT) PROPERTY + + CLEVELAND + .BYTE 0 + .ENDT + +T?TRELLIS:: .TABLE ; TABLE FOR OBJECT TRELLIS + .STRL "trellis" + .PROP 4,P?SYNONYM + W?TRELLIS + W?RELLIS + .PROP 5,P?ADJECTIVE + .BYTE A?WOODEN + .BYTE A?WHITE + .BYTE A?TALL + .BYTE A?WIDE + .BYTE A?SQUARE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TRELLIS-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 50 + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?373 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 55 + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + TRELLIS-F + .BYTE 0 + .ENDT + +T?EXIT-SHOP:: .TABLE ; TABLE FOR OBJECT EXIT-SHOP + .STRL "Exit Shop" + .PROP 1,P?NORTH + .BYTE CANALVIEW-MALL + .PROP 1,P?OUT + .BYTE CANALVIEW-MALL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + EXIT-SHOP-F + .PROP 1,P?GLOBAL + .BYTE SIGN + .PROP 2,P?THINGS ; STRING PROPERTY + T?37 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?270 + .BYTE 0 + .ENDT + +T?HIM:: .TABLE ; TABLE FOR OBJECT HIM + .STRL "him" + .PROP 4,P?SYNONYM + W?HIM + W?HIMSELF + .BYTE 0 + .ENDT + +T?EYES:: .TABLE ; TABLE FOR OBJECT EYES + .STRL "your eyes" + .PROP 4,P?SYNONYM + W?EYE + W?EYES + .PROP 2,P?ADJECTIVE + .BYTE A?YOUR + .BYTE A?MY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + EYES-F + .BYTE 0 + .ENDT + +T?MAIN-HALL-OF-PALACE:: .TABLE ; TABLE FOR OBJECT MAIN-HALL-OF-PALACE + .STRL "Main Hall of Palace" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?275 + .PROP 1,P?NE + .BYTE AUDIENCE-CHAMBER + .PROP 1,P?EAST + .BYTE ORIENTAL-GARDEN + .PROP 2,P?SE ; STRING PROPERTY + STR?275 + .PROP 1,P?SOUTH + .BYTE LAUNDRY-ROOM + .PROP 2,P?SW ; STRING PROPERTY + STR?275 + .PROP 1,P?WEST + .BYTE MY-KIND-OF-DOCK + .PROP 2,P?NW ; STRING PROPERTY + STR?275 + .PROP 1,P?DOWN + .BYTE MY-KIND-OF-DOCK + .PROP 3,P?GLOBAL + .BYTE WATER + .BYTE STAIRS + .BYTE WINDOW + .PROP 2,P?THINGS ; STRING PROPERTY + T?38 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?274 + .BYTE 0 + .ENDT + +T?LABORATORY:: .TABLE ; TABLE FOR OBJECT LABORATORY + .STRL "Laboratory" + .PROP 3,P?NORTH + .WORD LAB-DOOR-ENTER-F + .BYTE 0 + .PROP 3,P?UP + .WORD LABORATORY-EXIT-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LABORATORY-F + .PROP 4,P?GLOBAL + .BYTE HOLE + .BYTE STAIRS + .BYTE HOUSE + .BYTE VENUS + .PROP 2,P?THINGS ; STRING PROPERTY + T?58 + .PROP 2,P?HOLE-DESTINATION ; ATOM (CONSTANT) PROPERTY + + VIZICOMM-BOOTH + .BYTE 0 + .ENDT + +T?COMIC-BOOK:: .TABLE ; TABLE FOR OBJECT COMIC-BOOK + .STRL "" + .PROP 4,P?SYNONYM + W?BOOK + W?RULES + .PROP 3,P?ADJECTIVE + .BYTE A?RULE + .BYTE A?COMIC + .BYTE A?3-D + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + COMIC-BOOK-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?204 + .BYTE 0 + .ENDT + +T?PLAZA:: .TABLE ; TABLE FOR OBJECT PLAZA + .STRL "Plaza" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PLAZA-F + .PROP 1,P?GLOBAL + .BYTE TREE + .PROP 2,P?THINGS ; STRING PROPERTY + T?69 + .PROP 2,P?ODOR ; STRING PROPERTY + STR?419 + .PROP 2,P?ODOR-NUMBER ; INTEGER/CONSTANT PROPERTY + + 7 + .BYTE 0 + .ENDT + +T?BATTLESHIP:: .TABLE ; TABLE FOR OBJECT BATTLESHIP + .STRL "battleship" + .PROP 8,P?SYNONYM + W?BATTLE + W?SPACESHIP + W?FLAGSHIP + W?SHIP + .PROP 5,P?ADJECTIVE + .BYTE A?BATTLE + .BYTE A?LONG + .BYTE A?LARGE + .BYTE A?SPACE + .BYTE A?FLAG + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BATTLESHIP-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-SHIP-F + .BYTE 0 + .ENDT + +T?GARMENT:: .TABLE ; TABLE FOR OBJECT GARMENT + .STRL "" + .PROP 8,P?SYNONYM + W?OVERALL + W?CLOTHES + W?LOINCLOTH + W?BIKINI + .PROP 4,P?ADJECTIVE + .BYTE A?MY + .BYTE A?YOUR + .BYTE A?BRASS + .BYTE A?TIGHT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GARMENT-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?203 + .BYTE 0 + .ENDT + +T?CODED-MESSAGE:: .TABLE ; TABLE FOR OBJECT CODED-MESSAGE + .STRL "coded message" + .PROP 4,P?SYNONYM + W?MESSAGE + W?CODE + .PROP 2,P?ADJECTIVE + .BYTE A?STRANGE + .BYTE A?CODED + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CODED-MESSAGE-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?263 + .BYTE 0 + .ENDT + +T?PILE-OF-ANGLES:: .TABLE ; TABLE FOR OBJECT PILE-OF-ANGLES + .STRL "pile of angles" + .PROP 4,P?SYNONYM + W?PILE + W?ANGLES + .PROP 3,P?ADJECTIVE + .BYTE A?FORTY + .BYTE A?DEGREE + .BYTE A?NUMBER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PILE-OF-ANGLES-F + .BYTE 0 + .ENDT + +T?INNER-HAREM:: .TABLE ; TABLE FOR OBJECT INNER-HAREM + .STRL "Inner Harem" + .PROP 3,P?SE + .WORD INNER-HAREM-EXIT-F + .BYTE 0 + .PROP 3,P?DOWN + .WORD CATACOMBS-ENTER-F + .BYTE 0 + .PROP 3,P?OUT + .WORD INNER-HAREM-EXIT-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + INNER-HAREM-F + .PROP 1,P?GLOBAL + .BYTE ODOR + .PROP 2,P?THINGS ; STRING PROPERTY + T?44 + .BYTE 0 + .ENDT + +T?RABBIT:: .TABLE ; TABLE FOR OBJECT RABBIT + .STRL "rabbit" + .PROP 4,P?SYNONYM + W?RABBIT + W?BUNNY + .PROP 2,P?ADJECTIVE + .BYTE A?BUNNY + .BYTE A?SMALL + .PROP 2,P?FDESC ; STRING PROPERTY + STR?324 + .BYTE 0 + .ENDT + +T?HATCH:: .TABLE ; TABLE FOR OBJECT HATCH + .STRL "hatch" + .PROP 6,P?SYNONYM + W?HATCH + W?HATCHWAY + W?DOOR + .BYTE 0 + .ENDT + +T?LEAVES:: .TABLE ; TABLE FOR OBJECT LEAVES + .STRL "whole bunch of leaves" + .PROP 8,P?SYNONYM + W?BUNCH + W?LEAVES + W?LEAF + W?PILE + .PROP 1,P?ADJECTIVE + .BYTE A?WHOLE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LEAVES-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?EXAM-ROOM-DOOR:: .TABLE ; TABLE FOR OBJECT EXAM-ROOM-DOOR + .STRL "metal door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 3,P?ADJECTIVE + .BYTE A?WEST + .BYTE A?GLEAMING + .BYTE A?METAL + .BYTE 0 + .ENDT + +T?STAIN:: .TABLE ; TABLE FOR OBJECT STAIN + .STRL "can of black stain" + .PROP 8,P?SYNONYM + W?CAN + W?STAIN + W?SAIN + W?PAINT + .PROP 1,P?ADJECTIVE + .BYTE A?BLACK + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + STAIN-F + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?349 + .PROP 2,P?TEXT ; STRING PROPERTY + STR?350 + .BYTE 0 + .ENDT + +T?HEADLIGHT:: .TABLE ; TABLE FOR OBJECT HEADLIGHT + .STRL "headlight" + .PROP 6,P?SYNONYM + W?HEADLIGHT + W?LIGHT + W?LIGH + .PROP 2,P?ADJECTIVE + .BYTE A?FORD + .BYTE A?HEAD + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HEADLIGHT-F + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?383 + .BYTE 0 + .ENDT + +T?COTTON-BALLS:: .TABLE ; TABLE FOR OBJECT COTTON-BALLS + .STRL "pair of cotton balls" + .PROP 6,P?SYNONYM + W?PAIR + W?BALL + W?BALLS + .PROP 2,P?ADJECTIVE + .BYTE A?COTTON + .BYTE A?COON + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + COTTON-BALLS-F + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?341 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?FORK-OF-SORTS:: .TABLE ; TABLE FOR OBJECT FORK-OF-SORTS + .STRL "Fork, Of Sorts" + .PROP 1,P?EAST + .BYTE CLEARING + .PROP 3,P?WEST + .WORD PASS-FLYTRAP-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FORK-OF-SORTS-F + .PROP 2,P?GLOBAL + .BYTE TREE + .BYTE VENUS + .BYTE 0 + .ENDT + +T?MOUTH:: .TABLE ; TABLE FOR OBJECT MOUTH + .STRL "your mouth" + .PROP 6,P?SYNONYM + W?MOUTH + W?LIP + W?LIPS + .PROP 2,P?ADJECTIVE + .BYTE A?YOUR + .BYTE A?MY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MOUTH-F + .BYTE 0 + .ENDT + +T?BEDROOM:: .TABLE ; TABLE FOR OBJECT BEDROOM + .STRL "Bedroom" + .PROP 3,P?DOWN + .WORD BEDROOM-EXIT-F + .BYTE 0 + .PROP 3,P?GLOBAL + .BYTE STAIRS + .BYTE WINDOW + .BYTE HOUSE + .PROP 2,P?THINGS ; STRING PROPERTY + T?62 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?374 + .BYTE 0 + .ENDT + +T?SIGN:: .TABLE ; TABLE FOR OBJECT SIGN + .STRL "sign" + .PROP 2,P?SYNONYM + W?SIGN + .PROP 3,P?ADJECTIVE + .BYTE A?LARGE + .BYTE A?RED + .BYTE A?FADED + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SIGN-F + .BYTE 0 + .ENDT + +T?HICKORY-AND-DICKORY-DOCK:: .TABLE ; TABLE FOR OBJECT HICKORY-AND-DICKORY-DOCK + .STRL "Hickory & Dickory Dock" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?243 + .PROP 2,P?NE ; STRING PROPERTY + STR?243 + .PROP 1,P?SOUTH + .BYTE RUINED-CASTLE-3 + .PROP 2,P?NW ; STRING PROPERTY + STR?243 + .PROP 3,P?GLOBAL + .BYTE CANAL-OBJECT + .BYTE DOCK-OBJECT + .BYTE WATER + .PROP 2,P?LDESC ; STRING PROPERTY + STR?242 + .BYTE 0 + .ENDT + +T?FRONT-STOOP:: .TABLE ; TABLE FOR OBJECT FRONT-STOOP + .STRL "front stoop" + .PROP 4,P?SYNONYM + W?STOOP + W?DOORSTEP + .PROP 1,P?ADJECTIVE + .BYTE A?FRONT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FRONT-STOOP-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 150 + .BYTE 0 + .ENDT + +T?BEER:: .TABLE ; TABLE FOR OBJECT BEER + .STRL "mug of beer" + .PROP 6,P?SYNONYM + W?DRINK + W?MUG + W?BEER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BEER-F + .BYTE 0 + .ENDT + +T?DUNES:: .TABLE ; TABLE FOR OBJECT DUNES + .STRL "sand dunes" + .PROP 6,P?SYNONYM + W?DUNE + W?DUNES + W?SAND + .PROP 7,P?ADJECTIVE + .BYTE A?SAND + .BYTE A?RED + .BYTE A?REDDISH + .BYTE A?TOWERING + .BYTE A?SCULPTED + .BYTE A?MARTIAN + .BYTE A?IMPASSABLE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DUNES-F + .BYTE 0 + .ENDT + +T?IGLOO:: .TABLE ; TABLE FOR OBJECT IGLOO + .STRL "igloo" + .PROP 4,P?SYNONYM + W?IGLOO + W?ORPHANAGE + .PROP 1,P?ADJECTIVE + .BYTE A?LARGE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + IGLOO-F + .BYTE 0 + .ENDT + +T?SECOND-SLAB:: .TABLE ; TABLE FOR OBJECT SECOND-SLAB + .STRL "second slab" + .PROP 2,P?SYNONYM + W?SLAB + .PROP 1,P?ADJECTIVE + .BYTE A?SECOND + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SECOND-SLAB-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-SLAB-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 100 + .BYTE 0 + .ENDT + +T?BACK-DOOR-OBJECT:: .TABLE ; TABLE FOR OBJECT BACK-DOOR-OBJECT + .STRL "back door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 2,P?ADJECTIVE + .BYTE A?BACK + .BYTE A?REAR + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MAD-SCIENTIST-DOOR-F + .BYTE 0 + .ENDT + +T?SHEET:: .TABLE ; TABLE FOR OBJECT SHEET + .STRL "" + .PROP 8,P?SYNONYM + W?SHEET + W?STRIPS + W?END + W?ROPE + .PROP 3,P?ADJECTIVE + .BYTE A?OTHER + .BYTE A?SHEE + .BYTE A?CLOTH + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SHEET-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?375 + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?376 + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + SHEET-F + .BYTE 0 + .ENDT + +T?STAIRS:: .TABLE ; TABLE FOR OBJECT STAIRS + .STRL "stair" + .PROP 8,P?SYNONYM + W?STAIR + W?STAIRS + W?STAIRW + W?STEP + .PROP 1,P?ADJECTIVE + .BYTE A?WINDING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + STAIRS-F + .BYTE 0 + .ENDT + +T?BLANKET:: .TABLE ; TABLE FOR OBJECT BLANKET + .STRL "blanket" + .PROP 2,P?SYNONYM + W?BLANKET + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BLANKET-F + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?397 + .BYTE 0 + .ENDT + +T?CLOSET:: .TABLE ; TABLE FOR OBJECT CLOSET + .STRL "Closet" + .PROP 3,P?SOUTH + .WORD CLOSET-EXIT-F + .BYTE 0 + .PROP 3,P?OUT + .WORD CLOSET-EXIT-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CLOSET-F + .PROP 2,P?GLOBAL + .BYTE HOLE + .BYTE ODOR + .PROP 2,P?THINGS ; STRING PROPERTY + T?66 + .PROP 2,P?ODOR ; STRING PROPERTY + STR?410 + .PROP 2,P?ODOR-NUMBER ; INTEGER/CONSTANT PROPERTY + + 3 + .PROP 2,P?HOLE-DESTINATION ; ATOM (CONSTANT) PROPERTY + + JUNGLE + .BYTE 0 + .ENDT + +T?MENS-ROOM:: .TABLE ; TABLE FOR OBJECT MENS-ROOM + .STRL "Gents' Room" + .PROP 1,P?SE + .BYTE JOES-BAR + .PROP 1,P?OUT + .BYTE JOES-BAR + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BATHROOM-F + .PROP 4,P?GLOBAL + .BYTE TOILET + .BYTE ODOR + .BYTE WATER + .BYTE MENS-ROOM-OBJECT + .PROP 2,P?THINGS ; STRING PROPERTY + T?31 + .PROP 2,P?ODOR ; STRING PROPERTY + STR?206 + .PROP 2,P?ODOR-NUMBER ; INTEGER/CONSTANT PROPERTY + + 1 + .BYTE 0 + .ENDT + +T?END-OF-HALLWAY:: .TABLE ; TABLE FOR OBJECT END-OF-HALLWAY + .STRL "End of Hallway" + .PROP 5,P?NORTH ; DOOR EXIT + .BYTE CELL ; ROOM NAME + .BYTE WIDE-CELL-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 3,P?EAST + .WORD OTHER-END-OF-HALLWAY-F + .BYTE 0 + .PROP 5,P?SOUTH ; DOOR EXIT + .BYTE OTHER-CELL ; ROOM NAME + .BYTE NARROW-CELL-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 3,P?WEST + .WORD EXAMINATION-ROOM-F + .BYTE 0 + .PROP 1,P?UP + .BYTE OBSERVATION-ROOM + .PROP 1,P?DOWN + .BYTE BASEMENT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + END-OF-HALLWAY-F + .PROP 6,P?GLOBAL + .BYTE SIGN + .BYTE WIDE-CELL-DOOR + .BYTE NARROW-CELL-DOOR + .BYTE EXAM-ROOM-DOOR + .BYTE CELL-OBJECT + .BYTE STAIRS + .BYTE 0 + .ENDT + +T?EACH-OTHER:: .TABLE ; TABLE FOR OBJECT EACH-OTHER + .STRL "it" + .PROP 4,P?SYNONYM + W?OTHER + W?ITSELF + .PROP 1,P?ADJECTIVE + .BYTE A?EACH + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + EACH-OTHER-F + .BYTE 0 + .ENDT + +T?DUNETOP:: .TABLE ; TABLE FOR OBJECT DUNETOP + .STRL "Dunetop" + .PROP 1,P?NORTH + .BYTE DONALD-DOCK + .PROP 1,P?EAST + .BYTE CANALVIEW-MALL + .PROP 2,P?DOWN ; STRING PROPERTY + STR?267 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DUNETOP-F + .PROP 3,P?GLOBAL + .BYTE DUNES + .BYTE CANAL-OBJECT + .BYTE DOCK-OBJECT + .PROP 2,P?LDESC ; STRING PROPERTY + STR?266 + .BYTE 0 + .ENDT + +T?ABANDONED-DOCK:: .TABLE ; TABLE FOR OBJECT ABANDONED-DOCK + .STRL "Abandoned Dock" + .PROP 2,P?NE ; STRING PROPERTY + STR?243 + .PROP 2,P?EAST ; STRING PROPERTY + STR?243 + .PROP 2,P?SE ; STRING PROPERTY + STR?243 + .PROP 1,P?WEST + .BYTE CANALVIEW-MALL + .PROP 4,P?GLOBAL + .BYTE CANAL-OBJECT + .BYTE DOCK-OBJECT + .BYTE WATER + .BYTE DUNES + .PROP 2,P?LDESC ; STRING PROPERTY + STR?268 + .BYTE 0 + .ENDT + +T?OTHER-CELL:: .TABLE ; TABLE FOR OBJECT OTHER-CELL + .STRL "Other Cell" + .PROP 5,P?NORTH ; DOOR EXIT + .BYTE END-OF-HALLWAY ; ROOM NAME + .BYTE NARROW-CELL-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 5,P?OUT ; DOOR EXIT + .BYTE END-OF-HALLWAY ; ROOM NAME + .BYTE NARROW-CELL-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + OTHER-CELL-F + .PROP 2,P?GLOBAL + .BYTE NARROW-CELL-DOOR + .BYTE CELL-OBJECT + .BYTE 0 + .ENDT + +T?WATER:: .TABLE ; TABLE FOR OBJECT WATER + .STRL "water" + .PROP 8,P?SYNONYM + W?WATER + W?FOUNTAIN + W?POOL + W?OASIS + .PROP 8,P?ADJECTIVE + .BYTE A?FRESH + .BYTE A?CANAL + .BYTE A?DARK + .BYTE A?BRACKISH + .BYTE A?STAGNANT + .BYTE A?WARM + .BYTE A?LARGE + .BYTE A?REFLECTING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WATER-F + .BYTE 0 + .ENDT + +T?BASKET:: .TABLE ; TABLE FOR OBJECT BASKET + .STRL "wicker basket" + .PROP 4,P?SYNONYM + W?BASKET + W?BASKE + .PROP 1,P?ADJECTIVE + .BYTE A?WICKER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BASKET-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 40 + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?411 + .BYTE 0 + .ENDT + +T?GROUND:: .TABLE ; TABLE FOR OBJECT GROUND + .STRL "" + .PROP 4,P?SYNONYM + W?FLOOR + W?GROUND + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GROUND-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?127 + .BYTE 0 + .ENDT + +T?MINARET:: .TABLE ; TABLE FOR OBJECT MINARET + .STRL "Minaret" + .PROP 1,P?DOWN + .BYTE BASE-OF-TOWER + .PROP 7,P?GLOBAL + .BYTE HOLE + .BYTE STAIRS + .BYTE TOWER + .BYTE CANAL-OBJECT + .BYTE WATER + .BYTE DUNES + .BYTE DOCK-OBJECT + .PROP 2,P?LDESC ; STRING PROPERTY + STR?280 + .PROP 2,P?HOLE-DESTINATION ; ATOM (CONSTANT) PROPERTY + + CRAMPED-SPACE + .BYTE 0 + .ENDT + +T?WHITE-SUIT:: .TABLE ; TABLE FOR OBJECT WHITE-SUIT + .STRL "white suit" + .PROP 6,P?SYNONYM + W?SUIT + W?SUI + W?THERMA + .PROP 3,P?ADJECTIVE + .BYTE A?THERMA + .BYTE A?WHITE + .BYTE A?WHIE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WHITE-SUIT-F + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?387 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?388 + .BYTE 0 + .ENDT + +T?NOT-HERE-OBJECT:: .TABLE ; TABLE FOR OBJECT NOT-HERE-OBJECT + .STRL "it" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + NOT-HERE-OBJECT-F + .BYTE 0 + .ENDT + +T?MARTIAN-DESSERT:: .TABLE ; TABLE FOR OBJECT MARTIAN-DESSERT + .STRL "Martian Dessert" + .PROP 3,P?SE + .WORD MARTIAN-DESSERT-EXIT-F + .BYTE 0 + .PROP 3,P?NW + .WORD MARTIAN-DESSERT-EXIT-F + .BYTE 0 + .PROP 1,P?GLOBAL + .BYTE DUNES + .PROP 2,P?THINGS ; STRING PROPERTY + T?50 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?321 + .BYTE 0 + .ENDT + +T?CELL-OBJECT:: .TABLE ; TABLE FOR OBJECT CELL-OBJECT + .STRL "cell" + .PROP 2,P?SYNONYM + W?CELL + .PROP 2,P?ADJECTIVE + .BYTE A?PRISON + .BYTE A?OTHER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CELL-OBJECT-F + .BYTE 0 + .ENDT + +T?TITS:: .TABLE ; TABLE FOR OBJECT TITS + .STRL "your naughty bits" + .PROP 8,P?SYNONYM + W?TIT + W?TITS + W?BREAST + W?BOSOM + .PROP 2,P?ADJECTIVE + .BYTE A?YOUR + .BYTE A?MY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + NAUGHTY-BITS-F + .BYTE 0 + .ENDT + +T?COIN-RETURN-BOX:: .TABLE ; TABLE FOR OBJECT COIN-RETURN-BOX + .STRL "coin return box" + .PROP 2,P?SYNONYM + W?BOX + .PROP 2,P?ADJECTIVE + .BYTE A?COIN + .BYTE A?RETURN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + COIN-RETURN-BOX-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 1 + .BYTE 0 + .ENDT + +T?NARROW-CELL-DOOR:: .TABLE ; TABLE FOR OBJECT NARROW-CELL-DOOR + .STRL "narrow cell door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 3,P?ADJECTIVE + .BYTE A?SOUTH + .BYTE A?NARROW + .BYTE A?CELL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + NARROW-CELL-DOOR-F + .BYTE 0 + .ENDT + +T?TUBE:: .TABLE ; TABLE FOR OBJECT TUBE + .STRL "tube" + .PROP 4,P?SYNONYM + W?TUBE + W?UBE + .PROP 3,P?ADJECTIVE + .BYTE A?CARDBOARD + .BYTE A?MAILING + .BYTE A?NARROW + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?271 + .BYTE 0 + .ENDT + +T?INTNUM:: .TABLE ; TABLE FOR OBJECT INTNUM + .STRL "number" + .PROP 2,P?SYNONYM + W?NUMBER + .PROP 3,P?ADJECTIVE + .BYTE A?WIFE + .BYTE A?HUSBAND + .BYTE A?# + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + INTNUM-F + .BYTE 0 + .ENDT + +T?MOUSE:: .TABLE ; TABLE FOR OBJECT MOUSE + .STRL "mouse" + .PROP 4,P?SYNONYM + W?MOUSE + W?MARSMOUSE + .PROP 2,P?ADJECTIVE + .BYTE A?SMALL + .BYTE A?WHITE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MOUSE-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 3 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?244 + .BYTE 0 + .ENDT + +T?DIVAN:: .TABLE ; TABLE FOR OBJECT DIVAN + .STRL "divan" + .PROP 4,P?SYNONYM + W?DIVAN + W?COUCH + .PROP 1,P?ADJECTIVE + .BYTE A?PLUSH + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 100 + .BYTE 0 + .ENDT + +T?CHOCOLATE:: .TABLE ; TABLE FOR OBJECT CHOCOLATE + .STRL "" + .PROP 8,P?SYNONYM + W?FOOD + W?HUNK + W?CHOCOLATE + W?CANDY + .PROP 4,P?ADJECTIVE + .BYTE A?BROWN + .BYTE A?LUSCIOUS + .BYTE A?MILK + .BYTE A?CREAMY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CHOCOLATE-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?402 + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?403 + .BYTE 0 + .ENDT + +T?LADDER-ROOM:: .TABLE ; TABLE FOR OBJECT LADDER-ROOM + .STRL "Ladder Room" + .PROP 1,P?NW + .BYTE CATACOMBS + .PROP 3,P?UP + .WORD LADDER-ROOM-EXIT-F + .BYTE 0 + .PROP 1,P?OUT + .BYTE CATACOMBS + .PROP 1,P?GLOBAL + .BYTE WATER + .PROP 2,P?THINGS ; STRING PROPERTY + T?48 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?310 + .BYTE 0 + .ENDT + +T?SOD:: .TABLE ; TABLE FOR OBJECT SOD + .STRL "sod" + .PROP 4,P?SYNONYM + W?PIECE + W?SOD + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SOD-F + .BYTE 0 + .ENDT + +T?CEILING:: .TABLE ; TABLE FOR OBJECT CEILING + .STRL "ceiling" + .PROP 4,P?SYNONYM + W?CEILIN + W?ROOF + .PROP 1,P?ADJECTIVE + .BYTE A?TOWERING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CEILING-F + .BYTE 0 + .ENDT + +T?COCK:: .TABLE ; TABLE FOR OBJECT COCK + .STRL "your naughty bits" + .PROP 8,P?SYNONYM + W?COCK + W?PENIS + W?BALLS + W?ASS + .PROP 2,P?ADJECTIVE + .BYTE A?YOUR + .BYTE A?MY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + NAUGHTY-BITS-F + .BYTE 0 + .ENDT + +T?BLENDER:: .TABLE ; TABLE FOR OBJECT BLENDER + .STRL "common household blender" + .PROP 6,P?SYNONYM + W?BLENDER + W?MIXER + W?ENGRAV + .PROP 2,P?ADJECTIVE + .BYTE A?COMMON + .BYTE A?HOUSEHOLD + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BLENDER-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 8 + .BYTE 0 + .ENDT + +T?EARS:: .TABLE ; TABLE FOR OBJECT EARS + .STRL "your ears" + .PROP 4,P?SYNONYM + W?EAR + W?EARS + .PROP 2,P?ADJECTIVE + .BYTE A?YOUR + .BYTE A?MY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + EARS-F + .BYTE 0 + .ENDT + +T?RUINED-CASTLE-1:: .TABLE ; TABLE FOR OBJECT RUINED-CASTLE-1 + .STRL "Ruined Castle" + .PROP 1,P?NORTH + .BYTE THRONE-ROOM + .PROP 1,P?SOUTH + .BYTE MARTIAN-DESERT + .PROP 1,P?IN + .BYTE THRONE-ROOM + .PROP 1,P?OUT + .BYTE MARTIAN-DESERT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + RUINED-CASTLE-1-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?236 + .BYTE 0 + .ENDT + +T?PENGUIN-PARK:: .TABLE ; TABLE FOR OBJECT PENGUIN-PARK + .STRL "Penguin Park" + .PROP 4,P?SE ; CONDITIONAL EXIT + .BYTE GYPSY-CAMP ; ROOM NAME + .BYTE PENGUINS-PARTED ; FLAG NAME + STR?328 ; STRING + .PROP 1,P?WEST + .BYTE ALLUSION-ROOM + .PROP 1,P?NW + .BYTE TUNDRA + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PENGUIN-PARK-F + .PROP 1,P?GLOBAL + .BYTE SIGN + .BYTE 0 + .ENDT + +T?HANDSET:: .TABLE ; TABLE FOR OBJECT HANDSET + .STRL "handset" + .PROP 2,P?SYNONYM + W?HANDSET + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HANDSET-F + .BYTE 0 + .ENDT + +T?MY-KIND-OF-DOCK:: .TABLE ; TABLE FOR OBJECT MY-KIND-OF-DOCK + .STRL "My Kinda Dock!" + .PROP 1,P?EAST + .BYTE MAIN-HALL-OF-PALACE + .PROP 2,P?SW ; STRING PROPERTY + STR?243 + .PROP 2,P?WEST ; STRING PROPERTY + STR?243 + .PROP 2,P?NW ; STRING PROPERTY + STR?243 + .PROP 1,P?UP + .BYTE MAIN-HALL-OF-PALACE + .PROP 2,P?SDESC ; STRING PROPERTY + STR?272 + .PROP 4,P?GLOBAL + .BYTE CANAL-OBJECT + .BYTE DOCK-OBJECT + .BYTE WATER + .BYTE STAIRS + .PROP 2,P?THINGS ; STRING PROPERTY + T?38 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?273 + .BYTE 0 + .ENDT + +T?SACK:: .TABLE ; TABLE FOR OBJECT SACK + .STRL "canvas sack" + .PROP 4,P?SYNONYM + W?SACK + W?BAG + .PROP 2,P?ADJECTIVE + .BYTE A?CANVAS + .BYTE A?LARGE + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 50 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 3 + .BYTE 0 + .ENDT + +T?BABY:: .TABLE ; TABLE FOR OBJECT BABY + .STRL "" + .PROP 6,P?SYNONYM + W?BABY + W?INFANT + W?ROBOT + .PROP 5,P?ADJECTIVE + .BYTE A?INFANT + .BYTE A?ROBOT + .BYTE A?ROBOTIC + .BYTE A?SMALL + .BYTE A?BABY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BABY-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?331 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 35 + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + BABY-F + .BYTE 0 + .ENDT + +T?RUINED-CASTLE-3:: .TABLE ; TABLE FOR OBJECT RUINED-CASTLE-3 + .STRL "Ruined Castle" + .PROP 1,P?EAST + .BYTE MARTIAN-DESERT + .PROP 1,P?NW + .BYTE HICKORY-AND-DICKORY-DOCK + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + RUINED-CASTLE-3-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?242 + .PROP 1,P?GLOBAL + .BYTE HOLE + .PROP 2,P?HOLE-DESTINATION ; ATOM (CONSTANT) PROPERTY + + BASEMENT + .BYTE 0 + .ENDT + +T?SULTANS-WIFE:: .TABLE ; TABLE FOR OBJECT SULTANS-WIFE + .STRL "" + .PROP 4,P?SYNONYM + W?HUSBAND + W?WIFE + .PROP 1,P?ADJECTIVE + .BYTE A?SULTAN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SULTANS-WIFE-F + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + SULTANS-WIFE-F + .BYTE 0 + .ENDT + +T?MAD-SCIENTIST:: .TABLE ; TABLE FOR OBJECT MAD-SCIENTIST + .STRL "mad scientist" + .PROP 2,P?SYNONYM + W?SCIENTIST + .PROP 1,P?ADJECTIVE + .BYTE A?MAD + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MAD-SCIENTIST-F + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + MAD-SCIENTIST-F + .BYTE 0 + .ENDT + +T?GYPSY-CAMP:: .TABLE ; TABLE FOR OBJECT GYPSY-CAMP + .STRL "Gypsy Camp" + .PROP 1,P?NORTH + .BYTE TENT + .PROP 1,P?SOUTH + .BYTE SOUTH-POLE + .PROP 1,P?NW + .BYTE PENGUIN-PARK + .PROP 1,P?IN + .BYTE TENT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GYPSY-CAMP-F + .PROP 2,P?THINGS ; STRING PROPERTY + T?52 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?329 + .BYTE 0 + .ENDT + +T?RUINED-CASTLE-2:: .TABLE ; TABLE FOR OBJECT RUINED-CASTLE-2 + .STRL "Ruined Castle" + .PROP 1,P?EAST + .BYTE MARTIAN-DESSERT + .PROP 1,P?WEST + .BYTE MARTIAN-DESERT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + RUINED-CASTLE-2-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?239 + .PROP 2,P?THINGS ; STRING PROPERTY + T?33 + .BYTE 0 + .ENDT + +T?CRAMPED-SPACE:: .TABLE ; TABLE FOR OBJECT CRAMPED-SPACE + .STRL "Cramped Space" + .PROP 4,P?DOWN ; CONDITIONAL EXIT + .BYTE CELL ; ROOM NAME + .BYTE HOLE-OPEN ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CRAMPED-SPACE-F + .PROP 2,P?THINGS ; STRING PROPERTY + T?65 + .BYTE 0 + .ENDT + +T?PROTAGONIST:: .TABLE ; TABLE FOR OBJECT PROTAGONIST + .STRL "it" + .PROP 2,P?SYNONYM + W?PROTAG + .BYTE 0 + .ENDT + +T?ROYAL-DOCKS:: .TABLE ; TABLE FOR OBJECT ROYAL-DOCKS + .STRL "Royal Docks" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?243 + .PROP 2,P?NE ; STRING PROPERTY + STR?243 + .PROP 1,P?SOUTH + .BYTE THRONE-ROOM + .PROP 2,P?NW ; STRING PROPERTY + STR?243 + .PROP 1,P?IN + .BYTE THRONE-ROOM + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ROYAL-DOCKS-F + .PROP 3,P?GLOBAL + .BYTE CANAL-OBJECT + .BYTE DOCK-OBJECT + .BYTE WATER + .BYTE 0 + .ENDT + +T?WIDE-CELL-DOOR:: .TABLE ; TABLE FOR OBJECT WIDE-CELL-DOOR + .STRL "wide cell door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 3,P?ADJECTIVE + .BYTE A?NORTH + .BYTE A?WIDE + .BYTE A?CELL + .BYTE 0 + .ENDT + +T?DUST:: .TABLE ; TABLE FOR OBJECT DUST + .STRL "dust" + .PROP 2,P?SYNONYM + W?DUST + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DUST-F + .BYTE 0 + .ENDT + +T?CANAL:: .TABLE ; TABLE FOR OBJECT CANAL + .STRL "Martian Canal" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?243 + .PROP 2,P?NE ; STRING PROPERTY + STR?243 + .PROP 2,P?EAST ; STRING PROPERTY + STR?243 + .PROP 2,P?SE ; STRING PROPERTY + STR?243 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?243 + .PROP 2,P?SW ; STRING PROPERTY + STR?243 + .PROP 2,P?WEST ; STRING PROPERTY + STR?243 + .PROP 2,P?NW ; STRING PROPERTY + STR?243 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CANAL-F + .PROP 5,P?GLOBAL + .BYTE CANAL-OBJECT + .BYTE DOCK-OBJECT + .BYTE WATER + .BYTE DUNES + .BYTE SIGN + .PROP 2,P?THINGS ; STRING PROPERTY + T?34 + .BYTE 0 + .ENDT + +T?TRAY:: .TABLE ; TABLE FOR OBJECT TRAY + .STRL "tray" + .PROP 4,P?SYNONYM + W?TRAY + W?RAY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TRAY-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?401 + .BYTE 0 + .ENDT + +T?VIZICOMM:: .TABLE ; TABLE FOR OBJECT VIZICOMM + .STRL "vizicomm" + .PROP 2,P?SYNONYM + W?VIZICOMM + .PROP 1,P?ADJECTIVE + .BYTE A?PAY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + VIZICOMM-F + .BYTE 0 + .ENDT + +T?NOSE:: .TABLE ; TABLE FOR OBJECT NOSE + .STRL "your nose" + .PROP 4,P?SYNONYM + W?NOSE + W?NOSTRIL + .PROP 2,P?ADJECTIVE + .BYTE A?YOUR + .BYTE A?MY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + NOSE-F + .BYTE 0 + .ENDT + +T?DOCK-OBJECT:: .TABLE ; TABLE FOR OBJECT DOCK-OBJECT + .STRL "dock" + .PROP 4,P?SYNONYM + W?DOCK + W?PIER + .PROP 5,P?ADJECTIVE + .BYTE A?SAND-COVERED + .BYTE A?SMALL + .BYTE A?BABY + .BYTE A?ABANDONED + .BYTE A?ROYAL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DOCK-OBJECT-F + .BYTE 0 + .ENDT + +T?SWORD:: .TABLE ; TABLE FOR OBJECT SWORD + .STRL "" + .PROP 6,P?SYNONYM + W?SWORD + W?SWORDS + W?BLADE + .PROP 3,P?ADJECTIVE + .BYTE A?GLISTENING + .BYTE A?MY + .BYTE A?YOUR + .PROP 2,P?SDESC ; STRING PROPERTY + STR?385 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?386 + .BYTE 0 + .ENDT + +T?ORPHANAGE-FOYER:: .TABLE ; TABLE FOR OBJECT ORPHANAGE-FOYER + .STRL "Orphanage Foyer" + .PROP 3,P?NE + .WORD IGLOO-ENTER-F + .BYTE 0 + .PROP 5,P?SOUTH ; DOOR EXIT + .BYTE SOUTH-POLE ; ROOM NAME + .BYTE ORPHANAGE-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 3,P?NW + .WORD IGLOO-ENTER-F + .BYTE 0 + .PROP 5,P?OUT ; DOOR EXIT + .BYTE SOUTH-POLE ; ROOM NAME + .BYTE ORPHANAGE-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ORPHANAGE-FOYER-F + .PROP 3,P?GLOBAL + .BYTE ORPHANAGE-DOOR + .BYTE IGLOO + .BYTE WINDOW + .PROP 2,P?THINGS ; STRING PROPERTY + T?54 + .BYTE 0 + .ENDT + +T?STABLE:: .TABLE ; TABLE FOR OBJECT STABLE + .STRL "Stable" + .PROP 3,P?NORTH + .WORD HOLD-ENTER-F + .BYTE 0 + .PROP 3,P?WEST + .WORD LONG-CORRIDOR-ENTER-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + STABLE-F + .PROP 1,P?GLOBAL + .BYTE BATTLESHIP + .BYTE 0 + .ENDT + +T?TOILET:: .TABLE ; TABLE FOR OBJECT TOILET + .STRL "toilet" + .PROP 2,P?SYNONYM + W?TOILET + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TOILET-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?BURIAL-CHAMBER:: .TABLE ; TABLE FOR OBJECT BURIAL-CHAMBER + .STRL "Burial Chamber" + .PROP 1,P?NORTH + .BYTE CATACOMBS + .PROP 1,P?OUT + .BYTE CATACOMBS + .PROP 1,P?GLOBAL + .BYTE WATER + .PROP 2,P?THINGS ; STRING PROPERTY + T?49 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?311 + .BYTE 0 + .ENDT + +T?YOUNG-WOMAN:: .TABLE ; TABLE FOR OBJECT YOUNG-WOMAN + .STRL "" + .PROP 8,P?SYNONYM + W?WOMAN + W?MAN + W?ELYSIA + W?ELYSIUM + .PROP 1,P?ADJECTIVE + .BYTE A?YOUNG + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + YOUNG-WOMAN-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?394 + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + YOUNG-WOMAN-F + .BYTE 0 + .ENDT + +T?AMONG-THE-DUNES:: .TABLE ; TABLE FOR OBJECT AMONG-THE-DUNES + .STRL "Among the Dunes" + .PROP 1,P?SOUTH + .BYTE BABY-DOCK + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + AMONG-THE-DUNES-F + .PROP 1,P?GLOBAL + .BYTE DUNES + .PROP 2,P?LDESC ; STRING PROPERTY + STR?260 + .BYTE 0 + .ENDT + +T?TUNDRA:: .TABLE ; TABLE FOR OBJECT TUNDRA + .STRL "Edge of Polar Ice Cap" + .PROP 1,P?NORTH + .BYTE ICY-DOCK + .PROP 1,P?SE + .BYTE PENGUIN-PARK + .PROP 1,P?SOUTH + .BYTE ALLUSION-ROOM + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TUNDRA-F + .BYTE 0 + .ENDT + +T?THRONE-ROOM:: .TABLE ; TABLE FOR OBJECT THRONE-ROOM + .STRL "Throne Room" + .PROP 1,P?NORTH + .BYTE ROYAL-DOCKS + .PROP 1,P?SOUTH + .BYTE RUINED-CASTLE-1 + .PROP 1,P?OUT + .BYTE RUINED-CASTLE-1 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + THRONE-ROOM-F + .PROP 2,P?THINGS ; STRING PROPERTY + T?32 + .BYTE 0 + .ENDT + +T?SPACE-YACHT:: .TABLE ; TABLE FOR OBJECT SPACE-YACHT + .STRL "Space Yacht" + .PROP 3,P?EAST + .WORD PRIVATE-CABIN-ENTER-F + .BYTE 0 + .PROP 1,P?SOUTH + .BYTE IN-SPACE + .PROP 3,P?IN + .WORD PRIVATE-CABIN-ENTER-F + .BYTE 0 + .PROP 1,P?OUT + .BYTE IN-SPACE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SPACE-YACHT-F + .PROP 1,P?GLOBAL + .BYTE PASSENGER-SHIP + .PROP 2,P?LDESC ; STRING PROPERTY + STR?395 + .BYTE 0 + .ENDT + +T?PENGUINS:: .TABLE ; TABLE FOR OBJECT PENGUINS + .STRL "mass of penguins" + .PROP 8,P?SYNONYM + W?PENGUIN + W?MASS + W?BIRD + W?BIRDS + .PROP 1,P?ADJECTIVE + .BYTE A?WADDLING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PENGUINS-F + .BYTE 0 + .ENDT + +T?FLYTRAP:: .TABLE ; TABLE FOR OBJECT FLYTRAP + .STRL "Venus flytrap" + .PROP 4,P?SYNONYM + W?FLYTRAP + W?LETTUCE + .PROP 2,P?ADJECTIVE + .BYTE A?VENUS + .BYTE A?LARGE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FLYTRAP-F + .BYTE 0 + .ENDT + +T?BASEMENT:: .TABLE ; TABLE FOR OBJECT BASEMENT + .STRL "Basement" + .PROP 1,P?UP + .BYTE END-OF-HALLWAY + .PROP 1,P?OUT + .BYTE END-OF-HALLWAY + .PROP 1,P?GLOBAL + .BYTE STAIRS + .PROP 2,P?THINGS ; STRING PROPERTY + T?38 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?408 + .BYTE 0 + .ENDT + +T?ORANGE-BUTTON:: .TABLE ; TABLE FOR OBJECT ORANGE-BUTTON + .STRL "huge orange button" + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 2,P?ADJECTIVE + .BYTE A?LARGE + .BYTE A?ORANGE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ORANGE-BUTTON-F + .BYTE 0 + .ENDT + +T?HAREM:: .TABLE ; TABLE FOR OBJECT HAREM + .STRL "Harem" + .PROP 1,P?EAST + .BYTE AUDIENCE-CHAMBER + .PROP 1,P?OUT + .BYTE AUDIENCE-CHAMBER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HAREM-F + .PROP 1,P?GLOBAL + .BYTE ODOR + .PROP 2,P?THINGS ; STRING PROPERTY + T?44 + .PROP 2,P?ODOR ; STRING PROPERTY + STR?294 + .PROP 2,P?ODOR-NUMBER ; INTEGER/CONSTANT PROPERTY + + 4 + .BYTE 0 + .ENDT + +T?SALESMAN:: .TABLE ; TABLE FOR OBJECT SALESMAN + .STRL "salesman" + .PROP 4,P?SYNONYM + W?SALESMAN + W?MAN + .PROP 1,P?ADJECTIVE + .BYTE A?SALES + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SALESMAN-F + .PROP 2,P?LDESC ; STRING PROPERTY + STR?353 + .BYTE 0 + .ENDT + +T?CREAM:: .TABLE ; TABLE FOR OBJECT CREAM + .STRL "" + .PROP 8,P?SYNONYM + W?JAR + W?OINTMENT + W?LOTION + W?CREAM + .PROP 2,P?ADJECTIVE + .BYTE A?UNTANG + .BYTE A?UNANGL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CREAM-F + .PROP 2,P?SDESC ; STRING PROPERTY + STR?343 + .PROP 2,P?NO-T-DESC ; STRING PROPERTY + STR?344 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 4 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?345 + .BYTE 0 + .ENDT + +T?AUDIENCE-CHAMBER:: .TABLE ; TABLE FOR OBJECT AUDIENCE-CHAMBER + .STRL "Audience Chamber" + .PROP 3,P?SOUTH + .WORD AUDIENCE-CHAMBER-EXIT-F + .BYTE 0 + .PROP 3,P?SW + .WORD AUDIENCE-CHAMBER-EXIT-F + .BYTE 0 + .PROP 3,P?WEST + .WORD AUDIENCE-CHAMBER-EXIT-F + .BYTE 0 + .PROP 3,P?IN + .WORD AUDIENCE-CHAMBER-EXIT-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + AUDIENCE-CHAMBER-F + .PROP 2,P?THINGS ; STRING PROPERTY + T?41 + .BYTE 0 + .ENDT + +T?GARDEN:: .TABLE ; TABLE FOR OBJECT GARDEN + .STRL "Garden" + .PROP 1,P?WEST + .BYTE TEENSY-WEENSY-HOUSE + .PROP 1,P?IN + .BYTE TEENSY-WEENSY-HOUSE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GARDEN-F + .PROP 2,P?GLOBAL + .BYTE HOLE + .BYTE HOUSE + .PROP 2,P?THINGS ; STRING PROPERTY + T?63 + .PROP 2,P?HOLE-DESTINATION ; ATOM (CONSTANT) PROPERTY + + END-OF-HALLWAY + .BYTE 0 + .ENDT + +T?PSEUDO-OBJECT:: .TABLE ; TABLE FOR OBJECT PSEUDO-OBJECT + .STRL "pseudo" + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ME-F + .BYTE 0 + .ENDT + + +; 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 CATACOMBS-OPEN=0 + .GVAR P-PHR=0 + .GVAR YOULL-HAVE-TO=STR?141,STRING + .GVAR STICK-IT-IN-POCKET=STR?145,STRING + .GVAR SIDEKICK-TRIP-FLAG=0 + .GVAR HUH=STR?186,STRING + .GVAR P-BUTS=T?18,TABLE + .GVAR YOU-CANT-SEE-ANY=STR?139,STRING + .GVAR MISSIONARY-ONLY=STR?170,STRING + .GVAR ION-DEATH-COUNTER=0 + .GVAR PART-OF-VIZICOMM=STR?174,STRING + .GVAR PERIOD-CR=STR?175,STRING + .GVAR HAND-DWINDLES=STR?199,STRING + .GVAR RANK=0 + .GVAR P-HIM-OBJECT=0 + .GVAR P-ACLAUSE=0 + .GVAR HO-HUM-LIST=T?26,TABLE + .GVAR MORE-ROYAL-BLOOD=STR?178,STRING + .GVAR TWICE-AS-LOUD=STR?180,STRING + .GVAR P-SLOCBITS=0 + .GVAR P-MATCHLEN=0 + .GVAR P-ADVERB=0 + .GVAR P-MULT=0 + .GVAR CLOCK-WAIT=0 + .GVAR RIDDLE-ANSWERED=0 + .GVAR P-NAMW=T?14,TABLE + .GVAR CATACOMBS-TABLE=T?46,TABLE + .GVAR P-OTBL=T?11,TABLE + .GVAR C-MAXINTS=60 + .GVAR P-NAM=0 + .GVAR PINNED=STR?162,STRING + .GVAR ONLY-WITH-A-RAKE=STR?190,STRING + .GVAR C-TABLE=T?1,TABLE + .GVAR RAFT-WAIT=0 + .GVAR CIRCLE-BLACK=1 + .GVAR SALESMANISMS=T?56,TABLE + .GVAR P-XNAM=0 + .GVAR P-MOBY-FOUND=0 + .GVAR OOPS-TABLE=T?9,TABLE + .GVAR P-WALK-DIR=0 + .GVAR P-ANAM=0 + .GVAR CLOCK-HAND=0 + .GVAR SULTAN-COUNTER=0 + .GVAR SENILITY-STRIKES=STR?173,STRING + .GVAR LAST-PSEUDO-LOC=0 + .GVAR MISSING-PART=0 + .GVAR MAD-SCIENTIST-COUNTER=0 + .GVAR PLAZA-COUNTER=0 + .GVAR P-CONT=0 + .GVAR SIDEKICKS-BODY-TIED-TO-SLAB=0 + .GVAR INT-MAX=429 + .GVAR P-PRSI=T?17,TABLE + .GVAR SIDEKICK-IONIZED=0 + .GVAR AGAIN-LEXV=T?4,TABLE + .GVAR VERBOSITY=1 + .GVAR BARGE-UNDER-POWER=0 + .GVAR P-DIRECTION=0 + .GVAR PFFT=STR?196,STRING + .GVAR ION-TABLE=T?35,TABLE + .GVAR RESERVE-INBUF=T?7,TABLE + .GVAR CANT-GO=STR?167,STRING + .GVAR LEAVE-ME-ALONE=STR?198,STRING + .GVAR IMPOSSIBLE-LIST=T?28,TABLE + .GVAR MAD-SCIENTIST-DESCS=T?57,TABLE + .GVAR SALESMAN-REFUSALS=T?55,TABLE + .GVAR THORBAST-ATTACKED=0 + .GVAR HOLE-MOVE=0 + .GVAR LIT=1 + .GVAR NOUN-MISSING=STR?171,STRING + .GVAR FOLLOW-FLAG=0 + .GVAR COTTON-BALLS-SEEN=0 + .GVAR FREE-MOVE-COUNTER=0 + .GVAR BEM-COUNTER=0 + .GVAR P-VTBL=T?12,TABLE + .GVAR P-XADJN=0 + .GVAR NO-STEERING=STR?195,STRING + .GVAR RIGHT-PART=0 + .GVAR MUFFLED=STR?149,STRING + .GVAR P-ADJW=T?15,TABLE + .GVAR PARTS-LIST=T?68,TABLE + .GVAR RESERVE-LEXV=T?5,TABLE + .GVAR P-MOBY-FLAG=0 + .GVAR SPACESHIP-SCENE-STATUS=0 + .GVAR BATTLESHIP-DESC=STR?155,STRING + .GVAR P-ADJ=0 + .GVAR EXT-MAX=9309 + .GVAR NEARER-DOCK=0 + .GVAR HAREM-GUARD-COUNTER=0 + .GVAR MATRON-DESC=STR?335,STRING + .GVAR P-LEN=0 + .GVAR SHEET-TIED=0 + .GVAR DOORS-MARKED=STR?202,STRING + .GVAR PARENTS-KILLED=0 + .GVAR C-INTS=60 + .GVAR P-CCTBL=T?2,TABLE + .GVAR P-LEXV=T?3,TABLE + .GVAR OOZY-WITH-SLIME=STR?157,STRING + .GVAR NOTHING-NEW=STR?189,STRING + .GVAR FEMALE-RANKS=T?23,TABLE + .GVAR DISCOVERED=0 + .GVAR NO-VERB=STR?192,STRING + .GVAR DISCUSSION-TOPICS=T?45,TABLE + .GVAR PRIVATE-BOUDOIR=STR?151,STRING + .GVAR AGE=-1 + .GVAR AWAITING-FAKE-ORPHAN=0 + .GVAR IMPATIENCE-COUNTER=0 + .GVAR TOO-DARK=STR?134,STRING + .GVAR SIDEKICK-EXPLODED=0 + .GVAR PRSO=0 + .GVAR CASTLES-SEEN=0 + .GVAR DONT-PRINT-VEHICLE=0 + .GVAR SUGAR-RUSH=0 + .GVAR P-MERGED=0 + .GVAR P-GWIMBIT=0 + .GVAR RAFT-LOC-NUM=10 + .GVAR SEEN-EXAMINATION-ROOM=0 + .GVAR YOU-CANT=STR?140,STRING + .GVAR GIMME-TROUBLE=STR?179,STRING + .GVAR FAILED=STR?184,STRING + .GVAR PROPRIETOR-STIRS=STR?160,STRING + .GVAR P-SYNTAX=0 + .GVAR CATACOMBS-WATER-DESC=STR?142,STRING + .GVAR ITS-ENGRAVED=STR?143,STRING + .GVAR P-XADJ=0 + .GVAR LONG-CORRIDOR-LOC=1 + .GVAR GONE-APE=0 + .GVAR SIDEKICK-DROWNED=0 + .GVAR P-AADJ=0 + .GVAR ELLIPSIS=STR?176,STRING + .GVAR PRSA=0 + .GVAR P-PRSA-WORD=0 + .GVAR YOU-SEE=STR?137,STRING + .GVAR SHEET-HANGING=0 + .GVAR TRELLIS-TOO-WIDE=STR?197,STRING + .GVAR BARGE-LOC-NUM=1 + .GVAR P-PRSO=T?16,TABLE + .GVAR HAND-COVER=0 + .GVAR STARING-INTO-VOID=STR?200,STRING + .GVAR SIDEKICK-PARTS=T?24,TABLE + .GVAR YNH=STR?135,STRING + .GVAR HOLE-OPEN=0 + .GVAR P-AND=0 + .GVAR HANDS-OVER-EYES=STR?177,STRING + .GVAR P-ONEOBJ=0 + .GVAR THERES-NOTHING=STR?136,STRING + .GVAR ONLY-ONE-THING-IN-COMPARTMENT=STR?181,STRING + .GVAR TRAY-DELIVERED=0 + .GVAR MALE=0 + .GVAR EXCUSES=T?43,TABLE + .GVAR P-INBUF=T?6,TABLE + .GVAR FLYTRAP-COUNTER=0 + .GVAR IT-SEEMS-THAT=STR?138,STRING + .GVAR WRONG-ANSWERS=T?42,TABLE + .GVAR P-MERGE=T?19,TABLE + .GVAR P-WON=0 + .GVAR TITS-COUNTER=0 + .GVAR VIZICOMM-DESC=STR?158,STRING + .GVAR FIGHT-COUNTER=0 + .GVAR HORSE-CANT-FIT=STR?183,STRING + .GVAR CIRCLE-FADED=0 + .GVAR P-OVTBL=T?13,TABLE + .GVAR DONT-WANT-TO=STR?193,STRING + .GVAR LOOK-AROUND=STR?165,STRING + .GVAR P-ITBL=T?10,TABLE + .GVAR SIGN-AND-STAIRS=STR?159,STRING + .GVAR QUOTE-FLAG=0 + .GVAR LGOP-CAPS=STR?144,STRING + .GVAR ATTACK-FLEET=STR?148,STRING + .GVAR TORCH-LIFE=5 + .GVAR DISARM-PROB=0 + .GVAR P-TABLE=0 + .GVAR P-GETFLAGS=0 + .GVAR TOO-LATE=0 + .GVAR LEAVES-PLACED=0 + .GVAR P-OCL2=T?21,TABLE + .GVAR CANT-FROM-HERE=STR?166,STRING + .GVAR OOPS-INBUF=T?8,TABLE + .GVAR HAREM-PROB=0 + .GVAR MOORING-ON=1 + .GVAR PENGUINS-PARTED=0 + .GVAR P-NUMBER=0 + .GVAR 45-DEGREE-ANGLE=STR?152,STRING + .GVAR LOOKS-UNAPPETIZING=STR?191,STRING + .GVAR P-OFLAG=0 + .GVAR EVOLVED=STR?156,STRING + .GVAR WINNER=0 + .GVAR WRITING-CHANGES=STR?161,STRING + .GVAR P-ADJN=0 + .GVAR CHILL-COUNTER=0 + .GVAR PLEASURE-PALACE-DESC=STR?147,STRING + .GVAR HOLDING-IT=STR?168,STRING + .GVAR AGAIN-DIR=0 + .GVAR CANT-SMELL=STR?169,STRING + .GVAR WIFE-FUCKED=0 + .GVAR BOUGHT-AND-SOLD=STR?154,STRING + .GVAR WASTE-LIST=T?29,TABLE + .GVAR HIT-RETURN=STR?153,STRING + .GVAR NOTHING-HAPPENS=STR?182,STRING + .GVAR AWAITING-REPLY=0 + .GVAR GORILLA-EXAMINED=0 + .GVAR P-IT-OBJECT=0 + .GVAR SEX-CHOSEN=0 + .GVAR P-OCL1=T?20,TABLE + .GVAR ABOUT-TO-KISS=STR?150,STRING + .GVAR YECHH=STR?187,STRING + .GVAR CATACOMBS-LOC=1 + .GVAR PRSI=0 + .GVAR RESERVE-PTR=0 + .GVAR MALE-RANKS=T?22,TABLE + .GVAR WIFE-NUMBER=0 + .GVAR SPREAD-APART=STR?146,STRING + .GVAR SIDEKICK-EATEN=0 + .GVAR FOLLOWS=T?25,TABLE + .GVAR ONLY-BLACKNESS=STR?172,STRING + .GVAR ALREADY-IS=STR?188,STRING + .GVAR RAFT-HELD=0 + .GVAR BODY-TIED-TO-SLAB=0 + .GVAR BARGE-WAIT=0 + .GVAR HYPE-WORD=T?70,TABLE + .GVAR KEEP-IT-FROM-FLOATING-AWAY=STR?163,STRING + .GVAR P-NOT-HERE=0 + .GVAR ALREADY-IN-MODE=STR?164,STRING + .GVAR CHOICE-NUMBER=0 + .GVAR NAUGHTY-LEVEL=1 + .GVAR OK=STR?185,STRING + .GVAR URGE-COUNTER=0 + .GVAR CELL-GRIPE=0 + .GVAR P-NCN=0 + .GVAR YUK-LIST=T?27,TABLE + .GVAR P-HER-OBJECT=0 + .GVAR CHOCOLATE-IDENTIFIED=0 + .GVAR DEXTERITY=STR?194,STRING + .GVAR PREPOSITIONS=PRTBL,TABLE + .GVAR ACTIONS=ATBL,TABLE + .GVAR PREACTIONS=PATBL,TABLE + .GVAR VERBS=VTBL,TABLE + .ENDT + +GLOEND:: + + +; IMPURE TABLES ARE DEFINED HERE + +IMPTBL:: + +T?1:: .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 + .ENDT + +T?2:: .TABLE + 0 + 0 + 0 + .ENDT + +T?3:: .TABLE + .BYTE 60 + .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 + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?4:: .TABLE + .BYTE 60 + .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 + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?5:: .TABLE + .BYTE 60 + .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 + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?6:: .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?7:: .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?8:: .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?9:: .TABLE + 0 + 0 + 0 + 0 + .ENDT + +T?10:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?11:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?12:: .TABLE + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?13:: .TABLE + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?14:: .TABLE + 0 + 0 + .ENDT + +T?15:: .TABLE + 0 + 0 + .ENDT + +T?16:: .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?17:: .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?18:: .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?19:: .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?20:: .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?21:: .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?22:: .TABLE + STR?15 + STR?16 + STR?17 + STR?18 + STR?19 + STR?20 + STR?21 + STR?22 + STR?23 + STR?24 + .ENDT + +T?23:: .TABLE + STR?15 + STR?25 + STR?26 + STR?27 + STR?28 + STR?29 + STR?30 + STR?31 + STR?32 + STR?33 + .ENDT + +T?24:: .TABLE + 6 + 0 + STR?97 + STR?98 + STR?99 + STR?100 + STR?101 + .ENDT + +T?25:: .TABLE + 5 + 0 + STR?102 + STR?103 + STR?104 + STR?105 + .ENDT + +T?26:: .TABLE + 4 + 0 + STR?106 + STR?107 + STR?108 + .ENDT + +T?27:: .TABLE + 5 + 0 + STR?109 + STR?110 + STR?111 + STR?112 + .ENDT + +T?28:: .TABLE + 7 + 0 + STR?113 + STR?114 + STR?115 + STR?116 + STR?117 + STR?118 + .ENDT + +T?29:: .TABLE + 6 + 0 + STR?119 + STR?120 + STR?121 + STR?122 + STR?123 + .ENDT + +T?35:: .TABLE + STR?251 + STR?251 + STR?252 + STR?253 + STR?254 + .ENDT + +T?42:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?43:: .TABLE + 4 + 0 + STR?282 + STR?283 + STR?284 + .ENDT + +T?45:: .TABLE + 6 + 0 + STR?295 + STR?296 + STR?297 + STR?298 + STR?299 + .ENDT + +T?46:: .TABLE + 0 + 0 + 99 + 0 + 0 + 99 + 0 + 2 + 80 + 0 + 3 + 0 + 0 + 3 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 4 + 0 + 0 + 2 + 0 + 2 + 0 + 0 + 0 + 3 + 0 + 5 + 0 + 0 + 0 + 99 + 0 + 0 + 0 + 0 + 6 + 4 + 99 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 7 + 0 + 5 + 99 + 0 + 0 + 0 + 0 + 0 + 99 + 6 + 0 + 8 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 7 + 0 + 0 + 99 + 0 + 9 + 0 + 0 + 0 + 0 + 0 + 10 + 0 + 11 + 8 + 0 + 0 + 9 + 0 + 10 + 0 + 0 + 10 + 0 + 0 + 0 + 0 + 12 + 0 + 0 + 0 + 9 + 99 + 0 + 0 + 0 + 13 + 0 + 0 + 0 + 0 + 11 + 99 + 0 + 0 + 0 + 0 + 12 + 0 + 0 + 14 + 0 + 99 + 0 + 0 + 0 + 0 + 15 + 99 + 0 + 0 + 0 + 13 + 0 + 0 + 0 + 0 + 16 + 0 + 14 + 0 + 0 + 0 + 0 + 17 + 0 + 15 + 0 + 16 + 0 + 0 + 16 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 18 + 0 + 0 + 40 + 0 + 15 + 0 + 99 + 0 + 19 + 0 + 0 + 0 + 17 + 0 + 0 + 0 + 0 + 18 + 22 + 20 + 0 + 0 + 0 + 0 + 0 + 21 + 21 + 0 + 0 + 19 + 0 + 0 + 0 + 0 + 0 + 0 + 20 + 0 + 50 + 0 + 0 + 0 + 20 + 0 + 0 + 0 + 0 + 19 + 0 + 0 + 0 + 0 + 50 + 0 + 23 + 0 + 25 + 24 + 0 + 0 + 0 + 0 + 0 + 22 + 0 + 25 + 0 + 0 + 0 + 0 + 0 + 23 + 99 + 0 + 0 + 0 + 0 + 0 + 23 + 24 + 0 + 26 + 0 + 0 + 0 + 60 + 25 + 27 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 99 + 28 + 26 + 0 + 0 + 0 + 0 + 27 + 0 + 29 + 29 + 0 + 0 + 0 + 0 + 0 + 28 + 0 + 0 + 28 + 70 + 0 + 0 + 0 + 0 + .ENDT + +T?55:: .TABLE + 4 + 0 + STR?354 + STR?355 + STR?356 + .ENDT + +T?56:: .TABLE + 5 + 0 + STR?357 + STR?358 + STR?359 + STR?360 + .ENDT + +T?57:: .TABLE + STR?361 + STR?362 + STR?362 + STR?363 + .ENDT + +T?68:: .TABLE + BLENDER + RUBBER-HOSE + COTTON-BALLS + EIGHTY-TWO-DEGREE-ANGLE + HEADLIGHT + MOUSE + PHOTO + PHONE-BOOK + .ENDT + +T?70:: .TABLE + STR?421 + STR?422 + STR?423 + STR?424 + STR?425 + STR?426 + STR?427 + STR?428 + .ENDT + + +; END OF PURENESS + +IMPURE:: + + + +; VERB TABLE IS DEFINED HERE + +VTBL:: .TABLE + ST?KISS + ST?APPROA + ST?SKIP + ST?RAPE + ST?WHIP + ST?VERBOSE + ST?WALK + ST?STICK + ST?QUIT + ST?FIND + ST?HEAR + ST?YES + ST?ZZMGCK + ST?UNCOVER + ST?SINK + ST?UNLOCK + ST?READ + ST?SAY + ST?JUMP + ST?POUR + ST?WAIT + ST?TAKE + ST?NO + ST?SUCK + ST?COUNT + ST?SHIT + ST?SIGH + ST?RAISE + ST?CALL + ST?FOLLOW + ST?SUCKLE + ST?CATCH + ST?VERSION + ST?#UNRECORD + ST?LIGHT + ST?LIE + ST?MOVE + ST?GIDDYAP + ST?MEASURE + ST?LET + ST?PLAY + ST?OPEN + ST?TASTE + ST?RELIEVE + ST?BUY + ST?MARRY + ST?TOUCH + ST?#COMMAND + ST?BLOW + ST?LIMBER + ST?WRAP + ST?KNOCK + ST?INVENT + ST?PICK + ST?LAND + ST?DEFLATE + ST?BOARD + ST?#RANDOM + ST?APPLY + ST?MASTURBATE + ST?LOVE + ST?STAND + ST?LISTEN + ST?HISS + ST?RAKE + ST?TIE + ST?WHERE + ST?PASS + ST?SHOW + ST?TAP + ST?SAVE + ST?HELP + ST?TELL + ST?THROW + ST?FEED + ST?DRESS + ST?LOWER + ST?TALK + ST?USE + ST?HIDE + ST?SHAKE + ST?ATTACK + ST?RESTOR + ST?ENTER + ST?THANKS + ST?SEARCH + ST?PIN + ST?WEAR + ST?PAY + ST?DISEMBARK + ST?KWEEPA + ST?SWIM + ST?UNTIE + ST?BEND + ST?WASH + ST?CIRCLE + ST?CHEER + ST?STIMULATE + ST?UNSCRIPT + ST?SUGGESTIVE + ST?PUSH + ST?RUB + ST?SUPER + ST?SIT + ST?RESTAR + ST?INFLATE + ST?APPLAUD + ST?UNDRES + ST?VOMIT + ST?FUCK + ST?REACH + ST?DIG + ST?SCORE + ST?TAME + ST?SMEAR + ST?LAUGH + ST?COVER + ST?STAIN + ST?COME + ST?SCAT + ST?LOOK + ST?EMPTY + ST?RIP + ST?CAST + ST?CLICK + ST?DROP + ST?PEE + ST?ROLL + ST?KNEEL + ST?LEAVE + ST?LICK + ST?HAND + ST?COPULATE + ST?SCRIPT + ST?$VERIFY + ST?EXTINGUISH + ST?SWING + ST?DESCEN + ST?SMELL + ST?BRIEF + ST?BREATHE + ST?DIAGNOSE + ST?SLEEP + ST?STATUS + ST?WAKE + ST?DRINK + ST?REMOVE + ST?ANSWER + ST?WHAT + ST?YELL + ST?PHONE + ST?LOCK + ST?BURN + ST?KICK + ST?BITE + ST?POINT + ST?TURN + ST?#RECORD + ST?CROSS + ST?START + ST?MAKE + ST?CLOSE + ST?GO + ST?SLIDE + ST?EXIT + ST?EXAMINE + ST?BARTER + ST?EAT + ST?FILL + ST?LEAN + ST?JERK + ST?CLIMB + ST?FLUSH + ST?LAUNCH + ST?RETURN + ST?DECODE + ST?DEMOLI + ST?MOAN + ST?UNROLL + ST?SLICE + ST?LEWD + ST?ASK + ST?HELLO + .ENDT + +; SYNTAX DEFINITION TABLES ARE DEFINED HERE + +ST?KISS:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KISS-ON + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?KISS + .ENDT + +ST?APPROA:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-TO + .ENDT + +ST?SKIP:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SKIP + .ENDT + +ST?RAPE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RAPE + .ENDT + +ST?WHIP:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SHAVE + .BYTE V?WHIP + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WHIP + .ENDT + +ST?VERBOSE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?VERBOSE + .ENDT + +ST?WALK:: .TABLE + .BYTE 15 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?AWAY + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAVE + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-TO + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-UP + .BYTE 1 ;OBJECTS + .BYTE PR?BEHIND + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HIDE + .BYTE 1 ;OBJECTS + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CRAWL-UNDER + .BYTE 1 ;OBJECTS + .BYTE PR?AROUND + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-AROUND + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND-ON + .BYTE 1 ;OBJECTS + .BYTE PR?ACROSS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-AROUND + .ENDT + +ST?STICK:: .TABLE + .BYTE 17 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AGAINST + .BYTE 0 + .BYTE 0 + .BYTE SHAVE + .BYTE 0 + .BYTE V?PUT-AGAINST + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUT-TO + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?PUT-NEAR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?BEFORE + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?PUT-NEAR + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE ONBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?OFF + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE SMANY + .BYTE 0 + .BYTE V?PUT-THROUGH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE SMANY + .BYTE 0 + .BYTE V?PUT-THROUGH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?BEHIND + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUT-BEHIND + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE WEARBIT + .BYTE 0 + .BYTE SHAVE + .BYTE 0 + .BYTE V?WEAR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUT-UNDER + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SHAVE + .BYTE 0 + .BYTE V?DROP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ACROSS + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AROUND + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT + .ENDT + +ST?QUIT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?QUIT + .ENDT + +ST?FIND:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FIND + .ENDT + +ST?HEAR:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LISTEN + .ENDT + +ST?YES:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?YES + .ENDT + +ST?ZZMGCK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ANSWER-KLUDGE + .ENDT + +ST?UNCOVER:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?UNCOVER + .ENDT + +ST?SINK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SINK + .ENDT + +ST?UNLOCK:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SHAVE + .BYTE V?UNLOCK + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?UNLOCK + .ENDT + +ST?READ:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE READBIT + .BYTE 0 + .BYTE STAKE + .BYTE 0 + .BYTE V?READ + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?THROUGH + .BYTE READBIT + .BYTE 0 + .BYTE STAKE + .BYTE 0 + .BYTE V?READ + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE READBIT + .BYTE 0 + .BYTE STAKE + .BYTE 0 + .BYTE V?READ + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE READBIT + .BYTE 0 + .BYTE STAKE + .BYTE 0 + .BYTE V?READ + .ENDT + +ST?SAY:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?USE-QUOTES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SAY + .ENDT + +ST?JUMP:: .TABLE + .BYTE 13 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP-OFF + .BYTE 1 ;OBJECTS + .BYTE PR?ACROSS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND-ON + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP-OFF + .BYTE 1 ;OBJECTS + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP-OFF + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?ACROSS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP + .BYTE 1 ;OBJECTS + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAP + .ENDT + +ST?POUR:: .TABLE + .BYTE 5 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?POUR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?POUR + .BYTE 2 ;OBJECTS + .BYTE PR?OUT + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?POUR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?POUR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?POUR + .ENDT + +ST?WAIT:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WAIT-FOR + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WAIT + .ENDT + +ST?TAKE:: .TABLE + .BYTE 19 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?DRUNK + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?GET-DRUNK + .BYTE 1 ;OBJECTS + .BYTE PR?SHIT + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TAKE-A-SHIT + .BYTE 1 ;OBJECTS + .BYTE PR?LEAK + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TAKE-A-LEAK + .BYTE 1 ;OBJECTS + .BYTE PR?PISS + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TAKE-A-LEAK + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG + .BYTE 0 + .BYTE V?DISEMBARK + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG + .BYTE 0 + .BYTE V?DISEMBARK + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TAKE-OFF + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE SIR+SC+SMANY + .BYTE SHAVE + .BYTE V?TAKE-WITH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SIR+SC+SMANY + .BYTE 0 + .BYTE V?TAKE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SIR+SC+SMANY + .BYTE 0 + .BYTE V?TAKE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE SIR+SC+SMANY + .BYTE 0 + .BYTE V?TAKE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE SC+SIR+SMANY + .BYTE 0 + .BYTE V?TAKE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE SC+SIR+SMANY + .BYTE 0 + .BYTE V?TAKE + .BYTE 1 ;OBJECTS + .BYTE PR?UNDRES + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?GET-UNDRESSED + .BYTE 1 ;OBJECTS + .BYTE PR?DRESSE + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?GET-DRESSED + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?BOARD + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?BOARD + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE TAKEBIT + .BYTE 0 + .BYTE SOG+SIR+SMANY + .BYTE 0 + .BYTE V?TAKE + .ENDT + +ST?NO:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?NO + .ENDT + +ST?SUCK:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SUCK + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SUCK + .ENDT + +ST?COUNT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?COUNT + .ENDT + +ST?SHIT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SHIT + .ENDT + +ST?SIGH:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SIGH + .ENDT + +ST?RAISE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RAISE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RAISE + .ENDT + +ST?CALL:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CALL + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CALL + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CALL + .ENDT + +ST?FOLLOW:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FOLLOW + .ENDT + +ST?SUCKLE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SUCKLE + .ENDT + +ST?CATCH:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CATCH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CATCH + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CATCH + .ENDT + +ST?VERSION:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?VERSION + .ENDT + +ST?#UNRECORD:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$UNRECORD + .ENDT + +ST?LIGHT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE LIGHTBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?ON + .ENDT + +ST?LIE:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LIE-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LIE-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LIE-DOWN + .ENDT + +ST?MOVE:: .TABLE + .BYTE 7 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MOVE + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MOVE + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?RAISE + .BYTE 1 ;OBJECTS + .BYTE PR?AROUND + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-AROUND + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUSH-DIR + .BYTE 1 ;OBJECTS + .BYTE PR?APART + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BEND + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?MOVE + .ENDT + +ST?GIDDYAP:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?GIDDYAP + .ENDT + +ST?MEASURE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MEASURE + .ENDT + +ST?LET:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?GO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SHAVE + .BYTE 0 + .BYTE V?DROP + .ENDT + +ST?PLAY:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TOUCH + .ENDT + +ST?OPEN:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE DOORBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE SOG+SIR+SH+SC+SHAVE + .BYTE V?OPEN + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE DOORBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?OPEN + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE DOORBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?OPEN + .ENDT + +ST?TASTE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TASTE + .ENDT + +ST?RELIEVE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RELIEVE + .ENDT + +ST?BUY:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BUY-WITH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BUY + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BUY + .ENDT + +ST?MARRY:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MARRY + .ENDT + +ST?TOUCH:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TOUCH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TOUCH + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TOUCH + .ENDT + +ST?#COMMAND:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$COMMAND + .ENDT + +ST?BLOW:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE ONBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?OFF + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?INFLATE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BLOW + .ENDT + +ST?LIMBER:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LIMBER + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LIMBER + .ENDT + +ST?WRAP:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE V?SWRAP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AROUND + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?WRAP + .ENDT + +ST?KNOCK:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?KILL + .BYTE 1 ;OBJECTS + .BYTE PR?AT + .BYTE 0 + .BYTE DOORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KNOCK + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE DOORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KNOCK + .ENDT + +ST?INVENT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?INVENTORY + .ENDT + +ST?PICK:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE TAKEBIT + .BYTE 0 + .BYTE SOG+SMANY + .BYTE 0 + .BYTE V?PICK-UP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PICK + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PICK + .ENDT + +ST?LAND:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LAND + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LAND + .ENDT + +ST?DEFLATE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SHAVE + .BYTE V?DEFLATE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DEFLATE + .ENDT + +ST?BOARD:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BOARD-DIR + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?BOARD + .ENDT + +ST?#RANDOM:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$RANDOM + .ENDT + +ST?APPLY:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT-ON + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+STAKE + .BYTE 0 + .BYTE V?APPLY + .ENDT + +ST?MASTURBATE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MASTURBATE + .ENDT + +ST?LOVE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOVE + .ENDT + +ST?STAND:: .TABLE + .BYTE 5 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?BEHIND + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HIDE + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND-ON + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND-ON + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAND + .ENDT + +ST?LISTEN:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LISTEN + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LISTEN + .ENDT + +ST?HISS:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HISS + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HISS + .ENDT + +ST?RAKE:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SHAVE + .BYTE V?RAKE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RAKE + .ENDT + +ST?TIE:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?TOGETHER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TIE-TOGETHER + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TIE-TOGETHER + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AROUND + .BYTE 0 + .BYTE 0 + .BYTE SH + .BYTE 0 + .BYTE V?TIE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE SH + .BYTE 0 + .BYTE V?TIE + .ENDT + +ST?WHERE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WHERE + .ENDT + +ST?PASS:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE ACTORBIT + .BYTE SMANY+SH+SHAVE + .BYTE SOG + .BYTE V?GIVE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PASS + .ENDT + +ST?SHOW:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE V?SSHOW + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE ACTORBIT + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?SHOW + .ENDT + +ST?TAP:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KNOCK + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TOUCH + .ENDT + +ST?SAVE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SAVE-SOMETHING + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SAVE + .ENDT + +ST?HELP:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SAVE-SOMETHING + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HELP + .ENDT + +ST?TELL:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STELL + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ABOUT + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TELL-ABOUT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE SIR + .BYTE 0 + .BYTE V?TELL + .ENDT + +ST?THROW:: .TABLE + .BYTE 10 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?THROW-UP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?PUT-THROUGH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE SOG+SIR + .BYTE V?PUT-THROUGH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE SH+SC + .BYTE V?STHROW + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE SOG+SIR + .BYTE V?THROW-TO + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE SOG+SIR + .BYTE V?THROW + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?THROW + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?PUT + .BYTE 1 ;OBJECTS + .BYTE PR?AWAY + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?THROW + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?THROW + .ENDT + +ST?FEED:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG + .BYTE SMANY+SH+SHAVE + .BYTE V?SGIVE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE ACTORBIT + .BYTE SMANY+SH+SHAVE + .BYTE SOG + .BYTE V?GIVE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FEED + .ENDT + +ST?DRESS:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DRESS + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DRESS + .ENDT + +ST?LOWER:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUT-THROUGH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUT-THROUGH + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOWER + .ENDT + +ST?TALK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE SIR + .BYTE 0 + .BYTE V?TELL + .ENDT + +ST?USE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?USE + .ENDT + +ST?HIDE:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?BEHIND + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HIDE + .BYTE 1 ;OBJECTS + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HIDE + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HIDE + .ENDT + +ST?SHAKE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SHAKE-WITH + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SHAKE + .ENDT + +ST?ATTACK:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE SH+SC+SHAVE + .BYTE V?KILL + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?KILL + .ENDT + +ST?RESTOR:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RESTORE + .ENDT + +ST?ENTER:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?IN + .ENDT + +ST?THANKS:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?THANK + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?THANK + .ENDT + +ST?SEARCH:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SEARCH + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FIND + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SEARCH + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SEARCH + .ENDT + +ST?PIN:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PIN + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PIN + .ENDT + +ST?WEAR:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE WEARBIT + .BYTE 0 + .BYTE SHAVE + .BYTE 0 + .BYTE V?WEAR + .ENDT + +ST?PAY:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE ACTORBIT + .BYTE SMANY+SH+SHAVE + .BYTE SOG + .BYTE V?GIVE + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BUY + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PAY + .ENDT + +ST?DISEMBARK:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?DISEMBARK + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DISEMBARK + .ENDT + +ST?KWEEPA:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KWEEPA + .ENDT + +ST?SWIM:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SWIM + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SWIM + .ENDT + +ST?UNTIE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR+SH+SC + .BYTE 0 + .BYTE V?UNTIE + .ENDT + +ST?BEND:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BEND + .ENDT + +ST?WASH:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CLEAN + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CLEAN + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CLEAN + .ENDT + +ST?CIRCLE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-AROUND + .ENDT + +ST?CHEER:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CHEER + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CHEER + .ENDT + +ST?STIMULATE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ON + .ENDT + +ST?UNSCRIPT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?UNSCRIPT + .ENDT + +ST?SUGGESTIVE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SUGGESTIVE + .ENDT + +ST?PUSH:: .TABLE + .BYTE 8 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUSH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUSH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUT-UNDER + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUSH-OFF + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?PUSH + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RAISE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUSH-DIR + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUSH + .ENDT + +ST?RUB:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SRUB + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RUB + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TOUCH + .ENDT + +ST?SUPER:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SUPER-BRIEF + .ENDT + +ST?SIT:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-ON + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?SIT + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-ON + .ENDT + +ST?RESTAR:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RESTART + .ENDT + +ST?INFLATE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?INFLATE + .ENDT + +ST?APPLAUD:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?APPLAUD + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?APPLAUD + .ENDT + +ST?UNDRES:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?UNDRESS + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?UNDRESS + .ENDT + +ST?VOMIT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?VOMIT + .ENDT + +ST?FUCK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FUCK + .ENDT + +ST?REACH:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?REACH-IN + .ENDT + +ST?DIG:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DIG + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DIG + .ENDT + +ST?SCORE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SCORE + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SCORE + .ENDT + +ST?TAME:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TAME + .ENDT + +ST?SMEAR:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT-ON + .ENDT + +ST?LAUGH:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LAUGH + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LAUGH + .ENDT + +ST?COVER:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE V?SPUT-ON + .ENDT + +ST?STAIN:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAIN + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STAIN + .ENDT + +ST?COME:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FOLLOW + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?COME + .ENDT + +ST?SCAT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SCAT + .ENDT + +ST?LOOK:: .TABLE + .BYTE 15 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CHASTISE + .BYTE 1 ;OBJECTS + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-OVER + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FIND + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?EXAMINE + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?EXAMINE + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?LOOK-INSIDE + .BYTE 1 ;OBJECTS + .BYTE PR?BEHIND + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-BEHIND + .BYTE 1 ;OBJECTS + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-UNDER + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-INSIDE + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-INSIDE + .BYTE 1 ;OBJECTS + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?EXAMINE + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-UP + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?AROUND + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOOK + .ENDT + +ST?EMPTY:: .TABLE + .BYTE 9 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE SHAVE+STAKE + .BYTE 0 + .BYTE V?EMPTY-FROM + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE SMANY + .BYTE SHAVE+STAKE + .BYTE V?EMPTY-FROM + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE SMANY + .BYTE SHAVE+STAKE + .BYTE V?EMPTY-FROM + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE SHAVE+STAKE + .BYTE 0 + .BYTE V?EMPTY + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SHAVE+STAKE + .BYTE 0 + .BYTE V?EMPTY + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SHAVE+STAKE + .BYTE 0 + .BYTE V?EMPTY + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE SHAVE+STAKE + .BYTE 0 + .BYTE V?EMPTY + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SHAVE+STAKE + .BYTE 0 + .BYTE V?EMPTY + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SHAVE+STAKE + .BYTE 0 + .BYTE V?EMPTY + .ENDT + +ST?RIP:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RIP + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RIP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RIP + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RIP + .ENDT + +ST?CAST:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CAST-OFF + .ENDT + +ST?CLICK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CLICK + .ENDT + +ST?DROP:: .TABLE + .BYTE 8 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?PUT-NEAR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?BEFORE + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?PUT-NEAR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT-THROUGH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT-THROUGH + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY+SHAVE + .BYTE 0 + .BYTE V?DROP + .ENDT + +ST?PEE:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PEE-IN + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PEE-IN + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PEE + .ENDT + +ST?ROLL:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUT-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUT-ON + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ROLL + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ROLL + .ENDT + +ST?KNEEL:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KNEEL + .BYTE 1 ;OBJECTS + .BYTE PR?BEFORE + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KNEEL + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KNEEL + .ENDT + +ST?LEAVE:: .TABLE + .BYTE 6 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?PUT-NEAR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?BEFORE + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?PUT-NEAR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT-ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE SH+SMANY + .BYTE 0 + .BYTE V?PUT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAVE + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAVE + .ENDT + +ST?LICK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LICK + .ENDT + +ST?HAND:: .TABLE + .BYTE 6 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?BACK + .BYTE 0 + .BYTE ACTORBIT + .BYTE SMANY+SH+SHAVE + .BYTE SOG + .BYTE V?GIVE + .BYTE 1 ;OBJECTS + .BYTE PR?BACK + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 0 + .BYTE V?RETURN + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 0 + .BYTE V?BARTER-FOR + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?GIVE-UP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE SOG + .BYTE SMANY+SH+SHAVE + .BYTE V?SGIVE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE ACTORBIT + .BYTE SMANY+SH+SHAVE + .BYTE SOG + .BYTE V?GIVE + .ENDT + +ST?COPULATE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?COPULATE + .ENDT + +ST?SCRIPT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SCRIPT + .ENDT + +ST?$VERIFY:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$VERIFY + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$VERIFY + .ENDT + +ST?EXTINGUISH:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ONBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?OFF + .ENDT + +ST?SWING:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AT + .BYTE 0 + .BYTE ACTORBIT + .BYTE SH+SC+SHAVE + .BYTE 0 + .BYTE V?SWING + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 0 + .BYTE V?SWING + .ENDT + +ST?DESCEN:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-DOWN + .ENDT + +ST?SMELL:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SMELL + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SMELL + .ENDT + +ST?BRIEF:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BRIEF + .ENDT + +ST?BREATHE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?HARD + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?INHALE + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?INHALE + .ENDT + +ST?DIAGNOSE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DIAGNOSE + .ENDT + +ST?SLEEP:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?WITH + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FUCK + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?BOARD + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?BOARD + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SLEEP + .ENDT + +ST?STATUS:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?STATUS + .ENDT + +ST?WAKE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ALARM + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ALARM + .ENDT + +ST?DRINK:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?DRINK-FROM + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?DRINK + .ENDT + +ST?REMOVE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE TAKEBIT + .BYTE 0 + .BYTE SIR+SC+SMANY + .BYTE 0 + .BYTE V?TAKE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE WORNBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?REMOVE + .ENDT + +ST?ANSWER:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?USE-QUOTES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ANSWER + .ENDT + +ST?WHAT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WHAT + .ENDT + +ST?YELL:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?YELL + .BYTE 1 ;OBJECTS + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?YELL + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?YELL + .ENDT + +ST?PHONE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PHONE + .ENDT + +ST?LOCK:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?LOCK + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LOCK + .ENDT + +ST?BURN:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE PR?UP + .BYTE PR?WITH + .BYTE BURNBIT + .BYTE 0 + .BYTE 0 + .BYTE SHAVE + .BYTE V?BURN + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE BURNBIT + .BYTE 0 + .BYTE 0 + .BYTE SHAVE + .BYTE V?BURN + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE BURNBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BURN + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE BURNBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BURN + .ENDT + +ST?KICK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KICK + .ENDT + +ST?BITE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BITE + .ENDT + +ST?POINT:: .TABLE + .BYTE 5 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?POINT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?POINT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?POINT + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?POINT + .BYTE 1 ;OBJECTS + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?POINT + .ENDT + +ST?TURN:: .TABLE + .BYTE 6 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE LIGHTBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?OFF + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE LIGHTBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ON + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SET + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SET + .BYTE 1 ;OBJECTS + .BYTE PR?AROUND + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SET + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SET + .ENDT + +ST?#RECORD:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$RECORD + .ENDT + +ST?CROSS:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CROSS + .ENDT + +ST?START:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ON + .ENDT + +ST?MAKE:: .TABLE + .BYTE 5 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE V?MAKE-LOVE + .BYTE 1 ;OBJECTS + .BYTE PR?HAPPY + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CHEER + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MAKE-WITH + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MAKE-OUT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MAKE + .ENDT + +ST?CLOSE:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SHUT-UP + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE LIGHTBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR+STAKE + .BYTE 0 + .BYTE V?OFF + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE DOORBIT + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?CLOSE + .ENDT + +ST?GO:: .TABLE + .BYTE 12 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FOLLOW + .BYTE 1 ;OBJECTS + .BYTE PR?AWAY + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEAVE + .BYTE 1 ;OBJECTS + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-TO + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-UP + .BYTE 1 ;OBJECTS + .BYTE PR?BEHIND + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HIDE + .BYTE 1 ;OBJECTS + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CRAWL-UNDER + .BYTE 1 ;OBJECTS + .BYTE PR?AROUND + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK-AROUND + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?WALK + .ENDT + +ST?SLIDE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-DOWN + .ENDT + +ST?EXIT:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?EXIT + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?EXIT + .ENDT + +ST?EXAMINE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?EXAMINE + .ENDT + +ST?BARTER:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 0 + .BYTE V?BARTER-FOR + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BARTER-FOR + .BYTE 1 ;OBJECTS + .BYTE PR?WITH + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?BARTER-WITH + .ENDT + +ST?EAT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?EAT + .ENDT + +ST?FILL:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE CONTBIT + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 0 + .BYTE V?FILL + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE CONTBIT + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 0 + .BYTE V?FILL + .ENDT + +ST?LEAN:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AGAINST + .BYTE 0 + .BYTE 0 + .BYTE SHAVE + .BYTE 0 + .BYTE V?PUT-AGAINST + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE SHAVE + .BYTE 0 + .BYTE V?PUT-AGAINST + .ENDT + +ST?JERK:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SHAVE + .BYTE V?WHIP + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MASTURBATE + .ENDT + +ST?CLIMB:: .TABLE + .BYTE 10 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UNDER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CRAWL-UNDER + .BYTE 1 ;OBJECTS + .BYTE PR?THROUGH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?BOARD + .BYTE 1 ;OBJECTS + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-OVER + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?DISEMBARK + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?DISEMBARK + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-DOWN + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-UP + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB-ON + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?CLIMB + .ENDT + +ST?FLUSH:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FLUSH + .ENDT + +ST?LAUNCH:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LAUNCH + .ENDT + +ST?RETURN:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE SOG + .BYTE V?RETURN + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE 0 + .BYTE V?RETURN + .ENDT + +ST?DECODE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DECODE + .ENDT + +ST?DEMOLI:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?KILL + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE RLANDBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MUNG + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+STAKE + .BYTE V?MUNG + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?MUNG + .ENDT + +ST?MOAN:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MOAN + .ENDT + +ST?UNROLL:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?UNROLL + .ENDT + +ST?SLICE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE PR?THROUGH + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SC+SH + .BYTE V?CUT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SC+SH + .BYTE V?CUT + .ENDT + +ST?LEWD:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?LEWD + .ENDT + +ST?ASK:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ASK-NO-ONE-FOR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FOR + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ASK-FOR + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ASK-ABOUT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ABOUT + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ASK-ABOUT + .ENDT + +ST?HELLO:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HELLO + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HELLO + .ENDT + + +; THE ACTION CALLING TABLE IS DEFINED HERE + +ATBL:: .TABLE + V-VERBOSE + V-BRIEF + V-SUPER-BRIEF + V-TAME + V-SUGGESTIVE + V-LEWD + V-DIAGNOSE + V-INVENTORY + V-QUIT + V-RESTART + V-RESTORE + V-SAVE + V-STATUS + V-SCRIPT + V-UNSCRIPT + V-VERSION + V-$RANDOM + V-$COMMAND + V-$RECORD + V-$UNRECORD + V-$VERIFY + V-ANSWER + V-USE-QUOTES + V-APPLAUD + V-APPLY + V-PUT-ON + V-WALK-TO + V-ASK-ABOUT + V-ASK-FOR + V-ASK-NO-ONE-FOR + V-KILL + V-BARTER-WITH + V-BARTER-FOR + V-BEND + V-BITE + V-BLOW + V-INFLATE + V-OFF + V-BOARD + V-BOARD-DIR + V-INHALE + V-BURN + V-BUY + V-BUY-WITH + V-CALL + V-CAST-OFF + V-CATCH + V-CHEER + V-WALK-AROUND + V-CLICK + V-CLIMB + V-CLIMB-ON + V-CLIMB-UP + V-CLIMB-DOWN + V-DISEMBARK + V-CLIMB-OVER + V-ENTER + V-CRAWL-UNDER + V-CLOSE + V-SHUT-UP + V-COME + V-FOLLOW + V-COPULATE + V-SPUT-ON + V-COUNT + V-CROSS + V-DECODE + V-DEFLATE + V-MUNG + V-DIG + V-DRESS + V-DRINK + V-DRINK-FROM + V-DROP + V-PUT + V-PUT-THROUGH + V-PUT-NEAR + V-EAT + V-EMPTY + V-EMPTY-FROM + V-IN + V-EXAMINE + V-EXIT + V-FEED + V-GIVE + V-SGIVE + V-FILL + V-FIND + V-FLUSH + V-FUCK + V-GIDDYAP + V-WALK + V-HIDE + V-LEAVE + V-GIVE-UP + V-RETURN + V-LISTEN + V-HELLO + V-HELP + V-SAVE-SOMETHING + V-HISS + V-MASTURBATE + V-WHIP + V-LEAP + V-LEAP-OFF + V-STAND-ON + V-KICK + V-KISS + V-KISS-ON + V-KNEEL + V-KNOCK + V-KWEEPA + V-LAND + V-LAUGH + V-LAUNCH + V-PUT-AGAINST + V-LICK + V-LIE-DOWN + V-ON + V-LIMBER + V-LOCK + V-LOOK + V-LOOK-DOWN + V-LOOK-UP + V-LOOK-INSIDE + V-LOOK-UNDER + V-LOOK-BEHIND + V-LOOK-OVER + V-CHASTISE + V-LOVE + V-LOWER + V-MAKE + V-MAKE-OUT + V-MAKE-WITH + V-MAKE-LOVE + V-MARRY + V-MEASURE + V-MOAN + V-MOVE + V-PUSH-DIR + V-RAISE + V-NO + V-OPEN + V-PASS + V-PAY + V-PEE + V-PEE-IN + V-PHONE + V-PICK + V-PICK-UP + V-PIN + V-TOUCH + V-POINT + V-POUR + V-PUSH + V-PUSH-OFF + V-PUT-UNDER + V-RAKE + V-RAPE + V-REACH-IN + V-READ + V-RELIEVE + V-REMOVE + V-TAKE + V-RIP + V-ROLL + V-RUB + V-SRUB + V-SAY + V-SCAT + V-SCORE + V-SEARCH + V-SHAKE + V-SHAKE-WITH + V-SHIT + V-SHOW + V-SSHOW + V-SIGH + V-SINK + V-SIT + V-SKIP + V-SLEEP + V-CUT + V-SMELL + V-STAIN + V-STAND + V-WEAR + V-PUT-BEHIND + V-PUT-TO + V-SUCK + V-SUCKLE + V-SWIM + V-SWING + V-GET-DRESSED + V-GET-UNDRESSED + V-TAKE-WITH + V-TAKE-OFF + V-TAKE-A-LEAK + V-TAKE-A-SHIT + V-GET-DRUNK + V-TELL + V-TASTE + V-TELL-ABOUT + V-STELL + V-THANK + V-THROW + V-THROW-TO + V-STHROW + V-THROW-UP + V-TIE + V-TIE-TOGETHER + V-SET + V-UNCOVER + V-UNDRESS + V-UNLOCK + V-UNROLL + V-UNTIE + V-USE + V-VOMIT + V-WAIT + V-WAIT-FOR + V-ALARM + V-CLEAN + V-WHAT + V-WHERE + V-WRAP + V-SWRAP + V-YELL + V-YES + V-ANSWER-KLUDGE + .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 + 0 + 0 + 0 + PRE-PUT + 0 + PRE-SPEAK + PRE-SPEAK + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-TOUCH + PRE-BOARD + 0 + 0 + PRE-TOUCH + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-TOUCH + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + IDROP + PRE-PUT + IDROP + IDROP + 0 + PRE-TOUCH + 0 + 0 + PRE-LOOK + 0 + 0 + PRE-GIVE + 0 + 0 + 0 + 0 + PRE-FUCK + 0 + 0 + 0 + 0 + 0 + 0 + PRE-LISTEN + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-TOUCH + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-TOUCH + 0 + 0 + 0 + PRE-LOOK + PRE-LOOK + PRE-LOOK + PRE-LOOK + PRE-LOOK + PRE-LOOK + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-TOUCH + 0 + PRE-TOUCH + 0 + PRE-TOUCH + 0 + 0 + 0 + 0 + 0 + 0 + PRE-TAKE + 0 + PRE-TOUCH + 0 + PRE-POUR + 0 + 0 + 0 + PRE-RAKE + 0 + 0 + PRE-LOOK + 0 + 0 + PRE-TAKE + 0 + PRE-TOUCH + PRE-TOUCH + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-SMELL + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-SPEAK + 0 + PRE-SPEAK + 0 + 0 + IDROP + IDROP + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-PUT + 0 + 0 + 0 + 0 + .ENDT + + +; PREPOSITION TABLE IS DEFINED HERE + +PRTBL:: .TABLE + .WORD 33 + W?TOGETHER + PR?TOGETHER + W?DRUNK + PR?DRUNK + W?SHIT + PR?SHIT + W?LEAK + PR?LEAK + W?PISS + PR?PISS + W?UNDRES + PR?UNDRES + W?DRESSE + PR?DRESSE + W?APART + PR?APART + W?HAPPY + PR?HAPPY + W?GO + PR?GO + W?AGAINST + PR?AGAINST + W?ACROSS + PR?ACROSS + W?BACK + PR?BACK + W?AWAY + PR?AWAY + W?BEHIND + PR?BEHIND + W?AROUND + PR?AROUND + W?AT + PR?AT + W?BEFORE + PR?BEFORE + W?UNDER + PR?UNDER + W?THROUGH + PR?THROUGH + W?OVER + PR?OVER + W?DOWN + PR?DOWN + W?IN + PR?IN + W?OFF + PR?OFF + W?FROM + PR?FROM + W?HARD + PR?HARD + W?OUT + PR?OUT + W?UP + PR?UP + W?WITH + PR?WITH + W?FOR + PR?FOR + W?ON + PR?ON + W?ABOUT + PR?ABOUT + W?TO + PR?TO + .ENDT + + +; VOCABULARY TABLE IS HERE + +VOCAB:: .TABLE + .BYTE 3 + .BYTE 46 + .BYTE 44 + .BYTE 34 + .BYTE 7 + 978 +W?$VERIFY:: .ZWORD "$verif" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?$VERIFY + .BYTE 0 +W?3-D:: .ZWORD "3-d" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?3-D + .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?#:: .ZWORD "#" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?# + .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?ABANDONED:: .ZWORD "abando" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ABANDONED + .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?ACTIVA:: .ZWORD "activa" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?START + .BYTE 0 +W?ADDRESS:: .ZWORD "addres" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ADDRESS + .BYTE 0 +W?AGAIN:: .ZWORD "again" + .BYTE PS?BUZZ-WORD + .BYTE B?AGAIN + .BYTE 0 +W?AGAINST:: .ZWORD "agains" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AGAINST + .BYTE 0 +W?AGING:: .ZWORD "aging" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?AGING + .BYTE 0 +W?AIM:: .ZWORD "aim" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POINT + .BYTE 0 +W?ALIEN:: .ZWORD "alien" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ALIEN + .BYTE 0 +W?ALL:: .ZWORD "all" + .BYTE PS?BUZZ-WORD + .BYTE B?ALL + .BYTE 0 +W?ALONG:: .ZWORD "along" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AROUND + .BYTE 0 +W?AM:: .ZWORD "am" + .BYTE PS?BUZZ-WORD + .BYTE B?AM + .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?ANGLE:: .ZWORD "angle" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ANGLES:: .ZWORD "angles" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ANSWER:: .ZWORD "answer" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ANSWER + .BYTE 0 +W?APART:: .ZWORD "apart" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?APART + .BYTE 0 +W?APE:: .ZWORD "ape" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?APPLAUD:: .ZWORD "applau" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?APPLAUD + .BYTE 0 +W?APPLY:: .ZWORD "apply" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?APPLY + .BYTE 0 +W?APPROA:: .ZWORD "approa" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?APPROA + .BYTE 0 +W?ARE:: .ZWORD "are" + .BYTE PS?BUZZ-WORD + .BYTE B?ARE + .BYTE 0 +W?AREA:: .ZWORD "area" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?AROMA:: .ZWORD "aroma" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?AROUND:: .ZWORD "around" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AROUND + .BYTE 0 +W?ART:: .ZWORD "art" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ART + .BYTE 0 +W?ASK:: .ZWORD "ask" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ASK + .BYTE 0 +W?ASS:: .ZWORD "ass" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ASSASSIN:: .ZWORD "assass" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ASSASSIN + .BYTE 0 +W?ASSHOLE:: .ZWORD "asshol" + .BYTE PS?BUZZ-WORD + .BYTE B?ASSHOLE + .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+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ATTACK + .BYTE ACT?ATTACK +W?AUTO:: .ZWORD "auto" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BABY + .BYTE 0 +W?BABY'S:: .ZWORD "baby's" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BABY'S + .BYTE 0 +W?BACK:: .ZWORD "back" + .BYTE PS?ADJECTIVE+PS?PREPOSITION+P1?OBJECT + .BYTE PR?BACK + .BYTE A?BACK +W?BAG:: .ZWORD "bag" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BALL:: .ZWORD "ball" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BALLS:: .ZWORD "balls" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BALM:: .ZWORD "balm" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BANG:: .ZWORD "bang" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FUCK + .BYTE 0 +W?BAR:: .ZWORD "bar" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BARE:: .ZWORD "bare" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BARE + .BYTE 0 +W?BARF:: .ZWORD "barf" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VOMIT + .BYTE 0 +W?BARGAIN:: .ZWORD "bargai" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BARTER + .BYTE 0 +W?BARGE:: .ZWORD "barge" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BARRED:: .ZWORD "barred" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BARRED + .BYTE 0 +W?BARS:: .ZWORD "bars" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BARTENDER:: .ZWORD "barten" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BARTENDER + .BYTE 0 +W?BARTER:: .ZWORD "barter" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BARTER + .BYTE 0 +W?BASKE:: .ZWORD "baske" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BASKET:: .ZWORD "basket" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BASTARD:: .ZWORD "bastar" + .BYTE PS?BUZZ-WORD + .BYTE B?BASTARD + .BYTE 0 +W?BATHROOM:: .ZWORD "bathro" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BATTLE:: .ZWORD "battle" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BATTLE + .BYTE 0 +W?BEAT:: .ZWORD "beat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JERK + .BYTE 0 +W?BED:: .ZWORD "bed" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BEER:: .ZWORD "beer" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BEFORE:: .ZWORD "before" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?BEFORE + .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?BEND:: .ZWORD "bend" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BEND + .BYTE 0 +W?BENEATH:: .ZWORD "beneat" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?UNDER + .BYTE 0 +W?BIG:: .ZWORD "big" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?BIGGER:: .ZWORD "bigger" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?BIKINI:: .ZWORD "bikini" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BIRD:: .ZWORD "bird" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BIRDS:: .ZWORD "birds" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BITCH:: .ZWORD "bitch" + .BYTE PS?BUZZ-WORD + .BYTE B?BITCH + .BYTE 0 +W?BITE:: .ZWORD "bite" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BITE + .BYTE 0 +W?BITS:: .ZWORD "bits" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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 0 + .BYTE 0 +W?BLANKET:: .ZWORD "blanke" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BLENDER:: .ZWORD "blende" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BLOW:: .ZWORD "blow" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BLOW + .BYTE 0 +W?BLUEPR:: .ZWORD "bluepr" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BLUEPR + .BYTE 0 +W?BOARD:: .ZWORD "board" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BOARD + .BYTE 0 +W?BOAT:: .ZWORD "boat" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BODY:: .ZWORD "body" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BOO:: .ZWORD "boo" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCAT + .BYTE 0 +W?BOOK:: .ZWORD "book" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BOOST:: .ZWORD "boost" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAISE + .BYTE 0 +W?BOOTH:: .ZWORD "booth" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BOSOM:: .ZWORD "bosom" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BOTH:: .ZWORD "both" + .BYTE PS?BUZZ-WORD + .BYTE B?ALL + .BYTE 0 +W?BOUNCE:: .ZWORD "bounce" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHAKE + .BYTE 0 +W?BOW:: .ZWORD "bow" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KNEEL + .BYTE 0 +W?BOX:: .ZWORD "box" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BRA:: .ZWORD "bra" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BRACKISH:: .ZWORD "bracki" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BRACKISH + .BYTE 0 +W?BRAS:: .ZWORD "bras" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BRASS:: .ZWORD "brass" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BRASS + .BYTE 0 +W?BRASSIERE:: .ZWORD "brassi" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BREAK:: .ZWORD "break" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEMOLI + .BYTE 0 +W?BREAST:: .ZWORD "breast" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BREATHE:: .ZWORD "breath" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BREATHE + .BYTE 0 +W?BRIEF:: .ZWORD "brief" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BRIEF + .BYTE 0 +W?BROAD:: .ZWORD "broad" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WIDE + .BYTE 0 +W?BROWN:: .ZWORD "brown" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BROWN + .BYTE 0 +W?BROWSE:: .ZWORD "browse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?READ + .BYTE 0 +W?BUG:: .ZWORD "bug" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BUG + .BYTE 0 +W?BUG-EYED:: .ZWORD "bug-ey" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BUG-EYED + .BYTE 0 +W?BUNCH:: .ZWORD "bunch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BUNNY:: .ZWORD "bunny" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BUNNY + .BYTE 0 +W?BUOY:: .ZWORD "buoy" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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 0 + .BYTE 0 +W?BUY:: .ZWORD "buy" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BUY + .BYTE 0 +W?BY:: .ZWORD "by" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?BEFORE + .BYTE 0 +W?CACKLE:: .ZWORD "cackle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LAUGH + .BYTE 0 +W?CAGE:: .ZWORD "cage" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CALL:: .ZWORD "call" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CALL + .BYTE 0 +W?CAN:: .ZWORD "can" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CANAL:: .ZWORD "canal" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CANAL + .BYTE 0 +W?CANDY:: .ZWORD "candy" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CANVAS:: .ZWORD "canvas" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CANVAS + .BYTE 0 +W?CAR:: .ZWORD "car" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CARDBOARD:: .ZWORD "cardbo" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CARDBOARD + .BYTE 0 +W?CARRY:: .ZWORD "carry" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?CAST:: .ZWORD "cast" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CAST + .BYTE 0 +W?CAT:: .ZWORD "cat" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CATCH:: .ZWORD "catch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CATCH + .BYTE 0 +W?CEDAR:: .ZWORD "cedar" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CEDAR + .BYTE 0 +W?CEDARWOOD:: .ZWORD "cedarw" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CEDARWOOD + .BYTE 0 +W?CEILIN:: .ZWORD "ceilin" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CELL:: .ZWORD "cell" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CELL + .BYTE 0 +W?CHAPST:: .ZWORD "chapst" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CHASE:: .ZWORD "chase" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOLLOW + .BYTE 0 +W?CHEER:: .ZWORD "cheer" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CHEER + .BYTE 0 +W?CHIEF:: .ZWORD "chief" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CHIEF + .BYTE 0 +W?CHOCOLATE:: .ZWORD "chocol" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CIRCLE:: .ZWORD "circle" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?CIRCLE + .BYTE 0 +W?CLAP:: .ZWORD "clap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?APPLAUD + .BYTE 0 +W?CLEAN:: .ZWORD "clean" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WASH + .BYTE 0 +W?CLEVELAND:: .ZWORD "clevel" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CLEVELAND + .BYTE 0 +W?CLICK:: .ZWORD "click" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLICK + .BYTE 0 +W?CLIFF:: .ZWORD "cliff" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CLIMAX:: .ZWORD "climax" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?COME + .BYTE 0 +W?CLIMB:: .ZWORD "climb" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLIMB + .BYTE 0 +W?CLOHES:: .ZWORD "clohes" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CLOHES + .BYTE 0 +W?CLOSE:: .ZWORD "close" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLOSE + .BYTE 0 +W?CLOSET:: .ZWORD "closet" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CLOTH:: .ZWORD "cloth" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CLOTH + .BYTE 0 +W?CLOTHES:: .ZWORD "clothe" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CLOTHES + .BYTE 0 +W?COCK:: .ZWORD "cock" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?COCKSU:: .ZWORD "cocksu" + .BYTE PS?BUZZ-WORD + .BYTE B?COCKSU + .BYTE 0 +W?CODE:: .ZWORD "code" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CODED:: .ZWORD "coded" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CODED + .BYTE 0 +W?COIN:: .ZWORD "coin" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COIN + .BYTE 0 +W?COME:: .ZWORD "come" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?COME + .BYTE 0 +W?COMFORT:: .ZWORD "comfor" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CHEER + .BYTE 0 +W?COMIC:: .ZWORD "comic" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COMIC + .BYTE 0 +W?COMMON:: .ZWORD "common" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COMMON + .BYTE 0 +W?COMPAR:: .ZWORD "compar" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CONTROL:: .ZWORD "contro" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?COON:: .ZWORD "coon" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COON + .BYTE 0 +W?COPULATE:: .ZWORD "copula" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?COPULATE + .BYTE 0 +W?COTTON:: .ZWORD "cotton" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COTTON + .BYTE 0 +W?COUCH:: .ZWORD "couch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?COUCHMATE:: .ZWORD "couchm" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COUCHMATE + .BYTE 0 +W?COUNT:: .ZWORD "count" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?COUNT + .BYTE 0 +W?COVER:: .ZWORD "cover" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?COVER + .BYTE 0 +W?CRACK:: .ZWORD "crack" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WHIP + .BYTE 0 +W?CRAP:: .ZWORD "crap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHIT + .BYTE 0 +W?CREAM:: .ZWORD "cream" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CREAM + .BYTE 0 +W?CREAMY:: .ZWORD "creamy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CREAMY + .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 0 + .BYTE 0 +W?CRUMPLED:: .ZWORD "crumpl" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CRUMPLED + .BYTE 0 +W?CRUSH:: .ZWORD "crush" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEMOLI + .BYTE 0 +W?CUM:: .ZWORD "cum" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?COME + .BYTE 0 +W?CUNT:: .ZWORD "cunt" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CUT:: .ZWORD "cut" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SLICE + .BYTE 0 +W?D:: .ZWORD "d" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?DOWN + .BYTE 21 +W?DAMAGE:: .ZWORD "damage" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEMOLI + .BYTE 0 +W?DAMN:: .ZWORD "damn" + .BYTE PS?BUZZ-WORD + .BYTE B?DAMN + .BYTE 0 +W?DAMNED:: .ZWORD "damned" + .BYTE PS?BUZZ-WORD + .BYTE B?DAMNED + .BYTE 0 +W?DARK:: .ZWORD "dark" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DARK + .BYTE 0 +W?DAUGHTER:: .ZWORD "daught" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DAUGHTER + .BYTE 0 +W?DEACTIVATE:: .ZWORD "deacti" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXTINGUISH + .BYTE 0 +W?DEAD:: .ZWORD "dead" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DEAD + .BYTE 0 +W?DEBARK:: .ZWORD "debark" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DISEMBARK + .BYTE 0 +W?DECIPHER:: .ZWORD "deciph" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DECODE + .BYTE 0 +W?DECODE:: .ZWORD "decode" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DECODE + .BYTE 0 +W?DEFECATE:: .ZWORD "defeca" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHIT + .BYTE 0 +W?DEFLATE:: .ZWORD "deflat" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DEFLATE + .BYTE ACT?DEFLATE +W?DEGREE:: .ZWORD "degree" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DEGREE + .BYTE 0 +W?DEMOLI:: .ZWORD "demoli" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEMOLI + .BYTE 0 +W?DEPART:: .ZWORD "depart" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXIT + .BYTE 0 +W?DESCEN:: .ZWORD "descen" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DESCEN + .BYTE 0 +W?DESCRIBE:: .ZWORD "descri" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?DESTRO:: .ZWORD "destro" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEMOLI + .BYTE 0 +W?DEVICE:: .ZWORD "device" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DEVOUR:: .ZWORD "devour" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?DIAGNOSE:: .ZWORD "diagno" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DIAGNOSE + .BYTE 0 +W?DIAL:: .ZWORD "dial" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?DIFFER:: .ZWORD "differ" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DIFFER + .BYTE 0 +W?DIG:: .ZWORD "dig" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DIG + .BYTE 0 +W?DIRECT:: .ZWORD "direct" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DIRIGIBLE:: .ZWORD "dirigi" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DIRTY:: .ZWORD "dirty" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DIRTY + .BYTE 0 +W?DISCARDED:: .ZWORD "discar" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DISCARDED + .BYTE 0 +W?DISEMBARK:: .ZWORD "disemb" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DISEMBARK + .BYTE 0 +W?DISMOUNT:: .ZWORD "dismou" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DISEMBARK + .BYTE 0 +W?DIVAN:: .ZWORD "divan" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DIVE:: .ZWORD "dive" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?DOCK:: .ZWORD "dock" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?LAND + .BYTE 0 +W?DON:: .ZWORD "don" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WEAR + .BYTE 0 +W?DONATE:: .ZWORD "donate" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HAND + .BYTE 0 +W?DOOR:: .ZWORD "door" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DOORSTEP:: .ZWORD "doorst" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DOUGLAS:: .ZWORD "dougla" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DOUGLAS + .BYTE 0 +W?DOWN:: .ZWORD "down" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?DOWN + .BYTE 21 +W?DOWNSTAIRS:: .ZWORD "downst" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?DOWN + .BYTE 21 +W?DOZE:: .ZWORD "doze" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SLEEP + .BYTE 0 +W?DRESS:: .ZWORD "dress" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DRESS + .BYTE 0 +W?DRESSE:: .ZWORD "dresse" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?DRESSE + .BYTE 0 +W?DRINK:: .ZWORD "drink" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?DRINK + .BYTE 0 +W?DROP:: .ZWORD "drop" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DROP + .BYTE 0 +W?DROWSY:: .ZWORD "drowsy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DROWSY + .BYTE 0 +W?DRUNK:: .ZWORD "drunk" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?DRUNK + .BYTE 0 +W?DUBIOUS:: .ZWORD "dubiou" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DUBIOUS + .BYTE 0 +W?DUMP:: .ZWORD "dump" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DROP + .BYTE 0 +W?DUNE:: .ZWORD "dune" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DUNES:: .ZWORD "dunes" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DUPER:: .ZWORD "duper" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DUPER + .BYTE 0 +W?DUST:: .ZWORD "dust" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?E:: .ZWORD "e" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?EAST + .BYTE 28 +W?EACH:: .ZWORD "each" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?EACH + .BYTE 0 +W?EAR:: .ZWORD "ear" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?EARS:: .ZWORD "ears" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?EAST:: .ZWORD "east" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?EAST + .BYTE 28 +W?EAT:: .ZWORD "eat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?EGRESS:: .ZWORD "egress" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?EIGHTY:: .ZWORD "eighty" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?EIGHTY + .BYTE 0 +W?EIGHY:: .ZWORD "eighy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?EIGHY + .BYTE 0 +W?EJACULATE:: .ZWORD "ejacul" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?COME + .BYTE 0 +W?ELYSIA:: .ZWORD "elysia" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ELYSIA + .BYTE 0 +W?ELYSIUM:: .ZWORD "elysiu" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ELYSIUM + .BYTE 0 +W?EMPTY:: .ZWORD "empty" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?EMPTY + .BYTE ACT?EMPTY +W?ENCHANTED:: .ZWORD "enchan" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ENCHANTED + .BYTE 0 +W?END:: .ZWORD "end" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ENGRAV:: .ZWORD "engrav" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ENTER:: .ZWORD "enter" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ENTER + .BYTE 0 +W?ENTERTAIN:: .ZWORD "entert" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CHEER + .BYTE 0 +W?EVERYT:: .ZWORD "everyt" + .BYTE PS?BUZZ-WORD + .BYTE B?ALL + .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?EXCHANGE:: .ZWORD "exchan" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BARTER + .BYTE 0 +W?EXCITE:: .ZWORD "excite" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STIMULATE + .BYTE 0 +W?EXIT:: .ZWORD "exit" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?EXIT + .BYTE 0 +W?EXTINGUISH:: .ZWORD "exting" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXTINGUISH + .BYTE 0 +W?EYE:: .ZWORD "eye" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?EYED:: .ZWORD "eyed" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?EYED + .BYTE 0 +W?EYES:: .ZWORD "eyes" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FADED:: .ZWORD "faded" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FADED + .BYTE 0 +W?FAIRBANKS:: .ZWORD "fairba" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FAMILIAR:: .ZWORD "famili" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FAMILIAR + .BYTE 0 +W?FASTEN:: .ZWORD "fasten" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?FEED:: .ZWORD "feed" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FEED + .BYTE 0 +W?FEEL:: .ZWORD "feel" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?FEMALE:: .ZWORD "female" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FEMALE + .BYTE 0 +W?FENCE:: .ZWORD "fence" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FIGHT:: .ZWORD "fight" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?FIGURE:: .ZWORD "figure" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FILL:: .ZWORD "fill" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FILL + .BYTE 0 +W?FILTHY:: .ZWORD "filthy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FILTHY + .BYTE 0 +W?FIND:: .ZWORD "find" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FIND + .BYTE 0 +W?FINGER:: .ZWORD "finger" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FIRST:: .ZWORD "first" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FIRST + .BYTE 0 +W?FLAG:: .ZWORD "flag" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FLAG + .BYTE 0 +W?FLAGSHIP:: .ZWORD "flagsh" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FLASH:: .ZWORD "flash" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FLASH + .BYTE 0 +W?FLASHLIGHT:: .ZWORD "flashl" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FLEXIBLE:: .ZWORD "flexib" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FLEXIBLE + .BYTE 0 +W?FLICK:: .ZWORD "flick" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?FLIP:: .ZWORD "flip" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?FLOOR:: .ZWORD "floor" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FLOWER:: .ZWORD "flower" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FLOWING:: .ZWORD "flowin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FLOWING + .BYTE 0 +W?FLUSH:: .ZWORD "flush" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FLUSH + .BYTE 0 +W?FLYTRAP:: .ZWORD "flytra" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FOLLOW:: .ZWORD "follow" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOLLOW + .BYTE 0 +W?FONDLE:: .ZWORD "fondle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?FOOD:: .ZWORD "food" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FOR:: .ZWORD "for" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?FOR + .BYTE 0 +W?FORD:: .ZWORD "ford" + .BYTE PS?OBJECT+PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FORD + .BYTE ACT?CROSS +W?FORLORN:: .ZWORD "forlor" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FORLORN + .BYTE 0 +W?FORNICATE:: .ZWORD "fornic" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FUCK + .BYTE 0 +W?FORTY:: .ZWORD "forty" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FORTY + .BYTE 0 +W?FOUL:: .ZWORD "foul" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FOUL + .BYTE 0 +W?FOUNTAIN:: .ZWORD "founta" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FREE:: .ZWORD "free" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?FRESH:: .ZWORD "fresh" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FRESH + .BYTE 0 +W?FROG:: .ZWORD "frog" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FROG'S:: .ZWORD "frog's" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FROG'S + .BYTE 0 +W?FROM:: .ZWORD "from" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?FROM + .BYTE 0 +W?FRONT:: .ZWORD "front" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FRONT + .BYTE 0 +W?FUCK:: .ZWORD "fuck" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FUCK + .BYTE 0 +W?FUCKED:: .ZWORD "fucked" + .BYTE PS?BUZZ-WORD + .BYTE B?FUCKED + .BYTE 0 +W?FUCKING:: .ZWORD "fuckin" + .BYTE PS?BUZZ-WORD + .BYTE B?FUCKING + .BYTE 0 +W?G:: .ZWORD "g" + .BYTE PS?BUZZ-WORD + .BYTE B?G + .BYTE 0 +W?GENT'S:: .ZWORD "gent's" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GENT'S + .BYTE 0 +W?GENTS:: .ZWORD "gents" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GENTS + .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?LARGE + .BYTE 0 +W?GIDDAP:: .ZWORD "giddap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GIDDYAP + .BYTE 0 +W?GIDDYAP:: .ZWORD "giddya" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GIDDYAP + .BYTE 0 +W?GIGANTIC:: .ZWORD "gigant" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?GIVE:: .ZWORD "give" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HAND + .BYTE 0 +W?GLASS:: .ZWORD "glass" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GLASS + .BYTE 0 +W?GLEAMING:: .ZWORD "gleami" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GLEAMING + .BYTE 0 +W?GLINT:: .ZWORD "glint" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GLISTENING:: .ZWORD "gliste" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GLISTENING + .BYTE 0 +W?GLOSS:: .ZWORD "gloss" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GO:: .ZWORD "go" + .BYTE PS?VERB+PS?PREPOSITION+P1?OBJECT + .BYTE PR?GO + .BYTE ACT?GO +W?GOBBLE:: .ZWORD "gobble" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?GODDESSES:: .ZWORD "goddes" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GODDESSES + .BYTE 0 +W?GOLD:: .ZWORD "gold" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GOLD + .BYTE 0 +W?GOLDEN:: .ZWORD "golden" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GOLDEN + .BYTE 0 +W?GONDOLA:: .ZWORD "gondol" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GORILLA:: .ZWORD "gorill" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GORILLA + .BYTE 0 +W?GOWN:: .ZWORD "gown" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GRAB:: .ZWORD "grab" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?GREEN:: .ZWORD "green" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GREEN + .BYTE 0 +W?GRIMY:: .ZWORD "grimy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GRIMY + .BYTE 0 +W?GROUND:: .ZWORD "ground" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GUARD:: .ZWORD "guard" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GUARD + .BYTE 0 +W?GUESS:: .ZWORD "guess" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ANSWER + .BYTE 0 +W?HAIR:: .ZWORD "hair" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HAND:: .ZWORD "hand" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?HAND + .BYTE 0 +W?HANDS:: .ZWORD "hands" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HANDSET:: .ZWORD "handse" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HAPPY:: .ZWORD "happy" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?HAPPY + .BYTE 0 +W?HARD:: .ZWORD "hard" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?HARD + .BYTE 0 +W?HAREM:: .ZWORD "harem" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HAREM + .BYTE 0 +W?HARLOW:: .ZWORD "harlow" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HATCH:: .ZWORD "hatch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HATCHWAY:: .ZWORD "hatchw" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HEAD:: .ZWORD "head" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HEAD + .BYTE 0 +W?HEADLIGHT:: .ZWORD "headli" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HEADY:: .ZWORD "heady" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HEADY + .BYTE 0 +W?HEAR:: .ZWORD "hear" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HEAR + .BYTE 0 +W?HELLO:: .ZWORD "hello" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?HELP:: .ZWORD "help" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELP + .BYTE 0 +W?HER:: .ZWORD "her" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HER + .BYTE 0 +W?HERE:: .ZWORD "here" + .BYTE PS?BUZZ-WORD + .BYTE B?HERE + .BYTE 0 +W?HERSELF:: .ZWORD "hersel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?HIDE + .BYTE 0 +W?HIM:: .ZWORD "him" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HIMSELF:: .ZWORD "himsel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HINT:: .ZWORD "hint" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELP + .BYTE 0 +W?HINTS:: .ZWORD "hints" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELP + .BYTE 0 +W?HIS:: .ZWORD "his" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HIS + .BYTE 0 +W?HISS:: .ZWORD "hiss" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HISS + .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 0 + .BYTE 0 +W?HOME:: .ZWORD "home" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOP:: .ZWORD "hop" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SKIP + .BYTE 0 +W?HORSE:: .ZWORD "horse" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOSE:: .ZWORD "hose" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOUSE:: .ZWORD "house" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOUSEHOLD:: .ZWORD "househ" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HOUSEHOLD + .BYTE 0 +W?HUGE:: .ZWORD "huge" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?HUGER:: .ZWORD "huger" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?HUMANOID:: .ZWORD "humano" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HUMANOID + .BYTE 0 +W?HUMP:: .ZWORD "hump" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FUCK + .BYTE 0 +W?HUNK:: .ZWORD "hunk" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HURL:: .ZWORD "hurl" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THROW + .BYTE 0 +W?HUSBAND:: .ZWORD "husban" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HUSBAND + .BYTE 0 +W?I:: .ZWORD "i" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?INVENT + .BYTE 0 +W?IGLOO:: .ZWORD "igloo" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?IGLOO + .BYTE 0 +W?IMPASSABLE:: .ZWORD "impass" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?IMPASSABLE + .BYTE 0 +W?IN:: .ZWORD "in" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?IN + .BYTE 20 +W?INFANT:: .ZWORD "infant" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?INFANT + .BYTE 0 +W?INFLATE:: .ZWORD "inflat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?INFLATE + .BYTE 0 +W?INGEST:: .ZWORD "ingest" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?INSERT:: .ZWORD "insert" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STICK + .BYTE 0 +W?INSIDE:: .ZWORD "inside" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?IN + .BYTE 0 +W?INSPECT:: .ZWORD "inspec" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?INTO:: .ZWORD "into" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?IN + .BYTE 0 +W?INVENT:: .ZWORD "invent" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?INVENT + .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 0 + .BYTE 0 +W?ITSELF:: .ZWORD "itself" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?JACK:: .ZWORD "jack" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JERK + .BYTE 0 +W?JAR:: .ZWORD "jar" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?JEAN:: .ZWORD "jean" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?JEAN + .BYTE 0 +W?JERK:: .ZWORD "jerk" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JERK + .BYTE 0 +W?JOCKSTRAP:: .ZWORD "jockst" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?JOE:: .ZWORD "joe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?JUMP:: .ZWORD "jump" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .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?KING:: .ZWORD "king" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?KING + .BYTE 0 +W?KING'S:: .ZWORD "king's" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?KING'S + .BYTE 0 +W?KISS:: .ZWORD "kiss" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KISS + .BYTE 0 +W?KNEE:: .ZWORD "knee" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KNEECAP:: .ZWORD "kneeca" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KNEEL:: .ZWORD "kneel" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KNEEL + .BYTE 0 +W?KNEES:: .ZWORD "knees" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KNOB:: .ZWORD "knob" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KNOCK:: .ZWORD "knock" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KNOCK + .BYTE 0 +W?KWEEPA:: .ZWORD "kweepa" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KWEEPA + .BYTE 0 +W?L:: .ZWORD "l" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOOK + .BYTE 0 +W?LADDER:: .ZWORD "ladder" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LADIES:: .ZWORD "ladies" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LADIES + .BYTE 0 +W?LAND:: .ZWORD "land" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LAND + .BYTE 0 +W?LARGE:: .ZWORD "large" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?LARGER:: .ZWORD "larger" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?LAUGH:: .ZWORD "laugh" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LAUGH + .BYTE 0 +W?LAUNCH:: .ZWORD "launch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LAUNCH + .BYTE 0 +W?LAUNDRY:: .ZWORD "laundr" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LAWN:: .ZWORD "lawn" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LAY:: .ZWORD "lay" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FUCK + .BYTE 0 +W?LEAD:: .ZWORD "lead" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MOVE + .BYTE 0 +W?LEAF:: .ZWORD "leaf" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LEAK:: .ZWORD "leak" + .BYTE PS?VERB+PS?PREPOSITION+P1?OBJECT + .BYTE PR?LEAK + .BYTE ACT?PEE +W?LEAN:: .ZWORD "lean" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LEAN + .BYTE 0 +W?LEAP:: .ZWORD "leap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?LEATHER:: .ZWORD "leathe" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LEATHER + .BYTE 0 +W?LEAVE:: .ZWORD "leave" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LEAVE + .BYTE 0 +W?LEAVES:: .ZWORD "leaves" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LEDGE:: .ZWORD "ledge" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LET:: .ZWORD "let" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LET + .BYTE 0 +W?LETTUCE:: .ZWORD "lettuc" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LEWD:: .ZWORD "lewd" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LEWD + .BYTE 0 +W?LICK:: .ZWORD "lick" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LICK + .BYTE 0 +W?LIE:: .ZWORD "lie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LIE + .BYTE 0 +W?LIFE:: .ZWORD "life" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LIFE + .BYTE 0 +W?LIFERAFT:: .ZWORD "lifera" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LIFT:: .ZWORD "lift" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAISE + .BYTE 0 +W?LIGH:: .ZWORD "ligh" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LIGHT:: .ZWORD "light" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?LIGHT + .BYTE 0 +W?LIMBER:: .ZWORD "limber" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LIMBER + .BYTE 0 +W?LIP:: .ZWORD "lip" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LIP + .BYTE 0 +W?LIPS:: .ZWORD "lips" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?SMALL + .BYTE 0 +W?LOCATI:: .ZWORD "locati" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LOCK:: .ZWORD "lock" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOCK + .BYTE 0 +W?LOINCLOTH:: .ZWORD "loincl" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LONG:: .ZWORD "long" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LONG + .BYTE 0 +W?LOOK:: .ZWORD "look" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOOK + .BYTE 0 +W?LOOMING:: .ZWORD "loomin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LOOMING + .BYTE 0 +W?LOTION:: .ZWORD "lotion" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LOVE:: .ZWORD "love" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?LOVE + .BYTE 0 +W?LOWER:: .ZWORD "lower" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOWER + .BYTE 0 +W?LUSCIOUS:: .ZWORD "luscio" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LUSCIOUS + .BYTE 0 +W?MACH:: .ZWORD "mach" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MACH + .BYTE 0 +W?MACHBOOK:: .ZWORD "machbo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MACHINE:: .ZWORD "machin" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MAD:: .ZWORD "mad" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MAD + .BYTE 0 +W?MAGNIFICENT:: .ZWORD "magnif" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MAGNIFICENT + .BYTE 0 +W?MAILING:: .ZWORD "mailin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MAILING + .BYTE 0 +W?MAKE:: .ZWORD "make" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MAKE + .BYTE 0 +W?MALE:: .ZWORD "male" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MALE + .BYTE 0 +W?MAN:: .ZWORD "man" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MAN'S:: .ZWORD "man's" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MAN'S + .BYTE 0 +W?MAP:: .ZWORD "map" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MARRY:: .ZWORD "marry" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MARRY + .BYTE 0 +W?MARSMID:: .ZWORD "marsmi" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MARSMID + .BYTE 0 +W?MARSMOUSE:: .ZWORD "marsmo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MARTIAN:: .ZWORD "martia" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MARTIAN + .BYTE 0 +W?MASS:: .ZWORD "mass" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MASSIVE:: .ZWORD "massiv" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?MASTURBATE:: .ZWORD "mastur" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MASTURBATE + .BYTE 0 +W?MATCH:: .ZWORD "match" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MATCH + .BYTE 0 +W?MATCHBOOK:: .ZWORD "matchb" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MATCHBOOK + .BYTE 0 +W?MATCHES:: .ZWORD "matche" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MATCHES + .BYTE 0 +W?ME:: .ZWORD "me" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MEASURE:: .ZWORD "measur" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MEASURE + .BYTE 0 +W?MEN'S:: .ZWORD "men's" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MEN'S + .BYTE 0 +W?MENS:: .ZWORD "mens" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MENS + .BYTE 0 +W?MESSAGE:: .ZWORD "messag" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?METAL:: .ZWORD "metal" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?METAL + .BYTE 0 +W?METALLIC:: .ZWORD "metall" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?METALLIC + .BYTE 0 +W?MIGHTIER:: .ZWORD "mighti" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?MIGHTY:: .ZWORD "mighty" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?MILK:: .ZWORD "milk" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MILK + .BYTE 0 +W?MINARET:: .ZWORD "minare" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MINE:: .ZWORD "mine" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MY + .BYTE 0 +W?MIRAGE:: .ZWORD "mirage" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MITRE:: .ZWORD "mitre" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MITRE + .BYTE 0 +W?MIXER:: .ZWORD "mixer" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MOAN:: .ZWORD "moan" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MOAN + .BYTE 0 +W?MONEY:: .ZWORD "money" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MONKEY:: .ZWORD "monkey" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MONKEY + .BYTE 0 +W?MONSTER:: .ZWORD "monste" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MOOR:: .ZWORD "moor" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LAND + .BYTE 0 +W?MORE:: .ZWORD "more" + .BYTE PS?BUZZ-WORD + .BYTE B?MORE + .BYTE 0 +W?MOTH:: .ZWORD "moth" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MOTH + .BYTE 0 +W?MOTHBALL:: .ZWORD "mothba" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MOUNT:: .ZWORD "mount" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?BOARD + .BYTE 0 +W?MOUSE:: .ZWORD "mouse" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MOUTH:: .ZWORD "mouth" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MOVE:: .ZWORD "move" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MOVE + .BYTE 0 +W?MUG:: .ZWORD "mug" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MURDER:: .ZWORD "murder" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?MY:: .ZWORD "my" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MY + .BYTE 0 +W?MYSELF:: .ZWORD "myself" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?N:: .ZWORD "n" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?NORTH + .BYTE 30 +W?NAH:: .ZWORD "nah" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?NO + .BYTE 0 +W?NAP:: .ZWORD "nap" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?SLEEP + .BYTE 0 +W?NARROW:: .ZWORD "narrow" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NARROW + .BYTE 0 +W?NE:: .ZWORD "ne" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?NE + .BYTE 29 +W?NEAR:: .ZWORD "near" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?BEFORE + .BYTE 0 +W?NIBBLE:: .ZWORD "nibble" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TASTE + .BYTE 0 +W?NO:: .ZWORD "no" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?NO + .BYTE 0 +W?NOPE:: .ZWORD "nope" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?NO + .BYTE 0 +W?NORTH:: .ZWORD "north" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?NORTH + .BYTE 30 +W?NORTHE:: .ZWORD "northe" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?NE + .BYTE 29 +W?NORTHWEST:: .ZWORD "northw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?NW + .BYTE 23 +W?NOSE:: .ZWORD "nose" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NOSTRIL:: .ZWORD "nostri" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NOTATI:: .ZWORD "notati" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NOTATI + .BYTE 0 +W?NOTES:: .ZWORD "notes" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NOTES + .BYTE 0 +W?NUMBER:: .ZWORD "number" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NUMBER + .BYTE 0 +W?NURSE:: .ZWORD "nurse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SUCKLE + .BYTE 0 +W?NW:: .ZWORD "nw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?NW + .BYTE 23 +W?OASIS:: .ZWORD "oasis" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?OBSERVE:: .ZWORD "observ" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?ODD:: .ZWORD "odd" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ODD + .BYTE 0 +W?ODOR:: .ZWORD "odor" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?HAND + .BYTE 0 +W?OINTMENT:: .ZWORD "ointme" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?OK:: .ZWORD "ok" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?OKAY:: .ZWORD "okay" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?ON:: .ZWORD "on" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?ON + .BYTE 0 +W?ONE:: .ZWORD "one" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?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?ORANGE:: .ZWORD "orange" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ORANGE + .BYTE 0 +W?ORCH:: .ZWORD "orch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ORDER:: .ZWORD "order" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BUY + .BYTE 0 +W?ORPHANAGE:: .ZWORD "orphan" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ORPHANAGE + .BYTE 0 +W?OTHER:: .ZWORD "other" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?OTHER + .BYTE 0 +W?OUT:: .ZWORD "out" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?OUT + .BYTE 19 +W?OUTSIDE:: .ZWORD "outsid" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?OUT + .BYTE 0 +W?OVER:: .ZWORD "over" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?OVER + .BYTE 0 +W?OVERALL:: .ZWORD "overal" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?OWNER:: .ZWORD "owner" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?OWNER + .BYTE 0 +W?PAINING:: .ZWORD "painin" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PAINT:: .ZWORD "paint" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?STAIN + .BYTE 0 +W?PAINTING:: .ZWORD "painti" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PAIR:: .ZWORD "pair" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PALM:: .ZWORD "palm" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PAPER:: .ZWORD "paper" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PASS:: .ZWORD "pass" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PASS + .BYTE 0 +W?PASSENGER:: .ZWORD "passen" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PASSENGER + .BYTE 0 +W?PAT:: .ZWORD "pat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?PAY:: .ZWORD "pay" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PAY + .BYTE ACT?PAY +W?PEE:: .ZWORD "pee" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PEE + .BYTE 0 +W?PEE-PEE:: .ZWORD "pee-pe" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PEE + .BYTE 0 +W?PENGUIN:: .ZWORD "pengui" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PENIS:: .ZWORD "penis" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PET:: .ZWORD "pet" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?PETITE:: .ZWORD "petite" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 +W?PHOBOS:: .ZWORD "phobos" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PHONE:: .ZWORD "phone" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PHONE + .BYTE ACT?PHONE +W?PHONEB:: .ZWORD "phoneb" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PHOO:: .ZWORD "phoo" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PHOO + .BYTE 0 +W?PHOTO:: .ZWORD "photo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PICK:: .ZWORD "pick" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PICK + .BYTE 0 +W?PICTURE:: .ZWORD "pictur" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PIDDLE:: .ZWORD "piddle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PEE + .BYTE 0 +W?PIE:: .ZWORD "pie" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PIECE:: .ZWORD "piece" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PIER:: .ZWORD "pier" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PILE:: .ZWORD "pile" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PIN:: .ZWORD "pin" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?PIN + .BYTE 0 +W?PISS:: .ZWORD "piss" + .BYTE PS?VERB+PS?PREPOSITION+P1?OBJECT + .BYTE PR?PISS + .BYTE ACT?PEE +W?PIZZA:: .ZWORD "pizza" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PLACE:: .ZWORD "place" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?STICK + .BYTE 0 +W?PLASTIC:: .ZWORD "plasti" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PLASTIC + .BYTE 0 +W?PLAY:: .ZWORD "play" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PLAY + .BYTE 0 +W?PLEASANT:: .ZWORD "pleasa" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PLEASANT + .BYTE 0 +W?PLEASE:: .ZWORD "please" + .BYTE PS?BUZZ-WORD + .BYTE B?PLEASE + .BYTE 0 +W?PLUG:: .ZWORD "plug" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?COVER + .BYTE 0 +W?PLUSH:: .ZWORD "plush" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PLUSH + .BYTE 0 +W?POCKET:: .ZWORD "pocket" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?POINT:: .ZWORD "point" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POINT + .BYTE 0 +W?POINTED:: .ZWORD "pointe" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?POINTED + .BYTE 0 +W?POKE:: .ZWORD "poke" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?POO-POO:: .ZWORD "poo-po" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHIT + .BYTE 0 +W?POOL:: .ZWORD "pool" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?POP:: .ZWORD "pop" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEFLATE + .BYTE 0 +W?PORTABLE:: .ZWORD "portab" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PORTABLE + .BYTE 0 +W?POUNDS:: .ZWORD "pounds" + .BYTE PS?BUZZ-WORD + .BYTE B?POUNDS + .BYTE 0 +W?POUR:: .ZWORD "pour" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POUR + .BYTE 0 +W?POWER:: .ZWORD "power" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?POWER + .BYTE 0 +W?PRESS:: .ZWORD "press" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUSH + .BYTE 0 +W?PRINCE:: .ZWORD "prince" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PRINCE + .BYTE 0 +W?PRISON:: .ZWORD "prison" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PRISON + .BYTE 0 +W?PROCEE:: .ZWORD "procee" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?PROPRIETOR:: .ZWORD "propri" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PROPRIETOR + .BYTE 0 +W?PROTAG:: .ZWORD "protag" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PRY:: .ZWORD "pry" + .BYTE PS?BUZZ-WORD + .BYTE B?PRY + .BYTE 0 +W?PUKE:: .ZWORD "puke" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VOMIT + .BYTE 0 +W?PULL:: .ZWORD "pull" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MOVE + .BYTE 0 +W?PURCHASE:: .ZWORD "purcha" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BUY + .BYTE 0 +W?PURPLE:: .ZWORD "purple" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PURPLE + .BYTE 0 +W?PURSUE:: .ZWORD "pursue" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOLLOW + .BYTE 0 +W?PUSH:: .ZWORD "push" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUSH + .BYTE 0 +W?PUSSY:: .ZWORD "pussy" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PUSSY + .BYTE 0 +W?PUT:: .ZWORD "put" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STICK + .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?RABBIT:: .ZWORD "rabbit" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RAF:: .ZWORD "raf" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RAFT:: .ZWORD "raft" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RAGGED:: .ZWORD "ragged" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RAGGED + .BYTE 0 +W?RAISE:: .ZWORD "raise" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAISE + .BYTE 0 +W?RAKE:: .ZWORD "rake" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?RAKE + .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?RAY:: .ZWORD "ray" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?REACH:: .ZWORD "reach" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?REACH + .BYTE 0 +W?READ:: .ZWORD "read" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?READ + .BYTE 0 +W?REAR:: .ZWORD "rear" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?REAR + .BYTE 0 +W?RECTAN:: .ZWORD "rectan" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RECTAN + .BYTE 0 +W?RED:: .ZWORD "red" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RED + .BYTE 0 +W?REDDISH:: .ZWORD "reddis" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?REDDISH + .BYTE 0 +W?REFLECTING:: .ZWORD "reflec" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?REFLECTING + .BYTE 0 +W?REGURGITATE:: .ZWORD "regurg" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VOMIT + .BYTE 0 +W?RELIABLE:: .ZWORD "reliab" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RELIABLE + .BYTE 0 +W?RELIEVE:: .ZWORD "reliev" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RELIEVE + .BYTE 0 +W?RELLIS:: .ZWORD "rellis" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?REMOVE:: .ZWORD "remove" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?REMOVE + .BYTE 0 +W?REPLY:: .ZWORD "reply" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ANSWER + .BYTE 0 +W?RESCUE:: .ZWORD "rescue" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SAVE + .BYTE 0 +W?RESTAR:: .ZWORD "restar" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RESTAR + .BYTE 0 +W?RESTOR:: .ZWORD "restor" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RESTOR + .BYTE 0 +W?RESTROOM:: .ZWORD "restro" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RETURN:: .ZWORD "return" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RETURN + .BYTE ACT?RETURN +W?RICKETY:: .ZWORD "ricket" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RICKETY + .BYTE 0 +W?RIDDLE:: .ZWORD "riddle" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RIDE:: .ZWORD "ride" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BOARD + .BYTE 0 +W?RIP:: .ZWORD "rip" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RIP + .BYTE 0 +W?RISE:: .ZWORD "rise" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STAND + .BYTE 0 +W?ROBOT:: .ZWORD "robot" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ROBOT + .BYTE 0 +W?ROBOTIC:: .ZWORD "roboti" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ROBOTIC + .BYTE 0 +W?ROCK:: .ZWORD "rock" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHAKE + .BYTE 0 +W?ROCK-A-BYE:: .ZWORD "rock-a" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHAKE + .BYTE 0 +W?ROCKY:: .ZWORD "rocky" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ROCKY + .BYTE 0 +W?ROLL:: .ZWORD "roll" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ROLL + .BYTE 0 +W?ROOF:: .ZWORD "roof" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ROOM:: .ZWORD "room" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ROPE:: .ZWORD "rope" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ROTATE:: .ZWORD "rotate" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?ROUSE:: .ZWORD "rouse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAKE + .BYTE 0 +W?ROYAL:: .ZWORD "royal" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ROYAL + .BYTE 0 +W?RUB:: .ZWORD "rub" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RUB + .BYTE 0 +W?RUBBER:: .ZWORD "rubber" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RUBBER + .BYTE 0 +W?RUBIES:: .ZWORD "rubies" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RUBY:: .ZWORD "ruby" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RULE:: .ZWORD "rule" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RULE + .BYTE 0 +W?RULES:: .ZWORD "rules" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RUMMAG:: .ZWORD "rummag" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SEARCH + .BYTE 0 +W?RUN:: .ZWORD "run" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?RUSTED:: .ZWORD "rusted" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RUSTED + .BYTE 0 +W?S:: .ZWORD "s" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?SOUTH + .BYTE 26 +W?SACK:: .ZWORD "sack" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SAIN:: .ZWORD "sain" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SALES:: .ZWORD "sales" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SALES + .BYTE 0 +W?SALESMAN:: .ZWORD "salesm" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SALESMAN + .BYTE 0 +W?SAND:: .ZWORD "sand" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SAND + .BYTE 0 +W?SAND-COVERED:: .ZWORD "sand-c" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SAND-COVERED + .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?SCALE:: .ZWORD "scale" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLIMB + .BYTE 0 +W?SCAT:: .ZWORD "scat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCAT + .BYTE 0 +W?SCENT:: .ZWORD "scent" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SCIENTIST:: .ZWORD "scient" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SCIENTIST + .BYTE 0 +W?SCORE:: .ZWORD "score" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCORE + .BYTE 0 +W?SCRAM:: .ZWORD "scram" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCAT + .BYTE 0 +W?SCRAP:: .ZWORD "scrap" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SCRATCH:: .ZWORD "scratc" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?SCREAM:: .ZWORD "scream" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YELL + .BYTE 0 +W?SCREW:: .ZWORD "screw" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FUCK + .BYTE 0 +W?SCRIPT:: .ZWORD "script" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCRIPT + .BYTE 0 +W?SCULPTED:: .ZWORD "sculpt" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SCULPTED + .BYTE 0 +W?SE:: .ZWORD "se" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?SE + .BYTE 27 +W?SEARCH:: .ZWORD "search" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SEARCH + .BYTE 0 +W?SECOND:: .ZWORD "second" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SECOND + .BYTE 0 +W?SECRE:: .ZWORD "secre" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SECRE + .BYTE 0 +W?SECRET:: .ZWORD "secret" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SECRET + .BYTE 0 +W?SECURE:: .ZWORD "secure" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?SEDUCE:: .ZWORD "seduce" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FUCK + .BYTE 0 +W?SEEK:: .ZWORD "seek" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FIND + .BYTE 0 +W?SELF:: .ZWORD "self" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SELL:: .ZWORD "sell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HAND + .BYTE 0 +W?SET:: .ZWORD "set" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?SEX:: .ZWORD "sex" + .BYTE PS?BUZZ-WORD + .BYTE B?SEX + .BYTE 0 +W?SHADOWY:: .ZWORD "shadow" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SHADOWY + .BYTE 0 +W?SHAKE:: .ZWORD "shake" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHAKE + .BYTE 0 +W?SHAPE:: .ZWORD "shape" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SHAPE + .BYTE 0 +W?SHAPES:: .ZWORD "shapes" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHEE:: .ZWORD "shee" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SHEE + .BYTE 0 +W?SHEET:: .ZWORD "sheet" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHELF:: .ZWORD "shelf" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHINE:: .ZWORD "shine" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POINT + .BYTE 0 +W?SHIP:: .ZWORD "ship" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHIT:: .ZWORD "shit" + .BYTE PS?VERB+PS?PREPOSITION+P1?OBJECT + .BYTE PR?SHIT + .BYTE ACT?SHIT +W?SHITHEAD:: .ZWORD "shithe" + .BYTE PS?BUZZ-WORD + .BYTE B?SHITHEAD + .BYTE 0 +W?SHITTY:: .ZWORD "shitty" + .BYTE PS?BUZZ-WORD + .BYTE B?SHITTY + .BYTE 0 +W?SHOO:: .ZWORD "shoo" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCAT + .BYTE 0 +W?SHOP:: .ZWORD "shop" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHOUT:: .ZWORD "shout" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YELL + .BYTE 0 +W?SHOW:: .ZWORD "show" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHOW + .BYTE 0 +W?SHRED:: .ZWORD "shred" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RIP + .BYTE 0 +W?SHUT:: .ZWORD "shut" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLOSE + .BYTE 0 +W?SICK:: .ZWORD "sick" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SICK + .BYTE 0 +W?SIDLE:: .ZWORD "sidle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?SIGH:: .ZWORD "sigh" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SIGH + .BYTE 0 +W?SIGN:: .ZWORD "sign" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SIMPLE:: .ZWORD "simple" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SIMPLE + .BYTE 0 +W?SINK:: .ZWORD "sink" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?SINK + .BYTE 0 +W?SIP:: .ZWORD "sip" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DRINK + .BYTE 0 +W?SIT:: .ZWORD "sit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SIT + .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?SLAB:: .ZWORD "slab" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SLAP:: .ZWORD "slap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?SLAY:: .ZWORD "slay" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?SLEEP:: .ZWORD "sleep" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?SLEEP + .BYTE 0 +W?SLENDER:: .ZWORD "slende" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SLENDER + .BYTE 0 +W?SLICE:: .ZWORD "slice" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?SLICE + .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 0 + .BYTE 0 +W?SMALL:: .ZWORD "small" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 +W?SMALLER:: .ZWORD "smalle" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 +W?SMASH:: .ZWORD "smash" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEMOLI + .BYTE 0 +W?SMEAR:: .ZWORD "smear" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SMEAR + .BYTE 0 +W?SMELL:: .ZWORD "smell" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?SMELL + .BYTE 0 +W?SNAP:: .ZWORD "snap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WHIP + .BYTE 0 +W?SNIFF:: .ZWORD "sniff" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SMELL + .BYTE 0 +W?SNOOZE:: .ZWORD "snooze" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?SLEEP + .BYTE 0 +W?SOD:: .ZWORD "sod" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SOME:: .ZWORD "some" + .BYTE PS?BUZZ-WORD + .BYTE B?SOME + .BYTE 0 +W?SOOL:: .ZWORD "sool" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SOUTH:: .ZWORD "south" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?SOUTH + .BYTE 26 +W?SOUTHE:: .ZWORD "southe" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?SE + .BYTE 27 +W?SOUTHWEST:: .ZWORD "southw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?SW + .BYTE 25 +W?SPACE:: .ZWORD "space" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SPACE + .BYTE 0 +W?SPACESHIP:: .ZWORD "spaces" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SPEAK:: .ZWORD "speak" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TALK + .BYTE 0 +W?SPILL:: .ZWORD "spill" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POUR + .BYTE 0 +W?SPIN:: .ZWORD "spin" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?SPLATTERED:: .ZWORD "splatt" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SPLATTERED + .BYTE 0 +W?SPREAD:: .ZWORD "spread" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BEND + .BYTE 0 +W?SPY:: .ZWORD "spy" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SQUARE:: .ZWORD "square" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SQUARE + .BYTE 0 +W?SQUID:: .ZWORD "squid" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STAB:: .ZWORD "stab" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?STAGNANT:: .ZWORD "stagna" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STAGNANT + .BYTE 0 +W?STAIN:: .ZWORD "stain" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?STAIN + .BYTE 0 +W?STAINED:: .ZWORD "staine" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STAINED + .BYTE 0 +W?STAIR:: .ZWORD "stair" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STAIRS:: .ZWORD "stairs" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STAIRW:: .ZWORD "stairw" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STALLION:: .ZWORD "stalli" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STAND:: .ZWORD "stand" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STAND + .BYTE 0 +W?START:: .ZWORD "start" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?START + .BYTE 0 +W?STATUS:: .ZWORD "status" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STATUS + .BYTE 0 +W?STEER:: .ZWORD "steer" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?STEP:: .ZWORD "step" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?STICK:: .ZWORD "stick" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?STICK + .BYTE 0 +W?STIMULATE:: .ZWORD "stimul" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STIMULATE + .BYTE 0 +W?STONE:: .ZWORD "stone" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STONE + .BYTE 0 +W?STOOL:: .ZWORD "stool" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STOOP:: .ZWORD "stoop" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STORE:: .ZWORD "store" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STRANGE:: .ZWORD "strang" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STRANGE + .BYTE 0 +W?STRAP:: .ZWORD "strap" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?STRAPS:: .ZWORD "straps" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STRETCH:: .ZWORD "stretc" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LIMBER + .BYTE 0 +W?STRIKE:: .ZWORD "strike" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?STRIP:: .ZWORD "strip" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNDRES + .BYTE 0 +W?STRIPS:: .ZWORD "strips" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STROKE:: .ZWORD "stroke" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?STRONG:: .ZWORD "strong" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STRONG + .BYTE 0 +W?STRUCTURE:: .ZWORD "struct" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STUD:: .ZWORD "stud" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STUDY:: .ZWORD "study" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?STUFF:: .ZWORD "stuff" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STICK + .BYTE 0 +W?SUCK:: .ZWORD "suck" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SUCK + .BYTE 0 +W?SUCKLE:: .ZWORD "suckle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SUCKLE + .BYTE 0 +W?SUGGESTIVE:: .ZWORD "sugges" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SUGGESTIVE + .BYTE 0 +W?SUI:: .ZWORD "sui" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SUIT:: .ZWORD "suit" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SULTAN:: .ZWORD "sultan" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SULTAN + .BYTE 0 +W?SUPER:: .ZWORD "super" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SUPER + .BYTE ACT?SUPER +W?SUPERBRIEF:: .ZWORD "superb" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SUPER + .BYTE 0 +W?SURE:: .ZWORD "sure" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?SW:: .ZWORD "sw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?SW + .BYTE 25 +W?SWALLOW:: .ZWORD "swallo" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DRINK + .BYTE 0 +W?SWAP:: .ZWORD "swap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BARTER + .BYTE 0 +W?SWAYING:: .ZWORD "swayin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SWAYING + .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?SWITCH:: .ZWORD "switch" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?SWORD:: .ZWORD "sword" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SWORDS:: .ZWORD "swords" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?T:: .ZWORD "t" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?T + .BYTE 0 +W?T-REMOVER:: .ZWORD "t-remo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?TALL:: .ZWORD "tall" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TALL + .BYTE 0 +W?TAME:: .ZWORD "tame" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAME + .BYTE 0 +W?TAP:: .ZWORD "tap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAP + .BYTE 0 +W?TASTE:: .ZWORD "taste" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TASTE + .BYTE 0 +W?TATTERED:: .ZWORD "tatter" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TATTERED + .BYTE 0 +W?TEA:: .ZWORD "tea" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TEA + .BYTE 0 +W?TEA-REMOVER:: .ZWORD "tea-re" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TEA-REMOVER + .BYTE 0 +W?TEAR:: .ZWORD "tear" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RIP + .BYTE 0 +W?TEE:: .ZWORD "tee" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TEE + .BYTE 0 +W?TEE-REMOVER:: .ZWORD "tee-re" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TEE-REMOVER + .BYTE 0 +W?TEENSY:: .ZWORD "teensy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 +W?TELEPHONE:: .ZWORD "teleph" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TELEPHONE + .BYTE 0 +W?TELL:: .ZWORD "tell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TELL + .BYTE 0 +W?TEN:: .ZWORD "ten" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TEN + .BYTE 0 +W?TENT:: .ZWORD "tent" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TENTAC:: .ZWORD "tentac" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TENTAC + .BYTE 0 +W?THANK:: .ZWORD "thank" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THANKS + .BYTE 0 +W?THANKS:: .ZWORD "thanks" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THANKS + .BYTE 0 +W?THAT:: .ZWORD "that" + .BYTE PS?BUZZ-WORD + .BYTE B?THAT + .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 0 + .BYTE 0 +W?THEN:: .ZWORD "then" + .BYTE PS?BUZZ-WORD + .BYTE B?THEN + .BYTE 0 +W?THERMA:: .ZWORD "therma" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?THERMA + .BYTE 0 +W?THETA:: .ZWORD "theta" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?THETA + .BYTE 0 +W?THIS:: .ZWORD "this" + .BYTE PS?BUZZ-WORD + .BYTE B?THIS + .BYTE 0 +W?THORBAST:: .ZWORD "thorba" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?THORBAST + .BYTE 0 +W?THROUGH:: .ZWORD "throug" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?THROUGH + .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?THROUGH + .BYTE 0 +W?TIE:: .ZWORD "tie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?TIFF:: .ZWORD "tiff" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TIFF'S:: .ZWORD "tiff's" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TIFF'S + .BYTE 0 +W?TIFFAN:: .ZWORD "tiffan" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TIFFAN + .BYTE 0 +W?TIGHT:: .ZWORD "tight" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TIGHT + .BYTE 0 +W?TINIER:: .ZWORD "tinier" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 +W?TINKLE:: .ZWORD "tinkle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PEE + .BYTE 0 +W?TINY:: .ZWORD "tiny" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 +W?TIT:: .ZWORD "tit" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TITS:: .ZWORD "tits" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TO:: .ZWORD "to" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?TO + .BYTE 0 +W?TOGETHER:: .ZWORD "togeth" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?TOGETHER + .BYTE 0 +W?TOILET:: .ZWORD "toilet" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TORCH:: .ZWORD "torch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?TOUCH + .BYTE 0 +W?TOWARD:: .ZWORD "toward" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?TO + .BYTE 0 +W?TOWER:: .ZWORD "tower" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TOWERING:: .ZWORD "toweri" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TOWERING + .BYTE 0 +W?TRADE:: .ZWORD "trade" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BARTER + .BYTE 0 +W?TRAMPLE:: .ZWORD "trampl" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEMOLI + .BYTE 0 +W?TRAP:: .ZWORD "trap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CATCH + .BYTE 0 +W?TRAY:: .ZWORD "tray" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TREE:: .ZWORD "tree" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TREE + .BYTE 0 +W?TREE-:: .ZWORD "tree-" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TREES:: .ZWORD "trees" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TRELLIS:: .ZWORD "trelli" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TREMENDOUS:: .ZWORD "tremen" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?TRENT:: .ZWORD "trent" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TRENT + .BYTE 0 +W?TUBE:: .ZWORD "tube" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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 22 +W?UBE:: .ZWORD "ube" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?UH-UH:: .ZWORD "uh-uh" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?NO + .BYTE 0 +W?UNANGL:: .ZWORD "unangl" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?UNANGL + .BYTE 0 +W?UNATTA:: .ZWORD "unatta" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UNBLOCK:: .ZWORD "unbloc" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNCOVER + .BYTE 0 +W?UNCOVER:: .ZWORD "uncove" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNCOVER + .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?UNDRES:: .ZWORD "undres" + .BYTE PS?VERB+PS?PREPOSITION+P1?OBJECT + .BYTE PR?UNDRES + .BYTE ACT?UNDRES +W?UNFAST:: .ZWORD "unfast" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UNKNOT:: .ZWORD "unknot" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UNLOCK:: .ZWORD "unlock" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNLOCK + .BYTE 0 +W?UNPIN:: .ZWORD "unpin" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNCOVER + .BYTE 0 +W?UNPLUG:: .ZWORD "unplug" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNCOVER + .BYTE 0 +W?UNRELIABLE:: .ZWORD "unreli" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?UNRELIABLE + .BYTE 0 +W?UNROLL:: .ZWORD "unroll" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNROLL + .BYTE 0 +W?UNSCRIPT:: .ZWORD "unscri" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNSCRIPT + .BYTE 0 +W?UNSTRAP:: .ZWORD "unstra" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UNTANG:: .ZWORD "untang" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?UNTANG + .BYTE 0 +W?UNTIE:: .ZWORD "untie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UNWRAP:: .ZWORD "unwrap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?REMOVE + .BYTE 0 +W?UP:: .ZWORD "up" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?UP + .BYTE 22 +W?UPSTAIRS:: .ZWORD "upstai" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?UP + .BYTE 22 +W?URINATE:: .ZWORD "urinat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PEE + .BYTE 0 +W?USE:: .ZWORD "use" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?USE + .BYTE 0 +W?USING:: .ZWORD "using" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?WITH + .BYTE 0 +W?VAGINA:: .ZWORD "vagina" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?VAULT:: .ZWORD "vault" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?VENUS:: .ZWORD "venus" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VENUS + .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?VIEWPORT:: .ZWORD "viewpo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?VIZICOMM:: .ZWORD "vizico" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VIZICOMM + .BYTE 0 +W?VOMIT:: .ZWORD "vomit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VOMIT + .BYTE 0 +W?W:: .ZWORD "w" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?WEST + .BYTE 24 +W?WADDLING:: .ZWORD "waddli" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WADDLING + .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?WARM:: .ZWORD "warm" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WARM + .BYTE 0 +W?WARNING:: .ZWORD "warnin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WARNING + .BYTE 0 +W?WASH:: .ZWORD "wash" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WASH + .BYTE 0 +W?WATCH:: .ZWORD "watch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?WATER:: .ZWORD "water" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?WEAR:: .ZWORD "wear" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WEAR + .BYTE 0 +W?WED:: .ZWORD "wed" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MARRY + .BYTE 0 +W?WEE:: .ZWORD "wee" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PEE + .BYTE 0 +W?WEE-WEE:: .ZWORD "wee-we" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PEE + .BYTE 0 +W?WEENSY:: .ZWORD "weensy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 +W?WELL:: .ZWORD "well" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?WEST:: .ZWORD "west" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?WEST + .BYTE 24 +W?WHAT:: .ZWORD "what" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WHAT + .BYTE 0 +W?WHAT':: .ZWORD "what'" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WHAT + .BYTE 0 +W?WHATS:: .ZWORD "whats" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WHAT + .BYTE 0 +W?WHERE:: .ZWORD "where" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WHERE + .BYTE 0 +W?WHERES:: .ZWORD "wheres" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WHERE + .BYTE 0 +W?WHIE:: .ZWORD "whie" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WHIE + .BYTE 0 +W?WHIFF:: .ZWORD "whiff" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SMELL + .BYTE 0 +W?WHIP:: .ZWORD "whip" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WHIP + .BYTE 0 +W?WHITE:: .ZWORD "white" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WHITE + .BYTE 0 +W?WHO:: .ZWORD "who" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WHAT + .BYTE 0 +W?WHOLE:: .ZWORD "whole" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WHOLE + .BYTE 0 +W?WHOS:: .ZWORD "whos" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WHAT + .BYTE 0 +W?WICKER:: .ZWORD "wicker" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WICKER + .BYTE 0 +W?WIDE:: .ZWORD "wide" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WIDE + .BYTE 0 +W?WIFE:: .ZWORD "wife" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WIFE + .BYTE 0 +W?WIFE'S:: .ZWORD "wife's" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WIFE'S + .BYTE 0 +W?WINDING:: .ZWORD "windin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WINDING + .BYTE 0 +W?WINDOW:: .ZWORD "window" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?WIPE:: .ZWORD "wipe" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WASH + .BYTE 0 +W?WITH:: .ZWORD "with" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?WITH + .BYTE 0 +W?WITHDR:: .ZWORD "withdr" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXIT + .BYTE 0 +W?WOMAN:: .ZWORD "woman" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WOMAN + .BYTE 0 +W?WOMEN:: .ZWORD "women" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WOMEN + .BYTE 0 +W?WOODEN:: .ZWORD "wooden" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WOODEN + .BYTE 0 +W?WRAP:: .ZWORD "wrap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WRAP + .BYTE 0 +W?WRECK:: .ZWORD "wreck" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEMOLI + .BYTE 0 +W?Y:: .ZWORD "y" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?YACHT:: .ZWORD "yacht" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?YELL:: .ZWORD "yell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YELL + .BYTE 0 +W?YES:: .ZWORD "yes" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?YOUNG:: .ZWORD "young" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?YOUNG + .BYTE 0 +W?YOUR:: .ZWORD "your" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?YOUR + .BYTE 0 +W?YUP:: .ZWORD "yup" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?Z:: .ZWORD "z" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAIT + .BYTE 0 +W?ZZMGCK:: .ZWORD "zzmgck" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?ZZMGCK + .BYTE 0 + .ENDT + + +; END LOAD + +ENDLOD:: + + + +; PURE TABLES ARE DEFINED HERE + +PURTBL:: + +T?30:: .TABLE + 9 + W?DUST + 0 + UNIMPORTANT-THING-F + W?DOOR + W?FRONT + BAR-DOOR-F + W?BAR + 0 + BAR-F + .ENDT + +T?31:: .TABLE + 3 + W?SINK + 0 + SINK-F + .ENDT + +T?32:: .TABLE + 18 + W?CROWN + W?ROYAL + MITRE-CROWN-F + W?CROWN + W?MITRE + MITRE-CROWN-F + W?CROWN + W?KING'S + MITRE-CROWN-F + W?HAIR + W?GOLDEN + GOWN-F + W?GOWN + W?WHITE + GOWN-F + W?GOWN + W?FLOWING + GOWN-F + .ENDT + +T?33:: .TABLE + 12 + W?DUST + 0 + UNIMPORTANT-THING-F + W?CROWN + W?SMALL + FROG-CROWN-F + W?CROWN + W?GOLD + FROG-CROWN-F + W?CROWN + W?FROG'S + FROG-CROWN-F + .ENDT + +T?34:: .TABLE + 21 + W?BUOY + W?RED + BUOY-F + W?BUOY + W?WARNING + BUOY-F + W?BUOY + W?SWAYING + BUOY-F + W?BARGE + W?ROYAL + BARGE-FROM-CANAL-F + W?BARGE + W?WOODEN + BARGE-FROM-CANAL-F + W?BUTTON + W?ORANGE + BARGE-FROM-CANAL-F + W?BUTTON + W?PURPLE + BARGE-FROM-CANAL-F + .ENDT + +T?36:: .TABLE + 6 + W?STORE + 0 + OUTSIDE-SHOP-F + W?SHOP + 0 + OUTSIDE-SHOP-F + .ENDT + +T?37:: .TABLE + 6 + W?STORE + 0 + INSIDE-SHOP-F + W?SHOP + 0 + INSIDE-SHOP-F + .ENDT + +T?38:: .TABLE + 3 + W?LIGHT + 0 + UNIMPORTANT-THING-F + .ENDT + +T?39:: .TABLE + 15 + W?LAUNDRY + W?DIRTY + UNIMPORTANT-THING-F + W?BRA + 0 + UNIMPORTANT-THING-F + W?BRAS + 0 + UNIMPORTANT-THING-F + W?BRASSIERE + 0 + UNIMPORTANT-THING-F + W?JOCKSTRAP + 0 + UNIMPORTANT-THING-F + .ENDT + +T?40:: .TABLE + 6 + W?WELL + W?LARGE + WELL-F + W?WELL + W?STONE + WELL-F + .ENDT + +T?41:: .TABLE + 9 + W?HAREM + 0 + HAREM-OBJECT-F + W?WIFE + 0 + MATE-F + W?HUSBAND + 0 + MATE-F + .ENDT + +T?44:: .TABLE + 3 + W?HAREM + 0 + HAREM-OBJECT-F + .ENDT + +T?47:: .TABLE + 6 + W?WELL + W?LARGE + WELL-F + W?LIGHT + 0 + UNIMPORTANT-THING-F + .ENDT + +T?48:: .TABLE + 3 + W?LADDER + 0 + LADDER-F + .ENDT + +T?49:: .TABLE + 9 + W?RUBY + 0 + UNIMPORTANT-THING-F + W?RUBIES + 0 + UNIMPORTANT-THING-F + W?DIRIGIBLE + 0 + UNIMPORTANT-THING-F + .ENDT + +T?50:: .TABLE + 6 + W?MIRAGE + 0 + UNIMPORTANT-THING-F + W?PIE + W?CREAM + UNIMPORTANT-THING-F + .ENDT + +T?51:: .TABLE + 6 + W?BUOY + W?RED + BUOY-F + W?BUOY + W?WARNING + BUOY-F + .ENDT + +T?52:: .TABLE + 6 + W?TENT + W?RAGGED + OUTSIDE-TENT-F + W?TENT + W?TATTERED + OUTSIDE-TENT-F + .ENDT + +T?53:: .TABLE + 6 + W?TENT + W?RAGGED + INSIDE-TENT-F + W?TENT + W?TATTERED + INSIDE-TENT-F + .ENDT + +T?54:: .TABLE + 6 + W?BAR + 0 + WINDOW-F + W?BARS + 0 + WINDOW-F + .ENDT + +T?58:: .TABLE + 9 + W?DOOR + 0 + LAB-DOOR-F + W?STRAP + 0 + STRAP-F + W?STRAPS + 0 + STRAP-F + .ENDT + +T?59:: .TABLE + 3 + W?CLIFF + W?ROCKY + CLIFF-OBJECT-F + .ENDT + +T?60:: .TABLE + 6 + W?DIAL + 0 + DIAL-F + W?SLOT + W?COIN + COIN-SLOT-F + .ENDT + +T?61:: .TABLE + 6 + W?FENCE + W?TALL + FENCE-F + W?LAWN + 0 + LAWN-OBJECT-F + .ENDT + +T?62:: .TABLE + 6 + W?FLOOR + W?FIRST + FIRST-FLOOR-F + W?FLOOR + W?SECOND + SECOND-FLOOR-F + .ENDT + +T?63:: .TABLE + 3 + W?FLOWER + 0 + FLOWERS-F + .ENDT + +T?64:: .TABLE + 6 + W?SUIT + W?THORBAST + THORBAST-SUIT-F + W?SUIT + W?BLACK + THORBAST-SUIT-F + .ENDT + +T?65:: .TABLE + 3 + W?HOLE + 0 + CRAMPED-SPACE-HOLE-F + .ENDT + +T?66:: .TABLE + 3 + W?CLOSET + W?SMALL + CLOSET-OBJECT-F + .ENDT + +T?67:: .TABLE + 3 + W?ROOF + 0 + ROOF-OBJECT-F + .ENDT + +T?69:: .TABLE + 15 + W?LAWN + 0 + LAWN-OBJECT-F + W?BIRD + 0 + UNIMPORTANT-THING-F + W?BIRDS + 0 + UNIMPORTANT-THING-F + W?FLOWER + 0 + UNIMPORTANT-THING-F + W?FOUNTAIN + 0 + UNIMPORTANT-THING-F + .ENDT + + .ENDI diff --git a/x1str.zap b/x1str.zap new file mode 100644 index 0000000..42e7dfb --- /dev/null +++ b/x1str.zap @@ -0,0 +1,485 @@ + + +; STRINGS ARE DEFINED HERE + +STRBEG:: + + .GSTR STR?1,"Not Here" + .GSTR STR?2,"Actor" + .GSTR STR?3,"Preaction" + .GSTR STR?4,"PRSI" + .GSTR STR?5,"PRSO" + .GSTR STR?6,"OOPS" + .GSTR STR?7,"AGAIN" + .GSTR STR?8,"talk to characters." + .GSTR STR?9,"A" + .GSTR STR?10,"B" + .GSTR STR?11,"C" + .GSTR STR?12,"D" + .GSTR STR?13,"F" + .GSTR STR?14,"S" + .GSTR STR?15,"Sandusky Stablehand" + .GSTR STR?16,"Knight of Columbus" + .GSTR STR?17,"Baron of Buffalo" + .GSTR STR?18,"Viscount of Van Wert County" + .GSTR STR?19,"Earl of Altoona" + .GSTR STR?20,"Marquess of McKeesport" + .GSTR STR?21,"Duke of Detroit" + .GSTR STR?22,"Prince of Pike's Peak" + .GSTR STR?23,"King of Queens" + .GSTR STR?24,"Interplanetary Emperor" + .GSTR STR?25,"Dame of Dayton" + .GSTR STR?26,"Baroness of Buffalo" + .GSTR STR?27,"Viscountess of Van Wert County" + .GSTR STR?28,"Countess of Cleveland" + .GSTR STR?29,"Marchioness of McKeesport" + .GSTR STR?30,"Duchess of Detroit" + .GSTR STR?31,"Princess of Pike's Peak" + .GSTR STR?32,"Queen of King of Prussia" + .GSTR STR?33,"Interplanetary Empress" + .GSTR STR?34,"begins" + .GSTR STR?35,"ends" + .GSTR STR?36,"leave the game" + .GSTR STR?37,"restart" + .GSTR STR?38,"ask" + .GSTR STR?39,"Spreading" + .GSTR STR?40,"Bending" + .GSTR STR?41,"Biting" + .GSTR STR?42,"blow" + .GSTR STR?43,"get into" + .GSTR STR?44,"get onto" + .GSTR STR?45,"untie" + .GSTR STR?46,"leave" + .GSTR STR?47,"drop" + .GSTR STR?48,"burn" + .GSTR STR?49,"climb into" + .GSTR STR?50,"climb onto" + .GSTR STR?51,"close" + .GSTR STR?52,"with" + .GSTR STR?53,"drink" + .GSTR STR?54,"look" + .GSTR STR?55,"Kicking" + .GSTR STR?56,"waist" + .GSTR STR?57,"knee" + .GSTR STR?58,"Knocking on" + .GSTR STR?59,"You leap, and the gravity of Phobos is so weak that you sail up, up, and away! You achieve escape velocity and sail into the icy depths of space." + .GSTR STR?60,"""Aaaiieeee!""" + .GSTR STR?61,"sound" + .GSTR STR?62,"Palm" + .GSTR STR?63,"hands over your eyes" + .GSTR STR?64,"Eyelids" + .GSTR STR?65,"eyes closed" + .GSTR STR?66,"open" + .GSTR STR?67,"look inside" + .GSTR STR?68,"make" + .GSTR STR?69,"Pulling" + .GSTR STR?70,"move" + .GSTR STR?71,"Trying to destroy" + .GSTR STR?72,"nega" + .GSTR STR?73,"ff" + .GSTR STR?74,"n" + .GSTR STR?75,"pick" + .GSTR STR?76,"Pushing" + .GSTR STR?77,"extinguish" + .GSTR STR?78,"Playing in this way with" + .GSTR STR?79,"read" + .GSTR STR?80,"to" + .GSTR STR?81,"return it to" + .GSTR STR?82,"score with" + .GSTR STR?83,"search" + .GSTR STR?84,"Turning" + .GSTR STR?85,"Shaking" + .GSTR STR?86,"smell" + .GSTR STR?87,"taste" + .GSTR STR?88,"talk to" + .GSTR STR?89,"Touching" + .GSTR STR?90,"Fondling" + .GSTR STR?91,"say something ""out loud.""" + .GSTR STR?92,"wear" + .GSTR STR?93,"throat" + .GSTR STR?94,"posi" + .GSTR STR?95,"remove" + .GSTR STR?96,"different-looking angle" + .GSTR STR?97,"earlobe" + .GSTR STR?98,"nose" + .GSTR STR?99,"big toe" + .GSTR STR?100,"elbow" + .GSTR STR?101,"left buttock" + .GSTR STR?102," trails along." + .GSTR STR?103," follows you." + .GSTR STR?104," enters just a few steps behind you." + .GSTR STR?105," loyally stays at your side." + .GSTR STR?106," doesn't do anything." + .GSTR STR?107," accomplishes nothing." + .GSTR STR?108," has no desirable effect." + .GSTR STR?109,"What a concept." + .GSTR STR?110,"Nice try." + .GSTR STR?111,"You've gotta be kidding." + .GSTR STR?112,"Think again, humanoid." + .GSTR STR?113,"Fat chance." + .GSTR STR?114,"Imposterous!" + .GSTR STR?115,"Dream on." + .GSTR STR?116,"Prepossible!" + .GSTR STR?117,"It's the looney bin for you!" + .GSTR STR?118,"You have lost your mind." + .GSTR STR?119,"A bigger waste of time than selling green cheese to the man in the moon." + .GSTR STR?120,"It's not worth it. Believe me." + .GSTR STR?121,"Useless. Unhelpful. Non-productivish. Ineffectivoid." + .GSTR STR?122,"There's another turn down the drain." + .GSTR STR?123,"Why bother?" + .GSTR STR?124,"mount" + .GSTR STR?125,"man" + .GSTR STR?126,"woman" + .GSTR STR?127,"ground" + .GSTR STR?128,"floor" + .GSTR STR?129,"fresh honeysuckle" + .GSTR STR?130,"closed" + .GSTR STR?131,"Done." + .GSTR STR?132,"black circle" + .GSTR STR?133,"uncover" + .GSTR STR?134,"It's too dark to see a thing." + .GSTR STR?135,"You're not holding" + .GSTR STR?136,"There's nothing " + .GSTR STR?137,"You can see" + .GSTR STR?138,"It seems that" + .GSTR STR?139,"You can't see any " + .GSTR STR?140,"You can't " + .GSTR STR?141,"You'll have to " + .GSTR STR?142,"As the result of an ancient leak, the catacombs are knee deep in warm, brackish canal water." + .GSTR STR?143,"There's an engraving on its side." + .GSTR STR?144,"LEATHER GODDESSES OF PHOBOS" + .GSTR STR?145," stick it back in your back pocket" + .GSTR STR?146," spread apart to form an opening" + .GSTR STR?147," the arching towers and curving domes of the notorious Pleasure Palace of " + .GSTR STR?148," Main Attack Fleet" + .GSTR STR?149,"Many sounds seem muffled now that you" + .GSTR STR?150,", but just as you are about to kiss the frog " + .GSTR STR?151," extremely secret and private boudoir" + .GSTR STR?152," forty-five degree angle" + .GSTR STR?153,". Hit the RETURN/ENTER key to " + .GSTR STR?154,"xits bought and sold" + .GSTR STR?155,"Hanging from the base of the long, potent-looking battleship are two pendulous, brimming fuel tanks." + .GSTR STR?156," evolved eating flies weighing a quarter of a" + .GSTR STR?157,"The ground is oozy with proto-slime." + .GSTR STR?158," an ordinary pay vizicomm, with a handset, coin slot, dial, coin return knob, and coin return box." + .GSTR STR?159,". A sign is posted next to the stairs which lead both upwards and downwards." + .GSTR STR?160,"The proprietor stirs somewhat from his lethargy. """ + .GSTR STR?161,"The writing on the button changes as you press it" + .GSTR STR?162,", pinned to the dock by the current. +" + .GSTR STR?163,". To keep it from floating away, you pull the raft out of the water. +" + .GSTR STR?164,"You are already in that mode. +" + .GSTR STR?165,"Look around you. +" + .GSTR STR?166,"You can't do that from here. +" + .GSTR STR?167,"You can't go that way. +" + .GSTR STR?168,"You're holding it! +" + .GSTR STR?169,"You can't smell any odor here. +" + .GSTR STR?170,"Sorry -- nothing beyond the missionary position in SUGGESTIVE level. +" + .GSTR STR?171,"[There seems to be a noun missing in that sentence.] +" + .GSTR STR?172,"You see only blackness. +" + .GSTR STR?173,"You already did that. Senility strikes again! +" + .GSTR STR?174,"You can't take that -- it's part of the vizicomm! +" + .GSTR STR?175,". +" + .GSTR STR?176,"... + +" + .GSTR STR?177,"That would accomplish nothing, since you're covering your eyes with your hands. +" + .GSTR STR?178,"It would take considerably more royal blood than you've got to wear this royal crown. +" + .GSTR STR?179,"""Don't gimme trouble -- just gimme a number between 1 and 8379."" +" + .GSTR STR?180,"t begins crying twice as loudly as before. +" + .GSTR STR?181,"You can only fit one thing in the odd machine at a time. +" + .GSTR STR?182,"Nothing happens. +" + .GSTR STR?183,"The horse can't fit through there! +" + .GSTR STR?184,"Failed. +" + .GSTR STR?185,"Okay. +" + .GSTR STR?186,"Huh? +" + .GSTR STR?187,"Yechh. +" + .GSTR STR?188,"It already is! +" + .GSTR STR?189,"This reveals nothing new. +" + .GSTR STR?190,"You can only rake with a rake. +" + .GSTR STR?191," looks unappetizing, but smells deliciously familiar. +" + .GSTR STR?192,"[There was no verb in that sentence!] +" + .GSTR STR?193,"You don't want to. Believe me. +" + .GSTR STR?194,"You don't have enough dexterity. +" + .GSTR STR?195,"There's no obvious steering mechanism. +" + .GSTR STR?196,"""Phfffft!"" The torch goes out. +" + .GSTR STR?197,"The trellis is too wide to fit in the hole. +" + .GSTR STR?198,"""Leave me alone! I'm manipulating the budget for the invasion. I can't believe how much neuro-tinglers cost these days..."" +" + .GSTR STR?199,"Your hand dwindles disorientingly to a point, like railroad tracks vanishing toward the horizon. +" + .GSTR STR?200,"It's like staring into an eternal void of blackest infinity sucking up all life and thought and hope and being -- or, like what you see after getting your face smashed in a bar fight. You can pick the metaphor you're most familiar with. +" + .GSTR STR?201,"A gust of wind blows you back into the bar." + .GSTR STR?202,"Doors marked ""Ladies"" and ""Gents"" lead, respectively, northeast and northwest." + .GSTR STR?203,"your overalls" + .GSTR STR?204,"comic book" + .GSTR STR?205,"3-D comic book" + .GSTR STR?206,"pizza" + .GSTR STR?207,"Trent" + .GSTR STR?208,"Trent's body" + .GSTR STR?209,"bits of splattered Trent" + .GSTR STR?210,"Thorbast" + .GSTR STR?211,"his sword" + .GSTR STR?212,"Sultan" + .GSTR STR?213,"young woman" + .GSTR STR?214,"photo of Jean Harlow" + .GSTR STR?215,"perfume" + .GSTR STR?216,"burly man in a partial state of undress unleashes a torrent of lewd remarks" + .GSTR STR?217,"Tiffany" + .GSTR STR?218,"Tiffany's body" + .GSTR STR?219,"bits of splattered Tiffany" + .GSTR STR?220,"Thorbala" + .GSTR STR?221,"her sword" + .GSTR STR?222,"Sultaness" + .GSTR STR?223,"young man" + .GSTR STR?224,"photo of Douglas Fairbanks" + .GSTR STR?225,"cologne" + .GSTR STR?226,"female patron begins pummelling you with a purse that must surely contain concrete" + .GSTR STR?227,"sool" + .GSTR STR?228,"clear off" + .GSTR STR?229,"brass loincloth" + .GSTR STR?230,"brass bikini" + .GSTR STR?231,"rule book" + .GSTR STR?232,"As you wander amidst these towering dunes of red Martian sand, you notice three distinct pathways: north, east, and west." + .GSTR STR?233,"Ruin" + .GSTR STR?234,"Another Ruin" + .GSTR STR?235,"Yet Another Ruin" + .GSTR STR?236,"Princess Theta stands demurely by her father's throne, buried up to her thighs in forty-five degree angles." + .GSTR STR?237,"angular" + .GSTR STR?238,"eighy-wo degree angle" + .GSTR STR?239,"east" + .GSTR STR?240,"Sitting on one of the stone blocks is a large green frog. Something about it catches your eye." + .GSTR STR?241,"green" + .GSTR STR?242,"This dock, which extends north into a broad canal, is crafted of fine woods from across the solar system: hickory wood from the forests of Earth, and dickory wood from the jungles of Venus. A path leads south." + .GSTR STR?243,"If you want to jump in the canal, say so." + .GSTR STR?244,"You spot a little white marsmouse running along the dock." + .GSTR STR?245,"aged cedarwood" + .GSTR STR?246,"." + .GSTR STR?247,"land" + .GSTR STR?248,"metallic glint" + .GSTR STR?249,"giant rusted structure" + .GSTR STR?250,"metal structure" + .GSTR STR?251,"slight" + .GSTR STR?252,"worsening" + .GSTR STR?253,"splitting" + .GSTR STR?254,"fantastically unbelievable ultra-awesome migraine" + .GSTR STR?255,"Your anatomy, in absorbing a dose of super-ionized energy in trans-lethal levels, has ultimately equalized this submolecular environmental imbalance by fulminating a cataclysmic exothermic reaction. Or to put it in lay terms, you've just blown up." + .GSTR STR?256,"south" + .GSTR STR?257,"north" + .GSTR STR?258,"west" + .GSTR STR?259,"This tiny dock, partly buried by drifting sand, extends south into the canal. A break in the sand forms a trail to the north." + .GSTR STR?260,"You are in a tiny basin, protected by dunes from the fierce Martian winds. The dunes are impassable, except to the south." + .GSTR STR?261,"sick of lip balm" + .GSTR STR?262,"The alien may have died of acute chapped lips (a perennial problem in the arid Martian climate). If so, it was a sudden death, for the lip balm near the body is completely unused." + .GSTR STR?263,"Lying next to the body, partially buried in the sand, is a strange coded message." + .GSTR STR?264,"A strange alien, probably a member of one of the ancient warrior races of Mars, lies dead at the base of a dune." + .GSTR STR?265,"This dock, on the south shore of the canal, is named after Don Donald, the first resident of Mars. There are no paths leading inland, but a tall dune to the south is less steep than the others." + .GSTR STR?266,"From this vantage, you can see the canal curving south, a bit downstream from here. Just after this bend, two docks flank the canal: an opulent dock on the east bank, and a dilapidated one on the closer shore. + You could slide down the dune to the north or the east." + .GSTR STR?267,"East or north?" + .GSTR STR?268,"This dock is in remarkably good shape, considering that it hasn't been painted in fifteen thousand years. A wide canal, flowing south, lies to the east, and an opening between the dunes leads west." + .GSTR STR?269,"As with all Martian civilization, this once-fashionable shopping center has fallen upon hard times; the only store to have endured the fifteen-millenia recession lies to the south. The canal is still as visible as it was when scheming marketeers misnamed the mall generations ago -- in other words, not at all. A path leads east, and a dune to the west seems mountable." + .GSTR STR?270,"This store is in good shape only relative to the other shops in the mall; for example, the last time it was vacuumed, humans were just inventing writing. The dust nearly covers the proprietor, who sits forlornly in the corner beneath a faded sign. An exit is barely visible through the dust to the north." + .GSTR STR?271,"ube" + .GSTR STR?272,"Now THIS Is My Kind of Dock" + .GSTR STR?273,"If I owned a pier on a major Martian canal, I'd want it to look just like this one -- handsome, well-proportioned, and amply endowed with jade and ivory. I could probably live without the alabaster stair which leads up at the end of the dock, to the east." + .GSTR STR?274,"A shaft of sunlight penetrates the stained glass windows and glistens off a large reflecting pool, filling this huge entry hall with a seductive pattern of tantalizing colors. Gleaming marble pillars rise majestically from the pool to support a towering, arched roof. You are on a branching pathway suspended above the pool, leading toward shadowy archways in every direction." + .GSTR STR?275,"As you approach, you realize that the archway in this direction is merely a design on a solid wall." + .GSTR STR?276,"clohes pin" + .GSTR STR?277,"Today must be drying day at the laundry, since there's only one clothes pin left." + .GSTR STR?278,"These twisted trees and elegant footbridges are even more beautiful than the gardens of the most lavish Fu Manchu films. Paths from the north, southeast, and west meet at a large well of hand-carved stone in the center of the garden." + .GSTR STR?279,"A slender tower protrudes magnificently above the palace grounds. A stair winds up into the tower and an oriental garden spreads out to the northwest." + .GSTR STR?280,"By standing erect at the parapet of this mighty tower, you command an exciting view. Below, gardens and courtyards intermingle with the palace buildings, forming a fertile oasis in the Martian desert. Off to the west, docks straddle a deep canal. On the far shore, sand dunes lap at crumbling buildings. On the top step of a winding stair is a black circle." + .GSTR STR?281,"A guard stands by the entrance to the harem, apparently waiting for a response from you." + .GSTR STR?282,"Oops, deceased" + .GSTR STR?283,"Vacationing on Ceres" + .GSTR STR?284,"Bad case of harem fever" + .GSTR STR?285,"you answer incorrectly" + .GSTR STR?286,"you do not answer" + .GSTR STR?287,"you enter the harem before answering" + .GSTR STR?288,"you attempt to leave" + .GSTR STR?289,"you touch me in any way" + .GSTR STR?290,"I happen to sneeze" + .GSTR STR?291,"any situation not covered by the rules occurs" + .GSTR STR?292,"You never actually notice where the tiger comes from, only that it seems very very very very ferocious." + .GSTR STR?293,"if you just said SAY or ANSWER with nothing after" + .GSTR STR?294," forewarned, the guards reduce you to three dots." + .GSTR STR?295,"the latest sounds in jazz." + .GSTR STR?296,"a new radio serial." + .GSTR STR?297,"possible uses of electricity." + .GSTR STR?298,"the writings of Jules Verne." + .GSTR STR?299,"the intelligence level of beavers." + .GSTR STR?300,"reliable torch" + .GSTR STR?301,"orch" + .GSTR STR?302,"unreliable torch" + .GSTR STR?303,"secre map" + .GSTR STR?304,"secret catacombs map" + .GSTR STR?305,"You stumble into the dark, hit a wall, knock yourself unconscious, fall into a foot of water, drown, and are devoured by Martian beetles." + .GSTR STR?306,"No living creature can even guess how long this storehouse has sat amidst the catacombs, undisturbed by man or by time, untouched by wars and weather, a silent witness to the passing eons, the rise and fall of empires, the births and deaths of countless billions, its only visitor the dark waters of a Martian canal." + .GSTR STR?307,"Sitting in one corner is a Cleveland telephone directory." + .GSTR STR?308,"Damp walls of brick rise to a point of light far above. A black circle is visible just below the surface of the water." + .GSTR STR?309,"The well has no handholds." + .GSTR STR?310,"This spot is much like the rest of the catacombs, except that a ladder leads up into the darkness." + .GSTR STR?311,"Generations of Sultans and Sultanesses are entombed here, along with their vast wealth, their favorite servants, and some form of transportation to the next world. For example, one Sultan lies amidst mountains of rubies, surrounded by a fleet of dirigibles." + .GSTR STR?312,"raft" + .GSTR STR?313,"raf" + .GSTR STR?314,"remove it from" + .GSTR STR?315,", and you with it." + .GSTR STR?316,"deflated raft" + .GSTR STR?317,"beetle" + .GSTR STR?318,"crab" + .GSTR STR?319," A Martian alligator, large enough to blend in inconspicuously with Great Britain's mercantile fleet, swims by and gulps a huge bunch of canal water -- the bunch that happens to include you, by the way." + .GSTR STR?320,"gator" + .GSTR STR?321,"No, not a typo. ""Dessert"" refers to the fifty foot Martian Cream Pie here. A mirage, of course. People hopelessly lost in the desert often see strange mirages, such as cream pies, lakes, or trails to the northwest and southeast." + .GSTR STR?322,"This tiny dock is the maritime entrance to the once-famous Wattz-Upp section of Mars. East of the dock is a wide, north-south canal; you can hear a gurgling sound to the west. There's a chill in the air; you might be approaching the south polar cap." + .GSTR STR?323,"white circle" + .GSTR STR?324,"A little bunny rabbit is sipping at the waters of the oasis." + .GSTR STR?325,"This is the southern terminus of the canal. Far below this dock, teleportation machinery transports massive quantities of water back to the head of the canal in the equatorial region of Mars. It's quite chilly, and the dock is covered with a sheet of ice. To the south, as far as you can see, is the bleak whiteness of the southern ice cap." + .GSTR STR?326,"A solitary black circle is the only break in an vaste expanse of whiteness extending to the horizon. Like a dark speck in a sea of white, or a huge piece of typing paper with but a single period typed upon it, this black circle seems to have been placed here entirely as an opportunity for some silly literary allusions. To avoid the danger of accidentally typing an ""L"" and having to read them again, follow the faint trails to the north or east." + .GSTR STR?327,"You'd only get lost in the snow and die." + .GSTR STR?328,"There's a wall of penguins in the way." + .GSTR STR?329,"This is the campsite of a family of nomadic robotic gypsies. A ragged tent is pitched on the north side of the camp, and trails lead northwest and south." + .GSTR STR?330,"This tattered tent, home to the deceased robots, provides meager protection against the cold polar winds. You can exit to the south." + .GSTR STR?331,"robot infant" + .GSTR STR?332,"baby robot wrapped in a blanket" + .GSTR STR?333,"in the basket" + .GSTR STR?334,"abandon" + .GSTR STR?335,"A matronly woman of massive proportions and rather cubical aspect " + .GSTR STR?336,"You are standing near the front stoop of a very large igloo. Its door is flanked by a faded sign and a barred window. Paths lead north, north and north." + .GSTR STR?337,"This is as far south as you can go!" + .GSTR STR?338,"You walk in a tight circle, returning to your starting point." + .GSTR STR?339,"steal" + .GSTR STR?340,"on the stoop" + .GSTR STR?341,"pair of coon balls" + .GSTR STR?342," as your flesh is quietly dissolved away. What a way to go." + .GSTR STR?343,"jar of untangling cream" + .GSTR STR?344,"jar of unangling cream" + .GSTR STR?345,"Inexplicably, sitting next to the circle, untouched by time or slime, is a jar of ointment." + .GSTR STR?346,"Princess Theta" + .GSTR STR?347," the angles return to their former forms: a golden chariot, a velvet tapestry, various fruits, some handcuffs, a flock of ducks ... and a huge hungry tiger." + .GSTR STR?348," down here also!" + .GSTR STR?349,"can of black sain" + .GSTR STR?350,"""MarsCo Brand Black Hyperdimensional Transport Circle Stain.""" + .GSTR STR?351,"To the north: the entrance to a plasticoid house, the only type of structure that lasts more than three minutes in the volatile Venusian biosphere. To the south and east: paths into the jungle." + .GSTR STR?352,"You're near the rear entrance of a house, to the south. Trails enter the jungle to the east and the west." + .GSTR STR?353,"An extraordinary number of door-to-door salesmen are camped out here, having been booted away from the front door, but still hopeful of making a sale." + .GSTR STR?354,"""No thanks, I've already got one." + .GSTR STR?355,"""Stop insulting me. There's a glut of those on the market." + .GSTR STR?356,"""That model went out of style before I was born!" + .GSTR STR?357,"""I'll throw in a free two-week service contract.""" + .GSTR STR?358,"""Barter-back guarantee!""" + .GSTR STR?359,"""Never had a complaint in 37 years of selling these babies.""" + .GSTR STR?360,"""Includes a three-day warranty!""" + .GSTR STR?361,"waiting impatiently for you to descend." + .GSTR STR?362,"stalking around the room, rubbing his hands and cackling madly." + .GSTR STR?363,"watching you intently and scrawling an occasional note." + .GSTR STR?364,"open the door" + .GSTR STR?365,"If you were a representative of the Vaporo-Zap Energy Barrier Company, you'd be pleased to see that the firm's 100% effective guarantee had once again proven to be a solid claim." + .GSTR STR?366," yells, ""Mein Gott! Mad gorilla on der loose!"" He pulls out a ray gun and puts a bolt through your chest." + .GSTR STR?367,"Stepping off the cliff would mean a fatal plunge to the jungle below." + .GSTR STR?368," A tranquilizer dart pierces your rump and you spend your remaining years in the gorilla cage of the Venusian Planetary Zoo." + .GSTR STR?369,"The coin reads ""Ten Marsmids.""" + .GSTR STR?370,"The coin reads ""One Marsmid.""" + .GSTR STR?371,"You suddenly find yourself longing for the slime pits of Venus or the sandstorms of Mars. This particular section of Cleveland has exits to the northeast and south." + .GSTR STR?372,"This rickety home is so petite that the entire first floor is only one location in this story. When you tire of this floor, you can go east, southwest, or up." + .GSTR STR?373,"rellis" + .GSTR STR?374,"The second floor of the house has an open window overlooking the street and a stair leading down." + .GSTR STR?375,"sheet" + .GSTR STR?376,"shee" + .GSTR STR?377,"rope of cloth" + .GSTR STR?378,"rope of cloh" + .GSTR STR?379,"untie it" + .GSTR STR?380,"strips of cloth" + .GSTR STR?381,"srips of cloh" + .GSTR STR?382,"After plummeting to the pavement, ambulances rush up to take you the finest hospitals in Cleveland. If only the ambulances had all picked the same hospital, there might've been a chance to put you back together." + .GSTR STR?383,"headligh" + .GSTR STR?384,"The resulting explosion makes you go all to pieces." + .GSTR STR?385,"sword" + .GSTR STR?386,"One item in the hold is a sword, a potent weapon with a long, hard blade of glistening steel." + .GSTR STR?387,"whie sui" + .GSTR STR?388,"Hanging by the hatch is a white, form-fitting therma suit." + .GSTR STR?389,"garlic" + .GSTR STR?390,"get past your opponent" + .GSTR STR?391,"your sword" + .GSTR STR?392,"Oops! You've frozen to death!" + .GSTR STR?393,"turns you into a human shish kabob." + .GSTR STR?394,"get past the monster" + .GSTR STR?395,"This is the main cabin of a fashionable passenger ship, with exits to the ""east"" and ""south.""" + .GSTR STR?396,"phoo" + .GSTR STR?397,"blanke" + .GSTR STR?398,"unwrap the baby" + .GSTR STR?399,"Hanging on the wall is a painting of a pussy cat." + .GSTR STR?400,"paining" + .GSTR STR?401,"ray" + .GSTR STR?402,"hunk of brown food" + .GSTR STR?403,"hunk of chocolae" + .GSTR STR?404,"hunk of chocolate" + .GSTR STR?405,"A crumpled paper lies discarded in the corner. There seems to be some writing on it." + .GSTR STR?406,"There's a seemingly meaningless matrix of letters on the paper: + HESOHREBBUR + ILSSSIPNGEF + RGIUGHTHDEN + SNKOOBENOHP + FALYTMERATP + SHEADLIGHTO + SLLABNOTTOC" + .GSTR STR?407," tall, neatly dressed Leckbandi tucks you under its arm. (The Leckbandi, who evolved in the asteroid belt, all work exclusively as security guards. This is odd, since there's not a single thing in the entire asteroid belt worth stealing.) + Consulting a wrist computer, the Leckbandi punches in notable features of your appearance: size, number of heads, lack of feathers, and so forth. Eventually, the tiny screen flashes: ""IDENTIFICATION COMPLETED: Prisoner, human, escaped. DISPOSITION: Death, painful, immediate."" The Leckbandi, who, like all Leckbandis, prides itself on its ability to follow the orders of wrist computers, immediately and painfully kills you." + .GSTR STR?408,"This is a moist cellar. Soft light trickles down the stairway." + .GSTR STR?409,"You discover that the window makes a pleasant ""boing"" noise when a human nose is pushed into it at approximately walking speed." + .GSTR STR?410,"mothballs" + .GSTR STR?411,"wicker baske" + .GSTR STR?412,"machbook" + .GSTR STR?413,"leather" + .GSTR STR?414,"fondling" + .GSTR STR?415,"breasts" + .GSTR STR?416,"kissing" + .GSTR STR?417,"lips" + .GSTR STR?418,"making love to" + .GSTR STR?419,"banana" + .GSTR STR?420,"All your attackers come together in a climactic battle scene far too incredible to describe in the 23 words allotted to this sentence." + .GSTR STR?421,"great" + .GSTR STR?422,"swell" + .GSTR STR?423,"fantastically" + .GSTR STR?424,"perfectly" + .GSTR STR?425,"teriff" + .GSTR STR?426,"boffo" + .GSTR STR?427,"hunky dory" + .GSTR STR?428,"neato peachy keen" + + .ENDI