mirror of
https://github.com/historicalsource/planetfall-gold
synced 2024-04-25 21:59:30 +03:00
2150 lines
63 KiB
Plaintext
2150 lines
63 KiB
Plaintext
|
|
|
|
.FUNCT INIT-STATUS-LINE
|
|
LESS? WIDTH,38 \?CND1
|
|
PRINTI "[Screen too narrow.]"
|
|
CRLF
|
|
QUIT
|
|
?CND1: SET 'OHERE,FALSE-VALUE
|
|
SET 'OLD-LEN,0
|
|
SPLIT 1
|
|
SCREEN S-WINDOW
|
|
HLIGHT H-INVERSE
|
|
CURSET 1,1
|
|
ICALL2 PRINT-SPACES,WIDTH
|
|
GRTR? WIDTH,74 \?CND3
|
|
CURSET 1,51
|
|
PRINTI "Score:"
|
|
CURSET 1,64
|
|
PRINTI "Time:"
|
|
?CND3: HLIGHT H-NORMAL
|
|
SCREEN S-TEXT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT UPDATE-STATUS-LINE
|
|
SCREEN S-WINDOW
|
|
HLIGHT H-NORMAL
|
|
HLIGHT H-INVERSE
|
|
EQUAL? HERE,OHERE /?CND1
|
|
SET 'OHERE,HERE
|
|
DIROUT D-TABLE-ON,SL-TABLE
|
|
ICALL1 SAY-HERE
|
|
DIROUT D-TABLE-OFF
|
|
CURSET 1,2
|
|
ICALL2 PRINT-SPACES,OLD-LEN
|
|
GET SL-TABLE,0 >OLD-LEN
|
|
CURSET 1,2
|
|
ICALL1 SAY-HERE
|
|
?CND1: GRTR? WIDTH,74 \?CCL5
|
|
CURSET 1,58
|
|
PRINTN SCORE
|
|
PRINTC 32
|
|
CURSET 1,70
|
|
PRINTN MOVES
|
|
JUMP ?CND3
|
|
?CCL5: DIROUT D-TABLE-ON,SL-TABLE
|
|
PRINTN SCORE
|
|
PRINTC 47
|
|
PRINTN MOVES
|
|
PRINTC 32
|
|
DIROUT D-TABLE-OFF
|
|
GET SL-TABLE,0
|
|
ADD STACK,1
|
|
SUB WIDTH,STACK
|
|
CURSET 1,STACK
|
|
PRINTN SCORE
|
|
PRINTC 47
|
|
PRINTN MOVES
|
|
PRINTC 32
|
|
?CND3: HLIGHT H-NORMAL
|
|
SCREEN S-TEXT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PRINT-SPACES,N,AMT
|
|
?PRG1: GRTR? N,BLANKS-LEN \?CCL5
|
|
SET 'AMT,BLANKS-LEN
|
|
JUMP ?CND3
|
|
?CCL5: SET 'AMT,N
|
|
?CND3: PRINTT BLANKS,AMT
|
|
SUB N,AMT >N
|
|
GRTR? N,0 /?PRG1
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SAY-HERE
|
|
ZERO? LIT? \?CCL3
|
|
PRINTI "Darkness"
|
|
RTRUE
|
|
?CCL3: PRINTD HERE
|
|
GRTR? WIDTH,74 \TRUE
|
|
LOC ADVENTURER
|
|
FSET? STACK,VEHBIT \TRUE
|
|
PRINTI ", in the "
|
|
LOC ADVENTURER
|
|
PRINTD STACK
|
|
RTRUE
|
|
|
|
|
|
.FUNCT GROUND-F
|
|
EQUAL? PRSA,V?PUT \?CCL3
|
|
EQUAL? PRSI,GROUND \?CCL3
|
|
ICALL PERFORM,V?DROP,PRSO
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?BOARD,V?CLIMB-ON \?CCL7
|
|
SET 'C-ELAPSED,28
|
|
PRINTR "You sit down on the floor. After a brief rest, you stand again."
|
|
?CCL7: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
EQUAL? HERE,ADMIN-CORRIDOR-S \FALSE
|
|
PRINTR "A narrow, jagged crevice runs across the floor."
|
|
|
|
|
|
.FUNCT WINDOW-F
|
|
EQUAL? PRSA,V?LOOK-INSIDE \?CCL3
|
|
EQUAL? HERE,BIO-LOCK-EAST \?CCL6
|
|
PRINTI "You can see a large laboratory, dimly illuminated. A blue glow comes from a crack in the northern wall of the lab. Shadowy, ominous shapes move about within the room."
|
|
FSET? MINI-CARD,TOUCHBIT /?CND7
|
|
PRINTR " On the floor, just inside the door, you can see a magnetic-striped card."
|
|
?CND7: CRLF
|
|
RTRUE
|
|
?CCL6: EQUAL? HERE,BIO-LAB \?CCL10
|
|
PRINTR "You see the Bio Lock."
|
|
?CCL10: EQUAL? HERE,ALFIE-CONTROL-EAST,ALFIE-CONTROL-WEST /?CTR11
|
|
EQUAL? HERE,BETTY-CONTROL-EAST,BETTY-CONTROL-WEST \?CCL12
|
|
?CTR11: PRINTI "You see "
|
|
ICALL1 DESCRIBE-VIEW
|
|
CRLF
|
|
RTRUE
|
|
?CCL12: EQUAL? HERE,BALCONY \?CCL16
|
|
PRINTR "Water. Lots and lots of water."
|
|
?CCL16: EQUAL? HERE,HELICOPTER \?CCL18
|
|
PRINTR "You see the helipad and the ocean beyond."
|
|
?CCL18: EQUAL? HERE,ESCAPE-POD \?CCL20
|
|
LESS? TRIP-COUNTER,2 \?CCL23
|
|
PRINTR "You can see debris from the exploding Feinstein."
|
|
?CCL23: GRTR? TRIP-COUNTER,8 \?CCL25
|
|
PRINTR "You can see a planet, hopefully a hospitable one."
|
|
?CCL25: PRINTR "The window has polarized to blackness."
|
|
?CCL20: EQUAL? HERE,LARGE-OFFICE \FALSE
|
|
PRINTR "You can see the dormitories and other parts of the complex in the distance. Water is visible in every direction."
|
|
?CCL3: EQUAL? PRSA,V?THROUGH \?CCL29
|
|
EQUAL? HERE,BALCONY \?CCL29
|
|
CALL2 JIGS-UP,STR?48
|
|
RSTACK
|
|
?CCL29: EQUAL? PRSA,V?OPEN \?CCL33
|
|
PRINTR "This window doesn't open."
|
|
?CCL33: EQUAL? PRSA,V?EXAMINE \?CCL35
|
|
EQUAL? HERE,BALCONY \?CCL35
|
|
PRINTR "They're shattered."
|
|
?CCL35: EQUAL? PRSA,V?MUNG \FALSE
|
|
EQUAL? HERE,BALCONY \?CCL42
|
|
PRINTR "They're already broken."
|
|
?CCL42: PRINTR "It's made of tough Zynoid plastic."
|
|
|
|
|
|
.FUNCT CLIFF-F
|
|
EQUAL? HERE,WEST-WING \?CCL3
|
|
EQUAL? PRSA,V?LEAP \?CCL6
|
|
CALL2 JIGS-UP,STR?49
|
|
RSTACK
|
|
?CCL6: EQUAL? PRSA,V?THROW-OFF \FALSE
|
|
EQUAL? PRSO,LASER \?CND9
|
|
CALL2 INT,I-WARMTH
|
|
PUT STACK,0,0
|
|
?CND9: REMOVE PRSO
|
|
PRINTI "The "
|
|
PRINTD PRSO
|
|
PRINTR " falls into the ocean below."
|
|
?CCL3: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \?CCL13
|
|
CALL2 DO-WALK,P?UP
|
|
RSTACK
|
|
?CCL13: EQUAL? PRSA,V?CLIMB-DOWN \FALSE
|
|
CALL2 DO-WALK,P?DOWN
|
|
RSTACK
|
|
|
|
|
|
.FUNCT OCEAN-F
|
|
EQUAL? PRSA,V?RUB,V?THROUGH,V?TAKE \?CCL3
|
|
PRINTR "You can't reach the ocean from here."
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "It stretches as far as you can see."
|
|
|
|
|
|
.FUNCT TABLES-F
|
|
EQUAL? PRSA,V?LOOK-UNDER \?CCL3
|
|
EQUAL? HERE,MESS-HALL \?CCL3
|
|
PRINTR "Wow!!! Under the table are three keys, a sack of food, a reactor elevator access pass, one hundred gold pieces ... Just kidding. Actually, there's nothing there."
|
|
?CCL3: EQUAL? PRSA,V?PUT-ON \FALSE
|
|
EQUAL? PRSI,TABLES \FALSE
|
|
PRINTR "That would accomplish nothing useful."
|
|
|
|
|
|
.FUNCT SHELVES-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTR "The shelves are pretty dusty."
|
|
?CCL3: EQUAL? PRSA,V?PUT-ON \FALSE
|
|
EQUAL? PRSI,SHELVES \FALSE
|
|
PRINTR "That would be a waste of time."
|
|
|
|
|
|
.FUNCT LIGHTS-F
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
EQUAL? HERE,COMPUTER-ROOM \FALSE
|
|
PRINTR "The red light would seem to indicate a malfunction in the computer."
|
|
|
|
|
|
.FUNCT GLOBAL-DOORWAY-F
|
|
EQUAL? PRSA,V?THROUGH \?CCL3
|
|
CALL1 USE-DIRECTIONS
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL5
|
|
PRINTR "It's just an opening; you can't open or close it."
|
|
?CCL5: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
PRINTR "Can't see much from here. Try going there."
|
|
|
|
|
|
.FUNCT USE-DIRECTIONS
|
|
PRINTR "Use compass directions for movement."
|
|
|
|
|
|
.FUNCT NO-CLOSE
|
|
PRINTR "There's no way to close it."
|
|
|
|
|
|
.FUNCT CONTROLS-F
|
|
EQUAL? HERE,UPPER-ELEVATOR,LOWER-ELEVATOR,BOOTH-1 /?CTR2
|
|
EQUAL? HERE,REACTOR-ELEVATOR,BOOTH-2,BOOTH-3 \?CCL3
|
|
?CTR2: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "The control panel is a simple one, as described. Just a small slot and two buttons."
|
|
?CCL3: EQUAL? PRSA,V?TURN,V?MOVE,V?RUB /?CTR9
|
|
EQUAL? PRSA,V?EXAMINE,V?TAKE,V?SET /?CTR9
|
|
EQUAL? PRSA,V?PULL,V?PUSH \?CCL10
|
|
?CTR9: EQUAL? HERE,HELICOPTER \?CCL16
|
|
PRINTR "The controls are covered and locked."
|
|
?CCL16: EQUAL? HERE,ESCAPE-POD \?CCL18
|
|
PRINTR "The controls are entirely automated."
|
|
?CCL18: PRINTR "The controls are incredibly complicated and you shouldn't even be thinking about touching them."
|
|
?CCL10: EQUAL? HERE,HELICOPTER \FALSE
|
|
EQUAL? PRSA,V?UNLOCK,V?OPEN \FALSE
|
|
PRINTR "You don't even have the orange key!"
|
|
|
|
|
|
.FUNCT GLOBAL-GAMES-F
|
|
EQUAL? PRSA,V?PLAY \FALSE
|
|
IN? FLOYD,HERE \?CCL6
|
|
ICALL PERFORM,V?PLAY-WITH,FLOYD
|
|
RTRUE
|
|
?CCL6: PRINTR "Okay. Gee, that was fun."
|
|
|
|
|
|
.FUNCT HANDS-F
|
|
EQUAL? PRSA,V?SHAKE \FALSE
|
|
IN? AMBASSADOR,HERE \?CCL6
|
|
PRINTR "A repulsive idea."
|
|
?CCL6: IN? BLATHER,HERE \?CCL8
|
|
PRINTR "Saluting might be a better idea."
|
|
?CCL8: IN? FLOYD,HERE \?CCL10
|
|
FSET? FLOYD,RLANDBIT \?CCL10
|
|
PRINTR "You shake one of Floyd's grasping extensions."
|
|
?CCL10: PRINTR "There's no one to shake hands with."
|
|
|
|
|
|
.FUNCT SLEEP-F
|
|
EQUAL? PRSA,V?WALK-TO \FALSE
|
|
CALL1 V-SLEEP
|
|
RSTACK
|
|
|
|
|
|
.FUNCT CRETIN-F
|
|
EQUAL? PRSA,V?GIVE \?CCL3
|
|
ICALL PERFORM,V?TAKE,PRSO
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?SCRUB \?CCL5
|
|
PRINTR "If only you'd done that before the last inspection, you wouldn't have gotten 300 demerits."
|
|
?CCL5: EQUAL? PRSA,V?DROP \?CCL7
|
|
PRINTR "Huh?"
|
|
?CCL7: EQUAL? PRSA,V?SMELL \?CCL9
|
|
PRINTR "Phew!"
|
|
?CCL9: EQUAL? PRSA,V?FOLLOW \?CCL11
|
|
PRINTR "It would be hard not to."
|
|
?CCL11: EQUAL? PRSA,V?EAT \?CCL13
|
|
PRINTR "Auto-cannibalism is not the answer."
|
|
?CCL13: EQUAL? PRSA,V?MUNG,V?ATTACK \?CCL15
|
|
EQUAL? PRSO,ME \?CCL18
|
|
CALL2 JIGS-UP,STR?50
|
|
RSTACK
|
|
?CCL18: PRINTR "What a silly idea!"
|
|
?CCL15: EQUAL? PRSA,V?TAKE \?CCL20
|
|
PRINTR "How romantic!"
|
|
?CCL20: EQUAL? PRSA,V?DISEMBARK \?CCL22
|
|
PRINTR "You'll have to do that on your own."
|
|
?CCL22: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "That's difficult unless your eyes are prehensile."
|
|
|
|
|
|
.FUNCT DDESC,DOOR
|
|
FSET? DOOR,OPENBIT \?CCL3
|
|
PRINTI "open"
|
|
RTRUE
|
|
?CCL3: PRINTI "closed"
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ALREADY-OPEN
|
|
PRINTR "It's already open!"
|
|
|
|
|
|
.FUNCT IS-CLOSED
|
|
PRINTR "It is closed!"
|
|
|
|
|
|
.FUNCT V-THROUGH,OBJ,M
|
|
ZERO? OBJ \?CCL3
|
|
FSET? PRSO,VEHBIT \?CCL3
|
|
ICALL PERFORM,V?BOARD,PRSO
|
|
RTRUE
|
|
?CCL3: ZERO? OBJ \?CCL7
|
|
FSET? PRSO,TAKEBIT /?CCL7
|
|
PRINTI "You hit your head against the "
|
|
PRINTD PRSO
|
|
PRINTR " as you attempt this feat."
|
|
?CCL7: ZERO? OBJ /?CCL11
|
|
PRINTR "You can't do that!"
|
|
?CCL11: IN? PRSO,ADVENTURER \?CCL13
|
|
PRINTR "That would involve quite a contortion!"
|
|
?CCL13: CALL2 PICK-ONE,YUKS
|
|
PRINT STACK
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FIND-IN,WHERE,WHAT,W
|
|
FIRST? WHERE >W /?BOGUS1
|
|
?BOGUS1: ZERO? W /FALSE
|
|
?PRG4: FSET? W,WHAT \?CCL8
|
|
RETURN W
|
|
?CCL8: NEXT? W >W /?PRG4
|
|
RFALSE
|
|
|
|
|
|
.FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?,OBJ
|
|
SET 'PRSO?,TRUE-VALUE
|
|
EQUAL? PRSO,NOT-HERE-OBJECT \?CCL3
|
|
EQUAL? PRSI,NOT-HERE-OBJECT \?CCL3
|
|
PRINTR "Those things aren't here!"
|
|
?CCL3: EQUAL? PRSO,NOT-HERE-OBJECT \?CCL7
|
|
SET 'TBL,P-PRSO
|
|
JUMP ?CND1
|
|
?CCL7: SET 'TBL,P-PRSI
|
|
SET 'PRSO?,FALSE-VALUE
|
|
?CND1: ZERO? PRSO? /?CND8
|
|
EQUAL? PRSA,V?TYPE \?CCL12
|
|
ICALL PERFORM,V?TYPE,FLOYD
|
|
RTRUE
|
|
?CCL12: EQUAL? PRSA,V?EXAMINE /?CCL13
|
|
EQUAL? WINNER,FLOYD \?CND8
|
|
EQUAL? PRSA,V?FIND,V?TAKE \?CND8
|
|
?CCL13: CALL FIND-NOT-HERE,TBL,PRSO? >OBJ
|
|
ZERO? OBJ /FALSE
|
|
EQUAL? OBJ,NOT-HERE-OBJECT \TRUE
|
|
?CND8: EQUAL? WINNER,ADVENTURER \?CCL25
|
|
PRINTI "You can't see any"
|
|
ICALL2 NOT-HERE-PRINT,PRSO?
|
|
PRINTI " here!"
|
|
CRLF
|
|
EQUAL? PRSA,V?TELL \TRUE
|
|
SET 'P-CONT,FALSE-VALUE
|
|
SET 'QUOTE-FLAG,FALSE-VALUE
|
|
RETURN 2
|
|
?CCL25: PRINTI "The "
|
|
PRINTD WINNER
|
|
PRINTI " seems confused. ""I don't see any"
|
|
ICALL2 NOT-HERE-PRINT,PRSO?
|
|
PRINTR " here!"""
|
|
|
|
|
|
.FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ
|
|
CALL2 MOBY-FIND,TBL >M-F
|
|
EQUAL? 1,M-F \?CCL3
|
|
ZERO? PRSO? /?CCL6
|
|
SET 'PRSO,P-MOBY-FOUND
|
|
RFALSE
|
|
?CCL6: SET 'PRSI,P-MOBY-FOUND
|
|
RFALSE
|
|
?CCL3: ZERO? PRSO? \?CCL8
|
|
PRINTI "You wouldn't find any"
|
|
ICALL2 NOT-HERE-PRINT,PRSO?
|
|
PRINTR " there."
|
|
?CCL8: RETURN NOT-HERE-OBJECT
|
|
|
|
|
|
.FUNCT NOT-HERE-PRINT,PRSO?,?TMP1
|
|
ZERO? P-OFLAG \?CTR2
|
|
ZERO? P-MERGED /?CCL3
|
|
?CTR2: ZERO? P-XADJ /?CND6
|
|
PRINTC 32
|
|
PRINTB P-XADJ
|
|
?CND6: ZERO? P-XNAM /FALSE
|
|
PRINTC 32
|
|
PRINTB P-XNAM
|
|
RTRUE
|
|
?CCL3: ZERO? PRSO? /?CCL12
|
|
GET P-ITBL,P-NC1 >?TMP1
|
|
GET P-ITBL,P-NC1L
|
|
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
|
|
RSTACK
|
|
?CCL12: GET P-ITBL,P-NC2 >?TMP1
|
|
GET P-ITBL,P-NC2L
|
|
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DECK-NINE-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is a featureless corridor similar to every other corridor on the ship. It curves away to starboard, and a gangway leads up"
|
|
FSET? GANGWAY-DOOR,OPENBIT \?CCL6
|
|
PRINTC 46
|
|
JUMP ?CND4
|
|
?CCL6: PRINTI ", but both of these are blocked by closed bulkheads."
|
|
?CND4: PRINTI " To port is the entrance to one of the ship's primary escape pods. The pod bulkhead is "
|
|
ICALL2 DDESC,POD-DOOR
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT CHRONOMETER-F
|
|
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
|
PRINTI "It is a standard wrist chronometer with a digital display. "
|
|
ICALL1 TELL-TIME
|
|
PRINTR " The back is engraved with the message ""Good luck in the Patrol! Love, Mom and Dad."""
|
|
|
|
|
|
.FUNCT TELL-TIME
|
|
PRINTI "According to the chronometer, the current time is "
|
|
FSET? CHRONOMETER,MUNGEDBIT \?CCL3
|
|
PRINTN MUNGED-TIME
|
|
JUMP ?CND1
|
|
?CCL3: PRINTN INTERNAL-MOVES
|
|
?CND1: PRINTC 46
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PATROL-UNIFORM-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTI "It is a standard-issue one-pocket Stellar Patrol uniform, a miracle of modern technology. It will keep its owner warm in cold climates and cool in warm locales. It provides protection against mild radiation, repels all insects, absorbs sweat, promotes healthy skin tone, and on top of everything else, it is supercomfy."
|
|
EQUAL? TRIP-COUNTER,15 \?CND4
|
|
PRINTR " There are definitely worse things to find yourself wearing when stranded on a strange planet."
|
|
?CND4: CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?WEAR \?CCL7
|
|
FSET? LAB-UNIFORM,WORNBIT \?CCL7
|
|
PRINTR "It won't fit over the lab uniform."
|
|
?CCL7: EQUAL? PRSA,V?TAKE-OFF \?CCL11
|
|
FSET? PATROL-UNIFORM,WORNBIT \?CCL11
|
|
FCLEAR PATROL-UNIFORM,WORNBIT
|
|
PRINTI "You have removed your Patrol uniform."
|
|
EQUAL? TRIP-COUNTER,15 \?CND14
|
|
PRINTI " You suddenly realize how warm it is. You also feel naked and vulnerable."
|
|
?CND14: IN? BLATHER,HERE \?CCL18
|
|
PRINTR " ""Removing your uniform while on duty? Five hundred demerits!"""
|
|
?CCL18: IN? FLOYD,HERE \?CND16
|
|
PRINTR " Floyd giggles. ""You look funny without any clothes on."""
|
|
?CND16: CRLF
|
|
RTRUE
|
|
?CCL11: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
|
|
PRINTI "There's no way to open or close the pocket of the "
|
|
PRINTD PRSO
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT DIARY-F
|
|
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
|
|
PRINTR "It's not that kind of diary."
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
|
|
PRINTI "You've used this battered old recording machine as a diary for years. It includes a little button"
|
|
FSET? DIARY,ACTIVEBIT \?CND6
|
|
PRINTI ", which is flashing,"
|
|
?CND6: PRINTR " and a microphone/speaker. To read its screen, type READ DIARY."
|
|
?CCL5: EQUAL? PRSA,V?READ \FALSE
|
|
IN? BLATHER,HERE \?CCL12
|
|
PRINTR "Blather stops you, scribbling madly. ""I warned you, Ensign! That's another two hundred demerits!"""
|
|
?CCL12: FSET? DIARY,ACTIVEBIT /?CCL14
|
|
FSET DIARY,ACTIVEBIT
|
|
SET 'DIARY-CTR,0
|
|
CALL1 READ-DIARY
|
|
RSTACK
|
|
?CCL14: CALL1 WORDS-ON-SCREEN
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DIARY-BUTTON-F
|
|
EQUAL? PRSA,V?PUSH \?CCL3
|
|
FSET? DIARY,ACTIVEBIT \?CCL6
|
|
EQUAL? DIARY-CTR,14 \?CCL9
|
|
FCLEAR DIARY,ACTIVEBIT
|
|
SET 'DIARY-CTR,0
|
|
PRINTR """END OF DIARY -- REWINDING"" flashes across the screen; the machine whirrs, stops, and the little button flickers off."
|
|
?CCL9: CALL1 READ-DIARY
|
|
RSTACK
|
|
?CCL6: PRINTR "Nothing happens."
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
FSET? DIARY,ACTIVEBIT \FALSE
|
|
PRINTR "It is flashing."
|
|
|
|
|
|
.FUNCT READ-DIARY
|
|
INC 'DIARY-CTR
|
|
EQUAL? DIARY-CTR,1 \?CND1
|
|
PRINTI "Words start to scroll across the screen:
|
|
|
|
"
|
|
?CND1: CALL1 WORDS-ON-SCREEN
|
|
RSTACK
|
|
|
|
|
|
.FUNCT WORDS-ON-SCREEN
|
|
PRINTI """11,344 "
|
|
GET DIARY-ENTRIES,DIARY-CTR
|
|
PRINT STACK
|
|
PRINTC 34
|
|
EQUAL? DIARY-CTR,14 /?CND1
|
|
CRLF
|
|
CRLF
|
|
PRINTR "The single word, ""More,"" appears at the bottom of the diary screen, and the little button flashes."
|
|
?CND1: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT GANGWAY-F,RARG
|
|
EQUAL? RARG,M-END \FALSE
|
|
RANDOM 100
|
|
LESS? 15,STACK /FALSE
|
|
ZERO? BLOWUP-COUNTER \FALSE
|
|
PRINTR "You hear a distant bellowing ... something about an Ensign Seventh Class whose life is in danger."
|
|
|
|
|
|
.FUNCT I-BLATHER
|
|
EQUAL? HERE,DECK-EIGHT,REACTOR-LOBBY \?CCL3
|
|
IN? BLATHER,HERE \?CCL6
|
|
IGRTR? 'BRIGS-UP,3 \?CCL9
|
|
CRLF
|
|
PRINTI "Blather loses his last vestige of patience and drags you to the Feinstein's brig. He throws you in, and the door clangs shut behind you."
|
|
CRLF
|
|
CRLF
|
|
ICALL2 GOTO,BRIG
|
|
ICALL ROB,ADVENTURER,CRAG
|
|
MOVE PADLOCK,HERE
|
|
FCLEAR PADLOCK,TAKEBIT
|
|
RTRUE
|
|
?CCL9: CRLF
|
|
PRINTR """I said to return to your post, Ensign Seventh Class!"" bellows Blather, turning a deepening shade of crimson."
|
|
?CCL6: ZERO? BLOWUP-COUNTER \FALSE
|
|
MOVE BLATHER,HERE
|
|
ICALL2 THIS-IS-IT,BLATHER
|
|
CRLF
|
|
PRINTR "Ensign Blather, his uniform immaculate, enters and notices you are away from your post. ""Twenty demerits, Ensign Seventh Class!"" bellows Blather. ""Forty if you're not back on Deck Nine in five seconds!"" He curls his face into a hideous mask of disgust at your unbelievable negligence."
|
|
?CCL3: EQUAL? HERE,DECK-NINE \FALSE
|
|
EQUAL? BLATHER-LEAVE,3 \?CCL16
|
|
IN? BLATHER,HERE \?CCL16
|
|
SET 'BLATHER-LEAVE,0
|
|
REMOVE BLATHER
|
|
CRLF
|
|
PRINTR "Blather, adding fifty more demerits for good measure, moves off in search of more young ensigns to terrorize."
|
|
?CCL16: IN? BLATHER,DECK-NINE \?CCL20
|
|
INC 'BLATHER-LEAVE
|
|
RFALSE
|
|
?CCL20: IN? AMBASSADOR,HERE /FALSE
|
|
ZERO? BLOWUP-COUNTER \FALSE
|
|
RANDOM 100
|
|
LESS? 5,STACK /FALSE
|
|
MOVE BLATHER,HERE
|
|
ICALL2 THIS-IS-IT,BLATHER
|
|
CRLF
|
|
PRINTI "Ensign First Class Blather swaggers in. He studies your work with half-closed eyes. ""You call this polishing, Ensign Seventh Class?"" he sneers. ""We have a position for an Ensign Ninth Class in the toilet-scrubbing division, you know. Thirty demerits."
|
|
FSET? PATROL-UNIFORM,WORNBIT /?CND26
|
|
PRINTI " And another sixty for improper dress!"
|
|
?CND26: PRINTR """ He glares at you, his arms crossed."
|
|
|
|
|
|
.FUNCT BLATHER-F
|
|
EQUAL? PRSA,V?HELLO,V?TALK /?CTR2
|
|
EQUAL? BLATHER,WINNER \?CCL3
|
|
?CTR2: PRINTI "Blather shouts ""Speak when you're spoken to, Ensign Seventh Class!"" He breaks three pencil points in a frenzied rush to give you more demerits."
|
|
CRLF
|
|
SET 'P-CONT,FALSE-VALUE
|
|
SET 'QUOTE-FLAG,FALSE-VALUE
|
|
RETURN 2
|
|
?CCL3: EQUAL? PRSA,V?KICK,V?ATTACK \?CCL9
|
|
CALL2 JIGS-UP,STR?78
|
|
RSTACK
|
|
?CCL9: EQUAL? PRSA,V?SALUTE \?CCL11
|
|
PRINTR "Blather's sneer softens a bit. ""First right thing you've done today. Only five demerits."""
|
|
?CCL11: EQUAL? PRSA,V?THROW \?CCL13
|
|
EQUAL? BLATHER,PRSI \?CCL13
|
|
MOVE PRSO,HERE
|
|
PRINTI "The "
|
|
PRINTD PRSO
|
|
PRINTR " bounces off Blather's bulbous nose. He becomes livid, orders you to do five hundred push-ups, gives you ten thousand demerits, and assigns you five years of extra galley duty."
|
|
?CCL13: EQUAL? PRSA,V?EXAMINE \?CCL17
|
|
PRINTR "Ensign Blather is a tall, beefy officer with a tremendous, misshapen nose. His uniform is perfect in every respect, and the crease in his trousers could probably slice diamonds in half."
|
|
?CCL17: EQUAL? PRSA,V?TAKE \FALSE
|
|
PRINTR "Blather brushes you away, muttering about suspended shore leave."
|
|
|
|
|
|
.FUNCT CELERY-F
|
|
EQUAL? PRSA,V?EAT \?CCL3
|
|
CALL2 JIGS-UP,STR?80
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?TAKE \FALSE
|
|
PRINTR "The ambassador seems perturbed by your lack of normal protocol."
|
|
|
|
|
|
.FUNCT I-AMBASSADOR
|
|
GRTR? AMBASSADOR-LEAVE,2 \?CCL3
|
|
IN? AMBASSADOR,HERE \?CCL3
|
|
REMOVE AMBASSADOR
|
|
REMOVE CELERY
|
|
EQUAL? HERE,DECK-NINE \?CND6
|
|
CRLF
|
|
PRINTI "The ambassador grunts a polite farewell, and disappears up the gangway, leaving a trail of dripping slime."
|
|
CRLF
|
|
?CND6: CALL2 INT,I-AMBASSADOR
|
|
PUT STACK,0,0
|
|
RTRUE
|
|
?CCL3: IN? AMBASSADOR,DECK-NINE \?CCL9
|
|
INC 'AMBASSADOR-LEAVE
|
|
EQUAL? HERE,DECK-NINE \FALSE
|
|
CRLF
|
|
PRINTI "The ambassador "
|
|
CALL2 PICK-ONE,AMBASSADOR-QUOTES
|
|
PRINT STACK
|
|
CRLF
|
|
RTRUE
|
|
?CCL9: EQUAL? HERE,DECK-NINE \FALSE
|
|
IN? AMBASSADOR,HERE /FALSE
|
|
IN? BLATHER,HERE /FALSE
|
|
ZERO? BLOWUP-COUNTER \FALSE
|
|
RANDOM 100
|
|
LESS? 15,STACK /FALSE
|
|
MOVE AMBASSADOR,HERE
|
|
MOVE CELERY,HERE
|
|
ICALL2 THIS-IS-IT,AMBASSADOR
|
|
MOVE BROCHURE,ADVENTURER
|
|
CRLF
|
|
PRINTR "The alien ambassador from the planet Blow'k-bibben-Gordo ambles toward you from down the corridor. He is munching on something resembling an enormous stalk of celery, and he leaves a trail of green slime on the deck. He stops nearby, and you wince as a pool of slime begins forming beneath him on your newly polished deck. The ambassador wheezes loudly and hands you a brochure outlining his planet's major exports."
|
|
|
|
|
|
.FUNCT AMBASSADOR-F
|
|
EQUAL? PRSA,V?HELLO,V?TALK /?CTR2
|
|
EQUAL? AMBASSADOR,WINNER \?CCL3
|
|
?CTR2: PRINTI "The ambassador taps his translator, and then touches his center knee to his left ear (the Blow'k-bibben-Gordoan equivalent of shrugging)."
|
|
CRLF
|
|
SET 'P-CONT,FALSE-VALUE
|
|
SET 'QUOTE-FLAG,FALSE-VALUE
|
|
RETURN 2
|
|
?CCL3: EQUAL? PRSA,V?ASK-FOR \?CCL9
|
|
EQUAL? PRSI,CELERY \?CCL9
|
|
PRINTR "The ambassador seems willing to let you eat some of it, but I doubt he wants to part with the entire stalk."
|
|
?CCL9: EQUAL? PRSA,V?KICK,V?ATTACK \?CCL13
|
|
PRINTR "The ambassador is startled, and emits an amazing quantity of slime which spreads across the section of the deck you just polished."
|
|
?CCL13: EQUAL? PRSA,V?EXAMINE \?CCL15
|
|
PRINTR "The ambassador has around twenty eyes, seven of which are currently open. Half of his six legs are retracted. Green slime oozes from multiple orifices in his scaly skin. He speaks through a mechanical translator slung around his neck."
|
|
?CCL15: EQUAL? PRSA,V?LISTEN \FALSE
|
|
PRINTR "The alien makes a wheezing noise as he breathes."
|
|
|
|
|
|
.FUNCT GLOBAL-POD-F
|
|
EQUAL? PRSA,V?WALK-TO,V?BOARD,V?THROUGH \?CCL3
|
|
EQUAL? HERE,ESCAPE-POD \?CCL6
|
|
PRINTR "You're already in it!"
|
|
?CCL6: ICALL2 DO-WALK,P?WEST
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?DROP,V?DISEMBARK,V?EXIT \?CCL8
|
|
EQUAL? HERE,DECK-NINE \?CCL11
|
|
PRINTR "You're not in it!"
|
|
?CCL11: ICALL2 DO-WALK,P?OUT
|
|
RTRUE
|
|
?CCL8: EQUAL? PRSA,V?OPEN \FALSE
|
|
ICALL PERFORM,V?OPEN,POD-DOOR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT POD-EXIT-F
|
|
GRTR? BLOWUP-COUNTER,4 \?CCL3
|
|
EQUAL? PRSO,P?EAST \?CCL6
|
|
PRINT CANT-GO
|
|
CRLF
|
|
RFALSE
|
|
?CCL6: FSET? POD-DOOR,OPENBIT /?CCL8
|
|
PRINTI "The pod door is closed."
|
|
CRLF
|
|
RFALSE
|
|
?CCL8: SET 'C-ELAPSED,30
|
|
RETURN UNDERWATER
|
|
?CCL3: EQUAL? PRSO,P?UP \?CCL11
|
|
PRINT CANT-GO
|
|
CRLF
|
|
RFALSE
|
|
?CCL11: FSET? POD-DOOR,OPENBIT /?CCL13
|
|
PRINTI "The pod door is closed."
|
|
CRLF
|
|
RFALSE
|
|
?CCL13: RETURN DECK-NINE
|
|
|
|
|
|
.FUNCT SAFETY-WEB-F,RARG
|
|
ASSIGNED? 'RARG /?CND1
|
|
SET 'RARG,M-OBJECT
|
|
?CND1: EQUAL? PRSA,V?EXAMINE \?CCL5
|
|
ZERO? RARG \?CCL5
|
|
PRINTR "The safety webbing fills most of the pod. It could accomodate from one to, perhaps, twenty people."
|
|
?CCL5: EQUAL? PRSA,V?TAKE \?CCL9
|
|
ZERO? RARG \?CCL9
|
|
PRINTR "The safety web seems to be more intended for getting into than grabbing onto."
|
|
?CCL9: EQUAL? PRSA,V?CLIMB-ON,V?BOARD \?CCL13
|
|
ZERO? RARG \?CCL13
|
|
ICALL2 GOTO,SAFETY-WEB
|
|
PRINTR "You are now safely cushioned within the web."
|
|
?CCL13: EQUAL? PRSA,V?TAKE,V?OPEN \?CCL17
|
|
EQUAL? RARG,M-BEG \?CCL17
|
|
EQUAL? PRSO,SAFETY-WEB \?CCL22
|
|
PRINTR "You're in it!"
|
|
?CCL22: PRINTR "You can't reach it from here."
|
|
?CCL17: EQUAL? PRSA,V?WALK \?CCL24
|
|
EQUAL? RARG,M-BEG \?CCL24
|
|
PRINTR "You'll have to stand up, first."
|
|
?CCL24: EQUAL? PRSA,V?DROP,V?DISEMBARK,V?EXIT /?PRD30
|
|
EQUAL? PRSA,V?STAND \FALSE
|
|
?PRD30: ZERO? RARG \FALSE
|
|
IN? ADVENTURER,SAFETY-WEB \FALSE
|
|
ICALL2 GOTO,HERE
|
|
GRTR? TRIP-COUNTER,14 \?CCL36
|
|
CALL2 INT,I-SINK-POD
|
|
GET STACK,C-ENABLED?
|
|
ZERO? STACK \?CCL36
|
|
CALL QUEUE,I-SINK-POD,-1
|
|
PUT STACK,0,1
|
|
PRINTR "As you stand, the pod shifts slightly and you feel it falling. A moment later, the fall stops with a shock, and you see water rising past the viewport."
|
|
?CCL36: PRINTR "You are standing again."
|
|
|
|
|
|
.FUNCT TOWEL-F
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "A pretty ordinary towel. Something is written in its corner."
|
|
|
|
|
|
.FUNCT FOOD-KIT-F
|
|
EQUAL? PRSA,V?EMPTY \FALSE
|
|
FSET? FOOD-KIT,OPENBIT /?CCL6
|
|
PRINTR "The kit is closed!"
|
|
?CCL6: FIRST? PRSO \FALSE
|
|
PRINTR "The goo, being gooey, sticks to the inside of the kit. You would probably have to shake the kit to get the goo out."
|
|
|
|
|
|
.FUNCT GOO-F
|
|
EQUAL? PRSA,V?EAT \?CCL3
|
|
ZERO? HUNGER-LEVEL \?CCL6
|
|
PRINT NOT-HUNGRY
|
|
CRLF
|
|
RTRUE
|
|
?CCL6: IN? FOOD-KIT,ADVENTURER /?CCL8
|
|
SET 'PRSO,FOOD-KIT
|
|
ICALL1 NOT-HOLDING
|
|
CALL2 THIS-IS-IT,FOOD-KIT
|
|
RSTACK
|
|
?CCL8: REMOVE PRSO
|
|
SET 'C-ELAPSED,15
|
|
SET 'HUNGER-LEVEL,0
|
|
CALL QUEUE,I-HUNGER-WARNINGS,1450
|
|
PUT STACK,0,1
|
|
PRINTI "Mmmm...that tasted just like "
|
|
EQUAL? PRSO,BROWN-GOO \?CCL11
|
|
PRINTI "delicious Nebulan fungus pudding"
|
|
JUMP ?CND9
|
|
?CCL11: EQUAL? PRSO,RED-GOO \?CCL13
|
|
PRINTI "scrumptious cherry pie"
|
|
JUMP ?CND9
|
|
?CCL13: PRINTI "yummy lima beans"
|
|
?CND9: PRINTR "."
|
|
?CCL3: EQUAL? PRSA,V?DROP,V?TAKE \FALSE
|
|
EQUAL? PRSA,V?DROP \?CCL18
|
|
PRINTI "The goo, being gooey, sticks where it is"
|
|
JUMP ?CND16
|
|
?CCL18: EQUAL? PRSA,V?TAKE \?CND16
|
|
PRINTI "It would ooze through your fingers"
|
|
?CND16: PRINTR ". You'll have to eat it right from the survival kit."
|
|
|
|
|
|
.FUNCT ESCAPE-POD-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is one of the Feinstein's primary escape pods, for use in extreme emergencies. A mass of safety webbing, large enough to hold several dozen people, fills half the pod. The controls are entirely automated. The bulkhead leading out is "
|
|
ICALL2 DDESC,POD-DOOR
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT POD-DOOR-F
|
|
EQUAL? PRSA,V?OPEN \?CCL3
|
|
FSET? POD-DOOR,OPENBIT \?CCL6
|
|
CALL1 ALREADY-OPEN
|
|
RSTACK
|
|
?CCL6: GRTR? TRIP-COUNTER,14 \?CCL8
|
|
FSET POD-DOOR,OPENBIT
|
|
PRINTR "The bulkhead opens and cold ocean water rushes in!"
|
|
?CCL8: GRTR? BLOWUP-COUNTER,0 \?CCL10
|
|
EQUAL? HERE,DECK-NINE \?CCL13
|
|
PRINTR "Too late. The pod's launching procedure has already begun."
|
|
?CCL13: PRINTR "Opening the door now would be a phenomenally stupid idea."
|
|
?CCL10: PRINTR "Why open the door to the emergency escape pod if there's no emergency?"
|
|
?CCL3: EQUAL? PRSA,V?CLOSE \?CCL15
|
|
FSET? POD-DOOR,OPENBIT /?CCL18
|
|
CALL1 IS-CLOSED
|
|
RSTACK
|
|
?CCL18: PRINTR "You can't close it yourself."
|
|
?CCL15: EQUAL? PRSA,V?THROUGH \FALSE
|
|
EQUAL? HERE,DECK-NINE \?CCL23
|
|
CALL2 DO-WALK,P?WEST
|
|
RSTACK
|
|
?CCL23: CALL2 DO-WALK,P?OUT
|
|
RSTACK
|
|
|
|
|
|
.FUNCT GANGWAY-DOOR-F
|
|
EQUAL? PRSA,V?OPEN \?CCL3
|
|
FSET? PRSO,OPENBIT \?CCL6
|
|
CALL1 ALREADY-OPEN
|
|
RSTACK
|
|
?CCL6: PRINTR "There doesn't seem to be any way to open it."
|
|
?CCL3: EQUAL? PRSA,V?CLOSE \FALSE
|
|
FSET? PRSO,OPENBIT \?CCL11
|
|
PRINTR "You can't close it yourself."
|
|
?CCL11: CALL1 IS-CLOSED
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-BLOWUP-FEINSTEIN
|
|
CALL QUEUE,I-BLOWUP-FEINSTEIN,-1
|
|
PUT STACK,0,1
|
|
INC 'BLOWUP-COUNTER
|
|
EQUAL? BLOWUP-COUNTER,5 \?CCL3
|
|
EQUAL? HERE,DECK-NINE \?CCL6
|
|
CALL2 JIGS-UP,STR?91
|
|
RSTACK
|
|
?CCL6: CRLF
|
|
PRINTI "Through the viewport of the pod you see the Feinstein dwindle as you head away. Bursts of light dot its hull. Suddenly, a huge explosion blows the Feinstein into tiny pieces, sending the escape pod tumbling away! "
|
|
CRLF
|
|
CALL QUEUE,I-POD-TRIP,-1
|
|
PUT STACK,0,1
|
|
CALL2 INT,I-BLOWUP-FEINSTEIN
|
|
PUT STACK,0,0
|
|
IN? ADVENTURER,SAFETY-WEB /?CCL9
|
|
RANDOM 100
|
|
LESS? 20,STACK /?CCL9
|
|
CALL2 JIGS-UP,STR?92
|
|
RSTACK
|
|
?CCL9: IN? ADVENTURER,SAFETY-WEB /FALSE
|
|
CRLF
|
|
PRINTR "You are thrown against the bulkhead, bruising a few limbs. The safety webbing might have offered a bit more protection."
|
|
?CCL3: EQUAL? BLOWUP-COUNTER,4 \?CCL15
|
|
CALL2 INT,I-BLATHER
|
|
PUT STACK,0,0
|
|
CALL2 INT,I-AMBASSADOR
|
|
PUT STACK,0,0
|
|
EQUAL? HERE,DECK-NINE \?CCL18
|
|
CRLF
|
|
PRINTR "Explosions continue to rock the ship."
|
|
?CCL18: CRLF
|
|
PRINTR "You feel the pod begin to slide down its ejection tube as explosions shake the mother ship."
|
|
?CCL15: EQUAL? BLOWUP-COUNTER,3 \?CCL20
|
|
FCLEAR POD-DOOR,OPENBIT
|
|
EQUAL? HERE,DECK-NINE \?CCL23
|
|
CRLF
|
|
PRINTR "More powerful explosions buffet the ship. The lights flicker madly, and the escape-pod bulkhead clangs shut."
|
|
?CCL23: EQUAL? HERE,ESCAPE-POD \?CCL25
|
|
CRLF
|
|
PRINTR "The pod door clangs shut as heavy explosions continue to buffet the Feinstein."
|
|
?CCL25: CALL2 JIGS-UP,STR?93
|
|
RSTACK
|
|
?CCL20: EQUAL? BLOWUP-COUNTER,2 \?CCL27
|
|
FCLEAR CORRIDOR-DOOR,OPENBIT
|
|
FCLEAR CORRIDOR-DOOR,INVISIBLE
|
|
FCLEAR GANGWAY-DOOR,OPENBIT
|
|
FCLEAR GANGWAY-DOOR,INVISIBLE
|
|
EQUAL? HERE,DECK-NINE \?CCL30
|
|
CRLF
|
|
PRINTR "More distant explosions! A narrow emergency bulkhead at the base of the gangway and a wider one along the corridor to starboard both crash shut!"
|
|
?CCL30: EQUAL? HERE,ESCAPE-POD,BRIG \?CCL32
|
|
CRLF
|
|
PRINTR "The ship shakes again. You hear, from close by, the sounds of emergency bulkheads closing."
|
|
?CCL32: EQUAL? HERE,GANGWAY \?CCL34
|
|
CRLF
|
|
PRINTR "Another explosion. A narrow bulkhead at the base of the gangway slams shut!"
|
|
?CCL34: CRLF
|
|
PRINTI "You are deafened by more explosions and by the sound of emergency bulkheads slamming closed. "
|
|
IN? BLATHER,HERE \?CCL37
|
|
PRINTI "Blather, foaming slightly at the mouth, screams at you to swab the decks"
|
|
JUMP ?CND35
|
|
?CCL37: MOVE BLATHER,HERE
|
|
PRINTI "Blather enters, looking confused, and begins ranting madly at you"
|
|
?CND35: PRINTR "."
|
|
?CCL27: EQUAL? BLOWUP-COUNTER,1 \FALSE
|
|
SET 'BRIGS-UP,0
|
|
FSET POD-DOOR,OPENBIT
|
|
CRLF
|
|
PRINTI "A massive explosion rocks the ship. Echoes from the explosion resound deafeningly down the halls. "
|
|
EQUAL? HERE,DECK-NINE \?CCL42
|
|
PRINTI "The door to port slides open. "
|
|
IN? AMBASSADOR,HERE \?CCL45
|
|
REMOVE AMBASSADOR
|
|
REMOVE CELERY
|
|
PRINTR "The ambassador squawks frantically, evacuates a massive load of gooey slime, and rushes away."
|
|
?CCL45: IN? BLATHER,HERE \?CCL47
|
|
REMOVE BLATHER
|
|
PRINTR "Blather, confused by this nonroutine occurrence, orders you to continue scrubbing the floor, and then dashes off."
|
|
?CCL47: CRLF
|
|
RTRUE
|
|
?CCL42: EQUAL? HERE,ESCAPE-POD,GANGWAY,BRIG \?CCL49
|
|
CRLF
|
|
RTRUE
|
|
?CCL49: PRINTR "Blather, looking slightly disoriented, barks at you to resume your assigned duties."
|
|
|
|
|
|
.FUNCT I-POD-TRIP
|
|
INC 'TRIP-COUNTER
|
|
EQUAL? TRIP-COUNTER,1 \?CCL3
|
|
CRLF
|
|
PRINTR "As the escape pod tumbles away from the former location of the Feinstein, its gyroscopes whine. The pod slowly stops tumbling. Lights on the control panel blink furiously as the autopilot searches for a reasonable destination."
|
|
?CCL3: EQUAL? TRIP-COUNTER,2 \?CCL5
|
|
CRLF
|
|
PRINTR "The auxiliary rockets fire briefly, and a nearby planet swings into view through the port. It appears to be almost entirely ocean, with just a few visible islands and an unusually small polar ice cap. A moment later, the system's sun swings into view, and the viewport polarizes into a featureless black rectangle."
|
|
?CCL5: EQUAL? TRIP-COUNTER,3 \?CCL7
|
|
CRLF
|
|
PRINTR "The main thrusters fire a long, gentle burst. A monotonic voice issues from the control panel. ""Approaching planet...human-habitable."""
|
|
?CCL7: EQUAL? TRIP-COUNTER,7 \?CCL9
|
|
CRLF
|
|
PRINTR "The pod is buffeted as it enters the planet's atmosphere."
|
|
?CCL9: EQUAL? TRIP-COUNTER,8 \?CCL11
|
|
CRLF
|
|
PRINTR "You feel the temperature begin to rise, and the pod's climate control system roars as it labors to compensate."
|
|
?CCL11: EQUAL? TRIP-COUNTER,9 \?CCL13
|
|
CRLF
|
|
PRINTR "The viewport suddenly becomes transparent again, giving you a view of endless ocean below. The lights on the control panel flash madly as the pod's computer searches for a suitable landing site. The thrusters fire long and hard, slowing the pod's descent."
|
|
?CCL13: EQUAL? TRIP-COUNTER,10 \?CCL15
|
|
CRLF
|
|
PRINTR "The pod is now approaching the closer of a pair of islands. It appears to be surrounded by sheer cliffs rising from the water, and is topped by a wide plateau. The plateau seems to be covered by a sprawling complex of buildings."
|
|
?CCL15: EQUAL? TRIP-COUNTER,11 \FALSE
|
|
IN? ADVENTURER,SAFETY-WEB \?CCL20
|
|
MOVE FOOD-KIT,HERE
|
|
MOVE TOWEL,HERE
|
|
CRLF
|
|
PRINTI "The pod lands with a thud. Through the viewport you can see a rocky cleft and some water below. The pod rocks gently back and forth as if it was precariously balanced. A previously unseen panel slides open, revealing some emergency provisions, including a survival kit and a towel."
|
|
CRLF
|
|
SET 'TRIP-COUNTER,15
|
|
CALL2 INT,I-POD-TRIP
|
|
PUT STACK,0,0
|
|
RTRUE
|
|
?CCL20: CALL2 JIGS-UP,STR?94
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-SINK-POD
|
|
INC 'SINK-COUNTER
|
|
EQUAL? SINK-COUNTER,3 \?CCL3
|
|
EQUAL? HERE,ESCAPE-POD \?CCL3
|
|
CRLF
|
|
PRINTR "The pod is now completely submerged, and you feel it smash against underwater rocks. Bubbles streaming upward past the window indicate that the pod is continuing to sink."
|
|
?CCL3: EQUAL? SINK-COUNTER,4 \?CCL7
|
|
EQUAL? HERE,ESCAPE-POD \?CCL7
|
|
FSET? POD-DOOR,OPENBIT /?CCL7
|
|
CRLF
|
|
PRINTR "The pod creaks ominously from the increasing pressure."
|
|
?CCL7: EQUAL? SINK-COUNTER,5 \FALSE
|
|
EQUAL? HERE,ESCAPE-POD \FALSE
|
|
FSET? POD-DOOR,OPENBIT \?CCL17
|
|
CALL2 JIGS-UP,STR?95
|
|
RSTACK
|
|
?CCL17: CALL2 JIGS-UP,STR?96
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SLOT-F
|
|
EQUAL? PRSA,V?PUT \?CCL3
|
|
EQUAL? SLOT,PRSI \?CCL3
|
|
PRINTR "The slot is shallow, so you can't put anything in it. It may be possible to slide something through the slot, though."
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL7
|
|
PRINTR "The slot is about ten centimeters wide, but only about two centimeters deep. It is surrounded on its long sides by parallel ridges of metal."
|
|
?CCL7: EQUAL? PRSA,V?SLIDE \FALSE
|
|
EQUAL? SLOT,PRSI \FALSE
|
|
MOVE PRSO,ADVENTURER
|
|
FSET? PRSO,SCRAMBLEDBIT \?CCL14
|
|
PRINTR "A sign flashes ""Magnetik striip randumiizd...konsult Prajekt Handbuk abowt propur kaar uv awtharazaashun kardz."""
|
|
?CCL14: EQUAL? PRSO,KITCHEN-CARD \?CCL16
|
|
EQUAL? HERE,MESS-HALL \?CCL19
|
|
FSET? KITCHEN-DOOR,OPENBIT \?CCL22
|
|
PRINTR "Nothing happens."
|
|
?CCL22: FSET KITCHEN-DOOR,OPENBIT
|
|
CALL QUEUE,I-KITCHEN-DOOR-CLOSES,50
|
|
PUT STACK,0,1
|
|
PRINTI "The kitchen door quietly slides open."
|
|
CRLF
|
|
ICALL1 FLOYD-REVEAL-CARD-F
|
|
RTRUE
|
|
?CCL19: PRINT WRONG-CARD
|
|
CRLF
|
|
RTRUE
|
|
?CCL16: EQUAL? PRSO,UPPER-ELEVATOR-CARD \?CCL24
|
|
EQUAL? HERE,UPPER-ELEVATOR \?CCL27
|
|
SET 'UPPER-ELEVATOR-ON,TRUE-VALUE
|
|
CALL QUEUE,I-TURNOFF-UPPER-ELEVATOR,180
|
|
PUT STACK,0,1
|
|
PRINT ELEVATOR-ENABLED
|
|
CRLF
|
|
ICALL1 FLOYD-REVEAL-CARD-F
|
|
RTRUE
|
|
?CCL27: PRINT WRONG-CARD
|
|
CRLF
|
|
RTRUE
|
|
?CCL24: EQUAL? PRSO,LOWER-ELEVATOR-CARD \?CCL29
|
|
EQUAL? HERE,LOWER-ELEVATOR \?CCL32
|
|
SET 'LOWER-ELEVATOR-ON,TRUE-VALUE
|
|
CALL QUEUE,I-TURNOFF-LOWER-ELEVATOR,200
|
|
PUT STACK,0,1
|
|
PRINT ELEVATOR-ENABLED
|
|
CRLF
|
|
RTRUE
|
|
?CCL32: PRINT WRONG-CARD
|
|
CRLF
|
|
RTRUE
|
|
?CCL29: EQUAL? PRSO,TELEPORTATION-CARD \?CCL34
|
|
EQUAL? HERE,BOOTH-1,BOOTH-2,BOOTH-3 \?CCL37
|
|
SET 'TELEPORTATION-ON,TRUE-VALUE
|
|
CALL QUEUE,I-TURNOFF-TELEPORTATION,30
|
|
PUT STACK,0,1
|
|
PRINTR "Nothing happens for a moment. Then a light flashes ""Redee."""
|
|
?CCL37: PRINT WRONG-CARD
|
|
CRLF
|
|
RTRUE
|
|
?CCL34: EQUAL? PRSO,SHUTTLE-CARD \?CCL39
|
|
CALL1 SHUTTLE-ACTIVATE
|
|
RSTACK
|
|
?CCL39: EQUAL? PRSO,MINI-CARD \?CCL41
|
|
EQUAL? HERE,MINI-BOOTH \?CCL44
|
|
SET 'MINI-ACTIVATED,TRUE-VALUE
|
|
CALL QUEUE,I-TURNOFF-MINI,30
|
|
PUT STACK,0,1
|
|
PRINTR "A melodic high-pitched voice says ""Miniaturization and teleportation booth activated. Please type in damaged sector number."""
|
|
?CCL44: PRINT WRONG-CARD
|
|
CRLF
|
|
RTRUE
|
|
?CCL41: EQUAL? PRSO,ID-CARD \FALSE
|
|
PRINT WRONG-CARD
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FLOYD-REVEAL-CARD-F
|
|
IN? FLOYD,HERE \FALSE
|
|
ZERO? CARD-REVEALED \FALSE
|
|
EQUAL? DAY,2 \?PRD8
|
|
LESS? INTERNAL-MOVES,5000 \?PRD8
|
|
RANDOM 100
|
|
LESS? 5,STACK \?CCL3
|
|
?PRD8: EQUAL? DAY,2 \?PRD12
|
|
GRTR? INTERNAL-MOVES,4999 \?PRD12
|
|
RANDOM 100
|
|
LESS? 10,STACK \?CCL3
|
|
?PRD12: EQUAL? DAY,3 \?PRD16
|
|
LESS? INTERNAL-MOVES,5000 \?PRD16
|
|
RANDOM 100
|
|
LESS? 20,STACK \?CCL3
|
|
?PRD16: EQUAL? DAY,3 \?PRD20
|
|
GRTR? INTERNAL-MOVES,4999 \?PRD20
|
|
RANDOM 100
|
|
LESS? 40,STACK \?CCL3
|
|
?PRD20: GRTR? DAY,3 \FALSE
|
|
?CCL3: SET 'CARD-REVEALED,TRUE-VALUE
|
|
SET 'FLOYD-SPOKE,TRUE-VALUE
|
|
ZERO? CARD-STOLEN \?CCL26
|
|
MOVE LOWER-ELEVATOR-CARD,FLOYD
|
|
PRINTR "Floyd claps his hands with excitement. ""Those cards are really neat, huh? Floyd has one for himself--see?"" He reaches behind one of his panels and retrieves a magnetic-striped card. He waves it exuberantly in the air."
|
|
?CCL26: PRINTR "Floyd bobs up and down with excitement. ""Those cards are really neat! Floyd has one, too."" He begins searching through his compartments, but finds nothing. He scratches his head and looks confused."
|
|
|
|
|
|
.FUNCT I-KITCHEN-DOOR-CLOSES
|
|
EQUAL? HERE,KITCHEN \?CCL3
|
|
CALL QUEUE,I-KITCHEN-DOOR-CLOSES,-1
|
|
PUT STACK,0,1
|
|
RFALSE
|
|
?CCL3: FCLEAR KITCHEN-DOOR,OPENBIT
|
|
CALL2 INT,I-KITCHEN-DOOR-CLOSES
|
|
PUT STACK,0,0
|
|
EQUAL? HERE,MESS-HALL \FALSE
|
|
CRLF
|
|
PRINTR "The kitchen door slides quietly closed."
|
|
|
|
|
|
.FUNCT TELEPORT,BOOTH
|
|
EQUAL? PRSA,V?PUSH \FALSE
|
|
EQUAL? TELEPORTATION-ON,TRUE-VALUE \?CCL6
|
|
PRINTI "You experience a strange feeling in the pit of your stomach."
|
|
CRLF
|
|
IN? FLOYD,HERE \?CND7
|
|
PRINTI "Floyd gives a terrified squeal, and clutches at his guidance mechanism."
|
|
CRLF
|
|
SET 'FLOYD-SPOKE,TRUE-VALUE
|
|
CALL QUEUE,I-FLOYD,1
|
|
PUT STACK,0,1
|
|
?CND7: ICALL ROB,HERE,BOOTH
|
|
ICALL GOTO,BOOTH,FALSE-VALUE
|
|
CALL2 INT,I-TURNOFF-TELEPORTATION
|
|
PUT STACK,0,0
|
|
SET 'TELEPORTATION-ON,FALSE-VALUE
|
|
RTRUE
|
|
?CCL6: PRINTR "A sign flashes ""Teleportaashun buux not aktivaatid."""
|
|
|
|
|
|
.FUNCT TELEPORTATION-BUTTON-1-F
|
|
CALL2 TELEPORT,BOOTH-1
|
|
RSTACK
|
|
|
|
|
|
.FUNCT TELEPORTATION-BUTTON-2-F
|
|
CALL2 TELEPORT,BOOTH-2
|
|
RSTACK
|
|
|
|
|
|
.FUNCT TELEPORTATION-BUTTON-3-F
|
|
CALL2 TELEPORT,BOOTH-3
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-TURNOFF-TELEPORTATION
|
|
SET 'TELEPORTATION-ON,FALSE-VALUE
|
|
EQUAL? HERE,BOOTH-1,BOOTH-2,BOOTH-3 \FALSE
|
|
CRLF
|
|
PRINTR "The ready light goes dark."
|
|
|
|
|
|
.FUNCT GLOBAL-SHUTTLE-F
|
|
EQUAL? PRSA,V?WALK-TO,V?THROUGH,V?ENTER /?CTR2
|
|
EQUAL? PRSA,V?BOARD \?CCL3
|
|
?CTR2: EQUAL? HERE,SHUTTLE-CAR-ALFIE,ALFIE-CONTROL-EAST,ALFIE-CONTROL-WEST /?CTR7
|
|
EQUAL? HERE,SHUTTLE-CAR-BETTY,BETTY-CONTROL-EAST,BETTY-CONTROL-WEST \?CCL8
|
|
?CTR7: PRINTR "You ARE in the shuttle car."
|
|
?CCL8: PRINTR "Use 'north' or 'south'."
|
|
?CCL3: EQUAL? PRSA,V?DROP,V?DISEMBARK,V?EXIT \FALSE
|
|
EQUAL? HERE,SHUTTLE-CAR-ALFIE \?CCL15
|
|
CALL2 DO-WALK,P?NORTH
|
|
RSTACK
|
|
?CCL15: EQUAL? HERE,SHUTTLE-CAR-BETTY \?CCL17
|
|
CALL2 DO-WALK,P?SOUTH
|
|
RSTACK
|
|
?CCL17: EQUAL? HERE,BETTY-CONTROL-EAST,BETTY-CONTROL-WEST /?CTR18
|
|
EQUAL? HERE,ALFIE-CONTROL-EAST,ALFIE-CONTROL-WEST \?CCL19
|
|
?CTR18: PRINTR "You can't exit the shuttle car from here."
|
|
?CCL19: PRINTR "You're not in the shuttle car!"
|
|
|
|
|
|
.FUNCT SHUTTLE-CAR-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is the cabin of a large transport, with seating for around 20 people plus space for freight. There are open doors at the eastern and western ends of the cabin, and a doorway leads out to a wide platform to the "
|
|
EQUAL? HERE,SHUTTLE-CAR-ALFIE \?CCL6
|
|
PRINTI "north"
|
|
JUMP ?CND4
|
|
?CCL6: PRINTI "south"
|
|
?CND4: PRINTR "."
|
|
|
|
|
|
.FUNCT CONTROL-CABIN-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is a small control cabin. A control panel contains a slot, a lever, and a display. The lever can be set at a central position, or it could be pushed up to a position labelled ""+"", or pulled down to a position labelled ""-"". It is currently at the "
|
|
ZERO? LEVER-SETTING \?CCL6
|
|
PRINTI "center"
|
|
JUMP ?CND4
|
|
?CCL6: EQUAL? LEVER-SETTING,1 \?CCL8
|
|
PRINTI "upper"
|
|
JUMP ?CND4
|
|
?CCL8: PRINTI "lower"
|
|
?CND4: PRINTI " setting. The display, a digital readout, currently reads "
|
|
PRINTN SHUTTLE-VELOCITY
|
|
PRINTI ". Through the cabin window you can see "
|
|
ICALL1 DESCRIBE-VIEW
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DESCRIBE-VIEW
|
|
EQUAL? HERE,ALFIE-CONTROL-WEST \?PRD5
|
|
ZERO? ALFIE-AT-KALAMONTEE \?CTR2
|
|
?PRD5: EQUAL? HERE,BETTY-CONTROL-WEST \?PRD8
|
|
ZERO? BETTY-AT-KALAMONTEE \?CTR2
|
|
?PRD8: EQUAL? HERE,ALFIE-CONTROL-EAST \?PRD11
|
|
ZERO? ALFIE-AT-KALAMONTEE /?CTR2
|
|
?PRD11: EQUAL? HERE,BETTY-CONTROL-EAST \?CCL3
|
|
ZERO? BETTY-AT-KALAMONTEE \?CCL3
|
|
?CTR2: PRINTI "a featureless concrete wall."
|
|
RTRUE
|
|
?CCL3: ZERO? SHUTTLE-MOVING /?CCL17
|
|
EQUAL? SHUTTLE-COUNTER,23 \?CCL17
|
|
PRINTI "parallel rails ending at a brightly lit station ahead."
|
|
RTRUE
|
|
?CCL17: PRINTI "parallel rails running along the floor of a long tunnel, vanishing in the distance."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SHUTTLE-DOOR-F
|
|
EQUAL? PRSA,V?OPEN \FALSE
|
|
ZERO? SHUTTLE-MOVING /?CCL6
|
|
PRINTR "A recorded voice says ""Operator should remain in control cabin while shuttle car is between stations."""
|
|
?CCL6: PRINTR "Are you sure it isn't?"
|
|
|
|
|
|
.FUNCT SHUTTLE-ENTER-F
|
|
EQUAL? HERE,KALAMONTEE-PLATFORM \?CCL3
|
|
EQUAL? PRSO,P?NORTH \?CCL6
|
|
ZERO? BETTY-AT-KALAMONTEE /?CCL9
|
|
RETURN SHUTTLE-CAR-BETTY
|
|
?CCL9: PRINT CANT-GO
|
|
CRLF
|
|
RFALSE
|
|
?CCL6: EQUAL? PRSO,P?SOUTH \FALSE
|
|
ZERO? ALFIE-AT-KALAMONTEE /?CCL14
|
|
RETURN SHUTTLE-CAR-ALFIE
|
|
?CCL14: PRINT CANT-GO
|
|
CRLF
|
|
RFALSE
|
|
?CCL3: EQUAL? HERE,LAWANDA-PLATFORM \FALSE
|
|
EQUAL? PRSO,P?NORTH \?CCL19
|
|
ZERO? BETTY-AT-KALAMONTEE /?CCL22
|
|
PRINT CANT-GO
|
|
CRLF
|
|
RFALSE
|
|
?CCL22: RETURN SHUTTLE-CAR-BETTY
|
|
?CCL19: EQUAL? PRSO,P?SOUTH \FALSE
|
|
ZERO? ALFIE-AT-KALAMONTEE /?CCL27
|
|
PRINT CANT-GO
|
|
CRLF
|
|
RFALSE
|
|
?CCL27: RETURN SHUTTLE-CAR-ALFIE
|
|
|
|
|
|
.FUNCT SHUTTLE-EXIT-F
|
|
EQUAL? HERE,SHUTTLE-CAR-ALFIE \?CCL3
|
|
ZERO? ALFIE-AT-KALAMONTEE /?CCL6
|
|
RETURN KALAMONTEE-PLATFORM
|
|
?CCL6: RETURN LAWANDA-PLATFORM
|
|
?CCL3: EQUAL? HERE,SHUTTLE-CAR-BETTY \FALSE
|
|
ZERO? BETTY-AT-KALAMONTEE /?CCL11
|
|
RETURN KALAMONTEE-PLATFORM
|
|
?CCL11: RETURN LAWANDA-PLATFORM
|
|
|
|
|
|
.FUNCT SHUTTLE-ACTIVATE
|
|
EQUAL? HERE,ALFIE-CONTROL-EAST,ALFIE-CONTROL-WEST /?CCL3
|
|
EQUAL? HERE,BETTY-CONTROL-EAST,BETTY-CONTROL-WEST /?CCL3
|
|
PRINT WRONG-CARD
|
|
CRLF
|
|
RTRUE
|
|
?CCL3: ZERO? ALFIE-BROKEN /?PRD9
|
|
EQUAL? HERE,ALFIE-CONTROL-EAST,ALFIE-CONTROL-WEST /?CTR6
|
|
?PRD9: ZERO? BETTY-BROKEN /?CCL7
|
|
EQUAL? HERE,BETTY-CONTROL-EAST,BETTY-CONTROL-WEST \?CCL7
|
|
?CTR6: PRINTR "A garbled recording mentions that the shuttle car has undergone some damage and that the repair robot has been summoned."
|
|
?CCL7: GRTR? INTERNAL-MOVES,6000 \?CND1
|
|
PRINTR "A recorded voice explains that using the shuttle car during the evening hours requires special authorization."
|
|
?CND1: EQUAL? HERE,ALFIE-CONTROL-EAST \?CCL17
|
|
ZERO? SHUTTLE-ON /?CCL20
|
|
PRINT SHUTTLE-RECORDING-1
|
|
CRLF
|
|
RTRUE
|
|
?CCL20: ZERO? ALFIE-AT-KALAMONTEE \?CCL22
|
|
PRINT SHUTTLE-RECORDING-2
|
|
CRLF
|
|
RTRUE
|
|
?CCL22: SET 'SHUTTLE-ON,TRUE-VALUE
|
|
CALL QUEUE,I-TURNOFF-SHUTTLE,80
|
|
PUT STACK,0,1
|
|
PRINT SHUTTLE-RECORDING-3
|
|
CRLF
|
|
RTRUE
|
|
?CCL17: EQUAL? HERE,ALFIE-CONTROL-WEST \?CCL24
|
|
ZERO? SHUTTLE-ON /?CCL27
|
|
PRINT SHUTTLE-RECORDING-1
|
|
CRLF
|
|
RTRUE
|
|
?CCL27: ZERO? ALFIE-AT-KALAMONTEE /?CCL29
|
|
PRINT SHUTTLE-RECORDING-2
|
|
CRLF
|
|
RTRUE
|
|
?CCL29: SET 'SHUTTLE-ON,TRUE-VALUE
|
|
CALL QUEUE,I-TURNOFF-SHUTTLE,80
|
|
PUT STACK,0,1
|
|
PRINT SHUTTLE-RECORDING-3
|
|
CRLF
|
|
RTRUE
|
|
?CCL24: EQUAL? HERE,BETTY-CONTROL-EAST \?CCL31
|
|
ZERO? SHUTTLE-ON /?CCL34
|
|
PRINT SHUTTLE-RECORDING-1
|
|
CRLF
|
|
RTRUE
|
|
?CCL34: ZERO? BETTY-AT-KALAMONTEE \?CCL36
|
|
PRINT SHUTTLE-RECORDING-2
|
|
CRLF
|
|
RTRUE
|
|
?CCL36: SET 'SHUTTLE-ON,TRUE-VALUE
|
|
CALL QUEUE,I-TURNOFF-SHUTTLE,80
|
|
PUT STACK,0,1
|
|
PRINT SHUTTLE-RECORDING-3
|
|
CRLF
|
|
RTRUE
|
|
?CCL31: EQUAL? HERE,BETTY-CONTROL-WEST \?CCL38
|
|
ZERO? SHUTTLE-ON /?CCL41
|
|
PRINT SHUTTLE-RECORDING-1
|
|
CRLF
|
|
RTRUE
|
|
?CCL41: ZERO? BETTY-AT-KALAMONTEE /?CCL43
|
|
PRINT SHUTTLE-RECORDING-2
|
|
CRLF
|
|
RTRUE
|
|
?CCL43: SET 'SHUTTLE-ON,TRUE-VALUE
|
|
CALL QUEUE,I-TURNOFF-SHUTTLE,80
|
|
PUT STACK,0,1
|
|
PRINT SHUTTLE-RECORDING-3
|
|
CRLF
|
|
RTRUE
|
|
?CCL38: PRINT WRONG-CARD
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-TURNOFF-SHUTTLE
|
|
ZERO? SHUTTLE-MOVING /?CCL3
|
|
CALL QUEUE,I-TURNOFF-SHUTTLE,80
|
|
PUT STACK,0,1
|
|
RFALSE
|
|
?CCL3: SET 'SHUTTLE-ON,FALSE-VALUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT LEVER-F
|
|
EQUAL? PRSA,V?PUSH-UP,V?PUSH \?CCL3
|
|
ZERO? SHUTTLE-ON /?CCL6
|
|
EQUAL? LEVER-SETTING,1 \?CCL9
|
|
PRINTR "The lever is already in the upper position."
|
|
?CCL9: ZERO? LEVER-SETTING \?CCL11
|
|
SET 'LEVER-SETTING,1
|
|
CALL QUEUE,I-SHUTTLE,1
|
|
PUT STACK,0,1
|
|
PRINTR "The lever is now in the upper position."
|
|
?CCL11: SET 'LEVER-SETTING,0
|
|
PRINTR "The lever is now in the central position."
|
|
?CCL6: PRINT SHUTTLE-RECORDING-4
|
|
CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?PUSH-DOWN,V?PULL \FALSE
|
|
ZERO? SHUTTLE-ON /?CCL16
|
|
EQUAL? LEVER-SETTING,1 \?CCL19
|
|
SET 'LEVER-SETTING,0
|
|
PRINTR "The lever is now in the central position."
|
|
?CCL19: ZERO? LEVER-SETTING \?CCL21
|
|
ZERO? SHUTTLE-VELOCITY \?CCL24
|
|
PRINTR "The lever immediately pops back to the central position."
|
|
?CCL24: SET 'LEVER-SETTING,-1
|
|
CALL QUEUE,I-SHUTTLE,1
|
|
PUT STACK,0,1
|
|
PRINTR "The lever is now in the lower position."
|
|
?CCL21: PRINTR "The lever is already in the lower position."
|
|
?CCL16: PRINT SHUTTLE-RECORDING-4
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-SHUTTLE
|
|
CALL QUEUE,I-SHUTTLE,-1
|
|
PUT STACK,0,1
|
|
ZERO? SHUTTLE-MOVING \?CCL3
|
|
SET 'SHUTTLE-MOVING,TRUE-VALUE
|
|
FCLEAR SHUTTLE-DOOR,OPENBIT
|
|
FCLEAR SHUTTLE-DOOR,INVISIBLE
|
|
PRINTI "The control cabin door slides shut and the shuttle car begins to move "
|
|
EQUAL? LEVER-SETTING,1 \FALSE
|
|
ADD SHUTTLE-VELOCITY,5 >SHUTTLE-VELOCITY
|
|
PRINTR "forward! The display changes to 5."
|
|
?CCL3: GRTR? SHUTTLE-VELOCITY,0 \?CND7
|
|
INC 'SHUTTLE-COUNTER
|
|
?CND7: EQUAL? LEVER-SETTING,1 \?CCL11
|
|
ADD SHUTTLE-VELOCITY,5 >SHUTTLE-VELOCITY
|
|
JUMP ?CND9
|
|
?CCL11: EQUAL? LEVER-SETTING,-1 \?CND9
|
|
GRTR? SHUTTLE-VELOCITY,0 \?CCL15
|
|
SUB SHUTTLE-VELOCITY,5 >SHUTTLE-VELOCITY
|
|
JUMP ?CND9
|
|
?CCL15: SET 'LEVER-SETTING,0
|
|
PRINTI "The shuttle car comes to a stop and the lever pops back to the central position."
|
|
CRLF
|
|
?CND9: EQUAL? SHUTTLE-COUNTER,24 \?CCL18
|
|
CALL1 DESCRIBE-SHUTTLE-ARRIVE
|
|
RSTACK
|
|
?CCL18: GRTR? SHUTTLE-VELOCITY,0 \FALSE
|
|
ICALL1 DESCRIBE-SHUTTLE-TRIP
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DESCRIBE-SHUTTLE-TRIP
|
|
PRINTI "The shuttle car continues to move. The display "
|
|
ZERO? LEVER-SETTING \?CCL3
|
|
PRINTI "still reads "
|
|
JUMP ?CND1
|
|
?CCL3: PRINTI "blinks, and now reads "
|
|
?CND1: PRINTN SHUTTLE-VELOCITY
|
|
PRINTC 46
|
|
CRLF
|
|
EQUAL? SHUTTLE-COUNTER,2 \?CND4
|
|
PRINTI "You pass a sign which says ""Limit 45."""
|
|
CRLF
|
|
?CND4: EQUAL? SHUTTLE-COUNTER,12 \?CND6
|
|
PRINTI "The tunnel levels out and begins to slope upward. A sign flashes by which reads ""Hafwaa Mark -- Beegin Deeseluraashun."""
|
|
CRLF
|
|
?CND6: EQUAL? SHUTTLE-COUNTER,20 \?CND8
|
|
PRINT SIGN-PASS
|
|
PRINTI """15."""
|
|
CRLF
|
|
?CND8: EQUAL? SHUTTLE-COUNTER,21 \?CND10
|
|
PRINT SIGN-PASS
|
|
PRINTI """10."""
|
|
CRLF
|
|
?CND10: EQUAL? SHUTTLE-COUNTER,22 \?CND12
|
|
PRINT SIGN-PASS
|
|
PRINTI """5."""
|
|
CRLF
|
|
?CND12: EQUAL? SHUTTLE-COUNTER,23 \FALSE
|
|
PRINTR "The shuttle car is approaching a brightly lit area. As you near it, you make out the concrete platforms of a shuttle station."
|
|
|
|
|
|
.FUNCT DESCRIBE-SHUTTLE-ARRIVE
|
|
EQUAL? SHUTTLE-COUNTER,24 \FALSE
|
|
ZERO? SHUTTLE-VELOCITY \?CCL6
|
|
PRINTI "The shuttle car glides into the station and comes to rest at the concrete platform. You hear the cabin doors slide open."
|
|
CRLF
|
|
JUMP ?CND4
|
|
?CCL6: LESS? SHUTTLE-VELOCITY,20 \?CCL8
|
|
EQUAL? HERE,ALFIE-CONTROL-EAST,ALFIE-CONTROL-WEST \?CCL11
|
|
SET 'ALFIE-BROKEN,TRUE-VALUE
|
|
JUMP ?CND9
|
|
?CCL11: SET 'BETTY-BROKEN,TRUE-VALUE
|
|
?CND9: PRINTI "The shuttle car rumbles through the station and smashes into the wall at the far end. You are thrown forward into the control panel. Both you and the shuttle car produce unhealthy crunching sounds as the cabin doors creak slowly open."
|
|
CRLF
|
|
JUMP ?CND4
|
|
?CCL8: ICALL2 JIGS-UP,STR?104
|
|
?CND4: SET 'SHUTTLE-VELOCITY,0
|
|
SET 'SHUTTLE-MOVING,FALSE-VALUE
|
|
SET 'SHUTTLE-COUNTER,0
|
|
SET 'LEVER-SETTING,0
|
|
SET 'SHUTTLE-ON,FALSE-VALUE
|
|
FSET SHUTTLE-DOOR,INVISIBLE
|
|
FSET SHUTTLE-DOOR,OPENBIT
|
|
CALL2 INT,I-SHUTTLE
|
|
PUT STACK,0,0
|
|
EQUAL? HERE,ALFIE-CONTROL-EAST,ALFIE-CONTROL-WEST \?CCL14
|
|
ZERO? ALFIE-AT-KALAMONTEE /?CCL17
|
|
SET 'ALFIE-AT-KALAMONTEE,FALSE-VALUE
|
|
RETURN ALFIE-AT-KALAMONTEE
|
|
?CCL17: SET 'ALFIE-AT-KALAMONTEE,TRUE-VALUE
|
|
RETURN ALFIE-AT-KALAMONTEE
|
|
?CCL14: ZERO? BETTY-AT-KALAMONTEE /?CCL20
|
|
SET 'BETTY-AT-KALAMONTEE,FALSE-VALUE
|
|
RETURN BETTY-AT-KALAMONTEE
|
|
?CCL20: SET 'BETTY-AT-KALAMONTEE,TRUE-VALUE
|
|
RETURN BETTY-AT-KALAMONTEE
|
|
|
|
|
|
.FUNCT I-SLEEP-WARNINGS
|
|
INC 'SLEEPY-LEVEL
|
|
IN? ADVENTURER,BED \?CND1
|
|
CRLF
|
|
PRINTI "You suddenly realize how tired you were and how comfortable the bed is. You should be asleep in no time."
|
|
CRLF
|
|
CALL2 INT,I-SLEEP-WARNINGS
|
|
PUT STACK,0,0
|
|
CALL QUEUE,I-FALL-ASLEEP,16
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?CND1: EQUAL? SLEEPY-LEVEL,1 \?CCL5
|
|
CRLF
|
|
PRINTI "You begin to feel weary. It might be time to think about finding a nice safe place to sleep."
|
|
CRLF
|
|
CALL QUEUE,I-SLEEP-WARNINGS,400
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?CCL5: EQUAL? SLEEPY-LEVEL,2 \?CCL7
|
|
CRLF
|
|
PRINTI "You're really tired now. You'd better find a place to sleep real soon."
|
|
CRLF
|
|
CALL QUEUE,I-SLEEP-WARNINGS,135
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?CCL7: EQUAL? SLEEPY-LEVEL,3 \?CCL9
|
|
CRLF
|
|
PRINTI "If you don't get some sleep soon you'll probably drop."
|
|
CRLF
|
|
CALL QUEUE,I-SLEEP-WARNINGS,60
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?CCL9: EQUAL? SLEEPY-LEVEL,4 \?CCL11
|
|
CRLF
|
|
PRINTI "You can barely keep your eyes open."
|
|
CRLF
|
|
CALL QUEUE,I-SLEEP-WARNINGS,50
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?CCL11: EQUAL? SLEEPY-LEVEL,5 \FALSE
|
|
EQUAL? HERE,BED \?CCL16
|
|
CRLF
|
|
PRINTI "You slowly sink into a deep and blissful sleep."
|
|
CRLF
|
|
CALL1 DREAMING
|
|
RSTACK
|
|
?CCL16: EQUAL? HERE,DORM-A,DORM-B /?CTR17
|
|
EQUAL? HERE,DORM-C,DORM-D \?CCL18
|
|
?CTR17: CRLF
|
|
PRINTI "You climb into one of the bunk beds and immediately fall asleep."
|
|
CRLF
|
|
ICALL2 GOTO,BED
|
|
CALL1 DREAMING
|
|
RSTACK
|
|
?CCL18: CRLF
|
|
PRINTI "You can't stay awake a moment longer. You drop to the ground and fall into a deep but fitful sleep."
|
|
CRLF
|
|
EQUAL? DAY,1 \?PRD25
|
|
EQUAL? HERE,CRAG /?CTR22
|
|
?PRD25: EQUAL? DAY,3 \?PRD28
|
|
EQUAL? HERE,BALCONY /?CTR22
|
|
?PRD28: EQUAL? DAY,5 \?CCL23
|
|
EQUAL? HERE,WINDING-STAIR \?CCL23
|
|
?CTR22: CALL2 JIGS-UP,STR?106
|
|
RSTACK
|
|
?CCL23: RANDOM 100
|
|
LESS? 30,STACK /?CCL34
|
|
CALL2 JIGS-UP,STR?107
|
|
RSTACK
|
|
?CCL34: CALL1 DREAMING
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BED-F,RARG
|
|
ASSIGNED? 'RARG /?CND1
|
|
SET 'RARG,M-OBJECT
|
|
?CND1: EQUAL? PRSA,V?WALK \?CCL5
|
|
EQUAL? RARG,M-BEG \?CCL5
|
|
PRINTR "You'll have to stand up, first."
|
|
?CCL5: EQUAL? PRSA,V?CLOSE,V?OPEN,V?TAKE /?PRD11
|
|
EQUAL? PRSA,V?RUB \?CCL9
|
|
?PRD11: EQUAL? RARG,M-BEG \?CCL9
|
|
EQUAL? PRSO,BED /?CCL9
|
|
PRINTR "You can't reach it from here."
|
|
?CCL9: ZERO? RARG \FALSE
|
|
EQUAL? PRSA,V?WALK-TO,V?BOARD,V?THROUGH \?CCL18
|
|
EQUAL? HERE,INFIRMARY \?CCL21
|
|
CALL2 JIGS-UP,STR?108
|
|
RSTACK
|
|
?CCL21: GRTR? SLEEPY-LEVEL,0 \?CCL23
|
|
ICALL2 GOTO,BED
|
|
CALL QUEUE,I-FALL-ASLEEP,16
|
|
PUT STACK,0,1
|
|
CALL2 INT,I-SLEEP-WARNINGS
|
|
PUT STACK,0,0
|
|
PRINTR "Ahhh...the bed is soft and comfortable. You should be asleep in short order."
|
|
?CCL23: ICALL2 GOTO,BED
|
|
PRINTR "You are now in bed."
|
|
?CCL18: EQUAL? PRSA,V?EXIT,V?STAND,V?DISEMBARK /?PRD27
|
|
EQUAL? PRSA,V?DROP \?CCL25
|
|
?PRD27: CALL2 INT,I-FALL-ASLEEP
|
|
GET STACK,C-TICK
|
|
ZERO? STACK /?CCL25
|
|
PRINTR "How could you suggest such a thing when you're so tired and this bed is so comfy?"
|
|
?CCL25: EQUAL? PRSA,V?DROP,V?EXIT,V?LEAVE \?CCL31
|
|
ICALL PERFORM,V?DISEMBARK,BED
|
|
RTRUE
|
|
?CCL31: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? BED,PRSI \FALSE
|
|
MOVE PRSO,HERE
|
|
PRINTI "The "
|
|
PRINTD PRSO
|
|
PRINTR " bounces off the bed and lands on the floor."
|
|
|
|
|
|
.FUNCT I-FALL-ASLEEP
|
|
CRLF
|
|
PRINTI "You slowly sink into a deep and restful sleep."
|
|
CRLF
|
|
CALL2 INT,I-FALL-ASLEEP
|
|
PUT STACK,0,0
|
|
CALL1 DREAMING
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DREAMING
|
|
FSET? FORK,TOUCHBIT \?CCL3
|
|
RANDOM 100
|
|
LESS? 13,STACK /?CCL3
|
|
PRINTI "You are in a busy office crowded with people. The only one you recognize is Floyd. He rushes back and forth between the desks, carrying papers and delivering coffee. He notices you, and asks how your project is coming, and whether you have time to tell him a story. You look into his deep, trusting eyes..."
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL3: RANDOM 100
|
|
LESS? 60,STACK /?CND1
|
|
CRLF
|
|
CALL2 PICK-ONE,DREAMS
|
|
PRINT STACK
|
|
CRLF
|
|
?CND1: CALL1 WAKING-UP
|
|
RSTACK
|
|
|
|
|
|
.FUNCT WAKING-UP,X,N
|
|
INC 'DAY
|
|
SET 'SICKNESS-WARNING-FLAG,TRUE-VALUE
|
|
SET 'SLEEPY-LEVEL,0
|
|
ICALL1 RESET-TIME
|
|
FIRST? ADVENTURER >X /?PRG2
|
|
?PRG2: ZERO? X /?REP3
|
|
NEXT? X >N /?BOGUS7
|
|
?BOGUS7: FSET? X,WORNBIT /?CND8
|
|
MOVE X,HERE
|
|
?CND8: EQUAL? X,CANTEEN \?CND10
|
|
IN? HIGH-PROTEIN,CANTEEN \?CND10
|
|
FSET? CANTEEN,OPENBIT \?CND10
|
|
REMOVE HIGH-PROTEIN
|
|
?CND10: EQUAL? X,FLASK \?CND15
|
|
IN? CHEMICAL-FLUID,FLASK \?CND15
|
|
REMOVE CHEMICAL-FLUID
|
|
?CND15: SET 'X,N
|
|
JUMP ?PRG2
|
|
?REP3: PRINTI "
|
|
***** SEPTEM "
|
|
ADD DAY,5
|
|
PRINTN STACK
|
|
PRINTI ", 11344 *****
|
|
|
|
"
|
|
IN? ADVENTURER,BED /?CCL21
|
|
PRINTI "You wake and slowly stand up, feeling stiff from your night on the floor."
|
|
JUMP ?CND19
|
|
?CCL21: LESS? SICKNESS-LEVEL,3 \?CCL23
|
|
PRINTI "You wake up feeling refreshed and ready to face the challenges of this mysterious world."
|
|
JUMP ?CND19
|
|
?CCL23: LESS? SICKNESS-LEVEL,6 \?CCL25
|
|
PRINTI "You wake after sleeping restlessly. You feel weak and listless."
|
|
JUMP ?CND19
|
|
?CCL25: PRINTI "You wake feeling weak and worn-out. It will be an effort just to stand up."
|
|
?CND19: GRTR? HUNGER-LEVEL,0 \?CCL28
|
|
SET 'HUNGER-LEVEL,4
|
|
CALL QUEUE,I-HUNGER-WARNINGS,100
|
|
PUT STACK,0,1
|
|
PRINTI " You are also incredibly famished. Better get some breakfast!"
|
|
JUMP ?CND26
|
|
?CCL28: CALL QUEUE,I-HUNGER-WARNINGS,400
|
|
PUT STACK,0,1
|
|
?CND26: CRLF
|
|
FSET? FLOYD,RLANDBIT \FALSE
|
|
ZERO? FLOYD-INTRODUCED /FALSE
|
|
MOVE FLOYD,HERE
|
|
SET 'FLOYD-SPOKE,TRUE-VALUE
|
|
IN? ADVENTURER,BED \?CCL36
|
|
PRINTR "Floyd bounces impatiently at the foot of the bed. ""About time you woke up, you lazy bones! Let's explore around some more!"""
|
|
?CCL36: PRINTR "Floyd gives you a nudge with his foot and giggles. ""You sure look silly sleeping on the floor,"" he says."
|
|
|
|
|
|
.FUNCT RESET-TIME
|
|
EQUAL? DAY,2 \?CCL3
|
|
FCLEAR BALCONY,TOUCHBIT
|
|
RANDOM 80
|
|
ADD 1600,STACK >INTERNAL-MOVES
|
|
CALL QUEUE,I-SLEEP-WARNINGS,5800
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?CCL3: EQUAL? DAY,3 \?CCL5
|
|
FCLEAR BALCONY,TOUCHBIT
|
|
RANDOM 80
|
|
ADD 1750,STACK >INTERNAL-MOVES
|
|
CALL QUEUE,I-SLEEP-WARNINGS,5550
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?CCL5: EQUAL? DAY,4 \?CCL7
|
|
FCLEAR WINDING-STAIR,TOUCHBIT
|
|
RANDOM 80
|
|
ADD 1950,STACK >INTERNAL-MOVES
|
|
CALL QUEUE,I-SLEEP-WARNINGS,5200
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?CCL7: EQUAL? DAY,5 \?CCL9
|
|
FCLEAR WINDING-STAIR,TOUCHBIT
|
|
RANDOM 80
|
|
ADD 2150,STACK >INTERNAL-MOVES
|
|
CALL QUEUE,I-SLEEP-WARNINGS,4800
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?CCL9: EQUAL? DAY,6 \?CCL11
|
|
FCLEAR COURTYARD,TOUCHBIT
|
|
RANDOM 80
|
|
ADD 2450,STACK >INTERNAL-MOVES
|
|
CALL QUEUE,I-SLEEP-WARNINGS,4300
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?CCL11: EQUAL? DAY,7 \?CCL13
|
|
FCLEAR COURTYARD,TOUCHBIT
|
|
RANDOM 80
|
|
ADD 2800,STACK >INTERNAL-MOVES
|
|
CALL QUEUE,I-SLEEP-WARNINGS,3700
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?CCL13: EQUAL? DAY,8 \?CCL15
|
|
RANDOM 80
|
|
ADD 3200,STACK >INTERNAL-MOVES
|
|
CALL QUEUE,I-SLEEP-WARNINGS,3000
|
|
PUT STACK,0,1
|
|
RTRUE
|
|
?CCL15: EQUAL? DAY,9 \FALSE
|
|
CALL2 JIGS-UP,STR?114
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-HUNGER-WARNINGS
|
|
INC 'HUNGER-LEVEL
|
|
EQUAL? HUNGER-LEVEL,1 \?CCL3
|
|
CALL QUEUE,I-HUNGER-WARNINGS,450
|
|
PUT STACK,0,1
|
|
CRLF
|
|
PRINTR "A growl from your stomach warns that you're getting pretty hungry and thirsty."
|
|
?CCL3: EQUAL? HUNGER-LEVEL,2 \?CCL5
|
|
CALL QUEUE,I-HUNGER-WARNINGS,150
|
|
PUT STACK,0,1
|
|
CRLF
|
|
PRINTR "You're now really ravenous and your lips are quite parched."
|
|
?CCL5: EQUAL? HUNGER-LEVEL,3 \?CCL7
|
|
CALL QUEUE,I-HUNGER-WARNINGS,100
|
|
PUT STACK,0,1
|
|
CRLF
|
|
PRINTR "You're starting to feel faint from lack of food and liquid."
|
|
?CCL7: EQUAL? HUNGER-LEVEL,4 \?CCL9
|
|
CALL QUEUE,I-HUNGER-WARNINGS,50
|
|
PUT STACK,0,1
|
|
CRLF
|
|
PRINTR "If you don't eat or drink something in a few millichrons, you'll probably pass out."
|
|
?CCL9: EQUAL? HUNGER-LEVEL,5 \FALSE
|
|
CALL2 JIGS-UP,STR?115
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-SICKNESS-WARNINGS
|
|
CALL QUEUE,I-SICKNESS-WARNINGS,700
|
|
PUT STACK,0,1
|
|
ZERO? SICKNESS-WARNING-FLAG /FALSE
|
|
SET 'SICKNESS-WARNING-FLAG,FALSE-VALUE
|
|
SUB LOAD-ALLOWED,10 >LOAD-ALLOWED
|
|
INC 'SICKNESS-LEVEL
|
|
EQUAL? SICKNESS-LEVEL,1 \?CCL6
|
|
CRLF
|
|
PRINTR "You notice that you feel a bit weak and slightly flushed, but you're not sure why."
|
|
?CCL6: EQUAL? SICKNESS-LEVEL,2 \?CCL8
|
|
CRLF
|
|
PRINTR "You notice that you feel unusually weak, and you suspect that you have a fever."
|
|
?CCL8: EQUAL? SICKNESS-LEVEL,3 \?CCL10
|
|
CRLF
|
|
PRINTR "You are now feeling quite under the weather, not unlike a bad flu."
|
|
?CCL10: EQUAL? SICKNESS-LEVEL,4 \?CCL12
|
|
CRLF
|
|
PRINTR "Your fever seems to have gotten worse, and you're developing a bad headache."
|
|
?CCL12: EQUAL? SICKNESS-LEVEL,5 \?CCL14
|
|
CRLF
|
|
PRINTR "Your health has deteriorated further. You feel hot and weak, and your head is throbbing."
|
|
?CCL14: EQUAL? SICKNESS-LEVEL,6 \?CCL16
|
|
CRLF
|
|
PRINTR "You feel very, very sick, and have almost no strength left."
|
|
?CCL16: EQUAL? SICKNESS-LEVEL,7 \?CCL18
|
|
CRLF
|
|
PRINTR "You feel like you're on fire, burning up from the fever. You're almost too weak to move, and your brain is reeling from the pounding headache."
|
|
?CCL18: EQUAL? SICKNESS-LEVEL,8 \?CCL20
|
|
CRLF
|
|
PRINTR "You're no longer sure of where you are and what you're doing. You stumble about, your pain subsiding into a dull numbness."
|
|
?CCL20: EQUAL? SICKNESS-LEVEL,9 \FALSE
|
|
CALL2 JIGS-UP,STR?117
|
|
RSTACK
|
|
|
|
|
|
.FUNCT TRANSLATOR-PSEUDO
|
|
IN? AMBASSADOR,HERE \?CCL3
|
|
EQUAL? PRSA,V?TAKE \?CCL6
|
|
PRINTR "The ambassador whimpers and slaps your wrist."
|
|
?CCL6: EQUAL? PRSA,V?MUNG \FALSE
|
|
PRINTR "Are you trying to create an interplanetary incident?"
|
|
?CCL3: PRINTR "What translator?"
|
|
|
|
|
|
.FUNCT SLIME-PSEUDO
|
|
IN? AMBASSADOR,HERE /?CTR2
|
|
GRTR? AMBASSADOR-LEAVE,0 \?CCL3
|
|
?CTR2: EQUAL? PRSA,V?TASTE,V?EAT \?CCL8
|
|
CALL2 LIKE-SLIME,STR?118
|
|
RSTACK
|
|
?CCL8: EQUAL? PRSA,V?RUB,V?TAKE \?CCL10
|
|
CALL2 LIKE-SLIME,STR?119
|
|
RSTACK
|
|
?CCL10: EQUAL? PRSA,V?EXAMINE \?CCL12
|
|
CALL2 LIKE-SLIME,STR?120
|
|
RSTACK
|
|
?CCL12: EQUAL? PRSA,V?SMELL \?CCL14
|
|
CALL2 LIKE-SLIME,STR?121
|
|
RSTACK
|
|
?CCL14: EQUAL? PRSA,V?REMOVE,V?SCRUB \FALSE
|
|
PRINTI "Whew. You've cleaned up maybe one ten-thousandth of the slime."
|
|
IN? BLATHER,HERE /?CND17
|
|
PRINTR " If you hurry, it might be all cleaned up before Ensign Blather gets here."
|
|
?CND17: CRLF
|
|
RTRUE
|
|
?CCL3: PRINTR "What slime?"
|
|
|
|
|
|
.FUNCT LIKE-SLIME,STRING
|
|
PRINTI "It "
|
|
PRINT STRING
|
|
PRINTR " like slime. Aren't you glad you didn't step in it?"
|
|
|
|
|
|
.FUNCT GRAFFITI-PSEUDO
|
|
EQUAL? PRSA,V?READ \FALSE
|
|
SET 'C-ELAPSED,28
|
|
PRINTR "All the graffiti seem to be about Blather. One of the least obscene items reads:
|
|
|
|
There once was a krip, name of Blather
|
|
Who told a young Ensign named Smather
|
|
""I'll make you inherit
|
|
A trotting demerit
|
|
And ship you off to those stinking fawg-infested tar pools of Krather.""
|
|
|
|
It's not a very good limerick, is it?"
|
|
|
|
|
|
.FUNCT DOOR-PSEUDO
|
|
EQUAL? PRSA,V?UNLOCK,V?OPEN \FALSE
|
|
PRINTR "No way, Jose."
|
|
|
|
|
|
.FUNCT WALKWAY-PSEUDO
|
|
EQUAL? PRSA,V?LAMP-ON,V?EXAMINE \FALSE
|
|
PRINTR "The walkway, which hastened the trip down that long corridor, is no longer in service."
|
|
|
|
|
|
.FUNCT BENCH-PSEUDO
|
|
EQUAL? PRSA,V?BOARD,V?CLIMB-ON \FALSE
|
|
PRINTR "The benches look uncomfortable."
|
|
|
|
|
|
.FUNCT CATWALK-PSEUDO
|
|
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP,V?CLIMB-ON \FALSE
|
|
PRINTR "The catwalks are too high for you to access."
|
|
|
|
|
|
.FUNCT EQUIPMENT-PSEUDO
|
|
EQUAL? PRSA,V?LAMP-ON,V?RUB,V?EXAMINE /?CCL3
|
|
EQUAL? PRSA,V?LAMP-OFF \FALSE
|
|
?CCL3: PRINTR "The equipment here is so complicated that you couldn't even begin to figure out how to operate it."
|
|
|
|
|
|
.FUNCT MONITORS-PSEUDO
|
|
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
|
CALL1 DESCRIBE-MONITORS
|
|
RSTACK
|
|
|
|
|
|
.FUNCT MURAL-PSEUDO
|
|
ZERO? COMPUTER-FIXED /?CCL3
|
|
CALL1 ANYMORE
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL6
|
|
PRINTR "It's a gaudy work of orange and purple abstract shapes, reminiscent of the early works of Burstini Bonz. It doesn't appear to fit the decor of the room at all. The mural seems to ripple now and then, as though a breeze were blowing behind it."
|
|
?CCL6: EQUAL? PRSA,V?MUNG \?CCL8
|
|
PRINTR "My sentiments also, but let's be civil."
|
|
?CCL8: EQUAL? PRSA,V?LOOK-BEHIND,V?MOVE \FALSE
|
|
PRINTR "It won't budge."
|
|
|
|
|
|
.FUNCT LOGO-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
|
PRINTR "The logo shows a flame burning over a sleep chamber of some type. Under that is the phrase ""Prajekt Kuntrool."""
|
|
|
|
|
|
.FUNCT KEYBOARD-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "It is a standard numeric keyboard with ten keys labelled from 0 through 9."
|
|
|
|
|
|
.FUNCT CRACK-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTR "The crack is too small to go through, but large enough to look through."
|
|
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
EQUAL? HERE,RADIATION-LAB \?CCL8
|
|
PRINTR "You see a dimly lit Bio Lab. Sinister shapes lurk about within."
|
|
?CCL8: PRINTR "You see a laboratory suffused with a pale blue glow."
|
|
|
|
|
|
.FUNCT VOID-PSEUDO
|
|
EQUAL? PRSA,V?PUT \?CCL3
|
|
EQUAL? PRSI,PSEUDO-OBJECT \?CCL3
|
|
ICALL PERFORM,V?THROW-OFF,PRSO,STRIP
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?ZAP \?CCL7
|
|
EQUAL? PRSO,LASER \?CCL7
|
|
EQUAL? PRSI,PSEUDO-OBJECT \?CCL7
|
|
SET 'PRSI,FALSE-VALUE
|
|
ICALL PERFORM,V?ZAP,LASER
|
|
RTRUE
|
|
?CCL7: EQUAL? PRSA,V?LEAP,V?THROUGH \?CCL12
|
|
CALL2 JIGS-UP,STR?122
|
|
RSTACK
|
|
?CCL12: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \FALSE
|
|
PRINTR "The void extends downward into the gloom far below."
|
|
|
|
|
|
.FUNCT SPOUT-PSEUDO
|
|
EQUAL? PRSA,V?PUT-UNDER \?CCL3
|
|
EQUAL? PRSO,CANTEEN \?CCL3
|
|
ICALL PERFORM,V?PUT,CANTEEN,DISPENSER
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?LOOK-UNDER \FALSE
|
|
IN? CANTEEN,DISPENSER \FALSE
|
|
PRINTR "The canteen is sitting under the spout."
|
|
|
|
|
|
.FUNCT TOILET-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTR "The fixtures are all dry and dusty."
|
|
?CCL3: EQUAL? PRSA,V?FLUSH \FALSE
|
|
PRINTR "The water seems to be turned off."
|
|
|
|
|
|
.FUNCT GAMES-PSEUDO
|
|
EQUAL? PRSA,V?TAKE,V?PLAY \?CCL3
|
|
ICALL PERFORM,V?PLAY,GLOBAL-GAMES
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "All the usual games -- Chess, Cribbage, Galactic Overlord, Double Fannucci..."
|
|
|
|
|
|
.FUNCT TAPES-PSEUDO
|
|
EQUAL? PRSA,V?TAKE,V?PLAY,V?READ \?CCL3
|
|
PRINTR "Hardly the time or place for reading recreational tapes."
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "Let's see...here are some musical selections, here are some bestselling romantic novels, here is a biography of a famous Double Fannucci champion..."
|
|
|
|
|
|
.FUNCT PARTITION-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "The partitions are very plain, and were obviously intended to separate this huge room into smaller areas."
|
|
|
|
|
|
.FUNCT CUBBYHOLE-PSEUDO
|
|
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \FALSE
|
|
PRINTR "The cubbyholes look like the kind that are used to hold maps or blueprints. They are all empty now."
|
|
|
|
|
|
.FUNCT MAPS-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "Examining the maps reveals no new information."
|
|
|
|
|
|
.FUNCT DEVICES-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "They are components of disassembled robots, beyond repair."
|
|
|
|
|
|
.FUNCT CABLES-PSEUDO
|
|
EQUAL? PRSA,V?FOLLOW,V?EXAMINE \?CCL3
|
|
PRINTR "These heavy cables merely run from the two consoles up into the ceiling."
|
|
?CCL3: EQUAL? PRSA,V?MUNG \FALSE
|
|
CALL2 JIGS-UP,STR?123
|
|
RSTACK
|
|
|
|
|
|
.FUNCT STRUCTURE-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTR "You'd be able to tell more about it if you climbed up to it."
|
|
?CCL3: EQUAL? PRSA,V?CLIMB-UP \FALSE
|
|
CALL2 DO-WALK,P?UP
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BUTTON-PSEUDO
|
|
EQUAL? PRSA,V?PUSH \FALSE
|
|
FSET? DISPENSER,MUNGEDBIT \?CCL6
|
|
PRINTR "The dispenser sputters a few times."
|
|
?CCL6: IN? CANTEEN,DISPENSER \?CCL8
|
|
FSET? CANTEEN,OPENBIT /?CCL11
|
|
PRINTR "A thick, brown liquid spills over the closed canteen, dribbles down the side of the machine, and forms a puddle on the floor which quickly dries up."
|
|
?CCL11: IN? HIGH-PROTEIN,CANTEEN \?CCL13
|
|
PRINTI "The brown liquid splashes over the mouth of the already-filled canteen, creating a mess"
|
|
FSET? PATROL-UNIFORM,WORNBIT \?CND14
|
|
PRINTI " and staining your uniform"
|
|
?CND14: PRINTR "."
|
|
?CCL13: MOVE HIGH-PROTEIN,CANTEEN
|
|
PRINTR "The canteen fills almost to the brim with a brown liquid."
|
|
?CCL8: PRINTR "A thick, brownish liquid pours from the spout and splashes to the floor, where it quickly evaporates."
|
|
|
|
|
|
.FUNCT CARPET-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "It's pretty dusty."
|
|
|
|
|
|
.FUNCT CABINETS-PSEUDO
|
|
EQUAL? PRSA,V?OPEN,V?EXAMINE \?CCL3
|
|
PRINTR "The cabinets are locked."
|
|
?CCL3: EQUAL? PRSA,V?UNLOCK \FALSE
|
|
PRINTR "You don't have the correct key."
|
|
|
|
|
|
.FUNCT PLATE-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "The plates seem to be featureless metal squares."
|
|
|
|
|
|
.FUNCT ESCALATOR-PSEUDO
|
|
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \?CCL3
|
|
EQUAL? HERE,FORK \?CCL6
|
|
PRINTR "You're already at the top of the escalator."
|
|
?CCL6: CALL2 DO-WALK,P?UP
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?CLIMB-DOWN \?CCL8
|
|
EQUAL? HERE,LAWANDA-PLATFORM \?CCL11
|
|
PRINTR "You're already at the bottom of the escalator."
|
|
?CCL11: CALL2 DO-WALK,P?DOWN
|
|
RSTACK
|
|
?CCL8: EQUAL? PRSA,V?LAMP-ON \FALSE
|
|
CALL2 PICK-ONE,YUKS
|
|
PRINT STACK
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT REACTOR-BUTTON-PSEUDO
|
|
EQUAL? PRSA,V?PUSH \FALSE
|
|
FSET REACTOR-ELEVATOR-DOOR,OPENBIT
|
|
CALL QUEUE,I-REACTOR-DOOR-CLOSE,30
|
|
PUT STACK,0,1
|
|
PRINTR "The metal doors slide open, revealing a small room to the east."
|
|
|
|
|
|
.FUNCT SUPPLIES-PSEUDO
|
|
EQUAL? PRSA,V?TAKE \FALSE
|
|
PRINTR "These supplies are of absolutely no use."
|
|
|
|
|
|
.FUNCT DESK-PSEUDO
|
|
EQUAL? PRSA,V?OPEN \?CCL3
|
|
PRINTR "All the drawers are empty."
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "It is bare except for the microfilm reader."
|
|
|
|
|
|
.FUNCT CRYO-BUTTON-PSEUDO
|
|
EQUAL? PRSA,V?PUSH \?CCL3
|
|
ZERO? CRYO-SCORE-FLAG \?CCL3
|
|
CALL QUEUE,I-CRYO-ELEVATOR-ARRIVE,100
|
|
PUT STACK,0,1
|
|
CALL2 INT,I-CHASE-SCENE
|
|
PUT STACK,0,0
|
|
FCLEAR CRYO-ELEVATOR-DOOR,OPENBIT
|
|
SET 'CRYO-SCORE-FLAG,TRUE-VALUE
|
|
ADD SCORE,5 >SCORE
|
|
PRINTR "The elevator door closes just as the monsters reach it! You slump back against the wall, exhausted from the chase. The elevator begins to move downward."
|
|
?CCL3: EQUAL? PRSA,V?PUSH \FALSE
|
|
ZERO? CRYO-SCORE-FLAG /FALSE
|
|
FSET? CRYO-ELEVATOR-DOOR,OPENBIT \FALSE
|
|
CALL2 JIGS-UP,STR?124
|
|
RSTACK
|
|
|
|
|
|
.FUNCT CASTLE-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "The castle is ancient and crumbling."
|
|
|
|
|
|
.FUNCT CHEM-SPOUT-PSEUDO
|
|
EQUAL? PRSA,V?PUT-UNDER \?CCL3
|
|
EQUAL? PRSI,PSEUDO-OBJECT \?CCL3
|
|
ICALL PERFORM,V?PUT-UNDER,PRSO,CHEMICAL-DISPENSER
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?LOOK-UNDER \FALSE
|
|
ZERO? SPOUT-PLACED /FALSE
|
|
PRINTI "There is "
|
|
ICALL1 A-AN
|
|
PRINTD SPOUT-PLACED
|
|
PRINTR " under the spout."
|
|
|
|
|
|
.FUNCT CLEFT-PSEUDO
|
|
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \FALSE
|
|
CALL2 DO-WALK,P?UP
|
|
RSTACK
|
|
|
|
|
|
.FUNCT RUBBLE-PSEUDO
|
|
EQUAL? PRSA,V?MOVE \FALSE
|
|
CALL2 PICK-ONE,YUKS
|
|
PRINT STACK
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PLAQUE-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
|
PRINTR "
|
|
SEENIK VISTA
|
|
Xis stuneeng vuu uf xee Kalamontee Valee kuvurz oovur fortee skwaar miilz uf xat faamus tuurist spot. Xee larj bildeeng at xee bend in xee Gulmaan Rivur iz xee formur pravincul kapitul bildeeng."
|
|
|
|
|
|
.FUNCT FENCE-PSEUDO
|
|
EQUAL? PRSA,V?LEAP,V?CLIMB-FOO,V?CLIMB-UP \FALSE
|
|
PRINTR "You can't."
|
|
|
|
|
|
.FUNCT LOCK-PSEUDO
|
|
EQUAL? PRSA,V?UNLOCK,V?OPEN \FALSE
|
|
ZERO? PRSI /?CCL6
|
|
PRINTR "That won't unlock it."
|
|
?CCL6: PRINTR "But you don't have the orange key!"
|
|
|
|
|
|
.FUNCT DIAGRAM-PSEUDO
|
|
EQUAL? PRSA,V?READ \FALSE
|
|
PRINTR "Not unless you've taken a special twelve-year course in ninth-order molecular physics."
|
|
|
|
|
|
.FUNCT ENUNCIATOR-PSEUDO
|
|
EQUAL? PRSA,V?MOVE,V?PUSH,V?LOOK-INSIDE \FALSE
|
|
CALL2 PICK-ONE,YUKS
|
|
PRINT STACK
|
|
RTRUE
|
|
|
|
|
|
.FUNCT NEAR-BOOTH-PSEUDO
|
|
EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?DROP \?CCL3
|
|
PRINTR "You're not in the booth!"
|
|
?CCL3: EQUAL? PRSA,V?WALK-TO,V?BOARD,V?THROUGH \FALSE
|
|
CALL2 DO-WALK,P?IN
|
|
RSTACK
|
|
|
|
|
|
.FUNCT IN-BOOTH-PSEUDO
|
|
EQUAL? PRSA,V?WALK-TO,V?BOARD,V?THROUGH \?CCL3
|
|
PRINTR "You're already in the booth!"
|
|
?CCL3: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?DROP \FALSE
|
|
CALL2 DO-WALK,P?OUT
|
|
RSTACK
|
|
|
|
|
|
.FUNCT CANT-USE-THAT-WAY,STRING
|
|
PRINTI "[You can't use "
|
|
PRINT STRING
|
|
PRINTR " that way.]"
|
|
|
|
.ENDI
|