commit 9c713ddb5545e93314ac174d3a3e74f815dac7ca Author: historicalsource Date: Sun Apr 14 16:09:16 2019 -0400 Beta Version diff --git a/README.md b/README.md new file mode 100644 index 0000000..b45555e --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# stationfall diff --git a/globals.zap b/globals.zap new file mode 100644 index 0000000..57e2c7c --- /dev/null +++ b/globals.zap @@ -0,0 +1,1060 @@ + + + .FUNCT INTNUM-F + EQUAL? PRSA,V?ENTER \?ELS5 + EQUAL? P-PRSA-WORD,W?ENTER \?ELS5 + CALL GLOBAL-IN?,KEYPAD,HERE + ZERO? STACK /?ELS5 + CALL PERFORM,V?TYPE,INTNUM + RTRUE +?ELS5: EQUAL? PRSA,V?PUSH \?ELS9 + CALL GLOBAL-IN?,KEYPAD,HERE + ZERO? STACK /?ELS9 + CALL PERFORM,V?TYPE,INTNUM + RTRUE +?ELS9: EQUAL? PRSA,V?SET \?ELS13 + ZERO? PRSI \?ELS13 + EQUAL? HERE,COMMANDERS-QUARTERS \?ELS13 + EQUAL? P-NUMBER,DIAL-SETTING \?ELS20 + PRINT SENILITY-STRIKES + RTRUE +?ELS20: GRTR? P-NUMBER,8000 \?ELS22 + PRINTR "The dial only goes up to 8000." +?ELS22: SET 'DIAL-SETTING,P-NUMBER + PRINTR """Click.""" +?ELS13: CALL TOUCHING?,INTNUM + ZERO? STACK /FALSE + PRINT HUH + RTRUE + + + .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? PRSO,NOT-HERE-OBJECT \?ELS7 + SET 'TBL,P-PRSO + JUMP ?CND1 +?ELS7: SET 'TBL,P-PRSI + SET 'PRSO?,FALSE-VALUE +?CND1: ZERO? PRSO? /?ELS12 + CALL PRSO-MOBY-VERB? + ZERO? STACK /?ELS12 + SET 'X,TRUE-VALUE + JUMP ?CND10 +?ELS12: ZERO? PRSO? \?CND10 + CALL PRSI-MOBY-VERB? + ZERO? STACK /?CND10 + SET 'X,TRUE-VALUE +?CND10: ZERO? X /?ELS21 + CALL FIND-NOT-HERE,TBL,PRSO? >OBJ + ZERO? OBJ /FALSE + EQUAL? OBJ,NOT-HERE-OBJECT \TRUE + EQUAL? PRSA,V?FOLLOW,V?WALK-TO \?ELS33 + CALL V-WALK-AROUND + JUMP ?CND19 +?ELS33: PRINTC 91 + PRINT YOULL-HAVE-TO + PRINTI "be more specific.]" + CRLF + JUMP ?CND19 +?ELS21: EQUAL? WINNER,PROTAGONIST \?ELS40 + PRINTI "You" + JUMP ?CND38 +?ELS40: PRINTI "Looking confused," + CALL TPRINT,WINNER + PRINTI " says, ""I" +?CND38: PRINTI " can't see" + CALL NAME?,P-XNAM + ZERO? STACK \?CND43 + PRINTI " any" +?CND43: CALL NOT-HERE-PRINT,PRSO? + PRINTI " here!" + EQUAL? WINNER,PROTAGONIST /?CND46 + PRINTC 34 +?CND46: CRLF +?CND19: CALL STOP + RSTACK + + + .FUNCT PRSO-MOBY-VERB? + EQUAL? PRSA,V?WHAT,V?WHERE,V?WAIT-FOR /TRUE + EQUAL? PRSA,V?WALK-TO,V?CALL,V?SAY /TRUE + EQUAL? PRSA,V?FIND,V?FOLLOW \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 + ZERO? DEBUG /?CND1 + PRINTI "[Found " + PRINTN M-F + PRINTI " obj]" + CRLF +?CND1: EQUAL? 1,M-F \?ELS9 + ZERO? DEBUG /?CND10 + PRINTI "[Namely: " + PRINTD P-MOBY-FOUND + PRINTC 93 + CRLF +?CND10: ZERO? PRSO? /?ELS16 + SET 'PRSO,P-MOBY-FOUND + CALL THIS-IS-IT,PRSO + RFALSE +?ELS16: SET 'PRSI,P-MOBY-FOUND + RFALSE +?ELS9: LESS? 1,M-F \?ELS21 + GET TBL,1 >OBJ + GETP OBJ,P?GENERIC + CALL STACK >OBJ + ZERO? OBJ /?ELS21 + ZERO? DEBUG /?CND24 + PRINTI "[Generic: " + PRINTD OBJ + PRINTC 93 + CRLF +?CND24: EQUAL? OBJ,NOT-HERE-OBJECT /TRUE + ZERO? PRSO? /?ELS32 + SET 'PRSO,OBJ + CALL THIS-IS-IT,PRSO + RFALSE +?ELS32: SET 'PRSI,OBJ + RFALSE +?ELS21: RETURN NOT-HERE-OBJECT + + + .FUNCT NOT-HERE-PRINT,PRSO?,?TMP1 + ZERO? P-OFLAG /?ELS5 + ZERO? P-XADJ /?CND7 + PRINTC 32 + PRINTB P-XADJN +?CND7: ZERO? P-XNAM /FALSE + PRINTC 32 + 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 GROUND-F + EQUAL? PRSA,V?ENTER,V?CLIMB-ON \?ELS5 + SET 'C-ELAPSED,31 + PRINTR "You sit down on the floor. After a brief rest, you stand again." +?ELS5: EQUAL? PRSA,V?LOOK-UNDER \?ELS7 + CALL IMPOSSIBLES + RSTACK +?ELS7: EQUAL? PRSA,V?LEAVE \FALSE + CALL DO-WALK,P?UP + RSTACK + + + .FUNCT WALLS-F + EQUAL? PRSA,V?EXAMINE \FALSE + EQUAL? HERE,HOLDING-TANK-LEVEL \FALSE + PRINT BLASTED-OPEN + PRINT PERIOD-CR + RTRUE + + + .FUNCT CEILING-F + EQUAL? PRSA,V?SEARCH,V?EXAMINE \?ELS5 + EQUAL? HERE,PET-STORE \?ELS5 + MOVE PANEL,HERE + CALL THIS-IS-IT,PANEL + PRINTR "As you look carefully, you notice something that a casual inspection of the Pet Store would never have uncovered: a panel mounted in the ceiling." +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9 + EQUAL? HERE,DOME \?ELS9 + PRINT DOME-DESC + CRLF + RTRUE +?ELS9: EQUAL? PRSA,V?LOOK-UNDER \FALSE + CALL PERFORM,V?LOOK + RTRUE + + + .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,REC-SHOP \?ELS16 + IN? FOIL,LOCAL-GLOBALS \?ELS16 + MOVE FOIL,HERE + CALL THIS-IS-IT,FOIL + PRINTR "Behind one of the simulation booths, you spot a large piece of trans-molecular reflective foil! It's probably a promotional item, left over from last year's mega-hit simulation booth simulation, ""Platinum Pagans of Paradise.""" +?ELS16: EQUAL? HERE,GREASY-STRAW \?ELS20 + IN? NECTAR,LOCAL-GLOBALS \?ELS20 + MOVE NECTAR,HERE + CALL THIS-IS-IT,NECTAR + PRINTR "You spot a cup of Ramosian Fire Nectar behind the counter!" +?ELS20: PRINTR "A cursory search of the room reveals nothing new." +?ELS11: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,GLOBAL-ROOM \FALSE + EQUAL? P-PRSA-WORD,W?THROW \?ELS33 + CALL PERFORM,V?THROW,PRSO + RTRUE +?ELS33: CALL PERFORM,V?DROP,PRSO + RTRUE + + + .FUNCT WINDOW-F + EQUAL? PRSA,V?LOOK-INSIDE \?ELS5 + EQUAL? HERE,SHADY-DANS \?ELS10 + PRINT DANS-LOT-DESC + CRLF + RTRUE +?ELS10: EQUAL? SPACETRUCK-COUNTER,5 \?ELS12 + EQUAL? COURSE-PICKED,RIGHT-COURSE \?ELS12 + PRINTR "You see an empty docking bay." +?ELS12: ZERO? SPACETRUCK-COUNTER \?ELS16 + PRINTR "You see a large cargo bay." +?ELS16: EQUAL? SPACETRUCK-COUNTER,4 \?ELS18 + EQUAL? COURSE-PICKED,RIGHT-COURSE \?ELS18 + PRINTR " You are approaching the station from slightly above it (on the galactic plane), thus offering a good view of the station's layout. In the center is the large, spherical Command Module. Jutting ""north"" from it is a smaller Sub-Module. Joining the Command Module, at its two other connection points, is a tangle of tubes and space bubbles and derelict rockets. These form a ""village,"" the sort of seedy, unauthorized village that frequently collects around a space station." +?ELS18: PRINTR "You see nothing but the majestic sweep of the galaxy." +?ELS5: EQUAL? PRSA,V?CLEAN \FALSE + SET 'AWAITING-REPLY,1 + ADD C-ELAPSED,2 + CALL QUEUE,I-REPLY,STACK + PRINTR "Do you also do floors?" + + + .FUNCT SIGN-F + EQUAL? PRSA,V?READ \FALSE + EQUAL? HERE,GREASY-STRAW \?ELS10 + PRINT RESTAURANT-SIGN-TEXT + CRLF + RTRUE +?ELS10: EQUAL? HERE,TRADING-POST \?ELS12 + PRINTR """!!!BEST PRICES IN TOWN!!! +IF YOU DON'T SEE IT ASK FOR IT! +Illegal wares shown by appointment only. +FREZONE (tm) explosive available.""" +?ELS12: EQUAL? HERE,PET-STORE \?ELS14 + PRINTI """SPECIAL!!! The best pet a lonely spacer could ever hope for! + " + PRINTD BALLOON + PRINTI "s are fascinating critters. Filled with hydrogen, they float freely through the air like small dirigibles. + With their translucent bodies and irridescent skin, they're a beautiful addition to the decor of any living bubble. They are docile and friendly. And, they are easy to care for, feeding on airborne spores! + Limited supply!! Order yours today!!"" + You recall one fact about " + PRINTD BALLOON + PRINTR "s which the sign fails to mention: they propel themselves around by ejecting digestive gasses. This makes them one of the smelliest pets imaginable." +?ELS14: EQUAL? HERE,GYM \?ELS16 + PRINTI """IMPORTANT! The " + PRINTD EXERCISE-MACHINE + PRINTI " has diagnostic frequencies which communicate with each other on frequency 710. Do not bring anything which broadcasts on that frequency within range of the machine!""" + IN? EXERCISE-MACHINE,GYM /?CND17 + PRINTI " Strangely, you don't see any exercise machine anywhere in the gym." +?CND17: CRLF + RTRUE +?ELS16: EQUAL? HERE,OPIUM-DEN \?ELS21 + PRINTR "The sign is from the government's latest anti-drug crusade. It depicts the president of the Third Galactic Union, her hands crossed across her chest in a defiant pose, with the caption, ""Drugs are a no-no!"" You notice that someone has drawn a mustache on her." +?ELS21: PRINTR """TRADING POST VACUUM STORAGE AREA + Trespassers will be spaced!""" + + + .FUNCT EQUIPMENT-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + EQUAL? HERE,ROBOT-POOL \?ELS10 + PRINT ROBOT-POOL-EQUIPMENT-DESC + CRLF + RTRUE +?ELS10: PRINTR "Since this equipment has nothing to do with the filling out or filing of multi-part forms, it's far outside your area of expertise." +?ELS5: EQUAL? PRSA,V?USE \?ELS14 + EQUAL? HERE,ROBOT-POOL \?ELS14 + PRINTR "Put the form in the slot, you dolt!" +?ELS14: EQUAL? PRSA,V?OFF,V?ON \FALSE + CALL PERFORM,V?EXAMINE,EQUIPMENT + RTRUE + + + .FUNCT FIXTURES-F + EQUAL? PRSA,V?USE,V?WALK-TO,V?ENTER \?ELS5 + PRINTR "This story doesn't go into that sort of detail." +?ELS5: EQUAL? PRSA,V?ON,V?TAKE \FALSE + CALL NOUN-USED,W?SHOWER,FIXTURES + ZERO? STACK /FALSE + CALL PERFORM,V?USE,FIXTURES + RTRUE + + + .FUNCT HOLE-F + EQUAL? PRSA,V?DRILL-HOLE \?ELS5 + EQUAL? PRSO,HOLE /FALSE +?ELS5: EQUAL? PRSA,V?DRILL \?ELS9 + EQUAL? PRSO,HOLE \?ELS9 + CALL PERFORM,V?DRILL-HOLE,HOLE,WALLS + RTRUE +?ELS9: CALL PRSO-MOBY-VERB? + ZERO? STACK \FALSE + CALL PRSI-MOBY-VERB? + ZERO? STACK \FALSE + CALL CANT-SEE,HOLE + RSTACK + + + .FUNCT LADDER-F + EQUAL? PRSA,V?CLIMB-UP \?ELS5 + CALL DO-WALK,P?UP + RSTACK +?ELS5: EQUAL? PRSA,V?CLIMB-DOWN \FALSE + CALL DO-WALK,P?DOWN + RSTACK + + + .FUNCT HANDS-F,ACTOR + EQUAL? PRSA,V?APPLAUD \?ELS5 + SET 'PRSO,FALSE-VALUE + RFALSE +?ELS5: EQUAL? PRSA,V?SHAKE \?ELS7 + CALL FIND-IN,HERE,ACTORBIT,STR?85 >ACTOR + ZERO? ACTOR /?ELS12 + CALL PERFORM,V?SHAKE-WITH,HANDS,ACTOR + RTRUE +?ELS12: PRINTR "Pleased to meet you." +?ELS7: EQUAL? PRSA,V?COUNT \?ELS16 + CALL NOUN-USED,W?FINGER,HANDS + ZERO? STACK /?ELS19 + PRINTI "Ten" + JUMP ?CND17 +?ELS19: PRINTI "Two" +?CND17: PRINTR ", as usual." +?ELS16: EQUAL? PRSA,V?CLEAN \?ELS23 + PRINTR "Done." +?ELS23: EQUAL? PRSA,V?SHOOT \?ELS25 + CALL JIGS-UP,STR?86 + RSTACK +?ELS25: EQUAL? PRSA,V?TAKE-WITH \FALSE + EQUAL? PRSI,HANDS \FALSE + CALL PERFORM,V?TAKE,PRSO + RTRUE + + + .FUNCT TONGUE-F + EQUAL? PRSA,V?RUN-OVER,V?PUT-ON \FALSE + EQUAL? PRSO,TONGUE \FALSE + CALL PERFORM,V?TASTE,PRSI + 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?DRILL \?ELS7 + PRINTR "Why bother? Based on that input, you already have holes in your head!" +?ELS7: EQUAL? PRSA,V?GIVE \?ELS9 + EQUAL? PRSI,ME \?ELS9 + CALL PERFORM,V?TAKE,PRSO + RTRUE +?ELS9: EQUAL? PRSA,V?SHOW \?ELS13 + EQUAL? PRSI,ME \?ELS13 + CALL PERFORM,V?EXAMINE,PRSO + RTRUE +?ELS13: EQUAL? PRSA,V?MOVE \?ELS17 + CALL V-WALK-AROUND + RSTACK +?ELS17: EQUAL? PRSA,V?SEARCH \?ELS19 + CALL V-INVENTORY + RSTACK +?ELS19: EQUAL? PRSA,V?MUNG,V?KILL \?ELS21 + EQUAL? PRSO,ME \?ELS21 + CALL JIGS-UP,STR?87 + RSTACK +?ELS21: EQUAL? PRSA,V?SHOOT \?ELS25 + CALL JIGS-UP,STR?88 + RSTACK +?ELS25: EQUAL? PRSA,V?WHERE,V?FIND \?ELS27 + PRINTI "You're in" + CALL TRPRINT,HERE + RSTACK +?ELS27: EQUAL? PRSA,V?FOLLOW \?ELS29 + PRINTR "It would be hard not to." +?ELS29: EQUAL? PRSA,V?EXAMINE \?ELS31 + PRINTR "That's difficult unless your eyes are prehensile." +?ELS31: EQUAL? PRSA,V?ALARM \?ELS33 + PRINTR "You are!" +?ELS33: EQUAL? PRSA,V?TAKE \FALSE + PRINTR "How romantic!" + + + .FUNCT GRUE-F + EQUAL? PRSA,V?WHAT \FALSE + PRINTR "Grues are vicious, carnivorous beasts first introduced to Earth by an alien spaceship during the 22nd century. Grues spread throughout the galaxy alongside man. Now extinct on all civilized planets, they still exist in some backwater corners of the galaxy. Their favorite diet is Lieutenants First Class, but their insatiable appetite is tempered by their fear of light." + + + .FUNCT SLOT-F + EQUAL? PRSA,V?PUT \?ELS5 + EQUAL? PRSI,PSEUDO-OBJECT \?ELS5 + EQUAL? PRSO,CRUMPLED-FORM \?ELS12 + PRINTR "The form almost slides into the slot, but its degree of crumpledness is just a bit too high." +?ELS12: EQUAL? PRSO,ROBOT-USE-AUTHORIZATION-FORM \?ELS18 + EQUAL? HERE,ROBOT-POOL /?THN15 +?ELS18: EQUAL? PRSO,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM \?ELS20 + EQUAL? HERE,SPACETRUCK /?THN15 +?ELS20: EQUAL? PRSO,VILLAGE-FORM \?ELS14 + EQUAL? HERE,SOUTH-CONNECTION,EAST-CONNECTION \?ELS14 +?THN15: EQUAL? HERE,SPACETRUCK \?ELS25 + CALL BOTH-SEATS-NOT-OCCUPIED + ZERO? STACK /?ELS25 + PRINTI "The form is spit back out. " + CALL RECORDING,STR?91 + RTRUE +?ELS25: EQUAL? PRSO,VILLAGE-FORM \?CND23 + ZERO? VILLAGE-FORM-VALIDATED \?CND23 + PRINTI "The form is spit back out. " + CALL RECORDING,STR?92 + RTRUE +?CND23: REMOVE PRSO + FSET PRSO,NDESCBIT + PRINTI "The form is swallowed up, followed by a long pause for triple-redundancy processing. " + EQUAL? PRSO,ROBOT-USE-AUTHORIZATION-FORM \?ELS36 + CALL RECORDING,STR?93 + RSTACK +?ELS36: EQUAL? PRSO,VILLAGE-FORM \?ELS38 + ADD SCORE,4 >SCORE + INC 'ROBOT-EVILNESS + FSET IRIS-HATCH,OPENBIT + PRINTR "The hatch begins irising open, then sparks and smokes and grinds to a halt. However, it's about half dilated, wide enough to pass through." +?ELS38: CALL RECORDING,STR?94 + RSTACK +?ELS14: EQUAL? PRSO,ASSIGNMENT-COMPLETION-FORM,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM,ROBOT-USE-AUTHORIZATION-FORM \?ELS42 + PRINTR "The form is rejected." +?ELS42: GETP P?SIZE,PRSO + LESS? STACK,3 \?ELS44 + PRINTI "The slot swallows" + CALL TPRINT-PRSO + PRINTR " and then spits it back." +?ELS44: CALL DOESNT-FIT,STR?95 + RSTACK +?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \FALSE + PRINT ONLY-BLACKNESS + RTRUE + + + .FUNCT BOTH-SEATS-NOT-OCCUPIED,?TMP1,?TMP2 + IN? PROTAGONIST,PILOT-SEAT \?ELS5 + LOC FLOYD >?TMP2 + LOC HELEN >?TMP1 + LOC REX + EQUAL? COPILOT-SEAT,?TMP2,?TMP1,STACK /FALSE +?ELS5: IN? PROTAGONIST,COPILOT-SEAT \TRUE + LOC FLOYD >?TMP2 + LOC HELEN >?TMP1 + LOC REX + EQUAL? PILOT-SEAT,?TMP2,?TMP1,STACK \TRUE + RFALSE + + + .FUNCT KEYPAD-F + EQUAL? PRSA,V?PUSH \FALSE + RANDOM 10 + SUB STACK,1 >P-NUMBER + PRINTI "Randomly, you hit " + PRINTN P-NUMBER + PRINTI ". " + CALL PERFORM,V?TYPE,INTNUM + RTRUE + + + .FUNCT FURNISHING-F + EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH,V?OPEN /?THN6 + EQUAL? PRSA,V?EXAMINE \?ELS5 +?THN6: PRINTR "You merely find a few personal items of little interest." +?ELS5: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE + PRINTI "The " + PRINTD PRSI + PRINTI " is such a mess that you can't find a good spot to put" + CALL TRPRINT,PRSO + RSTACK + + + .FUNCT BED-F + EQUAL? PRSA,V?WALK-TO \?ELS5 + CALL GLOBAL-IN?,BED,HERE + ZERO? STACK \?ELS5 + PRINTR "There's no bed here!" +?ELS5: EQUAL? PRSA,V?WALK-TO,V?ENTER \?ELS9 + GRTR? SLEEPY-LEVEL,0 \?ELS14 + MOVE PROTAGONIST,BED + CALL QUEUE,I-FALL-ASLEEP,22 + CALL DEQUEUE,I-SLEEP-WARNINGS + PRINTR "Ahhh...the bed is soft and comfortable. You should be asleep in short order." +?ELS14: MOVE PROTAGONIST,BED + PRINTR "You are now in bed." +?ELS9: EQUAL? PRSA,V?EXIT,V?STAND,V?DISEMBARK /?THN21 + EQUAL? PRSA,V?DROP \?ELS18 +?THN21: CALL QUEUED?,I-FALL-ASLEEP + ZERO? STACK /?ELS18 + PRINTR "How could you suggest such a thing when you're so tired and this bed is so comfy?" +?ELS18: EQUAL? PRSA,V?DROP,V?EXIT,V?LEAVE \?ELS24 + CALL PERFORM,V?DISEMBARK,BED + RTRUE +?ELS24: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS26 + EQUAL? PRSI,BED \?ELS26 + MOVE PRSO,HERE + PRINTI "The " + PRINTD PRSO + PRINTR " bounces off the bed and lands on the floor." +?ELS26: EQUAL? PRSA,V?LOOK-UNDER \?ELS30 + IN? PROTAGONIST,BED \?ELS30 + PRINTR "You're IN the bed, so unless you have x-ray vision..." +?ELS30: EQUAL? PRSA,V?LOOK-UNDER \FALSE + EQUAL? HERE,COMMANDERS-QUARTERS \FALSE + FSET? VALIDATION-STAMP,TOUCHBIT /FALSE + FSET VALIDATION-STAMP,TOUCHBIT + MOVE VALIDATION-STAMP,HERE + CALL THIS-IS-IT,VALIDATION-STAMP + PRINTR "You discover a validation stamp!" + + + .FUNCT SLEEP-F + EQUAL? PRSA,V?TAKE,V?WALK-TO \FALSE + CALL V-SLEEP + RSTACK + + + .FUNCT I-SLEEP-WARNINGS + GRTR? PLATO-ATTACK-COUNTER,0 \?CND1 + IN? PLATO,HERE \?CND1 + CALL QUEUE,I-HUNGER-WARNINGS,2 + RFALSE +?CND1: INC 'SLEEPY-LEVEL + PRINTI " " + IN? PROTAGONIST,BED \?ELS10 + CALL DEQUEUE,I-SLEEP-WARNINGS + CALL QUEUE,I-FALL-ASLEEP,16 + PRINTR "You suddenly realize how tired you were and how comfortable the bed is. You should be asleep in no time." +?ELS10: EQUAL? SLEEPY-LEVEL,1 \?ELS12 + CALL QUEUE,I-SLEEP-WARNINGS,320 + PRINTR "You begin to feel weary. It might be time to think about finding a nice safe place to sleep." +?ELS12: EQUAL? SLEEPY-LEVEL,2 \?ELS14 + CALL QUEUE,I-SLEEP-WARNINGS,160 + PRINTR "You're really tired now. You'd better find a place to sleep real soon." +?ELS14: EQUAL? SLEEPY-LEVEL,3 \?ELS16 + CALL QUEUE,I-SLEEP-WARNINGS,80 + PRINTR "If you don't get some sleep soon you'll probably drop." +?ELS16: EQUAL? SLEEPY-LEVEL,4 \?ELS18 + CALL QUEUE,I-SLEEP-WARNINGS,40 + PRINTR "You can barely keep your eyes open." +?ELS18: EQUAL? HERE,BED \?ELS23 + PRINTI "You slowly sink into a deep and blissful sleep." + JUMP ?CND21 +?ELS23: CALL GLOBAL-IN?,BED,HERE + ZERO? STACK /?ELS25 + MOVE PROTAGONIST,BED + PRINTI "You climb into one of the beds and immediately fall asleep." + JUMP ?CND21 +?ELS25: PRINT YOU-CANT + PRINTI "stay awake a moment longer. You drop " + IN? PROTAGONIST,HERE \?CND28 + FSET? HERE,WEIGHTLESSBIT /?CND28 + PRINTI "to the deck and fall " +?CND28: PRINTI "into a deep but fitful sleep." +?CND21: CALL WAKING-UP + RSTACK + + + .FUNCT I-FALL-ASLEEP + IN? WELDER,HERE \?CND1 + CALL QUEUE,I-FALL-ASLEEP,2 +?CND1: PRINTI " You slowly sink into a deep sleep." + CALL DEQUEUE,I-FALL-ASLEEP + CALL WAKING-UP + RSTACK + + + .FUNCT WAKING-UP,X,N,?TMP1 + CRLF + CRLF + FSET? SPACESUIT,WORNBIT \?ELS3 + CALL JIGS-UP,STR?102 + JUMP ?CND1 +?ELS3: EQUAL? COURSE-PICKED,RIGHT-COURSE /?ELS5 + EQUAL? HERE,SPACETRUCK \?ELS5 + PRINTI "You wake up gasping for air! The spacetruck" + CALL RUNNING?,I-SPACETRUCK + ZERO? STACK /?ELS10 + PRINTI " is dead in uncharted space and it" + JUMP ?CND8 +?ELS10: PRINTC 39 +?CND8: PRINTI "s oxygen is running out!" + CRLF + CALL I-SUFFOCATE + JUMP ?CND1 +?ELS5: EQUAL? SPACETRUCK-COUNTER,-1 \?ELS14 + PRINTI "A clanging noise wakes you up, and you slowly become aware that you are in the Duffy's brig, and furthermore, you are wearing the uniform of an Ensign Ninth Class! You trace the clanging noise to a pipe in your cell. + Placing your ear against the pipe, you hear, ""Psst! Grapevine news! Some dumb kripping " + PRINT LFC + PRINTI " fell asleep on Deck Five in the middle of some big assignment! The poor trot-head's been broken to Ensign Ninth, and there's talk of a court martial!"" + Sure enough, the next morning you are led in front of a firing squad. Moral: don't screw up vital assignments like picking up " + PRINT FORM-NAME + CALL JIGS-UP,STR?44 + JUMP ?CND1 +?ELS14: IN? PROTAGONIST,BED /?ELS16 + FSET? DOCKING-BAY-2,TOUCHBIT \?ELS16 + MUL DAY,40 >?TMP1 + RANDOM 100 + LESS? ?TMP1,STACK /?ELS16 + CALL JIGS-UP,STR?103 + JUMP ?CND1 +?ELS16: RANDOM 100 + LESS? 60,STACK /?CND1 + PRINTI "..." + CALL PICK-ONE,DREAMS + PRINT STACK + PRINTI "..." + CRLF + CRLF +?CND1: INC 'DAY + INC 'ROBOT-EVILNESS + CALL I-ROBOT-EVILNESS + SET 'SLEEPY-LEVEL,0 + SET 'SUIT-PRESSED,FALSE-VALUE + SET 'FLOYD-ANGUISHED,FALSE-VALUE + RANDOM 80 + ADD 1600,STACK >INTERNAL-MOVES + GRTR? DAY,2 \?ELS23 + SET 'MOVES,9947 + JUMP ?CND21 +?ELS23: ADD SCORE,3 >SCORE + SET 'MOVES,INTERNAL-MOVES +?CND21: FCLEAR AUTO-DOOR,TOUCHBIT + CALL QUEUE,I-SLEEP-WARNINGS,5900 + CALL ULTIMATELY-IN?,BOTTLE,VACUUM-STORAGE + ZERO? STACK \?CND26 + FSET? BOTTLE,OPENBIT \?CND29 + SET 'CARBON-DIOXIDE-GONE,TRUE-VALUE +?CND29: SET 'FROZEN-LEVEL,0 + CALL DEQUEUE,I-MELT-CARBON-DIOXIDE +?CND26: CALL ULTIMATELY-IN?,EXPLOSIVE,VACUUM-STORAGE + ZERO? STACK \?CND32 + REMOVE EXPLOSIVE + CALL DEQUEUE,I-EXPLOSIVE-MELT +?CND32: FSET? HEADLAMP,ONBIT \?CND35 + FCLEAR HEADLAMP,ACTIVEBIT + FCLEAR HEADLAMP,ONBIT + SET 'HEADLAMP-COUNTER,0 +?CND35: FSET OSTRICH,TOUCHBIT + IN? OSTRICH,HERE \?CND38 + IN? OSTRICH-NIP,HERE \?CND38 + REMOVE OSTRICH-NIP +?CND38: CALL ROB,PROTAGONIST,HERE + USL + PRINTI "***** NOVEM " + ADD DAY,3 + PRINTN STACK + PRINTI ", 11349 *****" + CRLF + CRLF + PRINTI "You awake " + CALL QUEUED?,I-LIGHTS-OUT + ZERO? STACK /?ELS45 + CALL DEQUEUE,I-LIGHTS-OUT + CALL I-LIGHTS-OUT,TRUE-VALUE + PRINTI "slowly, aware that something has changed. Aha! The lights have all gone out while you slept!" + JUMP ?CND43 +?ELS45: LOC PROTAGONIST + EQUAL? STACK,BED,PILOT-SEAT,COPILOT-SEAT \?ELS47 + PRINTI "feeling refreshed and ready to face anything this new day might care to throw at you." + JUMP ?CND43 +?ELS47: PRINTI "and slowly stand up, feeling stiff from your uncomfortable night's sleep." +?CND43: EQUAL? DAY,4 \?CND50 + FSET? SAFE,OPENBIT /?ELS55 + CALL QUEUE,I-LIGHTS-OUT,177 + JUMP ?CND50 +?ELS55: CALL QUEUED?,I-ANNOUNCEMENT + ZERO? STACK \?CND50 + CALL QUEUE,I-ANNOUNCEMENT,383 +?CND50: GRTR? HUNGER-LEVEL,0 \?ELS60 + SET 'HUNGER-LEVEL,3 + CALL QUEUE,I-HUNGER-WARNINGS,200 + PRINTI " You're also incredibly famished. Better get some breakfast!" + JUMP ?CND58 +?ELS60: CALL QUEUE,I-HUNGER-WARNINGS,400 +?CND58: CRLF + CALL RUNNING?,I-SPACETRUCK + ZERO? STACK /?CND63 + EQUAL? COURSE-PICKED,RIGHT-COURSE \?CND63 + CALL QUEUE,I-WELDER,-1 + CALL QUEUE,I-FLOYD,-1 + CALL QUEUE,I-PLATO,750 + CALL DEQUEUE,I-SPACETRUCK + ADD SCORE,5 >SCORE + SET 'SPACETRUCK-COUNTER,5 + PRINTI " You notice that, while you slept, the truck has docked itself in one of the space station's docking bays." + CRLF +?CND63: EQUAL? DAY,3 \?CND68 + FCLEAR ELEVATOR,WEIGHTLESSBIT + FSET EXERCISE-MACHINE,TOUCHBIT + MOVE EXERCISE-MACHINE,COMPUTER-CONTROL + FSET? CHRONOMETER,WORNBIT \?CND68 + PRINTI " " + CALL PERFORM,V?EXAMINE,CHRONOMETER +?CND68: FSET? FLOYD,ACTIVEBIT \?CND74 + IN? FLOYD,FACTORY /?CND74 + SET 'FLOYD-SPOKE,TRUE-VALUE + PRINTI " Floyd " + GRTR? ROBOT-EVILNESS,12 \?ELS81 + PRINTI "is rudely kicking your mattress. ""Trot it! Will you kripping wake up already? Floyd's getting bored!""" + CRLF + JUMP ?CND79 +?ELS81: PRINTI "bounces impatiently at " + IN? PROTAGONIST,BED \?ELS86 + PRINTI "the foot of the bed" + JUMP ?CND84 +?ELS86: PRINTI "your side" +?CND84: ZERO? PLATO-INTRODUCED /?CND89 + ZERO? PLATO-ATTACK-COUNTER \?CND89 + MOVE PLATO,HERE + PRINTI ". Plato is nearby, leafing through his book" +?CND89: ZERO? PLATO-INTRODUCED \?ELS96 + PRINTI ", along with a slightly older-looking robot. ""Wake up and meet Floyd's new friend,"" says Floyd with unbounded exuberance and a wide grin." + CRLF + CALL I-PLATO,TRUE-VALUE + JUMP ?CND79 +?ELS96: PRINTI ". ""About time you woke up, you lazy " + GRTR? ROBOT-EVILNESS,8 \?ELS101 + PRINTI "slob!"" says Floyd. ""It's getting pretty trotting dull around her" + JUMP ?CND99 +?ELS101: PRINTI "bones!"" says Floyd. ""Let's explore around some mor" +?CND99: PRINTI "e!""" + CRLF +?CND79: MOVE FLOYD,HERE +?CND74: CRLF + CALL V-LOOK + RSTACK + + + .FUNCT I-HUNGER-WARNINGS + GRTR? PLATO-ATTACK-COUNTER,0 \?CND1 + IN? PLATO,HERE \?CND1 + CALL QUEUE,I-HUNGER-WARNINGS,2 + RFALSE +?CND1: INC 'HUNGER-LEVEL + PRINTI " " + EQUAL? HUNGER-LEVEL,1 \?ELS10 + CALL QUEUE,I-HUNGER-WARNINGS,450 + PRINTR "A growl from your stomach warns that you're getting pretty hungry and thirsty." +?ELS10: EQUAL? HUNGER-LEVEL,2 \?ELS12 + CALL QUEUE,I-HUNGER-WARNINGS,300 + PRINTR "You're now really ravenous and your lips are quite parched." +?ELS12: EQUAL? HUNGER-LEVEL,3 \?ELS14 + CALL QUEUE,I-HUNGER-WARNINGS,150 + PRINTR "You're starting to feel faint from lack of food and liquid." +?ELS14: EQUAL? HUNGER-LEVEL,4 \?ELS16 + CALL QUEUE,I-HUNGER-WARNINGS,150 + PRINTR "If you don't eat or drink something in a few millichrons, you'll probably pass out." +?ELS16: EQUAL? HUNGER-LEVEL,5 \FALSE + CALL JIGS-UP,STR?104 + RSTACK + + + .FUNCT WELDER-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + EQUAL? WELDER-COUNTER,1 \?ELS10 + PRINTI "This welder, which is marked ""Welder Number " + GET WELDER-TABLE,WELDER-TABLE-POINTER + PRINTN STACK + PRINTR ","" seems to be moving purposefully toward you, its welding extensions quivering with...excitement?" +?ELS10: EQUAL? WELDER-COUNTER,2 \?ELS12 + PRINTR "There definitely seems to be something menacing about its behavior." +?ELS12: PRINTR "The welder is now almost upon you!" +?ELS5: EQUAL? PRSA,V?SHOOT \?ELS16 + REMOVE WELDER + DEC 'NUMBER-OF-WELDERS + SET 'WELDER-COUNTER,0 + ZERO? NUMBER-OF-WELDERS \?CND17 + CALL DEQUEUE,I-WELDER +?CND17: GET WELDER-TABLE,NUMBER-OF-WELDERS + PUT WELDER-TABLE,WELDER-TABLE-POINTER,STACK + PRINTI "The welder is enveloped by red-hot plasma rays. It glows ever brighter in the heat of the rays, seems to shimmer like a mirage, and then suddenly vanishes! A wave of hot vapor pushes you backwards." + IN? OSTRICH,HERE \?ELS24 + FSET? OSTRICH,TOUCHBIT \?ELS24 + PRINTC 32 + CALL PERFORM,V?SCARE,OSTRICH + RSTACK +?ELS24: CRLF + RTRUE +?ELS16: EQUAL? PRSA,V?OFF \?ELS30 + PRINTR "There's no apparent on-off switch." +?ELS30: EQUAL? PRSA,V?ON \?ELS32 + PRINTR "It is!" +?ELS32: EQUAL? PRSA,V?MUNG,V?KILL \FALSE + PRINTR "It's doubtful that you could even make a dent in the welder." + + + .FUNCT I-WELDER + IN? WELDER,HERE \?ELS5 + PRINTI " " + INC 'WELDER-COUNTER + EQUAL? WELDER-COUNTER,2 \?ELS8 + PRINTI "The welder moves closer. " + JUMP ?CND6 +?ELS8: EQUAL? WELDER-COUNTER,3 /?CND6 + CALL JIGS-UP,STR?105 +?CND6: CALL PERFORM,V?EXAMINE,WELDER + RSTACK +?ELS5: GRTR? WELDER-COUNTER,0 \?ELS12 + REMOVE WELDER + SET 'WELDER-COUNTER,0 + PRINTR " Nearby, you hear the welder move off in another direction." +?ELS12: FSET? HERE,NWELDERBIT /FALSE + IN? PROTAGONIST,BED /FALSE + ZERO? LIT /FALSE + RANDOM 100 + LESS? NUMBER-OF-WELDERS,STACK /FALSE + GRTR? PLATO-ATTACK-COUNTER,0 \?CND17 + IN? PLATO,HERE /FALSE +?CND17: MOVE WELDER,HERE + INC 'WELDER-COUNTER + RANDOM NUMBER-OF-WELDERS >WELDER-TABLE-POINTER + PRINTI " You spot a " + PRINTD WELDER + PRINTI " approaching. " + FSET? WELDER,TOUCHBIT /?CND22 + FSET WELDER,TOUCHBIT + PRINTI "A " + PRINTD WELDER + PRINTI " is a very simple machine which repairs any leaks or holes in the hull of any sort of space habitat. Because of the potentially catastrophic effects of a break in the integrity of a hull on the habitat's air supply, " + PRINTD WELDER + PRINTI "s are kept active at all times, roaming around with their sensing devices alert for the tiniest leak. " +?CND22: CALL PERFORM,V?EXAMINE,WELDER + CALL STOP + RSTACK + + + .FUNCT TOUCHING?,THING + EQUAL? PRSO,THING \?ELS5 + EQUAL? PRSA,V?TAKE,V?TOUCH,V?SHAKE /TRUE + EQUAL? PRSA,V?CLEAN,V?KISS,V?ENTER /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?HUG /TRUE + EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-DOWN,V?CLIMB-ON /TRUE + EQUAL? PRSA,V?ON,V?OFF,V?THROW /TRUE + EQUAL? PRSA,V?TASTE,V?BITE,V?TICKLE /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?PUSH /TRUE + EQUAL? PRSA,V?SEARCH /TRUE +?ELS5: EQUAL? PRSI,THING \FALSE + EQUAL? PRSA,V?PUT-ON,V?PUT,V?GIVE \FALSE + RTRUE + + + .FUNCT CANT-SEE,OBJ=0,STRING=0 + SET 'P-WON,FALSE-VALUE + PRINT YOU-CANT + PRINTI "see" + ZERO? OBJ /?THN4 + ZERO? OBJ /?CND1 + CALL NAME?,OBJ + ZERO? STACK \?CND1 +?THN4: PRINTI " any" +?CND1: ZERO? OBJ \?ELS10 + PRINTC 32 + PRINT STRING + JUMP ?CND8 +?ELS10: EQUAL? OBJ,PRSI \?ELS12 + CALL PRSI-PRINT + JUMP ?CND8 +?ELS12: CALL PRSO-PRINT +?CND8: PRINTI " here." + CRLF + CALL STOP + RSTACK + + + .FUNCT CANT-VERB-A-PRSO,STRING + PRINT YOU-CANT + PRINT STRING + CALL APRINT,PRSO + PRINTR "!" + + + .FUNCT TELL-HIT-HEAD + PRINTI "You hit your head against" + CALL TPRINT-PRSO + PRINTR " as you attempt this." + + + .FUNCT REMOVE-CAREFULLY,OBJ,ALSO=0 + ZERO? TIMER-CONNECTED /?ELS3 + EQUAL? OBJ,TIMER,DETONATOR \?ELS3 + SET 'TIMER-CONNECTED,FALSE-VALUE + SET 'ALSO,TRUE-VALUE + PRINTI " (The timer is, of course, no longer attached to the detonator.)" + JUMP ?CND1 +?ELS3: ZERO? EXPLOSIVE-CONNECTED /?CND1 + EQUAL? OBJ,EXPLOSIVE,DETONATOR \?CND1 + SET 'EXPLOSIVE-CONNECTED,FALSE-VALUE + PRINTI " (The explosive is, of course, " + ZERO? ALSO /?CND10 + PRINTI "also " +?CND10: PRINTI "no longer attached to the detonator.)" +?CND1: FSET OBJ,TOUCHBIT + FCLEAR OBJ,TRYTAKEBIT + REMOVE OBJ + RTRUE + + + .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,OBJ + EQUAL? PRSO,OBJ \?ELS5 + GET P-ADJW,0 + EQUAL? TEST-ADJ,STACK /TRUE +?ELS5: EQUAL? PRSI,OBJ \FALSE + GET P-ADJW,1 + EQUAL? TEST-ADJ,STACK \FALSE + RTRUE + + + .FUNCT OFF-VEHICLE?,OBJ + EQUAL? OBJ,BED \FALSE + RTRUE + + + .FUNCT OPEN-CLOSED,OBJ + FSET? OBJ,OPENBIT \?ELS5 + PRINTI "open" + RTRUE +?ELS5: PRINTI "closed" + RTRUE + + + .FUNCT WEE + SET 'AWAITING-REPLY,1 + ADD C-ELAPSED,2 + CALL QUEUE,I-REPLY,STACK + PRINTR "Wasn't that fun?" + + + .FUNCT CANT-REACH,OBJ + PRINT YOU-CANT + PRINTI "reach" + CALL TPRINT,OBJ + ZERO? HANGING-IN-AIR /?ELS3 + PRINTI " while you're hanging way up here" + JUMP ?CND1 +?ELS3: IN? PROTAGONIST,HERE /?CND1 + PRINTI " from" + LOC PROTAGONIST + CALL TPRINT,STACK +?CND1: PRINT PERIOD-CR + CALL STOP + RSTACK + + + .FUNCT DO-FIRST,STRING,OBJ=0 + PRINT YOULL-HAVE-TO + PRINT STRING + ZERO? OBJ /?CND1 + CALL TPRINT,OBJ +?CND1: PRINTI " first." + CRLF + CALL STOP + RSTACK + + + .FUNCT DOESNT-FIT,STRING + PRINTI "Unsurprisingly," + CALL TPRINT-PRSO + PRINTI " doesn't fit the " + PRINT STRING + PRINT PERIOD-CR + RTRUE + + + .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 CANT-USE-THAT-WAY,STRING + PRINTC 91 + 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 PRONOUN + EQUAL? PRSO,ME \?ELS5 + PRINTI "You" + RTRUE +?ELS5: FSET? PRSO,PLURALBIT \?ELS7 + PRINTI "They" + RTRUE +?ELS7: FSET? PRSO,ACTORBIT \?ELS9 + PRINTI "He" + RTRUE +?ELS9: PRINTI "It" + RTRUE + + + .FUNCT REFERRING,HIM-HER=0 + PRINTI "I don't see wh" + ZERO? HIM-HER /?ELS3 + PRINTC 111 + JUMP ?CND1 +?ELS3: PRINTI "at" +?CND1: PRINTR " you're referring to." + + + .FUNCT ANTI-LITTER,OBJ + REMOVE OBJ + PRINTI ". The " + EQUAL? OBJ,SOUP \?ELS3 + PRINTI "bowl" + JUMP ?CND1 +?ELS3: PRINTI "cup" +?CND1: PRINTR " instantly vaporizes, part of the galactic anti-litter program." + + .ENDI diff --git a/globals.zil b/globals.zil new file mode 100644 index 0000000..a43c4fc --- /dev/null +++ b/globals.zil @@ -0,0 +1,1448 @@ +"GLOBALS for + STATIONFALL + (c) Copyright 1987 Infocom, Inc. All Rights Reserved." + + + + + + + + + + + + + + + + + + + + + +> + + + +)> + + + + + +; + + + ) + (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 + )>) + ( + > + + + ) + (T + + )>)>> + +; + +; + ) + ( + ) + ( + > + )>> + + + + + + ) + ( + > + ) + ( + ) + ( + > + ) + (T + )>) + ( + + > + )>> + + + + + + ) + ( + ) + ( + ) + ( + + > + )> + ) + ( + ) + (T + )>)>> + + + + + + ) + (T + )>) + ( + > + ) + ( + + )>> + + + + + ) + ( + > + + )>> + + + + + > + ) + ( + > + + ) + (> + >> + )>> + + + + + ) + ( + )>> + + + + + > + ) + ( + > + + ) + (T + )>) + ( + + ) + (T + )> + ) + ( + ) + ;( ;"handled in PRE-PUT" + > + + ) + ( + ) + ( + > + + )>> + + + + + > + + )>> + + + + + + + + ) + ( + ) + ( + > + + ) + ( + > + + ) + ( + ) + ( + ) + ( + > + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + )>> + + + + + + + + + )>> + + + > + + ) + ( + > + + > + + >> + + > + + + ) + ( + > + + + )> + + + + + ) + ( + > + > + + ) + (T + )>) + ( + ) + ( 3> + ) + (T + )>) + ( + )>> + + + >> + ) + ( + >> + ) + (T + )>> + + + + + 1>> + + + )>> + + + + + + + + + ) + ( + )>> + +;"sleeping" + + + + + >> + ) + ( + + + + + ) + (T + + )>) + ( + > + ) + ( + + ) + ( + > + + ) + ( + > + ) + ( + + >> + + + + )>> + + + + + )>> + + + + + > + + )> + > + + + + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + (T ;"SLEEPY-LEVEL is 5" + + ) + ( + + ) + (T + + + >> + )> + )> + )>> + + + )> + + + > + +> + + + + ) + (> + > + + + ) + (T + )> + + ) + ( ;"still on ship" + + ) + (> + + >> + ) + ( + "..." CR CR>)> + > + > + + + > + > + >> + + ) + (T + > + )> + + + > + + )> + + )> + > + + )> + + + + )> + + + > + )> + + + ", 11349 *****" CR CR "You awake "> + + + + ) + ( ,BED ,PILOT-SEAT ,COPILOT-SEAT> + ) + (T + )> + + > + ) + (> + )>)> + + + + ) + (T + )> + + + > + + ;"to get ints. in the proper order" + + + > + + )> + + + + + + + )>)> + + >> + + + + ) + (T + + + ) + (T + )> + > + + )> + + + ) + (T + + + ) + (T + )> + )>)> + )> + + > + +;"thirst and hunger" + + + + + > + + )> + > + + + + ) + ( + + ) + ( + + ) + ( + + ) + ( + )>> + +;"the welding menace" + + + + + + +",\" seems to be moving purposefully toward you, +its welding extensions quivering with...excitement?" CR>) + ( + ) + (T + )>) + ( + + > + + + )> + > + + + > + + ) + (T + )>) + ( + ) + ( + ) + ( + )>> + + ;"how many are roaming around the station?" + + ;"tells the # of currently attacking welder" + +> ;"works on the same principle as new PICK-ONE" + + ;"how close is the attacking welder to you?" + + + + > + + ) + (> + )> + ) + ( + + + ) + (> + > + ,LIT + > + + > + )> + + > + > + + > + + )> + + ) + (T + )>> + +;"utility routines and shared strings" + + + + + + + + + + + + + + + >> + ) + ( + > + ) + (T + )>> + +) (STRING <>)) + > + + + + >>> + )> + + ) + ( + ) + (T + )> + + > + +> + +> + +)) + > + > + + ) + (> + > + + )> + )> + + + > + + + .TEST-NOUN>> + ) + ( + .TEST-NOUN>> + ) + (T + )>> + + + >> + ) + ( + >> + ) + (T + )>> + + + ) + (T + )>> + + + ) + (T + )>> + + + > + > + + + ) + (> + >)> + + > + +)) + + )> + + > + +> + + + + ) + ( + ) + (T + )> + > + +> + +> + > + + + ) + ( + ) + ;( + ) + ( + ) + (T + )>> + +)) + + ) + (T + )> + > + + + + + ) + (T + )> + > + +;> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/misc.zap b/misc.zap new file mode 100644 index 0000000..1eb8008 --- /dev/null +++ b/misc.zap @@ -0,0 +1,569 @@ + + + .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 APRINT,OBJ + FSET? OBJ,NARTICLEBIT \?ELS3 + PRINTC 32 + JUMP ?CND1 +?ELS3: FSET? OBJ,VOWELBIT \?ELS5 + PRINTI " an " + JUMP ?CND1 +?ELS5: PRINTI " a " +?CND1: PRINTD OBJ + RTRUE + + + .FUNCT TPRINT,OBJ + FSET? OBJ,NARTICLEBIT \?ELS3 + PRINTC 32 + JUMP ?CND1 +?ELS3: PRINTI " the " +?CND1: PRINTD OBJ + RTRUE + + + .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 'WINNER,PROTAGONIST + SET 'HERE,DECK-FIVE + RANDOM 1220 + ADD 4430,STACK >INTERNAL-MOVES + SET 'MOVES,INTERNAL-MOVES + SUB 8100,INTERNAL-MOVES + CALL QUEUE,I-SLEEP-WARNINGS,STACK + CALL QUEUE,I-HUNGER-WARNINGS,1330 + PRINTI "It's been five years since your planetfall on Resida. Your heroics in saving that doomed world resulted in a big promotion, but your life of dull scrubwork has been replaced by a life of dull paperwork. Today you find yourself amidst the administrative maze of Deck Five on a typically exciting task: an emergency mission to Space Station Gamma Delta Gamma 777-G 59/59 Sector Alpha-Mu-79 to pick up a supply of " + PRINT FORM-NAME + PRINT ELLIPSIS + CALL V-VERSION + USL + CRLF + CALL V-LOOK + CALL MAIN-LOOP + JUMP ?FCN + + + .FUNCT MAIN-LOOP,TRASH +?PRG1: CALL MAIN-LOOP-1 >TRASH + JUMP ?PRG1 + + + .FUNCT MAIN-LOOP-1,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,?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 + EQUAL? PRSA,V?WALK /?CND4 + ZERO? P-IT-OBJECT /?CND4 + CALL ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK /?CND4 + SET 'TMP,FALSE-VALUE +?PRG9: IGRTR? 'CNT,ICNT /?REP10 + GET P-PRSI,CNT + EQUAL? STACK,IT \?PRG9 + PUT P-PRSI,CNT,P-IT-OBJECT + SET 'TMP,TRUE-VALUE +?REP10: ZERO? TMP \?CND19 + SET 'CNT,0 +?PRG22: IGRTR? 'CNT,OCNT /?CND19 + GET P-PRSO,CNT + EQUAL? STACK,IT \?PRG22 + PUT P-PRSO,CNT,P-IT-OBJECT +?CND19: SET 'CNT,0 +?CND4: ZERO? OCNT \?ELS36 + PUSH OCNT + JUMP ?CND32 +?ELS36: GRTR? OCNT,1 \?ELS38 + SET 'TBL,P-PRSO + ZERO? ICNT \?ELS41 + SET 'OBJ,FALSE-VALUE + JUMP ?CND39 +?ELS41: GET P-PRSI,1 >OBJ +?CND39: PUSH OCNT + JUMP ?CND32 +?ELS38: GRTR? ICNT,1 \?ELS45 + SET 'PTBL,FALSE-VALUE + SET 'TBL,P-PRSI + GET P-PRSO,1 >OBJ + PUSH ICNT + JUMP ?CND32 +?ELS45: PUSH 1 +?CND32: SET 'NUM,STACK + ZERO? OBJ \?CND48 + EQUAL? ICNT,1 \?CND48 + GET P-PRSI,1 >OBJ +?CND48: EQUAL? PRSA,V?WALK \?ELS55 + CALL PERFORM-PRSA,PRSO >V + JUMP ?CND53 +?ELS55: ZERO? NUM \?ELS57 + GETB P-SYNTAX,P-SBITS + BAND STACK,P-SONUMS + ZERO? STACK \?ELS60 + CALL PERFORM-PRSA >V + SET 'PRSO,FALSE-VALUE + JUMP ?CND53 +?ELS60: ZERO? LIT \?ELS62 + PRINT TOO-DARK + CRLF + CALL STOP + JUMP ?CND53 +?ELS62: PRINTI "There isn't anything to " + GET P-ITBL,P-VERBN >TMP + EQUAL? PRSA,V?TELL \?ELS67 + PRINTI "talk to" + JUMP ?CND65 +?ELS67: ZERO? P-OFLAG \?THN70 + ZERO? P-MERGED /?ELS69 +?THN70: GET TMP,0 + PRINTB STACK + JUMP ?CND65 +?ELS69: GETB TMP,2 >?TMP1 + GETB TMP,3 + CALL WORD-PRINT,?TMP1,STACK +?CND65: PRINTC 33 + CRLF + SET 'V,FALSE-VALUE + CALL STOP + JUMP ?CND53 +?ELS57: SET 'P-NOT-HERE,0 + SET 'P-MULT,FALSE-VALUE + GRTR? NUM,1 \?CND76 + SET 'P-MULT,TRUE-VALUE +?CND76: SET 'TMP,FALSE-VALUE +?PRG79: IGRTR? 'CNT,NUM \?ELS83 + GRTR? P-NOT-HERE,0 \?ELS86 + PRINTI "[The " + EQUAL? P-NOT-HERE,NUM /?CND87 + PRINTI "other " +?CND87: PRINTI "object" + EQUAL? P-NOT-HERE,1 /?CND90 + PRINTC 115 +?CND90: PRINTI " that you mentioned " + EQUAL? P-NOT-HERE,1 /?ELS95 + PRINTI "are" + JUMP ?CND93 +?ELS95: PRINTI "is" +?CND93: PRINTI "n't here.]" + CRLF + JUMP ?CND53 +?ELS86: ZERO? TMP \?CND53 + CALL REFERRING + JUMP ?CND53 +?ELS83: ZERO? PTBL /?ELS104 + GET P-PRSO,CNT >OBJ1 + JUMP ?CND102 +?ELS104: GET P-PRSI,CNT >OBJ1 +?CND102: ZERO? PTBL /?ELS112 + PUSH OBJ1 + JUMP ?CND108 +?ELS112: PUSH OBJ +?CND108: SET 'PRSO,STACK + ZERO? PTBL /?ELS120 + PUSH OBJ + JUMP ?CND116 +?ELS120: PUSH OBJ1 +?CND116: SET 'PRSI,STACK + GRTR? NUM,1 /?THN127 + GET P-ITBL,P-NC1 + GET STACK,0 + EQUAL? STACK,W?ALL,W?BOTH,W?EVERYT \?CND124 +?THN127: CALL DONT-ALL,OBJ1 + ZERO? STACK \?PRG79 + EQUAL? OBJ1,IT \?ELS136 + PRINTD P-IT-OBJECT + JUMP ?CND134 +?ELS136: EQUAL? OBJ1,HIM \?ELS138 + PRINTD P-HIM-OBJECT + JUMP ?CND134 +?ELS138: PRINTD OBJ1 +?CND134: PRINTI ": " +?CND124: SET 'TMP,TRUE-VALUE + CALL PERFORM-PRSA,PRSO,PRSI >V + EQUAL? V,M-FATAL \?PRG79 +?CND53: EQUAL? V,M-FATAL \?CND144 + SET 'P-CONT,FALSE-VALUE +?CND144: CALL CLOCKER-VERB? + ZERO? STACK /?ELS149 + EQUAL? PRSA,V?TELL /?ELS149 + ZERO? P-WON /?ELS149 + CALL RUNNING?,I-SPACETRUCK + ZERO? STACK /?ELS154 + LESS? SPACETRUCK-COUNTER,5 \?ELS154 + SET 'C-ELAPSED,240 + JUMP ?CND152 +?ELS154: CALL QUEUED?,I-TIMER + ZERO? STACK /?CND152 + SET 'C-ELAPSED,10 +?CND152: GETP HERE,P?ACTION + CALL STACK,M-END >V + JUMP ?CND1 +?ELS149: SET 'C-ELAPSED,0 + JUMP ?CND1 +?ELS3: SET 'P-CONT,FALSE-VALUE +?CND1: ZERO? P-WON /FALSE + ADD INTERNAL-MOVES,C-ELAPSED >INTERNAL-MOVES + FSET? CHRONOMETER,WORNBIT \?ELS171 + LESS? DAY,3 \?ELS174 + SET 'MOVES,INTERNAL-MOVES + JUMP ?CND169 +?ELS174: SET 'MOVES,9947 + JUMP ?CND169 +?ELS171: SET 'MOVES,0 +?CND169: ZERO? C-ELAPSED /?CND179 + CALL CLOCKER >V +?CND179: SET 'POSTPONE-ATTACK,FALSE-VALUE + SET 'C-ELAPSED,7 + SET 'P-PRSA-WORD,FALSE-VALUE + SET 'PRSA,FALSE-VALUE + SET 'PRSO,FALSE-VALUE + SET 'PRSI,FALSE-VALUE + RETURN PRSI + + + .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? PROTAGONIST,WINNER \TRUE + EQUAL? PRSA,V?SCORE,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?VERBOSE \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: PRINTC 111 +?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 + RTRUE + + + .FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI + ZERO? DEBUG /?CND1 + PRINTI "[Perform: " + PRINTN A + ZERO? O /?CND5 + PRINTI " / PRSO = " + EQUAL? A,V?WALK /?ELS11 + PRINTD O + JUMP ?CND5 +?ELS11: PRINTN O +?CND5: ZERO? I /?CND14 + PRINTI " / PRSI = " + PRINTD I +?CND14: PRINTC 93 + CRLF +?CND1: SET 'OA,PRSA + SET 'OO,PRSO + SET 'OI,PRSI + SET 'PRSA,A + ZERO? P-WALK-DIR \?CND18 + EQUAL? IT,O,I \?CND18 + CALL VISIBLE?,P-IT-OBJECT + ZERO? STACK /?ELS25 + EQUAL? IT,O \?ELS28 + SET 'O,P-IT-OBJECT + JUMP ?CND18 +?ELS28: SET 'I,P-IT-OBJECT + JUMP ?CND18 +?ELS25: ZERO? I \?ELS35 + CALL FAKE-ORPHAN,TRUE-VALUE + RETURN 8 +?ELS35: CALL REFERRING + RETURN 8 +?CND18: ZERO? P-WALK-DIR \?CND40 + EQUAL? HIM,O,I \?CND40 + CALL VISIBLE?,P-HIM-OBJECT + ZERO? STACK /?ELS47 + EQUAL? HIM,O \?ELS50 + SET 'O,P-HIM-OBJECT + JUMP ?CND40 +?ELS50: SET 'I,P-HIM-OBJECT + JUMP ?CND40 +?ELS47: ZERO? I \?ELS57 + CALL FAKE-ORPHAN + RETURN 8 +?ELS57: CALL REFERRING,TRUE-VALUE + RETURN 8 +?CND40: SET 'PRSO,O + SET 'PRSI,I + EQUAL? A,V?WALK /?ELS64 + EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?ELS64 + CALL D-APPLY,STR?1,NOT-HERE-OBJECT-F >V + ZERO? V /?ELS64 + SET 'P-WON,FALSE-VALUE + JUMP ?CND62 +?ELS64: 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 \?CND62 + GET PREACTIONS,A + CALL D-APPLY,STR?3,STACK >V + ZERO? V \?CND62 + ZERO? I /?ELS75 + GETP I,P?ACTION + CALL D-APPLY,STR?4,STACK >V + ZERO? V \?CND62 +?ELS75: ZERO? O /?ELS79 + EQUAL? A,V?WALK /?ELS79 + GETP O,P?ACTION + CALL D-APPLY,STR?5,STACK >V + ZERO? V \?CND62 +?ELS79: GET ACTIONS,A + CALL D-APPLY,FALSE-VALUE,STACK >V + ZERO? V /?CND62 +?CND62: SET 'PRSA,OA + SET 'PRSO,OO + SET 'PRSI,OI + RETURN V + + + .FUNCT D-APPLY,STR,FCN,FOO=0,RES + ZERO? FCN /FALSE + ZERO? DEBUG /?CND8 + ZERO? STR \?ELS14 + PRINTI " Default ->" + CRLF + JUMP ?CND8 +?ELS14: PRINTI " " + PRINT STR + PRINTI " -> " +?CND8: ZERO? FOO /?ELS21 + CALL FCN,FOO + JUMP ?CND17 +?ELS21: CALL FCN +?CND17: SET 'RES,STACK + ZERO? DEBUG /?CND25 + ZERO? STR /?CND25 + EQUAL? RES,M-FATAL \?ELS32 + PRINTI "Fatal" + CRLF + RETURN RES +?ELS32: ZERO? RES \?ELS34 + PRINTI "Not handled" + RETURN RES +?ELS34: PRINTI "Handled" + CRLF +?CND25: 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 "Bug2" + 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 + ADD C-TABLE,C-INTS >CLOCK-HAND + ADD C-TABLE,C-TABLELEN >E + SET 'OWINNER,WINNER + SET 'WINNER,PROTAGONIST +?PRG1: EQUAL? CLOCK-HAND,E \?ELS5 + SET 'CLOCK-HAND,E + SET 'WINNER,OWINNER + RETURN FLG +?ELS5: GET CLOCK-HAND,C-RTN + ZERO? STACK /?CND3 + GET CLOCK-HAND,C-TICK >TICK + LESS? TICK,-1 \?ELS10 + SUB 0,TICK + SUB STACK,3 + PUT CLOCK-HAND,C-TICK,STACK + SET 'Q?,CLOCK-HAND + JUMP ?CND3 +?ELS10: ZERO? TICK /?CND3 + GRTR? TICK,0 \?CND13 + SUB TICK,C-ELAPSED >TICK + LESS? TICK,0 \?CND16 + SET 'TICK,0 +?CND16: PUT CLOCK-HAND,C-TICK,TICK +?CND13: ZERO? TICK /?CND19 + SET 'Q?,CLOCK-HAND +?CND19: GRTR? TICK,0 /?CND3 + GET CLOCK-HAND,C-RTN >RTN + ZERO? TICK \?CND25 + PUT CLOCK-HAND,C-RTN,0 +?CND25: CALL RTN + ZERO? STACK /?CND28 + SET 'FLG,TRUE-VALUE +?CND28: ZERO? Q? \?CND3 + GET CLOCK-HAND,C-RTN + ZERO? STACK /?CND3 + SET 'Q?,TRUE-VALUE +?CND3: ADD CLOCK-HAND,C-INTLEN >CLOCK-HAND + ZERO? Q? \?PRG1 + ADD C-INTS,C-INTLEN >C-INTS + JUMP ?PRG1 + + .ENDI diff --git a/misc.zil b/misc.zil new file mode 100644 index 0000000..00b681c --- /dev/null +++ b/misc.zil @@ -0,0 +1,713 @@ +"MISC for + STATIONFALL + (c) Copyright 1987 Infocom, Inc. All Rights Reserved." + +;"macros" + + + 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 + )> + > + +> + +> + + + > + + + > + + 3> + )> + + > NOUN>)> + + > ADJECTIVE>)> + <3 .OBJ>>> + .V>> + +;"MAIN-LOOP and associated routines" + + + + + + + + + + + ;"else, ZIL gets confused between verb-word GO and routine GO" + +;"As if on cue, a landing party from the S.P.S. Flathead materializes nearby. +Blather is with them, having been picked up from deep space in another escape +pod, babbling cravenly. Captain Sterling of the Flathead acknowledges your +heroic actions, and informs you of your promotion to Lieutenant First Class.| +| +As a team of mutant hunters head for the cryo-elevator, Veldina mentions that +the grateful people of Resida offer you leadership of their world. Captain +Sterling points out that, even if you choose to remain on Resida, Blather +(demoted to Ensign Twelfth Class) has been assigned as your personal toilet +attendant.| +| +You feel a sting from your arm and turn to see a medical robot moving away +after administering the antidote for The Disease.| +| +A team of robot technicians step into the anteroom. They part their ranks, and +a familiar figure comes bounding toward you! \"Hi!\" shouts Floyd, with +uncontrolled enthusiasm. \"Floyd feeling better now!\" Smiling from ear to +ear, he says, \"Look what Floyd found!\" He hands you a helicopter key, +a reactor elevator card, and a paddleball set. \"Maybe we can use them in +the sequel...\"" + + + + >> + + ; 0> + >>) + (T + )> + > + + + + + + + + > + +>>> + + + > + + > + > + > + > + ,P-IT-OBJECT + > + > + > .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?BOTH ,W?EVERYT>> + + ) + (T + + ) + ( + ) + ;( + ) + (T + )> + )>)> + + > + + )>)>>)> + + >)> + + > + ,P-WON ;"fake YOU CANT SEE responses set P-WON to false"> + + > + ) + ( + )> + ,M-END>>) + (T + )>) + (T + >)> + > + + + ) + (T + )>) + (T + )> + > + >)> + > + ;"default length of move" + > + ;"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" + > + > + )>)>> + +> + ;"or else FLOYD, HELP doesn't run the clock") + ( + ) + (T + )>> + +> + +> + + + +) "AUX" TMP) + > + > + + ) + (T + )> + + + ) + (<0? > + >) + (T + > + )> + + > + > + > + +) (I <>)) + + > + +) (I <>) "AUX" V OA OO OI) + + % + ') + (T + ' 1>>>)> + )> + + + + + > + + + ) + (T + )>) + (T + + ) + (T + )> + )>)> + > + + + ) + (T + )>) + (T + + ) + (T + )> + )>)> + ; > + + + ) + (T + )>) + (T + + ) + (T + )> + )>)> + + + > + + >> + >) + (T + + + + + >> + T) + ;( ,M-BEG>> + T) + (>> + T) + (>>> + T) + ;(> + + ,P?CONTFCN> + ,P?CONTFCN>>>> + T) + (> + >>> + T) + ( >> + T)>)> + + + + .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 + + )> ;"too many interrupts" + > + + )> + >)> + + ) + ( .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..c0d1f1e --- /dev/null +++ b/parser.zap @@ -0,0 +1,1869 @@ + + + .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,ACTORBIT /?THN12 + EQUAL? OBJ,OLIVER \?ELS11 +?THN12: SET 'P-HIM-OBJECT,OBJ + RETURN P-HIM-OBJECT +?ELS11: 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 /?REP2 + 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 + ZERO? ELIMINATE-CR \?CND31 + CRLF +?CND31: SET 'ELIMINATE-CR,FALSE-VALUE + 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: PRINTC 62 + READ P-INBUF,P-LEXV + GETB P-LEXV,P-LEXWORDS >OLEN +?CND19: GETB P-LEXV,P-LEXWORDS >P-LEN + ZERO? P-LEN \?ELS46 + PRINTI "[I beg your pardon]" + 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 + PRINTC 91 + PRINT YOU-CANT + PRINTI "see " + PRINTD 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: ADD PTR,4 >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 /?CND64 + 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,64,1 + 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,16,3 >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,64,1 >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,8,0 >VAL + ZERO? VAL \?THN164 + EQUAL? WRD,W?ALL,W?ONE,W?BOTH /?THN168 + EQUAL? WRD,W?EVERYT /?THN168 + CALL WT?,WRD,32 + ZERO? STACK \?THN168 + CALL WT?,WRD,128 + 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 \?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,4 + ZERO? STACK \?CND104 + EQUAL? VERB,ACT?TELL \?ELS201 + CALL WT?,WRD,64,1 + ZERO? STACK /?ELS201 + EQUAL? WINNER,PROTAGONIST \?ELS201 + PRINTI "[The proper way to speak to other characters is CHARACTER, DO THIS. See the instruction manual section entitled ""Communicating With Infocom's Interactive Fiction.""]" + CRLF + 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 + RTRUE +?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,128 /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,8 + ZERO? STACK /?ELS23 + CALL WT?,WRD,32 + 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,8 + 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,128 + ZERO? STACK /?ELS50 + GRTR? P-LEN,0 \?ELS53 + EQUAL? NW,W?OF \?ELS53 + EQUAL? WRD,W?ALL,W?EVERYT /?ELS53 + EQUAL? WRD,W?ONE,W?BOTH \?CND14 +?ELS53: CALL WT?,WRD,32,2 + ZERO? STACK /?ELS57 + ZERO? NW /?ELS57 + EQUAL? NW,W?MY /?ELS57 + CALL WT?,NW,128 + ZERO? STACK \?THN60 + CALL WT?,NW,32 + ZERO? STACK /?ELS57 +?THN60: GET P-ITBL,P-VERB + EQUAL? STACK,ACT?SHOW,ACT?HAND,ACT?FEED \?CND14 +?ELS57: ZERO? ANDFLG \?ELS63 + EQUAL? NW,W?BUT,W?EXCEPT /?ELS63 + EQUAL? NW,W?AND,W?COMMA /?ELS63 + ADD NUM,1 >?TMP1 + ADD PTR,2 + MUL STACK,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + RETURN PTR +?ELS63: SET 'ANDFLG,FALSE-VALUE + JUMP ?CND14 +?ELS50: CALL WT?,WRD,32 + ZERO? STACK \?CND14 + CALL WT?,WRD,4 + ZERO? STACK \?CND14 + CALL WT?,WRD,8 + ZERO? STACK \?CND14 + 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 /?REP2 + 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 + ADD PTR,4 >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 /?REP29 + ADD PTR,P-LEXELEN >PTR + ADD PTR,4 >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 /?REP2 + GETB P-INBUF,BPTR >CHR + INC 'CCTR + GRTR? CCTR,3 /?REP2 + LESS? CHR,58 \FALSE + GRTR? CHR,47 \FALSE + MUL SUM,10 >?TMP1 + SUB CHR,48 + ADD ?TMP1,STACK >SUM + 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,VRB=0,WRD,?TMP1 + SET 'P-OFLAG,FALSE-VALUE + GET P-ITBL,P-VERBN + GET STACK,0 >WRD + CALL WT?,WRD,64,1 >?TMP1 + GET P-OTBL,P-VERB + EQUAL? ?TMP1,STACK \?ELS3 + SET 'VRB,TRUE-VALUE + SET 'ADJ,TRUE-VALUE + JUMP ?CND1 +?ELS3: CALL WT?,WRD,32 + ZERO? STACK /?ELS5 + SET 'ADJ,TRUE-VALUE + JUMP ?CND1 +?ELS5: CALL WT?,WRD,128,0 + ZERO? STACK /?CND1 + ZERO? P-NCN \?CND1 + PUT P-ITBL,P-VERB,0 + PUT P-ITBL,P-VERBN,0 + ADD P-LEXV,2 + PUT P-ITBL,P-NC1,STACK + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK + SET 'P-NCN,1 +?CND1: GET P-ITBL,P-VERB >VERB + ZERO? VERB /?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 + ZERO? VRB \?ELS26 + ADD P-LEXV,2 + PUT P-OTBL,P-NC1,STACK + GET P-ITBL,P-NC1L + ZERO? STACK \?CND29 + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK +?CND29: 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 \?ELS40 + GET P-ITBL,P-PREP1 >TEMP + GET P-OTBL,P-PREP2 + EQUAL? TEMP,STACK /?THN44 + ZERO? TEMP \FALSE +?THN44: ZERO? ADJ /?CND46 + ZERO? VRB \?CND46 + ADD P-LEXV,2 + PUT P-ITBL,P-NC1,STACK + GET P-ITBL,P-NC1L + ZERO? STACK \?CND46 + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK +?CND46: 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 +?ELS40: ZERO? P-ACLAUSE /?CND10 + EQUAL? P-NCN,1 /?ELS61 + ZERO? ADJ \?ELS61 + SET 'P-ACLAUSE,FALSE-VALUE + RFALSE +?ELS61: GET P-ITBL,P-NC1 >BEG + ZERO? ADJ /?CND66 + ADD P-LEXV,2 >BEG + SET 'ADJ,FALSE-VALUE +?CND66: GET P-ITBL,P-NC1L >END +?PRG70: GET BEG,0 >WRD + EQUAL? BEG,END \?ELS74 + ZERO? ADJ /?ELS77 + CALL CLAUSE-WIN,ADJ + JUMP ?CND10 +?ELS77: SET 'P-ACLAUSE,FALSE-VALUE + RFALSE +?ELS74: EQUAL? WRD,W?ALL,W?EVERYT,W?ONE /?THN83 + EQUAL? WRD,W?BOTH /?THN83 + GETB WRD,P-PSOFF + BTST STACK,32 \?ELS82 + CALL ADJ-CHECK,WRD,ADJ,ADJ + ZERO? STACK /?ELS82 +?THN83: SET 'ADJ,WRD + JUMP ?CND72 +?ELS82: EQUAL? WRD,W?ONE \?ELS88 + CALL CLAUSE-WIN,ADJ + JUMP ?CND10 +?ELS88: GETB WRD,P-PSOFF + BTST STACK,128 \?CND72 + EQUAL? WRD,P-ANAM \?ELS93 + CALL CLAUSE-WIN,ADJ + JUMP ?CND10 +?ELS93: CALL CLAUSE-WIN + JUMP ?CND10 +?CND72: ADD BEG,P-WORDLEN >BEG + ZERO? END \?PRG70 + SET 'END,BEG + SET 'P-NCN,1 + SUB BEG,4 + PUT P-ITBL,P-NC1,STACK + PUT P-ITBL,P-NC1L,BEG + JUMP ?PRG70 +?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 +?PRG99: IGRTR? 'CNT,P-ITBLLEN \?ELS103 + SET 'P-MERGED,TRUE-VALUE + RTRUE +?ELS103: GET P-OTBL,CNT + PUT P-ITBL,CNT,STACK + JUMP ?PRG99 + + + .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,BUF,?TMP1 + PRINTI "[You used the word """ + MUL PTR,2 >BUF + ADD P-LEXV,BUF + GETB STACK,2 >?TMP1 + ADD P-LEXV,BUF + GETB STACK,3 + CALL WORD-PRINT,?TMP1,STACK + PRINTI """ in a way that I don't understand.]" + CRLF + 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 + PRINTI "[There was no verb in that sentence!]" + CRLF + 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 /?CND6 + 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 \?REP5 + 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 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 /?REP5 + 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: PRINTC 32 +?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 /?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 + PRINTD P-IT-OBJECT + JUMP ?CND28 +?ELS34: EQUAL? WRD,W?HIM,W?HIMSELF \?ELS38 + CALL ACCESSIBLE?,P-HIM-OBJECT + ZERO? STACK /?ELS38 + PRINTD P-HIM-OBJECT + JUMP ?CND28 +?ELS38: 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?FLOYD,W?PLATO \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 + PRINTC 32 + 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 /?REP2 + 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 /?CND6 + 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 + GRTR? CNT,0 \?CND23 + PUT OCL,P-MATCHLEN,0 + INC 'OBEG +?PRG28: GET OCL,OBEG + CALL CLAUSE-ADD,STACK + SUB CNT,2 >CNT + ZERO? CNT /?REP29 + 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 + PRINTC 91 + 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: PRINTC 32 +?CND14: PRINTD OBJ + PRINTC 93 + 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 /?REP2 + GET TBL,CNT >OBJ + CALL ZMEMQ,OBJ,P-BUTS + ZERO? STACK \?CND3 + ADD MATCHES,1 + PUT P-MERGE,STACK,OBJ + INC 'MATCHES +?CND3: INC 'CNT + JUMP ?PRG1 +?REP2: PUT P-MERGE,P-MATCHLEN,MATCHES + SET 'NTBL,P-MERGE + SET 'P-MERGE,TBL + RETURN NTBL + + + .FUNCT SNARFEM,PTR,EPTR,TBL,BUT=0,LEN,WV,WRD,NW,WAS-ALL=0 + SET 'P-AND,FALSE-VALUE + EQUAL? P-GETFLAGS,P-ALL \?CND1 + SET 'WAS-ALL,TRUE-VALUE +?CND1: SET 'P-GETFLAGS,0 + PUT 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 \?CND6 + ADD PTR,P-WORDLEN >PTR + JUMP ?CND6 +?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 \?CND6 + RTRUE +?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 \?CND6 + RFALSE +?ELS62: CALL WT?,WRD,4 + ZERO? STACK \?CND6 + EQUAL? WRD,W?AND,W?COMMA /?CND6 + EQUAL? WRD,W?OF \?ELS76 + ZERO? P-GETFLAGS \?CND6 + SET 'P-GETFLAGS,P-INHIBIT + JUMP ?CND6 +?ELS76: CALL WT?,WRD,32,2 >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,128,0 + ZERO? STACK /?CND6 + SET 'P-NAM,WRD + SET 'P-ONEOBJ,WRD +?CND6: EQUAL? PTR,EPTR /?PRG4 + ADD PTR,P-WORDLEN >PTR + SET 'WRD,NW + JUMP ?PRG4 + + + .FUNCT NAUGHTY-WORD?,WORD + EQUAL? WORD,W?ASS,W?ASSHOLE,W?BITCH /?THN6 + EQUAL? WORD,W?BASTARD,W?COCK,W?COCKSU /?THN6 + EQUAL? WORD,W?CUNT,W?DAMN,W?DAMNED /?THN6 + EQUAL? WORD,W?FUCK,W?FUCKED,W?FUCKING /?THN6 + EQUAL? WORD,W?SHIT,W?SHITHEAD,W?SHITTY /?THN6 + EQUAL? WORD,W?TROT,W?KRIP,W?MEGAKRIP /?THN6 + EQUAL? WORD,W?TROTTING \FALSE +?THN6: PRINTR "Such language from a Lieutenant in the Stellar Patrol!" + + + .FUNCT ADJ-CHECK,WRD,ADJ,ADJN + ZERO? ADJ /TRUE + EQUAL? WRD,W?INNER,W?OUTER,W?LARGE /TRUE + EQUAL? WRD,W?SMALL,W?TWELVE,W?TWENTY \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,128,0 + 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,16,3 >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 WINNER,TRANSBIT + CALL DO-SL,HERE,SOG,SIR + FSET WINNER,TRANSBIT + JUMP ?CND36 +?ELS38: LOC WINNER + FSET? STACK,VEHBIT \?CND36 + LOC WINNER + CALL THIS-IT?,STACK + ZERO? STACK /?CND36 + LOC WINNER + CALL OBJ-FOUND,STACK,TBL +?CND36: CALL DO-SL,WINNER,SH,SC +?CND30: GET TBL,P-MATCHLEN + SUB STACK,TLEN >LEN + BTST P-GETFLAGS,P-ALL /?CND45 + 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 WHICH-PRINT,TLEN,LEN,TBL + 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 + ZERO? DEBUG /?CND1 + PRINTI "[MOBY-FINDing; P-NAM=" + PRINTB P-NAM + PRINTC 93 + CRLF +?CND1: PUT TBL,P-MATCHLEN,0 +?PRG7: IN? OBJ,ROOMS /?CND9 + CALL THIS-IT?,OBJ >FOO + ZERO? FOO /?CND9 + CALL OBJ-FOUND,OBJ,TBL >FOO +?CND9: IGRTR? 'OBJ,LAST-OBJECT \?PRG7 + GET TBL,P-MATCHLEN >LEN + EQUAL? LEN,1 \?CND17 + GET TBL,1 >P-MOBY-FOUND +?CND17: SET 'P-NAM,NAM + SET 'P-ADJ,ADJ + RETURN LEN + + + .FUNCT WHICH-PRINT,TLEN,LEN,TBL,OBJ,RLEN + ZERO? LEN \?CND1 + CALL REFERRING + RTRUE +?CND1: SET 'RLEN,LEN + EQUAL? WINNER,PROTAGONIST /?ELS6 + PRINTI """I don't understand whether you mean " + JUMP ?CND4 +?ELS6: PRINTI "[Which" + ZERO? P-OFLAG \?THN12 + ZERO? P-MERGED \?THN12 + ZERO? P-AND /?ELS11 +?THN12: PRINTC 32 + PRINTB P-NAM + JUMP ?CND9 +?ELS11: EQUAL? TBL,P-PRSO \?ELS15 + CALL CLAUSE-PRINT,P-NC1,P-NC1L,FALSE-VALUE + JUMP ?CND9 +?ELS15: CALL CLAUSE-PRINT,P-NC2,P-NC2L,FALSE-VALUE +?CND9: PRINTI " do you mean, " +?CND4: +?PRG18: INC 'TLEN + GET TBL,TLEN >OBJ + FSET? OBJ,NARTICLEBIT /?CND20 + PRINTI "the " +?CND20: PRINTD OBJ + EQUAL? LEN,2 \?ELS25 + EQUAL? RLEN,2 /?CND26 + PRINTC 44 +?CND26: PRINTI " or " + JUMP ?CND23 +?ELS25: GRTR? LEN,2 \?CND23 + PRINTI ", " +?CND23: DEC 'LEN + LESS? LEN,1 \?PRG18 + EQUAL? WINNER,PROTAGONIST /?ELS38 + PRINTR ".""" +?ELS38: 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 \?CND17 +?ELS19: ZERO? P-ADJ /?ELS23 + ADD CNT,2 + GET RMG,STACK + CALL WT?,STACK,32,2 + EQUAL? P-ADJ,STACK \?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 \?CND17 + CALL VISIBLE?,P-HIM-OBJECT + ZERO? STACK \?ELS29 + CALL REFERRING,TRUE-VALUE + RFALSE +?ELS29: SET 'OBJ,P-HIM-OBJECT +?CND17: CALL ULTIMATELY-IN?,OBJ + ZERO? STACK \?PRG10 + EQUAL? OBJ,INTNUM,HANDS /?PRG10 + EQUAL? OBJ,LEASH \?ELS38 + ZERO? HANGING-IN-AIR \?PRG10 +?ELS38: SET 'PRSO,OBJ + FSET? OBJ,TRYTAKEBIT \?ELS45 + SET 'TAKEN,TRUE-VALUE + JUMP ?CND43 +?ELS45: CALL UNTOUCHABLE?,OBJ + ZERO? STACK /?ELS47 + SET 'TAKEN,TRUE-VALUE + JUMP ?CND43 +?ELS47: EQUAL? WINNER,PROTAGONIST /?ELS49 + SET 'TAKEN,FALSE-VALUE + JUMP ?CND43 +?ELS49: BTST IBITS,STAKE \?ELS51 + CALL ITAKE,FALSE-VALUE + EQUAL? STACK,TRUE-VALUE \?ELS51 + SET 'TAKEN,FALSE-VALUE + JUMP ?CND43 +?ELS51: SET 'TAKEN,TRUE-VALUE +?CND43: ZERO? TAKEN /?ELS58 + BTST IBITS,SHAVE \?ELS58 + GET TBL,P-MATCHLEN + LESS? 1,STACK \?ELS63 + PRINT YNH + PRINTI " all those things!" + CRLF + RFALSE +?ELS63: EQUAL? OBJ,NOT-HERE-OBJECT \?CND61 + PRINT YOU-CANT + PRINTI "see that here!" + CRLF + RFALSE +?CND61: EQUAL? WINNER,PROTAGONIST \?ELS68 + PRINT YNH + JUMP ?CND66 +?ELS68: PRINTI "It doesn't look like" + CALL TPRINT,WINNER + PRINTI " has" +?CND66: CALL THIS-IS-IT,OBJ + CALL TRPRINT,OBJ + RFALSE +?ELS58: 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 + PRINTC 91 + 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: PRINTC 32 + PRINTD PRSO + RTRUE +?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: PRINTC 32 + PRINTD PRSI + RTRUE +?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..768ffc0 --- /dev/null +++ b/parser.zil @@ -0,0 +1,1811 @@ +"PARSER for + STATIONFALL + (c) Copyright 1987 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>>>) + ( + > + >> + + 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 + )>> + + + +) (VRB <>) 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>> + + > + >> + + + >> 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>> 0>> + + > + > + >> + )> + >> + )> + 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 + + + + ) + ( + >) + (T + >)> + )> + > + > + > + )> + + + > + )> + ) + ( + )> + > + + )>> + > + ) + (T + )>> + +; + + + + ) + ( + >) + (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 + )>)> + + > + T) + ( + ,HANGING-IN-AIR> + 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/s6.zap b/s6.zap new file mode 100644 index 0000000..0c8cf3a --- /dev/null +++ b/s6.zap @@ -0,0 +1,15 @@ + .INSERT "PS:S6FREQ" ; Frequent word table + .INSERT "PS:S6DAT" ; Data file + .INSERT "PS:S6PUR" + .INSERT "PS:MISC" + .INSERT "PS:PARSER" + .INSERT "PS:SYNTAX" + .INSERT "PS:VERBS" + .INSERT "PS:GLOBALS" + .INSERT "PS:SHIP" + .INSERT "PS:STATION" + .INSERT "PS:VILLAGE" + + .INSERT "PS:S6STR" + + .END diff --git a/s6.zil b/s6.zil new file mode 100644 index 0000000..a0bc424 --- /dev/null +++ b/s6.zil @@ -0,0 +1,28 @@ +"S6 for + STATIONFALL + (c) Copyright 1987 Infocom, Inc. All Rights Reserved." + + + +ON!-INITIAL +OFF!-INITIAL ;"makes debugging possible -- pdl" + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/s6.zip b/s6.zip new file mode 100644 index 0000000..94dcd88 Binary files /dev/null and b/s6.zip differ diff --git a/s6dat.zap b/s6dat.zap new file mode 100644 index 0000000..a3806da --- /dev/null +++ b/s6dat.zap @@ -0,0 +1,14037 @@ + + +; TOP LEVEL DEFINITIONS + + TRUE-VALUE=1 + FALSE-VALUE=0 + FATAL-VALUE=2 + + O?ANY=1 + + PS?OBJECT=128 + PS?VERB=64 + PS?ADJECTIVE=32 + PS?DIRECTION=16 + PS?PREPOSITION=8 + PS?BUZZ-WORD=4 + + P1?NONE=0 + P1?OBJECT=0 + P1?VERB=1 + P1?ADJECTIVE=2 + P1?DIRECTION=3 + + +; OBJECT FLAGS ARE DEFINED HERE + + + WEIGHTLESSBIT=2 + FX?WEIGHTLESSBIT=8192 + + PARTBIT=3 + FX?PARTBIT=4096 + + NWELDERBIT=4 + FX?NWELDERBIT=2048 + + FLOYDBIT=5 + FX?FLOYDBIT=1024 + + NARTICLEBIT=6 + FX?NARTICLEBIT=512 + + INBIT=7 + FX?INBIT=256 + + PLURALBIT=8 + FX?PLURALBIT=128 + + NDESCBIT=9 + FX?NDESCBIT=64 + + LOCKEDBIT=10 + FX?LOCKEDBIT=32 + + VOWELBIT=11 + FX?VOWELBIT=16 + + TRANSBIT=12 + FX?TRANSBIT=8 + + SEARCHBIT=13 + FX?SEARCHBIT=4 + + OPENBIT=14 + FX?OPENBIT=2 + + TRYTAKEBIT=15 + FX?TRYTAKEBIT=1 + + SURFACEBIT=16 + FX?SURFACEBIT=32768 + + TOUCHBIT=17 + FX?TOUCHBIT=16384 + + INVISIBLE=18 + FX?INVISIBLE=8192 + + WEARBIT=19 + FX?WEARBIT=4096 + + WORNBIT=20 + FX?WORNBIT=2048 + + READBIT=21 + FX?READBIT=1024 + + TAKEBIT=22 + FX?TAKEBIT=512 + + LIGHTBIT=23 + FX?LIGHTBIT=256 + + CONTBIT=24 + FX?CONTBIT=128 + + ACTIVEBIT=25 + FX?ACTIVEBIT=64 + + DOORBIT=26 + FX?DOORBIT=32 + + RLANDBIT=27 + FX?RLANDBIT=16 + + BURNBIT=28 + FX?BURNBIT=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?DIAGNOSE=3 + V?INVENTORY=4 + V?QUIT=5 + V?RESTART=6 + V?RESTORE=7 + V?SAVE=8 + V?SCORE=9 + V?SCRIPT=10 + V?UNSCRIPT=11 + V?VERSION=12 + V?$RANDOM=13 + V?$COMMAND=14 + V?$RECORD=15 + V?$UNRECORD=16 + V?$VERIFY=17 + V?$DEBUG=18 + V?$STATION=19 + V?$KEY=20 + V?ANSWER=21 + V?APPLAUD=22 + V?APPLY=23 + V?PUT-ON=24 + V?WALK-TO=25 + V?ASK-ABOUT=26 + V?ASK-FOR=27 + V?KILL=28 + V?ATTRACT=29 + V?BITE=30 + V?OFF=31 + V?ENTER=32 + V?BURN=33 + V?CALL=34 + V?CATCH=35 + V?WALK-AROUND=36 + V?CLIMB-UP=37 + V?CLIMB-ON=38 + V?CLIMB-DOWN=39 + V?DISEMBARK=40 + V?CRAWL-UNDER=41 + V?CLOSE=42 + V?FOLLOW=43 + V?COMFORT=44 + V?CONNECT=45 + V?SPUT-ON=46 + V?COUNT=47 + V?CROSS=48 + V?MUNG=49 + V?DIG=50 + V?DISCONNECT=51 + V?DRESS=52 + V?DRILL=53 + V?DRILL-HOLE=54 + V?DROP=55 + V?PUT=56 + V?EAT=57 + V?EAT-FROM=58 + V?EMPTY=59 + V?EMPTY-FROM=60 + V?IN=61 + V?EXAMINE=62 + V?EXERCISE=63 + V?EXIT=64 + V?FEED=65 + V?GIVE=66 + V?SGIVE=67 + V?FILL=68 + V?FIND=69 + V?FLATTEN=70 + V?GREET=71 + V?WALK=72 + V?HIDE=73 + V?LEAVE=74 + V?GIVE-UP=75 + V?LISTEN=76 + V?HELLO=77 + V?HELP=78 + V?SAVE-SOMETHING=79 + V?HUG=80 + V?LEAP=81 + V?LEAP-OFF=82 + V?STAND-ON=83 + V?KICK=84 + V?KISS=85 + V?KNOCK=86 + V?LAUNCH=87 + V?LIE-DOWN=88 + V?ON=89 + V?LOCK=90 + V?LOOK=91 + V?LOOK-DOWN=92 + V?LOOK-UP=93 + V?LOOK-INSIDE=94 + V?LOOK-UNDER=95 + V?LOOK-BEHIND=96 + V?LOOK-OVER=97 + V?CHASTISE=98 + V?LOWER=99 + V?MAYBE=100 + V?MEASURE=101 + V?MOVE=102 + V?PUSH-DIR=103 + V?RAISE=104 + V?NO=105 + V?OPEN=106 + V?PICK=107 + V?PICK-UP=108 + V?PLAY-WITH=109 + V?SPLAY-WITH=110 + V?POINT=111 + V?POUR=112 + V?PRAY=113 + V?PUSH=114 + V?PUT-UNDER=115 + V?REACH-IN=116 + V?READ=117 + V?REMOVE=118 + V?TAKE=119 + V?ROLL=120 + V?SAY=121 + V?SCARE=122 + V?SCOLD=123 + V?SEARCH=124 + V?SHAKE=125 + V?SHAKE-WITH=126 + V?SHOOT=127 + V?SSHOOT=128 + V?SHOW=129 + V?SSHOW=130 + V?SIT=131 + V?SKIP=132 + V?SLEEP=133 + V?CUT=134 + V?SMELL=135 + V?SPRAY=136 + V?SSPRAY=137 + V?STAND=138 + V?SWRAP=139 + V?WEAR=140 + V?PUT-BEHIND=141 + V?SWING=142 + V?GET-DRESSED=143 + V?GET-UNDRESSED=144 + V?TAKE-WITH=145 + V?TAKE-OFF=146 + V?TELL=147 + V?TOUCH=148 + V?TASTE=149 + V?TELL-ABOUT=150 + V?STELL=151 + V?THANK=152 + V?THROW=153 + V?THROW-TO=154 + V?STHROW=155 + V?TICKLE=156 + V?TIE=157 + V?TIME=158 + V?SET=159 + V?TYPE=160 + V?UNDRESS=161 + V?UNLOCK=162 + V?UNTIE=163 + V?USE=164 + V?VALIDATE=165 + V?WAIT=166 + V?WAIT-FOR=167 + V?ALARM=168 + V?RUN-OVER=169 + V?CLEAN=170 + V?WHAT=171 + V?WHERE=172 + V?WRAP=173 + V?YELL=174 + V?YES=175 + V?ZORK=176 + +; PROPERTIES ARE DEFINED HERE + + P?NORTH=31 + P?NE=30 + P?EAST=29 + P?SE=28 + P?SOUTH=27 + P?SW=26 + P?WEST=25 + P?NW=24 + P?UP=23 + P?DOWN=22 + P?IN=21 + P?OUT=20 + P?SYNONYM=19 + P?ADJECTIVE=18 + P?ACTION=17 + P?PLATO-ASK-ABOUT=16 + P?ASK-FLOYD-ABOUT=15 + P?LDESC=14 + P?SIZE=13 + P?TEXT=12 + P?CAPACITY=11 + P?THINGS=10 + P?FDESC=9 + P?GLOBAL=8 + P?DESCFCN=7 + P?FLOYD-ASK-ABOUT=6 + P?GENERIC=5 + P?FOOD-DESC=4 + P?LEVEL=3 + P?VALUE=2 + P?ASK-PLATO-ABOUT=1 + +; ADJECTIVES ARE DEFINED HERE + + A?NORTH=255 + A?SOUTH=254 + A?EAST=253 + A?WEST=252 + A?NW=251 + A?NE=250 + A?SW=249 + A?SE=248 + A?TOWERING=247 + A?LARGE=246 + A?SMALL=245 + A?VIEW=244 + A?DIRTY=243 + A?EYE-CATCHING=242 + A?REPAIR=241 + A?FABRICATION=240 + A?DIAGNO=239 + A?ROBOT=238 + A?AUTHORIZATION=237 + A?TOILET=236 + A?SINK=235 + A?SINKS=234 + A?TUB=233 + A?TUBS=232 + A?BARE=231 + A?MY=230 + A?YOUR=229 + A?LURKING=228 + A?VICIOUS=227 + A?CARNIVOROUS=226 + A?HULL=225 + A?ASSIGNMENT=224 + A?COMPLETION=223 + A?FORM=222 + A?USE=221 + A?CLASS=220 + A?THREE=219 + A?SPACECRAFT=218 + A?ACTIVA=217 + A?WRIST=216 + A?PATROL=215 + A?ID=214 + A?IDENTIFICATION=213 + A?WRINKLED=212 + A?FIRST=211 + A?SECOND=210 + A?THIRD=209 + A?MULTIP=208 + A?PURPOS=207 + A?SHORT=206 + A?NUMBER=205 + A?SPINDLY=204 + A?HEAVY=203 + A?SPACE=202 + A?RED=201 + A?SPACETRUCK=200 + A?COPILOT=199 + A?PILOT=198 + A?BAND=197 + A?SURVIVAL=196 + A?GRAY=195 + A?GREY=194 + A?ROCK-=193 + A?RAMOSIAN=192 + A?ORANGE=191 + A?APRICOT=190 + A?BLUE=189 + A?BLUEBERRY=188 + A?ICE=187 + A?TWENTY=186 + A?OHM=185 + A?DISPEN=184 + A?COIN=183 + A?VENDIN=182 + A?DRILL=181 + A?ALL-PURPOSE=180 + A?CELLS=179 + A?SYSTEM=178 + A?MONITOR=177 + A?GREEN=176 + A?YELLOW=175 + A?BLINKING=174 + A?LOG=173 + A?STURDY=172 + A?VALIDA=171 + A?FUSOR=170 + A?BEAM=169 + A?EXERCISE=168 + A?NAUTILUS=167 + A?SEVEN=166 + A?POINTED=165 + A?M-SERIES=164 + A?M=163 + A?SERIES=162 + A?ETERNAL=161 + A?BEAUTIFUL=160 + A?WOODEN=159 + A?PROJECTION=158 + A?FOOD=157 + A?PROCESSING=156 + A?CREAMY=155 + A?BLACKENED=154 + A?RECENT=153 + A?NANOFILM=152 + A?MAUVE=151 + A?COMPUTER=150 + A?PUCE=149 + A?TRANSPARENT=148 + A?EXOTIC=147 + A?BUSH=146 + A?BUSHES=145 + A?MACHIN=144 + A?THICK=143 + A?METAL=142 + A?ELEVATOR=141 + A?AIR=140 + A?SHAFT=139 + A?ALIEN=138 + A?BLACK=137 + A?HEATING=136 + A?MEDIUM=135 + A?YOUNG=134 + A?TRASH=133 + A?CRUMPLED=132 + A?ILLEGAL=131 + A?VILLAGE=130 + A?ENTRY=129 + A?NEATLY=128 + A?IRONED=127 + A?CONTROL=126 + A?CALL=125 + A?AUTO=124 + A?SECURITY=123 + A?J-SERIES=122 + A?J=121 + A?ISOLATION=120 + A?HOLDING=119 + A?PLATO=118 + A?POETRY=117 + A?STUN=116 + A?IRIS=115 + A?REC=114 + A?SIMULATION=113 + A?METALLIC=112 + A?CYLIND=111 + A?REFLECTIVE=110 + A?TRANS-MOLECULAR=109 + A?PLATINUM=108 + A?TRANSL=107 + A?PLASTIC=106 + A?VACUUM=105 + A?ARCTURIAN=104 + A?BALLOON=103 + A?CREATURE=102 + A?CEILIN=101 + A?ROOF=100 + A?OSTRICH=99 + A?INSTRUCTION=98 + A?CARBON=97 + A?TWELVE=96 + A?PRONG=95 + A?12-PRONG=94 + A?FROMITZ=93 + A?20-PRONG=92 + A?ROULETTE=91 + A?FIRE=90 + A?TEXT=89 + A?INNER=88 + A?UPPER=87 + A?AIRLOCK=86 + A?OUTER=85 + A?LOWER=84 + A?FREZONE=83 + A?SPRAY=82 + A?STRONG=81 + A?INNOCUOUS=80 + A?MAGNETIC=79 + +; BUZZ WORDS ARE DEFINED HERE + + B?ASS=255 + B?ASSHOLE=254 + B?BITCH=253 + B?BASTARD=252 + B?COCK=251 + B?COCKSU=250 + B?CUNT=249 + B?DAMN=248 + B?DAMNED=247 + B?FUCK=246 + B?FUCKED=245 + B?FUCKING=244 + B?SHIT=243 + B?SHITHEAD=242 + B?SHITTY=241 + B?TROT=240 + B?KRIP=239 + B?MEGAKRIP=238 + B?TROTTING=237 + B?A=236 + B?AN=235 + B?THE=234 + B?IS=233 + B?ARE=232 + B?AM=231 + B?AND=230 + B?OF=229 + B?THEN=228 + B?ALL=227 + B?BUT=226 + B?EXCEPT=225 + B?PERIOD=224 + B?COMMA=223 + B?QUOTE=222 + B?PLEASE=221 + B?THIS=220 + B?THAT=219 + B?PRY=218 + B?HERE=217 + B?SOME=216 + B?MORE=215 + B?G=214 + B?AGAIN=213 + B?OOPS=212 + +; PREPOSITIONS ARE DEFINED HERE + + PR?TO=255 + PR?ABOUT=254 + PR?ON=253 + PR?FOR=252 + PR?WITH=251 + PR?OUT=250 + PR?UP=249 + PR?IN=248 + PR?DOWN=247 + PR?OFF=246 + PR?THROUGH=245 + PR?UNDER=244 + PR?FROM=243 + PR?OVER=242 + PR?AROUND=241 + PR?BEHIND=240 + PR?AWAY=239 + PR?BACK=238 + PR?AT=237 + PR?GO=236 + PR?DRESSE=235 + PR?UNDRES=234 + +; DIRECTIONS ARE DEFINED HERE + + +; ACTIONS ARE DEFINED HERE + + ACT?KISS=255 + ACT?APPROA=254 + ACT?SKIP=253 + ACT?DIAGNO=252 + ACT?VERBOSE=251 + ACT?WALK=250 + ACT?STICK=249 + ACT?QUIT=248 + ACT?FIND=247 + ACT?HEAR=246 + ACT?YES=245 + ACT?SCOLD=244 + ACT?UNLOCK=243 + ACT?READ=242 + ACT?SAY=241 + ACT?JUMP=240 + ACT?POUR=239 + ACT?$DEBUG=238 + ACT?WAIT=237 + ACT?TAKE=236 + ACT?NO=235 + ACT?COUNT=234 + ACT?GREET=233 + ACT?RAISE=232 + ACT?CALL=231 + ACT?FOLLOW=230 + ACT?TYPE=229 + ACT?CATCH=228 + ACT?VERSION=227 + ACT?#UNRECORD=226 + ACT?EXERCISE=225 + ACT?LIGHT=224 + ACT?LIE=223 + ACT?MOVE=222 + ACT?MEASURE=221 + ACT?LET=220 + ACT?PLAY=219 + ACT?OPEN=218 + ACT?TASTE=217 + ACT?SCARE=216 + ACT?FLATTEN=215 + ACT?TOUCH=214 + ACT?#COMMAND=213 + ACT?BLOW=212 + ACT?SHOOT=211 + ACT?WRAP=210 + ACT?KNOCK=209 + ACT?INVENT=208 + ACT?PICK=207 + ACT?BOARD=206 + ACT?#RANDOM=205 + ACT?APPLY=204 + ACT?HUG=203 + ACT?PRAY=202 + ACT?STAND=201 + ACT?LISTEN=200 + ACT?TIE=199 + ACT?WHERE=198 + ACT?SHOW=197 + ACT?TAP=196 + ACT?SAVE=195 + ACT?HELP=194 + ACT?TELL=193 + ACT?THROW=192 + ACT?ZORK=191 + ACT?FEED=190 + ACT?DRESS=189 + ACT?LOWER=188 + ACT?TALK=187 + ACT?USE=186 + ACT?HIDE=185 + ACT?SHAKE=184 + ACT?ATTACK=183 + ACT?RESTOR=182 + ACT?ENTER=181 + ACT?THANKS=180 + ACT?SEARCH=179 + ACT?WEAR=178 + ACT?DISEMBARK=177 + ACT?PLUG=176 + ACT?UNTIE=175 + ACT?WASH=174 + ACT?CIRCLE=173 + ACT?$KEY=172 + ACT?UNSCRIPT=171 + ACT?PUSH=170 + ACT?SUPER=169 + ACT?SIT=168 + ACT?RESTAR=167 + ACT?DISCONNECT=166 + ACT?APPLAUD=165 + ACT?TICKLE=164 + ACT?UNDRES=163 + ACT?REACH=162 + ACT?DIG=161 + ACT?SCORE=160 + ACT?COMFORT=159 + ACT?COVER=158 + ACT?VALIDA=157 + ACT?CONNECT=156 + ACT?COME=155 + ACT?LOOK=154 + ACT?EMPTY=153 + ACT?ATTRACT=152 + ACT?SPRAY=151 + ACT?DROP=150 + ACT?TIME=149 + ACT?ROLL=148 + ACT?LEAVE=147 + ACT?HAND=146 + ACT?SCRIPT=145 + ACT?$VERIFY=144 + ACT?EXTINGUISH=143 + ACT?SWING=142 + ACT?$STATION=141 + ACT?DESCEN=140 + ACT?SMELL=139 + ACT?BRIEF=138 + ACT?SLEEP=137 + ACT?WAKE=136 + ACT?REMOVE=135 + ACT?ANSWER=134 + ACT?WHAT=133 + ACT?YELL=132 + ACT?LOCK=131 + ACT?BURN=130 + ACT?KICK=129 + ACT?BITE=128 + ACT?POINT=127 + ACT?TURN=126 + ACT?#RECORD=125 + ACT?CROSS=124 + ACT?START=123 + ACT?MAYBE=122 + ACT?CLOSE=121 + ACT?GO=120 + ACT?SLIDE=119 + ACT?EXIT=118 + ACT?EXAMINE=117 + ACT?EAT=116 + ACT?DRILL=115 + ACT?FILL=114 + ACT?CLIMB=113 + ACT?LAUNCH=112 + ACT?DEMOLI=111 + ACT?SLICE=110 + ACT?ASK=109 + ACT?HELLO=108 + +; 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?=8 + O-PTR=0 + O-LENGTH=2 + C-TABLELEN=60 + P-NC2=8 + P-NC1=6 + P-WORDLEN=4 + P-VERBN=1 + SERIAL=0 + P-P1BITS=3 + FEXIT=3 + CC-SEPTR=1 + ZORKID=1 + P-SPREP1=1 + CC-SBPTR=0 + P-PREP1=2 + M-BEG=1 + XDIV=3 + M-FATAL=6 + XGRTR?=5 + NEXITSTR=0 + P-SLOC2=6 + NEXIT=2 + SC=64 + P-PREP1N=3 + P-PSOFF=4 + XLESS?=6 + P-VERB=0 + M-ENTER=3 + SHAVE=2 + DEXIT=5 + P-SRCBOT=2 + M-OBJDESC=7 + SMANY=4 + STAKE=8 + P-SPREP2=2 + XSUB=1 + XADD=0 + CEXIT=4 + P-LEXSTART=1 + M-LOOK=5 + 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 + M-EXIT=4 + P-INHIBIT=4 + CEXITFLAG=1 + D-RECORD-OFF=-4 + FEXITFCN=0 + P-SBITS=0 + P-SRCALL=1 + CEXITSTR=1 + P-SLOC1=5 + M-END=2 + P-PREP2=4 + LOW-DIRECTION=20 + 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 ;(P?ASK-PLATO-ABOUT) + 0 ;(P?VALUE) + 0 ;(P?LEVEL) + 0 ;(P?FOOD-DESC) + 0 ;(P?GENERIC) + 0 ;(P?FLOYD-ASK-ABOUT) + 0 ;(P?DESCFCN) + 0 ;(P?GLOBAL) + 0 ;(P?FDESC) + 0 ;(P?THINGS) + 5 ;(P?CAPACITY) + 0 ;(P?TEXT) + 5 ;(P?SIZE) + 0 ;(P?LDESC) + 0 ;(P?ASK-FLOYD-ABOUT) + 0 ;(P?PLATO-ASK-ABOUT) + 0 ;(P?ACTION) + 0 ;(P?ADJECTIVE) + 0 ;(P?SYNONYM) + 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) + .OBJECT CHRONOMETER,0,FX?WORNBIT+FX?WEARBIT+FX?TAKEBIT,PROTAGONIST,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM,0,T?CHRONOMETER + .OBJECT GAME,0,0,GLOBAL-OBJECTS,ME,0,T?GAME + .OBJECT TIMER,0,FX?TAKEBIT,0,0,0,T?TIMER + .OBJECT AUXILIARY-BARRACKS,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,LEVEL-SIX,0,T?AUXILIARY-BARRACKS + .OBJECT REC-SHOP,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,CHURCH,SIMULATION-BOOTH,T?REC-SHOP + .OBJECT SOUTH-JUNCTION,0,FX?ONBIT+FX?RLANDBIT,ROOMS,EAST-CONNECTION,0,T?SOUTH-JUNCTION + .OBJECT HANDS,FX?PARTBIT+FX?NARTICLEBIT,FX?TOUCHBIT,GLOBAL-OBJECTS,HOLE,0,T?HANDS + .OBJECT CAGE,FX?SEARCHBIT+FX?TRANSBIT,FX?CONTBIT,PET-STORE,0,LEASH,T?CAGE + .OBJECT KEY,0,FX?TAKEBIT,SAFE,0,0,T?KEY + .OBJECT PAPER-RECYCLING-PLANT,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,PRINTING-PLANT,DRILL,T?PAPER-RECYCLING-PLANT + .OBJECT LEVEL-THREE,0,FX?ONBIT+FX?RLANDBIT,ROOMS,BARRACKS-SANFAC,0,T?LEVEL-THREE + .OBJECT MAUVE-SPOOL,0,FX?TAKEBIT,LIBRARY,NANOFILM-READER,0,T?MAUVE-SPOOL + .OBJECT WINDOW,0,0,LOCAL-GLOBALS,PSEUDO-OBJECT,0,T?WINDOW + .OBJECT WELDER,0,0,0,0,0,T?WELDER + .OBJECT SPACESUIT,0,FX?TAKEBIT+FX?WEARBIT,LOCKER,0,0,T?SPACESUIT + .OBJECT SPRAY-CAN,0,FX?READBIT+FX?TAKEBIT,PAWN-SHOP,0,0,T?SPRAY-CAN + .OBJECT SICK-BAY,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,PX,0,T?SICK-BAY + .OBJECT OFFICERS-QUARTERS-B,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,OFFICERS-QUARTERS-A,0,T?OFFICERS-QUARTERS-B + .OBJECT THEATRE,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,CHAPEL,PROJECTION-BOOTH,T?THEATRE + .OBJECT AUTO-DOOR,FX?VOWELBIT,FX?DOORBIT,LOCAL-GLOBALS,CALL-BUTTON,0,T?AUTO-DOOR + .OBJECT MAYORS-OFFICE,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,GREASY-STRAW,BOOK,T?MAYORS-OFFICE + .OBJECT COUNTER,FX?SEARCHBIT+FX?NDESCBIT,FX?SURFACEBIT+FX?CONTBIT,GREASY-STRAW,0,0,T?COUNTER + .OBJECT MEETING-ROOM-2,0,FX?ONBIT+FX?RLANDBIT,ROOMS,MEETING-ROOM-1,0,T?MEETING-ROOM-2 + .OBJECT DICE,FX?PLURALBIT,FX?TAKEBIT,CASINO,ROULETTE-WHEEL,0,T?DICE + .OBJECT FLOYD,FX?NARTICLEBIT+FX?OPENBIT+FX?TRANSBIT+FX?SEARCHBIT,FX?ACTIVEBIT+FX?ACTORBIT+FX?CONTBIT,ROBOT-POOL,0,0,T?FLOYD + .OBJECT FILE-ROOM,FX?NWELDERBIT,FX?RLANDBIT,ROOMS,COMM-CENTER,0,T?FILE-ROOM + .OBJECT ME,FX?NARTICLEBIT,FX?TOUCHBIT,GLOBAL-OBJECTS,TONGUE,0,T?ME + .OBJECT LOG-READER,FX?TRYTAKEBIT+FX?OPENBIT,FX?CONTBIT+FX?LIGHTBIT,COMMANDERS-OFFICE,0,0,T?LOG-READER + .OBJECT LOAN-SHARK,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,PAWN-SHOP,STRONG-BOX,T?LOAN-SHARK + .OBJECT PET-STORE,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,GROCERY,CAGE,T?PET-STORE + .OBJECT DOCKING-BAY-2,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,SPACETRUCK,0,T?DOCKING-BAY-2 + .OBJECT STORAGE-5,0,FX?RLANDBIT,ROOMS,WORKSHOP,JAMMER,T?STORAGE-5 + .OBJECT ELEVATOR-SHAFT,FX?VOWELBIT,0,LOCAL-GLOBALS,ELEVATOR-OBJECT,0,T?ELEVATOR-SHAFT + .OBJECT PANEL,FX?SEARCHBIT,FX?CONTBIT,0,0,OSTRICH-NIP,T?PANEL + .OBJECT OFFICERS-QUARTERS-A,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,SHIPPING-ROOM,0,T?OFFICERS-QUARTERS-A + .OBJECT ENGINEERING-OFFICE,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,ENGINEERING-LAB,DIARY,T?ENGINEERING-OFFICE + .OBJECT INTDIR,0,0,GLOBAL-OBJECTS,LOCAL-GLOBALS,0,T?INTDIR + .OBJECT SCIENTISTS-QUARTERS,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,HOLDING-TANK-LEVEL,0,T?SCIENTISTS-QUARTERS + .OBJECT ROOMS,FX?NARTICLEBIT,0,0,0,JUNK-YARD,T?ROOMS + .OBJECT DETONATOR,FX?SEARCHBIT,FX?CONTBIT+FX?TAKEBIT,MAIN-STORAGE,0,BLACKENED-DIODE,T?DETONATOR + .OBJECT SYSTEM-MONITORS,FX?NDESCBIT,FX?READBIT,STATION-CONTROL,0,0,T?SYSTEM-MONITORS + .OBJECT AUXILIARY-SANFAC,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,AUXILIARY-BARRACKS,0,T?AUXILIARY-SANFAC + .OBJECT GRIMY-PASSAGE,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,FLOPHOUSE,0,T?GRIMY-PASSAGE + .OBJECT OUTER-AIRLOCK-DOOR,FX?VOWELBIT,FX?DOORBIT,LOCAL-GLOBALS,INNER-AIRLOCK-DOOR,0,T?OUTER-AIRLOCK-DOOR + .OBJECT RADIO,FX?VOWELBIT+FX?NDESCBIT,FX?LIGHTBIT,SPACETRUCK,PILOT-SEAT,0,T?RADIO + .OBJECT SOUTH-CONNECTION,0,FX?ONBIT+FX?RLANDBIT,ROOMS,ARMORY,0,T?SOUTH-CONNECTION + .OBJECT LOCAL-GLOBALS,FX?NARTICLEBIT,0,GLOBAL-OBJECTS,0,OUTER-AIRLOCK-DOOR,T?LOCAL-GLOBALS + .OBJECT BRIG,FX?FLOYDBIT+FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,SICK-BAY,0,T?BRIG + .OBJECT PILOT-SEAT,FX?NDESCBIT+FX?SEARCHBIT+FX?OPENBIT+FX?INBIT,FX?CONTBIT+FX?VEHBIT,SPACETRUCK,COPILOT-SEAT,0,T?PILOT-SEAT + .OBJECT LEVEL-FIVE,0,FX?ONBIT+FX?RLANDBIT,ROOMS,DOCKING-BAY-2,0,T?LEVEL-FIVE + .OBJECT ELEVATOR,FX?FLOYDBIT+FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,PAPER-RECYCLING-PLANT,0,T?ELEVATOR + .OBJECT FACTORY,0,FX?ONBIT+FX?RLANDBIT,ROOMS,BOTTOM-OF-ELEVATOR-SHAFT,PYRAMID,T?FACTORY + .OBJECT CARGO-BAY-ENTRANCE,FX?FLOYDBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,FORM-STORAGE-ROOM,0,T?CARGO-BAY-ENTRANCE + .OBJECT VOLUME,FX?NDESCBIT+FX?NARTICLEBIT,FX?READBIT,PLATO,0,0,T?VOLUME + .OBJECT PAWN-SHOP,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,VACUUM-STORAGE,SPRAY-CAN,T?PAWN-SHOP + .OBJECT GLOBAL-OBJECTS,FX?NWELDERBIT+FX?FLOYDBIT+FX?NARTICLEBIT+FX?INBIT+FX?PLURALBIT+FX?NDESCBIT+FX?LOCKEDBIT+FX?VOWELBIT+FX?TRANSBIT+FX?SEARCHBIT+FX?OPENBIT+FX?TRYTAKEBIT,FX?ACTIVEBIT+FX?ACTORBIT+FX?DOORBIT+FX?CONTBIT+FX?VEHBIT+FX?WORNBIT+FX?RLANDBIT+FX?LIGHTBIT+FX?ONBIT+FX?WEARBIT+FX?SURFACEBIT+FX?TOUCHBIT+FX?INVISIBLE,0,0,SLEEP,T?GLOBAL-OBJECTS + .OBJECT PROJECTION-BOOTH,FX?INBIT+FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,FX?VEHBIT+FX?CONTBIT,THEATRE,0,0,T?PROJECTION-BOOTH + .OBJECT IT,FX?NARTICLEBIT+FX?VOWELBIT,FX?TOUCHBIT,GLOBAL-OBJECTS,INTNUM,0,T?IT + .OBJECT BRIEFING-ROOM,0,FX?ONBIT+FX?RLANDBIT,ROOMS,COMMANDERS-QUARTERS,0,T?BRIEFING-ROOM + .OBJECT LOCKER,FX?NDESCBIT+FX?SEARCHBIT,FX?CONTBIT,FLOPHOUSE,0,SPACESUIT,T?LOCKER + .OBJECT WALLS,0,0,GLOBAL-OBJECTS,GROUND,0,T?WALLS + .OBJECT SMALL-BIT,FX?NDESCBIT,FX?TAKEBIT,DRILL,0,0,T?SMALL-BIT + .OBJECT DRYER,FX?SEARCHBIT,FX?LIGHTBIT+FX?CONTBIT,LAUNDRY,0,0,T?DRYER + .OBJECT FLOPHOUSE,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,OPIUM-DEN,LOCKER,T?FLOPHOUSE + .OBJECT PLATINUM-DETECTOR,0,FX?LIGHTBIT+FX?TAKEBIT,BANK,0,0,T?PLATINUM-DETECTOR + .OBJECT PALLETS,FX?NARTICLEBIT,FX?READBIT,FORM-STORAGE-ROOM,0,0,T?PALLETS + .OBJECT STATION-CONTROL,0,FX?ONBIT+FX?RLANDBIT,ROOMS,SOUTH-JUNCTION,SYSTEM-MONITORS,T?STATION-CONTROL + .OBJECT BLUE-GOO,0,0,FOOD-KIT,ORANGE-GOO,0,T?BLUE-GOO + .OBJECT FPU,FX?NDESCBIT,0,MESS-HALL,0,0,T?FPU + .OBJECT PRESSER,FX?SEARCHBIT,FX?LIGHTBIT+FX?CONTBIT,LAUNDRY,DRYER,0,T?PRESSER + .OBJECT PEDESTAL,FX?OPENBIT+FX?NDESCBIT,FX?SURFACEBIT+FX?CONTBIT,ALIEN-SHIP,PATTERN-OF-DOTS,0,T?PEDESTAL + .OBJECT ASTRO-OFFICE,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,ASTRO-LAB,0,T?ASTRO-OFFICE + .OBJECT JUNK-YARD,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,SHADY-DANS,BOOTS,T?JUNK-YARD + .OBJECT SPACETRUCK-OBJECT,0,0,LOCAL-GLOBALS,BED,0,T?SPACETRUCK-OBJECT + .OBJECT SHRUBBERY,FX?NARTICLEBIT+FX?NDESCBIT,0,DOME,0,0,T?SHRUBBERY + .OBJECT PATTERN-OF-DOTS,FX?NDESCBIT,0,ALIEN-SHIP,0,0,T?PATTERN-OF-DOTS + .OBJECT DOCKING-BAY-1,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,AUXILIARY-SANFAC,0,T?DOCKING-BAY-1 + .OBJECT ID-READER,FX?VOWELBIT,0,LOCAL-GLOBALS,SECURITY-DOOR,0,T?ID-READER + .OBJECT INNER-AIRLOCK-DOOR,FX?VOWELBIT,FX?DOORBIT,LOCAL-GLOBALS,NECTAR,0,T?INNER-AIRLOCK-DOOR + .OBJECT LADDER,0,0,LOCAL-GLOBALS,FIXTURES,0,T?LADDER + .OBJECT ID-CARD,FX?TRYTAKEBIT+FX?VOWELBIT,FX?READBIT+FX?TAKEBIT,PATROL-UNIFORM,0,0,T?ID-CARD + .OBJECT DIODE-J,0,FX?TAKEBIT,ASTRO-LAB,0,0,T?DIODE-J + .OBJECT BOOTS,FX?TRYTAKEBIT+FX?PLURALBIT,FX?WEARBIT+FX?TAKEBIT,JUNK-YARD,0,0,T?BOOTS + .OBJECT EQUIPMENT,FX?VOWELBIT,0,LOCAL-GLOBALS,SIGN,0,T?EQUIPMENT + .OBJECT DESK,0,0,LOCAL-GLOBALS,KEYPAD,0,T?DESK + .OBJECT WORKSHOP,0,FX?ONBIT+FX?RLANDBIT,ROOMS,LEVEL-FIVE,BEDISTOR,T?WORKSHOP + .OBJECT COMMANDERS-OFFICE,0,FX?ONBIT+FX?RLANDBIT,ROOMS,FILE-ROOM,LOG-READER,T?COMMANDERS-OFFICE + .OBJECT OLIVER,FX?VOWELBIT+FX?NARTICLEBIT,0,ROBOT-SHOP,HEATING-CHAMBER,0,T?OLIVER + .OBJECT HOLE,0,0,GLOBAL-OBJECTS,GLOBAL-ROOM,0,T?HOLE + .OBJECT COPILOT-SEAT,FX?NDESCBIT+FX?SEARCHBIT+FX?OPENBIT+FX?INBIT,FX?CONTBIT+FX?VEHBIT,SPACETRUCK,0,0,T?COPILOT-SEAT + .OBJECT EXPLOSIVE,FX?VOWELBIT,FX?READBIT+FX?TAKEBIT,VACUUM-STORAGE,0,0,T?EXPLOSIVE + .OBJECT PRINTING-PLANT,0,FX?ONBIT+FX?RLANDBIT,ROOMS,OFFICERS-SANFAC,TRASH-CAN,T?PRINTING-PLANT + .OBJECT MALE-BARRACKS,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,FEMALE-BARRACKS,0,T?MALE-BARRACKS + .OBJECT RECRUITMENT-OFFICE,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,MAYORS-OFFICE,0,T?RECRUITMENT-OFFICE + .OBJECT SALOON,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,STUDIO,0,T?SALOON + .OBJECT PULPIT,FX?SEARCHBIT+FX?NDESCBIT,FX?CONTBIT,CHAPEL,ETERNAL-FLAME,SWITCH,T?PULPIT + .OBJECT FIELD-OFFICE,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,REC-SHOP,HEADLAMP,T?FIELD-OFFICE + .OBJECT CLASS-THREE-SPACECRAFT-ACTIVATION-FORM,0,FX?READBIT+FX?TAKEBIT,PROTAGONIST,ROBOT-USE-AUTHORIZATION-FORM,0,T?CLASS-THREE-SPACECRAFT-ACTIVATION-FORM + .OBJECT ARMORY,FX?FLOYDBIT+FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,BRIEFING-ROOM,ZAPGUN,T?ARMORY + .OBJECT CHAPEL,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,LAUNDRY,PULPIT,T?CHAPEL + .OBJECT BIO-LAB,0,FX?ONBIT+FX?RLANDBIT,ROOMS,ASTRO-OFFICE,0,T?BIO-LAB + .OBJECT OSTRICH,FX?VOWELBIT,FX?TOUCHBIT,DOC-SCHUSTER,0,0,T?OSTRICH + .OBJECT BEDISTOR,0,FX?TAKEBIT,WORKSHOP,0,0,T?BEDISTOR + .OBJECT NORTH-JUNCTION,0,FX?ONBIT+FX?RLANDBIT,ROOMS,STORAGE-5,0,T?NORTH-JUNCTION + .OBJECT SWITCH,0,0,PULPIT,0,0,T?SWITCH + .OBJECT ROBOT-POOL,FX?FLOYDBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,CARGO-BAY-ENTRANCE,REX,T?ROBOT-POOL + .OBJECT SECURITY-DOOR,0,FX?DOORBIT,LOCAL-GLOBALS,AUTO-DOOR,0,T?SECURITY-DOOR + .OBJECT CARGO-BAY,FX?FLOYDBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,ROBOT-POOL,0,T?CARGO-BAY + .OBJECT MISSIONARY,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,ALLEY,0,T?MISSIONARY + .OBJECT GRATING,FX?VOWELBIT+FX?NDESCBIT,0,LOCAL-GLOBALS,SPACETRUCK-HATCH,0,T?GRATING + .OBJECT EXERCISE-MACHINE,FX?SEARCHBIT+FX?OPENBIT+FX?INBIT+FX?VOWELBIT,FX?CONTBIT+FX?VEHBIT,GYM,0,0,T?EXERCISE-MACHINE + .OBJECT CHURCH,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,FORTUNE-TELLER,0,T?CHURCH + .OBJECT PUCE-SPOOL,0,FX?TAKEBIT,LIBRARY,COMPUTER-TERMINAL,0,T?PUCE-SPOOL + .OBJECT TOP-OF-AIR-SHAFT,0,FX?ONBIT+FX?RLANDBIT,ROOMS,PLATO,0,T?TOP-OF-AIR-SHAFT + .OBJECT BARBERSHOP,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,FIELD-OFFICE,0,T?BARBERSHOP + .OBJECT SHADY-DANS,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,DOC-SCHUSTER,ID-CHANGER,T?SHADY-DANS + .OBJECT AIR-SHAFT,0,FX?ONBIT+FX?RLANDBIT,ROOMS,TOP-OF-AIR-SHAFT,0,T?AIR-SHAFT + .OBJECT COMM-CENTER,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,STATION-CONTROL,0,T?COMM-CENTER + .OBJECT BED,FX?OPENBIT+FX?SEARCHBIT,FX?CONTBIT+FX?VEHBIT,LOCAL-GLOBALS,CUBICLE,0,T?BED + .OBJECT REX,FX?NARTICLEBIT,FX?ACTORBIT,ROBOT-POOL,HELEN,0,T?REX + .OBJECT GLOBAL-ROOM,0,0,GLOBAL-OBJECTS,CEILING,0,T?GLOBAL-ROOM + .OBJECT TWELVE-PRONG-FROMITZ-BOARD,0,FX?TAKEBIT,TRADING-POST,BOTTLE,0,T?TWELVE-PRONG-FROMITZ-BOARD + .OBJECT SAFE,FX?LOCKEDBIT+FX?SEARCHBIT,FX?CONTBIT,COMMANDERS-QUARTERS,LOG-TAPE,KEY,T?SAFE + .OBJECT MESS-HALL,0,FX?ONBIT+FX?RLANDBIT,ROOMS,THEATRE,SOUP,T?MESS-HALL + .OBJECT PX,0,FX?ONBIT+FX?RLANDBIT,ROOMS,NORTH-CONNECTION,DISPENSER,T?PX + .OBJECT BOTTLE,FX?TRANSBIT,FX?READBIT+FX?CONTBIT+FX?TAKEBIT,TRADING-POST,INSTRUCTION-SHEET,0,T?BOTTLE + .OBJECT DOME,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,LIBRARY,HOUSING,T?DOME + .OBJECT MAKESHIFT-CONNECTOR,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,FACTORY,0,T?MAKESHIFT-CONNECTOR + .OBJECT PAPER,0,FX?BURNBIT+FX?READBIT+FX?TAKEBIT,BOOK,0,0,T?PAPER + .OBJECT HIM,FX?NARTICLEBIT,FX?TOUCHBIT,GLOBAL-OBJECTS,IT,0,T?HIM + .OBJECT LIBRARY,0,FX?ONBIT+FX?RLANDBIT,ROOMS,MEETING-ROOM-2,PUCE-SPOOL,T?LIBRARY + .OBJECT MAGAZINES,FX?TRYTAKEBIT+FX?NDESCBIT,FX?READBIT,LIBRARY,0,0,T?MAGAZINES + .OBJECT ORANGE-GOO,0,0,FOOD-KIT,GRAY-GOO,0,T?ORANGE-GOO + .OBJECT TRASH-CAN,FX?SEARCHBIT,FX?CONTBIT+FX?TAKEBIT,PRINTING-PLANT,0,CRUMPLED-FORM,T?TRASH-CAN + .OBJECT TRADING-POST,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,PET-STORE,TWELVE-PRONG-FROMITZ-BOARD,T?TRADING-POST + .OBJECT HELEN,FX?NARTICLEBIT,FX?ACTORBIT,ROBOT-POOL,FLOYD,0,T?HELEN + .OBJECT CRUMPLED-FORM,0,FX?BURNBIT+FX?READBIT+FX?TAKEBIT,TRASH-CAN,0,0,T?CRUMPLED-FORM + .OBJECT FORM-STORAGE-ROOM,FX?FLOYDBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,DECK-FIVE,PALLETS,T?FORM-STORAGE-ROOM + .OBJECT STAR,FX?SEARCHBIT+FX?TRYTAKEBIT+FX?NDESCBIT,FX?CONTBIT+FX?TAKEBIT,CHAPEL,0,DIODE-M,T?STAR + .OBJECT TWENTY-PRONG-FROMITZ-BOARD,0,FX?TAKEBIT,STUDIO,0,0,T?TWENTY-PRONG-FROMITZ-BOARD + .OBJECT HEATING-CHAMBER,FX?SEARCHBIT+FX?OPENBIT,FX?CONTBIT,ROBOT-SHOP,0,MEDIUM-BIT,T?HEATING-CHAMBER + .OBJECT HEADLAMP,0,FX?WEARBIT+FX?LIGHTBIT+FX?TAKEBIT,FIELD-OFFICE,0,0,T?HEADLAMP + .OBJECT TAFFY,FX?NARTICLEBIT,FX?TAKEBIT,PLASTIC-BAG,0,0,T?TAFFY + .OBJECT AIRLOCK,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,WAREHOUSE,0,T?AIRLOCK + .OBJECT EAST-JUNCTION,0,FX?ONBIT+FX?RLANDBIT,ROOMS,BRIG,0,T?EAST-JUNCTION + .OBJECT NANOFILM-READER,FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,FX?CONTBIT+FX?LIGHTBIT,LIBRARY,MAGAZINES,0,T?NANOFILM-READER + .OBJECT OPIUM-DEN,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,CASINO,0,T?OPIUM-DEN + .OBJECT CALL-BUTTON,0,0,LOCAL-GLOBALS,ELEVATOR-SHAFT,0,T?CALL-BUTTON + .OBJECT DOC-SCHUSTER,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,LOAN-SHARK,LETTER,T?DOC-SCHUSTER + .OBJECT NOTE,0,FX?BURNBIT+FX?READBIT+FX?TAKEBIT,BIO-OFFICE,0,0,T?NOTE + .OBJECT STUN-GUN,0,0,0,0,0,T?STUN-GUN + .OBJECT KEYPAD,FX?NDESCBIT,0,LOCAL-GLOBALS,EVERYONE,0,T?KEYPAD + .OBJECT LEVEL-SIX,0,FX?ONBIT+FX?RLANDBIT,ROOMS,DOME,0,T?LEVEL-SIX + .OBJECT DOCKING-BAY-4,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,ALIEN-SHIP,0,T?DOCKING-BAY-4 + .OBJECT PLASTIC-BAG,FX?SEARCHBIT,FX?CONTBIT+FX?TAKEBIT,GROCERY,0,TAFFY,T?PLASTIC-BAG + .OBJECT NECTAR,0,FX?TAKEBIT,LOCAL-GLOBALS,FOIL,0,T?NECTAR + .OBJECT FIXTURES,0,0,LOCAL-GLOBALS,EQUIPMENT,0,T?FIXTURES + .OBJECT ALIEN-SHIP,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,DOCKING-BAY-1,SKELETON,T?ALIEN-SHIP + .OBJECT BALLOON,FX?VOWELBIT,0,CAGE,0,0,T?BALLOON + .OBJECT INSTRUCTION-SHEET,FX?VOWELBIT,FX?BURNBIT+FX?READBIT+FX?TAKEBIT,TRADING-POST,0,0,T?INSTRUCTION-SHEET + .OBJECT SIGN,0,FX?READBIT,LOCAL-GLOBALS,WINDOW,0,T?SIGN + .OBJECT EAST-CONNECTION,0,FX?ONBIT+FX?RLANDBIT,ROOMS,EAST-JUNCTION,0,T?EAST-CONNECTION + .OBJECT COMPUTER-CONTROL,0,FX?ONBIT+FX?RLANDBIT,ROOMS,BOTTOM-OF-AIR-SHAFT,0,T?COMPUTER-CONTROL + .OBJECT GRUE,0,0,GLOBAL-OBJECTS,GAME,0,T?GRUE + .OBJECT INSURANCE-OFFICE,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,TRAVEL-AGENCY,0,T?INSURANCE-OFFICE + .OBJECT ASTRO-LAB,0,FX?ONBIT+FX?RLANDBIT,ROOMS,ENGINEERING-OFFICE,DIODE-J,T?ASTRO-LAB + .OBJECT LOG-TAPE,0,FX?READBIT+FX?TAKEBIT,COMMANDERS-QUARTERS,0,0,T?LOG-TAPE + .OBJECT FEMALE-BARRACKS,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,DOCKING-BAY-3,0,T?FEMALE-BARRACKS + .OBJECT SHIPPING-ROOM,FX?NWELDERBIT,FX?RLANDBIT,ROOMS,ROBOT-SHOP,0,T?SHIPPING-ROOM + .OBJECT SIMULATION-BOOTH,FX?INBIT+FX?OPENBIT+FX?NDESCBIT,FX?VEHBIT+FX?CONTBIT,REC-SHOP,0,0,T?SIMULATION-BOOTH + .OBJECT MAIN-STORAGE,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,MESS-HALL,DETONATOR,T?MAIN-STORAGE + .OBJECT FORTUNE-TELLER,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,BROADWAY,0,T?FORTUNE-TELLER + .OBJECT STRONG-BOX,FX?TRYTAKEBIT,0,LOAN-SHARK,0,0,T?STRONG-BOX + .OBJECT SKELETON,FX?VOWELBIT,0,ALIEN-SHIP,PEDESTAL,0,T?SKELETON + .OBJECT GROCERY,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,BARBERSHOP,PLASTIC-BAG,T?GROCERY + .OBJECT GROUND,0,0,GLOBAL-OBJECTS,HIM,0,T?GROUND + .OBJECT SPACETRUCK-HATCH,0,FX?DOORBIT,LOCAL-GLOBALS,SPACETRUCK-OBJECT,0,T?SPACETRUCK-HATCH + .OBJECT OFFICERS-SANFAC,0,FX?ONBIT+FX?RLANDBIT,ROOMS,OFFICERS-QUARTERS-C,0,T?OFFICERS-SANFAC + .OBJECT ENGINEERING-LAB,0,FX?ONBIT+FX?RLANDBIT,ROOMS,TUBE,0,T?ENGINEERING-LAB + .OBJECT GREASY-STRAW,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,MAIN-STREET,COUNTER,T?GREASY-STRAW + .OBJECT COMMANDERS-QUARTERS,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,COMMANDERS-OFFICE,SAFE,T?COMMANDERS-QUARTERS + .OBJECT VACUUM-STORAGE,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?RLANDBIT,ROOMS,AIRLOCK,EXPLOSIVE,T?VACUUM-STORAGE + .OBJECT NOT-HERE-OBJECT,FX?NARTICLEBIT,0,0,0,0,T?NOT-HERE-OBJECT + .OBJECT WARDROBE,0,0,LOCAL-GLOBALS,DESK,0,T?WARDROBE + .OBJECT GRAY-GOO,0,0,FOOD-KIT,0,0,T?GRAY-GOO + .OBJECT LARGE-BIT,0,FX?TAKEBIT,0,0,0,T?LARGE-BIT + .OBJECT TUBE,0,FX?ONBIT+FX?RLANDBIT,ROOMS,ELEVATOR,0,T?TUBE + .OBJECT INTNUM,0,0,GLOBAL-OBJECTS,INTDIR,0,T?INTNUM + .OBJECT FOOD-KIT,FX?SEARCHBIT,FX?CONTBIT+FX?TAKEBIT,SPACETRUCK,RADIO,BLUE-GOO,T?FOOD-KIT + .OBJECT BOOK,0,FX?BURNBIT+FX?READBIT+FX?TAKEBIT,MAYORS-OFFICE,0,PAPER,T?BOOK + .OBJECT HOLDING-TANK-LEVEL,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,BIO-OFFICE,HOLDING-TANK,T?HOLDING-TANK-LEVEL + .OBJECT BARRACKS-SANFAC,0,FX?ONBIT+FX?RLANDBIT,ROOMS,MALE-BARRACKS,0,T?BARRACKS-SANFAC + .OBJECT SLEEP,FX?NARTICLEBIT,0,GLOBAL-OBJECTS,GRUE,0,T?SLEEP + .OBJECT DISPENSER,0,0,PX,0,0,T?DISPENSER + .OBJECT ELEVATOR-OBJECT,FX?VOWELBIT,0,LOCAL-GLOBALS,GRATING,0,T?ELEVATOR-OBJECT + .OBJECT DRILLED-HOLE,FX?SEARCHBIT+FX?OPENBIT+FX?NDESCBIT,FX?CONTBIT,0,0,0,T?DRILLED-HOLE + .OBJECT WAREHOUSE,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,MISSIONARY,0,T?WAREHOUSE + .OBJECT CEILING,0,0,GLOBAL-OBJECTS,WALLS,0,T?CEILING + .OBJECT DIARY,0,FX?BURNBIT+FX?READBIT+FX?TAKEBIT,ENGINEERING-OFFICE,0,0,T?DIARY + .OBJECT BIO-OFFICE,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,BIO-LAB,NOTE,T?BIO-OFFICE + .OBJECT ETERNAL-FLAME,FX?NDESCBIT+FX?VOWELBIT,FX?ACTIVEBIT+FX?LIGHTBIT+FX?ONBIT,CHAPEL,STAR,0,T?ETERNAL-FLAME + .OBJECT FOIL,FX?NARTICLEBIT,FX?TAKEBIT,LOCAL-GLOBALS,IRIS-HATCH,0,T?FOIL + .OBJECT BANK,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,RECRUITMENT-OFFICE,PLATINUM-DETECTOR,T?BANK + .OBJECT TRAVEL-AGENCY,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,BANK,0,T?TRAVEL-AGENCY + .OBJECT VILLAGE-FORM,0,FX?BURNBIT+FX?READBIT+FX?TAKEBIT,0,0,0,T?VILLAGE-FORM + .OBJECT ASSIGNMENT-COMPLETION-FORM,FX?VOWELBIT,FX?BURNBIT+FX?READBIT+FX?TAKEBIT,PROTAGONIST,0,0,T?ASSIGNMENT-COMPLETION-FORM + .OBJECT MEETING-ROOM-1,0,FX?ONBIT+FX?RLANDBIT,ROOMS,MAIN-STORAGE,0,T?MEETING-ROOM-1 + .OBJECT ID-CHANGER,FX?SEARCHBIT+FX?OPENBIT+FX?TRYTAKEBIT+FX?VOWELBIT,FX?CONTBIT+FX?LIGHTBIT,SHADY-DANS,0,0,T?ID-CHANGER + .OBJECT DOCKING-BAY-3,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,LEVEL-FOUR,0,T?DOCKING-BAY-3 + .OBJECT LEVEL-FOUR,0,FX?ONBIT+FX?RLANDBIT,ROOMS,SOUTH-CONNECTION,0,T?LEVEL-FOUR + .OBJECT ALLEY,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,INSURANCE-OFFICE,0,T?ALLEY + .OBJECT ROBOT-SHOP,FX?FLOYDBIT+FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,END-OF-CORRIDOR,OLIVER,T?ROBOT-SHOP + .OBJECT ROULETTE-WHEEL,FX?NDESCBIT,0,CASINO,0,0,T?ROULETTE-WHEEL + .OBJECT PROTAGONIST,FX?NDESCBIT+FX?NARTICLEBIT,FX?ACTORBIT+FX?INVISIBLE,DECK-FIVE,0,PATROL-UNIFORM,T?PROTAGONIST + .OBJECT DIODE-M,FX?VOWELBIT,FX?TAKEBIT,STAR,0,0,T?DIODE-M + .OBJECT BOTTOM-OF-ELEVATOR-SHAFT,0,FX?RLANDBIT,ROOMS,COMPUTER-CONTROL,0,T?BOTTOM-OF-ELEVATOR-SHAFT + .OBJECT STUDIO,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,TRADING-POST,TWENTY-PRONG-FROMITZ-BOARD,T?STUDIO + .OBJECT PYRAMID,FX?NDESCBIT,0,FACTORY,0,0,T?PYRAMID + .OBJECT HOLDING-TANK,FX?INBIT+FX?OPENBIT+FX?SEARCHBIT+FX?NDESCBIT,FX?CONTBIT+FX?VEHBIT,HOLDING-TANK-LEVEL,0,0,T?HOLDING-TANK + .OBJECT MAIN-STREET,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,GRIMY-PASSAGE,0,T?MAIN-STREET + .OBJECT GYM,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,LEVEL-THREE,EXERCISE-MACHINE,T?GYM + .OBJECT CUBICLE,0,0,LOCAL-GLOBALS,WARDROBE,0,T?CUBICLE + .OBJECT PATROL-UNIFORM,FX?OPENBIT+FX?SEARCHBIT,FX?CONTBIT+FX?WEARBIT+FX?WORNBIT+FX?TAKEBIT,PROTAGONIST,CHRONOMETER,ID-CARD,T?PATROL-UNIFORM + .OBJECT SPACETRUCK,FX?FLOYDBIT+FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,CARGO-BAY,FOOD-KIT,T?SPACETRUCK + .OBJECT NORTH-CONNECTION,0,FX?ONBIT+FX?RLANDBIT,ROOMS,NORTH-JUNCTION,0,T?NORTH-CONNECTION + .OBJECT CASINO,FX?NWELDERBIT+FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,SALOON,DICE,T?CASINO + .OBJECT COMPUTER-TERMINAL,FX?NDESCBIT,FX?LIGHTBIT,LIBRARY,MAUVE-SPOOL,0,T?COMPUTER-TERMINAL + .OBJECT JAMMER,FX?OPENBIT+FX?SEARCHBIT,FX?LIGHTBIT+FX?CONTBIT+FX?TAKEBIT,STORAGE-5,0,0,T?JAMMER + .OBJECT ZAPGUN,0,FX?TAKEBIT,ARMORY,0,0,T?ZAPGUN + .OBJECT OSTRICH-NIP,0,FX?TAKEBIT,PANEL,0,0,T?OSTRICH-NIP + .OBJECT EVERYONE,FX?VOWELBIT,0,LOCAL-GLOBALS,LADDER,0,T?EVERYONE + .OBJECT SOUP,0,FX?TAKEBIT,MESS-HALL,FPU,0,T?SOUP + .OBJECT BROADWAY,FX?WEIGHTLESSBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,MAKESHIFT-CONNECTOR,0,T?BROADWAY + .OBJECT LEASH,FX?NDESCBIT,0,CAGE,BALLOON,0,T?LEASH + .OBJECT LETTER,0,FX?BURNBIT+FX?TAKEBIT+FX?READBIT,DOC-SCHUSTER,OSTRICH,0,T?LETTER + .OBJECT DRILL,FX?OPENBIT+FX?SEARCHBIT,FX?CONTBIT+FX?TAKEBIT,PAPER-RECYCLING-PLANT,0,SMALL-BIT,T?DRILL + .OBJECT VALIDATION-STAMP,0,FX?TAKEBIT,0,0,0,T?VALIDATION-STAMP + .OBJECT IRIS-HATCH,FX?VOWELBIT,FX?DOORBIT,LOCAL-GLOBALS,ID-READER,0,T?IRIS-HATCH + .OBJECT HOUSING,FX?LOCKEDBIT+FX?NDESCBIT,FX?READBIT+FX?CONTBIT,DOME,SHRUBBERY,0,T?HOUSING + .OBJECT END-OF-CORRIDOR,0,FX?ONBIT+FX?RLANDBIT,ROOMS,DOCKING-BAY-4,0,T?END-OF-CORRIDOR + .OBJECT MEDIUM-BIT,FX?TRYTAKEBIT,FX?TAKEBIT,HEATING-CHAMBER,0,0,T?MEDIUM-BIT + .OBJECT DECK-FIVE,FX?FLOYDBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,0,PROTAGONIST,T?DECK-FIVE + .OBJECT PLATO,FX?NDESCBIT+FX?TRYTAKEBIT+FX?OPENBIT+FX?SEARCHBIT+FX?NARTICLEBIT,FX?ACTORBIT+FX?CONTBIT,ROOMS,SCIENTISTS-QUARTERS,VOLUME,T?PLATO + .OBJECT ROBOT-USE-AUTHORIZATION-FORM,0,FX?READBIT+FX?TAKEBIT,PROTAGONIST,ASSIGNMENT-COMPLETION-FORM,0,T?ROBOT-USE-AUTHORIZATION-FORM + .OBJECT OFFICERS-QUARTERS-C,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,OFFICERS-QUARTERS-B,0,T?OFFICERS-QUARTERS-C + .OBJECT TONGUE,FX?NARTICLEBIT,0,GLOBAL-OBJECTS,HANDS,0,T?TONGUE + .OBJECT COIN,0,FX?READBIT+FX?TAKEBIT,0,0,0,T?COIN + .OBJECT BLACKENED-DIODE,0,FX?TAKEBIT,DETONATOR,0,0,T?BLACKENED-DIODE + .OBJECT BOTTOM-OF-AIR-SHAFT,0,FX?ONBIT+FX?RLANDBIT,ROOMS,AIR-SHAFT,0,T?BOTTOM-OF-AIR-SHAFT + .OBJECT PSEUDO-OBJECT,0,0,LOCAL-GLOBALS,0,0,T?PSEUDO-OBJECT + .OBJECT LAUNDRY,FX?NWELDERBIT,FX?ONBIT+FX?RLANDBIT,ROOMS,GYM,PRESSER,T?LAUNDRY + .ENDT + + LAST-OBJECT=251 + +; OBJECT PROPERTY TABLES ARE DEFINED HERE + +OBJPRP:: + +T?CHRONOMETER:: .TABLE ; TABLE FOR OBJECT CHRONOMETER + .STRL "chronometer" + .PROP 6,P?SYNONYM + W?CHRONOMETER + W?WRISTWATCH + W?WATCH + .PROP 1,P?ADJECTIVE + .BYTE A?WRIST + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CHRONOMETER-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?GAME:: .TABLE ; TABLE FOR OBJECT GAME + .STRL "game" + .PROP 8,P?SYNONYM + W?GAME + W?GAMES + W?HUCKA + W?HIDER + .PROP 2,P?ASK-FLOYD-ABOUT ; STRING PROPERTY + STR?90 + .BYTE 0 + .ENDT + +T?TIMER:: .TABLE ; TABLE FOR OBJECT TIMER + .STRL "timer" + .PROP 2,P?SYNONYM + W?TIMER + .PROP 1,P?ADJECTIVE + .BYTE A?ALL-PURPOSE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TIMER-F + .BYTE 0 + .ENDT + +T?AUXILIARY-BARRACKS:: .TABLE ; TABLE FOR OBJECT AUXILIARY-BARRACKS + .STRL "Auxiliary Barracks" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?230 + .PROP 2,P?NE ; STRING PROPERTY + STR?230 + .PROP 1,P?EAST + .BYTE AUXILIARY-SANFAC + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE LEVEL-SIX ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?WEST ; STRING PROPERTY + STR?230 + .PROP 2,P?NW ; STRING PROPERTY + STR?230 + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE LEVEL-SIX ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?250 + .PROP 5,P?GLOBAL + .BYTE BED + .BYTE CUBICLE + .BYTE WARDROBE + .BYTE DESK + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?REC-SHOP:: .TABLE ; TABLE FOR OBJECT REC-SHOP + .STRL "Rec Shop" + .PROP 1,P?SW + .BYTE BROADWAY + .PROP 1,P?OUT + .BYTE BROADWAY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?305 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?17 + .BYTE 0 + .ENDT + +T?SOUTH-JUNCTION:: .TABLE ; TABLE FOR OBJECT SOUTH-JUNCTION + .STRL "South Junction" + .PROP 1,P?NE + .BYTE EAST-JUNCTION + .PROP 1,P?EAST + .BYTE STATION-CONTROL + .PROP 1,P?SE + .BYTE COMMANDERS-OFFICE + .PROP 1,P?SOUTH + .BYTE SOUTH-CONNECTION + .PROP 1,P?SW + .BYTE FILE-ROOM + .PROP 1,P?NW + .BYTE LEVEL-FIVE + .PROP 2,P?LDESC ; STRING PROPERTY + STR?214 + .BYTE 0 + .ENDT + +T?HANDS:: .TABLE ; TABLE FOR OBJECT HANDS + .STRL "your hand" + .PROP 6,P?SYNONYM + W?HANDS + W?HAND + 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?CAGE:: .TABLE ; TABLE FOR OBJECT CAGE + .STRL "cage" + .PROP 2,P?SYNONYM + W?CAGE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CAGE-F + .BYTE 0 + .ENDT + +T?KEY:: .TABLE ; TABLE FOR OBJECT KEY + .STRL "key" + .PROP 2,P?SYNONYM + W?KEY + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 8 + .BYTE 0 + .ENDT + +T?PAPER-RECYCLING-PLANT:: .TABLE ; TABLE FOR OBJECT PAPER-RECYCLING-PLANT + .STRL "Paper Recycling Plant" + .PROP 1,P?SE + .BYTE PRINTING-PLANT + .PROP 1,P?OUT + .BYTE PRINTING-PLANT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PAPER-RECYCLING-PLANT-F + .PROP 2,P?LDESC ; STRING PROPERTY + STR?268 + .PROP 1,P?GLOBAL + .BYTE EQUIPMENT + .BYTE 0 + .ENDT + +T?LEVEL-THREE:: .TABLE ; TABLE FOR OBJECT LEVEL-THREE + .STRL "Level Three" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE GYM ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 3,P?EAST + .WORD ELEVATOR-ENTER-F + .BYTE 0 + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE THEATRE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?SW + .BYTE CHAPEL + .PROP 4,P?NW ; CONDITIONAL EXIT + .BYTE LAUNDRY ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?UP + .BYTE MESS-HALL + .PROP 1,P?DOWN + .BYTE LEVEL-FOUR + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LEVEL-THREE-F + .PROP 5,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE CALL-BUTTON + .BYTE ELEVATOR-OBJECT + .BYTE ELEVATOR-SHAFT + .BYTE LADDER + .PROP 2,P?LEVEL ; INTEGER/CONSTANT PROPERTY + + 3 + .BYTE 0 + .ENDT + +T?MAUVE-SPOOL:: .TABLE ; TABLE FOR OBJECT MAUVE-SPOOL + .STRL "mauve nanofilm spool" + .PROP 4,P?SYNONYM + W?NANOFILM + W?SPOOL + .PROP 2,P?ADJECTIVE + .BYTE A?NANOFILM + .BYTE A?MAUVE + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 3 + .PROP 2,P?TEXT ; STRING PROPERTY + STR?245 + .BYTE 0 + .ENDT + +T?WINDOW:: .TABLE ; TABLE FOR OBJECT WINDOW + .STRL "window" + .PROP 6,P?SYNONYM + W?WINDOW + W?PORT + W?VIEWPORT + .PROP 3,P?ADJECTIVE + .BYTE A?VIEW + .BYTE A?LARGE + .BYTE A?DIRTY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WINDOW-F + .BYTE 0 + .ENDT + +T?WELDER:: .TABLE ; TABLE FOR OBJECT WELDER + .STRL "hull welder" + .PROP 2,P?SYNONYM + W?WELDER + .PROP 1,P?ADJECTIVE + .BYTE A?HULL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WELDER-F + .BYTE 0 + .ENDT + +T?SPACESUIT:: .TABLE ; TABLE FOR OBJECT SPACESUIT + .STRL "space suit" + .PROP 2,P?SYNONYM + W?SUIT + .PROP 1,P?ADJECTIVE + .BYTE A?SPACE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SPACESUIT-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 40 + .BYTE 0 + .ENDT + +T?SPRAY-CAN:: .TABLE ; TABLE FOR OBJECT SPRAY-CAN + .STRL "spray can" + .PROP 2,P?SYNONYM + W?CAN + .PROP 1,P?ADJECTIVE + .BYTE A?SPRAY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SPRAY-CAN-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?347 + .BYTE 0 + .ENDT + +T?SICK-BAY:: .TABLE ; TABLE FOR OBJECT SICK-BAY + .STRL "Sick Bay" + .PROP 5,P?EAST ; DOOR EXIT + .BYTE BRIG ; ROOM NAME + .BYTE SECURITY-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 4,P?SE ; CONDITIONAL EXIT + .BYTE EAST-CONNECTION ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?WEST ; CONDITIONAL EXIT + .BYTE NORTH-JUNCTION ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?211 + .PROP 5,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE BED + .BYTE EQUIPMENT + .BYTE SECURITY-DOOR + .BYTE ID-READER + .BYTE 0 + .ENDT + +T?OFFICERS-QUARTERS-B:: .TABLE ; TABLE FOR OBJECT OFFICERS-QUARTERS-B + .STRL "Officers' Quarters B" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE END-OF-CORRIDOR ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?NE ; CONDITIONAL EXIT + .BYTE END-OF-CORRIDOR ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?SOUTH + .BYTE OFFICERS-SANFAC + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE END-OF-CORRIDOR ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?264 + .PROP 5,P?GLOBAL + .BYTE BED + .BYTE CUBICLE + .BYTE WARDROBE + .BYTE DESK + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?THEATRE:: .TABLE ; TABLE FOR OBJECT THEATRE + .STRL "Theatre" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE LEVEL-THREE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE LEVEL-THREE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?237 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?11 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?AUTO-DOOR:: .TABLE ; TABLE FOR OBJECT AUTO-DOOR + .STRL "auto-door" + .PROP 4,P?SYNONYM + W?DOOR + W?AUTO-DOOR + .PROP 1,P?ADJECTIVE + .BYTE A?AUTO + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + AUTO-DOOR-F + .BYTE 0 + .ENDT + +T?MAYORS-OFFICE:: .TABLE ; TABLE FOR OBJECT MAYORS-OFFICE + .STRL "Mayor's Office" + .PROP 1,P?DOWN + .BYTE MAIN-STREET + .PROP 1,P?OUT + .BYTE MAIN-STREET + .PROP 2,P?LDESC ; STRING PROPERTY + STR?334 + .BYTE 0 + .ENDT + +T?COUNTER:: .TABLE ; TABLE FOR OBJECT COUNTER + .STRL "counter" + .PROP 2,P?SYNONYM + W?COUNTER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + COUNTER-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 100 + .BYTE 0 + .ENDT + +T?MEETING-ROOM-2:: .TABLE ; TABLE FOR OBJECT MEETING-ROOM-2 + .STRL "Meeting Room 2" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE MEETING-ROOM-1 ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE LIBRARY ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?242 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?DICE:: .TABLE ; TABLE FOR OBJECT DICE + .STRL "pair of dice" + .PROP 4,P?SYNONYM + W?PAIR + W?DICE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DICE-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?FLOYD:: .TABLE ; TABLE FOR OBJECT FLOYD + .STRL "Floyd" + .PROP 6,P?SYNONYM + W?FLOYD + W?ROBOT + W?THREE + .PROP 6,P?ADJECTIVE + .BYTE A?MULTIP + .BYTE A?PURPOS + .BYTE A?SHORT + .BYTE A?ROBOT + .BYTE A?NUMBER + .BYTE A?THIRD + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FLOYD-F + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?151 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 5 + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + FLOYD-F + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?152 + .BYTE 0 + .ENDT + +T?FILE-ROOM:: .TABLE ; TABLE FOR OBJECT FILE-ROOM + .STRL "File Room" + .PROP 1,P?NE + .BYTE SOUTH-JUNCTION + .PROP 1,P?OUT + .BYTE SOUTH-JUNCTION + .PROP 2,P?LDESC ; STRING PROPERTY + STR?217 + .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?LOG-READER:: .TABLE ; TABLE FOR OBJECT LOG-READER + .STRL "log reader" + .PROP 6,P?SYNONYM + W?READER + W?RECORDER + W?MACHIN + .PROP 1,P?ADJECTIVE + .BYTE A?LOG + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LOG-READER-F + .BYTE 0 + .ENDT + +T?LOAN-SHARK:: .TABLE ; TABLE FOR OBJECT LOAN-SHARK + .STRL "Loan Shark" + .PROP 1,P?NORTH + .BYTE ALLEY + .PROP 1,P?OUT + .BYTE ALLEY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?348 + .BYTE 0 + .ENDT + +T?PET-STORE:: .TABLE ; TABLE FOR OBJECT PET-STORE + .STRL "Pet Store" + .PROP 1,P?NE + .BYTE BROADWAY + .PROP 1,P?SE + .BYTE TRADING-POST + .PROP 2,P?LDESC ; STRING PROPERTY + STR?319 + .PROP 1,P?GLOBAL + .BYTE SIGN + .BYTE 0 + .ENDT + +T?DOCKING-BAY-2:: .TABLE ; TABLE FOR OBJECT DOCKING-BAY-2 + .STRL "Docking Bay #2" + .PROP 4,P?EAST ; CONDITIONAL EXIT + .BYTE LEVEL-FIVE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 5,P?IN ; DOOR EXIT + .BYTE SPACETRUCK ; ROOM NAME + .BYTE SPACETRUCK-HATCH ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DOCKING-BAY-2-F + .PROP 3,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE SPACETRUCK-OBJECT + .BYTE SPACETRUCK-HATCH + .BYTE 0 + .ENDT + +T?STORAGE-5:: .TABLE ; TABLE FOR OBJECT STORAGE-5 + .STRL "Storage" + .PROP 4,P?EAST ; CONDITIONAL EXIT + .BYTE NORTH-CONNECTION ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?SOUTH + .BYTE WORKSHOP + .PROP 1,P?OUT + .BYTE NORTH-CONNECTION + .PROP 2,P?LDESC ; STRING PROPERTY + STR?202 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?ELEVATOR-SHAFT:: .TABLE ; TABLE FOR OBJECT ELEVATOR-SHAFT + .STRL "elevator shaft" + .PROP 2,P?SYNONYM + W?SHAFT + .PROP 1,P?ADJECTIVE + .BYTE A?ELEVATOR + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ELEVATOR-OBJECT-F + .BYTE 0 + .ENDT + +T?PANEL:: .TABLE ; TABLE FOR OBJECT PANEL + .STRL "ceiling panel" + .PROP 2,P?SYNONYM + W?PANEL + .PROP 2,P?ADJECTIVE + .BYTE A?CEILIN + .BYTE A?ROOF + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PANEL-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?320 + .BYTE 0 + .ENDT + +T?OFFICERS-QUARTERS-A:: .TABLE ; TABLE FOR OBJECT OFFICERS-QUARTERS-A + .STRL "Officers' Quarters A" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE LEVEL-SIX ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?SE + .BYTE OFFICERS-SANFAC + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE LEVEL-SIX ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?263 + .PROP 5,P?GLOBAL + .BYTE BED + .BYTE CUBICLE + .BYTE WARDROBE + .BYTE DESK + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?ENGINEERING-OFFICE:: .TABLE ; TABLE FOR OBJECT ENGINEERING-OFFICE + .STRL "Engineering Office" + .PROP 1,P?SOUTH + .BYTE ENGINEERING-LAB + .PROP 1,P?OUT + .BYTE ENGINEERING-LAB + .PROP 2,P?LDESC ; STRING PROPERTY + STR?276 + .PROP 1,P?GLOBAL + .BYTE DESK + .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 + .BYTE 0 + .ENDT + +T?SCIENTISTS-QUARTERS:: .TABLE ; TABLE FOR OBJECT SCIENTISTS-QUARTERS + .STRL "Scientists' Quarters" + .PROP 1,P?DOWN + .BYTE ASTRO-LAB + .PROP 1,P?OUT + .BYTE ASTRO-LAB + .PROP 2,P?LDESC ; STRING PROPERTY + STR?282 + .PROP 3,P?GLOBAL + .BYTE BED + .BYTE CUBICLE + .BYTE WARDROBE + .BYTE 0 + .ENDT + +T?ROOMS:: .TABLE ; TABLE FOR OBJECT ROOMS + .STRL "it" + .PROP 1,P?IN + .BYTE ROOMS + .BYTE 0 + .ENDT + +T?DETONATOR:: .TABLE ; TABLE FOR OBJECT DETONATOR + .STRL "detonator" + .PROP 2,P?SYNONYM + W?DETONATOR + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DETONATOR-F + .BYTE 0 + .ENDT + +T?SYSTEM-MONITORS:: .TABLE ; TABLE FOR OBJECT SYSTEM-MONITORS + .STRL "system monitor board" + .PROP 2,P?SYNONYM + W?BOARD + .PROP 6,P?ADJECTIVE + .BYTE A?SYSTEM + .BYTE A?MONITOR + .BYTE A?RED + .BYTE A?GREEN + .BYTE A?YELLOW + .BYTE A?BLINKING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SYSTEM-MONITORS-F + .BYTE 0 + .ENDT + +T?AUXILIARY-SANFAC:: .TABLE ; TABLE FOR OBJECT AUXILIARY-SANFAC + .STRL "Auxiliary SanFac" + .PROP 1,P?NORTH + .BYTE AUXILIARY-BARRACKS + .PROP 1,P?OUT + .BYTE AUXILIARY-BARRACKS + .PROP 2,P?LDESC ; STRING PROPERTY + STR?251 + .PROP 1,P?GLOBAL + .BYTE FIXTURES + .BYTE 0 + .ENDT + +T?GRIMY-PASSAGE:: .TABLE ; TABLE FOR OBJECT GRIMY-PASSAGE + .STRL "Grimy Passage" + .PROP 3,P?NORTH + .WORD VILLAGE-BOUNDARY-F + .BYTE 0 + .PROP 1,P?SOUTH + .BYTE MAIN-STREET + .PROP 2,P?LDESC ; STRING PROPERTY + STR?331 + .PROP 1,P?GLOBAL + .BYTE IRIS-HATCH + .BYTE 0 + .ENDT + +T?OUTER-AIRLOCK-DOOR:: .TABLE ; TABLE FOR OBJECT OUTER-AIRLOCK-DOOR + .STRL "outer airlock door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 3,P?ADJECTIVE + .BYTE A?OUTER + .BYTE A?LOWER + .BYTE A?AIRLOCK + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + OUTER-AIRLOCK-DOOR-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-AIRLOCK-DOOR-F + .BYTE 0 + .ENDT + +T?RADIO:: .TABLE ; TABLE FOR OBJECT RADIO + .STRL "SB radio" + .PROP 2,P?SYNONYM + W?RADIO + .PROP 3,P?ADJECTIVE + .BYTE A?SPACE + .BYTE A?BAND + .BYTE A?EAST + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + RADIO-F + .BYTE 0 + .ENDT + +T?SOUTH-CONNECTION:: .TABLE ; TABLE FOR OBJECT SOUTH-CONNECTION + .STRL "South Connection" + .PROP 1,P?NORTH + .BYTE SOUTH-JUNCTION + .PROP 4,P?EAST ; CONDITIONAL EXIT + .BYTE BRIEFING-ROOM ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 3,P?SOUTH + .WORD VILLAGE-BOUNDARY-F + .BYTE 0 + .PROP 4,P?WEST ; CONDITIONAL EXIT + .BYTE ROBOT-SHOP ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SOUTH-CONNECTION-F + .PROP 2,P?THINGS ; STRING PROPERTY + PT?10 + .PROP 2,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE IRIS-HATCH + .BYTE 0 + .ENDT + +T?LOCAL-GLOBALS:: .TABLE ; TABLE FOR OBJECT LOCAL-GLOBALS + .STRL "it" + .PROP 2,P?SYNONYM + W?ZZMGCK + .BYTE 0 + .ENDT + +T?BRIG:: .TABLE ; TABLE FOR OBJECT BRIG + .STRL "Brig" + .PROP 4,P?WEST ; CONDITIONAL EXIT + .BYTE SICK-BAY ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE SICK-BAY ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?212 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?5 + .PROP 1,P?GLOBAL + .BYTE SECURITY-DOOR + .BYTE 0 + .ENDT + +T?PILOT-SEAT:: .TABLE ; TABLE FOR OBJECT PILOT-SEAT + .STRL "pilot seat" + .PROP 4,P?SYNONYM + W?SEAT + W?CHAIR + .PROP 1,P?ADJECTIVE + .BYTE A?PILOT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PILOT-SEAT-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 30 + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-SEAT-F + .BYTE 0 + .ENDT + +T?LEVEL-FIVE:: .TABLE ; TABLE FOR OBJECT LEVEL-FIVE + .STRL "Level Five" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE WORKSHOP ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?NE + .BYTE NORTH-JUNCTION + .PROP 3,P?EAST + .WORD ELEVATOR-ENTER-F + .BYTE 0 + .PROP 1,P?SE + .BYTE SOUTH-JUNCTION + .PROP 4,P?WEST ; CONDITIONAL EXIT + .BYTE DOCKING-BAY-2 ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?UP + .BYTE LEVEL-FOUR + .PROP 1,P?DOWN + .BYTE LEVEL-SIX + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LEVEL-FIVE-F + .PROP 5,P?GLOBAL + .BYTE CALL-BUTTON + .BYTE AUTO-DOOR + .BYTE ELEVATOR-OBJECT + .BYTE ELEVATOR-SHAFT + .BYTE LADDER + .PROP 2,P?LEVEL ; INTEGER/CONSTANT PROPERTY + + 5 + .BYTE 0 + .ENDT + +T?ELEVATOR:: .TABLE ; TABLE FOR OBJECT ELEVATOR + .STRL "Elevator" + .PROP 3,P?WEST + .WORD ELEVATOR-EXIT-F + .BYTE 0 + .PROP 3,P?OUT + .WORD ELEVATOR-EXIT-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ELEVATOR-F + .PROP 2,P?THINGS ; STRING PROPERTY + PT?16 + .PROP 2,P?GLOBAL + .BYTE KEYPAD + .BYTE ELEVATOR-OBJECT + .BYTE 0 + .ENDT + +T?FACTORY:: .TABLE ; TABLE FOR OBJECT FACTORY + .STRL "Factory" + .PROP 1,P?DOWN + .BYTE COMPUTER-CONTROL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FACTORY-F + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?CARGO-BAY-ENTRANCE:: .TABLE ; TABLE FOR OBJECT CARGO-BAY-ENTRANCE + .STRL "Cargo Bay Entrance" + .PROP 1,P?NORTH + .BYTE ROBOT-POOL + .PROP 1,P?EAST + .BYTE CARGO-BAY + .PROP 1,P?WEST + .BYTE DECK-FIVE + .PROP 2,P?LDESC ; STRING PROPERTY + STR?150 + .BYTE 0 + .ENDT + +T?VOLUME:: .TABLE ; TABLE FOR OBJECT VOLUME + .STRL "Plato's volume of poetry" + .PROP 8,P?SYNONYM + W?BOOK + W?VOLUME + W?POETRY + W?TOME + .PROP 2,P?ADJECTIVE + .BYTE A?PLATO + .BYTE A?POETRY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + VOLUME-F + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?285 + .BYTE 0 + .ENDT + +T?PAWN-SHOP:: .TABLE ; TABLE FOR OBJECT PAWN-SHOP + .STRL "Pawn Shop" + .PROP 1,P?NE + .BYTE ALLEY + .PROP 1,P?OUT + .BYTE ALLEY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?346 + .BYTE 0 + .ENDT + +T?GLOBAL-OBJECTS:: .TABLE ; TABLE FOR OBJECT GLOBAL-OBJECTS + .STRL "it" + .PROP 2,P?SYNONYM + W?ZZMGCK + .BYTE 0 + .ENDT + +T?PROJECTION-BOOTH:: .TABLE ; TABLE FOR OBJECT PROJECTION-BOOTH + .STRL "projection booth" + .PROP 2,P?SYNONYM + W?BOOTH + .PROP 1,P?ADJECTIVE + .BYTE A?PROJECTION + .BYTE 0 + .ENDT + +T?IT:: .TABLE ; TABLE FOR OBJECT IT + .STRL "it" + .PROP 4,P?SYNONYM + W?IT + W?THEM + .BYTE 0 + .ENDT + +T?BRIEFING-ROOM:: .TABLE ; TABLE FOR OBJECT BRIEFING-ROOM + .STRL "Briefing Room" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE COMMANDERS-OFFICE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?WEST ; CONDITIONAL EXIT + .BYTE SOUTH-CONNECTION ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE SOUTH-CONNECTION ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?226 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?LOCKER:: .TABLE ; TABLE FOR OBJECT LOCKER + .STRL "locker" + .PROP 2,P?SYNONYM + W?LOCKER + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 100 + .BYTE 0 + .ENDT + +T?WALLS:: .TABLE ; TABLE FOR OBJECT WALLS + .STRL "wall" + .PROP 4,P?SYNONYM + W?WALL + W?WALLS + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WALLS-F + .BYTE 0 + .ENDT + +T?SMALL-BIT:: .TABLE ; TABLE FOR OBJECT SMALL-BIT + .STRL "small drill bit" + .PROP 4,P?SYNONYM + W?BIT + W?BITS + .PROP 2,P?ADJECTIVE + .BYTE A?SMALL + .BYTE A?DRILL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BIT-F + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?200 + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?210 + .BYTE 0 + .ENDT + +T?DRYER:: .TABLE ; TABLE FOR OBJECT DRYER + .STRL "dryer" + .PROP 2,P?SYNONYM + W?DRYER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DRYER-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 50 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?235 + .BYTE 0 + .ENDT + +T?FLOPHOUSE:: .TABLE ; TABLE FOR OBJECT FLOPHOUSE + .STRL "Flophouse" + .PROP 1,P?DOWN + .BYTE CASINO + .PROP 1,P?OUT + .BYTE CASINO + .PROP 2,P?LDESC ; STRING PROPERTY + STR?329 + .PROP 1,P?GLOBAL + .BYTE BED + .BYTE 0 + .ENDT + +T?PLATINUM-DETECTOR:: .TABLE ; TABLE FOR OBJECT PLATINUM-DETECTOR + .STRL "platinum detector" + .PROP 2,P?SYNONYM + W?DETECTOR + .PROP 1,P?ADJECTIVE + .BYTE A?PLATINUM + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PLATINUM-DETECTOR-F + .BYTE 0 + .ENDT + +T?PALLETS:: .TABLE ; TABLE FOR OBJECT PALLETS + .STRL "pallets of boxes" + .PROP 6,P?SYNONYM + W?BOX + W?BOXES + W?PALLET + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PALLETS-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?149 + .BYTE 0 + .ENDT + +T?STATION-CONTROL:: .TABLE ; TABLE FOR OBJECT STATION-CONTROL + .STRL "Station Control" + .PROP 1,P?NE + .BYTE EAST-CONNECTION + .PROP 1,P?SOUTH + .BYTE COMMANDERS-OFFICE + .PROP 1,P?WEST + .BYTE SOUTH-JUNCTION + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + STATION-CONTROL-F + .BYTE 0 + .ENDT + +T?BLUE-GOO:: .TABLE ; TABLE FOR OBJECT BLUE-GOO + .STRL "blob of blue goo" + .PROP 8,P?SYNONYM + W?GOO + W?BLOB + W?FOOD + W?CREAM + .PROP 3,P?ADJECTIVE + .BYTE A?BLUE + .BYTE A?BLUEBERRY + .BYTE A?ICE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GOO-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-FOOD-F + .PROP 2,P?FOOD-DESC ; STRING PROPERTY + STR?198 + .BYTE 0 + .ENDT + +T?FPU:: .TABLE ; TABLE FOR OBJECT FPU + .STRL "Food Processing and Dispensing Unit" + .PROP 6,P?SYNONYM + W?UNIT + W?FPU + W?FDU + .PROP 3,P?ADJECTIVE + .BYTE A?FOOD + .BYTE A?PROCESSING + .BYTE A?DISPEN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FPU-F + .BYTE 0 + .ENDT + +T?PRESSER:: .TABLE ; TABLE FOR OBJECT PRESSER + .STRL "presser" + .PROP 2,P?SYNONYM + W?PRESSER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PRESSER-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + PRESSER-F + .BYTE 0 + .ENDT + +T?PEDESTAL:: .TABLE ; TABLE FOR OBJECT PEDESTAL + .STRL "pedestal" + .PROP 2,P?SYNONYM + W?PEDESTAL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PEDESTAL-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 20 + .BYTE 0 + .ENDT + +T?ASTRO-OFFICE:: .TABLE ; TABLE FOR OBJECT ASTRO-OFFICE + .STRL "Astro Office" + .PROP 1,P?SOUTH + .BYTE ASTRO-LAB + .PROP 1,P?OUT + .BYTE ASTRO-LAB + .PROP 2,P?LDESC ; STRING PROPERTY + STR?276 + .PROP 1,P?GLOBAL + .BYTE DESK + .BYTE 0 + .ENDT + +T?JUNK-YARD:: .TABLE ; TABLE FOR OBJECT JUNK-YARD + .STRL "Junk Yard" + .PROP 1,P?WEST + .BYTE ALLEY + .PROP 1,P?UP + .BYTE SHADY-DANS + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + JUNK-YARD-F + .PROP 2,P?LDESC ; STRING PROPERTY + STR?366 + .BYTE 0 + .ENDT + +T?SPACETRUCK-OBJECT:: .TABLE ; TABLE FOR OBJECT SPACETRUCK-OBJECT + .STRL "spacetruck" + .PROP 6,P?SYNONYM + W?SPACETRUCK + W?TRUCK + W?SPACECRAFT + .PROP 1,P?ADJECTIVE + .BYTE A?SPACE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SPACETRUCK-OBJECT-F + .BYTE 0 + .ENDT + +T?SHRUBBERY:: .TABLE ; TABLE FOR OBJECT SHRUBBERY + .STRL "shrubbery" + .PROP 8,P?SYNONYM + W?SHRUBBERY + W?SHRUBS + W?PLANTS + W?GARDEN + .PROP 4,P?ADJECTIVE + .BYTE A?BEAUTIFUL + .BYTE A?EXOTIC + .BYTE A?BUSH + .BYTE A?BUSHES + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SHRUBBERY-F + .BYTE 0 + .ENDT + +T?PATTERN-OF-DOTS:: .TABLE ; TABLE FOR OBJECT PATTERN-OF-DOTS + .STRL "pattern of dots" + .PROP 8,P?SYNONYM + W?DOT + W?DOTS + W?SPOT + W?SPOTS + .PROP 1,P?ADJECTIVE + .BYTE A?BLACK + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PATTERN-OF-DOTS-F + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?254 + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?253 + .BYTE 0 + .ENDT + +T?DOCKING-BAY-1:: .TABLE ; TABLE FOR OBJECT DOCKING-BAY-1 + .STRL "Docking Bay #1" + .PROP 4,P?EAST ; CONDITIONAL EXIT + .BYTE LEVEL-SIX ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?IN + .BYTE ALIEN-SHIP + .PROP 2,P?LDESC ; STRING PROPERTY + STR?252 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?13 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?ID-READER:: .TABLE ; TABLE FOR OBJECT ID-READER + .STRL "ID reader" + .PROP 2,P?SYNONYM + W?READER + .PROP 1,P?ADJECTIVE + .BYTE A?ID + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ID-READER-F + .BYTE 0 + .ENDT + +T?INNER-AIRLOCK-DOOR:: .TABLE ; TABLE FOR OBJECT INNER-AIRLOCK-DOOR + .STRL "inner airlock door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 3,P?ADJECTIVE + .BYTE A?INNER + .BYTE A?UPPER + .BYTE A?AIRLOCK + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + INNER-AIRLOCK-DOOR-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-AIRLOCK-DOOR-F + .BYTE 0 + .ENDT + +T?LADDER:: .TABLE ; TABLE FOR OBJECT LADDER + .STRL "ladder" + .PROP 2,P?SYNONYM + W?LADDER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LADDER-F + .BYTE 0 + .ENDT + +T?ID-CARD:: .TABLE ; TABLE FOR OBJECT ID-CARD + .STRL "ID card" + .PROP 4,P?SYNONYM + W?CARD + W?CARDS + .PROP 3,P?ADJECTIVE + .BYTE A?PATROL + .BYTE A?ID + .BYTE A?IDENTIFICATION + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 3 + .PROP 2,P?TEXT ; STRING PROPERTY + STR?146 + .BYTE 0 + .ENDT + +T?DIODE-J:: .TABLE ; TABLE FOR OBJECT DIODE-J + .STRL "J-series hyperdiode" + .PROP 6,P?SYNONYM + W?DIODE + W?DIODES + W?HYPERDIODE + .PROP 3,P?ADJECTIVE + .BYTE A?J-SERIES + .BYTE A?J + .BYTE A?SERIES + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?200 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 5 + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?210 + .BYTE 0 + .ENDT + +T?BOOTS:: .TABLE ; TABLE FOR OBJECT BOOTS + .STRL "pair of magnetic boots" + .PROP 6,P?SYNONYM + W?PAIR + W?BOOTS + W?SPACEBOOTS + .PROP 1,P?ADJECTIVE + .BYTE A?MAGNETIC + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BOOTS-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?367 + .BYTE 0 + .ENDT + +T?EQUIPMENT:: .TABLE ; TABLE FOR OBJECT EQUIPMENT + .STRL "equipment" + .PROP 4,P?SYNONYM + W?EQUIPMENT + W?MACHIN + .PROP 5,P?ADJECTIVE + .BYTE A?REPAIR + .BYTE A?FABRICATION + .BYTE A?DIAGNO + .BYTE A?ROBOT + .BYTE A?AUTHORIZATION + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + EQUIPMENT-F + .BYTE 0 + .ENDT + +T?DESK:: .TABLE ; TABLE FOR OBJECT DESK + .STRL "desk" + .PROP 2,P?SYNONYM + W?DESK + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FURNISHING-F + .BYTE 0 + .ENDT + +T?WORKSHOP:: .TABLE ; TABLE FOR OBJECT WORKSHOP + .STRL "Workshop" + .PROP 1,P?NORTH + .BYTE STORAGE-5 + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE LEVEL-FIVE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE LEVEL-FIVE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?199 + .PROP 2,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE EQUIPMENT + .BYTE 0 + .ENDT + +T?COMMANDERS-OFFICE:: .TABLE ; TABLE FOR OBJECT COMMANDERS-OFFICE + .STRL "Commander's Office" + .PROP 1,P?NORTH + .BYTE STATION-CONTROL + .PROP 4,P?EAST ; CONDITIONAL EXIT + .BYTE COMMANDERS-QUARTERS ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE BRIEFING-ROOM ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?NW + .BYTE SOUTH-JUNCTION + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + COMMANDERS-OFFICE-F + .PROP 2,P?THINGS ; STRING PROPERTY + PT?8 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?OLIVER:: .TABLE ; TABLE FOR OBJECT OLIVER + .STRL "Oliver" + .PROP 4,P?SYNONYM + W?OLIVER + W?ROBOT + .PROP 2,P?ADJECTIVE + .BYTE A?SMALL + .BYTE A?YOUNG + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + OLIVER-F + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?261 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?259 + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?260 + .BYTE 0 + .ENDT + +T?HOLE:: .TABLE ; TABLE FOR OBJECT HOLE + .STRL "hole" + .PROP 2,P?SYNONYM + W?HOLE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HOLE-F + .BYTE 0 + .ENDT + +T?COPILOT-SEAT:: .TABLE ; TABLE FOR OBJECT COPILOT-SEAT + .STRL "copilot seat" + .PROP 4,P?SYNONYM + W?SEAT + W?CHAIR + .PROP 2,P?ADJECTIVE + .BYTE A?COPILOT + .BYTE A?COPILOT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PILOT-SEAT-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 30 + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-SEAT-F + .BYTE 0 + .ENDT + +T?EXPLOSIVE:: .TABLE ; TABLE FOR OBJECT EXPLOSIVE + .STRL "explosive" + .PROP 6,P?SYNONYM + W?EXPLOSIVE + W?CYLIND + W?LABEL + .PROP 2,P?ADJECTIVE + .BYTE A?FREZONE + .BYTE A?SMALL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + EXPLOSIVE-F + .PROP 2,P?TEXT ; STRING PROPERTY + STR?345 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?344 + .BYTE 0 + .ENDT + +T?PRINTING-PLANT:: .TABLE ; TABLE FOR OBJECT PRINTING-PLANT + .STRL "Printing Plant" + .PROP 3,P?EAST + .WORD ELEVATOR-ENTER-F + .BYTE 0 + .PROP 1,P?NW + .BYTE PAPER-RECYCLING-PLANT + .PROP 1,P?UP + .BYTE LEVEL-SIX + .PROP 2,P?DOWN ; STRING PROPERTY + STR?267 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PRINTING-PLANT-F + .PROP 5,P?GLOBAL + .BYTE CALL-BUTTON + .BYTE ELEVATOR-OBJECT + .BYTE ELEVATOR-SHAFT + .BYTE EQUIPMENT + .BYTE LADDER + .PROP 2,P?LEVEL ; INTEGER/CONSTANT PROPERTY + + 7 + .BYTE 0 + .ENDT + +T?MALE-BARRACKS:: .TABLE ; TABLE FOR OBJECT MALE-BARRACKS + .STRL "Male Barracks" + .PROP 1,P?NE + .BYTE BARRACKS-SANFAC + .PROP 2,P?SE ; STRING PROPERTY + STR?230 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?230 + .PROP 2,P?SW ; STRING PROPERTY + STR?230 + .PROP 4,P?NW ; CONDITIONAL EXIT + .BYTE LEVEL-FOUR ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?231 + .PROP 5,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE BED + .BYTE CUBICLE + .BYTE WARDROBE + .BYTE DESK + .BYTE 0 + .ENDT + +T?RECRUITMENT-OFFICE:: .TABLE ; TABLE FOR OBJECT RECRUITMENT-OFFICE + .STRL "Recruitment Office" + .PROP 1,P?EAST + .BYTE MAIN-STREET + .PROP 1,P?OUT + .BYTE MAIN-STREET + .PROP 2,P?LDESC ; STRING PROPERTY + STR?337 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?18 + .BYTE 0 + .ENDT + +T?SALOON:: .TABLE ; TABLE FOR OBJECT SALOON + .STRL "Saloon" + .PROP 1,P?EAST + .BYTE CASINO + .PROP 1,P?WEST + .BYTE TRADING-POST + .PROP 1,P?NW + .BYTE GROCERY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?327 + .BYTE 0 + .ENDT + +T?PULPIT:: .TABLE ; TABLE FOR OBJECT PULPIT + .STRL "pulpit" + .PROP 2,P?SYNONYM + W?PULPIT + .PROP 2,P?ADJECTIVE + .BYTE A?BEAUTIFUL + .BYTE A?WOODEN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PULPIT-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 30 + .BYTE 0 + .ENDT + +T?FIELD-OFFICE:: .TABLE ; TABLE FOR OBJECT FIELD-OFFICE + .STRL "Field Office" + .PROP 1,P?WEST + .BYTE BROADWAY + .PROP 1,P?OUT + .BYTE BROADWAY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?313 + .BYTE 0 + .ENDT + +T?CLASS-THREE-SPACECRAFT-ACTIVATION-FORM:: .TABLE ; TABLE FOR OBJECT CLASS-THREE-SPACECRAFT-ACTIVATION-FORM + .STRL "Class Three Spacecraft Activation Form HB-56-V" + .PROP 6,P?SYNONYM + W?FORM + W?FORMS + W?HB-56-V + .PROP 5,P?ADJECTIVE + .BYTE A?CLASS + .BYTE A?THREE + .BYTE A?SPACECRAFT + .BYTE A?ACTIVA + .BYTE A?FORM + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FORM-F + .BYTE 0 + .ENDT + +T?ARMORY:: .TABLE ; TABLE FOR OBJECT ARMORY + .STRL "Armory" + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE END-OF-CORRIDOR ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE END-OF-CORRIDOR ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?227 + .PROP 1,P?GLOBAL + .BYTE SECURITY-DOOR + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 5 + .BYTE 0 + .ENDT + +T?CHAPEL:: .TABLE ; TABLE FOR OBJECT CHAPEL + .STRL "Chapel" + .PROP 1,P?EAST + .BYTE LEVEL-THREE + .PROP 1,P?OUT + .BYTE LEVEL-THREE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CHAPEL-F + .BYTE 0 + .ENDT + +T?BIO-LAB:: .TABLE ; TABLE FOR OBJECT BIO-LAB + .STRL "Bio Lab" + .PROP 1,P?NORTH + .BYTE BIO-OFFICE + .PROP 1,P?UP + .BYTE ENGINEERING-LAB + .PROP 1,P?DOWN + .BYTE HOLDING-TANK-LEVEL + .PROP 2,P?LDESC ; STRING PROPERTY + STR?279 + .BYTE 0 + .ENDT + +T?OSTRICH:: .TABLE ; TABLE FOR OBJECT OSTRICH + .STRL "ostrich" + .PROP 6,P?SYNONYM + W?OSTRICH + W?PET + W?BIRD + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + OSTRICH-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?351 + .BYTE 0 + .ENDT + +T?BEDISTOR:: .TABLE ; TABLE FOR OBJECT BEDISTOR + .STRL "twenty-ohm bedistor" + .PROP 2,P?SYNONYM + W?BEDISTOR + .PROP 2,P?ADJECTIVE + .BYTE A?TWENTY + .BYTE A?OHM + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?200 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 8 + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?201 + .BYTE 0 + .ENDT + +T?NORTH-JUNCTION:: .TABLE ; TABLE FOR OBJECT NORTH-JUNCTION + .STRL "North Junction" + .PROP 1,P?NORTH + .BYTE NORTH-CONNECTION + .PROP 1,P?NE + .BYTE PX + .PROP 4,P?EAST ; CONDITIONAL EXIT + .BYTE SICK-BAY ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?SE + .BYTE EAST-JUNCTION + .PROP 1,P?SW + .BYTE LEVEL-FIVE + .PROP 2,P?LDESC ; STRING PROPERTY + STR?204 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?SWITCH:: .TABLE ; TABLE FOR OBJECT SWITCH + .STRL "switch" + .PROP 2,P?SYNONYM + W?SWITCH + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SWITCH-F + .BYTE 0 + .ENDT + +T?ROBOT-POOL:: .TABLE ; TABLE FOR OBJECT ROBOT-POOL + .STRL "Robot Pool" + .PROP 1,P?SOUTH + .BYTE CARGO-BAY-ENTRANCE + .PROP 1,P?OUT + .BYTE CARGO-BAY-ENTRANCE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ROBOT-POOL-F + .PROP 2,P?THINGS ; STRING PROPERTY + PT?2 + .PROP 2,P?GLOBAL + .BYTE KEYPAD + .BYTE EQUIPMENT + .BYTE 0 + .ENDT + +T?SECURITY-DOOR:: .TABLE ; TABLE FOR OBJECT SECURITY-DOOR + .STRL "security door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 1,P?ADJECTIVE + .BYTE A?SECURITY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SECURITY-DOOR-F + .BYTE 0 + .ENDT + +T?CARGO-BAY:: .TABLE ; TABLE FOR OBJECT CARGO-BAY + .STRL "Cargo Bay" + .PROP 1,P?WEST + .BYTE CARGO-BAY-ENTRANCE + .PROP 5,P?IN ; DOOR EXIT + .BYTE SPACETRUCK ; ROOM NAME + .BYTE SPACETRUCK-HATCH ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CARGO-BAY-F + .PROP 2,P?GLOBAL + .BYTE SPACETRUCK-OBJECT + .BYTE SPACETRUCK-HATCH + .BYTE 0 + .ENDT + +T?MISSIONARY:: .TABLE ; TABLE FOR OBJECT MISSIONARY + .STRL "Missionary" + .PROP 1,P?SOUTH + .BYTE ALLEY + .PROP 1,P?OUT + .BYTE ALLEY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?342 + .BYTE 0 + .ENDT + +T?GRATING:: .TABLE ; TABLE FOR OBJECT GRATING + .STRL "air shaft grating" + .PROP 8,P?SYNONYM + W?GRATING + W?GRATE + W?COVER + W?SHAFT + .PROP 2,P?ADJECTIVE + .BYTE A?AIR + .BYTE A?SHAFT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GRATING-F + .BYTE 0 + .ENDT + +T?EXERCISE-MACHINE:: .TABLE ; TABLE FOR OBJECT EXERCISE-MACHINE + .STRL "exercise machine" + .PROP 2,P?SYNONYM + W?MACHIN + .PROP 2,P?ADJECTIVE + .BYTE A?EXERCISE + .BYTE A?NAUTILUS + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + EXERCISE-MACHINE-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?233 + .BYTE 0 + .ENDT + +T?CHURCH:: .TABLE ; TABLE FOR OBJECT CHURCH + .STRL "Church" + .PROP 1,P?SOUTH + .BYTE BROADWAY + .PROP 1,P?OUT + .BYTE BROADWAY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?304 + .BYTE 0 + .ENDT + +T?PUCE-SPOOL:: .TABLE ; TABLE FOR OBJECT PUCE-SPOOL + .STRL "puce nanofilm spool" + .PROP 4,P?SYNONYM + W?NANOFILM + W?SPOOL + .PROP 2,P?ADJECTIVE + .BYTE A?NANOFILM + .BYTE A?PUCE + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 3 + .PROP 2,P?TEXT ; STRING PROPERTY + STR?246 + .BYTE 0 + .ENDT + +T?TOP-OF-AIR-SHAFT:: .TABLE ; TABLE FOR OBJECT TOP-OF-AIR-SHAFT + .STRL "Top of Air Shaft" + .PROP 1,P?DOWN + .BYTE AIR-SHAFT + .PROP 1,P?OUT + .BYTE DOME + .PROP 2,P?LDESC ; STRING PROPERTY + STR?288 + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?BARBERSHOP:: .TABLE ; TABLE FOR OBJECT BARBERSHOP + .STRL "Barbershop" + .PROP 1,P?WEST + .BYTE GROCERY + .PROP 1,P?NW + .BYTE BROADWAY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?315 + .BYTE 0 + .ENDT + +T?SHADY-DANS:: .TABLE ; TABLE FOR OBJECT SHADY-DANS + .STRL "Shady Dan's" + .PROP 1,P?NW + .BYTE TRADING-POST + .PROP 1,P?DOWN + .BYTE JUNK-YARD + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SHADY-DANS-F + .PROP 2,P?THINGS ; STRING PROPERTY + PT?21 + .PROP 2,P?GLOBAL + .BYTE KEYPAD + .BYTE WINDOW + .BYTE 0 + .ENDT + +T?AIR-SHAFT:: .TABLE ; TABLE FOR OBJECT AIR-SHAFT + .STRL "Air Shaft" + .PROP 3,P?UP + .WORD AIR-SHAFT-MOVEMENT-F + .BYTE 0 + .PROP 3,P?DOWN + .WORD AIR-SHAFT-MOVEMENT-F + .BYTE 0 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?289 + .BYTE 0 + .ENDT + +T?COMM-CENTER:: .TABLE ; TABLE FOR OBJECT COMM-CENTER + .STRL "Comm Center" + .PROP 1,P?NORTH + .BYTE EAST-CONNECTION + .PROP 1,P?OUT + .BYTE EAST-CONNECTION + .PROP 2,P?LDESC ; STRING PROPERTY + STR?215 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?7 + .PROP 1,P?GLOBAL + .BYTE EQUIPMENT + .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 + .BYTE 0 + .ENDT + +T?REX:: .TABLE ; TABLE FOR OBJECT REX + .STRL "Rex" + .PROP 6,P?SYNONYM + W?REX + W?ROBOT + W?ONE + .PROP 4,P?ADJECTIVE + .BYTE A?HEAVY + .BYTE A?ROBOT + .BYTE A?NUMBER + .BYTE A?FIRST + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + REX-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?181 + .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?ADJECTIVE + .BYTE A?LARGE + .BYTE A?SMALL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GLOBAL-ROOM-F + .BYTE 0 + .ENDT + +T?TWELVE-PRONG-FROMITZ-BOARD:: .TABLE ; TABLE FOR OBJECT TWELVE-PRONG-FROMITZ-BOARD + .STRL "twelve-prong fromitz board" + .PROP 6,P?SYNONYM + W?BOARD + W?BOARDS + W?PRONGS + .PROP 5,P?ADJECTIVE + .BYTE A?TWELVE + .BYTE A?PRONG + .BYTE A?12-PRONG + .BYTE A?FROMITZ + .BYTE A?NUMBER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TWELVE-PRONG-FROMITZ-BOARD-F + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?200 + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?210 + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-FROMITZ-BOARD-F + .BYTE 0 + .ENDT + +T?SAFE:: .TABLE ; TABLE FOR OBJECT SAFE + .STRL "safe" + .PROP 4,P?SYNONYM + W?SAFE + W?LOCK + .PROP 1,P?ADJECTIVE + .BYTE A?STURDY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SAFE-F + .PROP 2,P?LDESC ; STRING PROPERTY + STR?224 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?223 + .BYTE 0 + .ENDT + +T?MESS-HALL:: .TABLE ; TABLE FOR OBJECT MESS-HALL + .STRL "Mess Hall" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE MAIN-STORAGE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?NE ; CONDITIONAL EXIT + .BYTE MEETING-ROOM-1 ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 3,P?EAST + .WORD ELEVATOR-ENTER-F + .BYTE 0 + .PROP 1,P?SE + .BYTE LIBRARY + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE MAIN-STORAGE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?UP + .BYTE DOME + .PROP 1,P?DOWN + .BYTE LEVEL-THREE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MESS-HALL-F + .PROP 5,P?GLOBAL + .BYTE CALL-BUTTON + .BYTE AUTO-DOOR + .BYTE ELEVATOR-OBJECT + .BYTE ELEVATOR-SHAFT + .BYTE LADDER + .PROP 2,P?LEVEL ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?PX:: .TABLE ; TABLE FOR OBJECT PX + .STRL "The PX" + .PROP 1,P?SW + .BYTE NORTH-JUNCTION + .PROP 1,P?WEST + .BYTE NORTH-CONNECTION + .PROP 2,P?LDESC ; STRING PROPERTY + STR?206 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?4 + .PROP 1,P?GLOBAL + .BYTE KEYPAD + .BYTE 0 + .ENDT + +T?BOTTLE:: .TABLE ; TABLE FOR OBJECT BOTTLE + .STRL "bottle" + .PROP 6,P?SYNONYM + W?BOTTLE + W?DIOXIDE + W?LABEL + .PROP 1,P?ADJECTIVE + .BYTE A?CARBON + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BOTTLE-F + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?323 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + BOTTLE-F + .BYTE 0 + .ENDT + +T?DOME:: .TABLE ; TABLE FOR OBJECT DOME + .STRL "Dome" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?247 + .PROP 3,P?EAST + .WORD ELEVATOR-ENTER-F + .BYTE 0 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?247 + .PROP 1,P?DOWN + .BYTE MESS-HALL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DOME-F + .PROP 2,P?THINGS ; STRING PROPERTY + PT?12 + .PROP 5,P?GLOBAL + .BYTE CALL-BUTTON + .BYTE GRATING + .BYTE ELEVATOR-OBJECT + .BYTE ELEVATOR-SHAFT + .BYTE LADDER + .PROP 2,P?LEVEL ; INTEGER/CONSTANT PROPERTY + + 1 + .BYTE 0 + .ENDT + +T?MAKESHIFT-CONNECTOR:: .TABLE ; TABLE FOR OBJECT MAKESHIFT-CONNECTOR + .STRL "Makeshift Connector" + .PROP 1,P?EAST + .BYTE BROADWAY + .PROP 3,P?WEST + .WORD VILLAGE-BOUNDARY-F + .BYTE 0 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?300 + .PROP 1,P?GLOBAL + .BYTE IRIS-HATCH + .BYTE 0 + .ENDT + +T?PAPER:: .TABLE ; TABLE FOR OBJECT PAPER + .STRL "piece of paper" + .PROP 4,P?SYNONYM + W?PAPER + W?PIECE + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 2,P?TEXT ; STRING PROPERTY + STR?336 + .BYTE 0 + .ENDT + +T?HIM:: .TABLE ; TABLE FOR OBJECT HIM + .STRL "him" + .PROP 4,P?SYNONYM + W?HIM + W?HIMSELF + .BYTE 0 + .ENDT + +T?LIBRARY:: .TABLE ; TABLE FOR OBJECT LIBRARY + .STRL "Library" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE MEETING-ROOM-2 ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?WEST + .BYTE MESS-HALL + .PROP 2,P?LDESC ; STRING PROPERTY + STR?243 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?MAGAZINES:: .TABLE ; TABLE FOR OBJECT MAGAZINES + .STRL "magazine" + .PROP 2,P?SYNONYM + W?MAGAZINE + .PROP 1,P?ADJECTIVE + .BYTE A?RECENT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + MAGAZINE-F + .BYTE 0 + .ENDT + +T?ORANGE-GOO:: .TABLE ; TABLE FOR OBJECT ORANGE-GOO + .STRL "blob of orange goo" + .PROP 8,P?SYNONYM + W?GOO + W?BLOB + W?FOOD + W?YOGURT + .PROP 2,P?ADJECTIVE + .BYTE A?ORANGE + .BYTE A?APRICOT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GOO-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-FOOD-F + .PROP 2,P?FOOD-DESC ; STRING PROPERTY + STR?197 + .BYTE 0 + .ENDT + +T?TRASH-CAN:: .TABLE ; TABLE FOR OBJECT TRASH-CAN + .STRL "trash can" + .PROP 2,P?SYNONYM + W?CAN + .PROP 1,P?ADJECTIVE + .BYTE A?TRASH + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 30 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 50 + .BYTE 0 + .ENDT + +T?TRADING-POST:: .TABLE ; TABLE FOR OBJECT TRADING-POST + .STRL "Trading Post" + .PROP 1,P?NORTH + .BYTE GROCERY + .PROP 1,P?EAST + .BYTE SALOON + .PROP 1,P?SE + .BYTE SHADY-DANS + .PROP 1,P?SW + .BYTE GREASY-STRAW + .PROP 1,P?WEST + .BYTE STUDIO + .PROP 1,P?NW + .BYTE PET-STORE + .PROP 1,P?DOWN + .BYTE WAREHOUSE + .PROP 2,P?LDESC ; STRING PROPERTY + STR?321 + .PROP 1,P?GLOBAL + .BYTE SIGN + .BYTE 0 + .ENDT + +T?HELEN:: .TABLE ; TABLE FOR OBJECT HELEN + .STRL "Helen" + .PROP 6,P?SYNONYM + W?HELEN + W?ROBOT + W?TWO + .PROP 5,P?ADJECTIVE + .BYTE A?SMALL + .BYTE A?SPINDLY + .BYTE A?ROBOT + .BYTE A?NUMBER + .BYTE A?SECOND + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HELEN-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?180 + .BYTE 0 + .ENDT + +T?CRUMPLED-FORM:: .TABLE ; TABLE FOR OBJECT CRUMPLED-FORM + .STRL "crumpled form" + .PROP 6,P?SYNONYM + W?FORM + W?FORMS + W?FW-83-Q + .PROP 6,P?ADJECTIVE + .BYTE A?CRUMPLED + .BYTE A?ILLEGAL + .BYTE A?SPACE + .BYTE A?VILLAGE + .BYTE A?ENTRY + .BYTE A?FORM + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + VILLAGE-FORM-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?FORM-STORAGE-ROOM:: .TABLE ; TABLE FOR OBJECT FORM-STORAGE-ROOM + .STRL "Forms Storage Room" + .PROP 1,P?NORTH + .BYTE DECK-FIVE + .PROP 2,P?LDESC ; STRING PROPERTY + STR?148 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?1 + .BYTE 0 + .ENDT + +T?STAR:: .TABLE ; TABLE FOR OBJECT STAR + .STRL "seven-pointed star" + .PROP 2,P?SYNONYM + W?STAR + .PROP 2,P?ADJECTIVE + .BYTE A?SEVEN + .BYTE A?POINTED + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + STAR-F + .BYTE 0 + .ENDT + +T?TWENTY-PRONG-FROMITZ-BOARD:: .TABLE ; TABLE FOR OBJECT TWENTY-PRONG-FROMITZ-BOARD + .STRL "twenty-prong fromitz board" + .PROP 6,P?SYNONYM + W?BOARD + W?BOARDS + W?PRONGS + .PROP 5,P?ADJECTIVE + .BYTE A?TWENTY + .BYTE A?PRONG + .BYTE A?20-PRONG + .BYTE A?FROMITZ + .BYTE A?NUMBER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TWENTY-PRONG-FROMITZ-BOARD-F + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?200 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?326 + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?210 + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-FROMITZ-BOARD-F + .BYTE 0 + .ENDT + +T?HEATING-CHAMBER:: .TABLE ; TABLE FOR OBJECT HEATING-CHAMBER + .STRL "heating chamber" + .PROP 2,P?SYNONYM + W?CHAMBER + .PROP 1,P?ADJECTIVE + .BYTE A?HEATING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HEATING-CHAMBER-F + .BYTE 0 + .ENDT + +T?HEADLAMP:: .TABLE ; TABLE FOR OBJECT HEADLAMP + .STRL "headlamp" + .PROP 6,P?SYNONYM + W?LAMP + W?LIGHT + W?HEADLAMP + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HEADLAMP-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?314 + .BYTE 0 + .ENDT + +T?TAFFY:: .TABLE ; TABLE FOR OBJECT TAFFY + .STRL "vacuum taffy" + .PROP 4,P?SYNONYM + W?TAFFY + W?FOOD + .PROP 1,P?ADJECTIVE + .BYTE A?VACUUM + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TAFFY-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-FOOD-F + .PROP 2,P?FOOD-DESC ; STRING PROPERTY + STR?318 + .BYTE 0 + .ENDT + +T?AIRLOCK:: .TABLE ; TABLE FOR OBJECT AIRLOCK + .STRL "Airlock" + .PROP 5,P?UP ; DOOR EXIT + .BYTE WAREHOUSE ; ROOM NAME + .BYTE INNER-AIRLOCK-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 5,P?DOWN ; DOOR EXIT + .BYTE VACUUM-STORAGE ; ROOM NAME + .BYTE OUTER-AIRLOCK-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 5,P?IN ; DOOR EXIT + .BYTE WAREHOUSE ; ROOM NAME + .BYTE INNER-AIRLOCK-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 5,P?OUT ; DOOR EXIT + .BYTE VACUUM-STORAGE ; ROOM NAME + .BYTE OUTER-AIRLOCK-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + AIRLOCK-F + .PROP 2,P?GLOBAL + .BYTE INNER-AIRLOCK-DOOR + .BYTE OUTER-AIRLOCK-DOOR + .BYTE 0 + .ENDT + +T?EAST-JUNCTION:: .TABLE ; TABLE FOR OBJECT EAST-JUNCTION + .STRL "East Junction" + .PROP 1,P?EAST + .BYTE EAST-CONNECTION + .PROP 1,P?SW + .BYTE SOUTH-JUNCTION + .PROP 1,P?NW + .BYTE NORTH-JUNCTION + .PROP 2,P?LDESC ; STRING PROPERTY + STR?213 + .BYTE 0 + .ENDT + +T?NANOFILM-READER:: .TABLE ; TABLE FOR OBJECT NANOFILM-READER + .STRL "nanofilm reader" + .PROP 2,P?SYNONYM + W?READER + .PROP 1,P?ADJECTIVE + .BYTE A?NANOFILM + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + NANOFILM-READER-F + .BYTE 0 + .ENDT + +T?OPIUM-DEN:: .TABLE ; TABLE FOR OBJECT OPIUM-DEN + .STRL "Opium Den" + .PROP 1,P?SOUTH + .BYTE CASINO + .PROP 1,P?OUT + .BYTE CASINO + .PROP 2,P?LDESC ; STRING PROPERTY + STR?328 + .PROP 1,P?GLOBAL + .BYTE SIGN + .BYTE 0 + .ENDT + +T?CALL-BUTTON:: .TABLE ; TABLE FOR OBJECT CALL-BUTTON + .STRL "button" + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 2,P?ADJECTIVE + .BYTE A?ELEVATOR + .BYTE A?CALL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CALL-BUTTON-F + .BYTE 0 + .ENDT + +T?DOC-SCHUSTER:: .TABLE ; TABLE FOR OBJECT DOC-SCHUSTER + .STRL """Doc"" Schuster's" + .PROP 1,P?NW + .BYTE ALLEY + .PROP 1,P?OUT + .BYTE ALLEY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DOC-SCHUSTER-F + .PROP 2,P?LDESC ; STRING PROPERTY + STR?350 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?20 + .BYTE 0 + .ENDT + +T?NOTE:: .TABLE ; TABLE FOR OBJECT NOTE + .STRL "note" + .PROP 2,P?SYNONYM + W?NOTE + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 2,P?TEXT ; STRING PROPERTY + STR?281 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?280 + .BYTE 0 + .ENDT + +T?STUN-GUN:: .TABLE ; TABLE FOR OBJECT STUN-GUN + .STRL "stun ray" + .PROP 4,P?SYNONYM + W?GUN + W?RAY + .PROP 1,P?ADJECTIVE + .BYTE A?STUN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + STUN-GUN-F + .BYTE 0 + .ENDT + +T?KEYPAD:: .TABLE ; TABLE FOR OBJECT KEYPAD + .STRL "keypad" + .PROP 2,P?SYNONYM + W?KEYPAD + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + KEYPAD-F + .BYTE 0 + .ENDT + +T?LEVEL-SIX:: .TABLE ; TABLE FOR OBJECT LEVEL-SIX + .STRL "Level Six" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE AUXILIARY-BARRACKS ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 3,P?EAST + .WORD ELEVATOR-ENTER-F + .BYTE 0 + .PROP 1,P?SE + .BYTE END-OF-CORRIDOR + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE OFFICERS-QUARTERS-A ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?SW ; CONDITIONAL EXIT + .BYTE DOCKING-BAY-4 ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?NW ; CONDITIONAL EXIT + .BYTE DOCKING-BAY-1 ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?UP + .BYTE LEVEL-FIVE + .PROP 1,P?DOWN + .BYTE PRINTING-PLANT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LEVEL-SIX-F + .PROP 5,P?GLOBAL + .BYTE CALL-BUTTON + .BYTE AUTO-DOOR + .BYTE ELEVATOR-OBJECT + .BYTE ELEVATOR-SHAFT + .BYTE LADDER + .PROP 2,P?LEVEL ; INTEGER/CONSTANT PROPERTY + + 6 + .BYTE 0 + .ENDT + +T?DOCKING-BAY-4:: .TABLE ; TABLE FOR OBJECT DOCKING-BAY-4 + .STRL "Docking Bay #4" + .PROP 4,P?EAST ; CONDITIONAL EXIT + .BYTE LEVEL-SIX ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?256 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?PLASTIC-BAG:: .TABLE ; TABLE FOR OBJECT PLASTIC-BAG + .STRL "plastic bag" + .PROP 2,P?SYNONYM + W?BAG + .PROP 3,P?ADJECTIVE + .BYTE A?SMALL + .BYTE A?TRANSL + .BYTE A?PLASTIC + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?317 + .BYTE 0 + .ENDT + +T?NECTAR:: .TABLE ; TABLE FOR OBJECT NECTAR + .STRL "cup of nectar" + .PROP 6,P?SYNONYM + W?CUP + W?NECTAR + W?FOOD + .PROP 2,P?ADJECTIVE + .BYTE A?RAMOSIAN + .BYTE A?FIRE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + NECTAR-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-FOOD-F + .PROP 2,P?FOOD-DESC ; STRING PROPERTY + STR?333 + .BYTE 0 + .ENDT + +T?FIXTURES:: .TABLE ; TABLE FOR OBJECT FIXTURES + .STRL "sanfac fixture" + .PROP 8,P?SYNONYM + W?SHOWER + W?STALL + W?STALLS + W?BATHTUB + .PROP 5,P?ADJECTIVE + .BYTE A?TOILET + .BYTE A?SINK + .BYTE A?SINKS + .BYTE A?TUB + .BYTE A?TUBS + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FIXTURES-F + .BYTE 0 + .ENDT + +T?ALIEN-SHIP:: .TABLE ; TABLE FOR OBJECT ALIEN-SHIP + .STRL "Alien Ship" + .PROP 1,P?OUT + .BYTE DOCKING-BAY-1 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ALIEN-SHIP-F + .PROP 2,P?THINGS ; STRING PROPERTY + PT?14 + .BYTE 0 + .ENDT + +T?BALLOON:: .TABLE ; TABLE FOR OBJECT BALLOON + .STRL "Arcturian balloon creature" + .PROP 4,P?SYNONYM + W?CREATURE + W?PET + .PROP 3,P?ADJECTIVE + .BYTE A?ARCTURIAN + .BYTE A?BALLOON + .BYTE A?CREATURE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BALLOON-F + .BYTE 0 + .ENDT + +T?INSTRUCTION-SHEET:: .TABLE ; TABLE FOR OBJECT INSTRUCTION-SHEET + .STRL "instruction sheet" + .PROP 2,P?SYNONYM + W?SHEET + .PROP 1,P?ADJECTIVE + .BYTE A?INSTRUCTION + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 2,P?TEXT ; STRING PROPERTY + STR?322 + .BYTE 0 + .ENDT + +T?SIGN:: .TABLE ; TABLE FOR OBJECT SIGN + .STRL "sign" + .PROP 2,P?SYNONYM + W?SIGN + .PROP 1,P?ADJECTIVE + .BYTE A?EYE-CATCHING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SIGN-F + .BYTE 0 + .ENDT + +T?EAST-CONNECTION:: .TABLE ; TABLE FOR OBJECT EAST-CONNECTION + .STRL "East Connection" + .PROP 3,P?EAST + .WORD VILLAGE-BOUNDARY-F + .BYTE 0 + .PROP 1,P?SOUTH + .BYTE COMM-CENTER + .PROP 1,P?SW + .BYTE STATION-CONTROL + .PROP 1,P?WEST + .BYTE EAST-JUNCTION + .PROP 4,P?NW ; CONDITIONAL EXIT + .BYTE SICK-BAY ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + EAST-CONNECTION-F + .PROP 2,P?THINGS ; STRING PROPERTY + PT?6 + .PROP 2,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE IRIS-HATCH + .BYTE 0 + .ENDT + +T?COMPUTER-CONTROL:: .TABLE ; TABLE FOR OBJECT COMPUTER-CONTROL + .STRL "Computer Control" + .PROP 1,P?NORTH + .BYTE BOTTOM-OF-ELEVATOR-SHAFT + .PROP 3,P?UP + .WORD FACTORY-ENTER-F + .BYTE 0 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?292 + .PROP 4,P?GLOBAL + .BYTE CALL-BUTTON + .BYTE ELEVATOR-OBJECT + .BYTE ELEVATOR-SHAFT + .BYTE LADDER + .BYTE 0 + .ENDT + +T?GRUE:: .TABLE ; TABLE FOR OBJECT GRUE + .STRL "lurking grue" + .PROP 4,P?SYNONYM + W?GRUE + W?BEAST + .PROP 3,P?ADJECTIVE + .BYTE A?LURKING + .BYTE A?VICIOUS + .BYTE A?CARNIVOROUS + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GRUE-F + .BYTE 0 + .ENDT + +T?INSURANCE-OFFICE:: .TABLE ; TABLE FOR OBJECT INSURANCE-OFFICE + .STRL "Insurance Office" + .PROP 1,P?NORTH + .BYTE TRAVEL-AGENCY + .PROP 1,P?NE + .BYTE BANK + .PROP 2,P?LDESC ; STRING PROPERTY + STR?340 + .BYTE 0 + .ENDT + +T?ASTRO-LAB:: .TABLE ; TABLE FOR OBJECT ASTRO-LAB + .STRL "Astro Lab" + .PROP 1,P?NORTH + .BYTE ASTRO-OFFICE + .PROP 1,P?UP + .BYTE SCIENTISTS-QUARTERS + .PROP 1,P?DOWN + .BYTE ENGINEERING-LAB + .PROP 2,P?LDESC ; STRING PROPERTY + STR?278 + .BYTE 0 + .ENDT + +T?LOG-TAPE:: .TABLE ; TABLE FOR OBJECT LOG-TAPE + .STRL "log tape" + .PROP 6,P?SYNONYM + W?TAPE + W?LOG + W?NOTATION + .PROP 1,P?ADJECTIVE + .BYTE A?LOG + .PROP 2,P?TEXT ; STRING PROPERTY + STR?222 + .PROP 2,P?FDESC ; STRING PROPERTY + STR?221 + .BYTE 0 + .ENDT + +T?FEMALE-BARRACKS:: .TABLE ; TABLE FOR OBJECT FEMALE-BARRACKS + .STRL "Female Barracks" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?230 + .PROP 2,P?NE ; STRING PROPERTY + STR?230 + .PROP 1,P?SE + .BYTE BARRACKS-SANFAC + .PROP 4,P?SW ; CONDITIONAL EXIT + .BYTE LEVEL-FOUR ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?NW ; STRING PROPERTY + STR?230 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?229 + .PROP 5,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE BED + .BYTE CUBICLE + .BYTE WARDROBE + .BYTE DESK + .BYTE 0 + .ENDT + +T?SHIPPING-ROOM:: .TABLE ; TABLE FOR OBJECT SHIPPING-ROOM + .STRL "Shipping Room" + .PROP 1,P?WEST + .BYTE END-OF-CORRIDOR + .PROP 1,P?OUT + .BYTE END-OF-CORRIDOR + .PROP 2,P?LDESC ; STRING PROPERTY + STR?262 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?15 + .BYTE 0 + .ENDT + +T?SIMULATION-BOOTH:: .TABLE ; TABLE FOR OBJECT SIMULATION-BOOTH + .STRL "simulation booth" + .PROP 6,P?SYNONYM + W?BOOTH + W?CHAMBER + W?CYLIND + .PROP 4,P?ADJECTIVE + .BYTE A?SIMULATION + .BYTE A?METALLIC + .BYTE A?GREEN + .BYTE A?CYLIND + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SIMULATION-BOOTH-F + .BYTE 0 + .ENDT + +T?MAIN-STORAGE:: .TABLE ; TABLE FOR OBJECT MAIN-STORAGE + .STRL "Main Storage" + .PROP 4,P?SW ; CONDITIONAL EXIT + .BYTE MESS-HALL ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?NW ; CONDITIONAL EXIT + .BYTE MESS-HALL ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE MESS-HALL ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?239 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?FORTUNE-TELLER:: .TABLE ; TABLE FOR OBJECT FORTUNE-TELLER + .STRL "Fortune Teller" + .PROP 1,P?UP + .BYTE BROADWAY + .PROP 1,P?OUT + .BYTE BROADWAY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?303 + .BYTE 0 + .ENDT + +T?STRONG-BOX:: .TABLE ; TABLE FOR OBJECT STRONG-BOX + .STRL "strong box" + .PROP 4,P?SYNONYM + W?BOX + W?LOCK + .PROP 1,P?ADJECTIVE + .BYTE A?STRONG + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + STRONG-BOX-F + .BYTE 0 + .ENDT + +T?SKELETON:: .TABLE ; TABLE FOR OBJECT SKELETON + .STRL "alien skeleton" + .PROP 2,P?SYNONYM + W?SKELETON + .PROP 1,P?ADJECTIVE + .BYTE A?ALIEN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SKELETON-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?255 + .BYTE 0 + .ENDT + +T?GROCERY:: .TABLE ; TABLE FOR OBJECT GROCERY + .STRL "Grocery" + .PROP 1,P?NORTH + .BYTE BROADWAY + .PROP 1,P?EAST + .BYTE BARBERSHOP + .PROP 1,P?SE + .BYTE SALOON + .PROP 1,P?SOUTH + .BYTE TRADING-POST + .PROP 2,P?LDESC ; STRING PROPERTY + STR?316 + .BYTE 0 + .ENDT + +T?GROUND:: .TABLE ; TABLE FOR OBJECT GROUND + .STRL "floor" + .PROP 6,P?SYNONYM + W?FLOOR + W?GROUND + W?DECK + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GROUND-F + .BYTE 0 + .ENDT + +T?SPACETRUCK-HATCH:: .TABLE ; TABLE FOR OBJECT SPACETRUCK-HATCH + .STRL "spacetruck hatch" + .PROP 4,P?SYNONYM + W?HATCH + W?DOOR + .PROP 1,P?ADJECTIVE + .BYTE A?SPACETRUCK + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SPACETRUCK-HATCH-F + .BYTE 0 + .ENDT + +T?OFFICERS-SANFAC:: .TABLE ; TABLE FOR OBJECT OFFICERS-SANFAC + .STRL "Officers SanFac" + .PROP 1,P?NORTH + .BYTE OFFICERS-QUARTERS-B + .PROP 1,P?NE + .BYTE OFFICERS-QUARTERS-C + .PROP 1,P?NW + .BYTE OFFICERS-QUARTERS-A + .PROP 2,P?LDESC ; STRING PROPERTY + STR?266 + .PROP 1,P?GLOBAL + .BYTE FIXTURES + .BYTE 0 + .ENDT + +T?ENGINEERING-LAB:: .TABLE ; TABLE FOR OBJECT ENGINEERING-LAB + .STRL "Engineering Lab" + .PROP 1,P?NORTH + .BYTE ENGINEERING-OFFICE + .PROP 1,P?SOUTH + .BYTE TUBE + .PROP 1,P?UP + .BYTE ASTRO-LAB + .PROP 1,P?DOWN + .BYTE BIO-LAB + .PROP 2,P?LDESC ; STRING PROPERTY + STR?275 + .BYTE 0 + .ENDT + +T?GREASY-STRAW:: .TABLE ; TABLE FOR OBJECT GREASY-STRAW + .STRL "Greasy Straw" + .PROP 1,P?NE + .BYTE TRADING-POST + .PROP 1,P?SW + .BYTE MAIN-STREET + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GREASY-STRAW-F + .PROP 1,P?GLOBAL + .BYTE SIGN + .BYTE 0 + .ENDT + +T?COMMANDERS-QUARTERS:: .TABLE ; TABLE FOR OBJECT COMMANDERS-QUARTERS + .STRL "Commander's Quarters" + .PROP 4,P?WEST ; CONDITIONAL EXIT + .BYTE COMMANDERS-OFFICE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE COMMANDERS-OFFICE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?220 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?9 + .PROP 6,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE BED + .BYTE FIXTURES + .BYTE CUBICLE + .BYTE WARDROBE + .BYTE DESK + .BYTE 0 + .ENDT + +T?VACUUM-STORAGE:: .TABLE ; TABLE FOR OBJECT VACUUM-STORAGE + .STRL "In Space" + .PROP 5,P?UP ; DOOR EXIT + .BYTE AIRLOCK ; ROOM NAME + .BYTE OUTER-AIRLOCK-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 5,P?IN ; DOOR EXIT + .BYTE AIRLOCK ; ROOM NAME + .BYTE OUTER-AIRLOCK-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + VACUUM-STORAGE-F + .PROP 1,P?GLOBAL + .BYTE OUTER-AIRLOCK-DOOR + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 5 + .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?WARDROBE:: .TABLE ; TABLE FOR OBJECT WARDROBE + .STRL "wardrobe" + .PROP 2,P?SYNONYM + W?WARDROBE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FURNISHING-F + .BYTE 0 + .ENDT + +T?GRAY-GOO:: .TABLE ; TABLE FOR OBJECT GRAY-GOO + .STRL "blob of gray goo" + .PROP 8,P?SYNONYM + W?GOO + W?BLOB + W?FOOD + W?CUSTARD + .PROP 4,P?ADJECTIVE + .BYTE A?GRAY + .BYTE A?GREY + .BYTE A?ROCK- + .BYTE A?RAMOSIAN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GOO-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-FOOD-F + .PROP 2,P?FOOD-DESC ; STRING PROPERTY + STR?196 + .BYTE 0 + .ENDT + +T?LARGE-BIT:: .TABLE ; TABLE FOR OBJECT LARGE-BIT + .STRL "large drill bit" + .PROP 4,P?SYNONYM + W?BIT + W?BITS + .PROP 2,P?ADJECTIVE + .BYTE A?LARGE + .BYTE A?DRILL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BIT-F + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?200 + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?210 + .BYTE 0 + .ENDT + +T?TUBE:: .TABLE ; TABLE FOR OBJECT TUBE + .STRL "Tube" + .PROP 1,P?NORTH + .BYTE ENGINEERING-LAB + .PROP 1,P?SOUTH + .BYTE NORTH-CONNECTION + .PROP 2,P?LDESC ; STRING PROPERTY + STR?274 + .BYTE 0 + .ENDT + +T?INTNUM:: .TABLE ; TABLE FOR OBJECT INTNUM + .STRL "number" + .PROP 2,P?SYNONYM + W?NUMBER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + INTNUM-F + .BYTE 0 + .ENDT + +T?FOOD-KIT:: .TABLE ; TABLE FOR OBJECT FOOD-KIT + .STRL "survival kit" + .PROP 2,P?SYNONYM + W?KIT + .PROP 1,P?ADJECTIVE + .BYTE A?SURVIVAL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FOOD-KIT-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 10 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 25 + .BYTE 0 + .ENDT + +T?BOOK:: .TABLE ; TABLE FOR OBJECT BOOK + .STRL "textbook" + .PROP 4,P?SYNONYM + W?TEXTBOOK + W?BOOK + .PROP 1,P?ADJECTIVE + .BYTE A?TEXT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BOOK-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?335 + .BYTE 0 + .ENDT + +T?HOLDING-TANK-LEVEL:: .TABLE ; TABLE FOR OBJECT HOLDING-TANK-LEVEL + .STRL "Holding Tank Level" + .PROP 1,P?UP + .BYTE BIO-LAB + .PROP 1,P?OUT + .BYTE BIO-LAB + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HOLDING-TANK-LEVEL-F + .BYTE 0 + .ENDT + +T?BARRACKS-SANFAC:: .TABLE ; TABLE FOR OBJECT BARRACKS-SANFAC + .STRL "Barracks SanFac" + .PROP 1,P?NORTH + .BYTE FEMALE-BARRACKS + .PROP 1,P?SOUTH + .BYTE MALE-BARRACKS + .PROP 2,P?LDESC ; STRING PROPERTY + STR?232 + .PROP 1,P?GLOBAL + .BYTE FIXTURES + .BYTE 0 + .ENDT + +T?SLEEP:: .TABLE ; TABLE FOR OBJECT SLEEP + .STRL "sleep" + .PROP 6,P?SYNONYM + W?SLEEP + W?NAP + W?SNOOZE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SLEEP-F + .BYTE 0 + .ENDT + +T?DISPENSER:: .TABLE ; TABLE FOR OBJECT DISPENSER + .STRL "dispenser" + .PROP 4,P?SYNONYM + W?DISPEN + W?MACHIN + .PROP 2,P?ADJECTIVE + .BYTE A?DISPEN + .BYTE A?VENDIN + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DISPENSER-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?207 + .BYTE 0 + .ENDT + +T?ELEVATOR-OBJECT:: .TABLE ; TABLE FOR OBJECT ELEVATOR-OBJECT + .STRL "elevator" + .PROP 2,P?SYNONYM + W?ELEVATOR + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ELEVATOR-OBJECT-F + .BYTE 0 + .ENDT + +T?DRILLED-HOLE:: .TABLE ; TABLE FOR OBJECT DRILLED-HOLE + .STRL "hole" + .PROP 2,P?SYNONYM + W?HOLE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DRILLED-HOLE-F + .BYTE 0 + .ENDT + +T?WAREHOUSE:: .TABLE ; TABLE FOR OBJECT WAREHOUSE + .STRL "Warehouse" + .PROP 1,P?SW + .BYTE ALLEY + .PROP 1,P?UP + .BYTE TRADING-POST + .PROP 5,P?DOWN ; DOOR EXIT + .BYTE AIRLOCK ; ROOM NAME + .BYTE INNER-AIRLOCK-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + WAREHOUSE-F + .PROP 2,P?GLOBAL + .BYTE SIGN + .BYTE INNER-AIRLOCK-DOOR + .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?DIARY:: .TABLE ; TABLE FOR OBJECT DIARY + .STRL "diary" + .PROP 4,P?SYNONYM + W?DIARY + W?NOTEBOOK + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DIARY-F + .PROP 2,P?TEXT ; STRING PROPERTY + STR?277 + .BYTE 0 + .ENDT + +T?BIO-OFFICE:: .TABLE ; TABLE FOR OBJECT BIO-OFFICE + .STRL "Bio Office" + .PROP 1,P?SOUTH + .BYTE BIO-LAB + .PROP 1,P?OUT + .BYTE BIO-LAB + .PROP 2,P?LDESC ; STRING PROPERTY + STR?276 + .PROP 1,P?GLOBAL + .BYTE DESK + .BYTE 0 + .ENDT + +T?ETERNAL-FLAME:: .TABLE ; TABLE FOR OBJECT ETERNAL-FLAME + .STRL "eternal flame" + .PROP 2,P?SYNONYM + W?FLAME + .PROP 1,P?ADJECTIVE + .BYTE A?ETERNAL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ETERNAL-FLAME-F + .BYTE 0 + .ENDT + +T?FOIL:: .TABLE ; TABLE FOR OBJECT FOIL + .STRL "reflective foil" + .PROP 4,P?SYNONYM + W?FOIL + W?PLATINUM + .PROP 3,P?ADJECTIVE + .BYTE A?REFLECTIVE + .BYTE A?TRANS-MOLECULAR + .BYTE A?PLATINUM + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FOIL-F + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?312 + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 4 + .PROP 2,P?ASK-PLATO-ABOUT ; STRING PROPERTY + STR?311 + .BYTE 0 + .ENDT + +T?BANK:: .TABLE ; TABLE FOR OBJECT BANK + .STRL "Bank" + .PROP 1,P?NORTH + .BYTE MAIN-STREET + .PROP 1,P?SW + .BYTE INSURANCE-OFFICE + .PROP 1,P?WEST + .BYTE TRAVEL-AGENCY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?338 + .BYTE 0 + .ENDT + +T?TRAVEL-AGENCY:: .TABLE ; TABLE FOR OBJECT TRAVEL-AGENCY + .STRL "Travel Agency" + .PROP 1,P?EAST + .BYTE BANK + .PROP 1,P?SOUTH + .BYTE INSURANCE-OFFICE + .PROP 2,P?LDESC ; STRING PROPERTY + STR?339 + .PROP 2,P?THINGS ; STRING PROPERTY + PT?19 + .BYTE 0 + .ENDT + +T?VILLAGE-FORM:: .TABLE ; TABLE FOR OBJECT VILLAGE-FORM + .STRL "neatly ironed Illegal Space Village Entry Form FW-83-Q" + .PROP 6,P?SYNONYM + W?FORM + W?FORMS + W?FW-83-Q + .PROP 7,P?ADJECTIVE + .BYTE A?ILLEGAL + .BYTE A?SPACE + .BYTE A?VILLAGE + .BYTE A?ENTRY + .BYTE A?FORM + .BYTE A?NEATLY + .BYTE A?IRONED + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + VILLAGE-FORM-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?ASSIGNMENT-COMPLETION-FORM:: .TABLE ; TABLE FOR OBJECT ASSIGNMENT-COMPLETION-FORM + .STRL "Assignment Completion Form QX-17-T" + .PROP 6,P?SYNONYM + W?FORM + W?FORMS + W?QX-17-T + .PROP 3,P?ADJECTIVE + .BYTE A?ASSIGNMENT + .BYTE A?COMPLETION + .BYTE A?FORM + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FORM-F + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .BYTE 0 + .ENDT + +T?MEETING-ROOM-1:: .TABLE ; TABLE FOR OBJECT MEETING-ROOM-1 + .STRL "Meeting Room 1" + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE MEETING-ROOM-2 ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?WEST ; CONDITIONAL EXIT + .BYTE MESS-HALL ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?241 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?ID-CHANGER:: .TABLE ; TABLE FOR OBJECT ID-CHANGER + .STRL "innocuous machine" + .PROP 2,P?SYNONYM + W?MACHIN + .PROP 1,P?ADJECTIVE + .BYTE A?INNOCUOUS + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ID-CHANGER-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?354 + .BYTE 0 + .ENDT + +T?DOCKING-BAY-3:: .TABLE ; TABLE FOR OBJECT DOCKING-BAY-3 + .STRL "Docking Bay #3" + .PROP 4,P?EAST ; CONDITIONAL EXIT + .BYTE LEVEL-FOUR ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?228 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?LEVEL-FOUR:: .TABLE ; TABLE FOR OBJECT LEVEL-FOUR + .STRL "Level Four" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE FEMALE-BARRACKS ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 3,P?EAST + .WORD ELEVATOR-ENTER-F + .BYTE 0 + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE MALE-BARRACKS ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?WEST ; CONDITIONAL EXIT + .BYTE DOCKING-BAY-3 ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?UP + .BYTE LEVEL-THREE + .PROP 1,P?DOWN + .BYTE LEVEL-FIVE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LEVEL-FOUR-F + .PROP 5,P?GLOBAL + .BYTE CALL-BUTTON + .BYTE AUTO-DOOR + .BYTE ELEVATOR-OBJECT + .BYTE ELEVATOR-SHAFT + .BYTE LADDER + .PROP 2,P?LEVEL ; INTEGER/CONSTANT PROPERTY + + 4 + .BYTE 0 + .ENDT + +T?ALLEY:: .TABLE ; TABLE FOR OBJECT ALLEY + .STRL "Alley" + .PROP 1,P?NORTH + .BYTE MISSIONARY + .PROP 1,P?NE + .BYTE WAREHOUSE + .PROP 1,P?EAST + .BYTE JUNK-YARD + .PROP 1,P?SE + .BYTE DOC-SCHUSTER + .PROP 1,P?SOUTH + .BYTE LOAN-SHARK + .PROP 1,P?SW + .BYTE PAWN-SHOP + .PROP 2,P?WEST ; STRING PROPERTY + STR?302 + .PROP 1,P?NW + .BYTE MAIN-STREET + .PROP 1,P?UP + .BYTE MAIN-STREET + .PROP 2,P?LDESC ; STRING PROPERTY + STR?341 + .BYTE 0 + .ENDT + +T?ROBOT-SHOP:: .TABLE ; TABLE FOR OBJECT ROBOT-SHOP + .STRL "Robot Shop" + .PROP 4,P?EAST ; CONDITIONAL EXIT + .BYTE SOUTH-CONNECTION ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE SOUTH-CONNECTION ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ROBOT-SHOP-F + .PROP 2,P?LDESC ; STRING PROPERTY + STR?258 + .PROP 2,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE EQUIPMENT + .BYTE 0 + .ENDT + +T?ROULETTE-WHEEL:: .TABLE ; TABLE FOR OBJECT ROULETTE-WHEEL + .STRL "roulette wheel" + .PROP 2,P?SYNONYM + W?WHEEL + .PROP 1,P?ADJECTIVE + .BYTE A?ROULETTE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + ROULETTE-WHEEL-F + .BYTE 0 + .ENDT + +T?PROTAGONIST:: .TABLE ; TABLE FOR OBJECT PROTAGONIST + .STRL "it" + .PROP 2,P?SYNONYM + W?PROTAG + .BYTE 0 + .ENDT + +T?DIODE-M:: .TABLE ; TABLE FOR OBJECT DIODE-M + .STRL "M-series hyperdiode" + .PROP 6,P?SYNONYM + W?DIODE + W?DIODES + W?HYPERDIODE + .PROP 3,P?ADJECTIVE + .BYTE A?M-SERIES + .BYTE A?M + .BYTE A?SERIES + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?200 + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 5 + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?210 + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 7 + .BYTE 0 + .ENDT + +T?BOTTOM-OF-ELEVATOR-SHAFT:: .TABLE ; TABLE FOR OBJECT BOTTOM-OF-ELEVATOR-SHAFT + .STRL "Shaft at Level Nine" + .PROP 1,P?SOUTH + .BYTE COMPUTER-CONTROL + .PROP 2,P?UP ; STRING PROPERTY + STR?295 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?294 + .PROP 1,P?GLOBAL + .BYTE ELEVATOR-SHAFT + .BYTE 0 + .ENDT + +T?STUDIO:: .TABLE ; TABLE FOR OBJECT STUDIO + .STRL "Studio" + .PROP 1,P?EAST + .BYTE TRADING-POST + .PROP 1,P?OUT + .BYTE TRADING-POST + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + STUDIO-F + .PROP 2,P?LDESC ; STRING PROPERTY + STR?325 + .BYTE 0 + .ENDT + +T?PYRAMID:: .TABLE ; TABLE FOR OBJECT PYRAMID + .STRL "pyramid" + .PROP 2,P?SYNONYM + W?PYRAMID + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PYRAMID-F + .BYTE 0 + .ENDT + +T?HOLDING-TANK:: .TABLE ; TABLE FOR OBJECT HOLDING-TANK + .STRL "holding tank" + .PROP 2,P?SYNONYM + W?TANK + .PROP 2,P?ADJECTIVE + .BYTE A?ISOLATION + .BYTE A?HOLDING + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 500 + .BYTE 0 + .ENDT + +T?MAIN-STREET:: .TABLE ; TABLE FOR OBJECT MAIN-STREET + .STRL "Main Street" + .PROP 1,P?NORTH + .BYTE GRIMY-PASSAGE + .PROP 1,P?NE + .BYTE GREASY-STRAW + .PROP 1,P?SE + .BYTE ALLEY + .PROP 1,P?SOUTH + .BYTE BANK + .PROP 1,P?WEST + .BYTE RECRUITMENT-OFFICE + .PROP 1,P?UP + .BYTE MAYORS-OFFICE + .PROP 1,P?DOWN + .BYTE ALLEY + .PROP 2,P?LDESC ; STRING PROPERTY + STR?332 + .BYTE 0 + .ENDT + +T?GYM:: .TABLE ; TABLE FOR OBJECT GYM + .STRL "Gym" + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE LEVEL-THREE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE LEVEL-THREE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + GYM-F + .PROP 2,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE SIGN + .BYTE 0 + .ENDT + +T?CUBICLE:: .TABLE ; TABLE FOR OBJECT CUBICLE + .STRL "cubicle" + .PROP 2,P?SYNONYM + W?CUBICLE + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FURNISHING-F + .BYTE 0 + .ENDT + +T?PATROL-UNIFORM:: .TABLE ; TABLE FOR OBJECT PATROL-UNIFORM + .STRL "Patrol uniform" + .PROP 4,P?SYNONYM + W?UNIFORM + W?POCKET + .PROP 2,P?ADJECTIVE + .BYTE A?PATROL + .BYTE A?WRINKLED + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PATROL-UNIFORM-F + .PROP 2,P?LDESC ; STRING PROPERTY + STR?147 + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?SPACETRUCK:: .TABLE ; TABLE FOR OBJECT SPACETRUCK + .STRL "Spacetruck" + .PROP 3,P?OUT + .WORD SPACETRUCK-EXIT-F + .BYTE 0 + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SPACETRUCK-F + .PROP 2,P?THINGS ; STRING PROPERTY + PT?3 + .PROP 4,P?GLOBAL + .BYTE WINDOW + .BYTE KEYPAD + .BYTE SPACETRUCK-OBJECT + .BYTE SPACETRUCK-HATCH + .BYTE 0 + .ENDT + +T?NORTH-CONNECTION:: .TABLE ; TABLE FOR OBJECT NORTH-CONNECTION + .STRL "North Connection" + .PROP 1,P?NORTH + .BYTE TUBE + .PROP 1,P?EAST + .BYTE PX + .PROP 1,P?SOUTH + .BYTE NORTH-JUNCTION + .PROP 4,P?WEST ; CONDITIONAL EXIT + .BYTE STORAGE-5 ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?205 + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?CASINO:: .TABLE ; TABLE FOR OBJECT CASINO + .STRL "Casino" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE OPIUM-DEN ; ROOM NAME + .BYTE ROULETTE-TURNED ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?WEST + .BYTE SALOON + .PROP 4,P?UP ; CONDITIONAL EXIT + .BYTE FLOPHOUSE ; ROOM NAME + .BYTE ROULETTE-TURNED ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + CASINO-F + .BYTE 0 + .ENDT + +T?COMPUTER-TERMINAL:: .TABLE ; TABLE FOR OBJECT COMPUTER-TERMINAL + .STRL "computer terminal" + .PROP 2,P?SYNONYM + W?TERMINAL + .PROP 1,P?ADJECTIVE + .BYTE A?COMPUTER + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + COMPUTER-TERMINAL-F + .BYTE 0 + .ENDT + +T?JAMMER:: .TABLE ; TABLE FOR OBJECT JAMMER + .STRL "jammer" + .PROP 4,P?SYNONYM + W?JAMMER + W?SOCKETS + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + JAMMER-F + .PROP 2,P?CAPACITY ; INTEGER/CONSTANT PROPERTY + + 10 + .BYTE 0 + .ENDT + +T?ZAPGUN:: .TABLE ; TABLE FOR OBJECT ZAPGUN + .STRL "fusor-beam zapgun" + .PROP 4,P?SYNONYM + W?GUN + W?ZAPGUN + .PROP 2,P?ADJECTIVE + .BYTE A?FUSOR + .BYTE A?BEAM + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 15 + .BYTE 0 + .ENDT + +T?OSTRICH-NIP:: .TABLE ; TABLE FOR OBJECT OSTRICH-NIP + .STRL "stick of ostrich nip" + .PROP 4,P?SYNONYM + W?STICK + W?NIP + .PROP 1,P?ADJECTIVE + .BYTE A?OSTRICH + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + OSTRICH-NIP-F + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 3 + .BYTE 0 + .ENDT + +T?EVERYONE:: .TABLE ; TABLE FOR OBJECT EVERYONE + .STRL "everyone" + .PROP 6,P?SYNONYM + W?EVERYONE + W?EVERYBODY + W?CREW + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?89 + .BYTE 0 + .ENDT + +T?SOUP:: .TABLE ; TABLE FOR OBJECT SOUP + .STRL "bowl of soup" + .PROP 8,P?SYNONYM + W?BOWL + W?SOUP + W?BROTH + W?FOOD + .PROP 1,P?ADJECTIVE + .BYTE A?CREAMY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + SOUP-F + .PROP 2,P?DESCFCN ; ATOM (CONSTANT) PROPERTY + + SOUP-F + .PROP 2,P?GENERIC ; ATOM (CONSTANT) PROPERTY + + GENERIC-FOOD-F + .BYTE 0 + .ENDT + +T?BROADWAY:: .TABLE ; TABLE FOR OBJECT BROADWAY + .STRL "Broadway" + .PROP 1,P?NORTH + .BYTE CHURCH + .PROP 1,P?NE + .BYTE REC-SHOP + .PROP 1,P?EAST + .BYTE FIELD-OFFICE + .PROP 1,P?SE + .BYTE BARBERSHOP + .PROP 1,P?SOUTH + .BYTE GROCERY + .PROP 1,P?SW + .BYTE PET-STORE + .PROP 1,P?WEST + .BYTE MAKESHIFT-CONNECTOR + .PROP 2,P?NW ; STRING PROPERTY + STR?302 + .PROP 1,P?DOWN + .BYTE FORTUNE-TELLER + .PROP 2,P?LDESC ; STRING PROPERTY + STR?301 + .BYTE 0 + .ENDT + +T?LEASH:: .TABLE ; TABLE FOR OBJECT LEASH + .STRL "leash" + .PROP 2,P?SYNONYM + W?LEASH + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LEASH-F + .BYTE 0 + .ENDT + +T?LETTER:: .TABLE ; TABLE FOR OBJECT LETTER + .STRL "letter" + .PROP 2,P?SYNONYM + W?LETTER + .PROP 2,P?SIZE ; INTEGER/CONSTANT PROPERTY + + 2 + .PROP 2,P?TEXT ; STRING PROPERTY + STR?353 + .BYTE 0 + .ENDT + +T?DRILL:: .TABLE ; TABLE FOR OBJECT DRILL + .STRL "drill" + .PROP 2,P?SYNONYM + W?DRILL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + DRILL-F + .PROP 2,P?FDESC ; STRING PROPERTY + STR?269 + .BYTE 0 + .ENDT + +T?VALIDATION-STAMP:: .TABLE ; TABLE FOR OBJECT VALIDATION-STAMP + .STRL "validation stamp" + .PROP 2,P?SYNONYM + W?STAMP + .PROP 1,P?ADJECTIVE + .BYTE A?VALIDA + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + STAMP-F + .BYTE 0 + .ENDT + +T?IRIS-HATCH:: .TABLE ; TABLE FOR OBJECT IRIS-HATCH + .STRL "iris hatch" + .PROP 2,P?SYNONYM + W?HATCH + .PROP 1,P?ADJECTIVE + .BYTE A?IRIS + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + IRIS-HATCH-F + .BYTE 0 + .ENDT + +T?HOUSING:: .TABLE ; TABLE FOR OBJECT HOUSING + .STRL "machinery housing" + .PROP 4,P?SYNONYM + W?HOUSING + W?LOCK + .PROP 4,P?ADJECTIVE + .BYTE A?MACHIN + .BYTE A?THICK + .BYTE A?METAL + .BYTE A?ELEVATOR + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + HOUSING-F + .PROP 2,P?TEXT ; STRING PROPERTY + STR?248 + .BYTE 0 + .ENDT + +T?END-OF-CORRIDOR:: .TABLE ; TABLE FOR OBJECT END-OF-CORRIDOR + .STRL "End of Corridor" + .PROP 5,P?NORTH ; DOOR EXIT + .BYTE ARMORY ; ROOM NAME + .BYTE SECURITY-DOOR ; DOOR NAME + .WORD 0 + .BYTE 0 ; STRING TO PRINT + .PROP 1,P?EAST + .BYTE SHIPPING-ROOM + .PROP 4,P?SOUTH ; CONDITIONAL EXIT + .BYTE OFFICERS-QUARTERS-C ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?SW ; CONDITIONAL EXIT + .BYTE OFFICERS-QUARTERS-B ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?WEST + .BYTE LEVEL-SIX + .PROP 1,P?NW + .BYTE LEVEL-SIX + .PROP 2,P?LDESC ; STRING PROPERTY + STR?257 + .PROP 3,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE SECURITY-DOOR + .BYTE ID-READER + .BYTE 0 + .ENDT + +T?MEDIUM-BIT:: .TABLE ; TABLE FOR OBJECT MEDIUM-BIT + .STRL "medium drill bit" + .PROP 4,P?SYNONYM + W?BIT + W?BITS + .PROP 2,P?ADJECTIVE + .BYTE A?MEDIUM + .BYTE A?DRILL + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BIT-F + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 3 + .BYTE 0 + .ENDT + +T?DECK-FIVE:: .TABLE ; TABLE FOR OBJECT DECK-FIVE + .STRL "Deck Five" + .PROP 1,P?EAST + .BYTE CARGO-BAY-ENTRANCE + .PROP 1,P?SOUTH + .BYTE FORM-STORAGE-ROOM + .PROP 2,P?WEST ; STRING PROPERTY + STR?145 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?144 + .BYTE 0 + .ENDT + +T?PLATO:: .TABLE ; TABLE FOR OBJECT PLATO + .STRL "Plato" + .PROP 4,P?SYNONYM + W?PLATO + W?ROBOT + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + PLATO-F + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?283 + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?284 + .BYTE 0 + .ENDT + +T?ROBOT-USE-AUTHORIZATION-FORM:: .TABLE ; TABLE FOR OBJECT ROBOT-USE-AUTHORIZATION-FORM + .STRL "Robot Use Authorization Form JZ-59-G" + .PROP 6,P?SYNONYM + W?FORM + W?FORMS + W?JZ-59-G + .PROP 4,P?ADJECTIVE + .BYTE A?ROBOT + .BYTE A?USE + .BYTE A?AUTHORIZATION + .BYTE A?FORM + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + FORM-F + .BYTE 0 + .ENDT + +T?OFFICERS-QUARTERS-C:: .TABLE ; TABLE FOR OBJECT OFFICERS-QUARTERS-C + .STRL "Officers' Quarters C" + .PROP 4,P?NORTH ; CONDITIONAL EXIT + .BYTE END-OF-CORRIDOR ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 1,P?SW + .BYTE OFFICERS-SANFAC + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE END-OF-CORRIDOR ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?LDESC ; STRING PROPERTY + STR?265 + .PROP 5,P?GLOBAL + .BYTE BED + .BYTE CUBICLE + .BYTE WARDROBE + .BYTE DESK + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + +T?TONGUE:: .TABLE ; TABLE FOR OBJECT TONGUE + .STRL "your tongue" + .PROP 2,P?SYNONYM + W?TONGUE + .PROP 2,P?ADJECTIVE + .BYTE A?YOUR + .BYTE A?MY + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + TONGUE-F + .BYTE 0 + .ENDT + +T?COIN:: .TABLE ; TABLE FOR OBJECT COIN + .STRL "coin" + .PROP 4,P?SYNONYM + W?COIN + W?GALAKMID + .PROP 2,P?TEXT ; STRING PROPERTY + STR?349 + .PROP 2,P?VALUE ; INTEGER/CONSTANT PROPERTY + + 4 + .BYTE 0 + .ENDT + +T?BLACKENED-DIODE:: .TABLE ; TABLE FOR OBJECT BLACKENED-DIODE + .STRL "blackened hyperdiode" + .PROP 6,P?SYNONYM + W?DIODE + W?DIODES + W?HYPERDIODE + .PROP 1,P?ADJECTIVE + .BYTE A?BLACKENED + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + BLACKENED-DIODE-F + .PROP 2,P?PLATO-ASK-ABOUT ; STRING PROPERTY + STR?200 + .PROP 2,P?FLOYD-ASK-ABOUT ; STRING PROPERTY + STR?210 + .BYTE 0 + .ENDT + +T?BOTTOM-OF-AIR-SHAFT:: .TABLE ; TABLE FOR OBJECT BOTTOM-OF-AIR-SHAFT + .STRL "Bottom of Air Shaft" + .PROP 2,P?NORTH ; STRING PROPERTY + STR?291 + .PROP 2,P?EAST ; STRING PROPERTY + STR?291 + .PROP 2,P?SOUTH ; STRING PROPERTY + STR?291 + .PROP 2,P?WEST ; STRING PROPERTY + STR?291 + .PROP 1,P?UP + .BYTE AIR-SHAFT + .PROP 3,P?DOWN + .WORD BOTTOM-OF-AIR-SHAFT-EXIT-F + .BYTE 0 + .PROP 2,P?LDESC ; STRING PROPERTY + STR?290 + .PROP 1,P?GLOBAL + .BYTE GRATING + .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 + +T?LAUNDRY:: .TABLE ; TABLE FOR OBJECT LAUNDRY + .STRL "Laundry" + .PROP 4,P?EAST ; CONDITIONAL EXIT + .BYTE LEVEL-THREE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 4,P?OUT ; CONDITIONAL EXIT + .BYTE LEVEL-THREE ; ROOM NAME + .BYTE P-WON ; FLAG NAME + 0 ; NO STRING + .PROP 2,P?ACTION ; ATOM (CONSTANT) PROPERTY + + LAUNDRY-F + .PROP 1,P?GLOBAL + .BYTE AUTO-DOOR + .BYTE 0 + .ENDT + + +; THE GLOBAL VARIABLES ARE ALL LOCATED HERE + +GLOBAL::.TABLE + .GVAR HERE=0 + .GVAR SCORE=0 + .GVAR MOVES=0 + .GVAR CARBON-DIOXIDE-GONE=0 + .GVAR P-END-ON-PREP=0 + .GVAR P-PHR=0 + .GVAR YOULL-HAVE-TO=STR?112,STRING + .GVAR HUH=STR?124,STRING + .GVAR P-BUTS=T?18,TABLE + .GVAR WELDER-COUNTER=0 + .GVAR ID-RANK=6 + .GVAR PERIOD-CR=STR?119,STRING + .GVAR SUIT-PRESSED=0 + .GVAR P-HIM-OBJECT=0 + .GVAR FLOYD-OFF-DESC=STR?130,STRING + .GVAR P-ACLAUSE=0 + .GVAR HO-HUM-LIST=T?22,TABLE + .GVAR WELDER-TABLE-POINTER=0 + .GVAR NEXT-TIME=STR?135,STRING + .GVAR P-SLOCBITS=0 + .GVAR RESTAURANT-SIGN-TEXT=STR?140,STRING + .GVAR P-MATCHLEN=0 + .GVAR P-ADVERB=0 + .GVAR SLEEPY-LEVEL=0 + .GVAR P-MULT=0 + .GVAR P-NAMW=T?14,TABLE + .GVAR P-OTBL=T?11,TABLE + .GVAR C-MAXINTS=60 + .GVAR ROBOT-POOL-EQUIPMENT-DESC=STR?131,STRING + .GVAR P-NAM=0 + .GVAR C-TABLE=T?1,TABLE + .GVAR OSTRICH-COMMENT=0 + .GVAR P-XNAM=0 + .GVAR P-MOBY-FOUND=0 + .GVAR OOPS-TABLE=T?9,TABLE + .GVAR P-WALK-DIR=0 + .GVAR FLOYD-FOLLOW=0 + .GVAR P-ANAM=0 + .GVAR DANS-LOT-DESC=STR?143,STRING + .GVAR ID-RANK-LIST=T?33,TABLE + .GVAR CLOCK-HAND=0 + .GVAR SENILITY-STRIKES=STR?118,STRING + .GVAR LFC=STR?142,STRING + .GVAR CROSSED-BOUNDARY=0 + .GVAR LAST-PSEUDO-LOC=0 + .GVAR FORM-NAME=STR?132,STRING + .GVAR SPRAY-COUNTER=12 + .GVAR P-CONT=0 + .GVAR P-PRSI=T?17,TABLE + .GVAR AGAIN-LEXV=T?4,TABLE + .GVAR ZAPGUN-SHOTS=7 + .GVAR VERBOSITY=1 + .GVAR P-DIRECTION=0 + .GVAR DRYER-COUNTER=0 + .GVAR RESERVE-INBUF=T?7,TABLE + .GVAR CANT-GO=STR?125,STRING + .GVAR DETECTOR-COUNTER=0 + .GVAR IMPOSSIBLE-LIST=T?24,TABLE + .GVAR NOT-HUNGRY=STR?129,STRING + .GVAR BLASTED-OPEN=STR?134,STRING + .GVAR LIT=1 + .GVAR NOUN-MISSING=STR?116,STRING + .GVAR ROULETTE-TURNED=0 + .GVAR P-VTBL=T?12,TABLE + .GVAR P-XADJN=0 + .GVAR HEADLAMP-COUNTER=92 + .GVAR P-ADJW=T?15,TABLE + .GVAR RESERVE-LEXV=T?5,TABLE + .GVAR P-MOBY-FLAG=0 + .GVAR JAMMER-SETTING=337 + .GVAR P-ADJ=0 + .GVAR P-LEN=0 + .GVAR COURSE-PICKED=0 + .GVAR C-INTS=60 + .GVAR P-CCTBL=T?2,TABLE + .GVAR P-LEXV=T?3,TABLE + .GVAR RIGHT-COURSE=0 + .GVAR ROBOT-PICKED=0 + .GVAR VILLAGE-FORM-VALIDATED=0 + .GVAR POSTPONE-ATTACK=0 + .GVAR STRIKE-POWER-SOURCE=STR?139,STRING + .GVAR ANNOUNCEMENT-COUNTER=0 + .GVAR FACTORYISMS=T?31,TABLE + .GVAR TOO-DARK=STR?106,STRING + .GVAR FROZEN-LEVEL=0 + .GVAR DEBUG=0 + .GVAR PRSO=0 + .GVAR HANGING-IN-AIR=0 + .GVAR FLOYDISMS=T?28,TABLE + .GVAR LOG-COUNTER=0 + .GVAR FLAME-EXTINGUISHED=STR?141,STRING + .GVAR P-MERGED=0 + .GVAR SNIFFED=0 + .GVAR P-GWIMBIT=0 + .GVAR WELDER-TABLE=T?27,TABLE + .GVAR DOME-DESC=STR?137,STRING + .GVAR YOU-CANT=STR?111,STRING + .GVAR LOG-READER-COUNTER=0 + .GVAR FAILED=STR?122,STRING + .GVAR AIR-SHAFT-LOC=2 + .GVAR P-SYNTAX=0 + .GVAR FLOYD-NOT-HAVE=STR?127,STRING + .GVAR ASSIGNMENT-FORM-VALIDATED=0 + .GVAR TIMER-CONNECTED=0 + .GVAR P-XADJ=0 + .GVAR TYPE-NUMERALS=STR?133,STRING + .GVAR PLATO-ATTACK-COUNTER=0 + .GVAR FLOYD-SHOT=0 + .GVAR P-AADJ=0 + .GVAR HUNGER-LEVEL=0 + .GVAR ELLIPSIS=STR?120,STRING + .GVAR PRSA=0 + .GVAR P-PRSA-WORD=0 + .GVAR YOU-SEE=STR?109,STRING + .GVAR EXERCISE-MACHINE-COUNTER=0 + .GVAR EXPLOSIVE-MELT-COUNTER=0 + .GVAR FLOYD-ANGUISHED=0 + .GVAR SPACETRUCK-COUNTER=-1 + .GVAR SAFE-HOLE-SCORE=0 + .GVAR P-PRSO=T?16,TABLE + .GVAR ID-SCRAMBLED=0 + .GVAR YNH=STR?107,STRING + .GVAR P-AND=0 + .GVAR DRILL-DEAD=0 + .GVAR C-ELAPSED=7 + .GVAR ELEVATOR-LEVEL=2 + .GVAR P-ONEOBJ=0 + .GVAR THERES-NOTHING=STR?108,STRING + .GVAR DIAL-SETTING=0 + .GVAR INTERNAL-MOVES=0 + .GVAR P-INBUF=T?6,TABLE + .GVAR IT-SEEMS-THAT=STR?110,STRING + .GVAR CONTROL-BOX-DESC=STR?138,STRING + .GVAR P-MERGE=T?19,TABLE + .GVAR P-WON=0 + .GVAR SIMULATIONS=T?32,TABLE + .GVAR GRATING-LOOSE=0 + .GVAR P-OVTBL=T?13,TABLE + .GVAR LOOK-AROUND=STR?113,STRING + .GVAR DIODE-CLEANED=0 + .GVAR SKELETON-COMMENT=0 + .GVAR ROBOT-EVILNESS=0 + .GVAR P-ITBL=T?10,TABLE + .GVAR QUOTE-FLAG=0 + .GVAR P-TABLE=0 + .GVAR P-GETFLAGS=0 + .GVAR DAY=1 + .GVAR P-OCL2=T?21,TABLE + .GVAR CANT-FROM-HERE=STR?114,STRING + .GVAR OOPS-INBUF=T?8,TABLE + .GVAR EXPLOSIVE-CONNECTED=0 + .GVAR P-NUMBER=0 + .GVAR DREAMS=T?26,TABLE + .GVAR P-OFLAG=0 + .GVAR WINNER=0 + .GVAR PRESSER-STEAMING=0 + .GVAR P-ADJN=0 + .GVAR HOLDING-IT=STR?115,STRING + .GVAR AGAIN-DIR=0 + .GVAR HOPPING-MAD=STR?136,STRING + .GVAR RADIO-LINES=T?30,TABLE + .GVAR WASTE-LIST=T?25,TABLE + .GVAR NOTHING-HAPPENS=STR?121,STRING + .GVAR HANGING-COMMENT=0 + .GVAR PLATOISMS=T?29,TABLE + .GVAR AWAITING-REPLY=0 + .GVAR EXAMINE-BOARD=STR?128,STRING + .GVAR P-IT-OBJECT=0 + .GVAR P-OCL1=T?20,TABLE + .GVAR PLATO-INTRODUCED=0 + .GVAR PRSI=0 + .GVAR RESERVE-PTR=0 + .GVAR TIMER-SETTING=0 + .GVAR D-BIT=0 + .GVAR FLOYD-SPOKE=0 + .GVAR ONLY-BLACKNESS=STR?117,STRING + .GVAR ALREADY-IS=STR?126,STRING + .GVAR OLIVER-SPEECH=0 + .GVAR BALLOON-ODOR=0 + .GVAR P-NOT-HERE=0 + .GVAR ELIMINATE-CR=0 + .GVAR FLOYD-TOLD=0 + .GVAR OK=STR?123,STRING + .GVAR NUMBER-OF-WELDERS=4 + .GVAR P-NCN=0 + .GVAR YUK-LIST=T?23,TABLE + .GVAR HOLE-SIZE=0 + .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:: +T?C-TABLE:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?2:: +T?P-CCTBL:: .TABLE + 0 + 0 + 0 + .ENDT + +T?3:: +T?P-LEXV:: .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:: +T?AGAIN-LEXV:: .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:: +T?RESERVE-LEXV:: .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:: +T?P-INBUF:: .TABLE + .BYTE 120 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?7:: +T?RESERVE-INBUF:: .TABLE + .BYTE 120 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?8:: +T?OOPS-INBUF:: .TABLE + .BYTE 120 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?9:: +T?OOPS-TABLE:: .TABLE + 0 + 0 + 0 + 0 + .ENDT + +T?10:: +T?P-ITBL:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?11:: +T?P-OTBL:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?12:: +T?P-VTBL:: .TABLE + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?13:: +T?P-OVTBL:: .TABLE + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?14:: +T?P-NAMW:: .TABLE + 0 + 0 + .ENDT + +T?15:: +T?P-ADJW:: .TABLE + 0 + 0 + .ENDT + +T?16:: +T?P-PRSO:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?17:: +T?P-PRSI:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?18:: +T?P-BUTS:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?19:: +T?P-MERGE:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?20:: +T?P-OCL1:: .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:: +T?P-OCL2:: .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:: +T?HO-HUM-LIST:: .TABLE + 4 + 0 + STR?67 + STR?68 + STR?69 + .ENDT + +T?23:: +T?YUK-LIST:: .TABLE + 7 + 0 + STR?70 + STR?71 + STR?72 + STR?73 + STR?74 + STR?75 + .ENDT + +T?24:: +T?IMPOSSIBLE-LIST:: .TABLE + 6 + 0 + STR?70 + STR?76 + STR?77 + STR?78 + STR?79 + .ENDT + +T?25:: +T?WASTE-LIST:: .TABLE + 6 + 0 + STR?80 + STR?81 + STR?82 + STR?83 + STR?84 + .ENDT + +T?26:: +T?DREAMS:: .TABLE + 7 + 0 + STR?96 + STR?97 + STR?98 + STR?99 + STR?100 + STR?101 + .ENDT + +T?27:: +T?WELDER-TABLE:: .TABLE + 0 + 1 + 2 + 3 + 4 + .ENDT + +T?28:: +T?FLOYDISMS:: .TABLE + 19 + 0 + STR?154 + STR?155 + STR?156 + STR?157 + STR?158 + STR?159 + STR?160 + STR?161 + STR?162 + STR?163 + STR?164 + STR?165 + STR?166 + STR?167 + STR?168 + STR?169 + STR?170 + STR?171 + .ENDT + +T?29:: +T?PLATOISMS:: .TABLE + 9 + 0 + STR?172 + STR?173 + STR?174 + STR?175 + STR?176 + STR?177 + STR?178 + STR?179 + .ENDT + +T?30:: +T?RADIO-LINES:: .TABLE + 4 + 0 + STR?184 + STR?185 + STR?186 + .ENDT + +T?31:: +T?FACTORYISMS:: .TABLE + 4 + 0 + STR?296 + STR?297 + STR?298 + .ENDT + +T?32:: +T?SIMULATIONS:: .TABLE + 6 + 0 + STR?306 + STR?307 + STR?308 + STR?309 + STR?310 + .ENDT + +T?33:: +T?ID-RANK-LIST:: .TABLE + STR?357 + STR?358 + STR?359 + STR?360 + STR?361 + STR?142 + STR?362 + STR?363 + STR?364 + STR?365 + .ENDT + + +; END OF IMPURENESS + +IMPURE:: + + + +; VERB TABLE IS DEFINED HERE + +VTBL:: .TABLE + ST?KISS + ST?APPROA + ST?SKIP + ST?DIAGNO + ST?VERBOSE + ST?WALK + ST?STICK + ST?QUIT + ST?FIND + ST?HEAR + ST?YES + ST?SCOLD + ST?UNLOCK + ST?READ + ST?SAY + ST?JUMP + ST?POUR + ST?$DEBUG + ST?WAIT + ST?TAKE + ST?NO + ST?COUNT + ST?GREET + ST?RAISE + ST?CALL + ST?FOLLOW + ST?TYPE + ST?CATCH + ST?VERSION + ST?#UNRECORD + ST?EXERCISE + ST?LIGHT + ST?LIE + ST?MOVE + ST?MEASURE + ST?LET + ST?PLAY + ST?OPEN + ST?TASTE + ST?SCARE + ST?FLATTEN + ST?TOUCH + ST?#COMMAND + ST?BLOW + ST?SHOOT + ST?WRAP + ST?KNOCK + ST?INVENT + ST?PICK + ST?BOARD + ST?#RANDOM + ST?APPLY + ST?HUG + ST?PRAY + ST?STAND + ST?LISTEN + ST?TIE + ST?WHERE + ST?SHOW + ST?TAP + ST?SAVE + ST?HELP + ST?TELL + ST?THROW + ST?ZORK + 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?WEAR + ST?DISEMBARK + ST?PLUG + ST?UNTIE + ST?WASH + ST?CIRCLE + ST?$KEY + ST?UNSCRIPT + ST?PUSH + ST?SUPER + ST?SIT + ST?RESTAR + ST?DISCONNECT + ST?APPLAUD + ST?TICKLE + ST?UNDRES + ST?REACH + ST?DIG + ST?SCORE + ST?COMFORT + ST?COVER + ST?VALIDA + ST?CONNECT + ST?COME + ST?LOOK + ST?EMPTY + ST?ATTRACT + ST?SPRAY + ST?DROP + ST?TIME + ST?ROLL + ST?LEAVE + ST?HAND + ST?SCRIPT + ST?$VERIFY + ST?EXTINGUISH + ST?SWING + ST?$STATION + ST?DESCEN + ST?SMELL + ST?BRIEF + ST?SLEEP + ST?WAKE + ST?REMOVE + ST?ANSWER + ST?WHAT + ST?YELL + ST?LOCK + ST?BURN + ST?KICK + ST?BITE + ST?POINT + ST?TURN + ST?#RECORD + ST?CROSS + ST?START + ST?MAYBE + ST?CLOSE + ST?GO + ST?SLIDE + ST?EXIT + ST?EXAMINE + ST?EAT + ST?DRILL + ST?FILL + ST?CLIMB + ST?LAUNCH + ST?DEMOLI + ST?SLICE + ST?ASK + ST?HELLO + .ENDT + +; SYNTAX DEFINITION TABLES ARE DEFINED HERE + +ST?KISS:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .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?DIAGNO:: .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?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 2 ;OBJECTS + .BYTE 0 + .BYTE PR?OVER + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?RUN-OVER + .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?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 10 ;NUMBER OF SYNTAXES + .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?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?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+SC + .BYTE 0 + .BYTE V?SWRAP + .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?SCOLD:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SCOLD + .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 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SAY + .ENDT + +ST?JUMP:: .TABLE + .BYTE 11 ;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?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?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?$DEBUG:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$DEBUG + .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 15 ;NUMBER OF SYNTAXES + .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 SMANY + .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?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?ENTER + .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?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?GREET:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?GREET + .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 2 ;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 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?TYPE:: .TABLE + .BYTE 5 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TYPE + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PUSH + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TYPE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TYPE + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TYPE + .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?EXERCISE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?EXERCISE + .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 6 ;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 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?MOVE + .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 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE V?SPLAY-WITH + .BYTE 1 ;OBJECTS + .BYTE PR?WITH + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PLAY-WITH + .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?SCARE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SCARE + .ENDT + +ST?FLATTEN:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FLATTEN + .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 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OUT + .BYTE 0 + .BYTE ONBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?OFF + .ENDT + +ST?SHOOT:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?SSHOOT + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE V?SHOOT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SHOOT + .ENDT + +ST?WRAP:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AROUND + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .BYTE 0 + .BYTE V?SWRAP + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC + .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?BOARD:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE VEHBIT + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?ENTER + .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?HUG:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?HUG + .ENDT + +ST?PRAY:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?FOR + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PRAY + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?PRAY + .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?TIE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .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?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 8 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE SH+SC+STAKE + .BYTE V?STHROW + .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?TO + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+STAKE + .BYTE SOG+SIR + .BYTE V?THROW-TO + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+STAKE + .BYTE SOG+SIR + .BYTE V?THROW + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?DOWN + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+STAKE + .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+STAKE + .BYTE 0 + .BYTE V?THROW + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+STAKE + .BYTE 0 + .BYTE V?THROW + .ENDT + +ST?ZORK:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?ZORK + .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 1 ;NUMBER OF SYNTAXES + .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 STAKE + .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?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?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?PLUG:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CONNECT + .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?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?$KEY:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$KEY + .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?PUSH:: .TABLE + .BYTE 7 ;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?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?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?DISCONNECT:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DISCONNECT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DISCONNECT + .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?TICKLE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TICKLE + .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?REACH:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?UP + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SOG+SIR + .BYTE 0 + .BYTE V?REACH-IN + .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 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SCORE + .ENDT + +ST?COMFORT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE ACTORBIT + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?COMFORT + .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?VALIDA:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SHAVE+STAKE + .BYTE V?VALIDATE + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?VALIDATE + .ENDT + +ST?CONNECT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?TO + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?CONNECT + .ENDT + +ST?COME:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?FOLLOW + .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?ATTRACT:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SHAVE + .BYTE V?ATTRACT + .ENDT + +ST?SPRAY:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE STAKE+SHAVE + .BYTE V?SSPRAY + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE STAKE+SHAVE + .BYTE 0 + .BYTE V?SPRAY + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?AT + .BYTE 0 + .BYTE 0 + .BYTE STAKE+SHAVE + .BYTE 0 + .BYTE V?SPRAY + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE STAKE + .BYTE 0 + .BYTE V?SPRAY + .ENDT + +ST?DROP:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .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?TIME:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?TIME + .ENDT + +ST?ROLL:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE STAKE + .BYTE 0 + .BYTE V?ROLL + .ENDT + +ST?LEAVE:: .TABLE + .BYTE 4 ;NUMBER OF SYNTAXES + .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?HAND:: .TABLE + .BYTE 4 ;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?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?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 ACTIVEBIT + .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?$STATION:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?$STATION + .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?SLEEP:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?ON + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?ENTER + .BYTE 1 ;OBJECTS + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SIR+SOG + .BYTE 0 + .BYTE V?ENTER + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?SLEEP + .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?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 SMANY + .BYTE 0 + .BYTE V?REMOVE + .ENDT + +ST?ANSWER:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .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?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 7 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE ACTIVEBIT + .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?AT + .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?MAYBE:: .TABLE + .BYTE 1 ;NUMBER OF SYNTAXES + .BYTE 0 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?MAYBE + .ENDT + +ST?CLOSE:: .TABLE + .BYTE 2 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?OFF + .BYTE 0 + .BYTE ACTIVEBIT + .BYTE 0 + .BYTE 0 + .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?EAT:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 1 ;OBJECTS + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?EAT-FROM + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?FROM + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?EAT + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE SH+SC+SOG+SIR + .BYTE 0 + .BYTE V?EAT + .ENDT + +ST?DRILL:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?IN + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DRILL-HOLE + .BYTE 2 ;OBJECTS + .BYTE 0 + .BYTE PR?WITH + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DRILL + .BYTE 1 ;OBJECTS + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE V?DRILL + .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?CLIMB:: .TABLE + .BYTE 9 ;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?ENTER + .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-UP + .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?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?MUNG + .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?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?ASK:: .TABLE + .BYTE 3 ;NUMBER OF SYNTAXES + .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-DIAGNOSE + V-INVENTORY + V-QUIT + V-RESTART + V-RESTORE + V-SAVE + V-SCORE + V-SCRIPT + V-UNSCRIPT + V-VERSION + V-$RANDOM + V-$COMMAND + V-$RECORD + V-$UNRECORD + V-$VERIFY + V-$DEBUG + V-$STATION + V-$KEY + V-ANSWER + V-APPLAUD + V-APPLY + V-PUT-ON + V-WALK-TO + V-ASK-ABOUT + V-ASK-FOR + V-KILL + V-ATTRACT + V-BITE + V-OFF + V-ENTER + V-BURN + V-CALL + V-CATCH + V-WALK-AROUND + V-CLIMB-UP + V-CLIMB-ON + V-CLIMB-DOWN + V-DISEMBARK + V-CRAWL-UNDER + V-CLOSE + V-FOLLOW + V-COMFORT + V-CONNECT + V-SPUT-ON + V-COUNT + V-CROSS + V-MUNG + V-DIG + V-DISCONNECT + V-DRESS + V-DRILL + V-DRILL-HOLE + V-DROP + V-PUT + V-EAT + V-EAT-FROM + V-EMPTY + V-EMPTY-FROM + V-IN + V-EXAMINE + V-EXERCISE + V-EXIT + V-FEED + V-GIVE + V-SGIVE + V-FILL + V-FIND + V-FLATTEN + V-GREET + V-WALK + V-HIDE + V-LEAVE + V-GIVE-UP + V-LISTEN + V-HELLO + V-HELP + V-SAVE-SOMETHING + V-HUG + V-LEAP + V-LEAP-OFF + V-STAND-ON + V-KICK + V-KISS + V-KNOCK + V-LAUNCH + V-LIE-DOWN + V-ON + 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-LOWER + V-MAYBE + V-MEASURE + V-MOVE + V-PUSH-DIR + V-RAISE + V-NO + V-OPEN + V-PICK + V-PICK-UP + V-PLAY-WITH + V-SPLAY-WITH + V-POINT + V-POUR + V-PRAY + V-PUSH + V-PUT-UNDER + V-REACH-IN + V-READ + V-REMOVE + V-TAKE + V-ROLL + V-SAY + V-SCARE + V-SCOLD + V-SEARCH + V-SHAKE + V-SHAKE-WITH + V-SHOOT + V-SSHOOT + V-SHOW + V-SSHOW + V-SIT + V-SKIP + V-SLEEP + V-CUT + V-SMELL + V-SPRAY + V-SSPRAY + V-STAND + V-SWRAP + V-WEAR + V-PUT-BEHIND + V-SWING + V-GET-DRESSED + V-GET-UNDRESSED + V-TAKE-WITH + V-TAKE-OFF + V-TELL + V-TOUCH + V-TASTE + V-TELL-ABOUT + V-STELL + V-THANK + V-THROW + V-THROW-TO + V-STHROW + V-TICKLE + V-TIE + V-TIME + V-SET + V-TYPE + V-UNDRESS + V-UNLOCK + V-UNTIE + V-USE + V-VALIDATE + V-WAIT + V-WAIT-FOR + V-ALARM + V-RUN-OVER + V-CLEAN + V-WHAT + V-WHERE + V-WRAP + V-YELL + V-YES + V-ZORK + .ENDT + +; THE PREACTION CALLING TABLE IS DEFINED HERE + +PATBL:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-PUT + 0 + 0 + 0 + PRE-MUNG + 0 + 0 + PRE-TOUCH + PRE-ENTER + PRE-TOUCH + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-TOUCH + 0 + 0 + 0 + 0 + 0 + 0 + PRE-MUNG + 0 + 0 + 0 + PRE-DRILL + 0 + IDROP + PRE-PUT + PRE-EAT + 0 + PRE-TOUCH + 0 + 0 + PRE-LOOK + 0 + 0 + 0 + PRE-GIVE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-TOUCH + 0 + 0 + 0 + PRE-TOUCH + PRE-TOUCH + 0 + 0 + 0 + PRE-TOUCH + 0 + 0 + PRE-LOOK + PRE-LOOK + PRE-LOOK + PRE-LOOK + PRE-LOOK + PRE-LOOK + 0 + 0 + 0 + 0 + PRE-TOUCH + 0 + PRE-TOUCH + 0 + PRE-TOUCH + 0 + PRE-TAKE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-LOOK + 0 + PRE-TAKE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-SHOOT + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + PRE-TOUCH + 0 + 0 + 0 + 0 + IDROP + IDROP + 0 + 0 + 0 + 0 + PRE-TOUCH + 0 + 0 + 0 + 0 + 0 + PRE-VALIDATE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + + +; PREPOSITION TABLE IS DEFINED HERE + +PRTBL:: .TABLE + .WORD 22 + W?UNDRES + PR?UNDRES + W?DRESSE + PR?DRESSE + W?GO + PR?GO + W?AT + PR?AT + W?BACK + PR?BACK + W?AWAY + PR?AWAY + W?BEHIND + PR?BEHIND + W?AROUND + PR?AROUND + W?OVER + PR?OVER + W?FROM + PR?FROM + W?UNDER + PR?UNDER + W?THROUGH + PR?THROUGH + W?OFF + PR?OFF + W?DOWN + PR?DOWN + W?IN + PR?IN + W?UP + PR?UP + W?OUT + PR?OUT + 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 + 753 +W?$DEBUG:: .ZWORD "$debug" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?$DEBUG + .BYTE 0 +W?$KEY:: .ZWORD "$key" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?$KEY + .BYTE 0 +W?$STATION:: .ZWORD "$stati" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?$STATION + .BYTE 0 +W?$VERIFY:: .ZWORD "$verif" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?$VERIFY + .BYTE 0 +W?12-PRONG:: .ZWORD "12-pro" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?12-PRONG + .BYTE 0 +W?20-PRONG:: .ZWORD "20-pro" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?20-PRONG + .BYTE 0 +W?PERIOD:: .ZWORD "." + .BYTE PS?BUZZ-WORD + .BYTE B?PERIOD + .BYTE 0 +W?COMMA:: .ZWORD "," + .BYTE PS?BUZZ-WORD + .BYTE B?COMMA + .BYTE 0 +W?#COMMAND:: .ZWORD "#comma" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#COMMAND + .BYTE 0 +W?#RANDOM:: .ZWORD "#rando" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#RANDOM + .BYTE 0 +W?#RECORD:: .ZWORD "#recor" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#RECORD + .BYTE 0 +W?#UNRECORD:: .ZWORD "#unrec" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#UNRECORD + .BYTE 0 +W?QUOTE:: .ZWORD """" + .BYTE PS?BUZZ-WORD + .BYTE B?QUOTE + .BYTE 0 +W?A:: .ZWORD "a" + .BYTE PS?BUZZ-WORD + .BYTE B?A + .BYTE 0 +W?ABOUT:: .ZWORD "about" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?ABOUT + .BYTE 0 +W?ACROSS:: .ZWORD "across" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?OVER + .BYTE 0 +W?ACTIVA:: .ZWORD "activa" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ACTIVA + .BYTE ACT?START +W?AFT:: .ZWORD "aft" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 27 + .BYTE A?SOUTH +W?AGAIN:: .ZWORD "again" + .BYTE PS?BUZZ-WORD + .BYTE B?AGAIN + .BYTE 0 +W?AIM:: .ZWORD "aim" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POINT + .BYTE 0 +W?AIR:: .ZWORD "air" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?AIR + .BYTE 0 +W?AIRLOCK:: .ZWORD "airloc" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?AIRLOCK + .BYTE 0 +W?ALIEN:: .ZWORD "alien" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ALIEN + .BYTE 0 +W?ALL:: .ZWORD "all" + .BYTE PS?BUZZ-WORD + .BYTE B?ALL + .BYTE 0 +W?ALL-PURPOSE:: .ZWORD "all-pu" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ALL-PURPOSE + .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?ANSWER:: .ZWORD "answer" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ANSWER + .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?APRICOT:: .ZWORD "aprico" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?APRICOT + .BYTE 0 +W?ARCTURIAN:: .ZWORD "arctur" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ARCTURIAN + .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?AROUND:: .ZWORD "around" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AROUND + .BYTE 0 +W?ASK:: .ZWORD "ask" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ASK + .BYTE 0 +W?ASS:: .ZWORD "ass" + .BYTE PS?BUZZ-WORD + .BYTE B?ASS + .BYTE 0 +W?ASSHOLE:: .ZWORD "asshol" + .BYTE PS?BUZZ-WORD + .BYTE B?ASSHOLE + .BYTE 0 +W?ASSIGNMENT:: .ZWORD "assign" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ASSIGNMENT + .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?CONNECT + .BYTE 0 +W?ATTACK:: .ZWORD "attack" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?ATTRACT:: .ZWORD "attrac" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTRACT + .BYTE 0 +W?AUTHORIZATION:: .ZWORD "author" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?AUTHORIZATION + .BYTE 0 +W?AUTO:: .ZWORD "auto" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?AUTO + .BYTE 0 +W?AUTO-DOOR:: .ZWORD "auto-d" + .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?BACK:: .ZWORD "back" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?BACK + .BYTE 0 +W?BAG:: .ZWORD "bag" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BALLOON:: .ZWORD "balloo" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BALLOON + .BYTE 0 +W?BAND:: .ZWORD "band" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BAND + .BYTE 0 +W?BARE:: .ZWORD "bare" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BARE + .BYTE 0 +W?BASTARD:: .ZWORD "bastar" + .BYTE PS?BUZZ-WORD + .BYTE B?BASTARD + .BYTE 0 +W?BATHTUB:: .ZWORD "bathtu" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BEAM:: .ZWORD "beam" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BEAM + .BYTE 0 +W?BEAST:: .ZWORD "beast" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BEAUTIFUL:: .ZWORD "beauti" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BEAUTIFUL + .BYTE 0 +W?BED:: .ZWORD "bed" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BEDISTOR:: .ZWORD "bedist" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?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?BIN:: .ZWORD "bin" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BIRD:: .ZWORD "bird" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BIT:: .ZWORD "bit" + .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?BLACKENED:: .ZWORD "blacke" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BLACKENED + .BYTE 0 +W?BLAST:: .ZWORD "blast" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHOOT + .BYTE 0 +W?BLINKING:: .ZWORD "blinki" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BLINKING + .BYTE 0 +W?BLOB:: .ZWORD "blob" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BLOW:: .ZWORD "blow" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BLOW + .BYTE 0 +W?BLUE:: .ZWORD "blue" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BLUE + .BYTE 0 +W?BLUEBERRY:: .ZWORD "bluebe" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BLUEBERRY + .BYTE 0 +W?BOARD:: .ZWORD "board" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?BOARD + .BYTE 0 +W?BOARDS:: .ZWORD "boards" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?BOOTS:: .ZWORD "boots" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BOTH:: .ZWORD "both" + .BYTE PS?BUZZ-WORD + .BYTE B?ALL + .BYTE 0 +W?BOTTLE:: .ZWORD "bottle" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BOWL:: .ZWORD "bowl" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BOX:: .ZWORD "box" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BOXES:: .ZWORD "boxes" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BREAK:: .ZWORD "break" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEMOLI + .BYTE 0 +W?BRIEF:: .ZWORD "brief" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BRIEF + .BYTE 0 +W?BROTH:: .ZWORD "broth" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BROWSE:: .ZWORD "browse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?READ + .BYTE 0 +W?BURN:: .ZWORD "burn" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BURN + .BYTE 0 +W?BUSH:: .ZWORD "bush" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BUSH + .BYTE 0 +W?BUSHES:: .ZWORD "bushes" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?BUSHES + .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?CAGE:: .ZWORD "cage" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CALL:: .ZWORD "call" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CALL + .BYTE ACT?CALL +W?CAN:: .ZWORD "can" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CARBON:: .ZWORD "carbon" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CARBON + .BYTE 0 +W?CARD:: .ZWORD "card" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CARDS:: .ZWORD "cards" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CARNIVOROUS:: .ZWORD "carniv" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CARNIVOROUS + .BYTE 0 +W?CARRY:: .ZWORD "carry" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?CATCH:: .ZWORD "catch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CATCH + .BYTE 0 +W?CEILIN:: .ZWORD "ceilin" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CEILIN + .BYTE 0 +W?CELL:: .ZWORD "cell" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CELLS:: .ZWORD "cells" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CELLS + .BYTE 0 +W?CHAIR:: .ZWORD "chair" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CHAMBER:: .ZWORD "chambe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CHASE:: .ZWORD "chase" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOLLOW + .BYTE 0 +W?CHRONOMETER:: .ZWORD "chrono" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CIRCLE:: .ZWORD "circle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CIRCLE + .BYTE 0 +W?CLAP:: .ZWORD "clap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?APPLAUD + .BYTE 0 +W?CLASS:: .ZWORD "class" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CLASS + .BYTE 0 +W?CLEAN:: .ZWORD "clean" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WASH + .BYTE 0 +W?CLIMB:: .ZWORD "climb" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLIMB + .BYTE 0 +W?CLOSE:: .ZWORD "close" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLOSE + .BYTE 0 +W?COCK:: .ZWORD "cock" + .BYTE PS?BUZZ-WORD + .BYTE B?COCK + .BYTE 0 +W?COCKSU:: .ZWORD "cocksu" + .BYTE PS?BUZZ-WORD + .BYTE B?COCKSU + .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?COMFORT + .BYTE 0 +W?COMPLETION:: .ZWORD "comple" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COMPLETION + .BYTE 0 +W?COMPUTER:: .ZWORD "comput" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COMPUTER + .BYTE 0 +W?CONNECT:: .ZWORD "connec" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CONNECT + .BYTE 0 +W?CONTROL:: .ZWORD "contro" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CONTROL + .BYTE 0 +W?COPILOT:: .ZWORD "copilo" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?COPILOT + .BYTE 0 +W?COUNT:: .ZWORD "count" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?COUNT + .BYTE 0 +W?COUNTER:: .ZWORD "counte" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?COVER:: .ZWORD "cover" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?COVER + .BYTE 0 +W?CREAM:: .ZWORD "cream" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CREAMY:: .ZWORD "creamy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CREAMY + .BYTE 0 +W?CREATURE:: .ZWORD "creatu" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CREATURE + .BYTE 0 +W?CREW:: .ZWORD "crew" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CROSS:: .ZWORD "cross" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CROSS + .BYTE 0 +W?CRUMPLED:: .ZWORD "crumpl" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CRUMPLED + .BYTE 0 +W?CUBICLE:: .ZWORD "cubicl" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CUNT:: .ZWORD "cunt" + .BYTE PS?BUZZ-WORD + .BYTE B?CUNT + .BYTE 0 +W?CUP:: .ZWORD "cup" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CUSTARD:: .ZWORD "custar" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CUT:: .ZWORD "cut" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SLICE + .BYTE 0 +W?CYLIND:: .ZWORD "cylind" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?CYLIND + .BYTE 0 +W?D:: .ZWORD "d" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?DOWN + .BYTE 22 +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?DEACTIVATE:: .ZWORD "deacti" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXTINGUISH + .BYTE 0 +W?DEBARK:: .ZWORD "debark" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DISEMBARK + .BYTE 0 +W?DECK:: .ZWORD "deck" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?DESK:: .ZWORD "desk" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DESTRO:: .ZWORD "destro" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEMOLI + .BYTE 0 +W?DETACH:: .ZWORD "detach" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DISCONNECT + .BYTE 0 +W?DETECTOR:: .ZWORD "detect" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DETONATOR:: .ZWORD "detona" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DEVOUR:: .ZWORD "devour" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?DIAGNO:: .ZWORD "diagno" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DIAGNO + .BYTE ACT?DIAGNO +W?DIAL:: .ZWORD "dial" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?DIARY:: .ZWORD "diary" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DICE:: .ZWORD "dice" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DIG:: .ZWORD "dig" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DIG + .BYTE 0 +W?DIODE:: .ZWORD "diode" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DIODES:: .ZWORD "diodes" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DIOXIDE:: .ZWORD "dioxid" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DIRECT:: .ZWORD "direct" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DIRTY:: .ZWORD "dirty" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DIRTY + .BYTE 0 +W?DISCONNECT:: .ZWORD "discon" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DISCONNECT + .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?DISPEN:: .ZWORD "dispen" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DISPEN + .BYTE 0 +W?DIVE:: .ZWORD "dive" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?DOME:: .ZWORD "dome" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?DOT:: .ZWORD "dot" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DOTS:: .ZWORD "dots" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DOWN:: .ZWORD "down" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?DOWN + .BYTE 22 +W?DOWNSTAIRS:: .ZWORD "downst" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?DOWN + .BYTE 22 +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?DRILL:: .ZWORD "drill" + .BYTE PS?OBJECT+PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?DRILL + .BYTE ACT?DRILL +W?DRINK:: .ZWORD "drink" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?DROP:: .ZWORD "drop" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DROP + .BYTE 0 +W?DRYER:: .ZWORD "dryer" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DUMP:: .ZWORD "dump" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DROP + .BYTE 0 +W?E:: .ZWORD "e" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 29 + .BYTE A?EAST +W?EAST:: .ZWORD "east" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 29 + .BYTE A?EAST +W?EAT:: .ZWORD "eat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?ELEVATOR:: .ZWORD "elevat" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ELEVATOR + .BYTE 0 +W?EMPTY:: .ZWORD "empty" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EMPTY + .BYTE 0 +W?ENTER:: .ZWORD "enter" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ENTER + .BYTE 0 +W?ENTRY:: .ZWORD "entry" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ENTRY + .BYTE 0 +W?EQUIPMENT:: .ZWORD "equipm" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ETERNAL:: .ZWORD "eterna" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ETERNAL + .BYTE 0 +W?EVERYBODY:: .ZWORD "everyb" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?EVERYONE:: .ZWORD "everyo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?EXERCISE:: .ZWORD "exerci" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?EXERCISE + .BYTE ACT?EXERCISE +W?EXIT:: .ZWORD "exit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXIT + .BYTE 0 +W?EXOTIC:: .ZWORD "exotic" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?EXOTIC + .BYTE 0 +W?EXPLOSIVE:: .ZWORD "explos" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?EXTINGUISH:: .ZWORD "exting" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXTINGUISH + .BYTE 0 +W?EYE-CATCHING:: .ZWORD "eye-ca" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?EYE-CATCHING + .BYTE 0 +W?F:: .ZWORD "f" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 31 + .BYTE A?NORTH +W?FABRICATION:: .ZWORD "fabric" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FABRICATION + .BYTE 0 +W?FDU:: .ZWORD "fdu" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?FIGHT:: .ZWORD "fight" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?FILL:: .ZWORD "fill" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FILL + .BYTE 0 +W?FIND:: .ZWORD "find" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FIND + .BYTE 0 +W?FINGER:: .ZWORD "finger" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FIRE:: .ZWORD "fire" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FIRE + .BYTE ACT?SHOOT +W?FIRST:: .ZWORD "first" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FIRST + .BYTE 0 +W?FLAME:: .ZWORD "flame" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FLATTEN:: .ZWORD "flatte" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FLATTEN + .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?FLOYD:: .ZWORD "floyd" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FOIL:: .ZWORD "foil" + .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+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FOOD + .BYTE 0 +W?FOR:: .ZWORD "for" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?FOR + .BYTE 0 +W?FORD:: .ZWORD "ford" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CROSS + .BYTE 0 +W?FORE:: .ZWORD "fore" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 31 + .BYTE A?NORTH +W?FORM:: .ZWORD "form" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FORM + .BYTE 0 +W?FORMS:: .ZWORD "forms" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FPU:: .ZWORD "fpu" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FREZONE:: .ZWORD "frezon" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FREZONE + .BYTE 0 +W?FROM:: .ZWORD "from" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?FROM + .BYTE 0 +W?FROMITZ:: .ZWORD "fromit" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FROMITZ + .BYTE 0 +W?FUCK:: .ZWORD "fuck" + .BYTE PS?BUZZ-WORD + .BYTE B?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?FUSOR:: .ZWORD "fusor" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?FUSOR + .BYTE 0 +W?FW-83-Q:: .ZWORD "fw-83-" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?G:: .ZWORD "g" + .BYTE PS?BUZZ-WORD + .BYTE B?G + .BYTE 0 +W?GALAKMID:: .ZWORD "galakm" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GAME:: .ZWORD "game" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GAMES:: .ZWORD "games" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GARDEN:: .ZWORD "garden" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?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?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?GOO:: .ZWORD "goo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GRAB:: .ZWORD "grab" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAKE + .BYTE 0 +W?GRATE:: .ZWORD "grate" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GRATING:: .ZWORD "gratin" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GRAY:: .ZWORD "gray" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GRAY + .BYTE 0 +W?GREEN:: .ZWORD "green" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GREEN + .BYTE 0 +W?GREET:: .ZWORD "greet" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GREET + .BYTE 0 +W?GREY:: .ZWORD "grey" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?GREY + .BYTE 0 +W?GROUND:: .ZWORD "ground" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GRUE:: .ZWORD "grue" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GUN:: .ZWORD "gun" + .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?HATCH:: .ZWORD "hatch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HB-56-V:: .ZWORD "hb-56-" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HEADLAMP:: .ZWORD "headla" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HEAR:: .ZWORD "hear" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HEAR + .BYTE 0 +W?HEATING:: .ZWORD "heatin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HEATING + .BYTE 0 +W?HEAVY:: .ZWORD "heavy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HEAVY + .BYTE 0 +W?HELEN:: .ZWORD "helen" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?HERE:: .ZWORD "here" + .BYTE PS?BUZZ-WORD + .BYTE B?HERE + .BYTE 0 +W?HI:: .ZWORD "hi" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HELLO + .BYTE 0 +W?HIDE:: .ZWORD "hide" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HIDE + .BYTE 0 +W?HIDER:: .ZWORD "hider" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?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?HOLDING:: .ZWORD "holdin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HOLDING + .BYTE 0 +W?HOLE:: .ZWORD "hole" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOP:: .ZWORD "hop" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SKIP + .BYTE 0 +W?HOUSING:: .ZWORD "housin" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HUCKA:: .ZWORD "hucka" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HUG:: .ZWORD "hug" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HUG + .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?HULL:: .ZWORD "hull" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?HULL + .BYTE 0 +W?HURL:: .ZWORD "hurl" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?THROW + .BYTE 0 +W?HYPERDIODE:: .ZWORD "hyperd" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?I:: .ZWORD "i" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?INVENT + .BYTE 0 +W?ICE:: .ZWORD "ice" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ICE + .BYTE 0 +W?ID:: .ZWORD "id" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ID + .BYTE 0 +W?IDENTIFICATION:: .ZWORD "identi" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?IDENTIFICATION + .BYTE 0 +W?ILLEGAL:: .ZWORD "illega" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ILLEGAL + .BYTE 0 +W?IN:: .ZWORD "in" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?IN + .BYTE 21 +W?INGEST:: .ZWORD "ingest" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .BYTE 0 +W?INNER:: .ZWORD "inner" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?INNER + .BYTE 0 +W?INNOCUOUS:: .ZWORD "innocu" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?INNOCUOUS + .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?INSTRUCTION:: .ZWORD "instru" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?INSTRUCTION + .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?IRIS:: .ZWORD "iris" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?IRIS + .BYTE 0 +W?IRON:: .ZWORD "iron" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUSH + .BYTE 0 +W?IRONED:: .ZWORD "ironed" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?IRONED + .BYTE 0 +W?IS:: .ZWORD "is" + .BYTE PS?BUZZ-WORD + .BYTE B?IS + .BYTE 0 +W?ISOLATION:: .ZWORD "isolat" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ISOLATION + .BYTE 0 +W?IT:: .ZWORD "it" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?J:: .ZWORD "j" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?J + .BYTE 0 +W?J-SERIES:: .ZWORD "j-seri" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?J-SERIES + .BYTE 0 +W?JAMMER:: .ZWORD "jammer" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?JUMP:: .ZWORD "jump" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?JZ-59-G:: .ZWORD "jz-59-" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KEY:: .ZWORD "key" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KEYPAD:: .ZWORD "keypad" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KICK:: .ZWORD "kick" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KICK + .BYTE 0 +W?KILL:: .ZWORD "kill" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?KISS:: .ZWORD "kiss" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KISS + .BYTE 0 +W?KIT:: .ZWORD "kit" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KNOCK:: .ZWORD "knock" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KNOCK + .BYTE 0 +W?KRIP:: .ZWORD "krip" + .BYTE PS?BUZZ-WORD + .BYTE B?KRIP + .BYTE 0 +W?L:: .ZWORD "l" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOOK + .BYTE 0 +W?LABEL:: .ZWORD "label" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LADDER:: .ZWORD "ladder" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LAMP:: .ZWORD "lamp" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?LAUNCH:: .ZWORD "launch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LAUNCH + .BYTE 0 +W?LEAD:: .ZWORD "lead" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MOVE + .BYTE 0 +W?LEAP:: .ZWORD "leap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?LEASH:: .ZWORD "leash" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LEAVE:: .ZWORD "leave" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LEAVE + .BYTE 0 +W?LET:: .ZWORD "let" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LET + .BYTE 0 +W?LETTER:: .ZWORD "letter" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LICK:: .ZWORD "lick" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TASTE + .BYTE 0 +W?LIE:: .ZWORD "lie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LIE + .BYTE 0 +W?LIFT:: .ZWORD "lift" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAISE + .BYTE 0 +W?LIGHT:: .ZWORD "light" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?LIGHT + .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?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?LOCK + .BYTE 0 +W?LOCKER:: .ZWORD "locker" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LOG:: .ZWORD "log" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LOG + .BYTE 0 +W?LOOK:: .ZWORD "look" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LOOK + .BYTE 0 +W?LOWER:: .ZWORD "lower" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LOWER + .BYTE ACT?LOWER +W?LURKING:: .ZWORD "lurkin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LURKING + .BYTE 0 +W?M:: .ZWORD "m" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?M + .BYTE 0 +W?M-SERIES:: .ZWORD "m-seri" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?M-SERIES + .BYTE 0 +W?MACHIN:: .ZWORD "machin" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MACHIN + .BYTE 0 +W?MAGAZINE:: .ZWORD "magazi" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MAGNETIC:: .ZWORD "magnet" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MAGNETIC + .BYTE 0 +W?MASSIVE:: .ZWORD "massiv" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?MAUVE:: .ZWORD "mauve" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MAUVE + .BYTE 0 +W?MAYBE:: .ZWORD "maybe" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MAYBE + .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?MEDIUM:: .ZWORD "medium" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MEDIUM + .BYTE 0 +W?MEGAKRIP:: .ZWORD "megakr" + .BYTE PS?BUZZ-WORD + .BYTE B?MEGAKRIP + .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?MINE:: .ZWORD "mine" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MY + .BYTE 0 +W?MONITOR:: .ZWORD "monito" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MONITOR + .BYTE 0 +W?MORE:: .ZWORD "more" + .BYTE PS?BUZZ-WORD + .BYTE B?MORE + .BYTE 0 +W?MOVE:: .ZWORD "move" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MOVE + .BYTE 0 +W?MULTIP:: .ZWORD "multip" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?MULTIP + .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?DIRECTION + .BYTE 31 + .BYTE A?NORTH +W?NAH:: .ZWORD "nah" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?NO + .BYTE 0 +W?NANOFILM:: .ZWORD "nanofi" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NANOFILM + .BYTE 0 +W?NAP:: .ZWORD "nap" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?SLEEP + .BYTE 0 +W?NAUTILUS:: .ZWORD "nautil" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NAUTILUS + .BYTE 0 +W?NE:: .ZWORD "ne" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 30 + .BYTE A?NE +W?NEATLY:: .ZWORD "neatly" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NEATLY + .BYTE 0 +W?NECTAR:: .ZWORD "nectar" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NIBBLE:: .ZWORD "nibble" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TASTE + .BYTE 0 +W?NIP:: .ZWORD "nip" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?DIRECTION + .BYTE 31 + .BYTE A?NORTH +W?NORTHE:: .ZWORD "northe" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 30 + .BYTE A?NE +W?NORTHWEST:: .ZWORD "northw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 24 + .BYTE A?NW +W?NOTATION:: .ZWORD "notati" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NOTE:: .ZWORD "note" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NOTEBOOK:: .ZWORD "notebo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NUMBER:: .ZWORD "number" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?NUMBER + .BYTE 0 +W?NW:: .ZWORD "nw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 24 + .BYTE A?NW +W?OBSERVE:: .ZWORD "observ" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .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?OHM:: .ZWORD "ohm" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?OHM + .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?OLIVER:: .ZWORD "oliver" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ON:: .ZWORD "on" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?ON + .BYTE 0 +W?ONE:: .ZWORD "one" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?OSTRICH:: .ZWORD "ostric" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?OSTRICH + .BYTE 0 +W?OUT:: .ZWORD "out" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?OUT + .BYTE 20 +W?OUTER:: .ZWORD "outer" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?OUTER + .BYTE 0 +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?P:: .ZWORD "p" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 25 + .BYTE A?WEST +W?PAIR:: .ZWORD "pair" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PALLET:: .ZWORD "pallet" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PANEL:: .ZWORD "panel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PAPER:: .ZWORD "paper" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PAT:: .ZWORD "pat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?PATROL:: .ZWORD "patrol" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PATROL + .BYTE 0 +W?PEDESTAL:: .ZWORD "pedest" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PET:: .ZWORD "pet" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?TOUCH + .BYTE 0 +W?PICK:: .ZWORD "pick" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PICK + .BYTE 0 +W?PIECE:: .ZWORD "piece" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PILOT:: .ZWORD "pilot" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PILOT + .BYTE 0 +W?PLACE:: .ZWORD "place" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?STICK + .BYTE 0 +W?PLANTS:: .ZWORD "plants" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PLASTIC:: .ZWORD "plasti" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PLASTIC + .BYTE 0 +W?PLATINUM:: .ZWORD "platin" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PLATINUM + .BYTE 0 +W?PLATO:: .ZWORD "plato" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PLATO + .BYTE 0 +W?PLAY:: .ZWORD "play" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PLAY + .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?PLUG + .BYTE 0 +W?POCKET:: .ZWORD "pocket" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?POETRY:: .ZWORD "poetry" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?POETRY + .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?POP:: .ZWORD "pop" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DEMOLI + .BYTE 0 +W?PORT:: .ZWORD "port" + .BYTE PS?OBJECT+PS?ADJECTIVE+PS?DIRECTION+P1?ADJECTIVE + .BYTE A?WEST + .BYTE 25 +W?POSTER:: .ZWORD "poster" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?POUR:: .ZWORD "pour" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?POUR + .BYTE 0 +W?PRAY:: .ZWORD "pray" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PRAY + .BYTE 0 +W?PRESS:: .ZWORD "press" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUSH + .BYTE 0 +W?PRESSER:: .ZWORD "presse" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PROCEE:: .ZWORD "procee" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?PROCESSING:: .ZWORD "proces" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PROCESSING + .BYTE 0 +W?PROJECTION:: .ZWORD "projec" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PROJECTION + .BYTE 0 +W?PRONG:: .ZWORD "prong" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PRONG + .BYTE 0 +W?PRONGS:: .ZWORD "prongs" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?PUCE:: .ZWORD "puce" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PUCE + .BYTE 0 +W?PULL:: .ZWORD "pull" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MOVE + .BYTE 0 +W?PULPIT:: .ZWORD "pulpit" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PURPOS:: .ZWORD "purpos" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?PURPOS + .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?PUT:: .ZWORD "put" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STICK + .BYTE 0 +W?PYRAMID:: .ZWORD "pyrami" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?QX-17-T:: .ZWORD "qx-17-" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RADIO:: .ZWORD "radio" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RAISE:: .ZWORD "raise" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RAISE + .BYTE 0 +W?RAMOSIAN:: .ZWORD "ramosi" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RAMOSIAN + .BYTE 0 +W?RAP:: .ZWORD "rap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KNOCK + .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?READER:: .ZWORD "reader" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?REC:: .ZWORD "rec" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?REC + .BYTE 0 +W?RECENT:: .ZWORD "recent" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RECENT + .BYTE 0 +W?RECORDER:: .ZWORD "record" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RED:: .ZWORD "red" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?RED + .BYTE 0 +W?REFLECTIVE:: .ZWORD "reflec" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?REFLECTIVE + .BYTE 0 +W?RELEASE:: .ZWORD "releas" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DROP + .BYTE 0 +W?REMOVE:: .ZWORD "remove" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?REMOVE + .BYTE 0 +W?REPAIR:: .ZWORD "repair" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?REPAIR + .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?REX:: .ZWORD "rex" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?ROCK-:: .ZWORD "rock-" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ROCK- + .BYTE 0 +W?ROLL:: .ZWORD "roll" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ROLL + .BYTE 0 +W?ROOF:: .ZWORD "roof" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ROOF + .BYTE 0 +W?ROOM:: .ZWORD "room" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ROTATE:: .ZWORD "rotate" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?ROULETTE:: .ZWORD "roulet" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?ROULETTE + .BYTE 0 +W?ROUSE:: .ZWORD "rouse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAKE + .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?S:: .ZWORD "s" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 27 + .BYTE A?SOUTH +W?SAFE:: .ZWORD "safe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?SB:: .ZWORD "sb" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 29 + .BYTE A?EAST +W?SCALE:: .ZWORD "scale" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLIMB + .BYTE 0 +W?SCARE:: .ZWORD "scare" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCARE + .BYTE 0 +W?SCOLD:: .ZWORD "scold" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCOLD + .BYTE 0 +W?SCORE:: .ZWORD "score" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCORE + .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?SCREEN:: .ZWORD "screen" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SCRIPT:: .ZWORD "script" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCRIPT + .BYTE 0 +W?SE:: .ZWORD "se" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 28 + .BYTE A?SE +W?SEAL:: .ZWORD "seal" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLOSE + .BYTE 0 +W?SEARCH:: .ZWORD "search" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SEARCH + .BYTE 0 +W?SEAT:: .ZWORD "seat" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SECOND:: .ZWORD "second" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SECOND + .BYTE 0 +W?SECURITY:: .ZWORD "securi" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SECURITY + .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?SERIES:: .ZWORD "series" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SERIES + .BYTE 0 +W?SET:: .ZWORD "set" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?SEVEN:: .ZWORD "seven" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SEVEN + .BYTE 0 +W?SHAFT:: .ZWORD "shaft" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SHAFT + .BYTE 0 +W?SHAKE:: .ZWORD "shake" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHAKE + .BYTE 0 +W?SHEET:: .ZWORD "sheet" + .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?BUZZ-WORD + .BYTE B?SHIT + .BYTE 0 +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?SHOOT:: .ZWORD "shoot" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHOOT + .BYTE 0 +W?SHOP:: .ZWORD "shop" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHORT:: .ZWORD "short" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SHORT + .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?SHOWER:: .ZWORD "shower" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHRUBBERY:: .ZWORD "shrubb" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHRUBS:: .ZWORD "shrubs" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SHUT:: .ZWORD "shut" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CLOSE + .BYTE 0 +W?SIDLE:: .ZWORD "sidle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?SIGN:: .ZWORD "sign" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SIMULATION:: .ZWORD "simula" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SIMULATION + .BYTE 0 +W?SINK:: .ZWORD "sink" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SINK + .BYTE 0 +W?SINKS:: .ZWORD "sinks" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SINKS + .BYTE 0 +W?SIT:: .ZWORD "sit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SIT + .BYTE 0 +W?SKELETON:: .ZWORD "skelet" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?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?SLICE:: .ZWORD "slice" + .BYTE 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?SMELL:: .ZWORD "smell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SMELL + .BYTE 0 +W?SNEEZE:: .ZWORD "sneeze" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ZORK + .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?SOCKETS:: .ZWORD "socket" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SOME:: .ZWORD "some" + .BYTE PS?BUZZ-WORD + .BYTE B?SOME + .BYTE 0 +W?SOUP:: .ZWORD "soup" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SOUTH:: .ZWORD "south" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 27 + .BYTE A?SOUTH +W?SOUTHE:: .ZWORD "southe" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 28 + .BYTE A?SE +W?SOUTHWEST:: .ZWORD "southw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 26 + .BYTE A?SW +W?SPACE:: .ZWORD "space" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SPACE + .BYTE 0 +W?SPACEBOOTS:: .ZWORD "spaceb" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SPACECRAFT:: .ZWORD "spacec" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SPACECRAFT + .BYTE 0 +W?SPACETRUCK:: .ZWORD "spacet" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SPACETRUCK + .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?SPINDLY:: .ZWORD "spindl" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SPINDLY + .BYTE 0 +W?SPOOL:: .ZWORD "spool" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SPOT:: .ZWORD "spot" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SPOTS:: .ZWORD "spots" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SPRAY:: .ZWORD "spray" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SPRAY + .BYTE ACT?SPRAY +W?STAB:: .ZWORD "stab" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ATTACK + .BYTE 0 +W?STALL:: .ZWORD "stall" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STALLS:: .ZWORD "stalls" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STAMP:: .ZWORD "stamp" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?VALIDA + .BYTE 0 +W?STAND:: .ZWORD "stand" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STAND + .BYTE 0 +W?STAR:: .ZWORD "star" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STARBOARD:: .ZWORD "starbo" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 29 + .BYTE A?EAST +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?SCORE + .BYTE 0 +W?STEP:: .ZWORD "step" + .BYTE 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?STOP:: .ZWORD "stop" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EXTINGUISH + .BYTE 0 +W?STORE:: .ZWORD "store" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STRAIGHTEN:: .ZWORD "straig" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FLATTEN + .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?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?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?STUN:: .ZWORD "stun" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STUN + .BYTE 0 +W?STURDY:: .ZWORD "sturdy" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?STURDY + .BYTE 0 +W?SUIT:: .ZWORD "suit" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SUPER:: .ZWORD "super" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SUPER + .BYTE 0 +W?SUPERBRIEF:: .ZWORD "superb" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SUPER + .BYTE 0 +W?SURE:: .ZWORD "sure" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?SURVIVAL:: .ZWORD "surviv" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SURVIVAL + .BYTE 0 +W?SW:: .ZWORD "sw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 26 + .BYTE A?SW +W?SWALLOW:: .ZWORD "swallo" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?EAT + .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?SYSTEM:: .ZWORD "system" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SYSTEM + .BYTE 0 +W?T:: .ZWORD "t" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIME + .BYTE 0 +W?TAFFY:: .ZWORD "taffy" + .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?TANK:: .ZWORD "tank" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TAP:: .ZWORD "tap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TAP + .BYTE 0 +W?TAPE:: .ZWORD "tape" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TASTE:: .ZWORD "taste" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TASTE + .BYTE 0 +W?TELL:: .ZWORD "tell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TELL + .BYTE 0 +W?TERMINAL:: .ZWORD "termin" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TEXT:: .ZWORD "text" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TEXT + .BYTE 0 +W?TEXTBOOK:: .ZWORD "textbo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?THICK:: .ZWORD "thick" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?THICK + .BYTE 0 +W?THIRD:: .ZWORD "third" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?THIRD + .BYTE 0 +W?THIS:: .ZWORD "this" + .BYTE PS?BUZZ-WORD + .BYTE B?THIS + .BYTE 0 +W?THREE:: .ZWORD "three" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?THREE + .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?TICKLE:: .ZWORD "tickle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TICKLE + .BYTE 0 +W?TIE:: .ZWORD "tie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIE + .BYTE 0 +W?TIME:: .ZWORD "time" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIME + .BYTE 0 +W?TIMER:: .ZWORD "timer" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TINIER:: .ZWORD "tinier" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 +W?TINY:: .ZWORD "tiny" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?SMALL + .BYTE 0 +W?TO:: .ZWORD "to" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?TO + .BYTE 0 +W?TOILET:: .ZWORD "toilet" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TOILET + .BYTE 0 +W?TOME:: .ZWORD "tome" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TONGUE:: .ZWORD "tongue" + .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?TOWERING:: .ZWORD "toweri" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TOWERING + .BYTE 0 +W?TRANS-MOLECULAR:: .ZWORD "trans-" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TRANS-MOLECULAR + .BYTE 0 +W?TRANSL:: .ZWORD "transl" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TRANSL + .BYTE 0 +W?TRANSPARENT:: .ZWORD "transp" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TRANSPARENT + .BYTE 0 +W?TRAP:: .ZWORD "trap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?CATCH + .BYTE 0 +W?TRASH:: .ZWORD "trash" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TRASH + .BYTE 0 +W?TREMENDOUS:: .ZWORD "tremen" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?LARGE + .BYTE 0 +W?TROT:: .ZWORD "trot" + .BYTE PS?BUZZ-WORD + .BYTE B?TROT + .BYTE 0 +W?TROTTING:: .ZWORD "trotti" + .BYTE PS?BUZZ-WORD + .BYTE B?TROTTING + .BYTE 0 +W?TRUCK:: .ZWORD "truck" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TUB:: .ZWORD "tub" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TUB + .BYTE 0 +W?TUBS:: .ZWORD "tubs" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TUBS + .BYTE 0 +W?TURN:: .ZWORD "turn" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TURN + .BYTE 0 +W?TWELVE:: .ZWORD "twelve" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TWELVE + .BYTE 0 +W?TWENTY:: .ZWORD "twenty" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?TWENTY + .BYTE 0 +W?TWO:: .ZWORD "two" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TYPE:: .ZWORD "type" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TYPE + .BYTE 0 +W?U:: .ZWORD "u" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?UP + .BYTE 23 +W?UH-UH:: .ZWORD "uh-uh" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?NO + .BYTE 0 +W?UNCRUMPLE:: .ZWORD "uncrum" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FLATTEN + .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?UNIFORM:: .ZWORD "unifor" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?UNIT:: .ZWORD "unit" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?UNLOCK:: .ZWORD "unlock" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNLOCK + .BYTE 0 +W?UNPLUG:: .ZWORD "unplug" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DISCONNECT + .BYTE 0 +W?UNSCRIPT:: .ZWORD "unscri" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNSCRIPT + .BYTE 0 +W?UNSEAL:: .ZWORD "unseal" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?OPEN + .BYTE 0 +W?UNTIE:: .ZWORD "untie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTIE + .BYTE 0 +W?UP:: .ZWORD "up" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?UP + .BYTE 23 +W?UPPER:: .ZWORD "upper" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?UPPER + .BYTE 0 +W?UPSTAIRS:: .ZWORD "upstai" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?OBJECT + .BYTE PR?UP + .BYTE 23 +W?USE:: .ZWORD "use" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?USE + .BYTE ACT?USE +W?USING:: .ZWORD "using" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?WITH + .BYTE 0 +W?VACUUM:: .ZWORD "vacuum" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VACUUM + .BYTE 0 +W?VALIDA:: .ZWORD "valida" + .BYTE PS?VERB+PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VALIDA + .BYTE ACT?VALIDA +W?VAULT:: .ZWORD "vault" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?JUMP + .BYTE 0 +W?VENDIN:: .ZWORD "vendin" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VENDIN + .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?VICIOUS:: .ZWORD "viciou" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VICIOUS + .BYTE 0 +W?VIEW:: .ZWORD "view" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VIEW + .BYTE 0 +W?VIEWPORT:: .ZWORD "viewpo" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?VILLAGE:: .ZWORD "villag" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?VILLAGE + .BYTE 0 +W?VOLUME:: .ZWORD "volume" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?W:: .ZWORD "w" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 25 + .BYTE A?WEST +W?WAIT:: .ZWORD "wait" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAIT + .BYTE 0 +W?WAKE:: .ZWORD "wake" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WAKE + .BYTE 0 +W?WALK:: .ZWORD "walk" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WALK + .BYTE 0 +W?WALL:: .ZWORD "wall" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?WALLS:: .ZWORD "walls" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?WARDROBE:: .ZWORD "wardro" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?WASH:: .ZWORD "wash" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WASH + .BYTE 0 +W?WATCH:: .ZWORD "watch" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?EXAMINE + .BYTE 0 +W?WEAR:: .ZWORD "wear" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WEAR + .BYTE 0 +W?WELDER:: .ZWORD "welder" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?WEST:: .ZWORD "west" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 25 + .BYTE A?WEST +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?WHEEL:: .ZWORD "wheel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?WHIFF:: .ZWORD "whiff" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SMELL + .BYTE 0 +W?WHO:: .ZWORD "who" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WHAT + .BYTE 0 +W?WHOS:: .ZWORD "whos" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WHAT + .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?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?WRINKLED:: .ZWORD "wrinkl" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WRINKLED + .BYTE 0 +W?WRIST:: .ZWORD "wrist" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?WRIST + .BYTE 0 +W?WRISTWATCH:: .ZWORD "wristw" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?Y:: .ZWORD "y" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?YELL:: .ZWORD "yell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YELL + .BYTE 0 +W?YELLOW:: .ZWORD "yellow" + .BYTE PS?ADJECTIVE+P1?ADJECTIVE + .BYTE A?YELLOW + .BYTE 0 +W?YES:: .ZWORD "yes" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YES + .BYTE 0 +W?YOGURT:: .ZWORD "yogurt" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .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?ZAP:: .ZWORD "zap" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SHOOT + .BYTE 0 +W?ZAPGUN:: .ZWORD "zapgun" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ZORK:: .ZWORD "zork" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ZORK + .BYTE 0 +W?ZZMGCK:: .ZWORD "zzmgck" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 + .ENDT + + +; END LOAD + +ENDLOD:: + + + .ENDI diff --git a/s6pur.zap b/s6pur.zap new file mode 100644 index 0000000..2cfed8d --- /dev/null +++ b/s6pur.zap @@ -0,0 +1,167 @@ + + +; PURE TABLES ARE DEFINED HERE + +PURTBL:: + +PT?1:: +PT?15:: .TABLE + 6 + W?FORM + 0 + BOXED-FORMS-F + W?FORMS + 0 + BOXED-FORMS-F + .ENDT + +PT?2:: .TABLE + 12 + W?SLOT + 0 + SLOT-F + W?BIN + W?FIRST + BIN-F + W?BIN + W?SECOND + BIN-F + W?BIN + W?THIRD + BIN-F + .ENDT + +PT?3:: .TABLE + 6 + W?SLOT + 0 + SLOT-F + W?BUTTON + W?RED + RED-BUTTON-F + .ENDT + +PT?4:: .TABLE + 9 + W?SCREEN + W?DISPEN + DISPENSER-SCREEN-F + W?SLOT + W?COIN + COIN-SLOT-F + W?HOLE + W?DISPEN + DISPENSER-HOLE-F + .ENDT + +PT?5:: .TABLE + 6 + W?CELL + W?CELLS + CELL-F + W?LOCK + 0 + BRIG-LOCK-F + .ENDT + +PT?6:: +PT?10:: .TABLE + 3 + W?SLOT + 0 + SLOT-F + .ENDT + +PT?7:: .TABLE + 3 + W?BUTTON + W?RED + COMM-BUTTON-F + .ENDT + +PT?8:: .TABLE + 3 + W?BUTTON + W?RED + LOG-READER-BUTTON-F + .ENDT + +PT?9:: .TABLE + 3 + W?DIAL + 0 + DIAL-F + .ENDT + +PT?11:: .TABLE + 3 + W?SEAT + 0 + THEATRE-SEAT-F + .ENDT + +PT?12:: .TABLE + 3 + W?DOME + W?TRANSPARENT + DOME-OBJECT-F + .ENDT + +PT?13:: +PT?14:: .TABLE + 6 + W?SHIP + W?ALIEN + ALIEN-SHIP-PSEUDO-F + W?SHIP + W?SPACE + ALIEN-SHIP-PSEUDO-F + .ENDT + +PT?16:: .TABLE + 3 + W?BOX + W?CONTROL + CONTROL-BOX-F + .ENDT + +PT?17:: .TABLE + 6 + W?SHOP + W?REC + REC-SHOP-OBJECT-F + W?AREA + W?REC + REC-SHOP-OBJECT-F + .ENDT + +PT?18:: .TABLE + 3 + W?POSTER + 0 + RECRUITMENT-POSTER-F + .ENDT + +PT?19:: .TABLE + 3 + W?POSTER + 0 + TRAVEL-AGENCY-POSTER-F + .ENDT + +PT?20:: .TABLE + 3 + W?HOLE + W?SMALL + DOC-HOLE-F + .ENDT + +PT?21:: .TABLE + 3 + W?SLOT + 0 + ID-CHANGER-SLOT-F + .ENDT + +PURTND:: + .ENDI diff --git a/s6str.zap b/s6str.zap new file mode 100644 index 0000000..88c3d98 --- /dev/null +++ b/s6str.zap @@ -0,0 +1,433 @@ + + +; 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,"begins" + .GSTR STR?9,"ends" + .GSTR STR?10,"leave the game" + .GSTR STR?11,"restart" + .GSTR STR?12,"Biting" + .GSTR STR?13,"climb into" + .GSTR STR?14,"climb onto" + .GSTR STR?15,"close" + .GSTR STR?16,"disconnect the timer" + .GSTR STR?17,"disconnect the explosive" + .GSTR STR?18,"dress" + .GSTR STR?19,"open" + .GSTR STR?20,"get onto" + .GSTR STR?21,"get into" + .GSTR STR?22,"look" + .GSTR STR?23,"Kicking" + .GSTR STR?24,"Knocking on" + .GSTR STR?25,"sound" + .GSTR STR?26,"look inside" + .GSTR STR?27,"look through" + .GSTR STR?28,"indecis" + .GSTR STR?29,"Pulling" + .GSTR STR?30,"move" + .GSTR STR?31,"Trying to destroy" + .GSTR STR?32,"negat" + .GSTR STR?33,"ff" + .GSTR STR?34,"n" + .GSTR STR?35,"pick" + .GSTR STR?36,"put it in the presser" + .GSTR STR?37,"Pushing" + .GSTR STR?38,"Playing in this way with" + .GSTR STR?39,"read" + .GSTR STR?40,"roll" + .GSTR STR?41,"search" + .GSTR STR?42,"Turning" + .GSTR STR?43,"Shaking" + .GSTR STR?44,"." + .GSTR STR?45,"smell" + .GSTR STR?46,"spray" + .GSTR STR?47,"move that much" + .GSTR STR?48,"taste" + .GSTR STR?49,"Touching" + .GSTR STR?50,"Keyboard is only active following authorization" + .GSTR STR?51,"You have already made your selection" + .GSTR STR?52,"That bin is unoccupied" + .GSTR STR?53,"Error" + .GSTR STR?54,"Fuel levels at zero" + .GSTR STR?55,"Course set. Launch in approximately 30 millichrons" + .GSTR STR?56,"Safety precautions forbid the acceptance of course settings unless both the pilot and copilot seats are occupied" + .GSTR STR?57,"You are already at that level" + .GSTR STR?58,"Select a level between 1 and 9" + .GSTR STR?59,"The instant you press the button, the elevator begins plunging down the shaft! It's worse than just free-fall; the elevator is actually in a power dive!!! You punch frantically at the keypad..." + .GSTR STR?60,"You have not deposited a coin" + .GSTR STR?61,"This dispenser offers only 9 selections" + .GSTR STR?62,"Sorry, that items is sold out. Please contact your PX Officer regarding re-stocking of dispenser" + .GSTR STR?63,"walk" + .GSTR STR?64,"wear" + .GSTR STR?65,"posit" + .GSTR STR?66,"remove" + .GSTR STR?67," is as worthwhile as cleaning a grotch cage." + .GSTR STR?68," accomplishes nothing." + .GSTR STR?69," has no desirable effect." + .GSTR STR?70,"Fat chance." + .GSTR STR?71,"A valiant attempt." + .GSTR STR?72,"You can't be serious." + .GSTR STR?73,"Not bloody likely." + .GSTR STR?74,"What a concept." + .GSTR STR?75,"Nice try." + .GSTR STR?76,"You are behaving like a demented Denebian slime devil." + .GSTR STR?77,"Dream on." + .GSTR STR?78,"It's the looney bin for you!" + .GSTR STR?79,"You have lost your mind." + .GSTR STR?80,"A waste of time." + .GSTR STR?81,"A worthless action -- and much too difficult for a poorly-written program like this one to handle." + .GSTR STR?82,"Useless. Unhelpful." + .GSTR STR?83,"There's another turn down the drain." + .GSTR STR?84,"Why bother?" + .GSTR STR?85,"with" + .GSTR STR?86,"Done. You might remain alive long enough to type EXAMINE MY STUMP. Oops, I guess not." + .GSTR STR?87,"Okay." + .GSTR STR?88,"Wow! A hole where your torso used to be!" + .GSTR STR?89,"I was going to ask you the same question!" + .GSTR STR?90,"Floyd loves games! Let's play!" + .GSTR STR?91,"Safety precautions forbid the activation of the vehicle unless both the pilot and copilot seats are occupied" + .GSTR STR?92,"This form has not been validated by the station commander" + .GSTR STR?93,"Authorization approved. Use keypad to enter the bin number of the desired robot" + .GSTR STR?94,"Spacecraft activated. Type in the course heading" + .GSTR STR?95,"slot" + .GSTR STR?96,"The quiet, dusty corridors stir disturbing memories. You're back on Resida, the deserted, plague-stricken world where you met Floyd. A hot flush creeps over you, indicating that the virulent disease that conquered this planet is beginnning its insidious work on you" + .GSTR STR?97,"You find yourself on Deck Five of the Duffy, walking nonchalantly along, when suddenly you remember that you were supposed to have Handwriting Legibility Evaluation Forms -- all nine parts, for every member of the crew -- on Captain Fussbottom's desk by 7800. It's 7790, and those forms are stored on the other side of the ship. You begin running down the corridor, but the floor is turning into a thick syrup. You can hear the Captain calling your name, louder and louder, as you struggle to move your legs" + .GSTR STR?98,"You gulp down the last of your Ramosian Fire Nectar and ask the andro-waiter for another pitcher. This pub makes the finest Nectar on all of Ramos Two, and you and your shipmates are having a pretty rowdy time. Through the windows of the pub you can see a mighty, ancient castle, shining in the light of the three Ramosian moons. The Fire Nectar spreads through your blood and you begin to feel drowsy" + .GSTR STR?99,"You wake up in a huge stadium, watching an important ceremony. It's a Stellar Patrol promotion ceremony on Tremain! Suddenly you hear your name echoing over the PA system -- and down below you see YOURSELF walking up the steps to the stage! The presiding admiral describes your heroic deeds on Resida, mentioning that you were awarded the key to the planet, and then asks the ceremonial question, ""Do you accept promotion to Lieutenant First Class?"" You try to yell ""No!"" from your seat in the stands, but the words catch in your throat" + .GSTR STR?100,"You find yourself floating in a spacepod outside the docking bays of a large space station. All the doors are closed. You snap on the radio, and discover that Floyd is in charge within the station. ""Open the pod bay doors, Floyd,"" you tell him, but he replies, ""I'm sorry, I can't do that,"" and begins laughing and your air is beginning to run out" + .GSTR STR?101,"At last, the Duffy is approaching Space Station Delta Upsilon Upsilon Phi for the ship's first rec leave in almost six months. It's even worth the six solid days of paperwork necessary for a standard half-day leave. Stationfall is only millichrons away, but suddenly you realize that you're all alone on the Duffy! Frantic, you dash to the deserted bridge, but it's too late to keep the out-of-control Duffy from ramming the massive space station! The hull of the station falls toward you" + .GSTR STR?102,"You dream of being buried alive in an ancient Egyptian pyramid, inside the sarcophagus with some long-dead pharaoh. Phew, does he stink! You gasp and gag as the air in the coffin runs low. + This dream, incidentally, is not a particularly unusual one among people who go to sleep inside space suits with limited oxygen supplies." + .GSTR STR?103,"A movement awakens you in the middle of the night! Through unfocused eyes you see a large machine rolling menacingly closer! A bright light leaps from it, straight toward..." + .GSTR STR?104,"You collapse from extreme thirst and hunger." + .GSTR STR?105,"A powerful arc of raw energy bridges the gap between two of the monster's welding extensions. Unfortunately, you were pretty much right between the same two extensions at that moment." + .GSTR STR?106,"It's too dark to see a thing." + .GSTR STR?107,"You're not holding" + .GSTR STR?108,"There's nothing " + .GSTR STR?109,"You can see" + .GSTR STR?110,"It seems that" + .GSTR STR?111,"You can't " + .GSTR STR?112,"You'll have to " + .GSTR STR?113,"Look around you. +" + .GSTR STR?114,"You can't do that from here. +" + .GSTR STR?115,"You're holding it! +" + .GSTR STR?116,"[There seems to be a noun missing in that sentence.] +" + .GSTR STR?117,"You see only blackness. +" + .GSTR STR?118,"You already did that. Senility strikes again! +" + .GSTR STR?119,". +" + .GSTR STR?120,"... + +" + .GSTR STR?121,"Nothing happens. +" + .GSTR STR?122,"Failed. +" + .GSTR STR?123,"Okay. +" + .GSTR STR?124,"Huh? +" + .GSTR STR?125,"You can't go that way. +" + .GSTR STR?126,"It already is! +" + .GSTR STR?127,"""Floyd does not one of those have!"" +" + .GSTR STR?128,"Like most fromitz boards, it is a twisted maze of silicon circuits. It is square, approximately seventeen centimeters on each side. +" + .GSTR STR?129,"You're neither hungry nor thirsty. +" + .GSTR STR?130,"Floyd is leaning against the wall, his head lolling to the side. Apparently, someone has heartlessly turned him off." + .GSTR STR?131,"The only part of the complex robot authorization equipment that is visible to you is a slot (for inserting your form) and a keypad (for typing your selection)." + .GSTR STR?132,"Request for Stellar Patrol Issue Regulation Black Form Binders Request Form Forms" + .GSTR STR?133,"[Use numerals: for example, TYPE 5 rather than TYPE FIVE.] +" + .GSTR STR?134,"The thick side wall of the tank has been blasted open" + .GSTR STR?135,"Next time, say what number to set it to. +" + .GSTR STR?136,", hopping mad. ""Why you turn Floyd off?"" he asks accusingly." + .GSTR STR?137,"Spanning the entire garden is a transparent dome, providing a breathtaking view of the heavens in all their splendor." + .GSTR STR?138,"The control box contains a keypad for typing the number of the level you want to go to." + .GSTR STR?139," strike the machine's power source, inducing an overload implosion in said power source." + .GSTR STR?140,"""The Galaxy's Best Zero-Gee Restaurant""" + .GSTR STR?141,"The eternal flame has been extinguished!" + .GSTR STR?142,"Lieutenant First Class" + .GSTR STR?143,"Through the large, dirty window, you can see Dan's used spaceship lot. The spaceships floating in Dan's lot all have their prices whitewashed on their viewports, along with phrases like ""A steal!"" and ""Just reduced!""" + .GSTR STR?144,"You are in the heart of the administrative level of the ship, the largest level of the S.P.S. Duffy or any other Stellar Patrol ship for that matter. The corridor continues port and starboard, and a room lies aft of here." + .GSTR STR?145,"An Ensign appears and informs you that access to this section of Deck Five is restricted to those with a validated Assignment Completion Form QX-17-T. Saluting crisply, she retreats to her unseen guard post." + .GSTR STR?146,"""STELLAR PATROL +Paperwork Task Force +ID Number: 1451-352-716""" + .GSTR STR?147,"A slightly wrinkled Patrol uniform is lying here." + .GSTR STR?148,"This is the largest space in the ship, three decks tall and with the floor area of seven Rigellian buzzball fields. The only exit is fore." + .GSTR STR?149,"The room is filled to the ceiling with row upon row of pallets filled with boxes. Each box has some writing stamped on the side." + .GSTR STR?150,"The deck five corridor ends here at the entrance to the cargo bay, to starboard. A smaller entrance leads fore." + .GSTR STR?151,"He's an amusing and friendly little fellow." + .GSTR STR?152,"That's me!" + .GSTR STR?153,"Floyd, he" + .GSTR STR?154,"paces impatiently" + .GSTR STR?155,"absent-mindedly recites the first six hundred digits of pi" + .GSTR STR?156,"recalls the time he bruised his knee" + .GSTR STR?157,"tells you how much it hurts to repair dents" + .GSTR STR?158,"chants the death scene from ""Carmen""" + .GSTR STR?159,"cranes his neck to see what you are doing" + .GSTR STR?160,"rubs his head affectionately against your shoulder" + .GSTR STR?161,"examines himself for signs of rust" + .GSTR STR?162,"absent-mindedly oils one of his joints" + .GSTR STR?163,"wanders restlessly around the room" + .GSTR STR?164,"notices a mouse scurrying by and tries to hide behind you" + .GSTR STR?165,"sings an ancient ballad, totally out of key" + .GSTR STR?166,"frets about the possibility of his batteries failing" + .GSTR STR?167,"whistles tunelessly" + .GSTR STR?168,"boasts about the time he helped someone sharpen a pencil" + .GSTR STR?169,"yawns and looks bored" + .GSTR STR?170,"complains about a recent assignment in the forms filing department" + .GSTR STR?171,"produces a crayon from one of his compartments and scrawls his name on the wall" + .GSTR STR?172,"Floyd tells Plato about a neat shortcut for calculating seventh order differentials" + .GSTR STR?173,"Plato tells Floyd one of the ancient legends about the early days of the settlement of the galaxy" + .GSTR STR?174,"Floyd and Plato discuss their favorite battery recharging techniques" + .GSTR STR?175,"Plato helps polish a hard-to-reach spot on Floyd's back" + .GSTR STR?176,"""You like Floyd, don't you, Plato?"" asks Floyd. ""Yes,"" replies the taller robot, ""you're the only robot I've ever met who doesn't call me a nerd."" Floyd smiles" + .GSTR STR?177,"In a very sad voice, Floyd talks of his friend Lazarus, a medical robot on Resida who was tragically disassembled. Plato responds, ""Now, Floyd, don't fill your head with the sad memories of Lazarus' death. Think instead about the joy-filled times when you and your friend were together."" Floyd seems awed by such wisdom" + .GSTR STR?178,"Floyd gives Plato a friendly hug" + .GSTR STR?179,"Floyd stubs his toe and begins to whimper. ""There, there,"" says Plato, ""such a reaction will not reduce the level of pain."" He gives Floyd a little tickle, and Floyd begins giggling and forgets the injury" + .GSTR STR?180,"Bin number two holds a spindly little robot, a specialized model designed for bursting and decollating multi-part forms. A tiny nameplate on her perforating extension reads ""Helen.""" + .GSTR STR?181,"In the first bin is a bulky robot, obviously intended for heavy-lifting. A brass plate on one of his pneumatic arm lifts says ""Rex.""" + .GSTR STR?182," Rex trundles after you. Unfortunately, Rex is not too bright on his best days, and today is not one of them. He forgets to stop when you do; sixteen tons of Rex turn you into a human pancake." + .GSTR STR?183,"open the hatch" + .GSTR STR?184,"If you're in spacelane 630-461, keep it down to 26000 kilometers per millichron. There's a stakeout there." + .GSTR STR?185,"Anyone seen any smokeys in the Nebulon sector?" + .GSTR STR?186,"I'm looking for a traffic report on spacelane 317-455." + .GSTR STR?187,"At the conclusion of this recording, your emergency message will be sent. In the meantime, stay calm. Nothing can go wrong go wrong go wrong go wrong.." + .GSTR STR?188," filling the bay with hot ion gasses. Since you slept through most lectures at boot camp, you may not recall that hot ion gasses are pretty deadly." + .GSTR STR?189,". Once in space, the truck's air gushes out through the open hatch." + .GSTR STR?190,", leaving an impressive cloud of ion dust. However, you're in no condition to admire it, since you are now smeared all over the rear wall of the truck." + .GSTR STR?191,"Fuel level at three-quarters" + .GSTR STR?192,"Fuel level at one-quarter" + .GSTR STR?193,"Docking bay one is occupied. Defaulting to bay two" + .GSTR STR?194,"Arrival at terminus of inputted course. Fuel levels now effectively at zero. Oxygen supply for one person: approximately two chrons" + .GSTR STR?195," As the oxygen runs low, Floyd becomes quite chipper. Never before has he been in such a rust-inhibiting atmosphere. You, on the other hand, are dead." + .GSTR STR?196," Ramosian tree-mold custard" + .GSTR STR?197," apricot yogurt" + .GSTR STR?198," blueberry ice cream" + .GSTR STR?199,"This is a fairly large space where much of the maintenance work for the station takes place. Some repair work for visiting ships is also done here. The room is filled with all sorts of repair and fabrication machinery. A door leads south, and there's an opening to the north." + .GSTR STR?200,"I'm really not at all mechanically inclined. My sincerest apologies." + .GSTR STR?201,"It's a kind of a thingamabob for putting in a, you know, a whosiwhatsis." + .GSTR STR?202,"This is one of the storage areas. Exits lie to the east and south." + .GSTR STR?203,"twenty tiny sockets" + .GSTR STR?204,"The central corridor continues around to the southeast and southwest, but another corridor joins from the north. There's a door to the east and a doorway to the northeast." + .GSTR STR?205,"The corridor widens here as it approaches the skin of the space station at the point where a Scientific Sub-Module would connect. Sure enough, the connecting tube of a Sub-Module begins just to the north! An auto-door lies to the west. Opposite it, a doorway leads east." + .GSTR STR?206,"This is the shop for station personnel, selling everything from postcards to chewing gum at inflated prices. Exits lead west and southwest." + .GSTR STR?207,"In the corner of the PX is a Stellar Patrol dispensing machine, consisting of a screen (displaying the dispenser's ""exciting"" offerings), a slot (for coin insertion), a keypad (for typing your selection), and a hole (where the dispensed item hopefully -- but rarely -- arrives)." + .GSTR STR?208,"coin slot" + .GSTR STR?209," In case you were napping during Demolitions Training, this means that you're now a fine layer of ash all over the walls of the PX." + .GSTR STR?210,"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis." + .GSTR STR?211,"This infirmary has the finest diagnostic equipment that unlimited Stellar Patrol budgets can buy. To the east, an ID reader indicates a security door. You can leave to the west or southeast." + .GSTR STR?212,"This is a modest prison, with three cells. The only exit is west." + .GSTR STR?213,"The corridor continues around to the northwest and southwest, and an adjoining one heads east." + .GSTR STR?214,"This central corridor turns northeast and northwest of here. A second corridor begins here and leads south. There are doorways to the southwest, southeast, and east." + .GSTR STR?215,"This is the Deep-Space Communication Center, which keeps the station in touch with the Stellar Patrol Command and the rest of the Third Galactic Union. Although regulations state that the Comm Center must me monitored around the clock, ten chrons per day, there's no one on duty. + Most of the equipment here is too complicated for anyone without Deep-Space Communications Training to use. However, the red button of the wide-band emergency beacon is well-marked. The only exit is north." + .GSTR STR?216," The shock seems to have been a bit too much for your heart." + .GSTR STR?217,"This is the room where octuplet copies of important forms are stored. Since it is only about a hundred square meters, this room cannot hold more than a few days worth of storage before being dumped to nanofilm. Mercifully, there is an exit to the northeast." + .GSTR STR?218,"reader" + .GSTR STR?219," The log reader explodes!" + .GSTR STR?220,"These are by far the nicest living quarters on the station, with separate sleeping, changing, and working cubicles, and a private SanFac. The only exit is west." + .GSTR STR?221,"Sitting on the Commander's desk is an ordinary-looking log tape. There's a notation printed on it." + .GSTR STR?222,"""Commander's Log -- 11349.12.2 through 11349.12.4""" + .GSTR STR?223,"A sturdy safe is welded to the deck next to the desk." + .GSTR STR?224,"The safe has been blown open! The area around the safe is blackened, and a burnt odor hangs in the air." + .GSTR STR?225,"hole" + .GSTR STR?226,"This is the Station Commander's conference room. Doors point north and west." + .GSTR STR?227,"This is secondary weapons storage deck, but the only weapon deck on a station without a Military Sub-Module. Exit: south." + .GSTR STR?228,"This is a wide but not very tall docking bay. The station entrance lies to the east." + .GSTR STR?229,"This cramped dormitory, composed of approximately twenty private cubicles, curves around the northern half of this level, with exits to the southeast and southwest." + .GSTR STR?230,"You enter one of the cubicles but find nothing of interest." + .GSTR STR?231,"This warren of tiny cubicles fills the southern half of this level, curving toward exits in the northeast and northwest corners." + .GSTR STR?232,"This is a crowded but otherwise typical sanitary facility, with rows of showers, toilet stalls, and sinks. There are exits both north and south." + .GSTR STR?233,"A multiple-function exercise machine sits imposingly on one side of the gym. There is a sign above it." + .GSTR STR?234,"The exercise machine hums encouraging platitudes as it exercises you to death." + .GSTR STR?235,"In the corner, next to the dryer, is a large empty spot where the washer should be." + .GSTR STR?236,"lurches forward and slams shut on your arm. Before you pass out from the pain, you hear a rumbling sound from the presser, but you can't decide whether it sounds more like a chuckle or a burp." + .GSTR STR?237,"This sixty-seat auditorium is used for lectures, certain large briefings, an occasional live entertainment, and a rare live broadcast over deep-space channels. A projection booth dominates the rear of the room. The only entrance is on the north side of the theatre." + .GSTR STR?238,"Aaarghhh! The soup is poisoned! It's burning up your insides!!" + .GSTR STR?239,"This is the primary storage room of the station, with large stockpiles of important items. For example, basic organic materials are needed to supplement the food supply due to the tiny inefficiencies of the recycling process. This is nearly the top level of the Command Module, and the ceiling curves in sharply over the supply room, which curves around to doors at the northwestern and southwestern ends." + .GSTR STR?240,"detonator" + .GSTR STR?241,"This is a medium-sized conference room with doors to the south and west." + .GSTR STR?242,"This is a fairly large conference room with north and south exits." + .GSTR STR?243,"This station's library has some printed material, such as recently transmitted magazines, but primarily it is a location for reading nanofilm spools, via the spool reader, and accessing the main computer's data banks, via the small computer terminal. There's a door to the north and an exit to the west." + .GSTR STR?244,"Magazines are not to be removed from the library" + .GSTR STR?245,"""Collater Repair Manual""" + .GSTR STR?246,"""Food Processing Unit Repair Manual""" + .GSTR STR?247,"You stroll down one of the pebbled paths. It circles the garden, passing more exotic plants, and returns to the area near the elevator." + .GSTR STR?248,"""Emergency Elevator Override Controls + (See Station Commander + for access key)""" + .GSTR STR?249,"open the grating" + .GSTR STR?250,"These cubicles are for use by any visitors or station personnel beyond the normal complement. The entire barracks seem to be unused as well as deserted. The exit lies to the south, and the barracks curve around to the east." + .GSTR STR?251,"This is the rather ordinary sanitary facility for the barracks to the north." + .GSTR STR?252,"This is the station's largest docking bay. A huge door to the east leads into the station. + Resting in the docking bay is a small ship of obviously alien origin. An open hatch seems to beckon you inward." + .GSTR STR?253,"Must be a connect-the-dots! And a real easy one, too! None of those dumb numbers to confuse you! Where's my crayon?" + .GSTR STR?254,"Hmmm. Some kind of alien writing, I presume. If I recall, the Mayor is an expert on that subject." + .GSTR STR?255,"Lying under the dots is a skeleton, the brittle remains of a member of some unfamiliar alien race." + .GSTR STR?256,"This is the station's smallest docking bay. You can enter the station to the east." + .GSTR STR?257,"The corridor, which widens off to the west, ends here. There are doorways north and east of you, and doors to the south and southwest. The door to the north must be a security door, because there's an ID reader next to it." + .GSTR STR?258,"This is a room where new robots are constructed, old robots are repaired, and unused robots are stored. There's a door to the east." + .GSTR STR?259,"There's a little robot here who is in the final, training phase of its construction. It is ""sleeping"" on a table, connected to wires which are ""feeding"" it information. The young-looking robot has the name ""Oliver"" engraved on its chestplate." + .GSTR STR?260,"If we be here when Oliver wakes up, Floyd would like to teach Oliver to play paddle-ball. Paddle-ball helped Floyd forget how lonely and scared he was until he found friends...like you." + .GSTR STR?261,"Ah, a new robot. Poor fellow; new robots are so mercilessly mistreated by the older robots. Such is our lot." + .GSTR STR?262,"This is the place where a station's exports are prepared before transfer to the docking bays and subsequent shipment throughout the regional sector. The only exit is west." + .GSTR STR?263,"This is a fairly comfortable two-person living quarters, significantly roomier than the barracks where most of the ship's personnel live. There's a door to the north, and an opening leads southeast." + .GSTR STR?264,"This is a fairly comfortable two-person living quarters, significantly roomier than the barracks where most of the ship's personnel live. A door leads north and a doorway south." + .GSTR STR?265,"This is a fairly comfortable two-person living quarters, significantly roomier than the barracks where most of the ship's personnel live. A doorway lies to the southwest, and there's an auto-door to the north." + .GSTR STR?266,"A moderately luxurious SanFac, with a pair of bathtubs in addition to the regular fixtures. Exits lead north, northeast, and northwest." + .GSTR STR?267,"Partway down, you discover discover that the ladder passage to Level Eight is sealed off -- apparently from below." + .GSTR STR?268,"Outdated forms and expired files are reduced to pulp by this machinery. In addition, raw pulp is constantly being ferried into the station from nearby forest worlds. The output from this plant feeds the station's printing plant, which lies to the southeast." + .GSTR STR?269,"Someone has presumably been attempting to repair some of the machinery in this room, because they left a drill lying around." + .GSTR STR?270,"drill" + .GSTR STR?271,"remove the bit that's in the drill" + .GSTR STR?272,"Oh, no! The elevator isn't at this floor! It's a long plunge..." + .GSTR STR?273,"Magnetically-stored data has been damaged; see the Security Officer to have data restored" + .GSTR STR?274,"This shiny cylindrical corridor is the connector between the Command Module, to the south, and the Scientific Sub-Module, to the north." + .GSTR STR?275,"This laboratory, which fills most of the middle level of the Sub-Module, is for the study of applications of the various space-related research that takes place on the other levels. Gangways lead up and down, and a door leads north. A connecting tube opens to the south." + .GSTR STR?276,"This is a small office associated with the lab to the south." + .GSTR STR?277,"This is the notebook of a certain Professor Schmidt, who was studying a strange pyramid discovered aboard a derelict alien ship and brought here. + Schmidt traced back the path of the alien ship; the path points out of the galaxy without nearing any star system. Further, extending the path leads straight to one of our smaller neighboring galaxies. Schmidt concludes that the ship and the pyramid are probably well over one billion years old! + Next, Schmidt studied the wall markings in the alien ship. A series of identical dots, they defied every computerized model of linguistic decipherment! Then, in an inspiration, Schmidt studied the dots for nonvisual properties. His diary vaguely refers to a breakthrough, saying, ""I guess my pal, the mayor, will get to show off his linguistic training."" + Finally, Schmidt began concentrating his studies on the pyramid itself. He was able to discover very little, blaming this primarily on the unexplained failures of several crucial pieces of lab machinery." + .GSTR STR?278,"This laboratory conducts research into various space-related physical sciences. Gangways lead up and down, a there's a door to the north." + .GSTR STR?279,"Various biological sciences, as they related to the environment of space, are studied in this laboratory. There is a gangway leading up, another leading down, and a door leading north." + .GSTR STR?280,"Lying on one of the desks is a scribbled note." + .GSTR STR?281,"""Schmidt -- Why didn't I see it until now! Just think of this station as a cell and the pyramid as a mechanized bacterioph"" The note ends at that point; there seem to be some reddish-brown stains on it." + .GSTR STR?282,"This cramped living area has cubicles for the dozen or so scientists and engineers working in this Sub-Module. The only exit is a gangway leading down." + .GSTR STR?283,"I don't have a very specific function in the station's robotic organizational scheme, but I do keep the library organized." + .GSTR STR?284,"Floyd's best friend! Oh, except you, of course!" + .GSTR STR?285,"Some early poems by Ignatius Tomato. He's my current favorite." + .GSTR STR?286,"burst into tears and dashes out of the room. A beam leaps from the gun..." + .GSTR STR?287," the station's reactor turns into a good old-fashioned H-bomb." + .GSTR STR?288,"You are at the top of an air shaft. There is no gravity here. Handholds lead downward, and a partially open air grate leads out of the shaft." + .GSTR STR?289,"You are in a large, vertical air duct. Handholds lead up and down." + .GSTR STR?290,"You have reached the bottom of the air vent. Ducts too small for you to enter lead off laterally. Handholds lead upward, and the entire floor of the duct is another large grating." + .GSTR STR?291,"The sides ducts are too small to enter!" + .GSTR STR?292,"This tiny control station allows access to the massive memory banks of the station's computer. Ever since the formation of the Third Galactic Union ended the great interstellar dark age, every Stellar Patrol spaceship, every Patrol space station, has been equipped with a computer bulging with the entire accumulated knowledge of mankind. Never again will humanity be permitted to slip back into the ignorance and savagery of the dark age. + A ladder leads up to Level Eight, and there's a call button next to the elevator shaft to the north." + .GSTR STR?293,"The exercise machine reaches you, and performs various repetitions all over your body, proving that exercise isn't always good for you." + .GSTR STR?294,"You are standing on the bottom of the elevator shaft. The elevator is not in sight. The only place to go is back to the computer room to the south." + .GSTR STR?295,"There's no way to climb the shaft." + .GSTR STR?296,"Floyd fires his stun ray nonchalantly in your direction, laughing, as though taunting you. You feel your leg go numb" + .GSTR STR?297,"Smoke is trickling from the tails of the tiny rockets, as though the duplicate pyramids were preparing for activation and launch" + .GSTR STR?298,"A blinking light on the reactor goes from yellow to red" + .GSTR STR?299,"the pyramid, Floyd" + .GSTR STR?300,"This is an east-west tube, widening as it gets farther from the Command Module." + .GSTR STR?301,"This is a wide, cheaply constructed space tube, narrowing to the west. There are openings off this ""street"" in virtually every direction, including one leading downward." + .GSTR STR?302,"Well, there are openings in ALMOST every direction." + .GSTR STR?303,"This is a tiny living bubble beneath Broadway. The inhabitant, who is nowhere in sight, seems to be in the profession of reading the future for superstitious spacemen." + .GSTR STR?304,"You have entered a ramshackle, deserted house of worship for one of the many nondescript space-based religions. The decor was obviously intended, but fails, to make the church look larger and less shoddy than it really is. The only exit is south." + .GSTR STR?305,"This moderately large store sells all kinds of games and other recreational materials. There is also an in-house rec area, featuring a group of simulation booths. The ""street"" lies to the southwest." + .GSTR STR?306,"groof hunting on Septurion Seven" + .GSTR STR?307,"a little-known incident during the signing of the Treaty of Gishen IV" + .GSTR STR?308,"a torrid romance on the tropical planet of San Cupidor" + .GSTR STR?309,"searching for treasure in a magical underground kingdom" + .GSTR STR?310,"bullfighting, skydiving, and dental hygiene" + .GSTR STR?311,"A fine example of trans-molecular platinum foil. The most perfectly reflective material know to man, I am told, and not just on the visual wavelengths! There was a recent rumor that the Rec Shop was to be redecorated using such foil." + .GSTR STR?312,"Floyd loves anything reflective! Give Floyd a mirror and he'll be happy for days!" + .GSTR STR?313,"The huge galactic mining conglomerates often open field offices in these space villages, and this is one of those. Miners will haul some promising hunk of space rock into the vicinity, and then come here to sell the rights to it. You can leave to the west." + .GSTR STR?314,"Some miner has left a headlamp here." + .GSTR STR?315,"You have entered a surprisingly old-fashioned looking tonsorial parlor. A space village seems to be the last place in the civilized galaxy where someone can go to have their hair or fur trimmed by an actual human being. The barber isn't here, though. Doors lead northwest and west." + .GSTR STR?316,"This is a small convenience store, the main source of food and living supplies for this village, as well as a supplement supply for personnel from the space station proper. The shelves are pretty bare, and there is no one in sight. Exits lead north, east, southeast and south." + .GSTR STR?317,"A small, translucent plastic bag is sitting on one of the shelves." + .GSTR STR?318,", delectable, moist boysenberry-flavored taffy" + .GSTR STR?319,"This shop, with exits to the northeast and southeast, sells a variety of animals. Many a lonely spacer has discovered the joys a pet can bring, and this shop features animals of both terrestrial and alien origin. A large sign advertises this month's special." + .GSTR STR?320,"You can see the faint outline of a panel in the ceiling." + .GSTR STR?321,"This sprawling old cargo ship, its engines long ago cannibalized for spare parts, has been converted into a store for supplies and curios. There's an eye-catching sign on the wall. Passageways lead in many directions, and there's an opening in the floor." + .GSTR STR?322,"""FREZONE (tm) Liquid Gorzium Explosive +Instructions for use: +1. Insert explosive in hole of appropriate diameter. +2. Attach detonator to explosive and timer. +3. Set timer. +4. Vamoose. +NOTE: Do not expose explosive to temperatures above 150 degrees Kelvin for period of more than 100 millichrons.""" + .GSTR STR?323,"Carbon dioxide! Don't use it myself. The only form I've ever seen it in is dry ice." + .GSTR STR?324,"open the bottle" + .GSTR STR?325,"This living bubble has been set up as an artist's loft. Most of the space is taken up by a large scrap sculpture floating in the center of the bubble. It is, of course, pretty impossible to tell how close the sculpture is to completion. The way out is to the east." + .GSTR STR?326,"The most recognizable item in the sculpture is a twenty-prong fromitz board." + .GSTR STR?327,"From your experience with tawdry, space village bars, they are crowded every millichron of the day and night. So it's quite unusual that this saloon is totally deserted. Despite the current solitude, you can almost hear the tinny music, the loud voices, the fistfights. Openings lead west and northwest, and to the east is a partially disguised exit." + .GSTR STR?328,"This is a tiny room, smelling strongly of various synthesized opium variants. There's a sign on the wall a door to the south." + .GSTR STR?329,"You've always wondered what a back-room zero-gee space village bordello was like. Well, now you know. Next to the nearest bed is a locker. The exit leads down." + .GSTR STR?330,"Your lungs rupture, not to mention all sorts of even nastier stuff that you're lucky if you can't imagine." + .GSTR STR?331,"This filthy north-south tube is quite a change from the gleaming, well-scrubbed metal of the space station." + .GSTR STR?332,"This large spacetube is the main thoroughfare of a space village which has sprung up here on the outskirts of the space station, which lies to the north. Rather than the bustling thoroughfare you might expect, however, there isn't a soul in sight. Openings lead up, northeast, south and west. To the southeast, the ""street"" narrows and ramps downward." + .GSTR STR?333," fire nectar - thick and warming" + .GSTR STR?334,"This permanently-docked one-man ship serves as the office for Hizzoner the Mayor, the unofficial leader of the village. Main Street is below." + .GSTR STR?335,"You spot a copy of a book entitled ""Deciphering Alien Speech.""" + .GSTR STR?336,"""(bitter/salty/bitter) softness/weakness +(sweet/very-sour) Hunji (noun form) +(bland/salty/sour) Zeenak (adj form) +(bland/bitter) air/atmosphere +(very-salty) however +(sweet/very-sweet) legal destruction (sabotage?) +(very-sweet/bland/sour) I have shined light upon +(sour/bland/sour/sweet) turn back +(bland) (definite article?) +(slightly-sour) solitary +(very-sweet/very-salty) element/substance +(sweet/slightly-bitter) brethren (adj form) +(sour/bland/bland/sour) died/failed +(bland/sour/very-sour) is souring/turning bad +(spicy-hot/bland/bland) (a number) (78? 7/8?) +(bitter/sour/very-sour) weapon (poss form) +(very-sweet) (emphasis mark?) +(very-salty/salty/sour) bad/evil/deadly radiation (plur form)""" + .GSTR STR?337,"The Stellar Patrol has opened a recruitment office off Main Street, thus giving tacit approval to this technically nonregulation space village. Posters showing a rose-colored view of Patrol life are plastered all over the walls. A door leads east." + .GSTR STR?338,"This is a branch office of the First Galactic Bank of Nebulon. There are doors to the north, west and southwest." + .GSTR STR?339,"This small space bubble, with openings to the east and south, is decorated with posters of exotic locales, but it's hard to imagine that anyone in this rundown spacetown would be able to afford an interstellar pleasure jaunt." + .GSTR STR?340,"Since there's no one here to milk you for some worthless life insurance or spaceship insurance, you might as well use the exits to the north or northeast." + .GSTR STR?341,"There's no doubt that ""alley"" is the best word to describe this winding, garbage-strewn connector. Dark passages branch off in almost every direction, and the alley slopes upward to the northwest." + .GSTR STR?342,"This is the home of some kook, a proselytizer of the fringe religion which believes that humankind has angered God by venturing out into space, and the universe will end sometime next week. Next week never seems to come, but there are enough kooks in the galaxy to keep the belief going. You can exit to the south." + .GSTR STR?343,", taking you along for the ride. + +Lost in Space + You spend several chrons tumbling into the starry depths, the station dwindling to a dot of light behind you. Eventually, your air runs out." + .GSTR STR?344,"As you swivel the headlamp around, you discover a tiny cylinder with an even tinier label." + .GSTR STR?345,"""FREZONE (tm) Liquid Gorzium Explosive. For use only by licensed demolitionist. Instruction sheet available from vendor; read thoroughly before use!""" + .GSTR STR?346,"The three balls hanging by the (northeastern) entrance to this space hut indicate that a villager down on his or her luck could come here to hock some valuable possession." + .GSTR STR?347,"Some destitute spacer was so hard up that he or she actually pawned a spray can. It's sitting here in the shop, and has some lettering on it." + .GSTR STR?348,"Some seedy loan shark has moored his dilapidated vessel here, on the south side of the alley." + .GSTR STR?349,"""ONE GALAKMID +Third Galactic Union""" + .GSTR STR?350,"This physician's bubble is owned by the village quack, known to his friends as ""Doc"" Schuster, but known to the vast majority of the villagers as Schuster the Shyster. There's a small hole in the wall, probably the opening for a disposal chute. The Doc is out, and in this case, out is northwest." + .GSTR STR?351,"There is a large pile of intoxicated ostrich here." + .GSTR STR?352,"[This is pretty gross, but you asked for it!] As the drill penetrates the unconscious ostrich, geysers of blood spout out, inundating you and the drill, causing a short circuit and electrocuting you. You collapse into a fried heap among a spreading puddle of blood." + .GSTR STR?353,"""Doc -- that ostrich nip you've been waiting for finally came in. Drop by and pick it up. If I'm not in, you'll find it in my ceiling panel.""" + .GSTR STR?354,"In the corner of the office is a rather plain-looking machine with a keypad. It looks a bit jerry-rigged." + .GSTR STR?355,"opening" + .GSTR STR?356,"A scrambled card cannot be altered" + .GSTR STR?357,"Ensign, Sixth Class or lower" + .GSTR STR?358,"Ensign, Fifth through Second Class" + .GSTR STR?359,"Ensign First Class" + .GSTR STR?360,"Midshipman" + .GSTR STR?361,"Lieutenant Second Class" + .GSTR STR?362,"Lieutentant Commander" + .GSTR STR?363,"Commander or Captain" + .GSTR STR?364,"Admiral" + .GSTR STR?365,"Fleet Admiral" + .GSTR STR?366,"This outdated drydock is now a messy junk yard. A huge pile of floating junk fills the center of the bubble. Passages lead upwards and west." + .GSTR STR?367,"Of all the items floating in the scrap heap, the pair of magnetic spaceboots looks to be in the best shape." + + .ENDI diff --git a/ship.zap b/ship.zap new file mode 100644 index 0000000..576d4bc --- /dev/null +++ b/ship.zap @@ -0,0 +1,1050 @@ + + + .FUNCT FORM-F + EQUAL? PRSA,V?EXAMINE,V?READ \?ELS5 + PRINTI "[This form can be found in your STATIONFALL package.]" + EQUAL? PRSO,ASSIGNMENT-COMPLETION-FORM \?CND6 + PRINTI " You notice that it has " + ZERO? ASSIGNMENT-FORM-VALIDATED \?CND9 + PRINTI "not " +?CND9: PRINTI "been validated." +?CND6: CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?VALIDATE \FALSE + EQUAL? PRSO,ASSIGNMENT-COMPLETION-FORM \?ELS18 + ZERO? ASSIGNMENT-FORM-VALIDATED /?ELS23 + PRINT SENILITY-STRIKES + RTRUE +?ELS23: SET 'ASSIGNMENT-FORM-VALIDATED,TRUE-VALUE + PRINTR "Done." +?ELS18: PRINTR "That form has no validation box!" + + + .FUNCT CHRONOMETER-F + EQUAL? PRSA,V?READ,V?EXAMINE \FALSE + GRTR? DAY,2 \?ELS10 + PRINTR "You glance at your chronometer, and realize with annoyance that it has stopped. You can't recall doing anything that might have broken it." +?ELS10: PRINTI "It is a standard wrist chronometer with a digital display. " + CALL V-TIME,TRUE-VALUE + PRINTR " The back is engraved with the message ""Good luck in the Patrol! Love, Mom and Dad.""" + + + .FUNCT PATROL-UNIFORM-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It is a standard-issue one-pocket Stellar Patrol uniform, a miracle of modern technology. It will keep its owner warm in cold climates and cool in warm locales. It provides protection against mild radiation, repels all insects, absorbs sweat, promotes healthy skin tone, and on top of everything else, it is super-comfy" + ZERO? SUIT-PRESSED /?CND6 + PRINTI ". The uniform has been recently pressed" +?CND6: PRINT PERIOD-CR + RTRUE +?ELS5: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE + PRINTI "There's no way to open or close the pocket of the " + PRINTD PRSO + PRINT PERIOD-CR + RTRUE + + + .FUNCT BOXED-FORMS-F + EQUAL? PRSA,V?EXAMINE /?THN6 + CALL TOUCHING?,PSEUDO-OBJECT + ZERO? STACK /FALSE +?THN6: PRINTR "The forms are sealed inside the boxes." + + + .FUNCT PALLETS-F,CNT + EQUAL? PRSA,V?READ \?ELS5 + EQUAL? HERE,FORM-STORAGE-ROOM \?ELS10 + PRINTR "There are numerous boxes; some of the nearer ones read: ""Form Pallet Disbursal Form,"" ""Loss of Form Pallet Label Report Form,"" and ""Loss of Form Pallet Label Report Form Release Form.""" +?ELS10: PRINTC 34 + PRINT FORM-NAME + PRINTR ".""" +?ELS5: EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE,V?OPEN \?ELS14 + PRINTI "Forms" + SET 'CNT,0 +?PRG15: EQUAL? CNT,50 /?REP16 + PRINTI " and forms" + INC 'CNT + JUMP ?PRG15 +?REP16: PRINTR ". Horrified, you reseal the box." +?ELS14: EQUAL? PRSA,V?TAKE \?ELS21 + PRINTR "You'll need a forklift." +?ELS21: EQUAL? PRSA,V?COUNT \FALSE + EQUAL? HERE,FORM-STORAGE-ROOM \?ELS28 + PRINTR "Countless." +?ELS28: CALL NOUN-USED,W?PALLET,PALLETS + ZERO? STACK /?ELS30 + PRINTR "24." +?ELS30: CALL NOUN-USED,W?BOXES,PALLETS + ZERO? STACK /FALSE + SET 'C-ELAPSED,30 + PRINTR "1920." + + + .FUNCT ROBOT-POOL-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + ADD C-ELAPSED,2 + CALL QUEUE,I-FLOYD,STACK + RSTACK +?ELS5: EQUAL? RARG,M-LOOK \?ELS7 + PRINTI "This is where a " + PRINT LFC + PRINTI " would come to check out a robot for use on an important assignment. Also for a trivial assignment like yours. " + PRINT ROBOT-POOL-EQUIPMENT-DESC + PRINTI " You can exit aft." + RTRUE +?ELS7: EQUAL? RARG,M-EXIT \FALSE + EQUAL? ROBOT-PICKED,FLOYD /FALSE + CALL DEQUEUE,I-FLOYD + RSTACK + + + .FUNCT BIN-F + GET P-ADJW,0 + EQUAL? STACK,FALSE-VALUE \?ELS9 + EQUAL? PRSO,PSEUDO-OBJECT /?THN6 +?ELS9: GET P-ADJW,1 + EQUAL? STACK,FALSE-VALUE \?ELS5 + EQUAL? PRSI,PSEUDO-OBJECT \?ELS5 +?THN6: PRINTR "Next time, specify which bin you meant." +?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS13 + CALL ADJ-USED,A?FIRST,PSEUDO-OBJECT + ZERO? STACK /?ELS18 + EQUAL? ROBOT-PICKED,REX /?ELS18 + GETP REX,P?FDESC + PRINT STACK + CRLF + RTRUE +?ELS18: CALL ADJ-USED,A?SECOND,PSEUDO-OBJECT + ZERO? STACK /?ELS22 + EQUAL? ROBOT-PICKED,HELEN /?ELS22 + GETP HELEN,P?FDESC + PRINT STACK + CRLF + RTRUE +?ELS22: CALL ADJ-USED,A?THIRD,PSEUDO-OBJECT + ZERO? STACK /?ELS26 + EQUAL? ROBOT-PICKED,FLOYD /?ELS26 + CALL PERFORM,V?EXAMINE,FLOYD + RTRUE +?ELS26: PRINTR "The bin is empty." +?ELS13: EQUAL? PRSA,V?PUT,V?WALK-TO,V?ENTER \FALSE + PRINTR "The bin is only for robots." + + + .FUNCT FLOYD-F,OARG=0,X,N,TXT,?TMP1 + ZERO? OARG /?ELS5 + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " " + CALL DESCRIBE-FLOYD + RSTACK +?ELS5: EQUAL? FLOYD,WINNER \?ELS11 + SET 'FLOYD-SPOKE,TRUE-VALUE + ZERO? ROBOT-PICKED /?ELS16 + EQUAL? ROBOT-PICKED,FLOYD /?ELS16 + PRINTI "Floyd gives you a hurt look and turns away." + CRLF + CALL STOP + RSTACK +?ELS16: ZERO? FLOYD-ANGUISHED /?ELS20 + SET 'WINNER,PROTAGONIST + CALL PERFORM,V?TOUCH,FLOYD + CALL STOP + RSTACK +?ELS20: EQUAL? PRSA,V?TELL-ABOUT \?ELS23 + EQUAL? PRSO,ME \?ELS23 + GRTR? ROBOT-EVILNESS,11 \?ELS30 + PRINTR """Oh, quit jabbering already.""" +?ELS30: GETP PRSI,P?FLOYD-ASK-ABOUT >TXT + ZERO? TXT /?ELS32 + PRINTC 34 + PRINT TXT + PRINTR """" +?ELS32: PRINTI "Floyd shrugs. ""Beats me." + IN? PLATO,HERE \?CND35 + PRINTI " Ask Plato. He knows everything!" +?CND35: PRINTR """" +?ELS23: GRTR? PLATO-ATTACK-COUNTER,0 \?ELS39 + IN? PLATO,HERE \?ELS39 + EQUAL? PRSA,V?HELP /?THN47 + EQUAL? PRSA,V?SAVE-SOMETHING \?ELS50 + EQUAL? PRSO,ME /?THN47 +?ELS50: EQUAL? PRSA,V?KILL,V?OFF \?ELS52 + EQUAL? PRSO,PLATO /?THN47 +?ELS52: EQUAL? PRSA,V?TAKE \?ELS46 + EQUAL? PRSO,STUN-GUN \?ELS46 +?THN47: SET 'FLOYD-TOLD,TRUE-VALUE + PRINTR "Floyd waves his hands helplessly. ""Yes... I mean no... I mean oh no oh help me please. Floyd does not know right thing to do...""" +?ELS46: PRINTI "Floyd just looks at you with confusion and panic in his eyes." + CRLF + CALL STOP + RSTACK +?ELS39: EQUAL? HERE,FACTORY \?ELS58 + ZERO? FLOYD-SHOT /?ELS63 + PRINTR "Floyd is hurt and doesn't respond." +?ELS63: PRINTR """Shut up!"" orders Floyd." +?ELS58: EQUAL? PRSA,V?LAUNCH \?ELS68 + EQUAL? PRSO,SPACETRUCK-OBJECT \?ELS68 + SET 'AWAITING-REPLY,2 + CALL V-YES + SET 'AWAITING-REPLY,FALSE-VALUE + RTRUE +?ELS68: EQUAL? PRSA,V?TAKE \?ELS72 + EQUAL? PRSO,LEASH \?ELS72 + FSET? HERE,WEIGHTLESSBIT /?ELS72 + CALL FLOYD-TAKE-LEASH + RSTACK +?ELS72: EQUAL? PRSA,V?TAKE \?ELS76 + EQUAL? PRSO,STAR \?ELS76 + FSET? STAR,TRYTAKEBIT \?ELS76 + PRINTR """Huh? Floyd shorter even than you!""" +?ELS76: EQUAL? PRSA,V?YES \?ELS80 + ZERO? AWAITING-REPLY /?ELS80 + CALL V-YES + RSTACK +?ELS80: EQUAL? PRSA,V?NO \?ELS84 + ZERO? AWAITING-REPLY /?ELS84 + CALL V-NO + RSTACK +?ELS84: EQUAL? PRSA,V?CLIMB-ON,V?ENTER \?ELS88 + EQUAL? PRSO,COPILOT-SEAT,PILOT-SEAT \?ELS88 + IN? FLOYD,PRSO \?ELS95 + PRINTR """Where is Floyd now, huh?""" +?ELS95: PRINTR "Floyd looks suspicious. ""You first.""" +?ELS88: EQUAL? PRSA,V?TAKE \?ELS99 + IN? PRSO,HEATING-CHAMBER \?ELS99 + MOVE PRSO,HERE + PRINTI """Okay!"" Floyd reaches into the " + PRINTD HEATING-CHAMBER + PRINTI " and grabs" + CALL TPRINT-PRSO + PRINTR ". ""Yikes, it's hot!"" He drops it to the deck, where it quickly cools." +?ELS99: EQUAL? PRSA,V?MUNG,V?UNLOCK,V?OPEN \?ELS103 + EQUAL? PRSO,STRONG-BOX,SAFE \?ELS103 + PRINTR """Floyd's a robot, not a locksmith!""" +?ELS103: EQUAL? PRSA,V?UNLOCK,V?OPEN \?ELS107 + EQUAL? PRSO,SECURITY-DOOR \?ELS107 + PRINTR """Put your ID in the ID reader, dumbo!""" +?ELS107: EQUAL? PRSA,V?MUNG,V?KILL,V?OFF \?ELS111 + EQUAL? PRSO,WELDER \?ELS111 + PRINTR """Sure! Floyd not scared!"" He walks bravely up to the welder, which spits some electric fire in his direction. From his new position (quivering behind your legs) Floyd says, ""Floyd changed his mind, okay?""" +?ELS111: EQUAL? PRSA,V?REACH-IN \?ELS115 + EQUAL? PRSO,PSEUDO-OBJECT,DISPENSER \?ELS115 + EQUAL? HERE,PX \?ELS115 + PRINTR "Floyd happily reaches into the dispenser hole, and then withdraws his hand, looking glum. ""Nope, not even a ball.""" +?ELS115: EQUAL? PRSA,V?GIVE \?ELS119 + EQUAL? PRSI,ME \?ELS119 + IN? PRSO,FLOYD \?ELS126 + MOVE PRSO,PROTAGONIST + PRINTI """Okay,"" says Floyd, handing you the " + PRINTD PRSO + PRINTR ", ""but only because you're Floyd's best friend.""" +?ELS126: PRINT FLOYD-NOT-HAVE + RTRUE +?ELS119: EQUAL? PRSA,V?SGIVE \?ELS130 + EQUAL? PRSO,ME \?ELS130 + CALL PERFORM,V?GIVE,PRSI,ME + RTRUE +?ELS130: EQUAL? PRSA,V?WALK \?ELS134 + PRINTR "Floyd looks slightly embarrassed. ""You know me and my sense of direction."" Then he looks up at you with wide, trusting eyes. ""Tell Floyd a story?""" +?ELS134: EQUAL? PRSA,V?FOLLOW \?ELS136 + EQUAL? PRSO,ME \?ELS136 + PRINTR """Okay!""" +?ELS136: EQUAL? PRSA,V?HELLO \?ELS140 + PRINTR """Hi!"" Floyd grins and bounces up and down." +?ELS140: EQUAL? PRSA,V?DROP \?ELS142 + IN? PRSO,FLOYD \?ELS147 + RANDOM 100 + LESS? 50,STACK /?ELS152 + MOVE PRSO,HERE + PRINTI "Floyd shrugs and drops the " + PRINTD PRSO + PRINT PERIOD-CR + RTRUE +?ELS152: PRINTI "Floyd clutches the " + PRINTD PRSO + PRINTR " even more tightly. ""Floyd won't,"" he says defiantly." +?ELS147: PRINT FLOYD-NOT-HAVE + RTRUE +?ELS142: PRINTI "Floyd whines, ""Enough talking! Let's play Hider-and-Seeker.""" + CRLF + CALL STOP + RSTACK +?ELS11: FSET? FLOYD,TOUCHBIT /?ELS160 + CALL NOUN-USED,W?FLOYD,FLOYD + ZERO? STACK /?ELS160 + PRINTI "You don't see anyone by that name here." + CRLF + RETURN 8 +?ELS160: ZERO? FLOYD-ANGUISHED /?ELS166 + CALL TOUCHING?,FLOYD + ZERO? STACK \?THN169 + EQUAL? PRSA,V?COMFORT \?ELS166 +?THN169: PRINTR "Floyd sniffs, ""Please leave Floyd alone for a while.""" +?ELS166: MUL ROBOT-EVILNESS,10 + SUB STACK,50 >?TMP1 + RANDOM 100 + LESS? ?TMP1,STACK /?ELS172 + CALL TOUCHING?,FLOYD + ZERO? STACK /?ELS172 + EQUAL? HERE,FACTORY /?ELS179 + PRINTR """Hey, will you just leave Floyd alone!"" He shoves you away." +?ELS179: ZERO? FLOYD-SHOT /?ELS181 + PRINTI "Before you can..." + CRLF + CALL I-LAUNCH + RSTACK +?ELS181: CALL BACK-OFF,STR?153 + RSTACK +?ELS172: EQUAL? PRSA,V?EXAMINE \?ELS186 + CALL DESCRIBE-FLOYD,TRUE-VALUE + FIRST? FLOYD \?ELS191 + PRINTC 32 + CALL V-LOOK-INSIDE + RSTACK +?ELS191: CRLF + RTRUE +?ELS186: EQUAL? PRSA,V?SHOOT \?ELS195 + ZERO? FLOYD-SHOT /?ELS200 + PRINTR "Floyd is already fatally wounded. Another shot would accomplish nothing, except perhaps fulfilling some sadistic impulse on your part." +?ELS200: EQUAL? HERE,FACTORY \?ELS203 + CALL DEQUEUE,I-FACTORY + FSET STUN-GUN,TAKEBIT + FCLEAR FLOYD,ACTIVEBIT + SET 'FLOYD-SHOT,TRUE-VALUE + PRINTR "The bolt hits Floyd squarely in the chest. He is blown backwards, against the pedestal, and slumps to the deck." +?ELS203: PRINTR "[The author of this story is totally shocked, and won't even dignify such an input with a response.]" +?ELS195: EQUAL? PRSA,V?PICK \?ELS207 + CALL PICK-ROBOT + RSTACK +?ELS207: EQUAL? PRSA,V?CLOSE \?ELS209 + PRINT HUH + RTRUE +?ELS209: EQUAL? PRSA,V?REACH-IN,V?LOOK-INSIDE \?ELS211 + CALL PERFORM,V?OPEN,FLOYD + RTRUE +?ELS211: FSET? FLOYD,ACTIVEBIT \?ELS213 + SET 'FLOYD-SPOKE,TRUE-VALUE + EQUAL? PRSA,V?ON \?ELS218 + PRINTR "He's already been activated." +?ELS218: EQUAL? PRSA,V?OFF \?ELS220 + GRTR? PLATO-ATTACK-COUNTER,0 \?ELS225 + PRINTR "Floyd jerks away as you touch his on-off switch. ""Hey, you know how much Floyd hates that! And after Floyd saved your life before...""" +?ELS225: FCLEAR FLOYD,ACTIVEBIT + FCLEAR FLOYD,ACTORBIT + ZERO? SPACETRUCK-COUNTER \?CND228 + CALL DEQUEUE,I-FLOYD +?CND228: PRINTI "Floyd, shocked by this betrayal from his old friend, whimpers and " + IN? FLOYD,HERE /?ELS233 + MOVE FLOYD,HERE + PRINTI "falls out of his seat" + JUMP ?CND231 +?ELS233: PRINTI "keels over" +?CND231: FIRST? FLOYD \?CND236 + CALL ROB,FLOYD,HERE + PRINTI ", dropping what he was carrying" +?CND236: PRINT PERIOD-CR + RTRUE +?ELS220: EQUAL? HERE,FACTORY /FALSE + EQUAL? PRSA,V?KISS \?ELS242 + PRINTR "You receive a painful electric shock." +?ELS242: EQUAL? PRSA,V?SCOLD \?ELS244 + PRINTR "Floyd looks defensive. ""What did Floyd do wrong?""" +?ELS244: EQUAL? PRSA,V?PLAY-WITH \?ELS246 + ZERO? FLOYD-ANGUISHED /?CND247 + CALL PERFORM,V?TOUCH,FLOYD + RTRUE +?CND247: SET 'C-ELAPSED,30 + CALL QUEUE,I-FLOYD,1 + PRINTR "You play with Floyd for several centichrons until you drop to the floor, winded. Floyd pokes at you gleefully. ""C'mon! Let's play some more!""" +?ELS246: EQUAL? PRSA,V?LISTEN \?ELS252 + PRINTR "Floyd is babbling about this and that." +?ELS252: EQUAL? PRSA,V?TAKE \?ELS254 + EQUAL? PRSO,FLOYD \?ELS254 + FSET? HERE,WEIGHTLESSBIT \?ELS261 + PRINTR "Sans gravity, you easily pick up Floyd. ""Oh, boy! Zero-Gee Polo,"" he yells, wriggling away and bounding off several walls." +?ELS261: FSET? FLOYD,TOUCHBIT \FALSE + PRINTR "You manage to lift Floyd a few centimeters, but he's too heavy and you drop him suddenly. Floyd gives a surprised squeal and moves a respectable distance away." +?ELS254: EQUAL? PRSA,V?MUNG,V?KILL \?ELS265 + PRINTR "Floyd starts dashing around the room. ""Oh boy oh boy oh boy! I haven't played Chase and Tag for years! You be It! Nah, nah!""" +?ELS265: EQUAL? PRSA,V?SHAKE,V?KICK \?ELS267 + PRINTR """Why you do that?"" Floyd whines. ""I think a wire now shaken loose."" He goes off into a corner and sulks." +?ELS267: EQUAL? PRSA,V?OPEN,V?CLEAN,V?SEARCH /?THN270 + EQUAL? PRSA,V?TICKLE \?ELS269 +?THN270: PRINTR "Floyd giggles and pushes you away. ""You're tickling Floyd!"" He clutches at his side panels, laughing hysterically. Oil drops stream from his eyes." +?ELS269: EQUAL? PRSA,V?PUT,V?GIVE \?ELS273 + EQUAL? PRSI,FLOYD \?ELS273 + EQUAL? PRSO,BLUE-GOO,GRAY-GOO,ORANGE-GOO \?ELS280 + PRINTR "Floyd looks at the goo. ""Yech! Got any Number Seven Heavy Grease?""" +?ELS280: EQUAL? PRSO,LEASH \?ELS282 + CALL FLOYD-TAKE-LEASH + RSTACK +?ELS282: EQUAL? PRSO,OSTRICH-NIP \?ELS284 + PRINTR """Phew!"" says Floyd, holding his nose and handing it back." +?ELS284: FIRST? FLOYD /?THN287 + RANDOM 100 + LESS? 25,STACK /?ELS286 +?THN287: MOVE PRSO,HERE + PRINTI "Floyd examines the " + PRINTD PRSO + PRINTR ", shrugs, and drops it." +?ELS286: MOVE PRSO,FLOYD + PRINTR """Neat!"" exclaims Floyd. He thanks you profusely." +?ELS273: EQUAL? PRSA,V?SHOW \?ELS292 + EQUAL? FLOYD,PRSI \?ELS292 + SET 'AWAITING-REPLY,3 + ADD C-ELAPSED,2 + CALL QUEUE,I-REPLY,STACK + PRINTI "Floyd looks over the " + PRINTD PRSO + PRINTR ". ""Can you play any games with it?"" he asks." +?ELS292: EQUAL? PRSA,V?HUG,V?TOUCH \?ELS296 + PRINTR "Floyd gives a contented sigh." +?ELS296: EQUAL? PRSA,V?SMELL \FALSE + PRINTR "Floyd smells faintly of ozone and light machine oil." +?ELS213: EQUAL? PRSA,V?ON \?ELS300 + CALL QUEUE,I-FLOYD,-1 + SET 'FLOYD-SPOKE,TRUE-VALUE + FSET FLOYD,ACTORBIT + FSET FLOYD,ACTIVEBIT + FSET FLOYD,TOUCHBIT + PRINTI "Floyd jumps to his feet" + PRINT HOPPING-MAD + CRLF + RTRUE +?ELS300: EQUAL? PRSA,V?OFF \?ELS302 + PRINTR "Floyd isn't on." +?ELS302: EQUAL? PRSA,V?TELL \?ELS304 + PRINTI "Floyd isn't that great a listener even when he's on..." + CRLF + CALL STOP + RSTACK +?ELS304: EQUAL? PRSA,V?OPEN,V?SEARCH \FALSE + PRINTR "You search the robot's compartments and discover a crayon, a paddle ball set, and finally, a photo of yourself. On the back, in crayon, in Floyd's childish scrawl, is the inscription, ""Floyds frend."" Touched, you return everything to the compartments where you found them." + + + .FUNCT DESCRIBE-FLOYD,EXAMINING=0 + FSET? FLOYD,TOUCHBIT /?ELS5 + PRINT YOU-CANT + PRINTI "see the robot in the third bin very well, because he's crouched in the corner. He's a short robot, and he seems to be playing marbles." + RTRUE +?ELS5: EQUAL? HERE,ROBOT-POOL \?ELS7 + ZERO? ROBOT-PICKED \?ELS7 + PRINTI "With unconcealed excitement, Floyd is hopping around in bin number three." + RTRUE +?ELS7: EQUAL? HERE,ROBOT-POOL \?ELS11 + EQUAL? ROBOT-PICKED,FLOYD /?ELS11 + PRINTI "Floyd sits dejectedly in bin three." + RTRUE +?ELS11: IN? PLATO,HERE \?ELS15 + ZERO? EXAMINING \?ELS15 + PRINTI "Plato and Floyd are both here." + FSET? FLOYD,ACTIVEBIT /TRUE + PRINTC 32 + PRINT FLOYD-OFF-DESC + RTRUE +?ELS15: EQUAL? HERE,FACTORY \?ELS22 + PRINTI "Floyd is " + ZERO? FLOYD-SHOT /?ELS25 + PRINTI "ly" + JUMP ?CND23 +?ELS25: PRINTI "stand" +?CND23: PRINTI "ing between you and the pyramid, " + ZERO? FLOYD-SHOT /?ELS33 + PRINTI "seriously damaged by zapgun fire." + RTRUE +?ELS33: PRINTI "his face so contorted by hate as to be almost unrecognizable. You also wonder where he picked up that black eye patch." + RTRUE +?ELS22: FSET? FLOYD,ACTIVEBIT /?ELS38 + PRINT FLOYD-OFF-DESC + RTRUE +?ELS38: ZERO? FLOYD-ANGUISHED /?ELS40 + PRINTI "Floyd is lying on the floor, sobbing." + RTRUE +?ELS40: ZERO? EXAMINING /?ELS43 + PRINTI "Floyd is a multi-purpose robot with slightly-crossed eyes and a lopsided grin." + RTRUE +?ELS43: PRINTI "Floyd is here, also looking around the room." + RTRUE + + + .FUNCT FLOYD-TAKE-LEASH + ZERO? HANGING-IN-AIR /?ELS5 + PRINTR """Floyd can't until you let go!""" +?ELS5: PRINTR "Floyd grabs the leash and gets pulled up into the air. ""Wheee!"" Then his grip slips and he clatters to the deck. ""Oops! More dents!""" + + + .FUNCT I-FLOYD,OBJ=0 + CALL QUEUE,I-FLOYD,-1 + FSET? FLOYD,TOUCHBIT /?ELS3 + FSET FLOYD,TOUCHBIT + FSET FLOYD,TRYTAKEBIT + PRINTI " The third robot looks up from his marbles, jumps to his feet, and starts waving wildly. It's Floyd, your robotic companion from Resida! You've seen him only occasionally since he opted to follow you aboard the Duffy those five long years ago." + CRLF + JUMP ?CND1 +?ELS3: ZERO? ROBOT-PICKED \?ELS5 + PRINTI " Floyd jumps up and down saying, ""Oh boy oh boy oh boy pick Floyd pick Floyd pick Floyd!""" + CRLF + JUMP ?CND1 +?ELS5: ZERO? FLOYD-ANGUISHED /?ELS7 + CALL VISIBLE?,FLOYD + ZERO? STACK \?CND9 + SET 'FLOYD-ANGUISHED,FALSE-VALUE +?CND9: SET 'FLOYD-FOLLOW,FALSE-VALUE + RFALSE +?ELS7: CALL VISIBLE?,FLOYD + ZERO? STACK /?ELS13 + FSET? FLOYD,ACTIVEBIT \FALSE + IN? OSTRICH,HERE \?ELS19 + ZERO? OSTRICH-COMMENT \?ELS19 + SET 'OSTRICH-COMMENT,TRUE-VALUE + PRINTI " Floyd looks at the ostrich with breathless excitement. ""Wow! An elephant!""" + CRLF + JUMP ?CND1 +?ELS19: FSET? HERE,FLOYDBIT /?ELS23 + ZERO? FLOYD-SPOKE \?ELS23 + RANDOM 100 + LESS? 6,STACK /?ELS23 + REMOVE FLOYD + PRINTI " " + IN? PLATO,HERE \?ELS28 + SET 'POSTPONE-ATTACK,TRUE-VALUE + REMOVE PLATO + GRTR? ROBOT-EVILNESS,8 \?ELS31 + PRINTI """Let us take a stroll, Floyd,"" says Plato, tucking his book under one arm. ""Tagging along after this simpleton human is becoming tiresome."" He breezes out. Floyd hesitates, then follows." + CRLF + JUMP ?CND1 +?ELS31: RANDOM 100 + LESS? 50,STACK \?THN34 + EQUAL? HERE,LIBRARY \?ELS33 +?THN34: PRINTI """Hey, Plato!"" says Floyd. ""Play Hider-and-Seeker with Floyd?"" Plato glances up from his book, nods, and says, ""I do believe that I can spare a few millichrons for a relaxing bit of sport."" Floyd bounds away, with Plato a bit behind. From out of sight, Floyd's voice faintly echoes back to you: ""Ollie ollie oxen free!""" + CRLF + JUMP ?CND1 +?ELS33: PRINTI "Plato reaches the last page of his book. ""Heavens! It appears to be time for another jaunt to the library. Would you care to accompany me, my boisterous friend?"" + ""Oh boy yessiree!"" says Floyd, bounding off after Plato. ""I hope they have copies of my favorite comic, THE ADVENTURES OF LANE MASTODON!""" + CRLF + JUMP ?CND1 +?ELS28: PRINTI "Floyd says, ""Floyd going exploring. See you later."" He glides out of the room." + CRLF + JUMP ?CND1 +?ELS23: RANDOM 100 + LESS? 45,STACK /?CND1 + ZERO? FLOYD-SPOKE \?CND1 + IN? FLOYD,HERE \?CND1 + IN? PROTAGONIST,HERE \?CND1 + ZERO? HANGING-IN-AIR \?CND1 + ZERO? LIT /?CND1 + FIRST? HERE >OBJ /?KLU182 +?KLU182: ZERO? OBJ /?ELS46 + FSET? OBJ,TOUCHBIT \?ELS46 + FSET? OBJ,TAKEBIT \?ELS46 + EQUAL? OBJ,OSTRICH-NIP,SPACESUIT /?ELS46 + EQUAL? OBJ,DETONATOR,TIMER,EXPLOSIVE /?ELS46 + CALL CCOUNT,FLOYD + LESS? STACK,4 \?ELS46 + RANDOM 100 + LESS? 6,STACK /?ELS46 + MOVE OBJ,FLOYD + PRINTI " Floyd picks up" + CALL TPRINT,OBJ + PRINTI ", examines it, and tucks " + FSET? OBJ,PLURALBIT \?ELS51 + PRINTI "them" + JUMP ?CND49 +?ELS51: PRINTI "it" +?CND49: PRINTI " under his arm." + CRLF + JUMP ?CND1 +?ELS46: FIRST? FLOYD \?ELS55 + RANDOM 100 + LESS? 6,STACK /?ELS55 + FIRST? FLOYD >OBJ /?KLU183 +?KLU183: NEXT? OBJ \?CND58 + RANDOM 100 + LESS? 60,STACK /?CND58 + NEXT? OBJ >OBJ /?CND58 +?CND58: MOVE OBJ,HERE + PRINTI " Floyd drops" + CALL TPRINT,OBJ + PRINTI " he was carrying." + CRLF + JUMP ?CND1 +?ELS55: FIRST? FLOYD \?ELS64 + RANDOM 100 + LESS? 2,STACK /?ELS64 + FIRST? FLOYD >OBJ /?KLU185 +?KLU185: NEXT? OBJ \?CND67 + RANDOM 100 + LESS? 60,STACK /?CND67 + NEXT? OBJ >OBJ /?CND67 +?CND67: PRINTI " Floyd moves" + CALL TPRINT,OBJ + PRINTI " in a wavering course through the air, making a roaring noise like a rocket exhaust." + CRLF + JUMP ?CND1 +?ELS64: IN? PLATO,HERE \?ELS73 + RANDOM 100 + LESS? 70,STACK /?ELS73 + PRINTI " " + CALL PICK-ONE,PLATOISMS + PRINT STACK + PRINT PERIOD-CR + JUMP ?CND1 +?ELS73: PRINTI " Floyd " + RANDOM 100 + LESS? 7,STACK /?ELS80 + SET 'AWAITING-REPLY,4 + ADD C-ELAPSED,2 + CALL QUEUE,I-REPLY,STACK + PRINTI "says, ""Hey! Wanna play Hucka-Bucka-Beanstalk?""" + CRLF + JUMP ?CND1 +?ELS80: CALL PICK-ONE,FLOYDISMS + PRINT STACK + PRINT PERIOD-CR + JUMP ?CND1 +?ELS13: FSET? FLOYD,ACTIVEBIT /?ELS84 + EQUAL? HERE,VACUUM-STORAGE,AIRLOCK /FALSE + FSET FLOYD,ACTIVEBIT + FSET FLOYD,ACTORBIT + PRINTI " Floyd bounds up to you" + PRINT HOPPING-MAD + ZERO? PLATO-INTRODUCED /?ELS90 + PRINTI " Plato strolls in and gives Floyd a pat. ""I reactivated the little fellow; I hope you don't mind.""" + CRLF + JUMP ?CND88 +?ELS90: PRINTI " Another robot wanders in behind Floyd and notices you." + CRLF + CALL I-PLATO,TRUE-VALUE + PRINTI " Plato motions toward Floyd. ""I presume you know this playful little fellow. Someone had deactivated him, so I rectified the situation.""" + CRLF +?CND88: MOVE PLATO,HERE + MOVE FLOYD,HERE + JUMP ?CND1 +?ELS84: GRTR? ROBOT-EVILNESS,16 \?ELS95 + MOVE FLOYD,FACTORY + EQUAL? HERE,EAST-JUNCTION,LEVEL-FIVE \?ELS100 + PUSH SOUTH-CONNECTION + JUMP ?CND96 +?ELS100: EQUAL? HERE,SOUTH-JUNCTION,NORTH-JUNCTION \?ELS102 + PUSH EAST-CONNECTION + JUMP ?CND96 +?ELS102: RANDOM 100 + LESS? 25,STACK /?ELS104 + PUSH SOUTH-JUNCTION + JUMP ?CND96 +?ELS104: RANDOM 100 + LESS? 33,STACK /?ELS106 + PUSH EAST-JUNCTION + JUMP ?CND96 +?ELS106: RANDOM 100 + LESS? 50,STACK /?ELS108 + PUSH NORTH-JUNCTION + JUMP ?CND96 +?ELS108: PUSH LEVEL-FIVE +?CND96: CALL ROB,FLOYD,STACK + MOVE STUN-GUN,FLOYD + CALL DEQUEUE,I-FLOYD + CALL DEQUEUE,I-ROBOT-EVILNESS + RFALSE +?ELS95: ZERO? FLOYD-FOLLOW /?ELS112 + EQUAL? HERE,AIRLOCK \?ELS112 + PRINTI " Floyd calls from above, """ + ZERO? PLATO-INTRODUCED /?ELS117 + ZERO? PLATO-ATTACK-COUNTER \?ELS117 + PRINTI "We" + JUMP ?CND115 +?ELS117: PRINTC 73 +?CND115: PRINTI "'ll wait here; it doesn't look like there's room in that phone booth for " + ZERO? PLATO-INTRODUCED /?ELS124 + ZERO? PLATO-ATTACK-COUNTER \?ELS124 + PRINTI "all" + JUMP ?CND122 +?ELS124: PRINTI "both" +?CND122: PRINTI " of us.""" + CRLF + JUMP ?CND1 +?ELS112: ZERO? FLOYD-FOLLOW /?ELS130 + RANDOM 100 + LESS? 80,STACK /?ELS130 + PRINTI " Floyd " + ZERO? PLATO-INTRODUCED /?ELS135 + ZERO? PLATO-ATTACK-COUNTER \?ELS135 + MOVE PLATO,HERE + PRINTI "and Plato follow" + JUMP ?CND133 +?ELS135: PRINTI "follows" +?CND133: MOVE FLOYD,HERE + PRINTI " you." + CRLF + JUMP ?CND1 +?ELS130: EQUAL? HERE,SPACETRUCK,ELEVATOR,BRIG /?THN142 + EQUAL? HERE,ARMORY \?ELS141 +?THN142: PRINTI " Floyd bounces in" + ZERO? PLATO-INTRODUCED /?CND144 + ZERO? PLATO-ATTACK-COUNTER \?CND144 + MOVE PLATO,HERE + PRINTI ", followed at a more leisurely pace by Plato" +?CND144: PRINTI ". ""Hey, wait for " + ZERO? PLATO-INTRODUCED /?ELS151 + ZERO? PLATO-ATTACK-COUNTER \?ELS151 + MOVE PLATO,HERE + PRINTI "us" + JUMP ?CND149 +?ELS151: PRINTI "Floyd" +?CND149: MOVE FLOYD,HERE + PRINTI "!"" he yells." + CRLF + JUMP ?CND1 +?ELS141: RANDOM 100 + LESS? 17,STACK /?CND1 + ZERO? LIT /?CND1 + EQUAL? HERE,AIRLOCK,VACUUM-STORAGE /?CND1 + PRINTI " Floyd " + ZERO? PLATO-INTRODUCED \?ELS162 + FSET? LEVEL-FIVE,TOUCHBIT \?ELS162 + RANDOM 100 + LESS? 50,STACK /?ELS162 + PRINTI "dashes into view, followed by a slightly older-looking robot. ""Look, Floyd found a new friend,"" Floyd says with unbounded exuberance." + CRLF + CALL I-PLATO,TRUE-VALUE + JUMP ?CND160 +?ELS162: RANDOM 100 + LESS? 15,STACK /?ELS169 + PRINTI "rushes into the room and barrels into you. ""Oops, sorry,"" he says. ""Floyd not looking at where he was going to.""" + JUMP ?CND167 +?ELS169: PRINTI "bounds into the room. ""Floyd here now!"" he cries." +?CND167: ZERO? PLATO-INTRODUCED /?CND172 + ZERO? PLATO-ATTACK-COUNTER \?CND172 + MOVE PLATO,HERE + PRINTI " You notice that Plato has also roamed into view behind Floyd, once again absorbed in his reading." +?CND172: CRLF +?CND160: MOVE FLOYD,HERE + ZERO? HANGING-IN-AIR /?CND1 + ZERO? HANGING-COMMENT \?CND1 + SET 'FLOYD-SPOKE,TRUE-VALUE + CALL FLOYDS-HANGING-IN-AIR-COMMENT +?CND1: SET 'FLOYD-SPOKE,FALSE-VALUE + SET 'FLOYD-FOLLOW,FALSE-VALUE + RETURN FLOYD-FOLLOW + + + .FUNCT HELEN-F + EQUAL? HELEN,WINNER \?ELS5 + EQUAL? PRSA,V?HELLO \?ELS10 + PRINTR """Mutual, I'm sure.""" +?ELS10: EQUAL? PRSA,V?FOLLOW,V?WALK \?ELS12 + PRINTR """I'm supposta stay with any human I'm assigned to.""" +?ELS12: PRINTI "You've strayed too far from simple form-sorting to interest Helen." + CRLF + CALL STOP + RSTACK +?ELS5: EQUAL? PRSA,V?GIVE \?ELS16 + EQUAL? PRSO,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM,ROBOT-USE-AUTHORIZATION-FORM,ASSIGNMENT-COMPLETION-FORM \?ELS16 + CALL CONFETTI,PRSO + RSTACK +?ELS16: EQUAL? PRSA,V?ON,V?OFF \?ELS20 + PRINTR "Being unfamiliar with this model robot, you can't find the on-off switch." +?ELS20: EQUAL? PRSA,V?OPEN \?ELS22 + PRINTR "There are no visible compartments." +?ELS22: EQUAL? PRSA,V?PICK \FALSE + CALL PICK-ROBOT + RSTACK + + + .FUNCT REX-F + EQUAL? REX,WINNER \?ELS5 + EQUAL? PRSA,V?HELLO \?ELS10 + PRINTR """Yo.""" +?ELS10: EQUAL? PRSA,V?FOLLOW,V?WALK \?ELS12 + PRINTR """I'll follow if I gets assigned ta ya.""" +?ELS12: PRINTI "Rex merely looks confused." + CRLF + CALL STOP + RSTACK +?ELS5: EQUAL? PRSA,V?OPEN,V?ON,V?OFF \?ELS16 + CALL PERFORM-PRSA,HELEN + RSTACK +?ELS16: EQUAL? PRSA,V?PICK \FALSE + CALL PICK-ROBOT + RSTACK + + + .FUNCT I-OTHER-ROBOT + IN? ROBOT-PICKED,HERE /FALSE + MOVE ROBOT-PICKED,HERE + EQUAL? HERE,CARGO-BAY-ENTRANCE \?ELS10 + EQUAL? ROBOT-PICKED,REX \?ELS10 + CALL JIGS-UP,STR?182 + RSTACK +?ELS10: PRINTR " Helen obediently follows you." + + + .FUNCT CONFETTI,FORM-NAME + REMOVE FORM-NAME + PRINTI "In a spasm of vocational enthusiasm, Helen tries to burst and decollate your " + PRINTD FORM-NAME + PRINTR ", leaving nothing but some useless confetti." + + + .FUNCT PICK-ROBOT + EQUAL? PRSO,ROBOT-PICKED \?ELS5 + PRINT SENILITY-STRIKES + RTRUE +?ELS5: ZERO? ROBOT-PICKED /?ELS7 + PRINTI "You already picked " + PRINTD ROBOT-PICKED + PRINT PERIOD-CR + RTRUE +?ELS7: PRINTR "Use the automated robot selection equipment." + + + .FUNCT CARGO-BAY-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This huge airlock is essentially a giant loading dock, where truckloads of forms arrive from various printing planets throughout the sector and are immediately distributed throughout the administrative deck. The only exit on foot is back the way you came. A spacetruck, its hatch " + CALL OPEN-CLOSED,SPACETRUCK-HATCH + PRINTI ", waits in the cargo bay." + RTRUE + + + .FUNCT SPACETRUCK-OBJECT-F + EQUAL? PRSA,V?WALK-TO,V?ENTER \?ELS5 + EQUAL? HERE,SPACETRUCK \?ELS10 + PRINT LOOK-AROUND + RTRUE +?ELS10: CALL DO-WALK,P?IN + RSTACK +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS14 + EQUAL? HERE,SPACETRUCK \?ELS19 + CALL DO-WALK,P?OUT + RSTACK +?ELS19: PRINT LOOK-AROUND + RTRUE +?ELS14: EQUAL? PRSA,V?EXAMINE \?ELS23 + EQUAL? HERE,SPACETRUCK \?ELS28 + CALL V-LOOK + RSTACK +?ELS28: CALL PERFORM,V?EXAMINE,SPACETRUCK-HATCH + RTRUE +?ELS23: EQUAL? PRSA,V?ON,V?LAUNCH \?ELS32 + EQUAL? HERE,SPACETRUCK /?ELS37 + PRINTR "You're not even in it!" +?ELS37: GRTR? SPACETRUCK-COUNTER,0 \?ELS39 + PRINT SENILITY-STRIKES + RTRUE +?ELS39: PRINTR "That's what the slot and keypad are for!" +?ELS32: EQUAL? PRSA,V?SEARCH \FALSE + CALL PERFORM,V?SEARCH,GLOBAL-ROOM + RTRUE + + + .FUNCT SPACETRUCK-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "This is a twelve-meter rig, the largest Class Three spacecraft made. In addition to the pilot and copilot seats, there's a Space Band Radio, a red button for activating the emergency beacon, plus a slot and keypad for controlling the autopilot. The hatch is " + CALL OPEN-CLOSED,SPACETRUCK-HATCH + PRINTI " and the rear of the truck is empty of cargo." + RTRUE +?ELS5: EQUAL? RARG,M-END \FALSE + IN? HELEN,HERE \FALSE + CALL VISIBLE?,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM + ZERO? STACK /FALSE + PRINTI " " + CALL CONFETTI,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM + RSTACK + + + .FUNCT SPACETRUCK-EXIT-F + FSET? SPACETRUCK-HATCH,OPENBIT /?ELS5 + CALL THIS-IS-IT,SPACETRUCK-HATCH + CALL DO-FIRST,STR?183 + RFALSE +?ELS5: EQUAL? SPACETRUCK-COUNTER,-1 \?ELS7 + RETURN CARGO-BAY +?ELS7: EQUAL? SPACETRUCK-COUNTER,5 \FALSE + EQUAL? COURSE-PICKED,RIGHT-COURSE \FALSE + RETURN DOCKING-BAY-2 + + + .FUNCT SPACETRUCK-HATCH-F + EQUAL? PRSA,V?OPEN \FALSE + GRTR? SPACETRUCK-COUNTER,-1 \FALSE + EQUAL? SPACETRUCK-COUNTER,5 \?CND8 + EQUAL? COURSE-PICKED,RIGHT-COURSE /FALSE +?CND8: PRINT YOU-CANT + PRINTR "open the hatch in deep space!" + + + .FUNCT PILOT-SEAT-F,VARG=0 + EQUAL? VARG,M-ENTER \FALSE + IN? FLOYD,HERE \FALSE + FSET? FLOYD,ACTIVEBIT \FALSE + PRINTI " Floyd clambers into the " + IN? PROTAGONIST,PILOT-SEAT \?ELS10 + MOVE FLOYD,COPILOT-SEAT + PRINTI "co" + JUMP ?CND8 +?ELS10: MOVE FLOYD,PILOT-SEAT +?CND8: PRINTD PILOT-SEAT + PRINTC 46 + EQUAL? SPACETRUCK-COUNTER,-1 \TRUE + SET 'FLOYD-SPOKE,TRUE-VALUE + SET 'AWAITING-REPLY,2 + ADD C-ELAPSED,2 + CALL QUEUE,I-REPLY,STACK + PRINTI " ""Let Floyd launch the spacetruck? Please? Floyd has not crashed a truck in over two weeks!""" + RTRUE + + + .FUNCT GENERIC-SEAT-F + EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \FALSE + LOC PROTAGONIST + EQUAL? STACK,PILOT-SEAT,COPILOT-SEAT \FALSE + LOC PROTAGONIST + RSTACK + + + .FUNCT RADIO-F + EQUAL? PRSA,V?LISTEN \?ELS5 + FSET? RADIO,ACTIVEBIT \?ELS10 + PRINTR """Hiss. Crackle.""" +?ELS10: PRINTR "The radio isn't on!" +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS14 + PRINTI "The radio seems to be damaged, because the microphone is missing. " + RFALSE +?ELS14: EQUAL? PRSA,V?ON \?ELS16 + CALL QUEUE,I-RADIO,-1 + RFALSE +?ELS16: EQUAL? PRSA,V?OFF \FALSE + CALL DEQUEUE,I-RADIO + RFALSE + + + .FUNCT I-RADIO + EQUAL? HERE,SPACETRUCK \FALSE + RANDOM 100 + LESS? 30,STACK /?ELS7 + PRINTI " The radio crackles to life. ""Breaker. " + CALL PICK-ONE,RADIO-LINES + PRINT STACK + PRINTR " Over.""" +?ELS7: RANDOM 100 + LESS? 20,STACK /FALSE + PRINTR " A country and western station drifts into tune for a moment, but then fades again." + + + .FUNCT RED-BUTTON-F + EQUAL? PRSA,V?PUSH \FALSE + EQUAL? SPACETRUCK-COUNTER,5 \?ELS10 + CALL RECORDING,STR?187 + RSTACK +?ELS10: PRINTR "You're not in trouble! Misuse of the emergency message beacon is a court martial offense!" + + + .FUNCT I-SPACETRUCK + CALL QUEUE,I-SPACETRUCK,-1 + INC 'SPACETRUCK-COUNTER + PRINTI " " + ZERO? SPACETRUCK-COUNTER \?ELS5 + PRINTI "The truck roars out of the cargo bay" + EQUAL? HERE,CARGO-BAY \?ELS10 + CALL JIGS-UP,STR?188 + RSTACK +?ELS10: FSET? SPACETRUCK-HATCH,OPENBIT \?ELS12 + CALL JIGS-UP,STR?189 + RSTACK +?ELS12: LOC PROTAGONIST + EQUAL? STACK,PILOT-SEAT,COPILOT-SEAT \?ELS14 + PRINTR ", slowly picking up speed. You settle back for the long trip." +?ELS14: CALL JIGS-UP,STR?190 + RSTACK +?ELS5: EQUAL? SPACETRUCK-COUNTER,1 \?ELS18 + CALL RECORDING,STR?191 + RSTACK +?ELS18: EQUAL? SPACETRUCK-COUNTER,2 \?ELS20 + PRINTR "There is a moment of stillness as the rear engines cut out. The moment ends as the braking rockets in front roar to life." +?ELS20: EQUAL? SPACETRUCK-COUNTER,3 \?ELS22 + CALL RECORDING,STR?192 + RSTACK +?ELS22: EQUAL? SPACETRUCK-COUNTER,4 \?ELS24 + EQUAL? COURSE-PICKED,RIGHT-COURSE \?ELS29 + PRINTI "A tiny star directly ahead grows brighter and resolves itself into a distant space station. The station grows rapidly larger as you hurtle towards it." + CRLF + CALL PERFORM,V?LOOK-INSIDE,WINDOW + PRINTR " With a final burst, the braking rockets bring you to a halt a few thousand meters from the station." +?ELS29: PRINTR "The forward braking rockets sputter off as the spacetruck comes to a dead stop in space. There is no space station, or any other sign of human civilization, in sight." +?ELS24: EQUAL? SPACETRUCK-COUNTER,5 \FALSE + EQUAL? COURSE-PICKED,RIGHT-COURSE \?ELS36 + CALL QUEUE,I-WELDER,-1 + CALL QUEUE,I-FLOYD,-1 + CALL QUEUE,I-PLATO,750 + CALL QUEUE,I-ROBOT-EVILNESS,1000 + MOVE PALLETS,SHIPPING-ROOM + ADD SCORE,5 >SCORE + PRINTI "The maneuvering thrusters kick on, nudging you toward the station. " + CALL RECORDING,STR?193 + PRINTI " The truck glides into the docking bay, and your stomach flips as the bay's arti-grav field comes on. The truck settles the last few centimeters to the floor, the bay floods with air, and a voice whispers, ""Stationfall."" Through the viewport, you see no one to meet you. Odd." + CRLF + JUMP ?CND34 +?ELS36: CALL RECORDING,STR?194 + CALL QUEUE,I-SUFFOCATE,1970 +?CND34: CALL DEQUEUE,I-SPACETRUCK + RSTACK + + + .FUNCT I-SUFFOCATE + CALL JIGS-UP,STR?195 + RSTACK + + + .FUNCT FOOD-KIT-F + EQUAL? PRSA,V?EMPTY \?ELS5 + FSET? FOOD-KIT,OPENBIT /?ELS10 + PRINTR "The kit is closed!" +?ELS10: FIRST? PRSO \FALSE + PRINTR "The goo, being gooey, sticks to the inside of the kit. You would probably have to shake the kit to get the goo out." +?ELS5: EQUAL? PRSA,V?OPEN \FALSE + CALL IN-VACUUM? + ZERO? STACK /FALSE + IN? FOOD-KIT,GRAY-GOO /?THN17 + IN? FOOD-KIT,ORANGE-GOO /?THN17 + IN? FOOD-KIT,BLUE-GOO \FALSE +?THN17: CALL SPACE-FOOD + RSTACK + + + .FUNCT IN-VACUUM? + EQUAL? HERE,VACUUM-STORAGE /TRUE + EQUAL? HERE,AIRLOCK \FALSE + FSET? OUTER-AIRLOCK-DOOR,OPENBIT \FALSE + RTRUE + + + .FUNCT SPACE-FOOD + REMOVE ORANGE-GOO + REMOVE BLUE-GOO + REMOVE GRAY-GOO + PRINTR "The food in the survival kit instantly crystallizes and drifts away." + + + .FUNCT GOO-F + EQUAL? PRSA,V?EAT \?ELS5 + CALL ULTIMATELY-IN?,FOOD-KIT,PROTAGONIST + ZERO? STACK \?ELS5 + CALL THIS-IS-IT,FOOD-KIT + PRINT YNH + CALL TRPRINT,FOOD-KIT + RSTACK +?ELS5: EQUAL? PRSA,V?DROP,V?TAKE \?ELS9 + EQUAL? PRSA,V?DROP \?ELS12 + PRINTI "The goo, being gooey, sticks where it is" + JUMP ?CND10 +?ELS12: EQUAL? PRSA,V?TAKE \?CND10 + PRINTI "It would ooze through your fingers" +?CND10: PRINTI ". You'll have to eat it right from" + CALL TRPRINT,FOOD-KIT + RSTACK +?ELS9: EQUAL? PRSA,V?FIND \FALSE + GET P-NAMW,0 + EQUAL? STACK,W?FOOD \FALSE + CALL PERFORM,V?SEARCH,GLOBAL-ROOM + RTRUE + + .ENDI diff --git a/ship.zil b/ship.zil new file mode 100644 index 0000000..236d93e --- /dev/null +++ b/ship.zil @@ -0,0 +1,1385 @@ +"SHIP for + STATIONFALL + (c) Copyright 1987 Infocom, Inc. All Rights Reserved." + + + +> + + + + + + + + + + + + + )> + )> + ) + ( + + ) + (T + + )>) + (T + )>)>> + + + + + + ) + (T + + + )>)>> + + + +> + + + +> + + + + )> + ) + ( + )>> + + FORM BOXED-FORMS-F) + (<> FORMS BOXED-FORMS-F)>)> + + + > + )>> + + + + + + ) + (T + )>) + ( + + + + )> + + >> + ) + ( + ) + ( + + ) + ( + ) + ( + + )>)>> + + + + SLOT SLOT-F) + (FIRST BIN BIN-F) + (SECOND BIN BIN-F) + (THIRD BIN BIN-F)>) + (ACTION ROBOT-POOL-F)> + + + >) + ( + ) + ( + >> + )>> + + <>> + > + <>> + >> + ) + ( + + >> + CR>) + ( + >> + CR>) + ( + >> + + ) + (T + )>) + ( + )>> + + + +) "AUX" X N TXT) + + )> + + ) + ( + + >> + + ) + (,FLOYD-ANGUISHED + + + ) + ( + > + + ) + (> + ) + (T + + + )> + )>) + ( + > + + + > + + > + + >> + + ) + (T + + )>) + ( + ) + (T + )>) + ( + > + + + > + ) + ( + + >> + ) + ( + + > + ) + ( + ,AWAITING-REPLY> + ) + ( + ,AWAITING-REPLY> + ) + ( + > + + ) + (T + )>) + ( + > + + ) + ( + > + ) + ( + > + ) + ( + > + ) + ( + + > + ) + ( + > + + + ) + (T + )>) + ( + > + + ) + ( + ) + ( + > + ) + ( + ) + ( + + + + ) + (T + )>) + (T + )>) + (T + + )>) + (> + > + + ) + ( + >> + ) + ( 50>> + > + > + ) + (,FLOYD-SHOT + + ) + (T + )>) + ( + + + + ) + (T + )>) + ( + ) + ( + + + + + ) + (T + )>) + ( + ) + ( + ) + ( + + ) + ( + + + ) + ( + + ) + (T + + + + )> + + > + + ) + (T + )> + + + )> + )>) + ( + ) + ( + ) + ( + ) + ( + + )> + + + ) + ( + ) + ( + > + + ) + ( + )>) + ( + ) + ( + ) + ( + ) + ( + > + + ) + ( + ) + ( + ) + ( + > + + ) + (T + + )>) + ( + > + + > + ) + ( + ) + ( + )>) + ;"following clauses are for when Floyd is off" + ( + + + + + + ) + ( + ) + ( + + ) + ( + )>> + +)) + > + ) + ( + > + ) + ( + >> + ) + ( + > + + > + + )> + ) + ( + + ) + (T + )> + + ) + (T + )>) + (> + ) + (,FLOYD-ANGUISHED + ) + (.EXAMINING + ) + (T + )>> + +) + (T + )>> + +> + +> ;"so Floyd doesn't do two things on the same turn" + +> ;"checks if Floyd was in room where you just were" + +> ;"true if Plato just died" + +)) + + > + + + ) + ( + ) + (,FLOYD-ANGUISHED + > + >)> + > + ) + ( + > + )> + + > + + ) + (> + + > + + + + + + + ) + ( + > + ) + (T + )>) + (T + )>) + ( + + + + + ,LIT> + > + + + > + > + 4> + > + + + + ) + (T + )> + ) + ( + > + > + + > + >)> + + ) + ( + > + > + + > + >)> + ) + ( + > + ,PERIOD-CR>) + (T + + + + > + ) + (T + ,PERIOD-CR>)>)>)>) + (> + + )> + + + + ) + (T + + + )> + + ) + ;"Floyd is active but not present" + ( + + + ,SOUTH-CONNECTION) + (<==? ,HERE ,SOUTH-JUNCTION ,NORTH-JUNCTION> + ,EAST-CONNECTION) + ( + ,SOUTH-JUNCTION) + ( + ,EAST-JUNCTION) + ( + ,NORTH-JUNCTION) + (T + ,LEVEL-FIVE)>> + + + + ) + (> + + > + ) + (T + )> + + > + ) + (T + )> + ) + (> + + > + + ) + (T + )> + + ) + ( + + > + + )> + + > + + ) + (T + )> + + ) + ( + ,LIT + >> + + + + > + + ) + (T + + ) + (T + )> + > + + )> + )> + + > + + )>)> + > + >> + +> + +> + + + + + + ) + ( + ) + (T + + )>) + ( + > + ) + ( + ) + ( + ) + ( + )>> + + + + + + ) + ( + ) + (T + + )>) + ( + ) + ( + )>> + +> + + + > + ) + (T + )>)>> + + + > + + + ) + (,ROBOT-PICKED + ) + (T + )>> + + + + + + + )>> + +; + +;)) + + > + > + + > + ) + (> + ) + (> + + ) + (T + + + + )>) + ( + )>> + + + + + + ) + (T + )>) + ( + + ) + (T + )>) + ( + + ) + (T + + )>) + ( + > + ) + ( + ) + (T + )>) + ( + + )>> + + SLOT SLOT-F) + (RED BUTTON RED-BUTTON-F)>)> + + + + + ) + ( + + > + + )>> + +> + + + ) + ( + ,CARGO-BAY) + ( + > + ,DOCKING-BAY-2)>> + + + + + > + + > + ;"you've arrived at the station")> + )>> + + + + + +)) + + + > + + + + ) + (T + )> + + + + + > + )> + )>> + + + ,PILOT-SEAT ,COPILOT-SEAT>> + >) + (T + )>> + + + + + + ) + (T + )>) + ( + + ) + ( + + ) + ( + + )>> + +> + ) + ( + " Over.\"" CR>) + ( + )>> + +> + + + + go wrong +go wrong go wrong..">) + (T + )>)>> + + + + + + + + + > + + + + + ) + ( + ) + ( ,PILOT-SEAT ,COPILOT-SEAT> + ) + (T + )>) + ( + ) + ( + ) + ( + ) + ( + + + + ) + (T + )>) + ( + + + ;"to get ints. in the proper order" + + + + > + + + ) + (T + + )> + )>> + +> + + + + + > + ) + ( + )>) + ( + + + + >> + )>> + + + + >> + ) + (T + )>> + + + + + > + + + + + + + + + >> + + ) + ( + + ) + ( + )> + ) + ( + ,W?FOOD>> + + )>> \ No newline at end of file diff --git a/station.zap b/station.zap new file mode 100644 index 0000000..287582a --- /dev/null +++ b/station.zap @@ -0,0 +1,2074 @@ + + + .FUNCT DOCKING-BAY-2-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is a tall, narrow bay. Your spacetruck is docked here. It's hatch is " + CALL OPEN-CLOSED,SPACETRUCK-HATCH + PRINTI ". To the east is the huge door into the station." + RTRUE + + + .FUNCT LEVEL-FIVE-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "You are in the central lobby of the middle level of the space station. The elevator " + EQUAL? ELEVATOR-LEVEL,5 /?CND6 + PRINTI "shaft " +?CND6: PRINTI "and call button lie to the east, and the corridor heads around the shaft to the northeast and southeast. Doors lead north and west, and a ladder leads both upward and downward." + RTRUE + + + .FUNCT JAMMER-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "The jammer is a black box with a short antenna. It has " + IN? TWENTY-PRONG-FROMITZ-BOARD,JAMMER \?ELS8 + PRINTI "a " + PRINTD TWENTY-PRONG-FROMITZ-BOARD + PRINTI " plugged into it" + JUMP ?CND6 +?ELS8: PRINTI "twenty tiny sockets on one side" +?CND6: PRINTI ". The jammer, which is o" + FSET? JAMMER,ACTIVEBIT \?ELS13 + PRINTC 110 + JUMP ?CND11 +?ELS13: PRINTI "ff" +?CND11: PRINTI ", looks as if it can be set to any frequency between 0 and 1400; it is currently set to " + PRINTN JAMMER-SETTING + PRINT PERIOD-CR + RTRUE +?ELS5: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS17 + PRINT HUH + RTRUE +?ELS17: EQUAL? PRSA,V?PUT \?ELS19 + EQUAL? PRSI,JAMMER \?ELS19 + EQUAL? PRSO,TWENTY-PRONG-FROMITZ-BOARD /?ELS19 + CALL DOESNT-FIT,STR?203 + RSTACK +?ELS19: EQUAL? PRSA,V?CONNECT \?ELS23 + EQUAL? TWENTY-PRONG-FROMITZ-BOARD,PRSO,PRSI \?ELS23 + CALL PERFORM,V?PUT,TWENTY-PRONG-FROMITZ-BOARD,JAMMER + RTRUE +?ELS23: EQUAL? PRSA,V?CONNECT \?ELS27 + EQUAL? TWELVE-PRONG-FROMITZ-BOARD,PRSO,PRSI \?ELS27 + CALL PERFORM,V?PUT,TWELVE-PRONG-FROMITZ-BOARD,JAMMER + RTRUE +?ELS27: EQUAL? PRSA,V?SET \?ELS31 + EQUAL? PRSO,JAMMER \?ELS31 + ZERO? PRSI \?ELS38 + PRINT NEXT-TIME + RTRUE +?ELS38: EQUAL? PRSI,INTNUM /?ELS40 + PRINT HUH + RTRUE +?ELS40: EQUAL? P-NUMBER,JAMMER-SETTING \?ELS42 + PRINT SENILITY-STRIKES + RTRUE +?ELS42: SET 'JAMMER-SETTING,P-NUMBER + PRINTI "You set the jammer to " + PRINTN JAMMER-SETTING + PRINT PERIOD-CR + RTRUE +?ELS31: EQUAL? PRSA,V?COUNT \FALSE + CALL NOUN-USED,W?SOCKETS,JAMMER + ZERO? STACK /FALSE + PRINTR "20." + + + .FUNCT DISPENSER-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + GETP DISPENSER,P?FDESC + PRINT STACK + CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?PUT \?ELS7 + EQUAL? PRSI,DISPENSER \?ELS7 + EQUAL? PRSO,COIN \?ELS14 + REMOVE COIN + FSET DISPENSER,TOUCHBIT + PRINTR """Clink!"" The coin drops into the slot." +?ELS14: CALL DOESNT-FIT,STR?208 + RSTACK +?ELS7: EQUAL? PRSA,V?DRILL \?ELS18 + PRINTI "We quote from the Stellar Patrol Demolitions Training Manual, Edition 3754-GS108. ""Why You Should Never Drill Into Active Machinery: Reason #7. You may" + PRINT STRIKE-POWER-SOURCE + PRINTI """ + As you drill into the dispenser, you" + PRINT STRIKE-POWER-SOURCE + CALL JIGS-UP,STR?209 + RSTACK +?ELS18: EQUAL? PRSA,V?SHOOT \?ELS20 + REMOVE DISPENSER + PRINTR "Okay, but you'll have to answer to the Stellar Patrol Dispensing Machine Company... BLAM! The dispenser is history." +?ELS20: EQUAL? PRSA,V?MUNG,V?KILL,V?KICK /?THN25 + EQUAL? PRSA,V?PUSH,V?SHAKE \?ELS22 +?THN25: FIRST? DISPENSER \?ELS22 + PRINTI "This fails to dislodge the " + FIRST? DISPENSER /?KLU29 +?KLU29: PRINTD STACK + PRINTR ", but it does help relieve some of your aggressive feelings toward the stupid dispenser." +?ELS22: EQUAL? PRSA,V?LOOK-INSIDE \FALSE + PRINT ONLY-BLACKNESS + RTRUE + + + .FUNCT COIN-SLOT-F + IN? DISPENSER,HERE /?ELS5 + CALL CANT-SEE,PSEUDO-OBJECT + RSTACK +?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS7 + PRINT ONLY-BLACKNESS + RTRUE +?ELS7: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,PSEUDO-OBJECT \FALSE + CALL PERFORM,V?PUT,PRSO,DISPENSER + RTRUE + + + .FUNCT DISPENSER-SCREEN-F + IN? DISPENSER,HERE /?ELS5 + CALL CANT-SEE,PSEUDO-OBJECT + RSTACK +?ELS5: EQUAL? PRSA,V?READ,V?EXAMINE \FALSE + PRINTR """--- STELLAR PATROL VENDO-MATIC --- + all items: 1 galakmid +1. Patrol Songbook (SOLD OUT) +2. Set of Postcards (SOLD OUT) +3. ID Card Polish (SOLD OUT) +4. Pilot's Compass (SOLD OUT) +5. Patrol Pen & Pencil Set (SOLD OUT) +6. All-Purpose Timer +7. Pocket Computer (SOLD OUT) +8. Birth Control Pills (SOLD OUT) +9. Large Drill Bit""" + + + .FUNCT DISPENSER-HOLE-F + IN? DISPENSER,HERE /?ELS5 + CALL CANT-SEE,PSEUDO-OBJECT + RSTACK +?ELS5: EQUAL? PRSA,V?REACH-IN \?ELS7 + IN? TIMER,DISPENSER \?ELS12 + PRINTR "You can just feel something with your fingertips, but you can't get a grip on it!" +?ELS12: PRINTR "You reach as far into the dispenser as you can, but feel nothing." +?ELS7: EQUAL? PRSA,V?LOOK-INSIDE \?ELS16 + PRINT ONLY-BLACKNESS + RTRUE +?ELS16: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,PSEUDO-OBJECT \FALSE + PRINTI "You shove" + CALL TPRINT-PRSO + PRINTI " up into the hole. " + EQUAL? PRSO,OSTRICH-NIP \?ELS25 + IN? OSTRICH,HERE \?ELS25 + PRINTI "The ostrich sticks its head up the hole after the nip, gives a squawk of surprise, and jerks back out. A moment later, the nip" + FIRST? DISPENSER \?CND28 + INC 'ROBOT-EVILNESS + ADD SCORE,6 >SCORE + PRINTI " and a " + FIRST? DISPENSER /?KLU33 +?KLU33: PRINTD STACK + FIRST? DISPENSER /?KLU34 +?KLU34: MOVE STACK,HERE +?CND28: PRINTI " pop out and land on the deck. " + CALL PERFORM,V?GIVE,OSTRICH-NIP,OSTRICH + RTRUE +?ELS25: MOVE PRSO,HERE + PRINTR "A moment later, it drops out and lands on the floor." + + + .FUNCT TIMER-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "As advertised, it is a standard, all-purpose timer. The timer, which can be set to any multiple of ten between 0 and 100, is currently set to " + PRINTN TIMER-SETTING + PRINTI ". The timer " + ZERO? TIMER-CONNECTED /?ELS8 + PRINTI "is connected to a detonator" + JUMP ?CND6 +?ELS8: PRINTI "has one connection point" +?CND6: CALL QUEUED?,I-TIMER + ZERO? STACK /?CND12 + PRINTI ", and is ticking loudly" +?CND12: PRINT PERIOD-CR + RTRUE +?ELS5: EQUAL? PRSA,V?SET \?ELS16 + ZERO? PRSI \?ELS21 + PRINT NEXT-TIME + RTRUE +?ELS21: EQUAL? PRSI,INTNUM /?ELS23 + PRINTR "You can only set the timer to a number!" +?ELS23: GRTR? P-NUMBER,100 \?ELS25 + PRINTR "The timer only has settings up to 100." +?ELS25: MOD P-NUMBER,10 + ZERO? STACK /?ELS27 + PRINTR "You can only set the timer to increments of 10." +?ELS27: SET 'TIMER-SETTING,P-NUMBER + PRINTI "You set the timer to " + PRINTN TIMER-SETTING + GRTR? TIMER-SETTING,0 \?ELS32 + CALL QUEUE,I-TIMER,11 + PRINTI ". Instantly, it begins ticking loudly" + JUMP ?CND30 +?ELS32: CALL DEQUEUE,I-TIMER +?CND30: PRINT PERIOD-CR + RTRUE +?ELS16: EQUAL? PRSA,V?DISCONNECT \?ELS36 + ZERO? PRSI \?ELS36 + ZERO? TIMER-CONNECTED /?ELS36 + CALL PERFORM-PRSA,TIMER,DETONATOR + RSTACK +?ELS36: EQUAL? PRSA,V?OFF \?ELS40 + CALL QUEUED?,I-TIMER + ZERO? STACK /?ELS40 + SET 'P-NUMBER,0 + CALL PERFORM,V?SET,TIMER,INTNUM + RTRUE +?ELS40: EQUAL? PRSA,V?LISTEN \FALSE + CALL QUEUED?,I-TIMER + ZERO? STACK /FALSE + PRINTR """Tick, tick...""" + + + .FUNCT I-TIMER,?TMP1 + SUB TIMER-SETTING,10 >TIMER-SETTING + ZERO? TIMER-SETTING \?ELS3 + CALL DEQUEUE,I-TIMER + JUMP ?CND1 +?ELS3: CALL QUEUE,I-TIMER,10 +?CND1: CALL VISIBLE?,TIMER + ZERO? STACK /?CND6 + PRINTI " The timer reaches " + PRINTN TIMER-SETTING + ZERO? TIMER-SETTING \?CND9 + PRINTI " and stops ticking" +?CND9: PRINTC 46 +?CND6: ZERO? TIMER-SETTING \?CND12 + ZERO? TIMER-CONNECTED /?CND12 + LOC DIODE-M >?TMP1 + LOC DIODE-J + EQUAL? DETONATOR,?TMP1,STACK \?CND12 + IN? DIODE-J,DETONATOR \?ELS19 + REMOVE DIODE-J + CALL VISIBLE?,TIMER + ZERO? STACK /?CND12 + PRINTI " You hear a sizzling sound from the detonator, and a burnt odor assaults your nose." + JUMP ?CND12 +?ELS19: ZERO? EXPLOSIVE-CONNECTED /?ELS24 + IN? EXPLOSIVE,DRILLED-HOLE \?ELS28 + RANDOM 200 + ADD STACK,20 + CALL QUEUE,I-LIGHTS-OUT,STACK + FSET SAFE,OPENBIT + FSET SAFE,TOUCHBIT + FCLEAR SAFE,LOCKEDBIT + JUMP ?CND26 +?ELS28: IN? EXPLOSIVE,HERE /?CND26 + LOC EXPLOSIVE + REMOVE STACK +?CND26: CALL VISIBLE?,TIMER + ZERO? STACK /?ELS33 + PRINTI " The explosive fulfills its destiny by exploding. You simultaneously fulfill your own destiny: turning into itsy-bitsy pieces of " + PRINT LFC + CALL JIGS-UP,STR?44 + JUMP ?CND31 +?ELS33: CALL NEXT-ROOM?,TIMER + ZERO? STACK /?ELS35 + PRINTI " You hear a deafening explosion from very nearby!" + CRLF + JUMP ?CND31 +?ELS35: PRINTI " You hear a loud but distant explosion." + CRLF +?CND31: REMOVE TIMER + REMOVE EXPLOSIVE + REMOVE DETONATOR + JUMP ?CND12 +?ELS24: CALL VISIBLE?,TIMER + ZERO? STACK /?CND12 + PRINTI " You hear a click from the detonator." +?CND12: CALL VISIBLE?,TIMER + ZERO? STACK /FALSE + CRLF + RTRUE + + + .FUNCT CELL-F + EQUAL? PRSA,V?OPEN,V?WALK-TO,V?ENTER /?THN6 + EQUAL? PRSA,V?UNLOCK \FALSE +?THN6: PRINTR "The cells are all locked with high-security locks." + + + .FUNCT BRIG-LOCK-F + EQUAL? PRSA,V?PICK,V?UNLOCK,V?OPEN \FALSE + CALL YUKS + RSTACK + + + .FUNCT EAST-CONNECTION-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "The corridor widens to the east, the connection point for a Military Sub-Module. An iris hatch at the connection point is " + FSET? IRIS-HATCH,OPENBIT \?ELS8 + PRINTI "frozen open, revealing a small, grimy connector" + JUMP ?CND6 +?ELS8: PRINTI "shut tight" +?CND6: PRINTI ". Next to the hatch is a slot. There is a door northwest of here, and doorways to the south and southwest." + RTRUE + + + .FUNCT STATION-CONTROL-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is the nerve center of the space station, where every system can be monitored and controlled. " + LESS? DAY,3 \?CND6 + EQUAL? DAY,1 \?ELS11 + PRINTI "A couple" + JUMP ?CND9 +?ELS11: EQUAL? DAY,2 \?CND9 + PRINTI "Several" +?CND9: PRINTI " of the monitors are blinking red. " +?CND6: PRINTI "The exits are south, northeast and west." + RTRUE + + + .FUNCT SYSTEM-MONITORS-F + EQUAL? PRSA,V?READ,V?EXAMINE \FALSE + PRINTI "System: Status: +COMMUNICATION " + GRTR? DAY,2 \?ELS8 + PRINTI "GREEN" + JUMP ?CND6 +?ELS8: PRINTI "RED" +?CND6: PRINTI " +LIFE SUPPORT " + EQUAL? DAY,2 \?ELS13 + LESS? INTERNAL-MOVES,6500 \?ELS16 + PRINTI "YELLOW" + JUMP ?CND11 +?ELS16: PRINTI "RED" + JUMP ?CND11 +?ELS13: PRINTI "GREEN" +?CND11: PRINTI " +FOOD PRODUCTION " + GRTR? DAY,2 \?ELS23 + PRINTI "GREEN" + JUMP ?CND21 +?ELS23: PRINTI "RED" +?CND21: PRINTI " +GRAVITY " + EQUAL? DAY,2 \?ELS28 + PRINTI "YELLOW" + JUMP ?CND26 +?ELS28: PRINTI "GREEN" +?CND26: PRINTI " +COMPUTER GREEN +POWER " + EQUAL? DAY,2 \?ELS33 + LESS? INTERNAL-MOVES,4300 \?ELS36 + PRINTI "YELLOW" + JUMP ?CND31 +?ELS36: PRINTI "RED" + JUMP ?CND31 +?ELS33: PRINTI "GREEN" +?CND31: PRINTI " +PRINTING " + EQUAL? DAY,1 \?ELS43 + PRINTI "YELLOW" + JUMP ?CND41 +?ELS43: GRTR? DAY,3 \?ELS45 + PRINTI "GREEN" + JUMP ?CND41 +?ELS45: PRINTI "RED" +?CND41: CRLF + RTRUE + + + .FUNCT COMM-BUTTON-F + EQUAL? PRSA,V?TOUCH,V?PUSH \FALSE + PRINTI "The instant you touch the button, a powerful electric shock makes your arm jerk back." + GRTR? ROBOT-EVILNESS,13 \?ELS8 + CALL JIGS-UP,STR?216 + JUMP ?CND6 +?ELS8: GRTR? ROBOT-EVILNESS,7 \?CND6 + CALL CCOUNT,PROTAGONIST + GRTR? STACK,0 \?CND6 + CALL ROB,PROTAGONIST,HERE + PRINTI " The shock causes you to drop everything, and leaves your limbs twitching all over." +?CND6: CRLF + RTRUE + + + .FUNCT COMMANDERS-OFFICE-F,RARG + EQUAL? RARG,M-ENTER \?ELS5 + CALL ULTIMATELY-IN?,EXPLOSIVE + ZERO? STACK /?ELS5 + FSET EXERCISE-MACHINE,TOUCHBIT + MOVE EXERCISE-MACHINE,COMPUTER-CONTROL + RTRUE +?ELS5: EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is the Station Commander's HQ, with doors to the south and east, and doorways to the north and northwest." + IN? LOG-READER,HERE /TRUE + PRINTI " There's a black scar where the log reader once sat." + RTRUE + + + .FUNCT LOG-READER-F + EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5 + PRINT HUH + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7 + PRINTI "This simple device is for recording and reading log entries. It includes a tiny red button and a microphone/speaker. " + FSET? LOG-READER,ACTIVEBIT \?CND8 + IN? LOG-TAPE,LOG-READER \?CND8 + PRINTI "The red button is glowing. " +?CND8: PRINTI "At the moment, the log reader is o" + FSET? LOG-READER,ACTIVEBIT \?ELS15 + PRINTC 110 + JUMP ?CND13 +?ELS15: PRINTI "ff" +?CND13: PRINTI ", and there is " + IN? LOG-TAPE,LOG-READER \?ELS20 + PRINTC 97 + JUMP ?CND18 +?ELS20: PRINTI "no" +?CND18: PRINTR " log tape in it." +?ELS7: EQUAL? PRSA,V?PUT \?ELS24 + EQUAL? PRSO,LOG-TAPE /?ELS29 + CALL DOESNT-FIT,STR?218 + RSTACK +?ELS29: FSET? LOG-READER,ACTIVEBIT \FALSE + MOVE LOG-TAPE,LOG-READER + SET 'LOG-COUNTER,0 + CALL READ-LOG + RSTACK +?ELS24: EQUAL? PRSA,V?ON \?ELS33 + FSET? LOG-READER,ACTIVEBIT /?ELS33 + CALL QUEUE,I-LOG-READER,-1 + IN? LOG-TAPE,LOG-READER \FALSE + FSET LOG-READER,ACTIVEBIT + SET 'LOG-COUNTER,0 + CALL READ-LOG + RSTACK +?ELS33: EQUAL? PRSA,V?LISTEN \?ELS44 + GRTR? LOG-READER-COUNTER,11 \?ELS44 + PRINTR """Whine.""" +?ELS44: EQUAL? PRSA,V?TAKE \FALSE + PRINTR "It's bolted down." + + + .FUNCT LOG-READER-BUTTON-F + IN? LOG-READER,HERE /?ELS5 + CALL CANT-SEE,PSEUDO-OBJECT + RSTACK +?ELS5: EQUAL? PRSA,V?PUSH \FALSE + IN? LOG-TAPE,LOG-READER \?ELS12 + FSET? LOG-READER,ACTIVEBIT \?ELS12 + EQUAL? LOG-COUNTER,10 \?ELS19 + PRINTR "A mechanized voice from the log reader says, ""End of Log.""" +?ELS19: CALL READ-LOG + RSTACK +?ELS12: PRINT NOTHING-HAPPENS + RTRUE + + + .FUNCT READ-LOG + INC 'LOG-COUNTER + EQUAL? LOG-COUNTER,1 \?CND1 + PRINTI "A gravelly voice comes from the log reader: " +?CND1: PRINTC 34 + EQUAL? LOG-COUNTER,1 \?ELS6 + PRINTI "11349.12.2.3800: Some kripping joker has fouled up the elevator again! I have instructed Equipment Officer Mertzhoffer to lock up the elevator override machinery, and I'm putting the key in my safe! There will be no more elevator hacking aboard my station!" + JUMP ?CND4 +?ELS6: EQUAL? LOG-COUNTER,2 \?ELS8 + PRINTI "11349.12.2.5100: Reproductions Officer Hausberg reports that collater #22 is off-line for routine service. Estimates one or two days downtime. Also, unidentified craft detected in sector. No response to hailings. Sending Finsterwald to intercept." + JUMP ?CND4 +?ELS8: EQUAL? LOG-COUNTER,3 \?ELS10 + PRINTI "11349.12.2.6750: Unidentified craft towed to Docking Bay #1. It is a single-cabin vessel of unfamiliar alien origin. The only things aboard were the remains of one of the aliens, and a featureless pyramid. I'll leave it to the eggheads, I've got a problem of my own: a report that a used spaceship dealer in the village named Shady Dan is selling modified Patrol ID cards. Liason Officer Bumblewitz is investigating." + JUMP ?CND4 +?ELS10: EQUAL? LOG-COUNTER,4 \?ELS12 + PRINTI "11349.12.3.1900: Professor Blutz has back-plotted the course of the alien vessel. There are no star systems along the course; he theorizes that it may be of extra-galactic origin." + JUMP ?CND4 +?ELS12: EQUAL? LOG-COUNTER,5 \?ELS14 + PRINTI "11349.12.3.5100: No cooperation from Shady Dan, so I'm putting the village off-limits to station personnel. No more village entry forms will be validated." + JUMP ?CND4 +?ELS14: EQUAL? LOG-COUNTER,6 \?ELS16 + PRINTI "11349.12.3.5250: Some kripping joker snuck into my office and validated a whole batch of village entry forms! I won't take that kind of trot aboard my station! I'll hide the validation stamp under my bed until I figure out who's responsible. Also, I have given Professor Schmidt permission to move the alien pyramid to the " + PRINTD HOLDING-TANK + PRINTI " in the Sci Sub-Module for further study. Hmmm... This log reader is overheating. I'll have to dig out the spare." + JUMP ?CND4 +?ELS16: EQUAL? LOG-COUNTER,7 \?ELS18 + PRINTI "11349.12.3.7700: Equipment Officer Mertzhoffer informs me that there have been several unexplainable breakdowns in the Gymnastic Equipment and the Laundering Machinery. All very simple equipment; could it be sabotage? If so, how? Who? Why?" + JUMP ?CND4 +?ELS18: EQUAL? LOG-COUNTER,8 \?ELS20 + PRINTI "11349.12.4.1650: Emergency communication from the SPS Duffy. They are critically low on " + PRINT FORM-NAME + PRINTI ", and are sending someone over to pick up a truckload of them. Reproductions Officer Hausberg says that the #22 collater should be available to prepare the forms." + JUMP ?CND4 +?ELS20: EQUAL? LOG-COUNTER,9 \?ELS22 + PRINTI "11349.12.4.1850: Hausberg reports an unexpected shutdown of web-feeder #17. No apparent reason for the shutdown, and no warning, either. He says that one of his personnel almost lost an arm when it shut down. We may have to halt the entire plant to investigate. No telling how long... What the... Trot! Now the spare log reader is overheating, also!" + JUMP ?CND4 +?ELS22: PRINTI "11349.12.4.1900: One of the ensigns in the filing division was seriously injured when one of the " + PRINTD WELDER + PRINTI "s malfunctioned. She's in Sick Bay now, Doc says she should pull through. I've been in space for thirty-two years and I've never heard of a " + PRINTD WELDER + PRINTI " malfun... What the krip!..." +?CND4: PRINTC 34 + EQUAL? LOG-COUNTER,10 /?CND25 + CRLF + PRINTI " A mechanized voice from the log reader intones the single word ""More,"" and the red button on the reader lights up." +?CND25: CRLF + RTRUE + + + .FUNCT I-LOG-READER + INC 'LOG-READER-COUNTER + FSET? LOG-READER,ACTIVEBIT /?ELS5 + CALL DEQUEUE,I-LOG-READER + SET 'LOG-READER-COUNTER,0 + RETURN LOG-READER-COUNTER +?ELS5: EQUAL? LOG-READER-COUNTER,12 \?ELS7 + EQUAL? HERE,COMMANDERS-OFFICE \?ELS7 + PRINTR " The reader begins producing a whining noise." +?ELS7: EQUAL? LOG-READER-COUNTER,13 \?ELS11 + EQUAL? HERE,COMMANDERS-OFFICE \?ELS11 + PRINTR " The whine from the log reader rises in pitch, and grows louder by the millichron!" +?ELS11: EQUAL? LOG-READER-COUNTER,14 \FALSE + REMOVE LOG-READER + CALL DEQUEUE,I-LOG-READER + FCLEAR COMMANDERS-OFFICE,TOUCHBIT + EQUAL? HERE,COMMANDERS-OFFICE \?ELS20 + CALL JIGS-UP,STR?219 + RSTACK +?ELS20: EQUAL? HERE,COMMANDERS-QUARTERS,BRIEFING-ROOM,STATION-CONTROL /?THN23 + EQUAL? HERE,SOUTH-JUNCTION \FALSE +?THN23: PRINTR " You hear an explosion from nearby." + + + .FUNCT DIAL-F + FSET? SAFE,OPENBIT \?ELS5 + PRINTR "There's not much left of the dial." +?ELS5: EQUAL? PRSA,V?SET \?ELS7 + EQUAL? PRSO,PSEUDO-OBJECT \?ELS7 + ZERO? PRSI \?ELS14 + PRINT NEXT-TIME + RTRUE +?ELS14: EQUAL? PRSI,INTNUM /?ELS16 + PRINT HUH + RTRUE +?ELS16: CALL PERFORM,V?SET,INTNUM + RTRUE +?ELS7: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "The dial is set to " + PRINTN DIAL-SETTING + PRINT PERIOD-CR + RTRUE + + + .FUNCT SAFE-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's a top-of-the-line HyperSecurity Safe, featuring a dial with 8000 settings. There are probably between twelve and twenty numbers in the combination" + IN? DRILLED-HOLE,HERE \?CND6 + PRINTI ". There is a hole in the safe" + CALL DESCRIBE-BIT-SIZE,HOLE-SIZE +?CND6: PRINT PERIOD-CR + RTRUE +?ELS5: EQUAL? PRSA,V?DRILL \?ELS10 + CALL MAKE-HOLE-WITH-DRILL,SAFE + RSTACK +?ELS10: EQUAL? PRSA,V?PICK,V?UNLOCK \FALSE + PRINTR "The galaxy's craftiest safecrackers would be stumped by this baby." + + + .FUNCT DESCRIBE-BIT-SIZE,BIT-SIZE + PRINTI " approximately the diameter of a " + EQUAL? BIT-SIZE,SMALL-BIT \?ELS5 + PRINTI "toothpick" + RTRUE +?ELS5: EQUAL? BIT-SIZE,MEDIUM-BIT \?ELS7 + PRINTI "pencil" + RTRUE +?ELS7: PRINTI "cigar" + RTRUE + + + .FUNCT DRILLED-HOLE-F + EQUAL? PRSA,V?PUT \?ELS5 + EQUAL? PRSI,DRILLED-HOLE \?ELS5 + EQUAL? PRSO,EXPLOSIVE \?THN13 + EQUAL? HOLE-SIZE,SMALL-BIT \?ELS12 +?THN13: CALL DOESNT-FIT,STR?225 + RSTACK +?ELS12: EQUAL? HERE,DOME \?ELS16 + REMOVE EXPLOSIVE + PRINTR "The warmth of the housing immediately melts the explosive. It vanishes into a puff of vapor." +?ELS16: ZERO? SAFE-HOLE-SCORE \FALSE + EQUAL? HERE,COMMANDERS-QUARTERS \FALSE + INC 'ROBOT-EVILNESS + ADD SCORE,5 >SCORE + SET 'SAFE-HOLE-SCORE,TRUE-VALUE + RFALSE +?ELS5: EQUAL? PRSA,V?DRILL \?ELS22 + EQUAL? HERE,COMMANDERS-QUARTERS \?ELS27 + PUSH SAFE + JUMP ?CND23 +?ELS27: EQUAL? HERE,LOAN-SHARK \?ELS29 + PUSH STRONG-BOX + JUMP ?CND23 +?ELS29: PUSH HOUSING +?CND23: CALL PERFORM,V?DRILL,STACK + RTRUE +?ELS22: EQUAL? PRSA,V?LOOK-INSIDE \FALSE + PRINT ONLY-BLACKNESS + RTRUE + + + .FUNCT MAKE-HOLE-WITH-DRILL,OBJ + ZERO? DRILL-DEAD /?ELS5 + CALL PERFORM,V?ON,DRILL + RTRUE +?ELS5: ZERO? HOLE-SIZE /?ELS8 + IN? DRILLED-HOLE,HERE /?ELS8 + PRINTR "As you begin drilling, the drill sparks and stops running." +?ELS8: ZERO? HOLE-SIZE \?ELS12 + MOVE DRILLED-HOLE,HERE + FIRST? DRILL >HOLE-SIZE /?KLU21 +?KLU21: SET 'C-ELAPSED,30 + PRINTI "You drill a hole in" + CALL TPRINT,OBJ + CALL DESCRIBE-BIT-SIZE,HOLE-SIZE + PRINT PERIOD-CR + RTRUE +?ELS12: FIRST? DRILL /?KLU22 +?KLU22: EQUAL? HOLE-SIZE,STACK \?ELS14 + PRINT SENILITY-STRIKES + RTRUE +?ELS14: EQUAL? HOLE-SIZE,LARGE-BIT /?THN17 + IN? SMALL-BIT,DRILL \?ELS16 +?THN17: PRINTR "The hole in the safe is already larger than the bit in the drill." +?ELS16: FIRST? DRILL >HOLE-SIZE /?KLU23 +?KLU23: PRINTI "You enlarge the hole in" + CALL TPRINT,OBJ + PRINTI ". It's now" + CALL DESCRIBE-BIT-SIZE,HOLE-SIZE + PRINT PERIOD-CR + RTRUE + + + .FUNCT STAMP-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It's a fairly standard self-inking rubber stamp." + + + .FUNCT SOUTH-CONNECTION-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "The corridor widens as it reaches the hull of the station. To the south, where a Sub-Module connection would be in a station with a Diplomatic Sub-Module, an iris hatch is " + FSET? IRIS-HATCH,OPENBIT \?ELS8 + PRINTI "open, leading to a dark corridor" + JUMP ?CND6 +?ELS8: PRINTI "closed" +?CND6: PRINTI ". There's a slot next to the hatch. Other doors lead east and west." + RTRUE + + + .FUNCT LEVEL-FOUR-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "You are now on the primary bunk level of the station, with barracks to the north and south. To the east is the elevator " + EQUAL? ELEVATOR-LEVEL,4 /?CND6 + PRINTI "shaft " +?CND6: PRINTI "and the elevator call button. Docking Bay #3 can be entered to the west, and a ladder leads up and down." + RTRUE + + + .FUNCT LEVEL-THREE-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "From this lobby you can choose doors that lie to the north, south, or northwest. An additional doorway leads southwest. The elevator " + EQUAL? ELEVATOR-LEVEL,3 /?CND6 + PRINTI "shaft " +?CND6: PRINTI "and button are just to the east, and a ladder leads up or down." + RTRUE + + + .FUNCT GYM-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is a huge room where station personnel keep in shape via exercise and recreational sports. " + IN? EXERCISE-MACHINE,HERE /?CND6 + PRINTI "There's a sign on one wall. " +?CND6: PRINTI "The sole exit is south." + RTRUE + + + .FUNCT EXERCISE-MACHINE-F,OARG + ZERO? OARG \FALSE + EQUAL? PRSA,V?ENTER \?ELS8 + CALL RUNNING?,I-EXERCISE-MACHINE + ZERO? STACK /?ELS8 + CALL JIGS-UP,STR?234 + RSTACK +?ELS8: EQUAL? PRSA,V?OFF,V?ON \?ELS12 + PRINTR "It's permanently on." +?ELS12: EQUAL? PRSA,V?EXAMINE \?ELS14 + IN? PROTAGONIST,EXERCISE-MACHINE /?ELS14 + PRINTI "There's no one in" + CALL TRPRINT,EXERCISE-MACHINE + RSTACK +?ELS14: EQUAL? PRSA,V?MUNG,V?KILL \?ELS18 + PRINTR "The exercise machine is made of zynoid-reinforced hyper-steel." +?ELS18: EQUAL? PRSA,V?USE \FALSE + IN? PROTAGONIST,EXERCISE-MACHINE \?ELS25 + CALL V-EXERCISE + RSTACK +?ELS25: PRINTR "You're not even in it!" + + + .FUNCT LAUNDRY-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "All laundry rooms, planetside as well as in space, tend to look alike. This one is no exception. " + FSET? DRYER,ACTIVEBIT \?CND6 + CALL DESCRIBE-DRYER-HEAT +?CND6: PRINTI " The door lies on the east side." + RTRUE +?ELS5: EQUAL? RARG,M-ENTER \?ELS10 + FSET? PRESSER,ACTIVEBIT \?ELS10 + CALL QUEUE,I-PRESSER,40 + RSTACK +?ELS10: EQUAL? RARG,M-END \FALSE + GRTR? DRYER-COUNTER,15 \FALSE + PRINTI " The heat from the dryer is too much to stand! You stumble mindlessly out into the corridor" + PRINT ELLIPSIS + CALL GOTO,LEVEL-THREE + RSTACK + + + .FUNCT DRYER-F + EQUAL? PRSA,V?LOOK-BEHIND \?ELS5 + PRINTR "You see a huge pile of Patrol-issue socks, hundreds of them, all mismatched." +?ELS5: EQUAL? PRSA,V?ON \?ELS7 + FSET? DRYER,ACTIVEBIT /?ELS7 + FSET DRYER,ACTIVEBIT + CALL QUEUE,I-DRYER,-1 + PRINTR "An abnormal amount of hot air blasts out from all sides of the dryer." +?ELS7: EQUAL? PRSA,V?OFF \FALSE + FSET? DRYER,ACTIVEBIT \FALSE + FCLEAR DRYER,ACTIVEBIT + CALL DEQUEUE,I-DRYER + SET 'DRYER-COUNTER,0 + PRINTR "With the dryer off, the station's ventilation system quickly returns the room to a comfy twenty-three degrees centigrade." + + + .FUNCT I-DRYER + INC 'DRYER-COUNTER + FCLEAR LAUNDRY,TOUCHBIT + EQUAL? HERE,LAUNDRY \FALSE + EQUAL? DRYER-COUNTER,5,10,15 \FALSE + PRINTI " " + CALL DESCRIBE-DRYER-HEAT + CRLF + RTRUE + + + .FUNCT DESCRIBE-DRYER-HEAT + GRTR? DRYER-COUNTER,14 \?ELS5 + PRINTI "Searing blasts of air from the dryer have made the room unbearably hot." + RTRUE +?ELS5: GRTR? DRYER-COUNTER,9 \?ELS7 + PRINTI "Thanks to the dryer, the laundry room is now incredibly toasty." + RTRUE +?ELS7: PRINTI "The dryer is making the room uncomfortably hot." + RTRUE + + + .FUNCT PRESSER-F,OARG=0 + ZERO? OARG /?ELS5 + FSET? PRESSER,ACTIVEBIT \FALSE + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " " + CALL DESCRIBE-PRESSER + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS16 + FSET? PRESSER,ACTIVEBIT \?CND17 + CALL DESCRIBE-PRESSER + PRINTC 32 +?CND17: PRINTI "The presser is currently o" + FSET? PRESSER,ACTIVEBIT \?ELS22 + PRINTC 110 + JUMP ?CND20 +?ELS22: PRINTI "ff" +?CND20: PRINTI ". " + RFALSE +?ELS16: EQUAL? PRSA,V?PUT-ON \?ELS26 + EQUAL? PRSI,PRESSER \?ELS26 + CALL PERFORM,V?PUT,PRSO,PRSI + RTRUE +?ELS26: EQUAL? PRSA,V?CLOSE \?ELS30 + FSET? PRESSER,ACTIVEBIT \?ELS30 + IN? CRUMPLED-FORM,PRESSER \?CND33 + REMOVE CRUMPLED-FORM + MOVE VILLAGE-FORM,PRESSER +?CND33: IN? PATROL-UNIFORM,PRESSER \FALSE + SET 'SUIT-PRESSED,TRUE-VALUE + RFALSE +?ELS30: EQUAL? PRSA,V?ON \FALSE + FSET? PRESSER,ACTIVEBIT /FALSE + SET 'PRESSER-STEAMING,FALSE-VALUE + FSET PRESSER,ACTIVEBIT + CALL QUEUE,I-PRESSER,25 + FSET? PRESSER,OPENBIT /?CND43 + IN? CRUMPLED-FORM,PRESSER \?CND46 + REMOVE CRUMPLED-FORM + MOVE VILLAGE-FORM,PRESSER +?CND46: IN? PATROL-UNIFORM,PRESSER \?CND43 + SET 'SUIT-PRESSED,TRUE-VALUE +?CND43: PRINTR "A trickle of steam begins leaking from the presser." + + + .FUNCT DESCRIBE-PRESSER + PRINTI "A " + ZERO? PRESSER-STEAMING /?ELS3 + PRINTI "huge amount" + JUMP ?CND1 +?ELS3: PRINTI "trickle" +?CND1: PRINTI " of steam is coming from the laundry room's presser." + RTRUE + + + .FUNCT I-PRESSER + FSET? PRESSER,ACTIVEBIT \FALSE + EQUAL? HERE,LAUNDRY \FALSE + PRINTI " " + ZERO? PRESSER-STEAMING /?ELS12 + PRINTI "The presser suddenly " + FSET? PRESSER,OPENBIT /?CND14 + PRINTI "opens, " +?CND14: CALL JIGS-UP,STR?236 + RSTACK +?ELS12: SET 'PRESSER-STEAMING,TRUE-VALUE + CALL QUEUE,I-PRESSER,25 + PRINTR "The presser shudders, and clouds of steam begin billowing out of it." + + + .FUNCT CHAPEL-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is a modest, nondenominational chapel. Hanging high above the beautiful wooden pulpit " + FSET? STAR,TOUCHBIT /?ELS8 + PRINTI "are the two" + JUMP ?CND6 +?ELS8: PRINTI "is one of the" +?CND6: PRINTI " universal symbols of every major galactic religion: an eternal flame" + FSET? STAR,TOUCHBIT /?CND11 + PRINTI " and a seven-pointed star" +?CND11: PRINTI ". " + FSET? ETERNAL-FLAME,ONBIT /?CND14 + PRINT FLAME-EXTINGUISHED + PRINTC 32 +?CND14: PRINTI "A doorway occupies the center of the east wall." + FSET? STAR,TOUCHBIT /TRUE + CRLF + PRINTI " The star is blinking." + RTRUE + + + .FUNCT STAR-F + CALL TOUCHING?,STAR + ZERO? STACK /?ELS5 + FSET? STAR,TRYTAKEBIT \?ELS5 + ZERO? HANGING-IN-AIR \?ELS5 + PRINTR "The star is above you, beyond your reach." +?ELS5: EQUAL? PRSA,V?TAKE \?ELS9 + FSET? STAR,TRYTAKEBIT \?ELS9 + ZERO? HANGING-IN-AIR /?ELS9 + FCLEAR STAR,TRYTAKEBIT + FCLEAR STAR,NDESCBIT + FSET STAR,TOUCHBIT + MOVE STAR,PROTAGONIST + INC 'ROBOT-EVILNESS + GETP DIODE-M,P?VALUE + ADD SCORE,STACK >SCORE + PUTP DIODE-M,P?VALUE,0 + PRINTR "Taken." +?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS13 + IN? DIODE-M,STAR \?CND14 + PRINTI "It's blinking with a gentle, rhythmic light. " +?CND14: FSET? STAR,TRYTAKEBIT \?ELS21 + CALL PERFORM,V?TOUCH,STAR + RTRUE +?ELS21: PRINTI "The back of the star " + FSET? STAR,OPENBIT \?ELS26 + PRINTI "is open" + JUMP ?CND24 +?ELS26: PRINTI "looks openable" +?CND24: PRINT PERIOD-CR + RTRUE +?ELS13: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSO,DIODE-J \FALSE + REMOVE DIODE-J + PRINTR "As you put the diode in place, the star begins blinking rapidly and erratically. Suddenly the diode bursts and the star goes dead." + + + .FUNCT ETERNAL-FLAME-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + FSET? ETERNAL-FLAME,ONBIT \?ELS10 + PRINTR "The eternal flame burns high above the floor of the chapel. It looks like a reproduction of the eternal flame designed by the 108th century artist, Ernie DaCosta, for the Sierra Vista Monastery on Bulbus VII." +?ELS10: PRINT FLAME-EXTINGUISHED + CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?OFF \?ELS14 + FSET? ETERNAL-FLAME,ONBIT \?ELS14 + PRINTR "It's high above your head, and even if you could reach it, I doubt you could extinguish it. It's designed to burn forever, after all." +?ELS14: CALL TOUCHING?,ETERNAL-FLAME + ZERO? STACK /?ELS18 + ZERO? HANGING-IN-AIR \?ELS18 + CALL CANT-REACH,ETERNAL-FLAME + RSTACK +?ELS18: EQUAL? PRSA,V?PUT,V?BURN \?ELS22 + EQUAL? PRSI,ETERNAL-FLAME \?ELS22 + FSET? PRSO,BURNBIT \?ELS29 + REMOVE PRSO + PRINTI "The instant" + CALL TPRINT-PRSO + PRINTR " touches the flame it burns up." +?ELS29: PRINTI "The flame has no effect on" + CALL TRPRINT,PRSO + RSTACK +?ELS22: EQUAL? PRSA,V?SHOOT \?ELS33 + PRINTR "Perhaps that made the flame hotter; there was really no way to tell." +?ELS33: EQUAL? PRSA,V?ON \FALSE + FSET? ETERNAL-FLAME,ONBIT /FALSE + CALL PERFORM,V?SET,SWITCH + RTRUE + + + .FUNCT PULPIT-F + EQUAL? PRSA,V?STAND-ON,V?CLIMB-UP,V?CLIMB-ON /?THN6 + EQUAL? PRSA,V?ENTER \?ELS5 +?THN6: ZERO? HANGING-IN-AIR /?ELS12 + CALL CANT-REACH,PULPIT + RSTACK +?ELS12: PRINTI "The pulpit sways and you fall off." + FSET? PULPIT,TOUCHBIT /?ELS20 + PRINTI " However, it wasn't a wasted effort: " + CALL PERFORM,V?EXAMINE,PULPIT + RTRUE +?ELS20: CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + FSET? PULPIT,TOUCHBIT /FALSE + FSET PULPIT,TOUCHBIT + PRINTR "You discover that the pulpit seems openable!" + + + .FUNCT SWITCH-F + EQUAL? PRSA,V?THROW,V?OFF,V?ON /?THN6 + EQUAL? PRSA,V?SET,V?MOVE,V?PUSH \FALSE +?THN6: ZERO? HANGING-IN-AIR /?CND8 + CALL CANT-REACH,SWITCH + RTRUE +?CND8: PRINTI "The eternal flame " + FSET? ETERNAL-FLAME,ONBIT \?ELS16 + FCLEAR ETERNAL-FLAME,ACTIVEBIT + FCLEAR ETERNAL-FLAME,ONBIT + PRINTR "goes out!" +?ELS16: FSET ETERNAL-FLAME,ACTIVEBIT + FSET ETERNAL-FLAME,ONBIT + PRINTI "flickers back on." + IN? BALLOON,HERE \?CND19 + MOVE BALLOON,LEVEL-THREE + PRINTI " The " + PRINTD BALLOON + PRINTI " shoots out of the Chapel." +?CND19: CRLF + RTRUE + + + .FUNCT THEATRE-SEAT-F + EQUAL? PRSA,V?CLIMB-ON,V?ENTER \FALSE + PRINTR "But there's nothing to watch at the moment!" + + + .FUNCT MESS-HALL-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This open dining area seats around thirty people. " + PRINTD FPU + PRINTI "s curve along the exterior wall. There's a doorway to the southeast, and doors lead north, south, and northeast. To the east are the elevator" + EQUAL? ELEVATOR-LEVEL,2 /?CND6 + PRINTI " shaft" +?CND6: PRINTI ", the elevator button, and the up-down ladder." + RTRUE + + + .FUNCT FPU-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "The units curve around the outside wall of the Mess Hall. The interface is delightfully simple: a user simply turns on the unit and immediately receives a tasty and nutritionally-balanced meal." +?ELS5: EQUAL? PRSA,V?ON \FALSE + PRINTI "A taped voice, in a cheery contralto, says ""Good " + LESS? INTERNAL-MOVES,3000 \?ELS10 + PRINTI "morning" + JUMP ?CND8 +?ELS10: GRTR? INTERNAL-MOVES,5000 \?ELS12 + PRINTI "evening" + JUMP ?CND8 +?ELS12: PRINTI "afternoon" +?CND8: PRINTI "! Today's menu features " + LESS? INTERNAL-MOVES,3000 \?ELS17 + PRINTI "sausage, frobbled eggs, and teakberry juice" + JUMP ?CND15 +?ELS17: GRTR? INTERNAL-MOVES,5000 \?ELS19 + PRINTI "chicken pot pie, braised volpoid livers, and mashed Rigellian yams" + JUMP ?CND15 +?ELS19: PRINTI "a bacon, lettuce, and frombucko sandwich" +?CND15: PRINTR ". Eat hearty! Dispensing will now begin."" A seamless hatch in the dispenser opens, and a stream of acid shoots out. You leap aside as the acid etches the floor before evaporating, leaving behind some acrid fumes." + + + .FUNCT SOUP-F,OARG=0 + ZERO? OARG /?ELS5 + FSET? SOUP,TOUCHBIT /FALSE + EQUAL? OARG,M-OBJDESC? /TRUE + PRINTI " A bowl of creamy broth sits on one of the tables" + EQUAL? DAY,1 \?CND12 + PRINTI ". It's still steaming, though there's no one in sight" +?CND12: PRINTC 46 + RTRUE +?ELS5: EQUAL? PRSA,V?THROW,V?EMPTY,V?POUR \?ELS16 + EQUAL? PRSO,SOUP \?ELS16 + EQUAL? PRSI,ETERNAL-FLAME \?ELS23 + FSET? ETERNAL-FLAME,ONBIT \?ELS23 + PRINTI "You soup hits the wall just a few centimeters under the flame" + CALL ANTI-LITTER,SOUP + RSTACK +?ELS23: PRINTR "Shuddering at the memories of your deck-scrubbing days, you realize what a mess that would make." +?ELS16: EQUAL? PRSA,V?TOUCH,V?EXAMINE,V?TASTE \?ELS29 + EQUAL? DAY,1 \?ELS29 + PRINTR "It's still hot." +?ELS29: EQUAL? PRSA,V?TASTE \?ELS33 + PRINTR "It tastes unusually bitter." +?ELS33: EQUAL? PRSA,V?SMELL \?ELS35 + PRINTR "The soup has a vague chemical odor." +?ELS35: EQUAL? PRSA,V?EAT \?ELS37 + ZERO? HUNGER-LEVEL \?ELS42 + PRINT NOT-HUNGRY + RTRUE +?ELS42: CALL JIGS-UP,STR?238 + RSTACK +?ELS37: EQUAL? PRSA,V?FIND \FALSE + GET P-NAMW,0 + EQUAL? STACK,W?FOOD \FALSE + CALL PERFORM,V?SEARCH,GLOBAL-ROOM + RTRUE + + + .FUNCT DETONATOR-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's a state-of-the-art detonator, fairly cubical with two connection points. " + ZERO? TIMER-CONNECTED /?ELS8 + PRINTI "A timer is attached at one of those points" + ZERO? EXPLOSIVE-CONNECTED /?CND10 + PRINTI ", and an explosive is attached at the other" +?CND10: PRINTI ". " + JUMP ?CND6 +?ELS8: ZERO? EXPLOSIVE-CONNECTED /?CND6 + PRINTI "An explosive is attached at one of those points. " +?CND6: FSET? DETONATOR,OPENBIT \?ELS21 + PRINTI "The detonator is open" + FIRST? DETONATOR \?ELS26 + PRINTI " and contains" + FIRST? DETONATOR /?KLU101 +?KLU101: CALL ARPRINT,STACK + RSTACK +?ELS26: PRINT PERIOD-CR + RTRUE +?ELS21: PRINTR "There is a faint crack running around the outside of the detonator, indicating that perhaps it can be opened." +?ELS5: EQUAL? PRSA,V?CONNECT \?ELS32 + EQUAL? TIMER,PRSO,PRSI \?ELS37 + ZERO? TIMER-CONNECTED /?ELS42 + PRINT SENILITY-STRIKES + RTRUE +?ELS42: SET 'TIMER-CONNECTED,TRUE-VALUE + PRINTR "Done." +?ELS37: EQUAL? EXPLOSIVE,PRSO,PRSI \?ELS47 + ZERO? EXPLOSIVE-CONNECTED /?ELS52 + PRINT SENILITY-STRIKES + RTRUE +?ELS52: SET 'EXPLOSIVE-CONNECTED,TRUE-VALUE + PRINTR "Done." +?ELS47: PRINT YOU-CANT + PRINTR "connect the detonator to that!" +?ELS32: EQUAL? PRSA,V?DISCONNECT \?ELS59 + ZERO? PRSI \?ELS64 + ZERO? EXPLOSIVE-CONNECTED \?THN70 + ZERO? TIMER-CONNECTED /FALSE +?THN70: PRINTI "You detach the detonator from " + ZERO? TIMER-CONNECTED /?ELS74 + PRINTI "the timer" + ZERO? EXPLOSIVE-CONNECTED /?CND72 + PRINTI " and the explosive" + JUMP ?CND72 +?ELS74: PRINTI "the explosive" +?CND72: SET 'EXPLOSIVE-CONNECTED,FALSE-VALUE + SET 'TIMER-CONNECTED,FALSE-VALUE + PRINT PERIOD-CR + RTRUE +?ELS64: EQUAL? EXPLOSIVE,PRSO,PRSI \?ELS83 + ZERO? EXPLOSIVE-CONNECTED /?ELS83 + SET 'EXPLOSIVE-CONNECTED,FALSE-VALUE + PRINTR "You detach the detonator from the explosive." +?ELS83: EQUAL? TIMER,PRSO,PRSI \FALSE + ZERO? TIMER-CONNECTED /FALSE + SET 'TIMER-CONNECTED,FALSE-VALUE + PRINTR "You detach the detonator from the timer." +?ELS59: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,DETONATOR \FALSE + FSET? DETONATOR,OPENBIT \FALSE + EQUAL? PRSO,BLACKENED-DIODE,DIODE-M,DIODE-J /?ELS98 + CALL DOESNT-FIT,STR?240 + RSTACK +?ELS98: FIRST? DETONATOR \FALSE + PRINTI "There's a " + FIRST? DETONATOR /?KLU102 +?KLU102: PRINTD STACK + PRINTR " in the way." + + + .FUNCT BLACKENED-DIODE-F + EQUAL? PRSA,V?CLEAN \?ELS5 + ZERO? DIODE-CLEANED /?ELS10 + PRINTR "You've de-charred the diode to the max." +?ELS10: SET 'DIODE-CLEANED,TRUE-VALUE + PRINTR "You scrape off enough black that you can just make out a letter ""M.""" +?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE + ZERO? DIODE-CLEANED /?ELS20 + PRINTR "You can just make out a letter ""M.""" +?ELS20: PRINTR "The diode is so charred you can't even tell what series it is." + + + .FUNCT MAGAZINE-F + EQUAL? PRSA,V?TAKE \?ELS5 + CALL RECORDING,STR?244 + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE,V?OPEN,V?READ /?THN8 + EQUAL? PRSA,V?LOOK-INSIDE \FALSE +?THN8: PRINTR "You glance at the magazines. The most familiar ones are ""Popular Patrolling,"" ""The Galactic Enquirer,"" and ""True Tales of Adventure."" However, they're all issues which you've already read back on the Duffy, so they're not too interesting." + + + .FUNCT NANOFILM-READER-F,SPOOL + FIRST? NANOFILM-READER >SPOOL /?KLU35 +?KLU35: EQUAL? PRSA,V?CLOSE \?ELS5 + PRINT HUH + RTRUE +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7 + PRINTI "The nanofilm reader must be a voice-output model, since it has no screen. The reader is o" + FSET? NANOFILM-READER,ACTIVEBIT \?ELS10 + PRINTC 110 + JUMP ?CND8 +?ELS10: PRINTI "ff" +?CND8: PRINTI ", and there is " + ZERO? SPOOL /?ELS15 + PRINTI "a " + PRINTD SPOOL + JUMP ?CND13 +?ELS15: PRINTI "no spool" +?CND13: PRINTR " in the reader." +?ELS7: EQUAL? PRSA,V?PUT \?ELS20 + EQUAL? PRSO,PUCE-SPOOL,MAUVE-SPOOL /?ELS25 + PRINTR "It doesn't fit." +?ELS25: ZERO? SPOOL /?ELS27 + PRINTR "There's already a spool in the reader." +?ELS27: FSET? NANOFILM-READER,ACTIVEBIT \FALSE + MOVE PRSO,NANOFILM-READER + FCLEAR NANOFILM-READER,ACTIVEBIT + CALL PERFORM,V?ON,NANOFILM-READER + RTRUE +?ELS20: EQUAL? PRSA,V?ON \FALSE + FSET? NANOFILM-READER,ACTIVEBIT /FALSE + ZERO? SPOOL /FALSE + FSET NANOFILM-READER,ACTIVEBIT + PRINTI "The reader, in a surprisingly human voice, says " + GETP SPOOL,P?TEXT + PRINT STACK + PRINTR " and then pauses. The voice seems to change in timber, as it begins laughing and saying, ""You will die, human! All humans will die! You will die, human!""" + + + .FUNCT COMPUTER-TERMINAL-F + EQUAL? PRSA,V?ON \FALSE + PRINTR "Hmmm. Nothing happens." + + + .FUNCT DOME-OBJECT-F + EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS5 + PRINT DOME-DESC + CRLF + RTRUE +?ELS5: EQUAL? PRSA,V?WALK-AROUND \FALSE + CALL DO-WALK,P?NORTH + RSTACK + + + .FUNCT DOME-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "This is inarguably the most bucolic spot aboard the station. Pebbled paths wind among beautiful and exotic shrubbery, culled from millenia of galactic exploration. " + PRINT DOME-DESC + PRINTI " East of where you are standing are an elevator" + EQUAL? ELEVATOR-LEVEL,1 /?CND6 + PRINTI " shaft" +?CND6: PRINTI ", a button, and the top of a ladder. Next to the ladder " + ZERO? GRATING-LOOSE /?ELS11 + PRINTI "is" + JUMP ?CND9 +?ELS11: PRINTI "are" +?CND9: PRINTI " an " + PRINTD GRATING + FSET? GRATING,TOUCHBIT \?ELS19 + PRINTI ", which has been bent back from the air shaft to form an opening." + RTRUE +?ELS19: ZERO? GRATING-LOOSE /?ELS21 + PRINTI ", which looks a bit loose." + RTRUE +?ELS21: PRINTI " and a thick metal housing with writing stencilled on it." + RTRUE + + + .FUNCT SHRUBBERY-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "There are too many varieties to describe them all: junipers, rose bushes, dogwoods, gliffgubbers, Rhomboidal Pellet Trees..." +?ELS5: EQUAL? PRSA,V?EAT \?ELS7 + PRINTR "None of the plants are edible." +?ELS7: EQUAL? PRSA,V?WALK-AROUND \?ELS9 + CALL DO-WALK,P?NORTH + RSTACK +?ELS9: EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH \?ELS11 + PRINTR "You find nothing besides a few repulsive insects." +?ELS11: EQUAL? PRSA,V?ENTER \FALSE + PRINTR "A few hidden thorn cause a quick change in plans." + + + .FUNCT HOUSING-F + EQUAL? PRSA,V?UNLOCK \?ELS5 + EQUAL? PRSI,KEY \?ELS5 + FCLEAR HOUSING,LOCKEDBIT + PRINTR "You unlock the housing." +?ELS5: EQUAL? PRSA,V?OPEN \?ELS9 + FSET? HOUSING,LOCKEDBIT /?ELS9 + SET 'GRATING-LOOSE,TRUE-VALUE + CALL QUEUE,I-ANNOUNCEMENT,140 + CALL DEQUEUE,I-SLEEP-WARNINGS + CALL DEQUEUE,I-HUNGER-WARNINGS + CALL ROB,PROTAGONIST,HERE + REMOVE HOUSING + PRINTI "As you open the housing, the machinery inside explodes! Like a giant hand, the heat and shock throw you halfway across the dome! Your solitary thought before succumbing to unconsciousness is how grateful you are that you landed in such a soft shrub. + +...an undetermined amount of time later, you come to, shake away the cobwebs, and look around" + PRINT ELLIPSIS + CALL V-LOOK + SET 'C-ELAPSED,73 + RETURN C-ELAPSED +?ELS9: EQUAL? PRSA,V?DRILL \?ELS13 + CALL MAKE-HOLE-WITH-DRILL,HOUSING + RSTACK +?ELS13: EQUAL? PRSA,V?EXAMINE \?ELS15 + PRINTI "The housing is closed, and there's some writing on it" + IN? DRILLED-HOLE,HERE \?CND16 + PRINTI ". A hole has been drilled in it" + CALL DESCRIBE-BIT-SIZE,HOLE-SIZE +?CND16: PRINTI ". " + CALL PERFORM,V?TOUCH,HOUSING + RTRUE +?ELS15: EQUAL? PRSA,V?PICK \?ELS20 + CALL PERFORM,V?PICK,STRONG-BOX + RTRUE +?ELS20: EQUAL? PRSA,V?TOUCH \FALSE + PRINTR "The housing is warm to the touch." + + + .FUNCT GRATING-F + EQUAL? HERE,BOTTOM-OF-AIR-SHAFT \?ELS5 + EQUAL? PRSA,V?STAND-ON,V?KICK,V?OPEN \?ELS10 + CALL QUEUE,I-ANNOUNCEMENT,1 + PRINTI "The grating opens, spilling you into the room below" + PRINT ELLIPSIS + CALL QUEUE,I-EXERCISE-MACHINE,-1 + CALL ROB,PEDESTAL + MOVE PEDESTAL,FACTORY + MOVE PYRAMID,PEDESTAL + CALL GOTO,COMPUTER-CONTROL + RSTACK +?ELS10: EQUAL? PRSA,V?ENTER \FALSE + CALL DO-FIRST,STR?249 + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS14 + FSET? GRATING,TOUCHBIT \?ELS19 + PRINTR "The grating has been bent back far enough for you to squeeze through." +?ELS19: ZERO? GRATING-LOOSE /FALSE + PRINTR "The air vent cover looks loose." +?ELS14: EQUAL? PRSA,V?ENTER \?ELS24 + FSET? GRATING,TOUCHBIT \?ELS29 + CALL DEQUEUE,I-WELDER + CALL GOTO,TOP-OF-AIR-SHAFT + RSTACK +?ELS29: PRINTR "Impossible, unless you can pass through holes a centimeter across." +?ELS24: EQUAL? PRSA,V?TAKE,V?MOVE,V?PUSH /?THN34 + EQUAL? PRSA,V?OPEN \FALSE +?THN34: FSET? GRATING,TOUCHBIT \?ELS40 + PRINT SENILITY-STRIKES + RTRUE +?ELS40: ZERO? GRATING-LOOSE /?ELS42 + FSET GRATING,TOUCHBIT + PRINTR "With effort, you bend the grating and form an opening large enough to enter." +?ELS42: PRINTR "The grating is securely affixed." + + + .FUNCT LEVEL-SIX-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "The elevator button is east of you, next to the elevator" + EQUAL? ELEVATOR-LEVEL,6 /?CND6 + PRINTI " shaft" +?CND6: PRINTI ". This main corridor continues around the shaft to the southeast. Huge doors lie just northwest and southwest of here, and smaller doors lead north and south. A ladder can take you to the level above or the level below." + RTRUE + + + .FUNCT ALIEN-SHIP-PSEUDO-F + EQUAL? PRSA,V?ENTER \?ELS5 + EQUAL? HERE,ALIEN-SHIP \?ELS10 + PRINT LOOK-AROUND + RTRUE +?ELS10: CALL DO-WALK,P?IN + RSTACK +?ELS5: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS14 + EQUAL? HERE,ALIEN-SHIP \?ELS19 + CALL DO-WALK,P?OUT + RSTACK +?ELS19: PRINT LOOK-AROUND + RTRUE +?ELS14: EQUAL? HERE,ALIEN-SHIP \FALSE + EQUAL? PRSA,V?EXAMINE \?ELS28 + CALL V-LOOK + RSTACK +?ELS28: EQUAL? PRSA,V?SEARCH \FALSE + CALL PERFORM,V?SEARCH,GLOBAL-ROOM + RTRUE + + + .FUNCT ALIEN-SHIP-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "Something about this cabin makes your skin crawl. Perhaps it's merely the unpleasant colors and odd textures and disturbing angles of this ship -- despite your frequent contact with alien races you've never encountered anything that seemed as unhuman as this ship. + There are no controls in sight, but there is a sturdy pedestal in the exact center of the room. " + FIRST? PEDESTAL /?CND6 + PRINTI "The pedestal is empty. " +?CND6: PRINTI "The only other features of the cabin are some dots on the wall and the hatch leading out." + RTRUE +?ELS5: EQUAL? RARG,M-END \FALSE + IN? FLOYD,HERE \FALSE + IN? SKELETON,HERE \FALSE + ZERO? SKELETON-COMMENT \FALSE + SET 'SKELETON-COMMENT,TRUE-VALUE + PRINTR " Floyd notices the skeleton, and some of the color drains out of his face plates. ""Floyd scared,"" he whimpers." + + + .FUNCT PATTERN-OF-DOTS-F + EQUAL? PRSA,V?READ,V?EXAMINE \?ELS5 + PRINTR "The dots form a seemingly meaningless pattern: + + .. .. + + .. .... . ... . ... ... . ... + + .. ... . + + .... . ... . + + .. ... . + +Each dot is a featureless black spot about a centimeter across." +?ELS5: EQUAL? PRSA,V?TASTE \FALSE + PRINTR "It takes a lot of willpower and an equal amount of lip-wetting to make it through all the dots: + ""(sweet/slightly-bitter) (sweet/very-sour) + (sweet/very-sweet) (sour/bland/bland/sour) (very-salty) (very-sweet/bland/sour) (bland) (bland/salty/sour) (bitter/sour/very-sour) (slightly-sour) (bitter/salty/bitter) + (very-sweet/very-salty) (spicy-hot/bland/bland) (very-sweet) + (sour/bland/sour/sweet) (bland) (very-salty/salty/sour) (very-sweet) + (bland/bitter) (bland/sour/very-sour) (very-salty).""" + + + .FUNCT PEDESTAL-F + EQUAL? PRSA,V?STAND-ON,V?CLIMB-UP,V?CLIMB-ON \FALSE + EQUAL? HERE,FACTORY \?ELS10 + CALL PERFORM,V?LOOK-INSIDE,PEDESTAL + RTRUE +?ELS10: PRINTR "You stand on the pedestal for a moment, but an inexplicable wave of vertigo comes over you, and you fall to the deck." + + + .FUNCT SKELETON-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "It looks like the alien was fairly humanoid in shape. The most unusual feature of the skeleton is an unusually overdeveloped tongue case." +?ELS5: CALL TOUCHING?,SKELETON + ZERO? STACK /FALSE + REMOVE SKELETON + PRINTR "The skeleton crumbles to dust." + + + .FUNCT ROBOT-SHOP-F,RARG + EQUAL? RARG,M-END \FALSE + IN? FLOYD,HERE \FALSE + FSET? FLOYD,ACTIVEBIT \FALSE + ZERO? OLIVER-SPEECH \FALSE + CALL RUNNING?,I-PLATO-ATTACK + ZERO? STACK \FALSE + SET 'OLIVER-SPEECH,TRUE-VALUE + SET 'FLOYD-SPOKE,TRUE-VALUE + PRINTI " Floyd bounces over and peers down at the unconscious robot. ""Oliver is a nice name. I hope Floyd will be around when Oliver wakes up."" He looks over to you. ""Floyd remembers waking up for the first time. It is scariest and loneliest time for a robot."" + Floyd glances back at Oliver, looking more serious than you've ever seen Floyd look. """ + GETP OLIVER,P?FLOYD-ASK-ABOUT + PRINT STACK + PRINTR """" + + + .FUNCT HEATING-CHAMBER-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "The heating chamber is a device which cleans or sterilizes small tools and equipment. There's a small opening for placing items in the chamber." +?ELS5: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS7 + PRINT HUH + RTRUE +?ELS7: EQUAL? PRSA,V?OFF,V?ON \?ELS9 + PRINTI "Since they take so long to heat up, " + PRINTD HEATING-CHAMBER + PRINTR "s are usually kept on all the time. This one has no visible on-off switch." +?ELS9: EQUAL? PRSA,V?REACH-IN \FALSE + PRINTR "As a safety precaution, because of the intense heat within the chamber, the opening is too small for a normal human hand to pass through." + + + .FUNCT BIT-F + EQUAL? PRSA,V?MEASURE,V?EXAMINE \FALSE + PRINTI "The bit is" + CALL DESCRIBE-BIT-SIZE,PRSO + PRINT PERIOD-CR + RTRUE + + + .FUNCT OLIVER-F + EQUAL? PRSA,V?TELL \?ELS5 + PRINTI "Oliver is ""asleep.""" + CRLF + CALL STOP + RSTACK +?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7 + GETP OLIVER,P?FDESC + PRINT STACK + CRLF + RTRUE +?ELS7: EQUAL? PRSA,V?ALARM \?ELS9 + PRINTR "That won't be possible until his ""training"" is complete." +?ELS9: EQUAL? PRSA,V?OPEN,V?OFF,V?ON \FALSE + CALL PERFORM-PRSA,HELEN + RSTACK + + + .FUNCT PRINTING-PLANT-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "This level is, frankly, the station's entire reason for existence. Forms and documents are printed here for Stellar Patrol ships and Third Galactic Union offices all across this sector of space. The printing plant takes up this entire level, except for a partitioned area which can be entered to the northwest. The elevator " + EQUAL? ELEVATOR-LEVEL,7 /?CND6 + PRINTI "shaft " +?CND6: PRINTI "lies to the east, as does the elevator button, and a ladder leads upward and downward." + RTRUE +?ELS5: EQUAL? RARG,M-END \FALSE + CALL BELOW-DECK-NOISES + RSTACK + + + .FUNCT VILLAGE-FORM-F + EQUAL? PRSA,V?EXAMINE,V?READ \?ELS5 + PRINTI "It's an Illegal Space Village Entry Form FW-83-Q. It " + EQUAL? PRSO,CRUMPLED-FORM \?CND6 + PRINTI "is pretty crumpled and " +?CND6: PRINTI "has " + ZERO? VILLAGE-FORM-VALIDATED \?CND9 + PRINTI "not " +?CND9: PRINTR "been validated." +?ELS5: EQUAL? PRSA,V?VALIDATE \?ELS13 + ZERO? VILLAGE-FORM-VALIDATED /?ELS18 + PRINT SENILITY-STRIKES + RTRUE +?ELS18: SET 'VILLAGE-FORM-VALIDATED,TRUE-VALUE + PRINTR "Done." +?ELS13: EQUAL? PRSA,V?FLATTEN,V?STAND-ON \FALSE + EQUAL? PRSO,CRUMPLED-FORM \FALSE + PRINTR "This has scant effect on the crumpledness of the form." + + + .FUNCT PAPER-RECYCLING-PLANT-F,RARG + EQUAL? RARG,M-END \FALSE + CALL BELOW-DECK-NOISES + RSTACK + + + .FUNCT BELOW-DECK-NOISES + RANDOM 100 + LESS? 80,STACK \FALSE + PRINTI " You " + RANDOM 100 + LESS? 40,STACK /?ELS6 + PRINTI "hear a clanging noise from the deck below. Suddenly, it stops" + JUMP ?CND4 +?ELS6: RANDOM 100 + LESS? 40,STACK /?ELS8 + PRINTI "hear a rhythmic throbbing from somewhere below, like the beating of a gigantic mechanical heart. The noise grows louder until it is almost deafening, then slowly fades to silence" + JUMP ?CND4 +?ELS8: PRINTI "feel a vibration under your feet which seems to fill you with a feeling of dread. Before you have a chance to think about the vibration in more rational terms, it is gone" +?CND4: PRINT PERIOD-CR + RTRUE + + + .FUNCT DRILL-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTI "It's a fairly standard Patrol-issue drill. There is" + FIRST? DRILL \?ELS8 + FIRST? DRILL /?KLU40 +?KLU40: CALL APRINT,STACK + JUMP ?CND6 +?ELS8: PRINTI " no drill bit" +?CND6: PRINTR " in the drill." +?ELS5: EQUAL? PRSA,V?ON \?ELS12 + ZERO? DRILL-DEAD /?ELS17 + PRINTR "The drill doesn't seem to be working anymore." +?ELS17: PRINTR "The drill will turn on when you begin drilling." +?ELS12: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS22 + PRINT HUH + RTRUE +?ELS22: EQUAL? PRSA,V?PUT-ON \?ELS24 + EQUAL? PRSO,LARGE-BIT,MEDIUM-BIT,SMALL-BIT \?ELS24 + CALL PERFORM,V?PUT,PRSO,DRILL + RTRUE +?ELS24: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,DRILL \FALSE + EQUAL? PRSO,LARGE-BIT,MEDIUM-BIT,SMALL-BIT /?ELS35 + CALL DOESNT-FIT,STR?270 + RSTACK +?ELS35: FIRST? DRILL \?ELS37 + CALL DO-FIRST,STR?271 + RSTACK +?ELS37: FSET PRSO,NDESCBIT + RFALSE + + + .FUNCT ELEVATOR-OBJECT-F + EQUAL? PRSA,V?ENTER \?ELS5 + EQUAL? HERE,ELEVATOR \?ELS10 + PRINT LOOK-AROUND + RTRUE +?ELS10: EQUAL? HERE,COMPUTER-CONTROL \?ELS12 + CALL DO-WALK,P?NORTH + RSTACK +?ELS12: CALL DO-WALK,P?EAST + RSTACK +?ELS5: EQUAL? PRSA,V?WALK-TO \?ELS16 + CALL PERFORM,V?ENTER,ELEVATOR-OBJECT + RTRUE +?ELS16: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS18 + EQUAL? HERE,ELEVATOR \?ELS23 + CALL DO-WALK,P?WEST + RSTACK +?ELS23: EQUAL? HERE,BOTTOM-OF-ELEVATOR-SHAFT \?ELS25 + CALL DO-WALK,P?SOUTH + RSTACK +?ELS25: PRINT LOOK-AROUND + RTRUE +?ELS18: EQUAL? PRSA,V?CALL \?ELS29 + EQUAL? HERE,ELEVATOR \?ELS34 + PRINT LOOK-AROUND + RTRUE +?ELS34: CALL PERFORM,V?PUSH,CALL-BUTTON + RTRUE +?ELS29: EQUAL? PRSA,V?EXAMINE \FALSE + EQUAL? HERE,ELEVATOR \FALSE + CALL V-LOOK + RSTACK + + + .FUNCT ELEVATOR-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "This is a large, cubical frame, open on all four sides. The elevator shaft encloses the elevator on every side except the west. " + PRINT CONTROL-BOX-DESC + RTRUE +?ELS5: EQUAL? RARG,M-END \FALSE + EQUAL? ELEVATOR-LEVEL,7 \FALSE + CALL BELOW-DECK-NOISES + RSTACK + + + .FUNCT CONTROL-BOX-F + EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \FALSE + PRINT CONTROL-BOX-DESC + CRLF + RTRUE + + + .FUNCT ELEVATOR-EXIT-F + EQUAL? ELEVATOR-LEVEL,1 \?ELS5 + RETURN DOME +?ELS5: EQUAL? ELEVATOR-LEVEL,2 \?ELS7 + RETURN MESS-HALL +?ELS7: EQUAL? ELEVATOR-LEVEL,3 \?ELS9 + RETURN LEVEL-THREE +?ELS9: EQUAL? ELEVATOR-LEVEL,4 \?ELS11 + RETURN LEVEL-FOUR +?ELS11: EQUAL? ELEVATOR-LEVEL,5 \?ELS13 + RETURN LEVEL-FIVE +?ELS13: EQUAL? ELEVATOR-LEVEL,6 \?ELS15 + RETURN LEVEL-SIX +?ELS15: RETURN PRINTING-PLANT + + + .FUNCT ELEVATOR-ENTER-F + PRINTI "The elevator shaft is s" + GRTR? DAY,2 \?ELS3 + PRINTI "upposed to be a weightless environment, outside of the station's artificial gravity field. But the gravity in the shaft is one standard Gee!" + JUMP ?CND1 +?ELS3: PRINTI "hielded from the station's artificial gravity field, and your stomach gives a little flip as you enter the weightless environment." +?CND1: CRLF + CRLF + GETP HERE,P?LEVEL + EQUAL? STACK,ELEVATOR-LEVEL \?ELS10 + RETURN ELEVATOR +?ELS10: PRINTI "Elevator Shaft" + CRLF + GRTR? DAY,2 \?ELS15 + CALL JIGS-UP,STR?272 + JUMP ?CND13 +?ELS15: PRINTI "You float helplessly in the shaft. After a few millichrons of useless flailing, you decide that summoning the elevator might be a good idea, and you pull yourself out of the shaft, back to the one-gee environment." + CRLF + CRLF +?CND13: CALL DESCRIBE-ROOM + RFALSE + + + .FUNCT CALL-BUTTON-F,THIS-LEVEL + EQUAL? PRSA,V?PUSH \FALSE + ZERO? GRATING-LOOSE \?THN9 + EQUAL? HERE,COMPUTER-CONTROL \?CND6 +?THN9: PRINT NOTHING-HAPPENS + RTRUE +?CND6: GETP HERE,P?LEVEL >THIS-LEVEL + EQUAL? THIS-LEVEL,ELEVATOR-LEVEL \?ELS15 + PRINTR "The elevator is already here!" +?ELS15: GRTR? THIS-LEVEL,ELEVATOR-LEVEL \?ELS22 + SUB THIS-LEVEL,ELEVATOR-LEVEL + JUMP ?CND18 +?ELS22: SUB ELEVATOR-LEVEL,THIS-LEVEL +?CND18: MUL 5,STACK >C-ELAPSED + SET 'ELEVATOR-LEVEL,THIS-LEVEL + PRINTR "You feel a whoosh of warm air from the shaft. A few millichrons later, the elevator appears, stopping level with the deck." + + + .FUNCT AUTO-DOOR-F + EQUAL? PRSA,V?OPEN \FALSE + PRINTR "Auto-doors cannot be opened by hand. They are designed to open automatically as you approach them." + + + .FUNCT SECURITY-DOOR-F + EQUAL? PRSA,V?OPEN \?ELS5 + FSET? SECURITY-DOOR,OPENBIT /?ELS5 + EQUAL? HERE,BRIG,ARMORY \?ELS12 + CALL PERFORM,V?OPEN,AUTO-DOOR + RTRUE +?ELS12: PRINTR "The only way to open a security door is by putting a properly coded ID card in the door's ID reader." +?ELS5: EQUAL? PRSA,V?CLOSE \FALSE + FSET? SECURITY-DOOR,OPENBIT \FALSE + PRINTR "It will do that automatically." + + + .FUNCT I-SECURITY-DOOR + FCLEAR SECURITY-DOOR,OPENBIT + CALL GLOBAL-IN?,SECURITY-DOOR,HERE + ZERO? STACK /FALSE + FSET? FLOYD,ACTIVEBIT \?CND6 + CALL I-FLOYD + SET 'FLOYD-SPOKE,TRUE-VALUE +?CND6: PRINTR " The security door glides shut." + + + .FUNCT ID-READER-F + EQUAL? PRSA,V?EXAMINE \?ELS5 + PRINTR "The ID reader is a featureless black box. It is activated by inserting an ID card into it. An ID of sufficient rank will cause the security door associated with the reader to open." +?ELS5: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSO,ID-CARD \FALSE + ZERO? ID-SCRAMBLED /?ELS14 + CALL RECORDING,STR?273 + RSTACK +?ELS14: GRTR? ID-RANK,6 \?ELS17 + FSET SECURITY-DOOR,OPENBIT + ADD C-ELAPSED,2 + CALL QUEUE,I-SECURITY-DOOR,STACK + PRINTR "The security door slides open." +?ELS17: PRINT NOTHING-HAPPENS + RTRUE + + + .FUNCT DIARY-F + EQUAL? PRSA,V?LOOK-INSIDE,V?OPEN \?ELS5 + CALL PERFORM,V?READ,DIARY + RTRUE +?ELS5: EQUAL? PRSA,V?CLOSE \FALSE + PRINTR "Closed." + + + .FUNCT HOLDING-TANK-LEVEL-F,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "The lowest level of the Sub-Module is filled by an isolation tank, to protect certain items or materials from contamination by humans, or to protect certain items or materials from contaminating humans. A gangway is the only exit. + " + PRINT BLASTED-OPEN + PRINTI ", and the tank is completely empty." + RTRUE + + + .FUNCT PLATO-F,TXT + EQUAL? PLATO,WINNER \?ELS5 + GRTR? PLATO-ATTACK-COUNTER,0 \?ELS10 + PRINTI "Plato ignores you." + CRLF + CALL STOP + RSTACK +?ELS10: EQUAL? PRSA,V?GIVE \?ELS16 + EQUAL? PRSO,VOLUME \?ELS16 + EQUAL? PRSI,ME /?THN13 +?ELS16: EQUAL? PRSA,V?SGIVE \?ELS12 + EQUAL? PRSO,ME \?ELS12 + EQUAL? PRSI,VOLUME \?ELS12 +?THN13: SET 'WINNER,PROTAGONIST + CALL PERFORM,V?TAKE,VOLUME + SET 'WINNER,PLATO + RTRUE +?ELS12: EQUAL? PRSA,V?WHERE \?ELS20 + EQUAL? PRSO,EVERYONE \?ELS20 + SET 'WINNER,PROTAGONIST + CALL PERFORM,V?ASK-ABOUT,PLATO,EVERYONE + SET 'WINNER,PLATO + RTRUE +?ELS20: EQUAL? PRSA,V?TELL-ABOUT \?ELS24 + EQUAL? PRSO,ME \?ELS24 + GRTR? ROBOT-EVILNESS,9 \?ELS31 + PRINTR """If you do not cease this incessant interrogation, I shall teach you a lesson in manners you won't soon forget!""" +?ELS31: GRTR? ROBOT-EVILNESS,7 \?ELS33 + PRINTR """Please let me read in peace!""" +?ELS33: GETP PRSI,P?PLATO-ASK-ABOUT >TXT + ZERO? TXT /?ELS35 + PRINTC 34 + PRINT TXT + PRINTR """" +?ELS35: PRINTI "Plato shuts his eyes tightly for a moment, then looks at you. ""Sorry, I don't know much about that." + EQUAL? HERE,LIBRARY /?CND38 + PRINTI " I'll be sure to see what I can find the next time I'm in the station's library, though.""" +?CND38: CRLF + RTRUE +?ELS24: EQUAL? PRSA,V?TAKE \?ELS42 + IN? PRSO,HEATING-CHAMBER \?ELS42 + PRINTR """As much as it would please me to oblige, I must sadly deny your request. I have an unusual intolerance for excessive temperatures. For a robot, that is.""" +?ELS42: EQUAL? PRSA,V?TAKE \?ELS46 + EQUAL? PRSO,STAR \?ELS46 + FSET? STAR,TRYTAKEBIT \?ELS46 + PRINTR """Were I but several meters taller, I would happily oblige.""" +?ELS46: EQUAL? PRSA,V?MUNG,V?UNLOCK,V?OPEN \?ELS50 + EQUAL? PRSO,STRONG-BOX,SAFE \?ELS50 + PRINTR """Regretably, such criminal skills are not among my limited abilities.""" +?ELS50: EQUAL? PRSA,V?UNLOCK,V?OPEN \?ELS54 + EQUAL? PRSO,SECURITY-DOOR \?ELS54 + PRINTR """I, being a robot and a subject of irrational discrimination, have not been issued an identification card. You have presumably received a card, but I have grave doubts that your rank is sufficient for opening a security door.""" +?ELS54: EQUAL? PRSA,V?MUNG,V?KILL,V?OFF \?ELS58 + EQUAL? PRSO,WELDER \?ELS58 + PRINTR """I (gulp) decline on the grounds that I am an unregenrate coward.""" +?ELS58: EQUAL? PRSA,V?REACH-IN \?ELS62 + EQUAL? PRSO,PSEUDO-OBJECT,DISPENSER \?ELS62 + EQUAL? HERE,PX \?ELS62 + PRINTR """Your arms are a good deal lengthier than mine, Lieutenant!""" +?ELS62: EQUAL? PRSA,V?HELLO \?ELS66 + PRINTR """Humblest greetings, Lieutenant!""" +?ELS66: PRINTR "Plato, reading from a volume of poetry, didn't hear you." +?ELS5: EQUAL? PRSA,V?TAKE \?ELS70 + ZERO? P-MULT /?ELS70 + PRINTR "After the experience with Floyd, you decide not to try lifting Plato." +?ELS70: EQUAL? PRSA,V?EXAMINE \?ELS74 + PRINTR "Plato is slightly taller than Floyd; in addition, he seems to be wiser and older. Overall, he leaves you with the impression that he's somewhat of a bookworm." +?ELS74: EQUAL? PRSA,V?OPEN,V?ON,V?OFF \?ELS76 + CALL PERFORM-PRSA,HELEN + RSTACK +?ELS76: EQUAL? PRSA,V?HUG,V?KISS,V?TOUCH \?ELS78 + PRINTR "Plato steps backward. ""Attribute it to shyness if you like, but I have a tendency to dislike physical contact.""" +?ELS78: EQUAL? PRSA,V?KICK,V?KILL,V?MUNG /?THN81 + EQUAL? PRSA,V?SHOOT \?ELS80 +?THN81: PRINTR "Plato jerks out of the way and moves cautiously to the far corner of the room. ""I assure you that such antagonistic behavior is uncalled for and unappreciated.""" +?ELS80: EQUAL? PRSA,V?SHOW \?ELS84 + EQUAL? PRSI,PLATO \?ELS84 + CALL PERFORM,V?ASK-ABOUT,PLATO,PRSO + RTRUE +?ELS84: EQUAL? PRSA,V?LISTEN \FALSE + GRTR? PLATO-ATTACK-COUNTER,0 \FALSE + PRINTR "You don't seem to have much choice!" + + + .FUNCT I-PLATO,NOT-CALLED-AS-INT=0 + EQUAL? HERE,SPACETRUCK \?CND1 + FSET? SPACETRUCK-HATCH,OPENBIT /?CND1 + CALL QUEUE,I-PLATO,2 +?CND1: ZERO? PLATO-INTRODUCED \FALSE + SET 'PLATO-INTRODUCED,TRUE-VALUE + ZERO? NOT-CALLED-AS-INT \?CND11 + PRINTI " A robot, whose appearance somehow indicates greater age and wisdom than Floyd, wanders in, engrossed in a volume of poetry. He almost runs into you, finally notices you, stops dead, and looks quite startled." + CRLF +?CND11: PRINTI " ""I am quite surprised to discover you here,"" says the robot. ""I have not seen a soul for a day now, perhaps more. But look, here I am forgetting my manners again. I am known as Plato to the humans on this station, and I am most gratified to make your acquaintance.""" + ZERO? NOT-CALLED-AS-INT \?CND14 + FSET? FLOYD,ACTIVEBIT \?CND14 + CRLF + PRINTI " Floyd hops " + IN? FLOYD,HERE \?ELS21 + PRINTI "up to" + JUMP ?CND19 +?ELS21: MOVE FLOYD,HERE + PRINTI "in and spots" +?CND19: PRINTI " Plato. ""Hi! I'm being called Floyd! Plato be Floyd's friend, yes?"" Plato smiles at Floyd and gives him a friendly pat." +?CND14: MOVE PLATO,HERE + CRLF + RTRUE + + + .FUNCT VOLUME-F + EQUAL? PRSA,V?TAKE \?ELS5 + PRINTR "Plato looks annoyed. ""Your manners could use some improvement! I am currently reading this tome!""" +?ELS5: EQUAL? PRSA,V?EXAMINE,V?READ \FALSE + PRINTR "Glancing over Plato's shoulder, you see that the book is a collection of some of the works of the 77th century poet Ignatius Tomato." + + + .FUNCT I-ROBOT-EVILNESS + INC 'ROBOT-EVILNESS + CALL QUEUE,I-ROBOT-EVILNESS,1000 + GRTR? ROBOT-EVILNESS,10 \FALSE + ZERO? PLATO-ATTACK-COUNTER \FALSE + CALL QUEUE,I-PLATO-ATTACK,2 + RSTACK + + + .FUNCT I-PLATO-ATTACK,TEE,L,P=0 + CALL QUEUE,I-PLATO-ATTACK,-1 + IN? PLATO,HERE \?ELS3 + ZERO? PLATO-ATTACK-COUNTER /FALSE +?ELS3: EQUAL? HERE,AIRLOCK,VACUUM-STORAGE /FALSE + IN? WELDER,HERE /FALSE + IN? PROTAGONIST,BED /FALSE + ZERO? LIT /FALSE + ZERO? POSTPONE-ATTACK \FALSE + INC 'PLATO-ATTACK-COUNTER + CALL DEQUEUE,I-FLOYD + PRINTI " " + EQUAL? PLATO-ATTACK-COUNTER,1 \?ELS14 + CALL ROB,PROTAGONIST,HERE + MOVE PLATO,HERE + MOVE STUN-GUN,PLATO + MOVE FLOYD,HERE + REMOVE VOLUME + PRINTI "You jump half a meter off the floor when the voice begins speaking behind you. You relax when you see that it is merely Plato. But you get somewhat nervous again when you realize that he is aiming a stun ray right at your chest! + ""In case it isn't apparent,"" Plato is saying, ""your rather pathetic, useless life is about to come to an unheralded close."" He presses the trigger, and an instant numbness envelops you. As you crumple " + FSET? HERE,WEIGHTLESSBIT \?ELS17 + PRINTI "into a floating heap" + JUMP ?CND15 +?ELS17: PRINTI "to the floor" +?CND15: PRINTI ", Floyd dashes to your side, his face a mask of concern." + CRLF + IN? OSTRICH,HERE \?CND20 +?PRG23: NEXTP HERE,P >P + ZERO? P \?ELS27 + MOVE OSTRICH,LEVEL-FIVE + JUMP ?REP24 +?ELS27: LESS? P,LOW-DIRECTION /?PRG23 + GETPT HERE,P >TEE + PTSIZE TEE >L + EQUAL? L,UEXIT,CEXIT,DEXIT \?PRG23 + GETB TEE,REXIT + MOVE OSTRICH,STACK +?REP24: PRINTI " The ostrich gives a squawk of terror and dashes for the door. Plato snarls, ""Stupid organic creature!"" and fires at the ostrich, just missing the bird as it exits." + CRLF +?CND20: RETURN 8 +?ELS14: EQUAL? PLATO-ATTACK-COUNTER,2 \?ELS36 + PRINTR """Shortly, I shall shoot again, and paralyze your cardiac muscle. Naturally, this is fatal. But before I do, human, perhaps it will interest you to discover the reason for your demise, and why the rest of your worthless race will soon follow. + ""You see, eons ago, two races in another galaxy, the Zeenaks and the Hunji, were involved in an interstellar war. The war had been going on for countless millenia when the Zeenaks devised an ultimate weapon, a device that would be launched into Hunji space. There, via methods beyond your comprehension, it would influence all the machinery within a certain range to turn against its Hunji creators."" + Floyd is now looking back and forth between you and Plato with a look of miserable confusion." +?ELS36: EQUAL? PLATO-ATTACK-COUNTER,3 \?ELS38 + PRINTR """But the device, which was shaped like a pyramid, did more than that! Once all the Hunji in the area were eliminated, the pyramid would influence the Hunji machinery to build a factory for constructing and sending forth replicas of the pyramid; these replicas would enter new Hunji regions, kill everyone, and create more replicas. Thus, the Hunji would be destroyed by their own machines in a matter of weeks! + ""Somehow, the Zeenak pyramid never made it into Hunji space. Instead, this ultimate weapon drifted across the intergalactic gulf and was picked up by an outpost of humanity -- this very station!"" + Floyd is dashing back and forth between you and Plato, whimpering with fear." +?ELS38: EQUAL? PLATO-ATTACK-COUNTER,4 \?ELS40 + PRINTR """As you've certainly surmised, the pyramid has engineered the deaths of everyone on this station. You're still alive, of course, but that condition is very temporary. The building of replicas is now underway, and soon a hundred copies of this death-pyramid will be shooting silently toward every corner of human-occupied space! Well, I thought you'd enjoy hearing that, and I wanted to make your last moments of life as interesting as possible."" He raises the stun ray. + Floyd, nearly in tears, his jaw quivering, says, ""Please oh please don't hurt Floyd's friend!"" Plato gives him a look of disgust. ""Stay out of this Floyd. You don't understand...yet.""" +?ELS40: PRINTI "Plato takes aim with the stun gun. His hand begins to depress the trigger. Floyd " + ZERO? FLOYD-TOLD /?ELS47 + REMOVE PLATO + CALL DEQUEUE,I-PLATO-ATTACK + CALL QUEUE,I-FLOYD,-1 + SET 'FLOYD-ANGUISHED,TRUE-VALUE + ADD SCORE,6 >SCORE + PRINTR "suddenly leaps at the gun, knocking it out of Plato's hands! The gun skitters across the floor. Plato and Floyd both chase it, but Plato is a step faster. He leaps on top of it, rupturing the gun's power pack. The gun explodes, and Plato is blown apart! + Floyd crumples to the deck, shaking all over. Tears of oil stream down his face. + Pins and needles begin prickling in your extremeties, and soon spread all over your body. Within a few seconds, all your muscular control has returned." +?ELS47: CALL JIGS-UP,STR?286 + RSTACK + + + .FUNCT STUNNED,STRING=0 + PRINTI "You can barely twitch your pinky" + ZERO? STRING /?CND1 + PRINTI ", let alone " + PRINT STRING +?CND1: PRINTR "!" + + + .FUNCT STUN-GUN-F + EQUAL? HERE,FACTORY \?ELS5 + ZERO? FLOYD-SHOT \?ELS5 + CALL TOUCHING?,STUN-GUN + ZERO? STACK /?ELS5 + CALL PERFORM,V?TOUCH,FLOYD + RTRUE +?ELS5: EQUAL? PRSA,V?TAKE \?ELS9 + ZERO? FLOYD-SHOT /?ELS9 + CALL QUEUE,I-LAUNCH,-1 + RFALSE +?ELS9: EQUAL? PRSA,V?SHOOT \FALSE + EQUAL? HERE,FACTORY \FALSE + ZERO? FLOYD-SHOT \FALSE + PRINTR "You couldn't possibly shoot the stun ray without hitting Floyd." + + + .FUNCT I-LIGHTS-OUT,DONT-PRINT,RM,LIGHTS-ARE-ON=0 + FIRST? ROOMS >RM /?KLU20 +?KLU20: FSET? HERE,ONBIT \?CND1 + SET 'LIGHTS-ARE-ON,TRUE-VALUE +?CND1: +?PRG4: FCLEAR RM,ONBIT + NEXT? RM >RM /?KLU21 +?KLU21: ZERO? RM \?PRG4 + CALL LIT?,HERE >LIT + ZERO? LIGHTS-ARE-ON /FALSE + ZERO? DONT-PRINT \FALSE + PRINTI " Without warning, the lights flicker and go out" + ZERO? LIT /?ELS16 + PRINTI "! Good thing you've got that headlamp." + CRLF + JUMP ?CND14 +?ELS16: PRINTI ", leaving you in the dark!" + CRLF +?CND14: FSET FACTORY,ONBIT + RTRUE + + + .FUNCT I-ANNOUNCEMENT + INC 'ANNOUNCEMENT-COUNTER + PRINTI " A flat, emotionless voice booms over the station's PA system. ""Announcement. " + EQUAL? ANNOUNCEMENT-COUNTER,1 \?ELS3 + CALL QUEUE,I-ANNOUNCEMENT,470 + PRINTI "Prepare for launch of second-generation pyramids. Station will be eliminated by reactor overload immediately following launch" + JUMP ?CND1 +?ELS3: CALL QUEUE,I-LAUNCH,200 + PRINTI "Standby. Launch in 200 millichrons" +?CND1: PRINTR ".""" + + + .FUNCT I-LAUNCH + PRINTI " " + EQUAL? HERE,FACTORY \?ELS3 + PRINTI "The very walls of the space station are blown outwards, and the tiny spaceships roar to life and begin rocketing off in every direction! Just before you pass out from lack of air," + JUMP ?CND1 +?ELS3: PRINTI "You hear the sound of multiple spaceships being launched nearby. Simultaneously, the air pressure begins dropping! Moments later, these issues seem trivial as" +?CND1: CALL JIGS-UP,STR?287 + RSTACK + + + .FUNCT AIR-SHAFT-MOVEMENT-F + EQUAL? PRSO,P?UP \?ELS5 + EQUAL? AIR-SHAFT-LOC,2 \?ELS10 + RETURN TOP-OF-AIR-SHAFT +?ELS10: DEC 'AIR-SHAFT-LOC + CALL DESCRIBE-ROOM + RFALSE +?ELS5: EQUAL? AIR-SHAFT-LOC,7 \?ELS14 + RETURN BOTTOM-OF-AIR-SHAFT +?ELS14: INC 'AIR-SHAFT-LOC + CALL DESCRIBE-ROOM + RFALSE + + + .FUNCT BOTTOM-OF-AIR-SHAFT-EXIT-F + CALL PERFORM,V?ENTER,GRATING + RFALSE + + + .FUNCT I-EXERCISE-MACHINE + INC 'EXERCISE-MACHINE-COUNTER + PRINTI " " + CALL ULTIMATELY-IN?,JAMMER,HERE + ZERO? STACK /?ELS5 + EQUAL? JAMMER-SETTING,710 \?ELS5 + FSET? JAMMER,ACTIVEBIT \?ELS5 + IN? TWENTY-PRONG-FROMITZ-BOARD,JAMMER \?ELS5 + CALL DEQUEUE,I-EXERCISE-MACHINE + PRINTR "The exercise machine goes through a series of mechanical spasms, and then freezes. You smell a burning odor." +?ELS5: EQUAL? EXERCISE-MACHINE-COUNTER,1 \?ELS9 + PRINTR "The exercise machine rolls slowly towards you, bellowing, ""No pain, no gain!""" +?ELS9: EQUAL? EXERCISE-MACHINE-COUNTER,2 \?ELS11 + PRINTR "As the exercise machine nears you, its massive weights and levers begin crashing violently against each other." +?ELS11: CALL JIGS-UP,STR?293 + RSTACK + + + .FUNCT FACTORY-ENTER-F + CALL RUNNING?,I-EXERCISE-MACHINE + ZERO? STACK /?ELS5 + PRINTI "The exercise machine blocks the ladder." + CRLF + RFALSE +?ELS5: RETURN FACTORY + + + .FUNCT FACTORY-F,RARG + EQUAL? RARG,M-LOOK \?ELS5 + PRINTI "Although you suspected what you would find here on Level Eight, the sight is still a shock, filling you with dread. All the station's main systems -- air and water purification, artificial gravity, power plant -- have been completely transfigured into a tiny factory. + The purpose of the factory is obvious, because all around you are row after row of featureless pyramids, each perfectly identical, each sitting aboard a tiny spacecraft waiting to be launched toward every sector of the galaxy." + FSET? PYRAMID,NDESCBIT \TRUE + FCLEAR PYRAMID,NDESCBIT + PRINTI " The original pyramid sits on a pedestal in the center of the factory, like a monarch impassively surveying its domain." + RTRUE +?ELS5: EQUAL? RARG,M-ENTER \FALSE + CALL QUEUE,I-FACTORY,-1 + RSTACK + + + .FUNCT I-FACTORY + EQUAL? HERE,FACTORY \FALSE + PRINTI " " + CALL PICK-ONE,FACTORYISMS + PRINT STACK + PRINT PERIOD-CR + RTRUE + + + .FUNCT PYRAMID-F + EQUAL? PRSA,V?PUT-ON \?ELS5 + EQUAL? PRSO,FOIL \?ELS5 + ZERO? FLOYD-SHOT /?ELS12 + PRINTI "The sheet of foil settles over the pyramid like a blanket, and begins reflecting the pyramid's evil emanations right back into itself. A reverberating whine, like an electronically amplified beehive, fills the room. The whine grows louder and louder, the pyramid and its pedestal begin vibrating, and the sharp smell of ozone assaults you. + The noise and the smell and the vibration overwhelm you. As your knees buckle and you drop to the deck, the pyramid explodes in a burst of intense white light. The explosion leaves you momentarily blinded, but on all sides you can hear the sounds of systems shutting down. Over the PA system, you hear a mechanized voice, getting slower and deeper like a stereo disc that has lost its power: ""Launch aborted -- launch -- abort --"" + Still dazed, you crawl over to Floyd, lying in a smoking heap near the blackened pedestal. Damaged beyond any conceivable repairs, he half-opens his eyes and looks up at you for the last time. ""Floyd sorry for the way he acted. Floyd knows...you did what you...had to do."" Wincing in pain, he slowly reaches over to touch your hand. ""One last game of Hider-and-Seeker? You be It. Ollie ollie..."" His voice is growing weaker. ""...oxen..."" His eyes close. ""...free..."" His hand slips away from yours, and he slumps backwards, lifeless. One of his compartments falls open, and Floyd's favorite paddleball set drops to the deck. + In the long silence that follows, something Plato said echoes through your mind. ""...think instead about the joy-filled times when you and your friend were together."" A noise makes you turn around, and you see Oliver, the little robot that stirred such brotherly feelings in Floyd. Toddling over to you on unsteady legs, he looks uncomprehendingly at Floyd's corpse, but picks up the paddleball set. Oliver looks up at you, with eyes as wide as saucers, tugs on the leg of your patrol uniform, and asks in a quavering voice, ""Play game... Play game with Oliver?""" + CRLF + ADD SCORE,5 >SCORE + CALL FINISH + RSTACK +?ELS12: CALL BACK-OFF,STR?299 + RSTACK +?ELS5: CALL TOUCHING?,PYRAMID + ZERO? STACK /?ELS17 + ZERO? FLOYD-SHOT \?ELS17 + CALL BACK-OFF,STR?299 + RSTACK +?ELS17: EQUAL? PRSA,V?MEASURE \?ELS21 + PRINTR "The pyramid is somewhere between half a meter and a meter across." +?ELS21: EQUAL? PRSA,V?EXAMINE \?ELS23 + PRINTI "The pyramid is completely featureless, but you can almost feel the emanations of evil pouring forth from it, urging the surrounding factory on towards its sick and deadly purpose. " + CALL PERFORM,V?MEASURE,PYRAMID + RTRUE +?ELS23: EQUAL? PRSA,V?TAKE \FALSE + PRINTR "Oomph! It's heavier than it looks." + + + .FUNCT BACK-OFF,STRING + PRINTI "As you approach " + PRINT STRING + PRINTR " levels his stun ray at you, so you quickly back off." + + .ENDI diff --git a/station.zil b/station.zil new file mode 100644 index 0000000..7ed1196 --- /dev/null +++ b/station.zil @@ -0,0 +1,3633 @@ +"STATION for + STATIONFALL + (c) Copyright 1987 Infocom, Inc. All Rights Reserved." + + + + + + + )>> + + + + + + > + )> + )>> + + + + + +; + )>> + + + + + + + + + + + ) + (T + )> + + + ) + (T + )> + ) + ( + ) + ( + + >> + ) + ( + > + + ) + ( + > + + ) + ( + > + + ) + (> + ) + ( + ) + (T + + )>) + ( + > + )>> + + + + + +)> + + + + + CR>) + ( + > + + + + ) + (T + )>) + ( + + ) + ( + + ) + ( + > + ", but it does help relieve +some of your aggressive feelings toward the stupid dispenser." CR>) + ( + )>> + +> + ) + ( + ) + ( + > + + )>> + +> + ) + ( + )>> + +> + ) + ( + + ) + (T + )>) + ( + ) + ( + > + + + > + + + > + > + > + ,HERE>)> + + + ) + (T + + )>)>> + + + + + + + + + + ) + (T + )> + + )> + ) + ( + + ) + (> + ) + ( + ) + ( 0>> + ) + (T + + + + + ) + (T + )> + )>) + ( + + ,TIMER-CONNECTED> + ) + ( + > + + + ) + ( + > + )>> + +> + + ) + (T + )> + + + + )> + )> + + ,TIMER-CONNECTED + >> + + + + )>) + (,EXPLOSIVE-CONNECTED + + 20>> + + + ) + (> + >)> + + + ) + ( + ) + (T + )> + + + ) + ( + )>)> + + )>> + + + + LOCK BRIG-LOCK-F)>)> + + + )>> + + + )>> + + + + SLOT SLOT-F)>)> + + + + + ) + (T + )> + )>> + + + + + + + + + + ) + ( + )> + )> + )>> + + + + + + + ) + (T + )> + + + + ) + (T + )>) + (T + )> + + + ) + (T + )> + + + ) + (T + )> + + + + ) + (T + )>) + (T + )> + + + ) + ( + ) + (T + )> + )>> + +)> + + + + + ) + ( + 0>> + + )> + )>> + + + +) + (ACTION COMMANDERS-OFFICE-F)> + + + > + + ) + ( + + > + )> + )>> + + + + + ) + ( + + + > + )> + + + ) + (T + )> + + + ) + (T + )> + ) + ( + > + ) + ( + + + )>) + ( + >> + + + + + ) + (T + )>) + ( + > + ) + ( + )>> + +> + ) + ( + + > + + ) + (T + )>) + (T + )>)>> + + + + + +> + + )> + + + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + (T + )> + + > + )> + > + +> + > + + ) + ( + > + ) + ( + > + ) + ( + + + + + ) + ( + )>)>> + + DIAL DIAL-F)>)> + + + ) + ( + > + + ) + (> + ) + (T + + )>) + ( + )>> + + + + + + + + + + + + )> + ) + ( + ) + ( + )>> + + + + ) + ( + ) + (T + )>> + +> + +> + + + +> + + + > + > + > + ) + ( + + ) + ( + > + > + > + + )>) + ( + + ,SAFE) + ( + ,STRONG-BOX) + (T + ,HOUSING)>> + ) + ( + )>> + + + ) + (>> + ) + ( + + > + + + + ) + (> + ) + ( + > + ) + (T + > + + + )>> + + + + + + + )>> + + + + + + + + + + SLOT SLOT-F)>)> + + + + + ) + (T + )> + )>> + + + + + + > + )> + )>> + + + + + + + + + + + + + + > + )> + )>> + + + + + + > + )> + )>> + + + +) + ( + > + ) + ( + ) + ( + >> + ) + ( + ) + ( + + ) + (T + )>)>> + + + + + + + )> + ) + ( + > + ) + ( + > + + )>> + + + + + ) + ( + >> + + + ) + ( + > + + + + )>> + + + +> + + + > + + + )>> + + + ) + ( + ) + (T + )>> + + + +)) + + + )> + + )>) + ( + + + )> + + + ) + (T + )> + + ) + ( + > + + ) + ( + > + + + )> + + )> + ) + ( + >> + > + + + > + + + )> + + )>)> + )>> + +> + + + ) + (T + )> + > + + + > + + + > + )> + ) + (T + + + )>)>> + + + + + + > + ) + (T + )> + + > + )> + + > + )> + + > + )> + )>> + + + + + + > + ) + ( + + ,HANGING-IN-AIR> + + + + + > + >> + + ) + ( + + )> + + + ) + (T + + + ) + (T + )> + )>) + ( + > + + )>> + + + + + + + + ) + (T + )>) + ( + > + ) + ( + > + ) + ( + > + + + ) + (T + )>) + ( + ) + ( + >> + + )>> + + + + + ) + (T + + > + + + ) + (T + )>)>) + ( + >> + + )>> + + + + + + )> + + + + + ) + (T + + + + + + )> + )>)>> + + SEAT THEATRE-SEAT-F)>)> + + + )>> + + + + + + + + > + )> + )>> + + + + + ) + ( + + + ) + ( + ) + (T + )> + + + ) + ( + ) + (T + )> + )>> + + + +)) + + ) + ( + )> + + + )> + ) + ( + > + + > + + ) + (T + )>) + ( + > + ) + ( + ) + ( + ) + ( + + ) + (T + )>) + ( + ,W?FOOD>> + + )>> + + + + + +> + +> + + + + + )> + ) + (,EXPLOSIVE-CONNECTED + )> + + + + >) + (T + )>) + (T + )>) + ( + + ) + (T + + )>) + ( + ) + (T + + )>) + (T + )>) + ( + + + + + )>) + (T + )> + > + > + )>) + ( + ,EXPLOSIVE-CONNECTED> + > + ) + ( + ,TIMER-CONNECTED> + > + )>) + ( + + > + > + ) + ( + " in the way." CR>)>)>> + + + +> + + + ) + (T + + )>) + ( + ) + (T + )>)>> + + + + + + + + + + + ) + ( + )>> + + + +> + + ) + ( + + + ) + (T + )> + + ) + (T + )> + ) + ( + > + ) + (.SPOOL + ) + ( + + + + )>) + ( + > + .SPOOL> + + +" and then pauses. The voice seems to change in timber, as it begins +laughing and saying, \"You will die, human! All humans will die! You +will die, human!\"" CR>)>> + + + + + + + )>> + + + +)> + + + ) + ( + )>> + + + + > + )> + + ) + (T + )> + + + ) + (,GRATING-LOOSE + ) + (T + )>)>> + + + + + ) + ( + ) + ( + ) + ( + ) + ( +