commit 2ac9da82cbf56d525c8a9dadc8f1afdc5c7ddf6c Author: historicalsource Date: Sun Apr 14 16:25:39 2019 -0400 Final Revision diff --git a/README b/README new file mode 100644 index 0000000..806fac3 --- /dev/null +++ b/README @@ -0,0 +1,21 @@ +A few notes on the walk-thru version of The Abyss. + +The game currently supports only the correct instructions to +make it through to the end. Doing something other than what is +required may result in unexpected results (and may void the +warranty). + +Two 'cheat' verbs are required to get through the game. When you +oxygen in the breathing mix gets low, or when the nitrogen level +is high, after solving the stopper puzzle, you must use the $AIR +command to restore to breathing mix to nominal values. Also, +when you trap Coffey in the compression chamber, you must use +the $NITROGEN command to get him to say the wiring code +mnemonic. + +When the crane crashes, you have enough time to do all the +things yourself, and in fact cannot ask anyone else to do +something for you. + +The helium descrambler puzzle is not yet implemented. + diff --git a/README.md b/README.md new file mode 100644 index 0000000..b69b26a --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# abyss diff --git a/abyss-mac b/abyss-mac new file mode 100644 index 0000000..e14f907 --- /dev/null +++ b/abyss-mac @@ -0,0 +1,11 @@ +File 1: 6 pictures. + ID Pixels RLE Huff Name + 1 960 51 25 GAUGE.LBM + 2 960 42 20 GAUGE.LBM + 3 960 51 25 GAUGE.LBM + 4 960 36 16 GAUGE.LBM + 5 12 4 3 GAUGE.LBM + 6 12 4 3 GAUGE.LBM + + +Segment Size diff --git a/abyss-mac.g b/abyss-mac.g new file mode 100644 index 0000000..e69de29 diff --git a/abyss-pix.zil b/abyss-pix.zil new file mode 100644 index 0000000..db2cd93 --- /dev/null +++ b/abyss-pix.zil @@ -0,0 +1,6 @@ + + + + + + diff --git a/abyss.chart b/abyss.chart new file mode 100644 index 0000000..4c9ff41 --- /dev/null +++ b/abyss.chart @@ -0,0 +1,2 @@ +-date- -rel- -size- -pre- -obj- -glo- -voc- + 3/20 1 109416 25134 203 123 626 diff --git a/abyss.errors b/abyss.errors new file mode 100644 index 0000000..65ccf42 --- /dev/null +++ b/abyss.errors @@ -0,0 +1,39 @@ +Release: 1 + 0 Inserting abyss.zap. + 64 Inserting abyssfreq.xzap. + 720 Inserting abyssdat.zap. + 25134 Inserting abysspur.zap. + 26198 Inserting pstack.zap. + 26234 Inserting pmem.zap. + 26377 Inserting parser.zap. + 36010 Inserting find.zap. + 38166 Inserting reds.zap. + 44860 Inserting breds.zap. + 47154 Inserting top.zap. + 48929 Inserting prare.zap. + 53280 Inserting misc.zap. + 56372 Inserting gas-mix.zap. + 59524 Inserting verbs.zap. + 67067 Inserting be.zap. + 68282 Inserting sub-bay.zap. + 81752 Inserting command.zap. + 84030 Inserting montana.zap. + 90442 Inserting return1.zap. + 91141 Inserting return2.zap. + 91443 Inserting ocean.zap. + 92347 Inserting crane.zap. + 99062 Inserting global.zap. + 99563 Inserting util.zap. +104295 Inserting stopper.zap. +105650 Inserting alien.zap. +106830 Inserting endgame.zap. +107356 Inserting abyssstr.zap. + +Lexical buffer space allocated: 608152 +Max lexical space allocated at any one time: 48012 +Object buffer space allocated: 112000 +Source bytes read: 531619 +Object bytes written: 109416 +Preload: 25134; 203 objects; 123 globals; 626 words. +Used 1:58 +Elapsed time 2:23 diff --git a/abyss.lowcore b/abyss.lowcore new file mode 100644 index 0000000..fae2be6 --- /dev/null +++ b/abyss.lowcore @@ -0,0 +1,2 @@ + +2 \ No newline at end of file diff --git a/abyss.mac.1 b/abyss.mac.1 new file mode 100644 index 0000000..25d8129 Binary files /dev/null and b/abyss.mac.1 differ diff --git a/abyss.mpf b/abyss.mpf new file mode 100644 index 0000000..3071f07 --- /dev/null +++ b/abyss.mpf @@ -0,0 +1,8 @@ +abyss -c -h -t +.file 1 * +1 gauge.lbm -x 016 008 135 015 -0 ;"Oxygen gauge" +2 gauge.lbm -x 016 024 135 031 -0 ;"CO2 gauge" +3 gauge.lbm -x 016 040 135 047 -0 ;"Nitrogen gauge" +4 gauge.lbm -x 016 056 135 063 -0 ;"Helium gauge" +5 gauge.lbm -x 044 073 045 078 -0 ;"Needle (dark)" +6 gauge.lbm -x 058 073 059 078 -0 ;"Needle (light)" diff --git a/abyss.record b/abyss.record new file mode 100644 index 0000000..00292d4 --- /dev/null +++ b/abyss.record @@ -0,0 +1,946 @@ +ZILCH of 3/2/89 12:41 + +Combined ZIL Compiler Ver 2.0 (MIM) +----------------------------------- + +Incremental compilation disabled, because top-level ZIL file changed. + +Input file: /USR/DEVELOPMENT/ABYSS/ABYSS.ZIL +[Object numbers assigned rooms first] + +[Zaps always go to current directory] + +[YZIP instructions] + +Loading /USR/DEVELOPMENT/ABYSS/DEFS.ZIL and compiling it. +XFLOAD /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/PARSER.REST. +Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/CONSTANTS.ZIL and compiling it. +Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/PSTACK.ZIL and compiling it. + +Start segment 0 +Compiling routine: PEEK-PSTACK +End segment 0 +Abstracting PSTACK to /USR/DEVELOPMENT/ABYSS/PSTACK. +Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/PMEM.ZIL and compiling it. + +Start segment 0 +Compiling routine: PMEM? +Compiling routine: PMEM-RESET +Compiling routine: DO-PMEM-ALLOC +End segment 0 +Abstracting PMEM to /USR/DEVELOPMENT/ABYSS/PMEM. +Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/PDEFS.ZIL and compiling it. +Loading /USR/DEVELOPMENT/ABYSS/DEFS2.ZIL and compiling it. +Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/PARSER.ZIL and compiling it. + +Start segment 0 +Compiling routine: INIT-STATUS-LINE +Compiling routine: UPDATE-STATUS-LINE +Compiling routine: RT-PRINT-MENU +Compiling routine: RT-PRINT-MENU-ENTRY +Compiling routine: RT-HLIGHT-MENU +Compiling routine: RT-GET-PREPS +Compiling routine: RT-GET-OBJS +Compiling routine: RT-DO-OBJECTS +Compiling routine: RT-GET-MEM +Compiling routine: RT-FREE-MEM +Compiling routine: RT-STOP-READ +Compiling routine: MOUSE-INPUT? +Compiling routine: READ-INPUT +Compiling routine: SPECIAL-CONTRACTION? +Compiling routine: EXPAND-BE-CONTRACTIONS +Compiling routine: TELL-THE +Compiling routine: TELL-CTHE +Compiling routine: NAKED-DIR? +Compiling routine: PARSER +Compiling routine: GAME-VERB? +Compiling routine: RED-SD +Compiling routine: P-P +Compiling routine: PARSE-IT +Compiling routine: PARSE-SENTENCE +Compiling routine: GET-TERMINAL-ACTION +Compiling routine: GET-NONTERMINAL-ACTION +Compiling routine: BE-PATIENT +Compiling routine: MAIN-LOOP +Compiling routine: MAIN-LOOP-1 +Compiling routine: QCONTEXT-CHECK +Compiling routine: LIT? +Compiling routine: IGNORE-FIRST-WORD +Compiling routine: FIX-QUOTATIONS +Compiling routine: MAIN-LOOP-IT +Compiling routine: P-NO-MEM-ROUTINE +Compiling routine: BEG-PARDON +Compiling routine: UNKNOWN-WORD +Compiling routine: WORD-PRINT +Compiling routine: PRINT-VOCAB-WORD +Compiling routine: DO-OOPS +Compiling routine: DO-AGAIN +Compiling routine: NP-SAVE +Compiling routine: PARSER-ERROR +Compiling routine: BUZZER-WORD? +Compiling routine: NUMBER? +Compiling routine: CHANGE-LEXV +Compiling routine: TELL-GWIM-MSG +Compiling routine: DO-IT-AGAIN +End segment 0 +Abstracting PARSER to /USR/DEVELOPMENT/ABYSS/PARSER. +Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/FIND.ZIL and compiling it. + +Start segment 0 +Compiling routine: FIND-DESCENDANTS +Compiling routine: EXCLUDED? +Compiling routine: INVALID-OBJECT? +Compiling routine: MATCH-OBJECT +Compiling routine: TEST-OBJECT +Compiling routine: ADD-OBJECT +Compiling routine: NOT-IN-FIND-RES? +Compiling routine: EVERYWHERE-VERB? +Compiling routine: MULTIPLE-EXCEPTION? +Compiling routine: CHECK-ADJS-THERE? +Compiling routine: CHECK-ADJS +Compiling routine: SEARCH-IN-LG? +Compiling routine: EXCLUDE-HERE-OBJECT? +Compiling routine: FIND-OBJECTS +Compiling routine: TEST-THINGS +End segment 0 +Abstracting FIND to /USR/DEVELOPMENT/ABYSS/FIND. +Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/REDS.ZIL and compiling it. + +Start segment 0 +Compiling routine: NOT-HERE-VERB? +Compiling routine: RED-FCN +Compiling routine: RED-PART +Compiling routine: GET-SYNTAX +Compiling routine: RED-SV +Compiling routine: ROOT-VERB +Compiling routine: RED-SVN +Compiling routine: RED-SVNP +Compiling routine: RED-SVNPN +Compiling routine: RED-SVPNN +Compiling routine: RED-SVPNPN +Compiling routine: RED-SVD +Compiling routine: RED-SP +Compiling routine: IREDUCE-EXCEPTION +Compiling routine: REDUCE-EXCEPT-IT +Compiling routine: REDUCE-EXCEPTION +Compiling routine: REDUCE-LOCATION +Compiling routine: DETERMINE-OBJ +Compiling routine: CHECK-DIR-ADJS +Compiling routine: NUMERIC-ADJ? +Compiling routine: DETERMINE-NP +Compiling routine: DET-NP-NOT-HERE? +Compiling routine: DET-NP-OWNEE? +Compiling routine: FIND-OWNERS +Compiling routine: READY-TO-DISAMBIGUATE? +Compiling routine: DETERMINE-NP-XFER +Compiling routine: DO-ORPHAN-TEST +Compiling routine: RED-O-ADJ +Compiling routine: RED-O-PP +Compiling routine: INSERT-NP +Compiling routine: TEST-SR +Compiling routine: RED-O-NP +Compiling routine: RED-PERS +Compiling routine: HACK-TELL +Compiling routine: HACK-TELL-1 +Compiling routine: RED-VP +Compiling routine: RED-NP +Compiling routine: RED-OF +Compiling routine: RED-QT +Compiling routine: GET-QUANTITY-WORD +Compiling routine: GET-QUANTITY +Compiling routine: RED-QN +Compiling routine: RED-NPP +Compiling routine: RED-PP +Compiling routine: RED-POSS +Compiling routine: RED-ADJ +Compiling routine: RED-QUOTE +End segment 0 +Abstracting REDS to /USR/DEVELOPMENT/ABYSS/REDS. +Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/BREDS.ZIL and compiling it. + +Start segment 0 +Compiling routine: RED-BE-FORM +Compiling routine: EXCH-4-5-Q +Compiling routine: RED-SBNN +Compiling routine: RED-SNBN +Compiling routine: DETERMINE-SUBJ +Compiling routine: RED-SBNA +Compiling routine: RED-SNBA +Compiling routine: RED-SBNP +Compiling routine: RED-SNBP +Compiling routine: RED-SNBAP +Compiling routine: P-PP-OBJ +Compiling routine: P-PP-PREP +Compiling routine: RED-SQBN +Compiling routine: RED-BE +Compiling routine: RED-NOT +Compiling routine: RED-CANDO +Compiling routine: INSERT-WHAT +End segment 0 +Abstracting BREDS to /USR/DEVELOPMENT/ABYSS/BREDS. +Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/GRAM.ZIL and compiling it. +Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/TOP.ZIL and compiling it. + +Start segment 0 +Compiling routine: MORE-SPECIFIC +Compiling routine: V-PDEBUG +Compiling routine: VERB-ALL-TEST +Compiling routine: FIX-HIM-HER-IT +Compiling routine: TELL-PRONOUN +Compiling routine: NO-M-WINNER-VERB? +Compiling routine: FIND-A-WINNER +Compiling routine: TELL-SAID-TO +Compiling routine: QCONTEXT-GOOD? +Compiling routine: META-LOC +Compiling routine: CANT-UNDO +Compiling routine: SEE-VERB? +Compiling routine: PERFORM +Compiling routine: TELL-TOO-DARK +Compiling routine: ITAKE-CHECK +Compiling routine: TELL-D-LOC +Compiling routine: D-APPLY +Compiling routine: CAPITAL-NOUN? +Compiling routine: NOT-HERE +Compiling routine: SPEAKING-VERB? +Compiling routine: GET-OWNER +Compiling routine: GET-NP +Compiling routine: NOUN-USED? +Compiling routine: ADJ-USED? +End segment 0 +Abstracting TOP to /USR/DEVELOPMENT/ABYSS/TOP. +Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/PRARE.ZIL and compiling it. + +Start segment 0 +Compiling routine: TOO-MANY-NEW +Compiling routine: NAKED-OOPS +Compiling routine: CANT-OOPS +Compiling routine: CANT-AGAIN +Compiling routine: CANT-USE-MULTIPLE +Compiling routine: MAKE-ROOM-FOR-TOKENS +Compiling routine: REPLACE-ONE-TOKEN +Compiling routine: V-$REFRESH +Compiling routine: PRINT-INTQUOTE +Compiling routine: PRINT-LEXV +Compiling routine: COPY-INPUT +End segment 0 +Start segment 0 +Compiling routine: BUFFER-PRINT +Compiling routine: CAPITALIZE +Compiling routine: PRINT-PARSER-FAILURE +Compiling routine: NAKED-ADJECTIVE? +Compiling routine: CHANGE-AND-TO-THEN? +Compiling routine: DONT-UNDERSTAND +Compiling routine: MISSING +Compiling routine: CANT-FIND-OBJECT +Compiling routine: NP-CANT-SEE +Compiling routine: WINNER-SAYS-WHICH? +Compiling routine: WHICH-LIST? +Compiling routine: WHICH-PRINT +Compiling routine: NP-PRINT +Compiling routine: ADJS-PRINT +Compiling routine: TOO-MANY-NOUNS +Compiling routine: INBUF-ADD +Compiling routine: INBUF-PRINT +Compiling routine: YES? +Compiling routine: SETUP-ORPHAN +Compiling routine: SETUP-ORPHAN-NP +Compiling routine: INSERT-ADJS +Compiling routine: INSERT-ADJS-WD +End segment 0 +Abstracting PRARE to /USR/DEVELOPMENT/ABYSS/PRARE. +Loading /USR/DEVELOPMENT/ABYSS/MACROS.ZIL and compiling it. +Loading /USR/DEVELOPMENT/ABYSS/MISC.ZIL and compiling it. +Compiling routine: VISIBLE? +Compiling routine: CLOSED? +Compiling routine: ACCESSIBLE? +Compiling routine: RT-PRINT-DESC +Compiling routine: RT-PRINT-ARTICLE +Compiling routine: RT-PRINT-OBJ +Compiling routine: RT-PRINT-VERB +Compiling routine: THIS-IS-IT +Compiling routine: RT-IN-ON-MSG +Compiling routine: RT-OUT-OFF-MSG +Compiling routine: RT-OPEN-MSG +Compiling routine: TOUCH-VERB? +Compiling routine: CLOCKER +Compiling routine: RT-QUEUE +Compiling routine: RT-DEQUEUE +Compiling routine: RT-IS-QUEUED? +Compiling routine: C-PIXELS +Compiling routine: L-PIXELS +Compiling routine: PIXELS-C +Compiling routine: PIXELS-L +Compiling routine: CCURSET +Compiling routine: CCURGET +Compiling routine: CSPLIT +Compiling routine: CWINPOS +Compiling routine: CWINSIZE +Compiling routine: CSCROLL +Compiling routine: RT-SCRIPT-INBUF +Compiling routine: GO +Abstracting MISC to /USR/DEVELOPMENT/ABYSS/MISC. +Loading /USR/DEVELOPMENT/ABYSS/GAS-MIX.ZIL and compiling it. + +Compiling routine: V-$SCRUB +Compiling routine: V-$AIR +Compiling routine: RT-NUM-DIGITS +Compiling routine: RT-PRINT-FLOAT +Compiling routine: RT-NITROGEN-MSG +Compiling routine: RT-OXYGEN-MSG +Compiling routine: RT-CO2-MSG +Compiling routine: RT-I-GAS-MIX +Compiling routine: V-$HEAT +Compiling routine: RT-TH-THERMOMETER +Compiling routine: RT-TEMP-MSG +Compiling routine: RT-I-DEEPCORE-TEMP +Compiling routine: RT-I-TEMP +Abstracting GAS-MIX to /USR/DEVELOPMENT/ABYSS/GAS-MIX. +Loading /USR/DEVELOPMENT/ABYSS/SYNTAX.ZIL and compiling it. +Loading /USR/DEVELOPMENT/ABYSS/VERBS.ZIL and compiling it. +Compiling routine: V-DESC-LEVEL +Compiling routine: V-SCRIPT +Compiling routine: V-VERIFY +Compiling routine: V-COMMAND +Compiling routine: V-RECORD +Compiling routine: V-UNRECORD +Compiling routine: V-INVENTORY +Compiling routine: V-QUIT +Compiling routine: RT-FAILED-MSG +Compiling routine: V-RESTART +Compiling routine: V-SAVE +Compiling routine: V-RESTORE +Compiling routine: RT-PRINT-CONTENTS +Compiling routine: RT-DESCRIBE-OBJECTS +Compiling routine: RT-DESCRIBE-ROOM +Compiling routine: NOT-HOLDING? +Compiling routine: HELD? +Compiling routine: TOO-DARK +Compiling routine: V-ASK-ABOUT +Compiling routine: V-ATTACH +Compiling routine: V-CLOSE +Compiling routine: V-CUT +Compiling routine: IDROP +Compiling routine: V-DROP +Compiling routine: PRE-EMPTY +Compiling routine: V-EMPTY +Compiling routine: RT-EMPTY-MSG +Compiling routine: V-EMPTY-FROM +Compiling routine: V-ENTER +Compiling routine: V-EXIT +Compiling routine: RT-NOT-IN-ROOM-MSG +Compiling routine: RT-DO-WALK +Compiling routine: V-EXAMINE +Compiling routine: RT-NOTHING-SPECIAL-MSG +Compiling routine: V-EXTINGUISH +Compiling routine: V-FOLLOW +Compiling routine: V-GIVE +Compiling routine: V-GIVE-SWP +Compiling routine: V-HIT +Compiling routine: V-INFLATE +Compiling routine: V-LIFT +Compiling routine: V-LISTEN +Compiling routine: V-LOCK +Compiling routine: V-LOOK +Compiling routine: V-LOOK-BEHIND +Compiling routine: V-LOOK-UNDER +Compiling routine: V-LOOK-IN +Compiling routine: TELL-CANT-FIND +Compiling routine: V-LOOK-ON +Compiling routine: V-MOVE +Compiling routine: V-NO +Compiling routine: RT-MATCH-KEY +Compiling routine: RT-OTHER-SIDE +Compiling routine: RT-LOCK-MSG +Compiling routine: RT-OPEN-DOOR-MSG +Compiling routine: V-OPEN +Compiling routine: V-PLUG-IN +Compiling routine: V-PULL +Compiling routine: V-PUSH +Compiling routine: PRE-PUT +Compiling routine: V-PUT +Compiling routine: TELL-FIND-NONE +Compiling routine: PRE-PUT-IN +Compiling routine: V-PUT-IN +Compiling routine: RT-PUT-ON-OR-IN +Compiling routine: RT-TOTAL-SIZE +Compiling routine: RT-OBJ-TOO-LARGE? +Compiling routine: RT-ROOM-IN-MSG? +Compiling routine: RT-CHECK-MOVE-MSG? +Compiling routine: V-REACH-BEHIND +Compiling routine: V-REACH-IN +Compiling routine: V-REACH-UNDER +Compiling routine: V-READ +Compiling routine: V-SHOW +Compiling routine: V-SHOW-SWP +Compiling routine: V-SIT +Compiling routine: ITAKE +Compiling routine: RT-DO-TAKE +Compiling routine: PRE-TAKE +Compiling routine: PRE-TAKE-WITH +Compiling routine: V-TAKE +Compiling routine: V-TAKE-WITH +Compiling routine: V-TALK-TO +Compiling routine: V-TELL +Compiling routine: WONT-HELP-TO-TALK-TO +Compiling routine: V-TELL-ABOUT +Compiling routine: V-THANK +Compiling routine: V-TIE-TO +Compiling routine: V-TURN +Compiling routine: V-TURN-OFF +Compiling routine: V-TURN-ON +Compiling routine: V-TURN-TO +Compiling routine: V-UNDO +Compiling routine: V-UNLOCK +Compiling routine: V-UNWEAR +Compiling routine: V-WAIT +Compiling routine: RT-FIND-DIR +Compiling routine: RT-FIND-ROOM +Compiling routine: RT-SET-PUPPY +Compiling routine: RT-CLEAR-PUPPY +Compiling routine: V-WALK +Compiling routine: WALK-THRU-DOOR? +Compiling routine: RT-GOTO +Compiling routine: RT-ENTER-ROOM +Compiling routine: RT-ROOM-NAME-MSG +Compiling routine: V-WALK-AROUND +Compiling routine: V-WALK-TO +Compiling routine: RT-WALK-WITHIN-ROOM-MSG +Compiling routine: V-WEAR +Compiling routine: V-WELD +Compiling routine: V-YES +Abstracting VERBS to /USR/DEVELOPMENT/ABYSS/VERBS. +Loading /USR/DEVELOPMENT/ABYSS/BE.ZIL and compiling it. +Compiling routine: V-STATEMENT +Compiling routine: V-BE +Compiling routine: TELL-Q-WORD +Compiling routine: RIGHT-PREP? +Compiling routine: IS-QUIET? +Compiling routine: IS-OUTSIDE? +Compiling routine: IS-OPEN? +Compiling routine: IS-CLOSED? +Compiling routine: IS-LOCKED? +Compiling routine: IS-UNLOCKED? +Compiling routine: IS-DEAD? +Compiling routine: IS-ALIVE? +Compiling routine: IS-HERE? +Compiling routine: PRSO-IS +Compiling routine: IS-PRSO-ADJ? +Compiling routine: YES-BUT? +Compiling routine: V-CAN? +Compiling routine: V-MAY? +Compiling routine: V-DO? +Compiling routine: V-COULD? +Compiling routine: V-WOULD? +Compiling routine: V-SHOULD? +Compiling routine: V-MIGHT? +Compiling routine: V-WILL? +Compiling routine: V-MUST? +Compiling routine: V-BE? +Compiling routine: V-WHO +Compiling routine: V-WHAT +Compiling routine: V-WHEN +Compiling routine: V-WHERE +Compiling routine: V-WHY +Compiling routine: V-HOW +Abstracting BE to /USR/DEVELOPMENT/ABYSS/BE. +Loading /USR/DEVELOPMENT/ABYSS/SUB-BAY.ZIL and compiling it. + +Compiling routine: RT-RM-SUB-BAY +Compiling routine: RT-TH-MOON-POOL +Compiling routine: RT-TH-FIRE +Compiling routine: RT-I-FIRE-1 +Compiling routine: RT-I-FIRE-2 +Compiling routine: RT-TH-WATER-HOSE +Compiling routine: RT-TH-NOZZLE +Compiling routine: RT-TH-OXYGEN-CYLINDER +Compiling routine: RT-CH-COFFEY +Compiling routine: RT-CH-ONE-NIGHT +Compiling routine: RT-TH-DRY-SUIT +Compiling routine: RT-TH-FACEPLATE +Compiling routine: RT-TH-HELMET +Compiling routine: RT-TH-HOOK-1 +Compiling routine: RT-TH-LIFT-BAG + ** Warning: Undefined variable assumed LOCAL L +Compiling routine: RT-TH-CO2-CANNISTER +Compiling routine: RT-TH-RED-BUTTON +Compiling routine: RT-RM-COMPRESSION-CHAMBER +Compiling routine: RT-LG-CHAMBER-HATCH +Compiling routine: RT-I-LEAVE-1 +Compiling routine: RT-I-LEAVE-2 +Compiling routine: RT-I-LEAVE-3 +Compiling routine: RT-I-LEAVE-4 +Compiling routine: RT-I-RETURN-1 +Compiling routine: RT-I-RETURN-2 +Compiling routine: RT-I-RETURN-3 +Compiling routine: RT-I-RETURN-4 +Compiling routine: RT-I-UFO-MESSAGE +Compiling routine: RT-RM-CAB-THREE +Compiling routine: RT-OUT-CAB +Compiling routine: RT-I-CAB-FIXED +Compiling routine: RT-TH-CAB-HOOKAH +Compiling routine: RT-RM-GAS-MIX-ROOM +Compiling routine: RT-RM-CORRIDOR +Compiling routine: RT-TH-PANEL +Compiling routine: RT-RM-LADDER-A2 +Compiling routine: RT-RM-LOUNGE +Compiling routine: RT-RM-INFIRMARY +Compiling routine: RT-RM-MESS-HALL +Compiling routine: RT-RM-GALLEY +Compiling routine: RT-RM-PANTRY +Compiling routine: RT-TH-HOOK-2 +Compiling routine: RT-TH-GAME-BAG +Compiling routine: RT-RM-WALDORF +Compiling routine: RT-RM-PERSONAL-STORAGE-1 +Compiling routine: RT-RM-ZOOTOWN +Compiling routine: RT-RM-LADDER-C2 +Compiling routine: RT-TH-S-BILGE-BUTT +Compiling routine: RT-RM-LADDER-A1 +Compiling routine: RT-RM-LAUNDRY +Compiling routine: RT-RM-PT-LIFE-SUPPORT +Compiling routine: RT-RM-COMPRESSOR-ROOM +Compiling routine: RT-TH-COMPRESSOR +Compiling routine: RT-RM-LADDER-D1 +Compiling routine: RT-RM-TOOL-PUSHER-OFFICE +Compiling routine: RT-RM-DRILL-ROOM +Compiling routine: RT-RM-LADDER-B1 +Compiling routine: RT-RM-SB-BATTERY-ROOM +Compiling routine: RT-RM-SB-HEAD +Compiling routine: RT-RM-SB-LIFE-SUPPORT +Compiling routine: RT-RM-PUMP-ROOM +Compiling routine: RT-RM-FRESH-WATER-STORAGE +Compiling routine: RT-RM-LADDER-C1 +Compiling routine: RT-RM-LADDER-A3 +Compiling routine: RT-RM-PT-HEAD +Compiling routine: RT-RM-MOTEL-QUICK +Compiling routine: RT-RM-PERSONAL-STORAGE-2 +Compiling routine: RT-RM-SWAMP +Compiling routine: RT-RM-LADDER-D3 +Compiling routine: RT-RM-LADDER-B3 +Compiling routine: RT-RM-SB-OBS-DECK +Compiling routine: RT-RM-COMPUTER-CENTER +Compiling routine: RT-RM-ELECTRONICS-SHOP +Compiling routine: RT-TH-ELEC-SHOP-DRAWER +Compiling routine: RT-RM-LAB +Compiling routine: RT-RM-TAPE-LIBRARY +Compiling routine: RT-RM-LADDER-C3 +Abstracting SUB-BAY to /USR/DEVELOPMENT/ABYSS/SUB-BAY. +Loading /USR/DEVELOPMENT/ABYSS/COMMAND.ZIL and compiling it. + +Compiling routine: RT-RM-COMMAND-MODULE +Compiling routine: RT-TH-MONITORS +Compiling routine: RT-TH-COMMAND-CHAIR +Compiling routine: RT-COMMAND-MENU +Compiling routine: RT-EMERGENCY-MENU + ** Warning: Undefined variable assumed LOCAL C + ** Warning: Undefined variable assumed LOCAL L +Compiling routine: RT-ROV-MENU +Compiling routine: RT-AIR-MENU +Compiling routine: RT-GAS-LEVEL-MSG +Compiling routine: RT-POWER-MENU +Compiling routine: RT-LIGHT-MENU +Compiling routine: RT-SUPPORT-MENU + ** Warning: Undefined variable assumed LOCAL C + ** Warning: Undefined variable assumed LOCAL L +Compiling routine: RT-PUMP-MENU + ** Warning: Undefined variable assumed LOCAL C + ** Warning: Undefined variable assumed LOCAL L +Compiling routine: RT-TH-DESCRAMBLER-CONTROL-BOX +Abstracting COMMAND to /USR/DEVELOPMENT/ABYSS/COMMAND. +Loading /USR/DEVELOPMENT/ABYSS/MONTANA.ZIL and compiling it. + +Compiling routine: RT-RM-MIDSHIP-HATCH +Compiling routine: RT-LG-MIDSHIP-HATCH +Compiling routine: RT-TO-TRENCH-BOTTOM +Compiling routine: RT-RM-MISSILE-HATCH +Compiling routine: RT-TH-MISSILE +Compiling routine: RT-TH-MISSILE-TIMER +Compiling routine: RT-TH-MISSILE-PANEL +Compiling routine: RT-TH-WIRES +Compiling routine: RT-TH-WIRE +Compiling routine: RT-CORRECT-WIRE? +Compiling routine: RT-TH-WIRE-CUTTERS +Compiling routine: RT-I-INTO-TRENCH-1 +Compiling routine: RT-I-INTO-TRENCH-2 +Compiling routine: RT-I-OUT-OF-AIR-1 +Compiling routine: RT-I-OUT-OF-AIR-2 +Compiling routine: RT-RM-BOW +Compiling routine: RT-RM-TORPEDO-ROOM +Compiling routine: RT-RM-ENGINE-ROOM +Compiling routine: RT-RM-MISSILE-ROOM +Compiling routine: RT-TH-MISSILE-ACCESS-KEY +Compiling routine: RT-RM-ATTACK-CENTER +Compiling routine: RT-RM-SONAR-ROOM +Compiling routine: RT-RM-COMM-ROOM +Compiling routine: RT-THRU-BUCKLED-DOOR +Compiling routine: RT-LG-BUCKLED-DOOR +Compiling routine: RT-RM-SUB-CORRIDOR +Compiling routine: RT-RM-CAPTAINS-ROOM +Compiling routine: RT-TH-PHOTOGRAPH +Compiling routine: RT-TH-SAFE +Compiling routine: RT-TH-PLASTIC-CARD +Compiling routine: RT-TH-PLASTIQUE +Compiling routine: RT-TH-DETONATOR +Compiling routine: RT-I-DETONATOR +Abstracting MONTANA to /USR/DEVELOPMENT/ABYSS/MONTANA. +Loading /USR/DEVELOPMENT/ABYSS/RETURN1.ZIL and compiling it. + +Compiling routine: RT-TH-CATFISH-LOCKER +Compiling routine: RT-TH-STEEL-BOX +Compiling routine: RT-TH-CLUE-PAPER +Compiling routine: RT-TH-STEEL-KEY +Compiling routine: RT-TH-DRYER +Compiling routine: RT-TH-PASSPORT +Compiling routine: RT-TH-DISCHARGE +Abstracting RETURN1 to /USR/DEVELOPMENT/ABYSS/RETURN1. +Loading /USR/DEVELOPMENT/ABYSS/RETURN2.ZIL and compiling it. + +Compiling routine: RT-TH-GUN +Compiling routine: RT-TH-FBS-SUIT +Compiling routine: RT-TH-DIVE-LOCKER +Compiling routine: RT-TH-ELECTRONIC-LOCK +Compiling routine: RT-TH-DEVICE +Compiling routine: V-$NITROGEN +Abstracting RETURN2 to /USR/DEVELOPMENT/ABYSS/RETURN2. +Loading /USR/DEVELOPMENT/ABYSS/OCEAN.ZIL and compiling it. +Compiling routine: RT-RM-UNDER-MOONPOOL +Compiling routine: RT-RM-OCEAN-NORTH +Compiling routine: RT-RM-OCEAN-SOUTH +Compiling routine: RT-RM-OCEAN-WEST +Compiling routine: RT-SWIM-TO-FROM-TRENCH +Compiling routine: RT-RM-TROUGH-LIP +Abstracting OCEAN to /USR/DEVELOPMENT/ABYSS/OCEAN. +Loading /USR/DEVELOPMENT/ABYSS/CRANE.ZIL and compiling it. +Compiling routine: RT-I-CRANE-1 +Compiling routine: RT-I-CRANE-2 +Compiling routine: RT-I-CRANE-3 +Compiling routine: RT-I-CRANE-4 +Compiling routine: RT-I-CRANE-5 +Compiling routine: RT-I-HIPPY-RETURN +Compiling routine: RT-I-KLAXON +Compiling routine: RT-I-BATTERY-LEAK +Compiling routine: RT-RM-PT-BATTERY-ROOM +Compiling routine: RT-TH-POWERCEL +Compiling routine: RT-TH-POOL-OF-WATER +Compiling routine: RT-RM-PT-OBS-DECK +Compiling routine: RT-TH-CRACK +Compiling routine: RT-WELD-CRACK + ** Note: Atomic argument to routine assumed constant - RT-I-BATTERY-LEAK + +Compiling routine: RT-TH-ARC-WELDER +Compiling routine: RT-TH-WELDING-ROD +Compiling routine: RT-TH-RED-CABLE +Compiling routine: RT-TH-BLACK-CABLE +Compiling routine: RT-TH-WELDER-SWITCH +Compiling routine: RT-TH-WELDER-CORD +Compiling routine: RT-RM-LADDER-D2 +Compiling routine: RT-TH-PT-BILGE-BUTTON +Compiling routine: RT-TH-SB-BILGE-BUTTON +Compiling routine: RT-I-CATFISH-TRAPPED +Compiling routine: RT-RM-DIVE-GEAR-STORAGE +Compiling routine: RT-TH-BUD-GEAR-LOCKER +Compiling routine: RT-TH-BIG-LOCKER +Compiling routine: RT-GN-LOCKER +Compiling routine: RT-LG-DGS-DOOR +Compiling routine: RT-RM-RECREATION-ROOM +Compiling routine: RT-TH-BARBELL +Compiling routine: RT-TH-WEIGHTS +Compiling routine: RT-TH-LIFT-BENCH +Compiling routine: RT-TH-TREADMILL +Compiling routine: RT-TH-CYCLE +Compiling routine: RT-RM-LADDER-B2 +Compiling routine: RT-TH-HYDRAULIC-HOSE +Compiling routine: RT-TH-HYDRAULIC-FLUID +Compiling routine: RT-LG-FLOOD-DOOR +Compiling routine: RT-TH-KNIFE +Abstracting CRANE to /USR/DEVELOPMENT/ABYSS/CRANE. +Loading /USR/DEVELOPMENT/ABYSS/GLOBAL.ZIL and compiling it. +Compiling routine: RT-GLOBAL-HERE +Compiling routine: RT-YOU +Compiling routine: RT-TH-HUMAN-BODY +Compiling routine: RT-GN-BODY +Compiling routine: RT-TH-PLAYER-BODY +Compiling routine: RT-TH-GROUND +Compiling routine: RT-TH-SKY +Compiling routine: RT-LG-DEEPCORE +Compiling routine: RT-LG-TROUGH +Compiling routine: RT-LG-MONTANA +Abstracting GLOBAL to /USR/DEVELOPMENT/ABYSS/GLOBAL. +Loading /USR/DEVELOPMENT/ABYSS/UTIL.ZIL and compiling it. +Compiling routine: V-$STEAL +Compiling routine: V-$GOTO +Compiling routine: V-VERSION +Compiling routine: V-COLOR +Compiling routine: RT-DO-COLOR +Compiling routine: RT-PICK-COLOR +Compiling routine: MAC-II? +Compiling routine: Y? +Compiling routine: RT-CHECK-ADJ +Compiling routine: RT-UPDATE-ADJ +Compiling routine: RT-SCORE-MSG +Compiling routine: RT-SCORE-OBJ +Compiling routine: V-SCORE +Compiling routine: V-DIAGNOSE + ** Warning: Undefined variable assumed LOCAL M +Compiling routine: RT-WORD-NUMBERS +Compiling routine: RT-END-OF-GAME +Compiling routine: RT-COMMA-MSG +Compiling routine: FIND-FLAG-LG +Compiling routine: FIND-FLAG +Compiling routine: RT-ALREADY-MSG +Compiling routine: RT-META-IN? +Compiling routine: NO-NEED +Compiling routine: RT-YOU-CANT-MSG +Compiling routine: HAR-HAR +Compiling routine: RT-IMPOSSIBLE-MSG +Compiling routine: WONT-HELP +Compiling routine: PICK-ONE +Compiling routine: GLOBAL-IN? +Compiling routine: RT-FIRST-YOU-MSG +Compiling routine: RT-SEE-INSIDE? +Compiling routine: RT-SEE-ANYTHING-IN? +Compiling routine: RT-MOVE-ALL +Compiling routine: RT-MOVE-ALL-BUT-WORN +Compiling routine: RT-MOVE-ALL-WORN +Compiling routine: RT-NOT-LIKELY-MSG +Compiling routine: RT-NO-POINT-MSG +Compiling routine: RT-PICK-NEXT +Compiling routine: RT-NO-RESPONSE-MSG +Compiling routine: RT-FOOLISH-TO-TALK? +Compiling routine: RT-WASTE-OF-TIME-MSG +Compiling routine: V-$P +Compiling routine: RT-CENTER-PIC +Compiling routine: V-$D +Compiling routine: V-$SHOW +Compiling routine: V-$W +Abstracting UTIL to /USR/DEVELOPMENT/ABYSS/UTIL. +Loading /USR/DEVELOPMENT/ABYSS/STOPPER.ZIL and compiling it. + +Compiling routine: RT-RM-TRI-MIX-STORAGE +Compiling routine: RT-TH-NITROGEN-TANK +Compiling routine: RT-TH-NIT-VALVE +Compiling routine: RT-TH-NIT-STOPPER +Compiling routine: RT-GET-STOPPER +Compiling routine: RT-I-NITROGEN-LEAK +Compiling routine: RT-TH-NIT-BASE +Compiling routine: RT-TH-OXYGEN-TANK +Compiling routine: RT-TH-OXY-VALVE +Compiling routine: RT-TH-OXY-STOPPER +Compiling routine: RT-TH-OXY-BASE +Compiling routine: RT-TH-HELIUM-TANK +Compiling routine: RT-TH-HEL-VALVE +Compiling routine: RT-TH-HEL-STOPPER +Compiling routine: RT-TH-HEL-BASE +Compiling routine: RT-GN-TANK +Compiling routine: RT-GN-VALVE +Compiling routine: RT-GN-STOPPER +Compiling routine: RT-RM-TOOL-ROOM +Compiling routine: RT-TH-BIN +Compiling routine: RT-TH-MAGNET +Abstracting STOPPER to /USR/DEVELOPMENT/ABYSS/STOPPER. +Loading /USR/DEVELOPMENT/ABYSS/ALIEN.ZIL and compiling it. +Compiling routine: RT-RM-TRENCH-BOTTOM +Compiling routine: RT-TH-PURPLE-BUTTON +Compiling routine: RT-RM-ALIEN-CHAMBER +Compiling routine: RT-TH-FUSCHIA-BUTTON +Abstracting ALIEN to /USR/DEVELOPMENT/ABYSS/ALIEN. +Loading /USR/DEVELOPMENT/ABYSS/ENDGAME.ZIL and compiling it. + +Compiling routine: RT-TH-WINDOW-BENCH +Compiling routine: RT-TH-RED-LEVER +Abstracting ENDGAME to /USR/DEVELOPMENT/ABYSS/ENDGAME. + ** Warning: Undefined Routine: DIR-VERB-PRSI? + ** Warning: Undefined Routine: COLLECTIVE-VERB? + ** Warning: Never defined - W?SWIM + ** Warning: Never defined - FL-TRY-TAKE + ** Warning: Never defined - FL-TRANSPARENT + ** Warning: Never defined - FL-TOUCHED + ** Warning: Never defined - FL-TAKEABLE + ** Warning: Never defined - FL-SURFACE + ** Warning: Never defined - FL-SEARCH + ** Warning: Never defined - FL-ROOMS + ** Warning: Never defined - FL-PLURAL + ** Warning: Never defined - FL-PERSON + ** Warning: Never defined - FL-OPEN + ** Warning: Never defined - FL-LIGHTED + ** Warning: Never defined - FL-NO-ARTICLE + ** Warning: Never defined - FL-INVISIBLE + ** Warning: Never defined - FL-FEMALE + ** Warning: Never defined - FL-CONTAINER + +Warnings: 26 + ** Note: OBJECT has no properties: INTQUOTE + ** Note: OBJECT has no properties: ROOMS +Vocabulary: 626 + +Verbs: 102 + +Real globals: 121 + +CLOCK-WAIT GL-MOVES P-HER-OBJECT +CLOCKER-RUNNING GL-N-LOOP P-HIM-OBJECT +CURRENT-REDUCTION GL-NEW-TIME P-IT-OBJECT +DEMO-VERSION? GL-NITROGEN-LEAK? P-LEN +ERROR-PRIORITY GL-NITROGEN-MSG P-MULT +ERROR-STRING GL-NITROGEN-QTY P-NOT-HERE +GL-B-COLOR GL-NOUN-TBL P-NUMBER +GL-BATTERY-LEAK GL-OXYGEN-MSG P-OFLAG +GL-CAB-DOCKED? GL-OXYGEN-QTY P-OLEN +GL-CATFISH-SPY-MSG? GL-PLAYER-TEMP P-ONE-NOUN +GL-CLK-RUN GL-PREP-TBL P-PRSA-WORD +GL-CO2-MSG GL-PUPPY P-PRSI +GL-CO2-QTY GL-Q-MAX P-PRSO +GL-COFFEY-SHOOT GL-Q-TBL P-RESPONDED +GL-COLOR-NOTE GL-RETURN1-DONE? P-RUNNING +GL-CORRIDOR-BLOCKED? GL-RETURN2-DONE? P-THEM-OBJECT +GL-CRANE-DOWN? GL-SAFE-NUM P-WALK-DIR +GL-CRANE-FALLING? GL-SCORE P-WON +GL-DEEPCORE-TEMP GL-SCR-WID P-WORD-NUMBER +GL-DETONATOR-TIME GL-SCRUBBERS-ON P-WORDS-AGAIN +GL-DOOR-DIR GL-SL-HERE PARSE-SENTENCE-ACTIVATION + +GL-F-COLOR GL-SPACE-WIDTH PARSER-RESULT +GL-FALLING-INTO-TRENCH? GL-TEMP-MSG PMEM-STORE-POINTER +GL-FONT-X GL-VERB-TBL PMEM-STORE-WARN +GL-FONT-Y GL-WATER-LEVEL PMEM-STORE-WORDS +GL-FREE-PTR GL-WATER-PUMP-ON PMEM-WORDS-USED +GL-HEATERS-ON GL-WIRE-SEQUENCE PRSA +GL-HELIUM-QTY GL-WIRES-CUT PRSI +GL-INPUT-PREP1 HERE PRSI-NP +GL-INPUT-PREP2 IDEBUG PRSO +GL-INPUT-STATE LAST-PSEUDO-LOC PRSO-NP +GL-INPUT-TIMEOUT LIT PRSQ +GL-INPUT-VERB NOW-PRSI PRSS +GL-INPUT-WINNER OBJ-SWAP QCONTEXT +GL-ITEM-NUM OHERE SEARCH-FLAGS +GL-KLAXON-ON OPRSO SPLITS +GL-LIFT-OBJ OTLEXV TLEXV +GL-LOC-TRAIL P-CAN-UNDO VERBOSITY +GL-MENU-NUM P-CONT WINNER +GL-MOUSE-X P-DBUG +GL-MOUSE-Y P-DIRECTION + +Objects: 203 + +CH-ALIEN ROOMS +CH-CATFISH TH-ALIEN-SHIP +CH-COFFEY TH-ARC-WELDER +CH-HIPPY TH-BARBELL +CH-LINDSEY TH-BIG-LOCKER +CH-ONE-NIGHT TH-BIN +CH-PLAYER TH-BLACK-CABLE +CH-SEALS TH-BLUE-WIRE +GENERIC-OBJECTS TH-BUD-GEAR-LOCKER +GLOBAL-HERE TH-CAB-HOOKAH +GLOBAL-OBJECTS TH-CATFISH-LOCKER +HER TH-CLUE-PAPER +HIM TH-CO2-CANNISTER +INTADJ TH-COMMAND-CHAIR +INTDIR TH-COMPRESSOR +INTNUM TH-CRACK +INTPP TH-CYCLE +INTQUOTE TH-DESCRAMBLER-CONTROL-BOX +IT TH-DETONATOR +LG-BUCKLED-DOOR TH-DEVICE +LG-CHAMBER-DOOR TH-DISCHARGE +LG-CHAMBER-HATCH TH-DIVE-LOCKER +LG-DEEPCORE TH-DRY-SUIT +LG-DGS-DOOR TH-DRYER +LG-FLOOD-DOOR TH-ELEC-SHOP-DRAWER +LG-MIDSHIP-HATCH TH-ELECTRONIC-LOCK +LG-MONTANA TH-FACEPLATE +LG-OUTLET TH-FBS-SUIT +LG-TROUGH TH-FIRE +LG-WALL TH-FLATBED +LOCAL-GLOBALS TH-FUSCHIA-BUTTON +NOT-HERE-OBJECT TH-GAME-BAG +PSEUDO-OBJECT TH-GREEN-WIRE +RM-ALIEN-CHAMBER TH-GROUND +RM-ATTACK-CENTER TH-GUN +RM-BOW TH-HANDS +RM-CAB-THREE TH-HEAD +RM-CAPTAINS-ROOM TH-HEL-STOPPER +RM-COMM-ROOM TH-HEL-VALVE +RM-COMMAND-MODULE TH-HELIUM-TANK +RM-COMPRESSION-CHAMBER TH-HELMET +RM-COMPRESSOR-ROOM TH-HOOK-1 +RM-COMPUTER-CENTER TH-HOOK-2 +RM-CORRIDOR TH-HUMAN-BODY +RM-DIVE-GEAR-STORAGE TH-HYDRAULIC-FLUID +RM-DRILL-ROOM TH-HYDRAULIC-HOSE +RM-ELECTRONICS-SHOP TH-KNIFE +RM-ENGINE-ROOM TH-LIFT-BAG +RM-FRESH-WATER-STORAGE TH-LIFT-BENCH +RM-GALLEY TH-MAGNET +RM-GAS-MIX-ROOM TH-MISSILE +RM-INFIRMARY TH-MISSILE-ACCESS-KEY +RM-LAB TH-MISSILE-PANEL +RM-LADDER-A1 TH-MISSILE-TIMER +RM-LADDER-A2 TH-MONITORS +RM-LADDER-A3 TH-MOON-POOL +RM-LADDER-B1 TH-NIT-STOPPER +RM-LADDER-B2 TH-NIT-VALVE +RM-LADDER-B3 TH-NITROGEN-TANK +RM-LADDER-C1 TH-NOZZLE +RM-LADDER-C2 TH-ORANGE-WIRE +RM-LADDER-C3 TH-OXY-STOPPER +RM-LADDER-D1 TH-OXY-VALVE +RM-LADDER-D2 TH-OXYGEN-CYLINDER +RM-LADDER-D3 TH-OXYGEN-TANK +RM-LAUNDRY TH-PANEL +RM-LOUNGE TH-PASSPORT +RM-MESS-HALL TH-PHOTOGRAPH +RM-MIDSHIP-HATCH TH-PLASTIC-CARD +RM-MISSILE-HATCH TH-PLASTIQUE +RM-MISSILE-ROOM TH-PLAYER-BODY +RM-MOTEL-QUICK TH-POOL-OF-WATER +RM-OCEAN-NORTH TH-POWERCEL +RM-OCEAN-SOUTH TH-PT-BILGE-BUTTON +RM-OCEAN-WEST TH-PURPLE-BUTTON +RM-PANTRY TH-RED-BUTTON +RM-PERSONAL-STORAGE-1 TH-RED-CABLE +RM-PERSONAL-STORAGE-2 TH-RED-LEVER +RM-PT-BATTERY-ROOM TH-RED-WIRE +RM-PT-HEAD TH-S-BILGE-BUTT +RM-PT-LIFE-SUPPORT TH-SAFE +RM-PT-OBS-DECK TH-SB-BILGE-BUTTON +RM-PUMP-ROOM TH-SKY +RM-RECREATION-ROOM TH-STEEL-BOX +RM-SB-BATTERY-ROOM TH-STEEL-KEY +RM-SB-HEAD TH-THERMOMETER +RM-SB-LIFE-SUPPORT TH-TIME +RM-SB-OBS-DECK TH-TREADMILL +RM-SONAR-ROOM TH-UFO +RM-SUB-BAY TH-WATER-HOSE +RM-SUB-CORRIDOR TH-WEIGHTS +RM-SWAMP TH-WELDER-CORD +RM-TAPE-LIBRARY TH-WELDER-SWITCH +RM-TOOL-PUSHER-OFFICE TH-WELDING-ROD +RM-TOOL-ROOM TH-WHITE-WIRE +RM-TORPEDO-ROOM TH-WINDOW-BENCH +RM-TRENCH-BOTTOM TH-WIRE-CUTTERS +RM-TRI-MIX-STORAGE TH-WIRES +RM-TROUGH-LIP TH-YELLOW-WIRE +RM-UNDER-MOONPOOL THEM +RM-WALDORF YOU +RM-ZOOTOWN + +Properties: 25 + +P?ACTION P?CONTFCN P?GLOBAL P?OWNER P?STARBOARD +P?ADJACENT P?DOWN P?IN P?PORT P?SYNONYM +P?ADJECTIVE P?EAST P?MENU P?SCORE P?THINGS +P?AFT P?FORE P?NORTH P?SIZE P?UP +P?CAPACITY P?GENERIC P?OUT P?SOUTH P?WEST + +Flags: 48 + +FL-ALIVE FL-CONTAINER FL-KNIFE FL-PERSON FL-TRANSPARENT +FL-ASLEEP FL-DOOR FL-LAMP FL-PLURAL FL-TRY-TAKE +FL-AUTO-ENTER FL-FEMALE FL-LIGHTED FL-READABLE FL-VEHICLE +FL-AUTO-OPEN FL-HAS-DESCFCN FL-LOCKED FL-ROOMS FL-VOWEL +FL-BODY-PART FL-HAS-LDESC FL-NO-ALL FL-SEARCH FL-WATER +FL-BROKEN FL-HAS-SDESC FL-NO-ARTICLE FL-SEEN FL-WEAPON +FL-BURNABLE FL-INDOORS FL-NO-DESC FL-SURFACE FL-WORN +FL-BY-HAND FL-INSIDE FL-ON FL-TAKEABLE FL-YOUR +FL-CLOTHING FL-INVISIBLE FL-OPEN FL-TOOL +FL-COLLECTIVE FL-KEY FL-OPENABLE FL-TOUCHED diff --git a/abyss.seg b/abyss.seg new file mode 100644 index 0000000..08726f4 Binary files /dev/null and b/abyss.seg differ diff --git a/abyss.seginfo b/abyss.seginfo new file mode 100644 index 0000000..adf1f9e --- /dev/null +++ b/abyss.seginfo @@ -0,0 +1,2797 @@ +SEGMENT LIST +Segment name: 0 + +Adjacent segments : + + +Included functions: + +INSERT-ADJS-WD 6824 +INSERT-ADJS 6788 +SETUP-ORPHAN-NP 6763 +SETUP-ORPHAN 6739 +YES? 6692 +INBUF-PRINT 6663 +INBUF-ADD 6637 +TOO-MANY-NOUNS 6624 +ADJS-PRINT 6585 +NP-PRINT 6506 +WHICH-PRINT 6442 +WHICH-LIST? 6435 +WINNER-SAYS-WHICH? 6434 +NP-CANT-SEE 6402 +CANT-FIND-OBJECT 6387 +MISSING 6377 +DONT-UNDERSTAND 6314 +CHANGE-AND-TO-THEN? 6249 +NAKED-ADJECTIVE? 6214 +PRINT-PARSER-FAILURE 6024 +CAPITALIZE 6013 +BUFFER-PRINT 5929 +COPY-INPUT 5911 +PRINT-LEXV 5859 +PRINT-INTQUOTE 5847 +V-$REFRESH 5838 +REPLACE-ONE-TOKEN 5816 +MAKE-ROOM-FOR-TOKENS 5794 +CANT-USE-MULTIPLE 5781 +CANT-AGAIN 5774 +CANT-OOPS 5765 +NAKED-OOPS 5756 +TOO-MANY-NEW 5747 +ADJ-USED? 5724 +NOUN-USED? 5717 +GET-NP 5706 +GET-OWNER 5691 +SPEAKING-VERB? 5687 +NOT-HERE 5667 +CAPITAL-NOUN? 5664 +D-APPLY 5633 +TELL-D-LOC 5620 +ITAKE-CHECK 5593 +TELL-TOO-DARK 5591 +PERFORM 5439 +SEE-VERB? 5435 +CANT-UNDO 5430 +META-LOC 5419 +QCONTEXT-GOOD? 5414 +TELL-SAID-TO 5408 +FIND-A-WINNER 5397 +NO-M-WINNER-VERB? 5393 +TELL-PRONOUN 5382 +FIX-HIM-HER-IT 5359 +VERB-ALL-TEST 5330 +V-PDEBUG 5311 +MORE-SPECIFIC 5303 +INSERT-WHAT 5293 +RED-CANDO 5132 +RED-NOT 5127 +RED-BE 5122 +RED-SQBN 5115 +P-PP-PREP 5111 +P-PP-OBJ 5103 +RED-SNBAP 5027 +RED-SNBP 4961 +RED-SBNP 4958 +RED-SNBA 4898 +RED-SBNA 4895 +DETERMINE-SUBJ 4832 +RED-SNBN 4773 +RED-SBNN 4770 +EXCH-4-5-Q 4734 +RED-BE-FORM 4729 +RED-QUOTE 4698 +RED-ADJ 4590 +RED-POSS 4577 +RED-PP 4560 +RED-NPP 4470 +RED-QN 4460 +GET-QUANTITY 4455 +GET-QUANTITY-WORD 4451 +RED-QT 4440 +RED-OF 4424 +RED-NP 4381 +RED-VP 4354 +HACK-TELL-1 4331 +HACK-TELL 4301 +RED-PERS 4270 +RED-O-NP 4119 +TEST-SR 4055 +INSERT-NP 4016 +RED-O-PP 3987 +RED-O-ADJ 3974 +DO-ORPHAN-TEST 3973 +DETERMINE-NP-XFER 3951 +READY-TO-DISAMBIGUATE? 3941 +FIND-OWNERS 3929 +DET-NP-OWNEE? 3913 +DET-NP-NOT-HERE? 3898 +DETERMINE-NP 3671 +NUMERIC-ADJ? 3654 +CHECK-DIR-ADJS 3619 +DETERMINE-OBJ 3483 +REDUCE-LOCATION 3392 +REDUCE-EXCEPTION 3363 +REDUCE-EXCEPT-IT 3354 +IREDUCE-EXCEPTION 3343 +RED-SP 3331 +RED-SVD 3319 +RED-SVPNPN 3310 +RED-SVPNN 3259 +RED-SVNPN 3247 +RED-SVNP 3228 +RED-SVN 3171 +ROOT-VERB 3158 +RED-SV 3119 +GET-SYNTAX 3084 +RED-PART 3061 +RED-FCN 3057 +NOT-HERE-VERB? 3056 +TEST-THINGS 3019 +FIND-OBJECTS 2846 +EXCLUDE-HERE-OBJECT? 2845 +SEARCH-IN-LG? 2844 +CHECK-ADJS 2765 +CHECK-ADJS-THERE? 2760 +MULTIPLE-EXCEPTION? 2741 +EVERYWHERE-VERB? 2729 +NOT-IN-FIND-RES? 2705 +ADD-OBJECT 2665 +TEST-OBJECT 2642 +MATCH-OBJECT 2565 +INVALID-OBJECT? 2564 +EXCLUDED? 2545 +FIND-DESCENDANTS 2517 +DO-IT-AGAIN 2488 +TELL-GWIM-MSG 2467 +CHANGE-LEXV 2456 +NUMBER? 2424 +BUZZER-WORD? 2403 +PARSER-ERROR 2370 +NP-SAVE 2332 +DO-AGAIN 2292 +DO-OOPS 2269 +PRINT-VOCAB-WORD 2258 +WORD-PRINT 2249 +UNKNOWN-WORD 2233 +BEG-PARDON 2228 +P-NO-MEM-ROUTINE 2211 +MAIN-LOOP-IT 2200 +FIX-QUOTATIONS 2179 +IGNORE-FIRST-WORD 2167 +LIT? 2126 +QCONTEXT-CHECK 2115 +MAIN-LOOP-1 1863 +MAIN-LOOP 1861 +BE-PATIENT 1831 +GET-NONTERMINAL-ACTION 1821 +GET-TERMINAL-ACTION 1809 +PARSE-SENTENCE 1544 +PARSE-IT 1445 +P-P 1368 +RED-SD 1348 +GAME-VERB? 1339 +PARSER 1165 +NAKED-DIR? 1138 +TELL-CTHE 1122 +TELL-THE 1107 +EXPAND-BE-CONTRACTIONS 1039 +SPECIAL-CONTRACTION? 1038 +READ-INPUT 564 +MOUSE-INPUT? 519 +RT-STOP-READ 517 +RT-FREE-MEM 505 +RT-GET-MEM 499 +RT-DO-OBJECTS 477 +RT-GET-OBJS 448 +RT-GET-PREPS 411 +RT-HLIGHT-MENU 383 +RT-PRINT-MENU-ENTRY 356 +RT-PRINT-MENU 337 +UPDATE-STATUS-LINE 258 +INIT-STATUS-LINE 109 +DO-PMEM-ALLOC 85 +PMEM-RESET 77 +PMEM? 73 +PEEK-PSTACK 64 + +Included strings: + +STR?201 575 +STR?200 573 +STR?199 570 +STR?198 568 +STR?197 567 +STR?196 565 +STR?195 563 +STR?194 561 +STR?193 559 +STR?192 556 +STR?191 554 +STR?190 552 +STR?189 550 +STR?188 549 +STR?187 547 +STR?186 545 +STR?185 543 +STR?184 541 +STR?183 539 +STR?182 499 +STR?181 490 +STR?180 484 +STR?179 478 +STR?178 474 +STR?177 471 +STR?176 469 +STR?175 467 +STR?174 465 +STR?173 463 +STR?172 461 +STR?171 459 +STR?170 456 +STR?169 452 +STR?168 448 +STR?167 445 +STR?166 441 +STR?165 437 +STR?164 434 +STR?163 431 +STR?162 428 +STR?161 427 +STR?160 426 +STR?159 424 +STR?158 423 +STR?157 422 +STR?156 421 +STR?155 420 +STR?154 419 +STR?153 416 +STR?152 414 +STR?151 409 +STR?150 407 +STR?149 406 +STR?148 403 +STR?147 401 +STR?146 398 +STR?145 395 +STR?144 394 +STR?143 392 +STR?142 391 +STR?141 389 +STR?140 387 +STR?139 385 +STR?138 384 +STR?137 380 +STR?136 379 +STR?135 378 +STR?134 377 +STR?133 375 +STR?132 373 +STR?131 372 +STR?130 371 +STR?129 370 +STR?128 368 +STR?127 367 +STR?126 366 +STR?125 365 +STR?124 363 +STR?123 362 +STR?122 294 +STR?121 293 +STR?120 292 +STR?119 291 +STR?118 290 +STR?117 289 +STR?116 288 +STR?115 287 +STR?114 286 +STR?113 285 +STR?112 284 +STR?111 283 +STR?110 282 +STR?109 279 +STR?108 273 +STR?107 272 +STR?106 271 +STR?105 269 +STR?104 268 +STR?103 267 +STR?102 266 +STR?101 265 +STR?100 264 +STR?99 262 +STR?98 261 +STR?97 256 +STR?96 254 +STR?95 253 +STR?94 252 +STR?93 251 +STR?92 250 +STR?91 249 +STR?90 248 +STR?89 246 +STR?88 244 +STR?87 243 +STR?86 242 +STR?85 241 +STR?84 237 +STR?83 236 +STR?82 235 +STR?81 234 +STR?80 232 +STR?79 231 +STR?78 230 +STR?77 229 +STR?76 227 +STR?75 226 +STR?74 225 +STR?73 221 +STR?72 220 +STR?71 219 +STR?70 218 +STR?69 217 +STR?68 216 +STR?67 215 +STR?66 214 +STR?65 213 +STR?64 212 +STR?63 211 +STR?62 210 +STR?61 209 +STR?60 208 +STR?59 207 +STR?58 206 +STR?57 205 +STR?56 204 +STR?55 202 +STR?54 200 +STR?53 198 +STR?52 196 +STR?51 194 +STR?50 192 +STR?49 190 +STR?48 188 +STR?47 185 +STR?46 183 +STR?45 178 +STR?44 176 +STR?43 174 +STR?42 172 +STR?41 170 +STR?40 168 +STR?39 166 +STR?38 164 +STR?37 161 +STR?36 159 +STR?35 157 +STR?34 155 +STR?33 152 +STR?32 150 +STR?31 148 +STR?30 146 +STR?29 144 +STR?28 142 +STR?27 140 +STR?26 138 +STR?25 135 +STR?24 133 +STR?23 131 +STR?22 129 +STR?21 126 +STR?20 124 +STR?19 122 +STR?18 120 +STR?17 118 +STR?16 116 +STR?15 113 +STR?14 110 +STR?13 107 +STR?12 105 +STR?11 103 +STR?10 101 +STR?9 100 +STR?8 98 +STR?7 94 +STR?6 89 +STR?5 84 +STR?4 79 +STR?3 71 +STR?2 66 +STR?1 64 + + + +FUNCTION LIST +RT-TH-RED-LEVER +Used functions and strings: +RT-END-OF-GAME 19085 + +RT-TH-WINDOW-BENCH +Used functions and strings: + +RT-TH-FUSCHIA-BUTTON +Used functions and strings: + +RT-RM-ALIEN-CHAMBER +Used functions and strings: + +RT-TH-PURPLE-BUTTON +Used functions and strings: + +RT-RM-TRENCH-BOTTOM +Used functions and strings: + +RT-TH-MAGNET +Used functions and strings: + +RT-TH-BIN +Used functions and strings: + +RT-RM-TOOL-ROOM +Used functions and strings: + +RT-GN-STOPPER +Used functions and strings: + +RT-GN-VALVE +Used functions and strings: + +RT-GN-TANK +Used functions and strings: + +RT-TH-HEL-BASE +Used functions and strings: + +RT-TH-HEL-STOPPER +Used functions and strings: + +RT-TH-HEL-VALVE +Used functions and strings: + +RT-TH-HELIUM-TANK +Used functions and strings: + +RT-TH-OXY-BASE +Used functions and strings: + +RT-TH-OXY-STOPPER +Used functions and strings: + +RT-TH-OXY-VALVE +Used functions and strings: + +RT-TH-OXYGEN-TANK +Used functions and strings: + +RT-TH-NIT-BASE +Used functions and strings: + +RT-I-NITROGEN-LEAK +Used functions and strings: +RT-NITROGEN-MSG 7688 +RT-I-NITROGEN-LEAK 19844 +RT-QUEUE 7158 + +RT-GET-STOPPER +Used functions and strings: + +RT-TH-NIT-STOPPER +Used functions and strings: + +RT-TH-NIT-VALVE +Used functions and strings: +RT-DEQUEUE 7170 +RT-ALREADY-MSG 19174 + +RT-TH-NITROGEN-TANK +Used functions and strings: +NOUN-USED? 5717 + +RT-RM-TRI-MIX-STORAGE +Used functions and strings: + +V-$W +Used functions and strings: + +V-$SHOW +Used functions and strings: +V-$REFRESH 5838 +RT-CENTER-PIC 19405 + +V-$D +Used functions and strings: +V-$REFRESH 5838 +RT-CENTER-PIC 19405 + +RT-CENTER-PIC +Used functions and strings: + +V-$P +Used functions and strings: + +RT-WASTE-OF-TIME-MSG +Used functions and strings: + +RT-FOOLISH-TO-TALK? +Used functions and strings: +THIS-IS-IT 7051 +RT-NO-RESPONSE-MSG 19348 + +RT-NO-RESPONSE-MSG +Used functions and strings: +RT-PRINT-OBJ 6990 +FIND-FLAG 19166 + +RT-PICK-NEXT +Used functions and strings: + +RT-NO-POINT-MSG +Used functions and strings: +RT-PRINT-OBJ 6990 + +RT-NOT-LIKELY-MSG +Used functions and strings: +RT-PRINT-OBJ 6990 + +RT-MOVE-ALL-WORN +Used functions and strings: + +RT-MOVE-ALL-BUT-WORN +Used functions and strings: + +RT-MOVE-ALL +Used functions and strings: + +RT-SEE-ANYTHING-IN? +Used functions and strings: + +RT-SEE-INSIDE? +Used functions and strings: + +RT-FIRST-YOU-MSG +Used functions and strings: +RT-PRINT-OBJ 6990 + +GLOBAL-IN? +Used functions and strings: + +PICK-ONE +Used functions and strings: + +WONT-HELP +Used functions and strings: + +RT-IMPOSSIBLE-MSG +Used functions and strings: + +HAR-HAR +Used functions and strings: + +RT-YOU-CANT-MSG +Used functions and strings: +RT-PRINT-DESC 6898 +RT-PRINT-OBJ 6990 + +NO-NEED +Used functions and strings: +RT-PRINT-DESC 6898 +RT-PRINT-OBJ 6990 + +RT-META-IN? +Used functions and strings: + +RT-ALREADY-MSG +Used functions and strings: +RT-PRINT-OBJ 6990 + +FIND-FLAG +Used functions and strings: + +FIND-FLAG-LG +Used functions and strings: + +RT-COMMA-MSG +Used functions and strings: + +RT-END-OF-GAME +Used functions and strings: +YES? 6692 +V-RESTORE 8504 +V-UNDO 9956 +UPDATE-STATUS-LINE 258 + +RT-WORD-NUMBERS +Used functions and strings: +RT-WORD-NUMBERS 18975 + +V-DIAGNOSE +Used functions and strings: + +V-SCORE +Used functions and strings: + +RT-SCORE-OBJ +Used functions and strings: +RT-SCORE-MSG 18716 + +RT-SCORE-MSG +Used functions and strings: + +RT-UPDATE-ADJ +Used functions and strings: + +RT-CHECK-ADJ +Used functions and strings: + +Y? +Used functions and strings: + +MAC-II? +Used functions and strings: + +RT-PICK-COLOR +Used functions and strings: + +RT-DO-COLOR +Used functions and strings: + +V-COLOR +Used functions and strings: +V-$REFRESH 5838 + +V-VERSION +Used functions and strings: + +V-$GOTO +Used functions and strings: +RT-PRINT-OBJ 6990 +RT-GOTO 10182 + +V-$STEAL +Used functions and strings: +RT-PRINT-OBJ 6990 +RT-DO-TAKE 9685 + +RT-LG-MONTANA +Used functions and strings: + +RT-LG-TROUGH +Used functions and strings: + +RT-LG-DEEPCORE +Used functions and strings: + +RT-TH-SKY +Used functions and strings: +NP-CANT-SEE 6402 +NOUN-USED? 5717 +EVERYWHERE-VERB? 2729 +RT-PRINT-ARTICLE 6903 + +RT-TH-GROUND +Used functions and strings: +RT-PRINT-OBJ 6990 +RT-PRINT-CONTENTS 8508 +RT-PRINT-ARTICLE 6903 + +RT-TH-PLAYER-BODY +Used functions and strings: + +RT-GN-BODY +Used functions and strings: + +RT-TH-HUMAN-BODY +Used functions and strings: +RT-PRINT-OBJ 6990 +NP-CANT-SEE 6402 +VISIBLE? 6834 +GET-NP 5706 + +RT-YOU +Used functions and strings: +PERFORM 5439 + +RT-GLOBAL-HERE +Used functions and strings: + +RT-TH-KNIFE +Used functions and strings: + +RT-LG-FLOOD-DOOR +Used functions and strings: + +RT-TH-HYDRAULIC-FLUID +Used functions and strings: + +RT-TH-HYDRAULIC-HOSE +Used functions and strings: + +RT-RM-LADDER-B2 +Used functions and strings: + +RT-TH-CYCLE +Used functions and strings: + +RT-TH-TREADMILL +Used functions and strings: + +RT-TH-LIFT-BENCH +Used functions and strings: + +RT-TH-WEIGHTS +Used functions and strings: + +RT-TH-BARBELL +Used functions and strings: + +RT-RM-RECREATION-ROOM +Used functions and strings: + +RT-LG-DGS-DOOR +Used functions and strings: + +RT-GN-LOCKER +Used functions and strings: + +RT-TH-BIG-LOCKER +Used functions and strings: +RT-SET-PUPPY 10120 + +RT-TH-BUD-GEAR-LOCKER +Used functions and strings: + +RT-RM-DIVE-GEAR-STORAGE +Used functions and strings: + +RT-I-CATFISH-TRAPPED +Used functions and strings: + +RT-TH-SB-BILGE-BUTTON +Used functions and strings: + +RT-TH-PT-BILGE-BUTTON +Used functions and strings: + +RT-RM-LADDER-D2 +Used functions and strings: + +RT-TH-WELDER-CORD +Used functions and strings: + +RT-TH-WELDER-SWITCH +Used functions and strings: +RT-TH-ARC-WELDER 17549 + +RT-TH-BLACK-CABLE +Used functions and strings: +RT-PRINT-OBJ 6990 + +RT-TH-RED-CABLE +Used functions and strings: + +RT-TH-WELDING-ROD +Used functions and strings: + +RT-TH-ARC-WELDER +Used functions and strings: + +RT-WELD-CRACK +Used functions and strings: +RT-I-BATTERY-LEAK 17103 +RT-DEQUEUE 7170 + +RT-TH-CRACK +Used functions and strings: + +RT-RM-PT-OBS-DECK +Used functions and strings: + +RT-TH-POOL-OF-WATER +Used functions and strings: + +RT-TH-POWERCEL +Used functions and strings: + +RT-RM-PT-BATTERY-ROOM +Used functions and strings: + +RT-I-BATTERY-LEAK +Used functions and strings: +RT-I-BATTERY-LEAK 17103 +RT-QUEUE 7158 + +RT-I-KLAXON +Used functions and strings: +RT-I-KLAXON 17092 +RT-QUEUE 7158 + +RT-I-HIPPY-RETURN +Used functions and strings: + +RT-I-CRANE-5 +Used functions and strings: +RT-I-FIRE-1 10897 +RT-QUEUE 7158 + +RT-I-CRANE-4 +Used functions and strings: +RT-QUEUE 7158 + +RT-I-CRANE-3 +Used functions and strings: +RT-QUEUE 7158 + +RT-I-CRANE-2 +Used functions and strings: +RT-QUEUE 7158 + +RT-I-CRANE-1 +Used functions and strings: +RT-I-DEEPCORE-TEMP 8329 +RT-QUEUE 7158 + +RT-RM-TROUGH-LIP +Used functions and strings: +RT-DO-WALK 9065 + +RT-SWIM-TO-FROM-TRENCH +Used functions and strings: +CLOCKER 7098 + +RT-RM-OCEAN-WEST +Used functions and strings: +RT-DO-WALK 9065 + +RT-RM-OCEAN-SOUTH +Used functions and strings: + +RT-RM-OCEAN-NORTH +Used functions and strings: + +RT-RM-UNDER-MOONPOOL +Used functions and strings: + +V-$NITROGEN +Used functions and strings: + +RT-TH-DEVICE +Used functions and strings: + +RT-TH-ELECTRONIC-LOCK +Used functions and strings: + +RT-TH-DIVE-LOCKER +Used functions and strings: + +RT-TH-FBS-SUIT +Used functions and strings: + +RT-TH-GUN +Used functions and strings: + +RT-TH-DISCHARGE +Used functions and strings: + +RT-TH-PASSPORT +Used functions and strings: + +RT-TH-DRYER +Used functions and strings: +THIS-IS-IT 7051 + +RT-TH-STEEL-KEY +Used functions and strings: +ITAKE 9661 + +RT-TH-CLUE-PAPER +Used functions and strings: + +RT-TH-STEEL-BOX +Used functions and strings: + +RT-TH-CATFISH-LOCKER +Used functions and strings: + +RT-I-DETONATOR +Used functions and strings: +ACCESSIBLE? 6847 +META-LOC 5419 + +RT-TH-DETONATOR +Used functions and strings: +RT-DEQUEUE 7170 +RT-QUEUE 7158 +NOUN-USED? 5717 + +RT-TH-PLASTIQUE +Used functions and strings: +RT-PRINT-OBJ 6990 +ITAKE 9661 + +RT-TH-PLASTIC-CARD +Used functions and strings: + +RT-TH-SAFE +Used functions and strings: +RT-PRINT-CONTENTS 8508 +NOUN-USED? 5717 + +RT-TH-PHOTOGRAPH +Used functions and strings: + +RT-RM-CAPTAINS-ROOM +Used functions and strings: + +RT-RM-SUB-CORRIDOR +Used functions and strings: + +RT-LG-BUCKLED-DOOR +Used functions and strings: + +RT-THRU-BUCKLED-DOOR +Used functions and strings: + +RT-RM-COMM-ROOM +Used functions and strings: + +RT-RM-SONAR-ROOM +Used functions and strings: + +RT-RM-ATTACK-CENTER +Used functions and strings: + +RT-TH-MISSILE-ACCESS-KEY +Used functions and strings: + +RT-RM-MISSILE-ROOM +Used functions and strings: + +RT-RM-ENGINE-ROOM +Used functions and strings: + +RT-RM-TORPEDO-ROOM +Used functions and strings: + +RT-RM-BOW +Used functions and strings: + +RT-I-OUT-OF-AIR-2 +Used functions and strings: + +RT-I-OUT-OF-AIR-1 +Used functions and strings: +RT-QUEUE 7158 + +RT-I-INTO-TRENCH-2 +Used functions and strings: + +RT-I-INTO-TRENCH-1 +Used functions and strings: +RT-QUEUE 7158 + +RT-TH-WIRE-CUTTERS +Used functions and strings: + +RT-CORRECT-WIRE? +Used functions and strings: + +RT-TH-WIRE +Used functions and strings: +RT-PRINT-OBJ 6990 +RT-QUEUE 7158 + +RT-TH-WIRES +Used functions and strings: + +RT-TH-MISSILE-PANEL +Used functions and strings: + +RT-TH-MISSILE-TIMER +Used functions and strings: + +RT-TH-MISSILE +Used functions and strings: + +RT-RM-MISSILE-HATCH +Used functions and strings: + +RT-TO-TRENCH-BOTTOM +Used functions and strings: + +RT-LG-MIDSHIP-HATCH +Used functions and strings: + +RT-RM-MIDSHIP-HATCH +Used functions and strings: + +RT-TH-DESCRAMBLER-CONTROL-BOX +Used functions and strings: + +RT-PUMP-MENU +Used functions and strings: +PIXELS-L 7204 +MOUSE-INPUT? 519 +CCURSET 7208 +UPDATE-STATUS-LINE 258 +C-PIXELS 7192 +L-PIXELS 7196 + +RT-SUPPORT-MENU +Used functions and strings: +PIXELS-L 7204 +MOUSE-INPUT? 519 +RT-PRINT-FLOAT 7648 +CCURSET 7208 +UPDATE-STATUS-LINE 258 +C-PIXELS 7192 +L-PIXELS 7196 + +RT-LIGHT-MENU +Used functions and strings: +UPDATE-STATUS-LINE 258 + +RT-POWER-MENU +Used functions and strings: +UPDATE-STATUS-LINE 258 + +RT-GAS-LEVEL-MSG +Used functions and strings: + +RT-AIR-MENU +Used functions and strings: +RT-PRINT-FLOAT 7648 +CCURSET 7208 +UPDATE-STATUS-LINE 258 + +RT-ROV-MENU +Used functions and strings: +UPDATE-STATUS-LINE 258 + +RT-EMERGENCY-MENU +Used functions and strings: +RT-DEQUEUE 7170 +RT-QUEUE 7158 +PIXELS-L 7204 +MOUSE-INPUT? 519 +CCURSET 7208 +UPDATE-STATUS-LINE 258 +C-PIXELS 7192 +L-PIXELS 7196 + +RT-COMMAND-MENU +Used functions and strings: +INIT-STATUS-LINE 109 +PIXELS-L 7204 +MOUSE-INPUT? 519 +RT-STOP-READ 517 +CCURSET 7208 +UPDATE-STATUS-LINE 258 +C-PIXELS 7192 +L-PIXELS 7196 + +RT-TH-COMMAND-CHAIR +Used functions and strings: + +RT-TH-MONITORS +Used functions and strings: + +RT-RM-COMMAND-MODULE +Used functions and strings: +RT-PRINT-OBJ 6990 + +RT-RM-LADDER-C3 +Used functions and strings: + +RT-RM-TAPE-LIBRARY +Used functions and strings: + +RT-RM-LAB +Used functions and strings: + +RT-TH-ELEC-SHOP-DRAWER +Used functions and strings: + +RT-RM-ELECTRONICS-SHOP +Used functions and strings: + +RT-RM-COMPUTER-CENTER +Used functions and strings: + +RT-RM-SB-OBS-DECK +Used functions and strings: + +RT-RM-LADDER-B3 +Used functions and strings: + +RT-RM-LADDER-D3 +Used functions and strings: + +RT-RM-SWAMP +Used functions and strings: + +RT-RM-PERSONAL-STORAGE-2 +Used functions and strings: + +RT-RM-MOTEL-QUICK +Used functions and strings: + +RT-RM-PT-HEAD +Used functions and strings: + +RT-RM-LADDER-A3 +Used functions and strings: + +RT-RM-LADDER-C1 +Used functions and strings: + +RT-RM-FRESH-WATER-STORAGE +Used functions and strings: + +RT-RM-PUMP-ROOM +Used functions and strings: + +RT-RM-SB-LIFE-SUPPORT +Used functions and strings: + +RT-RM-SB-HEAD +Used functions and strings: + +RT-RM-SB-BATTERY-ROOM +Used functions and strings: + +RT-RM-LADDER-B1 +Used functions and strings: + +RT-RM-DRILL-ROOM +Used functions and strings: + +RT-RM-TOOL-PUSHER-OFFICE +Used functions and strings: + +RT-RM-LADDER-D1 +Used functions and strings: + +RT-TH-COMPRESSOR +Used functions and strings: + +RT-RM-COMPRESSOR-ROOM +Used functions and strings: + +RT-RM-PT-LIFE-SUPPORT +Used functions and strings: + +RT-RM-LAUNDRY +Used functions and strings: + +RT-RM-LADDER-A1 +Used functions and strings: + +RT-TH-S-BILGE-BUTT +Used functions and strings: + +RT-RM-LADDER-C2 +Used functions and strings: + +RT-RM-ZOOTOWN +Used functions and strings: + +RT-RM-PERSONAL-STORAGE-1 +Used functions and strings: + +RT-RM-WALDORF +Used functions and strings: + +RT-TH-GAME-BAG +Used functions and strings: + +RT-TH-HOOK-2 +Used functions and strings: + +RT-RM-PANTRY +Used functions and strings: + +RT-RM-GALLEY +Used functions and strings: + +RT-RM-MESS-HALL +Used functions and strings: + +RT-RM-INFIRMARY +Used functions and strings: + +RT-RM-LOUNGE +Used functions and strings: + +RT-RM-LADDER-A2 +Used functions and strings: + +RT-TH-PANEL +Used functions and strings: + +RT-RM-CORRIDOR +Used functions and strings: +RT-CLEAR-PUPPY 10124 +RT-PRINT-OBJ 6990 + +RT-RM-GAS-MIX-ROOM +Used functions and strings: +RT-OPEN-MSG 7086 + +RT-TH-CAB-HOOKAH +Used functions and strings: +RT-QUEUE 7158 +RT-DEQUEUE 7170 + +RT-I-CAB-FIXED +Used functions and strings: + +RT-OUT-CAB +Used functions and strings: + +RT-RM-CAB-THREE +Used functions and strings: +CLOCKER 7098 + +RT-I-UFO-MESSAGE +Used functions and strings: + +RT-I-RETURN-4 +Used functions and strings: + +RT-I-RETURN-3 +Used functions and strings: +RT-QUEUE 7158 + +RT-I-RETURN-2 +Used functions and strings: +RT-QUEUE 7158 + +RT-I-RETURN-1 +Used functions and strings: +RT-QUEUE 7158 + +RT-I-LEAVE-4 +Used functions and strings: + +RT-I-LEAVE-3 +Used functions and strings: +RT-QUEUE 7158 + +RT-I-LEAVE-2 +Used functions and strings: +RT-QUEUE 7158 + +RT-I-LEAVE-1 +Used functions and strings: +RT-QUEUE 7158 + +RT-LG-CHAMBER-HATCH +Used functions and strings: +RT-QUEUE 7158 +RT-DEQUEUE 7170 + +RT-RM-COMPRESSION-CHAMBER +Used functions and strings: +RT-DEQUEUE 7170 +RT-IS-QUEUED? 7183 +RT-PRINT-OBJ 6990 + +RT-TH-RED-BUTTON +Used functions and strings: + +RT-TH-CO2-CANNISTER +Used functions and strings: + +RT-TH-LIFT-BAG +Used functions and strings: +RT-PRINT-OBJ 6990 + +RT-TH-HOOK-1 +Used functions and strings: + +RT-TH-HELMET +Used functions and strings: +RT-OPEN-MSG 7086 + +RT-TH-FACEPLATE +Used functions and strings: +RT-OPEN-MSG 7086 + +RT-TH-DRY-SUIT +Used functions and strings: +RT-PRINT-OBJ 6990 +RT-OPEN-MSG 7086 + +RT-CH-ONE-NIGHT +Used functions and strings: + +RT-CH-COFFEY +Used functions and strings: + +RT-TH-OXYGEN-CYLINDER +Used functions and strings: + +RT-TH-NOZZLE +Used functions and strings: + +RT-TH-WATER-HOSE +Used functions and strings: + +RT-I-FIRE-2 +Used functions and strings: + +RT-I-FIRE-1 +Used functions and strings: +RT-QUEUE 7158 + +RT-TH-FIRE +Used functions and strings: +RT-DEQUEUE 7170 + +RT-TH-MOON-POOL +Used functions and strings: +RT-DO-WALK 9065 + +RT-RM-SUB-BAY +Used functions and strings: +GAME-VERB? 1339 +RT-PRINT-OBJ 6990 + +V-HOW +Used functions and strings: +V-BE 10283 + +V-WHY +Used functions and strings: +V-BE 10283 + +V-WHERE +Used functions and strings: +V-BE 10283 + +V-WHEN +Used functions and strings: +V-BE 10283 + +V-WHAT +Used functions and strings: +V-BE 10283 + +V-WHO +Used functions and strings: +V-BE 10283 + +V-BE? +Used functions and strings: +V-BE 10283 + +V-MUST? +Used functions and strings: +YES-BUT? 10530 + +V-WILL? +Used functions and strings: +YES-BUT? 10530 + +V-MIGHT? +Used functions and strings: +YES-BUT? 10530 + +V-SHOULD? +Used functions and strings: +YES-BUT? 10530 + +V-WOULD? +Used functions and strings: +YES-BUT? 10530 + +V-COULD? +Used functions and strings: +YES-BUT? 10530 + +V-DO? +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-MAY? +Used functions and strings: +YES-BUT? 10530 + +V-CAN? +Used functions and strings: +YES-BUT? 10530 + +YES-BUT? +Used functions and strings: +RT-PRINT-OBJ 6990 + +IS-PRSO-ADJ? +Used functions and strings: + +PRSO-IS +Used functions and strings: +RT-PRINT-VERB 7020 +RT-PRINT-OBJ 6990 + +IS-HERE? +Used functions and strings: + +IS-ALIVE? +Used functions and strings: + +IS-DEAD? +Used functions and strings: + +IS-UNLOCKED? +Used functions and strings: + +IS-LOCKED? +Used functions and strings: + +IS-CLOSED? +Used functions and strings: + +IS-OPEN? +Used functions and strings: + +IS-OUTSIDE? +Used functions and strings: + +IS-QUIET? +Used functions and strings: + +RIGHT-PREP? +Used functions and strings: + +TELL-Q-WORD +Used functions and strings: + +V-BE +Used functions and strings: +RT-IN-ON-MSG 7068 +META-LOC 5419 +RT-PRINT-VERB 7020 +NP-PRINT 6506 +P-PP-OBJ 5103 +P-PP-PREP 5111 +RT-PRINT-OBJ 6990 + +V-STATEMENT +Used functions and strings: + +V-YES +Used functions and strings: + +V-WELD +Used functions and strings: + +V-WEAR +Used functions and strings: +RT-PRINT-OBJ 6990 + +RT-WALK-WITHIN-ROOM-MSG +Used functions and strings: + +V-WALK-TO +Used functions and strings: + +V-WALK-AROUND +Used functions and strings: + +RT-ROOM-NAME-MSG +Used functions and strings: +RT-PRINT-DESC 6898 + +RT-ENTER-ROOM +Used functions and strings: +RT-DESCRIBE-OBJECTS 8549 +RT-DESCRIBE-ROOM 8646 +LIT? 2126 + +RT-GOTO +Used functions and strings: +RT-PRINT-OBJ 6990 + +WALK-THRU-DOOR? +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-WALK +Used functions and strings: + +RT-CLEAR-PUPPY +Used functions and strings: + +RT-SET-PUPPY +Used functions and strings: + +RT-FIND-ROOM +Used functions and strings: + +RT-FIND-DIR +Used functions and strings: + +V-WAIT +Used functions and strings: +RT-PRINT-OBJ 6990 +ADJ-USED? 5724 +NOUN-USED? 5717 + +V-UNWEAR +Used functions and strings: +PERFORM 5439 +RT-PRINT-OBJ 6990 + +V-UNLOCK +Used functions and strings: +RT-OPEN-DOOR-MSG 9335 +RT-PRINT-OBJ 6990 +RT-MATCH-KEY 9293 + +V-UNDO +Used functions and strings: + +V-TURN-TO +Used functions and strings: + +V-TURN-ON +Used functions and strings: + +V-TURN-OFF +Used functions and strings: + +V-TURN +Used functions and strings: + +V-TIE-TO +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-THANK +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-TELL-ABOUT +Used functions and strings: +RT-PRINT-OBJ 6990 +PERFORM 5439 + +WONT-HELP-TO-TALK-TO +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-TELL +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-TALK-TO +Used functions and strings: + +V-TAKE-WITH +Used functions and strings: + +V-TAKE +Used functions and strings: +RT-PRINT-OBJ 6990 +ITAKE 9661 + +PRE-TAKE-WITH +Used functions and strings: +RT-IN-ON-MSG 7068 +RT-PRINT-OBJ 6990 +NOT-HERE 5667 +HELD? 8684 +META-LOC 5419 + +PRE-TAKE +Used functions and strings: +RT-PRINT-OBJ 6990 +RT-IN-ON-MSG 7068 +NOT-HERE 5667 + +RT-DO-TAKE +Used functions and strings: + +ITAKE +Used functions and strings: +RT-PRINT-OBJ 6990 +RT-OBJ-TOO-LARGE? 9564 + +V-SIT +Used functions and strings: + +V-SHOW-SWP +Used functions and strings: +PERFORM 5439 + +V-SHOW +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-READ +Used functions and strings: + +V-REACH-UNDER +Used functions and strings: + +V-REACH-IN +Used functions and strings: + +V-REACH-BEHIND +Used functions and strings: + +RT-CHECK-MOVE-MSG? +Used functions and strings: +RT-IN-ON-MSG 7068 +RT-PRINT-OBJ 6990 + +RT-ROOM-IN-MSG? +Used functions and strings: +RT-PRINT-OBJ 6990 +RT-IN-ON-MSG 7068 +RT-OBJ-TOO-LARGE? 9564 + +RT-OBJ-TOO-LARGE? +Used functions and strings: +RT-TOTAL-SIZE 9555 + +RT-TOTAL-SIZE +Used functions and strings: + +RT-PUT-ON-OR-IN +Used functions and strings: +HELD? 8684 +RT-PRINT-OBJ 6990 +RT-IN-ON-MSG 7068 + +V-PUT-IN +Used functions and strings: +RT-PRINT-OBJ 6990 + +PRE-PUT-IN +Used functions and strings: +TELL-FIND-NONE 9473 +PRE-PUT 9451 + +TELL-FIND-NONE +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-PUT +Used functions and strings: +RT-PRINT-OBJ 6990 + +PRE-PUT +Used functions and strings: +HELD? 8684 +NOT-HERE 5667 + +V-PUSH +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-PULL +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-PLUG-IN +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-OPEN +Used functions and strings: +RT-OPEN-DOOR-MSG 9335 +RT-MATCH-KEY 9293 +RT-PRINT-OBJ 6990 + +RT-OPEN-DOOR-MSG +Used functions and strings: +RT-PRINT-CONTENTS 8508 +RT-PRINT-VERB 7020 +RT-OTHER-SIDE 9298 +RT-PRINT-OBJ 6990 +RT-LOCK-MSG 9311 + +RT-LOCK-MSG +Used functions and strings: +RT-PRINT-VERB 7020 +RT-PRINT-OBJ 6990 + +RT-OTHER-SIDE +Used functions and strings: + +RT-MATCH-KEY +Used functions and strings: + +V-NO +Used functions and strings: + +V-MOVE +Used functions and strings: + +V-LOOK-ON +Used functions and strings: +RT-PRINT-OBJ 6990 +V-LOOK-IN 9222 + +TELL-CANT-FIND +Used functions and strings: + +V-LOOK-IN +Used functions and strings: +RT-IN-ON-MSG 7068 +RT-PRINT-CONTENTS 8508 +RT-PRINT-OBJ 6990 +PERFORM 5439 + +V-LOOK-UNDER +Used functions and strings: + +V-LOOK-BEHIND +Used functions and strings: + +V-LOOK +Used functions and strings: +RT-DESCRIBE-OBJECTS 8549 +RT-DESCRIBE-ROOM 8646 + +V-LOCK +Used functions and strings: +RT-PRINT-VERB 7020 +RT-PRINT-OBJ 6990 + +V-LISTEN +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-LIFT +Used functions and strings: + +V-INFLATE +Used functions and strings: + +V-HIT +Used functions and strings: + +V-GIVE-SWP +Used functions and strings: +PERFORM 5439 + +V-GIVE +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-FOLLOW +Used functions and strings: + +V-EXTINGUISH +Used functions and strings: + +RT-NOTHING-SPECIAL-MSG +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-EXAMINE +Used functions and strings: +RT-OPEN-MSG 7086 +RT-PRINT-OBJ 6990 +PERFORM 5439 + +RT-DO-WALK +Used functions and strings: +PERFORM 5439 + +RT-NOT-IN-ROOM-MSG +Used functions and strings: +RT-IN-ON-MSG 7068 +RT-PRINT-OBJ 6990 + +V-EXIT +Used functions and strings: +PERFORM 5439 +RT-IN-ON-MSG 7068 +RT-OUT-OFF-MSG 7077 +RT-PRINT-OBJ 6990 + +V-ENTER +Used functions and strings: +RT-PRINT-OBJ 6990 +RT-IN-ON-MSG 7068 + +V-EMPTY-FROM +Used functions and strings: +PERFORM 5439 +RT-IN-ON-MSG 7068 +RT-PRINT-OBJ 6990 + +RT-EMPTY-MSG +Used functions and strings: +PERFORM 5439 +RT-PRINT-OBJ 6990 +RT-IN-ON-MSG 7068 + +V-EMPTY +Used functions and strings: + +PRE-EMPTY +Used functions and strings: +RT-PRINT-OBJ 6990 +PERFORM 5439 + +V-DROP +Used functions and strings: +RT-IN-ON-MSG 7068 +RT-PRINT-OBJ 6990 +IDROP 8737 + +IDROP +Used functions and strings: +RT-PRINT-OBJ 6990 +NOT-HOLDING? 8672 + +V-CUT +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-CLOSE +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-ATTACH +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-ASK-ABOUT +Used functions and strings: + +TOO-DARK +Used functions and strings: + +HELD? +Used functions and strings: + +NOT-HOLDING? +Used functions and strings: +RT-PRINT-OBJ 6990 + +RT-DESCRIBE-ROOM +Used functions and strings: +RT-PRINT-OBJ 6990 + +RT-DESCRIBE-OBJECTS +Used functions and strings: +RT-DESCRIBE-OBJECTS 8549 +THIS-IS-IT 7051 +RT-PRINT-OBJ 6990 +RT-IN-ON-MSG 7068 + +RT-PRINT-CONTENTS +Used functions and strings: +RT-PRINT-CONTENTS 8508 +RT-IN-ON-MSG 7068 +THIS-IS-IT 7051 +RT-PRINT-OBJ 6990 + +V-RESTORE +Used functions and strings: +RT-FAILED-MSG 8478 + +V-SAVE +Used functions and strings: +RT-FAILED-MSG 8478 +V-$REFRESH 5838 + +V-RESTART +Used functions and strings: +RT-FAILED-MSG 8478 + +RT-FAILED-MSG +Used functions and strings: + +V-QUIT +Used functions and strings: + +V-INVENTORY +Used functions and strings: +RT-PRINT-OBJ 6990 + +V-UNRECORD +Used functions and strings: + +V-RECORD +Used functions and strings: + +V-COMMAND +Used functions and strings: + +V-VERIFY +Used functions and strings: +DONT-UNDERSTAND 6314 + +V-SCRIPT +Used functions and strings: + +V-DESC-LEVEL +Used functions and strings: + +RT-I-TEMP +Used functions and strings: +RT-TEMP-MSG 8161 +RT-I-TEMP 8336 +RT-QUEUE 7158 + +RT-I-DEEPCORE-TEMP +Used functions and strings: +RT-I-DEEPCORE-TEMP 8329 +RT-QUEUE 7158 + +RT-TEMP-MSG +Used functions and strings: + +RT-TH-THERMOMETER +Used functions and strings: +RT-PRINT-FLOAT 7648 + +V-$HEAT +Used functions and strings: + +RT-I-GAS-MIX +Used functions and strings: +RT-CO2-MSG 8027 +RT-OXYGEN-MSG 7853 +RT-I-GAS-MIX 8116 +RT-QUEUE 7158 + +RT-CO2-MSG +Used functions and strings: + +RT-OXYGEN-MSG +Used functions and strings: + +RT-NITROGEN-MSG +Used functions and strings: + +RT-PRINT-FLOAT +Used functions and strings: +RT-NUM-DIGITS 7638 + +RT-NUM-DIGITS +Used functions and strings: + +V-$AIR +Used functions and strings: + +V-$SCRUB +Used functions and strings: + +GO +Used functions and strings: +MAIN-LOOP 1861 +RT-QUEUE 7158 +UPDATE-STATUS-LINE 258 +INIT-STATUS-LINE 109 + +RT-SCRIPT-INBUF +Used functions and strings: + +CSCROLL +Used functions and strings: + +CWINSIZE +Used functions and strings: + +CWINPOS +Used functions and strings: +C-PIXELS 7192 +L-PIXELS 7196 + +CSPLIT +Used functions and strings: + +CCURGET +Used functions and strings: +PIXELS-C 7200 +PIXELS-L 7204 + +CCURSET +Used functions and strings: +C-PIXELS 7192 +L-PIXELS 7196 + +PIXELS-L +Used functions and strings: + +PIXELS-C +Used functions and strings: + +L-PIXELS +Used functions and strings: + +C-PIXELS +Used functions and strings: + +RT-IS-QUEUED? +Used functions and strings: + +RT-DEQUEUE +Used functions and strings: + +RT-QUEUE +Used functions and strings: + +CLOCKER +Used functions and strings: +YES? 6692 +UPDATE-STATUS-LINE 258 + +TOUCH-VERB? +Used functions and strings: + +RT-OPEN-MSG +Used functions and strings: + +RT-OUT-OFF-MSG +Used functions and strings: + +RT-IN-ON-MSG +Used functions and strings: + +THIS-IS-IT +Used functions and strings: + +RT-PRINT-VERB +Used functions and strings: + +RT-PRINT-OBJ +Used functions and strings: +RT-PRINT-DESC 6898 +RT-PRINT-ARTICLE 6903 + +RT-PRINT-ARTICLE +Used functions and strings: + +RT-PRINT-DESC +Used functions and strings: + +ACCESSIBLE? +Used functions and strings: +CLOSED? 6837 + +CLOSED? +Used functions and strings: + +VISIBLE? +Used functions and strings: + +INSERT-ADJS-WD +Used functions and strings: +INBUF-PRINT 6663 +MAKE-ROOM-FOR-TOKENS 5794 + +INSERT-ADJS +Used functions and strings: +PMEM? 73 + +SETUP-ORPHAN-NP +Used functions and strings: + +SETUP-ORPHAN +Used functions and strings: +MAKE-ROOM-FOR-TOKENS 5794 + +YES? +Used functions and strings: + +INBUF-PRINT +Used functions and strings: +PRINT-VOCAB-WORD 2258 + +INBUF-ADD +Used functions and strings: + +TOO-MANY-NOUNS +Used functions and strings: +PRINT-VOCAB-WORD 2258 + +ADJS-PRINT +Used functions and strings: +PRINT-VOCAB-WORD 2258 +CAPITALIZE 6013 +CAPITAL-NOUN? 5664 +NP-PRINT 6506 + +NP-PRINT +Used functions and strings: +PMEM? 73 +PRINT-VOCAB-WORD 2258 +BUFFER-PRINT 5929 +GET-QUANTITY-WORD 4451 +NP-PRINT 6506 +TELL-THE 1107 + +WHICH-PRINT +Used functions and strings: +WHICH-LIST? 6435 + +WHICH-LIST? +Used functions and strings: + +WINNER-SAYS-WHICH? +Used functions and strings: + +NP-CANT-SEE +Used functions and strings: +MORE-SPECIFIC 5303 +GET-NP 5706 + +CANT-FIND-OBJECT +Used functions and strings: +PRINT-VOCAB-WORD 2258 + +MISSING +Used functions and strings: + +DONT-UNDERSTAND +Used functions and strings: + +CHANGE-AND-TO-THEN? +Used functions and strings: + +NAKED-ADJECTIVE? +Used functions and strings: + +PRINT-PARSER-FAILURE +Used functions and strings: +PARSE-IT 1445 +PRINT-LEXV 5859 +CHANGE-LEXV 2456 +CANT-USE-MULTIPLE 5781 +PRINT-VOCAB-WORD 2258 +ROOT-VERB 3158 +TELL-THE 1107 +MAKE-ROOM-FOR-TOKENS 5794 + +CAPITALIZE +Used functions and strings: +WORD-PRINT 2249 + +BUFFER-PRINT +Used functions and strings: +WORD-PRINT 2249 +CAPITAL-NOUN? 5664 + +COPY-INPUT +Used functions and strings: +PRINT-LEXV 5859 + +PRINT-LEXV +Used functions and strings: +PRINT-VOCAB-WORD 2258 +CAPITAL-NOUN? 5664 + +PRINT-INTQUOTE +Used functions and strings: +GET-NP 5706 + +V-$REFRESH +Used functions and strings: +INIT-STATUS-LINE 109 + +REPLACE-ONE-TOKEN +Used functions and strings: +TOO-MANY-NEW 5747 +MAKE-ROOM-FOR-TOKENS 5794 + +MAKE-ROOM-FOR-TOKENS +Used functions and strings: +TOO-MANY-NEW 5747 + +CANT-USE-MULTIPLE +Used functions and strings: +PRINT-VOCAB-WORD 2258 + +CANT-AGAIN +Used functions and strings: + +CANT-OOPS +Used functions and strings: + +NAKED-OOPS +Used functions and strings: + +TOO-MANY-NEW +Used functions and strings: + +ADJ-USED? +Used functions and strings: +GET-NP 5706 + +NOUN-USED? +Used functions and strings: +GET-NP 5706 + +GET-NP +Used functions and strings: + +GET-OWNER +Used functions and strings: + +SPEAKING-VERB? +Used functions and strings: + +NOT-HERE +Used functions and strings: + +CAPITAL-NOUN? +Used functions and strings: + +D-APPLY +Used functions and strings: + +TELL-D-LOC +Used functions and strings: + +ITAKE-CHECK +Used functions and strings: + +TELL-TOO-DARK +Used functions and strings: + +PERFORM +Used functions and strings: +NO-M-WINNER-VERB? 5393 + +SEE-VERB? +Used functions and strings: + +CANT-UNDO +Used functions and strings: + +META-LOC +Used functions and strings: + +QCONTEXT-GOOD? +Used functions and strings: + +TELL-SAID-TO +Used functions and strings: + +FIND-A-WINNER +Used functions and strings: + +NO-M-WINNER-VERB? +Used functions and strings: + +TELL-PRONOUN +Used functions and strings: +TELL-THE 1107 + +FIX-HIM-HER-IT +Used functions and strings: +EVERYWHERE-VERB? 2729 +MORE-SPECIFIC 5303 + +VERB-ALL-TEST +Used functions and strings: + +V-PDEBUG +Used functions and strings: + +MORE-SPECIFIC +Used functions and strings: + +INSERT-WHAT +Used functions and strings: + +RED-CANDO +Used functions and strings: +GET-SYNTAX 3084 +PMEM? 73 +PARSER-ERROR 2370 +DETERMINE-OBJ 3483 + +RED-NOT +Used functions and strings: + +RED-BE +Used functions and strings: + +RED-SQBN +Used functions and strings: +DETERMINE-SUBJ 4832 + +P-PP-PREP +Used functions and strings: + +P-PP-OBJ +Used functions and strings: + +RED-SNBAP +Used functions and strings: +DETERMINE-OBJ 3483 +REDUCE-LOCATION 3392 +DO-PMEM-ALLOC 85 +DETERMINE-SUBJ 4832 + +RED-SNBP +Used functions and strings: +REDUCE-LOCATION 3392 +DO-PMEM-ALLOC 85 +DETERMINE-SUBJ 4832 + +RED-SBNP +Used functions and strings: +EXCH-4-5-Q 4734 + +RED-SNBA +Used functions and strings: +DO-PMEM-ALLOC 85 +DETERMINE-SUBJ 4832 + +RED-SBNA +Used functions and strings: +EXCH-4-5-Q 4734 + +DETERMINE-SUBJ +Used functions and strings: +DETERMINE-OBJ 3483 +GET-SYNTAX 3084 +PARSER-ERROR 2370 + +RED-SNBN +Used functions and strings: +PARSER-ERROR 2370 +DETERMINE-OBJ 3483 + +RED-SBNN +Used functions and strings: +EXCH-4-5-Q 4734 + +EXCH-4-5-Q +Used functions and strings: +PMEM? 73 + +RED-BE-FORM +Used functions and strings: + +RED-QUOTE +Used functions and strings: +DO-PMEM-ALLOC 85 + +RED-ADJ +Used functions and strings: +PMEM? 73 +DO-PMEM-ALLOC 85 + +RED-POSS +Used functions and strings: +PARSER-ERROR 2370 + +RED-PP +Used functions and strings: +DO-PMEM-ALLOC 85 + +RED-NPP +Used functions and strings: +DO-PMEM-ALLOC 85 +REDUCE-LOCATION 3392 +REDUCE-EXCEPTION 3363 +PMEM? 73 +PARSER-ERROR 2370 + +RED-QN +Used functions and strings: +GET-QUANTITY 4455 + +GET-QUANTITY +Used functions and strings: + +GET-QUANTITY-WORD +Used functions and strings: + +RED-QT +Used functions and strings: +DO-PMEM-ALLOC 85 + +RED-OF +Used functions and strings: + +RED-NP +Used functions and strings: +DO-PMEM-ALLOC 85 + +RED-VP +Used functions and strings: + +HACK-TELL-1 +Used functions and strings: + +HACK-TELL +Used functions and strings: +IGNORE-FIRST-WORD 2167 +PARSER-ERROR 2370 +DETERMINE-OBJ 3483 +GET-SYNTAX 3084 + +RED-PERS +Used functions and strings: + +RED-O-NP +Used functions and strings: +INSERT-NP 4016 +RED-O-ADJ 3974 +TEST-SR 4055 + +TEST-SR +Used functions and strings: +MATCH-OBJECT 2565 +NUMERIC-ADJ? 3654 +DO-PMEM-ALLOC 85 + +INSERT-NP +Used functions and strings: + +RED-O-PP +Used functions and strings: + +RED-O-ADJ +Used functions and strings: + +DO-ORPHAN-TEST +Used functions and strings: + +DETERMINE-NP-XFER +Used functions and strings: + +READY-TO-DISAMBIGUATE? +Used functions and strings: + +FIND-OWNERS +Used functions and strings: +FIND-OWNERS 3929 +MATCH-OBJECT 2565 + +DET-NP-OWNEE? +Used functions and strings: + +DET-NP-NOT-HERE? +Used functions and strings: +NOT-HERE-VERB? 3056 + +DETERMINE-NP +Used functions and strings: +CHECK-DIR-ADJS 3619 +DO-PMEM-ALLOC 85 +FIND-OBJECTS 2846 +NUMERIC-ADJ? 3654 +PMEM? 73 +PARSER-ERROR 2370 + +NUMERIC-ADJ? +Used functions and strings: + +CHECK-DIR-ADJS +Used functions and strings: +MATCH-OBJECT 2565 + +DETERMINE-OBJ +Used functions and strings: +PARSER-ERROR 2370 +DO-PMEM-ALLOC 85 +FIND-OBJECTS 2846 + +REDUCE-LOCATION +Used functions and strings: +PARSER-ERROR 2370 +DO-PMEM-ALLOC 85 +FIND-OBJECTS 2846 + +REDUCE-EXCEPTION +Used functions and strings: +PARSER-ERROR 2370 +DO-PMEM-ALLOC 85 +REDUCE-EXCEPT-IT 3354 +IREDUCE-EXCEPTION 3343 + +REDUCE-EXCEPT-IT +Used functions and strings: +PARSER-ERROR 2370 + +IREDUCE-EXCEPTION +Used functions and strings: + +RED-SP +Used functions and strings: + +RED-SVD +Used functions and strings: +RED-SD 1348 + +RED-SVPNPN +Used functions and strings: +RED-SVPNN 3259 + +RED-SVPNN +Used functions and strings: +GET-SYNTAX 3084 +PARSER-ERROR 2370 +ROOT-VERB 3158 + +RED-SVNPN +Used functions and strings: + +RED-SVNP +Used functions and strings: +RED-SVN 3171 + +RED-SVN +Used functions and strings: +RED-SD 1348 +PARSER-ERROR 2370 +GET-SYNTAX 3084 +ROOT-VERB 3158 + +ROOT-VERB +Used functions and strings: + +RED-SV +Used functions and strings: +GET-SYNTAX 3084 + +GET-SYNTAX +Used functions and strings: + +RED-PART +Used functions and strings: + +RED-FCN +Used functions and strings: + +NOT-HERE-VERB? +Used functions and strings: + +TEST-THINGS +Used functions and strings: +ADD-OBJECT 2665 + +FIND-OBJECTS +Used functions and strings: +FIND-OBJECTS 2846 +EXCLUDE-HERE-OBJECT? 2845 +SEARCH-IN-LG? 2844 +MATCH-OBJECT 2565 +DO-PMEM-ALLOC 85 +FIND-DESCENDANTS 2517 + +EXCLUDE-HERE-OBJECT? +Used functions and strings: + +SEARCH-IN-LG? +Used functions and strings: + +CHECK-ADJS +Used functions and strings: +CHECK-ADJS-THERE? 2760 + +CHECK-ADJS-THERE? +Used functions and strings: + +MULTIPLE-EXCEPTION? +Used functions and strings: +EVERYWHERE-VERB? 2729 + +EVERYWHERE-VERB? +Used functions and strings: + +NOT-IN-FIND-RES? +Used functions and strings: +DO-PMEM-ALLOC 85 + +ADD-OBJECT +Used functions and strings: + +TEST-OBJECT +Used functions and strings: + +MATCH-OBJECT +Used functions and strings: +INVALID-OBJECT? 2564 +EXCLUDED? 2545 + +INVALID-OBJECT? +Used functions and strings: + +EXCLUDED? +Used functions and strings: + +FIND-DESCENDANTS +Used functions and strings: +FIND-DESCENDANTS 2517 + +DO-IT-AGAIN +Used functions and strings: + +TELL-GWIM-MSG +Used functions and strings: +PRINT-VOCAB-WORD 2258 + +CHANGE-LEXV +Used functions and strings: + +NUMBER? +Used functions and strings: + +BUZZER-WORD? +Used functions and strings: + +PARSER-ERROR +Used functions and strings: +NP-SAVE 2332 +PMEM? 73 + +NP-SAVE +Used functions and strings: + +DO-AGAIN +Used functions and strings: + +DO-OOPS +Used functions and strings: + +PRINT-VOCAB-WORD +Used functions and strings: + +WORD-PRINT +Used functions and strings: + +UNKNOWN-WORD +Used functions and strings: + +BEG-PARDON +Used functions and strings: + +P-NO-MEM-ROUTINE +Used functions and strings: + +MAIN-LOOP-IT +Used functions and strings: + +FIX-QUOTATIONS +Used functions and strings: + +IGNORE-FIRST-WORD +Used functions and strings: + +LIT? +Used functions and strings: + +QCONTEXT-CHECK +Used functions and strings: + +MAIN-LOOP-1 +Used functions and strings: +GAME-VERB? 1339 +PARSER 1165 + +MAIN-LOOP +Used functions and strings: + +BE-PATIENT +Used functions and strings: + +GET-NONTERMINAL-ACTION +Used functions and strings: + +GET-TERMINAL-ACTION +Used functions and strings: + +PARSE-SENTENCE +Used functions and strings: +P-P 1368 +PEEK-PSTACK 64 + +PARSE-IT +Used functions and strings: +PMEM-RESET 77 + +P-P +Used functions and strings: +P-P 1368 +PMEM? 73 + +RED-SD +Used functions and strings: +DO-PMEM-ALLOC 85 + +GAME-VERB? +Used functions and strings: + +PARSER +Used functions and strings: +TELL-THE 1107 +NAKED-DIR? 1138 +EXPAND-BE-CONTRACTIONS 1039 +READ-INPUT 564 +UPDATE-STATUS-LINE 258 +PMEM-RESET 77 + +NAKED-DIR? +Used functions and strings: + +TELL-CTHE +Used functions and strings: +TELL-CTHE 1122 + +TELL-THE +Used functions and strings: +TELL-THE 1107 + +EXPAND-BE-CONTRACTIONS +Used functions and strings: +SPECIAL-CONTRACTION? 1038 + +SPECIAL-CONTRACTION? +Used functions and strings: + +READ-INPUT +Used functions and strings: +RT-GET-PREPS 411 +RT-FREE-MEM 505 +RT-STOP-READ 517 +RT-PRINT-MENU-ENTRY 356 +MOUSE-INPUT? 519 +RT-HLIGHT-MENU 383 +RT-PRINT-MENU 337 +RT-DO-OBJECTS 477 + +MOUSE-INPUT? +Used functions and strings: + +RT-STOP-READ +Used functions and strings: + +RT-FREE-MEM +Used functions and strings: + +RT-GET-MEM +Used functions and strings: + +RT-DO-OBJECTS +Used functions and strings: +RT-GET-OBJS 448 + +RT-GET-OBJS +Used functions and strings: +RT-GET-OBJS 448 + +RT-GET-PREPS +Used functions and strings: + +RT-HLIGHT-MENU +Used functions and strings: +RT-PRINT-MENU-ENTRY 356 + +RT-PRINT-MENU-ENTRY +Used functions and strings: + +RT-PRINT-MENU +Used functions and strings: + +UPDATE-STATUS-LINE +Used functions and strings: + +INIT-STATUS-LINE +Used functions and strings: + +DO-PMEM-ALLOC +Used functions and strings: + +PMEM-RESET +Used functions and strings: + +PMEM? +Used functions and strings: + +PEEK-PSTACK +Used functions and strings: + diff --git a/abyss.syms b/abyss.syms new file mode 100644 index 0000000..e942144 Binary files /dev/null and b/abyss.syms differ diff --git a/abyss.zap b/abyss.zap new file mode 100644 index 0000000..2ca07a9 --- /dev/null +++ b/abyss.zap @@ -0,0 +1,66 @@ + .NEW 6 +; Low core locations +%ZVERSION:: .BYTE 6 + .BYTE FLAGS +%ZORKID:: ZORKID +%ENDLOD:: ENDLOD +%START:: GO +%VOCAB:: VOCAB +%OBJECT:: OBJECT +%GLOBAL:: GLOBAL +%PURBOT:: IMPURE +%FLAGS:: .WORD 112 +%SERIAL:: .WORD 0 +%SERI1:: .WORD 0 +%SERI2:: .WORD 0 +%FWORDS:: WORDS +%PLENTH:: .WORD 0 +%PCHKSM:: .WORD 0 +%INTWRD:: .WORD 0 +%SCRWRD:: .WORD 0 +%HWRD:: .WORD 0 +%VWRD:: .WORD 0 +%FWRD:: .WORD 0 +%FOFF:: FOFF +%SOFF:: SOFF +%CLRWRD:: .WORD 0 +%TCHAR:: TCHARS +%TWID:: .WORD 0 +%CRFUNC:: .WORD 0 +%CHRSET:: .WORD 0 +%EXTAB:: LOWCORE-TABLE + .WORD 0 + .WORD 0 + .WORD 0 + .WORD 0 + .INSERT "ABYSSFREQ" ;Frequent word table + .INSERT "ABYSSDAT" ; Data file + .INSERT "ABYSSPUR" + .INSERT "PSTACK" + .INSERT "PMEM" + .INSERT "PARSER" + .INSERT "FIND" + .INSERT "REDS" + .INSERT "BREDS" + .INSERT "TOP" + .INSERT "PRARE" + .INSERT "MISC" + .INSERT "GAS-MIX" + .INSERT "VERBS" + .INSERT "BE" + .INSERT "SUB-BAY" + .INSERT "COMMAND" + .INSERT "MONTANA" + .INSERT "RETURN1" + .INSERT "RETURN2" + .INSERT "OCEAN" + .INSERT "CRANE" + .INSERT "GLOBAL" + .INSERT "UTIL" + .INSERT "STOPPER" + .INSERT "ALIEN" + .INSERT "ENDGAME" + + .INSERT "ABYSSSTR" + + .END diff --git a/abyss.zil b/abyss.zil new file mode 100644 index 0000000..ae690e9 --- /dev/null +++ b/abyss.zil @@ -0,0 +1,83 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : ABYSS.ZIL" +; "auth : $Author: RAB $" +; "date : $Date: 16 Mar 1989 17:36:40 $" +; "rev : $Revision: 1.9 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Compile/Load file" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + + + +> + + + + + + + + + + + + ) + (T + + ) +> + + + +ON!-INITIAL "for DEBUGR" +OFF!-INITIAL +ENABLE!-INITIAL +DISABLE!-INITIAL + + + + + +; + + + + + + + + + + +> + + + + + + + + + + + + + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/abyss.zip b/abyss.zip new file mode 100644 index 0000000..59816f6 Binary files /dev/null and b/abyss.zip differ diff --git a/abyssdat.zap b/abyssdat.zap new file mode 100644 index 0000000..654d8f0 --- /dev/null +++ b/abyssdat.zap @@ -0,0 +1,13790 @@ + + +; TOP LEVEL DEFINITIONS + + TRUE-VALUE=1 + FALSE-VALUE=0 + FATAL-VALUE=2 + + O?ANY=1 + + +; OBJECT FLAGS ARE DEFINED HERE + + + FL-INSIDE=0,FLAG + FX?FL-INSIDE=32768,FLAG + + FL-WORN=1,FLAG + FX?FL-WORN=16384,FLAG + + FL-WEAPON=2,FLAG + FX?FL-WEAPON=8192,FLAG + + FL-VOWEL=3,FLAG + FX?FL-VOWEL=4096,FLAG + + FL-TOOL=4,FLAG + FX?FL-TOOL=2048,FLAG + + FL-PLURAL=5,FLAG + FX?FL-PLURAL=1024,FLAG + + FL-NO-ALL=6,FLAG + FX?FL-NO-ALL=512,FLAG + + FL-LAMP=7,FLAG + FX?FL-LAMP=256,FLAG + + FL-INVISIBLE=8,FLAG + FX?FL-INVISIBLE=128,FLAG + + FL-HAS-LDESC=9,FLAG + FX?FL-HAS-LDESC=64,FLAG + + FL-COLLECTIVE=10,FLAG + FX?FL-COLLECTIVE=32,FLAG + + FL-BURNABLE=11,FLAG + FX?FL-BURNABLE=16,FLAG + + FL-BROKEN=12,FLAG + FX?FL-BROKEN=8,FLAG + + FL-BODY-PART=13,FLAG + FX?FL-BODY-PART=4,FLAG + + FL-AUTO-OPEN=14,FLAG + FX?FL-AUTO-OPEN=2,FLAG + + FL-AUTO-ENTER=15,FLAG + FX?FL-AUTO-ENTER=1,FLAG + + FL-ASLEEP=16,FLAG + FX?FL-ASLEEP=32768,FLAG + + FL-YOUR=17,FLAG + FX?FL-YOUR=16384,FLAG + + FL-TRY-TAKE=18,FLAG + FX?FL-TRY-TAKE=8192,FLAG + + FL-LOCKED=19,FLAG + FX?FL-LOCKED=4096,FLAG + + FL-ON=20,FLAG + FX?FL-ON=2048,FLAG + + FL-VEHICLE=21,FLAG + FX?FL-VEHICLE=1024,FLAG + + FL-DOOR=22,FLAG + FX?FL-DOOR=512,FLAG + + FL-TRANSPARENT=23,FLAG + FX?FL-TRANSPARENT=256,FLAG + + FL-CLOTHING=24,FLAG + FX?FL-CLOTHING=128,FLAG + + FL-FEMALE=25,FLAG + FX?FL-FEMALE=64,FLAG + + FL-WATER=26,FLAG + FX?FL-WATER=32,FLAG + + FL-CONTAINER=27,FLAG + FX?FL-CONTAINER=16,FLAG + + FL-LIGHTED=28,FLAG + FX?FL-LIGHTED=8,FLAG + + FL-INDOORS=29,FLAG + FX?FL-INDOORS=4,FLAG + + FL-SURFACE=30,FLAG + FX?FL-SURFACE=2,FLAG + + FL-KEY=31,FLAG + FX?FL-KEY=1,FLAG + + FL-BY-HAND=32,FLAG + FX?FL-BY-HAND=32768,FLAG + + FL-KNIFE=33,FLAG + FX?FL-KNIFE=16384,FLAG + + FL-OPENABLE=34,FLAG + FX?FL-OPENABLE=8192,FLAG + + FL-ROOMS=35,FLAG + FX?FL-ROOMS=4096,FLAG + + FL-TAKEABLE=36,FLAG + FX?FL-TAKEABLE=2048,FLAG + + FL-READABLE=37,FLAG + FX?FL-READABLE=1024,FLAG + + FL-TOUCHED=38,FLAG + FX?FL-TOUCHED=512,FLAG + + FL-SEEN=39,FLAG + FX?FL-SEEN=256,FLAG + + FL-SEARCH=40,FLAG + FX?FL-SEARCH=128,FLAG + + FL-PERSON=41,FLAG + FX?FL-PERSON=64,FLAG + + FL-OPEN=42,FLAG + FX?FL-OPEN=32,FLAG + + FL-NO-DESC=43,FLAG + FX?FL-NO-DESC=16,FLAG + + FL-ALIVE=44,FLAG + FX?FL-ALIVE=8,FLAG + + FL-NO-ARTICLE=45,FLAG + FX?FL-NO-ARTICLE=4,FLAG + + FL-HAS-SDESC=46,FLAG + FX?FL-HAS-SDESC=2,FLAG + + FL-HAS-DESCFCN=47,FLAG + FX?FL-HAS-DESCFCN=1,FLAG + +; ACTION IDENTIFIERS ARE ASSIGNED HERE + + V?PDEBUG=0,VERB + V?$SCRUB=1,VERB + V?$AIR=2,VERB + V?$HEAT=3,VERB + V?$REFRESH=4,VERB + V?VERIFY=5,VERB + V?COMMAND=6,VERB + V?RECORD=7,VERB + V?UNRECORD=8,VERB + V?DESC-LEVEL=9,VERB + V?QUIT=10,VERB + V?RESTART=11,VERB + V?RESTORE=12,VERB + V?SAVE=13,VERB + V?SCRIPT=14,VERB + V?UNDO=15,VERB + V?VERSION=16,VERB + V?SCORE=17,VERB + V?DIAGNOSE=18,VERB + V?ASK-ABOUT=19,VERB + V?ATTACH=20,VERB + V?INFLATE=21,VERB + V?CLOSE=22,VERB + V?CUT=23,VERB + V?DROP=24,VERB + V?PUT=25,VERB + V?PUT-IN=26,VERB + V?EMPTY=27,VERB + V?EMPTY-FROM=28,VERB + V?ENTER=29,VERB + V?EXAMINE=30,VERB + V?EXIT=31,VERB + V?EXTINGUISH=32,VERB + V?FOLLOW=33,VERB + V?TAKE=34,VERB + V?TAKE-WITH=35,VERB + V?GIVE=36,VERB + V?GIVE-SWP=37,VERB + V?HIT=38,VERB + V?INVENTORY=39,VERB + V?LIFT=40,VERB + V?LISTEN=41,VERB + V?LOCK=42,VERB + V?LOOK=43,VERB + V?LOOK-IN=44,VERB + V?LOOK-ON=45,VERB + V?LOOK-BEHIND=46,VERB + V?LOOK-UNDER=47,VERB + V?MOVE=48,VERB + V?NO=49,VERB + V?OPEN=50,VERB + V?PLUG-IN=51,VERB + V?PUSH=52,VERB + V?PULL=53,VERB + V?WEAR=54,VERB + V?REACH-IN=55,VERB + V?REACH-UNDER=56,VERB + V?REACH-BEHIND=57,VERB + V?READ=58,VERB + V?UNWEAR=59,VERB + V?TURN-TO=60,VERB + V?SHOW=61,VERB + V?SHOW-SWP=62,VERB + V?SIT=63,VERB + V?TURN-ON=64,VERB + V?TURN-OFF=65,VERB + V?TELL=66,VERB + V?TELL-ABOUT=67,VERB + V?TALK-TO=68,VERB + V?THANK=69,VERB + V?TIE-TO=70,VERB + V?TURN=71,VERB + V?UNLOCK=72,VERB + V?WAIT=73,VERB + V?WALK=74,VERB + V?WALK-TO=75,VERB + V?WELD=76,VERB + V?YES=77,VERB + V?BE=78,VERB + V?BE?=79,VERB + V?WHO=80,VERB + V?WHAT=81,VERB + V?WHERE=82,VERB + V?WHEN=83,VERB + V?WHY=84,VERB + V?HOW=85,VERB + V?CAN?=86,VERB + V?MAY?=87,VERB + V?DO?=88,VERB + V?COULD?=89,VERB + V?WOULD?=90,VERB + V?SHOULD?=91,VERB + V?MIGHT?=92,VERB + V?WILL?=93,VERB + V?MUST?=94,VERB + V?$NITROGEN=95,VERB + V?$STEAL=96,VERB + V?$GOTO=97,VERB + V?COLOR=98,VERB + V?$P=99,VERB + V?$D=100,VERB + V?$SHOW=101,VERB + V?$W=102,VERB + +; PROPERTIES ARE DEFINED HERE + + P?FORE=63,PROPERTY + P?STARBOARD=62,PROPERTY + P?AFT=61,PROPERTY + P?PORT=60,PROPERTY + P?NORTH=59,PROPERTY + P?SOUTH=58,PROPERTY + P?EAST=57,PROPERTY + P?WEST=56,PROPERTY + P?UP=55,PROPERTY + P?DOWN=54,PROPERTY + P?IN=53,PROPERTY + P?OUT=52,PROPERTY + P?SYNONYM=51,PROPERTY + P?ADJACENT=50,PROPERTY + P?ACTION=49,PROPERTY + P?CONTFCN=48,PROPERTY + P?THINGS=47,PROPERTY + P?MENU=46,PROPERTY + P?ADJECTIVE=45,PROPERTY + P?GLOBAL=44,PROPERTY + P?SIZE=43,PROPERTY + P?OWNER=42,PROPERTY + P?GENERIC=41,PROPERTY + P?CAPACITY=40,PROPERTY + P?SCORE=39,PROPERTY + +; ADJECTIVES ARE DEFINED HERE + + +; DIRECTIONS ARE DEFINED HERE + + +; ACTIONS ARE DEFINED HERE + + +; USER DEFINED CONSTANTS ARE INITIALIZED HERE + + K-CO2-FACTOR=-6 + C-YELLOW=5 + F9=141 + TAKEBIT=FL-TAKEABLE + P-LEXSTART=1 + K-SIZ-SIZ=0 + K-W-ATTR=14 + K-D-SCR-OFF=-1 + H-ITALIC=4 + M-SOUND=32 + F2=134 + LEXV-LENGTH=59 + K-W-COLOR=11 + PARSER-ERROR-NOOBJ=248 + WYPOS=4 + FIRST-PERSON=8 + K-D-REC-ON=4 + NEXIT=3 + K-LEFT=131 + PARSER-RESULT-WON=2 + TRANSBIT=FL-TRANSPARENT + K-W-LMARG=6 + M-OBJDESC?=9 + D-PRINTER=2 + K-ART-HIS=6 + M-SUBJ=12 + K-TEMP-NOM=9860 + NP-QUANT-NOTHING=5 + C-MAGENTA=7 + PARSER-ERROR-TMNOUN=247 + O-START=0 + M-WINNER=11 + O-OBJECT=5 + K-CLICK2=253 + K-CLICK1=254 + DEXIT=6 + D-TABLE-ON=3 + K-H-ITL=4 + M-BEG=1 + H-INVERSE=1 + C-SAME=0 + O-PART=4 + K-F12=144 + K-NIT-HIGH-4=7605 + THIRD-PERSON=64 + K-NIT-HIGH-3=6337 + NOUN-PHRASE-ENTLEN=2 + K-W-HLIGHT=10 + K-NIT-HIGH-2=5070 + O-PTR=3 + K-NIT-HIGH-1=3802 + PMEM-TYPE-NPP=3 + NP-QUANT-ALL=3 + APPLE-2GS=10 + C-DEFAULT=1 + F5=137 + TRYTAKEBIT=FL-TRY-TAKE + K-TEMP-HIGH-3=11000 + REXIT=0 + XGRTR?=5 + WLMARGIN=6 + NP-QUANT-TBL-LEN=6 + M-END-LOOK=46 + A-BUFFER=8 + D-TABLE=3 + C-GREEN=4 + K-F9=141 + K-D-REC-OFF=-4 + K-F8=140 + FIND-FLAGS-GWIM=1 + K-F7=139 + K-F6=138 + K-F5=137 + K-F4=136 + K-F3=135 + K-F2=134 + K-F1=133 + S-BEEP=1 + ATARI-ST=5 + P-LEXWORDS=1 + K-ART-HIM=5 + F-DEFAULT=1 + SURFACEBIT=FL-SURFACE + LEXV-LENGTH-BYTES=238 + K-HEL-NOM=9839 + PARSE-QUESTION=2 + A-WRAP=1 + NOUN-PHRASE-MIN-LENGTH=4 + F-SCRIPT=1 + PMEM-TYPE-OBJLIST=7 + M-CONTAINER=8 + PMEM-TYPE-NOUN-PHRASE=4 + FIND-RES-MAXOBJ=6 + DIR-VERB-PRSI?=0 + F-NEWFONT=3 + K-W-YSIZE=2 + D-KEYBOARD=0 + O-SET=1 + K-H-INV=1 + XMUL=2 + M-ENTER=3 + O-END=2 + K-Q-NUM=20 + IBM=6 + WRMARGIN=7 + D-RECORD-OFF=-4 + F8=140 + O-WHICH=3 + WHIGH=2 + K-OXY-LOW-1=1700 + M-V-LOOK=44 + WATTRS=14 + C-BLUE=6 + K-OXY-LOW-3=1133 + F-REFRESH=4 + F1=133 + K-ART-A=1 + C64=8 + AMIGA=4 + UP-ARROW=129 + ONBIT=FL-LIGHTED + TOUCHBIT=FL-TOUCHED + WXPOS=5 + WCOLOR=11 + K-OXY-NOM=3400 + K-CAP-MAX=255 + F-DISPLAY=8 + PARSER-ERROR-NOMULT=252 + M-EXIT=4 + S-WINDOW=1 + H-MONO=8 + PLURAL=FL-PLURAL + D-PRINTER-OFF=-2 + C-CYAN=8 + D-RECORD-ON=4 + F-MOUSE=32 + P-LEXELEN=2 + F-MENU=256 + S-BOOP=2 + K-NIT-LOW-4=211 + WFONT=12 + FUTURE-TENSE=1024 + F11=143 + D-RECORD=4 + O-SYNTAX=2 + NARTICLEBIT=FL-NO-ARTICLE + CEXITSTR=1 + K-MENU-MANY-WORD=1 + LF=10 + O-LEXPTR=1 + H-UNDER=4 + K-S-NOR=0 + M-B-LOOK=45 + K-W-XCURPOS=5 + K-W-XPOS=1 + M-COLOR=1 + CEXITFLAG=4 + SEARCH-ADJACENT=192 + PARSE-NOT=1 + XADD=0 + PAST-TENSE=512 + PARSER-ERROR-ORPH-S=251 + K-NIT-LOW-2=317 + K-CO2-NOM=536 + F-FIXED=2 + M-F-LOOK=43 + M-BOLD=4 + K-NITROGEN-FACTOR=-3 + F4=136 + M-FLASH=6 + NEXITSTR=0 + P-WORDLEN=4 + PRESENT-TENSE=256 + K-TEMP-HIGH-4=11500 + K-HELIUM-FACTOR=-2 + C-WHITE=9 + K-ART-ANY=3 + K-W-FONTSIZE=13 + K-TEMP-FACTOR=-2 + RIGHT-ARROW=132 + F-UNDO=16 + FEXIT=4 + H-NORMAL=0 + FD-SEARCH?=2 + PARSER-ERROR-NOUND=253 + H-BOLD=2 + CONTBIT=FL-CONTAINER + K-S-WIN=1 + DEXITSTR=2 + S-CLEANUP=4 + K-UP=129 + K-F10=142 + PLURAL-FLAG=16 + XSUB=1 + PARSER-RESULT-AGAIN=3 + XEQUAL?=4 + M-OBJDESC=7 + A-SCRIPT=4 + F-SOUND=128 + NOUN-PHRASE-ENTLENB=4 + APPLE-2C=9 + K-TEMP-LOW-4=8600 + K-TEMP-HIGH-1=10000 + K-TEMP-LOW-2=9300 + FIND-RES-LENGTH=10 + K-W-XSIZE=3 + K-TEMP-LOW-3=9100 + K-W-CRCNT=9 + K-TEMP-LOW-1=9500 + APPLE-2E=2 + FD-NEST?=4 + POSSESSIVE=16384 + F7=139 + S-INIT=1 + K-W-FONT=12 + M-ENTERED=42 + K-OXYGEN-FACTOR=-4 + O-SUBJECT=6 + F-PICTURES=2 + WTOP=0 + D-COMMAND-FILE=1 + FEMALE=FL-FEMALE + S-TEXT=0 + K-OXY-HIGH-4=30600 + K-OXY-HIGH-2=23800 + LEFT-ARROW=131 + K-OXY-HIGH-3=27200 + K-OXY-HIGH-1=20400 + PERSONBIT=FL-PERSON + F-STATUS=4 + INBUF-LENGTH=60 + K-CO2-HIGH-1=22725 + NP-QUANT-NONE=0 + K-CO2-HIGH-3=29218 + PARSE-RESULT-LEN=34 + K-CO2-HIGH-2=25971 + FD-INCLUDE?=1 + K-CO2-HIGH-4=32464 + F-COLOR=64 + ESC=27 + O-LENGTH=1 + CR=13 + CLICK2=253 + PM-HEADER-LEN=1 + PMEM-TYPE-ADJS=1 + INVISIBLE=FL-INVISIBLE + K-MENU-OBJECT=2 + C128=7 + K-ART-THE=2 + DEC-20=1 + C-BLACK=2 + UEXIT=2 + S-STOP=3 + K-W-YCURPOS=4 + WHLIGHT=10 + K-W-YPOS=0 + D-SCREEN-OFF=-1 + WFSIZE=13 + WLEFT=1 + F3=135 + WLCNT=15 + SYN-FIND-PROP=256 + K-OXY-LOW-4=850 + NP-QUANT-BOTH=4 + M-FATAL=2 + M-UNDERLINE=8 + MACINTOSH=3 + NP-LENGTH=9 + O-CLEAR=2 + K-MENU-ONE-WORD=0 + WCRCNT=9 + D-SCREEN-ON=1 + K-RIGHT=132 + O-MOVE=0 + ROOMSBIT=FL-ROOMS + K-Q-SIZE=40 + WCRFUNC=8 + TAB=9 + C-HERE=-1 + SEARCHBIT=FL-SEARCH + K-OXY-LOW-2=1417 + K-W-CRFCN=8 + D-TABLE-OFF=-3 + PARSER-RESULT-FAILED=1 + M-MONOSPACE=16 + NP-QUANT-PLURAL=6 + PMEM-STORE-LENGTH=180 + DEBUGGING-ZIP=1 + O-COMP=3 + NP-QUANT-A=1 + D-SCREEN=1 + K-D-TBL-ON=3 + FEXITFCN=0 + K-F11=143 + PMEM-TYPE-LOCATION=6 + NOUN-PHRASE-HEADER-LEN=3 + PMEM-TYPE-NP=2 + K-D-SCR-ON=1 + K-ART-HE=4 + K-NIT-NOM=1267 + FD-NOTOP?=8 + M-DISPLAY=2 + K-H-BLD=2 + K-TEMP-HIGH-2=10500 + M-SCENE-SETUP=10 + F6=138 + S-START=2 + F12=144 + PARSER-ERROR-ORPH-NP=250 + ADJS-MAX-COUNT=4 + M-LEAVE=4 + K-W-RMARG=7 + K-D-TBL-OFF=-3 + LOW-DIRECTION=52,PROPERTY + M-END=2 + O-AGAIN=4 + F10=142 + K-D-PRT-ON=2 + PAD9=154 + PAD8=153 + PAD7=152 + C-RED=3 + PAD6=151 + K-DOWN=130 + D-PRINTER-ON=2 + PAD5=150 + K-NIT-LOW-1=422 + PAD4=149 + PMEM-TYPE-PP=5 + A-SCROLL=2 + PAD3=148 + DOWN-ARROW=130 + PAD2=147 + PAD1=146 + PAD0=145 + K-SIZ-CAP=1 + M-LOOK=5 + K-NIT-LOW-3=253 + WWIDE=3 + COLLECTIVE-VERB?=0 + OPENBIT=FL-OPEN + ESCAPE=27 + DEXITOBJ=1 + NP-FLAG-MULTI=1 + K-W-MORE=15 + F-OLD=0 + SECOND-PERSON=32 + K-D-PRT-OFF=-2 + XLESS?=6 + K-H-NRM=0 + CLICKM=252 + PARSER-RESULT-DEAD=0 + G-DEBUG=69 + CLICK1=254 + K-AMBIENT-TEMP=3400 + XDIV=3 + O-VERB=0 + CEXIT=5 + SERIAL=0 + +; THE GLOBAL VARIABLES ARE ALL LOCATED HERE + +GLOBAL::.TABLE + .GVAR GL-MOVES=360 + .GVAR GL-NITROGEN-QTY=1267 + .GVAR GL-Q-TBL=T?315,TABLE + .GVAR TLEXV=0 + .GVAR DEMO-VERSION?=0 + .GVAR CURRENT-REDUCTION=0 + .GVAR GL-LIFT-OBJ=0 + .GVAR HERE=RM-SUB-BAY,OBJECT + .GVAR PMEM-STORE-POINTER=PMEM-STORE + .GVAR GL-CRANE-DOWN?=0 + .GVAR GL-NITROGEN-LEAK?=0 + .GVAR GL-OXYGEN-QTY=3400 + .GVAR GL-HELIUM-QTY=9839 + .GVAR GL-SPACE-WIDTH=0 + .GVAR GL-WIRES-CUT=0 + .GVAR GL-INPUT-VERB=0 + .GVAR GL-FONT-X=7 + .GVAR GL-DOOR-DIR=0 + .GVAR GL-PREP-TBL=0 + .GVAR GL-FREE-PTR=T?1607,TABLE + .GVAR P-HER-OBJECT=0,OBJECT + .GVAR SPLITS=0,NUMBER + .GVAR NOW-PRSI=0,FLAG + .GVAR P-PRSI=0 + .GVAR P-THEM-OBJECT=0,OBJECT + .GVAR P-RUNNING=0,TABLE + .GVAR GL-SCORE=0 + .GVAR GL-INPUT-STATE=0 + .GVAR VERBOSITY=1 + .GVAR GL-CATFISH-SPY-MSG?=0 + .GVAR GL-TEMP-MSG=9860 + .GVAR P-ONE-NOUN=0 + .GVAR GL-WIRE-SEQUENCE=0 + .GVAR GL-Q-MAX=0 + .GVAR P-CAN-UNDO=0,NUMBER + .GVAR GL-WATER-LEVEL=0 + .GVAR P-NUMBER=0,NUMBER + .GVAR GL-SCR-WID=79,NUMBER + .GVAR PRSS=0,OBJECT + .GVAR GL-SAFE-NUM=0 + .GVAR GL-NOUN-TBL=0 + .GVAR PRSQ=0 + .GVAR PRSO=0,OBJECT + .GVAR IDEBUG=0,FLAG + .GVAR GL-MENU-NUM=0 + .GVAR PRSI=0,OBJECT + .GVAR P-WON=0 + .GVAR PRSA=0,VERB + .GVAR GL-INPUT-PREP2=0 + .GVAR GL-N-LOOP=0 + .GVAR GL-INPUT-TIMEOUT=0 + .GVAR P-WORD-NUMBER=0,NUMBER + .GVAR GL-SCRUBBERS-ON=0 + .GVAR P-CONT=0,NUMBER + .GVAR P-WORDS-AGAIN=0,NUMBER + .GVAR GL-CRANE-FALLING?=0 + .GVAR P-OLEN=0,NUMBER + .GVAR GL-CO2-QTY=536 + .GVAR OBJ-SWAP=0,FLAG + .GVAR GL-LOC-TRAIL=T?115,TABLE + .GVAR LAST-PSEUDO-LOC=0,OBJECT + .GVAR CLOCK-WAIT=0,FLAG + .GVAR P-DIRECTION=0,NUMBER + .GVAR GL-COFFEY-SHOOT=0 + .GVAR PMEM-STORE-WARN=50,NUMBER + .GVAR GL-FALLING-INTO-TRENCH?=0 + .GVAR PMEM-WORDS-USED=0 + .GVAR P-HIM-OBJECT=0,OBJECT + .GVAR OTLEXV=0 + .GVAR PARSE-SENTENCE-ACTIVATION=0 + .GVAR GL-CO2-MSG=536 + .GVAR P-NOT-HERE=0,NUMBER + .GVAR GL-NITROGEN-MSG=1267 + .GVAR ERROR-PRIORITY=0,NUMBER + .GVAR GL-CAB-DOCKED?=0 + .GVAR GL-HEATERS-ON=0 + .GVAR GL-INPUT-PREP1=0 + .GVAR GL-MOUSE-X=0,NUMBER + .GVAR GL-RETURN2-DONE?=0 + .GVAR PARSER-RESULT=0 + .GVAR P-RESPONDED=0,FLAG + .GVAR P-PRSA-WORD=0 + .GVAR CLOCKER-RUNNING=2,NUMBER + .GVAR GL-ITEM-NUM=0 + .GVAR GL-PUPPY=0,OBJECT + .GVAR SEARCH-FLAGS=0,NUMBER + .GVAR P-PRSO=0 + .GVAR OHERE=0,OBJECT + .GVAR GL-B-COLOR=1 + .GVAR P-WALK-DIR=0 + .GVAR GL-F-COLOR=1 + .GVAR LIT=0,OBJECT + .GVAR GL-RETURN1-DONE?=0 + .GVAR WINNER=PLAYER,OBJECT + .GVAR ERROR-STRING=0,STRING + .GVAR GL-CORRIDOR-BLOCKED?=1 + .GVAR GL-FONT-Y=10 + .GVAR GL-DEEPCORE-TEMP=9000 + .GVAR GL-SL-HERE=0,OBJECT + .GVAR P-IT-OBJECT=0,OBJECT + .GVAR P-OFLAG=0,NUMBER + .GVAR GL-BATTERY-LEAK=0 + .GVAR OPRSO=0 + .GVAR GL-NEW-TIME=0 + .GVAR GL-VERB-TBL=PT?8307,TABLE + .GVAR PMEM-STORE-WORDS=PMEM-STORE-LENGTH,NUMBER + .GVAR PRSO-NP=0 + .GVAR GL-KLAXON-ON=0 + .GVAR GL-PLAYER-TEMP=9860 + .GVAR GL-COLOR-NOTE=0 + .GVAR PRSI-NP=0 + .GVAR GL-INPUT-WINNER=CH-PLAYER + .GVAR GL-DETONATOR-TIME=10 + .GVAR P-LEN=0,NUMBER + .GVAR P-MULT=0 + .GVAR GL-MOUSE-Y=0,NUMBER + .GVAR P-DBUG=0,FLAG + .GVAR QCONTEXT=0,OBJECT + .GVAR GL-OXYGEN-MSG=3400 + .GVAR GL-WATER-PUMP-ON=0 + .GVAR GL-CLK-RUN=0,FLAG + .GVAR ACTIONS=ATBL,TABLE + .GVAR PREACTIONS=PATBL,TABLE + .ENDT + +GLOEND:: + + +; PROPERTY DEFAULTS AND OBJECTS ARE DEFINED HERE + +.ALIGN 2 + +OBJECT::.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 ;(P?SCORE) + 0 ;(P?CAPACITY) + 0 ;(P?GENERIC) + 0 ;(P?OWNER) + 0 ;(P?SIZE) + 0 ;(P?GLOBAL) + 0 ;(P?ADJECTIVE) + 0 ;(P?MENU) + 0 ;(P?THINGS) + 0 ;(P?CONTFCN) + 0 ;(P?ACTION) + 0 ;(P?ADJACENT) + 0 ;(P?SYNONYM) + 0 ;(P?OUT) + 0 ;(P?IN) + 0 ;(P?DOWN) + 0 ;(P?UP) + 0 ;(P?WEST) + 0 ;(P?EAST) + 0 ;(P?SOUTH) + 0 ;(P?NORTH) + 0 ;(P?PORT) + 0 ;(P?AFT) + 0 ;(P?STARBOARD) + 0 ;(P?FORE) + .OBJECT RM-WALDORF,0,FX?FL-LIGHTED+FX?FL-INDOORS,FX?FL-NO-ARTICLE,ROOMS,RM-PANTRY,0,T?RM-WALDORF + .OBJECT RM-PT-OBS-DECK,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-PT-BATTERY-ROOM,0,T?RM-PT-OBS-DECK + .OBJECT RM-DRILL-ROOM,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-TOOL-PUSHER-OFFICE,TH-DETONATOR,T?RM-DRILL-ROOM + .OBJECT RM-COMPRESSION-CHAMBER,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-SUB-BAY,TH-WINDOW-BENCH,T?RM-COMPRESSION-CHAMBER + .OBJECT RM-INFIRMARY,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LOUNGE,0,T?RM-INFIRMARY + .OBJECT RM-OCEAN-NORTH,0,FX?FL-WATER+FX?FL-SURFACE+FX?FL-LIGHTED,0,ROOMS,RM-UNDER-MOONPOOL,0,T?RM-OCEAN-NORTH + .OBJECT RM-SWAMP,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-PERSONAL-STORAGE-2,0,T?RM-SWAMP + .OBJECT RM-LADDER-C2,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-ZOOTOWN,TH-SB-BILGE-BUTTON,T?RM-LADDER-C2 + .OBJECT RM-LADDER-C3,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-TAPE-LIBRARY,0,T?RM-LADDER-C3 + .OBJECT RM-LADDER-C1,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-FRESH-WATER-STORAGE,0,T?RM-LADDER-C1 + .OBJECT RM-LADDER-A2,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-CORRIDOR,0,T?RM-LADDER-A2 + .OBJECT RM-LADDER-A3,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LADDER-C1,0,T?RM-LADDER-A3 + .OBJECT RM-LADDER-A1,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LADDER-C2,0,T?RM-LADDER-A1 + .OBJECT RM-ATTACK-CENTER,0,FX?FL-WATER+FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-MISSILE-ROOM,0,T?RM-ATTACK-CENTER + .OBJECT RM-SONAR-ROOM,0,FX?FL-WATER+FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-ATTACK-CENTER,0,T?RM-SONAR-ROOM + .OBJECT RM-MIDSHIP-HATCH,0,FX?FL-WATER+FX?FL-LIGHTED,0,ROOMS,RM-COMMAND-MODULE,0,T?RM-MIDSHIP-HATCH + .OBJECT RM-TOOL-PUSHER-OFFICE,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LADDER-D1,0,T?RM-TOOL-PUSHER-OFFICE + .OBJECT RM-SB-HEAD,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-SB-BATTERY-ROOM,0,T?RM-SB-HEAD + .OBJECT RM-SB-LIFE-SUPPORT,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-SB-HEAD,0,T?RM-SB-LIFE-SUPPORT + .OBJECT RM-TROUGH-LIP,0,FX?FL-WATER+FX?FL-LIGHTED,0,ROOMS,RM-OCEAN-WEST,0,T?RM-TROUGH-LIP + .OBJECT RM-PT-HEAD,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LADDER-A3,0,T?RM-PT-HEAD + .OBJECT RM-TORPEDO-ROOM,0,FX?FL-WATER+FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-BOW,0,T?RM-TORPEDO-ROOM + .OBJECT RM-MISSILE-ROOM,0,FX?FL-WATER+FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-ENGINE-ROOM,TH-MISSILE-ACCESS-KEY,T?RM-MISSILE-ROOM + .OBJECT RM-SB-BATTERY-ROOM,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LADDER-B1,0,T?RM-SB-BATTERY-ROOM + .OBJECT RM-PT-LIFE-SUPPORT,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LAUNDRY,0,T?RM-PT-LIFE-SUPPORT + .OBJECT RM-COMPUTER-CENTER,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-SB-OBS-DECK,0,T?RM-COMPUTER-CENTER + .OBJECT RM-TAPE-LIBRARY,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LAB,0,T?RM-TAPE-LIBRARY + .OBJECT RM-ELECTRONICS-SHOP,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-COMPUTER-CENTER,TH-ELEC-SHOP-DRAWER,T?RM-ELECTRONICS-SHOP + .OBJECT RM-PUMP-ROOM,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-SB-LIFE-SUPPORT,0,T?RM-PUMP-ROOM + .OBJECT RM-ALIEN-CHAMBER,FX?FL-INSIDE,FX?FL-LIGHTED+FX?FL-WATER,0,ROOMS,RM-TRENCH-BOTTOM,CH-ALIEN,T?RM-ALIEN-CHAMBER + .OBJECT RM-COMMAND-MODULE,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LADDER-C3,TH-COMMAND-CHAIR,T?RM-COMMAND-MODULE + .OBJECT RM-BOW,0,FX?FL-WATER+FX?FL-LIGHTED,0,ROOMS,RM-MISSILE-HATCH,0,T?RM-BOW + .OBJECT RM-OCEAN-WEST,0,FX?FL-WATER+FX?FL-SURFACE+FX?FL-LIGHTED,0,ROOMS,RM-OCEAN-SOUTH,0,T?RM-OCEAN-WEST + .OBJECT RM-SUB-BAY,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,0,TH-DIVE-LOCKER,T?RM-SUB-BAY + .OBJECT RM-RECREATION-ROOM,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-DIVE-GEAR-STORAGE,TH-CYCLE,T?RM-RECREATION-ROOM + .OBJECT RM-FRESH-WATER-STORAGE,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-PUMP-ROOM,0,T?RM-FRESH-WATER-STORAGE + .OBJECT RM-TRENCH-BOTTOM,0,FX?FL-LIGHTED+FX?FL-WATER,0,ROOMS,RM-TOOL-ROOM,TH-ALIEN-SHIP,T?RM-TRENCH-BOTTOM + .OBJECT RM-CORRIDOR,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-GAS-MIX-ROOM,TH-PANEL,T?RM-CORRIDOR + .OBJECT RM-DIVE-GEAR-STORAGE,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LADDER-D2,TH-BIG-LOCKER,T?RM-DIVE-GEAR-STORAGE + .OBJECT RM-LADDER-D2,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-PT-OBS-DECK,TH-PT-BILGE-BUTTON,T?RM-LADDER-D2 + .OBJECT RM-LADDER-D3,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-SWAMP,0,T?RM-LADDER-D3 + .OBJECT RM-LADDER-D1,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-COMPRESSOR-ROOM,0,T?RM-LADDER-D1 + .OBJECT RM-UNDER-MOONPOOL,0,FX?FL-WATER+FX?FL-SURFACE+FX?FL-LIGHTED,0,ROOMS,RM-CAPTAINS-ROOM,0,T?RM-UNDER-MOONPOOL + .OBJECT RM-PERSONAL-STORAGE-1,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-WALDORF,0,T?RM-PERSONAL-STORAGE-1 + .OBJECT RM-LADDER-B2,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-RECREATION-ROOM,TH-HYDRAULIC-HOSE,T?RM-LADDER-B2 + .OBJECT RM-LADDER-B3,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LADDER-D3,0,T?RM-LADDER-B3 + .OBJECT RM-LADDER-B1,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-DRILL-ROOM,0,T?RM-LADDER-B1 + .OBJECT RM-ZOOTOWN,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-PERSONAL-STORAGE-1,0,T?RM-ZOOTOWN + .OBJECT RM-OCEAN-SOUTH,0,FX?FL-WATER+FX?FL-SURFACE+FX?FL-LIGHTED,0,ROOMS,RM-OCEAN-NORTH,0,T?RM-OCEAN-SOUTH + .OBJECT RM-GALLEY,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-MESS-HALL,0,T?RM-GALLEY + .OBJECT RM-LOUNGE,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LADDER-A2,0,T?RM-LOUNGE + .OBJECT RM-PT-BATTERY-ROOM,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-TROUGH-LIP,TH-POWERCEL,T?RM-PT-BATTERY-ROOM + .OBJECT RM-MOTEL-QUICK,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-PT-HEAD,0,T?RM-MOTEL-QUICK + .OBJECT RM-SB-OBS-DECK,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LADDER-B3,0,T?RM-SB-OBS-DECK + .OBJECT RM-MISSILE-HATCH,0,FX?FL-WATER+FX?FL-LIGHTED,0,ROOMS,RM-MIDSHIP-HATCH,TH-MISSILE,T?RM-MISSILE-HATCH + .OBJECT RM-LAB,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-ELECTRONICS-SHOP,0,T?RM-LAB + .OBJECT RM-MESS-HALL,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-INFIRMARY,0,T?RM-MESS-HALL + .OBJECT RM-CAPTAINS-ROOM,0,FX?FL-WATER+FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-SUB-CORRIDOR,TH-SAFE,T?RM-CAPTAINS-ROOM + .OBJECT RM-TRI-MIX-STORAGE,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LADDER-B2,TH-HELIUM-TANK,T?RM-TRI-MIX-STORAGE + .OBJECT RM-LAUNDRY,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-LADDER-A1,TH-DRYER,T?RM-LAUNDRY + .OBJECT RM-CAB-THREE,0,FX?FL-VEHICLE+FX?FL-LIGHTED+FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPEN+FX?FL-NO-ARTICLE,ROOMS,RM-COMPRESSION-CHAMBER,TH-CAB-HOOKAH,T?RM-CAB-THREE + .OBJECT RM-ENGINE-ROOM,0,FX?FL-WATER+FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-TORPEDO-ROOM,0,T?RM-ENGINE-ROOM + .OBJECT RM-PANTRY,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-GALLEY,TH-HOOK-2,T?RM-PANTRY + .OBJECT RM-COMM-ROOM,0,FX?FL-WATER+FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-SONAR-ROOM,0,T?RM-COMM-ROOM + .OBJECT RM-GAS-MIX-ROOM,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-CAB-THREE,0,T?RM-GAS-MIX-ROOM + .OBJECT RM-SUB-CORRIDOR,0,FX?FL-WATER+FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-COMM-ROOM,0,T?RM-SUB-CORRIDOR + .OBJECT RM-COMPRESSOR-ROOM,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-PT-LIFE-SUPPORT,TH-COMPRESSOR,T?RM-COMPRESSOR-ROOM + .OBJECT RM-TOOL-ROOM,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-TRI-MIX-STORAGE,TH-BIN,T?RM-TOOL-ROOM + .OBJECT RM-PERSONAL-STORAGE-2,0,FX?FL-LIGHTED+FX?FL-INDOORS,0,ROOMS,RM-MOTEL-QUICK,TH-CATFISH-LOCKER,T?RM-PERSONAL-STORAGE-2 + .OBJECT LG-FLOOD-DOOR,0,FX?FL-DOOR,FX?FL-OPENABLE+FX?FL-OPEN,LOCAL-GLOBALS,LG-DGS-DOOR,0,T?LG-FLOOD-DOOR + .OBJECT TH-WINDOW-BENCH,0,FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPENABLE,RM-COMPRESSION-CHAMBER,0,TH-RED-LEVER,T?TH-WINDOW-BENCH + .OBJECT TH-RED-CABLE,0,FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPEN+FX?FL-NO-DESC,TH-ARC-WELDER,0,0,T?TH-RED-CABLE + .OBJECT LG-DGS-DOOR,0,FX?FL-DOOR,FX?FL-OPENABLE+FX?FL-OPEN,LOCAL-GLOBALS,LG-BUCKLED-DOOR,0,T?LG-DGS-DOOR + .OBJECT TH-ORANGE-WIRE,0,0,0,TH-MISSILE-PANEL,TH-YELLOW-WIRE,0,T?TH-ORANGE-WIRE + .OBJECT TH-COMMAND-CHAIR,0,0,FX?FL-NO-DESC,RM-COMMAND-MODULE,TH-MONITORS,0,T?TH-COMMAND-CHAIR + .OBJECT TH-WELDER-SWITCH,0,0,FX?FL-NO-DESC,TH-ARC-WELDER,TH-BLACK-CABLE,0,T?TH-WELDER-SWITCH + .OBJECT TH-DIVE-LOCKER,0,FX?FL-TRY-TAKE+FX?FL-LOCKED+FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPENABLE,RM-SUB-BAY,TH-HOOK-1,TH-ELECTRONIC-LOCK,T?TH-DIVE-LOCKER + .OBJECT TH-WEIGHTS,0,0,FX?FL-TAKEABLE,TH-BARBELL,0,0,T?TH-WEIGHTS + .OBJECT TH-DESCRAMBLER-CONTROL-BOX,0,0,0,TH-BIN,0,0,T?TH-DESCRAMBLER-CONTROL-BOX + .OBJECT TH-OXYGEN-TANK,0,FX?FL-SURFACE,FX?FL-SEARCH+FX?FL-NO-DESC,RM-TRI-MIX-STORAGE,TH-NIT-STOPPER,TH-OXY-VALVE,T?TH-OXYGEN-TANK + .OBJECT INTQUOTE,0,0,0,GLOBAL-OBJECTS,INTDIR,0,T?INTQUOTE + .OBJECT THEM,FX?FL-PLURAL,0,FX?FL-NO-ARTICLE,GLOBAL-OBJECTS,IT,0,T?THEM + .OBJECT TH-LIFT-BENCH,0,FX?FL-SURFACE,0,RM-RECREATION-ROOM,TH-BARBELL,0,T?TH-LIFT-BENCH + .OBJECT TH-CAB-HOOKAH,0,0,0,RM-CAB-THREE,0,0,T?TH-CAB-HOOKAH + .OBJECT CH-ALIEN,0,0,FX?FL-SEARCH+FX?FL-PERSON+FX?FL-OPEN+FX?FL-ALIVE,RM-ALIEN-CHAMBER,TH-FUSCHIA-BUTTON,0,T?CH-ALIEN + .OBJECT TH-NIT-STOPPER,FX?FL-INVISIBLE,0,FX?FL-TAKEABLE+FX?FL-NO-DESC,RM-TRI-MIX-STORAGE,TH-NITROGEN-TANK,0,T?TH-NIT-STOPPER + .OBJECT CH-SEALS,0,0,0,GENERIC-OBJECTS,0,0,T?CH-SEALS + .OBJECT HER,0,0,FX?FL-NO-ARTICLE,GLOBAL-OBJECTS,YOU,0,T?HER + .OBJECT TH-MISSILE-PANEL,0,FX?FL-LOCKED+FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPENABLE,TH-MISSILE,TH-MISSILE-TIMER,TH-WHITE-WIRE,T?TH-MISSILE-PANEL + .OBJECT TH-GREEN-WIRE,0,0,0,TH-MISSILE-PANEL,TH-BLUE-WIRE,0,T?TH-GREEN-WIRE + .OBJECT TH-MISSILE-ACCESS-KEY,0,FX?FL-KEY,FX?FL-TAKEABLE,RM-MISSILE-ROOM,0,0,T?TH-MISSILE-ACCESS-KEY + .OBJECT TH-ELEC-SHOP-DRAWER,0,FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPENABLE,RM-ELECTRONICS-SHOP,0,TH-WIRE-CUTTERS,T?TH-ELEC-SHOP-DRAWER + .OBJECT TH-LIFT-BAG,0,FX?FL-SURFACE,FX?FL-TAKEABLE+FX?FL-SEARCH,TH-HOOK-1,0,TH-CO2-CANNISTER,T?TH-LIFT-BAG + .OBJECT TH-PT-BILGE-BUTTON,0,0,0,RM-LADDER-D2,0,0,T?TH-PT-BILGE-BUTTON + .OBJECT LG-TROUGH,0,0,0,LOCAL-GLOBALS,LG-DEEPCORE,0,T?LG-TROUGH + .OBJECT TH-DRY-SUIT,0,FX?FL-CONTAINER+FX?FL-CLOTHING,FX?FL-TAKEABLE+FX?FL-SEARCH+FX?FL-OPEN,TH-BUD-GEAR-LOCKER,0,TH-HELMET,T?TH-DRY-SUIT + .OBJECT TH-OXYGEN-CYLINDER,0,0,FX?FL-NO-DESC,RM-SUB-BAY,TH-WATER-HOSE,0,T?TH-OXYGEN-CYLINDER + .OBJECT TH-DRYER,0,FX?FL-CONTAINER,FX?FL-TAKEABLE+FX?FL-SEARCH+FX?FL-OPENABLE,RM-LAUNDRY,0,0,T?TH-DRYER + .OBJECT TH-KNIFE,0,0,FX?FL-TAKEABLE+FX?FL-KNIFE,CH-PLAYER,TH-THERMOMETER,0,T?TH-KNIFE + .OBJECT IT,FX?FL-VOWEL,0,FX?FL-NO-ARTICLE,GLOBAL-OBJECTS,GLOBAL-HERE,0,T?IT + .OBJECT TH-BARBELL,0,FX?FL-SURFACE,FX?FL-TAKEABLE,RM-RECREATION-ROOM,0,TH-WEIGHTS,T?TH-BARBELL + .OBJECT LG-WALL,0,0,0,LOCAL-GLOBALS,LG-FLOOD-DOOR,0,T?LG-WALL + .OBJECT TH-PLASTIC-CARD,0,0,FX?FL-TAKEABLE+FX?FL-READABLE,TH-SAFE,0,0,T?TH-PLASTIC-CARD + .OBJECT TH-HOOK-2,0,FX?FL-SURFACE,0,RM-PANTRY,0,TH-GAME-BAG,T?TH-HOOK-2 + .OBJECT TH-STEEL-BOX,0,FX?FL-LOCKED+FX?FL-CONTAINER,FX?FL-OPENABLE+FX?FL-TAKEABLE+FX?FL-SEARCH,TH-CATFISH-LOCKER,0,TH-DISCHARGE,T?TH-STEEL-BOX + .OBJECT TH-WELDING-ROD,0,0,FX?FL-TAKEABLE,0,0,0,T?TH-WELDING-ROD + .OBJECT CH-HIPPY,0,0,FX?FL-SEARCH+FX?FL-PERSON+FX?FL-OPEN+FX?FL-NO-DESC+FX?FL-NO-ARTICLE+FX?FL-ALIVE,RM-CORRIDOR,CH-ONE-NIGHT,TH-DEVICE,T?CH-HIPPY + .OBJECT TH-HYDRAULIC-FLUID,0,0,0,0,0,0,T?TH-HYDRAULIC-FLUID + .OBJECT TH-WATER-HOSE,0,FX?FL-CONTAINER,FX?FL-TAKEABLE+FX?FL-SEARCH+FX?FL-OPEN,RM-SUB-BAY,TH-MOON-POOL,TH-NOZZLE,T?TH-WATER-HOSE + .OBJECT TH-HANDS,FX?FL-WEAPON+FX?FL-TOOL+FX?FL-PLURAL+FX?FL-BODY-PART,FX?FL-YOUR,FX?FL-BY-HAND,GLOBAL-OBJECTS,TH-HEAD,0,T?TH-HANDS + .OBJECT CH-CATFISH,0,0,FX?FL-SEARCH+FX?FL-PERSON+FX?FL-OPEN+FX?FL-NO-ARTICLE+FX?FL-ALIVE,RM-COMMAND-MODULE,CH-LINDSEY,0,T?CH-CATFISH + .OBJECT TH-MAGNET,0,FX?FL-SURFACE,FX?FL-TAKEABLE+FX?FL-SEARCH,TH-BIN,TH-DESCRAMBLER-CONTROL-BOX,0,T?TH-MAGNET + .OBJECT PSEUDO-OBJECT,0,0,FX?FL-NO-ARTICLE+FX?FL-HAS-SDESC+FX?FL-HAS-DESCFCN,LOCAL-GLOBALS,0,0,T?PSEUDO-OBJECT + .OBJECT TH-BIN,0,FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPENABLE+FX?FL-NO-DESC,RM-TOOL-ROOM,0,TH-MAGNET,T?TH-BIN + .OBJECT TH-HYDRAULIC-HOSE,0,0,0,RM-LADDER-B2,0,0,T?TH-HYDRAULIC-HOSE + .OBJECT TH-PURPLE-BUTTON,0,0,FX?FL-NO-DESC,TH-ALIEN-SHIP,0,0,T?TH-PURPLE-BUTTON + .OBJECT TH-BUD-GEAR-LOCKER,0,FX?FL-YOUR+FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPENABLE,RM-DIVE-GEAR-STORAGE,0,TH-DRY-SUIT,T?TH-BUD-GEAR-LOCKER + .OBJECT TH-THERMOMETER,0,0,FX?FL-TAKEABLE+FX?FL-READABLE,CH-PLAYER,0,0,T?TH-THERMOMETER + .OBJECT NOT-HERE-OBJECT,0,0,0,0,0,0,T?NOT-HERE-OBJECT + .OBJECT TH-UFO,0,0,0,GENERIC-OBJECTS,TH-FLATBED,0,T?TH-UFO + .OBJECT ROOMS,0,0,FX?FL-NO-ARTICLE,0,0,RM-ALIEN-CHAMBER,T?ROOMS + .OBJECT TH-SAFE,0,FX?FL-LOCKED+FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPENABLE+FX?FL-NO-DESC,RM-CAPTAINS-ROOM,TH-PHOTOGRAPH,TH-PLASTIC-CARD,T?TH-SAFE + .OBJECT TH-ARC-WELDER,0,FX?FL-SURFACE,FX?FL-TAKEABLE+FX?FL-SEARCH,0,0,TH-WELDER-CORD,T?TH-ARC-WELDER + .OBJECT TH-NOZZLE,0,0,0,TH-WATER-HOSE,0,0,T?TH-NOZZLE + .OBJECT TH-HELIUM-TANK,0,FX?FL-SURFACE,FX?FL-SEARCH+FX?FL-NO-DESC,RM-TRI-MIX-STORAGE,TH-OXYGEN-TANK,TH-HEL-VALVE,T?TH-HELIUM-TANK + .OBJECT CH-COFFEY,0,0,FX?FL-SEARCH+FX?FL-PERSON+FX?FL-OPEN+FX?FL-NO-DESC+FX?FL-NO-ARTICLE+FX?FL-ALIVE,RM-CORRIDOR,0,TH-GUN,T?CH-COFFEY + .OBJECT TH-CYCLE,0,FX?FL-SURFACE,0,RM-RECREATION-ROOM,TH-TREADMILL,0,T?TH-CYCLE + .OBJECT TH-RED-BUTTON,0,0,FX?FL-NO-DESC,TH-CO2-CANNISTER,0,0,T?TH-RED-BUTTON + .OBJECT TH-S-BILGE-BUTT,0,0,0,0,0,0,T?TH-S-BILGE-BUTT + .OBJECT TH-OXY-VALVE,0,FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPEN+FX?FL-NO-DESC,TH-OXYGEN-TANK,0,TH-OXY-STOPPER,T?TH-OXY-VALVE + .OBJECT TH-GAME-BAG,0,FX?FL-CONTAINER+FX?FL-SURFACE,FX?FL-TAKEABLE+FX?FL-SEARCH,TH-HOOK-2,0,0,T?TH-GAME-BAG + .OBJECT TH-SB-BILGE-BUTTON,0,0,0,RM-LADDER-C2,0,0,T?TH-SB-BILGE-BUTTON + .OBJECT TH-FIRE,0,FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPEN,0,0,0,T?TH-FIRE + .OBJECT TH-SKY,0,0,FX?FL-HAS-SDESC,GLOBAL-OBJECTS,TH-GROUND,0,T?TH-SKY + .OBJECT LG-OUTLET,0,0,0,LOCAL-GLOBALS,LG-MONTANA,0,T?LG-OUTLET + .OBJECT GENERIC-OBJECTS,0,0,0,0,0,TH-UFO,T?GENERIC-OBJECTS + .OBJECT TH-DETONATOR,0,0,FX?FL-TAKEABLE,RM-DRILL-ROOM,TH-PLASTIQUE,0,T?TH-DETONATOR + .OBJECT TH-BLACK-CABLE,0,0,FX?FL-NO-DESC,TH-ARC-WELDER,TH-RED-CABLE,0,T?TH-BLACK-CABLE + .OBJECT TH-CRACK,0,0,0,0,0,0,T?TH-CRACK + .OBJECT YOU,0,0,0,GLOBAL-OBJECTS,INTNUM,0,T?YOU + .OBJECT TH-FACEPLATE,0,FX?FL-TRANSPARENT,FX?FL-OPENABLE+FX?FL-OPEN+FX?FL-NO-DESC,TH-DRY-SUIT,0,0,T?TH-FACEPLATE + .OBJECT TH-TIME,0,0,0,GENERIC-OBJECTS,CH-SEALS,0,T?TH-TIME + .OBJECT HIM,0,0,FX?FL-NO-ARTICLE,GLOBAL-OBJECTS,HER,0,T?HIM + .OBJECT TH-FLATBED,0,0,FX?FL-NO-ARTICLE,GENERIC-OBJECTS,TH-TIME,0,T?TH-FLATBED + .OBJECT TH-WELDER-CORD,0,0,FX?FL-NO-DESC,TH-ARC-WELDER,TH-WELDER-SWITCH,0,T?TH-WELDER-CORD + .OBJECT TH-HEAD,FX?FL-BODY-PART,FX?FL-YOUR,0,GLOBAL-OBJECTS,TH-PLAYER-BODY,0,T?TH-HEAD + .OBJECT TH-POWERCEL,0,0,0,RM-PT-BATTERY-ROOM,0,0,T?TH-POWERCEL + .OBJECT TH-BIG-LOCKER,0,FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPENABLE,RM-DIVE-GEAR-STORAGE,TH-BUD-GEAR-LOCKER,0,T?TH-BIG-LOCKER + .OBJECT TH-HUMAN-BODY,0,0,FX?FL-NO-ARTICLE+FX?FL-HAS-SDESC,GLOBAL-OBJECTS,HIM,0,T?TH-HUMAN-BODY + .OBJECT TH-DISCHARGE,0,0,FX?FL-TAKEABLE+FX?FL-SEARCH,TH-STEEL-BOX,TH-PASSPORT,0,T?TH-DISCHARGE + .OBJECT TH-WIRES,0,0,FX?FL-NO-DESC,TH-MISSILE-PANEL,0,0,T?TH-WIRES + .OBJECT TH-PLASTIQUE,0,FX?FL-SURFACE,FX?FL-SEARCH+FX?FL-TAKEABLE,RM-DRILL-ROOM,0,0,T?TH-PLASTIQUE + .OBJECT TH-RED-WIRE,0,0,0,TH-MISSILE-PANEL,TH-WIRES,0,T?TH-RED-WIRE + .OBJECT INTNUM,0,0,0,GLOBAL-OBJECTS,THEM,0,T?INTNUM + .OBJECT TH-POOL-OF-WATER,0,0,0,0,0,0,T?TH-POOL-OF-WATER + .OBJECT TH-MOON-POOL,0,FX?FL-WATER+FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPEN,RM-SUB-BAY,0,0,T?TH-MOON-POOL + .OBJECT TH-NIT-VALVE,0,FX?FL-ON+FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPEN+FX?FL-NO-DESC,TH-NITROGEN-TANK,0,0,T?TH-NIT-VALVE + .OBJECT TH-HEL-VALVE,0,FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPEN+FX?FL-NO-DESC,TH-HELIUM-TANK,0,TH-HEL-STOPPER,T?TH-HEL-VALVE + .OBJECT TH-DEVICE,0,0,0,CH-HIPPY,0,0,T?TH-DEVICE + .OBJECT TH-GROUND,0,FX?FL-SURFACE,FX?FL-SEARCH+FX?FL-HAS-SDESC,GLOBAL-OBJECTS,TH-HANDS,0,T?TH-GROUND + .OBJECT TH-CO2-CANNISTER,0,FX?FL-SURFACE,FX?FL-SEARCH+FX?FL-NO-DESC,TH-LIFT-BAG,0,TH-RED-BUTTON,T?TH-CO2-CANNISTER + .OBJECT TH-WIRE-CUTTERS,0,0,FX?FL-KNIFE+FX?FL-TAKEABLE,TH-ELEC-SHOP-DRAWER,0,0,T?TH-WIRE-CUTTERS + .OBJECT CH-LINDSEY,0,FX?FL-FEMALE,FX?FL-SEARCH+FX?FL-PERSON+FX?FL-OPEN+FX?FL-NO-ARTICLE+FX?FL-ALIVE,RM-COMMAND-MODULE,CH-PLAYER,0,T?CH-LINDSEY + .OBJECT TH-CLUE-PAPER,0,0,FX?FL-READABLE+FX?FL-TAKEABLE,TH-CATFISH-LOCKER,TH-STEEL-BOX,0,T?TH-CLUE-PAPER + .OBJECT TH-COMPRESSOR,0,FX?FL-ON,0,RM-COMPRESSOR-ROOM,0,0,T?TH-COMPRESSOR + .OBJECT TH-PLAYER-BODY,FX?FL-BODY-PART,FX?FL-YOUR,0,GLOBAL-OBJECTS,TH-HUMAN-BODY,0,T?TH-PLAYER-BODY + .OBJECT TH-OXY-STOPPER,0,FX?FL-TRY-TAKE,FX?FL-NO-DESC,TH-OXY-VALVE,0,0,T?TH-OXY-STOPPER + .OBJECT TH-MISSILE,0,FX?FL-SURFACE,FX?FL-SEARCH+FX?FL-NO-DESC,RM-MISSILE-HATCH,0,TH-MISSILE-PANEL,T?TH-MISSILE + .OBJECT INTPP,0,0,0,GLOBAL-OBJECTS,INTADJ,0,T?INTPP + .OBJECT TH-FUSCHIA-BUTTON,0,0,FX?FL-NO-DESC,RM-ALIEN-CHAMBER,0,0,T?TH-FUSCHIA-BUTTON + .OBJECT GLOBAL-HERE,0,0,FX?FL-NO-ARTICLE,GLOBAL-OBJECTS,LOCAL-GLOBALS,0,T?GLOBAL-HERE + .OBJECT TH-HELMET,0,FX?FL-CONTAINER,FX?FL-SEARCH+FX?FL-OPEN+FX?FL-NO-DESC,TH-DRY-SUIT,TH-FACEPLATE,0,T?TH-HELMET + .OBJECT TH-BLUE-WIRE,0,0,0,TH-MISSILE-PANEL,TH-RED-WIRE,0,T?TH-BLUE-WIRE + .OBJECT TH-TREADMILL,0,FX?FL-SURFACE,0,RM-RECREATION-ROOM,TH-LIFT-BENCH,0,T?TH-TREADMILL + .OBJECT LG-DEEPCORE,0,0,0,LOCAL-GLOBALS,LG-WALL,0,T?LG-DEEPCORE + .OBJECT CH-PLAYER,0,0,FX?FL-TOUCHED+FX?FL-SEEN+FX?FL-SEARCH+FX?FL-PERSON+FX?FL-OPEN+FX?FL-NO-ARTICLE+FX?FL-NO-DESC+FX?FL-ALIVE,RM-COMMAND-MODULE,0,TH-KNIFE,T?CH-PLAYER + .OBJECT LG-MIDSHIP-HATCH,0,FX?FL-DOOR,0,LOCAL-GLOBALS,LG-CHAMBER-DOOR,0,T?LG-MIDSHIP-HATCH + .OBJECT GLOBAL-OBJECTS,FX?FL-WORN+FX?FL-WEAPON+FX?FL-VOWEL+FX?FL-TOOL+FX?FL-PLURAL+FX?FL-NO-ALL+FX?FL-LAMP+FX?FL-INVISIBLE+FX?FL-HAS-LDESC+FX?FL-COLLECTIVE+FX?FL-BURNABLE+FX?FL-BROKEN+FX?FL-BODY-PART+FX?FL-AUTO-OPEN+FX?FL-AUTO-ENTER,FX?FL-YOUR+FX?FL-WATER+FX?FL-VEHICLE+FX?FL-TRY-TAKE+FX?FL-TRANSPARENT+FX?FL-SURFACE+FX?FL-ON+FX?FL-LOCKED+FX?FL-LIGHTED+FX?FL-KEY+FX?FL-INDOORS+FX?FL-FEMALE+FX?FL-DOOR+FX?FL-CONTAINER+FX?FL-CLOTHING+FX?FL-ASLEEP,FX?FL-TOUCHED+FX?FL-TAKEABLE+FX?FL-SEEN+FX?FL-SEARCH+FX?FL-READABLE+FX?FL-PERSON+FX?FL-OPENABLE+FX?FL-OPEN+FX?FL-NO-DESC+FX?FL-NO-ARTICLE+FX?FL-KNIFE+FX?FL-HAS-SDESC+FX?FL-BY-HAND+FX?FL-ALIVE,0,0,TH-SKY,T?GLOBAL-OBJECTS + .OBJECT TH-CATFISH-LOCKER,0,FX?FL-CONTAINER,FX?FL-OPENABLE+FX?FL-TAKEABLE+FX?FL-SEARCH,RM-PERSONAL-STORAGE-2,0,TH-CLUE-PAPER,T?TH-CATFISH-LOCKER + .OBJECT TH-PANEL,0,FX?FL-SURFACE,FX?FL-OPENABLE,RM-CORRIDOR,CH-HIPPY,0,T?TH-PANEL + .OBJECT TH-ALIEN-SHIP,0,FX?FL-SURFACE,FX?FL-SEARCH,RM-TRENCH-BOTTOM,0,TH-PURPLE-BUTTON,T?TH-ALIEN-SHIP + .OBJECT TH-PHOTOGRAPH,0,0,FX?FL-NO-DESC,RM-CAPTAINS-ROOM,0,0,T?TH-PHOTOGRAPH + .OBJECT TH-YELLOW-WIRE,0,0,0,TH-MISSILE-PANEL,TH-GREEN-WIRE,0,T?TH-YELLOW-WIRE + .OBJECT TH-MONITORS,0,0,FX?FL-NO-DESC,RM-COMMAND-MODULE,CH-CATFISH,0,T?TH-MONITORS + .OBJECT TH-STEEL-KEY,0,FX?FL-KEY,FX?FL-TAKEABLE+FX?FL-SEARCH,0,0,0,T?TH-STEEL-KEY + .OBJECT LG-CHAMBER-HATCH,0,FX?FL-DOOR,FX?FL-OPENABLE,LOCAL-GLOBALS,PSEUDO-OBJECT,0,T?LG-CHAMBER-HATCH + .OBJECT TH-HEL-STOPPER,0,FX?FL-TRY-TAKE,FX?FL-NO-DESC,TH-HEL-VALVE,0,0,T?TH-HEL-STOPPER + .OBJECT TH-PASSPORT,0,0,FX?FL-TAKEABLE+FX?FL-SEARCH,TH-STEEL-BOX,0,0,T?TH-PASSPORT + .OBJECT TH-ELECTRONIC-LOCK,0,0,0,TH-DIVE-LOCKER,TH-FBS-SUIT,0,T?TH-ELECTRONIC-LOCK + .OBJECT CH-ONE-NIGHT,0,FX?FL-FEMALE,FX?FL-SEARCH+FX?FL-PERSON+FX?FL-OPEN+FX?FL-NO-DESC+FX?FL-NO-ARTICLE+FX?FL-ALIVE,RM-CORRIDOR,CH-COFFEY,0,T?CH-ONE-NIGHT + .OBJECT TH-RED-LEVER,0,0,0,TH-WINDOW-BENCH,0,0,T?TH-RED-LEVER + .OBJECT LOCAL-GLOBALS,0,0,FX?FL-NO-ARTICLE,GLOBAL-OBJECTS,INTPP,LG-OUTLET,T?LOCAL-GLOBALS + .OBJECT TH-FBS-SUIT,0,FX?FL-CLOTHING,FX?FL-TAKEABLE,TH-DIVE-LOCKER,0,0,T?TH-FBS-SUIT + .OBJECT TH-NITROGEN-TANK,0,FX?FL-SURFACE,FX?FL-SEARCH+FX?FL-NO-DESC,RM-TRI-MIX-STORAGE,0,TH-NIT-VALVE,T?TH-NITROGEN-TANK + .OBJECT TH-GUN,0,0,FX?FL-TAKEABLE,CH-COFFEY,0,0,T?TH-GUN + .OBJECT LG-MONTANA,0,0,0,LOCAL-GLOBALS,LG-TROUGH,0,T?LG-MONTANA + .OBJECT TH-MISSILE-TIMER,0,0,FX?FL-NO-DESC,TH-MISSILE,0,0,T?TH-MISSILE-TIMER + .OBJECT LG-BUCKLED-DOOR,0,FX?FL-DOOR,FX?FL-OPENABLE,LOCAL-GLOBALS,LG-MIDSHIP-HATCH,0,T?LG-BUCKLED-DOOR + .OBJECT LG-CHAMBER-DOOR,0,FX?FL-DOOR,FX?FL-OPENABLE+FX?FL-OPEN,LOCAL-GLOBALS,LG-CHAMBER-HATCH,0,T?LG-CHAMBER-DOOR + .OBJECT TH-WHITE-WIRE,0,0,0,TH-MISSILE-PANEL,TH-ORANGE-WIRE,0,T?TH-WHITE-WIRE + .OBJECT INTADJ,0,0,0,GLOBAL-OBJECTS,INTQUOTE,0,T?INTADJ + .OBJECT INTDIR,0,0,0,GLOBAL-OBJECTS,0,0,T?INTDIR + .OBJECT TH-HOOK-1,0,FX?FL-SURFACE,0,RM-SUB-BAY,TH-OXYGEN-CYLINDER,TH-LIFT-BAG,T?TH-HOOK-1 + .ENDT + + LAST-OBJECT=203 + + PLAYER=CH-PLAYER + ME=CH-PLAYER +; OBJECT PROPERTY TABLES ARE DEFINED HERE + +OBJPRP:: + +T?LG-FLOOD-DOOR:: .TABLE ; TABLE FOR OBJECT LG-FLOOD-DOOR + .STRL "flood door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 2,P?ACTION + RT-LG-FLOOD-DOOR + .PROP 6,P?ADJECTIVE + W?AUTOMATIC + W?FLOOD + W?CONTROL + .BYTE 0 + .ENDT + +T?RM-WALDORF:: .TABLE ; TABLE FOR OBJECT RM-WALDORF + .STRL "The Waldorf" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-LADDER-B2 ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-PERSONAL-STORAGE-1 ; TO ROOM + .PROP 2,P?SYNONYM + W?WALDORF + .PROP 2,P?ACTION + RT-RM-WALDORF + .PROP 6,P?GLOBAL + LG-WALL + RM-LADDER-B2 + RM-PERSONAL-STORAGE-1 + .BYTE 0 + .ENDT + +T?RM-PT-OBS-DECK:: .TABLE ; TABLE FOR OBJECT RM-PT-OBS-DECK + .STRL "port observation deck" + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-LADDER-A3 ; TO ROOM + .PROP 2,P?SYNONYM + W?DECK + .PROP 2,P?ACTION + RT-RM-PT-OBS-DECK + .PROP 4,P?ADJECTIVE + W?PORT + W?OBSERVATION + .PROP 4,P?GLOBAL + LG-WALL + RM-LADDER-A3 + .BYTE 0 + .ENDT + +T?TH-WINDOW-BENCH:: .TABLE ; TABLE FOR OBJECT TH-WINDOW-BENCH + .STRL "bench" + .PROP 4,P?SYNONYM + W?BENCH + W?SEAT + .PROP 2,P?ACTION + RT-TH-WINDOW-BENCH + .PROP 2,P?ADJECTIVE + W?WINDOW + .BYTE 0 + .ENDT + +T?TH-RED-CABLE:: .TABLE ; TABLE FOR OBJECT TH-RED-CABLE + .STRL "red cable" + .PROP 4,P?SYNONYM + W?CABLE + W?CLAMP + .PROP 2,P?ACTION + RT-TH-RED-CABLE + .PROP 4,P?ADJECTIVE + W?RED + W?RUBBER + .BYTE 0 + .ENDT + +T?LG-DGS-DOOR:: .TABLE ; TABLE FOR OBJECT LG-DGS-DOOR + .STRL "fore door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 2,P?ACTION + RT-LG-DGS-DOOR + .PROP 8,P?ADJECTIVE + W?FORE + W?DIVE + W?GEAR + W?STORAGE + .BYTE 0 + .ENDT + +T?TH-ORANGE-WIRE:: .TABLE ; TABLE FOR OBJECT TH-ORANGE-WIRE + .STRL "orange wire" + .PROP 2,P?SYNONYM + W?WIRE + .PROP 2,P?ACTION + RT-TH-WIRE + .PROP 2,P?ADJECTIVE + W?ORANGE + .BYTE 0 + .ENDT + +T?TH-COMMAND-CHAIR:: .TABLE ; TABLE FOR OBJECT TH-COMMAND-CHAIR + .STRL "chair" + .PROP 2,P?SYNONYM + W?CHAIR + .PROP 2,P?ACTION + RT-TH-COMMAND-CHAIR + .PROP 2,P?ADJECTIVE + W?COMMAND + .BYTE 0 + .ENDT + +T?TH-WELDER-SWITCH:: .TABLE ; TABLE FOR OBJECT TH-WELDER-SWITCH + .STRL "power switch" + .PROP 4,P?SYNONYM + W?SWITCH + W?PLUG + .PROP 2,P?ACTION + RT-TH-WELDER-SWITCH + .PROP 2,P?ADJECTIVE + W?POWER + .BYTE 0 + .ENDT + +T?TH-DIVE-LOCKER:: .TABLE ; TABLE FOR OBJECT TH-DIVE-LOCKER + .STRL "dive locker" + .PROP 2,P?SYNONYM + W?LOCKER + .PROP 2,P?ACTION + RT-TH-DIVE-LOCKER + .PROP 2,P?ADJECTIVE + W?DIVE + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .BYTE 0 + .ENDT + +T?TH-WEIGHTS:: .TABLE ; TABLE FOR OBJECT TH-WEIGHTS + .STRL "weights" + .PROP 2,P?SYNONYM + W?WEIGHTS + .PROP 2,P?ACTION + RT-TH-WEIGHTS + .BYTE 0 + .ENDT + +T?TH-DESCRAMBLER-CONTROL-BOX:: .TABLE ; TABLE FOR OBJECT TH-DESCRAMBLER-CONTROL-BOX + .STRL "descrambler control box" + .PROP 4,P?SYNONYM + W?DESCRAMBLER + W?BOX + .PROP 2,P?ACTION + RT-TH-DESCRAMBLER-CONTROL-BOX + .PROP 2,P?MENU + STR?125 + .PROP 4,P?ADJECTIVE + W?CONTROL + W?DESCRAMBLER + .BYTE 0 + .ENDT + +T?TH-OXYGEN-TANK:: .TABLE ; TABLE FOR OBJECT TH-OXYGEN-TANK + .STRL "oxygen tank" + .PROP 4,P?SYNONYM + W?TANK + W?BASE + .PROP 2,P?ACTION + RT-TH-OXYGEN-TANK + .PROP 4,P?ADJECTIVE + W?OXYGEN + W?STORAGE + .PROP 2,P?GENERIC + RT-GN-TANK + .BYTE 0 + .ENDT + +T?RM-DRILL-ROOM:: .TABLE ; TABLE FOR OBJECT RM-DRILL-ROOM + .STRL "drill room" + .PROP 2,P?PORT ; UNCONDITIONAL EXIT + RM-TOOL-ROOM ; TO ROOM + .PROP 2,P?SYNONYM + W?ROOM + .PROP 2,P?ACTION + RT-RM-DRILL-ROOM + .PROP 2,P?ADJECTIVE + W?DRILL + .PROP 4,P?GLOBAL + LG-WALL + RM-TOOL-ROOM + .BYTE 0 + .ENDT + +T?INTQUOTE:: .TABLE ; TABLE FOR OBJECT INTQUOTE + .STRL "quotation" + .BYTE 0 + .ENDT + +T?RM-COMPRESSION-CHAMBER:: .TABLE ; TABLE FOR OBJECT RM-COMPRESSION-CHAMBER + .STRL "compression chamber" + .PROP 6,P?FORE ; CONDITIONAL EXIT + RM-GAS-MIX-ROOM ; TO ROOM + LG-CHAMBER-DOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .PROP 6,P?UP ; CONDITIONAL EXIT + RM-CAB-THREE ; TO ROOM + LG-CHAMBER-HATCH ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .PROP 2,P?SYNONYM + W?CHAMBER + .PROP 2,P?ADJACENT + PT?120 + .PROP 2,P?ACTION + RT-RM-COMPRESSION-CHAMBER + .PROP 2,P?MENU + STR?120 + .PROP 2,P?ADJECTIVE + W?COMPRESSION + .PROP 8,P?GLOBAL + LG-WALL + RM-GAS-MIX-ROOM + LG-CHAMBER-DOOR + LG-CHAMBER-HATCH + .BYTE 0 + .ENDT + +T?RM-INFIRMARY:: .TABLE ; TABLE FOR OBJECT RM-INFIRMARY + .STRL "infirmary" + .PROP 2,P?PORT ; UNCONDITIONAL EXIT + RM-LADDER-B3 ; TO ROOM + .PROP 2,P?SYNONYM + W?INFIRMARY + .PROP 2,P?ACTION + RT-RM-INFIRMARY + .PROP 4,P?GLOBAL + LG-WALL + RM-LADDER-B3 + .BYTE 0 + .ENDT + +T?THEM:: .TABLE ; TABLE FOR OBJECT THEM + .STRL "them" + .PROP 2,P?SYNONYM + W?THEM + .BYTE 0 + .ENDT + +T?RM-OCEAN-NORTH:: .TABLE ; TABLE FOR OBJECT RM-OCEAN-NORTH + .STRL "ocean floor" + .PROP 2,P?SOUTH ; UNCONDITIONAL EXIT + RM-UNDER-MOONPOOL ; TO ROOM + .PROP 4,P?SYNONYM + W?FLOOR + W?OCEAN + .PROP 2,P?ACTION + RT-RM-OCEAN-NORTH + .PROP 2,P?ADJECTIVE + W?OCEAN + .PROP 2,P?GLOBAL + LG-DEEPCORE + .BYTE 0 + .ENDT + +T?RM-SWAMP:: .TABLE ; TABLE FOR OBJECT RM-SWAMP + .STRL "the Swamp" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-PERSONAL-STORAGE-2 ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-LADDER-D3 ; TO ROOM + .PROP 2,P?SYNONYM + W?SWAMP + .PROP 2,P?ACTION + RT-RM-SWAMP + .PROP 6,P?GLOBAL + LG-WALL + RM-PERSONAL-STORAGE-2 + RM-LADDER-D3 + .BYTE 0 + .ENDT + +T?TH-LIFT-BENCH:: .TABLE ; TABLE FOR OBJECT TH-LIFT-BENCH + .STRL "bench" + .PROP 2,P?SYNONYM + W?BENCH + .PROP 2,P?ACTION + RT-TH-LIFT-BENCH + .PROP 2,P?ADJECTIVE + W?LIFT + .BYTE 0 + .ENDT + +T?TH-CAB-HOOKAH:: .TABLE ; TABLE FOR OBJECT TH-CAB-HOOKAH + .STRL "hookah" + .PROP 2,P?SYNONYM + W?HOOKAH + .PROP 2,P?ACTION + RT-TH-CAB-HOOKAH + .BYTE 0 + .ENDT + +T?RM-LADDER-C2:: .TABLE ; TABLE FOR OBJECT RM-LADDER-C2 + .STRL "ladderwell C" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-ZOOTOWN ; TO ROOM + .PROP 2,P?UP ; UNCONDITIONAL EXIT + RM-LADDER-C3 ; TO ROOM + .PROP 2,P?DOWN ; UNCONDITIONAL EXIT + RM-LADDER-C1 ; TO ROOM + .PROP 4,P?SYNONYM + W?WELL + W?LADDERWELL + .PROP 2,P?ACTION + RT-RM-LADDER-C2 + .PROP 4,P?ADJECTIVE + W?LADDER + W?LADDERWELL + .PROP 8,P?GLOBAL + LG-WALL + RM-ZOOTOWN + RM-LADDER-C3 + RM-LADDER-C1 + .BYTE 0 + .ENDT + +T?CH-ALIEN:: .TABLE ; TABLE FOR OBJECT CH-ALIEN + .STRL "alien" + .PROP 2,P?SYNONYM + W?ALIEN + .BYTE 0 + .ENDT + +T?RM-LADDER-C3:: .TABLE ; TABLE FOR OBJECT RM-LADDER-C3 + .STRL "ladderwell C" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-TAPE-LIBRARY ; TO ROOM + .PROP 2,P?DOWN ; UNCONDITIONAL EXIT + RM-LADDER-C2 ; TO ROOM + .PROP 4,P?SYNONYM + W?WELL + W?LADDERWELL + .PROP 2,P?ACTION + RT-RM-LADDER-C3 + .PROP 4,P?ADJECTIVE + W?LADDER + W?LADDERWELL + .PROP 6,P?GLOBAL + LG-WALL + RM-TAPE-LIBRARY + RM-LADDER-C2 + .BYTE 0 + .ENDT + +T?RM-LADDER-C1:: .TABLE ; TABLE FOR OBJECT RM-LADDER-C1 + .STRL "ladderwell C" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-FRESH-WATER-STORAGE ; TO ROOM + .PROP 2,P?UP ; UNCONDITIONAL EXIT + RM-LADDER-C2 ; TO ROOM + .PROP 4,P?SYNONYM + W?WELL + W?LADDERWELL + .PROP 2,P?ACTION + RT-RM-LADDER-C1 + .PROP 4,P?ADJECTIVE + W?LADDER + W?LADDERWELL + .PROP 6,P?GLOBAL + LG-WALL + RM-FRESH-WATER-STORAGE + RM-LADDER-C2 + .BYTE 0 + .ENDT + +T?TH-NIT-STOPPER:: .TABLE ; TABLE FOR OBJECT TH-NIT-STOPPER + .STRL "nitrogen stopper" + .PROP 2,P?SYNONYM + W?STOPPER + .PROP 2,P?ACTION + RT-TH-NIT-STOPPER + .PROP 2,P?ADJECTIVE + W?NITROGEN + .PROP 2,P?OWNER + TH-NITROGEN-TANK + .PROP 2,P?GENERIC + RT-GN-STOPPER + .BYTE 0 + .ENDT + +T?RM-LADDER-A2:: .TABLE ; TABLE FOR OBJECT RM-LADDER-A2 + .STRL "ladderwell A" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-LOUNGE ; TO ROOM + .PROP 2,P?STARBOARD ; UNCONDITIONAL EXIT + RM-CORRIDOR ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-MESS-HALL ; TO ROOM + .PROP 2,P?PORT ; UNCONDITIONAL EXIT + RM-ELECTRONICS-SHOP ; TO ROOM + .PROP 2,P?UP ; UNCONDITIONAL EXIT + RM-LADDER-A3 ; TO ROOM + .PROP 2,P?DOWN ; UNCONDITIONAL EXIT + RM-LADDER-A1 ; TO ROOM + .PROP 4,P?SYNONYM + W?WELL + W?LADDERWELL + .PROP 2,P?ACTION + RT-RM-LADDER-A2 + .PROP 6,P?ADJECTIVE + W?LADDER + W?PORT + W?LADDERWELL + .PROP 14,P?GLOBAL + LG-WALL + RM-LOUNGE + RM-MESS-HALL + RM-CORRIDOR + RM-ELECTRONICS-SHOP + RM-LADDER-A1 + RM-LADDER-A3 + .BYTE 0 + .ENDT + +T?RM-LADDER-A3:: .TABLE ; TABLE FOR OBJECT RM-LADDER-A3 + .STRL "ladderwell A" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-PT-OBS-DECK ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-MOTEL-QUICK ; TO ROOM + .PROP 2,P?PORT ; UNCONDITIONAL EXIT + RM-PT-HEAD ; TO ROOM + .PROP 2,P?DOWN ; UNCONDITIONAL EXIT + RM-LADDER-A2 ; TO ROOM + .PROP 4,P?SYNONYM + W?WELL + W?LADDERWELL + .PROP 2,P?ACTION + RT-RM-LADDER-A3 + .PROP 4,P?ADJECTIVE + W?LADDER + W?LADDERWELL + .PROP 10,P?GLOBAL + LG-WALL + RM-PT-OBS-DECK + RM-MOTEL-QUICK + RM-PT-HEAD + RM-LADDER-A2 + .BYTE 0 + .ENDT + +T?RM-LADDER-A1:: .TABLE ; TABLE FOR OBJECT RM-LADDER-A1 + .STRL "ladder well A" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-PT-BATTERY-ROOM ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-PT-LIFE-SUPPORT ; TO ROOM + .PROP 2,P?PORT ; UNCONDITIONAL EXIT + RM-LAUNDRY ; TO ROOM + .PROP 2,P?UP ; UNCONDITIONAL EXIT + RM-LADDER-A2 ; TO ROOM + .PROP 4,P?SYNONYM + W?WELL + W?LADDERWELL + .PROP 2,P?ACTION + RT-RM-LADDER-A1 + .PROP 4,P?ADJECTIVE + W?LADDER + W?LADDERWELL + .PROP 10,P?GLOBAL + LG-WALL + RM-PT-BATTERY-ROOM + RM-PT-LIFE-SUPPORT + RM-LAUNDRY + RM-LADDER-A2 + .BYTE 0 + .ENDT + +T?CH-SEALS:: .TABLE ; TABLE FOR OBJECT CH-SEALS + .STRL "SEALs" + .PROP 22,P?SYNONYM + W?WILLHITE + W?SCHOENICK + W?MONK + W?SEAL + W?SEALS + W?DIVER + W?DIVERS + W?MAN + W?MEN + W?PERSON + W?PEOPLE + .PROP 2,P?ADJECTIVE + W?NAVY + .BYTE 0 + .ENDT + +T?HER:: .TABLE ; TABLE FOR OBJECT HER + .STRL "her" + .PROP 2,P?SYNONYM + W?HER + .BYTE 0 + .ENDT + +T?TH-MISSILE-PANEL:: .TABLE ; TABLE FOR OBJECT TH-MISSILE-PANEL + .STRL "access panel" + .PROP 6,P?SYNONYM + W?PANEL + W?HATCH + W?PLATE + .PROP 2,P?ACTION + RT-TH-MISSILE-PANEL + .PROP 6,P?ADJECTIVE + W?MISSILE + W?ACCESS + W?COVER + .BYTE 0 + .ENDT + +T?TH-GREEN-WIRE:: .TABLE ; TABLE FOR OBJECT TH-GREEN-WIRE + .STRL "green wire" + .PROP 2,P?SYNONYM + W?WIRE + .PROP 2,P?ACTION + RT-TH-WIRE + .PROP 2,P?ADJECTIVE + W?GREEN + .BYTE 0 + .ENDT + +T?TH-MISSILE-ACCESS-KEY:: .TABLE ; TABLE FOR OBJECT TH-MISSILE-ACCESS-KEY + .STRL "access key" + .PROP 2,P?SYNONYM + W?KEY + .PROP 2,P?ACTION + RT-TH-MISSILE-ACCESS-KEY + .PROP 4,P?ADJECTIVE + W?MISSILE + W?ACCESS + .BYTE 0 + .ENDT + +T?TH-ELEC-SHOP-DRAWER:: .TABLE ; TABLE FOR OBJECT TH-ELEC-SHOP-DRAWER + .STRL "center drawer" + .PROP 2,P?SYNONYM + W?DRAWER + .PROP 2,P?ACTION + RT-TH-ELEC-SHOP-DRAWER + .PROP 2,P?ADJECTIVE + W?CENTER + .BYTE 0 + .ENDT + +T?RM-ATTACK-CENTER:: .TABLE ; TABLE FOR OBJECT RM-ATTACK-CENTER + .STRL "attack center" + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-SONAR-ROOM ; TO ROOM + .PROP 6,P?EAST ; CONDITIONAL EXIT + RM-MIDSHIP-HATCH ; TO ROOM + LG-MIDSHIP-HATCH ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .PROP 6,P?OUT ; CONDITIONAL EXIT + RM-MIDSHIP-HATCH ; TO ROOM + LG-MIDSHIP-HATCH ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .PROP 2,P?SYNONYM + W?CENTER + .PROP 2,P?ACTION + RT-RM-ATTACK-CENTER + .PROP 2,P?ADJECTIVE + W?ATTACK + .PROP 8,P?GLOBAL + LG-MIDSHIP-HATCH + LG-WALL + LG-MONTANA + RM-SONAR-ROOM + .BYTE 0 + .ENDT + +T?TH-LIFT-BAG:: .TABLE ; TABLE FOR OBJECT TH-LIFT-BAG + .STRL "lift bag" + .PROP 2,P?SYNONYM + W?BAG + .PROP 2,P?ACTION + RT-TH-LIFT-BAG + .PROP 2,P?ADJECTIVE + W?LIFT + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .BYTE 0 + .ENDT + +T?TH-PT-BILGE-BUTTON:: .TABLE ; TABLE FOR OBJECT TH-PT-BILGE-BUTTON + .STRL "button" + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 2,P?ACTION + RT-TH-PT-BILGE-BUTTON + .PROP 2,P?ADJECTIVE + W?YELLOW + .BYTE 0 + .ENDT + +T?LG-TROUGH:: .TABLE ; TABLE FOR OBJECT LG-TROUGH + .STRL "Cayman trough" + .PROP 2,P?SYNONYM + W?TROUGH + .PROP 2,P?ACTION + RT-LG-TROUGH + .BYTE 0 + .ENDT + +T?TH-DRY-SUIT:: .TABLE ; TABLE FOR OBJECT TH-DRY-SUIT + .STRL "dry suit" + .PROP 2,P?SYNONYM + W?SUIT + .PROP 2,P?ACTION + RT-TH-DRY-SUIT + .PROP 2,P?ADJECTIVE + W?DRY + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .BYTE 0 + .ENDT + +T?TH-OXYGEN-CYLINDER:: .TABLE ; TABLE FOR OBJECT TH-OXYGEN-CYLINDER + .STRL "oxygen cylinder" + .PROP 2,P?SYNONYM + W?CYLINDER + .PROP 2,P?ACTION + RT-TH-OXYGEN-CYLINDER + .PROP 2,P?ADJECTIVE + W?OXYGEN + .BYTE 0 + .ENDT + +T?RM-SONAR-ROOM:: .TABLE ; TABLE FOR OBJECT RM-SONAR-ROOM + .STRL "sonar room" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-ATTACK-CENTER ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-COMM-ROOM ; TO ROOM + .PROP 2,P?SYNONYM + W?SHACK + .PROP 2,P?ACTION + RT-RM-SONAR-ROOM + .PROP 2,P?ADJECTIVE + W?SONAR + .PROP 8,P?GLOBAL + LG-WALL + LG-MONTANA + RM-ATTACK-CENTER + RM-COMM-ROOM + .BYTE 0 + .ENDT + +T?TH-DRYER:: .TABLE ; TABLE FOR OBJECT TH-DRYER + .STRL "dryer" + .PROP 2,P?SYNONYM + W?DRYER + .PROP 2,P?ACTION + RT-TH-DRYER + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .BYTE 0 + .ENDT + +T?RM-MIDSHIP-HATCH:: .TABLE ; TABLE FOR OBJECT RM-MIDSHIP-HATCH + .STRL "midship hatch" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-MISSILE-HATCH ; TO ROOM + .PROP 2,P?NORTH ; UNCONDITIONAL EXIT + RM-MISSILE-HATCH ; TO ROOM + .PROP 2,P?EAST ; UNCONDITIONAL EXIT + RM-TROUGH-LIP ; TO ROOM + .PROP 6,P?WEST ; CONDITIONAL EXIT + RM-ATTACK-CENTER ; TO ROOM + LG-MIDSHIP-HATCH ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .PROP 2,P?UP ; UNCONDITIONAL EXIT + RM-TROUGH-LIP ; TO ROOM + .PROP 4,P?DOWN ; CONDITIONAL EXIT + RT-TO-TRENCH-BOTTOM ; PER FUNCTION + .BYTE 0 + .BYTE 0 + .PROP 6,P?IN ; CONDITIONAL EXIT + RM-ATTACK-CENTER ; TO ROOM + LG-MIDSHIP-HATCH ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .PROP 2,P?ACTION + RT-RM-MIDSHIP-HATCH + .PROP 8,P?GLOBAL + LG-MIDSHIP-HATCH + LG-MONTANA + LG-TROUGH + RM-ATTACK-CENTER + .BYTE 0 + .ENDT + +T?TH-KNIFE:: .TABLE ; TABLE FOR OBJECT TH-KNIFE + .STRL "dive knife" + .PROP 2,P?SYNONYM + W?KNIFE + .PROP 2,P?ACTION + RT-TH-KNIFE + .PROP 2,P?ADJECTIVE + W?DIVE + .BYTE 0 + .ENDT + +T?IT:: .TABLE ; TABLE FOR OBJECT IT + .STRL "it" + .PROP 4,P?SYNONYM + W?IT + W?THIS + .BYTE 0 + .ENDT + +T?TH-BARBELL:: .TABLE ; TABLE FOR OBJECT TH-BARBELL + .STRL "barbell" + .PROP 4,P?SYNONYM + W?BARBELL + W?BAR + .PROP 2,P?ACTION + RT-TH-BARBELL + .BYTE 0 + .ENDT + +T?LG-WALL:: .TABLE ; TABLE FOR OBJECT LG-WALL + .STRL "wall" + .PROP 6,P?SYNONYM + W?WALL + W?WALLS + W?BULKHEAD + .PROP 8,P?ADJECTIVE + W?FORE + W?AFT + W?PORT + W?STARBOARD + .BYTE 0 + .ENDT + +T?TH-PLASTIC-CARD:: .TABLE ; TABLE FOR OBJECT TH-PLASTIC-CARD + .STRL "plastic card" + .PROP 6,P?SYNONYM + W?CARD + W?CODE + W?CODES + .PROP 2,P?ACTION + RT-TH-PLASTIC-CARD + .PROP 4,P?ADJECTIVE + W?PLASTIC + W?WIRING + .BYTE 0 + .ENDT + +T?RM-TOOL-PUSHER-OFFICE:: .TABLE ; TABLE FOR OBJECT RM-TOOL-PUSHER-OFFICE + .STRL "tool pusher's office" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-LADDER-D1 ; TO ROOM + .PROP 2,P?STARBOARD ; UNCONDITIONAL EXIT + RM-TOOL-ROOM ; TO ROOM + .PROP 2,P?SYNONYM + W?OFFICE + .PROP 2,P?ACTION + RT-RM-TOOL-PUSHER-OFFICE + .PROP 4,P?ADJECTIVE + W?TOOL + W?PUSHER + .PROP 6,P?GLOBAL + LG-WALL + RM-LADDER-D1 + RM-TOOL-ROOM + .BYTE 0 + .ENDT + +T?TH-HOOK-2:: .TABLE ; TABLE FOR OBJECT TH-HOOK-2 + .STRL "hook" + .PROP 2,P?SYNONYM + W?HOOK + .PROP 2,P?ACTION + RT-TH-HOOK-2 + .BYTE 0 + .ENDT + +T?TH-STEEL-BOX:: .TABLE ; TABLE FOR OBJECT TH-STEEL-BOX + .STRL "box" + .PROP 2,P?SYNONYM + W?BOX + .PROP 2,P?ACTION + RT-TH-STEEL-BOX + .PROP 4,P?ADJECTIVE + W?STEEL + W?CATFISH + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .BYTE 0 + .ENDT + +T?RM-SB-HEAD:: .TABLE ; TABLE FOR OBJECT RM-SB-HEAD + .STRL "starboard head" + .PROP 2,P?PORT ; UNCONDITIONAL EXIT + RM-LADDER-B1 ; TO ROOM + .PROP 2,P?SYNONYM + W?HEAD + .PROP 2,P?ACTION + RT-RM-SB-HEAD + .PROP 2,P?ADJECTIVE + W?STARBOARD + .PROP 4,P?GLOBAL + LG-WALL + RM-LADDER-B1 + .BYTE 0 + .ENDT + +T?TH-WELDING-ROD:: .TABLE ; TABLE FOR OBJECT TH-WELDING-ROD + .STRL "welding rod" + .PROP 2,P?SYNONYM + W?ROD + .PROP 2,P?ACTION + RT-TH-WELDING-ROD + .PROP 4,P?ADJECTIVE + W?ARC + W?WELDING + .BYTE 0 + .ENDT + +T?CH-HIPPY:: .TABLE ; TABLE FOR OBJECT CH-HIPPY + .STRL "Hippy" + .PROP 6,P?SYNONYM + W?HIPPY + W?MAN + W?PERSON + .BYTE 0 + .ENDT + +T?TH-HYDRAULIC-FLUID:: .TABLE ; TABLE FOR OBJECT TH-HYDRAULIC-FLUID + .STRL "hydraulic fluid" + .PROP 2,P?SYNONYM + W?FLUID + .PROP 2,P?ACTION + RT-TH-HYDRAULIC-FLUID + .PROP 2,P?MENU + STR?136 + .PROP 6,P?ADJECTIVE + W?HYDRAULIC + W?RED + W?STICKY + .BYTE 0 + .ENDT + +T?TH-WATER-HOSE:: .TABLE ; TABLE FOR OBJECT TH-WATER-HOSE + .STRL "hose" + .PROP 2,P?SYNONYM + W?HOSE + .PROP 2,P?ACTION + RT-TH-WATER-HOSE + .PROP 4,P?ADJECTIVE + W?FRESH + W?WATER + .BYTE 0 + .ENDT + +T?TH-HANDS:: .TABLE ; TABLE FOR OBJECT TH-HANDS + .STRL "hands" + .PROP 4,P?SYNONYM + W?HAND + W?HANDS + .PROP 4,P?ADJECTIVE + W?LEFT + W?RIGHT + .PROP 2,P?OWNER + CH-PLAYER + .PROP 2,P?GENERIC + RT-GN-BODY + .BYTE 0 + .ENDT + +T?CH-CATFISH:: .TABLE ; TABLE FOR OBJECT CH-CATFISH + .STRL "Catfish" + .PROP 10,P?SYNONYM + W?CATFISH + W?DEVRIES + W?FISH + W?MAN + W?PERSON + .PROP 2,P?ADJECTIVE + W?CAT + .BYTE 0 + .ENDT + +T?TH-MAGNET:: .TABLE ; TABLE FOR OBJECT TH-MAGNET + .STRL "probe" + .PROP 4,P?SYNONYM + W?MAGNET + W?PROBE + .PROP 2,P?ACTION + RT-TH-MAGNET + .PROP 2,P?ADJECTIVE + W?MAGNETIC + .BYTE 0 + .ENDT + +T?PSEUDO-OBJECT:: .TABLE ; TABLE FOR OBJECT PSEUDO-OBJECT + .STRL "" + .PROP 2,P?ACTION + 0 + .BYTE 0 + .ENDT + +T?TH-BIN:: .TABLE ; TABLE FOR OBJECT TH-BIN + .STRL "bin" + .PROP 4,P?SYNONYM + W?BIN + W?BINS + .PROP 2,P?ACTION + RT-TH-BIN + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 5 + .BYTE 0 + .ENDT + +T?TH-HYDRAULIC-HOSE:: .TABLE ; TABLE FOR OBJECT TH-HYDRAULIC-HOSE + .STRL "hydraulic hose" + .PROP 2,P?SYNONYM + W?HOSE + .PROP 2,P?ACTION + RT-TH-HYDRAULIC-HOSE + .PROP 2,P?MENU + STR?135 + .PROP 2,P?ADJECTIVE + W?HYDRAULIC + .BYTE 0 + .ENDT + +T?TH-PURPLE-BUTTON:: .TABLE ; TABLE FOR OBJECT TH-PURPLE-BUTTON + .STRL "purple button" + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 2,P?ACTION + RT-TH-PURPLE-BUTTON + .PROP 2,P?ADJECTIVE + W?PURPLE + .BYTE 0 + .ENDT + +T?TH-BUD-GEAR-LOCKER:: .TABLE ; TABLE FOR OBJECT TH-BUD-GEAR-LOCKER + .STRL "gear locker" + .PROP 2,P?SYNONYM + W?LOCKER + .PROP 2,P?ACTION + RT-TH-BUD-GEAR-LOCKER + .PROP 4,P?ADJECTIVE + W?BUD + W?GEAR + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .PROP 2,P?OWNER + CH-PLAYER + .PROP 2,P?GENERIC + RT-GN-LOCKER + .BYTE 0 + .ENDT + +T?RM-SB-LIFE-SUPPORT:: .TABLE ; TABLE FOR OBJECT RM-SB-LIFE-SUPPORT + .STRL "starboard life support" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-LADDER-B1 ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-PUMP-ROOM ; TO ROOM + .PROP 2,P?SYNONYM + W?SUPPORT + .PROP 2,P?ACTION + RT-RM-SB-LIFE-SUPPORT + .PROP 4,P?ADJECTIVE + W?STARBOARD + W?LIFE + .PROP 6,P?GLOBAL + LG-WALL + RM-LADDER-B1 + RM-PUMP-ROOM + .BYTE 0 + .ENDT + +T?RM-TROUGH-LIP:: .TABLE ; TABLE FOR OBJECT RM-TROUGH-LIP + .STRL "trough lip" + .PROP 4,P?EAST ; CONDITIONAL EXIT + RT-SWIM-TO-FROM-TRENCH ; PER FUNCTION + .BYTE 0 + .BYTE 0 + .PROP 2,P?WEST ; UNCONDITIONAL EXIT + RM-MIDSHIP-HATCH ; TO ROOM + .PROP 2,P?DOWN ; UNCONDITIONAL EXIT + RM-MIDSHIP-HATCH ; TO ROOM + .PROP 2,P?SYNONYM + W?LIP + .PROP 2,P?ACTION + RT-RM-TROUGH-LIP + .PROP 2,P?ADJECTIVE + W?TROUGH + .PROP 6,P?GLOBAL + LG-TROUGH + LG-MONTANA + LG-DEEPCORE + .BYTE 0 + .ENDT + +T?TH-THERMOMETER:: .TABLE ; TABLE FOR OBJECT TH-THERMOMETER + .STRL "thermometer" + .PROP 2,P?SYNONYM + W?THERMOMETER + .PROP 2,P?ACTION + RT-TH-THERMOMETER + .BYTE 0 + .ENDT + +T?RM-PT-HEAD:: .TABLE ; TABLE FOR OBJECT RM-PT-HEAD + .STRL "port head" + .PROP 2,P?STARBOARD ; UNCONDITIONAL EXIT + RM-LADDER-A3 ; TO ROOM + .PROP 2,P?SYNONYM + W?HEAD + .PROP 2,P?ACTION + RT-RM-PT-HEAD + .PROP 2,P?ADJECTIVE + W?PORT + .PROP 4,P?GLOBAL + LG-WALL + RM-LADDER-A3 + .BYTE 0 + .ENDT + +T?NOT-HERE-OBJECT:: .TABLE ; TABLE FOR OBJECT NOT-HERE-OBJECT + .STRL "" + .PROP 2,P?CONTFCN + 0 + .PROP 2,P?THINGS + PT?312 + .BYTE 0 + .ENDT + +T?RM-TORPEDO-ROOM:: .TABLE ; TABLE FOR OBJECT RM-TORPEDO-ROOM + .STRL "torpedo room" + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-ENGINE-ROOM ; TO ROOM + .PROP 2,P?EAST ; UNCONDITIONAL EXIT + RM-BOW ; TO ROOM + .PROP 2,P?OUT ; UNCONDITIONAL EXIT + RM-BOW ; TO ROOM + .PROP 2,P?SYNONYM + W?ROOM + .PROP 2,P?ACTION + RT-RM-TORPEDO-ROOM + .PROP 2,P?ADJECTIVE + W?TORPEDO + .PROP 8,P?GLOBAL + LG-WALL + LG-MONTANA + RM-BOW + RM-ENGINE-ROOM + .BYTE 0 + .ENDT + +T?TH-UFO:: .TABLE ; TABLE FOR OBJECT TH-UFO + .STRL "UFO" + .PROP 2,P?SYNONYM + W?UFO + .BYTE 0 + .ENDT + +T?ROOMS:: .TABLE ; TABLE FOR OBJECT ROOMS + .STRL "that" + .BYTE 0 + .ENDT + +T?RM-MISSILE-ROOM:: .TABLE ; TABLE FOR OBJECT RM-MISSILE-ROOM + .STRL "missile launching room" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-ENGINE-ROOM ; TO ROOM + .PROP 2,P?SYNONYM + W?ROOM + .PROP 2,P?ACTION + RT-RM-MISSILE-ROOM + .PROP 4,P?ADJECTIVE + W?MISSILE + W?LAUNCHING + .PROP 6,P?GLOBAL + LG-WALL + LG-MONTANA + RM-ENGINE-ROOM + .BYTE 0 + .ENDT + +T?RM-SB-BATTERY-ROOM:: .TABLE ; TABLE FOR OBJECT RM-SB-BATTERY-ROOM + .STRL "starboard battery room" + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-LADDER-B1 ; TO ROOM + .PROP 2,P?SYNONYM + W?ROOM + .PROP 2,P?ACTION + RT-RM-SB-BATTERY-ROOM + .PROP 4,P?ADJECTIVE + W?STARBOARD + W?BATTERY + .PROP 4,P?GLOBAL + LG-WALL + RM-LADDER-B1 + .BYTE 0 + .ENDT + +T?TH-SAFE:: .TABLE ; TABLE FOR OBJECT TH-SAFE + .STRL "safe" + .PROP 4,P?SYNONYM + W?SAFE + W?DIAL + .PROP 2,P?ACTION + RT-TH-SAFE + .PROP 2,P?ADJECTIVE + W?WALL + .BYTE 0 + .ENDT + +T?TH-ARC-WELDER:: .TABLE ; TABLE FOR OBJECT TH-ARC-WELDER + .STRL "arc welder" + .PROP 4,P?SYNONYM + W?WELDER + W?ARC-WELDER + .PROP 2,P?ACTION + RT-TH-ARC-WELDER + .PROP 2,P?ADJECTIVE + W?ARC + .BYTE 0 + .ENDT + +T?RM-PT-LIFE-SUPPORT:: .TABLE ; TABLE FOR OBJECT RM-PT-LIFE-SUPPORT + .STRL "port life support" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-LADDER-A1 ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-COMPRESSOR-ROOM ; TO ROOM + .PROP 2,P?SYNONYM + W?SUPPORT + .PROP 2,P?ACTION + RT-RM-PT-LIFE-SUPPORT + .PROP 2,P?MENU + STR?124 + .PROP 4,P?ADJECTIVE + W?PORT + W?LIFE + .PROP 6,P?GLOBAL + LG-WALL + RM-LADDER-A1 + RM-COMPRESSOR-ROOM + .BYTE 0 + .ENDT + +T?RM-COMPUTER-CENTER:: .TABLE ; TABLE FOR OBJECT RM-COMPUTER-CENTER + .STRL "computer center" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-LADDER-B3 ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-LAB ; TO ROOM + .PROP 2,P?SYNONYM + W?CENTER + .PROP 2,P?ACTION + RT-RM-COMPUTER-CENTER + .PROP 2,P?ADJECTIVE + W?COMPUTER + .PROP 6,P?GLOBAL + LG-WALL + RM-LADDER-B3 + RM-LAB + .BYTE 0 + .ENDT + +T?TH-NOZZLE:: .TABLE ; TABLE FOR OBJECT TH-NOZZLE + .STRL "nozzle" + .PROP 2,P?SYNONYM + W?NOZZLE + .PROP 2,P?ACTION + RT-TH-NOZZLE + .PROP 2,P?ADJECTIVE + W?HOSE + .BYTE 0 + .ENDT + +T?TH-HELIUM-TANK:: .TABLE ; TABLE FOR OBJECT TH-HELIUM-TANK + .STRL "helium tank" + .PROP 4,P?SYNONYM + W?TANK + W?BASE + .PROP 2,P?ACTION + RT-TH-HELIUM-TANK + .PROP 4,P?ADJECTIVE + W?HELIUM + W?STORAGE + .PROP 2,P?GENERIC + RT-GN-TANK + .BYTE 0 + .ENDT + +T?CH-COFFEY:: .TABLE ; TABLE FOR OBJECT CH-COFFEY + .STRL "Coffey" + .PROP 8,P?SYNONYM + W?COFFEY + W?DIVER + W?MAN + W?PERSON + .PROP 2,P?ACTION + RT-CH-COFFEY + .PROP 2,P?ADJECTIVE + W?NAVY + .BYTE 0 + .ENDT + +T?TH-CYCLE:: .TABLE ; TABLE FOR OBJECT TH-CYCLE + .STRL "cycle" + .PROP 4,P?SYNONYM + W?CYCLE + W?BICYCLE + .PROP 2,P?ACTION + RT-TH-CYCLE + .PROP 4,P?ADJECTIVE + W?STATIONARY + W?EXERCISE + .BYTE 0 + .ENDT + +T?TH-RED-BUTTON:: .TABLE ; TABLE FOR OBJECT TH-RED-BUTTON + .STRL "red button" + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 2,P?ACTION + RT-TH-RED-BUTTON + .PROP 2,P?ADJECTIVE + W?RED + .BYTE 0 + .ENDT + +T?TH-S-BILGE-BUTT:: .TABLE ; TABLE FOR OBJECT TH-S-BILGE-BUTT + .STRL "button" + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 2,P?ACTION + RT-TH-S-BILGE-BUTT + .PROP 2,P?ADJECTIVE + W?YELLOW + .BYTE 0 + .ENDT + +T?RM-TAPE-LIBRARY:: .TABLE ; TABLE FOR OBJECT RM-TAPE-LIBRARY + .STRL "tape library" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-LAB ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-LADDER-C3 ; TO ROOM + .PROP 2,P?SYNONYM + W?LIBRARY + .PROP 2,P?ACTION + RT-RM-TAPE-LIBRARY + .PROP 2,P?ADJECTIVE + W?TAPE + .PROP 6,P?GLOBAL + LG-WALL + RM-LAB + RM-LADDER-C3 + .BYTE 0 + .ENDT + +T?TH-OXY-VALVE:: .TABLE ; TABLE FOR OBJECT TH-OXY-VALVE + .STRL "oxygen valve" + .PROP 4,P?SYNONYM + W?VALVE + W?K-VALVE + .PROP 2,P?ACTION + RT-TH-OXY-VALVE + .PROP 4,P?ADJECTIVE + W?OXYGEN + W?K + .PROP 2,P?GENERIC + RT-GN-VALVE + .BYTE 0 + .ENDT + +T?TH-GAME-BAG:: .TABLE ; TABLE FOR OBJECT TH-GAME-BAG + .STRL "game bag" + .PROP 2,P?SYNONYM + W?BAG + .PROP 2,P?ACTION + RT-TH-GAME-BAG + .PROP 2,P?ADJECTIVE + W?GAME + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .BYTE 0 + .ENDT + +T?RM-ELECTRONICS-SHOP:: .TABLE ; TABLE FOR OBJECT RM-ELECTRONICS-SHOP + .STRL "electronics shop" + .PROP 2,P?STARBOARD ; UNCONDITIONAL EXIT + RM-LADDER-A2 ; TO ROOM + .PROP 2,P?SYNONYM + W?SHOP + .PROP 2,P?ACTION + RT-RM-ELECTRONICS-SHOP + .PROP 2,P?ADJECTIVE + W?ELECTRONIC + .PROP 4,P?GLOBAL + LG-WALL + RM-LADDER-A2 + .BYTE 0 + .ENDT + +T?TH-SB-BILGE-BUTTON:: .TABLE ; TABLE FOR OBJECT TH-SB-BILGE-BUTTON + .STRL "button" + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 2,P?ACTION + RT-TH-SB-BILGE-BUTTON + .PROP 2,P?ADJECTIVE + W?YELLOW + .BYTE 0 + .ENDT + +T?RM-PUMP-ROOM:: .TABLE ; TABLE FOR OBJECT RM-PUMP-ROOM + .STRL "pump room" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-SB-LIFE-SUPPORT ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-FRESH-WATER-STORAGE ; TO ROOM + .PROP 2,P?SYNONYM + W?ROOM + .PROP 2,P?ACTION + RT-RM-PUMP-ROOM + .PROP 2,P?ADJECTIVE + W?PUMP + .PROP 6,P?GLOBAL + LG-WALL + RM-SB-LIFE-SUPPORT + RM-FRESH-WATER-STORAGE + .BYTE 0 + .ENDT + +T?TH-FIRE:: .TABLE ; TABLE FOR OBJECT TH-FIRE + .STRL "fire" + .PROP 2,P?SYNONYM + W?FIRE + .PROP 2,P?ACTION + RT-TH-FIRE + .BYTE 0 + .ENDT + +T?TH-SKY:: .TABLE ; TABLE FOR OBJECT TH-SKY + .STRL "" + .PROP 4,P?SYNONYM + W?SKY + W?CEILING + .PROP 2,P?ACTION + RT-TH-SKY + .BYTE 0 + .ENDT + +T?RM-ALIEN-CHAMBER:: .TABLE ; TABLE FOR OBJECT RM-ALIEN-CHAMBER + .STRL "alien chamber" + .PROP 2,P?SYNONYM + W?CHAMBER + .PROP 2,P?ACTION + RT-RM-ALIEN-CHAMBER + .PROP 2,P?ADJECTIVE + W?ALIEN + .BYTE 0 + .ENDT + +T?LG-OUTLET:: .TABLE ; TABLE FOR OBJECT LG-OUTLET + .STRL "outlet" + .PROP 4,P?SYNONYM + W?OUTLET + W?SOCKET + .PROP 4,P?ADJECTIVE + W?WALL + W?ELECTRICAL + .BYTE 0 + .ENDT + +T?GENERIC-OBJECTS:: .TABLE ; TABLE FOR OBJECT GENERIC-OBJECTS + .STRL "" + .PROP 2,P?ADJACENT + 0 + .BYTE 0 + .ENDT + +T?RM-COMMAND-MODULE:: .TABLE ; TABLE FOR OBJECT RM-COMMAND-MODULE + .STRL "command module" + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-CORRIDOR ; TO ROOM + .PROP 2,P?SYNONYM + W?MODULE + .PROP 2,P?ACTION + RT-RM-COMMAND-MODULE + .PROP 2,P?ADJECTIVE + W?COMMAND + .PROP 4,P?GLOBAL + LG-WALL + RM-CORRIDOR + .BYTE 0 + .ENDT + +T?TH-DETONATOR:: .TABLE ; TABLE FOR OBJECT TH-DETONATOR + .STRL "detonator" + .PROP 8,P?SYNONYM + W?DETONATOR + W?TIMER + W?DIAL + W?SWITCH + .PROP 2,P?ACTION + RT-TH-DETONATOR + .BYTE 0 + .ENDT + +T?TH-BLACK-CABLE:: .TABLE ; TABLE FOR OBJECT TH-BLACK-CABLE + .STRL "black cable" + .PROP 6,P?SYNONYM + W?CABLE + W?CUP + W?ELECTRODE + .PROP 2,P?ACTION + RT-TH-BLACK-CABLE + .PROP 6,P?ADJECTIVE + W?BLACK + W?RUBBER + W?SUCTION + .PROP 2,P?OWNER + 0 + .BYTE 0 + .ENDT + +T?RM-BOW:: .TABLE ; TABLE FOR OBJECT RM-BOW + .STRL "bow" + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-MISSILE-HATCH ; TO ROOM + .PROP 2,P?WEST ; UNCONDITIONAL EXIT + RM-TORPEDO-ROOM ; TO ROOM + .PROP 2,P?IN ; UNCONDITIONAL EXIT + RM-TORPEDO-ROOM ; TO ROOM + .PROP 2,P?SYNONYM + W?BOW + .PROP 2,P?ACTION + RT-RM-BOW + .PROP 6,P?GLOBAL + LG-MONTANA + LG-TROUGH + RM-MISSILE-HATCH + .BYTE 0 + .ENDT + +T?TH-CRACK:: .TABLE ; TABLE FOR OBJECT TH-CRACK + .STRL "crack" + .PROP 2,P?SYNONYM + W?CRACK + .PROP 2,P?ACTION + RT-TH-CRACK + .BYTE 0 + .ENDT + +T?RM-OCEAN-WEST:: .TABLE ; TABLE FOR OBJECT RM-OCEAN-WEST + .STRL "ocean floor" + .PROP 2,P?EAST ; UNCONDITIONAL EXIT + RM-UNDER-MOONPOOL ; TO ROOM + .PROP 4,P?WEST ; CONDITIONAL EXIT + RT-SWIM-TO-FROM-TRENCH ; PER FUNCTION + .BYTE 0 + .BYTE 0 + .PROP 4,P?SYNONYM + W?FLOOR + W?OCEAN + .PROP 2,P?ACTION + RT-RM-OCEAN-WEST + .PROP 2,P?ADJECTIVE + W?OCEAN + .PROP 2,P?GLOBAL + LG-DEEPCORE + .BYTE 0 + .ENDT + +T?YOU:: .TABLE ; TABLE FOR OBJECT YOU + .STRL "you" + .PROP 4,P?SYNONYM + W?YOU + W?YOURSELF + .PROP 2,P?ACTION + RT-YOU + .BYTE 0 + .ENDT + +T?TH-FACEPLATE:: .TABLE ; TABLE FOR OBJECT TH-FACEPLATE + .STRL "faceplate" + .PROP 4,P?SYNONYM + W?FACEPLATE + W?PLATE + .PROP 2,P?ACTION + RT-TH-FACEPLATE + .PROP 2,P?ADJECTIVE + W?FACE + .BYTE 0 + .ENDT + +T?RM-SUB-BAY:: .TABLE ; TABLE FOR OBJECT RM-SUB-BAY + .STRL "sub bay" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-CORRIDOR ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-GAS-MIX-ROOM ; TO ROOM + .PROP 2,P?DOWN ; UNCONDITIONAL EXIT + RM-UNDER-MOONPOOL ; TO ROOM + .PROP 2,P?SYNONYM + W?BAY + .PROP 2,P?ACTION + RT-RM-SUB-BAY + .PROP 2,P?ADJECTIVE + W?SUB + .PROP 8,P?GLOBAL + LG-WALL + RM-UNDER-MOONPOOL + RM-CORRIDOR + RM-GAS-MIX-ROOM + .BYTE 0 + .ENDT + +T?TH-TIME:: .TABLE ; TABLE FOR OBJECT TH-TIME + .STRL "time" + .PROP 14,P?SYNONYM + W?TURN + W?TURNS + W?MINUTE + W?MINUTES + W?MIN + W?HOUR + W?HOURS + .PROP 2,P?ADJECTIVE + W?INT.NUM + .BYTE 0 + .ENDT + +T?HIM:: .TABLE ; TABLE FOR OBJECT HIM + .STRL "him" + .PROP 2,P?SYNONYM + W?HIM + .BYTE 0 + .ENDT + +T?TH-FLATBED:: .TABLE ; TABLE FOR OBJECT TH-FLATBED + .STRL "Flatbed" + .PROP 2,P?SYNONYM + W?FLATBED + .BYTE 0 + .ENDT + +T?RM-RECREATION-ROOM:: .TABLE ; TABLE FOR OBJECT RM-RECREATION-ROOM + .STRL "recreation room" + .PROP 2,P?PORT ; UNCONDITIONAL EXIT + RM-LADDER-B2 ; TO ROOM + .PROP 2,P?SYNONYM + W?ROOM + .PROP 2,P?ACTION + RT-RM-RECREATION-ROOM + .PROP 2,P?MENU + STR?134 + .PROP 4,P?ADJECTIVE + W?RECREATION + W?REC + .PROP 4,P?GLOBAL + LG-WALL + RM-LADDER-B2 + .BYTE 0 + .ENDT + +T?RM-FRESH-WATER-STORAGE:: .TABLE ; TABLE FOR OBJECT RM-FRESH-WATER-STORAGE + .STRL "fresh water storage" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-PUMP-ROOM ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-LADDER-C1 ; TO ROOM + .PROP 2,P?SYNONYM + W?STORAGE + .PROP 2,P?ACTION + RT-RM-FRESH-WATER-STORAGE + .PROP 4,P?ADJECTIVE + W?FRESH + W?WATER + .PROP 6,P?GLOBAL + LG-WALL + RM-PUMP-ROOM + RM-LADDER-C1 + .BYTE 0 + .ENDT + +T?TH-WELDER-CORD:: .TABLE ; TABLE FOR OBJECT TH-WELDER-CORD + .STRL "power cord" + .PROP 2,P?SYNONYM + W?CORD + .PROP 2,P?ACTION + RT-TH-WELDER-CORD + .PROP 2,P?ADJECTIVE + W?POWER + .BYTE 0 + .ENDT + +T?TH-HEAD:: .TABLE ; TABLE FOR OBJECT TH-HEAD + .STRL "head" + .PROP 2,P?SYNONYM + W?HEAD + .PROP 2,P?OWNER + CH-PLAYER + .PROP 2,P?GENERIC + RT-GN-BODY + .BYTE 0 + .ENDT + +T?RM-TRENCH-BOTTOM:: .TABLE ; TABLE FOR OBJECT RM-TRENCH-BOTTOM + .STRL "bottom of trench" + .PROP 2,P?UP ; UNCONDITIONAL EXIT + RM-MIDSHIP-HATCH ; TO ROOM + .PROP 2,P?IN ; UNCONDITIONAL EXIT + RM-ALIEN-CHAMBER ; TO ROOM + .PROP 4,P?SYNONYM + W?TRENCH + W?BOTTOM + .PROP 2,P?ACTION + RT-RM-TRENCH-BOTTOM + .PROP 4,P?ADJECTIVE + W?FOOT + W?TRENCH + .BYTE 0 + .ENDT + +T?RM-CORRIDOR:: .TABLE ; TABLE FOR OBJECT RM-CORRIDOR + .STRL "corridor" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-COMMAND-MODULE ; TO ROOM + .PROP 6,P?STARBOARD ; CONDITIONAL EXIT + RM-LADDER-B2 ; TO ROOM + LG-FLOOD-DOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-SUB-BAY ; TO ROOM + .PROP 2,P?PORT ; UNCONDITIONAL EXIT + RM-LADDER-A2 ; TO ROOM + .PROP 2,P?SYNONYM + W?CORRIDOR + .PROP 2,P?ACTION + RT-RM-CORRIDOR + .PROP 12,P?GLOBAL + LG-FLOOD-DOOR + LG-WALL + RM-COMMAND-MODULE + RM-SUB-BAY + RM-LADDER-A2 + RM-LADDER-B2 + .BYTE 0 + .ENDT + +T?TH-POWERCEL:: .TABLE ; TABLE FOR OBJECT TH-POWERCEL + .STRL "fuel cell" + .PROP 4,P?SYNONYM + W?POWERCEL + W?CELL + .PROP 2,P?ACTION + RT-TH-POWERCEL + .PROP 4,P?ADJECTIVE + W?FUEL + W?POWER + .BYTE 0 + .ENDT + +T?RM-DIVE-GEAR-STORAGE:: .TABLE ; TABLE FOR OBJECT RM-DIVE-GEAR-STORAGE + .STRL "dive gear storage" + .PROP 6,P?AFT ; CONDITIONAL EXIT + RM-LADDER-B2 ; TO ROOM + LG-DGS-DOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .PROP 2,P?SYNONYM + W?STORAGE + .PROP 2,P?ACTION + RT-RM-DIVE-GEAR-STORAGE + .PROP 2,P?MENU + STR?133 + .PROP 4,P?ADJECTIVE + W?DIVE + W?GEAR + .PROP 6,P?GLOBAL + LG-DGS-DOOR + LG-WALL + RM-LADDER-B2 + .BYTE 0 + .ENDT + +T?TH-BIG-LOCKER:: .TABLE ; TABLE FOR OBJECT TH-BIG-LOCKER + .STRL "big locker" + .PROP 2,P?SYNONYM + W?LOCKER + .PROP 2,P?ACTION + RT-TH-BIG-LOCKER + .PROP 6,P?ADJECTIVE + W?BIG + W?DIVE + W?GEAR + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .PROP 2,P?GENERIC + RT-GN-LOCKER + .BYTE 0 + .ENDT + +T?TH-HUMAN-BODY:: .TABLE ; TABLE FOR OBJECT TH-HUMAN-BODY + .STRL "" + .PROP 64,P?SYNONYM + W?BODY + W?SKIN + W?ARM + W?ARMS + W?HAND + W?HANDS + W?LEG + W?LEGS + W?ANKLE + W?ANKLES + W?FOOT + W?FEET + W?HEAD + W?HAIR + W?EYE + W?EYES + W?EAR + W?EARS + W?NOSE + W?FACE + W?CHEEK + W?CHEEKS + W?LIP + W?LIPS + W?MOUTH + W?NECK + W?SHOULDER + W?SHOULDERS + W?CHEST + W?TORSO + W?BACK + W?WAIST + .PROP 2,P?ACTION + RT-TH-HUMAN-BODY + .PROP 4,P?ADJECTIVE + W?LEFT + W?RIGHT + .PROP 2,P?OWNER + K-BODY-OWNER-TBL + .PROP 2,P?GENERIC + RT-GN-BODY + .BYTE 0 + .ENDT + +T?RM-LADDER-D2:: .TABLE ; TABLE FOR OBJECT RM-LADDER-D2 + .STRL "ladderwell D" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-PANTRY ; TO ROOM + .PROP 2,P?UP ; UNCONDITIONAL EXIT + RM-LADDER-D3 ; TO ROOM + .PROP 2,P?DOWN ; UNCONDITIONAL EXIT + RM-LADDER-D1 ; TO ROOM + .PROP 4,P?SYNONYM + W?WELL + W?LADDERWELL + .PROP 2,P?ACTION + RT-RM-LADDER-D2 + .PROP 4,P?ADJECTIVE + W?LADDER + W?LADDERWELL + .PROP 8,P?GLOBAL + LG-WALL + RM-PANTRY + RM-LADDER-D3 + RM-LADDER-D1 + .BYTE 0 + .ENDT + +T?RM-LADDER-D3:: .TABLE ; TABLE FOR OBJECT RM-LADDER-D3 + .STRL "ladderwell D" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-SWAMP ; TO ROOM + .PROP 2,P?DOWN ; UNCONDITIONAL EXIT + RM-LADDER-D2 ; TO ROOM + .PROP 4,P?SYNONYM + W?WELL + W?LADDERWELL + .PROP 2,P?ACTION + RT-RM-LADDER-D3 + .PROP 4,P?ADJECTIVE + W?LADDERWELL + W?LADDER + .PROP 6,P?GLOBAL + LG-WALL + RM-SWAMP + RM-LADDER-D2 + .BYTE 0 + .ENDT + +T?TH-DISCHARGE:: .TABLE ; TABLE FOR OBJECT TH-DISCHARGE + .STRL "discharge" + .PROP 2,P?SYNONYM + W?DISCHARGE + .PROP 2,P?ACTION + RT-TH-DISCHARGE + .PROP 12,P?ADJECTIVE + W?CATFISH + W?MILITARY + W?MARINE + W?MARINES + W?HONORABLE + W?PAPERS + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .PROP 2,P?OWNER + CH-CATFISH + .BYTE 0 + .ENDT + +T?RM-LADDER-D1:: .TABLE ; TABLE FOR OBJECT RM-LADDER-D1 + .STRL "ladderwell D" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-TRI-MIX-STORAGE ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-TOOL-PUSHER-OFFICE ; TO ROOM + .PROP 2,P?UP ; UNCONDITIONAL EXIT + RM-LADDER-D2 ; TO ROOM + .PROP 4,P?SYNONYM + W?WELL + W?LADDERWELL + .PROP 2,P?ACTION + RT-RM-LADDER-D1 + .PROP 4,P?ADJECTIVE + W?LADDER + W?LADDERWELL + .PROP 8,P?GLOBAL + LG-WALL + RM-TRI-MIX-STORAGE + RM-TOOL-PUSHER-OFFICE + RM-LADDER-D2 + .BYTE 0 + .ENDT + +T?TH-WIRES:: .TABLE ; TABLE FOR OBJECT TH-WIRES + .STRL "wires" + .PROP 2,P?SYNONYM + W?WIRES + .PROP 2,P?ACTION + RT-TH-WIRES + .BYTE 0 + .ENDT + +T?RM-UNDER-MOONPOOL:: .TABLE ; TABLE FOR OBJECT RM-UNDER-MOONPOOL + .STRL "under moonpool" + .PROP 2,P?NORTH ; UNCONDITIONAL EXIT + RM-OCEAN-NORTH ; TO ROOM + .PROP 2,P?SOUTH ; UNCONDITIONAL EXIT + RM-OCEAN-SOUTH ; TO ROOM + .PROP 2,P?WEST ; UNCONDITIONAL EXIT + RM-OCEAN-WEST ; TO ROOM + .PROP 2,P?UP ; UNCONDITIONAL EXIT + RM-SUB-BAY ; TO ROOM + .PROP 2,P?IN ; UNCONDITIONAL EXIT + RM-SUB-BAY ; TO ROOM + .PROP 2,P?ACTION + RT-RM-UNDER-MOONPOOL + .PROP 6,P?GLOBAL + TH-MOON-POOL + LG-DEEPCORE + RM-SUB-BAY + .BYTE 0 + .ENDT + +T?RM-PERSONAL-STORAGE-1:: .TABLE ; TABLE FOR OBJECT RM-PERSONAL-STORAGE-1 + .STRL "personal storage" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-WALDORF ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-ZOOTOWN ; TO ROOM + .PROP 2,P?SYNONYM + W?STORAGE + .PROP 2,P?ACTION + RT-RM-PERSONAL-STORAGE-1 + .PROP 2,P?ADJECTIVE + W?PERSONAL + .PROP 6,P?GLOBAL + LG-WALL + RM-WALDORF + RM-ZOOTOWN + .BYTE 0 + .ENDT + +T?TH-PLASTIQUE:: .TABLE ; TABLE FOR OBJECT TH-PLASTIQUE + .STRL "plastique" + .PROP 6,P?SYNONYM + W?PLASTIQUE + W?EXPLOSIVE + W?TAPE + .PROP 2,P?ACTION + RT-TH-PLASTIQUE + .PROP 2,P?ADJECTIVE + W?PLASTIC + .PROP 2,P?OWNER + 0 + .BYTE 0 + .ENDT + +T?TH-RED-WIRE:: .TABLE ; TABLE FOR OBJECT TH-RED-WIRE + .STRL "red wire" + .PROP 2,P?SYNONYM + W?WIRE + .PROP 2,P?ACTION + RT-TH-WIRE + .PROP 2,P?ADJECTIVE + W?RED + .BYTE 0 + .ENDT + +T?RM-LADDER-B2:: .TABLE ; TABLE FOR OBJECT RM-LADDER-B2 + .STRL "ladderwell B" + .PROP 6,P?FORE ; CONDITIONAL EXIT + RM-DIVE-GEAR-STORAGE ; TO ROOM + LG-DGS-DOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .PROP 2,P?STARBOARD ; UNCONDITIONAL EXIT + RM-RECREATION-ROOM ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-WALDORF ; TO ROOM + .PROP 6,P?PORT ; CONDITIONAL EXIT + RM-CORRIDOR ; TO ROOM + LG-FLOOD-DOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .PROP 2,P?UP ; UNCONDITIONAL EXIT + RM-LADDER-B3 ; TO ROOM + .PROP 2,P?DOWN ; UNCONDITIONAL EXIT + RM-LADDER-B1 ; TO ROOM + .PROP 4,P?SYNONYM + W?WELL + W?LADDERWELL + .PROP 2,P?ACTION + RT-RM-LADDER-B2 + .PROP 4,P?ADJECTIVE + W?LADDER + W?LADDERWELL + .PROP 18,P?GLOBAL + LG-FLOOD-DOOR + LG-DGS-DOOR + LG-WALL + RM-DIVE-GEAR-STORAGE + RM-WALDORF + RM-RECREATION-ROOM + RM-CORRIDOR + RM-LADDER-B3 + RM-LADDER-B1 + .BYTE 0 + .ENDT + +T?RM-LADDER-B3:: .TABLE ; TABLE FOR OBJECT RM-LADDER-B3 + .STRL "ladderwell B" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-SB-OBS-DECK ; TO ROOM + .PROP 2,P?STARBOARD ; UNCONDITIONAL EXIT + RM-INFIRMARY ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-COMPUTER-CENTER ; TO ROOM + .PROP 2,P?DOWN ; UNCONDITIONAL EXIT + RM-LADDER-B2 ; TO ROOM + .PROP 4,P?SYNONYM + W?WELL + W?LADDERWELL + .PROP 2,P?ACTION + RT-RM-LADDER-B3 + .PROP 4,P?ADJECTIVE + W?LADDER + W?LADDERWELL + .PROP 10,P?GLOBAL + LG-WALL + RM-SB-OBS-DECK + RM-COMPUTER-CENTER + RM-INFIRMARY + RM-LADDER-B2 + .BYTE 0 + .ENDT + +T?INTNUM:: .TABLE ; TABLE FOR OBJECT INTNUM + .STRL "number" + .PROP 2,P?SYNONYM + W?INT.NUM + .BYTE 0 + .ENDT + +T?RM-LADDER-B1:: .TABLE ; TABLE FOR OBJECT RM-LADDER-B1 + .STRL "ladderwell B" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-SB-BATTERY-ROOM ; TO ROOM + .PROP 2,P?STARBOARD ; UNCONDITIONAL EXIT + RM-SB-HEAD ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-SB-LIFE-SUPPORT ; TO ROOM + .PROP 2,P?UP ; UNCONDITIONAL EXIT + RM-LADDER-B2 ; TO ROOM + .PROP 4,P?SYNONYM + W?WELL + W?LADDERWELL + .PROP 2,P?ACTION + RT-RM-LADDER-B1 + .PROP 4,P?ADJECTIVE + W?LADDER + W?LADDERWELL + .PROP 10,P?GLOBAL + LG-WALL + RM-SB-BATTERY-ROOM + RM-SB-LIFE-SUPPORT + RM-SB-HEAD + RM-LADDER-B2 + .BYTE 0 + .ENDT + +T?TH-POOL-OF-WATER:: .TABLE ; TABLE FOR OBJECT TH-POOL-OF-WATER + .STRL "pool" + .PROP 4,P?SYNONYM + W?POOL + W?WATER + .PROP 2,P?ACTION + RT-TH-POOL-OF-WATER + .PROP 2,P?ADJECTIVE + W?WATER + .BYTE 0 + .ENDT + +T?TH-MOON-POOL:: .TABLE ; TABLE FOR OBJECT TH-MOON-POOL + .STRL "moon pool" + .PROP 2,P?SYNONYM + W?POOL + .PROP 2,P?ACTION + RT-TH-MOON-POOL + .PROP 2,P?ADJECTIVE + W?MOON + .BYTE 0 + .ENDT + +T?TH-NIT-VALVE:: .TABLE ; TABLE FOR OBJECT TH-NIT-VALVE + .STRL "nitrogen valve" + .PROP 4,P?SYNONYM + W?VALVE + W?K-VALVE + .PROP 2,P?ACTION + RT-TH-NIT-VALVE + .PROP 4,P?ADJECTIVE + W?NITROGEN + W?K + .PROP 2,P?GENERIC + RT-GN-VALVE + .BYTE 0 + .ENDT + +T?TH-HEL-VALVE:: .TABLE ; TABLE FOR OBJECT TH-HEL-VALVE + .STRL "helium valve" + .PROP 4,P?SYNONYM + W?VALVE + W?K-VALVE + .PROP 2,P?ACTION + RT-TH-HEL-VALVE + .PROP 4,P?ADJECTIVE + W?HELIUM + W?K + .PROP 2,P?GENERIC + RT-GN-VALVE + .BYTE 0 + .ENDT + +T?RM-ZOOTOWN:: .TABLE ; TABLE FOR OBJECT RM-ZOOTOWN + .STRL "Zootown" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-PERSONAL-STORAGE-1 ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-LADDER-C2 ; TO ROOM + .PROP 2,P?SYNONYM + W?ZOOTOWN + .PROP 2,P?ACTION + RT-RM-ZOOTOWN + .PROP 6,P?GLOBAL + LG-WALL + RM-PERSONAL-STORAGE-1 + RM-LADDER-C2 + .BYTE 0 + .ENDT + +T?RM-OCEAN-SOUTH:: .TABLE ; TABLE FOR OBJECT RM-OCEAN-SOUTH + .STRL "ocean floor" + .PROP 2,P?NORTH ; UNCONDITIONAL EXIT + RM-UNDER-MOONPOOL ; TO ROOM + .PROP 4,P?SYNONYM + W?FLOOR + W?OCEAN + .PROP 2,P?ACTION + RT-RM-OCEAN-SOUTH + .PROP 2,P?ADJECTIVE + W?OCEAN + .PROP 2,P?GLOBAL + LG-DEEPCORE + .BYTE 0 + .ENDT + +T?TH-DEVICE:: .TABLE ; TABLE FOR OBJECT TH-DEVICE + .STRL "device" + .PROP 2,P?SYNONYM + W?DEVICE + .PROP 2,P?ACTION + RT-TH-DEVICE + .PROP 4,P?ADJECTIVE + W?REMOTE + W?ELECTRONIC + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .PROP 2,P?OWNER + CH-HIPPY + .BYTE 0 + .ENDT + +T?TH-GROUND:: .TABLE ; TABLE FOR OBJECT TH-GROUND + .STRL "" + .PROP 4,P?SYNONYM + W?GROUND + W?FLOOR + .PROP 2,P?ACTION + RT-TH-GROUND + .BYTE 0 + .ENDT + +T?RM-GALLEY:: .TABLE ; TABLE FOR OBJECT RM-GALLEY + .STRL "Stu's galley" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-MESS-HALL ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-PANTRY ; TO ROOM + .PROP 2,P?SYNONYM + W?GALLEY + .PROP 2,P?ACTION + RT-RM-GALLEY + .PROP 6,P?GLOBAL + LG-WALL + RM-MESS-HALL + RM-PANTRY + .BYTE 0 + .ENDT + +T?RM-LOUNGE:: .TABLE ; TABLE FOR OBJECT RM-LOUNGE + .STRL "lounge" + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-LADDER-A2 ; TO ROOM + .PROP 2,P?SYNONYM + W?LOUNGE + .PROP 2,P?ACTION + RT-RM-LOUNGE + .PROP 4,P?GLOBAL + LG-WALL + RM-LADDER-A2 + .BYTE 0 + .ENDT + +T?RM-PT-BATTERY-ROOM:: .TABLE ; TABLE FOR OBJECT RM-PT-BATTERY-ROOM + .STRL "port battery room" + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-LADDER-A1 ; TO ROOM + .PROP 2,P?SYNONYM + W?ROOM + .PROP 2,P?ACTION + RT-RM-PT-BATTERY-ROOM + .PROP 2,P?MENU + STR?129 + .PROP 4,P?ADJECTIVE + W?PORT + W?BATTERY + .PROP 4,P?GLOBAL + LG-WALL + RM-LADDER-A1 + .BYTE 0 + .ENDT + +T?TH-CO2-CANNISTER:: .TABLE ; TABLE FOR OBJECT TH-CO2-CANNISTER + .STRL "CO2 cannister" + .PROP 2,P?SYNONYM + W?CANNISTER + .PROP 2,P?ACTION + RT-TH-CO2-CANNISTER + .PROP 6,P?ADJECTIVE + W?CO2 + W?CARBON + W?DIOXIDE + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .BYTE 0 + .ENDT + +T?RM-MOTEL-QUICK:: .TABLE ; TABLE FOR OBJECT RM-MOTEL-QUICK + .STRL "motel Quick" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-LADDER-A3 ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-PERSONAL-STORAGE-2 ; TO ROOM + .PROP 2,P?SYNONYM + W?QUICK + .PROP 2,P?ACTION + RT-RM-MOTEL-QUICK + .PROP 2,P?ADJECTIVE + W?MOTEL + .PROP 6,P?GLOBAL + LG-WALL + RM-LADDER-A3 + RM-PERSONAL-STORAGE-2 + .BYTE 0 + .ENDT + +T?TH-WIRE-CUTTERS:: .TABLE ; TABLE FOR OBJECT TH-WIRE-CUTTERS + .STRL "wire cutters" + .PROP 2,P?SYNONYM + W?CUTTERS + .PROP 2,P?ACTION + RT-TH-WIRE-CUTTERS + .PROP 2,P?ADJECTIVE + W?WIRE + .BYTE 0 + .ENDT + +T?CH-LINDSEY:: .TABLE ; TABLE FOR OBJECT CH-LINDSEY + .STRL "Lindsey" + .PROP 6,P?SYNONYM + W?LINDSEY + W?WOMAN + W?PERSON + .BYTE 0 + .ENDT + +T?TH-CLUE-PAPER:: .TABLE ; TABLE FOR OBJECT TH-CLUE-PAPER + .STRL "paper" + .PROP 2,P?SYNONYM + W?PAPER + .PROP 2,P?ACTION + RT-TH-CLUE-PAPER + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .BYTE 0 + .ENDT + +T?RM-SB-OBS-DECK:: .TABLE ; TABLE FOR OBJECT RM-SB-OBS-DECK + .STRL "starboard observation deck" + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-LADDER-B3 ; TO ROOM + .PROP 2,P?SYNONYM + W?DECK + .PROP 2,P?ACTION + RT-RM-SB-OBS-DECK + .PROP 4,P?ADJECTIVE + W?STARBOARD + W?OBSERVATION + .PROP 4,P?GLOBAL + LG-WALL + RM-LADDER-B3 + .BYTE 0 + .ENDT + +T?RM-MISSILE-HATCH:: .TABLE ; TABLE FOR OBJECT RM-MISSILE-HATCH + .STRL "missile hatch" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-BOW ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-MIDSHIP-HATCH ; TO ROOM + .PROP 2,P?SYNONYM + W?HATCH + .PROP 2,P?ACTION + RT-RM-MISSILE-HATCH + .PROP 2,P?ADJECTIVE + W?MISSILE + .PROP 6,P?GLOBAL + LG-MONTANA + LG-TROUGH + RM-MISSILE-ROOM + .BYTE 0 + .ENDT + +T?TH-COMPRESSOR:: .TABLE ; TABLE FOR OBJECT TH-COMPRESSOR + .STRL "compressor" + .PROP 2,P?SYNONYM + W?COMPRESSOR + .PROP 2,P?ACTION + RT-TH-COMPRESSOR + .BYTE 0 + .ENDT + +T?TH-PLAYER-BODY:: .TABLE ; TABLE FOR OBJECT TH-PLAYER-BODY + .STRL "body" + .PROP 54,P?SYNONYM + W?BODY + W?SKIN + W?ARM + W?ARMS + W?ANKLE + W?ANKLES + W?FOOT + W?FEET + W?HAIR + W?EYE + W?EYES + W?EAR + W?EARS + W?NOSE + W?FACE + W?CHEEK + W?CHEEKS + W?LIP + W?LIPS + W?TONGUE + W?NECK + W?SHOULDER + W?SHOULDERS + W?CHEST + W?TORSO + W?BACK + W?WAIST + .PROP 2,P?ACTION + RT-TH-PLAYER-BODY + .PROP 4,P?ADJECTIVE + W?LEFT + W?RIGHT + .PROP 2,P?OWNER + CH-PLAYER + .PROP 2,P?GENERIC + RT-GN-BODY + .BYTE 0 + .ENDT + +T?TH-OXY-STOPPER:: .TABLE ; TABLE FOR OBJECT TH-OXY-STOPPER + .STRL "oxygen stopper" + .PROP 2,P?SYNONYM + W?STOPPER + .PROP 2,P?ACTION + RT-TH-OXY-STOPPER + .PROP 2,P?ADJECTIVE + W?OXYGEN + .PROP 2,P?GENERIC + RT-GN-STOPPER + .BYTE 0 + .ENDT + +T?RM-LAB:: .TABLE ; TABLE FOR OBJECT RM-LAB + .STRL "lab" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-COMPUTER-CENTER ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-TAPE-LIBRARY ; TO ROOM + .PROP 4,P?SYNONYM + W?LAB + W?LABORATORY + .PROP 2,P?ACTION + RT-RM-LAB + .PROP 6,P?GLOBAL + LG-WALL + RM-COMPUTER-CENTER + RM-TAPE-LIBRARY + .BYTE 0 + .ENDT + +T?TH-MISSILE:: .TABLE ; TABLE FOR OBJECT TH-MISSILE + .STRL "missile" + .PROP 2,P?SYNONYM + W?MISSILE + .PROP 2,P?ACTION + RT-TH-MISSILE + .BYTE 0 + .ENDT + +T?INTPP:: .TABLE ; TABLE FOR OBJECT INTPP + .STRL "prep phrase" + .PROP 2,P?SYNONYM + W?L.G + .BYTE 0 + .ENDT + +T?RM-MESS-HALL:: .TABLE ; TABLE FOR OBJECT RM-MESS-HALL + .STRL "mess hall" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-LADDER-A2 ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-GALLEY ; TO ROOM + .PROP 2,P?SYNONYM + W?HALL + .PROP 2,P?ACTION + RT-RM-MESS-HALL + .PROP 2,P?ADJECTIVE + W?MESS + .PROP 6,P?GLOBAL + LG-WALL + RM-LADDER-A2 + RM-GALLEY + .BYTE 0 + .ENDT + +T?TH-FUSCHIA-BUTTON:: .TABLE ; TABLE FOR OBJECT TH-FUSCHIA-BUTTON + .STRL "fuschia button" + .PROP 2,P?SYNONYM + W?BUTTON + .PROP 2,P?ACTION + RT-TH-FUSCHIA-BUTTON + .PROP 2,P?ADJECTIVE + W?FUSCHIA + .BYTE 0 + .ENDT + +T?GLOBAL-HERE:: .TABLE ; TABLE FOR OBJECT GLOBAL-HERE + .STRL "here" + .PROP 8,P?SYNONYM + W?HERE + W?PLACE + W?ROOM + W?AREA + .PROP 2,P?ACTION + RT-GLOBAL-HERE + .BYTE 0 + .ENDT + +T?RM-CAPTAINS-ROOM:: .TABLE ; TABLE FOR OBJECT RM-CAPTAINS-ROOM + .STRL "captain's quarters" + .PROP 2,P?UP ; UNCONDITIONAL EXIT + RM-SUB-CORRIDOR ; TO ROOM + .PROP 6,P?SYNONYM + W?QUARTERS + W?ROOM + W?STATEROOM + .PROP 2,P?ACTION + RT-RM-CAPTAINS-ROOM + .PROP 4,P?ADJECTIVE + W?CAPTAIN + W?STATE + .PROP 6,P?GLOBAL + LG-WALL + LG-MONTANA + RM-SUB-CORRIDOR + .BYTE 0 + .ENDT + +T?RM-TRI-MIX-STORAGE:: .TABLE ; TABLE FOR OBJECT RM-TRI-MIX-STORAGE + .STRL "tri-mix storage" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-COMPRESSOR-ROOM ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-LADDER-D1 ; TO ROOM + .PROP 2,P?SYNONYM + W?STORAGE + .PROP 2,P?ACTION + RT-RM-TRI-MIX-STORAGE + .PROP 6,P?ADJECTIVE + W?TRI + W?MIX + W?TRI-MIX + .PROP 6,P?GLOBAL + LG-WALL + RM-COMPRESSOR-ROOM + RM-LADDER-D1 + .BYTE 0 + .ENDT + +T?TH-HELMET:: .TABLE ; TABLE FOR OBJECT TH-HELMET + .STRL "helmet" + .PROP 2,P?SYNONYM + W?HELMET + .PROP 2,P?ACTION + RT-TH-HELMET + .PROP 4,P?ADJECTIVE + W?DRY + W?SUIT + .BYTE 0 + .ENDT + +T?TH-BLUE-WIRE:: .TABLE ; TABLE FOR OBJECT TH-BLUE-WIRE + .STRL "blue wire" + .PROP 2,P?SYNONYM + W?WIRE + .PROP 2,P?ACTION + RT-TH-WIRE + .PROP 2,P?ADJECTIVE + W?BLUE + .BYTE 0 + .ENDT + +T?RM-LAUNDRY:: .TABLE ; TABLE FOR OBJECT RM-LAUNDRY + .STRL "laundry" + .PROP 2,P?STARBOARD ; UNCONDITIONAL EXIT + RM-LADDER-A1 ; TO ROOM + .PROP 2,P?SYNONYM + W?LAUNDRY + .PROP 2,P?ACTION + RT-RM-LAUNDRY + .PROP 4,P?GLOBAL + LG-WALL + RM-LADDER-A1 + .BYTE 0 + .ENDT + +T?TH-TREADMILL:: .TABLE ; TABLE FOR OBJECT TH-TREADMILL + .STRL "treadmill" + .PROP 2,P?SYNONYM + W?TREADMILL + .PROP 2,P?ACTION + RT-TH-TREADMILL + .BYTE 0 + .ENDT + +T?LG-DEEPCORE:: .TABLE ; TABLE FOR OBJECT LG-DEEPCORE + .STRL "Deepcore" + .PROP 2,P?SYNONYM + W?DEEPCORE + .PROP 2,P?ACTION + RT-LG-DEEPCORE + .BYTE 0 + .ENDT + +T?CH-PLAYER:: .TABLE ; TABLE FOR OBJECT CH-PLAYER + .STRL "yourself" + .PROP 10,P?SYNONYM + W?ME + W?MYSELF + W?SELF + W?BUD + W?BRIGMAN + .PROP 2,P?MENU + STR?60 + .PROP 2,P?ADJECTIVE + W?BUD + .BYTE 0 + .ENDT + +T?LG-MIDSHIP-HATCH:: .TABLE ; TABLE FOR OBJECT LG-MIDSHIP-HATCH + .STRL "midship hatch" + .PROP 2,P?SYNONYM + W?HATCH + .PROP 2,P?ACTION + RT-LG-MIDSHIP-HATCH + .PROP 2,P?ADJECTIVE + W?MIDSHIP + .BYTE 0 + .ENDT + +T?GLOBAL-OBJECTS:: .TABLE ; TABLE FOR OBJECT GLOBAL-OBJECTS + .STRL "GO" + .PROP 2,P?THINGS + PT?127 + .PROP 2,P?GLOBAL + 0 + .PROP 2,P?OWNER + 0 + .PROP 2,P?GENERIC + 0 + .PROP 2,P?CAPACITY + 0 + .PROP 2,P?SCORE + 0 + .BYTE 0 + .ENDT + +T?TH-CATFISH-LOCKER:: .TABLE ; TABLE FOR OBJECT TH-CATFISH-LOCKER + .STRL "locker" + .PROP 2,P?SYNONYM + W?LOCKER + .PROP 2,P?ACTION + RT-TH-CATFISH-LOCKER + .PROP 2,P?ADJECTIVE + W?CATFISH + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .BYTE 0 + .ENDT + +T?TH-PANEL:: .TABLE ; TABLE FOR OBJECT TH-PANEL + .STRL "panel" + .PROP 2,P?SYNONYM + W?PANEL + .PROP 2,P?ACTION + RT-TH-PANEL + .BYTE 0 + .ENDT + +T?TH-ALIEN-SHIP:: .TABLE ; TABLE FOR OBJECT TH-ALIEN-SHIP + .STRL "alien ship" + .PROP 2,P?SYNONYM + W?SHIP + .PROP 2,P?ADJECTIVE + W?ALIEN + .BYTE 0 + .ENDT + +T?TH-PHOTOGRAPH:: .TABLE ; TABLE FOR OBJECT TH-PHOTOGRAPH + .STRL "photograph" + .PROP 6,P?SYNONYM + W?PHOTOGRAPH + W?PICTURE + W?FRAME + .PROP 2,P?ACTION + RT-TH-PHOTOGRAPH + .PROP 2,P?ADJECTIVE + W?FRAMED + .BYTE 0 + .ENDT + +T?TH-YELLOW-WIRE:: .TABLE ; TABLE FOR OBJECT TH-YELLOW-WIRE + .STRL "yellow wire" + .PROP 2,P?SYNONYM + W?WIRE + .PROP 2,P?ACTION + RT-TH-WIRE + .PROP 2,P?ADJECTIVE + W?YELLOW + .BYTE 0 + .ENDT + +T?TH-MONITORS:: .TABLE ; TABLE FOR OBJECT TH-MONITORS + .STRL "monitors" + .PROP 4,P?SYNONYM + W?MONITOR + W?MONITORS + .PROP 2,P?ACTION + RT-TH-MONITORS + .BYTE 0 + .ENDT + +T?TH-STEEL-KEY:: .TABLE ; TABLE FOR OBJECT TH-STEEL-KEY + .STRL "steel key" + .PROP 2,P?SYNONYM + W?KEY + .PROP 2,P?ACTION + RT-TH-STEEL-KEY + .PROP 2,P?ADJECTIVE + W?STEEL + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .PROP 2,P?OWNER + TH-DRYER + .BYTE 0 + .ENDT + +T?RM-CAB-THREE:: .TABLE ; TABLE FOR OBJECT RM-CAB-THREE + .STRL "Cab three" + .PROP 4,P?DOWN ; CONDITIONAL EXIT + RT-OUT-CAB ; PER FUNCTION + .BYTE 0 + .BYTE 0 + .PROP 4,P?OUT ; CONDITIONAL EXIT + RT-OUT-CAB ; PER FUNCTION + .BYTE 0 + .BYTE 0 + .PROP 4,P?SYNONYM + W?CAB + W?THREE + .PROP 2,P?ACTION + RT-RM-CAB-THREE + .PROP 2,P?ADJECTIVE + W?CAB + .BYTE 0 + .ENDT + +T?LG-CHAMBER-HATCH:: .TABLE ; TABLE FOR OBJECT LG-CHAMBER-HATCH + .STRL "compression chamber hatch" + .PROP 2,P?SYNONYM + W?HATCH + .PROP 2,P?ACTION + RT-LG-CHAMBER-HATCH + .PROP 2,P?MENU + STR?121 + .PROP 4,P?ADJECTIVE + W?COMPRESSION + W?CHAMBER + .BYTE 0 + .ENDT + +T?RM-ENGINE-ROOM:: .TABLE ; TABLE FOR OBJECT RM-ENGINE-ROOM + .STRL "engine room" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-TORPEDO-ROOM ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-MISSILE-ROOM ; TO ROOM + .PROP 2,P?SYNONYM + W?ROOM + .PROP 2,P?ACTION + RT-RM-ENGINE-ROOM + .PROP 2,P?ADJECTIVE + W?ENGINE + .PROP 8,P?GLOBAL + LG-WALL + LG-MONTANA + RM-TORPEDO-ROOM + RM-MISSILE-ROOM + .BYTE 0 + .ENDT + +T?TH-HEL-STOPPER:: .TABLE ; TABLE FOR OBJECT TH-HEL-STOPPER + .STRL "helium stopper" + .PROP 2,P?SYNONYM + W?STOPPER + .PROP 2,P?ACTION + RT-TH-HEL-STOPPER + .PROP 2,P?ADJECTIVE + W?HELIUM + .PROP 2,P?GENERIC + RT-GN-STOPPER + .BYTE 0 + .ENDT + +T?TH-PASSPORT:: .TABLE ; TABLE FOR OBJECT TH-PASSPORT + .STRL "passport" + .PROP 2,P?SYNONYM + W?PASSPORT + .PROP 2,P?ACTION + RT-TH-PASSPORT + .PROP 2,P?ADJECTIVE + W?CATFISH + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .BYTE 0 + .ENDT + +T?TH-ELECTRONIC-LOCK:: .TABLE ; TABLE FOR OBJECT TH-ELECTRONIC-LOCK + .STRL "lock" + .PROP 2,P?SYNONYM + W?LOCK + .PROP 2,P?ACTION + RT-TH-ELECTRONIC-LOCK + .PROP 2,P?ADJECTIVE + W?ELECTRONIC + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .BYTE 0 + .ENDT + +T?RM-PANTRY:: .TABLE ; TABLE FOR OBJECT RM-PANTRY + .STRL "pantry" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-GALLEY ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-LADDER-D2 ; TO ROOM + .PROP 2,P?SYNONYM + W?PANTRY + .PROP 2,P?ACTION + RT-RM-PANTRY + .PROP 6,P?GLOBAL + LG-WALL + RM-GALLEY + RM-LADDER-D2 + .BYTE 0 + .ENDT + +T?CH-ONE-NIGHT:: .TABLE ; TABLE FOR OBJECT CH-ONE-NIGHT + .STRL "One-night" + .PROP 8,P?SYNONYM + W?NIGHT + W?ONE-NIGHT + W?WOMAN + W?PERSON + .PROP 2,P?ACTION + RT-CH-ONE-NIGHT + .PROP 2,P?ADJECTIVE + W?ONE + .BYTE 0 + .ENDT + +T?TH-RED-LEVER:: .TABLE ; TABLE FOR OBJECT TH-RED-LEVER + .STRL "lever" + .PROP 2,P?SYNONYM + W?LEVER + .PROP 2,P?ACTION + RT-TH-RED-LEVER + .PROP 2,P?ADJECTIVE + W?RED + .BYTE 0 + .ENDT + +T?LOCAL-GLOBALS:: .TABLE ; TABLE FOR OBJECT LOCAL-GLOBALS + .STRL "LG" + .PROP 2,P?SYNONYM + W?L.G + .BYTE 0 + .ENDT + +T?RM-COMM-ROOM:: .TABLE ; TABLE FOR OBJECT RM-COMM-ROOM + .STRL "comm room" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-SONAR-ROOM ; TO ROOM + .PROP 4,P?AFT ; CONDITIONAL EXIT + RT-THRU-BUCKLED-DOOR ; PER FUNCTION + .BYTE 0 + .BYTE 0 + .PROP 2,P?SYNONYM + W?ROOM + .PROP 2,P?ACTION + RT-RM-COMM-ROOM + .PROP 4,P?ADJECTIVE + W?COMM + W?COMMUNICATIONS + .PROP 10,P?GLOBAL + LG-BUCKLED-DOOR + LG-WALL + LG-MONTANA + RM-SONAR-ROOM + RM-SUB-CORRIDOR + .BYTE 0 + .ENDT + +T?TH-FBS-SUIT:: .TABLE ; TABLE FOR OBJECT TH-FBS-SUIT + .STRL "FBS suit" + .PROP 2,P?SYNONYM + W?SUIT + .PROP 2,P?ACTION + RT-TH-FBS-SUIT + .PROP 8,P?ADJECTIVE + W?FBS + W?FLUID + W?BREATHING + W?SYSTEM + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .BYTE 0 + .ENDT + +T?TH-NITROGEN-TANK:: .TABLE ; TABLE FOR OBJECT TH-NITROGEN-TANK + .STRL "nitrogen tank" + .PROP 4,P?SYNONYM + W?TANK + W?BASE + .PROP 2,P?ACTION + RT-TH-NITROGEN-TANK + .PROP 4,P?ADJECTIVE + W?NITROGEN + W?STORAGE + .PROP 2,P?GENERIC + RT-GN-TANK + .BYTE 0 + .ENDT + +T?TH-GUN:: .TABLE ; TABLE FOR OBJECT TH-GUN + .STRL "gun" + .PROP 4,P?SYNONYM + W?GUN + W?PISTOL + .PROP 2,P?ACTION + RT-TH-GUN + .PROP 2,P?SIZE + .BYTE 5 + .BYTE 0 + .PROP 2,P?OWNER + CH-COFFEY + .BYTE 0 + .ENDT + +T?LG-MONTANA:: .TABLE ; TABLE FOR OBJECT LG-MONTANA + .STRL "Montana" + .PROP 6,P?SYNONYM + W?MONTANA + W?SUBMARINE + W?SUB + .PROP 2,P?ACTION + RT-LG-MONTANA + .PROP 8,P?ADJECTIVE + W?NAVY + W?USS + W?OHIO + W?CLASS + .BYTE 0 + .ENDT + +T?RM-GAS-MIX-ROOM:: .TABLE ; TABLE FOR OBJECT RM-GAS-MIX-ROOM + .STRL "gas mix room" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-SUB-BAY ; TO ROOM + .PROP 6,P?AFT ; CONDITIONAL EXIT + RM-COMPRESSION-CHAMBER ; TO ROOM + LG-CHAMBER-DOOR ; IF DOOR IS OPEN + 0 ; FAILURE MESSAGE + .PROP 2,P?SYNONYM + W?ROOM + .PROP 2,P?ADJACENT + PT?220 + .PROP 2,P?ACTION + RT-RM-GAS-MIX-ROOM + .PROP 4,P?ADJECTIVE + W?GAS + W?MIX + .PROP 8,P?GLOBAL + LG-WALL + RM-SUB-BAY + RM-COMPRESSION-CHAMBER + LG-CHAMBER-DOOR + .BYTE 0 + .ENDT + +T?RM-SUB-CORRIDOR:: .TABLE ; TABLE FOR OBJECT RM-SUB-CORRIDOR + .STRL "corridor" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-COMM-ROOM ; TO ROOM + .PROP 2,P?DOWN ; UNCONDITIONAL EXIT + RM-CAPTAINS-ROOM ; TO ROOM + .PROP 2,P?SYNONYM + W?CORRIDOR + .PROP 2,P?ACTION + RT-RM-SUB-CORRIDOR + .PROP 8,P?GLOBAL + LG-WALL + LG-MONTANA + RM-COMM-ROOM + RM-CAPTAINS-ROOM + .BYTE 0 + .ENDT + +T?RM-COMPRESSOR-ROOM:: .TABLE ; TABLE FOR OBJECT RM-COMPRESSOR-ROOM + .STRL "compressor room" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-PT-LIFE-SUPPORT ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-TRI-MIX-STORAGE ; TO ROOM + .PROP 2,P?SYNONYM + W?ROOM + .PROP 2,P?ACTION + RT-RM-COMPRESSOR-ROOM + .PROP 2,P?ADJECTIVE + W?COMPRESSOR + .PROP 6,P?GLOBAL + LG-WALL + RM-PT-LIFE-SUPPORT + RM-TRI-MIX-STORAGE + .BYTE 0 + .ENDT + +T?TH-MISSILE-TIMER:: .TABLE ; TABLE FOR OBJECT TH-MISSILE-TIMER + .STRL "timer" + .PROP 2,P?SYNONYM + W?TIMER + .PROP 2,P?ACTION + RT-TH-MISSILE-TIMER + .PROP 2,P?ADJECTIVE + W?MISSILE + .BYTE 0 + .ENDT + +T?RM-TOOL-ROOM:: .TABLE ; TABLE FOR OBJECT RM-TOOL-ROOM + .STRL "tool room" + .PROP 2,P?STARBOARD ; UNCONDITIONAL EXIT + RM-DRILL-ROOM ; TO ROOM + .PROP 2,P?PORT ; UNCONDITIONAL EXIT + RM-TOOL-PUSHER-OFFICE ; TO ROOM + .PROP 2,P?SYNONYM + W?ROOM + .PROP 2,P?ACTION + RT-RM-TOOL-ROOM + .PROP 2,P?ADJECTIVE + W?TOOL + .PROP 6,P?GLOBAL + LG-WALL + RM-DRILL-ROOM + RM-TOOL-PUSHER-OFFICE + .BYTE 0 + .ENDT + +T?RM-PERSONAL-STORAGE-2:: .TABLE ; TABLE FOR OBJECT RM-PERSONAL-STORAGE-2 + .STRL "personal storage" + .PROP 2,P?FORE ; UNCONDITIONAL EXIT + RM-MOTEL-QUICK ; TO ROOM + .PROP 2,P?AFT ; UNCONDITIONAL EXIT + RM-SWAMP ; TO ROOM + .PROP 2,P?SYNONYM + W?STORAGE + .PROP 2,P?ACTION + RT-RM-PERSONAL-STORAGE-2 + .PROP 2,P?ADJECTIVE + W?PERSONAL + .PROP 6,P?GLOBAL + LG-WALL + RM-MOTEL-QUICK + RM-SWAMP + .BYTE 0 + .ENDT + +T?LG-BUCKLED-DOOR:: .TABLE ; TABLE FOR OBJECT LG-BUCKLED-DOOR + .STRL "door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 2,P?ACTION + RT-LG-BUCKLED-DOOR + .PROP 4,P?ADJECTIVE + W?BUCKLED + W?JAMMED + .BYTE 0 + .ENDT + +T?LG-CHAMBER-DOOR:: .TABLE ; TABLE FOR OBJECT LG-CHAMBER-DOOR + .STRL "compression chamber door" + .PROP 2,P?SYNONYM + W?DOOR + .PROP 2,P?MENU + STR?123 + .PROP 4,P?ADJECTIVE + W?COMPRESSION + W?CHAMBER + .BYTE 0 + .ENDT + +T?TH-WHITE-WIRE:: .TABLE ; TABLE FOR OBJECT TH-WHITE-WIRE + .STRL "white wire" + .PROP 2,P?SYNONYM + W?WIRE + .PROP 2,P?ACTION + RT-TH-WIRE + .PROP 2,P?ADJECTIVE + W?WHITE + .BYTE 0 + .ENDT + +T?INTADJ:: .TABLE ; TABLE FOR OBJECT INTADJ + .STRL "adjective" + .PROP 2,P?SYNONYM + W?L.G + .BYTE 0 + .ENDT + +T?INTDIR:: .TABLE ; TABLE FOR OBJECT INTDIR + .STRL "direction" + .PROP 16,P?SYNONYM + W?FORE + W?STARBOARD + W?AFT + W?PORT + W?NORTH + W?SOUTH + W?EAST + W?WEST + .BYTE 0 + .ENDT + +T?TH-HOOK-1:: .TABLE ; TABLE FOR OBJECT TH-HOOK-1 + .STRL "hook" + .PROP 2,P?SYNONYM + W?HOOK + .PROP 2,P?ACTION + RT-TH-HOOK-1 + .BYTE 0 + .ENDT + + +; IMPURE TABLES ARE DEFINED HERE + +IMPTBL:: + +T?101:: +TCHARS:: .TABLE + .BYTE 32 + .BYTE K-UP + .BYTE K-DOWN + .BYTE K-LEFT + .BYTE K-RIGHT + .BYTE K-F1 + .BYTE K-F2 + .BYTE K-F3 + .BYTE K-F4 + .BYTE K-F5 + .BYTE K-F6 + .BYTE K-F7 + .BYTE K-F8 + .BYTE K-F9 + .BYTE K-F10 + .BYTE K-F11 + .BYTE K-F12 + .BYTE K-CLICK1 + .BYTE K-CLICK2 + .BYTE 0 + .ENDT + +T?231:: +LOWCORE-TABLE:: .TABLE + 2 + 0 + 0 + .ENDT + +T?104:: +PMEM-STORE:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?105:: +ORPHAN-ADJS:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?205:: +ORPHAN-NP:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?305:: +ORPHAN-NP2:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?405:: +ORPHAN-S:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?505:: +SEARCH-RES:: .TABLE + 6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?605:: +ORPHAN-SR:: .TABLE + 6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?705:: +OWNER-SR-HERE:: .TABLE + 6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?805:: +OWNER-SR-THERE:: .TABLE + 6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?107:: +STATE-STACK:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?207:: +SPLIT-STACK:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?307:: +DATA-STACK:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?407:: +P-LEXV:: .TABLE + .BYTE 59 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?507:: +G-LEXV:: .TABLE + .BYTE 59 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?607:: +O-LEXV:: .TABLE + .BYTE 59 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + 0 + .BYTE 0 + .BYTE 0 + .ENDT + +T?707:: +P-INBUF:: .TABLE + .BYTE 60 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .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?807:: +G-INBUF:: .TABLE + .BYTE 60 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .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?907:: +O-INBUF:: .TABLE + .BYTE 60 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .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?1007:: +OOPS-TABLE:: .TABLE + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?1107:: +ERROR-ARGS:: .TABLE + 0 + 0 + 0 + 0 + .ENDT + +T?1207:: +K-FIRST-ENTRY-TBL:: .TABLE + .BYTE 1 + .BYTE 1 + .ENDT + +T?1307:: +K-MENU-TBL-TYPE:: .TABLE + .BYTE 1 + .BYTE 1 + .ENDT + +T?1407:: +K-MENU-TBL:: .TABLE + 0 + 0 + .ENDT + +T?1507:: +K-ITEM-TBL:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?1607:: +K-JUNK-TBL:: +T?GL-FREE-PTR:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 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?1707:: +K-OBJECT-TBL:: .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?1807:: +PARSE-RESULT:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?1907:: +OFFENDED:: .TABLE + 7 + 0 + STR?2 + STR?3 + STR?4 + STR?5 + STR?6 + STR?7 + .ENDT + +T?2007:: +GWIM-MSG:: .TABLE + 0 + 0 + 0 + 0 + .ENDT + +T?108:: +FINDER:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?109:: +PREP-BIT:: .TABLE + 0 + 0 + 0 + .ENDT + +T?113:: +YES-INBUF:: .TABLE + .BYTE 19 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .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?213:: +YES-LEXV:: .TABLE + .BYTE 3 + .BYTE 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?115:: +T?GL-LOC-TRAIL:: .TABLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + .ENDT + +T?215:: +K-DIROUT-TBL:: .TABLE + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .BYTE 0 + .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?315:: +T?GL-Q-TBL:: .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 + .ENDT + +T?415:: +K-WIN-TBL:: .TABLE + 0 + 0 + 0 + .ENDT + +T?119:: +ADJ-TABLE:: .TABLE + 18 + W?OUTSIDE + IS-OUTSIDE? + W?OPEN + IS-OPEN? + W?CLOSED + IS-CLOSED? + W?LOCKED + IS-LOCKED? + W?UNLOCKED + IS-UNLOCKED? + W?DEAD + IS-DEAD? + W?ALIVE + IS-ALIVE? + W?QUIET + IS-QUIET? + W?HERE + IS-HERE? + .ENDT + +T?128:: +K-NOT-LIKELY-TBL:: .TABLE + .BYTE 1 + PT?328 + .ENDT + +T?228:: +K-NO-POINT-TBL:: .TABLE + .BYTE 1 + PT?428 + .ENDT + +T?328:: +K-UNUSUAL-TBL:: .TABLE + .BYTE 1 + PT?528 + .ENDT + +T?131:: +WORD-FLAG-TABLE:: .TABLE + 30 + W?TANKS + 16 + W?WIRES + 16 + W?MEN + 16 + W?WOMEN + 16 + W?PEOPLE + 16 + W?SHALL + 1024 + W?DID + 512 + W?DOES + 64 + W?SHALL + 1024 + W?WILL + 1024 + W?WERE + 632 + W?WAS + 584 + W?IS + 320 + W?ARE + 376 + W?AM + 264 + .ENDT + + +; END OF IMPURENESS + +IMPURE:: + + + +; VERB STUFF FOR WORDS IS DEFINED HERE + +NVTBL:: .TABLE +ACT?PRESS:: ; VERB-DATA FOR PRESS + -1 + 0 + RT?131 + 0 +ACT?STICK:: ; VERB-DATA FOR STICK + -1 + 0 + 0 + RT?231 +ACT?UNLOCK:: ; VERB-DATA FOR UNLOCK + -1 + 0 + 0 + RT?331 +ACT?TIE:: ; VERB-DATA FOR TIE + -1 + 0 + 0 + RT?431 +ACT?$REFRESH:: ; VERB-DATA FOR $REFRESH + V?$REFRESH + 0 + 0 + 0 +ACT?LET:: ; VERB-DATA FOR LET + -1 + 0 + RT?531 + 0 +ACT?CAN:: ; VERB-DATA FOR CAN + -1 + 0 + RT?631 + 0 +ACT?SLIDE:: ; VERB-DATA FOR SLIDE + -1 + 0 + 0 + RT?731 +ACT?INVENTORY:: ; VERB-DATA FOR INVENTORY + V?INVENTORY + 0 + 0 + 0 +ACT?$SHOW:: ; VERB-DATA FOR $SHOW + V?$SHOW + 0 + 0 + 0 +ACT?CLAMP:: ; VERB-DATA FOR CLAMP + -1 + 0 + 0 + RT?831 +ACT?MIGHT:: ; VERB-DATA FOR MIGHT + -1 + 0 + RT?931 + 0 +ACT?WOULD:: ; VERB-DATA FOR WOULD + -1 + 0 + RT?1031 + 0 +ACT?ASK:: ; VERB-DATA FOR ASK + -1 + 0 + 0 + RT?1131 +ACT?SAVE:: ; VERB-DATA FOR SAVE + V?SAVE + 0 + 0 + 0 +ACT?#DBG:: ; VERB-DATA FOR #DBG + V?PDEBUG + 0 + 0 + 0 +ACT?SET:: ; VERB-DATA FOR SET + -1 + 0 + 0 + RT?1231 +ACT?LISTEN:: ; VERB-DATA FOR LISTEN + -1 + 0 + RT?1331 + 0 +ACT?REACH:: ; VERB-DATA FOR REACH + -1 + 0 + RT?1431 + RT?1531 +ACT?$AIR:: ; VERB-DATA FOR $AIR + V?$AIR + 0 + 0 + 0 +ACT?SWITCH:: ; VERB-DATA FOR SWITCH + -1 + 0 + RT?1631 + RT?1731 +ACT?RESTART:: ; VERB-DATA FOR RESTART + V?RESTART + 0 + 0 + 0 +ACT?BE:: ; VERB-DATA FOR BE + -1 + 0 + RT?1831 + RT?1931 +ACT?$P:: ; VERB-DATA FOR $P + -1 + 0 + RT?2031 + 0 +ACT?EXAMINE:: ; VERB-DATA FOR EXAMINE + -1 + 0 + RT?2131 + 0 +ACT?LIFT:: ; VERB-DATA FOR LIFT + -1 + 0 + 0 + RT?2231 +ACT?HOW:: ; VERB-DATA FOR HOW + -1 + 0 + RT?2331 + RT?2431 +ACT?CLOSE:: ; VERB-DATA FOR CLOSE + -1 + 0 + RT?2531 + 0 +ACT?$W:: ; VERB-DATA FOR $W + -1 + 0 + RT?2631 + 0 +ACT?TURN:: ; VERB-DATA FOR TURN + -1 + 0 + RT?2731 + RT?2831 +ACT?BE?:: ; VERB-DATA FOR BE? + -1 + 0 + RT?2931 + RT?3031 +ACT?#UNRECORD:: ; VERB-DATA FOR #UNRECORD + V?UNRECORD + 0 + 0 + 0 +ACT?BRIEF:: ; VERB-DATA FOR BRIEF + V?DESC-LEVEL + 0 + 0 + 0 +ACT?WALK:: ; VERB-DATA FOR WALK + -1 + 0 + RT?3131 + 0 +ACT?READ:: ; VERB-DATA FOR READ + -1 + 0 + RT?3231 + 0 +ACT?SHOULD:: ; VERB-DATA FOR SHOULD + -1 + 0 + RT?3331 + 0 +ACT?SIT:: ; VERB-DATA FOR SIT + -1 + 0 + RT?3431 + 0 +ACT?MOVE:: ; VERB-DATA FOR MOVE + -1 + 0 + 0 + RT?3531 +ACT?TALK:: ; VERB-DATA FOR TALK + -1 + 0 + RT?3631 + 0 +ACT?UNDO:: ; VERB-DATA FOR UNDO + V?UNDO + 0 + 0 + 0 +ACT?$VERIFY:: ; VERB-DATA FOR $VERIFY + V?VERIFY + 0 + RT?3731 + 0 +ACT?$HEAT:: ; VERB-DATA FOR $HEAT + V?$HEAT + 0 + 0 + 0 +ACT?LOCK:: ; VERB-DATA FOR LOCK + -1 + 0 + 0 + RT?3831 +ACT?SCRIPT:: ; VERB-DATA FOR SCRIPT + V?SCRIPT + 0 + 0 + 0 +ACT?WELD:: ; VERB-DATA FOR WELD + -1 + 0 + RT?3931 + 0 +ACT?COULD:: ; VERB-DATA FOR COULD + -1 + 0 + RT?4031 + 0 +ACT?GET:: ; VERB-DATA FOR GET + -1 + 0 + RT?4131 + RT?4231 +ACT?YES:: ; VERB-DATA FOR YES + V?YES + 0 + 0 + 0 +ACT?PUSH:: ; VERB-DATA FOR PUSH + -1 + 0 + RT?4331 + RT?4431 +ACT?FOLLOW:: ; VERB-DATA FOR FOLLOW + -1 + 0 + RT?4531 + 0 +ACT?SCORE:: ; VERB-DATA FOR SCORE + V?SCORE + 0 + 0 + 0 +ACT?LOOK:: ; VERB-DATA FOR LOOK + V?LOOK + 0 + RT?4631 + 0 +ACT?REMOVE:: ; VERB-DATA FOR REMOVE + -1 + 0 + RT?4731 + RT?4831 +ACT?ENTER:: ; VERB-DATA FOR ENTER + -1 + 0 + RT?4931 + 0 +ACT?TELL:: ; VERB-DATA FOR TELL + -1 + 0 + RT?5031 + RT?5131 +ACT?$NITROGEN:: ; VERB-DATA FOR $NITROGEN + V?$NITROGEN + 0 + 0 + 0 +ACT?ATTACH:: ; VERB-DATA FOR ATTACH + -1 + 0 + 0 + RT?5231 +ACT?THANK:: ; VERB-DATA FOR THANK + -1 + 0 + RT?5331 + 0 +ACT?BLOW:: ; VERB-DATA FOR BLOW + -1 + 0 + RT?5431 + 0 +ACT?MUST:: ; VERB-DATA FOR MUST + -1 + 0 + RT?5531 + 0 +ACT?WILL:: ; VERB-DATA FOR WILL + -1 + 0 + RT?5631 + 0 +ACT?INFLATE:: ; VERB-DATA FOR INFLATE + -1 + 0 + RT?5731 + 0 +ACT?JUMP:: ; VERB-DATA FOR JUMP + -1 + 0 + RT?5831 + 0 +ACT?OPEN:: ; VERB-DATA FOR OPEN + -1 + 0 + RT?5931 + RT?6031 +ACT?SHOW:: ; VERB-DATA FOR SHOW + -1 + 0 + 0 + RT?6131 +ACT?WHERE:: ; VERB-DATA FOR WHERE + -1 + 0 + RT?6231 + RT?6331 +ACT?EXTINGUISH:: ; VERB-DATA FOR EXTINGUISH + -1 + 0 + RT?6431 + 0 +ACT?THROW:: ; VERB-DATA FOR THROW + -1 + 0 + RT?6531 + RT?6631 +ACT?#RECORD:: ; VERB-DATA FOR #RECORD + V?RECORD + 0 + 0 + 0 +ACT?MAY:: ; VERB-DATA FOR MAY + -1 + 0 + RT?6731 + 0 +ACT?$GOTO:: ; VERB-DATA FOR $GOTO + -1 + 0 + RT?6831 + 0 +ACT?WHO:: ; VERB-DATA FOR WHO + -1 + 0 + RT?6931 + RT?7031 +ACT?DO:: ; VERB-DATA FOR DO + -1 + 0 + RT?7131 + 0 +ACT?$D:: ; VERB-DATA FOR $D + -1 + 0 + RT?7231 + 0 +ACT?START:: ; VERB-DATA FOR START + -1 + 0 + RT?7331 + 0 +ACT?WHAT:: ; VERB-DATA FOR WHAT + -1 + 0 + RT?7431 + RT?7531 +ACT?#COMMAND:: ; VERB-DATA FOR #COMMAND + V?COMMAND + 0 + 0 + 0 +ACT?HOLD:: ; VERB-DATA FOR HOLD + -1 + 0 + RT?7631 + 0 +ACT?QUIT:: ; VERB-DATA FOR QUIT + V?QUIT + 0 + 0 + 0 +ACT?$SCRUB:: ; VERB-DATA FOR $SCRUB + V?$SCRUB + 0 + 0 + 0 +ACT?EMPTY:: ; VERB-DATA FOR EMPTY + -1 + 0 + 0 + RT?7731 +ACT?WHEN:: ; VERB-DATA FOR WHEN + -1 + 0 + RT?7831 + RT?7931 +ACT?$STEAL:: ; VERB-DATA FOR $STEAL + -1 + 0 + RT?8031 + 0 +ACT?VERSION:: ; VERB-DATA FOR VERSION + V?VERSION + 0 + 0 + 0 +ACT?NO:: ; VERB-DATA FOR NO + V?NO + 0 + 0 + 0 +ACT?WAIT:: ; VERB-DATA FOR WAIT + V?WAIT + 0 + RT?8131 + 0 +ACT?WHY:: ; VERB-DATA FOR WHY + -1 + 0 + RT?8231 + RT?8331 +ACT?GIVE:: ; VERB-DATA FOR GIVE + -1 + 0 + 0 + RT?8431 +ACT?TAKE:: ; VERB-DATA FOR TAKE + -1 + 0 + RT?8531 + RT?8631 +ACT?WEAR:: ; VERB-DATA FOR WEAR + -1 + 0 + RT?8731 + 0 +ACT?PUT:: ; VERB-DATA FOR PUT + -1 + 0 + RT?8831 + RT?8931 +ACT?RESTORE:: ; VERB-DATA FOR RESTORE + V?RESTORE + 0 + 0 + 0 +ACT?PICK:: ; VERB-DATA FOR PICK + -1 + 0 + RT?9031 + 0 +ACT?CUT:: ; VERB-DATA FOR CUT + -1 + 0 + 0 + RT?9131 +ACT?PLUG:: ; VERB-DATA FOR PLUG + -1 + 0 + RT?9231 + 0 +ACT?DIAGNOSE:: ; VERB-DATA FOR DIAGNOSE + V?DIAGNOSE + 0 + 0 + 0 +ACT?COLOR:: ; VERB-DATA FOR COLOR + V?COLOR + 0 + 0 + 0 +ACT?HIT:: ; VERB-DATA FOR HIT + -1 + 0 + 0 + RT?9331 +ACT?DROP:: ; VERB-DATA FOR DROP + -1 + 0 + RT?9431 + RT?9531 +ACT?EXIT:: ; VERB-DATA FOR EXIT + -1 + 0 + RT?9631 + 0 +ACT?PULL:: ; VERB-DATA FOR PULL + -1 + 0 + RT?9731 + RT?9831 + .ENDT + + +; THE ACTION CALLING TABLE IS DEFINED HERE + +ATBL:: .TABLE + V-PDEBUG + V-$SCRUB + V-$AIR + V-$HEAT + V-$REFRESH + V-VERIFY + V-COMMAND + V-RECORD + V-UNRECORD + V-DESC-LEVEL + V-QUIT + V-RESTART + V-RESTORE + V-SAVE + V-SCRIPT + V-UNDO + V-VERSION + V-SCORE + V-DIAGNOSE + V-ASK-ABOUT + V-ATTACH + V-INFLATE + V-CLOSE + V-CUT + V-DROP + V-PUT + V-PUT-IN + V-EMPTY + V-EMPTY-FROM + V-ENTER + V-EXAMINE + V-EXIT + V-EXTINGUISH + V-FOLLOW + V-TAKE + V-TAKE-WITH + V-GIVE + V-GIVE-SWP + V-HIT + V-INVENTORY + V-LIFT + V-LISTEN + V-LOCK + V-LOOK + V-LOOK-IN + V-LOOK-ON + V-LOOK-BEHIND + V-LOOK-UNDER + V-MOVE + V-NO + V-OPEN + V-PLUG-IN + V-PUSH + V-PULL + V-WEAR + V-REACH-IN + V-REACH-UNDER + V-REACH-BEHIND + V-READ + V-UNWEAR + V-TURN-TO + V-SHOW + V-SHOW-SWP + V-SIT + V-TURN-ON + V-TURN-OFF + V-TELL + V-TELL-ABOUT + V-TALK-TO + V-THANK + V-TIE-TO + V-TURN + V-UNLOCK + V-WAIT + V-WALK + V-WALK-TO + V-WELD + V-YES + V-BE + V-BE? + V-WHO + V-WHAT + V-WHERE + V-WHEN + V-WHY + V-HOW + V-CAN? + V-MAY? + V-DO? + V-COULD? + V-WOULD? + V-SHOULD? + V-MIGHT? + V-WILL? + V-MUST? + V-$NITROGEN + V-$STEAL + V-$GOTO + V-COLOR + V-$P + V-$D + V-$SHOW + V-$W + .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 + PRE-PUT + PRE-PUT-IN + PRE-EMPTY + 0 + 0 + 0 + 0 + 0 + 0 + PRE-TAKE + PRE-TAKE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 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 + + +; VOCABULARY TABLE IS HERE + +VOCAB:: .TABLE + .BYTE 6 + .BYTE 46 + .BYTE 44 + .BYTE 34 + .BYTE 39 + .BYTE 33 + .BYTE 63 + .BYTE 10 + 626 + .VOCBEG 10,6 +W?$AIR:: .ZWORD "$air" + ACT?$AIR + 1 +W?$D:: .ZWORD "$d" + ACT?$D + 1 +W?$GOTO:: .ZWORD "$goto" + ACT?$GOTO + 1 +W?$HEAT:: .ZWORD "$heat" + ACT?$HEAT + 1 +W?$NITROGEN:: .ZWORD "$nitrogen" + ACT?$NITROGEN + 1 +W?$P:: .ZWORD "$p" + ACT?$P + 1 +W?$REFRESH:: .ZWORD "$refresh" + ACT?$REFRESH + 1 +W?$SCRUB:: .ZWORD "$scrub" + ACT?$SCRUB + 1 +W?$SHOW:: .ZWORD "$show" + ACT?$SHOW + 1 +W?$STEAL:: .ZWORD "$steal" + ACT?$STEAL + 1 +W?$VERIFY:: .ZWORD "$verify" + ACT?$VERIFY + 1 +W?$VERSION:: .ZWORD "$version" + ACT?VERSION + 1 +W?$W:: .ZWORD "$w" + ACT?$W + 1 +W?PERIOD:: .ZWORD "." + 0 + 32769 +W?COMMA:: .ZWORD "," + 0 + 1024 +W?!:: .ZWORD "!" + 0 + 32769 +W??:: .ZWORD "?" + 0 + 32769 +W?#COMMAND:: .ZWORD "#command" + ACT?#COMMAND + 1 +W?#DBG:: .ZWORD "#dbg" + ACT?#DBG + 1 +W?#RECORD:: .ZWORD "#record" + ACT?#RECORD + 1 +W?#UNRECORD:: .ZWORD "#unrecord" + ACT?#UNRECORD + 1 +W?APOSTROPHE:: .ZWORD "'" + 0 + 32 +W?QUOTE:: .ZWORD """" + 0 + 16384 +W?A:: .ZWORD "a" + .BYTE 61 + .BYTE 0 + 80 +W?ABOUT:: .ZWORD "about" + 0 + 2048 +W?ACCESS:: .ZWORD "access" + 0 + 4 +W?ACROSS:: .ZWORD "across" + 0 + 2048 +W?AFT:: .ZWORD "aft" + .BYTE 61 + .BYTE 0 + 70 +W?AFTER:: .ZWORD "after" + 0 + 2048 +W?AGAIN:: .ZWORD "again" + 0 + 32 +W?ALIEN:: .ZWORD "alien" + 0 + 6 +W?ALIVE:: .ZWORD "alive" + 0 + 4 +W?ALL:: .ZWORD "all" + 0 + 16 +W?ALONG:: .ZWORD "along" + W?AROUND + 0 +W?AM:: .ZWORD "am" + 0 + 128 +W?AN:: .ZWORD "an" + 0 + 16 +W?AND:: .ZWORD "and" + 0 + 1024 +W?ANKLE:: .ZWORD "ankle" + 0 + 2 +W?ANKLES:: .ZWORD "ankles" + 0 + 2 +W?ANY:: .ZWORD "any" + 0 + 16 +W?ANYWAY:: .ZWORD "anyway" + 0 + 0 +W?ARC:: .ZWORD "arc" + 0 + 4 +W?ARC-WELDER:: .ZWORD "arc-welde" + 0 + 2 +W?ARE:: .ZWORD "are" + 0 + 128 +W?AREA:: .ZWORD "area" + 0 + 2 +W?AREN:: .ZWORD "aren" + 0 + 0 +W?ARM:: .ZWORD "arm" + 0 + 2 +W?ARMS:: .ZWORD "arms" + 0 + 2 +W?AROUND:: .ZWORD "around" + 0 + 2048 +W?ASK:: .ZWORD "ask" + ACT?ASK + 8193 +W?ASS:: .ZWORD "ass" + 0 + 0 +W?ASSHOLE:: .ZWORD "asshole" + 0 + 0 +W?AT:: .ZWORD "at" + 0 + 2048 +W?ATTACH:: .ZWORD "attach" + ACT?ATTACH + 1 +W?ATTACK:: .ZWORD "attack" + 0 + 4 +W?AUTOMATIC:: .ZWORD "automatic" + 0 + 4 +W?AWAY:: .ZWORD "away" + 0 + 2048 +W?BACK:: .ZWORD "back" + 0 + 2 +W?BAG:: .ZWORD "bag" + 0 + 2 +W?BAR:: .ZWORD "bar" + 0 + 2 +W?BARBELL:: .ZWORD "barbell" + 0 + 2 +W?BASE:: .ZWORD "base" + 0 + 2 +W?BASTARD:: .ZWORD "bastard" + 0 + 0 +W?BATTERY:: .ZWORD "battery" + 0 + 4 +W?BAY:: .ZWORD "bay" + 0 + 2 +W?BE:: .ZWORD "be" + ACT?BE + 33 +W?BE?:: .ZWORD "be?" + ACT?BE? + 1 +W?BEHIND:: .ZWORD "behind" + 0 + 2048 +W?BENCH:: .ZWORD "bench" + 0 + 2 +W?BICYCLE:: .ZWORD "bicycle" + 0 + 2 +W?BIG:: .ZWORD "big" + 0 + 4 +W?BILLION:: .ZWORD "billion" + 0 + 0 +W?BIN:: .ZWORD "bin" + 0 + 2 +W?BINS:: .ZWORD "bins" + 0 + 2 +W?BITCH:: .ZWORD "bitch" + 0 + 0 +W?BLACK:: .ZWORD "black" + 0 + 4 +W?BLOW:: .ZWORD "blow" + ACT?BLOW + 1 +W?BLUE:: .ZWORD "blue" + 0 + 4 +W?BODY:: .ZWORD "body" + 0 + 2 +W?BOTH:: .ZWORD "both" + W?ALL + 0 +W?BOTTOM:: .ZWORD "bottom" + 0 + 2 +W?BOW:: .ZWORD "bow" + 0 + 2 +W?BOX:: .ZWORD "box" + 0 + 2 +W?BREATHING:: .ZWORD "breathing" + 0 + 4 +W?BRIEF:: .ZWORD "brief" + ACT?BRIEF + 1 +W?BRIGMAN:: .ZWORD "brigman" + 0 + 2 +W?BROWSE:: .ZWORD "browse" + ACT?READ + 1 +W?BUCKLED:: .ZWORD "buckled" + 0 + 4 +W?BUD:: .ZWORD "bud" + 0 + 6 +W?BULKHEAD:: .ZWORD "bulkhead" + 0 + 2 +W?BUT:: .ZWORD "but" + 0 + 4096 +W?BUTTON:: .ZWORD "button" + 0 + 2 +W?CAB:: .ZWORD "cab" + 0 + 6 +W?CABLE:: .ZWORD "cable" + 0 + 2 +W?CAN:: .ZWORD "can" + ACT?CAN + 513 +W?CANNISTER:: .ZWORD "cannister" + 0 + 2 +W?CAPTAIN:: .ZWORD "captain" + 0 + 4 +W?CARBON:: .ZWORD "carbon" + 0 + 4 +W?CARD:: .ZWORD "card" + 0 + 2 +W?CAT:: .ZWORD "cat" + 0 + 4 +W?CATCH:: .ZWORD "catch" + ACT?TAKE + 1 +W?CATFISH:: .ZWORD "catfish" + 0 + 6 +W?CEILING:: .ZWORD "ceiling" + 0 + 2 +W?CELL:: .ZWORD "cell" + 0 + 2 +W?CENTER:: .ZWORD "center" + 0 + 6 +W?CHAIR:: .ZWORD "chair" + 0 + 2 +W?CHAMBER:: .ZWORD "chamber" + 0 + 6 +W?CHASE:: .ZWORD "chase" + ACT?FOLLOW + 1 +W?CHEEK:: .ZWORD "cheek" + 0 + 2 +W?CHEEKS:: .ZWORD "cheeks" + 0 + 2 +W?CHEST:: .ZWORD "chest" + 0 + 2 +W?CLAMP:: .ZWORD "clamp" + ACT?CLAMP + 3 +W?CLASS:: .ZWORD "class" + 0 + 4 +W?CLOSE:: .ZWORD "close" + ACT?CLOSE + 1 +W?CLOSED:: .ZWORD "closed" + 0 + 4 +W?CO2:: .ZWORD "co2" + 0 + 4 +W?COCK:: .ZWORD "cock" + 0 + 0 +W?COCKSUCKER:: .ZWORD "cocksucke" + 0 + 0 +W?CODE:: .ZWORD "code" + 0 + 2 +W?CODES:: .ZWORD "codes" + 0 + 2 +W?COFFEY:: .ZWORD "coffey" + 0 + 2 +W?COLOR:: .ZWORD "color" + ACT?COLOR + 1 +W?COLOUR:: .ZWORD "colour" + ACT?COLOR + 1 +W?COMM:: .ZWORD "comm" + 0 + 4 +W?COMMAND:: .ZWORD "command" + 0 + 4 +W?COMMUNICATIONS:: .ZWORD "communica" + 0 + 4 +W?COMPRESSION:: .ZWORD "compressi" + 0 + 4 +W?COMPRESSOR:: .ZWORD "compresso" + 0 + 6 +W?COMPUTER:: .ZWORD "computer" + 0 + 4 +W?CONNECT:: .ZWORD "connect" + ACT?ATTACH + 1 +W?CONTROL:: .ZWORD "control" + 0 + 4 +W?CONVERSE:: .ZWORD "converse" + ACT?TALK + 1 +W?CORD:: .ZWORD "cord" + 0 + 2 +W?CORRIDOR:: .ZWORD "corridor" + 0 + 2 +W?COULD:: .ZWORD "could" + ACT?COULD + 513 +W?COULDN:: .ZWORD "couldn" + 0 + 0 +W?COVER:: .ZWORD "cover" + 0 + 4 +W?CRACK:: .ZWORD "crack" + 0 + 2 +W?CRAP:: .ZWORD "crap" + 0 + 0 +W?CUNT:: .ZWORD "cunt" + 0 + 0 +W?CUP:: .ZWORD "cup" + 0 + 2 +W?CUSS:: .ZWORD "cuss" + 0 + 0 +W?CUT:: .ZWORD "cut" + ACT?CUT + 1 +W?CUTTERS:: .ZWORD "cutters" + 0 + 2 +W?CYCLE:: .ZWORD "cycle" + 0 + 2 +W?CYLINDER:: .ZWORD "cylinder" + 0 + 2 +W?D:: .ZWORD "d" + .BYTE 54 + .BYTE 0 + 64 +W?DAMN:: .ZWORD "damn" + 0 + 0 +W?DAMNED:: .ZWORD "damned" + 0 + 0 +W?DEAD:: .ZWORD "dead" + 0 + 4 +W?DECK:: .ZWORD "deck" + 0 + 2 +W?DEEPCORE:: .ZWORD "deepcore" + 0 + 2 +W?DELIVER:: .ZWORD "deliver" + ACT?GIVE + 1 +W?DESCRAMBLER:: .ZWORD "descrambl" + 0 + 6 +W?DETONATOR:: .ZWORD "detonator" + 0 + 2 +W?DEVICE:: .ZWORD "device" + 0 + 2 +W?DEVRIES:: .ZWORD "devries" + 0 + 2 +W?DIAGNOSE:: .ZWORD "diagnose" + ACT?DIAGNOSE + 1 +W?DIAL:: .ZWORD "dial" + 0 + 2 +W?DID:: .ZWORD "did" + W?DO + 512 +W?DIDN:: .ZWORD "didn" + 0 + 0 +W?DIOXIDE:: .ZWORD "dioxide" + 0 + 4 +W?DISCHARGE:: .ZWORD "discharge" + 0 + 2 +W?DIVE:: .ZWORD "dive" + 0 + 4 +W?DIVER:: .ZWORD "diver" + 0 + 2 +W?DIVERS:: .ZWORD "divers" + 0 + 2 +W?DO:: .ZWORD "do" + ACT?DO + 513 +W?DOES:: .ZWORD "does" + W?DO + 512 +W?DOESN:: .ZWORD "doesn" + 0 + 0 +W?DON:: .ZWORD "don" + ACT?WEAR + 1 +W?DON'T:: .ZWORD "don't" + 0 + 8 +W?DOOR:: .ZWORD "door" + 0 + 2 +W?DOWN:: .ZWORD "down" + .BYTE 54 + .BYTE 0 + 2112 +W?DOWNSTAIRS:: .ZWORD "downstair" + .BYTE 54 + .BYTE 0 + 64 +W?DRAWER:: .ZWORD "drawer" + 0 + 2 +W?DRILL:: .ZWORD "drill" + 0 + 4 +W?DROP:: .ZWORD "drop" + ACT?DROP + 1 +W?DRY:: .ZWORD "dry" + 0 + 4 +W?DRYER:: .ZWORD "dryer" + 0 + 2 +W?E:: .ZWORD "e" + .BYTE 57 + .BYTE 0 + 64 +W?EAR:: .ZWORD "ear" + 0 + 2 +W?EARS:: .ZWORD "ears" + 0 + 2 +W?EAST:: .ZWORD "east" + .BYTE 57 + .BYTE 0 + 66 +W?EIGHTEEN:: .ZWORD "eighteen" + 0 + 0 +W?EIGHTY:: .ZWORD "eighty" + 0 + 0 +W?EITHER:: .ZWORD "either" + 0 + 16 +W?ELECTRICAL:: .ZWORD "electrica" + 0 + 4 +W?ELECTRODE:: .ZWORD "electrode" + 0 + 2 +W?ELECTRONIC:: .ZWORD "electroni" + 0 + 4 +W?ELEVEN:: .ZWORD "eleven" + 0 + 0 +W?EMPTY:: .ZWORD "empty" + ACT?EMPTY + 1 +W?END.OF.INPUT:: .ZWORD "end.of.in" + 0 + 32769 +W?ENGINE:: .ZWORD "engine" + 0 + 4 +W?ENTER:: .ZWORD "enter" + ACT?ENTER + 1 +W?EXAMINE:: .ZWORD "examine" + ACT?EXAMINE + 1 +W?EXCEPT:: .ZWORD "except" + 0 + 4096 +W?EXERCISE:: .ZWORD "exercise" + 0 + 4 +W?EXIT:: .ZWORD "exit" + ACT?EXIT + 1 +W?EXPLOSIVE:: .ZWORD "explosive" + 0 + 2 +W?EXTINGUISH:: .ZWORD "extinguis" + ACT?EXTINGUISH + 1 +W?EYE:: .ZWORD "eye" + 0 + 2 +W?EYES:: .ZWORD "eyes" + 0 + 2 +W?F:: .ZWORD "f" + .BYTE 63 + .BYTE 0 + 64 +W?FACE:: .ZWORD "face" + 0 + 6 +W?FACEPLATE:: .ZWORD "faceplate" + 0 + 2 +W?FBS:: .ZWORD "fbs" + 0 + 4 +W?FEET:: .ZWORD "feet" + 0 + 2 +W?FIFTEEN:: .ZWORD "fifteen" + 0 + 0 +W?FIFTY:: .ZWORD "fifty" + 0 + 0 +W?FIRE:: .ZWORD "fire" + 0 + 2 +W?FISH:: .ZWORD "fish" + 0 + 2 +W?FLATBED:: .ZWORD "flatbed" + 0 + 2 +W?FLOOD:: .ZWORD "flood" + 0 + 4 +W?FLOOR:: .ZWORD "floor" + 0 + 2 +W?FLUID:: .ZWORD "fluid" + 0 + 6 +W?FOLLOW:: .ZWORD "follow" + ACT?FOLLOW + 1 +W?FOOT:: .ZWORD "foot" + 0 + 6 +W?FOR:: .ZWORD "for" + 0 + 2048 +W?FORE:: .ZWORD "fore" + .BYTE 63 + .BYTE 0 + 70 +W?FORTY:: .ZWORD "forty" + 0 + 0 +W?FOURTEEN:: .ZWORD "fourteen" + 0 + 0 +W?FRAME:: .ZWORD "frame" + 0 + 2 +W?FRAMED:: .ZWORD "framed" + 0 + 4 +W?FRESH:: .ZWORD "fresh" + 0 + 4 +W?FROM:: .ZWORD "from" + 0 + 6144 +W?FUCK:: .ZWORD "fuck" + 0 + 0 +W?FUCKED:: .ZWORD "fucked" + 0 + 0 +W?FUCKER:: .ZWORD "fucker" + 0 + 0 +W?FUCKING:: .ZWORD "fucking" + 0 + 0 +W?FUEL:: .ZWORD "fuel" + 0 + 4 +W?FUSCHIA:: .ZWORD "fuschia" + 0 + 4 +W?G:: .ZWORD "g" + 0 + 32 +W?GALLEY:: .ZWORD "galley" + 0 + 2 +W?GAME:: .ZWORD "game" + 0 + 4 +W?GAS:: .ZWORD "gas" + 0 + 4 +W?GEAR:: .ZWORD "gear" + 0 + 4 +W?GET:: .ZWORD "get" + ACT?GET + 1 +W?GIVE:: .ZWORD "give" + ACT?GIVE + 1 +W?GO:: .ZWORD "go" + ACT?WALK + 2049 +W?GODDAMN:: .ZWORD "goddamn" + 0 + 0 +W?GODDAMNED:: .ZWORD "goddamned" + 0 + 0 +W?GRAB:: .ZWORD "grab" + ACT?TAKE + 1 +W?GRANT:: .ZWORD "grant" + ACT?GIVE + 1 +W?GRASP:: .ZWORD "grasp" + ACT?TAKE + 1 +W?GREEN:: .ZWORD "green" + 0 + 4 +W?GROUND:: .ZWORD "ground" + 0 + 2 +W?GUN:: .ZWORD "gun" + 0 + 2 +W?HAIR:: .ZWORD "hair" + 0 + 2 +W?HALL:: .ZWORD "hall" + 0 + 2 +W?HAND:: .ZWORD "hand" + ACT?GIVE + 3 +W?HANDS:: .ZWORD "hands" + 0 + 2 +W?HATCH:: .ZWORD "hatch" + 0 + 2 +W?HE:: .ZWORD "he" + 0 + 0 +W?HEAD:: .ZWORD "head" + ACT?WALK + 3 +W?HELIUM:: .ZWORD "helium" + 0 + 4 +W?HELL:: .ZWORD "hell" + 0 + 0 +W?HELMET:: .ZWORD "helmet" + 0 + 2 +W?HER:: .ZWORD "her" + 0 + 2 +W?HERE:: .ZWORD "here" + 0 + 6 +W?HERSELF:: .ZWORD "herself" + 0 + 2 +W?HIM:: .ZWORD "him" + 0 + 2 +W?HIMSELF:: .ZWORD "himself" + 0 + 2 +W?HIPPY:: .ZWORD "hippy" + 0 + 2 +W?HIS:: .ZWORD "his" + 0 + 4 +W?HIT:: .ZWORD "hit" + ACT?HIT + 1 +W?HOLD:: .ZWORD "hold" + ACT?HOLD + 1 +W?HONORABLE:: .ZWORD "honorable" + 0 + 4 +W?HOOK:: .ZWORD "hook" + 0 + 2 +W?HOOKAH:: .ZWORD "hookah" + 0 + 2 +W?HOSE:: .ZWORD "hose" + 0 + 6 +W?HOUR:: .ZWORD "hour" + 0 + 2 +W?HOURS:: .ZWORD "hours" + 0 + 2 +W?HOW:: .ZWORD "how" + ACT?HOW + 257 +W?HUNDRED:: .ZWORD "hundred" + 0 + 0 +W?HYDRAULIC:: .ZWORD "hydraulic" + 0 + 4 +W?I:: .ZWORD "i" + ACT?INVENTORY + 1 +W?IN:: .ZWORD "in" + .BYTE 53 + .BYTE 0 + 6208 +W?INFIRMARY:: .ZWORD "infirmary" + 0 + 2 +W?INFLATE:: .ZWORD "inflate" + ACT?INFLATE + 1 +W?INSIDE:: .ZWORD "inside" + W?IN + 0 +W?INT.NUM:: .ZWORD "int.num" + 0 + 6 +W?INT.TIM:: .ZWORD "int.tim" + 0 + 6 +W?INTO:: .ZWORD "into" + W?IN + 0 +W?INVENT:: .ZWORD "invent" + ACT?INVENTORY + 1 +W?INVENTORY:: .ZWORD "inventory" + ACT?INVENTORY + 1 +W?IS:: .ZWORD "is" + 0 + 128 +W?ISN:: .ZWORD "isn" + 0 + 0 +W?IT:: .ZWORD "it" + 0 + 2 +W?ITS:: .ZWORD "its" + 0 + 4 +W?JAMMED:: .ZWORD "jammed" + 0 + 4 +W?JUMP:: .ZWORD "jump" + ACT?JUMP + 1 +W?K:: .ZWORD "k" + 0 + 4 +W?K-VALVE:: .ZWORD "k-valve" + 0 + 2 +W?KEY:: .ZWORD "key" + 0 + 2 +W?KNIFE:: .ZWORD "knife" + 0 + 2 +W?L:: .ZWORD "l" + ACT?LOOK + 1 +W?L.G:: .ZWORD "l.g" + 0 + 2 +W?LAB:: .ZWORD "lab" + 0 + 2 +W?LABORATORY:: .ZWORD "laborator" + 0 + 2 +W?LADDER:: .ZWORD "ladder" + 0 + 4 +W?LADDERWELL:: .ZWORD "ladderwel" + 0 + 6 +W?LAUNCHING:: .ZWORD "launching" + 0 + 4 +W?LAUNDRY:: .ZWORD "laundry" + 0 + 2 +W?LEAF:: .ZWORD "leaf" + ACT?READ + 1 +W?LEFT:: .ZWORD "left" + 0 + 4 +W?LEG:: .ZWORD "leg" + 0 + 2 +W?LEGS:: .ZWORD "legs" + 0 + 2 +W?LEND:: .ZWORD "lend" + ACT?GIVE + 1 +W?LET:: .ZWORD "let" + ACT?LET + 1 +W?LEVER:: .ZWORD "lever" + 0 + 2 +W?LIBRARY:: .ZWORD "library" + 0 + 2 +W?LIE:: .ZWORD "lie" + 0 + 0 +W?LIFE:: .ZWORD "life" + 0 + 4 +W?LIFT:: .ZWORD "lift" + ACT?LIFT + 5 +W?LINDSEY:: .ZWORD "lindsey" + 0 + 2 +W?LIP:: .ZWORD "lip" + 0 + 2 +W?LIPS:: .ZWORD "lips" + 0 + 2 +W?LISTEN:: .ZWORD "listen" + ACT?LISTEN + 1 +W?LOAN:: .ZWORD "loan" + ACT?GIVE + 1 +W?LOCK:: .ZWORD "lock" + ACT?LOCK + 3 +W?LOCKED:: .ZWORD "locked" + 0 + 4 +W?LOCKER:: .ZWORD "locker" + 0 + 2 +W?LOOK:: .ZWORD "look" + ACT?LOOK + 1 +W?LOUNGE:: .ZWORD "lounge" + 0 + 2 +W?M:: .ZWORD "m" + 0 + 0 +W?MAGNET:: .ZWORD "magnet" + 0 + 2 +W?MAGNETIC:: .ZWORD "magnetic" + 0 + 4 +W?MAN:: .ZWORD "man" + 0 + 2 +W?MARINE:: .ZWORD "marine" + 0 + 4 +W?MARINES:: .ZWORD "marines" + 0 + 4 +W?MAY:: .ZWORD "may" + ACT?MAY + 513 +W?ME:: .ZWORD "me" + 0 + 2 +W?MEN:: .ZWORD "men" + W?MAN + 2 +W?MESS:: .ZWORD "mess" + 0 + 4 +W?MIDSHIP:: .ZWORD "midship" + 0 + 4 +W?MIGHT:: .ZWORD "might" + ACT?MIGHT + 513 +W?MILITARY:: .ZWORD "military" + 0 + 4 +W?MILLION:: .ZWORD "million" + 0 + 0 +W?MIN:: .ZWORD "min" + 0 + 2 +W?MINUTE:: .ZWORD "minute" + 0 + 2 +W?MINUTES:: .ZWORD "minutes" + 0 + 2 +W?MISSILE:: .ZWORD "missile" + 0 + 6 +W?MIX:: .ZWORD "mix" + 0 + 4 +W?MODULE:: .ZWORD "module" + 0 + 2 +W?MONITOR:: .ZWORD "monitor" + 0 + 2 +W?MONITORS:: .ZWORD "monitors" + 0 + 2 +W?MONK:: .ZWORD "monk" + 0 + 2 +W?MONTANA:: .ZWORD "montana" + 0 + 2 +W?MOON:: .ZWORD "moon" + 0 + 4 +W?MOTEL:: .ZWORD "motel" + 0 + 4 +W?MOUTH:: .ZWORD "mouth" + 0 + 2 +W?MOVE:: .ZWORD "move" + ACT?MOVE + 1 +W?MUST:: .ZWORD "must" + ACT?MUST + 513 +W?MY:: .ZWORD "my" + 0 + 4 +W?MYSELF:: .ZWORD "myself" + 0 + 2 +W?N:: .ZWORD "n" + .BYTE 59 + .BYTE 0 + 64 +W?NAVY:: .ZWORD "navy" + 0 + 4 +W?NECK:: .ZWORD "neck" + 0 + 2 +W?NIGHT:: .ZWORD "night" + 0 + 2 +W?NINETEEN:: .ZWORD "nineteen" + 0 + 0 +W?NINETY:: .ZWORD "ninety" + 0 + 0 +W?NITROGEN:: .ZWORD "nitrogen" + 0 + 4 +W?NO:: .ZWORD "no" + ACT?NO + 1 +W?NO.WORD:: .ZWORD "no.word" + 0 + 4 +W?NORTH:: .ZWORD "north" + .BYTE 59 + .BYTE 0 + 66 +W?NOSE:: .ZWORD "nose" + 0 + 2 +W?NOT:: .ZWORD "not" + 0 + 32 +W?NOW:: .ZWORD "now" + 0 + 0 +W?NOZZLE:: .ZWORD "nozzle" + 0 + 2 +W?O:: .ZWORD "o" + 0 + 32 +W?OBSERVATION:: .ZWORD "observati" + 0 + 4 +W?OCEAN:: .ZWORD "ocean" + 0 + 6 +W?OF:: .ZWORD "of" + 0 + 32 +W?OFF:: .ZWORD "off" + 0 + 2048 +W?OFFER:: .ZWORD "offer" + ACT?GIVE + 1 +W?OFFICE:: .ZWORD "office" + 0 + 2 +W?OH:: .ZWORD "oh" + 0 + 0 +W?OHIO:: .ZWORD "ohio" + 0 + 4 +W?ON:: .ZWORD "on" + 0 + 6144 +W?ONCE:: .ZWORD "once" + 0 + 8 +W?ONE:: .ZWORD "one" + 0 + 6 +W?ONE-NIGHT:: .ZWORD "one-night" + 0 + 2 +W?ONTO:: .ZWORD "onto" + W?ON + 0 +W?OOPS:: .ZWORD "oops" + 0 + 32 +W?OPEN:: .ZWORD "open" + ACT?OPEN + 5 +W?ORANGE:: .ZWORD "orange" + 0 + 4 +W?ORDER:: .ZWORD "order" + 0 + 8192 +W?OUT:: .ZWORD "out" + .BYTE 52 + .BYTE 0 + 2112 +W?OUTLET:: .ZWORD "outlet" + 0 + 2 +W?OUTSIDE:: .ZWORD "outside" + 0 + 4 +W?OVER:: .ZWORD "over" + 0 + 2048 +W?OXYGEN:: .ZWORD "oxygen" + 0 + 4 +W?P:: .ZWORD "p" + .BYTE 60 + .BYTE 0 + 64 +W?PANEL:: .ZWORD "panel" + 0 + 2 +W?PANTRY:: .ZWORD "pantry" + 0 + 2 +W?PAPER:: .ZWORD "paper" + 0 + 2 +W?PAPERS:: .ZWORD "papers" + 0 + 4 +W?PASSPORT:: .ZWORD "passport" + 0 + 2 +W?PEOPLE:: .ZWORD "people" + W?PERSON + 2 +W?PERSON:: .ZWORD "person" + 0 + 2 +W?PERSONAL:: .ZWORD "personal" + 0 + 4 +W?PHOTOGRAPH:: .ZWORD "photograp" + 0 + 2 +W?PICK:: .ZWORD "pick" + ACT?PICK + 1 +W?PICTURE:: .ZWORD "picture" + 0 + 2 +W?PISS:: .ZWORD "piss" + 0 + 0 +W?PISTOL:: .ZWORD "pistol" + 0 + 2 +W?PLACE:: .ZWORD "place" + ACT?PUT + 3 +W?PLASTIC:: .ZWORD "plastic" + 0 + 4 +W?PLASTIQUE:: .ZWORD "plastique" + 0 + 2 +W?PLATE:: .ZWORD "plate" + 0 + 2 +W?PLEASE:: .ZWORD "please" + 0 + 0 +W?PLUCK:: .ZWORD "pluck" + ACT?TAKE + 1 +W?PLUG:: .ZWORD "plug" + ACT?PLUG + 3 +W?POOL:: .ZWORD "pool" + 0 + 2 +W?PORT:: .ZWORD "port" + .BYTE 60 + .BYTE 0 + 70 +W?POUR:: .ZWORD "pour" + ACT?EMPTY + 1 +W?POWER:: .ZWORD "power" + 0 + 4 +W?POWERCEL:: .ZWORD "powercel" + 0 + 2 +W?PRESS:: .ZWORD "press" + ACT?PRESS + 1 +W?PROBE:: .ZWORD "probe" + 0 + 2 +W?PROCEED:: .ZWORD "proceed" + ACT?WALK + 1 +W?PULL:: .ZWORD "pull" + ACT?PULL + 1 +W?PUMP:: .ZWORD "pump" + 0 + 4 +W?PUNCH:: .ZWORD "punch" + ACT?HIT + 1 +W?PURPLE:: .ZWORD "purple" + 0 + 4 +W?PUSH:: .ZWORD "push" + ACT?PUSH + 1 +W?PUSHER:: .ZWORD "pusher" + 0 + 4 +W?PUT:: .ZWORD "put" + ACT?PUT + 1 +W?Q:: .ZWORD "q" + ACT?QUIT + 1 +W?QUARTERS:: .ZWORD "quarters" + 0 + 2 +W?QUICK:: .ZWORD "quick" + 0 + 2 +W?QUIET:: .ZWORD "quiet" + 0 + 4 +W?QUIT:: .ZWORD "quit" + ACT?QUIT + 1 +W?R:: .ZWORD "r" + ACT?$REFRESH + 1 +W?RAISE:: .ZWORD "raise" + ACT?LIFT + 1 +W?RE:: .ZWORD "re" + 0 + 0 +W?REACH:: .ZWORD "reach" + ACT?REACH + 1 +W?READ:: .ZWORD "read" + ACT?READ + 1 +W?REC:: .ZWORD "rec" + 0 + 4 +W?RECREATION:: .ZWORD "recreatio" + 0 + 4 +W?RED:: .ZWORD "red" + 0 + 4 +W?REMOTE:: .ZWORD "remote" + 0 + 4 +W?REMOVE:: .ZWORD "remove" + ACT?REMOVE + 1 +W?RESTART:: .ZWORD "restart" + ACT?RESTART + 1 +W?RESTORE:: .ZWORD "restore" + ACT?RESTORE + 1 +W?RID:: .ZWORD "rid" + 0 + 2048 +W?RIGHT:: .ZWORD "right" + 0 + 4 +W?ROD:: .ZWORD "rod" + 0 + 2 +W?ROOM:: .ZWORD "room" + 0 + 2 +W?RUBBER:: .ZWORD "rubber" + 0 + 4 +W?RUN:: .ZWORD "run" + ACT?WALK + 1 +W?S:: .ZWORD "s" + .BYTE 58 + .BYTE 0 + 64 +W?SAFE:: .ZWORD "safe" + 0 + 2 +W?SAVE:: .ZWORD "save" + ACT?SAVE + 1 +W?SAY:: .ZWORD "say" + 0 + 0 +W?SB:: .ZWORD "sb" + .BYTE 62 + .BYTE 0 + 64 +W?SCHOENICK:: .ZWORD "schoenick" + 0 + 2 +W?SCORE:: .ZWORD "score" + ACT?SCORE + 1 +W?SCREW:: .ZWORD "screw" + 0 + 0 +W?SCRIPT:: .ZWORD "script" + ACT?SCRIPT + 1 +W?SEAL:: .ZWORD "seal" + 0 + 2 +W?SEALS:: .ZWORD "seals" + 0 + 2 +W?SEAT:: .ZWORD "seat" + 0 + 2 +W?SELF:: .ZWORD "self" + 0 + 2 +W?SET:: .ZWORD "set" + ACT?SET + 1 +W?SEVENTEEN:: .ZWORD "seventeen" + 0 + 0 +W?SEVENTY:: .ZWORD "seventy" + 0 + 0 +W?SHACK:: .ZWORD "shack" + 0 + 2 +W?SHALL:: .ZWORD "shall" + W?WILL + 640 +W?SHE:: .ZWORD "she" + 0 + 0 +W?SHIP:: .ZWORD "ship" + 0 + 2 +W?SHIT:: .ZWORD "shit" + 0 + 0 +W?SHITHEAD:: .ZWORD "shithead" + 0 + 0 +W?SHOP:: .ZWORD "shop" + 0 + 2 +W?SHOULD:: .ZWORD "should" + ACT?SHOULD + 513 +W?SHOULDER:: .ZWORD "shoulder" + 0 + 2 +W?SHOULDERS:: .ZWORD "shoulders" + 0 + 2 +W?SHOULDN:: .ZWORD "shouldn" + 0 + 0 +W?SHOW:: .ZWORD "show" + ACT?SHOW + 1 +W?SHUT:: .ZWORD "shut" + ACT?CLOSE + 5 +W?SIT:: .ZWORD "sit" + ACT?SIT + 1 +W?SIXTEEN:: .ZWORD "sixteen" + 0 + 0 +W?SIXTY:: .ZWORD "sixty" + 0 + 0 +W?SKIM:: .ZWORD "skim" + ACT?READ + 1 +W?SKIN:: .ZWORD "skin" + 0 + 2 +W?SKY:: .ZWORD "sky" + 0 + 2 +W?SLAP:: .ZWORD "slap" + ACT?HIT + 1 +W?SLIDE:: .ZWORD "slide" + ACT?SLIDE + 1 +W?SOCKET:: .ZWORD "socket" + 0 + 2 +W?SONAR:: .ZWORD "sonar" + 0 + 4 +W?SOON:: .ZWORD "soon" + 0 + 0 +W?SOUTH:: .ZWORD "south" + .BYTE 58 + .BYTE 0 + 66 +W?SPEAK:: .ZWORD "speak" + ACT?TALK + 1 +W?STARBOARD:: .ZWORD "starboard" + .BYTE 62 + .BYTE 0 + 70 +W?START:: .ZWORD "start" + ACT?START + 1 +W?STATE:: .ZWORD "state" + 0 + 4 +W?STATEROOM:: .ZWORD "stateroom" + 0 + 2 +W?STATIONARY:: .ZWORD "stationar" + 0 + 4 +W?STEEL:: .ZWORD "steel" + 0 + 4 +W?STICK:: .ZWORD "stick" + ACT?STICK + 1 +W?STICKY:: .ZWORD "sticky" + 0 + 4 +W?STOPPER:: .ZWORD "stopper" + 0 + 2 +W?STORAGE:: .ZWORD "storage" + 0 + 6 +W?STRIKE:: .ZWORD "strike" + ACT?HIT + 1 +W?SUB:: .ZWORD "sub" + 0 + 6 +W?SUBMARINE:: .ZWORD "submarine" + 0 + 2 +W?SUCKS:: .ZWORD "sucks" + 0 + 0 +W?SUCTION:: .ZWORD "suction" + 0 + 4 +W?SUIT:: .ZWORD "suit" + 0 + 6 +W?SUPER:: .ZWORD "super" + ACT?BRIEF + 1 +W?SUPERBRIEF:: .ZWORD "superbrie" + ACT?BRIEF + 1 +W?SUPPORT:: .ZWORD "support" + 0 + 2 +W?SWAMP:: .ZWORD "swamp" + 0 + 2 +W?SWAT:: .ZWORD "swat" + ACT?HIT + 1 +W?SWIM:: .ZWORD "swim" + ACT?WALK + 1 +W?SWITCH:: .ZWORD "switch" + ACT?SWITCH + 3 +W?SYSTEM:: .ZWORD "system" + 0 + 4 +W?T:: .ZWORD "t" + 0 + 0 +W?TAIL:: .ZWORD "tail" + ACT?FOLLOW + 1 +W?TAKE:: .ZWORD "take" + ACT?TAKE + 1 +W?TALK:: .ZWORD "talk" + ACT?TALK + 1 +W?TANK:: .ZWORD "tank" + 0 + 2 +W?TANKS:: .ZWORD "tanks" + W?TANK + 2 +W?TAPE:: .ZWORD "tape" + 0 + 6 +W?TELL:: .ZWORD "tell" + ACT?TELL + 8193 +W?TEN:: .ZWORD "ten" + 0 + 0 +W?THANK:: .ZWORD "thank" + ACT?THANK + 1 +W?THAT:: .ZWORD "that" + 0 + 0 +W?THE:: .ZWORD "the" + 0 + 32 +W?THEIR:: .ZWORD "their" + 0 + 4 +W?THEM:: .ZWORD "them" + 0 + 2 +W?THEN:: .ZWORD "then" + 0 + 32769 +W?THERE:: .ZWORD "there" + 0 + 0 +W?THERMOMETER:: .ZWORD "thermomet" + 0 + 2 +W?THEY:: .ZWORD "they" + 0 + 0 +W?THIRTEEN:: .ZWORD "thirteen" + 0 + 0 +W?THIRTY:: .ZWORD "thirty" + 0 + 0 +W?THIS:: .ZWORD "this" + 0 + 2 +W?THOUSAND:: .ZWORD "thousand" + 0 + 0 +W?THREE:: .ZWORD "three" + 0 + 2 +W?THRICE:: .ZWORD "thrice" + 0 + 8 +W?THROUGH:: .ZWORD "through" + 0 + 2048 +W?THROW:: .ZWORD "throw" + ACT?THROW + 1 +W?THRU:: .ZWORD "thru" + W?THROUGH + 0 +W?TIE:: .ZWORD "tie" + ACT?TIE + 1 +W?TIMER:: .ZWORD "timer" + 0 + 2 +W?TO:: .ZWORD "to" + 0 + 2048 +W?TONGUE:: .ZWORD "tongue" + 0 + 2 +W?TOOL:: .ZWORD "tool" + 0 + 4 +W?TORPEDO:: .ZWORD "torpedo" + 0 + 4 +W?TORSO:: .ZWORD "torso" + 0 + 2 +W?TOWARD:: .ZWORD "toward" + W?TO + 0 +W?TOWARDS:: .ZWORD "towards" + W?TO + 0 +W?TREADMILL:: .ZWORD "treadmill" + 0 + 2 +W?TRENCH:: .ZWORD "trench" + 0 + 6 +W?TRI:: .ZWORD "tri" + 0 + 4 +W?TRI-MIX:: .ZWORD "tri-mix" + 0 + 4 +W?TROUGH:: .ZWORD "trough" + 0 + 6 +W?TURN:: .ZWORD "turn" + ACT?TURN + 3 +W?TURNS:: .ZWORD "turns" + 0 + 2 +W?TWELVE:: .ZWORD "twelve" + 0 + 0 +W?TWENTY:: .ZWORD "twenty" + 0 + 0 +W?TWICE:: .ZWORD "twice" + 0 + 8 +W?U:: .ZWORD "u" + .BYTE 55 + .BYTE 0 + 64 +W?UFO:: .ZWORD "ufo" + 0 + 2 +W?UNDER:: .ZWORD "under" + 0 + 2048 +W?UNDO:: .ZWORD "undo" + ACT?UNDO + 1 +W?UNLOCK:: .ZWORD "unlock" + ACT?UNLOCK + 1 +W?UNLOCKED:: .ZWORD "unlocked" + 0 + 4 +W?UNSCRIPT:: .ZWORD "unscript" + ACT?SCRIPT + 1 +W?UP:: .ZWORD "up" + .BYTE 55 + .BYTE 0 + 2112 +W?UPSTAIRS:: .ZWORD "upstairs" + .BYTE 55 + .BYTE 0 + 64 +W?USING:: .ZWORD "using" + W?WITH + 0 +W?USS:: .ZWORD "uss" + 0 + 4 +W?VALVE:: .ZWORD "valve" + 0 + 2 +W?VERBOSE:: .ZWORD "verbose" + ACT?BRIEF + 1 +W?VERSION:: .ZWORD "version" + ACT?VERSION + 1 +W?W:: .ZWORD "w" + .BYTE 56 + .BYTE 0 + 64 +W?WAIST:: .ZWORD "waist" + 0 + 2 +W?WAIT:: .ZWORD "wait" + ACT?WAIT + 1 +W?WALDORF:: .ZWORD "waldorf" + 0 + 2 +W?WALK:: .ZWORD "walk" + ACT?WALK + 1 +W?WALL:: .ZWORD "wall" + 0 + 6 +W?WALLS:: .ZWORD "walls" + 0 + 2 +W?WAS:: .ZWORD "was" + 0 + 128 +W?WASN:: .ZWORD "wasn" + 0 + 0 +W?WATER:: .ZWORD "water" + 0 + 6 +W?WE:: .ZWORD "we" + 0 + 0 +W?WEAR:: .ZWORD "wear" + ACT?WEAR + 1 +W?WEIGHTS:: .ZWORD "weights" + 0 + 2 +W?WELD:: .ZWORD "weld" + ACT?WELD + 1 +W?WELDER:: .ZWORD "welder" + 0 + 2 +W?WELDING:: .ZWORD "welding" + 0 + 4 +W?WELL:: .ZWORD "well" + 0 + 2 +W?WERE:: .ZWORD "were" + 0 + 128 +W?WEREN:: .ZWORD "weren" + 0 + 0 +W?WEST:: .ZWORD "west" + .BYTE 56 + .BYTE 0 + 66 +W?WHACK:: .ZWORD "whack" + ACT?HIT + 1 +W?WHAT:: .ZWORD "what" + ACT?WHAT + 257 +W?WHEN:: .ZWORD "when" + ACT?WHEN + 257 +W?WHERE:: .ZWORD "where" + ACT?WHERE + 257 +W?WHITE:: .ZWORD "white" + 0 + 4 +W?WHO:: .ZWORD "who" + ACT?WHO + 257 +W?WHY:: .ZWORD "why" + ACT?WHY + 257 +W?WILL:: .ZWORD "will" + ACT?WILL + 641 +W?WILLHITE:: .ZWORD "willhite" + 0 + 2 +W?WINDOW:: .ZWORD "window" + 0 + 4 +W?WIRE:: .ZWORD "wire" + 0 + 6 +W?WIRES:: .ZWORD "wires" + W?WIRE + 2 +W?WIRING:: .ZWORD "wiring" + 0 + 4 +W?WITH:: .ZWORD "with" + 0 + 2048 +W?WOMAN:: .ZWORD "woman" + 0 + 2 +W?WOMEN:: .ZWORD "women" + W?WOMAN + 2 +W?WON:: .ZWORD "won" + 0 + 0 +W?WOULD:: .ZWORD "would" + ACT?WOULD + 513 +W?WOULDN:: .ZWORD "wouldn" + 0 + 0 +W?X:: .ZWORD "x" + ACT?EXAMINE + 1 +W?Y:: .ZWORD "y" + ACT?YES + 1 +W?YELLOW:: .ZWORD "yellow" + 0 + 4 +W?YES:: .ZWORD "yes" + ACT?YES + 1 +W?YOU:: .ZWORD "you" + 0 + 2 +W?YOUR:: .ZWORD "your" + 0 + 4 +W?YOURSELF:: .ZWORD "yourself" + 0 + 2 +W?Z:: .ZWORD "z" + ACT?WAIT + 1 +W?ZERO:: .ZWORD "zero" + 0 + 0 +W?ZOOTOWN:: .ZWORD "zootown" + 0 + 2 + .VOCEND + .ENDT + + +; PARSER TABLES ARE DEFINED HERE + +PRSTBL:: + +RT?111:: .TABLE + 3 + RED-SP + 1 + 0 + 1 + STR?11 + .ENDT + +RT?211:: .TABLE + 2 + RED-SV + 2 + 0 + 3 + STR?12 + .ENDT + +RT?311:: .TABLE + 4 + RED-SVPNN + 2 + 0 + 3 + STR?13 + .ENDT + +RT?411:: .TABLE + 4 + RED-SVNPN + 2 + 0 + 3 + STR?14 + .ENDT + +RT?511:: .TABLE + 5 + RED-SVPNPN + 2 + 0 + 3 + STR?15 + .ENDT + +RT?611:: .TABLE + 3 + RED-SVNP + 2 + 0 + 3 + STR?16 + .ENDT + +RT?711:: .TABLE + 3 + RED-SVN + 2 + 0 + 3 + STR?17 + .ENDT + +RT?811:: .TABLE + 1 + RED-SD + 2 + 0 + 3 + STR?18 + .ENDT + +RT?911:: .TABLE + 2 + RED-SVD + 2 + 0 + 3 + STR?19 + .ENDT + +RT?1011:: .TABLE + 4 + RED-VP + 3 + 0 + 5 + STR?20 + .ENDT + +RT?1111:: .TABLE + 0 + RED-CANDO + 3 + 0 + 8 + STR?21 + .ENDT + +RT?1211:: .TABLE + 1 + RED-CANDO + 3 + 0 + 8 + STR?21 + .ENDT + +RT?1311:: .TABLE + 3 + RED-CANDO + 3 + 0 + 8 + STR?21 + .ENDT + +RT?1411:: +RT?1511:: .TABLE + 4 + RED-CANDO + 3 + 0 + 8 + STR?21 + .ENDT + +RT?1611:: +RT?1711:: .TABLE + 2 + RED-PART + 1 + 0 + 6 + STR?22 + .ENDT + +RT?1811:: .TABLE + 0 + RED-PART + 1 + 0 + 6 + STR?22 + .ENDT + +RT?1911:: .TABLE + 1 + RED-FCN + 1 + 0 + 4 + STR?23 + .ENDT + +RT?2011:: .TABLE + 0 + RED-FCN + 1 + 0 + 4 + STR?23 + .ENDT + +RT?2111:: .TABLE + 3 + RED-NPP + 4 + 0 + 7 + STR?24 + .ENDT + +RT?2211:: .TABLE + 2 + RED-NPP + 4 + 0 + 7 + STR?24 + .ENDT + +RT?2311:: .TABLE + 1 + RED-NPP + 4 + 0 + 7 + STR?24 + .ENDT + +RT?2411:: .TABLE + 1 + RED-QUOTE + 7 + 0 + 9 + STR?25 + .ENDT + +RT?2511:: .TABLE + 3 + RED-OF + 5 + 0 + 9 + STR?26 + .ENDT + +RT?2611:: .TABLE + 1 + RED-QT + 7 + 0 + 9 + STR?27 + .ENDT + +RT?2711:: .TABLE + 2 + RED-QN + 5 + 0 + 9 + STR?28 + .ENDT + +RT?2811:: .TABLE + 2 + RED-NP + 6 + 0 + 9 + STR?29 + .ENDT + +RT?2911:: +RT?3011:: .TABLE + 2 + RED-PP + 3 + 0 + 13 + STR?30 + .ENDT + +RT?3111:: +RT?3211:: .TABLE + 3 + RED-PP + 3 + 0 + 13 + STR?30 + .ENDT + +RT?3311:: +RT?3511:: +RT?3611:: .TABLE + 2 + RED-ADJ + 8 + 0 + 14 + STR?31 + .ENDT + +RT?3411:: .TABLE + 0 + RED-ADJ + 8 + 0 + 14 + STR?31 + .ENDT + +RT?3711:: .TABLE + 3 + RED-POSS + 8 + 0 + 15 + STR?32 + .ENDT + +RT?3811:: .TABLE + 1 + RED-BE-FORM + 3 + 0 + 16 + STR?33 + .ENDT + +RT?3911:: .TABLE + 5 + RED-SNBN + 2 + 0 + 3 + STR?34 + .ENDT + +RT?4011:: .TABLE + 5 + RED-SNBA + 2 + 0 + 3 + STR?35 + .ENDT + +RT?4111:: .TABLE + 5 + RED-SNBP + 2 + 0 + 3 + STR?36 + .ENDT + +RT?4211:: .TABLE + 6 + RED-SNBAP + 2 + 0 + 3 + STR?37 + .ENDT + +RT?4311:: .TABLE + 0 + RED-FCN + 3 + 0 + 11 + STR?23 + .ENDT + +RT?4411:: .TABLE + 1 + RED-FCN + 3 + 0 + 11 + STR?23 + .ENDT + +RT?4511:: .TABLE + 3 + RED-SQBN + 2 + 0 + 3 + STR?38 + .ENDT + +RT?4611:: +RT?4711:: .TABLE + 6 + RED-SBNN + 2 + 0 + 3 + STR?39 + .ENDT + +RT?4811:: +RT?4911:: .TABLE + 6 + RED-SBNA + 2 + 0 + 3 + STR?40 + .ENDT + +RT?5011:: +RT?5111:: .TABLE + 6 + RED-SBNP + 2 + 0 + 3 + STR?41 + .ENDT + +RT?5211:: .TABLE + 0 + RED-BE + 3 + 0 + 17 + STR?42 + .ENDT + +RT?5311:: .TABLE + 1 + RED-BE + 3 + 0 + 17 + STR?42 + .ENDT + +RT?5411:: .TABLE + 0 + RED-NOT + 3 + 0 + 10 + STR?43 + .ENDT + +RT?5511:: .TABLE + 1 + RED-NOT + 3 + 0 + 10 + STR?43 + .ENDT + +RT?5611:: .TABLE + 1 + RED-NOT + 3 + 0 + 12 + STR?43 + .ENDT + +RT?5711:: .TABLE + 0 + RED-PERS + 2 + 0 + 2 + STR?44 + .ENDT + +RT?5811:: .TABLE + 2 + RED-PERS + 2 + 0 + 2 + STR?44 + .ENDT + +RT?5911:: .TABLE + 3 + RED-PERS + 2 + 0 + 2 + STR?44 + .ENDT + +RT?6011:: .TABLE + 0 + DO-ORPHAN-TEST + 2 + 0 + 18 + STR?45 + .ENDT + +RT?6111:: .TABLE + 2 + RED-O-NP + 1 + 0 + 3 + STR?46 + .ENDT + +RT?6211:: .TABLE + 3 + RED-O-NP + 1 + 0 + 3 + STR?46 + .ENDT + +RT?6311:: .TABLE + 2 + RED-O-ADJ + 1 + 0 + 3 + STR?47 + .ENDT + +RT?6411:: .TABLE + 2 + RED-O-PP + 1 + 0 + 3 + STR?48 + .ENDT + +RT?6511:: .TABLE + 3 + RED-O-PP + 1 + 0 + 3 + STR?48 + .ENDT + +RT?6611:: +REDUCTION-TABLE:: .TABLE + RT?111 + RT?211 + RT?311 + RT?411 + RT?511 + RT?611 + RT?711 + RT?811 + RT?911 + RT?1011 + RT?1111 + RT?1211 + RT?1311 + RT?1411 + RT?1511 + RT?1611 + RT?1711 + RT?1811 + RT?1911 + RT?2011 + RT?2111 + RT?2211 + RT?2311 + RT?2411 + RT?2511 + RT?2611 + RT?2711 + RT?2811 + RT?2911 + RT?3011 + RT?3111 + RT?3211 + RT?3311 + RT?3411 + RT?3511 + RT?3611 + RT?3711 + RT?3811 + RT?3911 + RT?4011 + RT?4111 + RT?4211 + RT?4311 + RT?4411 + RT?4511 + RT?4611 + RT?4711 + RT?4811 + RT?4911 + RT?5011 + RT?5111 + RT?5211 + RT?5311 + RT?5411 + RT?5511 + RT?5611 + RT?5711 + RT?5811 + RT?5911 + RT?6011 + RT?6111 + RT?6211 + RT?6311 + RT?6411 + RT?6511 + .ENDT + +RT?6711:: .TABLE + .BYTE 2 + .BYTE 185 + .BYTE 162 + .ENDT + +RT?6811:: .TABLE + .BYTE 2 + .BYTE 12 + .BYTE 185 + .ENDT + +RT?6911:: .TABLE + .BYTE 2 + .BYTE 11 + .BYTE 185 + .ENDT + +RT?7011:: .TABLE + .BYTE 2 + .BYTE 10 + .BYTE 185 + .ENDT + +RT?7111:: .TABLE + .BYTE 2 + .BYTE 8 + .BYTE 185 + .ENDT + +RT?7211:: .TABLE + 1 + 7113 + 185 + 0 + 2 + RT?6711 + 0 + 4 + RT?6811 + 0 + 16 + RT?6911 + 0 + 32 + RT?7011 + 0 + 8192 + 9 + 0 + 16384 + RT?7111 + 0 + 0 + .ENDT + +RT?7311:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 5 + .BYTE 2 + .BYTE 6 + .BYTE 1 + .BYTE 7 + .BYTE 0 + .ENDT + +RT?7411:: .TABLE + RT?7211 + RT?7311 + .ENDT + +RT?7511:: +RT?10211:: +RT?11311:: .TABLE + 1 + 10 + 162 + 0 + 4 + 12 + 0 + 16 + 11 + 0 + 32 + 10 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?7611:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 104 + .BYTE 9 + .BYTE 14 + .BYTE 0 + .ENDT + +RT?7711:: .TABLE + RT?7511 + RT?7611 + .ENDT + +RT?7811:: .TABLE + 0 + 2 + 19 + 0 + 0 + .ENDT + +RT?7911:: .TABLE + RT?7811 + 0 + .ENDT + +RT?8011:: .TABLE + .BYTE 2 + .BYTE 15 + .BYTE 151 + .ENDT + +RT?8111:: .TABLE + 1 + 23582 + 151 + 0 + 32 + RT?8011 + 0 + 0 + .ENDT + +RT?8211:: .TABLE + RT?8111 + 0 + .ENDT + +RT?8311:: .TABLE + 0 + 1024 + 103 + 0 + 2048 + 30 + 0 + 4096 + 23 + 0 + 0 + .ENDT + +RT?8411:: +RT?14411:: +RT?16911:: +RT?17811:: +RT?18711:: +RT?19611:: +RT?26311:: +RT?28511:: +RT?29911:: +RT?33211:: +RT?38811:: +RT?41111:: .TABLE + .BYTE 13 + .BYTE 22 + .BYTE 0 + .ENDT + +RT?8511:: .TABLE + RT?8311 + RT?8411 + .ENDT + +RT?8611:: .TABLE + .BYTE 2 + .BYTE 162 + .BYTE 188 + .ENDT + +RT?8711:: .TABLE + .BYTE 2 + .BYTE 12 + .BYTE 188 + .ENDT + +RT?8811:: .TABLE + .BYTE 2 + .BYTE 139 + .BYTE 188 + .ENDT + +RT?8911:: .TABLE + .BYTE 2 + .BYTE 11 + .BYTE 188 + .ENDT + +RT?9011:: .TABLE + .BYTE 2 + .BYTE 10 + .BYTE 188 + .ENDT + +RT?9111:: .TABLE + .BYTE 2 + .BYTE 8 + .BYTE 188 + .ENDT + +RT?9211:: .TABLE + 1 + 6144 + 188 + 0 + 640 + 171 + 0 + 1 + 139 + 0 + 2 + RT?8611 + 0 + 4 + RT?8711 + 0 + 8 + RT?8811 + 0 + 16 + RT?8911 + 0 + 32 + RT?9011 + 0 + 64 + 41 + 0 + 256 + 40 + 0 + 16384 + RT?9111 + 0 + 0 + .ENDT + +RT?9311:: .TABLE + .BYTE 18 + .BYTE 34 + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 11 + .BYTE 35 + .BYTE 9 + .BYTE 36 + .BYTE 8 + .BYTE 37 + .BYTE 5 + .BYTE 38 + .BYTE 3 + .BYTE 39 + .BYTE 0 + .ENDT + +RT?9411:: .TABLE + RT?9211 + RT?9311 + .ENDT + +RT?9511:: .TABLE + 1 + 0 + 128 + 0 + 0 + .ENDT + +RT?9611:: .TABLE + RT?9511 + 0 + .ENDT + +RT?9711:: .TABLE + 1 + 24255 + 152 + 0 + 0 + .ENDT + +RT?9811:: .TABLE + RT?9711 + 0 + .ENDT + +RT?9911:: +RT?15911:: +RT?17111:: +RT?18911:: +RT?22711:: +RT?26511:: +RT?28711:: +RT?34511:: +RT?37111:: .TABLE + 0 + 2 + 162 + 0 + 4 + 12 + 0 + 16 + 11 + 0 + 32 + 10 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?10011:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 21 + .BYTE 0 + .ENDT + +RT?10111:: .TABLE + RT?9911 + RT?10011 + .ENDT + +RT?10311:: +RT?13311:: +RT?35711:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 18 + .BYTE 9 + .BYTE 14 + .BYTE 0 + .ENDT + +RT?10411:: .TABLE + RT?10211 + RT?10311 + .ENDT + +RT?10511:: .TABLE + .BYTE 2 + .BYTE 154 + .BYTE 162 + .ENDT + +RT?10611:: .TABLE + .BYTE 2 + .BYTE 12 + .BYTE 154 + .ENDT + +RT?10711:: .TABLE + .BYTE 2 + .BYTE 11 + .BYTE 154 + .ENDT + +RT?10811:: .TABLE + .BYTE 2 + .BYTE 10 + .BYTE 154 + .ENDT + +RT?10911:: .TABLE + .BYTE 2 + .BYTE 8 + .BYTE 154 + .ENDT + +RT?11011:: .TABLE + 1 + 7817 + 154 + 0 + 2 + RT?10511 + 0 + 4 + RT?10611 + 0 + 16 + RT?10711 + 0 + 32 + RT?10811 + 0 + 16384 + RT?10911 + 0 + 0 + .ENDT + +RT?11111:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 20 + .BYTE 0 + .ENDT + +RT?11211:: .TABLE + RT?11011 + RT?11111 + .ENDT + +RT?11411:: +RT?39111:: +RT?41411:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 13 + .BYTE 9 + .BYTE 14 + .BYTE 0 + .ENDT + +RT?11511:: .TABLE + RT?11311 + RT?11411 + .ENDT + +RT?11611:: .TABLE + .BYTE 2 + .BYTE 19 + .BYTE 163 + .ENDT + +RT?11711:: .TABLE + 1 + 8 + 163 + 0 + 2 + RT?11611 + 0 + 0 + .ENDT + +RT?11811:: .TABLE + RT?11711 + 0 + .ENDT + +RT?11911:: .TABLE + 0 + 32 + 15 + 0 + 0 + .ENDT + +RT?12011:: .TABLE + RT?11911 + 0 + .ENDT + +RT?12111:: .TABLE + 0 + 2 + 162 + 0 + 4 + 12 + 0 + 16 + 11 + 0 + 32 + 17 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?12211:: +RT?36711:: +RT?40611:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 16 + .BYTE 0 + .ENDT + +RT?12311:: .TABLE + RT?12111 + RT?12211 + .ENDT + +RT?12411:: .TABLE + .BYTE 2 + .BYTE 15 + .BYTE 153 + .ENDT + +RT?12511:: .TABLE + 1 + 24223 + 153 + 0 + 32 + RT?12411 + 0 + 0 + .ENDT + +RT?12611:: .TABLE + RT?12511 + 0 + .ENDT + +RT?12711:: .TABLE + .BYTE 2 + .BYTE 165 + .BYTE 162 + .ENDT + +RT?12811:: .TABLE + .BYTE 2 + .BYTE 12 + .BYTE 165 + .ENDT + +RT?12911:: .TABLE + .BYTE 2 + .BYTE 11 + .BYTE 165 + .ENDT + +RT?13011:: .TABLE + .BYTE 2 + .BYTE 10 + .BYTE 165 + .ENDT + +RT?13111:: .TABLE + .BYTE 2 + .BYTE 8 + .BYTE 165 + .ENDT + +RT?13211:: .TABLE + 1 + 8 + 165 + 0 + 2 + RT?12711 + 0 + 4 + RT?12811 + 0 + 16 + RT?12911 + 0 + 32 + RT?13011 + 0 + 16384 + RT?13111 + 0 + 0 + .ENDT + +RT?13411:: .TABLE + RT?13211 + RT?13311 + .ENDT + +RT?13511:: .TABLE + .BYTE 2 + .BYTE 19 + .BYTE 164 + .ENDT + +RT?13611:: .TABLE + 1 + 8 + 164 + 0 + 2 + RT?13511 + 0 + 0 + .ENDT + +RT?13711:: .TABLE + RT?13611 + 0 + .ENDT + +RT?13811:: .TABLE + 1 + 24255 + 156 + 0 + 0 + .ENDT + +RT?13911:: .TABLE + RT?13811 + 0 + .ENDT + +RT?14011:: .TABLE + .BYTE 2 + .BYTE 15 + .BYTE 155 + .ENDT + +RT?14111:: .TABLE + 1 + 24223 + 155 + 0 + 32 + RT?14011 + 0 + 0 + .ENDT + +RT?14211:: .TABLE + RT?14111 + 0 + .ENDT + +RT?14311:: .TABLE + 0 + 1024 + 25 + 0 + 2048 + 24 + 0 + 4096 + 23 + 0 + 0 + .ENDT + +RT?14511:: .TABLE + RT?14311 + RT?14411 + .ENDT + +RT?14611:: .TABLE + 1 + 23614 + 150 + 0 + 0 + .ENDT + +RT?14711:: .TABLE + RT?14611 + 0 + .ENDT + +RT?14811:: .TABLE + 0 + 2 + 162 + 0 + 4 + 12 + 0 + 16 + 11 + 0 + 32 + 32 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?14911:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 31 + .BYTE 0 + .ENDT + +RT?15011:: .TABLE + RT?14811 + RT?14911 + .ENDT + +RT?15111:: .TABLE + .BYTE 2 + .BYTE 187 + .BYTE 162 + .ENDT + +RT?15211:: .TABLE + .BYTE 2 + .BYTE 12 + .BYTE 187 + .ENDT + +RT?15311:: .TABLE + .BYTE 2 + .BYTE 11 + .BYTE 187 + .ENDT + +RT?15411:: .TABLE + .BYTE 2 + .BYTE 28 + .BYTE 187 + .ENDT + +RT?15511:: .TABLE + .BYTE 2 + .BYTE 8 + .BYTE 187 + .ENDT + +RT?15611:: .TABLE + 1 + 7113 + 187 + 0 + 2 + RT?15111 + 0 + 4 + RT?15211 + 0 + 16 + RT?15311 + 0 + 32 + RT?15411 + 0 + 16384 + RT?15511 + 0 + 0 + .ENDT + +RT?15711:: +RT?18111:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 27 + .BYTE 0 + .ENDT + +RT?15811:: .TABLE + RT?15611 + RT?15711 + .ENDT + +RT?16011:: +RT?43811:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 26 + .BYTE 0 + .ENDT + +RT?16111:: .TABLE + RT?15911 + RT?16011 + .ENDT + +RT?16211:: .TABLE + .BYTE 2 + .BYTE 15 + .BYTE 149 + .ENDT + +RT?16311:: .TABLE + 1 + 23582 + 149 + 0 + 32 + RT?16211 + 0 + 0 + .ENDT + +RT?16411:: .TABLE + RT?16311 + 0 + .ENDT + +RT?16511:: .TABLE + .BYTE 2 + .BYTE 25 + .BYTE 158 + .ENDT + +RT?16611:: .TABLE + .BYTE 2 + .BYTE 30 + .BYTE 158 + .ENDT + +RT?16711:: .TABLE + .BYTE 2 + .BYTE 23 + .BYTE 158 + .ENDT + +RT?16811:: .TABLE + 1 + 16446 + 158 + 0 + 1024 + RT?16511 + 0 + 2048 + RT?16611 + 0 + 4096 + RT?16711 + 0 + 0 + .ENDT + +RT?17011:: .TABLE + RT?16811 + RT?16911 + .ENDT + +RT?17211:: +RT?28211:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 18 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 29 + .BYTE 0 + .ENDT + +RT?17311:: .TABLE + RT?17111 + RT?17211 + .ENDT + +RT?17411:: .TABLE + .BYTE 2 + .BYTE 25 + .BYTE 160 + .ENDT + +RT?17511:: .TABLE + .BYTE 2 + .BYTE 30 + .BYTE 160 + .ENDT + +RT?17611:: .TABLE + .BYTE 2 + .BYTE 23 + .BYTE 160 + .ENDT + +RT?17711:: .TABLE + 1 + 16446 + 160 + 0 + 1024 + RT?17411 + 0 + 2048 + RT?17511 + 0 + 4096 + RT?17611 + 0 + 0 + .ENDT + +RT?17911:: .TABLE + RT?17711 + RT?17811 + .ENDT + +RT?18011:: +RT?42311:: .TABLE + 0 + 2 + 162 + 0 + 4 + 12 + 0 + 16 + 11 + 0 + 32 + 28 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?18211:: .TABLE + RT?18011 + RT?18111 + .ENDT + +RT?18311:: .TABLE + .BYTE 2 + .BYTE 25 + .BYTE 157 + .ENDT + +RT?18411:: .TABLE + .BYTE 2 + .BYTE 30 + .BYTE 157 + .ENDT + +RT?18511:: .TABLE + .BYTE 2 + .BYTE 23 + .BYTE 157 + .ENDT + +RT?18611:: .TABLE + 1 + 16446 + 157 + 0 + 1024 + RT?18311 + 0 + 2048 + RT?18411 + 0 + 4096 + RT?18511 + 0 + 0 + .ENDT + +RT?18811:: .TABLE + RT?18611 + RT?18711 + .ENDT + +RT?19011:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 18 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 33 + .BYTE 0 + .ENDT + +RT?19111:: .TABLE + RT?18911 + RT?19011 + .ENDT + +RT?19211:: .TABLE + .BYTE 2 + .BYTE 25 + .BYTE 159 + .ENDT + +RT?19311:: .TABLE + .BYTE 2 + .BYTE 30 + .BYTE 159 + .ENDT + +RT?19411:: .TABLE + .BYTE 2 + .BYTE 23 + .BYTE 159 + .ENDT + +RT?19511:: .TABLE + 1 + 16446 + 159 + 0 + 1024 + RT?19211 + 0 + 2048 + RT?19311 + 0 + 4096 + RT?19411 + 0 + 0 + .ENDT + +RT?19711:: .TABLE + RT?19511 + RT?19611 + .ENDT + +RT?19811:: .TABLE + 1 + 10 + 162 + 0 + 4 + 12 + 0 + 16 + 11 + 0 + 32 + 10 + 0 + 2048 + 100 + 0 + 4096 + 23 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?19911:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 97 + .BYTE 13 + .BYTE 98 + .BYTE 9 + .BYTE 99 + .BYTE 0 + .ENDT + +RT?20011:: .TABLE + RT?19811 + RT?19911 + .ENDT + +RT?20111:: .TABLE + 0 + 128 + 43 + 0 + 512 + 77 + 0 + 0 + .ENDT + +RT?20211:: .TABLE + .BYTE 16 + .BYTE 76 + .BYTE 0 + .ENDT + +RT?20311:: .TABLE + RT?20111 + RT?20211 + .ENDT + +RT?20411:: .TABLE + 0 + 9 + 140 + 0 + 32 + 15 + 0 + 128 + 43 + 0 + 512 + 66 + 0 + 0 + .ENDT + +RT?20511:: .TABLE + .BYTE 16 + .BYTE 65 + .BYTE 0 + .ENDT + +RT?20611:: .TABLE + RT?20411 + RT?20511 + .ENDT + +RT?20711:: .TABLE + 0 + 1 + 148 + 0 + 8 + 46 + 0 + 0 + .ENDT + +RT?20811:: .TABLE + .BYTE 4 + .BYTE 62 + .BYTE 0 + .ENDT + +RT?20911:: .TABLE + RT?20711 + RT?20811 + .ENDT + +RT?21011:: +RT?25411:: +RT?26811:: +RT?29011:: .TABLE + .BYTE 2 + .BYTE 146 + .BYTE 162 + .ENDT + +RT?21111:: +RT?25511:: +RT?26911:: +RT?29111:: .TABLE + .BYTE 2 + .BYTE 12 + .BYTE 146 + .ENDT + +RT?21211:: +RT?25611:: +RT?27011:: +RT?29211:: .TABLE + .BYTE 2 + .BYTE 11 + .BYTE 146 + .ENDT + +RT?21311:: +RT?25711:: .TABLE + .BYTE 2 + .BYTE 10 + .BYTE 146 + .ENDT + +RT?21411:: +RT?25811:: +RT?27211:: +RT?29411:: .TABLE + .BYTE 2 + .BYTE 8 + .BYTE 146 + .ENDT + +RT?21511:: .TABLE + 1 + 8 + 146 + 0 + 2 + RT?21011 + 0 + 4 + RT?21111 + 0 + 16 + RT?21211 + 0 + 32 + RT?21311 + 0 + 64 + 50 + 0 + 2048 + 49 + 0 + 16384 + RT?21411 + 0 + 0 + .ENDT + +RT?21611:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 47 + .BYTE 6 + .BYTE 48 + .BYTE 0 + .ENDT + +RT?21711:: .TABLE + RT?21511 + RT?21611 + .ENDT + +RT?21811:: .TABLE + 0 + 8 + 46 + 1 + 0 + 148 + 0 + 0 + .ENDT + +RT?21911:: .TABLE + .BYTE 4 + .BYTE 45 + .BYTE 0 + .ENDT + +RT?22011:: .TABLE + RT?21811 + RT?21911 + .ENDT + +RT?22111:: .TABLE + .BYTE 2 + .BYTE 43 + .BYTE 172 + .ENDT + +RT?22211:: .TABLE + 0 + 128 + RT?22111 + 0 + 512 + 172 + 0 + 0 + .ENDT + +RT?22311:: .TABLE + .BYTE 16 + .BYTE 42 + .BYTE 0 + .ENDT + +RT?22411:: .TABLE + RT?22211 + RT?22311 + .ENDT + +RT?22511:: .TABLE + 1 + 8 + 136 + 0 + 0 + .ENDT + +RT?22611:: .TABLE + RT?22511 + 0 + .ENDT + +RT?22811:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 44 + .BYTE 0 + .ENDT + +RT?22911:: .TABLE + RT?22711 + RT?22811 + .ENDT + +RT?23011:: .TABLE + 0 + 22582 + 166 + 0 + 0 + .ENDT + +RT?23111:: .TABLE + RT?23011 + 0 + .ENDT + +RT?23211:: .TABLE + 1 + 8 + 173 + 0 + 32 + 15 + 0 + 0 + .ENDT + +RT?23311:: .TABLE + RT?23211 + 0 + .ENDT + +RT?23411:: .TABLE + 1 + 0 + 129 + 0 + 0 + .ENDT + +RT?23511:: .TABLE + RT?23411 + 0 + .ENDT + +RT?23611:: .TABLE + 1 + 18559 + 147 + 0 + 0 + .ENDT + +RT?23711:: .TABLE + RT?23611 + 0 + .ENDT + +RT?23811:: .TABLE + 0 + 16438 + 146 + 0 + 1024 + 25 + 0 + 2048 + 60 + 0 + 4096 + 23 + 0 + 0 + .ENDT + +RT?23911:: .TABLE + .BYTE 13 + .BYTE 22 + .BYTE 6 + .BYTE 59 + .BYTE 0 + .ENDT + +RT?24011:: .TABLE + RT?23811 + RT?23911 + .ENDT + +RT?24111:: .TABLE + 1 + 8 + 130 + 0 + 2 + 162 + 0 + 4 + 12 + 0 + 16 + 11 + 0 + 32 + 10 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?24211:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 53 + .BYTE 0 + .ENDT + +RT?24311:: .TABLE + RT?24111 + RT?24211 + .ENDT + +RT?24411:: .TABLE + .BYTE 2 + .BYTE 52 + .BYTE 146 + .ENDT + +RT?24511:: .TABLE + 1 + 16414 + 146 + 0 + 32 + RT?24411 + 0 + 2048 + 49 + 0 + 0 + .ENDT + +RT?24611:: .TABLE + .BYTE 6 + .BYTE 51 + .BYTE 0 + .ENDT + +RT?24711:: .TABLE + RT?24511 + RT?24611 + .ENDT + +RT?24811:: .TABLE + 1 + 8 + 137 + 0 + 0 + .ENDT + +RT?24911:: .TABLE + RT?24811 + 0 + .ENDT + +RT?25011:: .TABLE + 1 + 16446 + 145 + 0 + 0 + .ENDT + +RT?25111:: .TABLE + RT?25011 + 0 + .ENDT + +RT?25211:: .TABLE + 1 + 16446 + 144 + 0 + 0 + .ENDT + +RT?25311:: .TABLE + RT?25211 + 0 + .ENDT + +RT?25911:: .TABLE + 1 + 8 + 135 + 0 + 2 + RT?25411 + 0 + 4 + RT?25511 + 0 + 16 + RT?25611 + 0 + 32 + RT?25711 + 0 + 1024 + 25 + 0 + 2048 + 56 + 0 + 4096 + 23 + 0 + 16384 + RT?25811 + 0 + 0 + .ENDT + +RT?26011:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 13 + .BYTE 22 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 54 + .BYTE 6 + .BYTE 55 + .BYTE 0 + .ENDT + +RT?26111:: .TABLE + RT?25911 + RT?26011 + .ENDT + +RT?26211:: .TABLE + 1 + 8 + 131 + 0 + 1024 + 25 + 0 + 2048 + 30 + 0 + 4096 + 23 + 0 + 0 + .ENDT + +RT?26411:: .TABLE + RT?26211 + RT?26311 + .ENDT + +RT?26611:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 58 + .BYTE 0 + .ENDT + +RT?26711:: .TABLE + RT?26511 + RT?26611 + .ENDT + +RT?27111:: +RT?29311:: .TABLE + .BYTE 2 + .BYTE 57 + .BYTE 146 + .ENDT + +RT?27311:: .TABLE + 0 + 2 + RT?26811 + 0 + 4 + RT?26911 + 0 + 16 + RT?27011 + 0 + 32 + RT?27111 + 0 + 2048 + 49 + 0 + 16384 + RT?27211 + 0 + 0 + .ENDT + +RT?27411:: +RT?29611:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 27 + .BYTE 6 + .BYTE 51 + .BYTE 0 + .ENDT + +RT?27511:: .TABLE + RT?27311 + RT?27411 + .ENDT + +RT?27611:: .TABLE + .BYTE 2 + .BYTE 144 + .BYTE 162 + .ENDT + +RT?27711:: .TABLE + .BYTE 2 + .BYTE 12 + .BYTE 144 + .ENDT + +RT?27811:: .TABLE + .BYTE 2 + .BYTE 11 + .BYTE 144 + .ENDT + +RT?27911:: .TABLE + .BYTE 2 + .BYTE 10 + .BYTE 144 + .ENDT + +RT?28011:: .TABLE + .BYTE 2 + .BYTE 8 + .BYTE 144 + .ENDT + +RT?28111:: .TABLE + 0 + 2 + RT?27611 + 0 + 4 + RT?27711 + 0 + 16 + RT?27811 + 0 + 32 + RT?27911 + 0 + 16384 + RT?28011 + 0 + 0 + .ENDT + +RT?28311:: .TABLE + RT?28111 + RT?28211 + .ENDT + +RT?28411:: .TABLE + 1 + 8 + 133 + 0 + 1024 + 25 + 0 + 2048 + 30 + 0 + 4096 + 23 + 0 + 0 + .ENDT + +RT?28611:: .TABLE + RT?28411 + RT?28511 + .ENDT + +RT?28811:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 61 + .BYTE 0 + .ENDT + +RT?28911:: .TABLE + RT?28711 + RT?28811 + .ENDT + +RT?29511:: .TABLE + 1 + 8 + 134 + 0 + 2 + RT?29011 + 0 + 4 + RT?29111 + 0 + 16 + RT?29211 + 0 + 32 + RT?29311 + 0 + 2048 + 49 + 0 + 16384 + RT?29411 + 0 + 0 + .ENDT + +RT?29711:: .TABLE + RT?29511 + RT?29611 + .ENDT + +RT?29811:: .TABLE + 1 + 8 + 132 + 0 + 1024 + 25 + 0 + 2048 + 30 + 0 + 4096 + 23 + 0 + 0 + .ENDT + +RT?30011:: .TABLE + RT?29811 + RT?29911 + .ENDT + +RT?30111:: .TABLE + 0 + 1 + 63 + 0 + 0 + .ENDT + +RT?30211:: .TABLE + RT?30111 + 0 + .ENDT + +RT?30311:: .TABLE + .BYTE 2 + .BYTE 46 + .BYTE 148 + .ENDT + +RT?30411:: .TABLE + 1 + 18550 + 148 + 0 + 8 + RT?30311 + 0 + 0 + .ENDT + +RT?30511:: .TABLE + .BYTE 4 + .BYTE 64 + .BYTE 0 + .ENDT + +RT?30611:: .TABLE + RT?30411 + RT?30511 + .ENDT + +RT?30711:: .TABLE + 1 + 18558 + 138 + 0 + 0 + .ENDT + +RT?30811:: .TABLE + RT?30711 + 0 + .ENDT + +RT?30911:: .TABLE + .BYTE 2 + .BYTE 68 + .BYTE 182 + .ENDT + +RT?31011:: .TABLE + 0 + 22550 + 182 + 0 + 32 + RT?30911 + 0 + 0 + .ENDT + +RT?31111:: .TABLE + .BYTE 10 + .BYTE 69 + .BYTE 0 + .ENDT + +RT?31211:: .TABLE + RT?31011 + RT?31111 + .ENDT + +RT?31311:: .TABLE + 0 + 9 + 182 + 0 + 32 + 68 + 0 + 0 + .ENDT + +RT?31411:: .TABLE + .BYTE 10 + .BYTE 67 + .BYTE 0 + .ENDT + +RT?31511:: .TABLE + RT?31311 + RT?31411 + .ENDT + +RT?31611:: .TABLE + 0 + 9 + 141 + 0 + 0 + .ENDT + +RT?31711:: .TABLE + RT?31611 + 0 + .ENDT + +RT?31811:: .TABLE + 0 + 22591 + 183 + 0 + 0 + .ENDT + +RT?31911:: .TABLE + RT?31811 + 0 + .ENDT + +RT?32011:: +RT?37811:: .TABLE + .BYTE 2 + .BYTE 71 + .BYTE 180 + .ENDT + +RT?32111:: +RT?37911:: .TABLE + 0 + 22550 + 180 + 0 + 32 + RT?32011 + 0 + 0 + .ENDT + +RT?32211:: .TABLE + .BYTE 17 + .BYTE 70 + .BYTE 0 + .ENDT + +RT?32311:: .TABLE + RT?32111 + RT?32211 + .ENDT + +RT?32411:: .TABLE + 0 + 2 + 162 + 0 + 4 + 74 + 0 + 16 + 11 + 0 + 32 + 10 + 0 + 2048 + 30 + 0 + 4096 + 23 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?32511:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 13 + .BYTE 72 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 73 + .BYTE 0 + .ENDT + +RT?32611:: .TABLE + RT?32411 + RT?32511 + .ENDT + +RT?32711:: .TABLE + 0 + 22582 + 181 + 0 + 0 + .ENDT + +RT?32811:: .TABLE + RT?32711 + 0 + .ENDT + +RT?32911:: .TABLE + 1 + 8 + 169 + 0 + 0 + .ENDT + +RT?33011:: .TABLE + RT?32911 + 0 + .ENDT + +RT?33111:: .TABLE + 1 + 8 + 167 + 0 + 1024 + 25 + 0 + 2048 + 30 + 0 + 4096 + 23 + 0 + 0 + .ENDT + +RT?33311:: .TABLE + RT?33111 + RT?33211 + .ENDT + +RT?33411:: .TABLE + 1 + 8 + 168 + 0 + 2 + 162 + 0 + 4 + 12 + 0 + 16 + 11 + 0 + 32 + 10 + 0 + 2048 + 30 + 0 + 4096 + 23 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?33511:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 13 + .BYTE 13 + .BYTE 75 + .BYTE 9 + .BYTE 14 + .BYTE 0 + .ENDT + +RT?33611:: .TABLE + RT?33411 + RT?33511 + .ENDT + +RT?33711:: .TABLE + 1 + 8 + 170 + 0 + 0 + .ENDT + +RT?33811:: .TABLE + RT?33711 + 0 + .ENDT + +RT?33911:: +RT?34211:: .TABLE + 0 + 2 + 162 + 0 + 4 + 12 + 0 + 16 + 11 + 0 + 32 + 80 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?34011:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 12 + .BYTE 84 + .BYTE 9 + .BYTE 85 + .BYTE 0 + .ENDT + +RT?34111:: .TABLE + RT?33911 + RT?34011 + .ENDT + +RT?34311:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 12 + .BYTE 78 + .BYTE 9 + .BYTE 79 + .BYTE 0 + .ENDT + +RT?34411:: .TABLE + RT?34211 + RT?34311 + .ENDT + +RT?34611:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 83 + .BYTE 0 + .ENDT + +RT?34711:: .TABLE + RT?34511 + RT?34611 + .ENDT + +RT?34811:: .TABLE + 0 + 9 + 182 + 0 + 32 + 82 + 0 + 0 + .ENDT + +RT?34911:: .TABLE + .BYTE 10 + .BYTE 81 + .BYTE 0 + .ENDT + +RT?35011:: .TABLE + RT?34811 + RT?34911 + .ENDT + +RT?35111:: .TABLE + .BYTE 2 + .BYTE 184 + .BYTE 162 + .ENDT + +RT?35211:: .TABLE + .BYTE 2 + .BYTE 12 + .BYTE 184 + .ENDT + +RT?35311:: .TABLE + .BYTE 2 + .BYTE 11 + .BYTE 184 + .ENDT + +RT?35411:: .TABLE + .BYTE 2 + .BYTE 10 + .BYTE 184 + .ENDT + +RT?35511:: .TABLE + .BYTE 2 + .BYTE 8 + .BYTE 184 + .ENDT + +RT?35611:: .TABLE + 0 + 2 + RT?35111 + 0 + 4 + RT?35211 + 0 + 16 + RT?35311 + 0 + 32 + RT?35411 + 0 + 16384 + RT?35511 + 0 + 0 + .ENDT + +RT?35811:: .TABLE + RT?35611 + RT?35711 + .ENDT + +RT?35911:: .TABLE + 0 + 9 + 142 + 0 + 0 + .ENDT + +RT?36011:: .TABLE + RT?35911 + 0 + .ENDT + +RT?36111:: .TABLE + .BYTE 2 + .BYTE 183 + .BYTE 162 + .ENDT + +RT?36211:: .TABLE + .BYTE 2 + .BYTE 12 + .BYTE 183 + .ENDT + +RT?36311:: .TABLE + .BYTE 2 + .BYTE 11 + .BYTE 183 + .ENDT + +RT?36411:: .TABLE + .BYTE 2 + .BYTE 17 + .BYTE 183 + .ENDT + +RT?36511:: .TABLE + .BYTE 2 + .BYTE 8 + .BYTE 183 + .ENDT + +RT?36611:: .TABLE + 0 + 6153 + 183 + 0 + 2 + RT?36111 + 0 + 4 + RT?36211 + 0 + 16 + RT?36311 + 0 + 32 + RT?36411 + 0 + 16384 + RT?36511 + 0 + 0 + .ENDT + +RT?36811:: .TABLE + RT?36611 + RT?36711 + .ENDT + +RT?36911:: .TABLE + 0 + 9 + 143 + 0 + 32 + 15 + 0 + 0 + .ENDT + +RT?37011:: .TABLE + RT?36911 + 0 + .ENDT + +RT?37211:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 91 + .BYTE 0 + .ENDT + +RT?37311:: .TABLE + RT?37111 + RT?37211 + .ENDT + +RT?37411:: .TABLE + .BYTE 2 + .BYTE 82 + .BYTE 182 + .ENDT + +RT?37511:: .TABLE + 0 + 22550 + 182 + 0 + 32 + RT?37411 + 0 + 0 + .ENDT + +RT?37611:: .TABLE + .BYTE 10 + .BYTE 86 + .BYTE 0 + .ENDT + +RT?37711:: .TABLE + RT?37511 + RT?37611 + .ENDT + +RT?38011:: .TABLE + .BYTE 17 + .BYTE 87 + .BYTE 0 + .ENDT + +RT?38111:: .TABLE + RT?37911 + RT?38011 + .ENDT + +RT?38211:: .TABLE + 0 + 2 + 162 + 0 + 4 + 90 + 0 + 16 + 11 + 0 + 32 + 10 + 0 + 2048 + 30 + 0 + 4096 + 23 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?38311:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 13 + .BYTE 88 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 89 + .BYTE 0 + .ENDT + +RT?38411:: .TABLE + RT?38211 + RT?38311 + .ENDT + +RT?38511:: .TABLE + 1 + 8 + 178 + 0 + 0 + .ENDT + +RT?38611:: .TABLE + RT?38511 + 0 + .ENDT + +RT?38711:: .TABLE + 1 + 8 + 174 + 0 + 1024 + 25 + 0 + 2048 + 30 + 0 + 4096 + 23 + 0 + 0 + .ENDT + +RT?38911:: .TABLE + RT?38711 + RT?38811 + .ENDT + +RT?39011:: .TABLE + 1 + 8 + 176 + 0 + 2 + 162 + 0 + 4 + 12 + 0 + 16 + 11 + 0 + 32 + 10 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?39211:: .TABLE + RT?39011 + RT?39111 + .ENDT + +RT?39311:: .TABLE + .BYTE 2 + .BYTE 93 + .BYTE 180 + .ENDT + +RT?39411:: .TABLE + 0 + 22550 + 180 + 0 + 32 + RT?39311 + 0 + 0 + .ENDT + +RT?39511:: .TABLE + .BYTE 17 + .BYTE 92 + .BYTE 0 + .ENDT + +RT?39611:: .TABLE + RT?39411 + RT?39511 + .ENDT + +RT?39711:: .TABLE + 0 + 2 + 162 + 0 + 4 + 96 + 0 + 16 + 11 + 0 + 32 + 10 + 0 + 2048 + 30 + 0 + 4096 + 23 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?39811:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 13 + .BYTE 94 + .BYTE 9 + .BYTE 4 + .BYTE 7 + .BYTE 95 + .BYTE 0 + .ENDT + +RT?39911:: .TABLE + RT?39711 + RT?39811 + .ENDT + +RT?40011:: .TABLE + .BYTE 2 + .BYTE 181 + .BYTE 162 + .ENDT + +RT?40111:: .TABLE + .BYTE 2 + .BYTE 12 + .BYTE 181 + .ENDT + +RT?40211:: .TABLE + .BYTE 2 + .BYTE 11 + .BYTE 181 + .ENDT + +RT?40311:: .TABLE + .BYTE 2 + .BYTE 17 + .BYTE 181 + .ENDT + +RT?40411:: .TABLE + .BYTE 2 + .BYTE 8 + .BYTE 181 + .ENDT + +RT?40511:: .TABLE + 0 + 6144 + 181 + 0 + 2 + RT?40011 + 0 + 4 + RT?40111 + 0 + 16 + RT?40211 + 0 + 32 + RT?40311 + 0 + 16384 + RT?40411 + 0 + 0 + .ENDT + +RT?40711:: .TABLE + RT?40511 + RT?40611 + .ENDT + +RT?40811:: .TABLE + 1 + 8 + 179 + 0 + 0 + .ENDT + +RT?40911:: .TABLE + RT?40811 + 0 + .ENDT + +RT?41011:: .TABLE + 1 + 8 + 175 + 0 + 1024 + 25 + 0 + 2048 + 30 + 0 + 4096 + 23 + 0 + 0 + .ENDT + +RT?41211:: .TABLE + RT?41011 + RT?41111 + .ENDT + +RT?41311:: .TABLE + 1 + 8 + 177 + 0 + 2 + 162 + 0 + 4 + 12 + 0 + 16 + 11 + 0 + 32 + 10 + 0 + 16384 + 8 + 0 + 0 + .ENDT + +RT?41511:: .TABLE + RT?41311 + RT?41411 + .ENDT + +RT?41611:: .TABLE + 1 + 8 + 191 + 0 + 2 + 19 + 0 + 0 + .ENDT + +RT?41711:: .TABLE + RT?41611 + 0 + .ENDT + +RT?41811:: .TABLE + 1 + 8 + 192 + 0 + 0 + .ENDT + +RT?41911:: .TABLE + RT?41811 + 0 + .ENDT + +RT?42011:: .TABLE + 1 + 8 + 189 + 0 + 32 + 15 + 0 + 2048 + 30 + 0 + 4096 + 23 + 0 + 0 + .ENDT + +RT?42111:: .TABLE + .BYTE 13 + .BYTE 102 + .BYTE 0 + .ENDT + +RT?42211:: .TABLE + RT?42011 + RT?42111 + .ENDT + +RT?42411:: .TABLE + .BYTE 15 + .BYTE 2 + .BYTE 14 + .BYTE 3 + .BYTE 9 + .BYTE 101 + .BYTE 7 + .BYTE 27 + .BYTE 0 + .ENDT + +RT?42511:: .TABLE + RT?42311 + RT?42411 + .ENDT + +RT?42611:: +RT?42711:: .TABLE + .BYTE 2 + .BYTE 193 + .BYTE 151 + .ENDT + +RT?42811:: .TABLE + 0 + 7168 + 151 + 1 + 8 + RT?42611 + 0 + 32 + 15 + 0 + 0 + .ENDT + +RT?42911:: .TABLE + RT?42811 + 0 + .ENDT + +RT?43011:: .TABLE + 1 + 8 + 190 + 0 + 0 + .ENDT + +RT?43111:: .TABLE + RT?43011 + 0 + .ENDT + +RT?43211:: .TABLE + .BYTE 2 + .BYTE 186 + .BYTE 162 + .ENDT + +RT?43311:: .TABLE + .BYTE 2 + .BYTE 12 + .BYTE 186 + .ENDT + +RT?43411:: .TABLE + .BYTE 2 + .BYTE 11 + .BYTE 186 + .ENDT + +RT?43511:: .TABLE + .BYTE 2 + .BYTE 10 + .BYTE 186 + .ENDT + +RT?43611:: .TABLE + .BYTE 2 + .BYTE 8 + .BYTE 186 + .ENDT + +RT?43711:: .TABLE + 1 + 7113 + 186 + 0 + 2 + RT?43211 + 0 + 4 + RT?43311 + 0 + 16 + RT?43411 + 0 + 32 + RT?43511 + 0 + 16384 + RT?43611 + 0 + 0 + .ENDT + +RT?43911:: .TABLE + RT?43711 + RT?43811 + .ENDT + +RT?44011:: .TABLE + .BYTE 2 + .BYTE 19 + .BYTE 161 + .ENDT + +RT?44111:: .TABLE + 1 + 8 + 161 + 0 + 2 + RT?44011 + 0 + 0 + .ENDT + +RT?44211:: .TABLE + RT?44111 + 0 + .ENDT + +RT?44311:: +ACTION-TABLE:: .TABLE + 104 + RT?7411 + RT?7711 + RT?7911 + RT?8211 + RT?8511 + RT?9411 + RT?9611 + RT?9811 + RT?10111 + RT?10411 + RT?11211 + RT?11511 + RT?11811 + RT?12011 + RT?12311 + RT?12611 + RT?13411 + RT?13711 + RT?13911 + RT?14211 + RT?14511 + RT?14711 + RT?15011 + RT?15811 + RT?16111 + RT?16411 + RT?17011 + RT?17311 + RT?17911 + RT?18211 + RT?18811 + RT?19111 + RT?19711 + RT?20011 + RT?20311 + RT?20611 + RT?20911 + RT?21711 + RT?22011 + RT?22411 + RT?22611 + RT?22911 + RT?23111 + RT?23311 + RT?23511 + RT?23711 + RT?24011 + RT?24311 + RT?24711 + RT?24911 + RT?25111 + RT?25311 + RT?26111 + RT?26411 + RT?26711 + RT?27511 + RT?28311 + RT?28611 + RT?28911 + RT?29711 + RT?30011 + RT?30211 + RT?30611 + RT?30811 + RT?31211 + RT?31511 + RT?31711 + RT?31911 + RT?32311 + RT?32611 + RT?32811 + RT?33011 + RT?33311 + RT?33611 + RT?33811 + RT?34111 + RT?34411 + RT?34711 + RT?35011 + RT?35811 + RT?36011 + RT?36811 + RT?37011 + RT?37311 + RT?37711 + RT?38111 + RT?38411 + RT?38611 + RT?38911 + RT?39211 + RT?39611 + RT?39911 + RT?40711 + RT?40911 + RT?41211 + RT?41511 + RT?41711 + RT?41911 + RT?42211 + RT?42511 + RT?42911 + RT?43111 + RT?43911 + RT?44211 + .ENDT + +RT?131:: +RT?4331:: .TABLE + 1 + V?PUSH + 0 + .BYTE 0 + .BYTE 15 + .ENDT + +RT?231:: .TABLE + 2 + V?PUT + 0 + .BYTE 0 + .BYTE 116 + W?ON + .BYTE 0 + .BYTE 15 + V?PUT-IN + 0 + .BYTE 0 + .BYTE 116 + W?IN + .BYTE 35 + .BYTE 15 + .ENDT + +RT?331:: .TABLE + 1 + V?UNLOCK + 0 + .BYTE 0 + .BYTE 15 + W?WITH + .BYTE 31 + .BYTE 100 + .ENDT + +RT?431:: .TABLE + 1 + V?TIE-TO + 0 + .BYTE 0 + .BYTE 15 + W?TO + .BYTE 0 + .BYTE 15 + .ENDT + +RT?531:: .TABLE + 1 + V?DROP + W?GO + .BYTE 0 + .BYTE 4 + .ENDT + +RT?631:: .TABLE + 1 + V?CAN? + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?731:: .TABLE + 1 + V?PUT-IN + 0 + .BYTE 0 + .BYTE 116 + W?IN + .BYTE 0 + .BYTE 15 + .ENDT + +RT?831:: +RT?5231:: .TABLE + 1 + V?ATTACH + 0 + .BYTE 0 + .BYTE 15 + W?TO + .BYTE 0 + .BYTE 15 + .ENDT + +RT?931:: .TABLE + 1 + V?MIGHT? + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?1031:: .TABLE + 1 + V?WOULD? + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?1131:: .TABLE + 1 + V?ASK-ABOUT + 0 + .BYTE 0 + .BYTE 3 + W?ABOUT + .BYTE 0 + .BYTE 128 + .ENDT + +RT?1231:: .TABLE + 3 + V?TURN-TO + 0 + .BYTE 0 + .BYTE 15 + W?TO + .BYTE 0 + .BYTE 15 + V?PUT + 0 + .BYTE 0 + .BYTE 116 + W?ON + .BYTE 0 + .BYTE 15 + V?PUT-IN + 0 + .BYTE 0 + .BYTE 116 + W?IN + .BYTE 0 + .BYTE 15 + .ENDT + +RT?1331:: .TABLE + 4 + V?LISTEN + 0 + .BYTE 35 + .BYTE 15 + V?LISTEN + W?AT + .BYTE 0 + .BYTE 15 + V?LISTEN + W?THROUGH + .BYTE 0 + .BYTE 15 + V?LISTEN + W?TO + .BYTE 0 + .BYTE 15 + .ENDT + +RT?1431:: .TABLE + 2 + V?REACH-IN + W?IN + .BYTE 0 + .BYTE 15 + V?REACH-BEHIND + W?BEHIND + .BYTE 0 + .BYTE 15 + .ENDT + +RT?1531:: .TABLE + 1 + V?REACH-UNDER + W?UNDER + .BYTE 0 + .BYTE 15 + W?WITH + .BYTE 35 + .BYTE 4 + .ENDT + +RT?1631:: .TABLE + 2 + V?TURN-ON + W?ON + .BYTE 0 + .BYTE 15 + V?TURN-OFF + W?OFF + .BYTE 0 + .BYTE 15 + .ENDT + +RT?1731:: .TABLE + 2 + V?TURN-ON + 0 + .BYTE 0 + .BYTE 15 + W?ON + .BYTE 35 + .BYTE 15 + V?TURN-OFF + 0 + .BYTE 0 + .BYTE 15 + W?OFF + .BYTE 35 + .BYTE 15 + .ENDT + +RT?1831:: .TABLE + 1 + V?BE + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?1931:: .TABLE + 1 + V?BE + 0 + .BYTE 0 + .BYTE 128 + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?2031:: .TABLE + 1 + V?$P + 0 + .BYTE 0 + .BYTE 15 + .ENDT + +RT?2131:: .TABLE + 1 + V?EXAMINE + 0 + .BYTE 0 + .BYTE 192 + .ENDT + +RT?2231:: .TABLE + 1 + V?LIFT + 0 + .BYTE 0 + .BYTE 15 + W?WITH + .BYTE 32 + .BYTE 68 + .ENDT + +RT?2331:: .TABLE + 1 + V?HOW + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?2431:: .TABLE + 1 + V?HOW + 0 + .BYTE 0 + .BYTE 128 + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?2531:: .TABLE + 1 + V?CLOSE + 0 + .BYTE 34 + .BYTE 15 + .ENDT + +RT?2631:: .TABLE + 1 + V?$W + 0 + .BYTE 0 + .BYTE 15 + .ENDT + +RT?2731:: .TABLE + 3 + V?TURN + 0 + .BYTE 0 + .BYTE 15 + V?TURN-ON + W?ON + .BYTE 0 + .BYTE 15 + V?TURN-OFF + W?OFF + .BYTE 0 + .BYTE 15 + .ENDT + +RT?2831:: .TABLE + 4 + V?TURN-TO + 0 + .BYTE 0 + .BYTE 15 + 0 + .BYTE 0 + .BYTE 15 + V?TURN-TO + 0 + .BYTE 0 + .BYTE 15 + W?TO + .BYTE 0 + .BYTE 15 + V?TURN-ON + 0 + .BYTE 0 + .BYTE 15 + W?ON + .BYTE 35 + .BYTE 15 + V?TURN-OFF + 0 + .BYTE 0 + .BYTE 15 + W?OFF + .BYTE 35 + .BYTE 15 + .ENDT + +RT?2931:: .TABLE + 1 + V?BE? + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?3031:: .TABLE + 1 + V?BE? + 0 + .BYTE 0 + .BYTE 128 + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?3131:: .TABLE + 5 + V?WALK + 0 + .BYTE 0 + .BYTE 15 + V?ENTER + W?IN + .BYTE 0 + .BYTE 15 + V?ENTER + W?THROUGH + .BYTE 0 + .BYTE 15 + V?WALK-TO + W?TO + .BYTE 0 + .BYTE 128 + V?FOLLOW + W?AFTER + .BYTE 0 + .BYTE 128 + .ENDT + +RT?3231:: .TABLE + 2 + V?READ + 0 + .BYTE 0 + .BYTE 47 + V?READ + W?THROUGH + .BYTE 0 + .BYTE 47 + .ENDT + +RT?3331:: .TABLE + 1 + V?SHOULD? + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?3431:: .TABLE + 4 + V?SIT + W?ON + .BYTE 35 + .BYTE 3 + V?ENTER + W?IN + .BYTE 0 + .BYTE 3 + V?SIT + W?DOWN + .BYTE 35 + .BYTE 15 + V?SIT + W?AT + .BYTE 0 + .BYTE 3 + .ENDT + +RT?3531:: .TABLE + 1 + V?MOVE + 0 + .BYTE 0 + .BYTE 15 + W?WITH + .BYTE 32 + .BYTE 68 + .ENDT + +RT?3631:: .TABLE + 2 + V?TALK-TO + W?TO + .BYTE 41 + .BYTE 3 + V?TALK-TO + W?WITH + .BYTE 41 + .BYTE 3 + .ENDT + +RT?3731:: .TABLE + 1 + V?VERIFY + 0 + .BYTE 0 + .BYTE 15 + .ENDT + +RT?3831:: .TABLE + 1 + V?LOCK + 0 + .BYTE 0 + .BYTE 15 + W?WITH + .BYTE 31 + .BYTE 100 + .ENDT + +RT?3931:: .TABLE + 1 + V?WELD + 0 + .BYTE 0 + .BYTE 15 + .ENDT + +RT?4031:: .TABLE + 1 + V?COULD? + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?4131:: .TABLE + 6 + V?TAKE + 0 + .BYTE 36 + .BYTE 19 + V?DROP + W?RID + .BYTE 0 + .BYTE 15 + V?ENTER + W?IN + .BYTE 0 + .BYTE 3 + V?EXIT + W?FROM + .BYTE 35 + .BYTE 15 + V?EXIT + W?OUT + .BYTE 35 + .BYTE 15 + V?ENTER + W?THROUGH + .BYTE 0 + .BYTE 15 + .ENDT + +RT?4231:: .TABLE + 5 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?FROM + .BYTE 0 + .BYTE 15 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?IN + .BYTE 0 + .BYTE 15 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?OFF + .BYTE 0 + .BYTE 15 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?OUT + .BYTE 0 + .BYTE 15 + V?TAKE-WITH + 0 + .BYTE 0 + .BYTE 15 + W?WITH + .BYTE 0 + .BYTE 4 + .ENDT + +RT?4431:: .TABLE + 1 + V?PUT-IN + 0 + .BYTE 0 + .BYTE 124 + W?IN + .BYTE 0 + .BYTE 15 + .ENDT + +RT?4531:: .TABLE + 2 + V?FOLLOW + 0 + .BYTE 0 + .BYTE 128 + V?FOLLOW + W?AFTER + .BYTE 0 + .BYTE 128 + .ENDT + +RT?4631:: .TABLE + 8 + V?EXAMINE + 0 + .BYTE 0 + .BYTE 192 + V?LOOK + W?AROUND + .BYTE 35 + .BYTE 15 + V?EXAMINE + W?AT + .BYTE 0 + .BYTE 192 + V?LOOK-IN + W?IN + .BYTE 35 + .BYTE 15 + V?LOOK-ON + W?ON + .BYTE 0 + .BYTE 3 + V?EXAMINE + W?OVER + .BYTE 0 + .BYTE 15 + V?LOOK-BEHIND + W?BEHIND + .BYTE 0 + .BYTE 15 + V?LOOK-UNDER + W?UNDER + .BYTE 0 + .BYTE 15 + .ENDT + +RT?4731:: .TABLE + 1 + V?UNWEAR + 0 + .BYTE 0 + .BYTE 15 + .ENDT + +RT?4831:: .TABLE + 1 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?FROM + .BYTE 0 + .BYTE 15 + .ENDT + +RT?4931:: .TABLE + 1 + V?ENTER + 0 + .BYTE 0 + .BYTE 3 + .ENDT + +RT?5031:: .TABLE + 1 + V?TELL + 0 + .BYTE 41 + .BYTE 19 + .ENDT + +RT?5131:: .TABLE + 2 + V?TELL-ABOUT + 0 + .BYTE 41 + .BYTE 3 + 0 + .BYTE 0 + .BYTE 128 + V?TELL-ABOUT + 0 + .BYTE 41 + .BYTE 3 + W?ABOUT + .BYTE 0 + .BYTE 128 + .ENDT + +RT?5331:: .TABLE + 1 + V?THANK + 0 + .BYTE 41 + .BYTE 3 + .ENDT + +RT?5431:: .TABLE + 1 + V?INFLATE + W?UP + .BYTE 0 + .BYTE 15 + .ENDT + +RT?5531:: .TABLE + 1 + V?MUST? + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?5631:: .TABLE + 1 + V?WILL? + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?5731:: .TABLE + 1 + V?INFLATE + 0 + .BYTE 0 + .BYTE 15 + .ENDT + +RT?5831:: .TABLE + 5 + V?EXIT + W?FROM + .BYTE 0 + .BYTE 15 + V?ENTER + W?IN + .BYTE 35 + .BYTE 15 + V?EXIT + W?OUT + .BYTE 35 + .BYTE 15 + V?ENTER + W?TO + .BYTE 0 + .BYTE 15 + V?ENTER + W?THROUGH + .BYTE 0 + .BYTE 15 + .ENDT + +RT?5931:: .TABLE + 2 + V?OPEN + 0 + .BYTE 34 + .BYTE 15 + V?OPEN + W?UP + .BYTE 34 + .BYTE 15 + .ENDT + +RT?6031:: .TABLE + 1 + V?OPEN + 0 + .BYTE 34 + .BYTE 15 + W?WITH + .BYTE 31 + .BYTE 111 + .ENDT + +RT?6131:: .TABLE + 2 + V?SHOW-SWP + 0 + .BYTE 0 + .BYTE 15 + 0 + .BYTE 0 + .BYTE 15 + V?SHOW + 0 + .BYTE 0 + .BYTE 15 + W?TO + .BYTE 0 + .BYTE 15 + .ENDT + +RT?6231:: .TABLE + 1 + V?WHERE + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?6331:: .TABLE + 1 + V?WHERE + 0 + .BYTE 0 + .BYTE 128 + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?6431:: .TABLE + 1 + V?EXTINGUISH + 0 + .BYTE 0 + .BYTE 15 + .ENDT + +RT?6531:: .TABLE + 1 + V?DROP + W?AWAY + .BYTE 0 + .BYTE 76 + .ENDT + +RT?6631:: .TABLE + 3 + V?PUT-IN + 0 + .BYTE 0 + .BYTE 116 + W?IN + .BYTE 0 + .BYTE 15 + V?PUT + 0 + .BYTE 0 + .BYTE 116 + W?ON + .BYTE 0 + .BYTE 15 + V?PUT + 0 + .BYTE 0 + .BYTE 116 + W?OVER + .BYTE 0 + .BYTE 3 + .ENDT + +RT?6731:: .TABLE + 1 + V?MAY? + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?6831:: .TABLE + 1 + V?$GOTO + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?6931:: .TABLE + 1 + V?WHO + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?7031:: .TABLE + 1 + V?WHO + 0 + .BYTE 0 + .BYTE 128 + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?7131:: .TABLE + 1 + V?DO? + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?7231:: .TABLE + 1 + V?$D + 0 + .BYTE 0 + .BYTE 15 + .ENDT + +RT?7331:: .TABLE + 1 + V?RESTART + W?OVER + .BYTE 35 + .BYTE 15 + .ENDT + +RT?7431:: .TABLE + 1 + V?WHAT + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?7531:: .TABLE + 1 + V?WHAT + 0 + .BYTE 0 + .BYTE 128 + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?7631:: .TABLE + 1 + V?TAKE + 0 + .BYTE 36 + .BYTE 19 + .ENDT + +RT?7731:: .TABLE + 7 + V?EMPTY + 0 + .BYTE 0 + .BYTE 15 + W?IN + .BYTE 35 + .BYTE 15 + V?EMPTY + W?OUT + .BYTE 0 + .BYTE 15 + W?IN + .BYTE 35 + .BYTE 15 + V?EMPTY + 0 + .BYTE 0 + .BYTE 15 + W?ON + .BYTE 35 + .BYTE 15 + V?EMPTY + W?OUT + .BYTE 0 + .BYTE 15 + W?ON + .BYTE 35 + .BYTE 15 + V?EMPTY-FROM + 0 + .BYTE 0 + .BYTE 15 + W?FROM + .BYTE 0 + .BYTE 15 + V?EMPTY-FROM + W?OUT + .BYTE 0 + .BYTE 15 + W?FROM + .BYTE 0 + .BYTE 15 + V?EMPTY-FROM + 0 + .BYTE 0 + .BYTE 15 + W?OUT + .BYTE 0 + .BYTE 15 + .ENDT + +RT?7831:: .TABLE + 1 + V?WHEN + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?7931:: .TABLE + 1 + V?WHEN + 0 + .BYTE 0 + .BYTE 128 + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?8031:: .TABLE + 1 + V?$STEAL + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?8131:: .TABLE + 2 + V?WAIT + 0 + .BYTE 0 + .BYTE 128 + V?WAIT + W?FOR + .BYTE 0 + .BYTE 128 + .ENDT + +RT?8231:: .TABLE + 1 + V?WHY + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?8331:: .TABLE + 1 + V?WHY + 0 + .BYTE 0 + .BYTE 128 + 0 + .BYTE 0 + .BYTE 128 + .ENDT + +RT?8431:: .TABLE + 2 + V?GIVE-SWP + 0 + .BYTE 0 + .BYTE 3 + 0 + .BYTE 0 + .BYTE 124 + V?GIVE + 0 + .BYTE 0 + .BYTE 124 + W?TO + .BYTE 41 + .BYTE 3 + .ENDT + +RT?8531:: .TABLE + 4 + V?TAKE + 0 + .BYTE 36 + .BYTE 19 + V?TAKE + W?OUT + .BYTE 0 + .BYTE 31 + V?TAKE + W?UP + .BYTE 0 + .BYTE 19 + V?UNWEAR + W?OFF + .BYTE 0 + .BYTE 68 + .ENDT + +RT?8631:: .TABLE + 6 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?FROM + .BYTE 0 + .BYTE 15 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?IN + .BYTE 0 + .BYTE 15 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?OFF + .BYTE 0 + .BYTE 15 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?ON + .BYTE 0 + .BYTE 15 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?OUT + .BYTE 0 + .BYTE 15 + V?TAKE-WITH + 0 + .BYTE 0 + .BYTE 15 + W?WITH + .BYTE 0 + .BYTE 4 + .ENDT + +RT?8731:: .TABLE + 1 + V?WEAR + 0 + .BYTE 0 + .BYTE 37 + .ENDT + +RT?8831:: .TABLE + 3 + V?DROP + W?DOWN + .BYTE 0 + .BYTE 84 + V?WEAR + W?ON + .BYTE 0 + .BYTE 100 + V?EXTINGUISH + W?OUT + .BYTE 0 + .BYTE 15 + .ENDT + +RT?8931:: .TABLE + 7 + V?PUT + 0 + .BYTE 0 + .BYTE 116 + W?ON + .BYTE 30 + .BYTE 15 + V?PUT + 0 + .BYTE 0 + .BYTE 116 + W?ACROSS + .BYTE 0 + .BYTE 15 + V?PUT + 0 + .BYTE 0 + .BYTE 116 + W?AROUND + .BYTE 0 + .BYTE 15 + V?PUT + 0 + .BYTE 0 + .BYTE 116 + W?DOWN + .BYTE 0 + .BYTE 15 + V?PUT-IN + 0 + .BYTE 0 + .BYTE 116 + W?IN + .BYTE 0 + .BYTE 15 + V?PUT + 0 + .BYTE 0 + .BYTE 116 + W?OVER + .BYTE 0 + .BYTE 15 + V?PUT-IN + W?AWAY + .BYTE 0 + .BYTE 116 + W?IN + .BYTE 0 + .BYTE 15 + .ENDT + +RT?9031:: .TABLE + 2 + V?TAKE + 0 + .BYTE 36 + .BYTE 17 + V?TAKE + W?UP + .BYTE 36 + .BYTE 17 + .ENDT + +RT?9131:: .TABLE + 1 + V?CUT + 0 + .BYTE 0 + .BYTE 15 + W?WITH + .BYTE 33 + .BYTE 100 + .ENDT + +RT?9231:: .TABLE + 1 + V?PLUG-IN + W?IN + .BYTE 0 + .BYTE 15 + .ENDT + +RT?9331:: .TABLE + 2 + V?HIT + 0 + .BYTE 0 + .BYTE 3 + W?WITH + .BYTE 32 + .BYTE 76 + V?HIT + W?AT + .BYTE 0 + .BYTE 3 + W?WITH + .BYTE 32 + .BYTE 76 + .ENDT + +RT?9431:: .TABLE + 1 + V?DROP + 0 + .BYTE 0 + .BYTE 124 + .ENDT + +RT?9531:: .TABLE + 3 + V?PUT + 0 + .BYTE 0 + .BYTE 124 + W?DOWN + .BYTE 0 + .BYTE 15 + V?PUT-IN + 0 + .BYTE 0 + .BYTE 124 + W?IN + .BYTE 0 + .BYTE 15 + V?PUT + 0 + .BYTE 0 + .BYTE 124 + W?ON + .BYTE 0 + .BYTE 15 + .ENDT + +RT?9631:: .TABLE + 1 + V?EXIT + 0 + .BYTE 0 + .BYTE 3 + .ENDT + +RT?9731:: .TABLE + 2 + V?PULL + 0 + .BYTE 0 + .BYTE 15 + V?TAKE + W?OUT + .BYTE 0 + .BYTE 31 + .ENDT + +RT?9831:: .TABLE + 3 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?OFF + .BYTE 0 + .BYTE 15 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?FROM + .BYTE 0 + .BYTE 15 + V?TAKE + 0 + .BYTE 0 + .BYTE 31 + W?OUT + .BYTE 0 + .BYTE 15 + .ENDT + + +; END LOAD + +ENDLOD:: + + + .ENDI diff --git a/abyssfreq.xzap b/abyssfreq.xzap new file mode 100644 index 0000000..d608583 --- /dev/null +++ b/abyssfreq.xzap @@ -0,0 +1,198 @@ + .FSTR FSTR?1,"the " ;1636 819 819 + .FSTR FSTR?2,"You " ;615 206 206 + .FSTR FSTR?3,"and " ;502 252 252 + .FSTR FSTR?4,". " ;448 449 449 + .FSTR FSTR?5,", " ;390 391 391 + .FSTR FSTR?6,"you " ;384 193 193 + .FSTR FSTR?7,"The " ;352 177 177 + .FSTR FSTR?8,"ladderwell " ;325 26 26 + .FSTR FSTR?9,"that " ;294 99 99 + .FSTR FSTR?10,"to " ;290 291 291 + .FSTR FSTR?11,"starboard " ;279 32 32 + .FSTR FSTR?12,"your " ;228 77 77 + .FSTR FSTR?13,"Deepcore" ;224 33 45 + .FSTR FSTR?14,"are " ;224 113 113 + .FSTR FSTR?15,"hatch " ;220 45 45 + .FSTR FSTR?16,"of " ;214 215 215 + .FSTR FSTR?17,"is " ;210 211 211 + .FSTR FSTR?18,"into " ;207 70 70 + .FSTR FSTR?19,"bulkhead" ;204 35 35 + .FSTR FSTR?20,"can't " ;170 35 35 + .FSTR FSTR?21,"room" ;160 81 81 + .FSTR FSTR?22,"with " ;156 53 53 + .FSTR FSTR?23,"RED" ;148 38 38 + .FSTR FSTR?24,"enter" ;147 50 50 + .FSTR FSTR?25,"in " ;140 141 141 + .FSTR FSTR?26,"through " ;138 24 24 + .FSTR FSTR?27,"Suddenly" ;133 20 20 + .FSTR FSTR?28,"compression " ;130 14 14 + .FSTR FSTR?29,"from " ;129 44 44 + .FSTR FSTR?30,"currently " ;128 17 17 + .FSTR FSTR?31,"Coffey " ;126 22 22 + .FSTR FSTR?32,"Catfish " ;119 18 18 + .FSTR FSTR?33,"cylinder" ;114 20 20 + .FSTR FSTR?34,"Montana" ;108 19 19 + .FSTR FSTR?35,"forward " ;108 19 19 + .FSTR FSTR?36,"has " ;106 54 54 + .FSTR FSTR?37,"floor" ;105 36 36 + .FSTR FSTR?38,"water " ;104 27 27 + .FSTR FSTR?39,"chamber" ;100 21 21 + .FSTR FSTR?40,"handling" ;96 17 17 + .FSTR FSTR?41,"default " ;96 17 17 + .FSTR FSTR?42,"Your " ;96 25 25 + .FSTR FSTR?43,"have " ;93 32 32 + .FSTR FSTR?44,"disappear" ;91 14 14 + .FSTR FSTR?45,"out " ;86 44 44 + .FSTR FSTR?46,"Lindsey " ;84 13 13 + .FSTR FSTR?47,"level " ;84 22 22 + .FSTR FSTR?48,"button" ;84 22 22 + .FSTR FSTR?49,"only " ;84 29 29 + .FSTR FSTR?50,"over " ;81 28 28 + .FSTR FSTR?51,"surface" ;80 17 17 + .FSTR FSTR?52,"look" ;80 41 41 + .FSTR FSTR?53,"MoonPool" ;80 11 11 + .FSTR FSTR?54,"open" ;78 40 40 + .FSTR FSTR?55,"but " ;76 39 39 + .FSTR FSTR?56,"There " ;76 20 20 + .FSTR FSTR?57,"locker " ;75 16 16 + .FSTR FSTR?58,"around " ;75 16 16 + .FSTR FSTR?59,"don't " ;75 16 16 + .FSTR FSTR?60,"begin" ;72 25 25 + .FSTR FSTR?61,"here" ;72 37 37 + .FSTR FSTR?62,"back " ;72 25 25 + .FSTR FSTR?63,"battery " ;72 13 13 + .FSTR FSTR?64,"hear " ;69 24 24 + .FSTR FSTR?65,"wall " ;66 23 23 + .FSTR FSTR?66,"close" ;66 23 23 + .FSTR FSTR?67,"control" ;65 14 14 + .FSTR FSTR?68,"fore " ;64 17 17 + .FSTR FSTR?69,"lead" ;64 33 33 + .FSTR FSTR?70,"submersible" ;63 8 8 + .FSTR FSTR?71,"door " ;63 22 22 + .FSTR FSTR?72,"for " ;62 32 32 + .FSTR FSTR?73,"see" ;62 63 63 + .FSTR FSTR?74,"still " ;60 16 16 + .FSTR FSTR?75,"yourself" ;60 11 11 + .FSTR FSTR?76,"then " ;60 21 21 + .FSTR FSTR?77,"storage" ;60 13 13 + .FSTR FSTR?78,"start" ;60 21 21 + .FSTR FSTR?79,"missile " ;60 11 11 + .FSTR FSTR?80,"corridor" ;60 11 11 + .FSTR FSTR?81,"which " ;60 16 16 + .FSTR FSTR?82,"aft " ;58 30 30 + .FSTR FSTR?83,"port " ;57 20 20 + .FSTR FSTR?84,"feel " ;57 20 20 + .FSTR FSTR?85,"down " ;57 20 20 + .FSTR FSTR?86,"it " ;57 58 58 + .FSTR FSTR?87,"nitrogen " ;56 9 9 + .FSTR FSTR?88,"compressor" ;56 8 8 + .FSTR FSTR?89,"Deepcore's " ;55 12 12 + .FSTR FSTR?90,"stopper" ;55 12 12 + .FSTR FSTR?91,"nothing" ;55 12 12 + .FSTR FSTR?92,"Th" ;55 56 253 + .FSTR FSTR?93,"Hippy " ;55 12 12 + .FSTR FSTR?94,"I " ;55 56 56 + .FSTR FSTR?95,"ceiling" ;55 12 12 + .FSTR FSTR?96,"observation" ;54 7 7 + + +WORDS:: .TABLE + FSTR?1 + FSTR?2 + FSTR?3 + FSTR?4 + FSTR?5 + FSTR?6 + FSTR?7 + FSTR?8 + FSTR?9 + FSTR?10 + FSTR?11 + FSTR?12 + FSTR?13 + FSTR?14 + FSTR?15 + FSTR?16 + FSTR?17 + FSTR?18 + FSTR?19 + FSTR?20 + FSTR?21 + FSTR?22 + FSTR?23 + FSTR?24 + FSTR?25 + FSTR?26 + FSTR?27 + FSTR?28 + FSTR?29 + FSTR?30 + FSTR?31 + FSTR?32 + FSTR?33 + FSTR?34 + FSTR?35 + FSTR?36 + FSTR?37 + FSTR?38 + FSTR?39 + FSTR?40 + FSTR?41 + FSTR?42 + FSTR?43 + FSTR?44 + FSTR?45 + FSTR?46 + FSTR?47 + FSTR?48 + FSTR?49 + FSTR?50 + FSTR?51 + FSTR?52 + FSTR?53 + FSTR?54 + FSTR?55 + FSTR?56 + FSTR?57 + FSTR?58 + FSTR?59 + FSTR?60 + FSTR?61 + FSTR?62 + FSTR?63 + FSTR?64 + FSTR?65 + FSTR?66 + FSTR?67 + FSTR?68 + FSTR?69 + FSTR?70 + FSTR?71 + FSTR?72 + FSTR?73 + FSTR?74 + FSTR?75 + FSTR?76 + FSTR?77 + FSTR?78 + FSTR?79 + FSTR?80 + FSTR?81 + FSTR?82 + FSTR?83 + FSTR?84 + FSTR?85 + FSTR?86 + FSTR?87 + FSTR?88 + FSTR?89 + FSTR?90 + FSTR?91 + FSTR?92 + FSTR?93 + FSTR?94 + FSTR?95 + FSTR?96 + .ENDT + + .ENDI diff --git a/abysspur.zap b/abysspur.zap new file mode 100644 index 0000000..7ba2d20 --- /dev/null +++ b/abysspur.zap @@ -0,0 +1,888 @@ + + +; PURE TABLES ARE DEFINED HERE + +PURTBL:: + + +; LONG WORD TABLE + +LONG-WORD-TABLE:: .TABLE + 38 + W?THERMOMETER + STR?183 + W?SUPERBRIEF + STR?184 + W?STATIONARY + STR?185 + W?RECREATION + STR?186 + W?PHOTOGRAPH + STR?187 + W?OBSERVATION + STR?188 + W?LADDERWELL + STR?189 + W?LABORATORY + STR?190 + W?EXTINGUISH + STR?191 + W?END.OF.INPUT + STR?192 + W?ELECTRONIC + STR?193 + W?ELECTRICAL + STR?194 + W?DOWNSTAIRS + STR?195 + W?DESCRAMBLER + STR?196 + W?COMPRESSOR + STR?197 + W?COMPRESSION + STR?198 + W?COMMUNICATIONS + STR?199 + W?COCKSUCKER + STR?200 + W?ARC-WELDER + STR?201 + + .ENDT +PT?105:: +NP-QUANT-TBL:: .TABLE + NP-QUANT-ALL + W?ALL + NP-QUANT-BOTH + W?BOTH + NP-QUANT-A + W?ONE + NP-QUANT-A + W?EITHER + NP-QUANT-A + W?ANY + .ENDT + +PT?107:: +K-PICTURE-TBL:: .TABLE + .BYTE 64 + .BYTE 4 + .BYTE 7 + .BYTE 10 + .BYTE 11 + .BYTE 12 + .BYTE 13 + .BYTE 14 + .BYTE 15 + .BYTE 16 + .BYTE 18 + .BYTE 20 + .BYTE 21 + .BYTE 22 + .BYTE 23 + .BYTE 24 + .BYTE 26 + .BYTE 27 + .BYTE 28 + .BYTE 29 + .BYTE 30 + .BYTE 31 + .BYTE 32 + .BYTE 33 + .BYTE 34 + .BYTE 36 + .BYTE 37 + .BYTE 38 + .BYTE 39 + .BYTE 40 + .BYTE 42 + .BYTE 43 + .BYTE 44 + .BYTE 46 + .BYTE 47 + .BYTE 48 + .BYTE 49 + .BYTE 50 + .BYTE 52 + .BYTE 55 + .BYTE 56 + .BYTE 58 + .BYTE 60 + .BYTE 61 + .BYTE 62 + .BYTE 63 + .BYTE 65 + .BYTE 66 + .BYTE 67 + .BYTE 69 + .BYTE 70 + .BYTE 71 + .BYTE 72 + .BYTE 73 + .BYTE 74 + .BYTE 75 + .BYTE 76 + .BYTE 77 + .BYTE 78 + .BYTE 81 + .BYTE 86 + .BYTE 89 + .BYTE 101 + .BYTE 102 + .BYTE 157 + .ENDT + +PT?207:: .TABLE + 1 + W?FORE + .ENDT + +PT?307:: .TABLE + 1 + W?AFT + .ENDT + +PT?407:: .TABLE + 1 + W?PORT + .ENDT + +PT?507:: .TABLE + 1 + W?STARBOARD + .ENDT + +PT?607:: .TABLE + 1 + W?NORTH + .ENDT + +PT?707:: .TABLE + 1 + W?SOUTH + .ENDT + +PT?807:: .TABLE + 1 + W?EAST + .ENDT + +PT?907:: .TABLE + 1 + W?WEST + .ENDT + +PT?1007:: .TABLE + 1 + W?UP + .ENDT + +PT?1107:: .TABLE + 1 + W?DOWN + .ENDT + +PT?1207:: .TABLE + 1 + W?IN + .ENDT + +PT?1307:: .TABLE + 1 + W?OUT + .ENDT + +PT?1407:: +PT?6707:: .TABLE + 1 + W?TAKE + .ENDT + +PT?1507:: +PT?3007:: .TABLE + 1 + W?DROP + .ENDT + +PT?1607:: +PT?5307:: .TABLE + 1 + W?PUT + .ENDT + +PT?1707:: +PT?5107:: .TABLE + 1 + W?OPEN + .ENDT + +PT?1807:: +PT?2907:: .TABLE + 1 + W?CLOSE + .ENDT + +PT?1907:: +PT?3307:: .TABLE + 1 + W?EXAMINE + .ENDT + +PT?2007:: +PT?4607:: .TABLE + 1 + W?LOOK + .ENDT + +PT?2107:: +PT?4107:: .TABLE + 1 + W?INVENTORY + .ENDT + +PT?2207:: .TABLE + 1 + W?QUIT + .ENDT + +PT?2307:: .TABLE + 1 + W?RESTORE + .ENDT + +PT?2407:: .TABLE + 1 + W?RESTART + .ENDT + +PT?2507:: .TABLE + 1 + W?SAVE + .ENDT + +PT?2607:: .TABLE + 1 + W?UNDO + .ENDT + +PT?2707:: .TABLE + 1 + W?ASK + .ENDT + +PT?2807:: .TABLE + 1 + W?ATTACH + .ENDT + +PT?3107:: .TABLE + 1 + W?EMPTY + .ENDT + +PT?3207:: .TABLE + 1 + W?ENTER + .ENDT + +PT?3407:: .TABLE + 1 + W?EXIT + .ENDT + +PT?3507:: .TABLE + 1 + W?FOLLOW + .ENDT + +PT?3607:: .TABLE + 1 + W?GET + .ENDT + +PT?3707:: .TABLE + 2 + W?GET + W?IN + .ENDT + +PT?3807:: .TABLE + 2 + W?GET + W?OFF + .ENDT + +PT?3907:: .TABLE + 3 + W?GET + W?OUT + W?OF + .ENDT + +PT?4007:: .TABLE + 1 + W?HOLD + .ENDT + +PT?4207:: .TABLE + 2 + W?JUMP + W?IN + .ENDT + +PT?4307:: .TABLE + 3 + W?JUMP + W?OUT + W?OF + .ENDT + +PT?4407:: .TABLE + 1 + W?LISTEN + .ENDT + +PT?4507:: .TABLE + 2 + W?LISTEN + W?TO + .ENDT + +PT?4707:: .TABLE + 2 + W?LOOK + W?AT + .ENDT + +PT?4807:: .TABLE + 2 + W?LOOK + W?IN + .ENDT + +PT?4907:: .TABLE + 2 + W?LOOK + W?ON + .ENDT + +PT?5007:: .TABLE + 2 + W?LOOK + W?OVER + .ENDT + +PT?5207:: .TABLE + 2 + W?OPEN + W?UP + .ENDT + +PT?5407:: .TABLE + 2 + W?PUT + W?AWAY + .ENDT + +PT?5507:: .TABLE + 2 + W?PUT + W?DOWN + .ENDT + +PT?5607:: .TABLE + 2 + W?PUT + W?ON + .ENDT + +PT?5707:: .TABLE + 1 + W?REMOVE + .ENDT + +PT?5807:: .TABLE + 1 + W?SET + .ENDT + +PT?5907:: .TABLE + 2 + W?SIT + W?AT + .ENDT + +PT?6007:: .TABLE + 2 + W?SIT + W?DOWN + .ENDT + +PT?6107:: .TABLE + 2 + W?SIT + W?IN + .ENDT + +PT?6207:: .TABLE + 2 + W?SIT + W?ON + .ENDT + +PT?6307:: .TABLE + 1 + W?SWIM + .ENDT + +PT?6407:: .TABLE + 2 + W?SWIM + W?TO + .ENDT + +PT?6507:: .TABLE + 2 + W?SWITCH + W?OFF + .ENDT + +PT?6607:: .TABLE + 2 + W?SWITCH + W?ON + .ENDT + +PT?6807:: .TABLE + 2 + W?TAKE + W?OFF + .ENDT + +PT?6907:: .TABLE + 2 + W?TAKE + W?OUT + .ENDT + +PT?7007:: .TABLE + 2 + W?TAKE + W?UP + .ENDT + +PT?7107:: .TABLE + 1 + W?TELL + .ENDT + +PT?7207:: .TABLE + 1 + W?THANK + .ENDT + +PT?7307:: .TABLE + 1 + W?THROW + .ENDT + +PT?7407:: .TABLE + 2 + W?THROW + W?AWAY + .ENDT + +PT?7507:: .TABLE + 1 + W?TURN + .ENDT + +PT?7607:: .TABLE + 2 + W?TURN + W?OFF + .ENDT + +PT?7707:: .TABLE + 2 + W?TURN + W?ON + .ENDT + +PT?7807:: .TABLE + 1 + W?WAIT + .ENDT + +PT?7907:: .TABLE + 2 + W?WAIT + W?FOR + .ENDT + +PT?8007:: .TABLE + 1 + W?WALK + .ENDT + +PT?8107:: .TABLE + 2 + W?WALK + W?TO + .ENDT + +PT?8207:: .TABLE + 1 + W?WEAR + .ENDT + +PT?8307:: +K-DEFAULT-VERB-TBL:: +T?GL-VERB-TBL:: .TABLE + 84 + PT?207 + PT?307 + PT?407 + PT?507 + PT?607 + PT?707 + PT?807 + PT?907 + PT?1007 + PT?1107 + PT?1207 + PT?1307 + 0 + PT?1407 + PT?1507 + PT?1607 + PT?1707 + PT?1807 + PT?1907 + PT?2007 + PT?2107 + 0 + PT?2207 + PT?2307 + PT?2407 + PT?2507 + PT?2607 + 0 + PT?2707 + PT?2807 + PT?2907 + PT?3007 + PT?3107 + PT?3207 + PT?3307 + PT?3407 + PT?3507 + PT?3607 + PT?3707 + PT?3807 + PT?3907 + PT?4007 + PT?4107 + PT?4207 + PT?4307 + PT?4407 + PT?4507 + PT?4607 + PT?4707 + PT?4807 + PT?4907 + PT?5007 + PT?5107 + PT?5207 + PT?5307 + PT?5407 + PT?5507 + PT?5607 + PT?5707 + PT?5807 + PT?5907 + PT?6007 + PT?6107 + PT?6207 + PT?6307 + PT?6407 + PT?6507 + PT?6607 + PT?6707 + PT?6807 + PT?6907 + PT?7007 + PT?7107 + PT?7207 + PT?7307 + PT?7407 + PT?7507 + PT?7607 + PT?7707 + PT?7807 + PT?7907 + PT?8007 + PT?8107 + PT?8207 + .ENDT + +PT?8407:: +P-QB-WORDS-1:: .TABLE + 20 + W?ARE + W?CAN + W?COULD + W?DO + W?DOES + W?DID + W?HE + W?I + W?IS + W?IT + W?SHE + W?SHOULD + W?THAT + W?THEY + W?WAS + W?WE + W?WERE + W?WILL + W?WOULD + W?YOU + .ENDT + +PT?8507:: +P-QB-WORDS-2:: .TABLE + 20 + W?NOT + W?NOT + W?NOT + W?NOT + W?NOT + W?NOT + W?IS + W?AM + W?NOT + W?IS + W?IS + W?NOT + W?IS + W?ARE + W?NOT + W?ARE + W?NOT + W?NOT + W?NOT + W?ARE + .ENDT + +PT?8607:: +P-QA-WORDS1:: .TABLE + 20 + W?AREN + W?CAN + W?COULDN + W?DON + W?DOESN + W?DIDN + W?HE + W?I + W?ISN + W?IT + W?SHE + W?SHOULDN + W?THAT + W?THEY + W?WASN + W?WE + W?WEREN + W?WON + W?WOULDN + W?YOU + .ENDT + +PT?8707:: +P-QA-WORDS2:: .TABLE + 20 + W?T + W?T + W?T + W?T + W?T + W?T + W?S + W?M + W?T + W?S + W?S + W?T + W?S + W?RE + W?T + W?RE + W?T + W?T + W?T + W?RE + .ENDT + +PT?8807:: +P-N-WORDS:: .TABLE + 23 + W?ZERO + W?TEN + W?ELEVEN + W?TWELVE + W?THIRTEEN + W?FOURTEEN + W?FIFTEEN + W?SIXTEEN + W?SEVENTEEN + W?EIGHTEEN + W?NINETEEN + W?TWENTY + W?THIRTY + W?FORTY + W?FIFTY + W?SIXTY + W?SEVENTY + W?EIGHTY + W?NINETY + W?HUNDRED + W?THOUSAND + W?MILLION + W?BILLION + .ENDT + +PT?8907:: +P-C-WORDS:: .TABLE + 23 + W?ASS + W?ASSHOLE + W?BASTARD + W?BITCH + W?COCK + W?COCKSUCKER + W?CRAP + W?CUNT + W?CUSS + W?DAMN + W?DAMNED + W?FUCK + W?FUCKED + W?FUCKER + W?FUCKING + W?GODDAMN + W?GODDAMNED + W?HELL + W?PISS + W?SCREW + W?SHIT + W?SHITHEAD + W?SUCKS + .ENDT + +PT?112:: +OWNERS:: .TABLE + 3 + CH-PLAYER + CH-COFFEY + CH-LINDSEY + .ENDT + +PT?212:: +NO-M-WINNER-VERB-TABLE:: .TABLE + 1 + V?TELL-ABOUT + .ENDT + +PT?312:: +PT?127:: .TABLE + .BYTE 1 + 0 + .ENDT + +PT?119:: +QACTIONS:: .TABLE + 3 + V-BE + V-BE? + 0 + .ENDT + +PT?120:: .TABLE + .BYTE RM-GAS-MIX-ROOM + .BYTE 1 + .ENDT + +PT?220:: .TABLE + .BYTE RM-COMPRESSION-CHAMBER + .BYTE 1 + .ENDT + +PT?227:: +K-BODY-OWNER-TBL:: .TABLE + 2 + CH-COFFEY + CH-LINDSEY + .ENDT + +PT?128:: +K-MACHINE-NAME-TBL:: .TABLE + 10 + STR?139 + STR?140 + STR?141 + STR?142 + STR?143 + STR?144 + STR?145 + STR?146 + STR?147 + STR?148 + .ENDT + +PT?228:: +K-COLOR-TABLE:: .TABLE + STR?152 + STR?153 + STR?154 + STR?155 + STR?156 + STR?157 + STR?158 + STR?159 + STR?160 + STR?161 + .ENDT + +PT?328:: .TABLE + 4 + STR?162 + STR?163 + STR?164 + STR?165 + .ENDT + +PT?428:: .TABLE + 6 + STR?166 + STR?167 + STR?168 + STR?169 + STR?170 + STR?171 + .ENDT + +PT?528:: .TABLE + 6 + STR?172 + STR?173 + STR?174 + STR?175 + STR?176 + STR?177 + .ENDT + +PURTND:: + .ENDI diff --git a/abyssstr.zap b/abyssstr.zap new file mode 100644 index 0000000..75b1be0 --- /dev/null +++ b/abyssstr.zap @@ -0,0 +1,233 @@ + + +; STRINGS ARE DEFINED HERE + +STRBEG:: + + .SEGMENT "0" + + .GSTR STR?1,"M-END" + .GSTR STR?2,"What charming language!" + .GSTR STR?3,"Computers aren't impressed by naughty words!" + .GSTR STR?4,"You ought to be ashamed of yourself!" + .GSTR STR?5,"Hey, save that talk for the locker room!" + .GSTR STR?6,"Step outside and say that!" + .GSTR STR?7,"And so's your old man!" + .GSTR STR?8,"No inside" +P-NO-INSIDE=STR?8 + .GSTR STR?9,"No surface" +P-NO-SURFACE=STR?9 + .GSTR STR?10,"Nothing" +P-NOTHING=STR?10 + .GSTR STR?11,"RED-SP" + .GSTR STR?12,"RED-SV" + .GSTR STR?13,"RED-SVPNN" + .GSTR STR?14,"RED-SVNPN" + .GSTR STR?15,"RED-SVPNPN" + .GSTR STR?16,"RED-SVNP" + .GSTR STR?17,"RED-SVN" + .GSTR STR?18,"RED-SD" + .GSTR STR?19,"RED-SVD" + .GSTR STR?20,"RED-VP" + .GSTR STR?21,"RED-CANDO" + .GSTR STR?22,"RED-PART" + .GSTR STR?23,"RED-FCN" + .GSTR STR?24,"RED-NPP" + .GSTR STR?25,"RED-QUOTE" + .GSTR STR?26,"RED-OF" + .GSTR STR?27,"RED-QT" + .GSTR STR?28,"RED-QN" + .GSTR STR?29,"RED-NP" + .GSTR STR?30,"RED-PP" + .GSTR STR?31,"RED-ADJ" + .GSTR STR?32,"RED-POSS" + .GSTR STR?33,"RED-BE-FORM" + .GSTR STR?34,"RED-SNBN" + .GSTR STR?35,"RED-SNBA" + .GSTR STR?36,"RED-SNBP" + .GSTR STR?37,"RED-SNBAP" + .GSTR STR?38,"RED-SQBN" + .GSTR STR?39,"RED-SBNN" + .GSTR STR?40,"RED-SBNA" + .GSTR STR?41,"RED-SBNP" + .GSTR STR?42,"RED-BE" + .GSTR STR?43,"RED-NOT" + .GSTR STR?44,"RED-PERS" + .GSTR STR?45,"DO-ORPHAN-TEST" + .GSTR STR?46,"RED-O-NP" + .GSTR STR?47,"RED-O-ADJ" + .GSTR STR?48,"RED-O-PP" + .GSTR STR?49,"Winner" + .GSTR STR?50,"Subject" + .GSTR STR?51,"Preaction" + .GSTR STR?52,"M-BEG" + .GSTR STR?53,"Container" + .GSTR STR?54,"PRSI" + .GSTR STR?55,"PRSO" + .GSTR STR?56,"are" + .GSTR STR?57,"word" + .GSTR STR?58,"letter" + .GSTR STR?59,"verb" + .GSTR STR?60,"me" + .GSTR STR?61,"have" + .GSTR STR?62,"try" + .GSTR STR?63,"empty" + .GSTR STR?64,"fly" + .GSTR STR?65,"dry" + .GSTR STR?66,"do" + .GSTR STR?67,"kiss" + .GSTR STR?68,"push" + .GSTR STR?69,"miss" + .GSTR STR?70,"pass" + .GSTR STR?71,"toss" + .GSTR STR?72,"touch" + .GSTR STR?73,"Time passes... +" +K-TIME-PASSES-MSG=STR?73 + .GSTR STR?74,"Restart" + .GSTR STR?75,"Save" + .GSTR STR?76,"Restore" + .GSTR STR?77,"see" + .GSTR STR?78,"close" + .GSTR STR?79,"closed" + .GSTR STR?80,"take off" + .GSTR STR?81,"drop" + .GSTR STR?82,"land" + .GSTR STR?83,"get" + .GSTR STR?84,"[You didn't say w" +YOU-DIDNT-SAY-W=STR?84 + .GSTR STR?85,"hear" + .GSTR STR?86,"locked" + .GSTR STR?87,"lock" + .GSTR STR?88,"look inside" + .GSTR STR?89,"look outside" + .GSTR STR?90,"put" + .GSTR STR?91,"give" + .GSTR STR?92,"swing" + .GSTR STR?93,"open" + .GSTR STR?94,"step" + .GSTR STR?95,"in it" + .GSTR STR?96,"an opening in" + .GSTR STR?97,"There's not enough room. +" +NOT-ENOUGH-ROOM=STR?97 + .GSTR STR?98,"seem" + .GSTR STR?99,"Sitting on" + .GSTR STR?100,"take" + .GSTR STR?101,"reach" + .GSTR STR?102,"look" + .GSTR STR?103,"shrug" + .GSTR STR?104,"is" + .GSTR STR?105,"unlocked" + .GSTR STR?106,"go" + .GSTR STR?107,"follow" + .GSTR STR?108,"Which direction do you want to go in?" +K-WHICH-DIR-MSG=STR?108 + .GSTR STR?109,"move around within" + .GSTR STR?110,"put on" + .GSTR STR?111,"has" + .GSTR STR?112,"can" + .GSTR STR?113,"may" + .GSTR STR?114,"could" + .GSTR STR?115,"would" + .GSTR STR?116,"should" + .GSTR STR?117,"will" + .GSTR STR?118,"might" + .GSTR STR?119,"must" + .GSTR STR?120,"chamber" + .GSTR STR?121,"hatch" + .GSTR STR?122,"""I swear it's all true, Bud. I saw...something. It was right in front of us and then it dived into the trench, pulling us along after it. Then we hit the side of the trench and I blacked out for a second. When I came to, Flatbed was spinning out of control into the trench. None of the controls worked. I did the only thing I could do. I bailed out. But I didn't kill those men..."" her voice trails off, ""...there was nothing I could do..."" +" +K-UFO-MSG=STR?122 + .GSTR STR?123,"door" + .GSTR STR?124,"life support" + .GSTR STR?125,"control box" + .GSTR STR?126,"cut" + .GSTR STR?127,"armed" + .GSTR STR?128,"disarmed" + .GSTR STR?129,"battery room" + .GSTR STR?130,"on" + .GSTR STR?131,"off" + .GSTR STR?132,"plugged in" + .GSTR STR?133,"gear storage" + .GSTR STR?134,"rec room" + .GSTR STR?135,"hose" + .GSTR STR?136,"fluid" + .GSTR STR?137,"[You don't need to refer to " +K-NO-REFER-MSG=STR?137 + .GSTR STR?138,"appear" + .GSTR STR?139,"Debugging" + .GSTR STR?140,"Apple IIe" + .GSTR STR?141,"Macintosh" + .GSTR STR?142,"Amiga" + .GSTR STR?143,"Atari ST" + .GSTR STR?144,"IBM" + .GSTR STR?145,"Commodore 128" + .GSTR STR?146,"Commodore 64" + .GSTR STR?147,"Apple IIc" + .GSTR STR?148,"Apple IIgs" + .GSTR STR?149,"text" + .GSTR STR?150,"background" + .GSTR STR?151,"Please press a number from 1 to " +K-TYPE-NUMBER-MSG=STR?151 + .GSTR STR?152,"no change" + .GSTR STR?153,"the standard color" + .GSTR STR?154,"black" + .GSTR STR?155,"red" + .GSTR STR?156,"green" + .GSTR STR?157,"yellow" + .GSTR STR?158,"blue" + .GSTR STR?159,"magenta" + .GSTR STR?160,"cyan" + .GSTR STR?161,"white" + .GSTR STR?162,"isn't likely" + .GSTR STR?163,"seems doubtful" + .GSTR STR?164,"seems unlikely" + .GSTR STR?165,"doesn't seem likely" + .GSTR STR?166,"not do anything useful" + .GSTR STR?167,"accomplish nothing" + .GSTR STR?168,"have no desirable effect" + .GSTR STR?169,"not be very productive" + .GSTR STR?170,"serve no purpose" + .GSTR STR?171,"be pointless" + .GSTR STR?172,"unusual" + .GSTR STR?173,"special" + .GSTR STR?174,"interesting" + .GSTR STR?175,"important" + .GSTR STR?176,"of interest" + .GSTR STR?177,"out of the ordinary" + .GSTR STR?178,"It's too dark to see." +K-TOO-DARK-MSG=STR?178 + .GSTR STR?179,"[Talking to yourself is a bad sign.]" +K-TALK-TO-SELF-MSG=STR?179 + .GSTR STR?180,"[How do you intend to do that?]" +K-HOW-INTEND-MSG=STR?180 + .GSTR STR?181," You hear a loud hissing coming from somewhere in the room. +" +K-HISS-MSG=STR?181 + .GSTR STR?182," It is a huge cylinder that looks like a giant capsule. It is supported by four legs that are welded to a steel base to provide stability. The base is raised up off the floor by about an inch. + On the front of the tank is a k-valve that looks a little like a beer tap." +K-GAS-TANK-MSG=STR?182 + .GSTR STR?183,"thermometer" + .GSTR STR?184,"superbrief" + .GSTR STR?185,"stationary" + .GSTR STR?186,"recreation" + .GSTR STR?187,"photograph" + .GSTR STR?188,"observation" + .GSTR STR?189,"ladderwell" + .GSTR STR?190,"laboratory" + .GSTR STR?191,"extinguish" + .GSTR STR?192,"end.of.input" + .GSTR STR?193,"electronic" + .GSTR STR?194,"electrical" + .GSTR STR?195,"downstairs" + .GSTR STR?196,"descrambler" + .GSTR STR?197,"compressor" + .GSTR STR?198,"compression" + .GSTR STR?199,"communications" + .GSTR STR?200,"cocksucker" + .GSTR STR?201,"arc-welder" + .ENDSEG + + + .ENDI diff --git a/alien.zabstr b/alien.zabstr new file mode 100644 index 0000000..57e95b2 --- /dev/null +++ b/alien.zabstr @@ -0,0 +1,20 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/alien.zap b/alien.zap new file mode 100644 index 0000000..9b0180f --- /dev/null +++ b/alien.zap @@ -0,0 +1,52 @@ + + + .FUNCT RT-RM-TRENCH-BOTTOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "arrive at" +?CND4: PRINTI " the bottom of the trench. You are next to a huge alien ship that will be much more vividly described in later versions of this game. Once we hook up the graphics, on the side of the ship you will see a picture of a panel with a series of dots on it. For now, let's just say there's a purple button that you have to push in order to get inside the ship. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-PURPLE-BUTTON:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + PRINTR " Pretty normal-looking button, considering it's purple." +?CCL5: EQUAL? PRSA,V?PUSH \FALSE + MOVE CH-PLAYER,RM-ALIEN-CHAMBER + PRINTR " The door swings open and you enter the Alien ship. You walk down a long, luminescent corridor and eventually come to a large room. Lindsey is sitting in the middle of the floor, her tear-stained face looking up at some large TV screens on the wall. You walk toward her. She silently stretches out her hand to take yours, and then motions you to look at the screens. You do so and quickly realize why she's been crying. + Up on the screen you see pictures of incredible destruction. Major cities all over the world are being inundated by water. In some places, the flooding is complete. In others it has just begun. But all over the planet, water is rising up to wipe out humanity in the flood that Noah was promised would never come. + One of the Alien creatures materializes at your side and explains why they are doing what they are doing. He bears a strong resemblance to Don Rubin. ""Soon there will be a puzzle here,"" he says. ""Otherwise, Bob will write it when he gets back from vacation. Until that time, simply push the fuschia button over there on the wall. Doing so will save the world and return you to Deepcore. Not a bad deal, if you ask me.""" + + + .FUNCT RT-RM-ALIEN-CHAMBER:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "arrive at" +?CND4: PRINTI " the alien chamber. There is a fuschia button on the wall. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-FUSCHIA-BUTTON:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + PRINTR " Pretty normal-looking button, considering it's fuschia." +?CCL5: EQUAL? PRSA,V?PUSH \FALSE + MOVE CH-PLAYER,RM-SUB-BAY + MOVE CH-LINDSEY,RM-SUB-BAY + FSET CH-ALIEN,FL-BROKEN + PRINTR " A flash of lighting. A clap of thunder. And suddenly you and Lindsey are back in the Sub-bay." + + .ENDI diff --git a/alien.zil b/alien.zil new file mode 100644 index 0000000..e2bc368 --- /dev/null +++ b/alien.zil @@ -0,0 +1,187 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : ALIEN.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 18 Mar 1989 14:02:54 $" +; "rev : $Revision: 1.2 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Crane crash" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + +;"---------------------------------------------------------------------------" +; "RM-TRENCH-BOTTOM" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + +;"---------------------------------------------------------------------------" +; "TH-PURPLE-BUTTON" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + ( + + + ) + > +> + + + +;"---------------------------------------------------------------------------" +; "RM-ALIEN-CHAMBER" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-FUSCHIA-BUTTON" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + ( + + + + + ) + > +> + + + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/be.zabstr b/be.zabstr new file mode 100644 index 0000000..0ccd25c --- /dev/null +++ b/be.zabstr @@ -0,0 +1,64 @@ + + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IS-OUTSIDE? +IS-OPEN? IS-CLOSED? IS-LOCKED? IS-UNLOCKED? IS-DEAD? +IS-ALIVE? IS-QUIET? IS-HERE?>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/be.zap b/be.zap new file mode 100644 index 0000000..0d643b5 --- /dev/null +++ b/be.zap @@ -0,0 +1,374 @@ + + + .FUNCT V-STATEMENT:ANY:0:0 + CALL1 V-DO? + RSTACK + + + .FUNCT V-BE:ANY:0:0,TMP,NOT?,ADJ?,LOC?,OBJ,PREP + GET PARSE-RESULT,16 + BAND PARSE-NOT,STACK >NOT? + GET PARSE-RESULT,11 >ADJ? + GET PARSE-RESULT,9 >LOC? + EQUAL? PRSA,V?HOW /?CTR2 + EQUAL? PRSA,V?WHEN,V?WHY,V?WHERE /?CTR2 + EQUAL? PRSA,V?WHAT,V?WHO,V?BE? \?CCL3 +?CTR2: EQUAL? PRSI,INTADJ \?CCL9 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + CALL2 IS-PRSO-ADJ?,ADJ? + ZERO? STACK \?CND10 + PRINTI "n't" +?CND10: PRINTC 32 + PRINTB ADJ? + PRINTC 46 + CRLF + RTRUE +?CCL9: EQUAL? PRSI,INTPP \?CCL13 + CALL1 P-PP-PREP >PREP + ZERO? PREP /?CCL16 + CALL1 P-PP-OBJ >OBJ + ZERO? OBJ /?CCL16 + EQUAL? PRSA,V?BE? \?CCL21 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + CALL RIGHT-PREP?,PREP,PRSO,OBJ + ZERO? STACK \?CND22 + PRINTI "n't" +?CND22: PRINTC 32 + PRINTB PREP + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE + PRINTC 46 + CRLF + RTRUE +?CCL21: PRINTI "You want to know " + ICALL1 TELL-Q-WORD + ICALL2 PRSO-IS,NOT? + PRINTC 32 + PRINTB PREP + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE + PRINTC 46 + CRLF + RTRUE +?CCL16: PRINTI "You want to know " + ICALL1 TELL-Q-WORD + ICALL2 PRSO-IS,NOT? + PRINTC 32 + GET LOC?,1 + PRINTB STACK + PRINTC 32 + GET LOC?,2 + ICALL2 NP-PRINT,STACK + PRINTC 46 + CRLF + RTRUE +?CCL13: ZERO? PRSI \?CCL25 + EQUAL? PRSA,V?WHERE \?CCL25 + LOC PRSO >LOC? + IN? PRSO,HERE \?CCL30 + ICALL PRSO-IS,FALSE-VALUE,TRUE-VALUE + PRINTR " here." +?CCL30: EQUAL? LOC?,GLOBAL-OBJECTS \?CCL32 + PRINTI "No doubt" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + ICALL RT-PRINT-VERB,PRSO,STR?56 + PRINTR " around here somewhere." +?CCL32: EQUAL? LOC?,LOCAL-GLOBALS \?CCL34 + CALL GLOBAL-IN?,PRSO,HERE + ZERO? STACK /?CCL34 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR " nearby." +?CCL34: FSET? LOC?,FL-PERSON \?CCL38 + ICALL RT-PRINT-OBJ,LOC?,K-ART-THE,TRUE-VALUE,STR?111 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTC 46 + CRLF + RTRUE +?CCL38: CALL2 META-LOC,PRSO + EQUAL? STACK,HERE \?CCL40 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + ICALL2 RT-IN-ON-MSG,LOC? + ICALL RT-PRINT-OBJ,LOC?,K-ART-THE + PRINTC 46 + CRLF + RTRUE +?CCL40: IN? LOC?,ROOMS \?CCL42 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE + PRINTI " is probably " + FSET? PRSO,TOUCHBIT \?CCL45 + PRINTI "still in" + ICALL RT-PRINT-OBJ,LOC?,K-ART-THE + PRINTC 46 + CRLF + RTRUE +?CCL45: PRINTR "lying around somewhere." +?CCL42: PRINTI "That's an excellent question. Just where" + ICALL RT-PRINT-VERB,PRSO,STR?56 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTC 63 + CRLF + RTRUE +?CCL25: PRINTI "You want to know " + ICALL1 TELL-Q-WORD + ICALL2 PRSO-IS,NOT? + ZERO? PRSI /?CND46 + ICALL RT-PRINT-OBJ,PRSI,K-ART-A +?CND46: PRINTC 63 + CRLF + RTRUE +?CCL3: EQUAL? PRSI,INTADJ \?CCL50 + CALL2 IS-PRSO-ADJ?,ADJ? + ZERO? STACK /?CCL53 + ZERO? NOT? /?CCL56 + PRINTI "Wrong," + JUMP ?CND54 +?CCL56: PRINTI "Right," +?CND54: ICALL2 PRSO-IS,FALSE-VALUE + JUMP ?CND51 +?CCL53: ZERO? NOT? /?CCL59 + PRINTI "Right," + JUMP ?CND57 +?CCL59: PRINTI "Wrong," +?CND57: ICALL2 PRSO-IS,TRUE-VALUE +?CND51: PRINTC 32 + PRINTB ADJ? + PRINTC 46 + CRLF + RTRUE +?CCL50: EQUAL? PRSI,INTPP \?CCL61 + PRINTI "So, you say" + ICALL2 PRSO-IS,NOT? + CALL1 P-PP-PREP >PREP + ZERO? PREP /?CCL64 + CALL1 P-PP-OBJ >OBJ + ZERO? OBJ /?CCL64 + PRINTB PREP + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE + JUMP ?CND62 +?CCL64: GET LOC?,1 + PRINTB STACK + GET LOC?,2 + CALL2 NP-PRINT,STACK + ICALL RT-PRINT-OBJ,STACK,K-ART-THE +?CND62: PRINTC 46 + CRLF + RTRUE +?CCL61: PRINTI "So you think" + ICALL2 PRSO-IS,NOT? + ZERO? PRSI /?CND67 + ICALL RT-PRINT-OBJ,PRSI,K-ART-A +?CND67: PRINTC 63 + CRLF + RTRUE + + + .FUNCT TELL-Q-WORD:ANY:0:0 + EQUAL? PRSA,V?BE? \?CCL3 + PRINTI "if" + RTRUE +?CCL3: EQUAL? PRSA,V?WHY \?CCL5 + PRINTI "why" + RTRUE +?CCL5: EQUAL? PRSA,V?WHO \?CCL7 + PRINTI "who" + RTRUE +?CCL7: EQUAL? PRSA,V?WHAT \?CCL9 + PRINTI "what" + RTRUE +?CCL9: EQUAL? PRSA,V?WHERE \?CCL11 + PRINTI "where" + RTRUE +?CCL11: EQUAL? PRSA,V?WHEN \?CCL13 + PRINTI "when" + RTRUE +?CCL13: EQUAL? PRSA,V?HOW \?CCL15 + PRINTI "how" + RTRUE +?CCL15: PRINTB P-PRSA-WORD + RTRUE + + + .FUNCT RIGHT-PREP?:ANY:3:3,PREP,OBJ,CONT + IN? OBJ,CONT \FALSE + EQUAL? PREP,W?IN,W?INSIDE \?CCL5 + CALL2 RT-SEE-INSIDE?,CONT + ZERO? STACK /FALSE + RTRUE +?CCL5: EQUAL? PREP,W?ON \FALSE + FSET? CONT,FL-SURFACE /TRUE + RFALSE + + + .FUNCT IS-QUIET?:ANY:1:1,OBJ + RTRUE + + + .FUNCT IS-OUTSIDE?:ANY:1:1,OBJ + FSET? HERE,FL-INDOORS /FALSE + RTRUE + + + .FUNCT IS-OPEN?:ANY:1:1,OBJ + FSET? OBJ,FL-OPENABLE \FALSE + FSET? OBJ,FL-OPEN /TRUE + RFALSE + + + .FUNCT IS-CLOSED?:ANY:1:1,OBJ + FSET? OBJ,FL-OPENABLE \FALSE + FSET? OBJ,FL-OPEN /FALSE + RTRUE + + + .FUNCT IS-LOCKED?:ANY:1:1,OBJ + FSET? OBJ,FL-OPENABLE \FALSE + FSET? OBJ,FL-LOCKED /TRUE + RFALSE + + + .FUNCT IS-UNLOCKED?:ANY:1:1,OBJ + FSET? OBJ,FL-OPENABLE \FALSE + FSET? OBJ,FL-LOCKED /FALSE + RTRUE + + + .FUNCT IS-DEAD?:ANY:1:1,OBJ + FSET? OBJ,FL-PERSON \FALSE + FSET? OBJ,FL-ALIVE /FALSE + RTRUE + + + .FUNCT IS-ALIVE?:ANY:1:1,OBJ + FSET? OBJ,FL-PERSON \FALSE + FSET? OBJ,FL-ALIVE /TRUE + RFALSE + + + .FUNCT IS-HERE?:ANY:1:1,OBJ,L + LOC OBJ >L +?PRG1: ZERO? L /FALSE + EQUAL? L,GLOBAL-OBJECTS,LOCAL-GLOBALS,ROOMS /FALSE + EQUAL? L,HERE /TRUE + LOC L >L + JUMP ?PRG1 + + + .FUNCT PRSO-IS:ANY:1:2,NOT?,CAP? + ZERO? CAP? /?CCL3 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE + JUMP ?CND1 +?CCL3: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE +?CND1: ICALL RT-PRINT-VERB,PRSO,STR?56 + ZERO? NOT? /FALSE + PRINTI "n't" + RTRUE + + + .FUNCT IS-PRSO-ADJ?:ANY:1:1,ADJ,TMP + GETPT PRSO,P?ADJECTIVE >TMP + ZERO? TMP /?CCL3 + PTSIZE TMP + DIV STACK,2 + INTBL? ADJ,TMP,STACK /TRUE +?CCL3: GET ADJ-TABLE,0 + INTBL? ADJ,ADJ-TABLE,STACK >TMP \FALSE + GET TMP,1 + CALL STACK,PRSO + ZERO? STACK \TRUE + RFALSE + + + .FUNCT YES-BUT?:ANY:2:2,STR1,STR2 + GET PARSE-RESULT,10 + ZERO? STACK \FALSE + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE + PRINTC 32 + PRINT STR1 + PRINTI ", but " + PRINT STR2 + ICALL RT-PRINT-OBJ,PRSO,K-ART-HE + PRINTC 63 + CRLF + RTRUE + + + .FUNCT V-CAN?:ANY:0:0 + CALL YES-BUT?,STR?112,STR?113 + RSTACK + + + .FUNCT V-MAY?:ANY:0:0 + CALL YES-BUT?,STR?113,STR?112 + RSTACK + + + .FUNCT V-DO?:ANY:0:0 + GET PARSE-RESULT,10 + ZERO? STACK \FALSE + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?66 + PRINTR ", but why?" + + + .FUNCT V-COULD?:ANY:0:0 + CALL YES-BUT?,STR?114,STR?115 + RSTACK + + + .FUNCT V-WOULD?:ANY:0:0 + CALL YES-BUT?,STR?115,STR?114 + RSTACK + + + .FUNCT V-SHOULD?:ANY:0:0 + CALL YES-BUT?,STR?116,STR?117 + RSTACK + + + .FUNCT V-MIGHT?:ANY:0:0 + CALL YES-BUT?,STR?118,STR?117 + RSTACK + + + .FUNCT V-WILL?:ANY:0:0 + CALL YES-BUT?,STR?117,STR?116 + RSTACK + + + .FUNCT V-MUST?:ANY:0:0 + CALL YES-BUT?,STR?119,STR?112 + RSTACK + + + .FUNCT V-BE?:ANY:0:0 + CALL1 V-BE + RSTACK + + + .FUNCT V-WHO:ANY:0:0 + CALL1 V-BE + RSTACK + + + .FUNCT V-WHAT:ANY:0:0 + CALL1 V-BE + RSTACK + + + .FUNCT V-WHEN:ANY:0:0 + CALL1 V-BE + RSTACK + + + .FUNCT V-WHERE:ANY:0:0 + CALL1 V-BE + RSTACK + + + .FUNCT V-WHY:ANY:0:0 + CALL1 V-BE + RSTACK + + + .FUNCT V-HOW:ANY:0:0 + CALL1 V-BE + RSTACK + + .ENDI diff --git a/be.zil b/be.zil new file mode 100644 index 0000000..75a0803 --- /dev/null +++ b/be.zil @@ -0,0 +1,550 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : BE.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 09 Dec 1988 23:24:34 $" +; "rev : $Revision: 1.0 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Be verbs and syntaxes" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + +; "PERFORM uses two additional GLOBALs, 'q-verb' and subject, each of which + can be false. Examples: + 'IS THE POPE CATHOLIC' + becomes + + + + 'DOES THE GOVERNMENT TAKE MONEY FROM ME' + becomes + + + + + 'WHY DOES THE GOVERNMENT TAKE MONEY FROM ME' + becomes + + + + + When PERFORM notices the presence of a q-verb, it calls action routines + in this order: + WINNER + SUBJECT + ; M-BEG + Q-PREACTION (from the QACTIONS table) + ; OBJECT #2 + ; OBJECT #1 + Q-ACTION (from the QACTIONS table) or V-STATEMENT + + PERFORM also handles statements, for example: + 'MY NAME IS ARTHUR DENT' + becomes + " + + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> + +>> + > + > + + + + > + + ) + > + + + + ) + ( + > + > + > + + + > + + ) + > + + + + ) + (T + + + + + + + ) + > + ) + (T + + + + + > + + > + + ) + > + ) + ( + + > + > + + T> + + ) + ( + + ) + ( + + > + + ) + ( + + ) + ( ,HERE> + + ) + ( + + + + ) + (T + + ) + > + ) + (T + + ) + > + ) + (T + + + + + ) + > + + ) + > + ) + (T + + + + ) + (T + + ) + > + > + ) + (T + + ) + (T + + ) + > + + ) + > + + + + ) + ( + + + > + > + > + + + ) + (T + > + >> + ) + > + + ) + (T + + + + ) + > + + ) + > + ) + > +> + +;> +> + + + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + (T + + ) + > +> + +> + + ) + ( + + + ) + (T + + ) + > + ) + ( + + > + + ) + > +> + + + IS-OUTSIDE? + ; + ; IS-INSIDE? + + IS-OPEN? + + IS-CLOSED? + + IS-LOCKED? + + IS-UNLOCKED? + + IS-DEAD? + + IS-ALIVE? + + IS-QUIET? + + IS-HERE? + > +> + + +> + +> +> + +; +> + + + + > +> + + + > + > +> + + + + > +> + + + > + > +> + + + > + > +> + + + + > +> + +> + + + > + + ) + ( + + ) + (T + > + ) + > + > +> + +)) + + ) + (T + + ) + > + + + ) + > +> + +> + 2>> + > + + ) + (>> + ,PRSO> + > + + ) + > +> + +;)) + + + ) + (> + > + > + + ) + (> + > + > + + ) + (T + + ) + > +> + +> + + ) + > +> + + +> + + +> + +> + + ) + > +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/breds.zabstr b/breds.zabstr new file mode 100644 index 0000000..bcc2607 --- /dev/null +++ b/breds.zabstr @@ -0,0 +1,58 @@ +)("IN-ZILCH" T)( +"WORD-FLAGS-IN-TABLE" T)) ()> + + + + + + + + > + > + > + > + > + ,FUTURE-TENSE> + ,FUTURE-TENSE> + + + + + + + + + + + + + + + + + + + + + + + +> +> +> + > + ,PAST-TENSE> +> +> +> + ,FUTURE-TENSE> +> +> +> + + + + \ No newline at end of file diff --git a/breds.zap b/breds.zap new file mode 100644 index 0000000..8032244 --- /dev/null +++ b/breds.zap @@ -0,0 +1,572 @@ + + .SEGMENT "0" + + + .FUNCT RED-BE-FORM:ANY:0:2,N,TYP + PUT PARSE-RESULT,2,TLEXV + POP DATA-STACK + PUT PARSE-RESULT,1,STACK + RTRUE + + + .FUNCT EXCH-4-5-Q:ANY:3:3,RED,N,TYP,X1,X2,X3,X4,X5 + POP DATA-STACK >X1 + POP DATA-STACK >X2 + POP DATA-STACK >X3 + POP DATA-STACK >X4 + POP DATA-STACK >X5 + EQUAL? N,6 \?CCL3 + DEC 'N + POP DATA-STACK + PUT PARSE-RESULT,10,STACK + JUMP ?CND1 +?CCL3: PUT PARSE-RESULT,10,0 +?CND1: CALL2 PMEM?,X3 + ZERO? STACK /?CCL6 + XPUSH X3,DATA-STACK /?CND4 + JUMP ?CND4 +?CCL6: XPUSH X4,DATA-STACK /?CND4 +?CND4: XPUSH X5,DATA-STACK /?BOGUS9 +?BOGUS9: CALL2 PMEM?,X3 + ZERO? STACK /?CCL12 + XPUSH X4,DATA-STACK /?CND10 + JUMP ?CND10 +?CCL12: XPUSH X3,DATA-STACK /?CND10 +?CND10: XPUSH X2,DATA-STACK /?BOGUS15 +?BOGUS15: XPUSH X1,DATA-STACK /?BOGUS16 +?BOGUS16: GET PARSE-RESULT,16 + BOR PARSE-QUESTION,STACK + PUT PARSE-RESULT,16,STACK + CALL RED,N,TYP + RSTACK + + + .FUNCT RED-SBNN:ANY:0:2,N,TYP + CALL EXCH-4-5-Q,RED-SNBN,N,TYP + RSTACK + + + .FUNCT RED-SNBN:ANY:0:2,N,TYP,OK,NPP,OBJ,VERB,X,?TMP1 + GET PARSE-RESULT,1 >VERB + POP DATA-STACK >NPP + ADD WORD-FLAG-TABLE,2 >?TMP1 + GET WORD-FLAG-TABLE,0 + INTBL? VERB,?TMP1,STACK,132 >X \?CCL6 + GET X,1 + JUMP ?CND4 +?CCL6: PUSH FALSE-VALUE +?CND4: BTST STACK,1024 \?CCL3 + POP DATA-STACK + EQUAL? TRUE-VALUE,STACK /?CND1 + SET 'OK,TRUE-VALUE + JUMP ?CND1 +?CCL3: POP DATA-STACK + EQUAL? TRUE-VALUE,STACK \?CND1 + SET 'OK,TRUE-VALUE +?CND1: ZERO? OK /FALSE + CALL2 DETERMINE-SUBJ,VERB + ZERO? STACK /FALSE + CALL DETERMINE-OBJ,NPP,2 >OBJ + ZERO? OBJ \?CCL19 + CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,NPP + RSTACK +?CCL19: GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD26 + PUSH ?TMP1 + JUMP ?PEN24 +?PRD26: GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,3 + GET STACK,4 +?PEN24: BTST STACK,32768 /?CCL21 + GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD29 + PUSH ?TMP1 + JUMP ?PEN27 +?PRD29: GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,3 + GET STACK,4 +?PEN27: BAND STACK,256 + BAND STACK,32767 + ZERO? STACK \FALSE +?CCL21: PUT PARSE-RESULT,6,OBJ + RETURN PARSE-RESULT + + + .FUNCT DETERMINE-SUBJ:ANY:1:3,VERB,SHORT,N1,DATA,TMP,OBJ1,?TMP1 + ZERO? SHORT \?CND1 + POP DATA-STACK + EQUAL? TRUE-VALUE,STACK /?CND1 + GET PARSE-RESULT,16 + BOR PARSE-NOT,STACK + PUT PARSE-RESULT,16,STACK +?CND1: POP DATA-STACK + ZERO? SHORT /?CCL7 + POP DATA-STACK >TMP + PUT PARSE-RESULT,10,TMP + JUMP ?CND5 +?CCL7: GET PARSE-RESULT,10 >TMP +?CND5: EQUAL? TMP,0,1 /?CCL9 + GET TMP,4 >?TMP1 + ZERO? ?TMP1 /?PRD16 + PUSH ?TMP1 + JUMP ?PEN14 +?PRD16: GET TMP,3 + GET STACK,4 +?PEN14: BTST STACK,32768 /?CCL9 + GET TMP,4 >?TMP1 + ZERO? ?TMP1 /?PRD19 + PUSH ?TMP1 + JUMP ?PEN17 +?PRD19: GET TMP,3 + GET STACK,4 +?PEN17: BAND STACK,256 + BAND STACK,32767 + ZERO? STACK \?CND8 +?CCL9: GET PARSE-RESULT,16 + BTST STACK,2 \?CCL22 + SET 'TMP,W?BE? + JUMP ?CND8 +?CCL22: SET 'TMP,W?BE +?CND8: GET TMP,3 >DATA + ZERO? SHORT /?CCL28 + GET DATA,2 >TMP + JUMP ?CND26 +?CCL28: GET DATA,3 >TMP +?CND26: ZERO? TMP \?CCL25 + CALL PARSER-ERROR,0,PARSER-ERROR-TMNOUN + RSTACK +?CCL25: CALL GET-SYNTAX,TMP,1,1 >TMP + ZERO? TMP \?CCL30 + CALL PARSER-ERROR,0,PARSER-ERROR-NOUND + RSTACK +?CCL30: ZERO? N1 /?PRD35 + PUSH N1 + JUMP ?PEN33 +?PRD35: POP DATA-STACK >N1 + PUSH N1 +?PEN33: CALL DETERMINE-OBJ,STACK,1 >OBJ1 + ZERO? OBJ1 \?CCL32 + CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,N1 + RSTACK +?CCL32: PUT PARSE-RESULT,5,OBJ1 + GET TMP,0 + PUT PARSE-RESULT,4,STACK + RTRUE + + + .FUNCT RED-SBNA:ANY:0:2,N,TYP + CALL EXCH-4-5-Q,RED-SNBA,N,TYP + RSTACK + + + .FUNCT RED-SNBA:ANY:0:2,N,TYP,OK,ADJ,VERB,X,?TMP1 + GET PARSE-RESULT,1 >VERB + POP DATA-STACK >ADJ + ADD WORD-FLAG-TABLE,2 >?TMP1 + GET WORD-FLAG-TABLE,0 + INTBL? VERB,?TMP1,STACK,132 >X \?CCL6 + GET X,1 + JUMP ?CND4 +?CCL6: PUSH FALSE-VALUE +?CND4: BTST STACK,1024 \?CCL3 + POP DATA-STACK + EQUAL? TRUE-VALUE,STACK /?CND1 + SET 'OK,TRUE-VALUE + JUMP ?CND1 +?CCL3: POP DATA-STACK + EQUAL? TRUE-VALUE,STACK \?CND1 + SET 'OK,TRUE-VALUE +?CND1: ZERO? OK /FALSE + CALL2 DETERMINE-SUBJ,VERB + ZERO? STACK /FALSE + GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD24 + PUSH ?TMP1 + JUMP ?PEN22 +?PRD24: GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,3 + GET STACK,4 +?PEN22: BTST STACK,32768 /?CCL19 + GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD27 + PUSH ?TMP1 + JUMP ?PEN25 +?PRD27: GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,3 + GET STACK,4 +?PEN25: BAND STACK,256 + BAND STACK,32767 + ZERO? STACK \FALSE +?CCL19: CALL DO-PMEM-ALLOC,4,NOUN-PHRASE-MIN-LENGTH >X + PUT X,1,1 + PUT X,3,INTADJ + PUT PARSE-RESULT,6,X + PUT PARSE-RESULT,11,ADJ + RETURN PARSE-RESULT + + + .FUNCT RED-SBNP:ANY:0:2,N,TYP + CALL EXCH-4-5-Q,RED-SNBP,N,TYP + RSTACK + + + .FUNCT RED-SNBP:ANY:0:2,N,TYP,OK,PP,VERB,X,?TMP1 + GET PARSE-RESULT,1 >VERB + POP DATA-STACK >PP + ADD WORD-FLAG-TABLE,2 >?TMP1 + GET WORD-FLAG-TABLE,0 + INTBL? VERB,?TMP1,STACK,132 >X \?CCL6 + GET X,1 + JUMP ?CND4 +?CCL6: PUSH FALSE-VALUE +?CND4: BTST STACK,1024 \?CCL3 + POP DATA-STACK + EQUAL? TRUE-VALUE,STACK /?CND1 + SET 'OK,TRUE-VALUE + JUMP ?CND1 +?CCL3: POP DATA-STACK + EQUAL? TRUE-VALUE,STACK \?CND1 + SET 'OK,TRUE-VALUE +?CND1: ZERO? OK /FALSE + CALL2 DETERMINE-SUBJ,VERB + ZERO? STACK /FALSE + GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD25 + PUSH ?TMP1 + JUMP ?PEN23 +?PRD25: GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,3 + GET STACK,4 +?PEN23: BTST STACK,32768 /?CCL20 + GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD28 + PUSH ?TMP1 + JUMP ?PEN26 +?PRD28: GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,3 + GET STACK,4 +?PEN26: BAND STACK,256 + BAND STACK,32767 + ZERO? STACK \FALSE +?CCL20: CALL DO-PMEM-ALLOC,4,NOUN-PHRASE-MIN-LENGTH >X + PUT X,1,1 + PUT X,3,INTPP + PUT PARSE-RESULT,6,X + GET PARSE-RESULT,3 + CALL REDUCE-LOCATION,PP,STACK,2 >OK + ZERO? OK /?CCL31 + PUT PARSE-RESULT,9,OK + RETURN PARSE-RESULT +?CCL31: PUT PARSE-RESULT,9,PP + RETURN PARSE-RESULT + + + .FUNCT RED-SNBAP:ANY:0:2,N,TYP,OK,ADJ,PP,VERB,X,?TMP1 + GET PARSE-RESULT,1 >VERB + POP DATA-STACK >PP + POP DATA-STACK >ADJ + ADD WORD-FLAG-TABLE,2 >?TMP1 + GET WORD-FLAG-TABLE,0 + INTBL? VERB,?TMP1,STACK,132 >X \?CCL6 + GET X,1 + JUMP ?CND4 +?CCL6: PUSH FALSE-VALUE +?CND4: BTST STACK,1024 \?CCL3 + POP DATA-STACK + EQUAL? TRUE-VALUE,STACK /?CND1 + SET 'OK,TRUE-VALUE + JUMP ?CND1 +?CCL3: POP DATA-STACK + EQUAL? TRUE-VALUE,STACK \?CND1 + SET 'OK,TRUE-VALUE +?CND1: ZERO? OK /FALSE + CALL2 DETERMINE-SUBJ,VERB + ZERO? STACK /FALSE + GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD25 + PUSH ?TMP1 + JUMP ?PEN23 +?PRD25: GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,3 + GET STACK,4 +?PEN23: BTST STACK,32768 /?CCL20 + GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD28 + PUSH ?TMP1 + JUMP ?PEN26 +?PRD28: GET PARSE-RESULT,5 + GET STACK,4 + GET STACK,2 + GET STACK,3 + GET STACK,4 +?PEN26: BAND STACK,256 + BAND STACK,32767 + ZERO? STACK \FALSE +?CCL20: CALL DO-PMEM-ALLOC,4,4 >X + PUT X,1,1 + PUT X,3,INTPP + SET 'OK,X + PUT PARSE-RESULT,6,OK + GET PARSE-RESULT,3 + CALL REDUCE-LOCATION,PP,STACK,2 >OK + ZERO? OK /?CCL31 + PUT PARSE-RESULT,9,OK + JUMP ?CND29 +?CCL31: GET PP,2 + CALL2 DETERMINE-OBJ,STACK >OK + ZERO? OK /?CND32 + PUT PP,2,OK + PUTB PP,1,PMEM-TYPE-LOCATION +?CND32: PUT PARSE-RESULT,9,PP +?CND29: PUT PARSE-RESULT,11,ADJ + RETURN PARSE-RESULT + + + .FUNCT P-PP-OBJ:ANY:0:0,TMP + GET PARSE-RESULT,9 >TMP + ZERO? TMP /FALSE + GETB TMP,1 + EQUAL? STACK,6 \FALSE + GET TMP,2 >TMP + ZERO? TMP /FALSE + GET TMP,3 + RSTACK + + + .FUNCT P-PP-PREP:ANY:0:0,TMP + GET PARSE-RESULT,9 >TMP + ZERO? TMP /FALSE + GET TMP,1 + RSTACK + + + .FUNCT RED-SQBN:ANY:0:2,N,TYP,?TMP1 + GET PARSE-RESULT,1 >?TMP1 + POP DATA-STACK + CALL DETERMINE-SUBJ,?TMP1,TRUE-VALUE,STACK + ZERO? STACK /FALSE + RETURN PARSE-RESULT + + + .FUNCT RED-BE:ANY:0:2,N,TYP,E + EQUAL? N,1 \TRUE + POP DATA-STACK >E + EQUAL? W?BE,E \FALSE + RETURN E + + + .FUNCT RED-NOT:ANY:0:2,N,TYP,E + EQUAL? N,1 \TRUE + POP DATA-STACK >E + EQUAL? W?NOT,E \FALSE + RETURN E + + + .FUNCT RED-CANDO:ANY:0:2,N,TYP,TMP,OBJ,SUBJ,WD,END,?TMP1 + ZERO? N /TRUE + EQUAL? N,1 \?CCL5 + POP DATA-STACK >SUBJ + GET SUBJ,2 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD13 + PUSH ?TMP1 + JUMP ?PEN11 +?PRD13: GET SUBJ,2 + GET STACK,3 + GET STACK,4 +?PEN11: BTST STACK,32768 /?CCL8 + GET SUBJ,2 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD16 + PUSH ?TMP1 + JUMP ?PEN14 +?PRD16: GET SUBJ,2 + GET STACK,3 + GET STACK,4 +?PEN14: BAND STACK,256 + BAND STACK,32767 + ZERO? STACK \FALSE +?CCL8: CALL2 DETERMINE-OBJ,SUBJ >OBJ + ZERO? OBJ \?CCL19 + CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,SUBJ + RSTACK +?CCL19: GET OBJ,1 + EQUAL? STACK,1 \FALSE + GET OBJ,3 + FSET? STACK,PERSONBIT \FALSE + PUT PARSE-RESULT,13,OBJ + RTRUE +?CCL5: POP DATA-STACK >SUBJ + CALL2 PMEM?,SUBJ + ZERO? STACK /?CCL26 + POP DATA-STACK + GET PARSE-RESULT,16 + BOR PARSE-NOT,STACK + PUT PARSE-RESULT,16,STACK + JUMP ?CND24 +?CCL26: EQUAL? TRUE-VALUE,SUBJ /?CND27 + GET PARSE-RESULT,16 + BOR PARSE-NOT,STACK + PUT PARSE-RESULT,16,STACK +?CND27: POP DATA-STACK >SUBJ + EQUAL? N,3 \?CND24 + PUT PARSE-RESULT,14,SUBJ +?CND24: POP DATA-STACK >TMP + EQUAL? N,3 \?CCL33 + SET 'SUBJ,TMP + GET PARSE-RESULT,14 >TMP + JUMP ?CND31 +?CCL33: GET PARSE-RESULT,16 + BOR PARSE-QUESTION,STACK + PUT PARSE-RESULT,16,STACK + PUT PARSE-RESULT,14,TMP +?CND31: GET TMP,4 >?TMP1 + ZERO? ?TMP1 /?PRD42 + PUSH ?TMP1 + JUMP ?PEN40 +?PRD42: GET TMP,3 + GET STACK,4 +?PEN40: BTST STACK,32768 /?PRD37 + GET TMP,4 >?TMP1 + ZERO? ?TMP1 /?PRD45 + PUSH ?TMP1 + JUMP ?PEN43 +?PRD45: GET TMP,3 + GET STACK,4 +?PEN43: BAND STACK,1 + BAND STACK,32767 + ZERO? STACK \?CND34 +?PRD37: GET TMP,3 >OBJ + ZERO? OBJ /?CND34 + SET 'TMP,OBJ +?CND34: GET TMP,3 + GET STACK,2 >TMP + ZERO? TMP \?CCL48 + CALL PARSER-ERROR,0,PARSER-ERROR-TMNOUN + RSTACK +?CCL48: CALL GET-SYNTAX,TMP,1,1 >TMP + ZERO? TMP \?CCL50 + CALL PARSER-ERROR,0,PARSER-ERROR-NOUND + RSTACK +?CCL50: CALL DETERMINE-OBJ,SUBJ,1 >OBJ + ZERO? OBJ \?CCL52 + CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,SUBJ + RSTACK +?CCL52: PUT PARSE-RESULT,13,OBJ + PUT PARSE-RESULT,15,TMP + EQUAL? N,3 /TRUE + POP DATA-STACK >TMP + EQUAL? TRUE-VALUE,TMP \?CCL57 + PUSH 0 + JUMP ?CND55 +?CCL57: PUSH TMP +?CND55: PUT PARSE-RESULT,10,STACK + EQUAL? TMP,W?WHAT,W?WHO \TRUE + INTBL? W?PERIOD,TLEXV,P-LEN,132 >SUBJ /?BOGUS60 +?BOGUS60: ZERO? SUBJ \?CND61 + INTBL? W?THEN,TLEXV,P-LEN,132 >SUBJ /?CND61 +?CND61: ZERO? SUBJ \?CND64 + INTBL? W??,TLEXV,P-LEN,132 >SUBJ /?CND64 +?CND64: ZERO? SUBJ \?CND67 + SUB P-LEN,1 + MUL STACK,4 + ADD TLEXV,STACK >SUBJ +?CND67: SET 'END,4 +?PRG69: GET SUBJ,0 >WD + EQUAL? TMP,WD /TRUE + GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD80 + PUSH ?TMP1 + JUMP ?PEN78 +?PRD80: GET WD,3 + GET STACK,4 +?PEN78: BTST STACK,32768 /?CCL75 + GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD83 + PUSH ?TMP1 + JUMP ?PEN81 +?PRD83: GET WD,3 + GET STACK,4 +?PEN81: BAND STACK,1 + BAND STACK,32767 + ZERO? STACK /?CCL75 + ADD SUBJ,4 + ICALL INSERT-WHAT,TMP,STACK + RTRUE +?CCL75: GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD90 + PUSH ?TMP1 + JUMP ?PEN88 +?PRD90: GET WD,3 + GET STACK,4 +?PEN88: BTST STACK,32768 /?CCL85 + GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD93 + PUSH ?TMP1 + JUMP ?PEN91 +?PRD93: GET WD,3 + GET STACK,4 +?PEN91: BAND STACK,2048 + BAND STACK,32767 + ZERO? STACK /?CCL85 + ADD SUBJ,END + ICALL INSERT-WHAT,TMP,STACK + RTRUE +?CCL85: SUB SUBJ,4 >SUBJ + GRTR? TLEXV,SUBJ \?PRG69 + SET 'END,0 + RTRUE + + + .FUNCT INSERT-WHAT:ANY:2:2,TMP,SUBJ + SUB SUBJ,4 + GET STACK,0 + EQUAL? TMP,STACK /FALSE + SUB SUBJ,P-LEXV + DIV STACK,2 + ICALL INSERT-ADJS-WD,STACK,TMP + INC 'P-OLEN + CALL2 COPY-INPUT,1 + RSTACK + + .ENDSEG + + .ENDI diff --git a/command.zabstr b/command.zabstr new file mode 100644 index 0000000..c618d49 --- /dev/null +++ b/command.zabstr @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + <> BYTE> + + + \ No newline at end of file diff --git a/command.zap b/command.zap new file mode 100644 index 0000000..8d2d2df --- /dev/null +++ b/command.zap @@ -0,0 +1,510 @@ + + + .FUNCT RT-RM-COMMAND-MODULE:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTC TAB + PRINTI "You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: ICALL RT-PRINT-OBJ,RM-COMMAND-MODULE,K-ART-THE + PRINTI ", a long narrow cabin like the inside of a Winnebago packed with instrumentation. At the far end, a chair sits in front of a bank of monitors. The only exit is in the aft wall." + CRLF + RFALSE +?CCL3: EQUAL? CONTEXT,M-BEG \?CCL8 + EQUAL? PRSA,V?SIT \FALSE + EQUAL? PRSO,ROOMS \FALSE + CALL1 RT-COMMAND-MENU + RSTACK +?CCL8: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-MONITORS:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + PRINTC TAB + PRINTR "The monitors glow with data gathered from all over Deepcore." +?CCL5: EQUAL? PRSA,V?SIT \FALSE + CALL1 RT-COMMAND-MENU + RSTACK + + + .FUNCT RT-TH-COMMAND-CHAIR:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + PRINTC TAB + PRINTR "The chair is right in front of the main control panel." +?CCL5: EQUAL? PRSA,V?ENTER,V?SIT \FALSE + CALL1 RT-COMMAND-MENU + RSTACK + + + .FUNCT RT-COMMAND-MENU:ANY:0:0,C,L,ON?,X1,Y1,X2,Y2,?TMP2,?TMP1 + SET 'X1,1 + CALL2 L-PIXELS,4 >Y1 + CALL2 C-PIXELS,16 >X2 + CALL2 L-PIXELS,12 >Y2 + MOUSE-LIMIT -1 + CLEAR -1 + GET 0,18 >?TMP1 + MUL 6,GL-FONT-Y + SUB ?TMP1,STACK + ADD 1,STACK + WINPOS 0,STACK,1 + MUL 6,GL-FONT-Y >?TMP1 + GET 0,17 + WINSIZE 0,?TMP1,STACK + ADD GL-FONT-Y,1 + WINPOS 2,STACK,1 + GET 0,18 >?TMP2 + MUL 7,GL-FONT-Y + SUB ?TMP2,STACK >?TMP1 + GET 0,17 + WINSIZE 2,?TMP1,STACK + WINPOS 7,1,1 + GET 0,18 >?TMP1 + GET 0,17 + WINSIZE 7,?TMP1,STACK + SET 'GL-SL-HERE,FALSE-VALUE +?PRG1: CLEAR 2 + ICALL1 UPDATE-STATUS-LINE + SCREEN 2 + CURSET 1,1 + PRINTI "Main menu" + ICALL CCURSET,4,1 + PRINTI "Emergency" + ICALL CCURSET,4,15 + PRINTC 69 + ICALL CCURSET,5,1 + PRINTI "ROV" + ICALL CCURSET,5,15 + PRINTC 82 + ICALL CCURSET,6,1 + PRINTI "Air" + ICALL CCURSET,6,15 + PRINTC 65 + ICALL CCURSET,7,1 + PRINTI "Power" + ICALL CCURSET,7,15 + PRINTC 80 + ICALL CCURSET,8,1 + PRINTI "Lights" + ICALL CCURSET,8,15 + PRINTC 76 + ICALL CCURSET,9,1 + PRINTI "Life Support" + ICALL CCURSET,9,15 + PRINTC 83 + ICALL CCURSET,10,1 + PRINTI "Pump" + ICALL CCURSET,10,15 + PRINTC 77 + ICALL CCURSET,11,1 + PRINTI "Exit" + ICALL CCURSET,11,15 + PRINTC 88 +?PRG3: SCREEN 0 + SET 'GL-INPUT-TIMEOUT,FALSE-VALUE + INPUT 1,3,RT-STOP-READ >C + ZERO? GL-INPUT-TIMEOUT \?CCL7 + EQUAL? C,K-CLICK1,K-CLICK2 \?CCL10 + CALL MOUSE-INPUT?,2,X1,Y1,X2,Y2 + ZERO? STACK /?CCL13 + CALL2 PIXELS-L,GL-MOUSE-Y >L + EQUAL? L,1 \?CCL16 + SET 'C,101 + JUMP ?REP4 +?CCL16: EQUAL? L,2 \?CCL18 + SET 'C,114 + JUMP ?REP4 +?CCL18: EQUAL? L,3 \?CCL20 + SET 'C,97 + JUMP ?REP4 +?CCL20: EQUAL? L,4 \?CCL22 + SET 'C,112 + JUMP ?REP4 +?CCL22: EQUAL? L,5 \?CCL24 + SET 'C,108 + JUMP ?REP4 +?CCL24: EQUAL? L,6 \?CCL26 + SET 'C,115 + JUMP ?REP4 +?CCL26: EQUAL? L,7 \?CCL28 + SET 'C,109 + JUMP ?REP4 +?CCL28: SET 'C,120 + JUMP ?REP4 +?CCL13: SOUND S-BEEP + JUMP ?PRG3 +?CCL10: LESS? C,65 /?CND29 + GRTR? C,90 /?CND29 + ADD C,32 >C +?CND29: EQUAL? C,101,114,97 /?REP4 + EQUAL? C,112,108,115 /?REP4 + EQUAL? C,109,120 /?REP4 + SOUND S-BEEP + JUMP ?PRG3 +?CCL7: SCREEN 2 + ICALL CCURSET,4,1 + ZERO? ON? /?PRT41 + SET 'ON?,0 + JUMP ?PRE43 +?PRT41: SET 'ON?,1 +?PRE43: ZERO? ON? /?CND39 + HLIGHT K-H-INV +?CND39: PRINTI "Emergency" + HLIGHT K-H-NRM + JUMP ?PRG3 +?REP4: EQUAL? C,101 \?CCL46 + ICALL1 RT-EMERGENCY-MENU + JUMP ?PRG1 +?CCL46: EQUAL? C,114 \?CCL48 + ICALL1 RT-ROV-MENU + JUMP ?PRG1 +?CCL48: EQUAL? C,97 \?CCL50 + ICALL1 RT-AIR-MENU + JUMP ?PRG1 +?CCL50: EQUAL? C,112 \?CCL52 + ICALL1 RT-POWER-MENU + JUMP ?PRG1 +?CCL52: EQUAL? C,108 \?CCL54 + ICALL1 RT-LIGHT-MENU + JUMP ?PRG1 +?CCL54: EQUAL? C,115 \?CCL56 + ICALL1 RT-SUPPORT-MENU + JUMP ?PRG1 +?CCL56: EQUAL? C,109 \?CCL58 + ICALL1 RT-PUMP-MENU + JUMP ?PRG1 +?CCL58: EQUAL? C,120 \?PRG1 + CLEAR -1 + ICALL1 INIT-STATUS-LINE + SCREEN 0 + PRINTC TAB + PRINTR "You get up from the command chair." + + + .FUNCT RT-EMERGENCY-MENU:ANY:0:0,X1,Y1,X2,Y2,C,L + SET 'X1,1 + CALL2 L-PIXELS,4 >Y1 + CALL2 C-PIXELS,25 >X2 + CALL2 L-PIXELS,6 >Y2 + CLEAR 2 + ICALL1 UPDATE-STATUS-LINE + SCREEN 2 + CURSET 1,1 + PRINTI "Emergency menu" + ICALL CCURSET,4,1 + HLIGHT K-H-INV + ZERO? GL-KLAXON-ON /?CCL3 + PRINTI "ON " + JUMP ?CND1 +?CCL3: PRINTI "OFF" +?CND1: HLIGHT K-H-NRM + ICALL CCURSET,4,4 + PRINTI "Emergency klaxons" + ICALL CCURSET,4,24 + PRINTC 75 + HLIGHT K-H-NRM + ICALL CCURSET,5,4 + PRINTI "Exit" + ICALL CCURSET,5,24 + PRINTC 88 +?PRG4: SCREEN 0 + INPUT 1 >C + EQUAL? C,K-CLICK1,K-CLICK2 \?CCL8 + CALL MOUSE-INPUT?,2,X1,Y1,X2,Y2 + ZERO? STACK /?CND6 + CALL2 PIXELS-L,GL-MOUSE-Y >L + EQUAL? L,1 \?CCL13 + SET 'C,107 + JUMP ?CND6 +?CCL13: SET 'C,120 + JUMP ?CND6 +?CCL8: LESS? C,65 /?CND6 + GRTR? C,90 /?CND6 + ADD C,32 >C +?CND6: EQUAL? C,107 \?CCL19 + SCREEN 2 + ICALL CCURSET,4,1 + HLIGHT K-H-INV + ZERO? GL-KLAXON-ON /?PRT23 + SET 'GL-KLAXON-ON,0 + JUMP ?PRE25 +?PRT23: SET 'GL-KLAXON-ON,1 +?PRE25: ZERO? GL-KLAXON-ON /?CCL22 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-KLAXON,STACK + PRINTI "ON " + JUMP ?CND20 +?CCL22: ICALL2 RT-DEQUEUE,RT-I-KLAXON + PRINTI "OFF" +?CND20: HLIGHT K-H-NRM + JUMP ?PRG4 +?CCL19: EQUAL? C,120 /TRUE + SOUND S-BEEP + JUMP ?PRG4 + + + .FUNCT RT-ROV-MENU:ANY:0:0 + CLEAR 2 + ICALL1 UPDATE-STATUS-LINE + SCREEN 2 + CURSET 1,1 + PRINTI "R.O.V. menu" + SCREEN 0 + INPUT 1 + RTRUE + + + .FUNCT RT-AIR-MENU:ANY:0:0 + CLEAR 2 + ICALL1 UPDATE-STATUS-LINE + SCREEN 2 + CURSET 1,1 + PRINTI "Breathing Mix menu" + ICALL CCURSET,4,1 + PRINTI "Oxygen: " + ICALL RT-PRINT-FLOAT,GL-OXYGEN-QTY,K-OXYGEN-FACTOR + PRINTI "% - " + ICALL RT-GAS-LEVEL-MSG,GL-OXYGEN-QTY,K-OXY-LOW-1,K-OXY-HIGH-1,K-OXY-NOM + PRINTI " +Carbon dioxide: " + ICALL RT-PRINT-FLOAT,GL-CO2-QTY,K-CO2-FACTOR + PRINTI "% - " + ICALL RT-GAS-LEVEL-MSG,GL-CO2-QTY,-1,K-CO2-HIGH-1,K-CO2-NOM + PRINTI " +Nitrogen: " + ICALL RT-PRINT-FLOAT,GL-NITROGEN-QTY,K-NITROGEN-FACTOR + PRINTI "% - " + ICALL RT-GAS-LEVEL-MSG,GL-NITROGEN-QTY,K-NIT-LOW-1,K-NIT-HIGH-1,K-NIT-NOM + PRINTI " +Helium: " + ICALL RT-PRINT-FLOAT,GL-HELIUM-QTY,K-HELIUM-FACTOR + PRINTI "% +" + SCREEN 0 + INPUT 1 + RTRUE + + + .FUNCT RT-GAS-LEVEL-MSG:ANY:4:4,QTY,LOW,HIGH,NOM + GRTR? QTY,LOW /?CCL3 + PRINTI "low" + RTRUE +?CCL3: LESS? QTY,HIGH /?CCL5 + PRINTI "high" + RTRUE +?CCL5: EQUAL? QTY,NOM \?CCL7 + PRINTI "nominal" + RTRUE +?CCL7: LESS? QTY,NOM \?CCL9 + PRINTI "less than nominal" + RTRUE +?CCL9: PRINTI "more than nominal" + RTRUE + + + .FUNCT RT-POWER-MENU:ANY:0:0 + CLEAR 2 + ICALL1 UPDATE-STATUS-LINE + SCREEN 2 + CURSET 1,1 + PRINTI "Power menu" + SCREEN 0 + INPUT 1 + RTRUE + + + .FUNCT RT-LIGHT-MENU:ANY:0:0 + CLEAR 2 + ICALL1 UPDATE-STATUS-LINE + SCREEN 2 + CURSET 1,1 + PRINTI "Lighting menu" + SCREEN 0 + INPUT 1 + RTRUE + + + .FUNCT RT-SUPPORT-MENU:ANY:0:0,X1,Y1,X2,Y2,C,L + SET 'X1,1 + CALL2 L-PIXELS,4 >Y1 + CALL2 C-PIXELS,28 >X2 + CALL2 L-PIXELS,9 >Y2 + CLEAR 2 + ICALL1 UPDATE-STATUS-LINE + SCREEN 2 + CURSET 1,1 + PRINTI "Life support menu" + ICALL CCURSET,4,1 + HLIGHT K-H-INV + ZERO? GL-SCRUBBERS-ON /?CCL3 + PRINTI "ON " + JUMP ?CND1 +?CCL3: PRINTI "OFF" +?CND1: HLIGHT K-H-NRM + ICALL CCURSET,4,4 + PRINTI "CO2 scrubbers" + ICALL CCURSET,4,27 + PRINTC 83 + ICALL CCURSET,5,1 + HLIGHT K-H-INV + ZERO? GL-HEATERS-ON /?CCL6 + PRINTI "ON " + JUMP ?CND4 +?CCL6: PRINTI "OFF" +?CND4: HLIGHT K-H-NRM + ICALL CCURSET,5,4 + PRINTI "Heaters" + ICALL CCURSET,5,27 + PRINTC 72 + ICALL CCURSET,6,1 + HLIGHT K-H-INV + PRINTI "ON " + HLIGHT K-H-NRM + ICALL CCURSET,6,4 + PRINTI "Helium de-scramblers" + ICALL CCURSET,6,27 + PRINTC 68 + ICALL CCURSET,7,1 + HLIGHT K-H-INV + PRINTI "ON " + HLIGHT K-H-NRM + ICALL CCURSET,7,4 + PRINTI "De-humidifiers" + ICALL CCURSET,7,27 + PRINTC 77 + HLIGHT K-H-NRM + ICALL CCURSET,8,4 + PRINTI "Exit" + ICALL CCURSET,8,27 + PRINTC 88 + ICALL CCURSET,4,50 + PRINTI "Interior temp:" + ICALL CCURSET,5,50 + ICALL RT-PRINT-FLOAT,GL-DEEPCORE-TEMP,K-TEMP-FACTOR + PRINTI " deg. F" +?PRG7: SCREEN 0 + INPUT 1 >C + EQUAL? C,K-CLICK1,K-CLICK2 \?CCL11 + CALL MOUSE-INPUT?,2,X1,Y1,X2,Y2 + ZERO? STACK /?CND9 + CALL2 PIXELS-L,GL-MOUSE-Y >L + EQUAL? L,1 \?CCL16 + SET 'C,115 + JUMP ?CND9 +?CCL16: EQUAL? L,2 \?CCL18 + SET 'C,104 + JUMP ?CND9 +?CCL18: EQUAL? L,3 \?CCL20 + SET 'C,100 + JUMP ?CND9 +?CCL20: EQUAL? L,4 \?CCL22 + SET 'C,109 + JUMP ?CND9 +?CCL22: SET 'C,120 + JUMP ?CND9 +?CCL11: LESS? C,65 /?CND9 + GRTR? C,90 /?CND9 + ADD C,32 >C +?CND9: EQUAL? C,115 \?CCL28 + ZERO? GL-SCRUBBERS-ON /?PRT29 + SET 'GL-SCRUBBERS-ON,0 + JUMP ?PRE31 +?PRT29: SET 'GL-SCRUBBERS-ON,1 +?PRE31: SCREEN 2 + ICALL CCURSET,4,1 + HLIGHT K-H-INV + ZERO? GL-SCRUBBERS-ON /?CCL34 + PRINTI "ON " + JUMP ?CND32 +?CCL34: PRINTI "OFF" +?CND32: HLIGHT K-H-NRM + JUMP ?PRG7 +?CCL28: EQUAL? C,104 \?CCL36 + ZERO? GL-HEATERS-ON /?PRT37 + SET 'GL-HEATERS-ON,0 + JUMP ?PRE39 +?PRT37: SET 'GL-HEATERS-ON,1 +?PRE39: SCREEN 2 + ICALL CCURSET,5,1 + HLIGHT K-H-INV + ZERO? GL-HEATERS-ON /?CCL42 + PRINTI "ON " + JUMP ?CND40 +?CCL42: PRINTI "OFF" +?CND40: HLIGHT K-H-NRM + JUMP ?PRG7 +?CCL36: EQUAL? C,100 /?PRG7 + EQUAL? C,109 /?PRG7 + EQUAL? C,120 /TRUE + SOUND S-BEEP + JUMP ?PRG7 + + + .FUNCT RT-PUMP-MENU:ANY:0:0,X1,Y1,X2,Y2,C,L + SET 'X1,1 + CALL2 L-PIXELS,4 >Y1 + CALL2 C-PIXELS,24 >X2 + CALL2 L-PIXELS,6 >Y2 + CLEAR 2 + ICALL1 UPDATE-STATUS-LINE + SCREEN 2 + CURSET 1,1 + PRINTI "Pump and compressor menu" + ICALL CCURSET,4,1 + HLIGHT K-H-INV + ZERO? GL-WATER-PUMP-ON /?CCL3 + PRINTI "ON " + JUMP ?CND1 +?CCL3: PRINTI "OFF" +?CND1: HLIGHT K-H-NRM + ICALL CCURSET,4,4 + PRINTI "Fresh water pumps" + ICALL CCURSET,4,23 + PRINTC 80 + HLIGHT K-H-NRM + ICALL CCURSET,5,4 + PRINTI "Exit" + ICALL CCURSET,5,23 + PRINTC 88 +?PRG4: SCREEN 0 + INPUT 1 >C + EQUAL? C,K-CLICK1,K-CLICK2 \?CCL8 + CALL MOUSE-INPUT?,2,X1,Y1,X2,Y2 + ZERO? STACK /?CND6 + CALL2 PIXELS-L,GL-MOUSE-Y >L + EQUAL? L,1 \?CCL13 + SET 'C,112 + JUMP ?CND6 +?CCL13: SET 'C,120 + JUMP ?CND6 +?CCL8: LESS? C,65 /?CND6 + GRTR? C,90 /?CND6 + ADD C,32 >C +?CND6: EQUAL? C,112 \?CCL19 + SCREEN 2 + ICALL CCURSET,4,1 + HLIGHT K-H-INV + ZERO? GL-WATER-PUMP-ON /?PRT23 + SET 'GL-WATER-PUMP-ON,0 + JUMP ?PRE25 +?PRT23: SET 'GL-WATER-PUMP-ON,1 +?PRE25: ZERO? GL-WATER-PUMP-ON /?CCL22 + PRINTI "ON " + JUMP ?CND20 +?CCL22: PRINTI "OFF" +?CND20: HLIGHT K-H-NRM + JUMP ?PRG4 +?CCL19: EQUAL? C,120 /TRUE + SOUND S-BEEP + JUMP ?PRG4 + + + .FUNCT RT-TH-DESCRAMBLER-CONTROL-BOX:ANY:0:1,CONTEXT + RFALSE + + .ENDI diff --git a/command.zil b/command.zil new file mode 100644 index 0000000..0e8afe3 --- /dev/null +++ b/command.zil @@ -0,0 +1,775 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : COMMAND.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:43:42 $" +; "rev : $Revision: 1.9 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Miscellaneous" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + +;"---------------------------------------------------------------------------" +; "RM-COMMAND-MODULE" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + ( + + + > + + ) + > + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-MONITORS" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + ( + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-COMMAND-CHAIR" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + ( + + ) + > +> + +) X1 Y1 X2 Y2) + + > + > + > + + + + + + ; "Text window" + <* 6 ,GL-FONT-Y>>> 1> + > + + ; "Status line -- Already defined." +; +; > + + ; "Menu window" + 1> + <* 7 ,GL-FONT-Y>> > + + + > + + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + > + > + + + + > + + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + (T + + ) + > + + ) + (T + + ) + > + ) + (T + + + > + > ; "Change to lower case" + ) + > + + + ) + (T + + ) + > + ) + > + ) + (T + + + > + + ) + > + + + ) + > + > + + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + > + > + + + + +> + + + > + > + > + + + + + + + + + + + ) + (T + + ) + > + + + + + + + + + + + + + + > + + + > + + + ) + (T + + ) + > + ) + > + ) + ( + + > + > ; "Change to lower case" + ) + > + + + + + > + > + + ) + (T + + + ) + > + + ) + ( + + ) + (T + + ) + > + > + +> + + + + + + + + + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + +> + + + + ) + ( + + ) + ( + + ) + ( + + ) + (T + + ) + > +> + + + + + + + + + +> + + + + + + + + + +> + + + > + > + > + + + + + + + + + + + ) + (T + + ) + > + + + + + + + + + + ) + (T + + ) + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + > + + + > + + + ) + ( + + ) + ( + + ) + ( + + ) + (T + + ) + > + ) + > + ) + ( + + > + > ; "Change to lower case" + ) + > + + > + + + + + ) + (T + + ) + > + + ) + ( + > + + + + + ) + (T + + ) + > + + ) + () + () + ( + + ) + (T + + ) + > + > + +> + +; <> BYTE> +; <> BYTE> + <> BYTE> + + + > + > + > + + + + + + + + + + + ) + (T + + ) + > + + + + + + +; +; +; + ) + (T + + ) + > +; +; +; +; +; + +; +; +; + ) + (T + + ) + > +; +; +; +; +; + + + + + + + + + > + + + > + + + ) + ; ( + + ) + (T + + ) + > + ) + > + ) + ( + + > + > ; "Change to lower case" + ) + > + + + + + > + + ) + (T + + ) + > + + ) + ; ( + + + + > + + ) + (T + + ) + > + + ) + ( + + ) + (T + + ) + > + > + +> + + +;"---------------------------------------------------------------------------" +; "TH-DESCRAMBLER-CONTROL-BOX" +;"---------------------------------------------------------------------------" + + + +)) + +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/crane.zabstr b/crane.zabstr new file mode 100644 index 0000000..ffd56a7 --- /dev/null +++ b/crane.zabstr @@ -0,0 +1,125 @@ + + <> BYTE> + <> BYTE> + + + + + + + <> BYTE> + + <> BYTE> + BYTE> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/crane.zap b/crane.zap new file mode 100644 index 0000000..83e749e --- /dev/null +++ b/crane.zap @@ -0,0 +1,482 @@ + + + .FUNCT RT-I-CRANE-1:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-CRANE-2,STACK + SET 'GL-CRANE-FALLING?,TRUE-VALUE + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-KLAXON,STACK + SET 'GL-KLAXON-ON,TRUE-VALUE + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-DEEPCORE-TEMP,STACK + PRINTI " Suddenly the lights go out and emergency klaxons start blaring. " + EQUAL? HERE,RM-COMMAND-MODULE \?CCL3 + PRINTI "The control panel starts flashing wildly. Lindsey takes one look out of the front viewport, slaps the intercom button, and screams," + JUMP ?CND1 +?CCL3: PRINTI "A second later Lindsey's voice screams over the intercom," +?CND1: PRINTI " ""Emergency! The umbilicus is falling on top of us. It's coiling up on top of the starboard cylinders. God help us if it's still hooked to the crane. We've got two minutes before whatever's attached to the other end hits us. Everybody get the hell out of the starboard cylinders. Repeat. Evacuate the starboard cylinders immediately."" Emergency lights flicker on. +" + EQUAL? HERE,RM-COMMAND-MODULE \TRUE + MOVE CH-CATFISH,RM-CORRIDOR + PRINTR " Catfish says, ""Shit! The arc-welding kit's in one of the starboard cylinders. If that crane hits us, we're gonna need it for damage control."" He tears out of the cylinder." + + + .FUNCT RT-I-CRANE-2:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-CRANE-3,STACK + PRINTR " A rasping sound grates against your ears as loops of the umbilicus hit Deepcore and strafe the starboard cylinders." + + + .FUNCT RT-I-CRANE-3:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-CRANE-4,STACK + MOVE CH-CATFISH,RM-LADDER-B2 + PRINTR " A grinding crash of metal reverberates throughout Deepcore as some huge piece of equipment strikes one of the cylinders and bounces off." + + + .FUNCT RT-I-CRANE-4:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-CRANE-5,STACK + PRINTI " Lindsey" + EQUAL? HERE,RM-COMMAND-MODULE \?CCL3 + PRINTI " hits the intercom button again and screams," + JUMP ?CND1 +?CCL3: PRINTI "'s voice shrieks over the intercom." +?CND1: PRINTR " ""Here it comes! All hands rig for impact!""" + + + .FUNCT RT-I-CRANE-5:ANY:0:0 + SET 'GL-CRANE-FALLING?,FALSE-VALUE + SET 'GL-CRANE-DOWN?,TRUE-VALUE + MOVE TH-FIRE,RM-SUB-BAY + ADD GL-MOVES,14 + ICALL RT-QUEUE,RT-I-FIRE-1,STACK + SET 'GL-BATTERY-LEAK,TRUE-VALUE + MOVE TH-CRACK,RM-PT-OBS-DECK + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-BATTERY-LEAK,STACK + MOVE CH-COFFEY,RM-COMMAND-MODULE + MOVE CH-CATFISH,RM-DIVE-GEAR-STORAGE + FSET CH-CATFISH,FL-LOCKED + FCLEAR LG-DGS-DOOR,FL-OPEN + MOVE CH-HIPPY,RM-FRESH-WATER-STORAGE + ADD GL-MOVES,30 + ICALL RT-QUEUE,RT-I-HIPPY-RETURN,STACK + EQUAL? HERE,RM-DIVE-GEAR-STORAGE \?CCL3 + PRINTI " Catfish rushes in, slamming the door behind him. He starts rummaging around in his locker. ""I've got to find the arc-welder,"" he yells. +" + JUMP ?CND1 +?CCL3: ADD GL-MOVES,4 + ICALL RT-QUEUE,RT-I-CATFISH-TRAPPED,STACK +?CND1: PRINTI " The inside of your head explodes as the crane slams into Deepcore with the impact of a hundred sticks of dynamite. The crane crashes into the starboard cylinders at an angle, toppling Deepcore almost over onto its side. You collide with the starboard bulkhead as the floor tilts crazily below your feet. Then you're thrown to the deck as the crane shears off the top of two aft cylinders and the rest of the rig crashes back onto the ocean floor with a shuddering jolt. +" + EQUAL? HERE,RM-COMMAND-MODULE \?CCL6 + PRINTR " Coffey saunters into the command module, looking unconcerned about the chaos that surrounds him. Lindsey looks up at you and says, ""I know we have our differences, Bud. But you're the one in command here, and I'll do whatever you tell me to.""" +?CCL6: EQUAL? HERE,RM-DIVE-GEAR-STORAGE \?CCL8 + PRINTR " When your head clears you look around and take stock of your situation. A locker has fallen over, pinning Catfish to the floor. Water is cascading down into the room from the ceiling above." +?CCL8: EQUAL? HERE,RM-SUB-BAY \TRUE + PRINTR " A reserve oxygen cylinder has been knocked loose of its mooring and lies on the floor. You can hear the hiss of the pure oxygen as it escapes into the breathing mix. Suddenly, an exposed wire along the wall begins to spark. The insulation nearby catches fire and the flames start to work their way towards the wooden dive locker." + + + .FUNCT RT-I-HIPPY-RETURN:ANY:0:0 + MOVE CH-HIPPY,HERE + PRINTR " Hippy stumbles into the room, sopping wet and gasping for air. ""I got trapped down in Fresh Water Storage,"" he gasps. ""The doors buckled and the only way out was through the emergency escape hatch in the bottom of the cylinder. But the wheel was jammed and I couldn't turn it. I had just given myself up for dead, when suddenly the wheel started turning all by itself! I was pretty spooked, but I didn't sit around to figure it out. I opened the hatch and swam over to the MoonPool. But just as I came out of the cylinder, I saw this...shape...disappear off towards the trench.""" + + + .FUNCT RT-I-KLAXON:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-KLAXON,STACK + FSET? HERE,FL-WATER /FALSE + PRINTR " The klaxons continue to blare in your ears." + + + .FUNCT RT-I-BATTERY-LEAK:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-BATTERY-LEAK,STACK + FSET? TH-PT-BILGE-BUTTON,FL-ON \?CCL3 + GRTR? GL-WATER-LEVEL,0 \FALSE + DEC 'GL-WATER-LEVEL + RFALSE +?CCL3: IGRTR? 'GL-WATER-LEVEL,19 \?CCL7 + EQUAL? HERE,RM-PT-BATTERY-ROOM \?CCL10 + PRINTI " Slowly, the water level rises until it encases the base of the huge powercels. Suddenly, everything goes dark and you hear all Deepcore's machinery grind to a halt. You see a few blue flashes below the water level, and then everything becomes very still. With" + JUMP ?CND8 +?CCL10: FSET? HERE,FL-WATER \?CCL12 + FSET? HERE,FL-INDOORS /?CND8 + PRINTI " You glance back at Deepcore and see all the lights flicker out. You realize immediately that something has shorted out the powercels in the battery room. You swim back to investigate, emerge into the MoonPool, and try to make your way down to the battery room. But with" + JUMP ?CND8 +?CCL12: PRINTI " Suddenly, everything goes dark and you hear all of Deepcore's machinery grind to a halt. In the eerie silence that follows, you realize that something has shorted out the powercels in the battery room. With" +?CND8: PRINTI " no power to maintain the temperature and the air supply, the end comes much more quickly than you would have expected. +" + CALL1 RT-END-OF-GAME + RSTACK +?CCL7: EQUAL? HERE,RM-PT-BATTERY-ROOM \FALSE + PRINTI " The pool of water" + GRTR? GL-WATER-LEVEL,17 \?CCL19 + PRINTR " will reach the battery cases within seconds. If it does, all will be lost." +?CCL19: GRTR? GL-WATER-LEVEL,10 \?CCL21 + PRINTR " is rising rapidly, and will soon short out the batteries." +?CCL21: GRTR? GL-WATER-LEVEL,5 \?CCL23 + PRINTR ", if it rises much further, will reach the battery cases and short out Deepcore's sole remaining source of emergency power." +?CCL23: PRINTR " is approaching the base of the battery cases." + + + .FUNCT RT-RM-PT-BATTERY-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " This is one of the rooms that contain the huge fuelcells that power Deepcore. The powercels are surrounded by a wire cage that is festooned with signs that warn of the dangers of electricity. The fuelcells are humming ominously - as usual - and an acrid, ozone smell fills the air. The only exit is through the hatch in the aft bulkhead. +" + ZERO? GL-BATTERY-LEAK /FALSE + PRINTI " A stream of water is flowing down the wall from the ceiling " + FSET? TH-PT-BILGE-BUTTON,FL-ON \?CCL8 + ZERO? GL-WATER-LEVEL \?CCL11 + PRINTI "but it is sucked up by the pump as soon as it hits the floor." + JUMP ?CND6 +?CCL11: PRINTI "into the pool of water on the floor. The pool looks like it is getting smaller." + JUMP ?CND6 +?CCL8: LESS? GL-WATER-LEVEL,6 \?CCL13 + PRINTI "into a pool of water on the floor. As the water rises, it approaches the base of the battery cases." + JUMP ?CND6 +?CCL13: LESS? GL-WATER-LEVEL,11 \?CCL15 + PRINTI "into the pool of water. If the water rises much further, it will reach the battery cases and short out Deepcore's sole remaining source of emergency power." + JUMP ?CND6 +?CCL15: LESS? GL-WATER-LEVEL,18 \?CCL17 + PRINTI "into the rapidly rising water." + JUMP ?CND6 +?CCL17: LESS? GL-WATER-LEVEL,20 \?CCL19 + PRINTI "into the pool of water. The water will reach the battery cases within seconds. If it does, all will be lost." + JUMP ?CND6 +?CCL19: PRINTI "into the rapidly rising water below." +?CND6: CRLF + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-POWERCEL:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-POOL-OF-WATER:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-RM-PT-OBS-DECK:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the port observation deck, which has a huge domed plexiglass window where the forward bulkhead should be. The only exit is in the aft bulkhead. +" + ZERO? GL-BATTERY-LEAK /FALSE + PRINTI " There is a fair-sized crack in the starboard bulkhead, up near the ceiling. Water is pouring in through the crack, running down the wall, and disappearing into the room below. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-CRACK:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + ZERO? NOW-PRSI /?CCL5 + EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSO,TH-WELDING-ROD \FALSE + CALL1 RT-WELD-CRACK + RSTACK +?CCL5: EQUAL? PRSA,V?WELD \FALSE + CALL1 RT-WELD-CRACK + RSTACK + + + .FUNCT RT-WELD-CRACK:ANY:0:0 + CALL RT-META-IN?,TH-ARC-WELDER,HERE + ZERO? STACK /?CCL3 + IN? TH-WELDING-ROD,TH-RED-CABLE \?CCL3 + FSET? TH-ARC-WELDER,FL-ON \?CCL8 + GETP TH-BLACK-CABLE,P?OWNER + EQUAL? STACK,LG-WALL \?CCL8 + REMOVE TH-CRACK + SET 'GL-BATTERY-LEAK,FALSE-VALUE + SET 'GL-WATER-LEVEL,0 + ICALL2 RT-DEQUEUE,RT-I-BATTERY-LEAK + FCLEAR TH-PT-BILGE-BUTTON,FL-ON + PRINTR " You hold the rod up to the crack. Sparks immediately start to fly from the tip of the rod and the end starts to glow. Soon, the softened metal begins to melt into the crack, and the stream of water gradually disappears." +?CCL8: PRINTR " You hold the rod up next to the crack, but nothing happens." +?CCL3: EQUAL? PRSA,V?WELD \?CCL12 + PRINT K-HOW-INTEND-MSG + CRLF + RETURN 2 +?CCL12: PRINTR " You hold the rod up next to the crack, but nothing happens." + + + .FUNCT RT-TH-ARC-WELDER:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + PRINTR " The arc welder is a sturdy black box with red and black cables coming out of it. The red cable looks like a jumper cable, except that the clamp at the end is wrapped with thick rubber insulation. The black cable ends in an suction cup that has an exposed electrode in the center. In addition, it has an on/off switch and a power cord." +?CCL5: EQUAL? PRSA,V?TURN-ON \?CCL7 + FSET? TH-ARC-WELDER,FL-ON \?CCL10 + CALL2 RT-ALREADY-MSG,STR?130 + RSTACK +?CCL10: FSET? TH-WELDER-CORD,FL-ON \?CCL12 + FSET TH-ARC-WELDER,FL-ON + PRINTR " The machine begins to hum." +?CCL12: PRINTR " The welder isn't plugged in." +?CCL7: EQUAL? PRSA,V?TURN-OFF \?CCL14 + FSET? TH-ARC-WELDER,FL-ON /?CCL17 + CALL2 RT-ALREADY-MSG,STR?131 + RSTACK +?CCL17: FCLEAR TH-ARC-WELDER,FL-ON + PRINTR " The machine stops humming." +?CCL14: EQUAL? PRSA,V?PLUG-IN \FALSE + FSET? TH-WELDER-CORD,FL-ON \?CCL22 + CALL2 RT-ALREADY-MSG,STR?132 + RSTACK +?CCL22: FSET TH-WELDER-CORD,FL-ON + PRINTR " You plug the power cord into the wall outlet." + + + .FUNCT RT-TH-WELDING-ROD:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR " It's a stiff metal rod, about 14 inches long." + + + .FUNCT RT-TH-RED-CABLE:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + ZERO? NOW-PRSI /?CCL5 + EQUAL? PRSA,V?PUT-IN,V?ATTACH,V?TAKE-WITH \FALSE + EQUAL? PRSO,TH-WELDING-ROD \FALSE + MOVE TH-WELDING-ROD,TH-RED-CABLE + PRINTR " You put the welding rod into the clamp." +?CCL5: EQUAL? PRSA,V?EXAMINE \?CCL13 + PRINTR " The red cable looks like a jumper cable, ending in a large insulated clamp with sharp steel teeth." +?CCL13: EQUAL? PRSA,V?ATTACH \FALSE + EQUAL? PRSI,TH-WELDING-ROD \FALSE + MOVE TH-WELDING-ROD,TH-RED-CABLE + PRINTR " You put the welding rod into the clamp." + + + .FUNCT RT-TH-BLACK-CABLE:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + ZERO? NOW-PRSI \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL7 + PRINTR " The black cable ends in an suction cup that has an exposed electrode in the center." +?CCL7: EQUAL? PRSA,V?ATTACH \FALSE + PUTP TH-BLACK-CABLE,P?OWNER,PRSI + PRINTI " You put the suction cup on" + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE + PRINTR ", pressing hard to ensure a good contact for the electrode." + + + .FUNCT RT-TH-WELDER-SWITCH:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + PRINTR " The power switch is labelled 'ON' and 'OFF'." +?CCL5: EQUAL? PRSA,V?TURN-OFF,V?TURN-ON \FALSE + CALL1 RT-TH-ARC-WELDER + RSTACK + + + .FUNCT RT-TH-WELDER-CORD:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + PRINTR " The power cord will plug into any wall outlet." +?CCL5: EQUAL? PRSA,V?PLUG-IN \FALSE + FSET? TH-WELDER-CORD,FL-ON \?CCL10 + CALL2 RT-ALREADY-MSG,STR?132 + RSTACK +?CCL10: FSET TH-WELDER-CORD,FL-ON + PRINTR " You plug the power cord into the wall outlet." + + + .FUNCT RT-RM-LADDER-D2:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the middle level of ladderwell D. A hatch in the forward bulkhead opens onto the pantry. There is a yellow button here, with a sign underneath it. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-PT-BILGE-BUTTON:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?READ \?CCL5 + PRINTR "It says, ""Port Bilge Pumps.""" +?CCL5: EQUAL? PRSA,V?HIT,V?PUSH \FALSE + PRINTI " You press the button and " + FSET? TH-PT-BILGE-BUTTON,FL-ON \?CCL10 + FCLEAR TH-PT-BILGE-BUTTON,FL-ON + PRINTR "the whirring stops." +?CCL10: GRTR? GL-WATER-LEVEL,0 \?CCL12 + FSET TH-PT-BILGE-BUTTON,FL-ON + PRINTR "hear a distant whirring." +?CCL12: FCLEAR TH-PT-BILGE-BUTTON,FL-ON + PRINTR "hear a distant whirring which stops soon after it starts. There must not be any water in the port bilge." + + + .FUNCT RT-TH-SB-BILGE-BUTTON:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?READ \?CCL5 + PRINTR "It says, ""Starboard Bilge Pumps.""" +?CCL5: EQUAL? PRSA,V?HIT,V?PUSH \FALSE + PRINTR " You press the button and hear a distant whirring which stops soon after it starts. There must not be any water in the starboard bilge." + + + .FUNCT RT-I-CATFISH-TRAPPED:ANY:0:0 + PRINTR " The intercom buzzes. Then you hear a weak voice. ""This is Catfish. I'm trapped under a locker in Dive Gear Storage. The water in here is rising faster than the Johnstown flood. If one of y'all don't get down here pronto, I'm gonnna be singin' with the angels.""" + + + .FUNCT RT-RM-DIVE-GEAR-STORAGE:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " a room that looks like the locker room at the local health club. The walls are lined with floor-to-ceiling lockers, one for each crew member. Your locker is the one next to the exit in the aft bulkhead. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-BUD-GEAR-LOCKER:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-BIG-LOCKER:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?PULL /?CTR4 + EQUAL? PRSA,V?PUSH,V?LIFT,V?MOVE \?CCL5 +?CTR4: EQUAL? PRSI,FALSE-VALUE,ROOMS,TH-HANDS \?CCL10 + PRINTR " You strain at the locker, but you just don't have enough leverage to move it." +?CCL10: EQUAL? PRSI,TH-BARBELL \FALSE + FCLEAR CH-CATFISH,FL-LOCKED + ICALL2 RT-SET-PUPPY,CH-CATFISH + PRINTR " Using the bar as a lever, you strain against the weight of the dive locker. Slowly, it inches up. Just when you realize that the bar is starting to slip from your grasp, Catfish manages to squirm free and roll out of the way. The locker crashes back to the floor. Catfish drags himself unsteadily to his feet and says, ""Thanks a lot, Chief. Nothing seems to be broken. Let's get the hell out of here.""" +?CCL5: EQUAL? PRSA,V?OPEN \FALSE + PRINTR " The doors are jammed shut." + + + .FUNCT RT-GN-LOCKER:ANY:2:2,TBL,FINDER,PTR,N + ADD TBL,8 >PTR + GET TBL,1 >N + EQUAL? HERE,RM-DIVE-GEAR-STORAGE \FALSE + IN? CH-CATFISH,RM-DIVE-GEAR-STORAGE \FALSE + INTBL? TH-BIG-LOCKER,PTR,N \FALSE + PRINTI "[the big locker] +" + RETURN TH-BIG-LOCKER + + + .FUNCT RT-LG-DGS-DOOR:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?OPEN \FALSE + FSET? LG-DGS-DOOR,FL-OPEN /FALSE + FSET? CH-CATFISH,FL-LOCKED \FALSE + FSET LG-DGS-DOOR,FL-OPEN + FCLEAR LG-FLOOD-DOOR,FL-OPEN + SET 'OHERE,HERE + SET 'HERE,RM-DIVE-GEAR-STORAGE + MOVE CH-PLAYER,RM-DIVE-GEAR-STORAGE + PRINTR " You open the door to the cylinder. Inside is a jumbled chaos. Water is streaming down from the ceiling into an ever-rising pool on the floor. Catfish is sitting with his back to the wall, up to his chest in water. His legs are pinned by a huge locker that has fallen over on top of him, and he is turning blue from the cold. + Water gushes out of the chamber when you open the door. It falls to the level below, triggering the automated flood control door that seals the starboard side of Deepcore off from the central core. The hydraulic hose stiffens and the door swings shut. + You step into the chamber. The frigid water comes up to your knees. Catfish looks up at you and grins weakly. ""Howdy, pardner.""" + + + .FUNCT RT-RM-RECREATION-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "step into" +?CND4: PRINTI " the recreation and exercise room. Against the wall is a stationary bicycle. Next to it is a treadmill. In the middle of the room is a lift bench with a barbell resting on the stand. The only exit is to port. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-BARBELL:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?LIFT,V?TAKE \FALSE + IN? TH-WEIGHTS,TH-BARBELL \FALSE + PRINTR " The barbell is too heavy to lift." + + + .FUNCT RT-TH-WEIGHTS:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?TAKE,V?UNWEAR \FALSE + IN? TH-WEIGHTS,TH-BARBELL \FALSE + MOVE TH-WEIGHTS,HERE + PRINTR " You remove the weights from the barbell and lay them on the floor." + + + .FUNCT RT-TH-LIFT-BENCH:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-TREADMILL:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-CYCLE:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-RM-LADDER-B2:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the middle level of ladderwell B. A corridor leads to the port side of Deepcore. A hatch in the starboard bulkhead opens onto the recreation room. Dive gear storage is forward, and aft is the entrance to your own living quarters. +" + RFALSE +?CCL3: EQUAL? CONTEXT,M-ENTERED \?CCL8 + EQUAL? GL-PUPPY,CH-CATFISH \FALSE + LOC TH-ARC-WELDER + ZERO? STACK \FALSE + MOVE TH-ARC-WELDER,CH-CATFISH + MOVE TH-WELDING-ROD,CH-CATFISH + PRINTR " Catfish follows you out, holding up the arc-welder triumphantly. ""Dry as a bone, Boss. It was stowed on a shelf the water hadn't reached yet.""" +?CCL8: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-HYDRAULIC-HOSE:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?CUT \FALSE + EQUAL? PRSI,TH-KNIFE \FALSE + FSET? TH-HYDRAULIC-HOSE,FL-BROKEN \?CCL11 + CALL2 RT-ALREADY-MSG,STR?126 + RSTACK +?CCL11: FSET TH-HYDRAULIC-HOSE,FL-BROKEN + MOVE TH-HYDRAULIC-FLUID,HERE + PRINTR " You cut the hose with the knife. Red fluid pours out onto the floor." + + + .FUNCT RT-TH-HYDRAULIC-FLUID:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-LG-FLOOD-DOOR:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?OPEN \FALSE + FSET? LG-FLOOD-DOOR,FL-OPEN /FALSE + FSET? TH-HYDRAULIC-HOSE,FL-BROKEN /FALSE + PRINTR " The door refuses to budge." + + + .FUNCT RT-TH-KNIFE:ANY:0:1,CONTEXT + RFALSE + + .ENDI diff --git a/crane.zil b/crane.zil new file mode 100644 index 0000000..a9b2620 --- /dev/null +++ b/crane.zil @@ -0,0 +1,1345 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : CRANE.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:44:26 $" +; "rev : $Revision: 1.12 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Crane crash" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + +;"***************************************************************************" +; "CRANE FALLING." +;"***************************************************************************" + + <> BYTE> + <> BYTE> + +> + + > + + ; "Automatic temperature control fails." + > + + + + + ) + (T + + ) + > + + + + ; > + + ) + > + +> + +> + +> + +> + + +> + +> + + + + ) + (T + + ) + > + +> + +> + + + ; "Start fire in sub-bay" + + > + + ; "Start leak into port battery room" + + ; "rab" +; "Duane - we may not need gl-battery-leak. We can test for the loc of + crack instead." + > + + + + + + + > + + + ) + (T + > + ) + > + + + + ) + ( + + ) + ( + + ) + ; ( + + + ) + > + +> + + + +> + +;"***************************************************************************" +; "KLAXON STUFF." +;"***************************************************************************" + + <> BYTE> + +> + > + + ) + > +> + +;"***************************************************************************" +; "FLOODING IN PORT BATTERY ROOM." +;"***************************************************************************" + + <> BYTE> + BYTE> +; BYTE> + +> + ;,GL-PT-BILGE-ON + + + ) + > + + ) + ( + + + ) + ( + > + + ) + > + ) + (T + + ) + > + + + ) + ( + ; "These message need to denote action or change of state, not + description of current state." + + + + ) + ( + + ) + ( + + ) + (T + + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-PT-BATTERY-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + + ;,GL-PT-BILGE-ON + + + ) + (T + + ) + > + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + (T + + ) + > + + ) + > + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-POWERCEL" +;"---------------------------------------------------------------------------" + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "TH-POOL-OF-WATER" +;"---------------------------------------------------------------------------" + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "RM-PT-OBS-DECK" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + > + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-CRACK" +;"---------------------------------------------------------------------------" + + + +)) + + ) + (,NOW-PRSI + + + + ) + > + ) + > + ) + ( + + ) + > +> + + + + > + + ,LG-WALL> + > + + > + + + + + ) + (T + + ) + > + ) + ( + + + ) + (T + + ) + > +> + + + +)) + + ) + ( + + ) + ( + + + ) + ( ;"Is welder plugged in?" + + + ) + (T + + ) + > + ) + ( + > + + ) + (T + + + ) + > + ) + ( + + + ) + (T + + + ) + > + ) + > +> + + + +)) + + ) + ( + + ) + > +> + + + +)) + + ) + (,NOW-PRSI + + + + + ) + > + ) + > + ) + ( + + ) + ( + + + + ) + > + ) + > +> + + + +)) + + ) + (,NOW-PRSI + + ) + ( + + ) + ( + + + ) + > +> + + + +)) + + ) + ( + + ) + ( + + ) + > +> + + + +; "TH-WELDER-CORD flags:" +; " FL-ON = Cord is plugged into an outlet." + +)) + + ) + ( + + ) + ( + + + ) + (T + + + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-LADDER-D2" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-PT-BILGE-BUTTON" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + ( + + + + + ) + ( + + + ) + (T + + + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-SB-BILGE-BUTTON" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + ( + + ) + > +> + +;"***************************************************************************" +; "TRAPPED CATFISH." +;"***************************************************************************" + + + ) + (T + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-DIVE-GEAR-STORAGE" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + + +)) + +> + + + +)) + + ) + ( + ,ROOMS ,TH-HANDS> + + ) + ( + + + + ) + > + ) + ( + + ) + > +> + +> + > + + + + > + + + ) + > +> + + + +)) + + ) + ( + > + ;"Catfish trapped" + > + + + + + + + ; + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-RECREATION-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-BARBELL" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-WEIGHTS" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + + + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-LIFT-BENCH" +;"---------------------------------------------------------------------------" + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "TH-TREADMILL" +;"---------------------------------------------------------------------------" + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "TH-CYCLE" +;"---------------------------------------------------------------------------" + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "RM-LADDER-B2" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + ( + + > + > + ; + + + + ) + > + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-HYDRAULIC-HOSE" +;"---------------------------------------------------------------------------" + + + +; "TH-HYDRAULIC-HOSE flags:" +; " FL-BROKEN = Hose has been cut open." + +)) + + ) + ( + + + + ) + (T + + + + ) + > + ) + > + ) + > +> + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "LG-FLOOD-DOOR" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + > + > + > + + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-KNIFE" +;"---------------------------------------------------------------------------" + + + +)) + +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/deepcore.lbm b/deepcore.lbm new file mode 100644 index 0000000..e416f41 Binary files /dev/null and b/deepcore.lbm differ diff --git a/defs.zil b/defs.zil new file mode 100644 index 0000000..51db35b --- /dev/null +++ b/defs.zil @@ -0,0 +1,2140 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : DEFS.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:43:52 $" +; "rev : $Revision: 1.28 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Default substitutions" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + + + + + + + + + + + a * + A * + a+verb * *:STRING .Y> + A+verb * *:STRING + any * + Any * + the * + the+verb * *:STRING .Y> + The * + The+verb * *:STRING + he * + he+verb * *:STRING .Y> + He * + He+verb * *:STRING + him * + his * + His * + verb * *:STRING + in * + In * + out * + Out * + vw + open * + wn * + comma * + TAB +> + + + (SIZE S:FIX "OPT" CAPACITY C:FIX = 2 + (K-SIZ-SIZ ) + (K-SIZ-CAP ) + ) + (CAPACITY C:FIX "OPT" SIZE S:FIX = 2 + (K-SIZ-SIZ ) + (K-SIZ-CAP ) + ) +> + + + + + + + + + + + + + + + + + + + + + + +> + +> +; "The following is surrounded by quotes so that the atoms PARSE-ACTION and + NOUN-PHRASE-OBJ1 do not get defined." +; " + ,V?MOVE-DIR ,V?RIDE-DIR ,V?ROLL-DIR ,V?SET-DIR + > + ,INTDIR ,LEFT-RIGHT>> + > + >" +> + +> +> + + + > + + + > + + ) + > + > +> + + + > +> + +> +> +> +> +> +> +> +> +> +> +> +> +> +> +> + +> + + + + ) + > + > + + + ) + > + > +> + +) V) + > + > + > + + T + ) + (> + T + ) + ( + T + ) + ; (> + + ) + ( + >> + > + > + + ) + > + ) + > + + + > + + + ) + > + ) + > + > +> + + + > +> + + + + > + ; + ,ROOMS> + > + > + > + + ) + > + + ;"? more?" + > + + + + ) + > + ) + > + > +> + + + > +> + +)) + + > + ,QCONTEXT + ) + (> + + ) + (> + + ) + (T + .ACT> + ) + > + > +> + +> + + + ) + ( + + + ) + ( + + ) + (T + + ) + > + ) + ( + + + ) + ( + + ) + (> + + ) + (T + + ) + > + ) + ( + + + ) + ( + + ) + ( + + > + + ) + ( + + ) + (> + + ) + (>> + + ) + ( + + ) + ( + + > + + ) + ( + + > + + ) + (T + + ) + > + ) + (> + > + + ) + (T + + ) + > + ) + (T + + ) + > + > +> + +)) + + + + ) + > + + + + + + ) + > + ) + (T + + ) + > + + + + + ) + > + + > +> + + + + +> + + + > +> + +> + > + + ) "AUX" WORD VAL) + + + ) + > + "> + + ) + (YZIP + + ) + > + > + + + ) + > + > + + ) + > + >> + > + > + + + > + > + ) + (T + > + ) + > + + + > + + + ) + ( + + > + > + + ) + ( + + ) + ( + + ) + ( + + ) + > + ) + > + ; + > + .VAL + > +> + + + > +> + + + > +> + + >> + + + + ) + > + + > +> + + + > + + ,GL-FONT-Y>> + + ,GL-FONT-Y> <+ 1 <* 27 ,GL-FONT-X>>> + 2> <- <* 27 ,GL-FONT-X>>> + ; "Picture window" + <+ 1 <* 27 ,GL-FONT-X>>> + <- <* 27 ,GL-FONT-X>>> + ) + (T ; "Text window" + ; "Text window" + <+ 1 <* 27 ,GL-FONT-X>>> + ,GL-FONT-Y> + <- <* 27 ,GL-FONT-X>> + > + + + ) + > + + ; "Status line" + + > + + ; "Mouse window" + ,GL-FONT-Y> 1> 1> + > + + ; "Verb/Prep window" + > 1> + <* 3 ,GL-FONT-Y>> <* 10 ,GL-FONT-X>> + + ; "Noun window" + > <+ 1 <* 11 ,GL-FONT-X>>> + <* 3 ,GL-FONT-Y>> <* 15 ,GL-FONT-X>> + + ; "Mouse button window" + 1> + <* 27 ,GL-FONT-X>> + + + > + + ; "Menu dividers" + + + > + > 1>> + > + + > + + > .Y1> + + ) + > + > + + + ; "Picture" + ; + ; + ; >> + > + + ; "Mouse buttons" + + ,GL-SPACE-WIDTH>> + + <- .N>> + + + + + + + + + + + + + + + + + + + + ; "Status line" + + + ,GL-SPACE-WIDTH>> + + <- .N>> + + + + + + > + + > + + <> BYTE> + + + + > + ; "Picture" + ; 0> + + + >> + > + + + ) + > + + + + + + + > + ,GL-SPACE-WIDTH + > + > + + <- .N>> + + + + + + + > + + + > + > + ) + > + > + ) + > + <* 9 ,GL-FONT-X>> 1>> + + + > + ,GL-SPACE-WIDTH + > + > + + <- .N>> + + + > + ; > + 24>> + 60>> + 30>> + + + + ) + > + + + + ) + > + + + + ) + > + + + ;<* 9 ,GL-FONT-X> > 1>> + > + + + + > +> + + <> BYTE> + +; + + + > + > +; + + + > + > +; + + > + > +; + + + > + > + + + + <> + + + + <> + + ; + <> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + > + > + + )) + + + + > + > + ,GL-FONT-Y>> 1>> + .L> + > + ) + > + + + ) + (T + + + + ) + > + > + > + > + > + > + > + + + ) + ( + > + > + + + ) + (T + > + + ) + (T + + ) + > + + + ) + > + > + ) + > + > + ) + ( + > + + ) + (> + + ) + (T + + ) + > + ) + > + ) + > + > + > + > 1>> + 1> + + ) + > + + + + > + ,GL-SPACE-WIDTH + > + > + + <- .N>> + + + ) + (T + + ) + > + + > + + + ) + (T + + ) + > + + > + ) + (T + > + ) + > + > + > + > + + + ) + (T + + > + ) + (T + > + ) + > + + > + > + .N>> + ; + ; + + + + ) + > + ) + > + ) + > + + > + ) + (T + > + ) + > + ) + > + > + ) + > + + + ) + (T + + ) + > + > + > +; + + ) + (T + + ) + > + + > + ) + (T + > + ) + > + > + > + > + + + ) + (T + .P1> + + > + > + > + > + + + ) + (T + > + ) + > + ) + > + .N>> + + + + ) + > + ) + > + ) + > + + > + ) + (T + > + ) + > + ) + > + > + ) + > + + + ) + (T + + ) + > + > + > + + ) + > + > + + > + + + ) + ; () + (> + + > + ) + ( + > + ) + (T + + ) + > + 1>> + + + ) + > + + + > + + + > + > + > + + ) + > + ) + > + ) + > + > + > + > +; ) "AUX" L PTR P Q C) + + + ) + (T + + ) + > + + + > + ; .L> + ; + + + + ; "Place to store LEX output" + >> + + ; "Make string lower case" + > + + + ) + (> !\A> + + > + > + ) + > + > + > + + + + + 1>> ; "Hack - extra word" + > + > + + + > + + + ) + (T + > + ; > + ; + + ) + > + > + > + ) + > + > + ; + + > + ) "AUX" PTR I N OBJ STR) + + ;> + + ) + > + + + ; "Get local global objects" + > + 2>> + + + ) + (T + 1>> + > + + > + ) + > + > + + ; + ; + ; > + + ) + (T + > + + > + ) + (> + > + ) + (T + > + ) + > + + ) + > + > + + > + +; + ) + ( + > + + + ; "Make prep table" + + + + 1> 2>>> + + ; "Check verbs" + + > + + + + ) + ( + + ) + > + + + ; "Update menus" + + + + + ; > + ; + ) + > + > + + + >>> + + + > + + > + ) + > + >> + > + > + > + > + + <> BYTE> + + + > + + > + + + + > + > + BYTE> + > + BYTE> + BYTE> + + > + > + > + > + + > + + > + > + + + + + > + > + > + + ) + (> + + + ) + (T + > + > + > 1>> + > 1>> + > + > + > + > + > + 1>> + 1>> + + ) + > + ) + > + ) + (T + > + 1>> + > + > + 1>> + > + > + ) + > + > + > + > + > + > + 1>> + 1>> + + ) + > + ) + > + > + + ) ACT S? Y X W ;F ;B) + + + + > + > + + + + + + + + > + > + > + + + + + + + + > + + + + + > + > + + > + + + + > + > + + + + + ) + ( + + + ) + > + > + + + ; "Made selection from verb/prep window" + ; "Made selection from object window" + > + ,GL-FONT-Y> + + > + > + > + > + > + 0>> + > + + ) + (T + + + ) + > + ) + > + + > + + + ) + ( + ; "Made selection from button window" + > + > + + + + + ) + (T + + ) + > + ) + (T + + + + ) + ( + + > + + + ) + ( + + > + + + ) + ( + + > + + + ) + (T + + + ) + > + > + > + 0> + > + + > + + > + > + ) + (> + + ) + > + ) + (T + + + ) + > + ) + > + ) + > + ) + (T + + + ) + > + ) + > + + + + ) + ( + .N !\ > + + + + ) + ( ; "Paste" + 0> + > + + + + > + >> + + <- .N 1>> !\ >> + > + .N !\ > + + + ) + > + > .M> + .M> + > + + + > + .N !\,> + + + ) + ( + + 1>> + + > + > + .N !\.> + + + ) + > + .N !\ > + + + + + + + ; "IBM Hack to flush buffer." + + + + > + 1>> + + + > + ; "Player entered direction" + + 1> + > + ) + (T + + + ) + > + + ) + (T + ; "Player entered verb" + + + > + 1> + > + ) + > + > + + ) + > + ; "Make prep table" + + + + 1> 2> + > + > + + ; "Check verbs" + ; + ; > + ; + ; + + ) + ( + + ) + ( + + ) + ( + + ) + > + + ; > + + ; + + ; "Update menus" + + + + + + ; + ; + ; + ; + + > + 0> + + ) + > + ) + > + ) + ( + + ; + + + ) + > + ) + ( + + + + > + > + ; "Player entered first obj/first prep" + + + ) + (T + > + ,K-MENU-MANY-WORD> + > + ) + > + ) + > + + ) + > + + + ,GL-PREP-TBL ,GL-INPUT-PREP1> + 1> 2> + > + > + + + + + + ) + > + ) + ( + + ; "Player entered second prep" + + + ) + > + ) + > + ) + (T + + ) + > + ) + ( ; "Erase/Backup" + + + > + > + > + + + 1> + + > + .N> + > + ; "Update menus" + + ; + + ) + > + + + + + + + + ) + ( + + ) + > + + + > + + + ) + (T + + ) + > + 1> 2> + > + > + + + + + + + + + ) + (T + + ) + > + ) + > + + + + ) + > + > + + ) + (T + + ) + > + ) + ( ; "Page up" + > + > + ,GL-FONT-Y>> + + 1> + + + > + ) + > + ) + (T + > + > + ) + > + + + ) + (> + + ) + > + + ) + ( + > + + ) + (T + + ) + > + ) + ( ; "Page down" + > + > + ,GL-FONT-Y>> + > + > + > + > + ) + (T + > + > + ) + > + > + > + ) + (> + + ) + > + + ) + (T + + ) + > + ) + ( + + > + > + ,GL-FONT-Y>> + + > + + + ) + > + + + ) + ( + + ) + > + > + ) + (T + + ) + > + ) + ( + > + > + > + ,GL-FONT-Y>> + 1>> + + ) + > + > + + + + ) + > + + + ) + > + > + ) + (T + + ) + > + ) + ( + 2>> + > + 0> + > + + > + + > + > + + > + > + ) + (> + + ) + > + ) + (T + + ) + > + ) + > + 2>> + 0> 0> + > + ) + > + + 1>> + + + ) + > + > + + ) + > + ) + > + > + + ) + > + + + + > +> + + + + + + + + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/defs2.zil b/defs2.zil new file mode 100644 index 0000000..07b4035 --- /dev/null +++ b/defs2.zil @@ -0,0 +1,413 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : DEFS2.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 16 Dec 1988 3:02:42 $" +; "rev : $Revision: 1.1 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Default substitutions after PDEFS" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + + + + + +> + + + + > + + > + + + ADJ> + > + ) + ( + + ! ADJ> + > + .X + > + ) + FORM + > + > + ) + (T + 0 + ) + > + ) + (<1? .N> + + +
NOUN> + > + ) + ( + + ! NOUN> + > + .X + > + ) + FORM + > + > + ) + (T + 0 + ) + > + ) + (T + + .X + ) + > + > + .LIST + > + > + (<> + + > + ) + > + + > + + + + ) + (T + + ) + > + + > + > + > + + ;"? maybe use theory from B'cy?" + >> + > + ) + > + ) + (V ADJS-COUNT 1>) + TTBL + (MATCH <>) + ) + ;------------ + > + > + > + + + ) + (> + > + + + ) + (> + + ) + > + > + ) + > + + > + + + ) + > + ) + > + > + + + ) + > + > + > +> + +) + (SZ ) + (NS 0) + ) + + ; "Count the number of objects to print (only FL-SEEN)" + + )) + + + ) + ( + + ) + > + ,FL-SEEN> + + ) + > + > + > + ) + > + > + + + + > + + ) + (T + + + ; > + + + ) + > + ) + > + ) + (T + + + ; > + + + ) + > + + ) + > + + + + > + + + ) + > + ) (REM .NS) OBJ) + + + ) + ( + + ) + > + > ,FL-SEEN> + + + + > + + ) + > + + ) + ( + + ) + > + ) + > + > + > + ) + > + + + ) + (T + + ) + > + > +> + + + + ) + (T + + > + + ) + (T + + ) + > + + ) + > + > + ) "AUX" OTHER) + > + ;"for PUT ALL IN CRATE BUT CANDLE" + > + + + + ) + (T + + ) + > + + > + + + > + > + > + > + > + ) + (T + + + ) + (T + + ) + > + + ) + > + + ) + (T + + ) + > + > +> + +> + > + + > + + > + + + + ) + > + ) + ( + + + ) + > + ) + > + ) + > + !\] CR> + ) + > + > +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/emrgency.lbm b/emrgency.lbm new file mode 100644 index 0000000..2442b22 Binary files /dev/null and b/emrgency.lbm differ diff --git a/endgame.zabstr b/endgame.zabstr new file mode 100644 index 0000000..fc900a8 --- /dev/null +++ b/endgame.zabstr @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/endgame.zap b/endgame.zap new file mode 100644 index 0000000..ad71a5b --- /dev/null +++ b/endgame.zap @@ -0,0 +1,29 @@ + + + .FUNCT RT-TH-WINDOW-BENCH:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?OPEN,V?LIFT \FALSE + FSET TH-WINDOW-BENCH,FL-OPEN + PRINTR " You lift the seat to reveal the red lever underneath." + + + .FUNCT RT-TH-RED-LEVER:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?PULL \?CCL5 + FSET? LG-CHAMBER-DOOR,FL-OPEN /?CCL8 + FSET? CH-ALIEN,FL-BROKEN \?CCL8 + PRINTI " You pull the lever and feel an immediate jolt as the compression chamber pulls away from Deepcore. Through the porthole, you get a glimpse of the crippled Deepcore as you slowly rise through the water. + + [GRAPHIC #22] + + For a long time after that you have no sensation of motion, but then the water through the porthole starts to get lighter as you near the surface. + Suddenly chamber burst through the surface and sunlight floods through the porthole. You feel the motion of the waves for the first time in weeks as the chamber gently rises and falls. Through the porthole you see the Benthic Explorer steaming towards you. + Trumpets sound. Fair young maidens cluster round to look at you admiringly. You have won the game." + CRLF + CALL2 RT-END-OF-GAME,TRUE-VALUE + RSTACK +?CCL8: PRINTR " Nothing happens." +?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It looks an awful lot like a red lever." + + .ENDI diff --git a/endgame.zil b/endgame.zil new file mode 100644 index 0000000..1ec3909 --- /dev/null +++ b/endgame.zil @@ -0,0 +1,92 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : ENDGAME.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:45:00 $" +; "rev : $Revision: 1.3 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Crane crash" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + +;"---------------------------------------------------------------------------" +; "TH-WINDOW-BENCH" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-RED-LEVER" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + > + + > + + + ) + (T + + ) + > + ) + ( + + ) + > +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/find.zabstr b/find.zabstr new file mode 100644 index 0000000..505560c --- /dev/null +++ b/find.zabstr @@ -0,0 +1,80 @@ +)("WORD-FLAGS-IN-TABLE" T)( +"IN-ZILCH" T)) (("PSEUDO-OBJECTS" "DEFS2" #WORD *37202215421*))> + + + + +)> +THINGS + + + + +> + >>
) (T >)>) (< +TYPE? .VAL FIX LVAL GVAL> ) (T >)>) (T ) (T >)>>)>) (T < +FORM NOT >>)>> + + , +FIND-FLAGS-GWIM>>>> +> + + + +> + + + + + + + + + + + + + + >> >>>>> +> +> + + < +DEFINE20 HACK-PSEUDOS (LIST "AUX" (N 0) (CT 0)) > > ATOM> ) ( LIST +> >>) (T )> ) ( ATOM> ) ( LIST> >>) (T )>
0) (<==? .ACT 1 +> > ADJ>) (T ADJ>> <1 .X>!>) FORM>>)> 0) (< +==? .NCT 1> > NOUN>) (T NOUN>> <2 .X>!>) FORM>>)>>) (<1? .N> ) (T <1 .X>)>> .LIST>> (<> >)> ) +(RMGL )) > > +> >)> ) XCT (V < +REST-TO-SLOT ADJS-COUNT 1>)) > >> >> .XCT>> >> >> < +ZGET .TTBL 1> .XCT>> > > > >>>> + > 7>> ,PLURAL-FLAG> ) (T )> )> > > 1> )>>> > > + + \ No newline at end of file diff --git a/find.zap b/find.zap new file mode 100644 index 0000000..2c2715c --- /dev/null +++ b/find.zap @@ -0,0 +1,578 @@ + + .SEGMENT "0" + + + .FUNCT FIND-DESCENDANTS:ANY:2:2,PARENT,FLAGS,F,FOBJ + SET 'F,FINDER + EQUAL? PARENT,GLOBAL-HERE \?CND1 + SET 'PARENT,HERE +?CND1: FIRST? PARENT >FOBJ \TRUE +?PRG6: CALL2 VISIBLE?,FOBJ + ZERO? STACK /?CND8 + BTST FLAGS,8 /?CND10 + BTST FLAGS,1 \?PRF16 + PUSH 1 + JUMP ?PEN14 +?PRF16: PUSH 0 +?PEN14: CALL MATCH-OBJECT,FOBJ,F,STACK + ZERO? STACK /FALSE +?CND10: BTST FLAGS,4 \?CND8 + FIRST? FOBJ \?CND8 + EQUAL? FOBJ,WINNER /?CND8 + FSET? FOBJ,SEARCHBIT \?PRD24 + FSET? FOBJ,OPENBIT /?CCL18 + FSET? FOBJ,TRANSBIT /?CCL18 +?PRD24: FSET? FOBJ,SURFACEBIT \?CND8 +?CCL18: BTST FLAGS,1 \?CCL33 + PUSH 5 + JUMP ?CND31 +?CCL33: PUSH 4 +?CND31: CALL FIND-DESCENDANTS,FOBJ,STACK + ZERO? STACK /FALSE +?CND8: NEXT? FOBJ >FOBJ /?PRG6 + RTRUE + + + .FUNCT EXCLUDED?:ANY:2:2,FOBJ,F,EXC,PHRASE,CT,VEC,VV + GET F,8 >EXC + ZERO? EXC /FALSE + GET EXC,3 >PHRASE + GET PHRASE,1 >CT + ADD PHRASE,6 >VEC +?PRG6: DLESS? 'CT,0 \?CND8 + SET 'VV,FALSE-VALUE + JUMP ?REP7 +?CND8: GET VEC,0 + EQUAL? FOBJ,STACK \?CND10 + SET 'VV,TRUE-VALUE +?REP7: ZERO? VV \TRUE + GET EXC,1 >EXC + ZERO? EXC /FALSE + GET EXC,3 >PHRASE + GET PHRASE,1 >CT + ADD PHRASE,6 >VEC + JUMP ?PRG6 +?CND10: ADD VEC,4 >VEC + JUMP ?PRG6 + + + .FUNCT INVALID-OBJECT?:ANY:1:1,OBJ + RFALSE + + + .FUNCT MATCH-OBJECT:ANY:3:3,FOBJ,F,INCLUDE?,NOUN,ADJS,APP,TB,RES,?TMP1 + GET F,9 >RES + FSET? FOBJ,INVISIBLE /TRUE + GET F,6 >NOUN + EQUAL? NOUN,FALSE-VALUE,W?ONE /?PRD6 + GETPT FOBJ,P?SYNONYM >TB + ZERO? TB /TRUE + PTSIZE TB + DIV STACK,2 + INTBL? NOUN,TB,STACK \TRUE +?PRD6: GET F,7 >ADJS + ZERO? ADJS /?PRD11 + CALL CHECK-ADJS,FOBJ,F,ADJS + ZERO? STACK /TRUE +?PRD11: GET F,5 >ADJS + ZERO? ADJS /?PRD14 + CALL CHECK-ADJS,FOBJ,F,ADJS + ZERO? STACK /TRUE +?PRD14: CALL EXCLUDED?,FOBJ,F + ZERO? STACK \TRUE + GET F,1 + BTST STACK,1 /?CTR2 + CALL2 INVALID-OBJECT?,FOBJ + ZERO? STACK \TRUE +?CTR2: ZERO? INCLUDE? /TRUE + GET F,5 >ADJS + ZERO? ADJS /?CCL24 + GET ADJS,4 >?TMP1 + GETPT FOBJ,P?ADJECTIVE + PTSIZE STACK + DIV STACK,2 + EQUAL? ?TMP1,STACK \?CCL24 + PUT RES,1,1 + PUT RES,2,FALSE-VALUE + PUT RES,4,FOBJ + EQUAL? FOBJ,HERE \FALSE + PUT RES,4,GLOBAL-HERE + RFALSE +?CCL24: GET F,0 >APP + ZERO? APP /?CCL31 + GET F,1 + BTST STACK,1 /?CCL31 + GET RES,1 + ZERO? STACK /?CTR35 + GET F,2 + ZERO? STACK /?CCL36 +?CTR35: CALL ADD-OBJECT,FOBJ,F + RSTACK +?CCL36: CALL TEST-OBJECT,FOBJ,APP,F + ZERO? STACK /FALSE + GET RES,1 + EQUAL? STACK,1 \?CCL43 + GET RES,4 + CALL TEST-OBJECT,STACK,APP,F + ZERO? STACK \?CCL46 + PUT RES,4,FOBJ + EQUAL? FOBJ,HERE \TRUE + PUT RES,4,GLOBAL-HERE + RTRUE +?CCL46: CALL ADD-OBJECT,FOBJ,F + RSTACK +?CCL43: CALL ADD-OBJECT,FOBJ,F + RSTACK +?CCL31: ZERO? APP \?CCL50 + GET F,1 + BTST STACK,1 \?CTR52 + GET F,2 + ZERO? STACK /TRUE +?CTR52: CALL ADD-OBJECT,FOBJ,F + RSTACK +?CCL50: CALL TEST-OBJECT,FOBJ,APP,F + ZERO? STACK /TRUE + CALL ADD-OBJECT,FOBJ,F + RSTACK + + + .FUNCT TEST-OBJECT:ANY:3:3,FOBJ,APP,F,N,NN,?TMP1 + BAND APP,65280 + ZERO? STACK \?CCL3 + BTST APP,128 \?CCL6 + BAND APP,63 + FSET? FOBJ,STACK /FALSE + RTRUE +?CCL6: FSET? FOBJ,APP /TRUE + RFALSE +?CCL3: GET APP,1 + BTST STACK,256 \?CND12 + GET APP,1 + BAND STACK,63 + GETP FOBJ,STACK >?TMP1 + GET APP,2 + EQUAL? ?TMP1,STACK /TRUE + RFALSE +?CND12: GET APP,0 >N +?PRG17: GET APP,N >NN + BTST NN,128 \?CCL21 + BAND NN,63 + FSET? FOBJ,STACK /?CND19 + RTRUE +?CCL21: FSET? FOBJ,NN /TRUE +?CND19: DLESS? 'N,1 \?PRG17 + RFALSE + + + .FUNCT ADD-OBJECT:ANY:2:2,OBJ,F,VEC,NC,DOIT?,SYN,WHICH,?TMP1 + GET F,9 >VEC + SET 'DOIT?,TRUE-VALUE + GET F,3 >SYN + GET F,4 >WHICH + EQUAL? OBJ,HERE \?CND1 + SET 'OBJ,GLOBAL-HERE +?CND1: GET F,2 + ZERO? STACK \?CND3 + ZERO? SYN /?CND3 + GET VEC,1 + EQUAL? 1,STACK \?CND3 + CALL MULTIPLE-EXCEPTION?,OBJ,SYN,WHICH,F + ZERO? STACK /?CCL10 + SET 'DOIT?,FALSE-VALUE + JUMP ?CND3 +?CCL10: GET VEC,4 + CALL MULTIPLE-EXCEPTION?,STACK,SYN,WHICH,F + ZERO? STACK /?CND3 + PUT VEC,4,OBJ + SET 'DOIT?,FALSE-VALUE +?CND3: ZERO? DOIT? /TRUE + GET F,2 + ZERO? STACK /?PRD17 + GET F,3 + ZERO? STACK /?PRD17 + GET F,3 >?TMP1 + GET F,4 + CALL MULTIPLE-EXCEPTION?,OBJ,?TMP1,STACK,F + ZERO? STACK \TRUE +?PRD17: CALL NOT-IN-FIND-RES?,OBJ,VEC >WHICH + ZERO? WHICH /TRUE + GET VEC,1 + ADD 1,STACK + PUT VEC,1,STACK + PUT WHICH,0,OBJ + GET F,2 + EQUAL? STACK,NP-QUANT-A /FALSE + RTRUE + + + .FUNCT NOT-IN-FIND-RES?:ANY:2:3,OBJ,VEC,NO-CHANGE?,CT,SZ,ANS,NVEC,NEW-OBJECT + GET VEC,1 >CT + GET VEC,0 >SZ +?PRG1: ADD VEC,8 >ANS + LESS? CT,1 \?CCL5 + RETURN ANS +?CCL5: GRTR? CT,SZ \?CCL7 + SUB CT,SZ >CT + JUMP ?CND3 +?CCL7: SET 'SZ,CT +?CND3: INTBL? OBJ,ANS,SZ /FALSE + GET VEC,2 >NVEC + ZERO? NVEC /?CCL12 + SET 'VEC,NVEC + SET 'SZ,FIND-RES-MAXOBJ + JUMP ?PRG1 +?CCL12: LESS? SZ,FIND-RES-MAXOBJ \?CCL14 + MUL 2,SZ + ADD ANS,STACK + RSTACK +?CCL14: ZERO? NO-CHANGE? \TRUE + SET 'SZ,FIND-RES-MAXOBJ + CALL DO-PMEM-ALLOC,7,9 >NEW-OBJECT + SET 'NVEC,NEW-OBJECT + PUT VEC,2,NVEC + ADD NVEC,8 + RSTACK + + + .FUNCT EVERYWHERE-VERB?:ANY:0:2,WHICH,SYNTAX,SYN + ASSIGNED? 'WHICH /?CND1 + GET FINDER,4 >WHICH +?CND1: ASSIGNED? 'SYNTAX /?CND3 + GET PARSE-RESULT,3 >SYNTAX +?CND3: EQUAL? WHICH,1 \?CCL7 + GETB SYNTAX,5 >SYN + JUMP ?CND5 +?CCL7: GETB SYNTAX,9 >SYN +?CND5: BTST SYN,128 \FALSE + BTST SYN,64 \TRUE + RFALSE + + + .FUNCT MULTIPLE-EXCEPTION?:ANY:4:4,OBJ,SYNTAX,WHICH,F,L,VB + LOC OBJ >L + GET SYNTAX,0 >VB + EQUAL? OBJ,FALSE-VALUE,ROOMS \?CCL3 + INC 'P-NOT-HERE + RTRUE +?CCL3: CALL EVERYWHERE-VERB?,WHICH,SYNTAX + ZERO? STACK \?CCL5 + CALL2 ACCESSIBLE?,OBJ + ZERO? STACK /TRUE +?CCL5: EQUAL? VB,V?TAKE \?CCL9 + GET F,6 + ZERO? STACK \?CCL9 + EQUAL? WHICH,1 \?CCL9 + FSET? OBJ,TAKEBIT /?CCL15 + FSET? OBJ,TRYTAKEBIT \TRUE +?CCL15: EQUAL? L,WINNER /TRUE + RFALSE +?CCL9: EQUAL? VB,V?DROP \FALSE + IN? OBJ,WINNER \TRUE + RFALSE + + + .FUNCT CHECK-ADJS-THERE?:ANY:1:1,OWNER,TMP + GET OWNER-SR-THERE,1 >TMP + ZERO? TMP /FALSE + INTBL? OWNER,OWNER-SR-THERE+8,TMP /TRUE + RFALSE + + + .FUNCT CHECK-ADJS:ANY:3:3,OBJ,F,ADJS,CNT,TMP,OWNER,ID,VEC,CT,ADJ,FL,OADJS,NUM,?TMP1 + GETP OBJ,P?OWNER >OWNER + GETB ADJS,1 + EQUAL? STACK,2 /?CCL2 + GET ADJS,2 >TMP + ZERO? TMP /?CND1 +?CCL2: SET 'ID,OWNER + LESS? 0,ID \?CCL7 + SET 'ID,OWNER + GRTR? ID,LAST-OBJECT /?CCL7 + EQUAL? OWNER,TMP /?CND1 + EQUAL? OWNER,ROOMS \?CCL14 + GET OWNER-SR-HERE,1 + ZERO? STACK /?CCL17 + GET OWNER-SR-HERE,4 >ID + JUMP ?CND1 +?CCL17: GET OWNER-SR-THERE,1 + ZERO? STACK /FALSE + GET OWNER-SR-THERE,4 >ID + JUMP ?CND1 +?CCL14: GET OWNER-SR-HERE,1 >TMP + ZERO? TMP \?CCL21 + CALL2 CHECK-ADJS-THERE?,OWNER + ZERO? STACK \?CND1 + RFALSE +?CCL21: INTBL? OWNER,OWNER-SR-HERE+8,TMP /?CND1 + CALL2 CHECK-ADJS-THERE?,OWNER + ZERO? STACK \?CND1 + RFALSE +?CCL7: ZERO? OWNER /?CCL28 + GET OWNER-SR-HERE,1 >CNT + ZERO? CNT \?CCL31 + SET 'ID,PLAYER + JUMP ?CND1 +?CCL31: ADD OWNER,2 >TMP + SET 'VEC,OWNER-SR-HERE+8 +?PRG33: DLESS? 'CNT,0 /FALSE + GET VEC,0 >?TMP1 + GET OWNER,0 + INTBL? ?TMP1,TMP,STACK >ID \?CCL39 + GET ID,0 >ID + JUMP ?CND1 +?CCL39: ADD VEC,2 >VEC + JUMP ?PRG33 +?CCL28: LESS? 0,TMP \?CCL41 + GRTR? TMP,LAST-OBJECT /?CCL41 + CALL HELD?,OBJ,TMP + ZERO? STACK \?CND1 + RFALSE +?CCL41: GET OWNER-SR-HERE,1 >TMP + ZERO? TMP /FALSE + LOC OBJ + INTBL? STACK,OWNER-SR-HERE+8,TMP >ID \FALSE +?CND1: EQUAL? ID,0,OBJ /?CND50 + GET F,9 + PUT STACK,3,ID +?CND50: GETB ADJS,1 + EQUAL? STACK,2 /TRUE + ADD ADJS,10 >VEC + GET ADJS,4 >CT + GETPT OBJ,P?ADJECTIVE >OADJS + PTSIZE OADJS + DIV STACK,2 >NUM +?PRG54: DLESS? 'CT,0 /TRUE + GET VEC,CT >ADJ + SET 'ID,ADJ + EQUAL? ADJ,W?NO.WORD /?PRG54 + INTBL? ID,OADJS,NUM /?PRG54 + EQUAL? ID,W?CLOSED,W?SHUT \?CCL63 + FSET? OBJ,OPENBIT \?PRG54 +?CCL63: EQUAL? ID,W?OPEN \FALSE + FSET? OBJ,OPENBIT /?PRG54 + RFALSE + + + .FUNCT SEARCH-IN-LG?:ANY:1:1,OBJ + RFALSE + + + .FUNCT EXCLUDE-HERE-OBJECT?:ANY:0:0 + RFALSE + + + .FUNCT FIND-OBJECTS:ANY:0:3,SEARCH,PARENT,NO-ADJACENT,GLBS,CONT?,N,RES,NEW-OBJECT,LOSING?,FLAG,?PR-FLAG,O,OBJ,?TMP1,?TMP2 + ASSIGNED? 'SEARCH /?CND1 + GET FINDER,4 + EQUAL? 1,STACK \?CCL5 + GET PARSE-RESULT,3 + GETB STACK,5 >SEARCH + JUMP ?CND1 +?CCL5: GET PARSE-RESULT,3 + GETB STACK,9 >SEARCH +?CND1: SET 'CONT?,TRUE-VALUE + GET FINDER,9 >RES + PUT RES,1,0 + PUT RES,2,FALSE-VALUE + ZERO? PARENT /?CCL8 + CALL FIND-DESCENDANTS,PARENT,7 + ZERO? STACK /?CND6 + GET RES,1 + ZERO? STACK \?CND6 +?CCL8: ZERO? PARENT /?CND13 + ZERO? NO-ADJACENT \?CND13 + GET FINDER,5 >GLBS + ZERO? GLBS \?CND13 + CALL DO-PMEM-ALLOC,1,8 >NEW-OBJECT + PUT NEW-OBJECT,2,PARENT + SET 'GLBS,NEW-OBJECT + PUT FINDER,5,GLBS +?CND13: BTST SEARCH,128 \?CND19 + BTST SEARCH,64 /?CND19 + FIRST? GENERIC-OBJECTS \?CND19 + FIRST? GENERIC-OBJECTS >NEW-OBJECT /?PRG25 +?PRG25: CALL MATCH-OBJECT,NEW-OBJECT,FINDER,TRUE-VALUE + ZERO? STACK /?REP26 + NEXT? NEW-OBJECT >NEW-OBJECT /?PRG25 +?REP26: GET RES,1 >CONT? + ZERO? CONT? /?CND19 + EQUAL? CONT?,1 /TRUE + RFALSE +?CND19: SET 'LOSING?,FALSE-VALUE +?PRG35: ZERO? LOSING? \?PRD40 + BAND SEARCH,12 + ZERO? STACK \?CCL38 +?PRD40: ZERO? LOSING? /?CND37 +?CCL38: ZERO? LOSING? \?CTR44 + BTST SEARCH,8 \?CCL45 +?CTR44: SET '?PR-FLAG,6 + JUMP ?CND43 +?CCL45: SET '?PR-FLAG,2 +?CND43: ZERO? LOSING? \?CTR49 + BAND SEARCH,12 + ZERO? STACK /?CCL50 +?CTR49: BOR 1,?PR-FLAG >FLAG + JUMP ?CND48 +?CCL50: BAND ?PR-FLAG,-2 >FLAG +?CND48: ZERO? LOSING? \?CCL55 + BTST SEARCH,4 /?CCL55 + BOR 8,FLAG + JUMP ?CND53 +?CCL55: BAND FLAG,-9 +?CND53: CALL FIND-DESCENDANTS,WINNER,STACK >CONT? +?CND37: ZERO? LOSING? \?CCL59 + BAND SEARCH,3 + ZERO? STACK /?CND58 +?CCL59: ZERO? LOSING? \?CTR63 + BAND SEARCH,3 + ZERO? STACK /?CCL64 +?CTR63: SET '?PR-FLAG,3 + JUMP ?CND62 +?CCL64: SET '?PR-FLAG,2 +?CND62: ZERO? LOSING? \?CTR69 + BTST SEARCH,2 \?CCL70 +?CTR69: BOR 4,?PR-FLAG >FLAG + JUMP ?CND68 +?CCL70: BAND ?PR-FLAG,-5 >FLAG +?CND68: ZERO? LOSING? \?CCL75 + BTST SEARCH,1 /?CCL75 + BOR 8,FLAG + JUMP ?CND73 +?CCL75: BAND FLAG,-9 +?CND73: CALL FIND-DESCENDANTS,HERE,STACK >CONT? +?CND58: GET RES,1 + ZERO? STACK \?CND6 + BTST SEARCH,15 /?CND78 + ZERO? LOSING? \?CND78 + GET TLEXV,0 >GLBS + ZERO? GLBS /?CCL86 + GET GLBS,4 + ZERO? STACK \?CTR85 + GET GLBS,3 + ZERO? STACK /?CCL86 +?CTR85: SET 'LOSING?,TRUE-VALUE + JUMP ?PRG35 +?CCL86: BTST SEARCH,64 \?CND78 + BTST SEARCH,128 \FALSE +?CND78: GETPT HERE,P?GLOBAL >GLBS + ZERO? GLBS /?CND94 + PTSIZE GLBS + DIV STACK,2 >N +?PRG97: DLESS? 'N,0 /?CND94 + GET GLBS,N >O + CALL MATCH-OBJECT,O,FINDER,TRUE-VALUE >CONT? + ZERO? CONT? /?CND94 + FIRST? O \?PRG97 + BTST SEARCH,2 \?PRG97 + CALL2 SEARCH-IN-LG?,O + ZERO? STACK /?PRG97 + CALL FIND-DESCENDANTS,O,FD-INCLUDE? >CONT? + ZERO? CONT? \?PRG97 +?CND94: ZERO? CONT? /?CND111 + CALL1 EXCLUDE-HERE-OBJECT? + ZERO? STACK \?CND111 + CALL MATCH-OBJECT,HERE,FINDER,TRUE-VALUE >CONT? +?CND111: ZERO? CONT? /?CND115 + LOC PLAYER + EQUAL? HERE,STACK /?CND115 + LOC PLAYER + GETP STACK,P?THINGS + ZERO? STACK /?CND115 + LOC PLAYER + CALL TEST-THINGS,STACK,FINDER >CONT? +?CND115: ZERO? CONT? /?CND120 + GETP HERE,P?THINGS + ZERO? STACK /?CND120 + CALL TEST-THINGS,HERE,FINDER >CONT? +?CND120: GET RES,1 + ZERO? STACK /?CND124 + SET 'CONT?,FALSE-VALUE +?CND124: ZERO? CONT? /?CND126 + BTST SEARCH,2 \?CCL130 + PUSH 5 + JUMP ?CND128 +?CCL130: PUSH 1 +?CND128: CALL FIND-DESCENDANTS,GLOBAL-OBJECTS,STACK >CONT? +?CND126: ZERO? CONT? /?CND131 + GET RES,1 + ZERO? STACK \?CND131 + ZERO? NO-ADJACENT \?CND131 + GETP HERE,P?ADJACENT >GLBS + ZERO? GLBS /?CND131 + GETB GLBS,0 >N +?PRG137: GETB GLBS,N + ZERO? STACK /?CCL141 + DEC 'N + GETB GLBS,N + ICALL FIND-OBJECTS,1,STACK,TRUE-VALUE + JUMP ?CND139 +?CCL141: DEC 'N +?CND139: DLESS? 'N,1 \?PRG137 + GET RES,1 + ZERO? STACK /?CND131 + SET 'CONT?,FALSE-VALUE +?CND131: ZERO? CONT? /?CND6 + GET RES,1 + ZERO? STACK \?CND6 + BTST SEARCH,128 \?PRD152 + BTST SEARCH,64 \?CCL147 +?PRD152: GET PARSE-RESULT,1 >?TMP2 + ADD WORD-FLAG-TABLE,2 >?TMP1 + GET WORD-FLAG-TABLE,0 + INTBL? ?TMP2,?TMP1,STACK,132 >O \?CCL157 + GET O,1 + JUMP ?CND155 +?CCL157: PUSH FALSE-VALUE +?CND155: BTST STACK,512 \?CND6 +?CCL147: SET 'OBJ,1 +?PRG158: CALL MATCH-OBJECT,OBJ,FINDER,TRUE-VALUE + ZERO? STACK /?CND6 + IGRTR? 'OBJ,LAST-OBJECT \?PRG158 +?CND6: GET RES,1 + EQUAL? STACK,1 /TRUE + RFALSE + + + .FUNCT TEST-THINGS:ANY:2:2,RM,F,CT,GLBS,N,NOUN,V,TTBL,MATCH,I,?TMP2,?TMP1 + GETP RM,P?THINGS >GLBS + GETB GLBS,0 >N + INC 'GLBS + GET F,5 >CT + ZERO? CT /?CND1 + GET CT,4 >CT +?CND1: GET F,6 >NOUN + GET F,5 + ADD STACK,10 >V + SET 'MATCH,FALSE-VALUE +?PRG3: GET GLBS,1 >TTBL + ZERO? TTBL /?CND5 + ADD TTBL,1 >?TMP1 + GETB TTBL,0 + INTBL? NOUN,?TMP1,STACK \?CND5 + ZERO? CT \?CCL11 + SET 'MATCH,TRUE-VALUE + JUMP ?CND9 +?CCL11: GET GLBS,0 >TTBL + ZERO? TTBL /?CND9 + SET 'I,0 +?PRG13: GET V,I >?TMP2 + ADD TTBL,1 >?TMP1 + GETB TTBL,0 + INTBL? ?TMP2,?TMP1,STACK \?CCL17 + SET 'MATCH,TRUE-VALUE + JUMP ?CND9 +?CCL17: SUB CT,1 + IGRTR? 'I,STACK \?PRG13 +?CND9: ZERO? MATCH /?CND5 + SET 'LAST-PSEUDO-LOC,RM + GET GLBS,2 + PUTP PSEUDO-OBJECT,P?ACTION,STACK + ICALL ADD-OBJECT,PSEUDO-OBJECT,F + RFALSE +?CND5: ADD GLBS,6 >GLBS + DLESS? 'N,1 \?PRG3 + RFALSE + + .ENDSEG + + .ENDI diff --git a/gas-mix.zabstr b/gas-mix.zabstr new file mode 100644 index 0000000..baa83c8 --- /dev/null +++ b/gas-mix.zabstr @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <> BYTE> + + + + + + + + + + + <> BYTE> + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gas-mix.zap b/gas-mix.zap new file mode 100644 index 0000000..9709323 --- /dev/null +++ b/gas-mix.zap @@ -0,0 +1,427 @@ + + + .FUNCT V-$SCRUB:ANY:0:0 + PRINTI "[CO2 scrubbers " + ZERO? GL-SCRUBBERS-ON /?PRT4 + SET 'GL-SCRUBBERS-ON,0 + JUMP ?PRE6 +?PRT4: SET 'GL-SCRUBBERS-ON,1 +?PRE6: ZERO? GL-SCRUBBERS-ON /?CCL3 + PRINTI "on" + JUMP ?CND1 +?CCL3: PRINTI "off" +?CND1: PRINTI ".] +" + RETURN 2 + + + .FUNCT V-$AIR:ANY:0:0 + SET 'GL-OXYGEN-QTY,K-OXY-NOM + SET 'GL-OXYGEN-MSG,K-OXY-NOM + SET 'GL-CO2-QTY,K-CO2-NOM + SET 'GL-CO2-MSG,K-CO2-NOM + SET 'GL-NITROGEN-QTY,K-NIT-NOM + SET 'GL-NITROGEN-MSG,K-NIT-NOM + SET 'GL-HELIUM-QTY,K-HEL-NOM + PRINTI "[Breathing mix returned to nominal.] +" + RETURN 2 + + + .FUNCT RT-NUM-DIGITS:ANY:1:1,N + LESS? N,0 \?CND1 + SUB 0,N >N +?CND1: LESS? N,10 /TRUE + LESS? N,100 \?CCL8 + RETURN 2 +?CCL8: LESS? N,1000 \?CCL10 + RETURN 3 +?CCL10: LESS? N,10000 /?CTR11 + RETURN 5 +?CTR11: RETURN 4 + + + .FUNCT RT-PRINT-FLOAT:ANY:2:3,F,E,D,N,M + ASSIGNED? 'D /?CND1 + SET 'D,-1 +?CND1: LESS? E,0 \?CCL5 + CALL2 RT-NUM-DIGITS,F + SUB 0,STACK >N + GRTR? E,N /?CCL8 + PRINTI "0." +?PRG9: LESS? E,N \?REP10 + PRINTC 48 + INC 'E + JUMP ?PRG9 +?REP10: PRINTN F + RTRUE +?CCL8: SUB 0,N + EQUAL? STACK,5 \?CCL16 + SET 'M,10000 + JUMP ?PRG23 +?CCL16: SUB 0,N + EQUAL? STACK,4 \?CCL18 + SET 'M,1000 + JUMP ?PRG23 +?CCL18: SUB 0,N + EQUAL? STACK,3 \?CCL20 + SET 'M,100 + JUMP ?PRG23 +?CCL20: SUB 0,N + EQUAL? STACK,2 \?CCL22 + SET 'M,10 + JUMP ?PRG23 +?CCL22: SET 'M,1 +?PRG23: DIV F,M + MOD STACK,10 + PRINTN STACK + INC 'N + EQUAL? E,N \?CND25 + PRINTC 46 +?CND25: DIV M,10 >M + ZERO? M \?PRG23 + RTRUE +?CCL5: PRINTN F + SET 'N,0 +?PRG29: LESS? N,E \TRUE + PRINTC 48 + INC 'N + JUMP ?PRG29 + + + .FUNCT RT-NITROGEN-MSG:ANY:0:0 + GRTR? GL-NITROGEN-QTY,GL-NITROGEN-MSG \?CCL3 + LESS? GL-NITROGEN-QTY,K-NIT-HIGH-4 /?CCL6 + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTI " The high nitrogen level finally overcomes you and you fall to the floor, unconscious. +" + CALL1 RT-END-OF-GAME + RSTACK +?CCL6: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-3 /?CCL9 + LESS? GL-NITROGEN-MSG,K-NIT-HIGH-3 \FALSE + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTR " You are beginning to hallucinate." +?CCL9: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-2 /?CCL14 + LESS? GL-NITROGEN-MSG,K-NIT-HIGH-2 \FALSE + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTR " Your head is beginning to spin." +?CCL14: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-1 /?CCL19 + LESS? GL-NITROGEN-MSG,K-NIT-HIGH-1 \FALSE + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTR " You are beginning to feel light-headed." +?CCL19: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-1 \?CCL24 + GRTR? GL-NITROGEN-MSG,K-NIT-LOW-1 /FALSE + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTR " Your hands stop trembling. The nitrogen level must be back to normal." +?CCL24: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-2 \?CCL29 + GRTR? GL-NITROGEN-MSG,K-NIT-LOW-2 /FALSE + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTR " Most of the trembling in your hands has disappeared." +?CCL29: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-3 \FALSE + GRTR? GL-NITROGEN-MSG,K-NIT-LOW-3 /FALSE + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTR " The flashes of irritibility cease, but your fingertips are still trembling." +?CCL3: LESS? GL-NITROGEN-QTY,GL-NITROGEN-MSG \FALSE + GRTR? GL-NITROGEN-QTY,K-NIT-LOW-4 /?CCL42 + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTI " You slump to the floor, a victim of High Pressure Nervous Syndrome. +" + CALL1 RT-END-OF-GAME + RSTACK +?CCL42: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-3 /?CCL45 + GRTR? GL-NITROGEN-MSG,K-NIT-LOW-3 \FALSE + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTR " You begin to have flashes of sudden irritibility." +?CCL45: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-2 /?CCL50 + GRTR? GL-NITROGEN-MSG,K-NIT-LOW-2 \FALSE + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTR " The trembling in your fingertips gets worse." +?CCL50: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-1 /?CCL55 + GRTR? GL-NITROGEN-MSG,K-NIT-LOW-1 \FALSE + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTR " Your hands begin to tremble." +?CCL55: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-1 \?CCL60 + LESS? GL-NITROGEN-MSG,K-NIT-HIGH-1 /FALSE + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTR " You no longer feel dizzy. The nitrogen level must be back to normal." +?CCL60: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-2 \?CCL65 + LESS? GL-NITROGEN-MSG,K-NIT-HIGH-2 /FALSE + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTR " Your head stops spinning, but you still feel dizzy." +?CCL65: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-3 \FALSE + LESS? GL-NITROGEN-MSG,K-NIT-HIGH-3 /FALSE + SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY + PRINTR " The hallucinations fade, but your head is still spinning." + + + .FUNCT RT-OXYGEN-MSG:ANY:0:0 + GRTR? GL-OXYGEN-QTY,GL-OXYGEN-MSG \?CCL3 + LESS? GL-OXYGEN-QTY,K-OXY-HIGH-4 /?CCL6 + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTI " The high oxygen level finally overcomes you. You go into convulsions, fall to the floor, and pass out. +" + CALL1 RT-END-OF-GAME + RSTACK +?CCL6: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-3 /?CCL9 + LESS? GL-OXYGEN-MSG,K-OXY-HIGH-3 \FALSE + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTR " Suddenly, your stomach muscles tighten up and you fight off the urge to vomit." +?CCL9: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-2 /?CCL14 + LESS? GL-OXYGEN-MSG,K-OXY-HIGH-2 \FALSE + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTR " You begin to feel nauseous." +?CCL14: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-1 /?CCL19 + LESS? GL-OXYGEN-MSG,K-OXY-HIGH-1 \FALSE + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTR " Suddenly, you feel a twitch in your lower lip." +?CCL19: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-1 \?CCL24 + GRTR? GL-OXYGEN-MSG,K-OXY-LOW-1 /FALSE + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTR " Your headache disappears. The oxygen level must be back to normal." +?CCL24: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-2 \?CCL29 + GRTR? GL-OXYGEN-MSG,K-OXY-LOW-2 /FALSE + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTR " You begin to see colors again, but you still have a mild headache." +?CCL29: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-3 \FALSE + GRTR? GL-OXYGEN-MSG,K-OXY-LOW-3 /FALSE + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTR " Your tunnel vision begins to fade." +?CCL3: LESS? GL-OXYGEN-QTY,GL-OXYGEN-MSG \FALSE + GRTR? GL-OXYGEN-QTY,K-OXY-LOW-4 /?CCL42 + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTI " You collapse, a victim of oxygen starvation. +" + CALL1 RT-END-OF-GAME + RSTACK +?CCL42: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-3 /?CCL45 + GRTR? GL-OXYGEN-MSG,K-OXY-LOW-3 \FALSE + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTR " You notice that your peripheral vision is beginning to disappear." +?CCL45: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-2 /?CCL50 + GRTR? GL-OXYGEN-MSG,K-OXY-LOW-2 \FALSE + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTR " The colors around you seem to fade." +?CCL50: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-1 /?CCL55 + GRTR? GL-OXYGEN-MSG,K-OXY-LOW-1 \FALSE + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTR " Your head begins to ache." +?CCL55: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-1 \?CCL60 + LESS? GL-OXYGEN-MSG,K-OXY-HIGH-1 /FALSE + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTR " You lip stops twitching. The oxygen level must be back to normal." +?CCL60: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-2 \?CCL65 + LESS? GL-OXYGEN-MSG,K-OXY-HIGH-2 /FALSE + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTR " You no longer feel nauseous, but your lip still twitches occasionally." +?CCL65: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-3 \FALSE + LESS? GL-OXYGEN-MSG,K-OXY-HIGH-3 /FALSE + SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY + PRINTR " The tension in your stomach disappears, but you still feel slightly nauseous." + + + .FUNCT RT-CO2-MSG:ANY:0:0 + GRTR? GL-CO2-QTY,GL-CO2-MSG \?CCL3 + LESS? GL-CO2-QTY,K-CO2-HIGH-4 /?CCL6 + SET 'GL-CO2-MSG,GL-CO2-QTY + PRINTI " You pass out from carbon dioxide poisoning. +" + CALL1 RT-END-OF-GAME + RSTACK +?CCL6: LESS? GL-CO2-QTY,K-CO2-HIGH-3 /?CCL9 + LESS? GL-CO2-MSG,K-CO2-HIGH-3 \FALSE + SET 'GL-CO2-MSG,GL-CO2-QTY + PRINTR " Suddenly the muscles in your arm begin to spasm." +?CCL9: LESS? GL-CO2-QTY,K-CO2-HIGH-2 /?CCL14 + LESS? GL-CO2-MSG,K-CO2-HIGH-2 \FALSE + SET 'GL-CO2-MSG,GL-CO2-QTY + PRINTR " Your chest muscles are beginning to ache." +?CCL14: LESS? GL-CO2-QTY,K-CO2-HIGH-1 /FALSE + LESS? GL-CO2-MSG,K-CO2-HIGH-1 \FALSE + SET 'GL-CO2-MSG,GL-CO2-QTY + PRINTR " You begin to feel a little short of breath." +?CCL3: LESS? GL-CO2-QTY,GL-CO2-MSG \FALSE + LESS? GL-CO2-QTY,K-CO2-HIGH-1 \?CCL27 + LESS? GL-CO2-MSG,K-CO2-HIGH-1 /FALSE + SET 'GL-CO2-MSG,GL-CO2-QTY + PRINTR " You begin to breathe more easily. The carbon dioxide level must have returned to normal." +?CCL27: LESS? GL-CO2-QTY,K-CO2-HIGH-2 \?CCL32 + LESS? GL-CO2-MSG,K-CO2-HIGH-2 /FALSE + SET 'GL-CO2-MSG,GL-CO2-QTY + PRINTR " Your chest muscles feel better, but you are still short of breath." +?CCL32: LESS? GL-CO2-QTY,K-CO2-HIGH-3 \FALSE + LESS? GL-CO2-MSG,K-CO2-HIGH-3 /FALSE + SET 'GL-CO2-MSG,GL-CO2-QTY + PRINTR " The spasms in your arm have stopped, but your chest muscles still ache." + + + .FUNCT RT-I-GAS-MIX:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-GAS-MIX,STACK + SUB GL-OXYGEN-QTY,4 >GL-OXYGEN-QTY + LESS? GL-OXYGEN-QTY,0 \?CND1 + SET 'GL-OXYGEN-QTY,0 +?CND1: ZERO? GL-SCRUBBERS-ON /?CCL5 + SUB GL-CO2-QTY,340 >GL-CO2-QTY + LESS? GL-CO2-QTY,0 \?CND3 + SET 'GL-CO2-QTY,0 + JUMP ?CND3 +?CCL5: ADD GL-CO2-QTY,340 >GL-CO2-QTY +?CND3: CALL1 RT-OXYGEN-MSG + ZERO? STACK \TRUE + CALL1 RT-CO2-MSG + ZERO? STACK \TRUE + RFALSE + + + .FUNCT V-$HEAT:ANY:0:0 + PRINTI "[Heaters " + ZERO? GL-HEATERS-ON /?PRT4 + SET 'GL-HEATERS-ON,0 + JUMP ?PRE6 +?PRT4: SET 'GL-HEATERS-ON,1 +?PRE6: ZERO? GL-HEATERS-ON /?CCL3 + PRINTI "on" + JUMP ?CND1 +?CCL3: PRINTI "off" +?CND1: PRINTI ".] +" + RETURN 2 + + + .FUNCT RT-TH-THERMOMETER:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE,V?READ \FALSE + PRINTI " The thermometer says your core temperature is " + ICALL RT-PRINT-FLOAT,GL-PLAYER-TEMP,K-TEMP-FACTOR + PRINTR " degrees Fahrenheit." + + + .FUNCT RT-TEMP-MSG:ANY:0:0 + LESS? GL-PLAYER-TEMP,GL-TEMP-MSG \?CCL3 + GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-4 /?CCL6 + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTI " The cold finally overpowers you and you pass out. +" + CALL1 RT-END-OF-GAME + RSTACK +?CCL6: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-3 /?CCL9 + GRTR? GL-TEMP-MSG,K-TEMP-LOW-3 \FALSE + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTR " You're so cold you can hardly move." +?CCL9: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-2 /?CCL14 + GRTR? GL-TEMP-MSG,K-TEMP-LOW-2 \FALSE + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTR " The cold begins to creep into your bones." +?CCL14: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-1 /?CCL19 + GRTR? GL-TEMP-MSG,K-TEMP-LOW-1 \FALSE + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTR " You begin to shiver." +?CCL19: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-1 \?CCL24 + LESS? GL-TEMP-MSG,K-TEMP-HIGH-1 /FALSE + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTR " You stop sweating. Your body temperature must have returned to normal." +?CCL24: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-2 \?CCL29 + LESS? GL-TEMP-MSG,K-TEMP-HIGH-2 /FALSE + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTR " Your face is no longer flushed, but you are still sweating." +?CCL29: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-3 \FALSE + LESS? GL-TEMP-MSG,K-TEMP-HIGH-3 /FALSE + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTR " Your breathing returns to normal, but your face is still red." +?CCL3: GRTR? GL-PLAYER-TEMP,GL-TEMP-MSG \FALSE + LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-4 /?CCL42 + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTI " The heat becomes overpowering and you collapse. +" + CALL1 RT-END-OF-GAME + RSTACK +?CCL42: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-3 /?CCL45 + LESS? GL-TEMP-MSG,K-TEMP-HIGH-3 \FALSE + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTR " You're so hot you can hardly move. Your breathing speeds up dangerously." +?CCL45: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-2 /?CCL50 + LESS? GL-TEMP-MSG,K-TEMP-HIGH-2 \FALSE + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTR " Your face turns red from the heat." +?CCL50: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-1 /?CCL55 + LESS? GL-TEMP-MSG,K-TEMP-HIGH-1 \FALSE + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTR " You feel uncomfortably hot and begin to sweat." +?CCL55: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-1 \?CCL60 + GRTR? GL-TEMP-MSG,K-TEMP-LOW-1 /FALSE + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTR " You stop shivering. Your body temperature must be back to normal." +?CCL60: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-2 \?CCL65 + GRTR? GL-TEMP-MSG,K-TEMP-LOW-2 /FALSE + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTR " Your hands and feet tingle as they begin to warm up." +?CCL65: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-3 \FALSE + GRTR? GL-TEMP-MSG,K-TEMP-LOW-3 /FALSE + SET 'GL-TEMP-MSG,GL-PLAYER-TEMP + PRINTR " You're beginning to thaw out." + + + .FUNCT RT-I-DEEPCORE-TEMP:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-DEEPCORE-TEMP,STACK + ZERO? GL-HEATERS-ON /?CCL3 + ADD GL-DEEPCORE-TEMP,5 >GL-DEEPCORE-TEMP + RFALSE +?CCL3: SUB GL-DEEPCORE-TEMP,5 >GL-DEEPCORE-TEMP + RFALSE + + + .FUNCT RT-I-TEMP:ANY:0:0,L,D1,D2 + LOC CH-PLAYER >L + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-TEMP,STACK + FSET? L,FL-WATER \?CCL3 + IN? TH-FBS-SUIT,CH-PLAYER \?PRD8 + FSET? TH-FBS-SUIT,FL-WORN /?CTR5 +?PRD8: IN? TH-DRY-SUIT,CH-PLAYER \?CCL6 + FSET? TH-DRY-SUIT,FL-WORN \?CCL6 +?CTR5: SUB GL-PLAYER-TEMP,10 >GL-PLAYER-TEMP + JUMP ?CND1 +?CCL6: SUB GL-PLAYER-TEMP,500 >GL-PLAYER-TEMP + JUMP ?CND1 +?CCL3: LESS? GL-PLAYER-TEMP,K-TEMP-NOM \?CCL14 + SUB GL-PLAYER-TEMP,860 + GRTR? GL-DEEPCORE-TEMP,STACK \?CCL14 + SUB GL-PLAYER-TEMP,860 + SUB GL-DEEPCORE-TEMP,STACK >D1 + SUB K-TEMP-NOM,GL-PLAYER-TEMP >D2 + GRTR? D2,D1 /?CCL19 + GRTR? D2,5 /?CCL19 + SET 'GL-PLAYER-TEMP,K-TEMP-NOM + JUMP ?CND1 +?CCL19: LESS? D1,5 /?CCL23 + ADD GL-PLAYER-TEMP,5 >GL-PLAYER-TEMP + JUMP ?CND1 +?CCL23: ADD GL-PLAYER-TEMP,D1 >GL-PLAYER-TEMP + JUMP ?CND1 +?CCL14: GRTR? GL-PLAYER-TEMP,K-TEMP-NOM \?CCL25 + SUB GL-PLAYER-TEMP,860 + LESS? GL-DEEPCORE-TEMP,STACK \?CCL25 + SUB GL-PLAYER-TEMP,860 + SUB STACK,GL-DEEPCORE-TEMP >D1 + SUB GL-PLAYER-TEMP,K-TEMP-NOM >D2 + GRTR? D2,D1 /?CCL30 + GRTR? D2,5 /?CCL30 + SET 'GL-PLAYER-TEMP,K-TEMP-NOM + JUMP ?CND1 +?CCL30: LESS? D1,5 /?CCL34 + SUB GL-PLAYER-TEMP,5 >GL-PLAYER-TEMP + JUMP ?CND1 +?CCL34: SUB GL-PLAYER-TEMP,D1 >GL-PLAYER-TEMP + JUMP ?CND1 +?CCL25: ADD GL-PLAYER-TEMP,600 + GRTR? GL-DEEPCORE-TEMP,STACK \?CCL36 + ADD GL-PLAYER-TEMP,5 >GL-PLAYER-TEMP + JUMP ?CND1 +?CCL36: SUB GL-PLAYER-TEMP,1200 + LESS? GL-DEEPCORE-TEMP,STACK \?CND1 + SUB GL-PLAYER-TEMP,5 >GL-PLAYER-TEMP +?CND1: CALL1 RT-TEMP-MSG + RSTACK + + .ENDI diff --git a/gas-mix.zil b/gas-mix.zil new file mode 100644 index 0000000..11e4f20 --- /dev/null +++ b/gas-mix.zil @@ -0,0 +1,872 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : GAS-MIX.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:44:46 $" +; "rev : $Revision: 1.11 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Default substitutions" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <> BYTE> + + + + + > + + ) + (T + + ) + > + + +> + + + + + + + + + + + + +> + +> + + + ) + ( + + ) + ( + + ) + ( + + ) + (T + + ) + > +> + + + >> + + + + + + ) + (T + + ) + > + > + + ) + (T + 5> + + ) + ( 4> + + ) + ( 3> + + ) + ( 2> + + ) + (T + + ) + > + 10>> + + + + ) + > + > + + + ) + > + > + ) + > + ) + (T + + + + + + ) + (T + + ) + > + > + ) + > +> + + + ; "Nitrogen going up" + + + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + > + ) + ( + ; "Nitrogen going down" + + + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + > + ) + > +> + + + ; "Oxygen going up" + + + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + > + ) + ( + ; "Oxygen going down" + + + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + > + ) + > +> + + + ; "Carbon Dioxide going up" + + + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + > + ) + ( + ; "Carbon Dioxide going down" + + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + > + ) + > +> + +> + > + + + ) + > + > + + + ) + > + ) + (T + > + ) + > + + + > + + ) + > +> + + <> BYTE> + + + + + > + + ) + (T + + ) + > + + +> + + + + + + ; "98.6 deg F" + + + + + + + + + + + + + + +)) + + ) + ( + + + + ) + > +> + + + ; "Temperature going down." + + + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + > + ) + ( + ; "Temperature going up." + + + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + ( + + + + ) + > + ) + > + ) + > +> + +> + > + ) + (T + > + ) + > + +> + +> + > + + + + > + + + > + > + > + ) + (T + > + ) + > + ) + ( + > + > + >> + > + + + > + + ) + ( + > + ) + (T + > + ) + > + ) + ( + > + > + ,GL-DEEPCORE-TEMP>> + > + + + > + + ) + ( + > + ) + (T + > + ) + > + ) + (> ;"+6 deg." + > + ) + (> ;"-12 deg." + > + ) + > + +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/gas.lbm b/gas.lbm new file mode 100644 index 0000000..6a768b5 Binary files /dev/null and b/gas.lbm differ diff --git a/gauge.lbm b/gauge.lbm new file mode 100644 index 0000000..7880a30 Binary files /dev/null and b/gauge.lbm differ diff --git a/global.zabstr b/global.zabstr new file mode 100644 index 0000000..376ccda --- /dev/null +++ b/global.zabstr @@ -0,0 +1,74 @@ + + BYTE> + <> BYTE> + + + + + + + + + + + + + +> + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/global.zap b/global.zap new file mode 100644 index 0000000..a52f404 --- /dev/null +++ b/global.zap @@ -0,0 +1,147 @@ + + + .FUNCT RT-GLOBAL-HERE:ANY:0:1,CONTEXT,P + ZERO? HERE /FALSE + GETP HERE,P?ACTION >P + ZERO? P /FALSE + CALL P,CONTEXT + RSTACK + + + .FUNCT RT-YOU:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + ZERO? NOW-PRSI /?CCL5 + CALL PERFORM,PRSA,PRSO,WINNER + RSTACK +?CCL5: CALL PERFORM,PRSA,WINNER,PRSI + RSTACK + + + .FUNCT RT-TH-HUMAN-BODY:ANY:0:1,CONTEXT,TMP,PERSON + EQUAL? CONTEXT,M-OBJDESC \?CCL3 + PRINTI "their body" + RTRUE +?CCL3: ZERO? CONTEXT \FALSE + CALL1 GET-NP + GET STACK,1 >TMP + ZERO? TMP /?CND6 + GET TMP,2 >PERSON +?CND6: ZERO? PERSON /?CCL10 + CALL2 VISIBLE?,PERSON + ZERO? STACK \?CCL10 + ICALL1 NP-CANT-SEE + RETURN 2 +?CCL10: PRINT K-NO-REFER-MSG + PRINTI "any" + PRINTI " part of" + ZERO? PERSON /?CCL16 + ICALL RT-PRINT-OBJ,PERSON,K-ART-THE + PRINTC 39 + FSET? PERSON,FL-PLURAL \?CCL18 + FSET? PERSON,FL-COLLECTIVE \?CND14 +?CCL18: PRINTC 115 + JUMP ?CND14 +?CCL16: PRINTI " their" +?CND14: PRINTI " body.]" + CRLF + RETURN 2 + + + .FUNCT RT-GN-BODY:ANY:2:2,TBL,FINDER,PART,PTR,N + ADD TBL,8 >PTR + GET TBL,1 >N +?PRG1: DLESS? 'N,0 /FALSE + GET PTR,0 >PART + ZERO? PART /?CND3 + FSET? PART,FL-YOUR /?REP2 + EQUAL? PART,TH-PLAYER-BODY /?REP2 + EQUAL? PART,TH-HUMAN-BODY /?CND3 + RETURN PART +?CND3: ADD PTR,2 >PTR + JUMP ?PRG1 +?REP2: RETURN PART + + + .FUNCT RT-TH-PLAYER-BODY:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + PRINT K-NO-REFER-MSG + PRINTI "that part of your body.]" + CRLF + RETURN 2 + + + .FUNCT RT-TH-GROUND:ANY:0:3,CONTEXT,ART,CAP? + EQUAL? CONTEXT,M-OBJDESC \?CCL3 + ZERO? ART /?CND4 + ICALL RT-PRINT-ARTICLE,TH-GROUND,ART,CAP? +?CND4: EQUAL? ART,FALSE-VALUE,K-ART-THE,K-ART-A /?CCL8 + EQUAL? ART,K-ART-ANY \FALSE +?CCL8: ZERO? ART /?CND11 + PRINTC 32 +?CND11: FSET? HERE,FL-INDOORS \?CCL15 + PRINTI "floor" + RTRUE +?CCL15: PRINTI "ground" + RTRUE +?CCL3: ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?LOOK-ON,V?EXAMINE \FALSE + CALL2 RT-SEE-ANYTHING-IN?,HERE + ZERO? STACK /FALSE + PRINTI "You see" + ICALL2 RT-PRINT-CONTENTS,HERE + PRINTI " on" + ICALL RT-PRINT-OBJ,TH-GROUND,K-ART-THE + PRINTC 46 + CRLF + RTRUE + + + .FUNCT RT-TH-SKY:ANY:0:3,CONTEXT,ART,CAP?,RM + EQUAL? CONTEXT,M-OBJDESC \?CCL3 + ZERO? ART /?CND4 + ICALL RT-PRINT-ARTICLE,TH-SKY,ART,CAP? +?CND4: EQUAL? ART,FALSE-VALUE,K-ART-THE,K-ART-A /?CCL8 + EQUAL? ART,K-ART-ANY \FALSE +?CCL8: ZERO? ART /?CND11 + PRINTC 32 +?CND11: FSET? HERE,FL-INDOORS \?CCL15 + PRINTI "ceiling" + RTRUE +?CCL15: PRINTI "sky" + RTRUE +?CCL3: ZERO? CONTEXT \FALSE + ZERO? NOW-PRSI /?CCL22 + PUSH 2 + JUMP ?CND20 +?CCL22: PUSH 1 +?CND20: CALL2 EVERYWHERE-VERB?,STACK + ZERO? STACK \FALSE + FSET? HERE,FL-INDOORS \?CCL25 + CALL NOUN-USED?,TH-SKY,W?SKY + ZERO? STACK /FALSE + CALL1 NP-CANT-SEE + RSTACK +?CCL25: CALL NOUN-USED?,TH-SKY,W?CEILING + ZERO? STACK /FALSE + CALL1 NP-CANT-SEE + RSTACK + + + .FUNCT RT-LG-DEEPCORE:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It looks like Deepcore." + + + .FUNCT RT-LG-TROUGH:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It looks like the Cayman trough." + + + .FUNCT RT-LG-MONTANA:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "It looks like the Montana." + + .ENDI diff --git a/global.zil b/global.zil new file mode 100644 index 0000000..21328ad --- /dev/null +++ b/global.zil @@ -0,0 +1,601 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : GLOBAL.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 13 Mar 1989 19:20:32 $" +; "rev : $Revision: 1.6 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Global objects" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + + BYTE> + <> BYTE> + + + + + + + + + +) "AUX" P) + > + + ) + > + ) + > +> + + + + + + + + + +)) + + ) + (,NOW-PRSI + + ) + (T + + ) + > +> + + + + + +;"---------------------------------------------------------------------------" +; "TH-HUMAN-BODY" +;"---------------------------------------------------------------------------" + + + + +> + + + +) "AUX" TMP (PERSON <>)) + + + ) + (.CONTEXT + + ) + (T + >> + > + ) + > + > + > + + ) + (T + + + + ) + (T + + ) + > + + + > + + > + + ) + > + ) + (T + + ) + > + + ) + > + + ) + > +> + +)) + ) + (N ) + ) + + + ) + (>>) + ( + + ) + ( + + ) + (> + + ) + > + > + > + +> + +;"---------------------------------------------------------------------------" +; "TH-PLAYER-BODY" +;"---------------------------------------------------------------------------" + + + +)) + + ) + (T + + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-HEAD" +;"---------------------------------------------------------------------------" + + + +;"---------------------------------------------------------------------------" +; "TH-HANDS" +;"---------------------------------------------------------------------------" + + + +;"---------------------------------------------------------------------------" +; "TH-GROUND" +;"---------------------------------------------------------------------------" + + + +) (ART <>) (CAP? <>)) + + + ) + > + ,K-ART-THE ,K-ART-A ,K-ART-ANY> + + ) + > + + + ) + (T + + ) + > + ) + > + ) + (.CONTEXT + + ) + ( + + + + + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-SKY" +;"---------------------------------------------------------------------------" + + + +) (ART <>) (CAP? <>) "AUX" RM) + + + ) + > + ,K-ART-THE ,K-ART-A ,K-ART-ANY> + + ) + > + + + ) + (T + + ) + > + ) + > + ) + (.CONTEXT + + ) + (>> + + + + ) + > + ) + (T + + + ) + > + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-TIME" +;"---------------------------------------------------------------------------" + + + +;"---------------------------------------------------------------------------" +; "LG-WALL" +;"---------------------------------------------------------------------------" + + + +;"---------------------------------------------------------------------------" +; "TH-FLATBED" +;"---------------------------------------------------------------------------" + + + +;"---------------------------------------------------------------------------" +; "TH-UFO" +;"---------------------------------------------------------------------------" + + + +;"---------------------------------------------------------------------------" +; "LG-DEEPCORE" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + > +> + +;"---------------------------------------------------------------------------" +; "LG-TROUGH" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + > +> + +;"---------------------------------------------------------------------------" +; "LG-MONTANA" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + > +> + +;"---------------------------------------------------------------------------" +; "LG-OUTLET" +;"---------------------------------------------------------------------------" + + + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/icons.lbm b/icons.lbm new file mode 100644 index 0000000..cf583c0 Binary files /dev/null and b/icons.lbm differ diff --git a/letters.lbm b/letters.lbm new file mode 100644 index 0000000..c10ac40 Binary files /dev/null and b/letters.lbm differ diff --git a/lifesupp.lbm b/lifesupp.lbm new file mode 100644 index 0000000..3ef65de Binary files /dev/null and b/lifesupp.lbm differ diff --git a/lights.lbm b/lights.lbm new file mode 100644 index 0000000..a8e848e Binary files /dev/null and b/lights.lbm differ diff --git a/macros.zil b/macros.zil new file mode 100644 index 0000000..2429f89 --- /dev/null +++ b/macros.zil @@ -0,0 +1,273 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : MACROS.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 07 Mar 1989 2:29:28 $" +; "rev : $Revision: 1.3 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Macro definition file" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> + + +> + +> +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + +>> +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + +> + + + > + + > + 1> + > + ) + (T + + > + + > + 2> 1> + > + ) +> + +; + + + ) + > + + ) + (T + > + + > + ) + ( + <==? 2> + > + > + > + ) + (T + ;"Warning message" + + ) + > + > + >> + ) + > + > + > 7> + + + + ) + > + > + ) + > + > + + 0> + >> + > + >> + '.B> + + ) + > + > + > + > + >> + '.B> + > + > + > + > + >> + > + > + > + > + ) + > +> + +; + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/main.lbm b/main.lbm new file mode 100644 index 0000000..83be42e Binary files /dev/null and b/main.lbm differ diff --git a/misc.zabstr b/misc.zabstr new file mode 100644 index 0000000..1136b9c --- /dev/null +++ b/misc.zabstr @@ -0,0 +1,78 @@ + + + + +> + + + + + + + + + + + + + +> +> +> +> +> +> +> +> + + + + + +> +> + BYTE> + +> +> + + + + + + + +> > > > > < +PUT .TBL 1 #ZLOCAL!-IZILCH STACK> .TBL> > > > > > < +SET BUF > > .N> < +RETURN>) (ELSE > > < +NOT >> ) (ELSE )>)>> + >> + + + + + + + + + + + + +> + BYTE> + BYTE> + BYTE> + \ No newline at end of file diff --git a/misc.zap b/misc.zap new file mode 100644 index 0000000..87d9840 --- /dev/null +++ b/misc.zap @@ -0,0 +1,610 @@ + + + .FUNCT VISIBLE?:ANY:1:1,OBJ + CALL ACCESSIBLE?,OBJ,TRUE-VALUE + RSTACK + + + .FUNCT CLOSED?:ANY:1:2,OBJ,VIS? + ZERO? OBJ /TRUE + IN? OBJ,ROOMS /FALSE + FSET? OBJ,FL-CONTAINER \?CCL7 + FSET? OBJ,FL-OPEN /FALSE + ZERO? VIS? /TRUE + FSET? OBJ,FL-TRANSPARENT /FALSE + RTRUE +?CCL7: FSET? OBJ,FL-SURFACE /FALSE + FSET? OBJ,FL-ALIVE /FALSE + FSET? OBJ,FL-PERSON /FALSE + RTRUE + + + .FUNCT ACCESSIBLE?:ANY:1:2,OBJ,VIS?,WLOC,OLOC,CLSD-PTR,PTR,CNT,TBL,END + ZERO? OBJ /FALSE + EQUAL? OBJ,ROOMS /TRUE + SET 'PTR,GL-LOC-TRAIL + SET 'OLOC,OBJ +?PRG5: PUT PTR,0,OLOC + INC 'CNT + ZERO? OLOC /?REP6 + EQUAL? OLOC,WINNER /?REP6 + IN? OLOC,ROOMS /?REP6 + IN? OLOC,LOCAL-GLOBALS /?REP6 + IN? OLOC,GLOBAL-OBJECTS /?REP6 + IN? OLOC,GENERIC-OBJECTS /?REP6 + LOC OLOC >OLOC + ADD PTR,2 >PTR + ZERO? OLOC /?PRG5 + CALL CLOSED?,OLOC,VIS? + ZERO? STACK /?PRG5 + ZERO? CLSD-PTR \?PRG5 + SET 'CLSD-PTR,PTR + JUMP ?PRG5 +?REP6: SET 'PTR,FALSE-VALUE + SET 'WLOC,WINNER +?PRG21: ZERO? WLOC /FALSE + INTBL? WLOC,GL-LOC-TRAIL,CNT >PTR /?REP22 + IN? WLOC,ROOMS /?REP22 + LOC WLOC >WLOC + ZERO? WLOC /?PRG21 + CALL CLOSED?,WLOC,VIS? + ZERO? STACK /?PRG21 + RFALSE +?REP22: ZERO? WLOC /?CND33 + IN? WLOC,ROOMS \?CND33 + ZERO? PTR \?CND33 + GETPT WLOC,P?GLOBAL >TBL + ZERO? TBL /?CND33 + PTSIZE TBL + ADD TBL,STACK >END +?PRG41: LESS? TBL,END \?CND33 + GET TBL,0 + INTBL? STACK,GL-LOC-TRAIL,CNT >PTR /?CND33 + ADD TBL,2 >TBL + JUMP ?PRG41 +?CND33: ZERO? WLOC /?CND47 + IN? WLOC,ROOMS \?CND47 + ZERO? PTR \?CND47 + FIRST? GLOBAL-OBJECTS >TBL /?PRG54 +?PRG54: ZERO? TBL /?CND47 + INTBL? TBL,GL-LOC-TRAIL,CNT >PTR /?CND47 + NEXT? TBL >TBL /?PRG54 + JUMP ?PRG54 +?CND47: ZERO? PTR /FALSE + ZERO? CLSD-PTR /TRUE + GRTR? PTR,CLSD-PTR /FALSE + RTRUE + + + .FUNCT RT-PRINT-DESC:ANY:1:1,OBJ + FSET? OBJ,FL-HAS-SDESC \?CCL3 + GETP OBJ,P?ACTION + CALL STACK,M-OBJDESC + RSTACK +?CCL3: PRINTD OBJ + RTRUE + + + .FUNCT RT-PRINT-ARTICLE:ANY:3:3,OBJ,ART,CAP?,MASK + ZERO? CAP? \?CND1 + PRINTC 32 + SET 'MASK,32 +?CND1: EQUAL? ART,K-ART-A \?CCL5 + FSET? OBJ,FL-YOUR \?CCL8 + BOR 89,MASK + PRINTC STACK + PRINTI "our" + RTRUE +?CCL8: FSET? OBJ,FL-PLURAL \?CCL10 + BOR 83,MASK + PRINTC STACK + PRINTI "ome" + RTRUE +?CCL10: BOR 65,MASK + PRINTC STACK + FSET? OBJ,FL-VOWEL \FALSE + PRINTC 110 + RTRUE +?CCL5: EQUAL? ART,K-ART-THE \?CCL15 + FSET? OBJ,FL-YOUR \?CCL18 + BOR 89,MASK + PRINTC STACK + PRINTI "our" + RTRUE +?CCL18: BOR 84,MASK + PRINTC STACK + PRINTI "he" + RTRUE +?CCL15: EQUAL? ART,K-ART-ANY \?CCL20 + BOR 65,MASK + PRINTC STACK + PRINTI "ny" + RTRUE +?CCL20: EQUAL? ART,K-ART-HE \?CCL22 + FSET? OBJ,FL-PLURAL \?CCL25 + FSET? OBJ,FL-COLLECTIVE /?CCL25 + BOR 84,MASK + PRINTC STACK + PRINTI "hey" + RTRUE +?CCL25: FSET? OBJ,FL-PERSON /?CCL29 + BOR 73,MASK + PRINTC STACK + PRINTC 116 + RTRUE +?CCL29: EQUAL? OBJ,CH-PLAYER \?CCL31 + BOR 89,MASK + PRINTC STACK + PRINTI "ou" + RTRUE +?CCL31: FSET? OBJ,FL-FEMALE \?CCL33 + BOR 83,MASK + PRINTC STACK + PRINTI "he" + RTRUE +?CCL33: BOR 72,MASK + PRINTC STACK + PRINTC 101 + RTRUE +?CCL22: EQUAL? ART,K-ART-HIM \?CCL35 + FSET? OBJ,FL-PLURAL \?CCL38 + FSET? OBJ,FL-COLLECTIVE /?CCL38 + BOR 84,MASK + PRINTC STACK + PRINTI "hem" + RTRUE +?CCL38: FSET? OBJ,FL-PERSON /?CCL42 + BOR 73,MASK + PRINTC STACK + PRINTC 116 + RTRUE +?CCL42: EQUAL? OBJ,CH-PLAYER \?CCL44 + BOR 89,MASK + PRINTC STACK + PRINTI "ou" + RTRUE +?CCL44: FSET? OBJ,FL-FEMALE \?CCL46 + BOR 72,MASK + PRINTC STACK + PRINTI "er" + RTRUE +?CCL46: BOR 72,MASK + PRINTC STACK + PRINTI "im" + RTRUE +?CCL35: EQUAL? ART,K-ART-HIS \FALSE + FSET? OBJ,FL-PLURAL \?CCL51 + FSET? OBJ,FL-COLLECTIVE /?CCL51 + BOR 84,MASK + PRINTC STACK + PRINTI "heir" + RTRUE +?CCL51: FSET? OBJ,FL-PERSON /?CCL55 + BOR 73,MASK + PRINTC STACK + PRINTI "ts" + RTRUE +?CCL55: EQUAL? OBJ,CH-PLAYER \?CCL57 + BOR 89,MASK + PRINTC STACK + PRINTI "our" + RTRUE +?CCL57: FSET? OBJ,FL-FEMALE \?CCL59 + BOR 72,MASK + PRINTC STACK + PRINTI "er" + RTRUE +?CCL59: BOR 72,MASK + PRINTC STACK + PRINTI "is" + RTRUE + + + .FUNCT RT-PRINT-OBJ:ANY:0:4,O,ART,CAP?,VERB,MASK + ASSIGNED? 'ART /?CND1 + SET 'ART,K-ART-THE +?CND1: ZERO? O \?CND3 + SET 'O,PRSO +?CND3: FSET? O,FL-HAS-SDESC \?CCL7 + GETP O,P?ACTION + ICALL STACK,M-OBJDESC,ART,CAP? + JUMP ?CND5 +?CCL7: EQUAL? ART,K-ART-HE,K-ART-HIM,K-ART-HIS \?CCL9 + FSET O,FL-SEEN + ICALL RT-PRINT-ARTICLE,O,ART,CAP? + JUMP ?CND5 +?CCL9: FSET? O,FL-NO-ARTICLE /?CCL11 + FSET O,FL-SEEN + ICALL RT-PRINT-ARTICLE,O,ART,CAP? + PRINTC 32 + ICALL2 RT-PRINT-DESC,O + JUMP ?CND5 +?CCL11: ZERO? CAP? \?CND12 + PRINTC 32 + SET 'MASK,32 +?CND12: EQUAL? O,CH-PLAYER \?CCL16 + BOR 89,MASK + PRINTC STACK + PRINTI "ou" + JUMP ?CND5 +?CCL16: ICALL2 RT-PRINT-DESC,O +?CND5: ZERO? VERB /FALSE + CALL RT-PRINT-VERB,O,VERB + RSTACK + + + .FUNCT RT-PRINT-VERB:ANY:2:2,OBJ,VERB + PRINTC 32 + EQUAL? OBJ,CH-PLAYER /?CTR2 + FSET? OBJ,FL-PLURAL \?CCL3 + FSET? OBJ,FL-COLLECTIVE /?CCL3 +?CTR2: PRINT VERB + RTRUE +?CCL3: EQUAL? VERB,STR?56 \?CCL10 + PRINTI "is" + RTRUE +?CCL10: EQUAL? VERB,STR?61 \?CCL12 + PRINTI "has" + RTRUE +?CCL12: EQUAL? VERB,STR?62 \?CCL14 + PRINTI "tries" + RTRUE +?CCL14: EQUAL? VERB,STR?63 \?CCL16 + PRINTI "empties" + RTRUE +?CCL16: EQUAL? VERB,STR?64 \?CCL18 + PRINTI "flies" + RTRUE +?CCL18: EQUAL? VERB,STR?65 \?CCL20 + PRINTI "dries" + RTRUE +?CCL20: PRINT VERB + EQUAL? VERB,STR?66,STR?67,STR?68 /?CCL22 + EQUAL? VERB,STR?69,STR?70,STR?71 /?CCL22 + EQUAL? VERB,STR?72 \?CND21 +?CCL22: PRINTC 101 +?CND21: PRINTC 115 + RTRUE + + + .FUNCT THIS-IS-IT:ANY:1:1,OBJ + EQUAL? OBJ,FALSE-VALUE,ROOMS,NOT-HERE-OBJECT /TRUE + EQUAL? OBJ,CH-PLAYER,INTDIR,GLOBAL-HERE /TRUE + EQUAL? PRSA,V?WALK \?CND1 + EQUAL? OBJ,PRSO /TRUE +?CND1: FSET? OBJ,FL-PERSON \?CCL11 + FSET? OBJ,FL-FEMALE \?CCL14 + FSET HER,FL-TOUCHED + SET 'P-HER-OBJECT,OBJ + RTRUE +?CCL14: FSET HIM,FL-TOUCHED + SET 'P-HIM-OBJECT,OBJ + RTRUE +?CCL11: FSET? OBJ,FL-PLURAL \?CCL16 + FSET? OBJ,FL-COLLECTIVE /?CCL16 + FSET THEM,FL-TOUCHED + SET 'P-THEM-OBJECT,OBJ + RTRUE +?CCL16: FSET IT,FL-TOUCHED + SET 'P-IT-OBJECT,OBJ + RTRUE + + + .FUNCT RT-IN-ON-MSG:ANY:1:2,OBJ,CAP?,MASK + ZERO? CAP? \?CND1 + PRINTC 32 + SET 'MASK,32 +?CND1: FSET? OBJ,FL-SURFACE \?CCL5 + BOR 79,MASK + PRINTC STACK + JUMP ?CND3 +?CCL5: BOR 73,MASK + PRINTC STACK +?CND3: PRINTC 110 + RTRUE + + + .FUNCT RT-OUT-OFF-MSG:ANY:1:2,OBJ,CAP? + FSET? OBJ,FL-SURFACE /?CCL3 + FSET? OBJ,FL-CONTAINER \FALSE +?CCL3: ZERO? CAP? \?CCL8 + PRINTI " o" + JUMP ?CND6 +?CCL8: PRINTC 79 +?CND6: FSET? OBJ,FL-SURFACE \?CCL11 + PRINTI "ff" + RTRUE +?CCL11: PRINTI "ut" + RTRUE + + + .FUNCT RT-OPEN-MSG:ANY:0:1,OBJ + ZERO? OBJ \?CND1 + SET 'OBJ,PRSO +?CND1: PRINTC 32 + FSET? OBJ,FL-OPEN \?CCL5 + PRINTI "open" + RTRUE +?CCL5: PRINTI "closed" + RTRUE + + + .FUNCT TOUCH-VERB?:ANY:0:0 + EQUAL? PRSA,V?UNWEAR,V?WEAR /TRUE + EQUAL? PRSA,V?TAKE,V?PUT-IN,V?PUT /TRUE + EQUAL? PRSA,V?OPEN,V?DROP,V?CLOSE /TRUE + RFALSE + + + .FUNCT CLOCKER:ANY:0:0,NT,RTN,TIME,ANY?,MULT?,DIF,N,VAL,I,Z1,Z2 + ZERO? CLOCK-WAIT /?CND1 + SET 'CLOCK-WAIT,FALSE-VALUE + RFALSE +?CND1: SET 'NT,GL-MOVES + SET 'GL-NEW-TIME,NT + SET 'VAL,FALSE-VALUE +?PRG3: SET 'RTN,FALSE-VALUE + SET 'TIME,NT + SET 'ANY?,FALSE-VALUE + SET 'MULT?,FALSE-VALUE + SET 'I,0 +?PRG5: GET GL-Q-TBL,I >Z1 + ADD I,1 + GET GL-Q-TBL,STACK >Z2 + ZERO? Z1 /?CND7 + GRTR? Z2,TIME /?CND7 + ZERO? RTN /?CND11 + EQUAL? Z2,TIME \?CND11 + SET 'MULT?,TRUE-VALUE +?CND11: SET 'RTN,Z1 + SET 'TIME,Z2 + SET 'N,I + SET 'ANY?,TRUE-VALUE +?CND7: ADD I,2 >I + LESS? I,K-Q-SIZE \?REP6 + LESS? I,GL-Q-MAX /?PRG5 +?REP6: ZERO? ANY? /?REP4 + SET 'GL-MOVES,TIME + FSET? CH-PLAYER,FL-ASLEEP /?CND22 + ICALL1 UPDATE-STATUS-LINE +?CND22: LESS? TIME,NT /?PRD24 + PUSH 0 + JUMP ?PRD25 +?PRD24: PUSH 1 +?PRD25: SET 'DIF,STACK + PUT GL-Q-TBL,N,0 + ADD N,1 + PUT GL-Q-TBL,STACK,0 + ADD N,2 + EQUAL? STACK,GL-Q-MAX \?CND26 + SUB GL-Q-MAX,2 >GL-Q-MAX +?CND26: SET 'GL-CLK-RUN,TRUE-VALUE + CALL RTN + ZERO? STACK /?CND28 + SET 'VAL,TRUE-VALUE +?CND28: SET 'GL-CLK-RUN,FALSE-VALUE + GRTR? GL-MOVES,NT \?CND30 + SET 'GL-NEW-TIME,GL-MOVES + SET 'NT,GL-MOVES +?CND30: ZERO? VAL /?PRG3 + ZERO? MULT? \?PRG3 + ZERO? DIF /?PRG3 + EQUAL? PRSA,V?WAIT \?PRG3 + FSET? CH-PLAYER,FL-ASLEEP /?PRG3 + SET 'VAL,FALSE-VALUE + CRLF + PRINTI "Do you want to continue waiting" + CALL1 YES? + ZERO? STACK \?CCL41 + SET 'NT,TIME +?REP4: SET 'GL-MOVES,NT + INC 'GL-MOVES + RFALSE +?CCL41: PRINT K-TIME-PASSES-MSG + JUMP ?PRG3 + + + .FUNCT RT-QUEUE:ANY:2:3,RTN,TIME,ABS?,I +?PRG1: GET GL-Q-TBL,I + ZERO? STACK \?CCL5 + PUT GL-Q-TBL,I,RTN + ADD I,1 + PUT GL-Q-TBL,STACK,TIME + ADD I,2 + GRTR? STACK,GL-Q-MAX \TRUE + ADD I,2 >GL-Q-MAX + RTRUE +?CCL5: ADD I,2 >I + LESS? I,K-Q-SIZE /?PRG1 + RFALSE + + + .FUNCT RT-DEQUEUE:ANY:1:1,RTN,I +?PRG1: GET GL-Q-TBL,I + EQUAL? STACK,RTN \?CCL5 + PUT GL-Q-TBL,I,0 + ADD I,1 + PUT GL-Q-TBL,STACK,0 + ADD I,2 + EQUAL? STACK,GL-Q-MAX \TRUE + SUB GL-Q-MAX,2 >GL-Q-MAX + RTRUE +?CCL5: ADD I,2 >I + LESS? I,K-Q-SIZE \FALSE + LESS? I,GL-Q-MAX /?PRG1 + RFALSE + + + .FUNCT RT-IS-QUEUED?:ANY:1:1,RTN,TIME,I +?PRG1: GET GL-Q-TBL,I + EQUAL? STACK,RTN \?CCL5 + ADD I,1 + GET GL-Q-TBL,STACK >TIME + RETURN TIME +?CCL5: ADD I,2 >I + LESS? I,K-Q-SIZE \FALSE + LESS? I,GL-Q-MAX /?PRG1 + RFALSE + + + .FUNCT C-PIXELS:ANY:1:1,X + SUB X,1 + MUL STACK,GL-FONT-X + ADD STACK,1 + RSTACK + + + .FUNCT L-PIXELS:ANY:1:1,Y + SUB Y,1 + MUL STACK,GL-FONT-Y + ADD STACK,1 + RSTACK + + + .FUNCT PIXELS-C:ANY:1:1,X + SUB X,1 + DIV STACK,GL-FONT-X + ADD STACK,1 + RSTACK + + + .FUNCT PIXELS-L:ANY:1:1,Y + SUB Y,1 + DIV STACK,GL-FONT-Y + ADD STACK,1 + RSTACK + + + .FUNCT CCURSET:ANY:2:3,Y,X,W,?TMP1 + ASSIGNED? 'W /?CND1 + SET 'W,-3 +?CND1: CALL2 L-PIXELS,Y >?TMP1 + CALL2 C-PIXELS,X + CURSET ?TMP1,STACK,W + RTRUE + + + .FUNCT CCURGET:ANY:1:1,TBL + CURGET TBL + GET TBL,0 + CALL2 PIXELS-L,STACK + PUT TBL,0,STACK + GET TBL,1 + CALL2 PIXELS-C,STACK + PUT TBL,1,STACK + RETURN TBL + + + .FUNCT CSPLIT:ANY:1:1,Y + MUL Y,GL-FONT-Y + SPLIT STACK + RTRUE + + + .FUNCT CWINPOS:ANY:3:3,W,Y,X,?TMP1 + CALL2 L-PIXELS,Y >?TMP1 + CALL2 C-PIXELS,X + WINPOS W,?TMP1,STACK + RTRUE + + + .FUNCT CWINSIZE:ANY:3:3,W,Y,X,?TMP1 + MUL Y,GL-FONT-Y >?TMP1 + MUL X,GL-FONT-X + WINSIZE W,?TMP1,STACK + RTRUE + + + .FUNCT CSCROLL:ANY:1:2,W,Y + ASSIGNED? 'Y /?CND1 + SET 'Y,1 +?CND1: MUL Y,GL-FONT-Y + SCROLL W,STACK + RTRUE + + + .FUNCT RT-SCRIPT-INBUF:ANY:0:1,BUF,CNT,N,CHR + ASSIGNED? 'BUF /?CND1 + SET 'BUF,P-INBUF +?CND1: GETB BUF,1 >N + DIROUT D-SCREEN-OFF + INC 'BUF +?PRG3: IGRTR? 'CNT,N /?REP4 + GETB BUF,CNT >CHR + LESS? CHR,97 /?CCL10 + GRTR? CHR,122 /?CCL10 + SUB CHR,32 + PRINTC STACK + JUMP ?PRG3 +?CCL10: PRINTC CHR + JUMP ?PRG3 +?REP4: CRLF + DIROUT D-SCREEN-ON + RTRUE + + + .FUNCT GO:ANY:0:0 +?FCN: GETB 0,33 >GL-SCR-WID + LESS? GL-SCR-WID,64 \?CND1 + PRINTI "[The screen is too narrow.]" + CRLF + QUIT +?CND1: WINGET 0,WFSIZE + SHIFT STACK,-8 >GL-FONT-Y + WINGET 0,WFSIZE + BAND STACK,255 >GL-FONT-X + DIROUT K-D-TBL-ON,K-DIROUT-TBL + PRINTC 32 + DIROUT K-D-TBL-OFF + GET 0,24 >GL-SPACE-WIDTH + ZERO? GL-SPACE-WIDTH \?CND3 + GET 0,17 >GL-SPACE-WIDTH + GETB 0,33 + DIV GL-SPACE-WIDTH,STACK >GL-SPACE-WIDTH +?CND3: MOUSE-LIMIT -1 + CLEAR -1 + ICALL2 INIT-STATUS-LINE,FALSE-VALUE + ICALL1 UPDATE-STATUS-LINE + ICALL RT-QUEUE,RT-I-GAS-MIX,GL-MOVES + ICALL RT-QUEUE,RT-I-LEAVE-1,GL-MOVES + ADD GL-MOVES,90 + ICALL RT-QUEUE,RT-I-RETURN-1,STACK + ADD GL-MOVES,120 + ICALL RT-QUEUE,RT-I-CRANE-1,STACK + ADD GL-MOVES,3 + ICALL RT-QUEUE,RT-I-NITROGEN-LEAK,STACK + ICALL RT-QUEUE,RT-I-TEMP,GL-MOVES + ADD GL-MOVES,1320 + ICALL RT-QUEUE,RT-I-CAB-FIXED,STACK + ICALL1 V-VERSION + CRLF + PRINTI " 'Catfish' DeVries runs his eye over the gauges on the wall of Deepcore's gas-mix room. ""They're done, Bud,"" he says, ""Cooked to a turn."" He spins the wheel in the steel door to the compression chamber, and it eases open with a sigh. + A man with a military haircut quickly steps through the door, apparently undisturbed by the six claustrophobic hours of compression that will enable him to survive the atmosphere 2,000 feet below the sea's surface. He is followed by three other men and one very pretty woman. + ""Brigman?"" he says to you. ""Coffey. Team leader."" He gestures to the others. ""Willhite, Schoenick, Monk. I gather you already know the little lady."" + Lindsey glares at him. ""Listen, Tarzan,"" she snaps, ""Let's get one thing straight..."" + A nervous voice over the intercom interrupts her. ""Bud? It's Hippy. I'm in the Control Module and I got something here on the screen you should take a look at. Pronto."" + You run out through the sub-bay with the others close on your heels. When you arrive in the Command Module, Hippy is pointing to the ROV screen. Coffey and the others crowd around behind you, looking over your shoulder. + ""It's a small submersible over by the Montana,"" Hippy says. ""I can't make it out real well, but I saw some divers leaving her just a minute ago."" + +" + MARGIN 50,50 + PRINTI "[GRAPHIC: A close-up of the ROV screen, with a hint of the controls that surround it. On the screen is a murky picture of a submersible.] + +" + MARGIN 0,0 + PRINTI " ""Shit!"" Coffey shouts. ""We've got to secure that boat! Monk, take Willhite and Schoenick and that big rig we saw in the MoonPool. I'll go in the submersible we came down on. Brigman, I need some drivers."" + One-Night cuts him off. ""I decide who drives what around here, mister. I'll take your boys over in Flatbed. Hippy will drive you in Cab Three. We leave in two minutes."" + One-Night and Hippy leave the Command Module, followed by the SEALs. You are left alone with Lindsey and Catfish. +" + PRINTI "[MORE]" + INPUT 1 + CRLF + ICALL1 INIT-STATUS-LINE + CLEAR 6 + WINGET 0,K-W-YSIZE + SUB STACK,GL-FONT-Y + CURSET STACK,1 + ICALL1 MAIN-LOOP + JUMP ?FCN + + .ENDI diff --git a/misc.zil b/misc.zil new file mode 100644 index 0000000..10a62ea --- /dev/null +++ b/misc.zil @@ -0,0 +1,1069 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : MISC.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:43:32 $" +; "rev : $Revision: 1.20 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Miscellaneous" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + +;"---------------------------------------------------------------------------" +; "CH-PLAYER" +;"---------------------------------------------------------------------------" + + + + + +;"---------------------------------------------------------------------------" +; "Visible/Accessible" +;"---------------------------------------------------------------------------" + +;> ; "Closed object preventing touch." +;> ; "T=Inside, <>=Outside" +> ; "Temporary table used by RT-SEEABLE? and RT-TOUCHABLE?" + + +> + +) ;(ON? <>)) + + + ) + ( + + ) + ; ( + + .ON? + > + + ) + ( + + + ) + (.VIS? + + + ) + > + ) + > + ) + ( + + + > + + ) + > + +> + +) "AUX" WLOC OLOC (CLSD-PTR <>) PTR (CNT 0) ;(ON? <>) TBL END) + + ; > + + ) + ( + + ) + > + + + + + + + + + + + > + + ) + > + ; > + > + > + + ; + + + ) + > + + + ) + > + ) + > + ) + > + > + + > + + + ; + > + > + ) + > + + ) + (> + + ) + ( + + ) + > + > + + ; + + > + ) + > + + ) + > + ) + > + > + + + + > + >> + + + ) + ( ,GL-LOC-TRAIL .CNT>> + + ) + > + > + > + ) + > + ) + > + ) + > + ) + > + + + + > + + + ) + (> + + ) + > + > + > + ) + > + ) + > + ) + > + + + + ) + ( + > + + ) + (T + + ) + > +> + +;"---------------------------------------------------------------------------" +; "Print routines" +;"---------------------------------------------------------------------------" + + + + + + + + + + ,M-OBJDESC> + ) + (T + + ) + > +> + + + + + ) + > + + + "our"> + ) + ( + "ome"> + ) + (T + > + + + ) + > + ) + > + ) + ( + + "our"> + ) + (T + "he"> + ) + > + ) + ( + "ny"> + ) + ( + + > + > + "hey"> + ) + (> + !\t> + ) + ( + "ou"> + ) + ( + "he"> + ) + (T + !\e> + ) + > + ) + ( + + > + > + "hem"> + ) + (> + !\t> + ) + ( + "ou"> + ) + ( + "er"> + ) + (T + "im"> + ) + > + ) + ( + + > + > + "heir"> + ) + (> + "ts"> + ) + ( + "our"> + ) + ( + "er"> + ) + (T + "is"> + ) + > + ) + > +> + +) (ART ,K-ART-THE) (CAP? <>) (VERB <>) "AUX" (MASK 0)) + + + ) + > +; + + ,M-OBJDESC .ART .CAP?> + ) + ( + + + ) + (> + + + + ) + (T + + + + ) + > + + "ou"> + ) + (T + + ) + > + ) + > + + ) + > +> + + + + + > + > + > + + ) + (T + + + ) + (<=? .VERB "have"> + + ) + (<=? .VERB "try"> + + ) + (<=? .VERB "empty"> + + ) + (<=? .VERB "fly"> + + ) + (<=? .VERB "dry"> + + ) + (T + + + + ) + > + + ) + > + ) + > +> + +> +> +> +> +> +> + ;> + +> + + ,ROOMS ,NOT-HERE-OBJECT ,CH-PLAYER ,INTDIR ,GLOBAL-HERE> + + ) + ( + <==? .OBJ ,PRSO> + > + + ) + > + + + + + ) + (T + + + ) + > + ) + ( + > + > + + + ) + (T + ;"to cause pronoun 'it' in output" + + ) + > + +> + +; + + ) + (> + + + > + + ) + > + ) + ( + + + > + + ) + > + ) + (T + + + > + + ) + > + ) + > + + + ) + ( + + ) + > + + +> + +;) "AUX" TMP) + > + + + + + ) + (T + + ) + > + ) + ( + > + + + ) + (<==? .TMP ,W?X> + + ) + (<==? .TMP ,W?Z> + + ) + ( + + + ) + ; (<==? .TMP ,W?DIG> + + ) + (<==? .TMP ,W?GET> + + ) + (T + + ) + > + ) + (T + + ) + > + ) + (T + + ) + > + + + ) + > +> + +) "AUX" (MASK 0)) + + + + ) + > + + > + ) + (T + > + ) + > + +> + +)) + + + > + + + ) + (T + + ) + > + + + ) + (T + + ) + > + ) + > +> + +)) + + + ) + > + + + + ) + (T + + ) + > +> + + +> + +;"---------------------------------------------------------------------------" +; "Queue handling" +;"---------------------------------------------------------------------------" + +> +> + BYTE> + +> +> + ; "3:00:00" + +; BYTE> + + + +> ; "Reset this every turn." + +; + + ) + ( + + ) + > + + > + + ) + > + + + )) + > + + > + > + > + >> + + > + + > + + ) + > + + + + + ) + > + > + + + > + + ) + > + > + + > + + ) + > + > + + 0> + ,GL-Q-MAX> + > + ) + > + + + + ) + > + > + + + + ) + > + + .DIF + + > + > + > + + > ; "No -- Stop waiting" + + + ) + (T + + ) + > + ) + > + ) + (T + + ) + > + > + + + + +> + +)) +; + + > + + ) + > + > + + .TIME> + ,GL-Q-MAX> + > + ) + > + + ) + (> ,K-Q-SIZE> + + ) + > + > +> + + .RTN> + + 0> + ,GL-Q-MAX> + > + ) + > + + ) + (> ,K-Q-SIZE> + + > + + ) + > + > +> + + .RTN> + >> + + ) + (> ,K-Q-SIZE> + + > + + ) + > + > + +> + +;"---------------------------------------------------------------------------" +; "YZIP" +;"---------------------------------------------------------------------------" + + ,GL-FONT-X> 1>> + ,GL-FONT-Y> 1>> + ,GL-FONT-X> 1>> + ,GL-FONT-Y> 1>> + .W>> + + >> + >> + .TBL + > + >> + >> + <* .X ,GL-FONT-X>>> + ; <* .R ,GL-FONT-X> .W>> + ; + ,GL-FONT-Y>> + ,GL-FONT-X>> + > + ; 0) (ELSE )> + 0) (ELSE )> + > + > + ; 0) (ELSE )> + 0) (ELSE )> + > + > + >> + > + + > + + + ) + (ELSE + > + + + > + > + ) + (ELSE + + ) + > + ) + > + > + + + > + ) +> + +;"---------------------------------------------------------------------------" +; "GO" +;"---------------------------------------------------------------------------" + + +> + BYTE> + BYTE> + BYTE> + +> + + + + ) + > + -8>> + 255>> + + ; "Determine width of space in pixels." + + + + > + + > + >> + ) + > + + + + > + + + + > + > + > +; > + + > ; "11 hours later." + + + + + + + ; "Is there a elegant way to force the interpreter to do a 'more'?" + + + + + + ,GL-FONT-Y> 1> + + +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/montana.zabstr b/montana.zabstr new file mode 100644 index 0000000..b0f72eb --- /dev/null +++ b/montana.zabstr @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + ,PLURAL-FLAG> + BYTE> + + + + + + + + + + + + + + <> BYTE> + + + + + + + + + + + + + + + + + + + + + + + + + BYTE> + + + + + + + BYTE> + + + + + + + BYTE> + + \ No newline at end of file diff --git a/montana.zap b/montana.zap new file mode 100644 index 0000000..7cb132f --- /dev/null +++ b/montana.zap @@ -0,0 +1,580 @@ + + + .FUNCT RT-RM-MIDSHIP-HATCH:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are at" + JUMP ?CND4 +?CCL6: PRINTI "come to" +?CND4: PRINTI " the midship hatch of the Montana. The trough wall rises sharply to the east and the missile hatch is to the fore. Through the hatch is the attack center. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-LG-MIDSHIP-HATCH:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + PRINTR " The hatch is a heavy, circular lid with a handle in the middle. Because the sub is resting on its side, the hinges are at the top." +?CCL5: EQUAL? PRSA,V?OPEN \?CCL7 + FSET? LG-MIDSHIP-HATCH,FL-OPEN \?CCL10 + CALL RT-ALREADY-MSG,PRSO,STR?93 + RSTACK +?CCL10: PRINTR " You grab the handle and try to lift the hatch, but only succeed in pushing yourself down in the water." +?CCL7: EQUAL? PRSA,V?CLOSE \FALSE + FSET? LG-MIDSHIP-HATCH,FL-OPEN /?CCL15 + CALL RT-ALREADY-MSG,PRSO,STR?79 + RSTACK +?CCL15: PRINTR " You can't close the hatch against the buoyancy of the lift bag." + + + .FUNCT RT-TO-TRENCH-BOTTOM:ANY:0:0,QUIET + ZERO? QUIET /?CCL3 + RETURN RM-TRENCH-BOTTOM +?CCL3: IN? TH-FBS-SUIT,CH-PLAYER \?CTR4 + FSET? TH-FBS-SUIT,FL-WORN /?CCL5 +?CTR4: PRINTI " You can't go down that deep with a regular dry suit. +" + RFALSE +?CCL5: RETURN RM-TRENCH-BOTTOM + + + .FUNCT RT-RM-MISSILE-HATCH:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are at" + JUMP ?CND4 +?CCL6: PRINTI "come to" +?CND4: PRINTI " the missile hatch of the Montana. To the aft is the midship hatch, and the bow lies foreward. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-MISSILE:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-MISSILE-TIMER:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-MISSILE-PANEL:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-WIRES:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + PRINTR " The wires are red, green, orange, yellow, blue, and white." +?CCL5: EQUAL? PRSA,V?CUT \FALSE + PRINTI "[You must specify which wire you want to cut.] +" + RETURN 2 + + + .FUNCT RT-TH-WIRE:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?CUT \FALSE + EQUAL? PRSI,TH-KNIFE \?CCL8 + PRINTR "The wires are too close together to get the large blade of your knife between them." +?CCL8: EQUAL? PRSI,TH-WIRE-CUTTERS \FALSE + FSET? PRSO,FL-BROKEN \?CCL13 + CALL2 RT-ALREADY-MSG,STR?126 + RSTACK +?CCL13: CALL2 RT-CORRECT-WIRE?,PRSO + ZERO? STACK /?CCL15 + FSET PRSO,FL-BROKEN + INC 'GL-WIRES-CUT + EQUAL? GL-WIRES-CUT,6 \?CCL18 + SET 'GL-FALLING-INTO-TRENCH?,TRUE-VALUE + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-INTO-TRENCH-1,STACK + PRINTR " You hold your breath and cut the last wire. Nothing happens. Lindsey smiles at you and gives you a big thumbs up. + Lindsey pats you on the back and then starts to climb back into the Cab. The sudden imbalance makes it wobble precariously. Suddenly you realize that it is slipping off the curved side of the sub! Desperately, you make a lunge for the hatch to try to scramble inside, but it's too late. The Cab is falling into the trench, and you are going to be dragged along with it." +?CCL18: PRINTI " You cut" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL15: PRINTI " The explosion is so instantaneous and so massive that you have no sensation of dying. You simply cease to be. +" + CALL1 RT-END-OF-GAME + RSTACK + + + .FUNCT RT-CORRECT-WIRE?:ANY:1:1,WIRE + ZERO? GL-WIRE-SEQUENCE /FALSE + EQUAL? PRSO,TH-RED-WIRE \?CCL5 + EQUAL? GL-WIRE-SEQUENCE,1,4 \?CCL8 + FSET? TH-ORANGE-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL8: EQUAL? GL-WIRE-SEQUENCE,2 \?CCL13 + FSET? TH-YELLOW-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL13: EQUAL? GL-WIRE-SEQUENCE,3 \FALSE + FSET? TH-GREEN-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL5: EQUAL? PRSO,TH-BLUE-WIRE \?CCL23 + EQUAL? GL-WIRE-SEQUENCE,1,2 \?CCL26 + FSET? TH-GREEN-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL26: EQUAL? GL-WIRE-SEQUENCE,3 \?CCL31 + FSET? TH-WHITE-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL31: EQUAL? GL-WIRE-SEQUENCE,4 \FALSE + FSET? TH-YELLOW-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL23: EQUAL? PRSO,TH-GREEN-WIRE \?CCL41 + EQUAL? GL-WIRE-SEQUENCE,1 \?CCL44 + FSET? TH-RED-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL44: EQUAL? GL-WIRE-SEQUENCE,2 \TRUE + FSET? TH-ORANGE-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL41: EQUAL? PRSO,TH-YELLOW-WIRE \?CCL54 + EQUAL? GL-WIRE-SEQUENCE,1,4 \?CCL57 + FSET? TH-WHITE-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL57: EQUAL? GL-WIRE-SEQUENCE,2 /TRUE + EQUAL? GL-WIRE-SEQUENCE,3 \FALSE + FSET? TH-ORANGE-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL54: EQUAL? PRSO,TH-ORANGE-WIRE \?CCL69 + EQUAL? GL-WIRE-SEQUENCE,1 /TRUE + EQUAL? GL-WIRE-SEQUENCE,2 \?CCL74 + FSET? TH-WHITE-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL74: EQUAL? GL-WIRE-SEQUENCE,3 \?CCL79 + FSET? TH-RED-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL79: EQUAL? GL-WIRE-SEQUENCE,4 \FALSE + FSET? TH-BLUE-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL69: EQUAL? PRSO,TH-WHITE-WIRE \FALSE + EQUAL? GL-WIRE-SEQUENCE,1 \?CCL92 + FSET? TH-BLUE-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL92: EQUAL? GL-WIRE-SEQUENCE,2 \?CCL97 + FSET? TH-RED-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL97: EQUAL? GL-WIRE-SEQUENCE,3 \?CCL102 + FSET? TH-YELLOW-WIRE,FL-BROKEN /TRUE + RFALSE +?CCL102: EQUAL? GL-WIRE-SEQUENCE,4 \FALSE + FSET? TH-GREEN-WIRE,FL-BROKEN /TRUE + RFALSE + + + .FUNCT RT-TH-WIRE-CUTTERS:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-I-INTO-TRENCH-1:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-INTO-TRENCH-2,STACK + PRINTR " The hookah line goes taut and drags you down after the sub. A quick glance to your right reveals that Lindsey's hookah has caught on the Cab's open hatch and she is being dragged down too. Your chest begins to tighten under the additional pressure. If you don't do something quickly, you will die." + + + .FUNCT RT-I-INTO-TRENCH-2:ANY:0:0 + PRINTI " The cab pulls you deeper and deeper. Suddenly you feel a massive pain in your chest and you black out. The last thing you see before dying is Lindsey's hand reaching toward you for help. +" + CALL1 RT-END-OF-GAME + RSTACK + + + .FUNCT RT-I-OUT-OF-AIR-1:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-OUT-OF-AIR-2,STACK + PRINTR " You can't hold your breath much longer." + + + .FUNCT RT-I-OUT-OF-AIR-2:ANY:0:0 + MOVE CH-PLAYER,RM-SUB-BAY + MOVE TH-DRY-SUIT,RM-SUB-BAY + FCLEAR TH-DRY-SUIT,FL-WORN + FCLEAR TH-DIVE-LOCKER,FL-LOCKED + FSET TH-DIVE-LOCKER,FL-OPEN + MOVE CH-HIPPY,RM-SUB-BAY + MOVE CH-CATFISH,RM-SUB-BAY + PRINTR " You realize that you can't hold your breath any longer and that you are going to die. Your chest aches, and you see bright lights dancing before your eyes. But all you can think of is Lindsey's face as she disappeared into the trough. Just when you think you are going to pass out, you notice that the lights seem to be clustering around you, pushing you gently back towards Deepcore. Unable to hold the air any longer, you expel it and expect to inhale a mouthful of water. Instead you discover that you can breathe quite normally. + You reach out to touch the lights, but your hand passes right through them. After a few moments, you relax and enjoy the ride. Soon you find yourself approaching Deepcore. The lights stay with you until you surface inside the MoonPool, and then they streak away back toward the trench. + Catfish grabs your hand and hoists you to firm ground as easily as if you were a child. He helps you out of your dive suit and into dry clothes. He says that he thinks that there is some kind of benevolent alien at the bottom of the Trench, and that Lindsey's monitoring system shows she is still alive, down near the bottom of the trench. + Hippy comes in and says, ""I think I can open this locker now."" He holds an electronic device near the lock, and the locker pops open. Inside it is the fluid breathing system suit." + + + .FUNCT RT-RM-BOW:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are at" + JUMP ?CND4 +?CCL6: PRINTI "come to" +?CND4: PRINTI " the bow of the Montana. The missile hatch is aft of here. You see the huge gash that was the Montana's death wound. When we get graphics into the game you will only be able to fly the ROV in here. But for now, come on in! +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-TORPEDO-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the Montana's torpedo room. Foreward lies the gash in the hull and aft is the engine room. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-ENGINE-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the engine room of the Montana. The torpedo room is foreward, and aft is the missile launching room. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-MISSILE-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the missile launching room. On the wall hangs the missile access key. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-MISSILE-ACCESS-KEY:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-RM-ATTACK-CENTER:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK \?CCL3 + PRINTR " Cautiously, you swim through the hatch. You pull yourself along by the rungs on the ladder, and then find yourself in the attack center. Your helmet light reveals an eerie scene of floating debris and lop-sided high-tech wreckage. You fight off the disorientation caused by everything being on its side, and then locate the body of the captain and confirm that the missile access key has been removed from his neck. Fighting the urge to vomit, you turn away and see a companionway leading aft." +?CCL3: EQUAL? CONTEXT,M-V-LOOK,M-LOOK \?CCL5 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL8 + PRINTI "are in" + RFALSE +?CCL8: EQUAL? OHERE,RM-MIDSHIP-HATCH \?CCL10 + PRINTI "swim through the hatch to the attack center. Aft, you see a companionway leading into the darkness. +" + RFALSE +?CCL10: PRINTI "enter the attack center. Above you is the midship hatch and the sonar shack lies aft. +" + RFALSE +?CCL5: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-SONAR-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK \?CCL3 + PRINTR " Slowly, you swim through the doorway and come to the sonar room. The sonarman is slewed sideways, still strapped into his chair. He stares at the broken screen through blank eyes. + Doors here lead fore and aft." +?CCL3: EQUAL? CONTEXT,M-V-LOOK,M-LOOK \?CCL5 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL8 + PRINTI "are in" + JUMP ?CND6 +?CCL8: PRINTI "enter" +?CND6: PRINTI " the sonar room. Doors here lead fore and aft. +" + RFALSE +?CCL5: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-COMM-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK \?CCL3 + PRINTR " You swim into the communications room, which was stacked floor to ceiling with high-tech equipment. The door in the aft bulkhead has buckled and looks as if it is jammed shut." +?CCL3: EQUAL? CONTEXT,M-V-LOOK,M-LOOK \?CCL5 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL8 + PRINTI "are in" + JUMP ?CND6 +?CCL8: PRINTI "enter" +?CND6: PRINTI " the communications room. The sonar shack is to the fore and aft lies a corridor. +" + RFALSE +?CCL5: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-THRU-BUCKLED-DOOR:ANY:0:1,QUIET + FSET? LG-BUCKLED-DOOR,FL-OPEN \?CCL3 + RETURN RM-SUB-CORRIDOR +?CCL3: ZERO? QUIET \FALSE + PRINTI " You push up against the door. It gives a little, and then refuses to budge. +" + RFALSE + + + .FUNCT RT-LG-BUCKLED-DOOR:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + PRINTR " The door in the aft bulkhead has buckled and looks as if it is jammed shut." +?CCL5: EQUAL? PRSA,V?PUSH,V?OPEN \FALSE + PRINTI " You push up against the door. It gives a little, and then refuses to budge. +" + RTRUE + + + .FUNCT RT-RM-SUB-CORRIDOR:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK \?CCL3 + PRINTR " You enter a corridor that leads into the heart of the submarine. Below you is an open door leading into a stateroom. Only a few feet beyond the door, the floor starts to pinch in to meet the ceiling where the corridor has been crushed like the end of a paper towel roll." +?CCL3: EQUAL? CONTEXT,M-V-LOOK,M-LOOK \?CCL5 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL8 + PRINTI "are in" + JUMP ?CND6 +?CCL8: PRINTI "enter" +?CND6: PRINTI " a corridor. The comm room is foreward and below you is the captain's quarters. +" + RFALSE +?CCL5: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-CAPTAINS-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK \?CCL3 + PRINTR " You swim down into the room below you, which turns out to be the captain's stateroom. The room is curiously untouched by the disaster. Except for the fact that everything has rotated ninety degrees, it is as neat and tidy as if it were awaiting an admiral's inspection. The bunk is made. Interestingly enough, the framed photograph on the wall doesn't seem to have shifted position, even though the sub is lying on its side." +?CCL3: EQUAL? CONTEXT,M-V-LOOK,M-LOOK \?CCL5 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL8 + PRINTI "are in" + JUMP ?CND6 +?CCL8: PRINTI "enter" +?CND6: PRINTI " the captain's stateroom. Above you is a corridor. +" + RFALSE +?CCL5: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-PHOTOGRAPH:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + FSET TH-PHOTOGRAPH,FL-SEEN + PRINTR " The picture is of the same man whose body you saw in the control room. He is standing with his arm around a woman, and they are both smiling into the camera. At the bottom is scrawled, ""Twenty years before the mast. June 30, 1989. Love, Helen.""" +?CCL5: EQUAL? PRSA,V?LOOK-BEHIND \FALSE + FSET? TH-SAFE,FL-SEEN \?CCL10 + PRINTR " Behind the picture is the wall safe." +?CCL10: FSET TH-SAFE,FL-SEEN + MOVE TH-SAFE,RM-CAPTAINS-ROOM + PRINTR " You push aside the picture and discover a wall safe." + + + .FUNCT RT-TH-SAFE:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + CALL NOUN-USED?,TH-SAFE,W?DIAL + ZERO? STACK /?CCL5 + EQUAL? PRSA,V?EXAMINE \?CCL8 + PRINTI " The dial is turned to " + PRINTN GL-SAFE-NUM + PRINTR "." +?CCL8: EQUAL? PRSA,V?TURN \?CCL10 + RANDOM 101 + SUB STACK,1 >GL-SAFE-NUM + PRINTR " You spin the dial." +?CCL10: EQUAL? PRSA,V?TURN-TO \FALSE + EQUAL? PRSI,INTNUM \FALSE + LESS? P-NUMBER,0 /?CTR17 + GRTR? P-NUMBER,100 \?CCL18 +?CTR17: PRINTR " The dial can only be turned to numbers between 0 and 100, inclusive." +?CCL18: PRINTI " You turn the dial to " + PRINTN P-NUMBER + PRINTC 46 + FSET? TH-SAFE,FL-OPEN /?CND21 + EQUAL? P-NUMBER,30 \?CCL24 + EQUAL? GL-SAFE-NUM,6 \?CCL27 + FSET TH-SAFE,FL-ON + JUMP ?CND21 +?CCL27: FCLEAR TH-SAFE,FL-ON + JUMP ?CND21 +?CCL24: EQUAL? P-NUMBER,69 \?CND21 + EQUAL? GL-SAFE-NUM,30 \?CCL31 + FSET? TH-SAFE,FL-ON \?CCL31 + FCLEAR TH-SAFE,FL-ON + FCLEAR TH-SAFE,FL-LOCKED + FSET TH-SAFE,FL-OPEN + PRINTI " The safe door opens." + CALL2 RT-SEE-ANYTHING-IN?,TH-SAFE + ZERO? STACK /?CND21 + PRINTI " Inside you see" + ICALL2 RT-PRINT-CONTENTS,TH-SAFE + PRINTC 46 + JUMP ?CND21 +?CCL31: FCLEAR TH-SAFE,FL-ON +?CND21: SET 'GL-SAFE-NUM,P-NUMBER + CRLF + RTRUE +?CCL5: EQUAL? PRSA,V?CLOSE \?CCL37 + FSET? TH-SAFE,FL-OPEN \FALSE + FCLEAR TH-SAFE,FL-OPEN + FSET TH-SAFE,FL-LOCKED + RANDOM 101 + SUB STACK,1 >GL-SAFE-NUM + PRINTR " You close the safe and spin the dial." +?CCL37: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR " The safe is a combination safe with numbers on the dial from 0 to 100." + + + .FUNCT RT-TH-PLASTIC-CARD:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?READ,V?EXAMINE \FALSE + PRINTR " The card has row after row of meaningless numbers written on it." + + + .FUNCT RT-TH-PLASTIQUE:ANY:0:1,CONTEXT,OBJ,V + ZERO? CONTEXT \FALSE + ZERO? NOW-PRSI \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL7 + PRINTI " The plastique is a flat package with some sticky, two-sided tape on the bottom." + IN? TH-DETONATOR,TH-PLASTIQUE \?CND8 + PRINTR " There is a detonator attached to it." +?CND8: CRLF + RTRUE +?CCL7: EQUAL? PRSA,V?PUT,V?ATTACH \?CCL11 + EQUAL? PRSI,LG-BUCKLED-DOOR \FALSE + MOVE TH-PLASTIQUE,HERE + PUTP TH-PLASTIQUE,P?OWNER,LG-BUCKLED-DOOR + PRINTR " You stick the plastique to the door." +?CCL11: EQUAL? PRSA,V?TAKE \FALSE + GETP TH-PLASTIQUE,P?OWNER >OBJ + ZERO? OBJ /FALSE + CALL1 ITAKE >V + EQUAL? V,M-FATAL \?CCL22 + RETURN 2 +?CCL22: ZERO? V /FALSE + PUTP TH-PLASTIQUE,P?OWNER,FALSE-VALUE + PRINTI " You remove the plastique from" + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE + PRINTR "." + + + .FUNCT RT-TH-DETONATOR:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + CALL NOUN-USED?,TH-DETONATOR,W?DIAL,W?TIMER + ZERO? STACK /?CCL8 + PRINTI " The dial is set to " + PRINTN GL-DETONATOR-TIME + PRINTR "." +?CCL8: CALL NOUN-USED?,TH-DETONATOR,W?SWITCH + ZERO? STACK /?CCL10 + PRINTI " The switch is " + FSET? TH-DETONATOR,FL-ON \?CCL13 + PRINTI "on" + JUMP ?CND11 +?CCL13: PRINTI "off" +?CND11: PRINTR "." +?CCL10: PRINTR " The detonator is deceptively innocent looking. It has a timer that is calibrated in units of 5 from 10 to 60. Below the face of the timer is a single switch." +?CCL5: EQUAL? PRSA,V?PUT,V?PUT-IN,V?ATTACH \?CCL15 + EQUAL? PRSO,TH-DETONATOR \FALSE + EQUAL? PRSI,TH-PLASTIQUE \FALSE + MOVE TH-DETONATOR,TH-PLASTIQUE + PRINTR " You firmly imbed the prongs of the detonator into the plastique." +?CCL15: EQUAL? PRSA,V?TURN-TO \?CCL22 + EQUAL? PRSI,INTNUM \?CTR24 + LESS? P-NUMBER,10 /?CTR24 + GRTR? P-NUMBER,60 /?CTR24 + MOD P-NUMBER,5 + ZERO? STACK /?CCL25 +?CTR24: PRINTI " The timer can only be set in increments of 5 between the numbers of 10 and 60, inclusive. +" + RETURN 2 +?CCL25: SET 'GL-DETONATOR-TIME,P-NUMBER + PRINTI " You set the dial to " + PRINTN P-NUMBER + PRINTR "." +?CCL22: EQUAL? PRSA,V?LISTEN \?CCL33 + FSET? TH-DETONATOR,FL-ON \FALSE + PRINTR " You hear a faint whirring." +?CCL33: EQUAL? PRSA,V?TURN-ON \?CCL38 + FSET? TH-DETONATOR,FL-ON \?CCL41 + CALL2 RT-ALREADY-MSG,STR?127 + RSTACK +?CCL41: FSET TH-DETONATOR,FL-ON + MUL GL-DETONATOR-TIME,2 + ADD GL-MOVES,STACK + ICALL RT-QUEUE,RT-I-DETONATOR,STACK + PRINTR " You turn the switch and hear a faint whirr." +?CCL38: EQUAL? PRSA,V?TURN-OFF \FALSE + FSET? TH-DETONATOR,FL-ON /?CCL46 + CALL2 RT-ALREADY-MSG,STR?128 + RSTACK +?CCL46: FCLEAR TH-DETONATOR,FL-ON + ICALL2 RT-DEQUEUE,RT-I-DETONATOR + SET 'GL-DETONATOR-TIME,10 + PRINTR " You turn off the detonator. The timer resets itself to ten minutes." + + + .FUNCT RT-I-DETONATOR:ANY:0:1,CONTEXT,L,M + LOC TH-PLASTIQUE >L + CALL2 META-LOC,TH-PLASTIQUE >M + IN? TH-DETONATOR,TH-PLASTIQUE \?CCL3 + REMOVE TH-PLASTIQUE + FSET? M,FL-WATER \?CCL6 + FSET? M,FL-INDOORS \?CCL6 + FSET? HERE,FL-WATER \?CCL6 + FSET? HERE,FL-INDOORS \?CCL6 + EQUAL? HERE,M \?CCL13 + PRINTI " Suddenly you see a bright flash. An enormous shock wave slams into you and instantly kills you. +" + JUMP ?CND11 +?CCL13: PRINTI " Suddenly you hear a muffled explosion. Seconds later an enormous shock wave slams you up against a bulkhead and kills you. +" +?CND11: CALL1 RT-END-OF-GAME + RSTACK +?CCL6: EQUAL? L,RM-COMM-ROOM \?CCL15 + GETP TH-PLASTIQUE,P?OWNER + EQUAL? STACK,LG-BUCKLED-DOOR \?CCL15 + FSET LG-BUCKLED-DOOR,FL-OPEN + CALL GLOBAL-IN?,LG-MONTANA,HERE + ZERO? STACK /?CCL20 + PRINTR " Suddenly you hear a muffled explosion. The Montana seems to rock for a moment, and then settle back into its former position on the ledge." +?CCL20: PRINTR " From far away, you hear a muffled thud. The plastique must have gone off inside the Montana." +?CCL15: FSET? M,FL-WATER \?CCL22 + FSET? M,FL-INDOORS \?CCL25 + CALL GLOBAL-IN?,LG-MONTANA,HERE + ZERO? STACK /?CCL28 + PRINTI " Suddenly you hear a muffled explosion. The Montana seems to rock for a moment, and then it slides off the ledge and plummets into the chasm!" + JUMP ?CND26 +?CCL28: PRINTI " From far away, you hear a muffled thud. The plastique must have gone off inside the Montana. Unbeknownst to you, the blast jars loose the submarine, and it falls into the chasm." +?CND26: PRINTI " Seconds later, the sub slams against the wall of the chasm, ripping off the timing device, and igniting the nuclear warhead. Everything nearby is instantly vaporized, including you. +" + CALL1 RT-END-OF-GAME + RSTACK +?CCL25: PRINTR " The plastique goes ""BOOM"" in the water." +?CCL22: FSET? HERE,FL-WATER /?CCL31 + PRINTI " Suddenly, a huge explosion rips through Deepcore, killing you before you even have time to figure out what caused it. +" + JUMP ?CND29 +?CCL31: PRINTI " Suddenly, a huge explosion rips through Deepcore, causing you to lose the will to live. +" +?CND29: CALL1 RT-END-OF-GAME + RSTACK +?CCL3: CALL2 ACCESSIBLE?,TH-DETONATOR + ZERO? STACK /FALSE + FCLEAR TH-DETONATOR,FL-ON + SET GL-DETONATOR-TIME,10 + PRINTR " The detonator makes a faint 'click'." + + .ENDI diff --git a/montana.zil b/montana.zil new file mode 100644 index 0000000..dff6940 --- /dev/null +++ b/montana.zil @@ -0,0 +1,1525 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : MONTANA.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:45:22 $" +; "rev : $Revision: 1.12 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "U.S.S. Montana" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + +;"---------------------------------------------------------------------------" +; "RM-MIDSHIP-HATCH" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + + +)) + + ) + ( + + ) + ( + + + ) + (T + + ) + > + ) + ( + > + + ) + (T + + ) + > + ) + > +> + +)) + + ) + (> + > + > + + + ) + (T + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-MISSILE-HATCH" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +; + + + +)) + +> + + + +)) + +> + + + +)) + +> + + ,PLURAL-FLAG> + + BYTE> + + + + +)) + + ) + ( + + ) + ( + + + ) + > +> + + + + + + + + + + + + + +)) + + ) + ( + + + ) + ( + + + ) + ( + + > + + + > + + ) + (T + + ) + > + ) + (T + + + ) + > + ) + > + ) + > +> + +; "1 - orange, red, green, blue, white, yellow." +; "2 - yellow, red, white, orange, green, blue." +; "3 - green, red, orange, yellow, white, blue." +; "4 - green, white, yellow, blue, orange, red." + + + + ) + ( + + + + ) + > + ) + ( + + + ) + > + ) + ( + + + ) + > + ) + > + ) + ( + + + + ) + > + ) + ( + + + ) + > + ) + ( + + + ) + > + ) + > + ) + ( + + + + ) + > + ) + ( + + + ) + > + ) + (T + + ) + > + ) + ( + + + + ) + > + ) + ( + + ) + ( + + + ) + > + ) + > + ) + ( + + + ) + ( + + + ) + > + ) + ( + + + ) + > + ) + ( + + + ) + > + ) + > + ) + ( + + + + ) + > + ) + ( + + + ) + > + ) + ( + + + ) + > + ) + ( + + + ) + > + ) + > + ) + > +> + + + +)) + +> + + <> BYTE> + +> + +> + + + +> + +> + +> + + + + + + + + + +> + +;"---------------------------------------------------------------------------" +; "RM-BOW" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-TORPEDO-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-ENGINE-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-MISSILE-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "RM-ATTACK-CENTER" +;"---------------------------------------------------------------------------" + + + +)) + + + ) + ( + + + + ) + ( + + ) + (T + + ) + > + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-SONAR-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + ) + ( + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-COMM-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + ) + ( + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +)) + + + ) + (T + + + ) + > + + ) + > +> + +;"---------------------------------------------------------------------------" +; "LG-BUCKLED-DOOR" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + ( + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-SUB-CORRIDOR" +;"---------------------------------------------------------------------------" + + + + BYTE> + +)) + + + ) + ( + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-CAPTAINS-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + ) + ( + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-PHOTOGRAPH" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + + ) + ( + + + ) + (T + + ; + + + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-SAFE" +;"---------------------------------------------------------------------------" + + + + BYTE> + +)) + + ) + ; (> + >> + > + + ) + ( + + + ) + ( + 1>> + + ) + ( + + + + > + + ) + (T + + ) + ( + + + ) + (T + + ) + > + ) + ( + + + > + + + + + + + + + ) + > + ) + (T + + ) + > + ) + > + + + ) + > + ) + > + ) + > + ) + ( + + + + 1>> + + ) + > + ) + ( + + ) + > +> + + + +)) + + ) + ( + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-PLASTIQUE" +;"---------------------------------------------------------------------------" + + + +) "AUX" OBJ V) + + ) + (,NOW-PRSI + + ) + ( + + + + ) + > + + ) + ( + + + + + ) + > + ) + ( + > + > + + + ) + (.V + > + + ) + > + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-DETONATOR" +;"---------------------------------------------------------------------------" + + + + BYTE> + +)) + + ) + ( + + + ) + ( + + + + ) + (T + + ) + > + + ) + (T + + ) + > + ) + ( + + + > + + + ) + > + ) + ( + > + + + >> + > + + + ) + (T + + + ) + > + ) + ( + + + ) + > + ) + ( + + + ) + (T + + >> + + ) + > + ) + ( + > + + ) + (T + + + + + ) + > + ) + > +> + +) "AUX" L M) + > + > + + + + + + + > + ; "Both plastique and player in Montana." + + + ) + (T + + ) + > + + ) + ( + ,LG-BUCKLED-DOOR> + > + + ;"Montana visible?" + + ) + (T + + ) + > + ) + ( + + ;"Montana visible?" + + ) + (T + + ) + > + + + ) + (T + + ) + > + ) + (T ;"Plastique in Deepcore" + > + + ) + (T + + ) + > + + ) + > + ) + ( + + + + ) + > +> + +" Plastique Player Result + Door Montana Shock wave. Killed. + Door Outside Montana Montana rocks. * + Door Sea floor Muffled thud. * + Door Deepcore Muffled thud. * + Montana Same room Flash. Killed. + Montana Montana Shock wave. Killed. + Montana Outside Montana Montana slides into trench. Vaporize. + Montana Sea floor Far away muffled thud. Vaporize. + Montana Deepcore Far away muffled thud. Vaporize. + Outside Montana ? + Sea floor ? + Deepcore Montana ? + Deepcore Outside Montana ? + Deepcore Sea floor ? + Deepcore Deepcore Player killed." + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/mpf.out b/mpf.out new file mode 100644 index 0000000..19c62a2 --- /dev/null +++ b/mpf.out @@ -0,0 +1,42 @@ +makepicf of 3/14/89 11:50. +Generating picture file for mac for abyss. +IFF format. +Huffing enabled. +Pictures will be huffed together. +1: new file. +Extract: (16, 8) to (135, 15). +No background color allowed. +1: new picture from gauge.lbm. + Loading from IFF file. +Extract: (16, 24) to (135, 31). +No background color allowed. +2: new picture from gauge.lbm. + Loading from IFF file. +Extract: (16, 40) to (135, 47). +No background color allowed. +3: new picture from gauge.lbm. + Loading from IFF file. +Extract: (16, 56) to (135, 63). +No background color allowed. +4: new picture from gauge.lbm. + Loading from IFF file. +Extract: (44, 73) to (45, 78). +No background color allowed. +5: new picture from gauge.lbm. + Loading from IFF file. +Extract: (58, 73) to (59, 78). +No background color allowed. +6: new picture from gauge.lbm. + Loading from IFF file. +Opening variable file abyss-pix.zil. +6 pictures; 1 file. +17152 allocated so far. +Building file 1; 6 pictures. +Writing picture files to /home/development/curpix. +File version is 1. +File size is 476. +3864 pixels; 92 picture data; 384 overhead. +188 bytes huffed to 92. +Checksum: 4d43 +Used 6 +Elapsed time 8 diff --git a/ocean.zabstr b/ocean.zabstr new file mode 100644 index 0000000..c72688f --- /dev/null +++ b/ocean.zabstr @@ -0,0 +1,25 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/ocean.zap b/ocean.zap new file mode 100644 index 0000000..0b1eba5 --- /dev/null +++ b/ocean.zap @@ -0,0 +1,129 @@ + + + .FUNCT RT-RM-UNDER-MOONPOOL:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTC TAB + PRINTI "You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are" + JUMP ?CND4 +?CCL6: PRINTI "arrive" +?CND4: PRINTI " under the moonpool. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-OCEAN-NORTH:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTC TAB + PRINTI "You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are on" + JUMP ?CND4 +?CCL6: PRINTI "proceed along" +?CND4: PRINTI " the ocean floor. Deepcore is to the south. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-OCEAN-SOUTH:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTC TAB + PRINTI "You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are on" + JUMP ?CND4 +?CCL6: PRINTI "proceed along" +?CND4: PRINTI " the ocean floor. Deepcore is to the north. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-OCEAN-WEST:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTC TAB + PRINTI "You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are on" + JUMP ?CND4 +?CCL6: PRINTI "proceed along" +?CND4: PRINTI " the ocean floor. Looking east, you see Deepcore, an island of light in the vast blackness. The crane, now only a mass of twisted metal, hangs crookedly off the starboard cylinders. +" + RFALSE +?CCL3: EQUAL? CONTEXT,M-BEG \?CCL8 + EQUAL? PRSA,V?WALK-TO \FALSE + EQUAL? PRSO,LG-MONTANA \FALSE + CALL2 RT-DO-WALK,P?WEST + RSTACK +?CCL8: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-SWIM-TO-FROM-TRENCH:ANY:0:1,QUIET,N + ZERO? QUIET \?CND1 + PRINTC TAB + PRINTI "You swim along the ocean floor, pausing every few moments to take your bearings and consult your compass. +" + ADD GL-MOVES,43 >GL-MOVES + ICALL1 CLOCKER +?CND1: EQUAL? HERE,RM-OCEAN-WEST /?CTR4 + RETURN RM-OCEAN-WEST +?CTR4: RETURN RM-TROUGH-LIP + + + .FUNCT RT-RM-TROUGH-LIP:ANY:0:1,CONTEXT,N + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTC TAB + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "You are at" + JUMP ?CND4 +?CCL6: EQUAL? OHERE,RM-OCEAN-WEST \?CCL8 + PRINTI "Eventually, you come to the jagged edge of a chasm that extends to the north and south. Looking down, you see the murky outline of the Montana, perched on a ledge below you. +" + RFALSE +?CCL8: PRINTI "You come to" +?CND4: PRINTI " the lip of the Cayman trough. Just below, you can see the Montana. Deepcore lies east of here. +" + RFALSE +?CCL3: EQUAL? CONTEXT,M-ENTERED \?CCL10 + EQUAL? OHERE,RM-OCEAN-WEST \FALSE + PRINTC TAB + PRINTI "Automatically, you glance at your watch. The journey over from Deepcore took about twenty two minutes and you have" + SUB GL-PLAYER-TEMP,K-TEMP-LOW-4 + DIV STACK,20 >N + ICALL2 RT-WORD-NUMBERS,N + PRINTI " minute" + EQUAL? N,1 /?CND14 + PRINTC 115 +?CND14: PRINTI " left before hypothermia sets in. A quick calculation reveals that you have " + SUB N,22 >N + LESS? N,0 \?CCL18 + PRINTI "insufficient time to make it back to Deepcore. +" + RTRUE +?CCL18: ZERO? N \?CCL21 + PRINTI "no time" + JUMP ?CND19 +?CCL21: PRINTI "only" + ICALL2 RT-WORD-NUMBERS,N + PRINTI " minute" + EQUAL? N,1 /?CND19 + PRINTC 115 +?CND19: PRINTI " to explore the Montana before you must start back. +" + RTRUE +?CCL10: EQUAL? CONTEXT,M-BEG \?CCL25 + EQUAL? PRSA,V?WALK-TO \FALSE + EQUAL? PRSO,LG-DEEPCORE \FALSE + CALL2 RT-DO-WALK,P?EAST + RSTACK +?CCL25: ZERO? CONTEXT \FALSE + RFALSE + + .ENDI diff --git a/ocean.zil b/ocean.zil new file mode 100644 index 0000000..412a7db --- /dev/null +++ b/ocean.zil @@ -0,0 +1,300 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : OCEAN.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:45:12 $" +; "rev : $Revision: 1.7 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Ocean floor" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + +;"---------------------------------------------------------------------------" +; "RM-UNDER-MOONPOOL" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-OCEAN-NORTH" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-OCEAN-SOUTH" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-OCEAN-WEST" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + ( + + + > + + ) + > + ) + (.CONTEXT + + ) + > +> + +) "AUX" N) + + + > ; "44 moves (22 min) minus one" + + ) + > + + + ) + (T + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-TROUGH-LIP" +;"---------------------------------------------------------------------------" + + + +) "AUX" N) + + + + + ) + ( + + + ) + (T + + ) + > + + + ) + ( + + + 20>> + + + > + + ) + > + + > + + + ) + (T + + + ) + (T + + > + + ) + > + ) + > + + ) + > + ) + > + ) + ( + + + > + + ) + > + ) + (.CONTEXT + + ) + > +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/parser.zabstr b/parser.zabstr new file mode 100644 index 0000000..ebb37c2 --- /dev/null +++ b/parser.zabstr @@ -0,0 +1,267 @@ +)("WORD-FLAGS-IN-TABLE" T)( +"IN-ZILCH" T)) (("TELL-GWIM-MSG" "DEFS2" #WORD *01006570730*) ("QCONTEXT-CHECK" +"DEFS" #WORD *03512635533*) ("COLLECTIVE-VERB?" "DEFS" #WORD *12337265607*) ( +"GAME-VERB?" "DEFS" #WORD *13713442223*) ("READ-INPUT" "DEFS" #WORD +*13315277233*) ("STATUS-LINE" "DEFS" #WORD *32273775332*) ("TRYTAKEBIT" "DEFS" +#WORD *37163230545*) ("TRANSBIT" "DEFS" #WORD *04126724227*) ("TOUCHBIT" "DEFS" +#WORD *20633602015*) ("TAKEBIT" "DEFS" #WORD *02247224556*) ("SURFACEBIT" +"DEFS" #WORD *25336654726*) ("SEARCHBIT" "DEFS" #WORD *06473661734*) ( +"ROOMSBIT" "DEFS" #WORD *32212654426*) ("PLURAL" "DEFS" #WORD *02362767724*) ( +"PLAYER" "DEFS" #WORD *07702724764*) ("PERSONBIT" "DEFS" #WORD *33273660774*) ( +"OPENBIT" "DEFS" #WORD *13113464424*) ("ONBIT" "DEFS" #WORD *21662644317*) ( +"NARTICLEBIT" "DEFS" #WORD *15044252200*) ("INVISIBLE" "DEFS" #WORD +*13307541331*) ("FEMALE" "DEFS" #WORD *05062720704*) ("CONTBIT" "DEFS" #WORD +*20466407540*))> + + + + + + + + + + +> + +> >)> + + + + + + + + + + + + + + + + + + < +COND (>> .EXPR1)>) ( .EXPR2)>> +> +> +> + +>> +> +> +> +> +> +> +> + + + + <> <> <> <>>> + + + + + + + + +> +> +> + + +>> +> + + + + + + + > > > < +SETG OLD-HERE ,HERE> )> < +CURSET 1 <- <+ >>> > > >)> > ) (T >)>> .D>> +> "> )> ) (T )> )>> < +DEFINE SCRIPT-INBUF ("AUX" BUF (CNT 0) (N ) CHR) > < +RETURN>) (ELSE > > >) (ELSE )>)>> >> + T> + T> + >> + + + >> + < +VOC "SHE"> < +VOC "WEREN"> >> + >> + +> + +> +> +> + + +> +>> + + +> > )> )>>> + + + +> + + + + +> +> + + + +> > + + +>> +>> + +)) + >> > )> < +EQUAL? ,WINNER ,PLAYER>> < +RTRUE>)>)>>> +> +> + + + +> +> +> + + + + + + + > < +IFN-P-APOSTROPHE-BREAKS-WORDS > < +IFN-P-APOSTROPHE-BREAKS-WORDS > < +IFN-P-APOSTROPHE-BREAKS-WORDS > < +IFN-P-APOSTROPHE-BREAKS-WORDS > < +IFN-P-APOSTROPHE-BREAKS-WORDS > < +IFN-P-APOSTROPHE-BREAKS-WORDS > < +IFN-P-APOSTROPHE-BREAKS-WORDS > < +IFN-P-APOSTROPHE-BREAKS-WORDS >>>> > > > < +IFN-P-BE-VERB > > > > > > < +IFN-P-BE-VERB > > < +IFN-P-BE-VERB > > > > > < +IFN-P-BE-VERB > > > >>> > > > < +IFN-P-BE-VERB > > > < +VOC "T"> > < +IFN-P-BE-VERB > > > > > < +IFN-P-BE-VERB > > > < +IFN-P-BE-VERB > > > > >>>) (T > +> > > < +IFN-P-BE-VERB > > < +VOC "HAVEN'T"> > < +IFN-P-BE-VERB > > < +IFN-P-BE-VERB > > < +IFN-P-BE-VERB > > > > > < +VOC "WE'LL"> > > < +IFN-P-BE-VERB > >>>)> > > < +IFN-P-BE-VERB > > > > > > > > > < +IFN-P-BE-VERB >>>> + >> > +> > > >> ) (T )>) (T ) (T )> < +TELL " encyclopedia.]" CR>)>> > 10 +) (T 2)>)) + ) (T +)>>>> + + > + +> + >> < +SET VB > )>) ( )>)>)> > >> + + + \ No newline at end of file diff --git a/parser.zap b/parser.zap new file mode 100644 index 0000000..8e4338e --- /dev/null +++ b/parser.zap @@ -0,0 +1,2335 @@ + + .SEGMENT "0" + + + .FUNCT INIT-STATUS-LINE:ANY:0:1,PW?,CW,Y,Y1,N,?TMP2,?TMP1 + ASSIGNED? 'PW? /?CND1 + SET 'PW?,TRUE-VALUE +?CND1: GET 0,18 + SUB STACK,GL-FONT-Y >N + ZERO? PW? /?CCL5 + DIV N,2 + ADD 1,STACK + ADD STACK,GL-FONT-Y >?TMP1 + MUL 27,GL-FONT-X + ADD 1,STACK + WINPOS 0,?TMP1,STACK + ADD N,1 + DIV STACK,2 >?TMP1 + GET 0,17 >?TMP2 + MUL 27,GL-FONT-X + SUB ?TMP2,STACK + WINSIZE 0,?TMP1,STACK + ADD 1,GL-FONT-Y >?TMP1 + MUL 27,GL-FONT-X + ADD 1,STACK + WINPOS 6,?TMP1,STACK + DIV N,2 >?TMP1 + GET 0,17 >?TMP2 + MUL 27,GL-FONT-X + SUB ?TMP2,STACK + WINSIZE 6,?TMP1,STACK + JUMP ?CND3 +?CCL5: ADD 1,GL-FONT-Y >?TMP1 + MUL 27,GL-FONT-X + ADD 1,STACK + WINPOS 0,?TMP1,STACK + GET 0,18 + SUB STACK,GL-FONT-Y >?TMP1 + GET 0,17 >?TMP2 + MUL 27,GL-FONT-X + SUB ?TMP2,STACK + WINSIZE 0,?TMP1,STACK + WINPOS 6,1,1 + WINSIZE 6,0,0 +?CND3: WINPOS 1,1,1 + GET 0,17 + WINSIZE 1,GL-FONT-Y,STACK + GET 0,18 + SUB STACK,GL-FONT-Y + ADD STACK,1 + WINPOS 2,STACK,1 + GET 0,17 + WINSIZE 2,GL-FONT-Y,STACK + MUL 3,GL-FONT-Y + ADD 1,STACK + WINPOS 3,STACK,1 + GET 0,18 >?TMP2 + MUL 3,GL-FONT-Y + SUB ?TMP2,STACK >?TMP1 + MUL 10,GL-FONT-X + WINSIZE 3,?TMP1,STACK + MUL 3,GL-FONT-Y + ADD 1,STACK >?TMP1 + MUL 11,GL-FONT-X + ADD 1,STACK + WINPOS 4,?TMP1,STACK + GET 0,18 >?TMP2 + MUL 3,GL-FONT-Y + SUB ?TMP2,STACK >?TMP1 + MUL 15,GL-FONT-X + WINSIZE 4,?TMP1,STACK + ADD GL-FONT-Y,1 + WINPOS 5,STACK,1 + MUL 2,GL-FONT-Y >?TMP1 + MUL 27,GL-FONT-X + WINSIZE 5,?TMP1,STACK + WINPOS 7,1,1 + GET 0,18 >?TMP1 + GET 0,17 + WINSIZE 7,?TMP1,STACK + SCREEN 7 + HLIGHT K-H-INV + WINGET 3,K-W-YPOS >Y + WINGET 3,K-W-YSIZE + ADD Y,STACK + SUB STACK,1 >Y1 +?PRG6: CALL2 C-PIXELS,11 + CURSET Y,STACK + PRINTC 32 + CALL2 C-PIXELS,27 + CURSET Y,STACK + PRINTC 32 + ADD Y,GL-FONT-Y >Y + GRTR? Y,Y1 \?PRG6 + HLIGHT K-H-NRM + SCREEN 5 + WINGET 5,K-W-XSIZE + DIV STACK,GL-SPACE-WIDTH >N + PUTB K-DIROUT-TBL,0,32 + ADD K-DIROUT-TBL,1 >?TMP1 + SUB 0,N + COPYT K-DIROUT-TBL,?TMP1,STACK + CURSET 1,1 + HLIGHT K-H-INV + PRINTT K-DIROUT-TBL,N + CURSET 1,1 + PRINTI "EXECUTE" + ICALL CCURSET,1,13 + PRINTI "DELETE" + ICALL CCURSET,2,1 + PRINTT K-DIROUT-TBL,N + ICALL CCURSET,2,1 + PRINTI "UP" + ICALL CCURSET,2,7 + PRINTI "DN" + ICALL CCURSET,2,13 + PRINTI "UP" + ICALL CCURSET,2,24 + PRINTI "DN" + HLIGHT K-H-NRM + SCREEN 1 + CURSET 1,1 + WINGET 1,K-W-XSIZE + DIV STACK,GL-SPACE-WIDTH >N + PUTB K-DIROUT-TBL,0,32 + ADD K-DIROUT-TBL,1 >?TMP1 + SUB 0,N + COPYT K-DIROUT-TBL,?TMP1,STACK + HLIGHT H-INVERSE + PRINTT K-DIROUT-TBL,N + HLIGHT H-NORMAL + SCREEN 0 + SET 'GL-SL-HERE,FALSE-VALUE + RTRUE + + + .FUNCT UPDATE-STATUS-LINE:ANY:0:0,C,CW,N,H,M,S,?TMP1 + SCREEN 1 + HLIGHT K-H-INV + EQUAL? HERE,GL-SL-HERE /?CND1 + SET 'GL-SL-HERE,HERE + CURSET 1,1 + WINGET 1,K-W-XSIZE >?TMP1 + WINGET 1,K-W-XCURPOS + SUB ?TMP1,STACK + DIV STACK,GL-SPACE-WIDTH >N + PUTB K-DIROUT-TBL,0,32 + ADD K-DIROUT-TBL,1 >?TMP1 + SUB 0,N + COPYT K-DIROUT-TBL,?TMP1,STACK + PRINTT K-DIROUT-TBL,N + CURSET 1,1 + DIROUT K-D-TBL-ON,K-DIROUT-TBL + ICALL2 RT-PRINT-DESC,HERE + DIROUT K-D-TBL-OFF + GETB K-DIROUT-TBL,2 >C + LESS? C,97 /?CND3 + GRTR? C,122 /?CND3 + SUB C,32 + PUTB K-DIROUT-TBL,2,STACK +?CND3: ADD K-DIROUT-TBL,2 >?TMP1 + GET K-DIROUT-TBL,0 + PRINTT ?TMP1,STACK +?CND1: WINGET 1,K-W-XSIZE >?TMP1 + MUL 9,GL-FONT-X + SUB ?TMP1,STACK + ADD STACK,1 + CURSET 1,STACK + WINGET 1,K-W-XSIZE >?TMP1 + WINGET 1,K-W-XCURPOS + SUB ?TMP1,STACK + DIV STACK,GL-SPACE-WIDTH >N + PUTB K-DIROUT-TBL,0,32 + ADD K-DIROUT-TBL,1 >?TMP1 + SUB 0,N + COPYT K-DIROUT-TBL,?TMP1,STACK + PRINTT K-DIROUT-TBL,N + MOD GL-MOVES,2880 >N + DIV N,120 + MOD STACK,24 >H + DIV N,2 + MOD STACK,60 >M + MOD N,2 + MUL STACK,30 >S + DIROUT K-D-TBL-ON,K-DIROUT-TBL + LESS? H,10 \?CND7 + PRINTC 48 +?CND7: PRINTN H + PRINTC 58 + LESS? M,10 \?CND9 + PRINTC 48 +?CND9: PRINTN M + PRINTC 58 + LESS? S,10 \?CND11 + PRINTC 48 +?CND11: PRINTN S + DIROUT K-D-TBL-OFF + WINGET 1,K-W-XSIZE >?TMP1 + GET 0,24 + SUB ?TMP1,STACK + ADD STACK,1 + CURSET 1,STACK + ADD K-DIROUT-TBL,2 >?TMP1 + GET K-DIROUT-TBL,0 + PRINTT ?TMP1,STACK + HLIGHT K-H-NRM + SCREEN 0 + RTRUE + + + .FUNCT RT-PRINT-MENU:ANY:1:1,MN,N,L,TBL,W + ADD 3,MN >W + SCREEN W + CLEAR W + CURSET 1,1 + GET K-MENU-TBL,MN >TBL + GETB K-FIRST-ENTRY-TBL,MN >N + WINGET -3,K-W-YSIZE + DIV STACK,GL-FONT-Y + ADD N,STACK + SUB STACK,1 >L + GET TBL,0 + LESS? STACK,L \?PRG3 + GET TBL,0 >L +?PRG3: GRTR? N,L /TRUE + ICALL RT-PRINT-MENU-ENTRY,MN,N + CRLF + INC 'N + JUMP ?PRG3 + + + .FUNCT RT-PRINT-MENU-ENTRY:ANY:2:2,MN,N,L,ITEM,TBL,W,T + GET K-MENU-TBL,MN >TBL + ZERO? TBL /FALSE + GET TBL,N >ITEM + ZERO? ITEM /FALSE + GETB K-MENU-TBL-TYPE,MN >T + EQUAL? T,K-MENU-ONE-WORD \?CCL8 + PRINTB ITEM + RTRUE +?CCL8: EQUAL? T,K-MENU-MANY-WORD \?CCL10 + GET ITEM,0 >L + ADD ITEM,2 >ITEM +?PRG11: DLESS? 'L,0 /TRUE + GET ITEM,0 >W + ZERO? W /?CCL18 + PRINTB W + JUMP ?CND16 +?CCL18: PRINTC 126 +?CND16: GRTR? L,0 \?CND19 + PRINTC 32 +?CND19: ADD ITEM,2 >ITEM + JUMP ?PRG11 +?CCL10: EQUAL? T,K-MENU-OBJECT \FALSE + ADD LAST-OBJECT,1 + EQUAL? ITEM,STACK \?CCL25 + PRINTI "all" + RTRUE +?CCL25: GETP ITEM,P?MENU >W + ZERO? W /?CCL27 + PRINT W + RTRUE +?CCL27: CALL2 RT-PRINT-DESC,ITEM + RSTACK + + + .FUNCT RT-HLIGHT-MENU:ANY:2:3,MN,L,ON?,Y,TBL,N,?TMP1 + ASSIGNED? 'ON? /?CND1 + SET 'ON?,TRUE-VALUE +?CND1: ADD 3,MN + SCREEN STACK + GETB K-FIRST-ENTRY-TBL,MN + SUB L,STACK + ADD STACK,1 >Y + CALL2 L-PIXELS,Y + CURSET STACK,1 + ZERO? ON? /?CND3 + HLIGHT K-H-INV +?CND3: ICALL RT-PRINT-MENU-ENTRY,MN,L + ZERO? ON? /?CCL7 + WINGET -3,K-W-XSIZE >?TMP1 + WINGET -3,K-W-XCURPOS + SUB ?TMP1,STACK + DIV STACK,GL-SPACE-WIDTH >N + PUTB K-DIROUT-TBL,0,32 + ADD K-DIROUT-TBL,1 >?TMP1 + SUB 0,N + COPYT K-DIROUT-TBL,?TMP1,STACK + PRINTT K-DIROUT-TBL,N + HLIGHT K-H-NRM + RTRUE +?CCL7: ERASE 1 + RTRUE + + + .FUNCT RT-GET-PREPS:ANY:2:3,ACT,TBL,PREP,PTR,L,M,N,P + ASSIGNED? 'PREP /?CND1 + SET 'PREP,-1 +?CND1: EQUAL? PREP,-1 \?CCL5 + SET 'L,1 + JUMP ?PRG6 +?CCL5: SET 'L,3 +?PRG6: EQUAL? L,1 \?CCL10 + GET ACT,2 >PTR + JUMP ?CND8 +?CCL10: GET ACT,3 >PTR +?CND8: ZERO? PTR /?CND11 + GET PTR,0 >M + ADD PTR,2 >PTR + GET TBL,0 >N +?PRG13: DLESS? 'M,0 /?CND11 + EQUAL? PREP,-1 \?CCL20 + GET PTR,1 >P + JUMP ?CND18 +?CCL20: GET PTR,3 >P +?CND18: ZERO? P /?CND21 + EQUAL? PREP,-1 /?CCL24 + GET PTR,1 + EQUAL? PREP,STACK \?CND21 +?CCL24: ADD TBL,2 + INTBL? P,STACK,N /?CND21 + INC 'N + PUT TBL,N,P + PUT TBL,0,N +?CND21: EQUAL? L,1 \?CCL31 + ADD PTR,6 >PTR + JUMP ?PRG13 +?CCL31: ADD PTR,10 >PTR + JUMP ?PRG13 +?CND11: EQUAL? L,1 \TRUE + SET 'L,3 + JUMP ?PRG6 + + + .FUNCT RT-GET-OBJS:ANY:1:3,TBL,CONT,SEARCH,OBJ,N,PTR,ADD? + ASSIGNED? 'CONT /?CND1 + SET 'CONT,HERE +?CND1: ASSIGNED? 'SEARCH /?CND3 + SET 'SEARCH,15 +?CND3: FIRST? CONT >OBJ /?PRG6 +?PRG6: ZERO? OBJ /TRUE + FSET? OBJ,FL-INVISIBLE /?CND8 + IN? CONT,ROOMS \?CCL14 + BAND SEARCH,1 >ADD? + JUMP ?CND12 +?CCL14: EQUAL? CONT,CH-PLAYER \?CCL16 + BAND SEARCH,4 >ADD? + JUMP ?CND12 +?CCL16: SET 'ADD?,TRUE-VALUE +?CND12: ZERO? ADD? /?CND17 + GET TBL,0 + ADD STACK,1 >N + PUT TBL,N,OBJ + PUT TBL,0,N +?CND17: IN? CONT,ROOMS \?PRD22 + BTST SEARCH,2 /?CCL20 +?PRD22: EQUAL? CONT,CH-PLAYER \?CND8 + BTST SEARCH,8 \?CND8 +?CCL20: CALL2 CLOSED?,OBJ + ZERO? STACK \?CND8 + ICALL RT-GET-OBJS,TBL,OBJ,SEARCH +?CND8: NEXT? OBJ >OBJ /?PRG6 + JUMP ?PRG6 + + + .FUNCT RT-DO-OBJECTS:ANY:0:1,SEARCH,PTR,I,N,OBJ,STR + ASSIGNED? 'SEARCH /?CND1 + SET 'SEARCH,31 +?CND1: BTST SEARCH,16 \?CND3 + ADD LAST-OBJECT,1 + PUT K-OBJECT-TBL,1,STACK + PUT K-OBJECT-TBL,0,1 +?CND3: ICALL RT-GET-OBJS,K-OBJECT-TBL,HERE,SEARCH + GETPT HERE,P?GLOBAL >PTR + PTSIZE PTR + DIV STACK,2 >N +?PRG5: DLESS? 'N,0 /?REP6 + GET K-OBJECT-TBL,0 + ADD STACK,1 >I + GET PTR,0 + PUT K-OBJECT-TBL,I,STACK + PUT K-OBJECT-TBL,0,I + ADD PTR,2 >PTR + JUMP ?PRG5 +?REP6: RETURN K-OBJECT-TBL + + + .FUNCT RT-GET-MEM:ANY:1:1,N,PTR + SET 'PTR,GL-FREE-PTR + ADD N,1 + MUL 2,STACK + ADD GL-FREE-PTR,STACK >GL-FREE-PTR + PUT PTR,0,N + RETURN PTR + + + .FUNCT RT-FREE-MEM:ANY:1:4,PTR,N,P,L + ASSIGNED? 'N /?CND1 + SET 'N,-1 +?CND1: LESS? N,0 \?CND3 + GET PTR,0 >N +?CND3: ADD N,1 + MUL 2,STACK >L + ADD PTR,L >P + SUB GL-FREE-PTR,P + COPYT P,PTR,STACK + SUB GL-FREE-PTR,L >GL-FREE-PTR + RETURN GL-FREE-PTR + + + .FUNCT RT-STOP-READ:ANY:0:0 + SET 'GL-INPUT-TIMEOUT,TRUE-VALUE + RTRUE + + + .FUNCT MOUSE-INPUT?:ANY:0:5,W,X1,Y1,X2,Y2,N + GET 0,27 + GET STACK,1 >GL-MOUSE-X + GET 0,27 + GET STACK,2 >GL-MOUSE-Y + ASSIGNED? 'W \TRUE + ASSIGNED? 'X1 /?CCL5 + EQUAL? W,-1 /TRUE + WINGET W,K-W-XPOS >X1 + WINGET W,K-W-YPOS >Y1 + WINGET W,K-W-XSIZE + ADD X1,STACK + SUB STACK,1 >X2 + WINGET W,K-W-YSIZE + ADD Y1,STACK + SUB STACK,1 >Y2 + LESS? GL-MOUSE-X,X1 /FALSE + GRTR? GL-MOUSE-X,X2 /FALSE + LESS? GL-MOUSE-Y,Y1 /FALSE + GRTR? GL-MOUSE-Y,Y2 /FALSE + SUB GL-MOUSE-X,X1 + ADD STACK,1 >GL-MOUSE-X + SUB GL-MOUSE-Y,Y1 + ADD STACK,1 >GL-MOUSE-Y + RTRUE +?CCL5: EQUAL? W,-1 /?CND16 + WINGET W,K-W-XPOS + SUB STACK,1 >N + ADD X1,N >X1 + ADD X2,N >X2 + WINGET W,K-W-YPOS + SUB STACK,1 >N + ADD Y1,N >Y1 + ADD Y2,N >Y2 +?CND16: LESS? GL-MOUSE-X,X1 /FALSE + GRTR? GL-MOUSE-X,X2 /FALSE + LESS? GL-MOUSE-Y,Y1 /FALSE + GRTR? GL-MOUSE-Y,Y2 /FALSE + SUB GL-MOUSE-X,X1 + ADD STACK,1 >GL-MOUSE-X + SUB GL-MOUSE-Y,Y1 + ADD STACK,1 >GL-MOUSE-Y + RTRUE + + + .FUNCT READ-INPUT:ANY:0:0,C,L,M,N,TBL,ACT,S?,Y,X,W,?TMP1 + MOUSE-LIMIT -1 + SET 'GL-FREE-PTR,K-JUNK-TBL + SET 'GL-VERB-TBL,K-DEFAULT-VERB-TBL + SET 'GL-PREP-TBL,FALSE-VALUE + CALL1 RT-DO-OBJECTS >GL-NOUN-TBL + PUTB K-FIRST-ENTRY-TBL,0,1 + PUTB K-FIRST-ENTRY-TBL,1,1 + PUTB K-MENU-TBL-TYPE,0,K-MENU-MANY-WORD + PUTB K-MENU-TBL-TYPE,1,K-MENU-OBJECT + PUT K-MENU-TBL,0,GL-VERB-TBL + PUT K-MENU-TBL,1,GL-NOUN-TBL + SET 'GL-INPUT-WINNER,CH-PLAYER + SET 'GL-INPUT-VERB,FALSE-VALUE + SET 'GL-INPUT-PREP1,FALSE-VALUE + SET 'GL-INPUT-PREP2,FALSE-VALUE + SET 'GL-MENU-NUM,0 + SET 'GL-ITEM-NUM,0 + SET 'GL-INPUT-STATE,0 + ICALL2 RT-PRINT-MENU,0 + ICALL2 RT-PRINT-MENU,1 + GET K-MENU-TBL,GL-MENU-NUM >TBL + SET 'L,1 + SCREEN 0 + WINATTR 0,A-BUFFER,O-CLEAR + WINGET 0,K-W-YCURPOS >Y + PRINTC 62 + PUTB P-INBUF,1,0 +?PRG1: SET 'S?,FALSE-VALUE + ICALL RT-HLIGHT-MENU,GL-MENU-NUM,L + SCREEN 0 + READ P-INBUF,P-LEXV >C + GETB P-INBUF,1 >N + EQUAL? C,K-CLICK1,K-CLICK2 \?CND3 + SET 'W,3 +?PRG5: CALL2 MOUSE-INPUT?,W + ZERO? STACK \?REP6 + IGRTR? 'W,5 \?PRG5 + SET 'W,-1 +?REP6: EQUAL? W,3,4 \?CCL13 + SUB W,3 >W + SUB GL-MOUSE-Y,1 + DIV STACK,GL-FONT-Y >?TMP1 + GETB K-FIRST-ENTRY-TBL,W + ADD ?TMP1,STACK >M + EQUAL? L,M \?CCL15 + EQUAL? GL-MENU-NUM,W /?CND14 +?CCL15: GET K-MENU-TBL,W + GET STACK,0 + GRTR? M,STACK /?CCL20 + ICALL RT-HLIGHT-MENU,GL-MENU-NUM,L,FALSE-VALUE + ICALL RT-HLIGHT-MENU,W,M +?CND14: SET 'GL-MENU-NUM,W + GET K-MENU-TBL,GL-MENU-NUM >TBL + SET 'L,M + SET 'C,K-F1 + JUMP ?CND3 +?CCL20: SOUND S-BEEP + JUMP ?PRG1 +?CCL13: EQUAL? W,5 \?CCL22 + CALL2 PIXELS-L,GL-MOUSE-Y >Y + CALL2 PIXELS-C,GL-MOUSE-X >X + EQUAL? Y,1 \?CCL25 + LESS? X,13 \?CCL28 + SET 'C,CR + CRLF + JUMP ?CND3 +?CCL28: SET 'C,K-F2 + JUMP ?CND3 +?CCL25: LESS? X,4 \?CCL31 + SET 'C,K-F3 + SET 'W,0 + JUMP ?CND29 +?CCL31: LESS? X,7 /?CCL33 + LESS? X,10 \?CCL33 + SET 'C,K-F4 + SET 'W,0 + JUMP ?CND29 +?CCL33: LESS? X,13 /?CCL37 + LESS? X,16 \?CCL37 + SET 'C,K-F3 + SET 'W,1 + JUMP ?CND29 +?CCL37: LESS? X,24 /?CCL41 + LESS? X,27 \?CCL41 + SET 'C,K-F4 + SET 'W,1 +?CND29: EQUAL? GL-MENU-NUM,W /?CND3 + GET K-MENU-TBL,W >M + GET M,0 + GRTR? STACK,0 \?CCL48 + ICALL RT-HLIGHT-MENU,GL-MENU-NUM,L,FALSE-VALUE + SET 'TBL,M + GETB K-FIRST-ENTRY-TBL,W >L + SET 'GL-MENU-NUM,W + GET TBL,0 + GRTR? L,STACK \?CCL51 + GET TBL,0 >L + JUMP ?CND3 +?CCL41: SOUND S-BEEP + JUMP ?PRG1 +?CCL51: GET TBL,L + ZERO? STACK \?CND3 + INC 'L +?CND3: SCREEN 0 + EQUAL? C,CR,LF /?REP2 + EQUAL? C,32 \?CCL57 + ADD P-INBUF,2 + PUTB STACK,N,32 + PRINTC 32 + INC 'N + PUTB P-INBUF,1,N + JUMP ?CND53 +?CCL48: SOUND S-BEEP + JUMP ?PRG1 +?CCL22: SOUND S-BEEP + JUMP ?PRG1 +?CCL57: EQUAL? C,K-F1 \?CCL59 + ZERO? TBL /?CCL62 + GET TBL,0 + GRTR? STACK,0 \?CCL62 + DIROUT K-D-TBL-ON,K-DIROUT-TBL + ICALL RT-PRINT-MENU-ENTRY,GL-MENU-NUM,L + DIROUT K-D-TBL-OFF + GET K-DIROUT-TBL,0 >M + SHIFT GL-INPUT-STATE,8 + BOR N,STACK + PUT K-ITEM-TBL,GL-ITEM-NUM,STACK + GRTR? N,0 \?CND65 + ADD P-INBUF,2 >?TMP1 + SUB N,1 + GETB ?TMP1,STACK + EQUAL? STACK,32 /?CND65 + ADD P-INBUF,2 + PUTB STACK,N,32 + PRINTC 32 + INC 'N +?CND65: ADD K-DIROUT-TBL,2 >?TMP1 + ADD 2,N + ADD P-INBUF,STACK + COPYT ?TMP1,STACK,M + ADD K-DIROUT-TBL,2 + PRINTT STACK,M + ADD N,M >N + ZERO? GL-INPUT-STATE \?CCL71 + EQUAL? GL-MENU-NUM,1 \?CCL71 + ADD P-INBUF,2 + PUTB STACK,N,44 + PRINTC 44 + INC 'N + JUMP ?CND69 +?CCL71: EQUAL? GL-INPUT-STATE,0,1 \?CND69 + ZERO? GL-MENU-NUM \?CND69 + GET TBL,L + GET STACK,1 + GET STACK,4 + BTST STACK,64 \?CND69 + ADD P-INBUF,2 + PUTB STACK,N,46 + PRINTC 46 + INC 'N +?CND69: ADD P-INBUF,2 + PUTB STACK,N,32 + PRINTC 32 + INC 'N + PUTB P-INBUF,1,N + LEX P-INBUF,P-LEXV + INC 'GL-ITEM-NUM + INPUT 1,1,RT-STOP-READ + EQUAL? GL-INPUT-STATE,0,1 \?CCL80 + ZERO? GL-MENU-NUM \?CCL80 + GET TBL,L + GET STACK,1 >GL-INPUT-VERB + GET GL-INPUT-VERB,4 + BTST STACK,64 \?CCL85 + SET 'GL-INPUT-STATE,0 + GETB K-FIRST-ENTRY-TBL,0 + EQUAL? STACK,1 \?CCL88 + ICALL RT-HLIGHT-MENU,GL-MENU-NUM,L,FALSE-VALUE + JUMP ?CND86 +?CCL88: PUTB K-FIRST-ENTRY-TBL,1,1 + ICALL2 RT-PRINT-MENU,GL-MENU-NUM +?CND86: SET 'L,1 + JUMP ?CND53 +?CCL85: SET 'GL-INPUT-STATE,2 + GET TBL,L >M + GET M,0 + GRTR? STACK,1 \?CND89 + GET M,2 >GL-INPUT-PREP1 +?CND89: GET GL-INPUT-VERB,3 >ACT + ZERO? GL-PREP-TBL /?CND91 + ICALL2 RT-FREE-MEM,GL-PREP-TBL +?CND91: SET 'GL-PREP-TBL,GL-FREE-PTR + PUT GL-PREP-TBL,0,0 + ICALL RT-GET-PREPS,ACT,GL-PREP-TBL + GET GL-PREP-TBL,0 + ADD STACK,1 + MUL STACK,2 + ADD GL-FREE-PTR,STACK >GL-FREE-PTR + PUT K-MENU-TBL,0,GL-PREP-TBL + PUTB K-FIRST-ENTRY-TBL,0,1 + PUTB K-MENU-TBL-TYPE,0,K-MENU-ONE-WORD + ICALL2 RT-PRINT-MENU,0 + SET 'TBL,FALSE-VALUE + GET GL-NOUN-TBL,0 + GRTR? STACK,0 \?CND53 + SET 'S?,TRUE-VALUE + JUMP ?CND53 +?CCL80: ZERO? GL-INPUT-STATE \?CCL96 + EQUAL? GL-MENU-NUM,1 \?CND53 + SET 'GL-INPUT-STATE,1 + SET 'S?,TRUE-VALUE + JUMP ?CND53 +?CCL96: EQUAL? GL-INPUT-STATE,2 \?CCL100 + EQUAL? GL-MENU-NUM,1 /?CCL102 + ZERO? GL-MENU-NUM \?CND53 + ZERO? GL-INPUT-PREP1 \?CND53 +?CCL102: EQUAL? GL-MENU-NUM,1 \?CCL109 + INC 'GL-INPUT-STATE + JUMP ?CND107 +?CCL109: GET TBL,L >GL-INPUT-PREP1 + GETB K-MENU-TBL-TYPE,GL-MENU-NUM + EQUAL? STACK,K-MENU-MANY-WORD \?CND107 + GET GL-INPUT-PREP1,1 >GL-INPUT-PREP1 +?CND107: ZERO? GL-PREP-TBL /?CND112 + ICALL2 RT-FREE-MEM,GL-PREP-TBL +?CND112: SET 'GL-PREP-TBL,GL-FREE-PTR + PUT GL-PREP-TBL,0,0 + GET GL-INPUT-VERB,3 + ICALL RT-GET-PREPS,STACK,GL-PREP-TBL,GL-INPUT-PREP1 + GET GL-PREP-TBL,0 + ADD STACK,1 + MUL STACK,2 + ADD GL-FREE-PTR,STACK >GL-FREE-PTR + PUT K-MENU-TBL,0,GL-PREP-TBL + PUTB K-FIRST-ENTRY-TBL,0,1 + PUTB K-MENU-TBL-TYPE,0,K-MENU-ONE-WORD + ICALL2 RT-PRINT-MENU,0 + SET 'S?,TRUE-VALUE + JUMP ?CND53 +?CCL100: EQUAL? GL-INPUT-STATE,3 \?CND53 + ZERO? GL-MENU-NUM \?CND53 + INC 'GL-INPUT-STATE + SET 'S?,TRUE-VALUE + JUMP ?CND53 +?CCL62: SOUND S-BEEP + JUMP ?CND53 +?CCL59: EQUAL? C,K-F2 \?CCL118 + GRTR? GL-ITEM-NUM,0 \?CCL121 + DEC 'GL-ITEM-NUM + GET K-ITEM-TBL,GL-ITEM-NUM >N + SHIFT N,-8 >M + BAND N,255 >N + PUTB P-INBUF,1,N + CURGET K-WIN-TBL + GET K-WIN-TBL,0 + CURSET STACK,1 + ERASE 1 + PRINTC 62 + ADD P-INBUF,2 + PRINTT STACK,N + EQUAL? GL-INPUT-STATE,M /?CND122 + EQUAL? M,0,1 \?CCL126 + PUTB K-FIRST-ENTRY-TBL,0,1 + PUTB K-FIRST-ENTRY-TBL,1,1 + PUTB K-MENU-TBL-TYPE,0,K-MENU-MANY-WORD + PUTB K-MENU-TBL-TYPE,1,K-MENU-OBJECT + PUT K-MENU-TBL,0,GL-VERB-TBL + PUT K-MENU-TBL,1,GL-NOUN-TBL + SET 'GL-MENU-NUM,0 + JUMP ?CND124 +?CCL126: EQUAL? M,2,3,4 \?CND124 + ZERO? GL-PREP-TBL /?CND128 + ICALL2 RT-FREE-MEM,GL-PREP-TBL +?CND128: SET 'GL-PREP-TBL,GL-FREE-PTR + PUT GL-PREP-TBL,0,0 + GET GL-INPUT-VERB,3 >ACT + EQUAL? M,2 \?CCL132 + ICALL RT-GET-PREPS,ACT,GL-PREP-TBL + JUMP ?CND130 +?CCL132: ICALL RT-GET-PREPS,ACT,GL-PREP-TBL,GL-INPUT-PREP1 +?CND130: GET GL-PREP-TBL,0 + ADD STACK,1 + MUL STACK,2 + ADD GL-FREE-PTR,STACK >GL-FREE-PTR + PUTB K-FIRST-ENTRY-TBL,0,1 + PUTB K-FIRST-ENTRY-TBL,1,1 + PUTB K-MENU-TBL-TYPE,0,K-MENU-ONE-WORD + PUTB K-MENU-TBL-TYPE,1,K-MENU-OBJECT + PUT K-MENU-TBL,0,GL-PREP-TBL + PUT K-MENU-TBL,1,GL-NOUN-TBL + EQUAL? M,3 \?CCL135 + SET 'GL-MENU-NUM,0 + JUMP ?CND124 +?CCL135: SET 'GL-MENU-NUM,1 +?CND124: ICALL2 RT-PRINT-MENU,0 + ICALL2 RT-PRINT-MENU,1 + SET 'GL-INPUT-STATE,M +?CND122: GET K-MENU-TBL,GL-MENU-NUM >TBL + SET 'L,1 + JUMP ?CND53 +?CCL121: SOUND S-BEEP + JUMP ?CND53 +?CCL118: EQUAL? C,K-F3 \?CCL137 + ADD 3,GL-MENU-NUM + SCREEN STACK + GETB K-FIRST-ENTRY-TBL,GL-MENU-NUM >M + WINGET -3,K-W-YSIZE + DIV STACK,GL-FONT-Y >N + GRTR? M,1 \?CCL140 + SUB M,N + LESS? STACK,1 \?CCL143 + PUTB K-FIRST-ENTRY-TBL,GL-MENU-NUM,1 + GRTR? L,N \?CND141 + SUB L,N >L + JUMP ?CND141 +?CCL143: SUB M,N + PUTB K-FIRST-ENTRY-TBL,GL-MENU-NUM,STACK + SUB L,N >L +?CND141: LESS? L,1 \?CCL148 + SET 'L,1 + JUMP ?CND146 +?CCL148: GET TBL,L + ZERO? STACK \?CND146 + DEC 'L +?CND146: ICALL2 RT-PRINT-MENU,GL-MENU-NUM + JUMP ?CND53 +?CCL140: GRTR? L,1 \?CCL151 + ICALL RT-HLIGHT-MENU,GL-MENU-NUM,L,FALSE-VALUE + SET 'L,1 + JUMP ?CND53 +?CCL151: SOUND S-BEEP + JUMP ?CND53 +?CCL137: EQUAL? C,K-F4 \?CCL153 + ADD 3,GL-MENU-NUM + SCREEN STACK + GETB K-FIRST-ENTRY-TBL,GL-MENU-NUM >M + WINGET -3,K-W-YSIZE + DIV STACK,GL-FONT-Y >N + GET TBL,0 + LESS? M,STACK \?CCL156 + ADD M,N >?TMP1 + GET TBL,0 + GRTR? ?TMP1,STACK \?CCL159 + GET TBL,0 + PUTB K-FIRST-ENTRY-TBL,GL-MENU-NUM,STACK + GET TBL,0 >L + JUMP ?CND157 +?CCL159: ADD M,N + PUTB K-FIRST-ENTRY-TBL,GL-MENU-NUM,STACK + ADD L,N >L +?CND157: GET TBL,0 + GRTR? L,STACK \?CCL162 + GET TBL,0 >L + JUMP ?CND160 +?CCL162: GET TBL,L + ZERO? STACK \?CND160 + INC 'L +?CND160: ICALL2 RT-PRINT-MENU,GL-MENU-NUM + JUMP ?CND53 +?CCL156: SOUND S-BEEP + JUMP ?CND53 +?CCL153: EQUAL? C,K-UP \?CCL165 + GRTR? L,1 \?CCL168 + ICALL RT-HLIGHT-MENU,GL-MENU-NUM,L,FALSE-VALUE + GETB K-FIRST-ENTRY-TBL,GL-MENU-NUM >M + WINGET -3,K-W-YSIZE + DIV STACK,GL-FONT-Y >N +?PRG169: EQUAL? L,M \?CND171 + SUB 0,GL-FONT-Y + SCROLL -3,STACK + DEC 'M + PUTB K-FIRST-ENTRY-TBL,GL-MENU-NUM,M +?CND171: DLESS? 'L,2 /?CND53 + GET TBL,L + ZERO? STACK /?PRG169 + JUMP ?CND53 +?CCL168: SOUND S-BEEP + JUMP ?CND53 +?CCL165: EQUAL? C,K-DOWN \?CCL178 + GET TBL,0 + LESS? L,STACK \?CCL181 + ICALL RT-HLIGHT-MENU,GL-MENU-NUM,L,FALSE-VALUE + GETB K-FIRST-ENTRY-TBL,GL-MENU-NUM >M + WINGET -3,K-W-YSIZE + DIV STACK,GL-FONT-Y >N +?PRG182: GET TBL,0 + SUB STACK,1 + IGRTR? 'L,STACK /?CND53 + ADD M,N + EQUAL? L,STACK \?CND186 + SCROLL -3,GL-FONT-Y + INC 'M + PUTB K-FIRST-ENTRY-TBL,GL-MENU-NUM,M +?CND186: GET TBL,L + ZERO? STACK /?PRG182 + JUMP ?CND53 +?CCL181: SOUND S-BEEP + JUMP ?CND53 +?CCL178: EQUAL? C,K-LEFT,K-RIGHT \?CND53 + ADD GL-MENU-NUM,1 + MOD STACK,2 >M + GET K-MENU-TBL,M >N + GET N,0 + GRTR? STACK,0 \?CCL193 + ICALL RT-HLIGHT-MENU,GL-MENU-NUM,L,FALSE-VALUE + SET 'TBL,N + GETB K-FIRST-ENTRY-TBL,GL-MENU-NUM + SUB L,STACK >?TMP1 + GETB K-FIRST-ENTRY-TBL,M + ADD ?TMP1,STACK >L + SET 'GL-MENU-NUM,M + GET TBL,0 + GRTR? L,STACK \?CCL196 + GET TBL,0 >L + JUMP ?CND53 +?CCL196: GET TBL,L + ZERO? STACK \?CND53 + INC 'L + JUMP ?CND53 +?CCL193: SOUND S-BEEP +?CND53: ZERO? S? /?PRG1 + ADD GL-MENU-NUM,1 + MOD STACK,2 >M + GET K-MENU-TBL,M + GET STACK,0 + GRTR? STACK,0 \?PRG1 + ZERO? TBL /?CND202 + ICALL RT-HLIGHT-MENU,GL-MENU-NUM,L,FALSE-VALUE +?CND202: SET 'GL-MENU-NUM,M + GETB K-FIRST-ENTRY-TBL,GL-MENU-NUM + EQUAL? STACK,1 /?CND204 + PUTB K-FIRST-ENTRY-TBL,GL-MENU-NUM,1 + ICALL2 RT-PRINT-MENU,GL-MENU-NUM +?CND204: GET K-MENU-TBL,GL-MENU-NUM >TBL + SET 'L,1 + JUMP ?PRG1 +?REP2: ICALL1 RT-SCRIPT-INBUF + SCREEN 0 + WINATTR 0,A-BUFFER,O-SET + RETURN C + + + .FUNCT SPECIAL-CONTRACTION?:ANY:1:1,PTR + RFALSE + + + .FUNCT EXPAND-BE-CONTRACTIONS:ANY:0:0,LEN,PTR,OPTR,N,WD,SPWD,L,?TMP1 + GETB P-LEXV,P-LEXWORDS >LEN + SET 'PTR,P-LEXV+2 + SET 'OPTR,PTR + SET 'L,LEN +?PRG1: SET 'SPWD,FALSE-VALUE + DLESS? 'L,0 \?CCL5 + PUTB P-LEXV,P-LEXWORDS,LEN + RTRUE +?CCL5: GET PTR,0 >WD + ZERO? WD /?CCL7 + GET PTR,P-LEXELEN + EQUAL? STACK,W?APOSTROPHE \?CCL7 + GET P-QA-WORDS1,0 + INTBL? WD,P-QA-WORDS1+2,STACK >N \?PRD12 + SUB N,P-QA-WORDS1 + DIV STACK,2 >N + GET P-QA-WORDS2,N >?TMP1 + GET PTR,4 + EQUAL? ?TMP1,STACK /?CTR6 +?PRD12: CALL2 SPECIAL-CONTRACTION?,PTR >SPWD + ZERO? SPWD /?CCL7 +?CTR6: ZERO? SPWD /?CCL17 + PUSH 8 + JUMP ?CND15 +?CCL17: PUSH 4 +?CND15: ADD PTR,STACK >?TMP1 + MUL L,4 + COPYT ?TMP1,PTR,STACK + ZERO? SPWD /?CCL20 + PUT PTR,0,SPWD + DEC 'L + DEC 'LEN + JUMP ?CND18 +?CCL20: GET P-QB-WORDS-1,N >WD + PUT PTR,0,WD + GET P-QB-WORDS-2,N >WD + PUT PTR,P-LEXELEN,WD +?CND18: DEC 'L + DEC 'LEN + JUMP ?PRG1 +?CCL7: EQUAL? WD,W?APOSTROPHE \?CCL22 + GET PTR,P-LEXELEN + EQUAL? STACK,W?S /?CCL22 + EQUAL? OPTR,PTR /?CCL22 + SUB PTR,4 >WD + ZERO? WD /?CCL22 + GETB WD,2 + ADD -1,STACK >?TMP1 + GETB WD,3 + ADD ?TMP1,STACK + GETB P-INBUF,STACK + EQUAL? STACK,115,122 \?CCL22 + SUB PTR,P-LEXV + DIV STACK,2 + ADD P-LEXELEN,STACK + ICALL MAKE-ROOM-FOR-TOKENS,1,P-LEXV,STACK + PUT PTR,P-LEXELEN,W?S + INC 'L + INC 'LEN + JUMP ?PRG1 +?CCL22: ADD PTR,4 >PTR + JUMP ?PRG1 + + + .FUNCT TELL-THE:ANY:1:1,OBJ,TMP + EQUAL? OBJ,PLAYER \?CCL3 + PRINTI "you" + RTRUE +?CCL3: CALL2 GET-OWNER,OBJ >TMP + ZERO? TMP /?CCL6 + EQUAL? TMP,PLAYER \?CCL9 + PRINTI "your " + JUMP ?CND4 +?CCL9: EQUAL? TMP,OBJ /?CND4 + ICALL2 TELL-THE,TMP + PRINTI "'s " + JUMP ?CND4 +?CCL6: FSET? OBJ,NARTICLEBIT /?CND4 + PRINTI "the " +?CND4: CALL2 RT-PRINT-DESC,OBJ + RSTACK + + + .FUNCT TELL-CTHE:ANY:1:1,OBJ,TMP + EQUAL? OBJ,PLAYER \?CCL3 + PRINTI "You" + RTRUE +?CCL3: CALL2 GET-OWNER,OBJ >TMP + ZERO? TMP /?CCL6 + EQUAL? TMP,PLAYER \?CCL9 + PRINTI "Your " + JUMP ?CND4 +?CCL9: EQUAL? TMP,OBJ /?CND4 + ICALL2 TELL-CTHE,TMP + PRINTI "'s " + JUMP ?CND4 +?CCL6: FSET? OBJ,NARTICLEBIT /?CND4 + PRINTI "The " +?CND4: CALL2 RT-PRINT-DESC,OBJ + RSTACK + + + .FUNCT NAKED-DIR?:ANY:0:0,WCNUM,LEN + GET TLEXV,0 >LEN + ZERO? LEN /FALSE + GET LEN,4 >WCNUM + ZERO? WCNUM \?CND3 + GET LEN,3 >LEN + GET LEN,4 >WCNUM +?CND3: BTST WCNUM,32768 /FALSE + BAND WCNUM,64 + BAND STACK,32767 + ZERO? STACK /FALSE + EQUAL? P-LEN,1 \?CCL11 + RETURN LEN +?CCL11: SUB TLEXV,P-LEXV + LESS? STACK,234 /?CND9 + RETURN LEN +?CND9: GET TLEXV,P-LEXELEN >WCNUM + EQUAL? WCNUM,W?COMMA,W?AND \?CND13 + RETURN LEN +?CND13: GET WCNUM,4 >WCNUM + BAND WCNUM,32768 + EQUAL? STACK,-32768 \FALSE + BAND WCNUM,32769 + BAND STACK,32767 + ZERO? STACK /FALSE + RETURN LEN + + + .FUNCT PARSER:ANY:0:0,OWINNER,LEN,N,PV,?TMP1 + ZERO? P-DBUG /?CND2 + PRINTI "[Reset of PMEM: " + PRINTN PMEM-WORDS-USED + PRINTI " words used.] +" +?CND2: ICALL1 PMEM-RESET + SET 'ERROR-PRIORITY,255 + SET 'ERROR-STRING,FALSE-VALUE + SET 'OWINNER,WINNER + GRTR? P-CONT,0 \?CCL6 + SET 'TLEXV,P-CONT + ZERO? VERBOSITY /?CND7 + EQUAL? PLAYER,WINNER \?CND7 + CRLF +?CND7: SET 'P-CONT,FALSE-VALUE + JUMP ?CND4 +?CCL6: SET 'WINNER,PLAYER + ZERO? P-OFLAG \?CND11 + GET OOPS-TABLE,O-PTR + ZERO? STACK \?CND11 + PUT OOPS-TABLE,O-END,FALSE-VALUE +?CND11: LOC WINNER + IN? STACK,ROOMS \?CND15 + LOC WINNER >HERE +?CND15: ZERO? LIT /?CCL18 + EQUAL? HERE,LIT /?CND17 + IN? LIT,HERE /?CND17 + CALL2 VISIBLE?,LIT + ZERO? STACK \?CND17 +?CCL18: CALL1 LIT? >LIT +?CND17: GET 0,8 + BTST STACK,F-REFRESH \?CND24 + ICALL1 V-$REFRESH +?CND24: ZERO? VERBOSITY /?CND26 + CRLF +?CND26: ICALL1 UPDATE-STATUS-LINE + ICALL1 READ-INPUT + GETB P-LEXV,P-LEXWORDS >LEN + ZERO? LEN /?CND29 + INTBL? W?QUOTE,P-LEXV+2,LEN,132 >N \?CND29 + ICALL FIX-QUOTATIONS,LEN,N +?CND29: ICALL1 EXPAND-BE-CONTRACTIONS + GETB P-LEXV,P-LEXWORDS >P-LEN + SET 'TLEXV,P-LEXV+2 +?CND4: GET TLEXV,0 + EQUAL? STACK,W?PERIOD,W?THEN \?CND33 + ADD TLEXV,4 >TLEXV + DEC 'P-LEN +?CND33: GET TLEXV,0 + EQUAL? STACK,W?YOU \?CND35 + ICALL1 IGNORE-FIRST-WORD +?CND35: GET TLEXV,0 + EQUAL? STACK,W?GO,W?TO \?CND37 + ICALL1 IGNORE-FIRST-WORD +?CND37: ZERO? P-LEN \?CND39 + ICALL1 BEG-PARDON + RFALSE +?CND39: CALL1 NAKED-DIR? >LEN + ZERO? LEN /?CCL43 + PUT STATE-STACK,0,20 + PUT DATA-STACK,0,20 + XPUSH LEN,DATA-STACK /?BOGUS44 +?BOGUS44: ICALL2 RED-SD,1 + SET 'P-CONT,FALSE-VALUE + SET 'P-OFLAG,0 + SET 'P-WORDS-AGAIN,1 + PUT OOPS-TABLE,O-END,FALSE-VALUE + PUT OOPS-TABLE,O-START,TLEXV + PUTB P-LEXV,P-LEXWORDS,P-LEN + COPYT P-LEXV,G-LEXV,LEXV-LENGTH-BYTES + COPYT P-INBUF,G-INBUF,61 + PUT PARSE-RESULT,13,0 + DEC 'P-LEN + LESS? 0,P-LEN \TRUE + ADD TLEXV,4 >TLEXV + GET TLEXV,0 >LEN + ZERO? LEN /TRUE + GET LEN,4 >LEN + ZERO? LEN /TRUE + BAND LEN,32768 + EQUAL? STACK,-32768 \TRUE + BAND LEN,32769 + BAND STACK,32767 + ZERO? STACK /TRUE + SET 'P-WORDS-AGAIN,P-WORD-NUMBER + DLESS? 'P-LEN,1 /TRUE + ADD TLEXV,4 >P-CONT + RTRUE +?CCL43: GET TLEXV,0 + EQUAL? STACK,W?OOPS,W?O \?CCL55 + CALL2 DO-OOPS,OWINNER + ZERO? STACK \?CND41 + RFALSE +?CCL55: ZERO? P-OFLAG \?CND41 + LESS? P-CONT,1 \?CND41 + PUT OOPS-TABLE,O-END,FALSE-VALUE +?CND41: SET 'P-CONT,FALSE-VALUE + GET TLEXV,0 + EQUAL? STACK,W?AGAIN,W?G \?CCL63 + CALL2 DO-AGAIN,OWINNER + ZERO? STACK \?CND61 + RFALSE +?CCL63: PUTB P-LEXV,P-LEXWORDS,P-LEN + COPYT P-LEXV,G-LEXV,LEXV-LENGTH-BYTES + COPYT P-INBUF,G-INBUF,61 + PUT OOPS-TABLE,O-START,TLEXV + PUT OOPS-TABLE,O-LENGTH,P-LEN + GET OOPS-TABLE,O-END + ZERO? STACK \?CND61 + GETB P-LEXV,P-LEXWORDS + MUL 4,STACK >LEN + DEC 'LEN + GETB TLEXV,LEN >?TMP1 + DEC 'LEN + GETB TLEXV,LEN + ADD ?TMP1,STACK + PUT OOPS-TABLE,O-END,STACK +?CND61: SET 'P-WON,FALSE-VALUE + SET 'P-WALK-DIR,FALSE-VALUE + CALL2 PARSE-IT,FALSE-VALUE >PV +?PRG68: ZERO? PV \?CCL72 + CALL1 PRINT-PARSER-FAILURE >PV + JUMP ?PRG68 +?CCL72: EQUAL? PV,1 /FALSE + PUT OOPS-TABLE,O-PTR,FALSE-VALUE + CALL1 GAME-VERB? + ZERO? STACK \?CND75 + SET 'P-OFLAG,0 +?CND75: GET PV,0 >LEN + EQUAL? LEN,W?TWICE,W?THRICE \?CND77 + GET OOPS-TABLE,O-START + INTBL? LEN,STACK,P-WORDS-AGAIN,132 >N \?CND77 + ICALL CHANGE-LEXV,N,W?ONCE + EQUAL? LEN,W?THRICE \?CCL83 + PUSH 2 + JUMP ?CND81 +?CCL83: PUSH 1 +?CND81: ICALL2 DO-IT-AGAIN,STACK + CALL2 PARSE-IT,FALSE-VALUE >PV + JUMP ?PRG68 +?CND77: GET GWIM-MSG,1 + ZERO? STACK /?CND84 + ICALL1 TELL-GWIM-MSG + PUT GWIM-MSG,1,0 +?CND84: GET GWIM-MSG,2 + ZERO? STACK /TRUE + PRINTI "[""" + GET GWIM-MSG,2 + ICALL2 NP-PRINT,STACK + PRINTI """ meaning " + GET GWIM-MSG,3 + ICALL2 TELL-THE,STACK + PRINTI "] +" + PUT GWIM-MSG,2,0 + RTRUE + + + .FUNCT GAME-VERB?:ANY:0:0 + EQUAL? PRSA,V?COMMAND,V?RECORD,V?UNRECORD /TRUE + EQUAL? PRSA,V?QUIT,V?RESTART,V?RESTORE /TRUE + EQUAL? PRSA,V?SAVE,V?SCRIPT,V?VERIFY /TRUE + EQUAL? PRSA,V?DESC-LEVEL,V?$REFRESH,V?VERSION /TRUE + EQUAL? PRSA,V?DIAGNOSE /TRUE + RFALSE + + + .FUNCT RED-SD:ANY:0:2,N,TYP,V,SYN,NEW-OBJECT + SET 'V,W?WALK + PUT PARSE-RESULT,1,V + GET V,3 + GET STACK,2 + ADD STACK,2 >SYN + PUT PARSE-RESULT,3,SYN + GET SYN,0 + PUT PARSE-RESULT,4,STACK + PUT PARSE-RESULT,7,FALSE-VALUE + POP DATA-STACK + GETB STACK,6 >P-WALK-DIR + CALL DO-PMEM-ALLOC,4,NOUN-PHRASE-MIN-LENGTH >NEW-OBJECT + PUT NEW-OBJECT,1,1 + PUT NEW-OBJECT,3,P-WALK-DIR + PUT PARSE-RESULT,5,NEW-OBJECT + RTRUE + + + .FUNCT P-P:ANY:1:1,X + CALL2 PMEM?,X + ZERO? STACK /?CCL3 + GETB X,1 + EQUAL? STACK,1 \?CCL6 + PRINTI "#ADJS[" + ICALL2 ADJS-PRINT,X + PRINTC 93 + RTRUE +?CCL6: GETB X,1 + EQUAL? STACK,2 \?CCL8 + PRINTI "#NP[" + ICALL2 NP-PRINT,X + PRINTC 93 + RTRUE +?CCL8: GETB X,1 + EQUAL? STACK,3 \?CCL10 + PRINTI "#NPP[" +?PRG11: GET X,2 + ZERO? STACK /?CND13 + GET X,2 + ICALL2 P-P,STACK + PRINTC 32 +?CND13: GET X,3 + ZERO? STACK /?CND15 + GET X,3 + ICALL2 P-P,STACK + PRINTC 32 +?CND15: GET X,1 >X + ZERO? X \?PRG11 + PRINTC 93 + RTRUE +?CCL10: GETB X,1 + EQUAL? STACK,4 \?CCL20 + PRINTI "#NOUN-PHRASE[" + ICALL2 NP-PRINT,X + PRINTC 93 + RTRUE +?CCL20: GETB X,1 + EQUAL? STACK,5 /?CTR21 + GETB X,1 + EQUAL? STACK,6 \?CCL22 +?CTR21: PRINTI "#PP[" + PRINTI "W?" + GET X,1 + PRINTB STACK + PRINTC 32 + GET X,2 + ICALL2 P-P,STACK + PRINTC 93 + RTRUE +?CCL22: PRINTI "#PMEM[]" + RTRUE +?CCL3: EQUAL? X,PARSE-RESULT \?CCL26 + PRINTI "RESULT" + RTRUE +?CCL26: LESS? VOCAB,PRSTBL \?PRD30 + LESS? VOCAB,X \?PRD30 + LESS? X,PRSTBL /?CTR27 +?PRD30: LESS? 0,VOCAB \?CCL28 + LESS? PRSTBL,0 \?CCL28 + LESS? VOCAB,X /?CTR27 + LESS? X,PRSTBL \?CCL28 +?CTR27: PRINTI "W?" + PRINTB X + RTRUE +?CCL28: PRINTN X + RTRUE + + + .FUNCT PARSE-IT:ANY:0:1,V,RES,NUM,W,SAV-LEXV,TMP,TV,T2,?TMP1 + SET 'SPLITS,0 + PUT SPLIT-STACK,0,0 + SET 'ERROR-PRIORITY,255 + PUT ERROR-ARGS,1,0 + SET 'P-OLEN,P-LEN + SET 'OTLEXV,TLEXV + SET 'W,WINNER + SET 'SAV-LEXV,TLEXV +?PRG1: INC 'NUM + ICALL2 BE-PATIENT,NUM + PUT STATE-STACK,0,20 + XPUSH 1,STATE-STACK /?BOGUS3 +?BOGUS3: PUT DATA-STACK,0,20 + ZERO? P-DBUG /?CND4 + PRINTI "[Reset of PMEM: " + PRINTN PMEM-WORDS-USED + PRINTI " words used.] +" +?CND4: ICALL1 PMEM-RESET + SET 'P-WORD-NUMBER,0 + SET 'TLEXV,SAV-LEXV + SET 'P-LEN,P-OLEN + SET 'WINNER,W + PUT GWIM-MSG,0,0 + PUT GWIM-MSG,1,0 + PUT GWIM-MSG,2,0 + PUT GWIM-MSG,3,0 + COPYT PARSE-RESULT,0,PARSE-RESULT-LEN + CALL2 PARSE-SENTENCE,PARSE-RESULT >RES + EQUAL? RES,PARSER-RESULT-AGAIN \?CCL8 + PUT SPLIT-STACK,0,0 + SET 'ERROR-PRIORITY,255 + SET 'P-OLEN,P-LEN + SET 'SAV-LEXV,TLEXV + JUMP ?PRG1 +?CCL8: LESS? RES,PARSER-RESULT-WON \?REP2 + GET SPLIT-STACK,0 + ZERO? STACK /?REP2 + ZERO? RES /?REP2 +?PRG14: GET SPLIT-STACK,0 >T2 + SUB T2,1 + GET SPLIT-STACK,STACK + ZERO? STACK \?CCL18 + GET SPLIT-STACK,T2 >TMP + ZERO? TMP /?CTR20 + GET TMP,0 + ZERO? STACK \?PRD24 + GET TMP,1 + ZERO? STACK /?CTR20 +?PRD24: ADD TMP,6 >TV + GET TV,0 + ZERO? STACK \?CCL21 + GET TV,1 + ZERO? STACK \?CCL21 +?CTR20: SUB T2,2 + PUT SPLIT-STACK,0,STACK + JUMP ?CND16 +?CCL21: PUT SPLIT-STACK,T2,TV + JUMP ?REP15 +?CCL18: GET SPLIT-STACK,T2 >?TMP1 + SUB T2,1 + GET SPLIT-STACK,STACK + EQUAL? ?TMP1,STACK \?CCL30 + SUB T2,2 + PUT SPLIT-STACK,0,STACK +?CND16: GET SPLIT-STACK,0 + ZERO? STACK \?PRG14 +?REP15: GET SPLIT-STACK,0 + ZERO? STACK /?REP2 + ZERO? P-DBUG /?PRG1 + PRINTI "[Splits left, trying again...] +" + JUMP ?PRG1 +?CCL30: GET SPLIT-STACK,T2 + ADD 1,STACK + PUT SPLIT-STACK,T2,STACK + JUMP ?REP15 +?REP2: SUB 0,NUM + ICALL2 BE-PATIENT,STACK + EQUAL? RES,PARSER-RESULT-WON \?CCL39 + RETURN PARSER-RESULT +?CCL39: ZERO? RES /TRUE + RFALSE + + + .FUNCT PARSE-SENTENCE:ANY:1:1,PR,SPLIT-NUM,RES-WCN,CURRENT-TOKEN,CAV,OFFS,T2,CURRENT-ACTION,REDUCTION,N,?TMP1 + SET 'SPLIT-NUM,-1 + GET TLEXV,0 >CURRENT-TOKEN + CATCH >PARSE-SENTENCE-ACTIVATION + ZERO? CURRENT-TOKEN \?CND1 + CALL2 UNKNOWN-WORD,TLEXV >CURRENT-TOKEN + ZERO? CURRENT-TOKEN \?CND1 + RETURN PARSER-RESULT-DEAD +?CND1: ZERO? P-DBUG /?PRG7 + PRINTI "[Next token: " + PRINTB CURRENT-TOKEN + PRINTI "] +" +?PRG7: EQUAL? CURRENT-TOKEN,W?S \?CCL11 + SUB TLEXV,4 + GET STACK,0 + EQUAL? STACK,W?APOSTROPHE \?CCL11 + SET 'RES-WCN,32 + JUMP ?CND9 +?CCL11: GET CURRENT-TOKEN,4 >RES-WCN +?CND9: ZERO? RES-WCN \?CCL16 + GET CURRENT-TOKEN,3 + ZERO? STACK \?CCL19 + CALL BUZZER-WORD?,CURRENT-TOKEN,TLEXV + ZERO? STACK /?CND20 + MUL P-LEXELEN,P-WORD-NUMBER + ADD STACK,P-LEXSTART + PUT OOPS-TABLE,O-PTR,STACK + RETURN PARSER-RESULT-DEAD +?CND20: SET 'CAV,FALSE-VALUE +?CND14: ZERO? CAV /?PST46 + GET CAV,2 >CURRENT-ACTION + JUMP ?PRG48 +?CCL19: GET CURRENT-TOKEN,3 >CURRENT-TOKEN + JUMP ?PRG7 +?CCL16: BTST RES-WCN,32768 /?CCL24 + SET 'OFFS,1 + JUMP ?CND22 +?CCL24: SET 'OFFS,0 +?CND22: CALL2 PEEK-PSTACK,STATE-STACK + GET ACTION-TABLE,STACK + GET STACK,0 + CALL GET-TERMINAL-ACTION,RES-WCN,STACK,OFFS >CAV + ZERO? CAV /?CND25 + BAND RES-WCN,32767 >?TMP1 + GET CAV,OFFS + BCOM STACK + BAND ?TMP1,STACK + ZERO? STACK /?CND25 + ADD CAV,6 + CALL GET-TERMINAL-ACTION,RES-WCN,STACK,OFFS + ZERO? STACK /?CND25 + ADD SPLIT-NUM,2 >SPLIT-NUM + ADD SPLIT-NUM,1 + GET SPLIT-STACK,0 >T2 + GRTR? STACK,T2 \?CCL32 + INC 'SPLITS + INC 'T2 + LESS? T2,21 /?CND33 + ICALL1 P-NO-MEM-ROUTINE +?CND33: PUT SPLIT-STACK,0,T2 + PUT SPLIT-STACK,T2,0 + INC 'T2 + LESS? T2,21 /?CND35 + ICALL1 P-NO-MEM-ROUTINE +?CND35: PUT SPLIT-STACK,0,T2 + PUT SPLIT-STACK,T2,CAV + ZERO? P-DBUG /?CND25 + PRINTI "[New split on a" + PRINTI " word" + PRINTI " (split #" + PRINTN SPLITS + PRINTI ") at depth " + DIV T2,2 + PRINTN STACK + PRINTI "; word class: " + PRINTN RES-WCN + PRINTI "; left: " + ADD CAV,6 + GET STACK,0 + PRINTN STACK + PRINTI ".] +" + JUMP ?CND25 +?CCL32: GET SPLIT-STACK+2,SPLIT-NUM >CAV + ZERO? CAV /?CND39 + CALL GET-TERMINAL-ACTION,RES-WCN,CAV,OFFS >CAV +?CND39: PUT SPLIT-STACK+2,SPLIT-NUM,CAV +?CND25: ZERO? CAV \?CND14 + ZERO? P-DBUG /?CND43 + PRINTI "[A parse loses.] +" +?CND43: RETURN PARSER-RESULT-FAILED +?PST46: SET 'CURRENT-ACTION,0 +?PRG48: ZERO? CAV /?CCL52 + BAND CURRENT-ACTION,65280 + ZERO? STACK /?CCL52 + ADD SPLIT-NUM,2 >SPLIT-NUM + ADD SPLIT-NUM,1 + GET SPLIT-STACK,0 >T2 + GRTR? STACK,T2 \?CCL57 + INC 'SPLITS + INC 'T2 + LESS? T2,21 /?CND58 + ICALL1 P-NO-MEM-ROUTINE +?CND58: PUT SPLIT-STACK,0,T2 + GETB CURRENT-ACTION,0 + PUT SPLIT-STACK,T2,STACK + INC 'T2 + LESS? T2,21 /?CND60 + ICALL1 P-NO-MEM-ROUTINE +?CND60: PUT SPLIT-STACK,0,T2 + PUT SPLIT-STACK,T2,1 + ZERO? P-DBUG /?CND62 + PRINTI "[New split on a" + PRINTI "n action" + PRINTI " (split #" + PRINTN SPLITS + PRINTI ") at depth " + DIV T2,2 + PRINTN STACK + PRINTI ", " + GETB CURRENT-ACTION,0 + PRINTN STACK + PRINTI " cases.] +" +?CND62: GETB CURRENT-ACTION,1 >CURRENT-ACTION + JUMP ?CND55 +?CCL57: GET SPLIT-STACK+2,SPLIT-NUM + GETB CURRENT-ACTION,STACK >CURRENT-ACTION +?CND55: ZERO? P-DBUG /?CND50 + PRINTI "[Using action " + PRINTN CURRENT-ACTION + PRINTI ".] +" + JUMP ?CND50 +?CCL52: ZERO? CAV /?CND50 + ZERO? CURRENT-ACTION \?CND50 + ZERO? P-DBUG /?CND69 + PRINTI "[A parse loses.] +" +?CND69: RETURN PARSER-RESULT-FAILED +?CND50: ZERO? CAV /?CTR72 + LESS? CURRENT-ACTION,128 \?CCL73 +?CTR72: ZERO? CAV /?CND76 + ZERO? P-DBUG /?CND78 + PRINTI "[Pushing: " + PRINTB CURRENT-TOKEN + PRINTI "] +" +?CND78: XPUSH CURRENT-TOKEN,DATA-STACK \?CCL82 + XPUSH CURRENT-ACTION,STATE-STACK /?CND76 +?CCL82: ICALL1 P-NO-MEM-ROUTINE +?CND76: DLESS? 'P-LEN,1 \?CCL87 + SET 'CURRENT-TOKEN,W?END.OF.INPUT + ADD 1,P-WORD-NUMBER >P-WORDS-AGAIN + SET 'P-CONT,FALSE-VALUE + SET 'P-LEN,0 + JUMP ?CND85 +?CCL87: INC 'P-WORD-NUMBER + ADD TLEXV,4 >TLEXV + GET TLEXV,0 >CURRENT-TOKEN + GRTR? TLEXV,OTLEXV \?CND85 + SET 'OTLEXV,TLEXV +?CND85: ZERO? CURRENT-TOKEN \?CCL92 + CALL2 UNKNOWN-WORD,TLEXV >CURRENT-TOKEN + ZERO? CURRENT-TOKEN \?CND90 + RETURN PARSER-RESULT-DEAD +?CCL92: EQUAL? CURRENT-TOKEN,W?THEN,W?!,W?PERIOD /?CCL95 + EQUAL? CURRENT-TOKEN,W?? \?CND90 +?CCL95: SET 'P-WORDS-AGAIN,P-WORD-NUMBER + DLESS? 'P-LEN,1 /?CCL100 + ADD TLEXV,4 >P-CONT + JUMP ?CND90 +?CCL100: SET 'P-CONT,FALSE-VALUE +?CND90: ZERO? P-DBUG /?PRG7 + PRINTI "[Next token: " + PRINTB CURRENT-TOKEN + PRINTI "] +" + JUMP ?PRG7 +?CCL73: GRTR? CURRENT-ACTION,128 \?CCL104 + SUB CURRENT-ACTION,129 + GET REDUCTION-TABLE,STACK >REDUCTION + ZERO? P-DBUG /?CND107 + PRINTI "[Reducing " + GET REDUCTION,5 + PRINT STACK + CRLF + PRINTI "Args:" + GET REDUCTION,0 >N +?PRG109: DLESS? 'N,0 \?CND111 + PRINTI " ..." +?CND107: GET REDUCTION,0 >RES-WCN + ZERO? RES-WCN /?CND113 + FSTACK RES-WCN,STATE-STACK +?CND113: SET 'CURRENT-REDUCTION,REDUCTION + SET 'P-RUNNING,TLEXV + GET REDUCTION,1 >?TMP1 + GET REDUCTION,0 + CALL ?TMP1,STACK >RES-WCN + SET 'TLEXV,P-RUNNING + GRTR? TLEXV,OTLEXV \?CND115 + SET 'OTLEXV,TLEXV +?CND115: LESS? P-LEN,1 \?CCL119 + SET 'CURRENT-TOKEN,W?END.OF.INPUT + JUMP ?CND117 +?CND111: PRINTC 32 + CALL PEEK-PSTACK,DATA-STACK,N + ICALL2 P-P,STACK + JUMP ?PRG109 +?CCL119: GET TLEXV,0 >CURRENT-TOKEN +?CND117: SET 'CURRENT-REDUCTION,FALSE-VALUE + ZERO? RES-WCN \?CTR121 + RETURN PARSER-RESULT-FAILED +?CTR121: XPUSH RES-WCN,DATA-STACK /?CND120 + ICALL1 P-NO-MEM-ROUTINE +?CND120: CALL2 PEEK-PSTACK,STATE-STACK + GET ACTION-TABLE,STACK >?TMP1 + GET REDUCTION,4 + CALL GET-NONTERMINAL-ACTION,?TMP1,STACK + XPUSH STACK,STATE-STACK /?CND125 + ICALL1 P-NO-MEM-ROUTINE +?CND125: ZERO? P-DBUG /?PRG7 + PRINTI " result: " + ICALL2 P-P,RES-WCN + PRINTI ", new state " + CALL2 PEEK-PSTACK,STATE-STACK + PRINTN STACK + PRINTI "] +" + JUMP ?PRG7 +?CCL104: POP DATA-STACK >PARSER-RESULT + RETURN PARSER-RESULT-WON + + + .FUNCT GET-TERMINAL-ACTION:ANY:3:3,TYPE,STATE,OFFS,V + ZERO? STATE /FALSE + BAND TYPE,32767 >TYPE + SET 'V,STATE +?PRG4: GET V,0 + ZERO? STACK \?CND6 + GET V,1 + ZERO? STACK /FALSE +?CND6: GET V,OFFS + BAND TYPE,STACK + ZERO? STACK /?CND10 + RETURN V +?CND10: ADD V,6 >V + JUMP ?PRG4 + + + .FUNCT GET-NONTERMINAL-ACTION:ANY:2:2,STATE,TYPE,V + GET STATE,1 + ZERO? STACK /FALSE + GET STATE,1 >V +?PRG4: GETB V,0 + ZERO? STACK /FALSE + GETB V,0 + EQUAL? STACK,TYPE \?CND6 + GETB V,1 + RSTACK +?CND6: ADD V,2 >V + JUMP ?PRG4 + + + .FUNCT BE-PATIENT:ANY:1:1,NUM,LIM + SET 'LIM,16 + GETB 0,30 + EQUAL? STACK,APPLE-2E,APPLE-2C,APPLE-2GS \?CND1 + SET 'LIM,4 +?CND1: LESS? NUM,0 \?CCL5 + ZERO? P-DBUG /?CND6 + PRINTI "[Total: " + SUB 0,NUM + PRINTN STACK + PRINTI " passes.] +" +?CND6: SUB 1,LIM + LESS? NUM,STACK \FALSE + SET 'P-RESPONDED,FALSE-VALUE + BUFOUT TRUE-VALUE + PRINTR "]" +?CCL5: MOD NUM,LIM + ZERO? STACK \FALSE + EQUAL? NUM,LIM \?CCL15 + SET 'P-RESPONDED,TRUE-VALUE + PRINTI "[Please be patient..." + JUMP ?CND13 +?CCL15: PRINTC 46 +?CND13: BUFOUT FALSE-VALUE + RTRUE + + + .FUNCT MAIN-LOOP:ANY:0:0,X +?PRG1: CALL1 MAIN-LOOP-1 >X + JUMP ?PRG1 + + + .FUNCT MAIN-LOOP-1:ANY:0:0,ICNT,OCNT,NUM,OBJ,V,OBJ1,NP,NP1,XX,CNT,TMP + CALL1 PARSER >P-WON + ZERO? P-WON /?CCL3 +?PRG4: GET PARSE-RESULT,4 >PRSA + EQUAL? PRSA,V?UNDO \?CCL8 + SET 'PRSS,FALSE-VALUE + SET 'PRSQ,FALSE-VALUE + CALL2 PERFORM,PRSA + RSTACK +?CCL8: ISAVE >P-CAN-UNDO + EQUAL? P-CAN-UNDO,2 \?CND6 + EQUAL? PRSA,V?SAVE \?CCL13 + ICALL1 CANT-UNDO + RFALSE +?CCL13: SET 'P-CONT,-1 + ICALL1 V-$REFRESH + RFALSE +?CND6: GET PARSE-RESULT,5 >P-PRSO + GET PARSE-RESULT,6 >P-PRSI + ZERO? P-PRSO /?CCL17 + GET P-PRSO,3 + EQUAL? INTDIR,STACK \?CCL17 + GET P-PRSO,4 + GET STACK,2 + GETB STACK,6 >P-DIRECTION + JUMP ?CND15 +?CCL17: ZERO? P-PRSI /?CND15 + GET P-PRSI,3 + EQUAL? INTDIR,STACK \?CND15 + GET P-PRSI,4 + GET STACK,2 + GETB STACK,6 >P-DIRECTION +?CND15: GET PARSE-RESULT,1 >P-PRSA-WORD + SET 'CLOCK-WAIT,FALSE-VALUE + SET 'ICNT,0 + SET 'OCNT,0 + ZERO? P-PRSI /?CND23 + GET P-PRSI,1 >ICNT + ZERO? ICNT /?CND23 + SET 'P-MULT,ICNT +?CND23: ZERO? P-PRSO /?CND27 + GET P-PRSO,1 >OCNT + ZERO? OCNT /?CND27 + SET 'P-MULT,OCNT +?CND27: ZERO? OCNT \?CCL33 + ZERO? ICNT /?CND31 +?CCL33: EQUAL? PRSA,V?WALK /?CND31 + ZERO? P-IT-OBJECT /?CND31 + ZERO? ICNT /?CND39 + ICALL MAIN-LOOP-IT,ICNT,P-PRSI +?CND39: ZERO? OCNT /?CND31 + ICALL MAIN-LOOP-IT,OCNT,P-PRSO +?CND31: ZERO? OCNT \?CCL45 + SET 'NUM,OCNT + JUMP ?CND43 +?CCL45: GRTR? OCNT,1 \?CCL47 + ZERO? ICNT \?CCL50 + SET 'OBJ,FALSE-VALUE + JUMP ?CND48 +?CCL50: GET P-PRSI,3 >OBJ + GET P-PRSI,4 >NP +?CND48: SET 'NUM,OCNT + JUMP ?CND43 +?CCL47: GRTR? ICNT,1 \?CCL54 + GET P-PRSO,3 >OBJ + GET P-PRSI,4 >NP + SET 'NUM,ICNT + JUMP ?CND43 +?CCL54: SET 'NUM,1 +?CND43: ZERO? OBJ \?CND57 + EQUAL? ICNT,1 \?CND57 + GET P-PRSI,3 >OBJ + GET P-PRSI,4 >NP +?CND57: GET PARSE-RESULT,12 >V + ZERO? V /?CND63 + GET V,1 + LESS? 1,STACK \?CND63 + GET V,2 + ZERO? STACK \?CND63 + PUT V,2,1 + GET V,3 + ICALL2 RT-PRINT-DESC,STACK + PRINTI ": +" +?CND63: GET PARSE-RESULT,15 >V + ZERO? V /?CCL70 + GET V,0 >PRSQ + JUMP ?CND68 +?CCL70: SET 'PRSQ,FALSE-VALUE +?CND68: GET PARSE-RESULT,13 >XX + ZERO? XX /?CCL73 + GET XX,3 >PRSS + JUMP ?CND71 +?CCL73: SET 'PRSS,FALSE-VALUE +?CND71: ZERO? LIT \?CCL76 + CALL1 SEE-VERB? + ZERO? STACK /?CCL76 + ICALL1 TELL-TOO-DARK + SET 'P-CONT,-1 + JUMP ?CND74 +?CCL76: EQUAL? PRSA,V?WALK \?CCL80 + ZERO? P-WALK-DIR /?PRD83 + PUSH P-WALK-DIR + JUMP ?PEN81 +?PRD83: GET P-PRSO,3 +?PEN81: CALL PERFORM,PRSA,STACK >V + JUMP ?CND74 +?CCL80: ZERO? NUM \?CCL85 + CALL2 PERFORM,PRSA >V + SET 'PRSO,FALSE-VALUE + SET 'PRSO-NP,FALSE-VALUE + JUMP ?CND74 +?CCL85: GRTR? OCNT,1 \?CCL87 + CALL1 COLLECTIVE-VERB? + ZERO? STACK /?CCL87 + CALL PERFORM,PRSA,ROOMS >V + JUMP ?CND74 +?CCL87: SET 'CNT,-1 + SET 'TMP,0 +?PRG90: INC 'CNT + LESS? CNT,NUM /?CND92 + ZERO? TMP \?CND74 + ICALL1 MORE-SPECIFIC + JUMP ?CND74 +?CND92: MUL CNT,2 + ADD NOUN-PHRASE-HEADER-LEN,STACK >XX + GRTR? ICNT,1 /?CCL98 + GET P-PRSO,XX >OBJ1 + ADD 1,XX + GET P-PRSO,STACK >NP1 + JUMP ?CND96 +?CCL98: GET P-PRSI,XX >OBJ1 + ADD 1,XX + GET P-PRSI,STACK >NP1 +?CND96: GRTR? NUM,1 /?CCL100 + GET NP1,3 + EQUAL? STACK,NP-QUANT-ALL \?CND99 +?CCL100: EQUAL? OBJ1,FALSE-VALUE,NOT-HERE-OBJECT \?CCL105 + ICALL2 NP-PRINT,NP1 + PRINTI ": " + ICALL2 NP-CANT-SEE,NP1 + JUMP ?PRG90 +?CCL105: GET NP1,3 + EQUAL? STACK,NP-QUANT-ALL \?CCL107 + CALL VERB-ALL-TEST,OBJ1,OBJ + ZERO? STACK /?PRG90 +?CCL107: CALL2 ACCESSIBLE?,OBJ1 + ZERO? STACK /?PRG90 + EQUAL? OBJ1,PLAYER /?PRG90 + EQUAL? OBJ1,IT \?CCL116 + ICALL2 RT-PRINT-DESC,P-IT-OBJECT + JUMP ?CND114 +?CCL116: EQUAL? OBJ1,PSEUDO-OBJECT \?CCL118 + ICALL2 NP-PRINT,NP1 + JUMP ?CND114 +?CCL118: ICALL2 RT-PRINT-DESC,OBJ1 +?CND114: PRINTI ": " +?CND99: SET 'TMP,TRUE-VALUE + GRTR? ICNT,1 /?CCL121 + SET 'PRSO,OBJ1 + SET 'PRSO-NP,NP1 + SET 'PRSI,OBJ + SET 'PRSI-NP,NP + JUMP ?CND119 +?CCL121: SET 'PRSO,OBJ + SET 'PRSO-NP,NP + SET 'PRSI,OBJ1 + SET 'PRSI-NP,NP1 +?CND119: EQUAL? IT,PRSI,PRSO,PRSS \?CND122 + CALL FIX-HIM-HER-IT,IT,P-IT-OBJECT + ZERO? STACK /?PRG90 +?CND122: EQUAL? HER,PRSI,PRSO,PRSS \?CND126 + CALL FIX-HIM-HER-IT,HER,P-HER-OBJECT + ZERO? STACK /?PRG90 +?CND126: EQUAL? HIM,PRSI,PRSO,PRSS \?CND130 + CALL FIX-HIM-HER-IT,HIM,P-HIM-OBJECT + ZERO? STACK /?PRG90 +?CND130: EQUAL? THEM,PRSI,PRSO,PRSS \?CND134 + CALL FIX-HIM-HER-IT,THEM,P-THEM-OBJECT + ZERO? STACK /?PRG90 +?CND134: ICALL2 QCONTEXT-CHECK,PRSO + GET PARSE-RESULT,3 + GETB STACK,5 >XX + ZERO? PRSO /?CND138 + BTST XX,128 /?CND138 + BTST XX,192 /?CND138 + CALL2 META-LOC,PRSO >V + ZERO? V /?CND138 + IN? V,ROOMS \?CND138 + CALL2 META-LOC,WINNER + CALL GLOBAL-IN?,PRSO,STACK + ZERO? STACK \?CND138 + CALL2 META-LOC,WINNER + EQUAL? V,STACK /?CND138 + ICALL2 NOT-HERE,PRSO + JUMP ?PRG90 +?CND138: ZERO? PRSO /?CND147 + BAND XX,96 + ZERO? STACK /?CND147 + BTST XX,128 /?CND147 + CALL ITAKE-CHECK,PRSO,XX >V + EQUAL? M-FATAL,V /?CND74 + ZERO? V \?PRG90 +?CND147: ZERO? PRSI /?CND157 + GET PARSE-RESULT,3 + GETB STACK,9 >XX + BAND 96,XX + ZERO? STACK /?CND157 + BTST XX,128 /?CND157 + CALL ITAKE-CHECK,PRSI,XX >V + EQUAL? M-FATAL,V /?CND74 + ZERO? V \?PRG90 +?CND157: CALL PERFORM,PRSA,PRSO,PRSI >V + EQUAL? M-FATAL,V /?CND74 + EQUAL? P-CONT,-1 \?PRG90 +?CND74: SET 'OPRSO,PRSO + ZERO? CLOCK-WAIT \?CND171 + CALL1 GAME-VERB? + ZERO? STACK \?CND171 + LOC WINNER >V + ZERO? V /?CND175 + IN? V,ROOMS /?CND175 + GETP V,P?ACTION + CALL D-APPLY,STR?1,STACK,M-END >V +?CND175: GETP HERE,P?ACTION + CALL D-APPLY,STR?1,STACK,M-END >V + EQUAL? M-FATAL,V \?CND179 + SET 'P-CONT,-1 +?CND179: SET 'CLOCKER-RUNNING,1 + CALL1 CLOCKER >V + SET 'CLOCKER-RUNNING,2 + EQUAL? M-FATAL,V \?CND171 + SET 'P-CONT,-1 +?CND171: GET PARSE-RESULT,12 >V + ZERO? V /?CND1 + GET V,1 + LESS? 1,STACK \?CND1 + EQUAL? P-CONT,-1 /?CND1 + CALL2 HACK-TELL-1,V >V + EQUAL? M-FATAL,V \?CCL191 + SET 'P-CONT,-1 + JUMP ?CND1 +?CCL191: ZERO? V /?CND1 + JUMP ?PRG4 +?CCL3: SET 'CLOCK-WAIT,TRUE-VALUE + SET 'P-CONT,FALSE-VALUE +?CND1: SET 'PRSA,FALSE-VALUE + SET 'PRSO,FALSE-VALUE + SET 'PRSO-NP,FALSE-VALUE + SET 'PRSI,FALSE-VALUE + RETURN PRSI + + + .FUNCT QCONTEXT-CHECK:ANY:1:1,PER,WHO + EQUAL? PRSA,V?TELL-ABOUT \FALSE + EQUAL? PER,PLAYER \FALSE + CALL2 FIND-A-WINNER,HERE >WHO + ZERO? WHO /?CND7 + SET 'QCONTEXT,WHO +?CND7: CALL1 QCONTEXT-GOOD? + ZERO? STACK /FALSE + EQUAL? WINNER,PLAYER \FALSE + SET 'WINNER,QCONTEXT + ICALL2 TELL-SAID-TO,QCONTEXT + RTRUE + + + .FUNCT LIT?:ANY:0:2,RM,RMBIT,OHERE,LT + ASSIGNED? 'RM /?CND1 + SET 'RM,HERE +?CND1: ASSIGNED? 'RMBIT /?CND3 + SET 'RMBIT,TRUE-VALUE +?CND3: SET 'OHERE,HERE + SET 'HERE,RM + ZERO? RMBIT /?CCL7 + FSET? RM,ONBIT \?CCL7 + SET 'LT,HERE + JUMP ?CND5 +?CCL7: FSET? WINNER,ONBIT \?CCL11 + CALL HELD?,WINNER,RM + ZERO? STACK /?CCL11 + SET 'LT,WINNER + JUMP ?CND5 +?CCL11: PUT SEARCH-RES,1,0 + PUT SEARCH-RES,2,FALSE-VALUE + PUT FINDER,0,ONBIT + PUT FINDER,1,FIND-FLAGS-GWIM + EQUAL? OHERE,RM \?CND14 + ICALL FIND-DESCENDANTS,WINNER,7 + EQUAL? WINNER,PLAYER /?CND14 + IN? PLAYER,RM \?CND14 + ICALL FIND-DESCENDANTS,PLAYER,7 +?CND14: GET SEARCH-RES,1 + ZERO? STACK \?CND20 + LOC WINNER + IN? STACK,ROOMS /?CND22 + LOC WINNER + FSET? STACK,OPENBIT /?CND22 + LOC WINNER + ICALL FIND-DESCENDANTS,STACK,7 +?CND22: ICALL FIND-DESCENDANTS,RM,7 +?CND20: GET SEARCH-RES,1 + LESS? 0,STACK \?CND5 + GET SEARCH-RES,4 >LT +?CND5: SET 'HERE,OHERE + RETURN LT + + + .FUNCT IGNORE-FIRST-WORD:ANY:0:0,NW + LESS? 1,P-LEN \FALSE + GET TLEXV,P-LEXELEN >NW + ZERO? NW /FALSE + GET NW,4 >NW + ZERO? NW /FALSE + BTST NW,32768 /FALSE + BAND NW,1 + BAND STACK,32767 + ZERO? STACK /FALSE + ADD TLEXV,4 >TLEXV + DEC 'P-LEN + RTRUE + + + .FUNCT FIX-QUOTATIONS:ANY:2:2,LEN,PTR,X,QFLAG + SET 'QFLAG,FALSE-VALUE +?PRG1: ZERO? QFLAG \?CCL5 + SET 'QFLAG,TRUE-VALUE + SUB PTR,P-LEXV + DIV STACK,2 + ADD 2,STACK >X + ICALL MAKE-ROOM-FOR-TOKENS,1,P-LEXV,X + PUT P-LEXV,X,W?NO.WORD + JUMP ?CND3 +?CCL5: SET 'QFLAG,FALSE-VALUE +?CND3: ADD PTR,4 >PTR + SUB PTR,P-LEXV + DIV STACK,4 >X + GETB P-LEXV,P-LEXWORDS + SUB STACK,X >LEN + ZERO? LEN /TRUE + INTBL? W?QUOTE,PTR,LEN,132 >PTR /?PRG1 + RTRUE + + + .FUNCT MAIN-LOOP-IT:ANY:2:2,ICNT,PRS,CNT,TOFF +?PRG1: MUL CNT,2 + ADD NOUN-PHRASE-HEADER-LEN,STACK >TOFF + GET PRS,TOFF + EQUAL? IT,STACK \?CCL5 + CALL2 ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK /?CCL5 + PUT PRS,TOFF,P-IT-OBJECT + ICALL TELL-PRONOUN,P-IT-OBJECT,IT + RTRUE +?CCL5: IGRTR? 'CNT,ICNT \?PRG1 + RTRUE + + + .FUNCT P-NO-MEM-ROUTINE:ANY:0:1,TYP + PRINTI "[Sorry, but that" + EQUAL? TYP,7 \?CCL3 + PRINTI "'s too many objects" + JUMP ?CND1 +?CCL3: PRINTI " sentence is too complicated" +?CND1: PRINTI ".] +" + THROW PARSER-RESULT-DEAD,PARSE-SENTENCE-ACTIVATION + RTRUE + + + .FUNCT BEG-PARDON:ANY:0:0 + PRINTR "[I beg your pardon?]" + + + .FUNCT UNKNOWN-WORD:ANY:1:1,RLEXV,X + CALL2 NUMBER?,RLEXV >X + ZERO? X /?CCL3 + RETURN X +?CCL3: PRINTI "[I don't know the word """ + SUB RLEXV,P-LEXV + DIV STACK,2 + PUT OOPS-TABLE,O-PTR,STACK + ICALL2 WORD-PRINT,RLEXV + PRINTI ".""]" + CRLF + THROW PARSER-RESULT-DEAD,PARSE-SENTENCE-ACTIVATION + RTRUE + + + .FUNCT WORD-PRINT:ANY:1:3,PTR,LEN,OFFS + ASSIGNED? 'LEN /?CND1 + GETB PTR,2 >LEN +?CND1: ASSIGNED? 'OFFS /?PRG5 + GETB PTR,3 >OFFS +?PRG5: DLESS? 'LEN,0 /TRUE + GETB P-INBUF,OFFS + PRINTC STACK + INC 'OFFS + JUMP ?PRG5 + + + .FUNCT PRINT-VOCAB-WORD:ANY:1:1,WD,TMP,?TMP1 + ADD LONG-WORD-TABLE,2 >?TMP1 + GET LONG-WORD-TABLE,0 + DIV STACK,2 + INTBL? WD,?TMP1,STACK,132 >TMP \?CCL3 + GET TMP,1 + PRINT STACK + RTRUE +?CCL3: EQUAL? WD,W?INT.NUM,W?INT.TIM /FALSE + PRINTB WD + RTRUE + + + .FUNCT DO-OOPS:ANY:1:1,OWINNER,PTR,VAL + SET 'PTR,P-LEXSTART + GET TLEXV,P-LEXELEN + EQUAL? STACK,W?PERIOD,W?COMMA \?CND1 + ADD PTR,P-LEXELEN >PTR + DEC 'P-LEN +?CND1: GRTR? P-LEN,1 /?CCL5 + ICALL1 NAKED-OOPS + RFALSE +?CCL5: CALL2 META-LOC,OWINNER + EQUAL? HERE,STACK /?CCL7 + ICALL2 NOT-HERE,OWINNER + RFALSE +?CCL7: GET OOPS-TABLE,O-PTR >VAL + ZERO? VAL /?CCL9 + SUB P-LEN,1 + ICALL REPLACE-ONE-TOKEN,STACK,P-LEXV,PTR,G-LEXV,VAL + SET 'WINNER,OWINNER + ICALL2 COPY-INPUT,TRUE-VALUE + RTRUE +?CCL9: PUT OOPS-TABLE,O-END,FALSE-VALUE + ICALL1 CANT-OOPS + RFALSE + + + .FUNCT DO-AGAIN:ANY:1:1,OWINNER,N,?TMP1 + CALL2 META-LOC,OWINNER + EQUAL? HERE,STACK /?CCL3 + ICALL2 NOT-HERE,OWINNER + RFALSE +?CCL3: LESS? 0,P-OFLAG /?CTR4 + ZERO? P-WON /?CTR4 + GETB G-INBUF,2 + ZERO? STACK \?CCL5 +?CTR4: ICALL1 CANT-AGAIN + RFALSE +?CCL5: GRTR? P-LEN,1 \?CND1 + SUB TLEXV,P-LEXV + LESS? STACK,234 \?CND1 + GET TLEXV,P-LEXELEN >N + EQUAL? N,W?PERIOD,W?COMMA,W?THEN /?CND1 + EQUAL? N,W?AND /?CND1 + ICALL1 DONT-UNDERSTAND + RFALSE +?CND1: SET 'N,P-WORDS-AGAIN + SET 'WINNER,OWINNER + EQUAL? N,1 /?CND16 + SUB N,1 + ADD P-LEN,STACK >P-LEN + SUB N,1 >?TMP1 + SUB TLEXV,P-LEXV + DIV STACK,2 + ICALL MAKE-ROOM-FOR-TOKENS,?TMP1,P-LEXV,STACK + ZERO? P-CONT /?CND16 + SUB N,1 + MUL STACK,4 + ADD P-CONT,STACK >P-CONT +?CND16: GET OOPS-TABLE,O-START + SUB STACK,P-LEXV + ADD G-LEXV,STACK >?TMP1 + MUL N,4 + COPYT ?TMP1,TLEXV,STACK + RTRUE + + + .FUNCT NP-SAVE:ANY:1:1,ROBJ,TMP + COPYT SEARCH-RES,ORPHAN-SR,20 + COPYT ROBJ,ORPHAN-NP,20 + GET ROBJ,5 >TMP + ZERO? TMP /?CCL3 + GET TMP,2 + COPYT STACK,ORPHAN-NP2,10 + PUT ORPHAN-NP,5,ORPHAN-NP2 + JUMP ?CND1 +?CCL3: GET ROBJ,4 >TMP + ZERO? TMP /?CCL5 + COPYT TMP,ORPHAN-NP2,20 + PUT ORPHAN-NP,4,ORPHAN-NP2 + JUMP ?CND1 +?CCL5: GET ROBJ,6 >TMP + ZERO? TMP /?CND1 + COPYT TMP,ORPHAN-NP2,20 + PUT ORPHAN-NP,6,ORPHAN-NP2 +?CND1: GET ROBJ,1 >TMP + ZERO? TMP /?CCL9 + COPYT TMP,ORPHAN-ADJS,18 + PUT ORPHAN-NP,1,ORPHAN-ADJS + GET TMP,2 >TMP + GRTR? 0,TMP /?CCL12 + GRTR? TMP,LAST-OBJECT /?CCL12 + PUT ORPHAN-ADJS,2,TMP + RETURN ORPHAN-NP +?CCL12: COPYT TMP,ORPHAN-NP2,20 + PUT ORPHAN-ADJS,2,ORPHAN-NP2 + RETURN ORPHAN-NP +?CCL9: PUT ORPHAN-NP,1,0 + RETURN ORPHAN-NP + + + .FUNCT PARSER-ERROR:ANY:0:5,STR,CLASS,OTHER,OTHER2,OTHER3,RP + ZERO? CURRENT-REDUCTION /FALSE + GET CURRENT-REDUCTION,2 >RP + GRTR? ERROR-PRIORITY,RP /?CCL3 + EQUAL? ERROR-PRIORITY,RP \FALSE + EQUAL? CLASS,PARSER-ERROR-ORPH-NP /?CCL3 + EQUAL? CLASS,PARSER-ERROR-NOUND /FALSE + GET ERROR-ARGS,1 + EQUAL? STACK,PARSER-ERROR-NOUND \FALSE +?CCL3: SET 'ERROR-PRIORITY,RP + SET 'ERROR-STRING,STR + ZERO? CLASS /?CCL14 + PUT ERROR-ARGS,0,3 + PUT ERROR-ARGS,1,CLASS + PUT ERROR-ARGS,2,OTHER + PUT ERROR-ARGS,3,OTHER2 + CALL2 PMEM?,OTHER + ZERO? STACK /FALSE + GETB OTHER,1 + EQUAL? STACK,4 \?CND17 + GET OTHER,4 >OTHER +?CND17: GETB OTHER,1 + EQUAL? STACK,2 \FALSE + CALL2 NP-SAVE,OTHER + PUT ERROR-ARGS,2,STACK + EQUAL? CLASS,PARSER-ERROR-NOOBJ \FALSE + GET OTHER,3 + ZERO? STACK \FALSE + PUT ERROR-ARGS,3,OTHER3 + RFALSE +?CCL14: PUT ERROR-ARGS,0,0 + RFALSE + + + .FUNCT BUZZER-WORD?:ANY:2:2,WD,PTR,N + GET P-N-WORDS,0 + INTBL? WD,P-N-WORDS+2,STACK \?CCL3 + PRINTR "[Use numerals for numbers, for example ""10.""]" +?CCL3: GET P-C-WORDS,0 + INTBL? WD,P-C-WORDS+2,STACK \FALSE + PRINTC 91 + CALL2 PICK-ONE,OFFENDED + PRINT STACK + PRINTR "]" + + + .FUNCT NUMBER?:ANY:1:1,RLEXV,BPTR,SUM,TIM,NEG,CHR,CNT,?TMP1 + GETB RLEXV,3 >BPTR + GETB RLEXV,2 >CNT +?PRG1: DLESS? 'CNT,0 /?REP2 + GETB P-INBUF,BPTR >CHR + EQUAL? CHR,58 \?CCL8 + SET 'TIM,SUM + SET 'SUM,0 + JUMP ?CND6 +?CCL8: EQUAL? CHR,45 \?CCL10 + ZERO? NEG \FALSE + SET 'NEG,TRUE-VALUE + JUMP ?CND6 +?CCL10: GRTR? CHR,57 /FALSE + LESS? CHR,48 /FALSE + GRTR? SUM,3276 /FALSE + MUL SUM,10 >?TMP1 + SUB CHR,48 + ADD ?TMP1,STACK >SUM +?CND6: INC 'BPTR + JUMP ?PRG1 +?REP2: ZERO? TIM /?CCL22 + GRTR? TIM,23 /FALSE + ZERO? NEG \FALSE + MUL TIM,60 + ADD SUM,STACK >SUM + ICALL CHANGE-LEXV,RLEXV,W?INT.TIM,BPTR,SUM + RETURN W?INT.TIM +?CCL22: ZERO? NEG /?CND27 + SUB 0,SUM >SUM +?CND27: ICALL CHANGE-LEXV,RLEXV,W?INT.NUM,BPTR,SUM + RETURN W?INT.NUM + + + .FUNCT CHANGE-LEXV:ANY:2:4,PTR,WRD,BPTR,SUM,X + PUT PTR,0,WRD + SUB PTR,P-LEXV + ADD G-LEXV,STACK >X + PUT X,0,WRD + ASSIGNED? 'BPTR \FALSE + PUT PTR,1,SUM + PUT X,1,SUM + SET 'P-NUMBER,SUM + RETURN P-NUMBER + + + .FUNCT TELL-GWIM-MSG:ANY:0:0,WD,VB,OBJ + GET GWIM-MSG,1 >OBJ + EQUAL? OBJ,TH-HANDS /FALSE + PRINTC 91 + GET GWIM-MSG,0 >WD + ZERO? WD /?CND4 + ICALL2 PRINT-VOCAB-WORD,WD + GET PARSER-RESULT,1 >VB + EQUAL? VB,W?SIT,W?LIE \?CCL8 + EQUAL? WD,W?DOWN \?CND4 + PRINTI " on" + JUMP ?CND4 +?CCL8: EQUAL? VB,W?GET \?CND4 + EQUAL? WD,W?OUT \?CND4 + PRINTI " of" +?CND4: GET GWIM-MSG,1 + ICALL RT-PRINT-OBJ,STACK,K-ART-THE + PRINTC 93 + CRLF + RTRUE + + + .FUNCT DO-IT-AGAIN:ANY:0:1,NUM,X,TMP + ASSIGNED? 'NUM /?CND1 + SET 'NUM,1 +?CND1: SUB TLEXV,P-LEXV + DIV STACK,2 >X + ZERO? P-CONT \?CND3 + ADD X,P-LEXELEN >X +?CND3: GET OOPS-TABLE,O-START >TMP + ZERO? TMP /?PRG7 + SUB TMP,P-LEXV+2 + DIV STACK,4 >TMP + GETB G-LEXV,P-LEXWORDS + ADD STACK,TMP + PUTB G-LEXV,P-LEXWORDS,STACK +?PRG7: ICALL MAKE-ROOM-FOR-TOKENS,2,G-LEXV,X + PUT G-LEXV,X,W?PERIOD + ADD X,P-LEXELEN + PUT G-LEXV,STACK,W?AGAIN + DLESS? 'NUM,1 \?PRG7 + GETB G-LEXV,P-LEXWORDS + SUB STACK,TMP + PUTB G-LEXV,P-LEXWORDS,STACK + CALL2 COPY-INPUT,TRUE-VALUE + RSTACK + + .ENDSEG + + .ENDI diff --git a/pmem.zabstr b/pmem.zabstr new file mode 100644 index 0000000..11a8bc1 --- /dev/null +++ b/pmem.zabstr @@ -0,0 +1,92 @@ + + + + + + + + + +) (PM-LENGTH 'OFFSET 0 'NTH GETB 'PUT PUTB) (PM-TYPE-CODE 'OFFSET 1 ' +NTH GETB 'PUT PUTB)> + +) (PMT-ARGS [])> + + + +> + + + + + "ARGS" STUFF "AUX" ATM CODE +TYPE-OBJ (OCT ,PM-HEADER-LEN) ARGS) > 10 ,PDEFS-INTERNAL-OBLIST>> > < +SETG PM-TYPE-COUNT 0> )> >> > > 10 ,PDEFS-INTERNAL-OBLIST> .CODE>> 1>> (.TYPE-OBJ)> "AUX" NATM OFFS (TYPE ANY) (DEFAULT <>) NNATM) < +COND ( > >) (T )> "-" +> 10 ,PDEFS-INTERNAL-OBLIST>> "-" < +SPNAME .NATM> "-OFFSET"> 10 ,PDEFS-INTERNAL-OBLIST>> ) (T )>>> > > ) (T > > > FORM> > >)>)> > >> > > >) (T )>)>)>)> > .STUFF>> +> + < +TYPE? ,.TYPE PM-TYPE>> ,.TYPE) (T > 10 ,PDEFS-INTERNAL-OBLIST>> > ,.TEMP) (T )>)>> +) (ATM2 <>)) > >) (T >)> >) (T > >>)>> +) (OBJ:PM-TYPE >)) " ["> ) (N 1)) +> 0> )> > +>> .PMEM> + + + + <=? < +SPNAME .FOO> >>> +> > >) (>> )> .LENARG>))>> +> ) (INIT ,PM-HEADER-LEN>> NONE>> TABLE>) THIS-ARG OFFS:FIX FRM) >) +) NONE>> < +ERROR NO-VALUE-FOR-MANDATORY-SLOT!-ERRORS .TYPNAM PMEM-ALLOC>) ( '<>> 0>> '. +NEW-OBJECT >)>>>)>)>> .ARGS> )> > ATOM>> > >> "-" > +10 ,PDEFS-INTERNAL-OBLIST>> > >>>> LENGTH> )>) (T >> T> '<>> 0>> >)>>>)>)> >> .BASE> + + + \ No newline at end of file diff --git a/pmem.zap b/pmem.zap new file mode 100644 index 0000000..3e9d099 --- /dev/null +++ b/pmem.zap @@ -0,0 +1,45 @@ + + .SEGMENT "0" + + + .FUNCT PMEM?:ANY:1:1,PTR + LESS? PTR,PMEM-STORE /FALSE + LESS? PTR,PMEM-STORE+180 /TRUE + RFALSE + + + .FUNCT PMEM-RESET:ANY:0:0 + GRTR? PMEM-WORDS-USED,0 \?CND1 + SET 'PMEM-WORDS-USED,0 + SUB PMEM-STORE-LENGTH,PMEM-STORE-WORDS + MUL 2,STACK + COPYT PMEM-STORE,0,STACK +?CND1: SET 'PMEM-STORE-WORDS,PMEM-STORE-LENGTH + SET 'PMEM-STORE-POINTER,PMEM-STORE + RTRUE + + + .FUNCT DO-PMEM-ALLOC:ANY:2:2,TYPE,LENGTH,STOR,LEFT,NEW + SET 'STOR,PMEM-STORE-POINTER + SET 'LEFT,PMEM-STORE-WORDS + IGRTR? 'LENGTH,LEFT \?CND1 + ICALL2 P-NO-MEM-ROUTINE,TYPE +?CND1: ADD PMEM-WORDS-USED,LENGTH >PMEM-WORDS-USED + SUB LEFT,LENGTH >PMEM-STORE-WORDS + GRTR? PMEM-STORE-WARN,PMEM-STORE-WORDS \?CND3 + SET 'PMEM-STORE-WARN,PMEM-STORE-WORDS + PRINTI "[Debugging info: " + PRINTI "PMEM: " + PRINTN PMEM-STORE-WARN + PRINTI " left!] +" +?CND3: MUL LENGTH,2 + ADD STOR,STACK >PMEM-STORE-POINTER + DEC 'LENGTH + PUTB STOR,0,LENGTH + PUTB STOR,1,TYPE + RETURN STOR + + .ENDSEG + + .ENDI diff --git a/power.lbm b/power.lbm new file mode 100644 index 0000000..9a29593 Binary files /dev/null and b/power.lbm differ diff --git a/prare.zabstr b/prare.zabstr new file mode 100644 index 0000000..fe6ce6d --- /dev/null +++ b/prare.zabstr @@ -0,0 +1,105 @@ +)("ONE-BYTE-PARTS-OF-SPEECH" %<>)( +"WORD-FLAGS-IN-TABLE" T)("IN-ZILCH" T)("P-APOSTROPHE-BREAKS-WORDS" T)( +"P-BE-VERB" T)) (("YES?" "DEFS" #WORD *31055044554*) ("WHICH-PRINT" "DEFS2" # +WORD *07342702061*) ("CANT-FIND-OBJECT" "DEFS2" #WORD *34547172463*) ("REFRESH" +"DEFS" #WORD *22741033411*))> + + + + + + + + + + + + +> + + + >> >> +> +> + + >> 1>> > > 0> )> +>> > > >> >> < +REPEAT () > > > > .MAX> )> >> >>> +>)> + + + + + + + + +> + +> ) (T > < +PRINT-VOCAB-WORD .TMP> > < +PRINT-VOCAB-WORD .PART>)>) (T )> )>> ) (SYN 0) "AUX" TMP) > >> ) (ELSE )> ) (T )> > >> ) (T )> > > > >>>> < +TELL-THE >) (T )> ) +> ) (T )>>> +> +> +)) < +REPEAT ((PTR ) (NOUN )) > 2>> > > ) (>> )>> ) (LEN ) (SZ )) > >>> ) (T )>)>) ( ) (T )> ) +> > )> )) > > )> ) ( )> > 1> ) (> 1> )>) (T +>)>>)> > > ) (T )>>>> + + +> + + +> < +CONSTANT YES-LEXV > ) "AUX" +WORD VAL) )> "> )> >> >> +> >) (T >)> ) ( > +> ) ( ) ( ) ( )>)> > .VAL>> +> +> + + + + \ No newline at end of file diff --git a/prare.zap b/prare.zap new file mode 100644 index 0000000..bd522ca --- /dev/null +++ b/prare.zap @@ -0,0 +1,1042 @@ + + .SEGMENT "0" + + + .FUNCT TOO-MANY-NEW:ANY:1:1,WHAT + PRINTI "[Warning: there are too many new " + PRINT WHAT + PRINTR "s.]" + + + .FUNCT NAKED-OOPS:ANY:0:0 + PRINTR "[Please type a word(s) after OOPS.]" + + + .FUNCT CANT-OOPS:ANY:0:0 + PRINTR "[There was no word to replace in that sentence.]" + + + .FUNCT CANT-AGAIN:ANY:0:0 + PRINTR "[What do you want to do again?]" + + + .FUNCT CANT-USE-MULTIPLE:ANY:2:2,LOSS,WD + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTI "[You can't use more than one object at a time with """ + ICALL2 PRINT-VOCAB-WORD,WD + PRINTR """!]" + + + .FUNCT MAKE-ROOM-FOR-TOKENS:ANY:3:3,CNT,LEXV,WHERE,LEN,?TMP2,?TMP1 + GETB LEXV,0 + MUL 2,STACK >LEN + MUL P-LEXELEN,CNT + ADD WHERE,STACK + LESS? LEN,STACK \?CND1 + SUB LEN,WHERE + DIV STACK,P-LEXELEN >CNT + ICALL2 TOO-MANY-NEW,STR?57 +?CND1: GETB LEXV,P-LEXWORDS >LEN + ADD CNT,LEN + PUTB LEXV,P-LEXWORDS,STACK + MUL 2,WHERE + ADD LEXV,STACK >LEXV + MUL CNT,4 + ADD LEXV,STACK >?TMP1 + MUL 2,LEN >?TMP2 + SUB WHERE,P-LEXSTART + SUB ?TMP2,STACK + MUL 2,STACK + COPYT LEXV,?TMP1,STACK + RTRUE + + + .FUNCT REPLACE-ONE-TOKEN:ANY:5:5,N,FROM-LEXV,PTR,TO-LEXV,WHERE,CNT,X,?TMP1,?TMP2 + SUB N,1 >CNT + ZERO? CNT /?CND1 + ICALL MAKE-ROOM-FOR-TOKENS,CNT,TO-LEXV,WHERE +?CND1: SET 'CNT,N +?PRG3: DLESS? 'CNT,0 /TRUE + ADD PTR,P-LEXELEN >PTR + GET FROM-LEXV,PTR + PUT TO-LEXV,WHERE,STACK + MUL PTR,P-LEXELEN + ADD STACK,2 >X + GETB FROM-LEXV,X >?TMP2 + ADD X,1 + GETB FROM-LEXV,STACK >?TMP1 + MUL WHERE,P-LEXELEN + ADD STACK,3 + CALL INBUF-ADD,?TMP2,?TMP1,STACK + ZERO? STACK \?CND7 + ICALL2 TOO-MANY-NEW,STR?58 + RTRUE +?CND7: ADD WHERE,P-LEXELEN >WHERE + JUMP ?PRG3 + + + .FUNCT V-$REFRESH:ANY:0:1,LOOK? + ASSIGNED? 'LOOK? /?CND1 + SET 'LOOK?,TRUE-VALUE +?CND1: GET 0,8 + BAND STACK,-5 + PUT 0,8,STACK + CLEAR -1 + ICALL1 INIT-STATUS-LINE + ZERO? LOOK? /TRUE + ICALL1 V-LOOK + RTRUE + + + .FUNCT PRINT-INTQUOTE:ANY:0:0,NP,?TMP2,?TMP1 + CALL2 GET-NP,INTQUOTE >NP + GET NP,7 + ADD STACK,4 >?TMP1 + GET NP,8 >?TMP2 + GET NP,7 + SUB ?TMP2,STACK + DIV STACK,4 + ADD -1,STACK + CALL PRINT-LEXV,-1,?TMP1,STACK + RSTACK + + + .FUNCT PRINT-LEXV:ANY:0:3,QUIET,X,LEN,WD,IN-QUOTE,OWD + ASSIGNED? 'X /?CND1 + MUL QUIET,4 + ADD TLEXV,STACK >X +?CND1: ASSIGNED? 'LEN /?CND3 + SUB P-LEN,QUIET >LEN +?CND3: ZERO? QUIET /?CCL6 + GRTR? 0,P-OFLAG \?CND5 +?CCL6: PRINTI "[In other words:" +?CND5: SET 'IN-QUOTE,FALSE-VALUE + EQUAL? QUIET,-1 \?CCL11 + SET 'OWD,W?APOSTROPHE + JUMP ?PRG12 +?CCL11: SET 'OWD,0 +?PRG12: GET X,0 >WD + EQUAL? WD,W?PERIOD,W?COMMA,W?APOSTROPHE /?CND14 + EQUAL? WD,W?NO.WORD /?CND14 + EQUAL? OWD,W?APOSTROPHE /?CND14 + EQUAL? OWD,W?QUOTE \?CCL22 + ZERO? IN-QUOTE \?CCL22 + SET 'IN-QUOTE,TRUE-VALUE + JUMP ?CND14 +?CCL22: EQUAL? WD,W?QUOTE \?CCL26 + ZERO? IN-QUOTE /?CCL26 + SET 'IN-QUOTE,FALSE-VALUE + JUMP ?CND14 +?CCL26: PRINTC 32 +?CND14: EQUAL? WD,W?NO.WORD /?CND29 + CALL2 CAPITAL-NOUN?,WD + ZERO? STACK /?CCL33 + ICALL2 CAPITALIZE,X + JUMP ?CND29 +?CCL33: EQUAL? WD,0,W?INT.NUM,W?INT.TIM \?CCL35 + ADD X,P-WORDLEN + ICALL BUFFER-PRINT,X,STACK,FALSE-VALUE,TRUE-VALUE + JUMP ?CND29 +?CCL35: ICALL2 PRINT-VOCAB-WORD,WD +?CND29: DLESS? 'LEN,1 /?REP13 + EQUAL? WD,W?NO.WORD /?CND38 + SET 'OWD,WD +?CND38: ADD X,4 >X + JUMP ?PRG12 +?REP13: ZERO? QUIET /?CCL42 + GRTR? 0,P-OFLAG \FALSE +?CCL42: PRINTR "]" + + + .FUNCT COPY-INPUT:ANY:0:1,QUIET,LEN,?TMP1 + COPYT G-LEXV,P-LEXV,LEXV-LENGTH-BYTES + GETB P-LEXV,P-LEXWORDS >P-LEN + GET OOPS-TABLE,O-START >TLEXV + COPYT G-INBUF,P-INBUF,61 + GETB P-LEXV,P-LEXWORDS + MUL 4,STACK >LEN + DEC 'LEN + GETB TLEXV,LEN >?TMP1 + DEC 'LEN + GETB TLEXV,LEN + ADD ?TMP1,STACK + PUT OOPS-TABLE,O-END,STACK + ZERO? QUIET \?CND1 + ICALL2 PRINT-LEXV,QUIET +?CND1: SET 'P-OFLAG,FALSE-VALUE + RETURN P-OFLAG + + .ENDSEG + + .SEGMENT "0" + + + .FUNCT BUFFER-PRINT:ANY:2:4,BEG,END,CP,NOSP,WRD,NW,FIRST??,PN,TMP + SET 'FIRST??,TRUE-VALUE +?PRG1: EQUAL? BEG,END /TRUE + ZERO? NOSP \?CTR6 + EQUAL? NW,W?PERIOD,W?COMMA,W?APOSTROPHE \?CCL7 +?CTR6: SET 'NOSP,FALSE-VALUE + JUMP ?CND5 +?CCL7: PRINTC 32 +?CND5: GET BEG,0 >WRD + ADD BEG,P-WORDLEN + EQUAL? END,STACK \?CCL12 + SET 'NW,0 + JUMP ?CND10 +?CCL12: GET BEG,P-LEXELEN >NW +?CND10: EQUAL? WRD,W?NO.WORD \?CCL15 + SET 'NOSP,TRUE-VALUE + JUMP ?CND13 +?CCL15: EQUAL? WRD,W?MY \?CCL17 + PRINTB W?YOUR + JUMP ?CND13 +?CCL17: EQUAL? WRD,W?ME \?CCL19 + PRINTB W?YOU + SET 'PN,TRUE-VALUE + JUMP ?CND13 +?CCL19: EQUAL? WRD,W?ONE \?CCL21 + PRINTI "object" + JUMP ?CND13 +?CCL21: EQUAL? WRD,FALSE-VALUE,W?ALL,W?PERIOD /?CCL23 + EQUAL? WRD,W?APOSTROPHE /?CCL23 + GET WRD,4 >TMP + ZERO? TMP \?CCL23 + GET WRD,3 + ZERO? STACK \?CCL23 + BTST TMP,32768 /?PRD32 + BAND TMP,4 + BAND STACK,32767 + ZERO? STACK \?CCL23 +?PRD32: BTST TMP,32768 /?CTR22 + BAND TMP,2 + BAND STACK,32767 + ZERO? STACK \?CCL23 +?CTR22: SET 'NOSP,TRUE-VALUE + JUMP ?CND13 +?CCL23: CALL2 CAPITAL-NOUN?,WRD + ZERO? STACK /?CCL38 + ICALL2 CAPITALIZE,BEG + SET 'PN,TRUE-VALUE + JUMP ?CND13 +?CCL38: ZERO? FIRST?? /?CND39 + ZERO? PN \?CND39 + ZERO? CP /?CND39 + EQUAL? WRD,W?HER,W?HIM,W?YOUR /?CND39 + PRINTI "the " +?CND39: EQUAL? WRD,W?IT \?CCL48 + CALL2 VISIBLE?,P-IT-OBJECT + ZERO? STACK /?CCL48 + ICALL2 RT-PRINT-DESC,P-IT-OBJECT + JUMP ?CND46 +?CCL48: EQUAL? WRD,W?THEM \?CCL52 + CALL2 VISIBLE?,P-THEM-OBJECT + ZERO? STACK /?CCL52 + ICALL2 RT-PRINT-DESC,P-THEM-OBJECT + JUMP ?CND46 +?CCL52: EQUAL? WRD,W?HER \?CCL56 + ZERO? PN \?CCL56 + ICALL2 RT-PRINT-DESC,P-HER-OBJECT + JUMP ?CND46 +?CCL56: EQUAL? WRD,W?HIM \?CCL60 + ZERO? PN \?CCL60 + ICALL2 RT-PRINT-DESC,P-HIM-OBJECT + JUMP ?CND46 +?CCL60: EQUAL? WRD,W?INT.NUM,W?INT.TIM \?CCL64 + GET BEG,1 + PRINTN STACK + JUMP ?CND46 +?CCL64: ICALL2 WORD-PRINT,BEG +?CND46: SET 'FIRST??,FALSE-VALUE +?CND13: ADD BEG,P-WORDLEN >BEG + JUMP ?PRG1 + + + .FUNCT CAPITALIZE:ANY:1:1,PTR,?TMP1 + 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,PTR,?TMP1,STACK + RSTACK + + + .FUNCT PRINT-PARSER-FAILURE:ANY:0:0,CLASS,OTHER,OTHER2,TMP,PR,N,X,?TMP1 + GET ERROR-ARGS,1 >CLASS + GET ERROR-ARGS,2 >OTHER + GET ERROR-ARGS,3 >OTHER2 + EQUAL? CLASS,PARSER-ERROR-ORPH-S \?CCL3 + GET ORPHAN-S,O-LEXPTR + SUB STACK,P-LEXV + DIV STACK,2 >P-OFLAG + COPYT G-LEXV,O-LEXV,LEXV-LENGTH-BYTES + COPYT G-INBUF,O-INBUF,61 + GET OOPS-TABLE,O-START + PUT OOPS-TABLE,O-AGAIN,STACK + ICALL MAKE-ROOM-FOR-TOKENS,1,O-LEXV,P-OFLAG + PUT O-LEXV,P-OFLAG,W?NO.WORD + PRINTI "[Wh" + GET ORPHAN-S,O-VERB + EQUAL? STACK,W?WALK,W?GO,W?RUN \?CCL8 + PRINTI "ere" + JUMP ?CND6 +?CCL8: GET ORPHAN-S,O-WHICH + EQUAL? STACK,1 \?CCL13 + GET ORPHAN-S,O-SYNTAX + GETB STACK,4 + JUMP ?CND11 +?CCL13: GET ORPHAN-S,O-SYNTAX + GETB STACK,8 +?CND11: EQUAL? PERSONBIT,STACK \?CCL10 + PRINTI "om" + JUMP ?CND6 +?CCL10: PRINTI "at" +?CND6: PRINTC 32 + GET ORPHAN-S,O-SUBJECT >PR + ZERO? PR /?CCL16 + GET ORPHAN-S,O-VERB >TMP + ADD WORD-FLAG-TABLE,2 >?TMP1 + GET WORD-FLAG-TABLE,0 + INTBL? TMP,?TMP1,STACK,132 >X \?CCL21 + GET X,1 + JUMP ?CND19 +?CCL21: PUSH FALSE-VALUE +?CND19: BTST STACK,512 \?CCL16 + PRINTI "did " + ICALL2 TELL-THE,PR + PRINTC 32 + JUMP ?CND14 +?CCL16: PRINTI "do you want " + EQUAL? WINNER,PLAYER /?CND22 + ICALL2 RT-PRINT-DESC,WINNER + PRINTC 32 +?CND22: PRINTI "to " +?CND14: GET ORPHAN-S,O-VERB + CALL2 ROOT-VERB,STACK + ICALL2 PRINT-VOCAB-WORD,STACK + GET ORPHAN-S,O-PART >TMP + EQUAL? TMP,0,1 /?CND24 + PRINTC 32 + ICALL2 PRINT-VOCAB-WORD,TMP +?CND24: GET ERROR-ARGS,2 >TMP + ZERO? TMP /?CND26 + PRINTC 32 + GET ORPHAN-S,O-OBJECT >PR + ZERO? PR /?CCL30 + ICALL2 TELL-THE,PR + JUMP ?CND28 +?CCL30: ICALL2 NP-PRINT,TMP +?CND28: GET ORPHAN-S,O-SYNTAX >TMP + ZERO? TMP /?CND26 + GET ORPHAN-S,O-WHICH + EQUAL? STACK,1 \?CCL35 + GET TMP,1 >TMP + JUMP ?CND33 +?CCL35: GET TMP,3 >TMP +?CND33: ZERO? TMP /?CND26 + GETB O-LEXV,P-LEXWORDS >N + SUB P-OFLAG,P-LEXELEN + GET O-LEXV,STACK >PR + GET PR,4 + ZERO? STACK \?CND38 + GET PR,3 >PR +?CND38: EQUAL? TMP,PR /?CND40 + INC 'N + PUTB O-LEXV,P-LEXWORDS,N + PUT O-LEXV,P-OFLAG,TMP + ADD P-OFLAG,P-LEXELEN >P-OFLAG +?CND40: PUT O-LEXV,P-OFLAG,W?NO.WORD + MUL P-WORDLEN,N + ADD 1,STACK + ICALL INBUF-PRINT,TMP,O-INBUF,O-LEXV,STACK + PRINTC 32 + ICALL2 PRINT-VOCAB-WORD,TMP +?CND26: PRINTR "?]" +?CCL3: EQUAL? CLASS,PARSER-ERROR-ORPH-NP \?CND1 + CALL2 WHICH-PRINT,OTHER + ZERO? STACK \TRUE +?CND1: EQUAL? CLASS,PARSER-ERROR-NOMULT \?CCL47 + ICALL CANT-USE-MULTIPLE,OTHER,OTHER2 + RTRUE +?CCL47: EQUAL? CLASS,PARSER-ERROR-NOOBJ \?CCL49 + ICALL CANT-FIND-OBJECT,OTHER,OTHER2 + RTRUE +?CCL49: EQUAL? CLASS,PARSER-ERROR-TMNOUN \?CCL51 + GET PARSE-RESULT,1 + ICALL2 TOO-MANY-NOUNS,STACK + RTRUE +?CCL51: GRTR? P-LEN,0 \?CND52 + SUB OTLEXV,4 >OTHER2 + CALL2 CHANGE-AND-TO-THEN?,OTHER2 + ZERO? STACK \?CCL53 + SET 'OTHER2,OTLEXV + CALL2 CHANGE-AND-TO-THEN?,OTHER2 + ZERO? STACK /?CND52 +?CCL53: ICALL CHANGE-LEXV,OTHER2,W?THEN + GET OOPS-TABLE,O-LENGTH >P-LEN + GET OOPS-TABLE,O-START >TLEXV + ICALL1 PRINT-LEXV + CALL2 PARSE-IT,FALSE-VALUE + RSTACK +?CND52: SET 'OTHER2,OTLEXV + ZERO? P-LEN \?PRD61 + CALL2 NAKED-ADJECTIVE?,OTHER2 + ZERO? STACK \?CCL59 +?PRD61: SUB OTLEXV,4 >OTHER2 + LESS? P-LEXV,OTHER2 \?CND58 + LESS? 0,P-LEN \?CND58 + CALL2 NAKED-ADJECTIVE?,OTHER2 + ZERO? STACK /?CND58 + GET OTLEXV,0 + EQUAL? STACK,W?COMMA,W?AND /?CCL59 + GET OTLEXV,0 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD74 + PUSH ?TMP1 + JUMP ?PEN72 +?PRD74: GET OTLEXV,0 + GET STACK,3 + GET STACK,4 +?PEN72: BAND STACK,32768 + EQUAL? STACK,-32768 \?CND58 + GET OTLEXV,0 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD77 + PUSH ?TMP1 + JUMP ?PEN75 +?PRD77: GET OTLEXV,0 + GET STACK,3 + GET STACK,4 +?PEN75: BAND STACK,32769 + BAND STACK,32767 + ZERO? STACK /?CND58 +?CCL59: SUB OTHER2,P-LEXV + DIV STACK,2 + ADD P-LEXELEN,STACK >CLASS + ICALL MAKE-ROOM-FOR-TOKENS,1,P-LEXV,CLASS + ICALL MAKE-ROOM-FOR-TOKENS,1,G-LEXV,CLASS + ADD OTHER2,4 + ICALL CHANGE-LEXV,STACK,W?ONE + GETB P-LEXV,P-LEXWORDS >P-LEN + GET OOPS-TABLE,O-START >TLEXV + CALL2 PARSE-IT,FALSE-VALUE + RSTACK +?CND58: CALL1 DONT-UNDERSTAND + RSTACK + + + .FUNCT NAKED-ADJECTIVE?:ANY:1:1,PTR,WD,?TMP1 + GET PTR,0 >WD + GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD6 + PUSH ?TMP1 + JUMP ?PEN4 +?PRD6: GET WD,3 + GET STACK,4 +?PEN4: BAND STACK,32768 + ZERO? STACK \FALSE + GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD10 + PUSH ?TMP1 + JUMP ?PEN8 +?PRD10: GET WD,3 + GET STACK,4 +?PEN8: BAND STACK,4 + BAND STACK,32767 + ZERO? STACK /FALSE + GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD16 + PUSH ?TMP1 + JUMP ?PEN14 +?PRD16: GET WD,3 + GET STACK,4 +?PEN14: BTST STACK,32768 /?PRD11 + GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD19 + PUSH ?TMP1 + JUMP ?PEN17 +?PRD19: GET WD,3 + GET STACK,4 +?PEN17: BAND STACK,64 + BAND STACK,32767 + ZERO? STACK \FALSE +?PRD11: EQUAL? WD,W?ONE /FALSE + RTRUE + + + .FUNCT CHANGE-AND-TO-THEN?:ANY:1:1,PTR,?TMP1 + GET PTR,0 + EQUAL? STACK,W?AND,W?COMMA \FALSE + ADD PTR,4 >PTR + GET PTR,0 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD11 + PUSH ?TMP1 + JUMP ?PEN9 +?PRD11: GET PTR,0 + GET STACK,3 + GET STACK,4 +?PEN9: BTST STACK,32768 /?PRD6 + GET PTR,0 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD14 + PUSH ?TMP1 + JUMP ?PEN12 +?PRD14: GET PTR,0 + GET STACK,3 + GET STACK,4 +?PEN12: BAND STACK,1 + BAND STACK,32767 + ZERO? STACK \TRUE +?PRD6: GET PTR,0 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD20 + PUSH ?TMP1 + JUMP ?PEN18 +?PRD20: GET PTR,0 + GET STACK,3 + GET STACK,4 +?PEN18: BTST STACK,32768 /?PRD15 + GET PTR,0 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD23 + PUSH ?TMP1 + JUMP ?PEN21 +?PRD23: GET PTR,0 + GET STACK,3 + GET STACK,4 +?PEN21: BAND STACK,64 + BAND STACK,32767 + ZERO? STACK \TRUE +?PRD15: GET PTR,0 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD29 + PUSH ?TMP1 + JUMP ?PEN27 +?PRD29: GET PTR,0 + GET STACK,3 + GET STACK,4 +?PEN27: BAND STACK,32768 + EQUAL? STACK,-32768 \FALSE + GET PTR,0 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD33 + PUSH ?TMP1 + JUMP ?PEN31 +?PRD33: GET PTR,0 + GET STACK,3 + GET STACK,4 +?PEN31: BAND STACK,32769 + BAND STACK,32767 + ZERO? STACK /FALSE + RTRUE + + + .FUNCT DONT-UNDERSTAND:ANY:0:0,?TMP1 + SET 'CLOCK-WAIT,TRUE-VALUE + GETB P-LEXV,P-LEXWORDS + EQUAL? 1,STACK \?CND1 + GET P-LEXV,P-LEXSTART + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD11 + PUSH ?TMP1 + JUMP ?PEN9 +?PRD11: GET P-LEXV,P-LEXSTART + GET STACK,3 + GET STACK,4 +?PEN9: BTST STACK,32768 /?PRD6 + GET P-LEXV,P-LEXSTART + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD14 + PUSH ?TMP1 + JUMP ?PEN12 +?PRD14: GET P-LEXV,P-LEXSTART + GET STACK,3 + GET STACK,4 +?PEN12: BAND STACK,2 + BAND STACK,32767 + ZERO? STACK \?CCL2 +?PRD6: GET P-LEXV,P-LEXSTART + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD19 + PUSH ?TMP1 + JUMP ?PEN17 +?PRD19: GET P-LEXV,P-LEXSTART + GET STACK,3 + GET STACK,4 +?PEN17: BTST STACK,32768 /?CND1 + GET P-LEXV,P-LEXSTART + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD22 + PUSH ?TMP1 + JUMP ?PEN20 +?PRD22: GET P-LEXV,P-LEXSTART + GET STACK,3 + GET STACK,4 +?PEN20: BAND STACK,4 + BAND STACK,32767 + ZERO? STACK /?CND1 +?CCL2: ICALL2 MISSING,STR?59 + RTRUE +?CND1: PRINTR "[Sorry, but I don't understand. Please say that another way, or try something else.]" + + + .FUNCT MISSING:ANY:1:1,NV + PRINTI "[I think there's a " + PRINT NV + PRINTR " missing in that sentence!]" + + + .FUNCT CANT-FIND-OBJECT:ANY:2:2,NP,SEARCH,OTHER + EQUAL? NP,ORPHAN-NP \?CCL3 + CALL2 NP-CANT-SEE,NP + RSTACK +?CCL3: PRINTI "[There isn't anything to " + GET PARSE-RESULT,1 >OTHER + ZERO? OTHER /?CCL6 + ICALL2 PRINT-VOCAB-WORD,OTHER + JUMP ?CND4 +?CCL6: PRINTI "do that to" +?CND4: PRINTR ".]" + + + .FUNCT NP-CANT-SEE:ANY:0:1,NP,OTHER + ASSIGNED? 'NP /?CND1 + CALL1 GET-NP >NP +?CND1: GET NP,2 >OTHER + ZERO? OTHER \?CTR4 + GET NP,3 + ZERO? STACK /?CCL5 +?CTR4: PRINTC 91 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't see " + ZERO? OTHER /?CCL10 + PRINTI "any " + ICALL2 NP-PRINT,NP + JUMP ?CND8 +?CCL10: ICALL NP-PRINT,NP,TRUE-VALUE +?CND8: PRINTC 32 + GET NP,5 >OTHER + ZERO? OTHER /?CCL13 + GETB OTHER,1 + EQUAL? STACK,4 /?CTR12 + GETB OTHER,1 + EQUAL? STACK,6 \?CCL13 + GET OTHER,2 >OTHER + ZERO? OTHER /?CCL13 +?CTR12: PRINTI "in" + GET OTHER,3 + ICALL RT-PRINT-OBJ,STACK,K-ART-THE + JUMP ?CND11 +?CCL13: PRINTI "right " + PRINTI "here" +?CND11: PRINTR ".]" +?CCL5: CALL1 MORE-SPECIFIC + RSTACK + + + .FUNCT WINNER-SAYS-WHICH?:ANY:1:1,NP + RFALSE + + + .FUNCT WHICH-LIST?:ANY:2:2,NP,SR,CT + GET SR,1 >CT + GET SR,0 + GRTR? CT,STACK /FALSE + EQUAL? CT,1 \TRUE + GET ORPHAN-SR+8,0 + EQUAL? STACK,PSEUDO-OBJECT \TRUE + RFALSE + + + .FUNCT WHICH-PRINT:ANY:1:1,NP,SR,LEN,SZ,NS,N,S,VEC,REM,OBJ + SET 'SR,ORPHAN-SR + GET SR,1 >LEN + GET SR,0 >SZ + CALL WHICH-LIST?,NP,SR + ZERO? STACK /?CND1 + SET 'NS,0 + SET 'N,LEN + SET 'S,SZ + ADD SR,8 >VEC +?PRG3: DLESS? 'N,0 /?CND1 + DLESS? 'S,0 /?CND1 + GET VEC,0 + FSET? STACK,FL-SEEN \?CND9 + INC 'NS +?CND9: ADD VEC,2 >VEC + JUMP ?PRG3 +?CND1: EQUAL? WINNER,CH-PLAYER /?CCL13 + PRINTI "[You must specify " + CALL WHICH-LIST?,NP,SR + ZERO? STACK /?CCL16 + GRTR? NS,1 \?CCL16 + PRINTI "if" + JUMP ?CND11 +?CCL16: PRINTI "which" + ZERO? NP /?CND11 + PRINTC 32 + ICALL2 NP-PRINT,NP + JUMP ?CND11 +?CCL13: PRINTI "[Which" + ZERO? NP /?CND21 + PRINTC 32 + ICALL2 NP-PRINT,NP +?CND21: PRINTI " do" +?CND11: PRINTI " you mean" + CALL WHICH-LIST?,NP,SR + ZERO? STACK /?CND23 + GRTR? NS,1 \?CND23 + EQUAL? WINNER,CH-PLAYER \?CND27 + PRINTC 44 +?CND27: SET 'N,LEN + SET 'S,SZ + ADD SR,8 >VEC + SET 'REM,NS +?PRG29: DLESS? 'N,0 /?CND23 + DLESS? 'S,0 /?CND23 + GET VEC,0 >OBJ + FSET? OBJ,FL-SEEN \?CND35 + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE + DEC 'REM + EQUAL? REM,1 \?CCL39 + EQUAL? NS,2 /?CND40 + PRINTC 44 +?CND40: PRINTI " or" + JUMP ?CND35 +?CCL39: GRTR? REM,1 \?CND35 + PRINTC 44 +?CND35: ADD VEC,2 >VEC + JUMP ?PRG29 +?CND23: EQUAL? WINNER,CH-PLAYER \?CCL45 + PRINTR "?]" +?CCL45: PRINTR ".]" + + + .FUNCT NP-PRINT:ANY:1:2,NP,DO-QUANT,LEN,OBJ,CT,?TMP1 + LESS? 0,NP \?CCL3 + GRTR? NP,LAST-OBJECT /?CCL3 + CALL2 TELL-THE,NP + RSTACK +?CCL3: GETB NP,1 + EQUAL? STACK,3 \?CCL7 +?PRG8: GET NP,2 >LEN + ZERO? LEN /?CND10 + ICALL2 NP-PRINT,LEN +?CND10: GET NP,1 >NP + ZERO? NP /TRUE + PRINTI " and " + JUMP ?PRG8 +?CCL7: GETB NP,1 + EQUAL? STACK,4 \?CCL16 + GET NP,1 >LEN + ZERO? LEN /FALSE + DEC 'LEN +?PRG20: MUL CT,2 + ADD NOUN-PHRASE-HEADER-LEN,STACK + GET NP,STACK >OBJ + ZERO? OBJ /?CND22 + ICALL2 TELL-THE,OBJ +?CND22: IGRTR? 'CT,LEN /TRUE + PRINTI ", " + JUMP ?PRG20 +?CCL16: ZERO? DO-QUANT /?CND27 + GET NP,3 >LEN + ZERO? LEN /?CND27 + CALL2 GET-QUANTITY-WORD,LEN + PRINTB STACK + GET NP,2 + ZERO? STACK /?CND27 + PRINTC 32 +?CND27: GET NP,1 >LEN + ZERO? LEN /?CND33 + ICALL2 ADJS-PRINT,LEN +?CND33: GET NP,8 >LEN + ZERO? LEN /?CCL37 + GET LEN,0 >?TMP1 + GET NP,2 + EQUAL? ?TMP1,STACK /?CTR36 + GET LEN,0 + GET STACK,4 + BAND STACK,32768 + EQUAL? STACK,-32768 \?CCL37 + GET LEN,0 + GET STACK,4 + BAND STACK,32769 + BAND STACK,32767 + ZERO? STACK /?CCL37 + SUB LEN,4 >LEN + LESS? P-LEXV,LEN \?CCL37 + GET LEN,0 >?TMP1 + GET NP,2 + EQUAL? ?TMP1,STACK \?CCL37 +?CTR36: ADD LEN,P-WORDLEN + ICALL BUFFER-PRINT,LEN,STACK,FALSE-VALUE,TRUE-VALUE + JUMP ?CND35 +?CCL37: GET NP,2 >LEN + ZERO? LEN /?CND35 + ICALL2 PRINT-VOCAB-WORD,LEN +?CND35: GET NP,4 >LEN + ZERO? LEN /?CND47 + CALL2 PMEM?,LEN + ZERO? STACK /?CND47 + GETB LEN,1 + EQUAL? STACK,2 \?CND47 + PRINTI " of " + ICALL2 NP-PRINT,LEN +?CND47: GET NP,6 >LEN + ZERO? LEN /FALSE + CALL2 PMEM?,LEN + ZERO? STACK /FALSE + GETB LEN,1 + EQUAL? STACK,2 \FALSE + PRINTI " except " + CALL2 NP-PRINT,LEN + RSTACK + + + .FUNCT ADJS-PRINT:ANY:1:1,ADJT,LEN,WD,CT,TMP + GET ADJT,2 >LEN + ZERO? LEN /?CND1 + EQUAL? LEN,PLAYER,ME \?CCL5 + PRINTI "your " + JUMP ?CND1 +?CCL5: ICALL2 NP-PRINT,LEN + PRINTI "'s " +?CND1: GET ADJT,4 >LEN + ZERO? LEN /FALSE + ADD ADJT,10 >ADJT + GRTR? LEN,ADJS-MAX-COUNT \?CND9 + SET 'LEN,ADJS-MAX-COUNT +?CND9: DEC 'LEN + MUL 2,LEN + ADD ADJT,STACK >ADJT +?PRG11: GET ADJT,0 >WD + ZERO? WD /?CND13 + EQUAL? WD,W?MY \?CCL17 + PRINTI "your " + JUMP ?CND13 +?CCL17: EQUAL? WD,W?INT.NUM,W?INT.TIM \?CCL19 + PRINTN P-NUMBER + PRINTC 32 + JUMP ?CND13 +?CCL19: EQUAL? WD,W?NO.WORD /?CND13 + CALL2 CAPITAL-NOUN?,WD + ZERO? STACK /?CCL23 + GETB P-LEXV,P-LEXWORDS >TMP + ZERO? TMP /?CCL23 + INTBL? WD,P-LEXV+2,TMP,132 >TMP \?CCL23 + ICALL2 CAPITALIZE,TMP + JUMP ?CND21 +?CCL23: ICALL2 PRINT-VOCAB-WORD,WD +?CND21: PRINTC 32 +?CND13: IGRTR? 'CT,LEN /TRUE + SUB ADJT,2 >ADJT + JUMP ?PRG11 + + + .FUNCT TOO-MANY-NOUNS:ANY:1:1,WD + PRINTI "[I can't understand that many nouns with " + ZERO? WD /?CCL3 + PRINTC 34 + ICALL2 PRINT-VOCAB-WORD,WD + PRINTC 34 + JUMP ?CND1 +?CCL3: PRINTI "that verb" +?CND1: PRINTR ".]" + + + .FUNCT INBUF-ADD:ANY:3:3,LEN,BEG,SLOT,DBEG,TMP,?TMP1 + GET OOPS-TABLE,O-END >TMP + ZERO? TMP /?CCL3 + SET 'DBEG,TMP + JUMP ?CND1 +?CCL3: GET OOPS-TABLE,O-LENGTH + MUL P-WORDLEN,STACK >TMP + GETB G-LEXV,TMP >?TMP1 + ADD TMP,1 + GETB G-LEXV,STACK + ADD ?TMP1,STACK >DBEG +?CND1: SUB LEN,1 + ADD DBEG,STACK + LESS? INBUF-LENGTH,STACK /FALSE + ADD DBEG,LEN + PUT OOPS-TABLE,O-END,STACK + ADD P-INBUF,BEG >?TMP1 + ADD G-INBUF,DBEG + COPYT ?TMP1,STACK,LEN + PUTB G-LEXV,SLOT,DBEG + SUB SLOT,1 + PUTB G-LEXV,STACK,LEN + RTRUE + + + .FUNCT INBUF-PRINT:ANY:4:4,WD,INBUF,LEXV,SLOT,DBEG,CTR,TMP,LEN,?TMP1 + SET 'LEN,11 + GET OOPS-TABLE,O-END >TMP + ZERO? TMP /?CCL3 + SET 'DBEG,TMP + JUMP ?CND1 +?CCL3: GET OOPS-TABLE,O-LENGTH + MUL P-WORDLEN,STACK >TMP + GETB LEXV,TMP >?TMP1 + ADD TMP,1 + GETB LEXV,STACK + ADD ?TMP1,STACK >DBEG +?CND1: GETB INBUF,0 >?TMP1 + SUB LEN,1 + ADD DBEG,STACK + LESS? ?TMP1,STACK /FALSE + ADD INBUF,DBEG + DIROUT D-TABLE-ON,STACK + ICALL2 PRINT-VOCAB-WORD,WD + DIROUT D-TABLE-OFF + ADD 1,DBEG + GETB INBUF,STACK >LEN + ADD 2,DBEG >DBEG + ADD DBEG,LEN + PUT OOPS-TABLE,O-END,STACK + PUTB LEXV,SLOT,DBEG + SUB SLOT,1 + PUTB LEXV,STACK,LEN + RTRUE + + + .FUNCT YES?:ANY:0:1,NO-Q,WORD,VAL + ZERO? NO-Q \?PRG3 + PRINTC 63 +?PRG3: CRLF + PRINTI "Please answer YES or NO >" + PUTB YES-INBUF,1,0 +?PRG5: READ YES-INBUF,YES-LEXV >VAL + EQUAL? VAL,10,13 \?PRG5 + ICALL2 RT-SCRIPT-INBUF,YES-INBUF + GETB YES-LEXV,P-LEXWORDS + ZERO? STACK /?PRG3 + GET YES-LEXV,P-LEXSTART >WORD + ZERO? WORD /?PRG3 + GET WORD,4 + BTST STACK,32768 /?CCL15 + GET WORD,4 + BAND STACK,1 + BAND STACK,32767 + ZERO? STACK /?CCL15 + GET WORD,3 >VAL + JUMP ?CND13 +?CCL15: SET 'VAL,FALSE-VALUE +?CND13: EQUAL? VAL,ACT?YES /?CTR19 + EQUAL? WORD,W?Y \?CCL20 +?CTR19: SET 'VAL,TRUE-VALUE + RETURN VAL +?CCL20: EQUAL? VAL,ACT?NO /?CTR23 + EQUAL? WORD,W?N \?CCL24 +?CTR23: SET 'VAL,FALSE-VALUE + RETURN VAL +?CCL24: EQUAL? VAL,ACT?RESTART \?CCL28 + ICALL1 V-RESTART + JUMP ?PRG3 +?CCL28: EQUAL? VAL,ACT?RESTORE \?CCL30 + ICALL1 V-RESTORE + JUMP ?PRG3 +?CCL30: EQUAL? VAL,ACT?QUIT \?PRG3 + ICALL1 V-QUIT + JUMP ?PRG3 + + + .FUNCT SETUP-ORPHAN:ANY:1:3,STR,A,B + DIROUT D-TABLE-ON,O-INBUF + PRINT STR + ZERO? A /?CND1 + ICALL2 RT-PRINT-DESC,A + ZERO? B /?CND1 + PRINT B +?CND1: DIROUT D-TABLE-OFF + PUTB O-INBUF,0,INBUF-LENGTH + LEX O-INBUF,O-LEXV + GETB O-LEXV,P-LEXWORDS >A + ZERO? A /FALSE + INTBL? 0,O-LEXV+2,A,132 /FALSE + GETB O-LEXV,P-LEXWORDS + MUL P-LEXELEN,STACK + ADD 1,STACK >P-OFLAG + ICALL MAKE-ROOM-FOR-TOKENS,1,O-LEXV,P-OFLAG + PUT O-LEXV,P-OFLAG,W?NO.WORD + SUB 0,P-OFLAG >P-OFLAG + PUT OOPS-TABLE,O-AGAIN,P-LEXV+2 + RTRUE + + + .FUNCT SETUP-ORPHAN-NP:ANY:3:4,STR,OBJ1,OBJ2,OBJ3,NUM,VEC + DIROUT D-TABLE-ON,O-INBUF + PRINT STR + DIROUT D-TABLE-OFF + PUTB O-INBUF,0,INBUF-LENGTH + LEX O-INBUF,O-LEXV + GETB O-LEXV,P-LEXWORDS >NUM + ZERO? NUM /FALSE + INTBL? 0,O-LEXV+2,NUM,132 /FALSE + GETB O-LEXV,P-LEXWORDS + MUL P-LEXELEN,STACK + SUB 1,STACK >P-OFLAG + PUT OOPS-TABLE,O-AGAIN,P-LEXV+2 + SET 'VEC,ORPHAN-SR+8 + PUT VEC,0,OBJ1 + PUT VEC,1,OBJ2 + SET 'NUM,2 + ZERO? OBJ3 /?CND6 + INC 'NUM + PUT VEC,2,OBJ3 +?CND6: PUT ORPHAN-SR,1,NUM + RTRUE + + + .FUNCT INSERT-ADJS:ANY:1:1,E,CT,PTR,WD + LESS? P-OFLAG,0 \?CCL3 + SUB 0,P-OFLAG >PTR + JUMP ?CND1 +?CCL3: SET 'PTR,P-OFLAG +?CND1: EQUAL? E,FALSE-VALUE,TRUE-VALUE /FALSE + GET E,2 >CT + ZERO? CT /?CND7 + CALL2 PMEM?,CT + ZERO? STACK /?CCL11 + GET CT,2 >CT + JUMP ?CND9 +?CCL11: EQUAL? CT,PLAYER \?CCL13 + SET 'CT,W?MY + JUMP ?CND9 +?CCL13: GETPT CT,P?SYNONYM + GET STACK,0 >CT +?CND9: EQUAL? CT,W?MY \?CCL16 + CALL INSERT-ADJS-WD,PTR,CT >PTR + JUMP ?CND7 +?CCL16: CALL INSERT-ADJS-WD,PTR,CT >PTR + CALL INSERT-ADJS-WD,PTR,W?APOSTROPHE >PTR + CALL INSERT-ADJS-WD,PTR,W?S >PTR +?CND7: GET E,4 >CT + ZERO? CT /FALSE + ADD E,10 >E +?PRG20: DLESS? 'CT,0 /TRUE + GET E,CT >WD + GET ERROR-ARGS,3 + EQUAL? WD,STACK /?PRG20 + CALL INSERT-ADJS-WD,PTR,WD >PTR + JUMP ?PRG20 + + + .FUNCT INSERT-ADJS-WD:ANY:2:2,PTR,WD + ICALL MAKE-ROOM-FOR-TOKENS,1,G-LEXV,PTR + PUT G-LEXV,PTR,WD + ADD PTR,P-LEXELEN >PTR + MUL 2,PTR + SUB STACK,1 + ICALL INBUF-PRINT,WD,G-INBUF,G-LEXV,STACK + RETURN PTR + + .ENDSEG + + .ENDI diff --git a/pstack.zabstr b/pstack.zabstr new file mode 100644 index 0000000..699fda7 --- /dev/null +++ b/pstack.zabstr @@ -0,0 +1,45 @@ + + + + + + + + +> + +) (T FIX] ADECL>)>> + >) (T >)>> + <- ,MAX-PSTACK-SIZE 1>>) (T 0>)>> +)) )) )> > > >> > + +>) (T > >> )> < +PRINTN <- ,MAX-PSTACK-SIZE .TMP>> )>> < +ZPUT .S .TMP .OBJ> .S>)> + >) (T .N>>> )> .S>)> + ) (T )>>) (T )) > < +FLUSH-PSTACK .S .N>)> .OBJ>)> + > > > 0> )>> > 0> ) (T )>> .VAL>) (T .OFFS>>>) +> + + + \ No newline at end of file diff --git a/pstack.zap b/pstack.zap new file mode 100644 index 0000000..3d803ba --- /dev/null +++ b/pstack.zap @@ -0,0 +1,18 @@ + + .SEGMENT "0" + + + .FUNCT PEEK-PSTACK:ANY:1:2,S,OFFS,N,VAL +?PRG1: POP S >VAL + PUSH VAL + INC 'N + DLESS? 'OFFS,0 \?PRG1 +?PRG5: DLESS? 'N,0 /?REP6 + POP + XPUSH STACK,S /?PRG5 + JUMP ?PRG5 +?REP6: RETURN VAL + + .ENDSEG + + .ENDI diff --git a/pump.lbm b/pump.lbm new file mode 100644 index 0000000..827fae1 Binary files /dev/null and b/pump.lbm differ diff --git a/reds.zabstr b/reds.zabstr new file mode 100644 index 0000000..cc33db9 --- /dev/null +++ b/reds.zabstr @@ -0,0 +1,91 @@ +)( +"WORD-FLAGS-IN-TABLE" T)("IN-ZILCH" T)("P-ZORK0" %<>)) (("NOT-HERE-VERB?" +"DEFS" #WORD *27521557224*) ("DIR-VERB-PRSI?" "DEFS" #WORD *07505151377*))> + + + + + + + + + + ,V?MOVE-DIR ,V?RIDE-DIR ,V?ROLL-DIR ,V?SET-DIR> < +NOT ,INTDIR ,LEFT-RIGHT>>>>> +>> +>> + ) (T .NUM)>> + + + + + + + + + + + + + + + + + + + +> + + >)> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/reds.zap b/reds.zap new file mode 100644 index 0000000..99e7516 --- /dev/null +++ b/reds.zap @@ -0,0 +1,1677 @@ + + .SEGMENT "0" + + + .FUNCT NOT-HERE-VERB?:ANY:1:1,V + RFALSE + + + .FUNCT RED-FCN:ANY:0:2,N,TYP + ZERO? N /TRUE + EQUAL? N,1 \FALSE + POP DATA-STACK + RSTACK + + + .FUNCT RED-PART:ANY:0:2,N,TYP,WD,?TMP1 + ZERO? N /TRUE + POP DATA-STACK >WD + EQUAL? WD,TRUE-VALUE,W?OF /?CCL5 + GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD12 + PUSH ?TMP1 + JUMP ?PEN10 +?PRD12: GET WD,3 + GET STACK,4 +?PEN10: BTST STACK,32768 /FALSE + GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD15 + PUSH ?TMP1 + JUMP ?PEN13 +?PRD15: GET WD,3 + GET STACK,4 +?PEN13: BAND STACK,2048 + BAND STACK,32767 + ZERO? STACK /FALSE +?CCL5: EQUAL? N,1 \?CCL17 + RETURN WD +?CCL17: POP DATA-STACK + RSTACK + + + .FUNCT GET-SYNTAX:ANY:2:4,VA,NUM,PREP,GWIM,LEN,CT,S2,P2,GWIM-NOW,SYN + EQUAL? PREP,1 \?CND1 + SET 'PREP,0 +?CND1: EQUAL? NUM,1 \?CCL5 + SET 'LEN,6 + JUMP ?CND3 +?CCL5: SET 'LEN,10 +?CND3: GET VA,0 >CT + GET PARSE-RESULT,8 >P2 + SET 'GWIM-NOW,FALSE-VALUE + ADD VA,2 >SYN +?PRG6: GET SYN,1 + EQUAL? PREP,STACK \?CCL10 + EQUAL? NUM,1 /?CTR9 + GET SYN,3 >S2 + EQUAL? P2,S2 /?CTR9 + ZERO? S2 \?PRD16 + EQUAL? P2,1 /?CTR9 +?PRD16: ZERO? GWIM-NOW /?CCL10 + EQUAL? NUM,1 \?CND22 + SET 'S2,PREP +?CND22: ZERO? S2 /?CCL10 + PUT GWIM-MSG,0,S2 +?CTR9: PUT PARSE-RESULT,3,SYN + GET SYN,0 + PUT PARSE-RESULT,4,STACK + PUT PARSE-RESULT,7,PREP + RETURN SYN +?CCL10: DLESS? 'CT,1 \?CCL26 + ZERO? GWIM /FALSE + ZERO? GWIM-NOW \FALSE + GET VA,0 >CT + SET 'GWIM-NOW,TRUE-VALUE + ADD VA,2 >SYN + JUMP ?PRG6 +?CCL26: ADD SYN,LEN >SYN + JUMP ?PRG6 + + + .FUNCT RED-SV:ANY:0:2,N,TYP,SYN,VERB,PART,DATA,OBJ + POP DATA-STACK >PART + POP DATA-STACK + GET PARSE-RESULT,1 + CALL2 ROOT-VERB,STACK >VERB + ZERO? VERB /FALSE + GET VERB,3 >DATA + ZERO? DATA /FALSE + EQUAL? PART,1 \?CCL8 + GET DATA,0 + GRTR? 0,STACK /?CCL8 + GET DATA,0 + PUT PARSE-RESULT,4,STACK + RTRUE +?CCL8: GET DATA,2 >SYN + ZERO? SYN /?CCL12 + CALL GET-SYNTAX,SYN,1,PART,TRUE-VALUE >SYN + ZERO? SYN /?CCL12 + CALL DETERMINE-OBJ,FALSE-VALUE,1 >OBJ + ZERO? OBJ /?CCL12 + PUT PARSE-RESULT,5,OBJ + RTRUE +?CCL12: GET DATA,3 >SYN + ZERO? SYN /FALSE + CALL GET-SYNTAX,SYN,2,PART,TRUE-VALUE >SYN + ZERO? SYN /FALSE + CALL DETERMINE-OBJ,FALSE-VALUE,1 >OBJ + ZERO? OBJ /FALSE + PUT PARSE-RESULT,5,OBJ + GET OBJ,3 + PUT ORPHAN-S,O-OBJECT,STACK + CALL DETERMINE-OBJ,FALSE-VALUE,2 >OBJ + ZERO? OBJ /FALSE + PUT PARSE-RESULT,6,OBJ + RTRUE + + + .FUNCT ROOT-VERB:ANY:1:1,VERB,DATA,X,?TMP1 + ADD WORD-FLAG-TABLE,2 >?TMP1 + GET WORD-FLAG-TABLE,0 + INTBL? VERB,?TMP1,STACK,132 >X \?CCL7 + GET X,1 + JUMP ?CND5 +?CCL7: PUSH FALSE-VALUE +?CND5: BTST STACK,512 /?PRD4 + RETURN VERB +?PRD4: GET VERB,3 >DATA + ZERO? DATA /?CND1 + SET 'VERB,DATA +?CND1: RETURN VERB + + + .FUNCT RED-SVN:ANY:0:2,N,TYP,SYN1,SYN2,VERB,PART,DATA,OBJ,OBJ1,OBJ2 + POP DATA-STACK >OBJ + POP DATA-STACK >PART + POP DATA-STACK + GET PARSE-RESULT,1 + CALL2 ROOT-VERB,STACK >VERB + ZERO? VERB /FALSE + GET VERB,3 >DATA + ZERO? DATA /FALSE + GET PARSE-RESULT,8 + ZERO? STACK \?CCL8 + GET DATA,2 >SYN1 + ZERO? SYN1 /?CCL8 + CALL GET-SYNTAX,SYN1,1,PART >SYN1 + ZERO? SYN1 /?CCL8 + CALL DETERMINE-OBJ,OBJ,1 >OBJ1 + ZERO? OBJ1 \?CCL14 + GETB SYN1,5 + CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,OBJ,PART,STACK + RSTACK +?CCL14: GET OBJ1,3 + EQUAL? INTDIR,STACK \?CCL16 + GET PARSE-RESULT,1 + EQUAL? STACK,W?WALK,W?GO,W?RUN \?CCL16 + GET OBJ,2 + XPUSH STACK,DATA-STACK \?CCL16 + CALL RED-SD,1,TYP + RSTACK +?CCL16: PUT PARSE-RESULT,5,OBJ1 + RETURN PARSE-RESULT +?CCL8: GET DATA,3 >SYN2 + ZERO? SYN2 /FALSE + CALL GET-SYNTAX,SYN2,2,PART,TRUE-VALUE >SYN2 + ZERO? SYN2 /FALSE + CALL DETERMINE-OBJ,OBJ,1 >OBJ1 + ZERO? OBJ1 \?CCL26 + GETB SYN2,5 + CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,OBJ,PART,STACK + RSTACK +?CCL26: PUT PARSE-RESULT,5,OBJ1 + GET OBJ1,3 + PUT ORPHAN-S,O-OBJECT,STACK + CALL DETERMINE-OBJ,FALSE-VALUE,2 >OBJ2 + ZERO? OBJ2 /FALSE + PUT PARSE-RESULT,6,OBJ2 + RETURN PARSE-RESULT + + + .FUNCT RED-SVNP:ANY:0:2,N,TYP,PART,OBJ + POP DATA-STACK >PART + POP DATA-STACK >OBJ + XPUSH PART,DATA-STACK /?BOGUS1 +?BOGUS1: XPUSH OBJ,DATA-STACK /?BOGUS2 +?BOGUS2: CALL RED-SVN,N,TYP + ZERO? STACK \TRUE + GET PARSE-RESULT,1 + XPUSH STACK,DATA-STACK /?BOGUS6 +?BOGUS6: XPUSH TRUE-VALUE,DATA-STACK /?BOGUS7 +?BOGUS7: PUT PARSE-RESULT,8,PART + XPUSH OBJ,DATA-STACK /?BOGUS8 +?BOGUS8: CALL RED-SVN,N,TYP + RSTACK + + + .FUNCT RED-SVNPN:ANY:0:2,N,TYP,OBJ2,OBJ1 + POP DATA-STACK >OBJ2 + POP DATA-STACK + PUT PARSE-RESULT,8,STACK + POP DATA-STACK >OBJ1 + XPUSH OBJ1,DATA-STACK /?BOGUS1 +?BOGUS1: XPUSH OBJ2,DATA-STACK /?BOGUS2 +?BOGUS2: DEC 'N + CALL RED-SVPNN,N,TYP + RSTACK + + + .FUNCT RED-SVPNN:ANY:0:2,N,TYP,N1,N2,PART,OBJ1,OBJ2,SYN,?TMP1 + POP DATA-STACK >N2 + GET PARSE-RESULT,8 + ZERO? STACK \?CND1 + GET GWIM-MSG,0 >?TMP1 + ZERO? ?TMP1 /?PRD5 + PUSH ?TMP1 + JUMP ?PEN3 +?PRD5: PUSH 1 +?PEN3: PUT PARSE-RESULT,8,STACK +?CND1: POP DATA-STACK >N1 + EQUAL? N,4 \?CND6 + POP DATA-STACK >PART +?CND6: GET PARSE-RESULT,1 + CALL2 ROOT-VERB,STACK >SYN + ZERO? SYN \?CCL10 + CALL PARSER-ERROR,0,PARSER-ERROR-NOUND + RSTACK +?CCL10: GET SYN,3 >SYN + ZERO? SYN /FALSE + GET SYN,3 >SYN + ZERO? SYN \?CCL14 + CALL PARSER-ERROR,0,PARSER-ERROR-TMNOUN + RSTACK +?CCL14: CALL GET-SYNTAX,SYN,2,PART >SYN + ZERO? SYN \?CCL16 + CALL PARSER-ERROR,0,PARSER-ERROR-NOUND + RSTACK +?CCL16: CALL DETERMINE-OBJ,N1,1 >OBJ1 + ZERO? OBJ1 \?CCL18 + GETB SYN,5 + CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,N1,PART,STACK + RSTACK +?CCL18: CALL DETERMINE-OBJ,N2,2 >OBJ2 + ZERO? OBJ2 \?CCL20 + GETB SYN,9 + CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,N2,PART,STACK + RSTACK +?CCL20: CALL2 DIR-VERB-PRSI?,OBJ2 + ZERO? STACK /?CCL22 + CALL PARSER-ERROR,0,PARSER-ERROR-NOUND + RSTACK +?CCL22: POP DATA-STACK + PUT PARSE-RESULT,5,OBJ1 + PUT PARSE-RESULT,6,OBJ2 + RTRUE + + + .FUNCT RED-SVPNPN:ANY:0:2,N,TYP,N2 + POP DATA-STACK >N2 + POP DATA-STACK + PUT PARSE-RESULT,8,STACK + XPUSH N2,DATA-STACK /?BOGUS1 +?BOGUS1: SUB N,1 + CALL RED-SVPNN,STACK,TYP + RSTACK + + + .FUNCT RED-SVD:ANY:0:2,N,TYP,DIR + POP DATA-STACK >DIR + GET PARSE-RESULT,1 + EQUAL? STACK,W?WALK,W?GO,W?RUN \FALSE + POP DATA-STACK + XPUSH DIR,DATA-STACK /?BOGUS4 +?BOGUS4: SUB N,1 + CALL RED-SD,STACK,TYP + RSTACK + + + .FUNCT RED-SP:ANY:0:2,N,TYP,A,?TMP1 + POP DATA-STACK >A + DEC 'N + EQUAL? N,2 \?CND1 + EQUAL? TRUE-VALUE,A /?CND1 + GET A,3 >?TMP1 + ZERO? ?TMP1 /?PRD7 + PUSH ?TMP1 + JUMP ?PEN5 +?PRD7: PUSH A +?PEN5: PUT PARSE-RESULT,0,STACK +?CND1: FSTACK N,DATA-STACK + RETURN PARSE-RESULT + + + .FUNCT IREDUCE-EXCEPTION:ANY:2:2,ENP,NP + GET ENP,2 + EQUAL? STACK,W?ONE \?CND1 + GET NP,2 + PUT ENP,2,STACK +?CND1: GET ENP,3 + ZERO? STACK \?CND3 + PUT ENP,3,NP-QUANT-ALL +?CND3: SET 'SEARCH-FLAGS,31 + CALL DETERMINE-NP,0,0,ENP + RSTACK + + + .FUNCT REDUCE-EXCEPT-IT:ANY:2:2,PHR,NP + GET PHR,1 + EQUAL? 1,STACK \FALSE + GET PHR,3 + EQUAL? IT,STACK \FALSE + ZERO? P-IT-OBJECT \?CCL8 + CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,NP + RSTACK +?CCL8: PUT PHR,3,P-IT-OBJECT + RTRUE + + + .FUNCT REDUCE-EXCEPTION:ANY:2:2,PP,NP,ENP,NOUN-PHRASE,NEW-OBJECT,NNP,GOOD,BAD + GET PP,2 >ENP + GETB ENP,1 + EQUAL? STACK,2 \?CCL3 + CALL IREDUCE-EXCEPTION,ENP,NP >NOUN-PHRASE + ZERO? NOUN-PHRASE /FALSE + ICALL REDUCE-EXCEPT-IT,NOUN-PHRASE,ENP + CALL DO-PMEM-ALLOC,3,3 >NEW-OBJECT + PUT NEW-OBJECT,2,ENP + PUT NEW-OBJECT,3,NOUN-PHRASE + PUT NP,6,NEW-OBJECT + RETURN NP +?CCL3: SET 'NNP,ENP + SET 'GOOD,FALSE-VALUE +?PRG7: GET NNP,2 >BAD + CALL IREDUCE-EXCEPTION,BAD,NP >NEW-OBJECT + ZERO? NEW-OBJECT /?CND9 + SET 'GOOD,TRUE-VALUE + ICALL REDUCE-EXCEPT-IT,NEW-OBJECT,BAD + PUT NNP,3,NEW-OBJECT +?CND9: GET NNP,1 >NNP + ZERO? NNP \?PRG7 + ZERO? GOOD /?CCL15 + PUT NP,6,ENP + RETURN NP +?CCL15: CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,BAD + RSTACK + + + .FUNCT REDUCE-LOCATION:TABLE:1:3,PP,SYN,WHICH,SEARCH,TEST,PREP,NP,RLOC,BIT,MSG,OLD-OBJECT,NEW-OBJECT + ZERO? SYN \?CCL3 + SET 'SEARCH,0 + JUMP ?CND1 +?CCL3: EQUAL? WHICH,1 \?CCL6 + GETB SYN,5 >SEARCH + JUMP ?CND1 +?CCL6: GETB SYN,9 >SEARCH +?CND1: ZERO? SYN \?CCL9 + SET 'TEST,0 + JUMP ?CND7 +?CCL9: EQUAL? WHICH,1 \?CCL12 + GETB SYN,4 >TEST + JUMP ?CND7 +?CCL12: GETB SYN,8 >TEST +?CND7: GET PP,1 >PREP + GET PP,2 >NP + ZERO? SEARCH \?CND13 + SET 'SEARCH,5 +?CND13: COPYT PREP-BIT,0,6 + EQUAL? PREP,W?BUT,W?EXCEPT /FALSE + EQUAL? PREP,W?IN,W?INSIDE \?CCL19 + SET 'BIT,CONTBIT + SET 'MSG,P-NO-INSIDE + JUMP ?CND15 +?CCL19: EQUAL? PREP,W?ON,W?OFF \?CCL21 + SET 'BIT,SURFACEBIT + SET 'MSG,P-NO-SURFACE + JUMP ?CND15 +?CCL21: EQUAL? PREP,W?FROM \FALSE + SET 'BIT,SURFACEBIT + PUT PREP-BIT,1,PERSONBIT + PUT PREP-BIT,2,CONTBIT + SET 'MSG,P-NOTHING +?CND15: PUT PREP-BIT,0,BIT + GETB NP,1 + EQUAL? STACK,2 \FALSE + GET NP,5 >RLOC + ZERO? RLOC /?CND27 + GET RLOC,2 + GET STACK,3 >RLOC +?CND27: SET 'OLD-OBJECT,FINDER + PUT OLD-OBJECT,0,TEST + PUT OLD-OBJECT,1,0 + PUT OLD-OBJECT,2,FALSE-VALUE + PUT OLD-OBJECT,3,FALSE-VALUE + PUT OLD-OBJECT,4,0 + GET NP,1 + PUT OLD-OBJECT,5,STACK + GET NP,2 + PUT OLD-OBJECT,6,STACK + PUT OLD-OBJECT,7,FALSE-VALUE + PUT OLD-OBJECT,8,FALSE-VALUE + PUT OLD-OBJECT,9,SEARCH-RES + CALL2 NUMERIC-ADJ?,NP + PUT OLD-OBJECT,10,STACK + ZERO? RLOC \?CCL31 + PUSH SEARCH + JUMP ?CND29 +?CCL31: PUSH 0 +?CND29: CALL FIND-OBJECTS,STACK,RLOC >SEARCH + ZERO? SEARCH /?CCL34 + CALL DO-PMEM-ALLOC,4,NOUN-PHRASE-MIN-LENGTH >OLD-OBJECT + PUT OLD-OBJECT,1,1 + GET SEARCH-RES,4 + PUT OLD-OBJECT,3,STACK + PUT OLD-OBJECT,4,NP + SET 'RLOC,OLD-OBJECT + CALL DO-PMEM-ALLOC,6,2 >NEW-OBJECT + PUT NEW-OBJECT,1,PREP + PUT NEW-OBJECT,2,RLOC + RETURN NEW-OBJECT +?CCL34: GET SEARCH-RES,1 + ZERO? STACK \?CCL36 + CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,NP,PREP + RSTACK +?CCL36: CALL2 READY-TO-DISAMBIGUATE?,NP + ZERO? STACK /FALSE + GET PARSE-RESULT,1 + CALL PARSER-ERROR,0,PARSER-ERROR-ORPH-NP,NP,STACK + RSTACK + + + .FUNCT DETERMINE-OBJ:ANY:1:3,OBJ,NUM,PICK,VAL,RES,COUNT,SYN,S-FLAGS,SEARCH-ACT,OLD-OBJECT,NO,CT,PTR,CNT,TMP + ZERO? NUM \?CCL3 + SET 'SYN,0 + JUMP ?CND1 +?CCL3: GET PARSE-RESULT,3 >SYN +?CND1: ZERO? NUM \?CCL6 + SET 'S-FLAGS,128 + JUMP ?CND4 +?CCL6: EQUAL? NUM,1 \?CCL8 + GETB SYN,5 >S-FLAGS + JUMP ?CND4 +?CCL8: GETB SYN,9 >S-FLAGS +?CND4: ZERO? NUM \?CCL11 + SET 'SEARCH-ACT,0 + JUMP ?CND9 +?CCL11: EQUAL? NUM,1 \?CCL13 + GETB SYN,4 >SEARCH-ACT + JUMP ?CND9 +?CCL13: GETB SYN,8 >SEARCH-ACT +?CND9: ZERO? OBJ \?CCL16 + SET 'OLD-OBJECT,FINDER + PUT OLD-OBJECT,0,SEARCH-ACT + PUT OLD-OBJECT,1,FIND-FLAGS-GWIM + PUT OLD-OBJECT,2,FALSE-VALUE + PUT OLD-OBJECT,3,SYN + PUT OLD-OBJECT,4,NUM + PUT OLD-OBJECT,5,FALSE-VALUE + PUT OLD-OBJECT,6,FALSE-VALUE + PUT OLD-OBJECT,7,FALSE-VALUE + PUT OLD-OBJECT,8,FALSE-VALUE + PUT OLD-OBJECT,9,SEARCH-RES + PUT OLD-OBJECT,10,0 + ZERO? PICK /?CND17 + PUT FINDER,2,NP-QUANT-ALL +?CND17: EQUAL? SEARCH-ACT,ROOMSBIT \?PRD23 + PUT SEARCH-RES,4,ROOMS + JUMP ?CTR20 +?PRD23: ZERO? S-FLAGS /?CCL21 + CALL2 FIND-OBJECTS,S-FLAGS + ZERO? STACK \?PRD28 + ZERO? PICK /?CCL21 + GET SEARCH-RES,1 + ZERO? STACK /?CCL21 +?PRD28: EQUAL? NUM,1 \?CCL36 + GET SYN,1 + JUMP ?CND34 +?CCL36: GET SYN,3 +?CND34: PUT GWIM-MSG,0,STACK + GET SEARCH-RES,4 + PUT GWIM-MSG,1,STACK +?CTR20: CALL DO-PMEM-ALLOC,4,NOUN-PHRASE-MIN-LENGTH >OLD-OBJECT + PUT OLD-OBJECT,1,1 + GET SEARCH-RES,4 + PUT OLD-OBJECT,3,STACK + SET 'RES,OLD-OBJECT + RETURN RES +?CCL21: GET PARSE-RESULT,1 + PUT ORPHAN-S,O-VERB,STACK + ZERO? P-LEN \?CCL39 + ADD TLEXV,4 + JUMP ?CND37 +?CCL39: PUSH TLEXV +?CND37: PUT ORPHAN-S,O-LEXPTR,STACK + GET PARSE-RESULT,3 + PUT ORPHAN-S,O-SYNTAX,STACK + PUT ORPHAN-S,O-WHICH,NUM + GET PARSE-RESULT,7 + PUT ORPHAN-S,O-PART,STACK + GET PARSE-RESULT,5 + GET STACK,3 + PUT ORPHAN-S,O-OBJECT,STACK + GET PARSE-RESULT,12 >VAL + ZERO? VAL /?CND40 + GET VAL,3 >VAL +?CND40: PUT ORPHAN-S,O-SUBJECT,VAL + GET PARSE-RESULT,5 + CALL PARSER-ERROR,0,PARSER-ERROR-ORPH-S,STACK + RSTACK +?CCL16: GETB OBJ,1 + EQUAL? STACK,4 \?CCL43 + RETURN OBJ +?CCL43: GETB OBJ,1 + EQUAL? STACK,2 \?CCL45 + SET 'SEARCH-FLAGS,S-FLAGS + CALL DETERMINE-NP,0,NUM,OBJ + RSTACK +?CCL45: BTST S-FLAGS,16 /?CCL47 + GET PARSE-RESULT,1 + CALL PARSER-ERROR,0,PARSER-ERROR-NOMULT,NUM,STACK + RSTACK +?CCL47: SET 'SEARCH-FLAGS,S-FLAGS + SET 'NO,OBJ + SET 'CT,FALSE-VALUE +?PRG48: CALL DETERMINE-NP,0,NUM,NO,TRUE-VALUE >PTR + ZERO? PTR /FALSE + GET NO,3 + GET STACK,1 + ADD COUNT,STACK >COUNT + ZERO? CT \?CND53 + ADD PTR,6 >PTR + SET 'CNT,COUNT +?PRG55: DLESS? 'CNT,0 /?CND53 + GET PTR,0 + EQUAL? NOT-HERE-OBJECT,STACK /?CCL61 + SET 'CT,TRUE-VALUE +?CND53: GET NO,1 >NO + ZERO? NO \?PRG48 + ZERO? CT /FALSE + MUL COUNT,2 + ADD STACK,2 + CALL DO-PMEM-ALLOC,4,STACK >CNT + PUT CNT,1,COUNT + SET 'RES,CNT + SET 'NO,OBJ + ADD RES,6 >PTR +?PRG66: GET NO,3 >CT + GET CT,1 + MUL 4,STACK >TMP + ADD CT,6 + COPYT STACK,PTR,TMP + ADD PTR,TMP >PTR + GET NO,1 >NO + ZERO? NO \?PRG66 + RETURN RES +?CCL61: ADD PTR,4 >PTR + JUMP ?PRG55 + + + .FUNCT CHECK-DIR-ADJS:ANY:1:1,ADJS,AV,CT,ADJ,PT,?TMP1 + ADD ADJS,10 >AV + GET ADJS,4 >CT +?PRG1: DLESS? 'CT,0 /FALSE + GET AV,CT >ADJ + ZERO? ADJ /?PRG1 + GET ADJ,4 >?TMP1 + ZERO? ?TMP1 /?PRD12 + PUSH ?TMP1 + JUMP ?PEN10 +?PRD12: GET ADJ,3 + GET STACK,4 +?PEN10: BTST STACK,32768 /?PRG1 + GET ADJ,4 >?TMP1 + ZERO? ?TMP1 /?PRD16 + PUSH ?TMP1 + JUMP ?PEN14 +?PRD16: GET ADJ,3 + GET STACK,4 +?PEN14: BAND STACK,64 + BAND STACK,32767 + ZERO? STACK /?PRG1 + GETB ADJ,6 + GETPT HERE,STACK >PT + ZERO? PT /?PRG1 + PTSIZE PT + EQUAL? STACK,DEXIT \?PRG1 + PUT AV,CT,W?NO.WORD + GET PT,DEXITOBJ + CALL MATCH-OBJECT,STACK,FINDER,TRUE-VALUE + ZERO? STACK \?CND18 + PUT AV,CT,ADJ + RTRUE +?CND18: PUT AV,CT,ADJ + JUMP ?PRG1 + + + .FUNCT NUMERIC-ADJ?:ANY:1:1,NP,ADJS,VAL,AV,CT,ADJ,VV + GET NP,1 >ADJS + ZERO? ADJS /FALSE + ADD ADJS,10 >AV + GET ADJS,4 >CT +?PRG4: DLESS? 'CT,0 /?REP5 + GET AV,CT >ADJ + EQUAL? ADJ,W?INT.NUM \?PRG4 + GET NP,8 >VV +?PRG10: GET VV,0 + EQUAL? ADJ,STACK \?CCL14 + GET VV,1 >VAL + JUMP ?PRG4 +?CCL14: SUB VV,P-LEXELEN >VV + GRTR? P-LEXV,VV /?PRG4 + JUMP ?PRG10 +?REP5: RETURN VAL + + + .FUNCT DETERMINE-NP:ANY:3:4,SEARCH-ACT,WHICH,OBJ,MULTI,SYN,ROBJ,RLOC,QUANT,OWNER,RES,COUNT,TMP,OLD-OBJECT,NEW-OBJECT,?TMP1 +?FCN: ZERO? WHICH \?CCL3 + SET 'SYN,FALSE-VALUE + JUMP ?CND1 +?CCL3: GET PARSE-RESULT,3 >SYN +?CND1: SET 'ROBJ,OBJ + GETB OBJ,1 + EQUAL? STACK,3 \?CND4 + GET OBJ,2 >ROBJ +?CND4: GET ROBJ,5 >RLOC + ZERO? RLOC /?CND6 + GET RLOC,2 >RLOC + GET RLOC,3 >RLOC +?CND6: GET ROBJ,3 >QUANT + ZERO? QUANT /?CND8 + GRTR? QUANT,NP-QUANT-A \?CND8 + BTST SEARCH-FLAGS,16 /?CND8 + GET PARSE-RESULT,1 + CALL PARSER-ERROR,0,PARSER-ERROR-NOMULT,WHICH,STACK + RSTACK +?CND8: GET ROBJ,4 >OWNER + ZERO? OWNER \?PRD16 + GET ROBJ,1 >OWNER + ZERO? OWNER /?CND13 + GET OWNER,2 >OWNER + ZERO? OWNER /?CND13 +?PRD16: CALL2 PMEM?,OWNER + ZERO? STACK /?CND13 + PUT SEARCH-RES,2,FALSE-VALUE + GET OWNER,2 + EQUAL? W?IT,STACK \?CCL23 + PUT SEARCH-RES,1,1 + PUT SEARCH-RES,4,P-IT-OBJECT + CALL2 VISIBLE?,P-IT-OBJECT + ZERO? STACK /?CCL26 + COPYT SEARCH-RES,OWNER-SR-HERE,20 + JUMP ?CND13 +?CCL26: COPYT SEARCH-RES,OWNER-SR-THERE,20 + JUMP ?CND13 +?CCL23: SET 'OLD-OBJECT,FINDER + PUT OLD-OBJECT,0,SEARCH-ACT + PUT OLD-OBJECT,1,0 + PUT OLD-OBJECT,2,FALSE-VALUE + PUT OLD-OBJECT,3,SYN + PUT OLD-OBJECT,4,WHICH + GET OWNER,1 + PUT OLD-OBJECT,5,STACK + GET OWNER,2 + PUT OLD-OBJECT,6,STACK + GET OWNER,4 + PUT OLD-OBJECT,7,STACK + PUT OLD-OBJECT,8,FALSE-VALUE + PUT OLD-OBJECT,9,SEARCH-RES + CALL2 NUMERIC-ADJ?,OWNER + PUT OLD-OBJECT,10,STACK + PUT SEARCH-RES,1,0 + ICALL2 FIND-OBJECTS,15 + COPYT SEARCH-RES,OWNER-SR-HERE,20 + PUT SEARCH-RES,1,0 + PUT SEARCH-RES,2,FALSE-VALUE + ICALL2 FIND-OWNERS,OWNERS + COPYT SEARCH-RES,OWNER-SR-THERE,20 +?CND13: SET 'RES,FALSE-VALUE + GET ROBJ,2 + EQUAL? STACK,W?HIMSELF \?CND27 + EQUAL? 2,WHICH \?CCL31 + GET PARSE-RESULT,5 >COUNT + ZERO? COUNT /?CCL31 + GET COUNT,3 >COUNT + ZERO? COUNT /?CCL31 + FSET? COUNT,PERSONBIT \?CCL31 + SET 'RES,COUNT + FSET? COUNT,FEMALE \?CND27 + SET 'RES,P-HIM-OBJECT + JUMP ?CND27 +?CCL31: SET 'RES,P-HIM-OBJECT +?CND27: GET ROBJ,2 + EQUAL? STACK,W?HERSELF \?CND38 + EQUAL? 2,WHICH \?CCL42 + GET PARSE-RESULT,5 >COUNT + ZERO? COUNT /?CCL42 + GET COUNT,3 >COUNT + ZERO? COUNT /?CCL42 + FSET? COUNT,PERSONBIT \?CCL42 + FSET? COUNT,FEMALE \?CCL42 + SET 'RES,COUNT + JUMP ?CND38 +?CCL42: SET 'RES,P-HER-OBJECT +?CND38: ZERO? RES /?CND48 + CALL DO-PMEM-ALLOC,4,NOUN-PHRASE-MIN-LENGTH >OLD-OBJECT + PUT OLD-OBJECT,1,1 + PUT OLD-OBJECT,3,RES + PUT OLD-OBJECT,4,ROBJ + RETURN OLD-OBJECT +?CND48: SET 'OLD-OBJECT,FINDER + PUT OLD-OBJECT,0,SEARCH-ACT + PUT OLD-OBJECT,1,0 + PUT OLD-OBJECT,2,QUANT + PUT OLD-OBJECT,3,SYN + PUT OLD-OBJECT,4,WHICH + GET ROBJ,1 + PUT OLD-OBJECT,5,STACK + GET ROBJ,2 + PUT OLD-OBJECT,6,STACK + GET ROBJ,4 + PUT OLD-OBJECT,7,STACK + GET ROBJ,6 + PUT OLD-OBJECT,8,STACK + PUT OLD-OBJECT,9,SEARCH-RES + CALL2 NUMERIC-ADJ?,ROBJ + PUT OLD-OBJECT,10,STACK + ICALL FIND-OBJECTS,SEARCH-FLAGS,RLOC + GET SEARCH-RES,1 + ZERO? STACK \?CND52 + GET ROBJ,1 + ZERO? STACK /?CND52 + GET ROBJ,1 + CALL2 CHECK-DIR-ADJS,STACK + ZERO? STACK /?CND52 + PUT GWIM-MSG,2,ROBJ + GET SEARCH-RES,4 + PUT GWIM-MSG,3,STACK +?CND52: GET SEARCH-RES,1 >COUNT + ZERO? COUNT \?CCL60 + GET ROBJ,2 >TMP + ZERO? TMP /?CCL60 + ADD WORD-FLAG-TABLE,2 >?TMP1 + GET WORD-FLAG-TABLE,0 + INTBL? TMP,?TMP1,STACK,132 >OLD-OBJECT \?CCL66 + GET OLD-OBJECT,1 + JUMP ?CND64 +?CCL66: PUSH FALSE-VALUE +?CND64: BTST STACK,16 \?CCL60 + PUT ROBJ,3,NP-QUANT-ALL + GET TMP,3 + PUT ROBJ,2,STACK + JUMP ?FCN +?CCL60: ZERO? COUNT \?CCL68 + ZERO? RLOC \?CND58 + ZERO? MULTI \?CCL70 + CALL1 DET-NP-NOT-HERE? + ZERO? STACK /?CND58 +?CCL70: CALL DO-PMEM-ALLOC,4,NOUN-PHRASE-MIN-LENGTH >NEW-OBJECT + PUT NEW-OBJECT,1,1 + PUT NEW-OBJECT,3,NOT-HERE-OBJECT + PUT NEW-OBJECT,4,ROBJ + SET 'RES,NEW-OBJECT + JUMP ?CND58 +?CCL68: EQUAL? COUNT,1 /?CTR75 + ZERO? QUANT \?CTR75 + GET SEARCH-RES,4 + GETP STACK,P?GENERIC + CALL STACK,SEARCH-RES,FINDER >RES + ZERO? RES \?CTR75 + CALL1 DET-NP-OWNEE? >RES + ZERO? RES /?CCL76 +?CTR75: EQUAL? RES,NOT-HERE-OBJECT \?CCL83 + CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,OBJ + RSTACK +?CCL83: ZERO? RES /?CND81 + SET 'COUNT,1 + PUT SEARCH-RES,1,1 + PUT SEARCH-RES,2,FALSE-VALUE + EQUAL? RES,HERE \?CCL87 + PUSH GLOBAL-HERE + JUMP ?CND85 +?CCL87: PUSH RES +?CND85: PUT SEARCH-RES,4,STACK +?CND81: MUL COUNT,2 + ADD STACK,2 + CALL DO-PMEM-ALLOC,4,STACK >NEW-OBJECT + PUT NEW-OBJECT,1,COUNT + SET 'RES,NEW-OBJECT + GET ROBJ,4 >SYN + ZERO? SYN \?CCL89 + GET ROBJ,1 >SYN + ZERO? SYN /?CND88 + GET SYN,2 >SYN + ZERO? SYN /?CND88 +?CCL89: LESS? 0,SYN \?CCL95 + GRTR? SYN,LAST-OBJECT \?CND88 +?CCL95: GET SEARCH-RES,3 >SYN + GET ROBJ,4 + ZERO? STACK /?CCL100 + PUT ROBJ,4,SYN + JUMP ?CND88 +?CCL100: GET ROBJ,1 + PUT STACK,2,SYN +?CND88: ADD RES,6 + CALL DETERMINE-NP-XFER,COUNT,ROBJ,SEARCH-RES,STACK >SYN + ZERO? SYN /?CND58 + SUB COUNT,SYN + PUT RES,1,STACK +?CND58: ZERO? RES \?PRD107 + RETURN RES +?CCL76: CALL2 READY-TO-DISAMBIGUATE?,ROBJ + ZERO? STACK /?CND58 + GET PARSE-RESULT,1 + CALL PARSER-ERROR,0,PARSER-ERROR-ORPH-NP,ROBJ,STACK + RSTACK +?PRD107: GETB OBJ,1 + EQUAL? STACK,3 /?CCL105 + RETURN RES +?CCL105: PUT OBJ,3,RES + RETURN RES + + + .FUNCT DET-NP-NOT-HERE?:ANY:0:0,X,?TMP1,?TMP2 + GET PARSE-RESULT,1 >?TMP2 + ADD WORD-FLAG-TABLE,2 >?TMP1 + GET WORD-FLAG-TABLE,0 + INTBL? ?TMP2,?TMP1,STACK,132 >X \?CCL8 + GET X,1 + JUMP ?CND6 +?CCL8: PUSH FALSE-VALUE +?CND6: BTST STACK,512 /TRUE + GET PARSE-RESULT,4 + CALL2 NOT-HERE-VERB?,STACK + ZERO? STACK \TRUE + RFALSE + + + .FUNCT DET-NP-OWNEE?:ANY:0:0,ADJS,OBJ,OBJ1,LEN,PTR + GET FINDER,5 >ADJS + ZERO? ADJS /?CND1 + GET ADJS,2 >ADJS +?CND1: ZERO? ADJS /FALSE + SET 'OBJ,FALSE-VALUE + GET SEARCH-RES,1 >LEN + SET 'PTR,SEARCH-RES+8 +?PRG5: DLESS? 'LEN,0 \?CCL9 + RETURN OBJ +?CCL9: GET PTR,0 >OBJ1 + GETP OBJ1,P?OWNER + EQUAL? ADJS,STACK \?CND7 + ZERO? OBJ \FALSE + SET 'OBJ,OBJ1 +?CND7: ADD PTR,2 >PTR + JUMP ?PRG5 + + + .FUNCT FIND-OWNERS:ANY:1:1,TBL,OOBJ,LEN + GET TBL,0 >LEN +?PRG1: LESS? LEN,1 /TRUE + GET TBL,LEN >OOBJ + LESS? 0,OOBJ \?CCL7 + GET TBL,LEN >OOBJ + GRTR? OOBJ,LAST-OBJECT /?CCL7 + CALL MATCH-OBJECT,OOBJ,FINDER,TRUE-VALUE + ZERO? STACK \?CND3 + RTRUE +?CCL7: ICALL2 FIND-OWNERS,OOBJ +?CND3: DEC 'LEN + JUMP ?PRG1 + + + .FUNCT READY-TO-DISAMBIGUATE?:ANY:1:1,NP,PTR,NOUN + GET NP,8 >PTR + ZERO? PTR /FALSE + GET NP,2 >NOUN + ZERO? NOUN /FALSE +?PRG6: GET PTR,0 + EQUAL? NOUN,STACK \?CCL10 + RETURN PTR +?CCL10: SUB PTR,4 >PTR + GRTR? P-LEXV,PTR \?PRG6 + RFALSE + + + .FUNCT DETERMINE-NP-XFER:ANY:4:4,COUNT,ROBJ,SRES,DV,CT,V,TMP,NUM + GET SRES,0 >CT + ADD SRES,8 >V + GRTR? CT,COUNT \?CND3 + SET 'CT,COUNT +?CND3: SUB COUNT,CT >COUNT + SET 'NUM,0 +?PRG5: GET V,0 >TMP + ZERO? TMP /?CCL9 + PUT DV,0,TMP + PUT DV,1,ROBJ + JUMP ?CND7 +?CCL9: INC 'NUM +?CND7: ADD DV,4 >DV + ADD V,2 >V + DLESS? 'CT,1 \?PRG5 + GET SRES,2 >SRES + ZERO? SRES \?CND12 + RETURN NUM +?CND12: SET 'CT,FIND-RES-MAXOBJ + ADD SRES,8 >V + GRTR? CT,COUNT \?CND14 + SET 'CT,COUNT +?CND14: SUB COUNT,CT >COUNT + JUMP ?PRG5 + + + .FUNCT DO-ORPHAN-TEST:ANY:0:2,N,TYP + RETURN P-OFLAG + + + .FUNCT RED-O-ADJ:ANY:0:2,N,TYP + ZERO? P-OFLAG /FALSE + COPYT O-LEXV,G-LEXV,LEXV-LENGTH-BYTES + COPYT O-INBUF,G-INBUF,61 + GET OOPS-TABLE,O-AGAIN + PUT OOPS-TABLE,O-START,STACK + POP DATA-STACK + ICALL2 INSERT-ADJS,STACK + ICALL2 COPY-INPUT,TRUE-VALUE + THROW PARSER-RESULT-AGAIN,PARSE-SENTENCE-ACTIVATION + RTRUE + + + .FUNCT RED-O-PP:ANY:0:2,N,TYP,PP,A,PREP + LESS? P-OFLAG,0 \?CCL8 + SUB 0,P-OFLAG >PP + JUMP ?CND6 +?CCL8: SET 'PP,P-OFLAG +?CND6: ZERO? PP /FALSE + GET O-LEXV,PP + EQUAL? W?NO.WORD,STACK \FALSE + SUB PP,P-LEXELEN + GET O-LEXV,STACK >A + ZERO? A /FALSE + POP DATA-STACK >PP + ZERO? PP /FALSE + EQUAL? N,2 /?CCL3 + POP DATA-STACK >PREP + ZERO? PREP /FALSE +?CCL3: COPYT O-LEXV,G-LEXV,LEXV-LENGTH-BYTES + COPYT O-INBUF,G-INBUF,61 + GET OOPS-TABLE,O-AGAIN + PUT OOPS-TABLE,O-START,STACK + EQUAL? A,PREP \?CCL18 + PUSH 1 + JUMP ?CND16 +?CCL18: PUSH 0 +?CND16: ICALL2 INSERT-NP,STACK + ICALL2 COPY-INPUT,TRUE-VALUE + THROW PARSER-RESULT-AGAIN,PARSE-SENTENCE-ACTIVATION + RTRUE + + + .FUNCT INSERT-NP:ANY:0:2,NUM,NP,GPTR,PPTR,TMP,?TMP1 + LESS? P-OFLAG,0 \?CCL3 + SUB 0,P-OFLAG >GPTR + JUMP ?CND1 +?CCL3: SET 'GPTR,P-OFLAG +?CND1: GET PARSE-RESULT,2 >TMP + ZERO? TMP /?CCL6 + MUL NUM,4 + ADD TMP,STACK >PPTR + SUB TLEXV,TMP + DIV STACK,4 + ADD 1,STACK >TMP + JUMP ?CND4 +?CCL6: GET OOPS-TABLE,O-START >PPTR + GET OOPS-TABLE,O-LENGTH >TMP + MUL NUM,4 + ADD PPTR,STACK >PPTR +?CND4: SUB TMP,NUM >NUM + ADD -1,NUM + ICALL MAKE-ROOM-FOR-TOKENS,STACK,G-LEXV,GPTR +?PRG8: DLESS? 'NUM,0 /TRUE + GETB PPTR,2 >?TMP1 + GETB PPTR,3 + MUL GPTR,2 + ADD 3,STACK >TMP + ICALL INBUF-ADD,?TMP1,STACK,TMP + GET PPTR,0 >TMP + PUT G-LEXV,GPTR,TMP + EQUAL? TMP,W?INT.NUM,W?INT.TIM \?CND12 + ADD 1,GPTR >?TMP1 + GET PPTR,1 + PUT G-LEXV,?TMP1,STACK +?CND12: ADD GPTR,2 >GPTR + ADD PPTR,4 >PPTR + JUMP ?PRG8 + + + .FUNCT TEST-SR:ANY:1:1,NP,A,CT,LEN,NEW-OBJECT,SZ,REM,?TMP1 + GET ORPHAN-SR,1 >LEN + ZERO? LEN /FALSE + GET NP,2 >A + GET A,4 >?TMP1 + ZERO? ?TMP1 /?PRD9 + PUSH ?TMP1 + JUMP ?PEN7 +?PRD9: GET NP,2 >A + GET A,3 + GET STACK,4 +?PEN7: BTST STACK,32768 /?CND3 + GET NP,2 >A + GET A,4 >?TMP1 + ZERO? ?TMP1 /?PRD12 + PUSH ?TMP1 + JUMP ?PEN10 +?PRD12: GET NP,2 >A + GET A,3 + GET STACK,4 +?PEN10: BAND STACK,16 + BAND STACK,32767 + ZERO? STACK /?CND3 + RETURN A +?CND3: GET NP,1 >A + ZERO? A \?CCL15 + CALL DO-PMEM-ALLOC,1,8 >NEW-OBJECT + GET NP,7 + PUT NEW-OBJECT,1,STACK + SET 'A,NEW-OBJECT + JUMP ?CND13 +?CCL15: GET A,4 >CT + GRTR? ADJS-MAX-COUNT,CT \FALSE +?CND13: ADD A,10 >?TMP1 + GET NP,2 + PUT ?TMP1,CT,STACK + ADD 1,CT + PUT A,4,STACK + PUT FINDER,5,A + CALL2 NUMERIC-ADJ?,NP + PUT FINDER,10,STACK + GET ORPHAN-NP,2 + PUT FINDER,6,STACK + PUT SEARCH-RES,1,0 + PUT SEARCH-RES,2,FALSE-VALUE + SET 'NEW-OBJECT,ORPHAN-SR+8 + GET ORPHAN-SR,0 >SZ + SET 'REM,LEN +?PRG17: GET NEW-OBJECT,0 + CALL MATCH-OBJECT,STACK,FINDER,TRUE-VALUE + ZERO? STACK \?CND19 + RETURN A +?CND19: DLESS? 'REM,1 /?REP18 + DLESS? 'SZ,1 /?REP18 + ADD NEW-OBJECT,2 >NEW-OBJECT + JUMP ?PRG17 +?REP18: ZERO? CT /?CND27 + PUT A,4,CT +?CND27: GET SEARCH-RES,1 + ZERO? STACK /FALSE + RETURN A + + + .FUNCT RED-O-NP:ANY:0:2,N,TYP,A,NP,PP,A1,PTR,WD,?TMP2,?TMP1 + EQUAL? N,3 \?CND1 + POP DATA-STACK >PP +?CND1: POP DATA-STACK >NP + GETB NP,1 + EQUAL? STACK,4 \?CND3 + GET NP,3 + EQUAL? STACK,INTQUOTE \?CND3 + GET NP,4 >NP + LESS? 0,P-OFLAG /?CND3 + GET NP,7 + SUB STACK,P-LEXV + DIV STACK,2 >PP + ICALL MAKE-ROOM-FOR-TOKENS,1,G-LEXV,PP + PUT G-LEXV,PP,W?SAY + ICALL1 COPY-INPUT + THROW PARSER-RESULT-AGAIN,PARSE-SENTENCE-ACTIVATION +?CND3: ZERO? P-OFLAG /FALSE + ZERO? PP \?CND12 + GET NP,2 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD19 + PUSH ?TMP1 + JUMP ?PEN17 +?PRD19: GET NP,2 + GET STACK,3 + GET STACK,4 +?PEN17: BTST STACK,32768 /?CND12 + GET NP,2 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD23 + PUSH ?TMP1 + JUMP ?PEN21 +?PRD23: GET NP,2 + GET STACK,3 + GET STACK,4 +?PEN21: BAND STACK,4 + BAND STACK,32767 + ZERO? STACK /?CND12 + GET NP,3 + ZERO? STACK \?CND12 + CALL2 TEST-SR,NP >A + ZERO? A /?CND12 + XPUSH A,DATA-STACK /?BOGUS25 +?BOGUS25: ICALL RED-O-ADJ,1,TYP + RFALSE +?CND12: COPYT O-LEXV,G-LEXV,LEXV-LENGTH-BYTES + COPYT O-INBUF,G-INBUF,61 + LESS? P-OFLAG,0 \?CCL28 + SUB 0,P-OFLAG >N + JUMP ?CND26 +?CCL28: SET 'N,P-OFLAG +?CND26: GET G-LEXV,N + EQUAL? W?NO.WORD,STACK \?CCL31 + ICALL INSERT-NP,0,NP + JUMP ?CND29 +?CCL31: SET 'A1,FALSE-VALUE + GET NP,2 >A + ZERO? A /?CND34 + PUT G-LEXV,N,A + GET NP,8 >A + GETB A,2 >?TMP2 + GETB A,3 >?TMP1 + MUL N,2 + ADD 3,STACK + ICALL INBUF-ADD,?TMP2,?TMP1,STACK +?CND34: GET NP,1 >A + ZERO? A /?CND36 + ICALL2 INSERT-ADJS,A +?CND36: ZERO? PP /?CND38 + ADD N,P-LEXELEN + ICALL MAKE-ROOM-FOR-TOKENS,2,G-LEXV,STACK + ADD N,P-LEXELEN >?TMP1 + GET PP,1 + PUT G-LEXV,?TMP1,STACK + GET PP,2 >A + GETB A,1 + EQUAL? STACK,4 \?CCL42 + GET A,4 >A + JUMP ?CND40 +?CCL42: GETB A,1 + EQUAL? STACK,3 \?CND40 + GET A,2 >A +?CND40: ADD N,4 >?TMP1 + GET A,2 + PUT G-LEXV,?TMP1,STACK +?CND38: GET NP,3 >A + ZERO? A /?CND29 + SET 'PTR,N +?PRG49: SUB PTR,P-LEXELEN >PTR + GRTR? 0,PTR \?CCL53 + ZERO? A1 /?PRD56 + SET 'PTR,A1 + JUMP ?PEN54 +?PRD56: SET 'PTR,N +?PEN54: ICALL MAKE-ROOM-FOR-TOKENS,1,G-LEXV,PTR + JUMP ?REP50 +?CCL53: GET G-LEXV,PTR >WD + EQUAL? WD,W?THE /?REP50 + GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD65 + PUSH ?TMP1 + JUMP ?PEN63 +?PRD65: GET WD,3 + GET STACK,4 +?PEN63: BTST STACK,32768 /?CCL58 + GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD68 + PUSH ?TMP1 + JUMP ?PEN66 +?PRD68: GET WD,3 + GET STACK,4 +?PEN66: BAND STACK,16 + BAND STACK,32767 + ZERO? STACK \?REP50 +?CCL58: GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD75 + PUSH ?TMP1 + JUMP ?PEN73 +?PRD75: GET WD,3 + GET STACK,4 +?PEN73: BTST STACK,32768 /?CCL70 + GET WD,4 >?TMP1 + ZERO? ?TMP1 /?PRD78 + PUSH ?TMP1 + JUMP ?PEN76 +?PRD78: GET WD,3 + GET STACK,4 +?PEN76: BAND STACK,4 + BAND STACK,32767 + ZERO? STACK /?CCL70 + SET 'A1,PTR + JUMP ?PRG49 +?CCL70: ZERO? A1 /?PRD81 + SET 'PTR,A1 + JUMP ?PEN79 +?PRD81: SET 'PTR,N +?PEN79: ICALL MAKE-ROOM-FOR-TOKENS,1,G-LEXV,PTR +?REP50: CALL2 GET-QUANTITY-WORD,A + PUT G-LEXV,PTR,STACK +?CND29: GET OOPS-TABLE,O-AGAIN + PUT OOPS-TABLE,O-START,STACK + ICALL1 COPY-INPUT + THROW PARSER-RESULT-AGAIN,PARSE-SENTENCE-ACTIVATION + RTRUE + + + .FUNCT RED-PERS:ANY:0:2,N,TYP,X,?TMP1 + EQUAL? N,2,3 \TRUE + POP DATA-STACK >X + EQUAL? X,W?COMMA \?PRD7 + EQUAL? N,2 /?CCL5 +?PRD7: EQUAL? X,W?TO \FALSE +?CCL5: POP DATA-STACK >X + EQUAL? N,3 \?CND11 + GET P-RUNNING,0 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD19 + PUSH ?TMP1 + JUMP ?PEN17 +?PRD19: GET P-RUNNING,0 + GET STACK,3 + GET STACK,4 +?PEN17: BTST STACK,32768 /FALSE + GET P-RUNNING,0 + GET STACK,4 >?TMP1 + ZERO? ?TMP1 /?PRD22 + PUSH ?TMP1 + JUMP ?PEN20 +?PRD22: GET P-RUNNING,0 + GET STACK,3 + GET STACK,4 +?PEN20: BAND STACK,1 + BAND STACK,32767 + ZERO? STACK /FALSE +?CND11: CALL2 HACK-TELL,X + RSTACK + + + .FUNCT HACK-TELL:ANY:1:1,X,NP + PUT PARSE-RESULT,1,W?TELL + GET W?TELL,3 + GET STACK,2 + ICALL GET-SYNTAX,STACK,1,FALSE-VALUE + CALL DETERMINE-OBJ,X,1 >NP + ZERO? NP \?CND1 + CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,X + RSTACK +?CND1: PUT PARSE-RESULT,2,TLEXV + PUT PARSE-RESULT,12,NP + GET NP,3 >X + EQUAL? X,WINNER,PLAYER,ME /TRUE + EQUAL? X,YOU /TRUE + GET TLEXV,0 + EQUAL? STACK,W?YOU \?CND8 + ICALL1 IGNORE-FIRST-WORD +?CND8: LESS? P-LEN,1 \?CCL12 + SET 'P-CONT,FALSE-VALUE + JUMP ?CND10 +?CCL12: SET 'P-CONT,TLEXV +?CND10: CALL2 HACK-TELL-1,NP + EQUAL? M-FATAL,STACK /?CCL14 + ZERO? P-CONT \TRUE +?CCL14: SET 'P-CONT,-1 + THROW PARSER-RESULT-DEAD,PARSE-SENTENCE-ACTIVATION + RTRUE + + + .FUNCT HACK-TELL-1:ANY:1:1,NP,X,NUM,CT,?TMP1 + GET NP,4 >PRSO-NP + GET NP,3 >X + ZERO? P-WON /?CND1 + GET NP,1 >CT + LESS? 1,CT \?CND1 + GET NP,2 >NUM + GRTR? CT,NUM \FALSE + ADD 1,NUM + PUT NP,2,STACK + ADD NP,8 >?TMP1 + MUL 2,NUM + GET ?TMP1,STACK >PRSO-NP + ADD NP,6 >?TMP1 + MUL 2,NUM + GET ?TMP1,STACK >X + ICALL2 RT-PRINT-DESC,X + PRINTI ": +" +?CND1: SET 'PRSQ,FALSE-VALUE + SET 'PRSS,FALSE-VALUE + CALL PERFORM,V?TELL,X >X + PUT PARSE-RESULT,4,0 + RETURN X + + + .FUNCT RED-VP:ANY:0:2,N,TYP,VERB,A1,A2,?TMP1 + SET 'A1,TRUE-VALUE + SET 'A2,TRUE-VALUE + GRTR? N,2 \?CND1 + POP DATA-STACK >A1 +?CND1: POP DATA-STACK >VERB + GRTR? N,2 \?CND3 + POP DATA-STACK >A2 + EQUAL? N,4 \?CND3 + POP DATA-STACK +?CND3: PUT PARSE-RESULT,1,VERB + PUT PARSE-RESULT,2,TLEXV + EQUAL? A1,TRUE-VALUE /?CCL9 + GET A1,3 >?TMP1 + ZERO? ?TMP1 /?PRD12 + PUSH ?TMP1 + JUMP ?PEN10 +?PRD12: PUSH A1 +?PEN10: PUT PARSE-RESULT,0,STACK + RTRUE +?CCL9: EQUAL? A2,TRUE-VALUE /TRUE + GET A2,3 >?TMP1 + ZERO? ?TMP1 /?PRD16 + PUSH ?TMP1 + JUMP ?PEN14 +?PRD16: PUSH A2 +?PEN14: PUT PARSE-RESULT,0,STACK + RTRUE + + + .FUNCT RED-NP:ANY:0:2,N,TYP,NAME,QUANT,LEXB,LEXE,ADJ,NEW-OBJECT,?TMP1 + SET 'QUANT,NP-QUANT-NONE + SET 'LEXE,TLEXV + POP DATA-STACK >NAME + EQUAL? NAME,1 \?CND1 + SET 'NAME,FALSE-VALUE +?CND1: GET LEXE,0 >ADJ + EQUAL? ADJ,W?COMMA,W?AND /?CCL4 + GET ADJ,4 >?TMP1 + ZERO? ?TMP1 /?PRD11 + PUSH ?TMP1 + JUMP ?PEN9 +?PRD11: GET ADJ,3 + GET STACK,4 +?PEN9: BAND STACK,32768 + EQUAL? STACK,-32768 \?CND3 + GET ADJ,4 >?TMP1 + ZERO? ?TMP1 /?PRD14 + PUSH ?TMP1 + JUMP ?PEN12 +?PRD14: GET ADJ,3 + GET STACK,4 +?PEN12: BAND STACK,32769 + BAND STACK,32767 + ZERO? STACK /?CND3 +?CCL4: SUB LEXE,4 >LEXE +?CND3: POP DATA-STACK >ADJ + EQUAL? ADJ,1 \?CCL17 + SET 'LEXB,LEXE + SET 'ADJ,FALSE-VALUE + JUMP ?CND15 +?CCL17: GET ADJ,1 >LEXB + GET ADJ,3 + ZERO? STACK /?CND15 + GET ADJ,3 >QUANT +?CND15: CALL DO-PMEM-ALLOC,2,9 >NEW-OBJECT + PUT NEW-OBJECT,2,NAME + PUT NEW-OBJECT,1,ADJ + PUT NEW-OBJECT,7,LEXB + PUT NEW-OBJECT,8,LEXE + PUT NEW-OBJECT,3,QUANT + RETURN NEW-OBJECT + + + .FUNCT RED-OF:ANY:0:2,N,TYP,ONP,NP,TMP,A + POP DATA-STACK >ONP + POP DATA-STACK + EQUAL? STACK,W?OF \FALSE + POP DATA-STACK >NP + GET NP,3 + ZERO? STACK /?CCL6 + GET NP,2 + ZERO? STACK \?CCL6 + GET NP,1 + ZERO? STACK \?CCL6 + GET NP,3 + PUT ONP,3,STACK + RETURN ONP +?CCL6: PUT NP,4,ONP + RETURN NP + + + .FUNCT RED-QT:ANY:0:2,N,TYP,Q,NEW-OBJECT + POP DATA-STACK >Q + EQUAL? Q,W?A,W?AN /FALSE + CALL DO-PMEM-ALLOC,2,9 >NEW-OBJECT + CALL2 GET-QUANTITY,Q + PUT NEW-OBJECT,3,STACK + PUT NEW-OBJECT,7,TLEXV + PUT NEW-OBJECT,8,TLEXV + RETURN NEW-OBJECT + + + .FUNCT GET-QUANTITY-WORD:ANY:1:1,Q,TBL + INTBL? Q,NP-QUANT-TBL,NP-QUANT-TBL-LEN,132 >TBL \FALSE + GET TBL,1 + RSTACK + + + .FUNCT GET-QUANTITY:ANY:1:1,Q,TBL + INTBL? Q,NP-QUANT-TBL+2,NP-QUANT-TBL-LEN,132 >TBL \FALSE + SUB TBL,2 + GET STACK,0 + RSTACK + + + .FUNCT RED-QN:ANY:0:2,N,TYP,NP,Q + POP DATA-STACK >NP + GET NP,7 + SUB STACK,4 + PUT NP,7,STACK + POP DATA-STACK + CALL2 GET-QUANTITY,STACK + PUT NP,3,STACK + RETURN NP + + + .FUNCT RED-NPP:ANY:0:2,N,TYP,NPP,ONPP,PP,NP,RLOC,X1,X2,KLUDGE-FLAG,OONPP,?PR-NP,NN,TEMP + EQUAL? N,1 \?CCL3 + POP DATA-STACK + RSTACK +?CCL3: EQUAL? N,2 \?CCL5 + POP DATA-STACK >PP + POP DATA-STACK >ONPP + GET PP,1 + EQUAL? STACK,W?BUT,W?EXCEPT \?CCL8 + GETB ONPP,1 + EQUAL? STACK,2 /?CCL11 + CALL PARSER-ERROR,0,PARSER-ERROR-NOUND + RSTACK +?CCL11: GET ONPP,3 + ZERO? STACK \?CCL13 + GET DATA-STACK,0 + EQUAL? 20,STACK /?CND14 + POP DATA-STACK >X1 + GET DATA-STACK,0 + EQUAL? 20,STACK /?CND16 + POP DATA-STACK >X2 + CALL2 PMEM?,X2 + ZERO? STACK /?CND18 + GETB X2,1 + EQUAL? STACK,2 \?CND18 + GET X2,3 + ZERO? STACK /?CND18 + CALL REDUCE-EXCEPTION,PP,X2 + ZERO? STACK /?CND18 + SET 'KLUDGE-FLAG,TRUE-VALUE +?CND18: XPUSH X2,DATA-STACK /?CND16 +?CND16: XPUSH X1,DATA-STACK /?CND14 +?CND14: ZERO? KLUDGE-FLAG \?CND6 + CALL PARSER-ERROR,0,PARSER-ERROR-NOUND + RSTACK +?CCL13: CALL REDUCE-EXCEPTION,PP,ONPP + ZERO? STACK \?CND6 + RFALSE +?CCL8: CALL2 REDUCE-LOCATION,PP >RLOC + ZERO? RLOC /FALSE +?CND6: ZERO? RLOC \?CCL32 + RETURN ONPP +?CCL32: GETB ONPP,1 + EQUAL? STACK,2 \?CCL34 + GET ONPP,5 + ZERO? STACK /?CCL37 + GET RLOC,1 + CALL PARSER-ERROR,0,PARSER-ERROR-TMNOUN,STACK + RSTACK +?CCL37: PUT ONPP,5,RLOC + RETURN ONPP +?CCL34: SET 'OONPP,ONPP +?PRG38: GET OONPP,2 >?PR-NP + GET ?PR-NP,5 + ZERO? STACK \?CND40 + PUT ?PR-NP,5,RLOC +?CND40: GET OONPP,1 >OONPP + ZERO? OONPP \?CCL44 + RETURN ONPP +?CCL44: GETB OONPP,1 + EQUAL? STACK,2 \?PRG38 + PUT OONPP,5,RLOC + RETURN ONPP +?CCL5: POP DATA-STACK >NP + POP DATA-STACK + EQUAL? STACK,W?AND,W?COMMA \FALSE + POP DATA-STACK >NPP + GETB NPP,1 + EQUAL? STACK,2 \?CND49 + GET NPP,6 + ZERO? STACK \FALSE +?CND49: CALL DO-PMEM-ALLOC,3,3 >?PR-NP + PUT ?PR-NP,2,NP + SET 'NP,?PR-NP + GETB NPP,1 + EQUAL? STACK,2 \?CCL55 + CALL DO-PMEM-ALLOC,3,3 >OONPP + PUT OONPP,1,NP + PUT OONPP,2,NPP + RETURN OONPP +?CCL55: SET 'NN,NPP +?PRG56: GET NN,1 >TEMP + ZERO? TEMP \?CND58 + PUT NN,1,NP + RETURN NPP +?CND58: SET 'NN,TEMP + JUMP ?PRG56 + + + .FUNCT RED-PP:ANY:0:2,N,TYP,TMP,NOUN,PREP,NEW-OBJECT + POP DATA-STACK >NOUN + EQUAL? N,2 \?CCL3 + POP DATA-STACK >PREP + JUMP ?CND1 +?CCL3: POP DATA-STACK >TMP + EQUAL? TMP,W?OF \?CND1 + POP DATA-STACK >PREP + EQUAL? PREP,W?OUT \FALSE + SET 'PREP,W?FROM +?CND1: ZERO? PREP /FALSE + CALL DO-PMEM-ALLOC,5,2 >NEW-OBJECT + PUT NEW-OBJECT,1,PREP + PUT NEW-OBJECT,2,NOUN + RETURN NEW-OBJECT + + + .FUNCT RED-POSS:ANY:0:2,N,TYP,OBJ,WD,A + EQUAL? N,3 \FALSE + POP DATA-STACK + EQUAL? STACK,W?S /?CCL6 + CALL PARSER-ERROR,0,PARSER-ERROR-NOUND + RSTACK +?CCL6: POP DATA-STACK + EQUAL? STACK,W?APOSTROPHE /?CCL8 + CALL PARSER-ERROR,0,PARSER-ERROR-NOUND + RSTACK +?CCL8: POP DATA-STACK + RSTACK + + + .FUNCT RED-ADJ:ANY:0:2,N,TYP,A1,A2,CT,AD,NEW-OBJECT,VV,TCT,?TMP1 + ZERO? N /TRUE + POP DATA-STACK >A1 + EQUAL? A1,1 \?CND4 + CALL DO-PMEM-ALLOC,1,8 >NEW-OBJECT + PUT NEW-OBJECT,1,TLEXV + SET 'A1,NEW-OBJECT +?CND4: POP DATA-STACK >A2 + CALL2 PMEM?,A2 + ZERO? STACK /?CCL8 + PUT A1,2,A2 + RETURN A1 +?CCL8: EQUAL? A2,W?MY \?CCL10 + PUT A1,2,PLAYER + RETURN A1 +?CCL10: EQUAL? A2,W?YOUR \?CCL12 + PUT A1,2,WINNER + RETURN A1 +?CCL12: EQUAL? A2,W?HIS \?CND6 + GET PARSE-RESULT,5 >AD + ZERO? AD /?CCL17 + GET AD,3 >AD + ZERO? AD /?CCL17 + FSET? AD,PERSONBIT \?CCL17 + PUT A1,2,AD + FSET? AD,FEMALE \?CND15 + PUT A1,2,P-HIM-OBJECT + RETURN A1 +?CCL17: PUT A1,2,P-HIM-OBJECT +?CND15: RETURN A1 +?CND6: EQUAL? A2,W?HER \?CND23 + GET PARSE-RESULT,5 >AD + ZERO? AD /?CCL27 + GET AD,3 >AD + ZERO? AD /?CCL27 + FSET? AD,PERSONBIT \?CCL27 + FSET? AD,FEMALE \?CCL27 + PUT A1,2,AD + RETURN A1 +?CCL27: PUT A1,2,P-HER-OBJECT + RETURN A1 +?CND23: EQUAL? A2,W?THEIR \?CCL34 + GET PARSE-RESULT,5 >AD + ZERO? AD /?CCL37 + GET AD,3 >AD + ZERO? AD /?CCL37 + FSET? AD,PLURAL \?CCL37 + PUT A1,2,AD + RETURN A1 +?CCL37: PUT A1,2,P-THEM-OBJECT + RETURN A1 +?CCL34: EQUAL? A2,W?ITS \?CCL42 + GET PARSE-RESULT,5 >AD + ZERO? AD /?CCL45 + GET AD,3 >AD + ZERO? AD /?CCL45 + FSET? AD,PERSONBIT /?CCL45 + PUT A1,2,AD + RETURN A1 +?CCL45: PUT A1,2,P-IT-OBJECT + RETURN A1 +?CCL42: ADD WORD-FLAG-TABLE,2 >?TMP1 + GET WORD-FLAG-TABLE,0 + INTBL? A2,?TMP1,STACK,132 >NEW-OBJECT \?CCL53 + GET NEW-OBJECT,1 + JUMP ?CND51 +?CCL53: PUSH FALSE-VALUE +?CND51: BTST STACK,16384 \?CCL50 + GET A2,3 + PUT A1,2,STACK + RETURN A1 +?CCL50: EQUAL? A2,W?A,W?AN \?CCL55 + PUT A1,3,NP-QUANT-A + RETURN A1 +?CCL55: EQUAL? A2,W?THE /?CND32 + GET A2,4 >?TMP1 + ZERO? ?TMP1 /?PRD64 + PUSH ?TMP1 + JUMP ?PEN62 +?PRD64: GET A2,3 + GET STACK,4 +?PEN62: BTST STACK,32768 /FALSE + GET A2,4 >?TMP1 + ZERO? ?TMP1 /?PRD67 + PUSH ?TMP1 + JUMP ?PEN65 +?PRD67: GET A2,3 + GET STACK,4 +?PEN65: BAND STACK,4 + BAND STACK,32767 + ZERO? STACK /FALSE + SET 'AD,A2 + GET A1,4 >CT + LESS? CT,ADJS-MAX-COUNT \?CND32 + ADD A1,10 >VV + GET A1,4 >TCT +?PRG71: ZERO? TCT \?CND73 + PUT VV,0,A2 + ADD CT,1 + PUT A1,4,STACK + RETURN A1 +?CND73: GET VV,0 + EQUAL? AD,STACK /?CND32 + ADD VV,2 >VV + DEC 'TCT + JUMP ?PRG71 +?CND32: RETURN A1 + + + .FUNCT RED-QUOTE:ANY:0:2,N,TYP,NP,NEW-OBJECT + POP DATA-STACK + EQUAL? W?QUOTE,STACK \FALSE + CALL DO-PMEM-ALLOC,2,9 >NEW-OBJECT + PUT NEW-OBJECT,2,W?QUOTE + SUB P-RUNNING,4 + PUT NEW-OBJECT,7,STACK + SET 'NP,NEW-OBJECT +?PRG4: GET P-RUNNING,0 >N + DLESS? 'P-LEN,0 /?CCL7 + EQUAL? N,W?QUOTE,W?END.OF.INPUT \?CND6 +?CCL7: EQUAL? N,W?QUOTE \?CCL12 + PUT NP,8,P-RUNNING + ADD P-RUNNING,4 >P-RUNNING + JUMP ?CND10 +?CCL12: SUB P-RUNNING,4 + PUT NP,8,STACK +?CND10: GET OOPS-TABLE,O-START + SUB P-RUNNING,STACK + DIV STACK,4 >P-WORDS-AGAIN + CALL DO-PMEM-ALLOC,4,NOUN-PHRASE-MIN-LENGTH >NEW-OBJECT + PUT NEW-OBJECT,1,1 + PUT NEW-OBJECT,3,INTQUOTE + PUT NEW-OBJECT,4,NP + RETURN NEW-OBJECT +?CND6: ADD P-RUNNING,4 >P-RUNNING + JUMP ?PRG4 + + .ENDSEG + + .ENDI diff --git a/return1.zabstr b/return1.zabstr new file mode 100644 index 0000000..87b8fe3 --- /dev/null +++ b/return1.zabstr @@ -0,0 +1,29 @@ + + <> BYTE> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/return1.zap b/return1.zap new file mode 100644 index 0000000..32017c7 --- /dev/null +++ b/return1.zap @@ -0,0 +1,56 @@ + + + .FUNCT RT-TH-CATFISH-LOCKER:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-STEEL-BOX:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-CLUE-PAPER:ANY:0:1,CONTEXT + EQUAL? PRSA,V?READ \FALSE + PRINTR "On the paper are written the words, ""IN HER DRY BED.""" + + + .FUNCT RT-TH-STEEL-KEY:ANY:0:1,CONTEXT,V + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?TAKE \FALSE + GETP TH-STEEL-KEY,P?OWNER + EQUAL? STACK,TH-DRYER \FALSE + CALL1 ITAKE >V + EQUAL? V,M-FATAL \?CCL11 + RETURN 2 +?CCL11: ZERO? V /FALSE + PUTP TH-STEEL-KEY,P?OWNER,FALSE-VALUE + PRINTR " You peel the key off the back of the dryer." + + + .FUNCT RT-TH-DRYER:ANY:0:1,CONTEXT + EQUAL? PRSA,V?REACH-BEHIND,V?LOOK-BEHIND \FALSE + GETP TH-STEEL-KEY,P?OWNER + EQUAL? STACK,TH-DRYER \FALSE + MOVE TH-STEEL-KEY,RM-LAUNDRY + ICALL2 THIS-IS-IT,TH-STEEL-KEY + PRINTR " Taped to the back of the dryer is a small steel key." + + + .FUNCT RT-TH-PASSPORT:ANY:0:1,CONTEXT + EQUAL? PRSA,V?SHOW \FALSE + EQUAL? PRSI,CH-COFFEY \FALSE + FSET? CH-CATFISH,FL-ASLEEP \FALSE + PRINTR " Coffey glances at the passport and shrugs with contempt. ""Big deal. These things are a dime a dozen. Any spy would have one.""" + + + .FUNCT RT-TH-DISCHARGE:ANY:0:1,CONTEXT + EQUAL? PRSA,V?EXAMINE \?CCL3 + PRINTR " It's an honorable discharge from the United States Marine Corps." +?CCL3: EQUAL? PRSA,V?SHOW \FALSE + EQUAL? PRSI,CH-COFFEY \FALSE + FSET? CH-CATFISH,FL-ASLEEP \FALSE + FCLEAR CH-CATFISH,FL-ASLEEP + PRINTR " Coffey peers at the document carefully. ""This thing's an original, and I know the forms are kept locked up tighter than Fort Knox. It's even signed by Commander McMahon himself. I suppose it could have been forged, but I guess I was wrong all along."" + He turns Catfish over and slaps him on the face a couple of times to bring him around. When Catfish has regained a semblence of consciousness, Coffey says, ""I'm sorry, fella. I guess I got carried away."" + Catfish drags himself to his feet and says groggily, ""Don't mention it. Maybe I can do the same for you some day.""" + + .ENDI diff --git a/return1.zil b/return1.zil new file mode 100644 index 0000000..b16dd52 --- /dev/null +++ b/return1.zil @@ -0,0 +1,183 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : RETURN1.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:45:16 $" +; "rev : $Revision: 1.3 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "First return to Deepcore" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + + <> BYTE> + + + +)) + +> + + + +)) + +> + + + +)) + + + ) + > +> + + + +) "AUX" V) + + ) + ( + ,TH-DRYER> + > + + + ) + (.V + > + + ) + > + ) + > + ) + > +> + + + +)) + + ,TH-DRYER> + ; + + + + ) + > + ) + > +> + + + +)) + + + + > + + ) + > +> + + + +)) + + + ) + ( + + + > + + + ) + > +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/return2.zabstr b/return2.zabstr new file mode 100644 index 0000000..270a4a9 --- /dev/null +++ b/return2.zabstr @@ -0,0 +1,23 @@ + + + <> BYTE> + BYTE> + + + + + + + + + + + + \ No newline at end of file diff --git a/return2.zap b/return2.zap new file mode 100644 index 0000000..1d2a3bb --- /dev/null +++ b/return2.zap @@ -0,0 +1,47 @@ + + + .FUNCT RT-TH-GUN:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-FBS-SUIT:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-DIVE-LOCKER:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?LIFT,V?PULL /?CCL5 + EQUAL? PRSA,V?PUSH,V?MOVE,V?TAKE \FALSE +?CCL5: PRINTR " The dive locker is securely anchored to the floor." + + + .FUNCT RT-TH-ELECTRONIC-LOCK:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-DEVICE:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT V-$NITROGEN:ANY:0:0 + EQUAL? HERE,RM-GAS-MIX-ROOM \?CCL3 + FSET? LG-CHAMBER-DOOR,FL-OPEN \?CCL6 + PRINTI "[The compression chamber door must be closed.] +" + RETURN 2 +?CCL6: ZERO? GL-WIRE-SEQUENCE \?CND9 + RANDOM 4 >GL-WIRE-SEQUENCE +?CND9: PRINTI " Coffey begins to babble incoherently. You can hear him say, """ + EQUAL? GL-WIRE-SEQUENCE,1 \?CCL13 + PRINTR "Oxford rows great big wide yachts.""" +?CCL13: EQUAL? GL-WIRE-SEQUENCE,2 \?CCL15 + PRINTR "Yankees rarely win over Green Bay.""" +?CCL15: EQUAL? GL-WIRE-SEQUENCE,3 \?CCL17 + PRINTR "Get rid of your wet bananas.""" +?CCL17: EQUAL? GL-WIRE-SEQUENCE,4 \FALSE + PRINTR "Go west, young boy, or rot.""" +?CCL3: PRINTI "[You must be in the gas mix room to use $NITROGEN.] +" + RETURN 2 + + .ENDI diff --git a/return2.zil b/return2.zil new file mode 100644 index 0000000..d9423c9 --- /dev/null +++ b/return2.zil @@ -0,0 +1,138 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : RETURN2.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:44:38 $" +; "rev : $Revision: 1.2 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Second return to Deepcore" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + + <> BYTE> + BYTE> + + + +)) + +> + + + +)) + +> + + + +)) + + ) + ( + + ) + > +> + + + +)) + +> + + + +)) + +> + +; "Cheat verb for causing narcosis for Coffey." + + + + + + ) + (T + + > + ) + > + + + + ) + ( + + ) + ( + + ) + ( + + ) + > + ) + > + ) + (T + + + ) + > +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/rov.lbm b/rov.lbm new file mode 100644 index 0000000..60940a2 Binary files /dev/null and b/rov.lbm differ diff --git a/start b/start new file mode 100644 index 0000000..e1348b6 Binary files /dev/null and b/start differ diff --git a/stopper.zabstr b/stopper.zabstr new file mode 100644 index 0000000..52d2efe --- /dev/null +++ b/stopper.zabstr @@ -0,0 +1,76 @@ + + + + + + ,PLURAL-FLAG> + <> BYTE> + + + + + + + + + BYTE> + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/stopper.zap b/stopper.zap new file mode 100644 index 0000000..b049d74 --- /dev/null +++ b/stopper.zap @@ -0,0 +1,221 @@ + + + .FUNCT RT-RM-TRI-MIX-STORAGE:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the tri-mix storage room. There are three huge steel tanks here, each welded to a sturdy base that sits about an inch off the floor. The tanks look like giant beer kegs and this similarity is heightened by the k-valves on the front that look like beer taps. Exits here lead fore and aft. +" + RFALSE +?CCL3: EQUAL? CONTEXT,M-ENTERED \?CCL8 + ZERO? GL-NITROGEN-LEAK? /FALSE + PRINT K-HISS-MSG + RTRUE +?CCL8: EQUAL? CONTEXT,M-BEG \?CCL13 + EQUAL? PRSA,V?LISTEN \FALSE + EQUAL? PRSO,ROOMS \FALSE + ZERO? GL-NITROGEN-LEAK? /FALSE + PRINT K-HISS-MSG + RTRUE +?CCL13: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-NITROGEN-TANK:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?LISTEN \?CCL5 + ZERO? GL-NITROGEN-LEAK? /?CCL8 + PRINT K-HISS-MSG + RTRUE +?CCL8: PRINTR "You don't hear anything unusual." +?CCL5: EQUAL? PRSA,V?EXAMINE \?CCL10 + CALL NOUN-USED?,TH-NITROGEN-TANK,W?BASE + ZERO? STACK /?CCL13 + PRINTR "The base is raised up off the floor by about an inch." +?CCL13: PRINT K-GAS-TANK-MSG + ZERO? GL-NITROGEN-LEAK? /?CND14 + PRINTR " The hissing sound seems to be coming from here." +?CND14: CRLF + RTRUE +?CCL10: EQUAL? PRSA,V?LOOK-UNDER \?CCL17 + GETP TH-NIT-STOPPER,P?OWNER + EQUAL? STACK,TH-NITROGEN-TANK \FALSE + FSET TH-NIT-STOPPER,FL-SEEN + FCLEAR TH-NIT-STOPPER,FL-INVISIBLE + PRINTR " You lie down on the floor and peer under the base of the tank. Back out of reach you see the steel gleam of the stopper. It must have rolled there after working itself loose from the k-valve." +?CCL17: EQUAL? PRSA,V?REACH-UNDER \FALSE + GETP TH-NIT-STOPPER,P?OWNER + EQUAL? STACK,TH-NITROGEN-TANK \FALSE + EQUAL? PRSI,TH-MAGNET \?CCL28 + CALL1 RT-GET-STOPPER + RSTACK +?CCL28: EQUAL? PRSI,FALSE-VALUE,ROOMS,TH-HANDS \FALSE + PRINTR " You can't quite reach the stopper." + + + .FUNCT RT-TH-NIT-VALVE:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + ZERO? NOW-PRSI /?CCL5 + EQUAL? PRSA,V?ATTACH,V?PUT-IN \FALSE + EQUAL? PRSO,TH-NIT-STOPPER \FALSE + MOVE TH-NIT-STOPPER,TH-NIT-VALVE + PRINTR " You screw the stopper into the k-valve. The valve is still hissing." +?CCL5: EQUAL? PRSA,V?LISTEN \?CCL13 + IN? TH-NIT-STOPPER,TH-NIT-VALVE /?CCL16 + PRINT K-HISS-MSG + RTRUE +?CCL16: PRINTR " You don't hear anything unusual." +?CCL13: EQUAL? PRSA,V?EXAMINE \?CCL18 + PRINTI " The k-valve is a small device that controls the flow of the nitrogen." + IN? TH-NIT-STOPPER,TH-NIT-VALVE /?CND19 + PRINTI " The valve's stopper seems to be missing" + ZERO? GL-NITROGEN-LEAK? /?CND19 + PRINTI ", and the hissing sound is definitely coming from here" +?CND19: PRINTR "." +?CCL18: EQUAL? PRSA,V?OPEN \?CCL24 + FSET? TH-NIT-VALVE,FL-ON \?CCL27 + CALL2 RT-ALREADY-MSG,STR?93 + RSTACK +?CCL27: IN? TH-NIT-STOPPER,TH-NIT-VALVE \?CCL29 + PRINTR " You decide not to open the valve, since that might cause problems." +?CCL29: PRINTR " The stopper is missing, so the valve can't be opened." +?CCL24: EQUAL? PRSA,V?CLOSE \FALSE + FSET? TH-NIT-VALVE,FL-ON /?CCL34 + CALL2 RT-ALREADY-MSG,STR?79 + RSTACK +?CCL34: IN? TH-NIT-STOPPER,TH-NIT-VALVE \?CCL36 + FCLEAR TH-NIT-VALVE,FL-ON + SET 'GL-NITROGEN-LEAK?,FALSE-VALUE + ICALL2 RT-DEQUEUE,RT-I-NITROGEN-LEAK + PRINTR " You close the k-valve. The hissing stops." +?CCL36: PRINTR " The stopper is missing, so the valve can't be closed." + + + .FUNCT RT-TH-NIT-STOPPER:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?TAKE \?CCL5 + GETP TH-NIT-STOPPER,P?OWNER + EQUAL? STACK,TH-NITROGEN-TANK \FALSE + PRINTR " You can't quite reach the stopper." +?CCL5: EQUAL? PRSA,V?TAKE-WITH \FALSE + GETP TH-NIT-STOPPER,P?OWNER + EQUAL? STACK,TH-NITROGEN-TANK \FALSE + EQUAL? PRSI,TH-MAGNET \FALSE + CALL1 RT-GET-STOPPER + RSTACK + + + .FUNCT RT-GET-STOPPER:ANY:0:0 + MOVE TH-NIT-STOPPER,TH-MAGNET + PUTP TH-NIT-STOPPER,P?OWNER,FALSE-VALUE + PRINTR " You slide the magnet under the base and hear a satisfying 'click.' When you pull it out again, the stopper is stuck to the end." + + + .FUNCT RT-I-NITROGEN-LEAK:ANY:0:0 + SET 'GL-NITROGEN-LEAK?,TRUE-VALUE + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-NITROGEN-LEAK,STACK + LESS? GL-NITROGEN-QTY,K-NIT-HIGH-1 \?CCL4 + SET 'GL-NITROGEN-QTY,K-NIT-HIGH-1 + JUMP ?CND2 +?CCL4: ADD GL-NITROGEN-QTY,47 >GL-NITROGEN-QTY +?CND2: CALL1 RT-NITROGEN-MSG + RSTACK + + + .FUNCT RT-TH-NIT-BASE:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-OXYGEN-TANK:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \FALSE + PRINT K-GAS-TANK-MSG + CRLF + RTRUE + + + .FUNCT RT-TH-OXY-VALVE:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-OXY-STOPPER:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-OXY-BASE:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-HELIUM-TANK:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \FALSE + PRINT K-GAS-TANK-MSG + CRLF + RTRUE + + + .FUNCT RT-TH-HEL-VALVE:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-HEL-STOPPER:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-HEL-BASE:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-GN-TANK:ANY:2:2,TBL,FINDER,PTR,N + ADD TBL,8 >PTR + GET TBL,1 >N + INTBL? TH-NITROGEN-TANK,PTR,N \FALSE + PRINTI "[the nitrogen tank] +" + RETURN TH-NITROGEN-TANK + + + .FUNCT RT-GN-VALVE:ANY:2:2,TBL,FINDER,PTR,N + ADD TBL,8 >PTR + GET TBL,1 >N + INTBL? TH-NIT-VALVE,PTR,N \FALSE + PRINTI "[the nitrogen k-valve] +" + RETURN TH-NIT-VALVE + + + .FUNCT RT-GN-STOPPER:ANY:2:2,TBL,FINDER,PTR,N + ADD TBL,8 >PTR + GET TBL,1 >N + INTBL? TH-NIT-STOPPER,PTR,N \FALSE + PRINTI "[the nitrogen stopper] +" + RETURN TH-NIT-STOPPER + + + .FUNCT RT-RM-TOOL-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the tool room, which lies between your office on the port side and the drill room to starboard. Bins here contain the various specialized tools of your trade. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-BIN:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-MAGNET:ANY:0:1,CONTEXT + RFALSE + + .ENDI diff --git a/stopper.zil b/stopper.zil new file mode 100644 index 0000000..24b05bb --- /dev/null +++ b/stopper.zil @@ -0,0 +1,662 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : STOPPER.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:45:06 $" +; "rev : $Revision: 1.7 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Sub bay" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + +;"---------------------------------------------------------------------------" +; "RM-TRI-MIX-STORAGE" +;"---------------------------------------------------------------------------" + +; "Duane - we need generic routines in this room to always pick the + nitrogen tank, nitrogen base, nitrogen k-valve, and nitrogen stopper + when the player makes an ambiguous reference." + + + + + +)) + + + + + ) + (T + + ) + > + + + ) + ( + + ) + > + ) + ( + + + ,GL-NITROGEN-LEAK? + > + + ) + > + ) + (.CONTEXT + + ) + > +> + + ,PLURAL-FLAG> + + <> BYTE> + + + +;"---------------------------------------------------------------------------" +; "NITROGEN STUFF" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + (T + + ) + > + ) + ( + + + ) + (T + + + ) + > + + ) + > + ) + ( + ,TH-NITROGEN-TANK> + + + + ) + > + ) + ( + ,TH-NITROGEN-TANK> + + + ) + ( ,ROOMS ,TH-HANDS> + + ) + > + ) + > + ) + > +> + + + +; "TH-NIT-VALVE flags:" +; " FL-ON = Valve is open. (Can't use FL-OPEN because it's a container.)" + +)) + + ) + (,NOW-PRSI + + + + + ) + > + ) + > + ) + ( + > + + ) + (T + + ) + > + ) + ( + + > + + + ) + > + ) + > + + ) + ( + + + ) + ( + + ) + (T + + ) + > + ) + ( + > + + ) + ( + + > + + + ) + (T + + ) + > + ) + > +> + + + +; "Duane: We need a place to put the stopper when it is under the base +of the Nitrogen Tank. I'll leave it to you to figure that out." + +)) + + ) + ; (> + >> + > + + ) + ( + ,TH-NITROGEN-TANK> + + ) + > + ) + ( + ,TH-NITROGEN-TANK> + + + ) + > + ) + > + ) + > +> + + + > + +> + + BYTE> + +> + + > + + + ) + (T + > + ) + > + + ) + ; (T + + > + + ) + > +> + +; + +)) + +> + +;"---------------------------------------------------------------------------" +; "TH-OXYGEN-TANK" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + > +> + + + +)) + +> + + + +)) + +> + +; + +)) + +> + +;"---------------------------------------------------------------------------" +; "TH-HELIUM-TANK" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + > +> + + + +)) + +> + + + +)) + +> + +; + +)) + +> + +> + > + + + + ) + > +> + +> + > + + + + ) + > +> + +> + > + + + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-TOOL-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-BIN" +;"---------------------------------------------------------------------------" + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "TH-MAGNET" +;"---------------------------------------------------------------------------" + + + +)) + +> + + + +;"---------------------------------------------------------------------------" +; "DELETED RUSSIAN STUFF" +;"---------------------------------------------------------------------------" + +; + +; BYTE> + +;)) + > + + + ) + ( + + + ) + ( + + + + ) + > + ) + > + ) + ( + + ) + ( + + ) + (T + > + ) + > + > + > + + + ) + (T + ; + ) + > + ) + (T + + + ) + > + ) + > +> diff --git a/sub-bay.zabstr b/sub-bay.zabstr new file mode 100644 index 0000000..37ad8d8 --- /dev/null +++ b/sub-bay.zabstr @@ -0,0 +1,327 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + ,PLURAL-FLAG> + ,PLURAL-FLAG> + ,PLURAL-FLAG> + + + + + + + + + +> + + + + + +) (ACTION RT-RM-COMPRESSION-CHAMBER)> + + + + + + + + + + + + + + + <> BYTE> + + + + + +) (ACTION RT-RM-GAS-MIX-ROOM)> + + + + + + + + + + + + + + <> BYTE> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sub-bay.zap b/sub-bay.zap new file mode 100644 index 0000000..b1b9bb6 --- /dev/null +++ b/sub-bay.zap @@ -0,0 +1,1082 @@ + + + .FUNCT RT-RM-SUB-BAY:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: ICALL RT-PRINT-OBJ,RM-SUB-BAY,K-ART-THE + PRINTI ", which seems cavernous compared to the other cramped compartments aboard Deepcore. It is dominated by the MoonPool, which looks just like a huge swimming pool, except that it is open to the sea below. + Along one edge of the MoonPool is a large dive locker. A door in the port bulkhead leads to the shower room. Aft is the gas-mix room, and in the fore wall is the doorway that leads to the corridor. +" + RFALSE +?CCL3: EQUAL? CONTEXT,M-BEG \?CCL8 + FSET? TH-PLASTIC-CARD,FL-SEEN \FALSE + FSET? CH-COFFEY,FL-BROKEN /FALSE + CALL1 GAME-VERB? + ZERO? STACK \FALSE + EQUAL? PRSA,V?GIVE-SWP /FALSE + EQUAL? PRSA,V?GIVE \?CCL20 + EQUAL? PRSO,TH-PLASTIC-CARD \?CCL20 + EQUAL? PRSI,CH-COFFEY /FALSE +?CCL20: ZERO? GL-COFFEY-SHOOT \?CCL26 + INC 'GL-COFFEY-SHOOT + PRINTR " Coffey fires a bullet just past your head. ""Next one's for you, drill boy.""" +?CCL26: PRINTI " Coffey raises his aim until the gun is pointed right between your eyes. ""Bye, bye, Mr Chips."" He starts to squeeze the trigger. The last thing you notice before you die is how perfectly round the end of a gun's barrel is. +" + CALL1 RT-END-OF-GAME + RSTACK +?CCL8: EQUAL? CONTEXT,M-ENTERED \?CCL28 + FSET? TH-PLASTIC-CARD,FL-SEEN \?CCL31 + ZERO? GL-RETURN2-DONE? \FALSE + MOVE TH-DRY-SUIT,HERE + FCLEAR TH-DRY-SUIT,FL-WORN + MOVE CH-CATFISH,RM-SUB-BAY + MOVE CH-COFFEY,RM-SUB-BAY + SET 'GL-RETURN2-DONE?,TRUE-VALUE + PRINTR " You surface in the MoonPool. Catfish grabs your hand and hoists you to firm ground as easily as if you were a child. He helps you out of your dive suit and into dry clothes. + Suddenly Coffey comes into the room and levels his gun at your chest. ""I'll take those codes,"" he announces." +?CCL31: FSET? LG-BUCKLED-DOOR,FL-OPEN \FALSE + ZERO? GL-RETURN1-DONE? \FALSE + MOVE TH-DRY-SUIT,HERE + FCLEAR TH-DRY-SUIT,FL-WORN + MOVE CH-LINDSEY,RM-SUB-BAY + MOVE CH-COFFEY,RM-MESS-HALL + MOVE CH-CATFISH,RM-MESS-HALL + FSET CH-CATFISH,FL-ASLEEP + SET 'GL-RETURN1-DONE?,TRUE-VALUE + PRINTR " You surface in the MoonPool. Lindsey pulls you out of the water. She strips you of the cumbersome dive suit, towels you off, and helps you into dry clothes. + Then she says, ""Bud we've got a problem. Coffey caught Catfish trying to break into the dive locker in the Sub-bay. The asshole knocked Catfish over the head with the butt of his gun and then dragged him to the mess hall. Now he's standing over him in the mess hall and claiming that Cat's a Russian spy. He says as soon at Catfish comes around, he's going to give him a summary court martial, find him guilty, and shoot him on the spot!""" +?CCL28: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-MOON-POOL:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?ENTER \FALSE + EQUAL? HERE,RM-SUB-BAY \?CCL8 + CALL2 RT-DO-WALK,P?DOWN + RSTACK +?CCL8: EQUAL? HERE,RM-UNDER-MOONPOOL \FALSE + CALL2 RT-DO-WALK,P?UP + RSTACK + + + .FUNCT RT-TH-FIRE:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXTINGUISH \FALSE + IN? TH-WATER-HOSE,WINNER \?CCL8 + FSET? TH-WATER-HOSE,FL-ON \?CCL8 + REMOVE TH-FIRE + ICALL2 RT-DEQUEUE,RT-I-FIRE-1 + ICALL2 RT-DEQUEUE,RT-I-FIRE-2 + PRINTR " The water hisses into the wall of flame without appearing to have any effect. Then, slowly, the intensity of the fire seems to lessen. After a few moments, the flames die back, and all that remains of the fire are charred bits of smouldering embers." +?CCL8: PRINT K-HOW-INTEND-MSG + CRLF + RTRUE + + + .FUNCT RT-I-FIRE-1:ANY:0:0 + ADD GL-MOVES,6 + ICALL RT-QUEUE,RT-I-FIRE-2,STACK + EQUAL? HERE,RM-SUB-BAY \FALSE + PRINTR " The flames reach the wooden locker, and it starts to burn." + + + .FUNCT RT-I-FIRE-2:ANY:0:0 + PRINTI " Suddenly the dive locker explodes with tremendous fury, ripping a gaping hole in the roof of the Sub-bay. Seconds later you are engulfed by a wall of water and you drown. +" + CALL1 RT-END-OF-GAME + RSTACK + + + .FUNCT RT-TH-WATER-HOSE:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?TURN-ON \FALSE + CALL1 RT-TH-NOZZLE + RSTACK + + + .FUNCT RT-TH-NOZZLE:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?OPEN,V?TURN-ON,V?TURN \FALSE + ZERO? GL-WATER-PUMP-ON /?CCL8 + FSET TH-WATER-HOSE,FL-ON + PRINTR " A stream of water leaps from the nozzle." +?CCL8: PRINTR " Nothing happens." + + + .FUNCT RT-TH-OXYGEN-CYLINDER:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-CH-COFFEY:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + ZERO? NOW-PRSI /?CCL5 + EQUAL? PRSA,V?GIVE \FALSE + IN? CH-COFFEY,RM-SUB-BAY \FALSE + FSET? TH-PLASTIC-CARD,FL-SEEN \FALSE + EQUAL? PRSO,TH-PLASTIC-CARD \FALSE + MOVE TH-PLASTIC-CARD,CH-COFFEY + REMOVE TH-GUN + FSET CH-COFFEY,FL-BROKEN + FSET TH-COMPRESSOR,FL-BROKEN + MOVE CH-COFFEY,RM-COMPRESSION-CHAMBER + SET 'OHERE,HERE + SET 'HERE,RM-GAS-MIX-ROOM + MOVE CH-PLAYER,RM-GAS-MIX-ROOM + PRINTR " Coffey bends over the wiring codes, glancing up occasionally to make sure you don't try to attack him. + Suddenly you notice a strange phenomenon in the MoonPool behind him. Some water is slowly forming into a shining column and rising above the surrounding surface. After a few moments, a sort of three-fingered hand forms at the end of the column. As you stare at in fascination, it slowly, silently, creeps up behind Coffey, who remains oblivious to its presence. + + [GRAPHIC] + + Suddenly the pseudopod reaches out and snatches the gun from Coffey. He whips around in time to see the column disappear below the surface of the water, carrying his gun with it. + Something inside Coffey seems to snap. He looks at you wildly and shouts, ""I know you're behind this, Brigman. I don't know what you want from that sub, but I'm gonna make sure you never see it again."" He turns and runs from the room. + You follow Coffey. When he reaches the compressor room, Coffey brandishes a tool over the compressor. As he sees you enter, he thrusts the tool deep into the workings of the machine. It screams to a halt with an ear-piercing shriek. Coffey yells over the noise, ""Up yours, Brigman!"" and dashes out of the cylinder. + He then runs into the compression chamber. Through the open door to the compression chamber, you can see Coffey tugging at the hatch that leads up to Cab Three. He is unable to open it because Lindsey has locked it from the other side." +?CCL5: EQUAL? PRSA,V?ASK-ABOUT \FALSE + EQUAL? PRSI,CH-SEALS \?CCL19 + PRINTR " ""Goddam bitch killed some of my best men.""" +?CCL19: EQUAL? PRSI,LG-MONTANA \?CCL21 + PRINTR " ""I took a quick look at her before I had to come back. They closed the mid-ships hatch, but it's clear that some of the interior bulkheads are buckled. We're probably going to need some explosives to move around in there. There's a gash in her side up near the bow, but the opening isn't big enough for a man to fit through.""" +?CCL21: EQUAL? PRSI,TH-SAFE \?CCL23 + FSET? TH-SAFE,FL-SEEN /?CCL26 + PRINTR " It'll be in his cabin, just forward of the attack center." +?CCL26: PRINTR " I don't know how to open it. Each captain sets his own combination." +?CCL23: EQUAL? PRSI,TH-PLASTIC-CARD \?CCL28 + FSET? CH-COFFEY,FL-BROKEN /?CCL31 + PRINTR " ""Different missiles have different wiring diagrams. When you want to disarm one, you need the wiring codes to tell you the order to cut the wires.""" +?CCL31: FSET? CH-COFFEY,FL-ASLEEP \?CCL33 + PRINTR " One of mnemonic series: +Oxford rows great big wide yachts. +Yankees rarely win over Green Bay. +Get rid of your wet bananas. +Go west, young boy, or rot." +?CCL33: PRINTR " ""I ain't tellin you nothing, pinko.""" +?CCL28: EQUAL? PRSI,TH-FLATBED \?CCL35 + PRINTR " ""The goddam bitch just rode it into the trench. I'll get even with her yet.""" +?CCL35: EQUAL? PRSI,TH-MISSILE-TIMER \?CCL37 + PRINTR " ""They set it for 12 hours so they'd have enough time to get away and save their skins. It may be booby-trapped, so we can't risk trying to disable it. Our only hope is to disarm the MIRV.""" +?CCL37: EQUAL? PRSI,TH-MISSILE-ACCESS-KEY \?CCL39 + PRINTR " ""There's always a duplicate access key on board somewhere. Usually the executive officer has it, but it's not as important as the missile firing key, so sometimes he just hangs it on the wall in the maintenance room so the technicians can get to it if they need it.""" +?CCL39: FSET? CH-COFFEY,FL-BROKEN \?CCL41 + PRINTR " ""Coffey, James G.; Lieutenant U.S. Navy; Serial Number 5894256""" +?CCL41: PRINTR " ""I don't know about that.""" + + + .FUNCT RT-CH-ONE-NIGHT:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + ZERO? NOW-PRSI \FALSE + EQUAL? PRSA,V?ASK-ABOUT \FALSE + EQUAL? PRSI,TH-UFO \FALSE + PRINTR " ""I only saw it for a moment. It was big and shiny. But until it started pulling us into the trench it somehow seemed, well, sort of friendly.""" + + + .FUNCT RT-TH-DRY-SUIT:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + PRINTI " It is a custom-made, one-piece dry suit that was designed especially for you. It zips up the front and includes flippers, a weight belt, and a helmet. The helmet has two threaded sockets on the side, and the faceplate is" + ICALL2 RT-OPEN-MSG,TH-FACEPLATE + PRINTR "." +?CCL5: EQUAL? PRSA,V?WEAR \FALSE + EQUAL? WINNER,CH-PLAYER \?CCL10 + ICALL RT-MOVE-ALL,CH-PLAYER,HERE + MOVE TH-DRY-SUIT,CH-PLAYER + FSET TH-DRY-SUIT,FL-WORN + PRINTR " You drop everything you were carrying, strip down to your bathing suit, and step into the dry suit. You pull up the zipper and adjust the weight belt." +?CCL10: PRINTI " The dry suit won't fit" + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE + PRINTR "." + + + .FUNCT RT-TH-FACEPLATE:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI " The faceplate is" + ICALL2 RT-OPEN-MSG,TH-FACEPLATE + PRINTR "." + + + .FUNCT RT-TH-HELMET:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI " The helmet has two threaded sockets on the side, and the faceplate is" + ICALL2 RT-OPEN-MSG,TH-FACEPLATE + PRINTR "." + + + .FUNCT RT-TH-HOOK-1:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-LIFT-BAG:ANY:0:1,CONTEXT,L + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?TAKE \?CCL5 + ZERO? GL-LIFT-OBJ /?CCL5 + FSET? GL-LIFT-OBJ,FL-TAKEABLE /TRUE + PRINTI " The lift bag is tied to" + ICALL RT-PRINT-OBJ,GL-LIFT-OBJ,K-ART-THE + PRINTR "." +?CCL5: EQUAL? PRSA,V?ATTACH,V?TIE-TO \?CCL11 + EQUAL? PRSO,TH-LIFT-BAG \?CCL11 + SET 'GL-LIFT-OBJ,PRSI + LOC PRSI >L + EQUAL? L,LOCAL-GLOBALS,GLOBAL-OBJECTS \?CND14 + SET 'L,HERE +?CND14: MOVE TH-LIFT-BAG,L + PRINTI " You tie the lift bag to" + ICALL RT-PRINT-OBJ,GL-LIFT-OBJ,K-ART-THE + PRINTR "." +?CCL11: EQUAL? PRSA,V?EXAMINE \?CCL17 + ZERO? GL-LIFT-OBJ /?CCL20 + PRINTI " The lift bag is tied to" + ICALL RT-PRINT-OBJ,GL-LIFT-OBJ,K-ART-THE + PRINTR "." +?CCL20: PRINTI " The lift bag is a" + FSET? TH-LIFT-BAG,FL-LOCKED \?CCL23 + PRINTI "n inflated" + JUMP ?CND21 +?CCL23: PRINTI " collapsed" +?CND21: PRINTI " watertight sack " + FSET? TH-LIFT-BAG,FL-BROKEN \?CCL26 + PRINTR "that has been sliced open." +?CCL26: PRINTR "with a small nylon loop at the top and two loose ropes hanging down from the bottom. Attached to the bag is a CO2 cannister that has a red button on it." +?CCL17: EQUAL? PRSA,V?INFLATE \?CCL28 + PRINT K-HOW-INTEND-MSG + CRLF + RTRUE +?CCL28: EQUAL? PRSA,V?CUT \FALSE + EQUAL? PRSI,TH-KNIFE \FALSE + FSET TH-LIFT-BAG,FL-BROKEN + PRINTI " You slice the fabric with your knife," + FSET? TH-LIFT-BAG,FL-LOCKED \?CND33 + PRINTI " releasing the gas" + FSET? HERE,FL-WATER \?CCL37 + PRINTI " in a huge bubble and" + JUMP ?CND33 +?CCL37: PRINTI " and" +?CND33: PRINTI " rendering the bag completely useless. +" + FSET? TH-LIFT-BAG,FL-LOCKED \?CCL40 + EQUAL? LG-MIDSHIP-HATCH,GL-LIFT-OBJ \?CCL40 + FCLEAR LG-MIDSHIP-HATCH,FL-OPEN + PRINTR " The hatch slams shut." +?CCL40: IN? TH-LIFT-BAG,CH-PLAYER \TRUE + FSET? HERE,FL-WATER \TRUE + FSET? HERE,FL-INDOORS \TRUE + PRINTR " The bag no longer contrains your movements." + + + .FUNCT RT-TH-CO2-CANNISTER:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?LOOK-ON,V?EXAMINE \FALSE + PRINTR " The cannister has a red button on it." + + + .FUNCT RT-TH-RED-BUTTON:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL5 + PRINTR " Pretty normal-looking red button." +?CCL5: EQUAL? PRSA,V?PUSH \FALSE + FSET? TH-CO2-CANNISTER,FL-BROKEN \?CCL10 + PRINTR " Nothing happens." +?CCL10: FSET TH-CO2-CANNISTER,FL-BROKEN + FSET? TH-LIFT-BAG,FL-BROKEN \?CCL13 + PRINTI " The gas rushes into the lift bag and out the gash in the fabric" + FSET? HERE,FL-WATER \?CND14 + PRINTI ", rising quickly out of sight in a large bubble" +?CND14: PRINTR "." +?CCL13: FSET TH-LIFT-BAG,FL-LOCKED + PRINTI " The bag inflates like a hot air balloon" + IN? TH-LIFT-BAG,CH-PLAYER \?CCL18 + FSET? HERE,FL-WATER \?CCL21 + EQUAL? HERE,RM-UNDER-MOONPOOL \?CCL24 + PRINTR ", pulling you up to the surface of the MoonPool." +?CCL24: FSET? HERE,FL-INDOORS \?CCL26 + PRINTR ", pulling you up until you hit the ceiling." +?CCL26: PRINTI ". Before you know what's happening, the extra lift starts to pull you rapidly toward the surface. Your ears pop and you feel excruciating pain in your elbows and knees. Mercifully, you pass out before suffering the gruesome death of sudden decompression. +" + CALL1 RT-END-OF-GAME + RSTACK +?CCL21: PRINTR "." +?CCL18: EQUAL? GL-LIFT-OBJ,LG-MIDSHIP-HATCH \?CCL28 + FSET LG-MIDSHIP-HATCH,FL-OPEN + PRINTR ". The hatch slowly swings open." +?CCL28: FSET? HERE,FL-WATER \?CCL30 + EQUAL? HERE,RM-UNDER-MOONPOOL /TRUE + FSET? HERE,FL-INDOORS \TRUE + RTRUE +?CCL30: PRINTR "." + + + .FUNCT RT-RM-COMPRESSION-CHAMBER:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: ICALL RT-PRINT-OBJ,RM-COMPRESSION-CHAMBER,K-ART-THE + PRINTI ". This is a tiny cylinder constructed from HY-150 Steel, designed to withstand pressures of up to 300 atmospheres, or 10,000 feet below sea-level. Along one wall is a bench that is built like a window seat. There is a hatch in the ceiling. A door in the fore bulkhead leads out to the gas-mix room. +" + RFALSE +?CCL3: EQUAL? CONTEXT,M-EXIT \?CCL8 + CALL2 RT-IS-QUEUED?,RT-I-UFO-MESSAGE + ZERO? STACK /FALSE + ICALL2 RT-DEQUEUE,RT-I-UFO-MESSAGE + MOVE CH-COFFEY,RM-SUB-BAY + MOVE CH-HIPPY,RM-SUB-BAY + PRINTI " You start to leave, but One-Night plucks at your sleeve and holds you back. " + PRINT K-UFO-MSG + RTRUE +?CCL8: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-LG-CHAMBER-HATCH:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?OPEN \FALSE + FSET? LG-CHAMBER-HATCH,FL-OPEN /FALSE + ZERO? GL-CAB-DOCKED? \?CCL10 + PRINTR " Since a cab is not docked, the hatch refuses to open." +?CCL10: IN? CH-COFFEY,RM-CAB-THREE \FALSE + FSET? CH-COFFEY,FL-ALIVE \FALSE + FSET LG-CHAMBER-HATCH,FL-OPEN + ICALL2 RT-DEQUEUE,RT-I-RETURN-2 + ICALL2 RT-DEQUEUE,RT-I-RETURN-3 + ICALL2 RT-DEQUEUE,RT-I-RETURN-4 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-UFO-MESSAGE,STACK + MOVE CH-COFFEY,RM-COMPRESSION-CHAMBER + MOVE CH-HIPPY,RM-COMPRESSION-CHAMBER + MOVE CH-ONE-NIGHT,RM-COMPRESSION-CHAMBER + PRINTI " You open the hatch and an exhausted Coffey drops into the chamber. He no longer looks crisp and military. His uniform is ragged and there is a gash in his right shoulder. He slumps onto the bench. Hippy is next through the hatch. He hangs briefly by one arm and then lets go. Another pair of legs dangles from the ceiling, and then One-Night falls to the floor with a loud groan. Her clothes are soaked, and she is shivering from the cold. + +" + MARGIN 50,50 + PRINTI "[GRAPHIC #4: Shot in the compression chamber of the three of them - beat up and exhausted.] + +" + MARGIN 0,0 + PRINTI " You wait a moment, expecting the other SEALS to come through the hatch, but no one does. Coffey looks at you angrily. ""Dead,"" he says. They're all dead."" He points accusingly at One-Night, ""And it's all " + HLIGHT K-H-BLD + PRINTI "her" + HLIGHT K-H-NRM + PRINTI " fault."" You look at One-Night, but she just shakes her head. + Coffey wipes his face with his sleeve. ""By the time we got over to the Montana, the other submersible had already cleared out. I ordered Flatbed to check out the stern of the ship while I reconnoitered the bow. But when I returned to the rendezvous point, no one was there. Then I saw " + HLIGHT K-H-BLD + PRINTI "Miss" + HLIGHT K-H-NRM + PRINTR " Standing free-swimming towards the Cab. We brought her in through the hatch, and she told us some bullshit story about being sucked into the trench in the wake of a glowing ship and then crashing Flatbed into a wall."" + ""I don't know what really happened, but I do know that this bitch has killed three of my best men and that she's going to pay for it."" + ""But wait, it gets better. Whoever those bastards in the submersible were, they've armed one of the MIRVs and attached a timer to it that's set to go off in 12 hours."" + ""They must have taken the access key from the sub captain's body and then used it to open up the MIRV. I took a look at that timer. No way we can disable it safely. Our only hope is to find the duplicate access key. Then we gotta break into the captain's safe, get the missile wiring codes, and cut the wires."" + The three of them struggle to their feet and start to leave, but One-Night catches your eye and signals you to wait." + + + .FUNCT RT-I-LEAVE-1:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-LEAVE-2,STACK + MOVE CH-ONE-NIGHT,RM-SUB-BAY + MOVE CH-HIPPY,RM-SUB-BAY + MOVE CH-COFFEY,RM-SUB-BAY + EQUAL? HERE,RM-CORRIDOR \FALSE + PRINTR " One-Night, Hippy, and the SEALs disappear aft into the sub-bay." + + + .FUNCT RT-I-LEAVE-2:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-LEAVE-3,STACK + FCLEAR CH-ONE-NIGHT,FL-NO-DESC + MOVE CH-ONE-NIGHT,RM-CAB-THREE + MOVE CH-HIPPY,RM-GAS-MIX-ROOM + MOVE CH-COFFEY,RM-GAS-MIX-ROOM + EQUAL? HERE,RM-SUB-BAY \FALSE + PRINTR " One-Night drops through Flatbed's hatch. Monk and Willhite gather up their dive gear and follow her, pulling the hatch shut behind them. The big submersible sinks into the MoonPool and then disappears from sight. Coffey picks up a case marked ""FSB -- MARK IV,"" puts it in the dive locker, and pockets the key. Then he follows Hippy and Schoenick into the gas-mix room." + + + .FUNCT RT-I-LEAVE-3:ANY:0:0 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-LEAVE-4,STACK + MOVE CH-HIPPY,RM-COMPRESSION-CHAMBER + MOVE CH-COFFEY,RM-COMPRESSION-CHAMBER + EQUAL? HERE,RM-GAS-MIX-ROOM \FALSE + PRINTR " Hippy, Coffey, and Schoenick enter the compression chamber." + + + .FUNCT RT-I-LEAVE-4:ANY:0:0 + FCLEAR CH-HIPPY,FL-NO-DESC + FCLEAR CH-COFFEY,FL-NO-DESC + MOVE CH-HIPPY,RM-CAB-THREE + MOVE CH-COFFEY,RM-CAB-THREE + EQUAL? HERE,RM-GAS-MIX-ROOM,RM-COMPRESSION-CHAMBER \FALSE + PRINTC TAB + EQUAL? HERE,RM-GAS-MIX-ROOM \?CND4 + PRINTI "Through the " + FSET? LG-CHAMBER-DOOR,FL-OPEN \?CCL8 + PRINTI "door" + JUMP ?CND6 +?CCL8: PRINTI "window" +?CND6: PRINTI " you see " +?CND4: PRINTR "Hippy and the two SEALs climb up into Cab Three and pull the hatch shut behind them. Moments later you hear a 'clank' as Cab Three pulls away from Deepcore's hull." + + + .FUNCT RT-I-RETURN-1:ANY:0:0 + ADD GL-MOVES,10 + ICALL RT-QUEUE,RT-I-RETURN-2,STACK + SET 'GL-CAB-DOCKED?,TRUE-VALUE + FSET RM-CAB-THREE,FL-BROKEN + PRINTR " The intercom buzzes and you hear One-Night's voice: ""This is Cab Three docking over the compression chamber, boss. The heater's busted and we've got wounded. Come open the hatch before we freeze to death.""" + + + .FUNCT RT-I-RETURN-2:ANY:0:0 + ADD GL-MOVES,10 + ICALL RT-QUEUE,RT-I-RETURN-3,STACK + PRINTR " The intercom buzzes and you hear One-Night again. ""Better hurry, boss. I don't know if we're all gonna make it.""" + + + .FUNCT RT-I-RETURN-3:ANY:0:0 + ADD GL-MOVES,5 + ICALL RT-QUEUE,RT-I-RETURN-4,STACK + PRINTR " The intercom buzzes for a moment, and then trails off into silence." + + + .FUNCT RT-I-RETURN-4:ANY:0:0 + FCLEAR CH-COFFEY,FL-ALIVE + FCLEAR CH-HIPPY,FL-ALIVE + FCLEAR CH-ONE-NIGHT,FL-ALIVE + RFALSE + + + .FUNCT RT-I-UFO-MESSAGE:ANY:0:0 + MOVE CH-COFFEY,RM-SUB-BAY + MOVE CH-HIPPY,RM-SUB-BAY + PRINTI " When Coffey and Hippy have left, One-Night plucks your sleeve and says," + PRINT K-UFO-MSG + RTRUE + + + .FUNCT RT-RM-CAB-THREE:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "climb up into" +?CND4: PRINTI " Cab Three. It is a small submersible which was designed to shuttle passengers between the surface and Deepcore. There is a chair for the pilot up front, and four jump seats in the back. The only exit is through the hatch in the floor. +" + RFALSE +?CCL3: EQUAL? CONTEXT,M-ENTERED \?CCL8 + IN? CH-COFFEY,RM-CAB-THREE \FALSE + FSET? CH-COFFEY,FL-ALIVE /FALSE + PRINTR " The lifeless bodies of Coffey, One-Night and Hippy gaze at you accusingly with the wide-eyed stare of the dead." +?CCL8: EQUAL? CONTEXT,M-BEG \?CCL15 + FSET? RM-CAB-THREE,FL-BROKEN /FALSE + IN? CH-LINDSEY,RM-CAB-THREE \FALSE + EQUAL? PRSA,V?WALK-TO \FALSE + EQUAL? PRSO,LG-MONTANA \FALSE + SET 'GL-CAB-DOCKED?,FALSE-VALUE + PRINTI """Right-o."" Lindsey starts flicking levers and pushing buttons. You feel a jerk as the cab separates itself from Deepcore, and then watch out the front viewport as Lindsey maneuvers the Cab along the ocean floor toward the submarine. +" + ADD GL-MOVES,19 >GL-MOVES + ICALL1 CLOCKER + MOVE RM-CAB-THREE,RM-MISSILE-HATCH + PRINTR " After ten minutes or so, Cab Three passes over the lip of the chasm and sinks slowly towards the submarine. The submersible settles precariously onto the curved wall of the Montana." +?CCL15: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-OUT-CAB:ANY:0:1,QUIET + ZERO? GL-CAB-DOCKED? /?CCL3 + ZERO? QUIET \?CTR5 + FSET? LG-CHAMBER-HATCH,FL-OPEN \?CCL6 +?CTR5: RETURN RM-COMPRESSION-CHAMBER +?CCL6: PRINTR " The hatch isn't open." +?CCL3: LOC RM-CAB-THREE + RSTACK + + + .FUNCT RT-I-CAB-FIXED:ANY:0:0 + FCLEAR RM-CAB-THREE,FL-BROKEN + MOVE CH-LINDSEY,RM-CAB-THREE + PRINTR "The intercom buzzes. ""This is Lindsey. I'm pleased to report that Cab Three is ready for action.""" + + + .FUNCT RT-TH-CAB-HOOKAH:ANY:0:1,CONTEXT + ZERO? CONTEXT \FALSE + EQUAL? PRSA,V?CUT \FALSE + EQUAL? PRSI,TH-KNIFE \FALSE + ZERO? GL-FALLING-INTO-TRENCH? /FALSE + ICALL2 RT-DEQUEUE,RT-I-INTO-TRENCH-1 + ICALL2 RT-DEQUEUE,RT-I-INTO-TRENCH-2 + ADD GL-MOVES,1 + ICALL RT-QUEUE,RT-I-OUT-OF-AIR-1,STACK + REMOVE RM-CAB-THREE + MOVE CH-LINDSEY,RM-ALIEN-CHAMBER + PRINTR " You take a deep breath, reach up, and sever the hookah. You begin to rise back up to the level of the Montana. Glancing down, you see the Cab disappearing into the inky blackness of the trench. Lindsey hasn't been able to free herself. She looks up at you as she is being dragged down. She reaches her hand toward you and her eyes send you a silent plea for help. Then she disappears into the darkness." + + + .FUNCT RT-RM-GAS-MIX-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " a small antechamber between the sub-bay and the compression chamber, which are fore and aft respectively. On the wall is a small video screen with a black button below it. The door to the compression chamber is" + ICALL2 RT-OPEN-MSG,LG-CHAMBER-DOOR + PRINTI ". +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-CORRIDOR:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "step out into" +?CND4: ICALL RT-PRINT-OBJ,RM-CORRIDOR,K-ART-THE + PRINTI " that connects Deepcore's port and starboard sides. Towards the bow is a door that leads to the command module. Aft is the entrance to the sub-bay. There is a small panel set into the floor below your feet. +" + RFALSE +?CCL3: EQUAL? CONTEXT,M-ENTERED \?CCL8 + EQUAL? GL-PUPPY,CH-CATFISH \FALSE + CALL1 RT-CLEAR-PUPPY + RSTACK +?CCL8: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-PANEL:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-RM-LADDER-A2:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the middle level of ladderwell A. A corridor leads to the starboard side of Deepcore. A hatch in the port bulkhead opens onto the electronics room. The lounge is forward, and aft is the mess hall. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-LOUNGE:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the lounge, which is where most crew members congregate during their time off. A couch with a curved back fits along the starboard cylinder wall. It faces a small television that is hooked up to a VCR. The only exit is through the aft hatchway. +" + ZERO? GL-BATTERY-LEAK /FALSE + PRINTI " You see a stream of water coming from the ceiling. It pours down the wall and disappears in the room below. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-INFIRMARY:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the infirmary. The only exit is the door in the port wall. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-MESS-HALL:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " This is Deepcore's mess hall. There is a circular table in the middle of the room and a few chairs have been stacked against the wall. The forward exit leads to ladderwell A. The aft exit opens onto the galley. +" + RFALSE +?CCL3: EQUAL? CONTEXT,M-ENTERED \?CCL5 + IN? CH-COFFEY,RM-MESS-HALL \FALSE + IN? CH-CATFISH,RM-MESS-HALL \FALSE + FSET? CH-CATFISH,FL-ASLEEP \FALSE + ZERO? GL-CATFISH-SPY-MSG? \FALSE + SET 'GL-CATFISH-SPY-MSG?,TRUE-VALUE + PRINTI " Coffey looks up as you enter. ""Oh, there you are Brigman. I'll bet you didn't know that your favorite boy here is a Russkie, didja?"" He gestures to Catfish with his gun, and you see that his hand is trembling. ""I caught him red-handed. And when he wakes up, he's gonna find out how it feels to be both Red " + HLIGHT K-H-BLD + PRINTI "and" + HLIGHT K-H-NRM + PRINTR " dead.""" +?CCL5: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-GALLEY:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " This is a fully equipped galley that has everything including the kitchen sink. You see a microwave, refrigerator, sink, and even a garbage compactor. You can go both fore and aft from here. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-PANTRY:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the pantry. The food supplies are stored in the cupboards that line the walls. There are exits both fore and aft. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-HOOK-2:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-TH-GAME-BAG:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-RM-WALDORF:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " The Waldorf, which is what the crew irreverently calls your living quarters because it is the only stateroom aboard Deepcore that has its own sink. Rank hath its privileges. The room is in its usual state of chaos. Your bunk is situated with the head near the forward hatch and the foot next to the hatch in the aft bulkhead. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-PERSONAL-STORAGE-1:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " This is a storage room for personal effects. Your locker is on the wall near the hatch leading forward to your stateroom. The locker belonging to Hippy is next to the door in the aft bulkhead. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-ZOOTOWN:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "step into" +?CND4: PRINTI " Hippy's living quarters, known to the crew as 'Zootown' because of the succession of unusual pets he has brought aboard Deepcore. Hatches here lead fore and aft. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-LADDER-C2:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the middle level of ladderwell C. A hatch in the forward bulkhead opens into Hippy's living quarters. There is a yellow button here, with a sign underneath it. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-S-BILGE-BUTT:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-RM-LADDER-A1:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the lowest level of ladderwell A. A hatch in the port bulkhead opens onto the laundry room. The Port Battery room is just forward of here, and aft is Port Life Support. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-LAUNDRY:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the laundry room. The washer and dryer flank a shelf that contains laundry supplies. The only exit is the door in the starboard wall. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-PT-LIFE-SUPPORT:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the port life support room. All around you is a jungle of fittings, gauges, and circuit boards. They control the CO2 scrubbers, dehumidifiers, heaters and other devices that make life possible 2,000 feet below the surface. Exits here lead fore and aft. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-COMPRESSOR-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the compressor room. You see a dark labyrinth of pipes emanating from the huge compressor that supplies air to the hookahs. " + FSET? TH-COMPRESSOR,FL-BROKEN /?CTR8 + FSET? TH-COMPRESSOR,FL-ON /?CCL9 +?CTR8: PRINTI "The eerie silence makes an unsettling contrast to the normal cacophany in the cylinder." + JUMP ?CND7 +?CCL9: PRINTI "It's hard to hear yourself think over the roar of the machinery." +?CND7: PRINTI " There are hatchways leading out of both the forward and aft bulkheads. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-COMPRESSOR:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-RM-LADDER-D1:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the lowest level of ladderwell D. A hatch in the forward bulkhead leads to tri-mix storage, and another leads aft to your office. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-TOOL-PUSHER-OFFICE:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "step into" +?CND4: PRINTI " your office, a tiny cubicle with stacks of paperwork, tech manuals and waterstained centerfolds. The hatch in the forward bulkhead leads to ladderwell D, and the starboard hatch opens onto the tool room. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-DRILL-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the drill room, the working heart of Deepcore. In the center of the room is the massive turntable that spins the drill string when the rig is operating. Everything in the room is coated with the pungent, greasy chemical compound called 'drilling mud.' The only exit is through the hatch in the port bulkhead. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-LADDER-B1:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the lowest level of ladderwell B. A hatch in the starboard bulkhead opens onto the starboard head. The starboard battery room is just forward of here, and aft is starboard life support. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-SB-BATTERY-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " This is one of the rooms that contain the huge fuelcells that power Deepcore. The powercels are surrounded by a wire cage that is festooned with signs that warn of the dangers of electricity. The fuelcells are humming ominously - as usual - and an acrid, ozone smell fills the air. The only exit is through the hatch in the aft bulkhead. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-SB-HEAD:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the starboard head. It is sparingly furnished with a shower, sink, and chemical toilet. The only exit is in the port bulkhead. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-SB-LIFE-SUPPORT:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the starboard life support room. All around you is a jungle of fittings, gauges, and circuit boards. They control the CO2 scrubbers, dehumidifiers, heaters and other devices that make life possible 2,000 feet below the surface. Exits here lead fore and aft. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-PUMP-ROOM:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the pump room. The machinery here controls the fresh water supply all over Deepcore. You can exit either fore or aft. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-FRESH-WATER-STORAGE:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " fresh water storage, where Deepcore's entire water supply is kept in one huge tank. There are doors in both the forward and aft walls. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-LADDER-C1:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the lowest level of ladderwell C. The only exits are the ladder leading up and the hatch in the forward wall. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-LADDER-A3:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the uppermost level of ladderwell A. Forward from here is the port observation deck. The female living quarters are aft. A hatch in the port bulkhead leads to the port head. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-PT-HEAD:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the port head. It is sparingly furnished with a shower, sink, and chemical toilet. The only exit is in the starboard bulkhead. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-MOTEL-QUICK:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the female living quarters, nicknamed ""Motel Quick"" by the crew. Exits hee lead both fore and aft. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-PERSONAL-STORAGE-2:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " This is a storage room for personal effects. One-Night's locker is on the wall near the forward hatch leading to Motel Quick. The locker belonging to Catfish is next to the door in the aft bulkhead. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-SWAMP:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the drill crew's living quarters, appropriately nicknamed ""The Swamp."" The hatch to ladderwell D is in the aft bulkhead, and there is a door in the forward bulkhead as well. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-LADDER-D3:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the highest level of ladderwell D. The only exits are the ladder leading down and the hatch in the forward bulkhead. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-LADDER-B3:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the uppermost level of ladderwell B. Hatchways fore, aft, and starboard lead to the starboard observation deck, the computer center, and the infirmary, respectively. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-SB-OBS-DECK:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the starboard observation deck, which has a huge domed plexiglass window that lets you look out onto the ocean floor. The only exit is in the aft bulkhead. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-COMPUTER-CENTER:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " This is Deepcore's computer center. On the desk is a dumb terminal to the mainframe aboard the Benthic Explorer on the surface. There is some text on the screen. Exits here lead fore and aft. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-ELECTRONICS-SHOP:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "step into" +?CND4: PRINTI " the electronics shop, which has become Hippy's personal domain. His workbench backs onto a storage unit that contains hundreds of clear plastic drawers, which in turn contain thousands of connectors, pins, and other spare parts. The workbench also has one large central drawer above the kneehole. The only exit is in the starboard bulkhead. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-TH-ELEC-SHOP-DRAWER:ANY:0:1,CONTEXT + RFALSE + + + .FUNCT RT-RM-LAB:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " This is Deepcore's biomedical lab. The room is cleaner than most of the other rooms aboard the habitat, but it has a curious, fishy odor to it. Exits lead fore and aft. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-TAPE-LIBRARY:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " Deepcore's tape library. The walls are covered with videotapes that range in subject matter from the serious to the scatological. You can exit either forward or aft. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + + .FUNCT RT-RM-LADDER-C3:ANY:0:1,CONTEXT + EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3 + PRINTI " You " + EQUAL? CONTEXT,M-LOOK \?CCL6 + PRINTI "are in" + JUMP ?CND4 +?CCL6: PRINTI "enter" +?CND4: PRINTI " the highest level of ladderwell C. You see a hatch in the forward bulkhead and a ladder leading down. +" + RFALSE +?CCL3: ZERO? CONTEXT \FALSE + RFALSE + + .ENDI diff --git a/sub-bay.zil b/sub-bay.zil new file mode 100644 index 0000000..3f23f32 --- /dev/null +++ b/sub-bay.zil @@ -0,0 +1,3058 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : SUB-BAY.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:45:40 $" +; "rev : $Revision: 1.30 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Sub bay" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + +;"---------------------------------------------------------------------------" +; "RM-SUB-BAY" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + ( + + + + ) + ( + + > + + ) + (> + > + > + > + + > + + ) + (T + + + ) + > + ) + > + ) + > + ) + ( + + + ; "Return #2 puzzle." + + + + + + + ) + > + ) + ( + + ; "Return #1 puzzle." + + + + + + + + + ) + > + ) + > + ) + (.CONTEXT + + ) + > +> + + + +)) + + ) + ( + + + ) + ( + + ) + > + ) + > +> + +;"***************************************************************************" +; "FIRE PUZZLE" +;"***************************************************************************" + + + +)) + + ) + ( + + + > + + + + + ) + (T + + ) + > + ) + > +> + +> + + + ) + > +> + + + +> + + + +)) + + ) + ( + + ) + > +> + + + +)) + + ) + ( + + + ) + (T + + ) + > + ) + > +> + + + +)) + +> + +;"***************************************************************************" +; "PEOPLE" +;"***************************************************************************" + + + + + +)) + + ) + (,NOW-PRSI + + + + + > + + + + + + + + + + ) + > + ) + > + ) + ( + + + ) + ( + + ) + ( + > + + ) + (T ;> + + ) + ; (T + ; "Bob" + + ) + > + ) + ( + > ;"Not crazy?" + + ) + ( ;"Under nitrogen narcosis" + + ) + (T + + ) + > + ) + ( + + ) + ( + + ) + ( + + ) + ( ;"Crazy?" + + ) + (T + + ) + > + ) + > +> + + + +)) + + ) + (,NOW-PRSI + + ) + ( + + + ) + > + ) + > +> + + + + + + + +; "Is the following right?" + ,PLURAL-FLAG> + ,PLURAL-FLAG> + ,PLURAL-FLAG> + +; ,PLURAL-FLAG> + +;"---------------------------------------------------------------------------" +; "TH-DRY-SUIT" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + ( + + ;"RT-MOVE-ALL clears FL-WORN." + + + + ) + (T + ; "Bob" + + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-FACEPLATE" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-HELMET" +;"---------------------------------------------------------------------------" + + + +)) + + ) + ( + + ) + > +> + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "TH-LIFT-BAG" +;"---------------------------------------------------------------------------" + + + +; "TH-LIFT-BAG flags:" +; " FL-LOCKED - Inflated." +; " FL-BROKEN - Cut & can't be inflated." + +> ; "The object the lift bag is tied to" + +)) + + ) + ( + ,GL-LIFT-OBJ + > + + ; "Pick up lift bag and ,GL-LIFT-OBJ" + ) + (T + + ) + > + ) + ( + + > + + > + + + ) + > + + + ) + ( + + ) + (T + + + + ) + (T + + ) + > + + + + ) + (T + + ) + > + ) + > + ) + ( + + ) + ( + + > + + + + + + + ) + (T + + ) + > + ) + > + + + + > + + + ) + ( + + + > + + ) + ; ( + + ) + > + ) + > + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-CO2-CANNISTER" +;"---------------------------------------------------------------------------" + + + +; "TH-CO2-CANNISTER flags:" +; " FL-BROKEN - Cannister is empty." + +)) + + ) + ( + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-RED-BUTTON" +;"---------------------------------------------------------------------------" + + + +; "FLAGS: FL-BROKEN = the red button has been pushed already." + +)) + + ) + ( + + ) + ( + + + ) + (T + + + + + + ) + > + + ) + (T + + + + + + + ; +; "DUANE - Prevent the player from swimming down into the water until he +drops the lift bag or cuts it open. 'You sink below the surface of the water. +On the bulkhead nearby you see the hookah nozzles protrude from their housing." + ) + ( + +; "DUANE - Prevent the player from doing anything until he drops the lift bag +or cuts it with his knife. If he cuts the bag, give him the gas escaping msg +and then 'The bag no longer contrains your movements.'" + ) + (T + + + ) + > + ) + (T + + ) + > + ) + ( + + + ) + ( + + ) + ( + ) + (T + ) + > + ) + (T + + ) + > + ) + > + ) + > + ) + > +> + +;"***************************************************************************" +; "OTHER ROOMS" +;"***************************************************************************" + +;"---------------------------------------------------------------------------" +; "RM-COMPRESSION-CHAMBER" +;"---------------------------------------------------------------------------" + +) + (ACTION RT-RM-COMPRESSION-CHAMBER) +> + +)) + + + + + ) + (T + + ) + > + + + ) + ( + + + + + + ) + > + ) + (.CONTEXT + + ) + > +> + + + +)) + + ) + ( + + + ) + ( + + ) + ( + + > + + + + + > + + + + + + + + + + + + + + + + + ) + > + ) + > +> + +> + + + + + + ) + > +> + +> + + + + + + + ) + > +> + +> + + + + + ) + > +> + + + + + + + + + + + + ) + (T + + ) + > + + ) + > + + ) + > +> + +> + + + +> + +> + +> + +> + +> + + + + + +> + + + + + + +> + +;"---------------------------------------------------------------------------" +; "RM-CAB-THREE" +;"---------------------------------------------------------------------------" + + + + <> BYTE> + +)) + + + + + ) + (T + + ) + > + + + ) + ( + + > + > + + ) + > + ) + ( + > + + + + > + > + + > + + + + ) + > + ) + (.CONTEXT + + ) + > +> + +)) + + > + + ) + (T + + ) + > + ) + (T + > + ) + > +> + + + + +> + + + +)) + + ) + ( + + ,GL-FALLING-INTO-TRENCH? + > + + + > + + + + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-GAS-MIX-ROOM" +;"---------------------------------------------------------------------------" + +) + (ACTION RT-RM-GAS-MIX-ROOM) +> + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + + +;)) + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-SHOWER-ROOM" +;"---------------------------------------------------------------------------" + +; + +;)) + + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-CORRIDOR" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + ( + + + ) + > + ) + (.CONTEXT + + ) + > +> + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "RM-LADDER-A2" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-LOUNGE" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + > + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-INFIRMARY" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + +;"---------------------------------------------------------------------------" +; "RM-MESS-HALL" +;"---------------------------------------------------------------------------" + + + + <> BYTE> + +)) + + + + ) + ( + + + + + > + + + + + + + ) + > + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-GALLEY" +;"---------------------------------------------------------------------------" + + + +)) + + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-PANTRY" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "TH-GAME-BAG" +;"---------------------------------------------------------------------------" + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "RM-WALDORF" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + +;"---------------------------------------------------------------------------" +; "RM-PERSONAL-STORAGE-1" +;"---------------------------------------------------------------------------" + + + +)) + + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-ZOOTOWN" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + +;"---------------------------------------------------------------------------" +; "RM-LADDER-C2" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "TH-S-BILGE-BUTT" +;"---------------------------------------------------------------------------" + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "RM-LADDER-A1" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-LAUNDRY" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-PT-LIFE-SUPPORT" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + +;"---------------------------------------------------------------------------" +; "RM-COMPRESSOR-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + > + > + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + + +; "TH-COMPRESSOR flags:" +; " FL-BROKEN = Coffey has permanently munged the compressor." +; " FL-ON = Compressor is turned on." + +)) + +> + +;"---------------------------------------------------------------------------" +; "RM-LADDER-D1" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-TOOL-PUSHER-OFFICE" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-DRILL-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + +;"---------------------------------------------------------------------------" +; "RM-LADDER-B1" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-SB-BATTERY-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-SB-HEAD" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-SB-LIFE-SUPPORT" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-PUMP-ROOM" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-FRESH-WATER-STORAGE" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-LADDER-C1" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-LADDER-A3" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-PT-HEAD" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-MOTEL-QUICK" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-PERSONAL-STORAGE-2" +;"---------------------------------------------------------------------------" + + + +)) + + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-SWAMP" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-LADDER-D3" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-LADDER-B3" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-SB-OBS-DECK" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-COMPUTER-CENTER" +;"---------------------------------------------------------------------------" + + + +)) + + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-ELECTRONICS-SHOP" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + + + +)) + +> + +;"---------------------------------------------------------------------------" +; "RM-LAB" +;"---------------------------------------------------------------------------" + + + +)) + + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-TAPE-LIBRARY" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"---------------------------------------------------------------------------" +; "RM-LADDER-C3" +;"---------------------------------------------------------------------------" + + + +)) + + + + + ) + (T + + ) + > + + + ) + (.CONTEXT + + ) + > +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/syntax.zil b/syntax.zil new file mode 100644 index 0000000..31fe3ae --- /dev/null +++ b/syntax.zil @@ -0,0 +1,443 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : SYNTAX.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:44:54 $" +; "rev : $Revision: 1.17 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Syntax" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + + + + + + +; + +; + + + + + + + + + + + + + + + + + + + +;"---------------------------------------------------------------------------" +; "Game verbs" +;"---------------------------------------------------------------------------" + + + + + + +%> +%> +%> + + + + + + + + + + + + + + + + + +;"---------------------------------------------------------------------------" +; "A" +;"---------------------------------------------------------------------------" + + +; + +; +; + + + + +;"---------------------------------------------------------------------------" +; "B" +;"---------------------------------------------------------------------------" + + ; "DEB -- Do we need find tokens here?" + +; +; +; +; +; +; +; + +; +; + +;"---------------------------------------------------------------------------" +; "C" +;"---------------------------------------------------------------------------" + + + + + + + + +;"---------------------------------------------------------------------------" +; "D" +;"---------------------------------------------------------------------------" + + + + + + +;"---------------------------------------------------------------------------" +; "E" +;"---------------------------------------------------------------------------" + + + + + + + + + + + + + + + + + + + +;"---------------------------------------------------------------------------" +; "F" +;"---------------------------------------------------------------------------" + + + + + +;"---------------------------------------------------------------------------" +; "G" +;"---------------------------------------------------------------------------" + + + + + + + + + + + + + + + + + +;"---------------------------------------------------------------------------" +; "H" +;"---------------------------------------------------------------------------" + +; +; + + + + + + + +;"---------------------------------------------------------------------------" +; "I" +;"---------------------------------------------------------------------------" + + + + + + +;"---------------------------------------------------------------------------" +; "J" +;"---------------------------------------------------------------------------" + + + + + + + +;"---------------------------------------------------------------------------" +; "K" +;"---------------------------------------------------------------------------" + +; +; + +; +; +; + +;"---------------------------------------------------------------------------" +; "L" +;"---------------------------------------------------------------------------" + + + + +; + + + + + + + + + + + + + + + + + + + +; +; + + + +;"---------------------------------------------------------------------------" +; "M" +;"---------------------------------------------------------------------------" + + + +;"---------------------------------------------------------------------------" +; "N" +;"---------------------------------------------------------------------------" + +; + + +;"---------------------------------------------------------------------------" +; "O" +;"---------------------------------------------------------------------------" + + + + + +;"---------------------------------------------------------------------------" +; "P" +;"---------------------------------------------------------------------------" + + + + + + +; + + + + + + + + + + + + + + + + + + + + + + + + + +;"---------------------------------------------------------------------------" +; "Q" +;"---------------------------------------------------------------------------" + +;"---------------------------------------------------------------------------" +; "R" +;"---------------------------------------------------------------------------" + + + + + + + + + + + + +;"---------------------------------------------------------------------------" +; "S" +;"---------------------------------------------------------------------------" + + + + + + + + + + + + + + + + + +; + + + + + + + + +;"---------------------------------------------------------------------------" +; "T" +;"---------------------------------------------------------------------------" + + + + + + + + + + + + + + + + + + + + + + +; ; "???" + + ;"DEB -- Please check tokens" + + + + + +; + + + + ; ">turn object left" + + + + + +;"---------------------------------------------------------------------------" +; "U" +;"---------------------------------------------------------------------------" + + + +;"---------------------------------------------------------------------------" +; "V" +;"---------------------------------------------------------------------------" + +;"---------------------------------------------------------------------------" +; "W" +;"---------------------------------------------------------------------------" + + + + + + + + + + + + + + + + + + +;"---------------------------------------------------------------------------" +; "X" +;"---------------------------------------------------------------------------" + +;"---------------------------------------------------------------------------" +; "Y" +;"---------------------------------------------------------------------------" + + + + +;"---------------------------------------------------------------------------" +; "Z" +;"---------------------------------------------------------------------------" + +; +; + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/top.zabstr b/top.zabstr new file mode 100644 index 0000000..0ab5847 --- /dev/null +++ b/top.zabstr @@ -0,0 +1,112 @@ + + + + + + +> +>> +> + +> +> + + +> +> +> + + + + +> +> + + + + + +> + >> +> +> +> + + +> ) (T < +RFALSE>)>) ( ) (> < +RTRUE>) (T )>) ( > >> )> > > )>) ( )> > ) ( > ) (T )>) (> +> ) (T )>) (T )>>> + +> +> > )>>> + > ,QCONTEXT) (T ) (WHO <>) (N 0)) ) ( > >> > 1> .ACT>)> )> +>>)>>> +>> +> + +> +> > > >> +>> + +> +> + +>> + +> +)) + ) (<==? .OBJ ,THEM> )> > >> T) (> +) ( <==? .OBJ> T>> )> >> ) (T )> + )>)>>> + + +>> +)) )> < +IFFLAG (P-BE-VERB ) (T )> )> ) (T )> )> >> + > + )>)>>> + + +> +> + \ No newline at end of file diff --git a/top.zap b/top.zap new file mode 100644 index 0000000..49122e8 --- /dev/null +++ b/top.zap @@ -0,0 +1,487 @@ + + .SEGMENT "0" + + + .FUNCT MORE-SPECIFIC:ANY:0:0 + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTR "[Please be more specific.]" + + + .FUNCT V-PDEBUG:ANY:0:0 + ZERO? PRSO /?CCL3 + ZERO? IDEBUG /?PRT4 + SET 'IDEBUG,0 + JUMP ?PRE6 +?PRT4: SET 'IDEBUG,1 +?PRE6: PRINTC 123 + PRINTN IDEBUG + PRINTR "}" +?CCL3: ZERO? P-DBUG /?PRT9 + SET 'P-DBUG,0 + JUMP ?PRE11 +?PRT9: SET 'P-DBUG,1 +?PRE11: ZERO? P-DBUG /?CCL8 + PRINTR "Find them bugs, boss!" +?CCL8: PRINTR "No bugs left, eh?" + + + .FUNCT VERB-ALL-TEST:ANY:2:2,O,I,L + LOC O >L + FSET? O,FL-NO-ALL /FALSE + EQUAL? PRSA,V?DROP \?CCL5 + FSET? O,FL-WORN /FALSE + EQUAL? L,WINNER /TRUE + RFALSE +?CCL5: EQUAL? PRSA,V?PUT,V?PUT-IN \?CCL12 + EQUAL? O,I /FALSE + FSET? O,FL-WORN /FALSE + IN? O,I /FALSE + RTRUE +?CCL12: EQUAL? PRSA,V?TAKE \?CCL21 + CALL RT-META-IN?,WINNER,O + ZERO? STACK \FALSE + IN? O,WINNER /FALSE + ZERO? I \?CCL28 + CALL RT-META-IN?,O,WINNER + ZERO? STACK \FALSE +?CCL28: FSET? O,FL-WORN /FALSE + FSET? O,FL-TAKEABLE \FALSE + ZERO? I /?CCL36 + EQUAL? L,I \FALSE +?CCL36: EQUAL? L,HERE /TRUE + FSET? L,FL-PERSON /TRUE + FSET? L,FL-SURFACE /TRUE + FSET? L,FL-CONTAINER \FALSE + FSET? L,FL-OPEN /TRUE + RFALSE +?CCL21: ZERO? I /TRUE + EQUAL? O,I /FALSE + RTRUE + + + .FUNCT FIX-HIM-HER-IT:ANY:2:2,PRON,OBJ + ZERO? OBJ \?CCL3 + ICALL1 MORE-SPECIFIC + RFALSE +?CCL3: CALL2 ACCESSIBLE?,OBJ + ZERO? STACK \?CCL5 + EQUAL? PRON,PRSO \?PRD9 + CALL2 EVERYWHERE-VERB?,1 + ZERO? STACK /?CTR4 +?PRD9: EQUAL? PRON,PRSI \?CCL5 + CALL2 EVERYWHERE-VERB?,2 + ZERO? STACK \?CCL5 +?CTR4: ICALL2 NOT-HERE,OBJ + RFALSE +?CCL5: EQUAL? PRSO,PRON \?CND14 + SET 'PRSO,OBJ + ICALL TELL-PRONOUN,OBJ,PRON +?CND14: EQUAL? PRSI,PRON \?CND16 + SET 'PRSI,OBJ + ICALL TELL-PRONOUN,OBJ,PRON +?CND16: EQUAL? PRSS,PRON \TRUE + SET 'PRSS,OBJ + ICALL TELL-PRONOUN,OBJ,PRON + RTRUE + + + .FUNCT TELL-PRONOUN:ANY:2:2,OBJ,PRON + FSET? PRON,TOUCHBIT /FALSE + EQUAL? OPRSO,OBJ /FALSE + EQUAL? PRSA,V?DO? /FALSE + PRINTI "[""" + ICALL2 RT-PRINT-DESC,PRON + PRINTI """ meaning " + ICALL2 TELL-THE,OBJ + PRINTR "]" + + + .FUNCT NO-M-WINNER-VERB?:ANY:0:0 + GET NO-M-WINNER-VERB-TABLE,0 + INTBL? PRSA,NO-M-WINNER-VERB-TABLE+2,STACK /TRUE + RFALSE + + + .FUNCT FIND-A-WINNER:ANY:0:1,RM,WHO + ASSIGNED? 'RM /?CND1 + SET 'RM,HERE +?CND1: ZERO? QCONTEXT /?CCL5 + IN? QCONTEXT,RM \?CCL5 + RETURN QCONTEXT +?CCL5: CALL FIND-FLAG,HERE,FL-PERSON,CH-PLAYER >WHO + ZERO? WHO /?CCL9 + RETURN WHO +?CCL9: CALL FIND-FLAG,HERE,FL-ALIVE,CH-PLAYER >WHO + ZERO? WHO /FALSE + RETURN WHO + + + .FUNCT TELL-SAID-TO:ANY:1:1,PER + PRINTI "[said to" + ICALL RT-PRINT-OBJ,PER,K-ART-THE + PRINTC 93 + CRLF + RTRUE + + + .FUNCT QCONTEXT-GOOD?:ANY:0:0 + ZERO? QCONTEXT /FALSE + FSET? QCONTEXT,PERSONBIT \FALSE + CALL2 META-LOC,QCONTEXT + EQUAL? HERE,STACK \FALSE + RETURN QCONTEXT + + + .FUNCT META-LOC:ANY:1:2,OBJ,INV,L + LOC OBJ >L +?PRG1: EQUAL? FALSE-VALUE,OBJ,L /FALSE + EQUAL? L,LOCAL-GLOBALS,GLOBAL-OBJECTS,GENERIC-OBJECTS \?CCL7 + RETURN L +?CCL7: IN? OBJ,ROOMS \?CCL9 + RETURN OBJ +?CCL9: ZERO? INV /?CND10 + FSET? OBJ,INVISIBLE /FALSE +?CND10: SET 'OBJ,L + LOC OBJ >L + JUMP ?PRG1 + + + .FUNCT CANT-UNDO:ANY:0:0 + PRINTR "[I can't undo that now.]" + + + .FUNCT SEE-VERB?:ANY:0:0 + EQUAL? PRSA,V?EXAMINE,V?LOOK,V?LOOK-IN /TRUE + EQUAL? PRSA,V?LOOK-ON /TRUE + RFALSE + + + .FUNCT PERFORM:ANY:1:3,PA,PO,PI,V,OA,OO,OI,OQ,OS,X,?TMP1,?TMP2 + SET 'OA,PRSA + SET 'OO,PRSO + SET 'OI,PRSI + ZERO? OO /?CCL3 + EQUAL? OO,PI \?CCL3 + SET 'OBJ-SWAP,TRUE-VALUE + JUMP ?CND1 +?CCL3: ZERO? OI /?CCL7 + EQUAL? OI,PO \?CCL7 + SET 'OBJ-SWAP,TRUE-VALUE + JUMP ?CND1 +?CCL7: SET 'OBJ-SWAP,FALSE-VALUE +?CND1: SET 'PRSA,PA + SET 'PRSI,PI + SET 'PRSO,PO + ZERO? P-DBUG /?CND10 + PRINTI "{Perform: A=" + PRINTN PA + ZERO? PO /?CND12 + PRINTI "/O=" + EQUAL? PRSA,V?WALK \?CCL16 + PRINTN PO + JUMP ?CND12 +?CCL16: ICALL2 TELL-D-LOC,PO +?CND12: ZERO? PI /?CND17 + PRINTI "/I=" + ICALL2 TELL-D-LOC,PI +?CND17: ZERO? PRSQ /?CND19 + PRINTI "/Q=" + PRINTN PRSQ +?CND19: ZERO? PRSS /?CND21 + PRINTI "/S=" + ICALL2 TELL-D-LOC,PRSS +?CND21: PRINTI "} +" +?CND10: SET 'V,FALSE-VALUE + ZERO? PRSS /?CND23 + ICALL2 THIS-IS-IT,PRSS +?CND23: ZERO? PRSI /?CND25 + ICALL2 THIS-IS-IT,PRSI +?CND25: ZERO? PRSO /?CND27 + EQUAL? PRSA,V?TELL /?CND27 + EQUAL? PRSA,V?WALK /?CND27 + ICALL2 THIS-IS-IT,PRSO +?CND27: EQUAL? WINNER,PLAYER /?CND32 + ICALL2 THIS-IS-IT,WINNER +?CND32: SET 'PO,PRSO + SET 'PI,PRSI + CALL1 NO-M-WINNER-VERB? + ZERO? STACK \?CND34 + GETP WINNER,P?ACTION + CALL D-APPLY,STR?49,STACK,M-WINNER >V +?CND34: ZERO? PRSS /?CND37 + ZERO? V \?CND39 + GETP PRSS,P?ACTION + CALL D-APPLY,STR?50,STACK,M-SUBJ >V +?CND39: ZERO? V \?CND41 + ZERO? PRSQ /?CND41 + GET ACTIONS,PA >?TMP2 + ADD QACTIONS,2 >?TMP1 + GET QACTIONS,0 + INTBL? ?TMP2,?TMP1,STACK >X \?CND41 + GET X,2 + CALL D-APPLY,STR?51,STACK >V +?CND41: ZERO? V \?CND47 + ZERO? PRSQ /?CCL51 + GET ACTIONS,PA >?TMP2 + ADD QACTIONS,2 >?TMP1 + GET QACTIONS,0 + INTBL? ?TMP2,?TMP1,STACK >X \?CND52 + GET X,1 >X + ZERO? X /?CND52 + CALL D-APPLY,FALSE-VALUE,X >V +?CND52: ZERO? V \?CND47 + GET ACTIONS,PRSQ + CALL D-APPLY,FALSE-VALUE,STACK >V + JUMP ?CND47 +?CCL51: ICALL D-APPLY,FALSE-VALUE,V-STATEMENT +?CND47: EQUAL? M-FATAL,V \?CND58 + SET 'P-CONT,-1 +?CND58: SET 'PRSA,OA + SET 'PRSO,OO + SET 'PRSI,OI + RETURN V +?CND37: ZERO? V \?CND60 + LOC WINNER + IN? STACK,ROOMS /?CND60 + LOC WINNER + GETP STACK,P?ACTION + CALL D-APPLY,STR?52,STACK,M-BEG >V +?CND60: ZERO? V \?CND64 + GETP HERE,P?ACTION + CALL D-APPLY,STR?52,STACK,M-BEG >V +?CND64: ZERO? V \?CND66 + GET PREACTIONS,PA + CALL D-APPLY,STR?51,STACK >V +?CND66: SET 'NOW-PRSI,1 + ZERO? V \?CND68 + ZERO? PI /?CND68 + EQUAL? PRSA,V?WALK /?CND68 + LOC PI + ZERO? STACK /?CND68 + LOC PI + GETP STACK,P?CONTFCN >V + ZERO? V /?CND68 + CALL D-APPLY,STR?53,V,M-CONTAINER >V +?CND68: ZERO? V \?CND76 + ZERO? PI /?CND76 + EQUAL? PI,GLOBAL-HERE \?CND80 + GETP HERE,P?ACTION + CALL D-APPLY,STR?54,STACK >V +?CND80: ZERO? V \?CND76 + GETP PI,P?ACTION + CALL D-APPLY,STR?54,STACK >V +?CND76: SET 'NOW-PRSI,0 + ZERO? V \?CND84 + ZERO? PO /?CND84 + EQUAL? PRSA,V?WALK /?CND84 + LOC PO + ZERO? STACK /?CND84 + LOC PO + GETP STACK,P?CONTFCN >V + ZERO? V /?CND84 + CALL D-APPLY,STR?53,V,M-CONTAINER >V +?CND84: ZERO? V \?CND92 + ZERO? PO /?CND92 + EQUAL? PRSA,V?WALK /?CND92 + EQUAL? PO,GLOBAL-HERE \?CND97 + GETP HERE,P?ACTION + CALL D-APPLY,STR?55,STACK >V +?CND97: ZERO? V \?CND92 + GETP PO,P?ACTION + CALL D-APPLY,STR?55,STACK >V +?CND92: ZERO? V \?CND101 + GET ACTIONS,PA + CALL D-APPLY,FALSE-VALUE,STACK >V +?CND101: EQUAL? M-FATAL,V \?CND104 + SET 'P-CONT,-1 +?CND104: SET 'PRSA,OA + SET 'PRSO,OO + SET 'PRSI,OI + RETURN V + + + .FUNCT TELL-TOO-DARK:ANY:0:0 + PRINT TOO-DARK + RETURN M-FATAL + + + .FUNCT ITAKE-CHECK:ANY:2:2,OBJ,BITS,TAKEN,V + CALL HELD?,OBJ,WINNER + ZERO? STACK \FALSE + EQUAL? OBJ,TH-HANDS,ROOMS /FALSE + FSET? OBJ,FL-TRY-TAKE /?CND6 + CALL RT-META-IN?,OBJ,WINNER + ZERO? STACK /?CND6 + CALL RT-META-IN?,WINNER,OBJ + ZERO? STACK \?CND6 + BTST BITS,32 \?CND6 + CALL ITAKE,OBJ,FALSE-VALUE >V + ZERO? V /?CND6 + EQUAL? V,M-FATAL /?CND6 + SET 'TAKEN,TRUE-VALUE +?CND6: ZERO? TAKEN \FALSE + BTST BITS,64 \FALSE + ICALL2 THIS-IS-IT,OBJ + PRINTC 91 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI "n't holding" + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE + PRINTR ".]" + + + .FUNCT TELL-D-LOC:ANY:1:1,OBJ + PRINTD OBJ + IN? OBJ,GLOBAL-OBJECTS \?CCL3 + PRINTI "(gl)" + JUMP ?CND1 +?CCL3: IN? OBJ,LOCAL-GLOBALS \?CCL5 + PRINTI "(lg)" + JUMP ?CND1 +?CCL5: IN? OBJ,ROOMS \?CND1 + PRINTI "(rm)" +?CND1: EQUAL? OBJ,INTNUM \FALSE + PRINTC 40 + PRINTN P-NUMBER + PRINTC 41 + RTRUE + + + .FUNCT D-APPLY:ANY:2:3,STR,FCN,FOO,RES + ZERO? FCN /FALSE + ZERO? P-DBUG /?CND4 + ZERO? STR \?CCL8 + PRINTI "{Action:} +" + JUMP ?CND4 +?CCL8: PRINTC 123 + PRINT STR + EQUAL? STR,STR?49 \?CND9 + PRINTC 61 + ICALL2 RT-PRINT-DESC,WINNER +?CND9: PRINTI ": " +?CND4: ZERO? FOO /?CCL13 + CALL FCN,FOO >RES + JUMP ?CND11 +?CCL13: CALL FCN >RES +?CND11: ZERO? P-DBUG /?CND14 + ZERO? STR /?CND14 + EQUAL? M-FATAL,RES /?CTR19 + EQUAL? P-CONT,-1 \?CCL20 +?CTR19: PRINTI "Fatal} +" + RETURN RES +?CCL20: ZERO? RES \?CCL24 + PRINTI "Not handled} +" + RETURN RES +?CCL24: PRINTI "Handled} +" +?CND14: RETURN RES + + + .FUNCT CAPITAL-NOUN?:ANY:1:1,NAM + EQUAL? NAM,W?COFFEY,W?LINDSEY /TRUE + RFALSE + + + .FUNCT NOT-HERE:ANY:1:2,OBJ,CLOCK + ZERO? CLOCK \?CND1 + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTC 91 +?CND1: ICALL RT-PRINT-OBJ,OBJ,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI "n't " + CALL2 VISIBLE?,OBJ + ZERO? STACK /?CCL5 + PRINTI "close enough" + CALL1 SPEAKING-VERB? + ZERO? STACK /?CND3 + PRINTI " to hear you" + JUMP ?CND3 +?CCL5: PRINTI "here" +?CND3: PRINTC 46 + ICALL2 THIS-IS-IT,OBJ + ZERO? CLOCK \?CND8 + PRINTC 93 +?CND8: CRLF + RTRUE + + + .FUNCT SPEAKING-VERB?:ANY:0:0 + EQUAL? PRSA,V?ASK-ABOUT,V?TALK-TO,V?TELL /TRUE + EQUAL? PRSA,V?TELL-ABOUT /TRUE + RFALSE + + + .FUNCT GET-OWNER:ANY:1:1,OBJ,TMP,NP + CALL2 GET-NP,OBJ >NP + ZERO? NP /FALSE + GET NP,4 >TMP + ZERO? TMP \?CTR5 + GET NP,1 >TMP + ZERO? TMP /?CCL6 + GET TMP,2 >TMP + ZERO? TMP /?CCL6 +?CTR5: LESS? 0,TMP \FALSE + GRTR? TMP,LAST-OBJECT /FALSE + RETURN TMP +?CCL6: GETP OBJ,P?OWNER >TMP + ZERO? TMP /FALSE + LESS? 0,TMP \?CCL17 + GRTR? TMP,LAST-OBJECT \FALSE +?CCL17: RETURN PLAYER + + + .FUNCT GET-NP:ANY:0:1,OBJ,PRSI? + SET 'PRSI?,NOW-PRSI + EQUAL? OBJ,FALSE-VALUE,PRSO,PRSI \FALSE + ZERO? OBJ /?CND1 + EQUAL? OBJ,PRSO \?CCL7 + SET 'PRSI?,FALSE-VALUE + JUMP ?CND1 +?CCL7: SET 'PRSI?,TRUE-VALUE +?CND1: ZERO? OBJ-SWAP /?CCL10 + ZERO? PRSI? /?CCL13 + RETURN PRSO-NP +?CCL13: RETURN PRSI-NP +?CCL10: ZERO? PRSI? /?CCL15 + RETURN PRSI-NP +?CCL15: RETURN PRSO-NP + + + .FUNCT NOUN-USED?:ANY:2:4,OBJ,WD1,WD2,WD3,X + CALL2 GET-NP,OBJ >X + ZERO? X /FALSE + GET X,2 >X + ZERO? X /FALSE + EQUAL? X,WD1,WD2,WD3 /TRUE + RFALSE + + + .FUNCT ADJ-USED?:ANY:2:4,OBJ,WD1,WD2,WD3,NP,CT + CALL2 GET-NP,OBJ >NP + GET NP,1 >NP + ZERO? NP /?CCL3 + GET NP,2 + EQUAL? PLAYER,STACK \?CCL6 + EQUAL? W?MY,WD1,WD2,WD3 \?CCL6 + RETURN W?MY +?CCL6: GET NP,4 >CT + GRTR? CT,0 \?CCL10 + ADD NP,10 >NP + INTBL? WD1,NP,CT \?CCL13 + RETURN WD1 +?CCL13: ZERO? WD2 /FALSE + INTBL? WD2,NP,CT \?CCL18 + RETURN WD2 +?CCL18: ZERO? WD3 /FALSE + INTBL? WD3,NP,CT \FALSE + RETURN WD3 +?CCL10: EQUAL? WD1,FALSE-VALUE /TRUE + RFALSE +?CCL3: EQUAL? WD1,FALSE-VALUE /TRUE + RFALSE + + .ENDSEG + + .ENDI diff --git a/util.zabstr b/util.zabstr new file mode 100644 index 0000000..9e4157e --- /dev/null +++ b/util.zabstr @@ -0,0 +1,78 @@ + + + + + + + +> + + + <> BYTE> + BYTE> + BYTE> + + + + +> + + + + + + + BYTE> + + + + + + + + + + + + + + + + + + + + + + +
+>> + +
>> + +
>> + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/util.zap b/util.zap new file mode 100644 index 0000000..22f6039 --- /dev/null +++ b/util.zap @@ -0,0 +1,1036 @@ + + + .FUNCT V-$STEAL:ANY:0:0 + CALL RT-DO-TAKE,PRSO,TRUE-VALUE + ZERO? STACK /TRUE + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTC 91 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?138 + PRINTR " in your hand.]" + + + .FUNCT V-$GOTO:ANY:0:0,OBJ + SET 'OBJ,PRSO + SET 'CLOCK-WAIT,TRUE-VALUE +?PRG1: IN? OBJ,ROOMS \?CCL5 + ICALL2 RT-GOTO,OBJ + RTRUE +?CCL5: LOC OBJ + EQUAL? STACK,LOCAL-GLOBALS,GLOBAL-OBJECTS,FALSE-VALUE \?CCL7 + PRINTC 91 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR "n't in a room.]" +?CCL7: LOC OBJ >OBJ + JUMP ?PRG1 + + + .FUNCT V-VERSION:ANY:0:0,IDX + SET 'IDX,18 + HLIGHT K-H-BLD + PRINTI "The Abyss +Copyright (c) 1989 Infocom, Inc. All rights reserved. +" + GETB 0,30 + GET K-MACHINE-NAME-TBL,STACK + PRINT STACK + PRINTI " Interpreter version " + GETB 0,0 + PRINTN STACK + PRINTC 46 + GETB 0,31 + PRINTN STACK + CRLF + PRINTI "Release " + GET 0,1 + BAND STACK,2047 + PRINTN STACK + PRINTI " / Serial Number " +?PRG1: GETB 0,IDX + PRINTC STACK + IGRTR? 'IDX,23 \?PRG1 + CRLF + HLIGHT K-H-NRM + RTRUE + + + .FUNCT V-COLOR:ANY:0:0,S + ZERO? GL-COLOR-NOTE \?CND1 + SET 'GL-COLOR-NOTE,TRUE-VALUE + PRINTC TAB + PRINTI "Aesthetically, we recommend not changing the standard setting" + GETB 0,30 + EQUAL? STACK,MACINTOSH \?CND3 + CALL1 MAC-II? + ZERO? STACK /?CCL7 + PRINTI ", and if your Mac II displays only 16 colors, you probably won't get the color you ask for" + JUMP ?CND3 +?CCL7: PRINTI ", and you can have only black on white or white on black" +?CND3: PRINTI ". Do you still want to go ahead? +" + CALL1 Y? + ZERO? STACK /TRUE +?CND1: CRLF +?PRG10: ICALL1 RT-DO-COLOR + PRINTC TAB + PRINTI "You should now get " + GET K-COLOR-TABLE,GL-F-COLOR + PRINT STACK + PRINTI " text on a " + GET K-COLOR-TABLE,GL-B-COLOR + PRINT STACK + PRINTI " background. Is that what you want? +" + CALL1 Y? + ZERO? STACK \?REP11 + GETB 0,30 + EQUAL? STACK,MACINTOSH \?CND14 + CALL1 MAC-II? + ZERO? STACK \?CND14 + EQUAL? GL-B-COLOR,2 \?CCL20 + SET 'GL-B-COLOR,9 + SET 'GL-F-COLOR,2 + JUMP ?REP11 +?CCL20: SET 'GL-B-COLOR,2 + SET 'GL-F-COLOR,9 + JUMP ?REP11 +?CND14: PRINTC TAB + PRINTI "Do you want to pick again, or would you like to just go back to the standard colors? (Type Y to pick again) >" + CALL2 Y?,FALSE-VALUE + ZERO? STACK /?CCL23 + CRLF + JUMP ?PRG10 +?CCL23: SET 'GL-F-COLOR,1 + SET 'GL-B-COLOR,1 +?REP11: SET 'S,0 +?PRG24: SCREEN S + COLOR GL-F-COLOR,GL-B-COLOR + IGRTR? 'S,7 \?PRG24 + CALL1 V-$REFRESH + RSTACK + + + .FUNCT RT-DO-COLOR:ANY:0:0 + GETB 0,30 + EQUAL? STACK,MACINTOSH \?CCL3 + CALL1 MAC-II? + ZERO? STACK \?CCL3 + EQUAL? GL-B-COLOR,2 \?CCL8 + SET 'GL-B-COLOR,9 + SET 'GL-F-COLOR,2 + RETURN GL-F-COLOR +?CCL8: SET 'GL-B-COLOR,2 + SET 'GL-F-COLOR,9 + RETURN GL-F-COLOR +?CCL3: CALL RT-PICK-COLOR,GL-F-COLOR,STR?149,TRUE-VALUE >GL-F-COLOR + CALL RT-PICK-COLOR,GL-B-COLOR,STR?150 >GL-B-COLOR + RETURN GL-B-COLOR + + + .FUNCT RT-PICK-COLOR:ANY:2:3,WHICH,STRING,SETTING-FG,CHAR + PRINTI "The current " + PRINT STRING + PRINTI " color is " + GET K-COLOR-TABLE,WHICH + PRINT STACK + PRINTC 46 + CRLF + FONT 4 + PRINTI " 1 --> WHITE 5 --> YELLOW" + CRLF + PRINTI " 2 --> BLACK 6 --> BLUE" + CRLF + PRINTI " 3 --> RED 7 --> MAGENTA" + CRLF + PRINTI " 4 --> GREEN 8 --> CYAN" + CRLF + FONT 1 + PRINTI "Type a number to select the " + PRINT STRING + PRINTI " color you want. >" +?PRG1: INPUT 1 >CHAR + SUB CHAR,48 >CHAR + EQUAL? CHAR,1 \?CND4 + SET 'CHAR,9 +?CND4: EQUAL? CHAR,2,3,4 /?CTR7 + EQUAL? CHAR,5,6,7 /?CTR7 + EQUAL? CHAR,8,9 \?CCL8 +?CTR7: ZERO? SETTING-FG \?REP2 + EQUAL? CHAR,GL-F-COLOR \?REP2 + CRLF + PRINTI "You can't make the background the same color as the text. Please pick another color. >" + JUMP ?PRG1 +?CCL8: CRLF + PRINT K-TYPE-NUMBER-MSG + PRINTI "8. >" + JUMP ?PRG1 +?REP2: CRLF + CRLF + RETURN CHAR + + + .FUNCT MAC-II?:ANY:0:0 + GET 0,8 + BTST STACK,64 /TRUE + RFALSE + + + .FUNCT Y?:ANY:0:1,P?,C,1ST? + ASSIGNED? 'P? /?CND1 + SET 'P?,TRUE-VALUE +?CND1: SET '1ST?,TRUE-VALUE +?PRG3: ZERO? P? /?CND5 + PRINTI "Please press Y or N >" +?CND5: INPUT 1 >C + EQUAL? C,89,78,121 /?CTR9 + EQUAL? C,110 \?CCL10 +?CTR9: PRINTC C + CRLF + EQUAL? C,89,121 /TRUE + RFALSE +?CCL10: SOUND S-BEEP + ZERO? P? /?PRG3 + CRLF + JUMP ?PRG3 + + + .FUNCT RT-CHECK-ADJ:ANY:1:1,DOOR + RFALSE + + + .FUNCT RT-UPDATE-ADJ:ANY:3:3,DOOR,RM1,RM2,TMP1,TMP2,?TMP1 + GETP RM1,P?ADJACENT >TMP2 + ZERO? TMP2 /?CND1 + ADD TMP2,1 >?TMP1 + GETB TMP2,0 + INTBL? RM2,?TMP1,STACK,1 >TMP1 \?CND1 + FSET? DOOR,FL-OPEN /?PRD5 + PUSH 0 + JUMP ?PRD6 +?PRD5: PUSH 1 +?PRD6: PUTB TMP1,1,STACK +?CND1: GETP RM2,P?ADJACENT >TMP2 + ZERO? TMP2 /FALSE + ADD TMP2,1 >?TMP1 + GETB TMP2,0 + INTBL? RM1,?TMP1,STACK,1 >TMP1 \FALSE + FSET? DOOR,FL-OPEN /?PRD13 + PUSH 0 + JUMP ?PRD14 +?PRD13: PUSH 1 +?PRD14: PUTB TMP1,1,STACK + RTRUE + + + .FUNCT RT-SCORE-MSG:ANY:1:2,N,NL? + ASSIGNED? 'NL? /?CND1 + SET 'NL?,TRUE-VALUE +?CND1: ZERO? N /FALSE + ADD GL-SCORE,N >GL-SCORE + HLIGHT H-BOLD + ZERO? NL? /?CND6 + CRLF +?CND6: PRINTI "[You have " + GRTR? N,0 \?CCL10 + PRINTI "earned" + JUMP ?CND8 +?CCL10: PRINTI "lost" +?CND8: ICALL2 RT-WORD-NUMBERS,N + PRINTI " point" + LESS? N,0 \?CCL15 + SUB 0,N + JUMP ?CND13 +?CCL15: PUSH N +?CND13: EQUAL? STACK,1 /?CND11 + PRINTC 115 +?CND11: PRINTI ".]" + ZERO? NL? /?CND16 + CRLF +?CND16: HLIGHT H-NORMAL + RTRUE + + + .FUNCT RT-SCORE-OBJ:ANY:1:2,OBJ,NL?,SC + ASSIGNED? 'NL? /?CND1 + SET 'NL?,TRUE-VALUE +?CND1: GETP OBJ,P?SCORE >SC + ZERO? SC /FALSE + ICALL RT-SCORE-MSG,SC,NL? + PUTP OBJ,P?SCORE,0 + RTRUE + + + .FUNCT V-SCORE:ANY:0:0 + PRINTI "You have" + ICALL2 RT-WORD-NUMBERS,GL-SCORE + PRINTI " point" + LESS? GL-SCORE,0 \?CCL5 + SUB 0,GL-SCORE + JUMP ?CND3 +?CCL5: PUSH GL-SCORE +?CND3: EQUAL? STACK,1 /?CND1 + PRINTC 115 +?CND1: PRINTR "." + + + .FUNCT V-DIAGNOSE:ANY:0:0,N,1ST?,TMP,OXY,CO2,NIT,M + SET '1ST?,TRUE-VALUE + GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-1 \?PST4 + LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-1 /?PRD7 + SET 'TMP,1 + JUMP ?PEN3 +?PRD7: SET 'TMP,0 + JUMP ?PEN3 +?PST4: SET 'TMP,1 +?PEN3: ZERO? TMP /?CND1 + INC 'N +?CND1: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-1 \?PST12 + LESS? GL-OXYGEN-QTY,K-OXY-HIGH-1 /?PRD15 + SET 'OXY,1 + JUMP ?PEN11 +?PRD15: SET 'OXY,0 + JUMP ?PEN11 +?PST12: SET 'OXY,1 +?PEN11: ZERO? OXY /?CND9 + INC 'N +?CND9: LESS? GL-CO2-QTY,K-CO2-HIGH-1 /?PRD20 + SET 'CO2,1 + JUMP ?PEN19 +?PRD20: SET 'CO2,0 +?PEN19: ZERO? CO2 /?CND17 + INC 'N +?CND17: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-1 \?PST25 + LESS? GL-NITROGEN-QTY,K-NIT-HIGH-1 /?PRD28 + SET 'NIT,1 + JUMP ?PEN24 +?PRD28: SET 'NIT,0 + JUMP ?PEN24 +?PST25: SET 'NIT,1 +?PEN24: ZERO? NIT /?CND22 + INC 'N +?CND22: PRINTC TAB + ZERO? N \?CCL32 + PRINTI "You feel fine" + JUMP ?CND30 +?CCL32: ZERO? TMP /?CND33 + DEC 'N + SET '1ST?,FALSE-VALUE + GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-3 /?CCL38 + PRINTI "You're so cold you can hardly move" + JUMP ?CND33 +?CCL38: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-2 /?CCL40 + PRINTI "The cold is creeping into your bones" + JUMP ?CND33 +?CCL40: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-1 /?CCL42 + PRINTI "You are shivering" + JUMP ?CND33 +?CCL42: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-3 /?CCL44 + PRINTI "You're so hot you can hardly move and your breathing is dangerously fast" + JUMP ?CND33 +?CCL44: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-2 /?CCL46 + PRINTI "Your face is red from the heat" + JUMP ?CND33 +?CCL46: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-1 /?CND33 + PRINTI "You are sweating" +?CND33: ZERO? OXY /?CND48 + DEC 'N + ZERO? 1ST? \?CCL52 + PRINTI ", " + ZERO? N \?CND53 + PRINTI "and " +?CND53: SET 'M,32 + JUMP ?CND50 +?CCL52: SET '1ST?,FALSE-VALUE + SET 'M,0 +?CND50: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-3 /?CCL57 + BOR 89,M + PRINTC STACK + PRINTI "our peripheral vision has disappeared" + JUMP ?CND48 +?CCL57: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-2 /?CCL59 + BOR 84,M + PRINTC STACK + PRINTI "he colors around you seem faded" + JUMP ?CND48 +?CCL59: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-1 /?CCL61 + BOR 89,M + PRINTC STACK + PRINTI "ou have a headache" + JUMP ?CND48 +?CCL61: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-3 /?CCL63 + BOR 89,M + PRINTC STACK + PRINTI "our stomach muscles are tight and you feel an urge to vomit" + JUMP ?CND48 +?CCL63: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-2 /?CCL65 + BOR 89,M + PRINTC STACK + PRINTI "ou feel nauseous" + JUMP ?CND48 +?CCL65: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-1 /?CND48 + BOR 89,M + PRINTC STACK + PRINTI "ou have a twitch in your lower lip" +?CND48: ZERO? CO2 /?CND67 + DEC 'N + ZERO? 1ST? \?CCL71 + PRINTI ", " + ZERO? N \?CND72 + PRINTI "and " +?CND72: SET 'M,32 + JUMP ?CND69 +?CCL71: SET '1ST?,FALSE-VALUE + SET 'M,0 +?CND69: LESS? GL-CO2-QTY,K-CO2-HIGH-3 /?CCL76 + BOR 84,M + PRINTC STACK + PRINTI "he muscles in your arm are spasming" + JUMP ?CND67 +?CCL76: LESS? GL-CO2-QTY,K-CO2-HIGH-2 /?CCL78 + BOR 89,M + PRINTC STACK + PRINTI "our chest muscles ache" + JUMP ?CND67 +?CCL78: LESS? GL-CO2-QTY,K-CO2-HIGH-1 /?CND67 + BOR 89,M + PRINTC STACK + PRINTI "ou feel a little short of breath" +?CND67: ZERO? NIT /?CND30 + DEC 'N + ZERO? 1ST? \?CCL84 + PRINTI ", " + ZERO? N \?CND85 + PRINTI "and " +?CND85: PRINTC 121 + JUMP ?CND82 +?CCL84: SET '1ST?,FALSE-VALUE + PRINTC 89 +?CND82: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-3 /?CCL89 + PRINTI "ou have flashes of sudden irritibility" + JUMP ?CND30 +?CCL89: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-2 /?CCL91 + PRINTI "our fingertips are shaking badly" + JUMP ?CND30 +?CCL91: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-1 /?CCL93 + PRINTI "our hands are trembling" + JUMP ?CND30 +?CCL93: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-3 /?CCL95 + PRINTI "ou are hallucinating" + JUMP ?CND30 +?CCL95: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-2 /?CCL97 + PRINTI "our head is spinning" + JUMP ?CND30 +?CCL97: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-1 /?CND30 + PRINTI "ou feel light-headed" +?CND30: PRINTR "." + + + .FUNCT RT-WORD-NUMBERS:ANY:1:2,COUNT,1ST?,N + ASSIGNED? '1ST? /?CND1 + SET '1ST?,TRUE-VALUE +?CND1: ZERO? 1ST? /?CND3 + PRINTC 32 + LESS? COUNT,0 \?CND3 + PRINTI "negative " + SUB 0,COUNT >COUNT +?CND3: ZERO? COUNT \?CCL9 + PRINTI "zero" + RTRUE +?CCL9: EQUAL? COUNT,1 \?CCL11 + PRINTI "one" + RTRUE +?CCL11: EQUAL? COUNT,2 \?CCL13 + PRINTI "two" + RTRUE +?CCL13: EQUAL? COUNT,3 \?CCL15 + PRINTI "three" + RTRUE +?CCL15: EQUAL? COUNT,4 \?CCL17 + PRINTI "four" + RTRUE +?CCL17: EQUAL? COUNT,5 \?CCL19 + PRINTI "five" + RTRUE +?CCL19: EQUAL? COUNT,6 \?CCL21 + PRINTI "six" + RTRUE +?CCL21: EQUAL? COUNT,7 \?CCL23 + PRINTI "seven" + RTRUE +?CCL23: EQUAL? COUNT,8 \?CCL25 + PRINTI "eight" + RTRUE +?CCL25: EQUAL? COUNT,9 \?CCL27 + PRINTI "nine" + RTRUE +?CCL27: EQUAL? COUNT,10 \?CCL29 + PRINTI "ten" + RTRUE +?CCL29: EQUAL? COUNT,11 \?CCL31 + PRINTI "eleven" + RTRUE +?CCL31: EQUAL? COUNT,12 \?CCL33 + PRINTI "twelve" + RTRUE +?CCL33: EQUAL? COUNT,13 \?CCL35 + PRINTI "thirteen" + RTRUE +?CCL35: EQUAL? COUNT,14 \?CCL37 + PRINTI "fourteen" + RTRUE +?CCL37: EQUAL? COUNT,15 \?CCL39 + PRINTI "fifteen" + RTRUE +?CCL39: EQUAL? COUNT,16 \?CCL41 + PRINTI "sixteen" + RTRUE +?CCL41: EQUAL? COUNT,17 \?CCL43 + PRINTI "seventeen" + RTRUE +?CCL43: EQUAL? COUNT,18 \?CCL45 + PRINTI "eighteen" + RTRUE +?CCL45: EQUAL? COUNT,19 \?CCL47 + PRINTI "nineteen" + RTRUE +?CCL47: EQUAL? COUNT,20 \?CCL49 + PRINTI "twenty" + RTRUE +?CCL49: EQUAL? COUNT,30 \?CCL51 + PRINTI "thirty" + RTRUE +?CCL51: EQUAL? COUNT,40 \?CCL53 + PRINTI "forty" + RTRUE +?CCL53: EQUAL? COUNT,50 \?CCL55 + PRINTI "fifty" + RTRUE +?CCL55: EQUAL? COUNT,60 \?CCL57 + PRINTI "sixty" + RTRUE +?CCL57: EQUAL? COUNT,70 \?CCL59 + PRINTI "seventy" + RTRUE +?CCL59: EQUAL? COUNT,80 \?CCL61 + PRINTI "eighty" + RTRUE +?CCL61: EQUAL? COUNT,90 \?CCL63 + PRINTI "ninety" + RTRUE +?CCL63: LESS? COUNT,100 \?CCL65 + MOD COUNT,10 >N + SUB COUNT,N + ICALL RT-WORD-NUMBERS,STACK,FALSE-VALUE + PRINTC 45 + CALL RT-WORD-NUMBERS,N,FALSE-VALUE + RSTACK +?CCL65: LESS? COUNT,1000 \?CCL67 + DIV COUNT,100 + ICALL RT-WORD-NUMBERS,STACK,FALSE-VALUE + PRINTI " hundred" + MOD COUNT,100 + GRTR? STACK,0 \FALSE + PRINTI " and " + MOD COUNT,100 + CALL RT-WORD-NUMBERS,STACK,FALSE-VALUE + RSTACK +?CCL67: DIV COUNT,1000 + ICALL RT-WORD-NUMBERS,STACK,FALSE-VALUE + PRINTI " thousand" + MOD COUNT,1000 + GRTR? STACK,0 \FALSE + PRINTI ", " + MOD COUNT,1000 + CALL RT-WORD-NUMBERS,STACK,FALSE-VALUE + RSTACK + + + .FUNCT RT-END-OF-GAME:ANY:0:2,WIN?,REPEAT,VAL + ICALL1 UPDATE-STATUS-LINE + ZERO? REPEAT \?PRG3 + PRINTC TAB + PRINTI "Sorry, but the game is over. " +?PRG3: ZERO? REPEAT /?CCL7 + PRINTC TAB + JUMP ?CND5 +?CCL7: SET 'REPEAT,TRUE-VALUE +?CND5: PRINTI "Do you want to " + ZERO? P-CAN-UNDO /?CND8 + PRINTI "Undo, " +?CND8: PRINTI "Restore, Restart, or Quit ? +" +?PRG10: PRINTC 62 + PUTB P-INBUF,1,0 +?PRG12: READ P-INBUF,P-LEXV >VAL + EQUAL? VAL,10,13 \?PRG12 + GET P-LEXV,P-LEXSTART >VAL + ZERO? P-CAN-UNDO /?CCL18 + EQUAL? VAL,W?UNDO \?CCL18 + ICALL1 V-UNDO + JUMP ?PRG3 +?CCL18: EQUAL? VAL,W?RESTART \?CCL22 + RESTART + JUMP ?PRG3 +?CCL22: EQUAL? VAL,W?RESTORE \?CCL24 + ICALL1 V-RESTORE + JUMP ?PRG3 +?CCL24: EQUAL? VAL,W?QUIT,W?Q \?CCL26 + PRINTI "Are you sure you want to quit?" + CALL2 YES?,TRUE-VALUE + ZERO? STACK /?PRG3 + QUIT + JUMP ?PRG10 +?CCL26: PRINTC TAB + PRINTI "Please type " + ZERO? P-CAN-UNDO /?CND30 + PRINTI "UNDO, " +?CND30: PRINTI "RESTORE, RESTART, QUIT, or HINT." + CRLF + JUMP ?PRG10 + + + .FUNCT RT-COMMA-MSG:ANY:1:1,MORE? + ZERO? MORE? /?CCL3 + PRINTC 44 + RTRUE +?CCL3: PRINTI " and" + RTRUE + + + .FUNCT FIND-FLAG-LG:ANY:2:3,RM,FLAG,FLAG2,TBL,OBJ,CNT,SIZE + GETPT RM,P?GLOBAL >TBL + ZERO? TBL /FALSE + PTSIZE TBL + DIV STACK,2 + SUB STACK,1 >SIZE +?PRG4: GET TBL,CNT >OBJ + FSET? OBJ,FLAG \?CCL8 + FSET? OBJ,FL-INVISIBLE /?CCL8 + ZERO? FLAG2 /?CTR7 + FSET? OBJ,FLAG2 \?CCL8 +?CTR7: RETURN OBJ +?CCL8: IGRTR? 'CNT,SIZE \?PRG4 + RFALSE + + + .FUNCT FIND-FLAG:ANY:2:4,RM,FLAG,NOT1,NOT2,OBJ + FIRST? RM >OBJ /?PRG2 +?PRG2: ZERO? OBJ /FALSE + FSET? OBJ,FLAG \?CCL8 + FSET? OBJ,FL-INVISIBLE /?CCL8 + EQUAL? OBJ,NOT1,NOT2 /?CCL8 + RETURN OBJ +?CCL8: NEXT? OBJ >OBJ /?PRG2 + JUMP ?PRG2 + + + .FUNCT RT-ALREADY-MSG:ANY:1:2,OBJ,STR + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTC 91 + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI " already" + ZERO? STR /TRUE + PRINTC 32 + PRINT STR + PRINTR ".]" + + + .FUNCT RT-META-IN?:ANY:2:2,OBJ,CONT,L + LOC OBJ >L +?PRG1: ZERO? L /FALSE + EQUAL? L,CONT /TRUE + LOC L >L + JUMP ?PRG1 + + + .FUNCT NO-NEED:ANY:0:2,STR,OBJ + ZERO? OBJ \?CND1 + SET 'OBJ,PRSO +?CND1: SET 'CLOCK-WAIT,TRUE-VALUE + PRINTC 91 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?66 + PRINTI "n't need to " + ZERO? STR /?CCL5 + PRINT STR + JUMP ?CND3 +?CCL5: GET PARSE-RESULT,1 + PRINTB STACK +?CND3: EQUAL? STR,STR?106 \?CCL8 + PRINTI " in that " + ICALL2 RT-PRINT-DESC,INTDIR + JUMP ?CND6 +?CCL8: ZERO? OBJ /?CND6 + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE +?CND6: PRINTR ".]" + + + .FUNCT RT-YOU-CANT-MSG:ANY:0:3,STR,WHILE,STR1 + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTC 91 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't " + ZERO? STR \?CCL3 + GET PARSE-RESULT,1 + PRINTB STACK + JUMP ?CND1 +?CCL3: PRINT STR +?CND1: EQUAL? STR,STR?106 \?CCL6 + PRINTI " in that " + ICALL2 RT-PRINT-DESC,INTDIR + JUMP ?CND4 +?CCL6: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + ZERO? STR1 /?CND4 + PRINTI " while" + ZERO? WHILE /?CCL11 + ICALL RT-PRINT-OBJ,WHILE,K-ART-HE,FALSE-VALUE,STR?56 + JUMP ?CND9 +?CCL11: ICALL RT-PRINT-OBJ,PRSO,K-ART-HE,FALSE-VALUE,STR?56 +?CND9: PRINTC 32 + PRINT STR1 +?CND4: PRINTR ".]" + + + .FUNCT HAR-HAR:ANY:0:0 + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTR "[You can't be serious.]" + + + .FUNCT RT-IMPOSSIBLE-MSG:ANY:0:0 + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTR "[That's impossible.]" + + + .FUNCT WONT-HELP:ANY:0:0 + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTR "[That would be a waste of time.]" + + + .FUNCT PICK-ONE:ANY:1:1,TBL + GET TBL,0 + RANDOM STACK + GET TBL,STACK + RSTACK + + + .FUNCT GLOBAL-IN?:ANY:2:2,OBJ1,OBJ2,TBL + EQUAL? OBJ1,OBJ2 /TRUE + GETPT OBJ2,P?GLOBAL >TBL + ZERO? TBL /FALSE + PTSIZE TBL + DIV STACK,2 + INTBL? OBJ1,TBL,STACK /?CND1 +?CND1: RSTACK + + + .FUNCT RT-FIRST-YOU-MSG:ANY:1:3,STR,OBJ,OBJ2 + PRINTC 91 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR + ZERO? OBJ /?CND1 + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE + ZERO? OBJ2 /?CND1 + IN? OBJ2,ROOMS /?CND1 + PRINTI " from" + ICALL RT-PRINT-OBJ,OBJ2,K-ART-THE +?CND1: PRINTR " first.]" + + + .FUNCT RT-SEE-INSIDE?:ANY:1:2,OBJ,ONLY-IN + IN? OBJ,ROOMS /TRUE + FSET? OBJ,FL-TRANSPARENT /TRUE + FSET? OBJ,FL-OPEN /TRUE + ZERO? ONLY-IN \FALSE + FSET? OBJ,FL-SURFACE /TRUE + RFALSE + + + .FUNCT RT-SEE-ANYTHING-IN?:ANY:1:1,CONT,OBJ + FIRST? CONT >OBJ /?PRG2 +?PRG2: ZERO? OBJ /FALSE + FSET? OBJ,FL-INVISIBLE /?CND7 + FSET? OBJ,FL-NO-DESC /?CND7 + EQUAL? OBJ,WINNER \TRUE +?CND7: NEXT? OBJ >OBJ /?PRG2 + JUMP ?PRG2 + + + .FUNCT RT-MOVE-ALL:ANY:1:2,FROM,TO,NXT,OBJ,CNT + FIRST? FROM >OBJ /?PRG2 +?PRG2: ZERO? OBJ \?CCL6 + RETURN CNT +?CCL6: NEXT? OBJ >NXT /?BOGUS7 +?BOGUS7: FCLEAR OBJ,FL-WORN + ZERO? TO /?CCL10 + MOVE OBJ,TO + JUMP ?CND8 +?CCL10: REMOVE OBJ +?CND8: INC 'CNT + SET 'OBJ,NXT + JUMP ?PRG2 + + + .FUNCT RT-MOVE-ALL-BUT-WORN:ANY:1:2,FROM,TO,NXT,OBJ,CNT + FIRST? FROM >OBJ /?PRG2 +?PRG2: ZERO? OBJ \?CCL6 + RETURN CNT +?CCL6: NEXT? OBJ >NXT /?BOGUS7 +?BOGUS7: FSET? OBJ,FL-WORN /?CND8 + ZERO? TO /?CCL12 + MOVE OBJ,TO + JUMP ?CND10 +?CCL12: REMOVE OBJ +?CND10: INC 'CNT +?CND8: SET 'OBJ,NXT + JUMP ?PRG2 + + + .FUNCT RT-MOVE-ALL-WORN:ANY:1:2,FROM,TO,NXT,OBJ,CNT + FIRST? FROM >OBJ /?PRG2 +?PRG2: ZERO? OBJ \?CCL6 + RETURN CNT +?CCL6: NEXT? OBJ >NXT /?BOGUS7 +?BOGUS7: FSET? OBJ,FL-WORN \?CND8 + ZERO? TO /?CCL12 + MOVE OBJ,TO + JUMP ?CND10 +?CCL12: REMOVE OBJ +?CND10: INC 'CNT +?CND8: SET 'OBJ,NXT + JUMP ?PRG2 + + + .FUNCT RT-NOT-LIKELY-MSG:ANY:2:2,OBJ,STR + PRINTI "It " + CALL2 RT-PICK-NEXT,K-NOT-LIKELY-TBL + PRINT STACK + PRINTI " that" + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE + PRINTC 32 + PRINT STR + PRINTR "." + + + .FUNCT RT-NO-POINT-MSG:ANY:2:2,STR,OBJ + PRINT STR + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE + PRINTI " would " + CALL2 RT-PICK-NEXT,K-NO-POINT-TBL + PRINT STACK + PRINTR "." + + + .FUNCT RT-PICK-NEXT:ANY:1:1,TBL,CNT,STR,NT + GETB TBL,0 >CNT + ADD TBL,1 + GET STACK,0 >NT + GET NT,CNT >STR + GET NT,0 + IGRTR? 'CNT,STACK \?CND1 + SET 'CNT,1 +?CND1: PUTB TBL,0,CNT + RETURN STR + + + .FUNCT RT-NO-RESPONSE-MSG:ANY:0:1,OBJ + ZERO? OBJ \?CND1 + SET 'OBJ,PRSO +?CND1: EQUAL? OBJ,ROOMS \?CND3 + SET 'OBJ,WINNER +?CND3: EQUAL? OBJ,CH-PLAYER \?CCL7 + CALL FIND-FLAG,HERE,FL-PERSON,CH-PLAYER >OBJ + ZERO? OBJ \?CCL7 + PRINT K-TALK-TO-SELF-MSG + CRLF + RTRUE +?CCL7: FSET? OBJ,FL-ASLEEP \?CCL11 + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR " in no condition to respond." +?CCL11: ICALL RT-PRINT-OBJ,OBJ,K-ART-THE,TRUE-VALUE,STR?66 + PRINTR "n't respond." + + + .FUNCT RT-FOOLISH-TO-TALK?:ANY:0:0 + EQUAL? PRSO,FALSE-VALUE,ROOMS /FALSE + FSET? PRSO,FL-ALIVE /?CCL5 + CALL1 RT-NO-RESPONSE-MSG + RSTACK +?CCL5: EQUAL? PRSO,CH-PLAYER,PRSI,WINNER \?CCL7 + CALL1 RT-WASTE-OF-TIME-MSG + RSTACK +?CCL7: ICALL2 THIS-IS-IT,PRSO + RFALSE + + + .FUNCT RT-WASTE-OF-TIME-MSG:ANY:0:0 + PRINTR "[That would be a waste of time.]" + + + .FUNCT V-$P:ANY:0:0 + PICINF P-NUMBER,K-WIN-TBL \?CCL3 + ZERO? P-NUMBER \?CCL6 + PRINTI "Last picture number is " + GET K-WIN-TBL,0 + PRINTN STACK + PRINTR "." +?CCL6: GET K-WIN-TBL,0 + PRINTN STACK + PRINTC 120 + GET K-WIN-TBL,1 + PRINTN STACK + CRLF + RTRUE +?CCL3: PRINTR "No such picture." + + + .FUNCT RT-CENTER-PIC:ANY:1:1,N,X,Y,?TMP1 + PICINF N,K-WIN-TBL /?BOGUS1 +?BOGUS1: WINGET -3,K-W-YSIZE >?TMP1 + GET K-WIN-TBL,0 + SUB ?TMP1,STACK + DIV STACK,2 + ADD STACK,1 >Y + WINGET -3,K-W-XSIZE >?TMP1 + GET K-WIN-TBL,1 + SUB ?TMP1,STACK + DIV STACK,2 + ADD STACK,1 >X + DISPLAY N,Y,X + RTRUE + + + .FUNCT V-$D:ANY:0:0 + GRTR? P-NUMBER,0 \?CCL3 + PICINF P-NUMBER,K-WIN-TBL \?CCL3 + SCREEN 7 + CLEAR 7 + ICALL2 RT-CENTER-PIC,P-NUMBER + INPUT 1 + SCREEN 0 + CALL2 V-$REFRESH,FALSE-VALUE + RSTACK +?CCL3: PRINTR "No such picture." + + + .FUNCT V-$SHOW:ANY:0:0,P,N,C + PICINF 0,K-WIN-TBL /?BOGUS1 +?BOGUS1: GET K-WIN-TBL,0 >N + SET 'P,0 +?PRG2: PICINF P,K-WIN-TBL \?PRG2 + SCREEN 7 + CLEAR 7 + CURSET 1,1 + PRINTI "Picture #" + PRINTN P + PRINTI ". [Q]uit, [+F] to advance, [-B] to back up. +" + ICALL2 RT-CENTER-PIC,P + INPUT 1 >C + EQUAL? C,113,81 \?CCL8 + SCREEN 0 + ICALL2 V-$REFRESH,FALSE-VALUE + RTRUE +?CCL8: EQUAL? C,45,98,66 \?CCL10 + DLESS? 'P,1 \?PRG2 + SET 'P,N + JUMP ?PRG2 +?CCL10: IGRTR? 'P,N \?PRG2 + SET 'P,1 + JUMP ?PRG2 + + + .FUNCT V-$W:ANY:0:0,WIN,A,TMP + SET 'WIN,P-NUMBER + LESS? WIN,0 /?CCL2 + GRTR? WIN,7 \?CND1 +?CCL2: PRINTR "No such window." +?CND1: PRINTC 35 + PRINTN WIN + PRINTI " at " + WINGET WIN,K-W-YPOS + PRINTN STACK + PRINTC 44 + WINGET WIN,K-W-XPOS + PRINTN STACK + PRINTI "; size " + WINGET WIN,K-W-YSIZE + PRINTN STACK + PRINTC 120 + WINGET WIN,K-W-XSIZE + PRINTN STACK + WINGET WIN,K-W-LMARG + ZERO? STACK \?CCL6 + WINGET WIN,K-W-RMARG + ZERO? STACK /?CND5 +?CCL6: PRINTI " ( ->" + WINGET WIN,K-W-LMARG + PRINTN STACK + PRINTC 44 + WINGET WIN,K-W-RMARG + PRINTN STACK + PRINTI "<- )" +?CND5: WINGET WIN,K-W-HLIGHT >TMP + ZERO? TMP /?CND9 + PRINTI "; HL=" + PRINTN TMP +?CND9: WINGET WIN,K-W-COLOR >TMP + EQUAL? TMP,257 /?CND11 + PRINTI "; C=" + SHIFT TMP,-8 + PRINTN STACK + PRINTC 44 + BAND TMP,255 + PRINTN STACK +?CND11: WINGET WIN,K-W-FONT >TMP + ZERO? TMP /?CND13 + PRINTI "; F=" + PRINTN TMP +?CND13: WINGET WIN,K-W-FONTSIZE >TMP + PRINTI "; " + SHIFT TMP,-8 + EQUAL? STACK,GL-FONT-Y \?CCL16 + BAND TMP,255 + EQUAL? STACK,GL-FONT-X /?CND15 +?CCL16: PRINTC 42 +?CND15: PRINTI "FS=" + SHIFT TMP,-8 + PRINTN STACK + PRINTC 120 + BAND TMP,255 + PRINTN STACK + PRINTI "; cursor " + WINGET WIN,K-W-YCURPOS + PRINTN STACK + PRINTC 44 + WINGET WIN,K-W-XCURPOS + PRINTN STACK + PRINTI "; line " + WINGET WIN,K-W-MORE + PRINTN STACK + WINGET WIN,K-W-CRCNT >TMP + ZERO? TMP /?CND19 + WINGET WIN,K-W-CRFCN + ZERO? STACK /?CND19 + PRINTI "; CR=" + PRINTN TMP +?CND19: PRINTI "; " + WINGET WIN,K-W-ATTR >A + BTST A,1 /?CCL25 + PRINTC 45 + JUMP ?CND23 +?CCL25: PRINTC 43 +?CND23: PRINTI "W," + BTST A,2 /?CCL28 + PRINTC 45 + JUMP ?CND26 +?CCL28: PRINTC 43 +?CND26: PRINTI "S," + BTST A,4 /?CCL31 + PRINTC 45 + JUMP ?CND29 +?CCL31: PRINTC 43 +?CND29: PRINTI "P," + BTST A,8 /?CCL34 + PRINTC 45 + JUMP ?CND32 +?CCL34: PRINTC 43 +?CND32: PRINTR "B" + + .ENDI diff --git a/util.zil b/util.zil new file mode 100644 index 0000000..b11a8cb --- /dev/null +++ b/util.zil @@ -0,0 +1,1569 @@ +;"***************************************************************************" +; "game : Arthur" +; "file : UTIL.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:44:10 $" +; "revs : $Revision: 1.14 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Utility routines" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + +;>> + + ) + (T + + .I>> + ) + > + > + +> + +;>> + + ) + (T + > + + + 1>> + + ) + > + > + ) + > + > +> + +; + > + ) + (T + ,GL-FONT-X>> + ) + > + > + > + > + + + ) + (T + + ) + > + > + + + 1>>> + > + ) + ( + >> + + ) + (T + + 1>>> + > + ) + > + > + ) + > + >> + > + > .CNT> + > + + + + + <- .N>> + ) + > + ) + > + ) + ( + > + >> + + + <- .N>> + ) + > + + ) + (T + > + >> + .CNT> + ) + > + + >> + + + + ) + > + > +> + +%> +% + + + ) + > + + > +> + +%> +% + + + + ) + ( ,LOCAL-GLOBALS ,GLOBAL-OBJECTS <>> + + + ) + (T + > + ) + > + > + > +> + + + > " Interpreter version " +N "." N CR +"Release " N *3777*> " / Serial Number " + > + + + +> + + +> + + + + + <> BYTE> + BYTE> + BYTE> + + + + + ,MACINTOSH> + ; "Color?" + + ) + (T + + ) + > + ) + > + + > + + ) + > + ) + > + + + " text on a " + " background. Is that what you want?|" + > + + + ) + > + ,MACINTOSH> + > ; "Not color?" + > + + + + ) + (T + + + ) + > + + ) + > + " + > + > + + ) + (T + + + + ) + > + > + + + + + + ) + > + > + +> + + ,MACINTOSH> + > ;"b&w Mac" + > + + + + ) + (T + + + ) + > + ) + (T + > + > + ) + > +> + +) "AUX" CHAR) + "." CR + > + + WHITE 5 --> YELLOW" CR +" 2 --> BLACK 6 --> BLUE" CR +" 3 --> RED 7 --> MAGENTA" CR +" 4 --> GREEN 8 --> CYAN" CR + > + + " + > + > + ) + (T + > + ) + > + > ; "convert from ASCII" + ; "white is really 9, not 1" + + ) + > + + + + > + " + > + ) + (T + + ) + > + ) + (T + "> + ) + > + > + + + +> + + + + +> + + + + ) + > +> + +"> + ) + > + > + ) + (T + > + ) + > + + + + + + ) + (T + + ) + > + ) + (T + + ) + > + + ) + > + > +> + + +; + + ) + > +> + +> + 1>> + > + ) + > + ) + > + > + 1>> + > + ) + > + ) + > +> + +> + + + ) + > + + + + ) + (T + + ) + > + + 1>> + + ) + > + + + ) + > + + + ) + > +> + +> + + + + ) + > +> + + BYTE> + + + 1>> + + ) + > + +> + + + + > + > + > + ) + > + + + > + > + > + ) + > + > + > + ) + > + + + > + > + > + ) + > + + + + + ) + (T + > + + + + + ) + > + + ) + (T + > + ; + ) + > + + ; "ou're so cold you can hardly move"> + + ) + ( + ; "he cold is creeping into your bones"> + + ) + ( + ; "ou are shivering"> + + ) + ( + ; "ou're so hot you can hardly move and your breathing is +dangerously fast" + > + + ) + ( + + ) + ( + ; "ou are sweating"> + + ) + > + ) + > + > + + + + + ) + > + + ) + (T + > + + ) + > + + "our peripheral vision has disappeared"> + ) + ( + "he colors around you seem faded"> + ) + ( + "ou have a headache"> + ) + ( + "our stomach muscles are tight and you feel an urge to vomit" + > + ) + ( + "ou feel nauseous"> + ) + ( + "ou have a twitch in your lower lip"> + ) + > + ) + > + > + + + + + ) + > + + ) + (T + > + + ) + > + + "he muscles in your arm are spasming"> + ) + ( + "our chest muscles ache"> + ) + ( + "ou feel a little short of breath"> + ) + > + ) + > + > + + + + + ) + > + + ) + (T + > + + ) + > + + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + ( + + ) + > + ) + > + ) + > + +> + + + + + > + ) + > + ) + > + ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( + > + <>> + + > + ) + ( + <>> + + 0> + + <>> + ) + > + ) + (T + <>> + + 0> + + <>> + ) + > + ) + > +> + +) (REPEAT <>) "AUX" VAL) + + + + ) + > + + + ) + (T + + ) + > + + + ) + > + ; + + "> + + ) + (YZIP + + ) + > + > + + + ) + ; (T + + ) + > + > + > + + > + + + ) + ( + + + ) + ( + + + ) + ( + + + + ) + (T + + ) + > + ) + ; ( + + + ) + (T + + + ) + > + + ) + > + > + > +> + + + ) + (T + + ) + > +> + +;> + + + ) + (> + > + > + + ) + (T + > + ) + > + > +> + +> + > + > + + > + + + > + > + + ) + ( + + ) + > + > + ) + > +> + +) (NOT2 <>) "AUX" OBJ) + > + + + ) + ( + > + > + > + + ) + (T + > + ) + > + > +> + +)) + + + + ) + > + +> + +> + + + ) + ( + + ) + (T + > + ) + > + > +> + +) (OBJ <>)) + + + ) + > + + + + ) + (T + ; + > + ) + > + + + ) + (.OBJ + + ) + > + +> + +) (WHILE <>) (STR1 <>)) + + + + ; + > + ) + (T + + ) + > + + + ) + (T + + + + ) + (T + + ) + > + + ) + > + ) + > + +> + + + +> + + + +> + + + +> + +>> +> + + + + ) + (> + 2>> + ) + > +> + +) (OBJ2 <>)) + + + + > + > + + ) + > + ) + > + +> + +)) + + ;"for LIT? - PLAYER" + ) + ( + + ) + ( + + ) + ( + + ) + (.ONLY-IN + + ) + ( + + ) + > +> + +> + > + > + > + > + + ) + > + > + ) + (T + + ) + > + > +> + +) "AUX" NXT OBJ (CNT 0)) + > + + + ) + (T + > + + + ) + (T + + ) + > + + + ) + > + > + +> + +) "AUX" NXT OBJ (CNT 0)) + > + + + ) + (T + > + > + + ) + (T + + ) + > + + ) + > + + ) + > + > + +> + +) "AUX" NXT OBJ (CNT 0)) + > + + + ) + (T + > + + + ) + (T + + ) + > + + ) + > + + ) + > + > + +> + + +
+ > +> + + " that" the .OBJ " " .STR "." CR + > +> + + +
+ > +> + + "." CR> +> + + +
+ > +> + +> + 0>> + > + > > + + ) + > + + +> + + + + +)) + + + ) + > + + + ) + > + + >> + > + + ) + ( + + ) + (T + + ) + > +> + + ,ROOMS> + + ) + (> + + ) + ( + + ) + (T + + + ) + > +> + + +> + + + +%> +% + + "." CR> + ) + (T + "x" N CR> + ) + > + ) + (T + + ) + > + > +> + + + > 2> 1>> + > 2> 1>> + + +> + +%> +% + + > + + + + + + > + ) + (T + + ) + > + > +> + +%> +% + > + + + + + + + + > + + + > + + ) + ( + + + ) + > + ) + (T + + + ) + > + ) + > + ) + > + > + > +> + +%> +% + + + > + + + ) + > + "," N +"; size " N "x" N + > + + + > + " N "," N "<- )" + > + ) + > + > + > + ) + > + > 0>> + + ,GL-FONT-Y>> + ,GL-FONT-X>> + > + + ) + > + > + "," N +"; line " N + > + > + + > + + > + > + + ) + (T + + ) + > + + > + + ) + (T + + ) + > + + > + + ) + (ELSE + + ) + > + + > + + ) + (ELSE + + ) + > + + > +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" + diff --git a/verbs.zabstr b/verbs.zabstr new file mode 100644 index 0000000..76cb0af --- /dev/null +++ b/verbs.zabstr @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + +> +> +> +> +> + + +> + + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/verbs.zap b/verbs.zap new file mode 100644 index 0000000..f3df13b --- /dev/null +++ b/verbs.zap @@ -0,0 +1,1864 @@ + + + .FUNCT V-DESC-LEVEL:ANY:0:0 + PRINTC 91 + EQUAL? P-PRSA-WORD,W?SUPER,W?SUPERBRIEF \?CCL3 + PRINTI "Super brief is not supported" + JUMP ?CND1 +?CCL3: EQUAL? P-PRSA-WORD,W?BRIEF \?CCL6 + SET 'VERBOSITY,1 + PRINTI "Brief" + JUMP ?CND4 +?CCL6: SET 'VERBOSITY,2 + PRINTI "Verbose" +?CND4: PRINTI " descriptions" +?CND1: PRINTR ".]" + + + .FUNCT V-SCRIPT:ANY:0:0 + EQUAL? P-PRSA-WORD,W?SCRIPT \?CCL3 + DIROUT K-D-PRT-ON + PRINTR "Transcript: Begin" +?CCL3: PRINTI "Transcript: End" + CRLF + DIROUT K-D-PRT-OFF + RTRUE + + + .FUNCT V-VERIFY:ANY:0:0 + ZERO? PRSO /?CCL3 + EQUAL? PRSO,INTNUM \?CCL6 + EQUAL? P-NUMBER,105 \?CCL6 + PRINTN SERIAL + CRLF + RTRUE +?CCL6: CALL1 DONT-UNDERSTAND + RSTACK +?CCL3: PRINTI "[Verifying... " + VERIFY \?CCL11 + PRINTI "Correct" + JUMP ?CND9 +?CCL11: PRINTI "Error" +?CND9: PRINTI ".]" + CRLF + RETURN 2 + + + .FUNCT V-COMMAND:ANY:0:0 + DIRIN 1 + RTRUE + + + .FUNCT V-RECORD:ANY:0:0 + DIROUT D-RECORD-ON + RTRUE + + + .FUNCT V-UNRECORD:ANY:0:0 + DIROUT D-RECORD-OFF + RTRUE + + + .FUNCT V-INVENTORY:ANY:0:0 + ICALL RT-MOVE-ALL-WORN,WINNER,PSEUDO-OBJECT + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI " holding" + CALL RT-PRINT-CONTENTS,WINNER,TRUE-VALUE + ZERO? STACK \?CND1 + PRINTI " nothing" +?CND1: CALL2 RT-SEE-ANYTHING-IN?,PSEUDO-OBJECT + ZERO? STACK /?CND3 + PRINTI ". " + ICALL RT-PRINT-OBJ,WINNER,K-ART-HE,TRUE-VALUE,STR?56 + PRINTI " wearing" + ICALL2 RT-PRINT-CONTENTS,PSEUDO-OBJECT + ICALL RT-MOVE-ALL-WORN,PSEUDO-OBJECT,WINNER +?CND3: PRINTR "." + + + .FUNCT V-QUIT:ANY:0:1,ASK? + ASSIGNED? 'ASK? /?CND1 + SET 'ASK?,TRUE-VALUE +?CND1: ZERO? ASK? /?CCL5 + PRINTI "Are you sure you want to quit? +" + CALL1 Y? + ZERO? STACK /?CCL8 + QUIT + RTRUE +?CCL8: PRINTR "Continuing..." +?CCL5: QUIT + RTRUE + + + .FUNCT RT-FAILED-MSG:ANY:1:1,STR + PRINTC 91 + PRINT STR + PRINTR " failed.]" + + + .FUNCT V-RESTART:ANY:0:0 + RESTART + CALL2 RT-FAILED-MSG,STR?74 + RSTACK + + + .FUNCT V-SAVE:ANY:0:0,X + PUTB G-INBUF,1,0 + SET 'P-CONT,FALSE-VALUE + SAVE >X + EQUAL? X,2 /?CCL2 + GET 0,8 + BTST STACK,4 \?CND1 +?CCL2: COLOR GL-F-COLOR,GL-B-COLOR + EQUAL? X,2 /?PRD5 + PUSH 0 + JUMP ?PRD6 +?PRD5: PUSH 1 +?PRD6: ICALL2 V-$REFRESH,STACK +?CND1: ZERO? X \?CCL9 + ICALL2 RT-FAILED-MSG,STR?75 + RETURN 2 +?CCL9: PRINTI "[Okay.]" + CRLF + RETURN 2 + + + .FUNCT V-RESTORE:ANY:0:0 + RESTORE + ZERO? STACK \FALSE + ICALL2 RT-FAILED-MSG,STR?76 + RFALSE + + + .FUNCT RT-PRINT-CONTENTS:ANY:1:3,CONT,RECUR?,CNT,OBJ,1ST? + SET '1ST?,TRUE-VALUE + FIRST? CONT >OBJ /?BOGUS1 +?BOGUS1: ZERO? OBJ \?PRG4 + RETURN CNT +?PRG4: ZERO? OBJ /?REP5 + FSET? OBJ,FL-INVISIBLE /?CND6 + FSET? OBJ,FL-NO-DESC /?CND6 + EQUAL? OBJ,WINNER /?CND6 + ZERO? 1ST? /?CCL15 + INC 'CNT + SET '1ST?,FALSE-VALUE + JUMP ?CND13 +?CCL15: NEXT? OBJ /?BOGUS16 +?BOGUS16: ICALL2 RT-COMMA-MSG,STACK +?CND13: ICALL RT-PRINT-OBJ,OBJ,K-ART-A + ICALL2 THIS-IS-IT,OBJ + FSET OBJ,FL-SEEN +?CND6: NEXT? OBJ >OBJ /?PRG4 + JUMP ?PRG4 +?REP5: ZERO? RECUR? \?CCL19 + RETURN CNT +?CCL19: FIRST? CONT >OBJ /?PRG21 +?PRG21: ZERO? OBJ \?CCL25 + RETURN CNT +?CCL25: FSET? OBJ,FL-INVISIBLE /?CND23 + FSET? OBJ,FL-NO-DESC /?CND23 + EQUAL? OBJ,WINNER /?CND23 + FSET? OBJ,FL-SURFACE /?CCL30 + FSET? OBJ,FL-CONTAINER \?CND23 + FSET? OBJ,FL-OPEN /?CCL30 + FSET? OBJ,FL-TRANSPARENT \?CND23 +?CCL30: CALL2 RT-SEE-ANYTHING-IN?,OBJ + ZERO? STACK /?CND23 + PRINTI ". " + ICALL RT-IN-ON-MSG,OBJ,TRUE-VALUE + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,FALSE-VALUE,STR?77 + CALL RT-PRINT-CONTENTS,OBJ,TRUE-VALUE,CNT >CNT +?CND23: NEXT? OBJ >OBJ /?PRG21 + JUMP ?PRG21 + + + .FUNCT RT-DESCRIBE-OBJECTS:ANY:0:3,CONT,CNT,LVL,OBJ,NXT,1ST?,P-CNT,P-PL? + ASSIGNED? 'CONT /?CND1 + SET 'CONT,HERE +?CND1: SET '1ST?,TRUE-VALUE + FIRST? CONT >OBJ /?PRG4 +?PRG4: ZERO? OBJ /?REP5 + FSET? OBJ,FL-NO-DESC /?CTR9 + FSET? OBJ,FL-INVISIBLE \?CCL10 +?CTR9: NEXT? OBJ >OBJ /?PRG4 + JUMP ?PRG4 +?CCL10: FSET? OBJ,FL-PERSON \?CCL15 + INC 'P-CNT + NEXT? OBJ >OBJ /?PRG4 + JUMP ?PRG4 +?CCL15: ZERO? 1ST? /?CND6 + GRTR? CNT,0 \?CCL20 + PRINTC 32 + JUMP ?CND18 +?CCL20: PRINTC TAB +?CND18: SET '1ST?,FALSE-VALUE + IN? CONT,ROOMS \?CCL23 + PRINTC 89 + JUMP ?CND21 +?CCL23: ICALL RT-IN-ON-MSG,CONT,TRUE-VALUE + ICALL RT-PRINT-OBJ,CONT,K-ART-THE + PRINTI " y" +?CND21: PRINTI "ou see" +?CND6: ICALL RT-PRINT-OBJ,OBJ,K-ART-A + ICALL2 THIS-IS-IT,OBJ + FSET OBJ,FL-SEEN + INC 'CNT + NEXT? OBJ >OBJ /?PRG25 +?PRG25: ZERO? OBJ /?REP26 + FSET? OBJ,FL-NO-DESC /?CND27 + FSET? OBJ,FL-INVISIBLE /?CND27 + FSET? OBJ,FL-PERSON \?REP26 + INC 'P-CNT +?CND27: NEXT? OBJ >OBJ /?PRG25 + JUMP ?PRG25 +?REP26: ZERO? OBJ /?CCL37 + NEXT? OBJ >NXT /?PRG39 +?PRG39: ZERO? NXT /?REP40 + FSET? NXT,FL-NO-DESC /?CND41 + FSET? NXT,FL-INVISIBLE /?CND41 + FSET? NXT,FL-PERSON \?REP40 +?CND41: NEXT? NXT >NXT /?PRG39 + JUMP ?PRG39 +?REP40: ZERO? NXT \?CCL51 + PRINTI " and" + JUMP ?PRG4 +?CCL51: PRINTC 44 + JUMP ?PRG4 +?CCL37: IN? CONT,ROOMS \?CND52 + PRINTI " here" +?CND52: PRINTC 46 + JUMP ?PRG4 +?REP5: GRTR? P-CNT,0 \?CND54 + GRTR? CNT,0 \?CCL58 + PRINTC 32 + JUMP ?CND56 +?CCL58: PRINTC TAB +?CND56: ADD CNT,P-CNT >CNT + GRTR? P-CNT,1 \?CND59 + SET 'P-PL?,TRUE-VALUE +?CND59: FIRST? CONT >OBJ /?BOGUS61 +?BOGUS61: SET '1ST?,TRUE-VALUE +?PRG62: FSET? OBJ,FL-NO-DESC /?CND64 + FSET? OBJ,FL-INVISIBLE /?CND64 + FSET? OBJ,FL-PERSON \?CND64 + ZERO? 1ST? /?CCL71 + ICALL RT-PRINT-OBJ,OBJ,K-ART-A,TRUE-VALUE + JUMP ?CND69 +?CCL71: ICALL RT-PRINT-OBJ,OBJ,K-ART-A +?CND69: SET '1ST?,FALSE-VALUE + FSET? OBJ,FL-PLURAL \?CND72 + SET 'P-PL?,TRUE-VALUE +?CND72: DLESS? 'P-CNT,1 \?CCL76 + ZERO? P-PL? /?CCL79 + PRINTI " are" + JUMP ?CND77 +?CCL79: PRINTI " is" +?CND77: PRINTI " here." +?CND54: FIRST? CONT >OBJ /?PRG84 +?PRG84: ZERO? OBJ /?REP85 + FSET? OBJ,FL-INVISIBLE /?CND86 + FSET? OBJ,FL-SURFACE /?CCL90 + FSET? OBJ,FL-CONTAINER \?CND86 + FSET? OBJ,FL-TRANSPARENT \?CND86 +?CCL90: ADD LVL,1 + CALL RT-DESCRIBE-OBJECTS,OBJ,CNT,STACK >CNT +?CND86: NEXT? OBJ >OBJ /?PRG84 + JUMP ?PRG84 +?CCL76: EQUAL? P-CNT,1 \?CCL81 + PRINTI " and" + JUMP ?CND64 +?CCL81: PRINTC 44 +?CND64: NEXT? OBJ >OBJ /?PRG62 + JUMP ?PRG62 +?REP85: ZERO? LVL /?CCL97 + RETURN CNT +?CCL97: GRTR? CNT,0 /?CCL99 + RETURN CNT +?CCL99: CRLF + RETURN CNT + + + .FUNCT RT-DESCRIBE-ROOM:ANY:0:1,LOOK?,VAL,P + ZERO? LIT \?CCL3 + PRINT K-TOO-DARK-MSG + CRLF + FSET HERE,FL-TOUCHED + RFALSE +?CCL3: EQUAL? LIT,HERE,CH-PLAYER /?CND1 + PRINTC TAB + PRINTI "Light comes from" + ICALL RT-PRINT-OBJ,LIT,K-ART-THE + PRINTI ". +" +?CND1: GETP HERE,P?ACTION >P + ZERO? P /?CND5 + ZERO? LOOK? /?CCL9 + CALL P,M-LOOK >VAL + JUMP ?CND5 +?CCL9: FSET? HERE,FL-TOUCHED /?CCL11 + CALL P,M-F-LOOK >VAL + JUMP ?CND5 +?CCL11: EQUAL? VERBOSITY,2 \?CCL13 + CALL P,M-V-LOOK >VAL + JUMP ?CND5 +?CCL13: CALL P,M-B-LOOK >VAL +?CND5: FSET HERE,FL-TOUCHED + FSET HERE,FL-SEEN + ZERO? VAL /TRUE + RFALSE + + + .FUNCT NOT-HOLDING?:ANY:1:1,OBJ + IN? OBJ,WINNER /FALSE + LOC OBJ + IN? STACK,WINNER /FALSE + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTC 91 + ICALL RT-PRINT-OBJ,WINNER,K-ART-HE,TRUE-VALUE,STR?56 + PRINTI "n't holding" + ICALL RT-PRINT-OBJ,OBJ,K-ART-HIM + PRINTR ".]" + + + .FUNCT HELD?:ANY:1:2,OBJ,CONT,L + ZERO? CONT \?PRG3 + SET 'CONT,PLAYER +?PRG3: LOC OBJ >L + ZERO? L /FALSE + EQUAL? L,CONT /TRUE + EQUAL? CONT,PLAYER,WINNER \?CCL11 + SET 'OBJ,L + JUMP ?PRG3 +?CCL11: EQUAL? L,ROOMS,GLOBAL-OBJECTS /FALSE + SET 'OBJ,L + JUMP ?PRG3 + + + .FUNCT TOO-DARK:ANY:0:0 + PRINTR "It's too dark to see." + + + .FUNCT V-ASK-ABOUT:ANY:0:0 + CALL1 RT-NO-RESPONSE-MSG + RSTACK + + + .FUNCT V-ATTACH:ANY:0:0 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't attach" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTI " to" + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE + PRINTR "." + + + .FUNCT V-CLOSE:ANY:0:0 + FSET? PRSO,FL-OPENABLE /?CCL3 + CALL1 RT-YOU-CANT-MSG + RSTACK +?CCL3: FSET? PRSO,FL-OPEN \?CCL6 + FCLEAR PRSO,FL-OPEN + FSET? PRSO,FL-DOOR \?CND7 + ICALL2 RT-CHECK-ADJ,PRSO +?CND7: GRTR? P-MULT,1 \?CCL11 + PRINTI "Closed" + JUMP ?CND9 +?CCL11: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?78 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE +?CND9: PRINTR "." +?CCL6: CALL RT-ALREADY-MSG,PRSO,STR?79 + RSTACK + + + .FUNCT V-CUT:ANY:0:0 + PRINTC TAB + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't cut" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTI " with" + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE + PRINTR "." + + + .FUNCT IDROP:ANY:0:0 + CALL2 NOT-HOLDING?,PRSO + ZERO? STACK \FALSE + IN? PRSO,WINNER /?CCL5 + LOC PRSO + FSET? STACK,FL-OPEN /?CCL5 + LOC PRSO + ICALL RT-PRINT-OBJ,STACK,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI " closed." + CRLF + RFALSE +?CCL5: FSET? PRSO,FL-WORN \?CND8 + ICALL RT-FIRST-YOU-MSG,STR?80,PRSO +?CND8: MOVE PRSO,HERE + FCLEAR PRSO,FL-WORN + FCLEAR PRSO,FL-NO-DESC + FCLEAR PRSO,FL-INVISIBLE + RTRUE + + + .FUNCT V-DROP:ANY:0:0,L + CALL1 IDROP + ZERO? STACK /FALSE + GRTR? P-MULT,1 \?CCL6 + PRINTI "Dropped" + JUMP ?CND4 +?CCL6: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?81 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + CALL FIND-FLAG,HERE,FL-VEHICLE,PRSO >L + ZERO? L /?CND4 + MOVE PRSO,L + ICALL2 RT-IN-ON-MSG,L + PRINTI "to" + ICALL RT-PRINT-OBJ,L,K-ART-THE +?CND4: PRINTR "." + + + .FUNCT PRE-EMPTY:ANY:0:0,L + FSET? PRSO,FL-SURFACE /?CCL3 + FSET? PRSO,FL-CONTAINER /?CCL3 + LOC PRSO >L + ZERO? L /?CCL8 + FSET? L,FL-SURFACE /?CTR7 + FSET? L,FL-CONTAINER \?CCL8 +?CTR7: ICALL PERFORM,V?EMPTY,L,PRSI + RTRUE +?CCL8: CALL1 RT-YOU-CANT-MSG + RSTACK +?CCL3: FSET? PRSO,FL-CONTAINER \?CCL14 + FSET? PRSO,FL-OPEN /?CCL14 + FSET? PRSO,FL-OPENABLE \?CCL14 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR "n't open." +?CCL14: EQUAL? PRSI,FALSE-VALUE,ROOMS,TH-HANDS /FALSE + FSET? PRSI,FL-SURFACE /FALSE + FSET? PRSI,FL-CONTAINER /FALSE + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't empty" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTI " into" + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE + PRINTR "." + + + .FUNCT V-EMPTY:ANY:0:0 + CALL RT-EMPTY-MSG,PRSO,PRSI + RSTACK + + + .FUNCT RT-EMPTY-MSG:ANY:1:2,CONT,DEST,OBJ,NXT,X,OM + SET 'OM,P-MULT + SET 'P-MULT,0 + FIRST? CONT >OBJ /?PRG2 +?PRG2: ZERO? OBJ /?REP3 + FSET? OBJ,FL-INVISIBLE /?CND4 + FSET? OBJ,FL-TAKEABLE \?CND4 + INC 'P-MULT +?CND4: NEXT? OBJ >OBJ /?PRG2 + JUMP ?PRG2 +?REP3: ZERO? P-MULT \?CND11 + PRINTI "There is nothing" + ICALL2 RT-IN-ON-MSG,PRSO + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTC 46 + CRLF + SET 'P-MULT,OM + RTRUE +?CND11: FIRST? CONT >OBJ /?BOGUS13 +?BOGUS13: EQUAL? DEST,FALSE-VALUE,ROOMS,TH-GROUND /?CTR15 + EQUAL? DEST,GLOBAL-HERE \?CCL16 +?CTR15: SET 'DEST,HERE + JUMP ?PRG20 +?CCL16: EQUAL? DEST,TH-HANDS \?PRG20 + SET 'DEST,CH-PLAYER +?PRG20: ZERO? OBJ /?REP21 + FSET? OBJ,FL-INVISIBLE /?PRG20 + FSET? OBJ,FL-TAKEABLE \?PRG20 + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE,TRUE-VALUE + PRINTI ": " + NEXT? OBJ >NXT /?BOGUS28 +?BOGUS28: EQUAL? DEST,CH-PLAYER \?CCL31 + CALL PERFORM,V?TAKE,OBJ,PRSO >X + EQUAL? X,M-FATAL /?REP21 + JUMP ?CND29 +?CCL31: EQUAL? DEST,HERE \?CCL35 + MOVE OBJ,HERE + ICALL RT-PRINT-OBJ,OBJ,K-ART-HE,TRUE-VALUE,STR?82 + PRINTI " on" + ICALL RT-PRINT-OBJ,TH-GROUND,K-ART-THE + PRINTI " nearby." + CRLF + JUMP ?CND29 +?CCL35: CALL RT-ROOM-IN-MSG?,OBJ,DEST + ZERO? STACK \?CND29 + CALL RT-CHECK-MOVE-MSG?,OBJ,DEST + ZERO? STACK \?REP21 + MOVE OBJ,DEST + PRINTI "Done." + CRLF +?CND29: SET 'OBJ,NXT + JUMP ?PRG20 +?REP21: SET 'P-MULT,OM + RTRUE + + + .FUNCT V-EMPTY-FROM:ANY:0:0 + IN? PRSO,PRSI /?CCL3 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI "n't" + ICALL2 RT-IN-ON-MSG,PRSI + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE + PRINTR "." +?CCL3: ICALL PERFORM,V?EMPTY,PRSI + RTRUE + + + .FUNCT V-ENTER:ANY:0:0,VEH,DIR,RM + EQUAL? PRSO,ROOMS \?CCL3 + CALL FIND-FLAG,HERE,FL-VEHICLE >VEH + ZERO? VEH /?CCL6 + IN? WINNER,VEH \?CCL9 + ICALL2 RT-ALREADY-MSG,WINNER + ICALL2 RT-IN-ON-MSG,VEH + ICALL RT-PRINT-OBJ,VEH,K-ART-THE + PRINTR ".]" +?CCL9: FSET? VEH,FL-SURFACE /?CTR10 + FSET? VEH,FL-OPEN \?CCL11 +?CTR10: MOVE WINNER,VEH + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?83 + ICALL2 RT-IN-ON-MSG,VEH + ICALL RT-PRINT-OBJ,VEH,K-ART-THE + PRINTR "." +?CCL11: FSET? VEH,FL-OPENABLE \?CCL15 + ICALL RT-PRINT-OBJ,VEH,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR " closed." +?CCL15: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't get" + ICALL2 RT-IN-ON-MSG,VEH + ICALL RT-PRINT-OBJ,VEH,K-ART-THE + PRINTR "." +?CCL6: CALL2 RT-DO-WALK,P?IN + EQUAL? STACK,FALSE-VALUE,M-FATAL \TRUE + SET 'CLOCK-WAIT,TRUE-VALUE + RTRUE +?CCL3: EQUAL? PRSO,HERE,GLOBAL-HERE \?CCL18 + ICALL2 RT-ALREADY-MSG,WINNER + ICALL2 RT-IN-ON-MSG,HERE + ICALL RT-PRINT-OBJ,HERE,K-ART-THE + PRINTR ".]" +?CCL18: IN? PRSO,ROOMS \?CCL20 + CALL2 RT-FIND-DIR,PRSO >DIR + ZERO? DIR /?CCL22 + CALL2 RT-DO-WALK,DIR + ZERO? STACK \TRUE +?CCL22: FSET? PRSO,FL-AUTO-ENTER \?CCL26 + ICALL2 RT-GOTO,PRSO + RTRUE +?CCL26: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTR " can't get there from here." +?CCL20: FSET? PRSO,FL-DOOR \?CCL28 + CALL2 RT-OTHER-SIDE,PRSO + ZERO? STACK /?CCL31 + ICALL2 RT-DO-WALK,GL-DOOR-DIR + RTRUE +?CCL31: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?66 + PRINTR "n't seem to go anywhere." +?CCL28: FSET? PRSO,FL-VEHICLE \?CCL33 + FSET? PRSO,FL-SURFACE /?CTR35 + FSET? PRSO,FL-OPEN \?CCL36 +?CTR35: MOVE WINNER,PRSO + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?83 + ICALL2 RT-IN-ON-MSG,PRSO + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL36: FSET? PRSO,FL-OPENABLE \?CCL40 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR " closed." +?CCL40: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't get" + ICALL2 RT-IN-ON-MSG,PRSO + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL33: ICALL1 RT-IMPOSSIBLE-MSG + RTRUE + + + .FUNCT V-EXIT:ANY:0:0,VEH,L,DIR + EQUAL? PRSO,ROOMS \?CCL3 + LOC WINNER >L + IN? L,ROOMS \?CCL6 + ICALL2 RT-DO-WALK,P?OUT + RTRUE +?CCL6: FSET? L,FL-VEHICLE /?CTR7 + FSET? L,FL-SURFACE /?CTR7 + FSET? L,FL-CONTAINER \?CCL8 +?CTR7: FSET? L,FL-SURFACE /?CTR13 + FSET? L,FL-OPEN \?CCL14 +?CTR13: LOC L + MOVE WINNER,STACK + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?83 + ICALL2 RT-OUT-OFF-MSG,L + PRINTI " of" + ICALL RT-PRINT-OBJ,L,K-ART-THE + PRINTR "." +?CCL14: FSET? L,FL-OPENABLE \?CCL18 + ICALL RT-PRINT-OBJ,L,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR " closed." +?CCL18: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't get" + ICALL2 RT-OUT-OFF-MSG,L + PRINTI " of" + ICALL RT-PRINT-OBJ,L,K-ART-THE + PRINTR "." +?CCL8: CALL FIND-FLAG,HERE,FL-VEHICLE >VEH + ZERO? VEH /TRUE + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI "n't" + ICALL2 RT-IN-ON-MSG,VEH + ICALL RT-PRINT-OBJ,VEH,K-ART-THE + PRINTR "." +?CCL3: EQUAL? PRSO,HERE,GLOBAL-HERE \?CCL21 + ICALL2 RT-DO-WALK,P?OUT + RTRUE +?CCL21: IN? PRSO,ROOMS \?CCL23 + ICALL1 RT-NOT-IN-ROOM-MSG + RTRUE +?CCL23: FSET? PRSO,FL-DOOR \?CCL25 + CALL2 RT-OTHER-SIDE,PRSO + ZERO? STACK /?CCL28 + ICALL2 RT-DO-WALK,GL-DOOR-DIR + RTRUE +?CCL28: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?66 + PRINTR "n't seem to go anywhere." +?CCL25: FSET? PRSO,FL-VEHICLE /?CTR29 + FSET? PRSO,FL-CONTAINER /?CTR29 + FSET? PRSO,FL-SURFACE \?CCL30 +?CTR29: IN? WINNER,PRSO \?CCL36 + FSET? PRSO,FL-SURFACE /?CTR38 + FSET? PRSO,FL-OPEN \?CCL39 +?CTR38: LOC WINNER + LOC STACK + MOVE WINNER,STACK + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?83 + ICALL2 RT-OUT-OFF-MSG,PRSO + PRINTI " of" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL39: FSET? PRSO,FL-OPENABLE \?CCL43 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR " closed." +?CCL43: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't get" + ICALL2 RT-OUT-OFF-MSG,PRSO + PRINTI " of" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL36: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI "n't" + ICALL2 RT-IN-ON-MSG,PRSO + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL30: LOC PRSO >L + FSET? L,FL-CONTAINER \?CCL45 + PRINTI "[from" + ICALL RT-PRINT-OBJ,L,K-ART-THE + PRINTC 93 + CRLF + ICALL PERFORM,V?TAKE,PRSO + RTRUE +?CCL45: ICALL1 RT-IMPOSSIBLE-MSG + RTRUE + + + .FUNCT RT-NOT-IN-ROOM-MSG:ANY:0:0 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI "n't" + ICALL2 RT-IN-ON-MSG,PRSO + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." + + + .FUNCT RT-DO-WALK:ANY:1:3,DIR1,DIR2,DIR3,X + SET 'P-WALK-DIR,DIR1 + CALL PERFORM,V?WALK,DIR1 >X + ZERO? DIR2 \?PRD4 + RETURN X +?PRD4: EQUAL? X,FALSE-VALUE,M-FATAL /?CND1 + SET 'P-WALK-DIR,DIR2 + CALL PERFORM,V?WALK,DIR2 >X + ZERO? DIR3 \?PRD8 + RETURN X +?PRD8: EQUAL? X,FALSE-VALUE,M-FATAL /?CND1 + SET 'P-WALK-DIR,DIR3 + CALL PERFORM,V?WALK,DIR3 >X +?CND1: RETURN X + + + .FUNCT V-EXAMINE:ANY:0:0 + EQUAL? PRSO,HERE,GLOBAL-HERE \?CCL3 + CALL2 PERFORM,V?LOOK + RSTACK +?CCL3: EQUAL? PRSO,INTDIR \?CCL5 + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTR "[If you want to see what's there, go there.]" +?CCL5: FSET? PRSO,FL-DOOR \?CCL7 + FSET PRSO,FL-SEEN + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + ICALL2 RT-OPEN-MSG,PRSO + PRINTR "." +?CCL7: FSET? PRSO,FL-CONTAINER /?CTR8 + FSET? PRSO,FL-SURFACE \?CCL9 +?CTR8: FSET PRSO,FL-SEEN + CALL1 V-LOOK-IN + RSTACK +?CCL9: FSET PRSO,FL-SEEN + CALL1 RT-NOTHING-SPECIAL-MSG + RSTACK + + + .FUNCT RT-NOTHING-SPECIAL-MSG:ANY:0:0 + PRINTI "You see nothing " + CALL2 RT-PICK-NEXT,K-UNUSUAL-TBL + PRINT STACK + PRINTI " about" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." + + + .FUNCT V-EXTINGUISH:ANY:0:0 + PRINTI "['Extinguish' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-FOLLOW:ANY:0:0 + PRINTI "['Follow' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-GIVE:ANY:0:0 + PRINTC TAB + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE,TRUE-VALUE,STR?66 + PRINTI "n't seem interested in" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." + + + .FUNCT V-GIVE-SWP:ANY:0:0 + ICALL PERFORM,V?GIVE,PRSI,PRSO + RTRUE + + + .FUNCT V-HIT:ANY:0:0 + PRINTI "['Hit' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-INFLATE:ANY:0:0 + PRINT K-HOW-INTEND-MSG + CRLF + RTRUE + + + .FUNCT V-LIFT:ANY:0:0 + PRINTI "['Lift' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-LISTEN:ANY:0:0 + EQUAL? PRSO,FALSE-VALUE,ROOMS \?CCL3 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?85 + PRINTI "nothing " + CALL2 RT-PICK-NEXT,K-UNUSUAL-TBL + PRINT STACK + PRINTR "." +?CCL3: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR " silent." + + + .FUNCT V-LOCK:ANY:0:0 + FSET? PRSO,FL-LOCKED \?CCL3 + CALL RT-ALREADY-MSG,PRSO,STR?86 + RSTACK +?CCL3: CALL RT-MATCH-KEY,PRSO,PRSI + ZERO? STACK \?CCL5 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't lock" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTI " with" + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE + PRINTC 46 + CRLF + RTRUE +?CCL5: FSET PRSO,FL-LOCKED + FSET? PRSO,FL-OPEN \?CCL8 + FCLEAR PRSO,FL-OPEN + FSET? PRSO,FL-DOOR \?CND9 + ICALL2 RT-CHECK-ADJ,PRSO +?CND9: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?78 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTI " and" + ICALL RT-PRINT-VERB,WINNER,STR?87 + ICALL RT-PRINT-OBJ,PRSO,K-ART-HIM + PRINTR "." +?CCL8: ICALL RT-LOCK-MSG,PRSO,PRSI,TRUE-VALUE + PRINTR "." + + + .FUNCT V-LOOK:ANY:0:0 + CALL2 RT-DESCRIBE-ROOM,TRUE-VALUE + ZERO? STACK /TRUE + ICALL1 RT-DESCRIBE-OBJECTS + RTRUE + + + .FUNCT V-LOOK-BEHIND:ANY:0:0 + PRINTC TAB + PRINTI "You don't see anything " + CALL2 RT-PICK-NEXT,K-UNUSUAL-TBL + PRINT STACK + PRINTR "." + + + .FUNCT V-LOOK-UNDER:ANY:0:0 + PRINTC TAB + PRINTI "You don't see anything " + CALL2 RT-PICK-NEXT,K-UNUSUAL-TBL + PRINT STACK + PRINTR "." + + + .FUNCT V-LOOK-IN:ANY:0:1,DIR,RM + ASSIGNED? 'DIR /?CND1 + SET 'DIR,P?IN +?CND1: EQUAL? PRSO,ROOMS \?CND3 + SET 'RM,P-IT-OBJECT + FSET? RM,FL-CONTAINER /?CCL6 + CALL FIND-FLAG-LG,HERE,FL-OPENABLE >RM + ZERO? RM /?CND3 +?CCL6: ICALL PERFORM,PRSA,RM,PRSI + RTRUE +?CND3: FSET? PRSO,FL-OPEN /?CCL11 + FSET? PRSO,FL-OPENABLE \?CCL11 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR " closed." +?CCL11: FSET? PRSO,FL-CONTAINER /?PRD17 + FSET? PRSO,FL-SURFACE \?CCL15 +?PRD17: CALL2 RT-SEE-INSIDE?,PRSO + ZERO? STACK /?CCL15 + FIRST? PRSO \?CCL22 + PRINTI "You can see" + ICALL2 RT-PRINT-CONTENTS,PRSO + ICALL2 RT-IN-ON-MSG,PRSO + FSET? PRSO,FL-SURFACE /?CND23 + PRINTI "side" +?CND23: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL22: PRINTI "There's nothing" + ICALL2 RT-IN-ON-MSG,PRSO + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL15: EQUAL? DIR,P?IN \?CCL26 + CALL2 RT-YOU-CANT-MSG,STR?88 + RSTACK +?CCL26: CALL2 RT-YOU-CANT-MSG,STR?89 + RSTACK + + + .FUNCT TELL-CANT-FIND:ANY:0:0 + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTR "[That place isn't close enough.]" + + + .FUNCT V-LOOK-ON:ANY:0:0 + FSET? PRSO,FL-SURFACE \?CCL3 + CALL1 V-LOOK-IN + RSTACK +?CCL3: PRINTI "There's no good surface on" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." + + + .FUNCT V-MOVE:ANY:0:0 + PRINTI "['Move' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-NO:ANY:0:0 + PRINTI "[You seem sure of yourself.]" + CRLF + RETURN 2 + + + .FUNCT RT-MATCH-KEY:ANY:1:2,DOOR,KEY + EQUAL? DOOR,TH-STEEL-BOX \?CCL3 + EQUAL? KEY,TH-STEEL-KEY /TRUE + RFALSE +?CCL3: EQUAL? DOOR,TH-MISSILE-PANEL \FALSE + EQUAL? KEY,TH-MISSILE-ACCESS-KEY /TRUE + RFALSE + + + .FUNCT RT-OTHER-SIDE:ANY:1:1,DOOR,RM,L,P,OBJ,PT,PTS + LOC WINNER >L +?PRG1: NEXTP L,P >P + ZERO? P /FALSE + LESS? P,LOW-DIRECTION /FALSE + GETPT L,P >PT + ZERO? PT /?PRG1 + PTSIZE PT >PTS + EQUAL? PTS,DEXIT \?PRG1 + GET PT,DEXITOBJ + EQUAL? DOOR,STACK \?PRG1 + SET 'GL-DOOR-DIR,P + GET PT,REXIT >RM + RETURN RM + + + .FUNCT RT-LOCK-MSG:ANY:3:3,DOOR,KEY,LOCK? + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?90 + ICALL RT-PRINT-OBJ,KEY,K-ART-THE + PRINTI " in the lock and" + ICALL RT-PRINT-VERB,WINNER,STR?91 + PRINTI " it a turn" + ZERO? LOCK? /?CCL3 + PRINTI ". " + ICALL RT-PRINT-OBJ,DOOR,K-ART-THE,TRUE-VALUE + PRINTI " locks with" + JUMP ?CND1 +?CCL3: PRINTI ", and" + ICALL RT-PRINT-VERB,WINNER,STR?85 +?CND1: PRINTI " a satisfying click" + RTRUE + + + .FUNCT RT-OPEN-DOOR-MSG:ANY:1:2,DOOR,KEY,RM,LOCK?,TMP1,TMP2,?TMP1 + FSET? DOOR,FL-LOCKED \?CCL3 + SET 'LOCK?,TRUE-VALUE + FCLEAR DOOR,FL-LOCKED + ICALL RT-LOCK-MSG,DOOR,KEY,FALSE-VALUE + FSET? DOOR,FL-AUTO-OPEN /?CCL5 + EQUAL? PRSA,V?OPEN \?CND1 +?CCL5: FSET DOOR,FL-OPEN + FSET? DOOR,FL-DOOR \?CND8 + ICALL2 RT-CHECK-ADJ,DOOR +?CND8: PRINTI ". " + ICALL RT-PRINT-OBJ,DOOR,K-ART-THE,TRUE-VALUE,STR?92 + PRINTI " open" + JUMP ?CND1 +?CCL3: FSET DOOR,FL-OPEN + FSET? DOOR,FL-DOOR \?CND10 + ICALL2 RT-CHECK-ADJ,DOOR +?CND10: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?93 + ICALL RT-PRINT-OBJ,DOOR,K-ART-THE +?CND1: FSET? DOOR,FL-OPEN \?CND12 + FSET? DOOR,FL-DOOR \?CCL16 + CALL2 RT-OTHER-SIDE,DOOR >RM + ZERO? RM /?CND12 + FSET? DOOR,FL-AUTO-ENTER \?CCL20 + PRINTI " and" + ZERO? LOCK? /?CND21 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE +?CND21: ICALL RT-PRINT-VERB,WINNER,STR?94 + PRINTI " through." + CRLF + CRLF + ICALL2 RT-GOTO,RM + RTRUE +?CCL20: GETP HERE,P?ADJACENT >TMP2 + ZERO? TMP2 /?CND12 + ADD TMP2,1 >?TMP1 + GETB TMP2,0 + INTBL? RM,?TMP1,STACK,1 >TMP1 \?CND12 + GETB TMP1,1 + ZERO? STACK /?CND12 + CALL2 RT-SEE-ANYTHING-IN?,RM + ZERO? STACK /?CND12 + PRINTI " and" + ZERO? LOCK? /?CND30 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE +?CND30: ICALL RT-PRINT-VERB,WINNER,STR?77 + ICALL2 RT-PRINT-CONTENTS,RM + JUMP ?CND12 +?CCL16: FSET? DOOR,FL-TRANSPARENT /?CND12 + CALL2 RT-SEE-ANYTHING-IN?,DOOR + ZERO? STACK /?CND12 + PRINTI ". Inside you see" + ICALL2 RT-PRINT-CONTENTS,DOOR +?CND12: PRINTC 46 + CRLF + FSET? DOOR,FL-TAKEABLE /FALSE + FSET? DOOR,FL-OPEN \FALSE + CALL2 RT-SCORE-OBJ,DOOR + RSTACK + + + .FUNCT V-OPEN:ANY:0:0,F,STR,RM + FSET? PRSO,FL-OPENABLE /?CCL3 + CALL1 RT-YOU-CANT-MSG + RSTACK +?CCL3: FSET? PRSO,FL-OPEN \?CCL5 + CALL RT-ALREADY-MSG,PRSO,STR?93 + RSTACK +?CCL5: ZERO? PRSI \?CCL7 + FSET? PRSO,FL-LOCKED \?CCL7 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR " locked." +?CCL7: ZERO? PRSI /?CCL11 + CALL RT-MATCH-KEY,PRSO,PRSI + ZERO? STACK \?CCL11 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't open" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTI " with" + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE + PRINTR "." +?CCL11: CALL RT-OPEN-DOOR-MSG,PRSO,PRSI + RSTACK + + + .FUNCT V-PLUG-IN:ANY:0:0 + PRINTC TAB + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't plug in" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." + + + .FUNCT V-PULL:ANY:0:0 + PRINTI " You pull" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR ", but nothing happens." + + + .FUNCT V-PUSH:ANY:0:0 + PRINTI " You push" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR ", but nothing happens." + + + .FUNCT PRE-PUT:ANY:0:0 + IN? PRSO,GLOBAL-OBJECTS \?CCL3 + ICALL2 NOT-HERE,PRSO + RTRUE +?CCL3: EQUAL? PRSI,TH-GROUND,GLOBAL-HERE,FALSE-VALUE /FALSE + IN? PRSI,GLOBAL-OBJECTS \?CCL7 + ICALL2 NOT-HERE,PRSI + RTRUE +?CCL7: CALL HELD?,PRSI,PRSO + ZERO? STACK /FALSE + CALL RT-YOU-CANT-MSG,STR?90,PRSI,STR?95 + RSTACK + + + .FUNCT V-PUT:ANY:0:0 + FSET? PRSI,FL-SURFACE /?CCL3 + PRINTI "There's no good surface on" + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE + PRINTR "." +?CCL3: CALL1 RT-PUT-ON-OR-IN + RSTACK + + + .FUNCT TELL-FIND-NONE:ANY:1:2,STR,OBJ + PRINTI "You search for " + PRINT STR + ZERO? OBJ /?CND1 + ICALL RT-PRINT-OBJ,OBJ,K-ART-A +?CND1: PRINTR " but find none." + + + .FUNCT PRE-PUT-IN:ANY:0:0 + EQUAL? PRSI,PSEUDO-OBJECT \?CCL3 + CALL1 PRE-PUT + RSTACK +?CCL3: FSET? PRSI,FL-READABLE \?CCL5 + ICALL1 WONT-HELP + RETURN 2 +?CCL5: FSET? PRSI,FL-CONTAINER /?CND1 + ICALL TELL-FIND-NONE,STR?96,PRSI + RETURN 2 +?CND1: FSET? PRSI,FL-OPEN /?CND11 + FSET? PRSI,FL-OPENABLE \?CND11 + ICALL RT-FIRST-YOU-MSG,STR?93,PRSI + FSET PRSI,FL-OPEN +?CND11: CALL1 PRE-PUT + RSTACK + + + .FUNCT V-PUT-IN:ANY:0:0 + FSET? PRSI,FL-OPEN /?CCL3 + FSET? PRSI,FL-OPENABLE \?CCL6 + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI " closed" + JUMP ?CND4 +?CCL6: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't open" + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE +?CND4: PRINTR "." +?CCL3: CALL1 RT-PUT-ON-OR-IN + RSTACK + + + .FUNCT RT-PUT-ON-OR-IN:ANY:0:0 + ZERO? PRSI \?CCL3 + CALL1 RT-YOU-CANT-MSG + RSTACK +?CCL3: EQUAL? PRSO,PRSI \?CCL5 + CALL1 HAR-HAR + RSTACK +?CCL5: IN? PRSO,PRSI \?CCL7 + ICALL2 RT-ALREADY-MSG,PRSO + ICALL2 RT-IN-ON-MSG,PRSI + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE + PRINTR ".]" +?CCL7: CALL RT-ROOM-IN-MSG?,PRSO,PRSI + ZERO? STACK \TRUE + CALL2 HELD?,PRSO + ZERO? STACK \?CCL11 + CALL1 ITAKE + ZERO? STACK /TRUE +?CCL11: FSET? PRSO,FL-WORN \?CND14 + FCLEAR PRSO,FL-WORN + ICALL RT-FIRST-YOU-MSG,STR?80,PRSO +?CND14: MOVE PRSO,PRSI + FSET PRSO,FL-TOUCHED + FSET? PRSI,FL-PERSON \?CCL18 + FSET? PRSO,FL-CLOTHING \?CCL18 + FSET PRSO,FL-WORN + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?90 + PRINTI " on" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + JUMP ?CND16 +?CCL18: GRTR? P-MULT,1 \?CCL22 + PRINTI "Done" + JUMP ?CND16 +?CCL22: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?90 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTC 32 + FSET? PRSI,FL-SURFACE /?CTR24 + FSET? PRSI,FL-PERSON \?CCL25 +?CTR24: PRINTC 111 + JUMP ?CND23 +?CCL25: PRINTC 105 +?CND23: PRINTI "nto" + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE +?CND16: PRINTR "." + + + .FUNCT RT-TOTAL-SIZE:ANY:1:1,OBJ1,OBJ,TOTSIZ + FIRST? OBJ1 >OBJ /?PRG2 +?PRG2: ZERO? OBJ \?CCL6 + RETURN TOTSIZ +?CCL6: FSET? OBJ,FL-WORN /?CND4 + GETPT OBJ,P?SIZE + GETB STACK,K-SIZ-SIZ + ADD TOTSIZ,STACK >TOTSIZ +?CND4: NEXT? OBJ >OBJ /?PRG2 + JUMP ?PRG2 + + + .FUNCT RT-OBJ-TOO-LARGE?:ANY:2:2,OBJ1,OBJ2,CAP,?TMP1 + GETPT OBJ2,P?SIZE + GETB STACK,K-SIZ-CAP >CAP + EQUAL? CAP,K-CAP-MAX /FALSE + GETPT OBJ1,P?SIZE + GETB STACK,K-SIZ-SIZ >?TMP1 + CALL2 RT-TOTAL-SIZE,OBJ2 + ADD ?TMP1,STACK + GRTR? STACK,CAP /TRUE + RFALSE + + + .FUNCT RT-ROOM-IN-MSG?:ANY:2:2,OBJ1,OBJ2 + CALL RT-OBJ-TOO-LARGE?,OBJ1,OBJ2 + ZERO? STACK /FALSE + PRINTI "There is not enough room" + ICALL2 RT-IN-ON-MSG,OBJ2 + ICALL RT-PRINT-OBJ,OBJ2,K-ART-THE + PRINTR "." + + + .FUNCT RT-CHECK-MOVE-MSG?:ANY:2:2,SRC,DEST,PTR,OLOC,CNT + ZERO? DEST /FALSE + SET 'PTR,GL-LOC-TRAIL + SET 'OLOC,DEST +?PRG4: PUT PTR,0,OLOC + INC 'CNT + ZERO? OLOC /?REP5 + IN? OLOC,ROOMS /?REP5 + IN? OLOC,LOCAL-GLOBALS /?REP5 + IN? OLOC,GLOBAL-OBJECTS /?REP5 + LOC OLOC >OLOC + ADD PTR,2 >PTR + EQUAL? OLOC,DEST \?PRG4 +?REP5: INTBL? SRC,GL-LOC-TRAIL,CNT \FALSE + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't put" + ICALL RT-PRINT-OBJ,SRC,K-ART-THE + ICALL2 RT-IN-ON-MSG,SRC + ICALL RT-PRINT-OBJ,SRC,K-ART-HIM + PRINTI "self, or" + ICALL2 RT-IN-ON-MSG,SRC + PRINTI "something that is already" + ICALL2 RT-IN-ON-MSG,SRC + ICALL RT-PRINT-OBJ,SRC,K-ART-HIM + PRINTR "." + + + .FUNCT V-REACH-BEHIND:ANY:0:0 + PRINTI "['Reach behind' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-REACH-IN:ANY:0:0 + PRINTI "['Reach in' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-REACH-UNDER:ANY:0:0 + PRINTI "['Reach under' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-READ:ANY:0:0 + PRINTI "['Read' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-SHOW:ANY:0:0 + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE,TRUE-VALUE,STR?98 + PRINTI " unimpressed by" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." + + + .FUNCT V-SHOW-SWP:ANY:0:0 + CALL PERFORM,V?SHOW,PRSI,PRSO + RSTACK + + + .FUNCT V-SIT:ANY:0:0,OBJ + SET 'OBJ,PRSO + EQUAL? PRSO,ROOMS \?CND1 + SET 'OBJ,TH-GROUND +?CND1: CALL RT-NO-POINT-MSG,STR?99,OBJ + RSTACK + + + .FUNCT ITAKE:ANY:0:2,OB,V?,CNT,OBJ,L + ASSIGNED? 'V? /?CND1 + SET 'V?,TRUE-VALUE +?CND1: ZERO? OB \?CND3 + SET 'OB,PRSO +?CND3: LOC OB >L + FSET? OB,FL-TAKEABLE /?CCL7 + ZERO? V? /FALSE + ICALL2 RT-YOU-CANT-MSG,STR?100 + RFALSE +?CCL7: CALL RT-OBJ-TOO-LARGE?,OB,WINNER + ZERO? STACK /?CCL12 + ZERO? V? /FALSE + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI " holding too much." + CRLF + RFALSE +?CCL12: EQUAL? PRSA,V?TAKE /?CND16 + EQUAL? L,WINNER /?CND16 + ICALL RT-FIRST-YOU-MSG,STR?100,OB,L +?CND16: CALL2 RT-DO-TAKE,OB + RSTACK + + + .FUNCT RT-DO-TAKE:ANY:1:2,OBJ,FORCED?,L + LOC OBJ >L + MOVE OBJ,WINNER + FSET OBJ,FL-SEEN + FSET OBJ,FL-TOUCHED + FCLEAR OBJ,FL-NO-DESC + FCLEAR OBJ,FL-INVISIBLE + FCLEAR OBJ,FL-WORN + RTRUE + + + .FUNCT PRE-TAKE:ANY:0:0,L + EQUAL? PRSO,TH-HANDS,YOU /FALSE + LOC PRSO >L + EQUAL? L,GLOBAL-OBJECTS \?CCL5 + CALL2 NOT-HERE,PRSO + RSTACK +?CCL5: CALL RT-META-IN?,WINNER,PRSO + ZERO? STACK /?CCL7 + ICALL2 RT-ALREADY-MSG,WINNER + ICALL2 RT-IN-ON-MSG,PRSO + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR ".]" +?CCL7: ZERO? L /?CCL9 + FSET? L,FL-SURFACE /?CCL9 + FSET? L,FL-OPENABLE \?CCL9 + FSET? L,FL-OPEN /?CCL9 + ICALL RT-PRINT-OBJ,L,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR " closed." +?CCL9: EQUAL? PRSA,V?TAKE-WITH /FALSE + ZERO? PRSI /?CCL18 + EQUAL? PRSI,L \?CCL21 + SET 'PRSI,FALSE-VALUE + RFALSE +?CCL21: FSET? L,FL-SURFACE /?CCL23 + FSET? PRSI,FL-OPENABLE \?CCL23 + FSET? PRSI,FL-OPEN /?CCL23 + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE,TRUE-VALUE,STR?56 + PRINTR " closed." +?CCL23: EQUAL? PRSI,L /FALSE + FSET? PRSI,FL-PERSON \?CCL32 + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE,TRUE-VALUE,STR?66 + PRINTI "n't have" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + JUMP ?CND30 +?CCL32: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI "n't" + ICALL2 RT-IN-ON-MSG,PRSI + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE +?CND30: PRINTR "." +?CCL18: CALL1 PRE-TAKE-WITH + RSTACK + + + .FUNCT PRE-TAKE-WITH:ANY:0:0,X + EQUAL? PRSO,YOU /FALSE + CALL2 META-LOC,PRSO + EQUAL? STACK,GLOBAL-OBJECTS \?CCL5 + CALL2 HELD?,PRSO + ZERO? STACK \FALSE + FSET? PRSO,FL-PERSON /FALSE + CALL2 NOT-HERE,PRSO + RSTACK +?CCL5: IN? PRSO,WINNER \?CCL12 + ICALL2 RT-ALREADY-MSG,PLAYER + PRINTI " holding" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR ".]" +?CCL12: LOC PRSO + FSET? STACK,FL-CONTAINER \?CCL14 + LOC PRSO + FSET? STACK,FL-SURFACE /?CCL14 + LOC PRSO + FSET? STACK,FL-OPEN /?CCL14 + CALL2 RT-YOU-CANT-MSG,STR?101 + RSTACK +?CCL14: IN? WINNER,PRSO \FALSE + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTC 91 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 + ICALL2 RT-IN-ON-MSG,PRSO + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR ".]" + + + .FUNCT V-TAKE:ANY:0:0,L,V + LOC PRSO >L + CALL1 ITAKE >V + EQUAL? V,M-FATAL \?CCL3 + RETURN 2 +?CCL3: ZERO? V /FALSE + GRTR? P-MULT,1 \?CCL10 + PRINTI "Taken" + JUMP ?CND8 +?CCL10: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?100 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + IN? L,ROOMS /?CND8 + EQUAL? L,GLOBAL-OBJECTS,LOCAL-GLOBALS /?CND8 + PRINTI " from" + EQUAL? L,PLAYER \?CCL17 + EQUAL? WINNER,PLAYER /?CCL17 + PRINTI " you" + JUMP ?CND8 +?CCL17: ICALL RT-PRINT-OBJ,L,K-ART-THE +?CND8: PRINTR "." + + + .FUNCT V-TAKE-WITH:ANY:0:0 + PRINTI "['Take with' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-TALK-TO:ANY:0:0 + PRINTI "['Talk to' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-TELL:ANY:0:0 + EQUAL? PRSO,PLAYER \?CCL3 + ZERO? QCONTEXT /?CCL6 + SET 'QCONTEXT,FALSE-VALUE + ZERO? P-CONT /?CCL9 + SET 'WINNER,PLAYER + RETURN WINNER +?CCL9: PRINTR "Okay, you're not talking to anyone else." +?CCL6: ICALL2 WONT-HELP-TO-TALK-TO,PLAYER + SET 'P-CONT,FALSE-VALUE + RETURN 2 +?CCL3: FSET? PRSO,FL-ALIVE \?CCL13 + SET 'QCONTEXT,PRSO + ZERO? P-CONT /?CCL16 + SET 'CLOCK-WAIT,TRUE-VALUE + SET 'WINNER,PRSO + RFALSE +?CCL16: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?102 + PRINTR " at you expectantly, as if you seemed to be about to talk." +?CCL13: ICALL2 WONT-HELP-TO-TALK-TO,PRSO + SET 'P-CONT,FALSE-VALUE + RETURN 2 + + + .FUNCT WONT-HELP-TO-TALK-TO:ANY:1:1,OBJ + PRINTI "Talking to" + ICALL RT-PRINT-OBJ,OBJ,K-ART-THE + PRINTR " won't help one bit." + + + .FUNCT V-TELL-ABOUT:ANY:0:0,PERSON + EQUAL? PRSO,CH-PLAYER \?CCL3 + EQUAL? WINNER,CH-PLAYER \?CCL6 + CALL FIND-FLAG,HERE,FL-PERSON,CH-PLAYER >PERSON + ZERO? PERSON \?CTR8 + CALL FIND-FLAG,HERE,FL-ALIVE,CH-PLAYER >PERSON + ZERO? PERSON /?CCL9 +?CTR8: ICALL PERFORM,V?ASK-ABOUT,PERSON,PRSI + RTRUE +?CCL9: PRINT K-TALK-TO-SELF-MSG + CRLF + RTRUE +?CCL6: SET 'PERSON,WINNER + SET 'WINNER,CH-PLAYER + ICALL PERFORM,V?ASK-ABOUT,PERSON,PRSI + RTRUE +?CCL3: FSET? PRSO,FL-ALIVE /?CCL13 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI "can't tell anything to" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL13: FSET? PRSO,FL-ASLEEP \?CCL15 + PRINTI "Talking to" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTI " in" + ICALL RT-PRINT-OBJ,PRSO,K-ART-HIS + PRINTR " current condition would be a waste of time." +?CCL15: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?103 + PRINTR " indifferently." + + + .FUNCT V-THANK:ANY:0:0 + EQUAL? WINNER,CH-PLAYER \?CCL3 + EQUAL? PRSO,CH-PLAYER \?CCL6 + PRINTR "Patting yourself on the back won't help." +?CCL6: FSET? PRSO,FL-ASLEEP \?CCL8 + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?104 + PRINTR "n't in any condition to accept your thanks." +?CCL8: PRINTR """You're welcome.""" +?CCL3: ICALL1 RT-FOOLISH-TO-TALK? + RTRUE + + + .FUNCT V-TIE-TO:ANY:0:0 + PRINTI "You can't tie" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTI " to" + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE + PRINTR "." + + + .FUNCT V-TURN:ANY:0:0 + PRINTI "['Turn' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-TURN-OFF:ANY:0:0 + PRINTI "['Turn off' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-TURN-ON:ANY:0:0 + PRINTI "['Turn on' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-TURN-TO:ANY:0:0 + PRINTI "['Turn to' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-UNDO:ANY:0:0 + ZERO? P-CAN-UNDO /FALSE + SET 'GL-SL-HERE,FALSE-VALUE + IRESTORE + ZERO? STACK \?CCL6 + PRINTR "[UNDO failed.]" +?CCL6: PRINTR "[UNDO is not available.]" + + + .FUNCT V-UNLOCK:ANY:0:0 + FSET? PRSO,FL-OPENABLE /?CCL3 + CALL1 RT-YOU-CANT-MSG + RSTACK +?CCL3: FSET? PRSO,FL-OPEN \?CCL5 + CALL RT-ALREADY-MSG,PRSO,STR?93 + RSTACK +?CCL5: FSET? PRSO,FL-LOCKED /?CCL7 + CALL RT-ALREADY-MSG,PRSO,STR?105 + RSTACK +?CCL7: CALL RT-MATCH-KEY,PRSO,PRSI + ZERO? STACK \?CCL9 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE + PRINTI " can't unlock" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTI " with" + ICALL RT-PRINT-OBJ,PRSI,K-ART-THE + PRINTC 46 + CRLF + RTRUE +?CCL9: CALL RT-OPEN-DOOR-MSG,PRSO,PRSI + RSTACK + + + .FUNCT V-UNWEAR:ANY:0:0 + IN? PRSO,WINNER \?CCL3 + FSET? PRSO,FL-WORN \?CCL6 + FCLEAR PRSO,FL-WORN + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?100 + PRINTI " off" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL6: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI "n't wearing" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL3: CALL PERFORM,V?TAKE,PRSO + RSTACK + + + .FUNCT V-WAIT:ANY:0:0,N,ABS? + SET 'N,-1 + ZERO? PRSO \?CCL3 + SET 'N,20 + JUMP ?CND1 +?CCL3: EQUAL? PRSO,INTNUM \?CCL5 + GRTR? P-NUMBER,0 \?CND1 + MUL P-NUMBER,2 >N + JUMP ?CND1 +?CCL5: EQUAL? PRSO,TH-TIME \?CCL9 + CALL NOUN-USED?,PRSO,W?TURN,W?TURNS + ZERO? STACK /?CCL12 + CALL ADJ-USED?,PRSO,W?INT.NUM + ZERO? STACK /?CCL15 + GRTR? P-NUMBER,0 \?CCL15 + SET 'N,P-NUMBER + JUMP ?CND1 +?CCL15: SET 'N,1 + JUMP ?CND1 +?CCL12: CALL NOUN-USED?,PRSO,W?MIN,W?MINUTE,W?MINUTES + ZERO? STACK /?CCL19 + CALL ADJ-USED?,PRSO,W?INT.NUM + ZERO? STACK /?CCL22 + GRTR? P-NUMBER,0 \?CCL22 + MUL P-NUMBER,2 >N + JUMP ?CND1 +?CCL22: SET 'N,2 + JUMP ?CND1 +?CCL19: CALL NOUN-USED?,PRSO,W?HOUR,W?HOURS + ZERO? STACK /?CND1 + CALL ADJ-USED?,PRSO,W?INT.NUM + ZERO? STACK /?CCL28 + GRTR? P-NUMBER,0 \?CCL28 + MUL P-NUMBER,120 >N + JUMP ?CND1 +?CCL28: SET 'N,120 +?CND1: GRTR? N,0 \?CCL35 + SUB N,1 + ADD GL-MOVES,STACK >GL-MOVES + PRINT K-TIME-PASSES-MSG + RTRUE +?CCL9: PRINTI "[You can't wait for" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTI ".] +" + RETURN 2 +?CCL35: ZERO? ABS? /?CCL37 + PRINTI "[That time has already passed.] +" + RETURN 2 +?CCL37: PRINTI "[You can't wait for that.] +" + RETURN 2 + + + .FUNCT RT-FIND-DIR:ANY:1:2,RM,L,P,OD,OBJ,PT,PTS + ASSIGNED? 'L /?CND1 + LOC WINNER >L +?CND1: SET 'OD,P-WALK-DIR +?PRG3: NEXTP L,P >P + ZERO? P /FALSE + LESS? P,LOW-DIRECTION /FALSE + SET 'P-WALK-DIR,P + GETPT L,P >PT + ZERO? PT /?PRG3 + PTSIZE PT >PTS + EQUAL? PTS,UEXIT \?CCL13 + GET PT,REXIT + EQUAL? RM,STACK /?REP4 + JUMP ?PRG3 +?CCL13: EQUAL? PTS,FEXIT \?CCL17 + GET PT,FEXITFCN + CALL STACK,TRUE-VALUE + EQUAL? RM,STACK /?REP4 + JUMP ?PRG3 +?CCL17: EQUAL? PTS,CEXIT \?CCL21 + GET PT,REXIT + EQUAL? RM,STACK /?REP4 + JUMP ?PRG3 +?CCL21: EQUAL? PTS,DEXIT \?PRG3 + GET PT,REXIT + EQUAL? RM,STACK \?PRG3 + GET PT,DEXITOBJ >OBJ + ZERO? OBJ /?PRG3 +?REP4: SET 'P-WALK-DIR,OD + RETURN P + + + .FUNCT RT-FIND-ROOM:ANY:1:2,DIR,L,OD,RM,PT,PTS + ASSIGNED? 'L /?CND1 + LOC WINNER >L +?CND1: GETPT L,DIR >PT + ZERO? PT /?CND3 + PTSIZE PT >PTS + EQUAL? PTS,UEXIT,CEXIT,DEXIT \?CCL7 + GET PT,REXIT >RM + RETURN RM +?CCL7: EQUAL? PTS,FEXIT /?CCL8 + RETURN RM +?CCL8: SET 'OD,P-WALK-DIR + SET 'P-WALK-DIR,DIR + GET PT,FEXITFCN + CALL STACK,TRUE-VALUE >RM + SET 'P-WALK-DIR,OD +?CND3: RETURN RM + + + .FUNCT RT-SET-PUPPY:ANY:1:1,OBJ + ZERO? GL-PUPPY /?CND1 + FCLEAR GL-PUPPY,FL-NO-DESC +?CND1: SET 'GL-PUPPY,OBJ + FSET GL-PUPPY,FL-NO-DESC + RTRUE + + + .FUNCT RT-CLEAR-PUPPY:ANY:0:0 + ZERO? GL-PUPPY /TRUE + FCLEAR GL-PUPPY,FL-NO-DESC + SET 'GL-PUPPY,FALSE-VALUE + RTRUE + + + .FUNCT V-WALK:ANY:0:0,PT,PTS,STR,RM + ZERO? P-WALK-DIR \?CND1 + ICALL1 V-WALK-AROUND + RETURN 2 +?CND1: LOC WINNER + GETPT STACK,PRSO >PT + ZERO? PT /?CCL7 + PTSIZE PT >PTS + EQUAL? PTS,UEXIT \?CCL10 + GET PT,REXIT + ICALL2 RT-GOTO,STACK + RTRUE +?CCL10: EQUAL? PTS,NEXIT \?CCL12 + SET 'CLOCK-WAIT,TRUE-VALUE + GET PT,NEXITSTR + PRINT STACK + CRLF + RETURN 2 +?CCL12: EQUAL? PTS,FEXIT \?CCL16 + GET PT,FEXITFCN + CALL STACK >RM + ZERO? RM /?PRG20 + ICALL2 RT-GOTO,RM + RTRUE +?PRG20: RETURN 2 +?CCL16: EQUAL? PTS,CEXIT \?CCL23 + GETB PT,CEXITFLAG + VALUE STACK + ZERO? STACK /?CCL26 + GET PT,REXIT + ICALL2 RT-GOTO,STACK + RTRUE +?CCL26: GET PT,CEXITSTR >STR + ZERO? STR /?CCL28 + PRINT STR + CRLF + RETURN 2 +?CCL28: ICALL2 RT-YOU-CANT-MSG,STR?106 + RETURN 2 +?CCL23: EQUAL? PTS,DEXIT \FALSE + CALL2 WALK-THRU-DOOR?,PT + ZERO? STACK /?PRG38 + GET PT,REXIT + ICALL2 RT-GOTO,STACK + RTRUE +?PRG38: RETURN 2 +?CCL7: EQUAL? PRSO,P?IN,P?OUT \?CCL41 + CALL1 V-WALK-AROUND + RSTACK +?CCL41: ICALL2 RT-YOU-CANT-MSG,STR?106 + RETURN 2 + + + .FUNCT WALK-THRU-DOOR?:ANY:1:3,PT,OBJ,TELL?,RM + ASSIGNED? 'TELL? /?CND1 + SET 'TELL?,TRUE-VALUE +?CND1: ZERO? OBJ \?CND3 + GET PT,DEXITOBJ >OBJ +?CND3: FSET? OBJ,FL-OPEN /TRUE + ZERO? PT /?CCL9 + GET PT,DEXITSTR >RM + ZERO? RM /?CCL9 + ZERO? TELL? /FALSE + PRINT RM + CRLF + RFALSE +?CCL9: ICALL RT-PRINT-OBJ,OBJ,K-ART-THE,TRUE-VALUE,STR?56 + PRINTI "n't open." + CRLF + RFALSE + + + .FUNCT RT-GOTO:ANY:1:2,RM,FORCED? + IN? WINNER,RM \?CND1 + ICALL1 RT-WALK-WITHIN-ROOM-MSG + RFALSE +?CND1: GETP HERE,P?ACTION + CALL STACK,M-EXIT + ZERO? STACK /?CND3 + ZERO? FORCED? /FALSE +?CND3: MOVE WINNER,RM + EQUAL? WINNER,PLAYER \?CND7 + ZERO? GL-PUPPY /?CND9 + MOVE GL-PUPPY,RM +?CND9: SET 'OHERE,HERE + SET 'HERE,RM + ICALL1 RT-ENTER-ROOM +?CND7: ZERO? GL-PUPPY /TRUE + PRINTC TAB + ICALL RT-PRINT-OBJ,GL-PUPPY,K-ART-THE,TRUE-VALUE,STR?107 + PRINTR " you." + + + .FUNCT RT-ENTER-ROOM:ANY:0:0,VAL,CNT,TBL,I,C + CALL1 LIT? >LIT + DIROUT D-TABLE-ON,K-DIROUT-TBL + ICALL1 RT-ROOM-NAME-MSG + DIROUT D-TABLE-OFF + SET 'TBL,K-DIROUT-TBL+2 + GET K-DIROUT-TBL,0 >CNT + GRTR? CNT,0 \?CND1 +?PRG3: GETB TBL,I >C + LESS? C,97 /?CND5 + GRTR? C,122 /?CND5 + SUB C,32 + PUTB TBL,I,STACK +?CND5: IGRTR? 'I,CNT \?PRG3 +?CND1: HLIGHT H-BOLD + PRINTT TBL,CNT + HLIGHT H-NORMAL + CRLF + GETP HERE,P?ACTION + ICALL STACK,M-ENTER + CALL1 RT-DESCRIBE-ROOM + ZERO? STACK \?CCL13 + SET 'VAL,0 + JUMP ?CND11 +?CCL13: CALL1 RT-DESCRIBE-OBJECTS >VAL +?CND11: GETP HERE,P?ACTION + ICALL STACK,M-ENTERED + RETURN VAL + + + .FUNCT RT-ROOM-NAME-MSG:ANY:0:0 + ZERO? LIT /?CCL3 + CALL2 RT-PRINT-DESC,HERE + RSTACK +?CCL3: PRINTI "darkness" + RTRUE + + + .FUNCT V-WALK-AROUND:ANY:0:0 + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTC 91 + PRINT K-WHICH-DIR-MSG + PRINTC 93 + CRLF + RETURN 2 + + + .FUNCT V-WALK-TO:ANY:0:0 + PRINTI "['Walk to' currently has no default handling.] +" + RETURN 2 + + + .FUNCT RT-WALK-WITHIN-ROOM-MSG:ANY:0:0 + CALL NO-NEED,STR?109,HERE + RSTACK + + + .FUNCT V-WEAR:ANY:0:0 + IN? PRSO,WINNER /?CCL3 + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?66 + PRINTI "n't have" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL3: FSET? PRSO,FL-WORN \?CCL5 + ICALL2 RT-ALREADY-MSG,WINNER + PRINTI " wearing" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR ".]" +?CCL5: FSET? PRSO,FL-CLOTHING \?CCL7 + FSET PRSO,FL-WORN + ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?90 + PRINTI " on" + ICALL RT-PRINT-OBJ,PRSO,K-ART-THE + PRINTR "." +?CCL7: CALL2 RT-YOU-CANT-MSG,STR?110 + RSTACK + + + .FUNCT V-WELD:ANY:0:0 + PRINTI "['Weld' currently has no default handling.] +" + RETURN 2 + + + .FUNCT V-YES:ANY:0:0 + PRINTI "[You seem sure of yourself.]" + CRLF + RETURN 2 + + .ENDI diff --git a/verbs.zil b/verbs.zil new file mode 100644 index 0000000..e2dfbfd --- /dev/null +++ b/verbs.zil @@ -0,0 +1,2737 @@ +;"***************************************************************************" +; "game : Abyss" +; "file : VERBS.ZIL" +; "auth : $Author: DEB $" +; "date : $Date: 20 Mar 1989 8:46:08 $" +; "rev : $Revision: 1.16 $" +; "vers : 1.0" +;"---------------------------------------------------------------------------" +; "Verbs" +; "Copyright (C) 1988 Infocom, Inc. All rights reserved." +;"***************************************************************************" + + + + + +; +> + + + + ; + + ) + (T + + + + ) + (T + + + ) + > + + ) + > + +> + + + + + ) + (T + + + ) + > + +> + + + + > + + ) + (T + + ) + > + ) + (T + + + + ) + (T + + ) + > + + + ) + > +> + +% >> +% >> +% >> + + + + > + + ) + > + + + + + ) + > + +> + + + + + ) + (T + + ) + > + ) + (T + + ) + > +> + + +> + + + +> + + + > ; "flush anything on input line after SAVE" + > + + + > + + > + ) + > + + + ) + (T + + ) + > + +> + +> + + + ) + > +> + +"SUBTITLE - GENERALLY USEFUL ROUTINES & CONSTANTS" + +) (CNT 0) "AUX" OBJ (1ST? T)) + > + + + ) + ( + + + > + ) + (T + + > + ) + (T + > + ) + > + + + + ) + > + > + > + > + + + ) + ( + + + > + ) + ( + + + + > + > + > + + + > + ) + > + ) + > + > + > + ) + > + ) + > + .CNT +> + +)) + > + + + ) + ( + + > + > + + ) + ( + + > + + ) + (.1ST? + + + ) + (T + ; + + ) + > + > + + + ) + (T + + ) + > + + ) + > + + + + + > + + + ) + () + () + ( + + ) + (T + + ) + > + > + > + > + + + ) + (> + > + > + > + + ) + > + > + > + + + ) + (T + + ) + > + ) + (T + + + ) + > + + ) + > + > + + + + ) + (T + ; + + ) + > + > + + + ) + > + > + + + + > + ) + ( + + ) + (T + + ) + > + > + + + ) + > + + + ) + (T + + ) + > + + + ) + ( + + ) + (T + + ) + > + ) + > + > + > + ) + > + > + + + ) + () + ( + + + > + > + >> + ) + > + > + > + + + + ) + > + ) + > + +> + +) "AUX" VAL P) + + + + + ) + (> + + ) + > + > + > + ) + (> + > + ) + ( + > + ) + (T + > + ) + > + ) + > + + + > +> + +"Lengths:" + +> + "Uncondl EXIT: (dir TO rm) = rm" +> + "Non EXIT: (dir ;SORRY string) = str-ing" +> + "Fcnl EXIT: (dir PER rtn) = rou-tine, 0" +> + "Condl EXIT: (dir TO rm IF f) = rm, f, str-ing" +> + "Door EXIT: (dir TO rm IF dr IS OPEN)= rm, dr, str-ing, 0" + + + +> "GET/B" + "GET" + "GET/B" +> "GET" + +> + ,WINNER>> + > + + + ) + > +> + +) "AUX" L) + + + ) + > + > + + + ) + ( + + ) + ( + + + ) + (T + + ) + > + ) + ( + + ) + (T + + ) + > + > +> + +; + + + ) + ( + + + ) + (> + + ) + (T + + ) + > + ) + ( ,HERE ,GLOBAL-OBJECTS ,LOCAL-GLOBALS> + + ) + (> + + ) + > +> + + +> + +;"---------------------------------------------------------------------------" +; "A" +;"---------------------------------------------------------------------------" + + +> + + +> + +;"---------------------------------------------------------------------------" +; "C" +;"---------------------------------------------------------------------------" + +> + + ) + (T + + + + + ) + > + + + ) + (T + + ) + > + + ) + (T + + ) + > + ) + > +> + + +> + +;"---------------------------------------------------------------------------" +; "D" +;"---------------------------------------------------------------------------" + + + + ) + (> + ,FL-OPEN>> + > + "are" " closed." CR> + + ) + (T + + + ) + > + + + + + + ) + > +> + + + + + ) + (T + + > + + + ) + > + ) + > + + ) + > +> + +;"---------------------------------------------------------------------------" +; "E" +;"---------------------------------------------------------------------------" + +> + > + > + > + + + > + > + + + ) + (T + + ) + > + ) + ( + > + + > + + ) + ( ,ROOMS ,TH-HANDS>> + > + > + > + + ) + > + ) + > +> + + +> + +) "AUX" OBJ NXT X OM) + + + > + + + ) + (> + + > + + ) + > + > + > + + + + + ) + > + > + ,ROOMS ,TH-GROUND ,GLOBAL-HERE> + + ) + ( + + ) + > + + + ) + (> + + > + + > + + > + + + ) + > + ) + ( + + + ) + ( + T + ) + ( + + ) + (T + + + ) + > + + ) + > + > + + +> + +> + + ) + (T + + + ) + > +> + + + > + + + + ) + ( + + > + + + ) + ( + + ) + (T + + ) + > + ) + ( <> ,M-FATAL> + + ) + > + ) + ( + ; "Enter the room you're in" + + + ) + ( + > + + > + ) + ( + + ) + (T + + ) + > + ) + ( + + + ) + (T + + ) + > + ) + ( ; "If it's a vehicle, move winner there." + + + > + + + ) + ( + + ) + (T + + ) + > + ) + (T + + ) + > + +> + + + > + + + ) + ( + + + > + + + > + > + + ) + ( + + ) + (T + + ) + > + ) + (> + + ) + > + ) + ( + + ) + ( + + ) + ( + + + ) + (T + + ) + > + ) + ( + + + > + + + + > + >> + + ) + ( + + ) + (T + + ) + > + ) + (T + + ) + > + ) + (> ,FL-CONTAINER> + + + ) + (T + + ) + > + +> + + +> + +) (DIR3 <>) "AUX" X) + + > + ,M-FATAL>> + > + + > + ,M-FATAL>> + > + + > + ) + > + ) + > + +> + +; +> + + + + ) + ( + + + ) + ( + + + ) + ( + + > + + + ) + (T + + + ) + > +> + + " about" the ,PRSO "." CR + > +> + + + + + +> + +;"---------------------------------------------------------------------------" +; "F" +;"---------------------------------------------------------------------------" + + + +> + +;"---------------------------------------------------------------------------" +; "G" +;"---------------------------------------------------------------------------" + + +> + + + +> + +;"---------------------------------------------------------------------------" +; "H" +;"---------------------------------------------------------------------------" + + + +> + +;"---------------------------------------------------------------------------" +; "I" +;"---------------------------------------------------------------------------" + + +> + +;"---------------------------------------------------------------------------" +; "L" +;"---------------------------------------------------------------------------" + + + +> + + ,ROOMS> + "." CR + > + ) + (T + + ) + > +> + + + + ) + ( + + ) + (> + + ) + (T + + + + + + ) + > + + ) + (T + + + ) + > + ) + > +> + + + + ) + > + +> + + "." CR> +> + + "." CR> +> + +; +> + + + ,FL-CONTAINER> + > + > + + + ) + > + ) + > + + + > + > + > + + ) + (> + + > + + ) + ( + + > + + > + ; > + + + ) + > + + + + + > + + ) + > + + ) + (T + + ) + > + ) + (<==? .DIR ,P?IN> + + ) + (T + + ) + > +> + +;) "AUX" (X <>) OHERE OLIT TXT) + + + + ) + ( + > + + + + > + + + + ) + (T + + ) + > + + + + ) + ; (> + + + ) + > + + + ) + > + + + + ) + > +> + +;)"AUX" P L TBL O) + + >> + + > + + ) + > + + ) + > + > + > + + .THERE> + + ) + > + ) + (<==? .L ,DEXIT> + .THERE> + ,FL-OPEN> + + ) + ( <>> + + ) + (.IGNORE-DOOR + + ) + (T + + + ) + > + + ) + > + ) + > + ) + (<==? .L ,CEXIT> + .THERE> + > + + ) + (T + + ) + > + + ) + > + ) + > + ) + > + > +> + + + +> + + + + ) + (T + + ) + > +> + +;"---------------------------------------------------------------------------" +; "M" +;"---------------------------------------------------------------------------" + + + +> + +;"---------------------------------------------------------------------------" +; "N" +;"---------------------------------------------------------------------------" + + + +> + +;"---------------------------------------------------------------------------" +; "O" +;"---------------------------------------------------------------------------" + +)) + + + + ) + > + ) + ( + + + ) + > + ) + > +> + +> + +) L) + > + >> + + > + + ) + (> + > + + > + > + + > + + ) + > + ) + > + > + +> + + + + ) + (T + + ) + > + +> + +) "AUX" RM (LOCK? <>) TMP1 TMP2) + + + + > + + + > + + + + ) + > + + ) + > + ) + (T + + + + ) + > + + ) + > + + + >>) + ( + + + ) + > + + + + ) + (> + 1>> + + + + + ) + > + + + ) + > + ) + > + ) + > + ) + > + ) + (> + + + + ) + > + ) + > + ) + > + + > + + + ) + > + ) + > +> + +> + + ) + ( + + ) + ( + + > + + ) + (> + > + + ) + (T + + ) + > +> + +;"---------------------------------------------------------------------------" +; "P" +;"---------------------------------------------------------------------------" + + +> + + +> + + +> + + + + + ) + ( + + + ) + (> + + ) + ( + + + ) + ( + + ) + > +> + + + + + + ) + (> + + ) + (T + + ) + > +> + +)) + + + ) + > + +> + + + > + ) + ; ( + + + ) + ( + + + ) + (> + + + ) + > + > + + + + ) + > + ) + > + +> + +> + + + ) + (T + + ) + > + + ) + (T + + ) + > +> + + + + + + ) + ( + + ) + ( + + + ) + ( + + ) + (> + > + > + + ) + (T + + + + ) + > + + + ; + + ) + (T + + ) + > + + + > + + + ) + ( + + ) + (T + + + + ; + > + + ) + (T + + ) + > + + ) + > + + ) + > +> + +> + + + ) + ( + ) + (T + ,K-SIZ-SIZ>>> + ) + > + > + > + +> + + ,K-SIZ-CAP>> + + + ) + ( ,K-SIZ-SIZ> ; "Size" + + > + .CAP + > + + ) + > +> + + + + ) + > +> + + + + + + + + + + > + + ) + > + > + > + + + ) + > + > + + + + ) + > + ) + > +> + +;"---------------------------------------------------------------------------" +; "R" +;"---------------------------------------------------------------------------" + + + +> + + + +> + + + +> + + + +> + +;"---------------------------------------------------------------------------" +; "S" +;"---------------------------------------------------------------------------" + + +> + + +> + + + + ) + > + +> + +;"---------------------------------------------------------------------------" +; "T" +;"---------------------------------------------------------------------------" + +) (V? T) "AUX" CNT OBJ L) + + + ) + > + > + > + ; > + > + + ) + > + + ) + ( + + + > + + ) + (> + + + + ) + > + > + + + ) + (T + + ) + > + + + ) + (T + + ) + > + + ) + > + ) + ; (> ,FUMBLE-NUMBER> + > + > + > + + + + + ) + (T + > + > + > + + ) + > + + ) + > +> + +) "AUX" L) + > + + + + + + + +> + + + + ) + (<==? > ,GLOBAL-OBJECTS> + + ) + ( + + + ) + (> + ; > + > + + > + > + + + ) + ( + + ) + (,PRSI + + > + + ) + (> + ; > + > + + > + > + + + ) + (> + + + ) + (T + + ) + > + + ) + > + ) + (T + + ) + > +> + + + + ) + ( ,GLOBAL-OBJECTS> + > + > + > + + ) + > + ) + ( + + + ) + ( ,FL-CONTAINER> + ,FL-SURFACE>> + ; > + > + ,FL-OPEN>> + > + + ) + ( + + + ) + > +> + +> + > + + + ) + (.V + + + ) + (T + + > + > + > + + + > + > + + ) + (T + + ) + > + ) + > + ) + > + + ) + > +> + + + +> + + + +> + + + > + + ) + (T + + ) + > + ) + (T + + ; > + > + + ) + > + ) + ( + + + + + ) + (T + + ) + > + ) + (T + + ; > + > + + ) + > +> + + +> + + + + > + > + > + + ) + (T + + ) + > + ) + (T + + + + ) + > + + ) + (> + + ) + ( + + ) + (T + + ) + > +> + + + + + ) + ( + + ) + (T + + ) + > + ) + (T + + + ) + > +> + + +> + + + +> + + + +> + + + +> + + + +> + +;"---------------------------------------------------------------------------" +; "U" +;"---------------------------------------------------------------------------" + +> + > + + ) + (T + + ) + > + + ) + > +> + + + + ) + (> + + ) + ( + + ) + (> + + ) + (> + + ) + (T + + ) + > +> + + + + + + ) + (T + + ) + > + ) + (T + + ) + > +> + +;"---------------------------------------------------------------------------" +; "W" +;"---------------------------------------------------------------------------" + +)) + + + ) + ( + + > + ) + > + ) + ( + + + + > + + ) + (T + + ) + > + ) + ( + + + > + > + ) + (T + + ) + > + ) + ( + + + > + > + ) + (T + + ) + > + ) + > + ) + (T + + + ) + > + + >> + + ) + (.ABS? + + + ) + (T + + + ) + > +> + +) "AUX" (P 0) OD) + + >> + + > + + ) + > + + > + > + + > + + ) + > + ) + ( + T>> + + ) + > + ) + ( + > + + ) + > + ) + ( + > + > + + ) + > + ) + > + ) + > + ) + > + > + + +> + +) "AUX" OD (RM <>) PT PTS) + > + > + + > + ) + ( + + + T>> + + ) + > + ) + > + +> + +> + + + ) + > + + +> + + + > + ) + > + +> + + + + + ) + > + ,PRSO>> + > ,UEXIT> + > + + ) + (<==? .PTS ,NEXIT> + + CR> + + ) + (<==? .PTS ,FEXIT> + >> + + + ) + (T + + ) + > + ) + (<==? .PTS ,CEXIT> + > + > + + ) + (> + + + ) + (T + + + ) + > + ) + (<==? .PTS ,DEXIT> + + > + + ) + (T + + ) + > + ) + > + ) + ( + + ) + (T + + + ) + > +> + + + > + ) + > + + + ) + (> + > + + ) + > + + ) + (T + + + ) + > +> + +)) + + + + ) + > + ,M-EXIT> + + + ) + > + ) + > + + + + ) + > + + + + ) + > + + ) + > + +> + +> + + + + > + > + + > !\a> + + > + > + ) + > + + + ) + > + > + ) + > + + + + +; + + > + > + > + + ) + > + ,M-ENTER> + + + ) + > + > + ,M-ENTERED> + .VAL +> + + + ) + (T + + ) + > +> + + + + +> + + + +> + + + + +> + +> + + ) + ( + + + ) + ( + + + ) + (T + + ) + > +> + + + +> + +;"---------------------------------------------------------------------------" +; "Y" +;"---------------------------------------------------------------------------" + + + +> + +;"***************************************************************************" +; "end of file" +;"***************************************************************************" +