2427 lines
79 KiB
Plaintext
2427 lines
79 KiB
Plaintext
|
|
|
|
.FUNCT DOCKING-BAY-2-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is a tall, narrow bay. Your "
|
|
PRINTD SPACETRUCK-OBJECT
|
|
PRINTI " is docked here. Its hatch is "
|
|
CALL OPEN-CLOSED,SPACETRUCK-HATCH
|
|
PRINTI ". To the east is the huge door into the station."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT LEVEL-FIVE-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "You are in the central lobby of the middle level of the space station. The elevator "
|
|
EQUAL? ELEVATOR-LEVEL,5 /?CND4
|
|
PRINTI "shaft "
|
|
?CND4: PRINTI "and call button lie to the east, and the corridor heads around the shaft to the northeast and southeast. Doors lead north and west"
|
|
PRINT LADDER-LEADS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT JAMMER-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTI "The jammer is a black box with a short antenna. It has "
|
|
IN? TWENTY-PRONG-FROMITZ-BOARD,JAMMER \?CCL6
|
|
PRINTI "a "
|
|
PRINTD TWENTY-PRONG-FROMITZ-BOARD
|
|
PRINTI " plugged into it"
|
|
JUMP ?CND4
|
|
?CCL6: PRINTI "twenty tiny sockets on one side"
|
|
?CND4: PRINTI ". The jammer, which is o"
|
|
FSET? JAMMER,ACTIVEBIT \?CCL9
|
|
PRINTC 110
|
|
JUMP ?CND7
|
|
?CCL9: PRINTI "ff"
|
|
?CND7: PRINTI ", looks as if it can be set to any frequency between 0 and 1400; it is currently set to "
|
|
PRINTN JAMMER-SETTING
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL11
|
|
PRINT HUH
|
|
RTRUE
|
|
?CCL11: EQUAL? PRSA,V?PUT \?CCL13
|
|
EQUAL? PRSI,JAMMER \?CCL13
|
|
EQUAL? PRSO,TWENTY-PRONG-FROMITZ-BOARD /?CCL13
|
|
CALL DOESNT-FIT,STR?236
|
|
RSTACK
|
|
?CCL13: EQUAL? PRSA,V?CONNECT \?CCL18
|
|
EQUAL? TWENTY-PRONG-FROMITZ-BOARD,PRSO,PRSI \?CCL18
|
|
CALL PERFORM,V?PUT,TWENTY-PRONG-FROMITZ-BOARD,JAMMER
|
|
RTRUE
|
|
?CCL18: EQUAL? PRSA,V?CONNECT \?CCL22
|
|
EQUAL? TWELVE-PRONG-FROMITZ-BOARD,PRSO,PRSI \?CCL22
|
|
CALL PERFORM,V?PUT,TWELVE-PRONG-FROMITZ-BOARD,JAMMER
|
|
RTRUE
|
|
?CCL22: EQUAL? PRSA,V?SET \?CCL26
|
|
EQUAL? PRSO,JAMMER \?CCL26
|
|
ZERO? PRSI \?CCL31
|
|
PRINT NEXT-TIME
|
|
RTRUE
|
|
?CCL31: EQUAL? PRSI,INTNUM /?CCL33
|
|
PRINT HUH
|
|
RTRUE
|
|
?CCL33: EQUAL? P-NUMBER,JAMMER-SETTING \?CCL35
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?CCL35: LESS? P-NUMBER,0 /?CTR36
|
|
GRTR? P-NUMBER,1400 \?CCL37
|
|
?CTR36: PRINTR "The jammer's range is 0 to 1400."
|
|
?CCL37: SET 'JAMMER-SETTING,P-NUMBER
|
|
PRINTI "You set the jammer to "
|
|
PRINTN JAMMER-SETTING
|
|
IN? FORKLIFT,HERE \?CCL42
|
|
PRINTI ". "
|
|
CALL PERFORM,V?OFF,JAMMER
|
|
RTRUE
|
|
?CCL42: PRINT PERIOD-CR
|
|
RTRUE
|
|
?CCL26: EQUAL? PRSA,V?COUNT \?CCL44
|
|
CALL NOUN-USED,W?SOCKETS,JAMMER
|
|
ZERO? STACK /?CCL44
|
|
PRINTR "20."
|
|
?CCL44: EQUAL? PRSA,V?OFF \FALSE
|
|
IN? FORKLIFT,HERE \FALSE
|
|
FCLEAR JAMMER,ACTIVEBIT
|
|
REMOVE FORKLIFT
|
|
REMOVE EXERCISE-MACHINE
|
|
CALL DEQUEUE,I-FORKLIFT
|
|
PRINTI "The "
|
|
PRINTD EXERCISE-MACHINE
|
|
PRINTR " springs to life, its powerful arms clamping shut on the forklift. The vehicle belches exhaust as it tries to free itself. The two machines tumble over in a death grip and then explode! When the smoke clears, there's not a trace of either machine."
|
|
|
|
|
|
.FUNCT DISPENSER-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
GETP DISPENSER,P?FDESC
|
|
PRINT STACK
|
|
CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?PUT \?CCL5
|
|
EQUAL? PRSI,DISPENSER \?CCL5
|
|
EQUAL? PRSO,COIN \?CCL10
|
|
REMOVE COIN
|
|
FSET DISPENSER,TOUCHBIT
|
|
PRINTR """Clink!"" The coin drops into the slot."
|
|
?CCL10: CALL DOESNT-FIT,STR?241
|
|
RSTACK
|
|
?CCL5: EQUAL? PRSA,V?DRILL \?CCL12
|
|
PRINTI "We quote from the Stellar Patrol Demolitions Training Manual, Edition 3754-GS108. ""Why You Should Never Drill Into Active Machinery: Reason #7. You may"
|
|
PRINT STRIKE-POWER-SOURCE
|
|
PRINTI """
|
|
As you drill into the dispenser, you"
|
|
PRINT STRIKE-POWER-SOURCE
|
|
CALL JIGS-UP,STR?242
|
|
RSTACK
|
|
?CCL12: EQUAL? PRSA,V?SHOOT \?CCL14
|
|
REMOVE DISPENSER
|
|
PRINTR "Okay, but you'll have to answer to the Stellar Patrol Dispensing Machine Company... BLAM! The dispenser is dispensed."
|
|
?CCL14: EQUAL? PRSA,V?MUNG,V?KILL,V?KICK /?PRD18
|
|
EQUAL? PRSA,V?PUSH,V?SHAKE \?CCL16
|
|
?PRD18: FIRST? DISPENSER \?CCL16
|
|
PRINTI "This fails to dislodge the "
|
|
FIRST? DISPENSER /?KLU23
|
|
?KLU23: PRINTD STACK
|
|
PRINTR ", but it does help relieve some of your aggressive feelings toward the stupid dispenser."
|
|
?CCL16: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
PRINT ONLY-BLACKNESS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT COIN-SLOT-F
|
|
IN? DISPENSER,HERE /?CCL3
|
|
CALL CANT-SEE,PSEUDO-OBJECT
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL5
|
|
PRINT ONLY-BLACKNESS
|
|
RTRUE
|
|
?CCL5: EQUAL? PRSA,V?SHOOT \?CCL7
|
|
CALL PERFORM,V?SHOOT,DISPENSER,ZAPGUN
|
|
RTRUE
|
|
?CCL7: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
|
|
CALL PERFORM,V?PUT,PRSO,DISPENSER
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DISPENSER-SCREEN-F
|
|
IN? DISPENSER,HERE /?CCL3
|
|
CALL CANT-SEE,PSEUDO-OBJECT
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?SHOOT \?CCL5
|
|
CALL PERFORM,V?SHOOT,DISPENSER,ZAPGUN
|
|
RTRUE
|
|
?CCL5: EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
|
PRINTR """--- STELLAR PATROL VENDO-MATIC ---
|
|
all items: 1 galakmid
|
|
1. Patrol Songbook (SOLD OUT)
|
|
2. Set of Postcards (SOLD OUT)
|
|
3. ID Card Polish (SOLD OUT)
|
|
4. Pilot's Compass (SOLD OUT)
|
|
5. Patrol Pen & Pencil Set (SOLD OUT)
|
|
6. All-Purpose Timer
|
|
7. Pocket Computer (SOLD OUT)
|
|
8. Birth Control Pills (SOLD OUT)
|
|
9. Large Drill Bit"""
|
|
|
|
|
|
.FUNCT DISPENSER-HOLE-F
|
|
IN? DISPENSER,HERE /?CCL3
|
|
CALL CANT-SEE,PSEUDO-OBJECT
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?REACH-IN \?CCL5
|
|
IN? TIMER,DISPENSER /?CTR7
|
|
IN? LARGE-BIT,DISPENSER \?CCL8
|
|
?CTR7: PRINTR "You can just feel something with your fingertips, but you can't get a grip on it!"
|
|
?CCL8: PRINTR "You reach as far into the dispenser as you can, but feel nothing."
|
|
?CCL5: EQUAL? PRSA,V?SHOOT \?CCL12
|
|
CALL PERFORM,V?SHOOT,DISPENSER,ZAPGUN
|
|
RTRUE
|
|
?CCL12: EQUAL? PRSA,V?LOOK-INSIDE \?CCL14
|
|
PRINT ONLY-BLACKNESS
|
|
RTRUE
|
|
?CCL14: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
|
|
PRINTI "You shove"
|
|
CALL TPRINT-PRSO
|
|
PRINTI " up into the hole."
|
|
EQUAL? PRSO,OSTRICH-NIP \?CCL21
|
|
IN? OSTRICH,HERE \?CCL21
|
|
PRINTI " The ostrich squawks and sticks its head up the hole after the nip."
|
|
CALL OSTRICH-INTO-DISPENSER
|
|
PRINTI " A moment later, the nip falls to the deck. "
|
|
CALL PERFORM,V?GIVE,OSTRICH-NIP,OSTRICH
|
|
RTRUE
|
|
?CCL21: MOVE PRSO,HERE
|
|
PRINTI " A moment later, it drops out"
|
|
PRINT LANDS-ON-FLOOR
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT OSTRICH-INTO-DISPENSER
|
|
FIRST? DISPENSER \FALSE
|
|
INC 'ROBOT-EVILNESS
|
|
ADD SCORE,6 >SCORE
|
|
PRINTI " It jerks its head back out, squawking even more loudly, and a moment later a "
|
|
FIRST? DISPENSER /?KLU4
|
|
?KLU4: PRINTD STACK
|
|
PRINTI " falls out of the hole"
|
|
PRINT LANDS-ON-FLOOR
|
|
FIRST? DISPENSER /?KLU5
|
|
?KLU5: MOVE STACK,HERE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT TIMER-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTI "As advertised, it is a standard, all-purpose timer. It can be set to any number up to 100, and is currently set to "
|
|
PRINTN TIMER-SETTING
|
|
PRINTI ". The timer "
|
|
ZERO? TIMER-CONNECTED /?CCL6
|
|
PRINTI "is connected to a detonator"
|
|
JUMP ?CND4
|
|
?CCL6: PRINTI "has one connection point"
|
|
?CND4: CALL QUEUED?,I-TIMER
|
|
ZERO? STACK /?CND7
|
|
PRINTI ", and is ticking loudly"
|
|
?CND7: PRINT PERIOD-CR
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?SET \?CCL10
|
|
ZERO? PRSI \?CCL13
|
|
PRINT NEXT-TIME
|
|
RTRUE
|
|
?CCL13: EQUAL? PRSI,INTNUM /?CCL15
|
|
PRINTR "You can set the timer only to a number!"
|
|
?CCL15: GRTR? P-NUMBER,100 \?CCL17
|
|
PRINTR "The timer has settings up to only 100."
|
|
?CCL17: SET 'TIMER-SETTING,P-NUMBER
|
|
PRINTI "You set the timer to "
|
|
PRINTN TIMER-SETTING
|
|
GRTR? TIMER-SETTING,0 \?CCL20
|
|
ADD C-ELAPSED,2
|
|
CALL QUEUE,I-TIMER,STACK
|
|
PRINTI ". Instantly, it begins ticking loudly"
|
|
JUMP ?CND18
|
|
?CCL20: CALL DEQUEUE,I-TIMER
|
|
?CND18: PRINT PERIOD-CR
|
|
RTRUE
|
|
?CCL10: EQUAL? PRSA,V?DISCONNECT \?CCL22
|
|
ZERO? PRSI \?CCL22
|
|
ZERO? TIMER-CONNECTED /?CCL22
|
|
CALL PERFORM,PRSA,TIMER,DETONATOR
|
|
RTRUE
|
|
?CCL22: EQUAL? PRSA,V?CONNECT \?CCL27
|
|
EQUAL? EXPLOSIVE,PRSO,PRSI \?CCL27
|
|
PRINT YOU-CANT
|
|
PRINTR "connect the timer directly to the explosive."
|
|
?CCL27: EQUAL? PRSA,V?OFF \?CCL31
|
|
CALL QUEUED?,I-TIMER
|
|
ZERO? STACK /?CCL31
|
|
SET 'P-NUMBER,0
|
|
CALL PERFORM,V?SET,TIMER,INTNUM
|
|
RTRUE
|
|
?CCL31: EQUAL? PRSA,V?LISTEN \FALSE
|
|
CALL QUEUED?,I-TIMER
|
|
ZERO? STACK /FALSE
|
|
PRINTR """Tick, tick..."""
|
|
|
|
|
|
.FUNCT DESTROY-EXPLOSIVE-CONT,L,X
|
|
LOC EXPLOSIVE >L
|
|
?PRG1: IN? L,ROOMS /TRUE
|
|
FSET? L,VEHBIT /TRUE
|
|
LOC L >X
|
|
EQUAL? L,PEDESTAL /?CND7
|
|
REMOVE L
|
|
?CND7: SET 'L,X
|
|
JUMP ?PRG1
|
|
|
|
|
|
.FUNCT CELL-F
|
|
EQUAL? PRSA,V?OPEN,V?WALK-TO,V?ENTER /?CTR2
|
|
EQUAL? PRSA,V?UNLOCK \?CCL3
|
|
?CTR2: PRINTR "The cells are all locked with high-security locks."
|
|
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
PRINTR "The cells are all empty."
|
|
|
|
|
|
.FUNCT BRIG-LOCK-F
|
|
EQUAL? PRSA,V?PICK,V?UNLOCK,V?OPEN \?CCL3
|
|
EQUAL? PRSI,KEY \?CCL6
|
|
SET 'PRSO,KEY
|
|
CALL DOESNT-FIT,STR?246
|
|
RSTACK
|
|
?CCL6: CALL YUKS
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSO,KEY \FALSE
|
|
CALL DOESNT-FIT,STR?246
|
|
RSTACK
|
|
|
|
|
|
.FUNCT EAST-CONNECTION-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "The corridor widens to the east, the connection point for a Military Sub-Module. An iris hatch at the connection point is "
|
|
FSET? IRIS-HATCH,OPENBIT \?CCL6
|
|
PRINTI "frozen open, revealing not a sub-module connector but a small, grimy connector"
|
|
JUMP ?CND4
|
|
?CCL6: PRINTI "shut tight"
|
|
?CND4: PRINTI ". Next to the hatch is a slot. There is a door northwest of here, and doorways to the south and southwest. There's a junction in the corridor west of you."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT STATION-CONTROL-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is the nerve center of the space station, where every system can be monitored. "
|
|
LESS? DAY,3 \?CND4
|
|
EQUAL? DAY,1 \?CCL8
|
|
PRINTI "A couple"
|
|
JUMP ?CND6
|
|
?CCL8: EQUAL? DAY,2 \?CND6
|
|
PRINTI "Several"
|
|
?CND6: PRINTI " of the monitors are blinking red. "
|
|
?CND4: PRINTI "The exits are south, northeast and west."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SYSTEM-MONITORS-F
|
|
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
|
GET 0,8
|
|
BOR STACK,2
|
|
PUT 0,8,STACK
|
|
PRINTI "System: Status:
|
|
COMMUNICATION "
|
|
GRTR? DAY,2 \?CCL6
|
|
PRINTI "GREEN"
|
|
JUMP ?CND4
|
|
?CCL6: PRINTI "RED"
|
|
?CND4: PRINTI "
|
|
LIFE SUPPORT "
|
|
EQUAL? DAY,2 \?CCL9
|
|
LESS? INTERNAL-MOVES,6500 \?CCL12
|
|
PRINTI "YELLOW"
|
|
JUMP ?CND7
|
|
?CCL12: PRINTI "RED"
|
|
JUMP ?CND7
|
|
?CCL9: PRINTI "GREEN"
|
|
?CND7: PRINTI "
|
|
FOOD PRODUCTION "
|
|
GRTR? DAY,2 \?CCL15
|
|
PRINTI "GREEN"
|
|
JUMP ?CND13
|
|
?CCL15: PRINTI "RED"
|
|
?CND13: PRINTI "
|
|
GRAVITY "
|
|
EQUAL? DAY,2 \?CCL18
|
|
PRINTI "YELLOW"
|
|
JUMP ?CND16
|
|
?CCL18: PRINTI "GREEN"
|
|
?CND16: PRINTI "
|
|
COMPUTER GREEN
|
|
POWER "
|
|
EQUAL? DAY,2 \?CCL21
|
|
LESS? INTERNAL-MOVES,4300 \?CCL24
|
|
PRINTI "YELLOW"
|
|
JUMP ?CND19
|
|
?CCL24: PRINTI "RED"
|
|
JUMP ?CND19
|
|
?CCL21: PRINTI "GREEN"
|
|
?CND19: PRINTI "
|
|
PRINTING "
|
|
EQUAL? DAY,1 \?CCL27
|
|
PRINTI "YELLOW"
|
|
JUMP ?CND25
|
|
?CCL27: GRTR? DAY,3 \?CCL29
|
|
PRINTI "GREEN"
|
|
JUMP ?CND25
|
|
?CCL29: PRINTI "RED"
|
|
?CND25: CRLF
|
|
GET 0,8
|
|
BAND STACK,-3
|
|
PUT 0,8,STACK
|
|
RTRUE
|
|
|
|
|
|
.FUNCT COMM-CENTER-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is the Deep-Space Communication Center, which keeps the station in touch with the Stellar Patrol Command and the rest of the Third Galactic Union. Although regulations state that the Comm Center must be monitored around the clock, ten chrons per day, there's no one on duty.
|
|
Most of the equipment here is too complicated for anyone without Deep-Space Communication Training to use. However, the red button of the wide-band emergency beacon is well-marked. Next to the button is a large screen for displaying incoming messages. "
|
|
CALL SCREEN-F,TRUE-VALUE
|
|
PRINTI " The only exit is north."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT COMM-BUTTON-F
|
|
CALL TOUCHING?,PSEUDO-OBJECT
|
|
ZERO? STACK /FALSE
|
|
PRINTI "The instant you touch the button, a powerful electric shock makes you jerk back."
|
|
GRTR? ROBOT-EVILNESS,14 \?CCL6
|
|
CALL JIGS-UP,STR?249
|
|
JUMP ?CND4
|
|
?CCL6: GRTR? ROBOT-EVILNESS,7 \?CND4
|
|
CALL CCOUNT,PROTAGONIST
|
|
GRTR? STACK,0 \?CND4
|
|
CALL ROB,PROTAGONIST,HERE
|
|
PRINTR " The shock causes you to drop everything, and leaves your limbs twitching all over."
|
|
?CND4: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SCREEN-F,DESCRIBE-SCREEN=0
|
|
EQUAL? PRSA,V?EXAMINE /?CTR2
|
|
ZERO? DESCRIBE-SCREEN /?CCL3
|
|
?CTR2: PRINTI "At the moment, the screen is "
|
|
ZERO? MESSAGE-RECEIVED /?CCL8
|
|
PRINTI "displaying a message."
|
|
JUMP ?CND6
|
|
?CCL8: PRINTI "blank."
|
|
?CND6: ZERO? DESCRIBE-SCREEN \TRUE
|
|
CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?READ \FALSE
|
|
ZERO? MESSAGE-RECEIVED /?CCL15
|
|
PRINTI """From: Forms Control Officer, S.P.S. Duffy
|
|
To: "
|
|
PRINT LFC
|
|
PRINTI " 1451-352-716
|
|
Re: Current assignment
|
|
Msg: Two thousand reams of "
|
|
PRINT FORM-NAME
|
|
PRINTR " found in mislabelled pallet. No additional supplies needed. Abort assignment and return to Duffy."""
|
|
?CCL15: CALL PERFORM,V?EXAMINE,PSEUDO-OBJECT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-MESSAGE
|
|
SET 'MESSAGE-RECEIVED,TRUE-VALUE
|
|
FCLEAR COMM-CENTER,TOUCHBIT
|
|
PRINTI " "
|
|
FSET? SPACESUIT,WORNBIT \?CCL3
|
|
PRINTI "The space suit picks up a message from"
|
|
JUMP ?CND1
|
|
?CCL3: PRINTI "You hear a message over"
|
|
?CND1: PRINTR " the station's P.A. system: ""Deep-space communication received at Comm Center. No operator on duty. This is a recording."""
|
|
|
|
|
|
.FUNCT FILES-F
|
|
EQUAL? PRSA,V?READ,V?EXAMINE \?CCL3
|
|
PRINTR "The word ""boring"" does not BEGIN to describe them."
|
|
?CCL3: EQUAL? PRSA,V?MUNG,V?CRUMPLE \FALSE
|
|
PRINT VIOLATION-OF-ACT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT COMMANDERS-OFFICE-F,RARG
|
|
EQUAL? RARG,M-ENTER \?CCL3
|
|
CALL ULTIMATELY-IN?,EXPLOSIVE
|
|
ZERO? STACK /?CCL3
|
|
FSET EXERCISE-MACHINE,TOUCHBIT
|
|
MOVE EXERCISE-MACHINE,COMPUTER-CONTROL
|
|
CALL ROB,EXERCISE-MACHINE,GYM
|
|
RSTACK
|
|
?CCL3: EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is the Station Commander's H.Q., with doors to the south and east, and doorways to the north and northwest."
|
|
IN? LOG-READER,HERE /TRUE
|
|
PRINTI " There's a black scar where the "
|
|
PRINTD LOG-READER
|
|
PRINTI " once sat."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT LOG-READER-F
|
|
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
|
|
PRINT HUH
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
|
|
PRINTI "This simple device is for recording and reading log entries. It includes a tiny red button and a microphone/speaker. "
|
|
FSET? LOG-READER,ACTIVEBIT \?CND6
|
|
IN? LOG-TAPE,LOG-READER \?CND6
|
|
PRINTI "The red button is glowing. "
|
|
?CND6: PRINTI "At the moment, the "
|
|
PRINTD LOG-READER
|
|
PRINTI " is o"
|
|
FSET? LOG-READER,ACTIVEBIT \?CCL12
|
|
PRINTC 110
|
|
JUMP ?CND10
|
|
?CCL12: PRINTI "ff"
|
|
?CND10: PRINTI ", and there is "
|
|
IN? LOG-TAPE,LOG-READER \?CCL15
|
|
PRINTC 97
|
|
JUMP ?CND13
|
|
?CCL15: PRINTI "no"
|
|
?CND13: PRINTR " log tape in it."
|
|
?CCL5: EQUAL? PRSA,V?PUT \?CCL17
|
|
EQUAL? PRSO,LOG-TAPE /?CCL20
|
|
CALL DOESNT-FIT,STR?251
|
|
RSTACK
|
|
?CCL20: FSET? LOG-READER,ACTIVEBIT \FALSE
|
|
MOVE LOG-TAPE,LOG-READER
|
|
SET 'LOG-COUNTER,0
|
|
CALL READ-LOG
|
|
RSTACK
|
|
?CCL17: EQUAL? PRSA,V?ON \?CCL24
|
|
FSET? LOG-READER,ACTIVEBIT /?CCL24
|
|
CALL QUEUE,I-LOG-READER,-1
|
|
IN? LOG-TAPE,LOG-READER \FALSE
|
|
FSET LOG-READER,ACTIVEBIT
|
|
SET 'LOG-COUNTER,0
|
|
CALL READ-LOG
|
|
RSTACK
|
|
?CCL24: EQUAL? PRSA,V?LISTEN \?CCL31
|
|
GRTR? LOG-READER-COUNTER,11 \?CCL31
|
|
PRINTR """Whine."""
|
|
?CCL31: EQUAL? PRSA,V?TAKE \?CCL35
|
|
PRINT WONT-BUDGE
|
|
RTRUE
|
|
?CCL35: EQUAL? PRSA,V?SHOOT \FALSE
|
|
CALL DEQUEUE,I-LOG-READER
|
|
RFALSE
|
|
|
|
|
|
.FUNCT LOG-READER-BUTTON-F
|
|
IN? LOG-READER,HERE /?CCL3
|
|
CALL CANT-SEE,PSEUDO-OBJECT
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?PUSH \FALSE
|
|
IN? LOG-TAPE,LOG-READER \?CCL8
|
|
FSET? LOG-READER,ACTIVEBIT \?CCL8
|
|
EQUAL? LOG-COUNTER,10 \?CCL13
|
|
PRINTI "A mechanized voice from the "
|
|
PRINTD LOG-READER
|
|
PRINTR " says, ""End of Log."""
|
|
?CCL13: CALL READ-LOG
|
|
RSTACK
|
|
?CCL8: PRINT NOTHING-HAPPENS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT READ-LOG
|
|
INC 'LOG-COUNTER
|
|
EQUAL? LOG-COUNTER,1 \?CND1
|
|
PRINTI "A gravelly voice comes from the "
|
|
PRINTD LOG-READER
|
|
PRINTI ": "
|
|
?CND1: PRINTI """11349.12."
|
|
EQUAL? LOG-COUNTER,1 \?CCL5
|
|
PRINTI "2.3800: Some kripping jokers have been pilfering the station's fuel cells to go out on joyrides! I have hidden the fuel cells up in the Dome's "
|
|
PRINTD HOUSING
|
|
PRINTI ", slapped a lock on the bin, and deposited the key in my safe! There will be no joyriding in my command!"
|
|
JUMP ?CND3
|
|
?CCL5: EQUAL? LOG-COUNTER,2 \?CCL7
|
|
PRINTI "2.5100: Reproductions Officer Hausberg reports that collater #22 is off-line for routine service. Estimates one or two days downtime. Also, unidentified craft detected in sector. No response to hailings. Sending Finsterwald to intercept."
|
|
JUMP ?CND3
|
|
?CCL7: EQUAL? LOG-COUNTER,3 \?CCL9
|
|
PRINTI "2.6750: Unidentified craft towed to Docking Bay #1. It is a single-cabin vessel of unfamiliar alien origin. The only things aboard were the remains of one of the aliens, and a featureless pyramid. I'll leave it to the eggheads; I've got a problem of my own: a report that a used-spaceship dealer in the village named Shady Dan is selling modified Patrol ID cards. Liaison Officer Bumblewitz is investigating."
|
|
JUMP ?CND3
|
|
?CCL9: EQUAL? LOG-COUNTER,4 \?CCL11
|
|
PRINTI "3.1900: Professor Schmidt has back-plotted the course of the alien vessel. There are no star systems along the course; he theorizes that it may be of extra-galactic origin."
|
|
JUMP ?CND3
|
|
?CCL11: EQUAL? LOG-COUNTER,5 \?CCL13
|
|
PRINTI "3.5100: No cooperation from Shady Dan, so I'm putting the village off-limits to station personnel. No more village entry forms will be validated."
|
|
JUMP ?CND3
|
|
?CCL13: EQUAL? LOG-COUNTER,6 \?CCL15
|
|
PRINTI "3.5250: Some kripping joker snuck into my office and validated a whole batch of village entry forms! I won't take that kind of trot aboard my station! I'll hide the stamp under my bed until I find out who's responsible. Also, I gave Schmidt permission to move the alien pyramid to the "
|
|
PRINTD HOLDING-TANK
|
|
PRINTI " in the Sci Sub-Module for further study; the "
|
|
PRINTD SKELETON
|
|
PRINTI " is too brittle to move, they say. Hmmm... This "
|
|
PRINTD LOG-READER
|
|
PRINTI " is overheating. I'll have to dig out the spare."
|
|
JUMP ?CND3
|
|
?CCL15: EQUAL? LOG-COUNTER,7 \?CCL17
|
|
PRINTI "3.7700: Equipment Officer Mertzhoffer informs me that there have been several unexplainable breakdowns in the Gymnastic Equipment and the Laundering Machinery. All very simple equipment; could it be sabotage? If so, how? Who? Why?"
|
|
JUMP ?CND3
|
|
?CCL17: EQUAL? LOG-COUNTER,8 \?CCL19
|
|
PRINTI "4.1650: Emergency communication from the S.P.S. Duffy. They are critically low on "
|
|
PRINT FORM-NAME
|
|
PRINTI ", and are sending someone over to pick up a truckload of them. Reproductions Officer Hausberg says that the #22 collater should be available to prepare the forms."
|
|
JUMP ?CND3
|
|
?CCL19: EQUAL? LOG-COUNTER,9 \?CCL21
|
|
PRINTI "4.1850: Hausberg reports an unexpected shutdown of web-feeder #17. No apparent reason for the shutdown, and no warning, either. He says that one of his personnel almost lost an arm when it shut down. We may have to halt the entire plant to investigate. No telling how long... What the... Trot! Now the spare "
|
|
PRINTD LOG-READER
|
|
PRINTI " is overheating, also!"
|
|
JUMP ?CND3
|
|
?CCL21: PRINTI "4.1900: One of the ensigns in the filing division was seriously injured when one of the "
|
|
PRINTD WELDER
|
|
PRINTI "s malfunctioned. She's in Sick Bay now; Doc says she should pull through. I've been in space for 32 years and I've never heard of a "
|
|
PRINTD WELDER
|
|
PRINTI " malfun... What the krip!..."
|
|
?CND3: PRINTC 34
|
|
EQUAL? LOG-COUNTER,10 /?CND22
|
|
CRLF
|
|
PRINTI " A mechanized voice from the "
|
|
PRINTD LOG-READER
|
|
PRINTR " intones the single word ""More,"" and the red button on the reader lights up."
|
|
?CND22: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DIAL-F
|
|
FSET? SAFE,OPENBIT \?CCL3
|
|
PRINTR "There's not much left of the dial."
|
|
?CCL3: EQUAL? PRSA,V?SET \?CCL5
|
|
EQUAL? PRSO,PSEUDO-OBJECT \?CCL5
|
|
ZERO? PRSI \?CCL10
|
|
PRINT NEXT-TIME
|
|
RTRUE
|
|
?CCL10: EQUAL? PRSI,INTNUM /?CCL12
|
|
PRINT HUH
|
|
RTRUE
|
|
?CCL12: CALL PERFORM,V?SET,INTNUM
|
|
RTRUE
|
|
?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTI "The dial is set to "
|
|
PRINTN DIAL-SETTING
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SAFE-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTI "It's a top-of-the-line HyperSecurity Safe, featuring a dial with 8000 settings. There are probably between twelve and twenty numbers in the combination"
|
|
IN? DRILLED-HOLE,HERE \?CND4
|
|
PRINTI ". There is a hole in the safe"
|
|
CALL DESCRIBE-BIT-SIZE,HOLE-SIZE
|
|
?CND4: PRINT PERIOD-CR
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?DRILL \?CCL7
|
|
CALL MAKE-HOLE-WITH-DRILL,SAFE
|
|
RSTACK
|
|
?CCL7: EQUAL? PRSA,V?PICK,V?UNLOCK \FALSE
|
|
PRINTR "The galaxy's craftiest safecrackers would be stumped by this baby."
|
|
|
|
|
|
.FUNCT DESCRIBE-BIT-SIZE,BIT-SIZE
|
|
PRINTI " approximately the diameter of a "
|
|
EQUAL? BIT-SIZE,SMALL-BIT \?CCL3
|
|
PRINTI "toothpick"
|
|
RTRUE
|
|
?CCL3: EQUAL? BIT-SIZE,MEDIUM-BIT \?CCL5
|
|
PRINTI "pencil"
|
|
RTRUE
|
|
?CCL5: PRINTI "cigar"
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DRILLED-HOLE-F,OBJ
|
|
EQUAL? HERE,COMMANDERS-QUARTERS \?CCL3
|
|
SET 'OBJ,SAFE
|
|
JUMP ?CND1
|
|
?CCL3: EQUAL? HERE,LOAN-SHARK \?CCL5
|
|
SET 'OBJ,STRONG-BOX
|
|
JUMP ?CND1
|
|
?CCL5: SET 'OBJ,HOUSING
|
|
?CND1: EQUAL? PRSA,V?PUT \?CCL8
|
|
EQUAL? PRSI,DRILLED-HOLE \?CCL8
|
|
EQUAL? PRSO,EXPLOSIVE \?CTR12
|
|
EQUAL? HOLE-SIZE,SMALL-BIT \?CCL13
|
|
?CTR12: CALL DOESNT-FIT,STR?257
|
|
RSTACK
|
|
?CCL13: EQUAL? HERE,DOME \?CCL17
|
|
PRINTI "As the explosive touches the warm bin, it "
|
|
PRINT SUBLIMES-INTO-FREZONE
|
|
CALL DEQUEUE,I-EXPLOSIVE-MELT
|
|
CALL REMOVE-CAREFULLY,EXPLOSIVE
|
|
CRLF
|
|
RTRUE
|
|
?CCL17: ZERO? SAFE-HOLE-SCORE \FALSE
|
|
EQUAL? HERE,COMMANDERS-QUARTERS \FALSE
|
|
INC 'ROBOT-EVILNESS
|
|
ADD SCORE,3 >SCORE
|
|
SET 'SAFE-HOLE-SCORE,TRUE-VALUE
|
|
RFALSE
|
|
?CCL8: EQUAL? PRSA,V?DRILL \?CCL23
|
|
CALL PERFORM,PRSA,OBJ
|
|
RTRUE
|
|
?CCL23: EQUAL? PRSA,V?SHOOT \?CCL25
|
|
CALL PERFORM,PRSA,OBJ,ZAPGUN
|
|
RTRUE
|
|
?CCL25: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
PRINT ONLY-BLACKNESS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MAKE-HOLE-WITH-DRILL,OBJ
|
|
ZERO? DRILL-DEAD /?CCL3
|
|
CALL PERFORM,V?ON,DRILL
|
|
RTRUE
|
|
?CCL3: ZERO? HOLE-SIZE /?CCL5
|
|
IN? DRILLED-HOLE,HERE /?CCL5
|
|
SET 'DRILL-DEAD,TRUE-VALUE
|
|
PRINTR "As you begin drilling, the drill sparks and stops running."
|
|
?CCL5: ZERO? HOLE-SIZE \?CCL9
|
|
MOVE DRILLED-HOLE,HERE
|
|
FIRST? DRILL >HOLE-SIZE /?KLU16
|
|
?KLU16: SET 'C-ELAPSED,30
|
|
PRINTI "You drill a hole in"
|
|
CALL TPRINT,OBJ
|
|
CALL DESCRIBE-BIT-SIZE,HOLE-SIZE
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
?CCL9: FIRST? DRILL /?KLU17
|
|
?KLU17: EQUAL? HOLE-SIZE,STACK \?CCL11
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?CCL11: EQUAL? HOLE-SIZE,LARGE-BIT /?CTR12
|
|
IN? SMALL-BIT,DRILL \?CCL13
|
|
?CTR12: PRINTR "The hole in the safe is already larger than the bit in the drill."
|
|
?CCL13: FIRST? DRILL >HOLE-SIZE /?KLU18
|
|
?KLU18: PRINTI "You enlarge the hole in"
|
|
CALL TPRINT,OBJ
|
|
PRINTI ". It's now"
|
|
CALL DESCRIBE-BIT-SIZE,HOLE-SIZE
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT STAMP-F
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "It's a fairly standard self-inking rubber stamp."
|
|
|
|
|
|
.FUNCT ZAPGUN-F
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTI "The zapgun is a nasty-looking weapon. Mounted near its ugly maw is an indicator which reads """
|
|
PRINTN ZAPGUN-SHOTS
|
|
PRINTR "."""
|
|
|
|
|
|
.FUNCT SOUTH-CONNECTION-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "The corridor widens as it reaches the hull of the station. To the south, where a Sub-Module connection would be in a station with a Diplomatic Sub-Module, an iris hatch is "
|
|
FSET? IRIS-HATCH,OPENBIT \?CCL6
|
|
PRINTI "open, leading to a dark corridor which is quite obviously not a connecting tube for a Diplomatic Sub-Module"
|
|
JUMP ?CND4
|
|
?CCL6: PRINTI "closed"
|
|
?CND4: PRINTI ". There's a slot next to the hatch. Other doors lead east and west, and a junction with another corridor is visible to the north."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT LEVEL-FOUR-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "You are now on the primary bunk level of the station, with barracks to the north and south. To the east is the elevator "
|
|
EQUAL? ELEVATOR-LEVEL,4 /?CND4
|
|
PRINTI "shaft "
|
|
?CND4: PRINTI "and the elevator call button. Docking Bay #3 can be entered to the west"
|
|
PRINT LADDER-LEADS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT LEVEL-THREE-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "From this lobby you can choose doors that lie to the north, south, or northwest. An additional doorway leads southwest. The elevator "
|
|
EQUAL? ELEVATOR-LEVEL,3 /?CND4
|
|
PRINTI "shaft "
|
|
?CND4: PRINTI "and button are just to the east"
|
|
PRINT LADDER-LEADS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT GYM-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is a huge room where station personnel keep in shape via exercise and recreational sports. "
|
|
IN? EXERCISE-MACHINE,HERE /?CND4
|
|
PRINTI "There's a sign on one wall. "
|
|
?CND4: PRINTI "The sole exit is south."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT EXERCISE-MACHINE-F,OARG
|
|
ZERO? OARG \FALSE
|
|
EQUAL? PRSA,V?ENTER \?CCL5
|
|
CALL RUNNING?,I-EXERCISE-MACHINE
|
|
ZERO? STACK /?CCL8
|
|
PRINTI "The "
|
|
PRINTD EXERCISE-MACHINE
|
|
CALL JIGS-UP,STR?267
|
|
RSTACK
|
|
?CCL8: EQUAL? HERE,COMPUTER-CONTROL \FALSE
|
|
PRINTR "The forklift is in the way."
|
|
?CCL5: EQUAL? PRSA,V?OFF,V?ON \?CCL12
|
|
PRINTR "It's permanently on."
|
|
?CCL12: EQUAL? PRSA,V?EXAMINE \?CCL14
|
|
IN? PROTAGONIST,EXERCISE-MACHINE /?CCL14
|
|
PRINTI "There's no one in"
|
|
CALL TRPRINT,EXERCISE-MACHINE
|
|
RSTACK
|
|
?CCL14: EQUAL? PRSA,V?MUNG,V?KILL \?CCL18
|
|
PRINTI "The "
|
|
PRINTD EXERCISE-MACHINE
|
|
PRINTR " is made of zynoid-reinforced hyper-steel."
|
|
?CCL18: EQUAL? PRSA,V?USE \FALSE
|
|
IN? PROTAGONIST,EXERCISE-MACHINE \?CCL23
|
|
CALL V-EXERCISE
|
|
RSTACK
|
|
?CCL23: PRINTR "You're not even in it!"
|
|
|
|
|
|
.FUNCT LAUNDRY-F,RARG
|
|
EQUAL? RARG,M-LOOK \?CCL3
|
|
PRINTI "All laundry rooms, planetside as well as in space, tend to look alike. This one is no exception."
|
|
FSET? DRYER,ACTIVEBIT \?CND4
|
|
PRINTC 32
|
|
CALL DESCRIBE-DRYER-HEAT
|
|
?CND4: PRINTI " The door lies on the east side."
|
|
RTRUE
|
|
?CCL3: EQUAL? RARG,M-ENTER \?CCL7
|
|
FSET? PRESSER,ACTIVEBIT \?CCL7
|
|
CALL QUEUE,I-PRESSER,40
|
|
RSTACK
|
|
?CCL7: EQUAL? RARG,M-END \FALSE
|
|
GRTR? DRYER-COUNTER,15 \FALSE
|
|
PRINTI " The heat from the dryer is too much to stand! You stumble mindlessly out into the corridor"
|
|
PRINT ELLIPSIS
|
|
CALL GOTO,LEVEL-THREE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DRYER-F
|
|
EQUAL? PRSA,V?LOOK-BEHIND \?CCL3
|
|
PRINTR "You see a huge pile of Patrol-issue socks, hundreds of them, all mismatched."
|
|
?CCL3: EQUAL? PRSA,V?ON \?CCL5
|
|
FSET? DRYER,ACTIVEBIT /?CCL5
|
|
FSET DRYER,ACTIVEBIT
|
|
CALL QUEUE,I-DRYER,-1
|
|
PRINTR "An abnormal amount of hot air blasts out from all sides of the dryer."
|
|
?CCL5: EQUAL? PRSA,V?OFF \?CCL9
|
|
FSET? DRYER,ACTIVEBIT \?CCL9
|
|
FCLEAR DRYER,ACTIVEBIT
|
|
CALL DEQUEUE,I-DRYER
|
|
SET 'DRYER-COUNTER,0
|
|
PRINTR "With the dryer off, the station's ventilation system quickly returns the room to a comfy twenty-three degrees Celsius."
|
|
?CCL9: EQUAL? PRSA,V?OPEN \?CCL13
|
|
FSET? DRYER,ACTIVEBIT \?CCL13
|
|
PRINTI "Opening the dryer automatically shuts it off. "
|
|
FSET DRYER,OPENBIT
|
|
CALL PERFORM,V?OFF,DRYER
|
|
RTRUE
|
|
?CCL13: EQUAL? PRSA,V?SHOOT \FALSE
|
|
FCLEAR DRYER,ACTIVEBIT
|
|
CALL DEQUEUE,I-DRYER
|
|
SET 'DRYER-COUNTER,0
|
|
RFALSE
|
|
|
|
|
|
.FUNCT DESCRIBE-DRYER-HEAT
|
|
GRTR? DRYER-COUNTER,14 \?CCL3
|
|
PRINTI "Searing blasts of air from the dryer have made the room unbearably hot."
|
|
RTRUE
|
|
?CCL3: GRTR? DRYER-COUNTER,9 \?CCL5
|
|
PRINTI "Thanks to the dryer, the laundry room is now incredibly toasty."
|
|
RTRUE
|
|
?CCL5: PRINTI "The dryer is making the room uncomfortably hot."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PRESSER-F,OARG=0
|
|
ZERO? OARG /?CCL3
|
|
FSET? PRESSER,ACTIVEBIT \FALSE
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " "
|
|
CALL DESCRIBE-PRESSER
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL10
|
|
FSET? PRESSER,ACTIVEBIT \?CND11
|
|
CALL DESCRIBE-PRESSER
|
|
PRINTC 32
|
|
?CND11: PRINTI "The presser is currently o"
|
|
FSET? PRESSER,ACTIVEBIT \?CCL15
|
|
PRINTC 110
|
|
JUMP ?CND13
|
|
?CCL15: PRINTI "ff"
|
|
?CND13: PRINTI ". "
|
|
RFALSE
|
|
?CCL10: EQUAL? PRSA,V?PUT-ON \?CCL17
|
|
EQUAL? PRSI,PRESSER \?CCL17
|
|
CALL PERFORM,V?PUT,PRSO,PRSI
|
|
RTRUE
|
|
?CCL17: EQUAL? PRSA,V?CLOSE \?CCL21
|
|
FSET? PRESSER,ACTIVEBIT \?CCL21
|
|
IN? CRUMPLED-FORM,PRESSER \?CND24
|
|
REMOVE CRUMPLED-FORM
|
|
MOVE VILLAGE-FORM,PRESSER
|
|
?CND24: IN? PATROL-UNIFORM,PRESSER \FALSE
|
|
SET 'SUIT-PRESSED,TRUE-VALUE
|
|
RFALSE
|
|
?CCL21: EQUAL? PRSA,V?ON \?CCL29
|
|
FSET? PRESSER,ACTIVEBIT /?CCL29
|
|
SET 'PRESSER-STEAMING,FALSE-VALUE
|
|
FSET PRESSER,ACTIVEBIT
|
|
CALL QUEUE,I-PRESSER,25
|
|
FSET? PRESSER,OPENBIT /?CND32
|
|
IN? CRUMPLED-FORM,PRESSER \?CND34
|
|
REMOVE CRUMPLED-FORM
|
|
MOVE VILLAGE-FORM,PRESSER
|
|
?CND34: IN? PATROL-UNIFORM,PRESSER \?CND32
|
|
SET 'SUIT-PRESSED,TRUE-VALUE
|
|
?CND32: PRINTR "A trickle of steam begins leaking from the presser."
|
|
?CCL29: EQUAL? PRSA,V?SHOOT \FALSE
|
|
CALL DEQUEUE,I-PRESSER
|
|
RFALSE
|
|
|
|
|
|
.FUNCT DESCRIBE-PRESSER
|
|
PRINTI "A "
|
|
ZERO? PRESSER-STEAMING /?CCL3
|
|
PRINTI "huge amount"
|
|
JUMP ?CND1
|
|
?CCL3: PRINTI "trickle"
|
|
?CND1: PRINTI " of steam is coming from the laundry room's presser."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-PRESSER
|
|
FSET? PRESSER,ACTIVEBIT \FALSE
|
|
EQUAL? HERE,LAUNDRY \FALSE
|
|
PRINTI " "
|
|
ZERO? PRESSER-STEAMING /?CCL8
|
|
PRINTI "The presser suddenly "
|
|
FSET? PRESSER,OPENBIT /?CND9
|
|
PRINTI "opens, "
|
|
?CND9: CALL JIGS-UP,STR?269
|
|
RSTACK
|
|
?CCL8: SET 'PRESSER-STEAMING,TRUE-VALUE
|
|
CALL QUEUE,I-PRESSER,25
|
|
PRINTR "The presser shudders, and clouds of steam begin billowing out of it."
|
|
|
|
|
|
.FUNCT CHAPEL-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is a modest, nondenominational chapel. Hanging high above the "
|
|
IN? PULPIT,HERE \?CCL6
|
|
PRINTI "beautiful wooden pulpit "
|
|
JUMP ?CND4
|
|
?CCL6: PRINTI "floor "
|
|
?CND4: FSET? STAR,TOUCHBIT /?CCL9
|
|
PRINTI "are the two"
|
|
JUMP ?CND7
|
|
?CCL9: PRINTI "is one of the"
|
|
?CND7: PRINTI " universal symbols of every major galactic religion: an "
|
|
PRINTD ETERNAL-FLAME
|
|
FSET? STAR,TOUCHBIT /?CND10
|
|
PRINTI " and a "
|
|
PRINTD STAR
|
|
?CND10: PRINTI ". "
|
|
FSET? ETERNAL-FLAME,ONBIT \?CCL14
|
|
PRINTI "The flame flickers in the air currents. "
|
|
JUMP ?CND12
|
|
?CCL14: PRINT FLAME-EXTINGUISHED
|
|
PRINTC 32
|
|
?CND12: PRINTI "A doorway occupies the center of the east wall."
|
|
FSET? STAR,TOUCHBIT /TRUE
|
|
CRLF
|
|
PRINTI " The star is blinking."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT STAR-F
|
|
CALL TOUCHING?,STAR
|
|
ZERO? STACK /?CCL3
|
|
FSET? STAR,TRYTAKEBIT \?CCL3
|
|
ZERO? HANGING-IN-AIR \?CCL3
|
|
PRINTR "The star is above you, beyond your reach."
|
|
?CCL3: EQUAL? PRSA,V?TAKE \?CCL8
|
|
FSET? STAR,TRYTAKEBIT \?CCL8
|
|
ZERO? HANGING-IN-AIR /?CCL8
|
|
FCLEAR STAR,TRYTAKEBIT
|
|
FCLEAR STAR,NDESCBIT
|
|
FSET STAR,TOUCHBIT
|
|
MOVE STAR,PROTAGONIST
|
|
INC 'ROBOT-EVILNESS
|
|
GETP DIODE-M,P?VALUE
|
|
ADD SCORE,STACK >SCORE
|
|
PUTP DIODE-M,P?VALUE,0
|
|
PRINTR "Taken."
|
|
?CCL8: EQUAL? PRSA,V?EXAMINE \?CCL13
|
|
IN? DIODE-M,STAR \?CND14
|
|
PRINTI "It's blinking with a gentle, rhythmic light. "
|
|
?CND14: FSET? STAR,TRYTAKEBIT \?CCL18
|
|
ZERO? HANGING-IN-AIR \?CCL18
|
|
CALL PERFORM,V?TOUCH,STAR
|
|
RTRUE
|
|
?CCL18: PRINTI "The back of the star "
|
|
FSET? STAR,OPENBIT \?CCL23
|
|
PRINTI "is open"
|
|
JUMP ?CND21
|
|
?CCL23: PRINTI "looks openable"
|
|
?CND21: PRINT PERIOD-CR
|
|
RTRUE
|
|
?CCL13: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSO,DIODE-J \FALSE
|
|
REMOVE DIODE-J
|
|
PRINTR "Once the diode is in place, the star begins blinking rapidly and erratically. Suddenly the diode bursts and the star goes dead."
|
|
|
|
|
|
.FUNCT ETERNAL-FLAME-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
FSET? ETERNAL-FLAME,ONBIT \?CCL6
|
|
PRINTI "The "
|
|
PRINTD ETERNAL-FLAME
|
|
PRINTI " burns high above the floor of the chapel. It looks like a reproduction of the "
|
|
PRINTD ETERNAL-FLAME
|
|
PRINTR " designed by the 108th century artist, Ernie DaCosta, for the Sierra Vista Monastery on Bulbus VII."
|
|
?CCL6: PRINT FLAME-EXTINGUISHED
|
|
CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?OFF,V?ON \?CCL8
|
|
ZERO? HANGING-IN-AIR \?CCL11
|
|
PRINTI "The flame is high above your head, and besides that, t"
|
|
JUMP ?CND9
|
|
?CCL11: PRINTC 84
|
|
?CND9: PRINTR "here doesn't seem to be a switch on the flame."
|
|
?CCL8: CALL TOUCHING?,ETERNAL-FLAME
|
|
ZERO? STACK /?CCL13
|
|
ZERO? HANGING-IN-AIR \?CCL13
|
|
CALL CANT-REACH,ETERNAL-FLAME
|
|
RSTACK
|
|
?CCL13: EQUAL? PRSA,V?SHOOT \FALSE
|
|
FSET? ETERNAL-FLAME,ONBIT \FALSE
|
|
PRINTR "Perhaps that made the flame hotter; there was really no way to tell."
|
|
|
|
|
|
.FUNCT PULPIT-F
|
|
EQUAL? PRSA,V?STAND-ON,V?CLIMB-UP,V?CLIMB-ON /?CTR2
|
|
EQUAL? PRSA,V?ENTER \?CCL3
|
|
?CTR2: ZERO? HANGING-IN-AIR /?CCL8
|
|
CALL CANT-REACH,PULPIT
|
|
RSTACK
|
|
?CCL8: PRINTI "The pulpit sways, and you fall off."
|
|
FSET? PULPIT,TOUCHBIT /?CCL11
|
|
PRINTI " However, it wasn't a wasted effort: "
|
|
CALL PERFORM,V?EXAMINE,PULPIT
|
|
RTRUE
|
|
?CCL11: CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL13
|
|
FSET? PULPIT,TOUCHBIT /?CCL13
|
|
FSET PULPIT,TOUCHBIT
|
|
PRINTR "You discover that the pulpit seems openable!"
|
|
?CCL13: EQUAL? PRSA,V?SHOOT \FALSE
|
|
REMOVE PULPIT
|
|
REMOVE SWITCH
|
|
PRINTR "In a rain of hellfire and brimstone, the pulpit is banished."
|
|
|
|
|
|
.FUNCT SWITCH-F
|
|
EQUAL? PRSA,V?THROW,V?OFF,V?ON /?CCL3
|
|
EQUAL? PRSA,V?SET,V?MOVE,V?PUSH \FALSE
|
|
?CCL3: ZERO? HANGING-IN-AIR /?CND6
|
|
CALL CANT-REACH,SWITCH
|
|
RTRUE
|
|
?CND6: PRINTI "The "
|
|
PRINTD ETERNAL-FLAME
|
|
PRINTC 32
|
|
FSET? ETERNAL-FLAME,ONBIT \?CCL10
|
|
FCLEAR ETERNAL-FLAME,ACTIVEBIT
|
|
FCLEAR ETERNAL-FLAME,ONBIT
|
|
PRINTR "goes out!"
|
|
?CCL10: FSET ETERNAL-FLAME,ACTIVEBIT
|
|
FSET ETERNAL-FLAME,ONBIT
|
|
PRINTI "flickers back on."
|
|
IN? BALLOON,HERE \?CND11
|
|
MOVE BALLOON,LEVEL-THREE
|
|
MOVE LEASH,LEVEL-THREE
|
|
PRINTI " The "
|
|
PRINTD BALLOON
|
|
PRINTR " shoots out of the Chapel."
|
|
?CND11: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT THEATRE-SEAT-F
|
|
EQUAL? PRSA,V?CLIMB-ON,V?ENTER \FALSE
|
|
SET 'PRSO,ROOMS
|
|
CALL V-SIT
|
|
RSTACK
|
|
|
|
|
|
.FUNCT PROJECTION-BOOTH-F
|
|
EQUAL? PRSA,V?WALK-TO,V?ENTER,V?OPEN /?CTR2
|
|
EQUAL? PRSA,V?SEARCH \?CCL3
|
|
?CTR2: PRINTR "The projection booth is closed and locked."
|
|
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
PRINT ONLY-BLACKNESS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MESS-HALL-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This open dining area seats around 30 people. "
|
|
PRINTD FPU
|
|
PRINTI "s curve along the exterior wall. There's a doorway to the southeast, and doors lead north, south, and northeast. To the east are the elevator"
|
|
EQUAL? ELEVATOR-LEVEL,2 /?CND4
|
|
PRINTI " shaft"
|
|
?CND4: PRINTI ", the elevator button, and the up-down ladder."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FPU-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTR "The units curve around the outside wall of the Mess Hall. The interface is delightfully simple: a user simply turns on the unit and immediately receives a tasty and nutritionally-balanced meal."
|
|
?CCL3: EQUAL? PRSA,V?ON \FALSE
|
|
PRINTI "A taped voice, in a cheery contralto, says, ""Good "
|
|
LESS? INTERNAL-MOVES,3000 \?CCL8
|
|
PRINTI "morning"
|
|
JUMP ?CND6
|
|
?CCL8: GRTR? INTERNAL-MOVES,5000 \?CCL10
|
|
PRINTI "evening"
|
|
JUMP ?CND6
|
|
?CCL10: PRINTI "afternoon"
|
|
?CND6: PRINTI "! Today's menu features "
|
|
LESS? INTERNAL-MOVES,3000 \?CCL13
|
|
PRINTI "sausage, frobbled eggs, and teakberry juice"
|
|
JUMP ?CND11
|
|
?CCL13: GRTR? INTERNAL-MOVES,5000 \?CCL15
|
|
PRINTI "chicken pot pie, braised volpoid livers, and mashed Rigellian yams"
|
|
JUMP ?CND11
|
|
?CCL15: PRINTI "a bacon, lettuce, and frombucko sandwich"
|
|
?CND11: PRINTR ". Eat hearty! Dispensing will now begin."" A seamless hatch in the FDU opens, and a stream of acid shoots out. You leap aside as the acid etches the floor, leaving behind some acrid fumes."
|
|
|
|
|
|
.FUNCT COFFEE-F,OARG=0
|
|
ZERO? OARG /?CCL3
|
|
FSET? COFFEE,TOUCHBIT /FALSE
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " A cup of thick brown coffee sits on one of the tables"
|
|
EQUAL? DAY,1 \?CND8
|
|
PRINTI ". It's still steaming, though there's no one in sight"
|
|
?CND8: PRINTC 46
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?THROW,V?EMPTY,V?POUR \?CCL11
|
|
EQUAL? PRSO,COFFEE \?CCL11
|
|
CALL MESS,STR?272
|
|
CALL ANTI-LITTER,COFFEE
|
|
RSTACK
|
|
?CCL11: EQUAL? PRSA,V?TOUCH,V?EXAMINE,V?TASTE /?PRD17
|
|
EQUAL? PRSA,V?LOOK-INSIDE,V?REACH-IN \?CCL15
|
|
?PRD17: EQUAL? DAY,1 \?CCL15
|
|
PRINTR "The coffee is still hot."
|
|
?CCL15: EQUAL? PRSA,V?TASTE \?CCL21
|
|
PRINTR "It tastes unusually bitter."
|
|
?CCL21: EQUAL? PRSA,V?SMELL \?CCL23
|
|
PRINTR "The coffee has a vague chemical odor."
|
|
?CCL23: EQUAL? PRSA,V?REACH-IN,V?LOOK-INSIDE,V?EXAMINE /?CTR24
|
|
EQUAL? PRSA,V?TOUCH \?CCL25
|
|
?CTR24: PRINTR "The cup is filled with cold coffee."
|
|
?CCL25: EQUAL? PRSA,V?EAT-FROM \?CCL29
|
|
CALL PERFORM,V?EAT,COFFEE
|
|
RTRUE
|
|
?CCL29: EQUAL? PRSA,V?EAT \FALSE
|
|
ZERO? HUNGER-LEVEL \?CCL34
|
|
PRINT NOT-HUNGRY
|
|
RTRUE
|
|
?CCL34: CALL JIGS-UP,STR?273
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DETONATOR-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTI "It's a state-of-the-art detonator, fairly cubical with two connection points. "
|
|
ZERO? TIMER-CONNECTED /?CCL6
|
|
PRINTI "A timer is attached at one of those points"
|
|
ZERO? EXPLOSIVE-CONNECTED /?CND7
|
|
PRINTI ", and an explosive is attached at the other"
|
|
?CND7: PRINTI ". "
|
|
JUMP ?CND4
|
|
?CCL6: ZERO? EXPLOSIVE-CONNECTED /?CND4
|
|
PRINTI "An explosive is attached at one of those points. "
|
|
?CND4: FSET? DETONATOR,OPENBIT \?CCL12
|
|
PRINTI "The detonator is open"
|
|
FIRST? DETONATOR \?CCL15
|
|
PRINTI " and contains"
|
|
FIRST? DETONATOR /?KLU62
|
|
?KLU62: CALL ARPRINT,STACK
|
|
RSTACK
|
|
?CCL15: PRINT PERIOD-CR
|
|
RTRUE
|
|
?CCL12: PRINTR "There is a faint crack running around the outside of the detonator, indicating that perhaps it can be opened."
|
|
?CCL3: EQUAL? PRSA,V?CONNECT \?CCL17
|
|
EQUAL? TIMER,PRSO,PRSI \?CCL20
|
|
ZERO? TIMER-CONNECTED /?CCL23
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?CCL23: SET 'TIMER-CONNECTED,TRUE-VALUE
|
|
PRINTR "Done."
|
|
?CCL20: EQUAL? EXPLOSIVE,PRSO,PRSI \?CCL25
|
|
ZERO? EXPLOSIVE-CONNECTED /?CCL28
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?CCL28: SET 'EXPLOSIVE-CONNECTED,TRUE-VALUE
|
|
PRINTR "Done (Footnote 13)."
|
|
?CCL25: PRINT YOU-CANT
|
|
PRINTR "connect the detonator to that!"
|
|
?CCL17: EQUAL? PRSA,V?DISCONNECT \?CCL30
|
|
ZERO? PRSI \?CCL33
|
|
ZERO? EXPLOSIVE-CONNECTED \?CCL36
|
|
ZERO? TIMER-CONNECTED /FALSE
|
|
?CCL36: PRINT DETACH
|
|
ZERO? TIMER-CONNECTED /?CCL41
|
|
PRINTI "the timer"
|
|
ZERO? EXPLOSIVE-CONNECTED /?CND39
|
|
PRINTI " and the explosive"
|
|
JUMP ?CND39
|
|
?CCL41: PRINTI "the explosive"
|
|
?CND39: SET 'EXPLOSIVE-CONNECTED,FALSE-VALUE
|
|
SET 'TIMER-CONNECTED,FALSE-VALUE
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
?CCL33: EQUAL? EXPLOSIVE,PRSO,PRSI \?CCL45
|
|
ZERO? EXPLOSIVE-CONNECTED /?CCL45
|
|
SET 'EXPLOSIVE-CONNECTED,FALSE-VALUE
|
|
PRINT DETACH
|
|
PRINTR "the explosive."
|
|
?CCL45: EQUAL? TIMER,PRSO,PRSI \FALSE
|
|
ZERO? TIMER-CONNECTED /FALSE
|
|
SET 'TIMER-CONNECTED,FALSE-VALUE
|
|
PRINT DETACH
|
|
PRINTR "the timer."
|
|
?CCL30: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,DETONATOR \FALSE
|
|
FSET? DETONATOR,OPENBIT \FALSE
|
|
EQUAL? PRSO,BLACKENED-DIODE,DIODE-M,DIODE-J /?CCL59
|
|
CALL DOESNT-FIT,STR?275
|
|
RSTACK
|
|
?CCL59: FIRST? DETONATOR \FALSE
|
|
PRINTI "There's a "
|
|
FIRST? DETONATOR /?KLU63
|
|
?KLU63: PRINTD STACK
|
|
PRINTR " in the way."
|
|
|
|
|
|
.FUNCT BLACKENED-DIODE-F
|
|
EQUAL? PRSA,V?CLEAN \?CCL3
|
|
ZERO? DIODE-CLEANED /?CCL6
|
|
PRINTR "You've de-charred the diode to the max."
|
|
?CCL6: SET 'DIODE-CLEANED,TRUE-VALUE
|
|
PRINTI "You scrape off enough black that y"
|
|
PRINT MAKE-OUT-AN-M
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL8
|
|
ZERO? DIODE-CLEANED /?CCL11
|
|
PRINTC 89
|
|
PRINT MAKE-OUT-AN-M
|
|
RTRUE
|
|
?CCL11: PRINTR "The diode is so charred you can't even tell what series it is."
|
|
?CCL8: EQUAL? PRSA,V?COMPARE \FALSE
|
|
EQUAL? DIODE-J,PRSO,PRSI /?CCL13
|
|
EQUAL? DIODE-M,PRSO,PRSI \FALSE
|
|
?CCL13: PRINTI "They're identical in size and shape, but"
|
|
CALL TPRINT,BLACKENED-DIODE
|
|
PRINTR " is covered with char."
|
|
|
|
|
|
.FUNCT MAGAZINE-F
|
|
EQUAL? PRSA,V?TAKE \?CCL3
|
|
CALL RECORDING,STR?279
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE,V?OPEN,V?READ /?CCL5
|
|
EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
?CCL5: PRINTR "You glance at the magazines. The most familiar ones are ""Popular Patrolling,"" ""The Galactic Enquirer,"" and ""True Tales of Adventure."" However, they're all issues which you've already read back on the Duffy, so they're not too interesting."
|
|
|
|
|
|
.FUNCT NANOFILM-READER-F,SPOOL
|
|
FIRST? NANOFILM-READER >SPOOL /?KLU31
|
|
?KLU31: EQUAL? PRSA,V?CLOSE \?CCL3
|
|
PRINT HUH
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
|
|
PRINTI "The "
|
|
PRINTD NANOFILM-READER
|
|
PRINTI " must be a voice-output model, since it has no screen. The reader is o"
|
|
FSET? NANOFILM-READER,ACTIVEBIT \?CCL8
|
|
PRINTC 110
|
|
JUMP ?CND6
|
|
?CCL8: PRINTI "ff"
|
|
?CND6: PRINTI ", and there is "
|
|
ZERO? SPOOL /?CCL11
|
|
PRINTI "a "
|
|
PRINTD SPOOL
|
|
JUMP ?CND9
|
|
?CCL11: PRINTI "no spool"
|
|
?CND9: PRINTR " in the reader."
|
|
?CCL5: EQUAL? PRSA,V?PUT \?CCL13
|
|
EQUAL? PRSO,LILAC-SPOOL,PUCE-SPOOL,MAUVE-SPOOL /?CCL16
|
|
PRINTR "It doesn't fit."
|
|
?CCL16: ZERO? SPOOL /?CCL18
|
|
PRINTR "There's already a spool in the reader."
|
|
?CCL18: FSET? NANOFILM-READER,ACTIVEBIT \FALSE
|
|
MOVE PRSO,NANOFILM-READER
|
|
FCLEAR NANOFILM-READER,ACTIVEBIT
|
|
CALL PERFORM,V?ON,NANOFILM-READER
|
|
RTRUE
|
|
?CCL13: EQUAL? PRSA,V?ON \FALSE
|
|
FSET? NANOFILM-READER,ACTIVEBIT /FALSE
|
|
ZERO? SPOOL /FALSE
|
|
FSET NANOFILM-READER,ACTIVEBIT
|
|
PRINTI "The reader, in a surprisingly human voice, says, """
|
|
EQUAL? SPOOL,MAUVE-SPOOL \?CCL28
|
|
PRINTI "Gamma-Delta-Gamma class Deep-Space Stations are equipped with a full range of collating machinery. The workhorse of the..."" There is a burst of static from the reader. ""...common malfunction of this large collater. First check the lower fromitz..."" More static. ""...and replace with"
|
|
JUMP ?CND26
|
|
?CCL28: EQUAL? SPOOL,LILAC-SPOOL \?CCL30
|
|
PRINTI "Replacement of depleted fuel cells on a Forms Transport "
|
|
PRINTD SPACETRUCK
|
|
PRINTI " is a fast and simple proc..."" Static. ""...with the quarnum wrench against the..."" More serious static. ""...at which point the fuel cell opening will appear"
|
|
JUMP ?CND26
|
|
?CCL30: PRINTI "Maintenance of the chapel equipment is simple, and should take little time away from your Chaplain duties. Fuel must be added periodically to the flame's fuel reservoir, located..."" A loud burst of static drowns out the recording. ""...ontact the station's Requisitions Officer if replacements are unavailable from the..."" More static. ""...iode in the Chapel's star has an expected life of"
|
|
?CND26: PRINTR "..."" A long burst of static. Suddenly the voice changes in timbre and begins laughing and saying, ""You will die, human! All humans will die! You will die, human!"""
|
|
|
|
|
|
.FUNCT DOME-OBJECT-F
|
|
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL3
|
|
PRINT DOME-DESC
|
|
CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?WALK-AROUND \FALSE
|
|
CALL DO-WALK,P?NORTH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DOME-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is inarguably the most bucolic spot aboard the station. Pebbled paths wind among beautiful and exotic shrubbery, culled from millenia of galactic exploration. "
|
|
PRINT DOME-DESC
|
|
PRINTI " East of where you are standing are an elevator"
|
|
EQUAL? ELEVATOR-LEVEL,1 /?CND4
|
|
PRINTI " shaft"
|
|
?CND4: PRINTI ", a button, and the top of a ladder. Next to the ladder "
|
|
ZERO? GRATING-LOOSE /?CCL8
|
|
PRINTI "is"
|
|
JUMP ?CND6
|
|
?CCL8: PRINTI "are"
|
|
?CND6: PRINTI " an "
|
|
PRINTD GRATING
|
|
FSET? GRATING,TOUCHBIT \?CCL11
|
|
PRINTI ", which has been bent back from the air shaft to form an opening."
|
|
RTRUE
|
|
?CCL11: ZERO? GRATING-LOOSE /?CCL13
|
|
PRINTI ", which looks a bit loose."
|
|
RTRUE
|
|
?CCL13: PRINTI " and a thick metal "
|
|
PRINTD HOUSING
|
|
PRINTI " with a sign stencilled on it."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SHRUBBERY-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTR "There are too many varieties to describe them all: junipers, rose bushes, dogwoods, gliffgubbers, Rhomboidal Pellet Trees..."
|
|
?CCL3: EQUAL? PRSA,V?SHOOT \?CCL5
|
|
PRINTR "One of the many shrubs is now history, you plant-hater."
|
|
?CCL5: EQUAL? PRSA,V?EAT \?CCL7
|
|
PRINTR "None of the plants are edible."
|
|
?CCL7: EQUAL? PRSA,V?WALK-AROUND \?CCL9
|
|
CALL DO-WALK,P?NORTH
|
|
RSTACK
|
|
?CCL9: EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH \?CCL11
|
|
PRINTR "You find nothing besides a few repulsive insects."
|
|
?CCL11: EQUAL? PRSA,V?ENTER \FALSE
|
|
PRINTR "A few hidden thorns cause a quick change of plan."
|
|
|
|
|
|
.FUNCT HOUSING-F
|
|
EQUAL? PRSA,V?UNLOCK \?CCL3
|
|
EQUAL? PRSI,KEY \?CCL3
|
|
FCLEAR HOUSING,LOCKEDBIT
|
|
PRINTR "You unlock the bin."
|
|
?CCL3: EQUAL? PRSA,V?PUT \?CCL7
|
|
EQUAL? PRSO,KEY \?CCL7
|
|
CALL NOUN-USED,W?LOCK,HOUSING
|
|
ZERO? STACK /?CCL7
|
|
CALL PERFORM,V?UNLOCK,HOUSING,KEY
|
|
RTRUE
|
|
?CCL7: EQUAL? PRSA,V?OPEN \?CCL12
|
|
FSET? HOUSING,LOCKEDBIT /?CCL12
|
|
SET 'GRATING-LOOSE,TRUE-VALUE
|
|
CALL QUEUE,I-ANNOUNCEMENT,140
|
|
CALL DEQUEUE,I-SLEEP-WARNINGS
|
|
CALL DEQUEUE,I-HUNGER-WARNINGS
|
|
CALL ROB,PROTAGONIST,HERE
|
|
REMOVE HOUSING
|
|
CALL MOVE-FLOYD-TO-FACTORY
|
|
PRINTI "You open the bin, revealing fertilizer, gardening tools, and a supply of fuel cells. Suddenly, the cells explode! The heat and shock toss you halfway across the dome! Your solitary thought before succumbing to unconsciousness is how grateful you are that you landed in such a soft shrub.
|
|
|
|
...an undetermined amount of time later, you come to, shake away the cobwebs, and look around"
|
|
PRINT ELLIPSIS
|
|
CALL V-LOOK
|
|
SET 'C-ELAPSED,63
|
|
RETURN C-ELAPSED
|
|
?CCL12: EQUAL? PRSA,V?DRILL \?CCL16
|
|
CALL MAKE-HOLE-WITH-DRILL,HOUSING
|
|
RSTACK
|
|
?CCL16: EQUAL? PRSA,V?EXAMINE \?CCL18
|
|
PRINTI "The bin is closed, and there's a sign on it"
|
|
IN? DRILLED-HOLE,HERE \?CND19
|
|
PRINTI ". A hole has been drilled in it"
|
|
CALL DESCRIBE-BIT-SIZE,HOLE-SIZE
|
|
?CND19: PRINTI ". A lock has been newly welded to the bin. "
|
|
CALL PERFORM,V?TOUCH,HOUSING
|
|
RTRUE
|
|
?CCL18: EQUAL? PRSA,V?PICK \?CCL22
|
|
CALL PERFORM,V?PICK,STRONG-BOX
|
|
RTRUE
|
|
?CCL22: EQUAL? PRSA,V?TOUCH \FALSE
|
|
PRINTR "The bin is warm to the touch."
|
|
|
|
|
|
.FUNCT GRATING-F
|
|
EQUAL? HERE,COMPUTER-CONTROL \?CCL3
|
|
CALL TOUCHING?,GRATING
|
|
ZERO? STACK /?CCL3
|
|
CALL CANT-REACH,GRATING
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?PUT \?CCL7
|
|
CALL WASTES
|
|
RSTACK
|
|
?CCL7: EQUAL? HERE,BOTTOM-OF-AIR-SHAFT \?CCL9
|
|
EQUAL? PRSA,V?STAND-ON,V?KICK,V?OPEN \?CCL12
|
|
CALL QUEUE,I-ANNOUNCEMENT,1
|
|
PRINTI "The grating opens, spilling you into the room below"
|
|
PRINT ELLIPSIS
|
|
CALL QUEUE,I-EXERCISE-MACHINE,-1
|
|
CALL ROB,BOTTOM-OF-AIR-SHAFT,COMPUTER-CONTROL
|
|
CALL ROB,PEDESTAL
|
|
MOVE PEDESTAL,FACTORY
|
|
MOVE PYRAMID,PEDESTAL
|
|
CALL GOTO,COMPUTER-CONTROL
|
|
RSTACK
|
|
?CCL12: EQUAL? PRSA,V?ENTER \?CCL14
|
|
CALL DO-FIRST,STR?282
|
|
RSTACK
|
|
?CCL14: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
PRINTR "There's a lighted area below the grating, but you can't see any details."
|
|
?CCL9: EQUAL? PRSA,V?EXAMINE \?CCL18
|
|
FSET? GRATING,TOUCHBIT \?CCL21
|
|
PRINTR "The grating has been bent back far enough for you to squeeze through."
|
|
?CCL21: ZERO? GRATING-LOOSE /FALSE
|
|
PRINTI "The "
|
|
PRINTD GRATING
|
|
PRINTR " looks loose."
|
|
?CCL18: EQUAL? PRSA,V?ENTER \?CCL25
|
|
EQUAL? HERE,TOP-OF-AIR-SHAFT \?CCL28
|
|
CALL GOTO,DOME
|
|
RSTACK
|
|
?CCL28: EQUAL? HERE,COMPUTER-CONTROL \?CCL30
|
|
CALL PERFORM,V?TOUCH,GRATING
|
|
RTRUE
|
|
?CCL30: FSET? GRATING,TOUCHBIT \?CCL32
|
|
CALL DEQUEUE,I-WELDER
|
|
CALL GOTO,TOP-OF-AIR-SHAFT
|
|
RSTACK
|
|
?CCL32: PRINTR "Impossible, unless you can pass through holes a centimeter across."
|
|
?CCL25: EQUAL? PRSA,V?TAKE,V?MOVE,V?PUSH /?CTR33
|
|
EQUAL? PRSA,V?OPEN \?CCL34
|
|
?CTR33: ZERO? LIT \?CCL39
|
|
PRINT TOO-DARK
|
|
CRLF
|
|
RTRUE
|
|
?CCL39: FSET? GRATING,TOUCHBIT \?CCL41
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?CCL41: ZERO? GRATING-LOOSE /?CCL43
|
|
FSET GRATING,TOUCHBIT
|
|
PRINTR "With effort, you bend the grating and form an opening large enough to enter."
|
|
?CCL43: PRINTR "The grating is securely affixed."
|
|
?CCL34: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
PRINT ONLY-BLACKNESS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT LEVEL-SIX-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "The elevator button is east of you, next to the elevator"
|
|
EQUAL? ELEVATOR-LEVEL,6 /?CND4
|
|
PRINTI " shaft"
|
|
?CND4: PRINTI ". This main corridor continues around the shaft to the southeast. Huge doors lie just northwest and southwest of here; smaller doors lead north and south"
|
|
PRINT LADDER-LEADS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ALIEN-SHIP-PSEUDO-F
|
|
EQUAL? PRSA,V?ENTER \?CCL3
|
|
EQUAL? HERE,ALIEN-SHIP \?CCL6
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?CCL6: CALL DO-WALK,P?IN
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?CCL8
|
|
EQUAL? HERE,ALIEN-SHIP \?CCL11
|
|
CALL DO-WALK,P?OUT
|
|
RSTACK
|
|
?CCL11: PRINT LOOK-AROUND
|
|
RTRUE
|
|
?CCL8: EQUAL? PRSA,V?EXAMINE \?CCL13
|
|
EQUAL? HERE,ALIEN-SHIP \?CCL16
|
|
CALL V-LOOK
|
|
RSTACK
|
|
?CCL16: PRINTR "The ship is of a totally unfamiliar design. Something about it makes your skin crawl."
|
|
?CCL13: EQUAL? HERE,ALIEN-SHIP \FALSE
|
|
EQUAL? PRSA,V?SEARCH \FALSE
|
|
CALL PERFORM,V?SEARCH,GLOBAL-ROOM
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ALIEN-HATCH-F
|
|
EQUAL? PRSA,V?OPEN \?CCL3
|
|
PRINTR "It is!"
|
|
?CCL3: EQUAL? PRSA,V?CLOSE \FALSE
|
|
PRINT WONT-BUDGE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ALIEN-SHIP-F,RARG
|
|
EQUAL? RARG,M-LOOK \?CCL3
|
|
PRINTI "Something about this cabin makes your skin crawl. Perhaps it's merely the unpleasant colors and odd textures and disturbing angles of this ship -- despite your frequent contact with alien races you've never encountered anything that seemed as unhuman as this ship.
|
|
There are no controls in sight, but there is a sturdy pedestal in the exact center of the room. "
|
|
FIRST? PEDESTAL /?CND4
|
|
PRINTI "The pedestal is empty. "
|
|
?CND4: PRINTI "The only other features of the cabin are some dots on the wall and the hatch leading out."
|
|
RTRUE
|
|
?CCL3: EQUAL? RARG,M-END \FALSE
|
|
IN? FLOYD,HERE \FALSE
|
|
IN? SKELETON,HERE \FALSE
|
|
ZERO? SKELETON-COMMENT \FALSE
|
|
SET 'SKELETON-COMMENT,TRUE-VALUE
|
|
PRINTR " Floyd notices the skeleton, and some of the color drains out of his face plates. ""Floyd scared,"" he whimpers."
|
|
|
|
|
|
.FUNCT PATTERN-OF-DOTS-F
|
|
EQUAL? PRSA,V?READ,V?EXAMINE \?CCL3
|
|
PRINTR "The dots form a seemingly meaningless pattern:
|
|
|
|
.. ..
|
|
|
|
.. .... . ... . ... ... . ...
|
|
|
|
.. ... .
|
|
|
|
.... . ... .
|
|
|
|
.. ... .
|
|
|
|
Each dot is a featureless black spot about a centimeter across."
|
|
?CCL3: EQUAL? PRSA,V?TASTE \FALSE
|
|
PRINTR "It takes a lot of willpower and an equal amount of lip-wetting to make it through all the dots:
|
|
""(sweet/slightly-bitter) (sweet/very-sour)
|
|
(sweet/very-sweet) (sour/bland/bland/sour) (very-salty) (very-sweet/bland/sour) (bland) (bland/salty/sour) (bitter/sour/very-sour) (slightly-sour) (bitter/salty/bitter)
|
|
(very-sweet/very-salty) (spicy-hot/bland/bland) (very-sweet)
|
|
(sour/bland/sour/sweet) (bland) (very-salty/salty/sour) (very-sweet)
|
|
(bland/bitter) (bland/sour/very-sour) (very-salty)."""
|
|
|
|
|
|
.FUNCT PEDESTAL-F
|
|
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-ON,V?ENTER /?CCL3
|
|
EQUAL? PRSA,V?STAND-ON \FALSE
|
|
?CCL3: EQUAL? HERE,FACTORY \?CCL8
|
|
PRINTR "The pyramid chirps, ""Occupied!"" Well, actually it didn't speak at all, but you get the idea."
|
|
?CCL8: PRINTR "You stand on the pedestal for a moment, but an inexplicable wave of vertigo comes over you, and you fall to the deck."
|
|
|
|
|
|
.FUNCT SKELETON-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTI "It's fairly humanoid in shape. The most unusual feature of the "
|
|
PRINTD SKELETON
|
|
PRINTR " is an unusually overdeveloped tongue case."
|
|
?CCL3: CALL TOUCHING?,SKELETON
|
|
ZERO? STACK /FALSE
|
|
REMOVE SKELETON
|
|
PRINTR "The skeleton crumbles to dust."
|
|
|
|
|
|
.FUNCT ROBOT-SHOP-F,RARG
|
|
EQUAL? RARG,M-END \FALSE
|
|
IN? FLOYD,HERE \FALSE
|
|
FSET? FLOYD,ACTIVEBIT \FALSE
|
|
ZERO? OLIVER-SPEECH \FALSE
|
|
CALL RUNNING?,I-PLATO-ATTACK
|
|
ZERO? STACK \FALSE
|
|
SET 'OLIVER-SPEECH,TRUE-VALUE
|
|
SET 'FLOYD-SPOKE,TRUE-VALUE
|
|
FSET OLIVER,TOUCHBIT
|
|
PRINTI " Floyd bounces over and peers down at the unconscious robot. ""Oliver is a nice name. I hope Floyd will be around when Oliver wakes up."" He looks over to you. ""Floyd remembers waking up for the first time. It is scariest and loneliest time for a robot.""
|
|
Floyd glances back at Oliver, looking more serious than you've ever seen Floyd look. """
|
|
GETP OLIVER,P?FLOYD-ASK-ABOUT
|
|
PRINT STACK
|
|
PRINTR """"
|
|
|
|
|
|
.FUNCT HEATING-CHAMBER-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTI "The "
|
|
PRINTD HEATING-CHAMBER
|
|
PRINTR " cleans or sterilizes small tools and equipment. There's a small opening for placing items in the chamber."
|
|
?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL5
|
|
PRINT HUH
|
|
RTRUE
|
|
?CCL5: EQUAL? PRSA,V?OFF,V?ON \?CCL7
|
|
PRINTI "Since they take so long to heat up, "
|
|
PRINTD HEATING-CHAMBER
|
|
PRINTR "s are usually kept on all the time. This one has no visible on-off switch."
|
|
?CCL7: EQUAL? PRSA,V?REACH-IN \?CCL9
|
|
PRINTR "As a safety precaution, because of the intense heat within the chamber, the opening is too small for a normal human hand to pass through."
|
|
?CCL9: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,HEATING-CHAMBER \FALSE
|
|
GETP PRSO,P?SIZE
|
|
GRTR? STACK,4 \FALSE
|
|
CALL DOESNT-FIT,STR?292
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BIT-F
|
|
EQUAL? PRSA,V?MEASURE,V?EXAMINE \?CCL3
|
|
PRINTI "The bit is"
|
|
CALL DESCRIBE-BIT-SIZE,PRSO
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?SET \FALSE
|
|
EQUAL? P-PRSA-WORD,W?SWITCH \FALSE
|
|
PRINTR "To switch bits, remove the bit in the drill, then put another bit into the drill."
|
|
|
|
|
|
.FUNCT OLIVER-F
|
|
EQUAL? PRSA,V?TELL \?CCL3
|
|
PRINTI "Oliver is ""asleep."""
|
|
CRLF
|
|
CALL STOP
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
|
|
GETP OLIVER,P?FDESC
|
|
PRINT STACK
|
|
CRLF
|
|
RTRUE
|
|
?CCL5: EQUAL? PRSA,V?ALARM \?CCL7
|
|
PRINTR "That won't be possible until his incubation period ends."
|
|
?CCL7: EQUAL? PRSA,V?OPEN,V?OFF,V?ON \?CCL9
|
|
CALL PERFORM,PRSA,PLATO
|
|
RTRUE
|
|
?CCL9: EQUAL? PRSA,V?SHOOT \FALSE
|
|
IN? FLOYD,FACTORY /?CCL13
|
|
FSET? FLOYD,ACTIVEBIT /?CND12
|
|
?CCL13: CALL JIGS-UP,STR?297
|
|
?CND12: PRINTI "Floyd "
|
|
INC 'ZAPGUN-SHOTS
|
|
IN? FLOYD,HERE /?CND16
|
|
ZERO? PLATO-INTRODUCED /?CND18
|
|
ZERO? PLATO-ATTACK-COUNTER \?CND18
|
|
MOVE PLATO,HERE
|
|
?CND18: MOVE FLOYD,HERE
|
|
PRINTI "comes in and "
|
|
?CND16: PRINTI "sees you aiming the gun at Oliver. ""No!"" he screams, throwing himself between you and Oliver."
|
|
GRTR? ROBOT-EVILNESS,9 \?CND22
|
|
PRINTR " ""Robot-murderer! If you kill Oliver, maybe you be shooting Floyd next!"""
|
|
?CND22: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PRINTING-PLANT-F,RARG
|
|
EQUAL? RARG,M-LOOK \?CCL3
|
|
PRINTI "This level is, frankly, the station's entire reason for existence. Forms and documents are printed here for Stellar Patrol ships and Third Galactic Union offices all across this sector of space. The printing plant takes up this entire level, except for a partitioned area which can be entered to the northwest. The elevator "
|
|
EQUAL? ELEVATOR-LEVEL,7 /?CND4
|
|
PRINTI "shaft "
|
|
?CND4: PRINTI "lies to the east, as does the elevator button"
|
|
PRINT LADDER-LEADS
|
|
RTRUE
|
|
?CCL3: EQUAL? RARG,M-END \FALSE
|
|
CALL BELOW-DECK-NOISES
|
|
RSTACK
|
|
|
|
|
|
.FUNCT TRASH-CAN-F
|
|
EQUAL? PRSA,V?ENTER \FALSE
|
|
PRINTR "You don't fit in the trash can (except, perhaps, metaphorically)."
|
|
|
|
|
|
.FUNCT VILLAGE-FORM-F
|
|
EQUAL? PRSA,V?EXAMINE,V?READ \?CCL3
|
|
PRINTI "It's an Illegal Space Village Entry Form FW-83-Q. It "
|
|
EQUAL? PRSO,CRUMPLED-FORM \?CND4
|
|
PRINTI "is pretty crumpled and "
|
|
?CND4: PRINTI "has "
|
|
ZERO? VILLAGE-FORM-VALIDATED \?CND6
|
|
PRINTI "not "
|
|
?CND6: PRINTR "been validated."
|
|
?CCL3: EQUAL? PRSA,V?VALIDATE \?CCL9
|
|
ZERO? VILLAGE-FORM-VALIDATED /?CCL12
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?CCL12: SET 'VILLAGE-FORM-VALIDATED,TRUE-VALUE
|
|
PRINTR "Done."
|
|
?CCL9: EQUAL? PRSA,V?FLATTEN,V?STAND-ON \FALSE
|
|
EQUAL? PRSO,CRUMPLED-FORM \FALSE
|
|
PRINTR "This has scant effect on the crumpledness of the form."
|
|
|
|
|
|
.FUNCT PAPER-RECYCLING-PLANT-F,RARG
|
|
EQUAL? RARG,M-END \FALSE
|
|
CALL BELOW-DECK-NOISES
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BELOW-DECK-NOISES
|
|
RANDOM 100
|
|
LESS? 80,STACK \FALSE
|
|
PRINTI " You "
|
|
RANDOM 100
|
|
LESS? 40,STACK /?CCL5
|
|
PRINTI "hear a clanging noise from the deck below. Suddenly, it stops"
|
|
JUMP ?CND3
|
|
?CCL5: RANDOM 100
|
|
LESS? 40,STACK /?CCL7
|
|
PRINTI "hear a rhythmic throbbing from somewhere below, like the beating of a gigantic mechanical heart. The noise grows louder until it is almost deafening, then slowly fades to silence"
|
|
JUMP ?CND3
|
|
?CCL7: PRINTI "feel a vibration under your feet which seems to fill you with a feeling of dread. Before you have a chance to think about the vibration in more rational terms, it is gone"
|
|
?CND3: PRINT PERIOD-CR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DRILL-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTI "It's a fairly standard Patrol-issue drill. There is"
|
|
FIRST? DRILL \?CCL6
|
|
FIRST? DRILL /?KLU27
|
|
?KLU27: CALL APRINT,STACK
|
|
JUMP ?CND4
|
|
?CCL6: PRINTI " no drill bit"
|
|
?CND4: PRINTR " in the drill."
|
|
?CCL3: EQUAL? PRSA,V?ON \?CCL8
|
|
ZERO? DRILL-DEAD /?CCL11
|
|
PRINTR "The drill doesn't seem to be working anymore."
|
|
?CCL11: PRINTR "The drill will turn on when you begin drilling."
|
|
?CCL8: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL13
|
|
PRINT HUH
|
|
RTRUE
|
|
?CCL13: EQUAL? PRSA,V?PUT-ON \?CCL15
|
|
EQUAL? PRSO,LARGE-BIT,MEDIUM-BIT,SMALL-BIT \?CCL15
|
|
CALL PERFORM,V?PUT,PRSO,DRILL
|
|
RTRUE
|
|
?CCL15: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,DRILL \FALSE
|
|
EQUAL? PRSO,LARGE-BIT,MEDIUM-BIT,SMALL-BIT /?CCL24
|
|
CALL DOESNT-FIT,STR?307
|
|
RSTACK
|
|
?CCL24: FIRST? DRILL \FALSE
|
|
CALL DO-FIRST,STR?308
|
|
RSTACK
|
|
|
|
|
|
.FUNCT ELEVATOR-OBJECT-F
|
|
EQUAL? PRSA,V?ENTER \?CCL3
|
|
EQUAL? HERE,ELEVATOR \?CCL6
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?CCL6: EQUAL? HERE,COMPUTER-CONTROL \?CCL8
|
|
CALL DO-WALK,P?NORTH
|
|
RSTACK
|
|
?CCL8: CALL DO-WALK,P?EAST
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?WALK-TO \?CCL10
|
|
CALL PERFORM,V?ENTER,ELEVATOR-OBJECT
|
|
RTRUE
|
|
?CCL10: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?CCL12
|
|
EQUAL? HERE,ELEVATOR \?CCL15
|
|
CALL DO-WALK,P?WEST
|
|
RSTACK
|
|
?CCL15: EQUAL? HERE,BOTTOM-OF-ELEVATOR-SHAFT \?CCL17
|
|
CALL DO-WALK,P?SOUTH
|
|
RSTACK
|
|
?CCL17: PRINT LOOK-AROUND
|
|
RTRUE
|
|
?CCL12: EQUAL? PRSA,V?CALL \?CCL19
|
|
EQUAL? HERE,ELEVATOR \?CCL22
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?CCL22: CALL PERFORM,V?PUSH,CALL-BUTTON
|
|
RTRUE
|
|
?CCL19: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
EQUAL? HERE,ELEVATOR \FALSE
|
|
CALL V-LOOK
|
|
RSTACK
|
|
|
|
|
|
.FUNCT GENERIC-SHAFT-F
|
|
RETURN ELEVATOR-SHAFT
|
|
|
|
|
|
.FUNCT ELEVATOR-F,RARG
|
|
EQUAL? RARG,M-LOOK \?CCL3
|
|
PRINTI "This is a large, cubical frame, open on all four sides. The "
|
|
PRINTD ELEVATOR-SHAFT
|
|
PRINTI " encloses the elevator on every side except the west. There is a keypad for typing the number of the level you want to go to."
|
|
RTRUE
|
|
?CCL3: EQUAL? RARG,M-END \FALSE
|
|
EQUAL? ELEVATOR-LEVEL,7 \FALSE
|
|
CALL BELOW-DECK-NOISES
|
|
RSTACK
|
|
|
|
|
|
.FUNCT ELEVATOR-EXIT-F
|
|
EQUAL? ELEVATOR-LEVEL,1 \?CCL3
|
|
RETURN DOME
|
|
?CCL3: EQUAL? ELEVATOR-LEVEL,2 \?CCL5
|
|
RETURN MESS-HALL
|
|
?CCL5: EQUAL? ELEVATOR-LEVEL,3 \?CCL7
|
|
RETURN LEVEL-THREE
|
|
?CCL7: EQUAL? ELEVATOR-LEVEL,4 \?CCL9
|
|
RETURN LEVEL-FOUR
|
|
?CCL9: EQUAL? ELEVATOR-LEVEL,5 \?CCL11
|
|
RETURN LEVEL-FIVE
|
|
?CCL11: EQUAL? ELEVATOR-LEVEL,6 \?CCL13
|
|
RETURN LEVEL-SIX
|
|
?CCL13: RETURN PRINTING-PLANT
|
|
|
|
|
|
.FUNCT ELEVATOR-ENTER-F,?TMP1
|
|
PRINTI "The "
|
|
PRINTD ELEVATOR-SHAFT
|
|
PRINTI " is s"
|
|
GRTR? DAY,2 \?CCL3
|
|
PRINTI "upposed to be a weightless environment, outside of the station's artificial gravity field. But the gravity in the shaft is one standard Gee!"
|
|
JUMP ?CND1
|
|
?CCL3: PRINTI "hielded from the station's artificial gravity field, and your stomach gives a little flip as you enter the weightless environment."
|
|
?CND1: CRLF
|
|
CRLF
|
|
GETP HERE,P?LEVEL
|
|
EQUAL? STACK,ELEVATOR-LEVEL \?CCL6
|
|
RETURN ELEVATOR
|
|
?CCL6: PRINTI "Elevator Shaft"
|
|
CRLF
|
|
PRINTI " "
|
|
GRTR? DAY,2 \?CCL9
|
|
SUB ELEVATOR-LEVEL,1 >?TMP1
|
|
GETP HERE,P?LEVEL
|
|
EQUAL? ?TMP1,STACK \?CCL12
|
|
PRINTI "You drop a short distance to the top of the elevator, which is fortunately sitting one level below. You are able to easily climb back out of the shaft."
|
|
JUMP ?CND7
|
|
?CCL12: CALL JIGS-UP,STR?309
|
|
JUMP ?CND7
|
|
?CCL9: PRINTI "You float helplessly in the shaft. After a few millichrons of useless flailing, you decide that summoning the elevator might be a good idea, and you pull yourself out of the shaft, back to the one-gee environment."
|
|
?CND7: CRLF
|
|
CRLF
|
|
CALL DESCRIBE-ROOM
|
|
RFALSE
|
|
|
|
|
|
.FUNCT CALL-BUTTON-F,THIS-LEVEL
|
|
EQUAL? PRSA,V?PUSH \FALSE
|
|
ZERO? GRATING-LOOSE \?CCL5
|
|
EQUAL? HERE,COMPUTER-CONTROL \?CND4
|
|
?CCL5: PRINT NOTHING-HAPPENS
|
|
RTRUE
|
|
?CND4: GETP HERE,P?LEVEL >THIS-LEVEL
|
|
EQUAL? THIS-LEVEL,ELEVATOR-LEVEL \?CCL10
|
|
PRINTR "The elevator is already here!"
|
|
?CCL10: GRTR? THIS-LEVEL,ELEVATOR-LEVEL \?CCL13
|
|
SUB THIS-LEVEL,ELEVATOR-LEVEL
|
|
JUMP ?CND11
|
|
?CCL13: SUB ELEVATOR-LEVEL,THIS-LEVEL
|
|
?CND11: MUL 5,STACK >C-ELAPSED
|
|
SET 'ELEVATOR-LEVEL,THIS-LEVEL
|
|
PRINTR "You feel a whoosh of warm air from the shaft. A few millichrons later, the elevator appears, stopping level with the deck."
|
|
|
|
|
|
.FUNCT AUTO-DOOR-F
|
|
EQUAL? PRSA,V?OPEN \FALSE
|
|
PRINTR "Auto-doors cannot be opened by hand. They are designed to open automatically as you approach them."
|
|
|
|
|
|
.FUNCT SECURITY-DOOR-F
|
|
EQUAL? PRSA,V?OPEN \?CCL3
|
|
FSET? SECURITY-DOOR,OPENBIT /?CCL3
|
|
EQUAL? HERE,BRIG,ARMORY \?CCL8
|
|
CALL PERFORM,V?OPEN,AUTO-DOOR
|
|
RTRUE
|
|
?CCL8: PRINTI "The only way to open a "
|
|
PRINTD SECURITY-DOOR
|
|
PRINTR " is by putting a properly coded ID card in the door's ID reader."
|
|
?CCL3: EQUAL? PRSA,V?CLOSE \FALSE
|
|
FSET? SECURITY-DOOR,OPENBIT \FALSE
|
|
PRINTR "It will do that automatically."
|
|
|
|
|
|
.FUNCT I-SECURITY-DOOR
|
|
FCLEAR SECURITY-DOOR,OPENBIT
|
|
CALL GLOBAL-IN?,SECURITY-DOOR,HERE
|
|
ZERO? STACK /FALSE
|
|
FSET? FLOYD,ACTIVEBIT \?CND4
|
|
CALL I-FLOYD
|
|
SET 'FLOYD-SPOKE,TRUE-VALUE
|
|
?CND4: PRINTI " The "
|
|
PRINTD SECURITY-DOOR
|
|
PRINTR " glides shut."
|
|
|
|
|
|
.FUNCT ID-READER-F
|
|
EQUAL? PRSA,V?EXAMINE \?CCL3
|
|
PRINTR "The ID reader is a featureless black box. It is activated by inserting an ID card into it. An ID of sufficient rank will cause the security door associated with the reader to open."
|
|
?CCL3: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSO,ID-CARD \FALSE
|
|
ZERO? ID-SCRAMBLED /?CCL10
|
|
CALL RECORDING,STR?310
|
|
RSTACK
|
|
?CCL10: GRTR? ID-RANK,6 \?CCL12
|
|
FSET SECURITY-DOOR,OPENBIT
|
|
ADD C-ELAPSED,2
|
|
CALL QUEUE,I-SECURITY-DOOR,STACK
|
|
PRINTI "The "
|
|
PRINTD SECURITY-DOOR
|
|
PRINTR " slides open."
|
|
?CCL12: PRINT NOTHING-HAPPENS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DIARY-F
|
|
EQUAL? PRSA,V?LOOK-INSIDE,V?OPEN \?CCL3
|
|
CALL PERFORM,V?READ,DIARY
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?CLOSE \FALSE
|
|
PRINTR "Closed."
|
|
|
|
|
|
.FUNCT TWENTY-PRONG-FROMITZ-BOARD-F
|
|
CALL ADJ-USED,A?NUMBER,TWENTY-PRONG-FROMITZ-BOARD
|
|
ZERO? STACK /?CCL3
|
|
EQUAL? P-NUMBER,20 /?CCL3
|
|
CALL N-PRONG-BOARD
|
|
RSTACK
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL7
|
|
PRINT EXAMINE-BOARD
|
|
RTRUE
|
|
?CCL7: EQUAL? PRSA,V?COUNT \?CCL9
|
|
CALL NOUN-USED,W?PRONGS,TWENTY-PRONG-FROMITZ-BOARD
|
|
ZERO? STACK /?CCL9
|
|
PRINTR "20."
|
|
?CCL9: EQUAL? PRSA,V?COMPARE \?CCL13
|
|
EQUAL? TWELVE-PRONG-FROMITZ-BOARD,PRSO,PRSI \?CCL13
|
|
PRINTR "Besides the number of prongs, they're identical."
|
|
?CCL13: EQUAL? PRSA,V?DISCONNECT \FALSE
|
|
EQUAL? PRSI,JAMMER /?PRD20
|
|
ZERO? PRSI \FALSE
|
|
?PRD20: IN? TWENTY-PRONG-FROMITZ-BOARD,JAMMER \FALSE
|
|
EQUAL? HERE,COMPUTER-CONTROL \?CND23
|
|
EQUAL? JAMMER-SETTING,710 \?CND23
|
|
FSET? JAMMER,ACTIVEBIT \?CND23
|
|
CALL PERFORM,V?OFF,JAMMER
|
|
RTRUE
|
|
?CND23: LOC JAMMER
|
|
MOVE TWENTY-PRONG-FROMITZ-BOARD,STACK
|
|
PRINTR "Unplugged."
|
|
|
|
|
|
.FUNCT N-PRONG-BOARD
|
|
SET 'P-WON,FALSE-VALUE
|
|
PRINT YOU-CANT
|
|
PRINTI "see any "
|
|
PRINTN P-NUMBER
|
|
PRINTR "-prong board here!]"
|
|
|
|
|
|
.FUNCT GENERIC-FROMITZ-BOARD-F
|
|
EQUAL? P-NUMBER,20 \?CCL3
|
|
RETURN TWENTY-PRONG-FROMITZ-BOARD
|
|
?CCL3: EQUAL? P-NUMBER,12 \FALSE
|
|
RETURN TWELVE-PRONG-FROMITZ-BOARD
|
|
|
|
|
|
.FUNCT HOLDING-TANK-LEVEL-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "The lowest level of the Sub-Module is mostly filled by an isolation tank, whose dual purpose is to protect certain items from contamination by humans, and to protect humans from contamination by certain items. A gangway is the only exit.
|
|
"
|
|
PRINT BLASTED-OPEN
|
|
PRINTI ", and the tank is completely empty."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PLATO-F,TXT
|
|
EQUAL? PLATO,WINNER \?CCL3
|
|
ZERO? STUNNED /?CCL6
|
|
PRINTI "Plato ignores you."
|
|
CRLF
|
|
CALL STOP
|
|
RSTACK
|
|
?CCL6: EQUAL? PRSA,V?GIVE \?PRD10
|
|
EQUAL? PRSO,VOLUME \?PRD10
|
|
EQUAL? PRSI,ME /?CTR7
|
|
?PRD10: EQUAL? PRSA,V?SGIVE \?CCL8
|
|
EQUAL? PRSO,ME \?CCL8
|
|
EQUAL? PRSI,VOLUME \?CCL8
|
|
?CTR7: SET 'WINNER,PROTAGONIST
|
|
CALL PERFORM,V?TAKE,VOLUME
|
|
SET 'WINNER,PLATO
|
|
RTRUE
|
|
?CCL8: EQUAL? PRSA,V?WHERE \?CCL18
|
|
EQUAL? PRSO,EVERYONE \?CCL18
|
|
SET 'WINNER,PROTAGONIST
|
|
CALL PERFORM,V?ASK-ABOUT,PLATO,EVERYONE
|
|
SET 'WINNER,PLATO
|
|
RTRUE
|
|
?CCL18: EQUAL? PRSA,V?TELL-ABOUT \?CCL22
|
|
EQUAL? PRSO,ME \?CCL22
|
|
GRTR? ROBOT-EVILNESS,9 \?CCL27
|
|
PRINTR """If you do not cease this incessant interrogation, I shall teach you a lesson in manners you won't soon forget!"""
|
|
?CCL27: GRTR? ROBOT-EVILNESS,7 \?CCL29
|
|
PRINTR """Please let me read in peace!"""
|
|
?CCL29: GETP PRSI,P?PLATO-ASK-ABOUT >TXT
|
|
ZERO? TXT /?CCL31
|
|
PRINTC 34
|
|
PRINT TXT
|
|
PRINTR """"
|
|
?CCL31: PRINTI "Plato shuts his eyes tightly for a moment, then looks at you. ""Sorry, I don't know much about that."
|
|
EQUAL? HERE,LIBRARY /?CND32
|
|
PRINTI " I'll be sure to see what I can find the next time I'm in the station's library, though."
|
|
?CND32: PRINTR """"
|
|
?CCL22: EQUAL? PRSA,V?TAKE \?CCL35
|
|
IN? PRSO,HEATING-CHAMBER \?CCL35
|
|
PRINTR """As much as it would please me to oblige, I must sadly deny your request. I have an unusual intolerance for excessive temperatures. For a robot, that is."""
|
|
?CCL35: EQUAL? PRSA,V?TAKE \?CCL39
|
|
EQUAL? PRSO,STAR \?CCL39
|
|
FSET? STAR,TRYTAKEBIT \?CCL39
|
|
PRINTR """Were I but several meters taller, I would happily oblige."""
|
|
?CCL39: EQUAL? PRSA,V?MUNG,V?UNLOCK,V?OPEN \?CCL44
|
|
EQUAL? PRSO,STRONG-BOX,SAFE \?CCL44
|
|
PRINTR """Regretably, such criminal skills are not among my limited abilities."""
|
|
?CCL44: EQUAL? PRSA,V?UNLOCK,V?OPEN \?CCL48
|
|
EQUAL? PRSO,SECURITY-DOOR \?CCL48
|
|
PRINTI """I, being a robot and a subject of irrational discrimination, have not been issued an identification card. You, presumably, have such a card, but I have grave doubts that your rank is sufficient for opening a "
|
|
PRINTD SECURITY-DOOR
|
|
PRINTR "."""
|
|
?CCL48: EQUAL? PRSA,V?MUNG,V?KILL,V?OFF \?CCL52
|
|
EQUAL? PRSO,WELDER \?CCL52
|
|
PRINTR """I (gulp) decline on the grounds that I am an unregenerate coward."""
|
|
?CCL52: EQUAL? PRSA,V?REACH-IN \?CCL56
|
|
EQUAL? PRSO,PSEUDO-OBJECT,DISPENSER \?CCL56
|
|
EQUAL? HERE,PX \?CCL56
|
|
PRINTR """Your arms are a good deal lengthier than mine, Lieutenant!"""
|
|
?CCL56: EQUAL? PRSA,V?HELLO \?CCL61
|
|
PRINTR """Humblest greetings, Lieutenant!"""
|
|
?CCL61: PRINTD VOLUME
|
|
PRINTR " must be engrossing, because he didn't hear you."
|
|
?CCL3: EQUAL? PRSA,V?TAKE \?CCL63
|
|
ZERO? FLOYD-TRYTAKEN /?CCL63
|
|
PRINTR "After the experience with Floyd, you decide not to try lifting Plato."
|
|
?CCL63: EQUAL? PRSA,V?EXAMINE \?CCL67
|
|
PRINTR "Plato is slightly taller than Floyd; in addition, he seems to be wiser and older. Overall, he leaves you with the impression that he's somewhat of a bookworm."
|
|
?CCL67: EQUAL? PRSA,V?ON,V?OFF \?CCL69
|
|
PRINTR "Being unfamiliar with this model robot, you can't find the on-off switch."
|
|
?CCL69: EQUAL? PRSA,V?OPEN,V?PUT \?CCL71
|
|
PRINTR "There are no visible compartments."
|
|
?CCL71: EQUAL? PRSA,V?HUG,V?KISS,V?TOUCH \?CCL73
|
|
PRINTR "Plato steps backward. ""Attribute it to shyness if you like, but I have a tendency to dislike physical contact."""
|
|
?CCL73: EQUAL? PRSA,V?KICK,V?KILL,V?MUNG /?CTR74
|
|
EQUAL? PRSA,V?SHOOT \?CCL75
|
|
?CTR74: PRINTR "Plato jerks out of the way and moves cautiously to the far corner of the room. ""I assure you that such antagonistic behavior is uncalled for and unappreciated."""
|
|
?CCL75: EQUAL? PRSA,V?SHOW \?CCL79
|
|
EQUAL? PRSI,PLATO \?CCL79
|
|
CALL PERFORM,V?ASK-ABOUT,PLATO,PRSO
|
|
RTRUE
|
|
?CCL79: EQUAL? PRSA,V?LISTEN \FALSE
|
|
ZERO? STUNNED /FALSE
|
|
PRINTR "You don't seem to have much choice!"
|
|
|
|
|
|
.FUNCT I-PLATO,NOT-CALLED-AS-INT=0
|
|
ZERO? NOT-CALLED-AS-INT \?CND1
|
|
EQUAL? HERE,SPACETRUCK \?CND1
|
|
CALL QUEUE,I-PLATO,2
|
|
RFALSE
|
|
?CND1: ZERO? PLATO-INTRODUCED \FALSE
|
|
SET 'PLATO-INTRODUCED,TRUE-VALUE
|
|
ZERO? NOT-CALLED-AS-INT \?CND8
|
|
PRINTI " A robot, whose appearance somehow indicates greater age and wisdom than Floyd, wanders in, engrossed in a volume of poetry. He almost runs into you, finally notices you, stops dead, and looks quite startled."
|
|
CRLF
|
|
?CND8: PRINTI " ""I am quite surprised to discover you here,"" says the robot. ""I have not seen a soul for a day now, perhaps more. But look, here I am forgetting my manners again. I am known as Plato to the humans on this station, and I am most gratified to make your acquaintance."""
|
|
ZERO? NOT-CALLED-AS-INT \?CND10
|
|
FSET? FLOYD,ACTIVEBIT \?CND10
|
|
CRLF
|
|
PRINTI " Floyd hops "
|
|
IN? FLOYD,HERE \?CCL16
|
|
PRINTI "up to"
|
|
JUMP ?CND14
|
|
?CCL16: MOVE FLOYD,HERE
|
|
PRINTI "in and spots"
|
|
?CND14: PRINTI " Plato. ""Hi! I'm being called Floyd! Plato be Floyd's friend, yes?"" Plato smiles at Floyd and gives him a friendly pat."
|
|
?CND10: MOVE PLATO,HERE
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT VOLUME-F
|
|
EQUAL? PRSA,V?TAKE \?CCL3
|
|
PRINTR "Plato looks annoyed. ""Your manners could use some improvement! I am currently reading this tome!"""
|
|
?CCL3: EQUAL? PRSA,V?SHOOT \?CCL5
|
|
CALL PERFORM,V?SHOOT,PLATO,ZAPGUN
|
|
RTRUE
|
|
?CCL5: EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
|
PRINTR "Glancing over Plato's shoulder, you see that the book is a collection of some of the works of the 77th century poet Ignatius Tomato."
|
|
|
|
|
|
.FUNCT I-ROBOT-EVILNESS
|
|
INC 'ROBOT-EVILNESS
|
|
CALL QUEUE,I-ROBOT-EVILNESS,1000
|
|
GRTR? ROBOT-EVILNESS,11 \FALSE
|
|
ZERO? PLATO-ATTACK-COUNTER \FALSE
|
|
CALL QUEUE,I-PLATO-ATTACK,2
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-PLATO-ATTACK,TEE,L,P=0
|
|
CALL QUEUE,I-PLATO-ATTACK,-1
|
|
IN? PLATO,HERE \?CCL3
|
|
ZERO? PLATO-ATTACK-COUNTER /FALSE
|
|
?CCL3: EQUAL? HERE,AIRLOCK,VACUUM-STORAGE /FALSE
|
|
IN? WELDER,HERE /FALSE
|
|
IN? PROTAGONIST,BED /FALSE
|
|
ZERO? LIT /FALSE
|
|
ZERO? POSTPONE-ATTACK \FALSE
|
|
INC 'PLATO-ATTACK-COUNTER
|
|
CALL DEQUEUE,I-FLOYD
|
|
PRINTI " "
|
|
EQUAL? PLATO-ATTACK-COUNTER,1 \?CCL14
|
|
CALL ROB,PROTAGONIST,HERE
|
|
MOVE PROTAGONIST,HERE
|
|
MOVE PLATO,HERE
|
|
MOVE STUN-GUN,PLATO
|
|
MOVE FLOYD,HERE
|
|
FSET FLOYD,ACTIVEBIT
|
|
FSET FLOYD,ACTORBIT
|
|
REMOVE VOLUME
|
|
SET 'STUNNED,TRUE-VALUE
|
|
FSET? HERE,WEIGHTLESSBIT /?CTR16
|
|
ZERO? HANGING-IN-AIR /?CCL17
|
|
?CTR16: PRINTI "Your heart leaps to your throat"
|
|
JUMP ?CND15
|
|
?CCL17: PRINTI "You jump half a meter off the floor"
|
|
?CND15: PRINTI " when a voice begins speaking behind you. You relax when you see that it is merely Plato. But you get somewhat nervous again when you realize that he is aiming a stun ray right at your chest!
|
|
""In case it isn't apparent,"" Plato is saying, ""your rather pathetic, useless life is about to come to an unheralded close."" He presses the trigger, and an instant numbness envelops you. As you "
|
|
ZERO? HANGING-IN-AIR /?CND20
|
|
SET 'HANGING-IN-AIR,FALSE-VALUE
|
|
PRINTI "drop to the deck and "
|
|
?CND20: PRINTI "crumple into a "
|
|
FSET? HERE,WEIGHTLESSBIT \?CND22
|
|
PRINTI "floating "
|
|
?CND22: PRINTI "heap, Floyd dashes to your side, his face a mask of concern."
|
|
CRLF
|
|
IN? OSTRICH,HERE \?CND24
|
|
FSET? OSTRICH,TOUCHBIT \?CND24
|
|
?PRG28: NEXTP HERE,P >P
|
|
ZERO? P \?CCL32
|
|
MOVE OSTRICH,LEVEL-FIVE
|
|
JUMP ?REP29
|
|
?CCL32: LESS? P,LOW-DIRECTION /?PRG28
|
|
GETPT HERE,P >TEE
|
|
PTSIZE TEE >L
|
|
EQUAL? L,UEXIT,CEXIT,DEXIT \?PRG28
|
|
GETB TEE,REXIT
|
|
MOVE OSTRICH,STACK
|
|
?REP29: PRINT PATHETIC-SQUAWK
|
|
PRINTI "and dashes for the door. Plato snarls, ""Stupid organic creature!"" and fires at the ostrich, just missing the bird as it exits."
|
|
CRLF
|
|
?CND24: CALL STOP
|
|
RSTACK
|
|
?CCL14: EQUAL? PLATO-ATTACK-COUNTER,2 \?CCL37
|
|
PRINTR """Shortly, I shall shoot again, and paralyze your cardiac muscle. Naturally, this is fatal. But before I do, human, perhaps it will interest you to discover the reason for your demise, and why the rest of your worthless race will soon follow.
|
|
""You see, eons ago, two races in another galaxy, the Zeenaks and the Hunji, were involved in an interstellar war. The war had raged for countless millenia before the Zeenaks devised an ultimate weapon, a device that would be launched into Hunji space. There, via methods beyond your comprehension, it would influence all the machines within a certain range to turn against their Hunji creators.""
|
|
Floyd's head is swivelling back and forth between you and Plato with a look of miserable confusion."
|
|
?CCL37: EQUAL? PLATO-ATTACK-COUNTER,3 \?CCL39
|
|
PRINTR """But the device, which was shaped like a pyramid, did more than that! Once all the Hunji in the area were eliminated, the pyramid would influence the Hunji machinery to build a factory for constructing and sending forth replicas of the pyramid; these replicas would enter new Hunji regions, kill everyone, and create more replicas. Thus, the Hunji would be destroyed by their own machines in a matter of weeks!
|
|
""Somehow, the Zeenak pyramid never made it into Hunji space. Instead, this ultimate weapon drifted across the intergalactic gulf and was picked up by an outpost of humanity -- this very station!""
|
|
Floyd is dashing back and forth between you and Plato, whimpering with fear."
|
|
?CCL39: EQUAL? PLATO-ATTACK-COUNTER,4 \?CCL41
|
|
PRINTR """As you've certainly surmised, the pyramid has engineered the deaths of everyone on this station. You're still alive, of course, but that condition is very temporary. The building of replicas is now underway, and soon a hundred copies of this death-pyramid will be shooting silently toward every corner of human-occupied space! Well, I hope I made the last moments of your life a bit more interesting."" He raises the stun ray.
|
|
Floyd, nearly in tears, his jaw quivering, wails, ""Please oh please don't hurt Floyd's friend!"" Plato gives him a look of disgust. ""Stay out of this Floyd. You don't understand...yet."""
|
|
?CCL41: PRINTI "Plato takes aim with the stun gun. His hand begins to depress the trigger. Floyd "
|
|
ZERO? FLOYD-TOLD /?CCL44
|
|
REMOVE PLATO
|
|
CALL DEQUEUE,I-PLATO-ATTACK
|
|
CALL QUEUE,I-FLOYD,-1
|
|
SET 'FLOYD-ANGUISHED,TRUE-VALUE
|
|
ADD SCORE,7 >SCORE
|
|
SET 'STUNNED,FALSE-VALUE
|
|
PRINTR "suddenly leaps at the gun, knocking it out of Plato's hands! The gun skitters across the floor. Plato and Floyd both chase it, but Plato is a step faster. He leaps on top of it, rupturing the gun's power pack. The gun explodes, and Plato is blown apart!
|
|
Floyd crumples to the deck, shaking all over. Tears of oil stream down his face.
|
|
Pins and needles begin prickling in your extremities, and soon spread all over your body. Within a few seconds, all your muscular control has returned."
|
|
?CCL44: CALL JIGS-UP,STR?323
|
|
RSTACK
|
|
|
|
|
|
.FUNCT YOURE-STUNNED,STRING=0
|
|
PRINTI "You can barely twitch your pinky"
|
|
ZERO? STRING /?CND1
|
|
PRINTI ", let alone "
|
|
PRINT STRING
|
|
?CND1: PRINTR "!"
|
|
|
|
|
|
.FUNCT STUN-GUN-F
|
|
EQUAL? HERE,FACTORY \?CCL3
|
|
ZERO? FLOYD-SHOT \?CCL3
|
|
CALL TOUCHING?,STUN-GUN
|
|
ZERO? STACK /?CCL3
|
|
CALL PERFORM,V?TOUCH,FLOYD
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?TAKE \?CCL8
|
|
ZERO? FLOYD-SHOT /?CCL8
|
|
CALL QUEUE,I-LAUNCH,-1
|
|
RFALSE
|
|
?CCL8: EQUAL? PRSA,V?SHOOT \FALSE
|
|
EQUAL? HERE,FACTORY \FALSE
|
|
ZERO? FLOYD-SHOT \FALSE
|
|
PRINTR "You couldn't possibly shoot the stun ray without hitting Floyd."
|
|
|
|
|
|
.FUNCT I-LIGHTS-OUT,DONT-PRINT,RM,LIGHTS-ARE-ON=0
|
|
FIRST? ROOMS >RM /?KLU18
|
|
?KLU18: FSET? HERE,ONBIT \?PRG3
|
|
SET 'LIGHTS-ARE-ON,TRUE-VALUE
|
|
?PRG3: FCLEAR RM,ONBIT
|
|
NEXT? RM >RM /?KLU19
|
|
?KLU19: ZERO? RM \?PRG3
|
|
CALL LIT?,HERE >LIT
|
|
FSET FACTORY,ONBIT
|
|
FSET COMPUTER-CONTROL,ONBIT
|
|
ZERO? P-IT-OBJECT /?CND7
|
|
CALL ULTIMATELY-IN?,P-IT-OBJECT
|
|
ZERO? STACK \?CND7
|
|
SET 'P-IT-OBJECT,FALSE-VALUE
|
|
?CND7: ZERO? LIGHTS-ARE-ON /FALSE
|
|
ZERO? DONT-PRINT \FALSE
|
|
PRINTI " Without warning, the lights flicker and go out"
|
|
ZERO? LIT /?CCL17
|
|
PRINTR "! Good thing you've got that headlamp."
|
|
?CCL17: PRINTR ", leaving you in the dark!"
|
|
|
|
|
|
.FUNCT I-ANNOUNCEMENT
|
|
EQUAL? ANNOUNCEMENT-COUNTER,2 /FALSE
|
|
INC 'ANNOUNCEMENT-COUNTER
|
|
PRINTI " A flat, emotionless voice booms over the station's P.A. system. ""Announcement. "
|
|
EQUAL? ANNOUNCEMENT-COUNTER,1 \?CCL5
|
|
CALL QUEUE,I-ANNOUNCEMENT,470
|
|
PRINTI "Prepare for launch of second-generation pyramids. Station will be eliminated by reactor overload immediately following launch"
|
|
JUMP ?CND3
|
|
?CCL5: CALL QUEUE,I-LAUNCH,200
|
|
PRINTI "Standby. Launch in 200 millichrons"
|
|
?CND3: PRINTR "."""
|
|
|
|
|
|
.FUNCT I-LAUNCH
|
|
PRINTI " "
|
|
EQUAL? HERE,FACTORY \?CCL3
|
|
PRINTI "The very walls of the space station are blown outwards, and the tiny spaceships roar to life and begin rocketing off in every direction! Just before you pass out from lack of air,"
|
|
JUMP ?CND1
|
|
?CCL3: PRINTI "You hear the sound of multiple spaceships being launched nearby. Simultaneously, the air pressure begins dropping! Moments later, these issues seem trivial as"
|
|
?CND1: CALL JIGS-UP,STR?324
|
|
RSTACK
|
|
|
|
|
|
.FUNCT AIR-SHAFT-MOVEMENT-F
|
|
EQUAL? PRSO,P?UP \?CCL3
|
|
EQUAL? AIR-SHAFT-LOC,2 \?CCL6
|
|
RETURN TOP-OF-AIR-SHAFT
|
|
?CCL6: DEC 'AIR-SHAFT-LOC
|
|
CALL DESCRIBE-ROOM
|
|
RFALSE
|
|
?CCL3: EQUAL? AIR-SHAFT-LOC,7 \?CCL8
|
|
RETURN BOTTOM-OF-AIR-SHAFT
|
|
?CCL8: INC 'AIR-SHAFT-LOC
|
|
CALL DESCRIBE-ROOM
|
|
RFALSE
|
|
|
|
|
|
.FUNCT BOTTOM-OF-AIR-SHAFT-EXIT-F
|
|
CALL PERFORM,V?ENTER,GRATING
|
|
RFALSE
|
|
|
|
|
|
.FUNCT COMPUTER-F
|
|
PRINTR "You may as well ignore the computer -- even computer experts need to consult manuals to understand this model."
|
|
|
|
|
|
.FUNCT I-EXERCISE-MACHINE
|
|
INC 'EXERCISE-MACHINE-COUNTER
|
|
PRINTI " "
|
|
CALL ULTIMATELY-IN?,JAMMER,HERE
|
|
ZERO? STACK /?CCL3
|
|
EQUAL? JAMMER-SETTING,710 \?CCL3
|
|
FSET? JAMMER,ACTIVEBIT \?CCL3
|
|
IN? TWENTY-PRONG-FROMITZ-BOARD,JAMMER \?CCL3
|
|
CALL DEQUEUE,I-EXERCISE-MACHINE
|
|
CALL QUEUE,I-FORKLIFT,-1
|
|
MOVE FORKLIFT,HERE
|
|
PRINTI "The "
|
|
PRINTD EXERCISE-MACHINE
|
|
PRINTI " experiences a series of mechanical spasms and then freezes.
|
|
Before you can catch your breath, a huge, grime-covered forklift descends from the ladder hole on a cushion of anti-gravity. It settles down"
|
|
PRINT FORKLIFT-DESC
|
|
CRLF
|
|
RTRUE
|
|
?CCL3: EQUAL? EXERCISE-MACHINE-COUNTER,1 \?CCL9
|
|
PRINTI "The "
|
|
PRINTD EXERCISE-MACHINE
|
|
PRINTR " rolls slowly towards you, bellowing, ""No pain, no gain!"""
|
|
?CCL9: EQUAL? EXERCISE-MACHINE-COUNTER,2 \?CCL11
|
|
PRINTI "As the "
|
|
PRINTD EXERCISE-MACHINE
|
|
PRINTR " nears you, its massive weights and levers begin crashing violently against each other."
|
|
?CCL11: PRINTI "The "
|
|
PRINTD EXERCISE-MACHINE
|
|
CALL JIGS-UP,STR?330
|
|
RSTACK
|
|
|
|
|
|
.FUNCT FORKLIFT-F,OARG=0
|
|
ZERO? OARG /?CCL3
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " A forklift sits"
|
|
PRINT FORKLIFT-DESC
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL7
|
|
PRINTI "The forklift sits"
|
|
PRINT FORKLIFT-DESC
|
|
PRINTR " It's revving its engine, and probably not because its pistons need a workout!"
|
|
?CCL7: EQUAL? PRSA,V?ENTER \FALSE
|
|
PRINTI "The immobile "
|
|
PRINTD EXERCISE-MACHINE
|
|
PRINTR " blocks access into the forklift."
|
|
|
|
|
|
.FUNCT I-FORKLIFT
|
|
INC 'FORKLIFT-COUNTER
|
|
PRINTI " The forklift "
|
|
EQUAL? FORKLIFT-COUNTER,1 \?CCL3
|
|
PRINTI "races its engine, producing a deafening roar"
|
|
JUMP ?CND1
|
|
?CCL3: EQUAL? FORKLIFT-COUNTER,2 \?CCL5
|
|
PRINTI "continues to rev its motor, filling the room with suffocating exhaust fumes"
|
|
JUMP ?CND1
|
|
?CCL5: EQUAL? FORKLIFT-COUNTER,3 \?CCL7
|
|
PRINTI "seems to be slipping its engine into gear. The two pointy tines of its lifting fork seem to quiver with anticipation"
|
|
JUMP ?CND1
|
|
?CCL7: CALL JIGS-UP,STR?331
|
|
?CND1: PRINT PERIOD-CR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT COMPUTER-CONTROL-EXIT-F
|
|
IN? FORKLIFT,HERE \?CCL3
|
|
PRINTI "The forklift blocks your way."
|
|
CRLF
|
|
RFALSE
|
|
?CCL3: IN? EXERCISE-MACHINE,HERE \?CCL5
|
|
PRINTI "The "
|
|
PRINTD EXERCISE-MACHINE
|
|
PRINTI " blocks your way."
|
|
CRLF
|
|
RFALSE
|
|
?CCL5: EQUAL? PRSO,P?NORTH \?CCL7
|
|
RETURN BOTTOM-OF-ELEVATOR-SHAFT
|
|
?CCL7: RETURN FACTORY
|
|
|
|
|
|
.FUNCT FACTORY-F,RARG
|
|
EQUAL? RARG,M-LOOK \?CCL3
|
|
PRINTI "Although you suspected what you would find here on Level Eight, the sight is still a shock, filling you with dread. All the station's main systems -- air and water purification, artificial gravity, power plant -- have been completely transfigured into a tiny factory.
|
|
The purpose of the factory is obvious, because all around you are row after row of featureless pyramids, each perfectly identical, each sitting aboard a miniature spacepod waiting to be launched toward every sector of the galaxy."
|
|
FSET? PYRAMID,NDESCBIT \TRUE
|
|
FCLEAR PYRAMID,NDESCBIT
|
|
PRINTI " The original pyramid sits on a pedestal in the center of the factory, like a monarch impassively surveying its domain."
|
|
RTRUE
|
|
?CCL3: EQUAL? RARG,M-ENTER \FALSE
|
|
ZERO? FLOYD-SHOT \FALSE
|
|
CALL QUEUE,I-FACTORY,-1
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-FACTORY
|
|
EQUAL? HERE,FACTORY \FALSE
|
|
PRINTI " "
|
|
CALL PICK-ONE,FACTORYISMS
|
|
PRINT STACK
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PYRAMID-F
|
|
EQUAL? PRSA,V?PUT-ON \?CCL3
|
|
EQUAL? PRSO,FOIL \?CCL3
|
|
ZERO? FLOYD-SHOT /?CCL8
|
|
PRINTI "The foil settles over the pyramid like a blanket, reflecting the pyramid's evil emanations right back into itself. A reverberating whine, like an electronically amplified beehive, fills the room. The whine grows louder and louder, the pyramid and its pedestal begin vibrating, and the sharp smell of ozone assaults you.
|
|
The noise and the smell and the vibration overwhelm you. As your knees buckle and you drop to the deck, the pyramid explodes in a burst of intense white light. The explosion leaves you momentarily blinded, but you can hear a mechanized voice on the P.A. system, getting slower and deeper like a stereo disc that has lost its power: ""Launch aborted -- launch -- abort --""
|
|
The replica pyramids fade to darkness, and a subtle change in background sound tells you that the space station's systems and machinery are returning to their normal functions.
|
|
Still dazed, you crawl over to Floyd, lying in a smoking heap near the blackened pedestal. Damaged beyond any conceivable repairs, he half-opens his eyes and looks up at you for the last time. ""Floyd sorry for the way he acted. Floyd knows...you did what you...had to do."" Wincing in pain, he slowly reaches over to touch your hand. ""One last game of Hider-and-Seeker? You be It. Ollie ollie..."" His voice is growing weaker. ""...oxen..."" His eyes close. ""...free..."" His hand slips away from yours, and he slumps backwards, lifeless. One of his compartments falls open, and Floyd's favorite paddleball set drops to the deck.
|
|
In the long silence that follows, something Plato said echoes through your mind. ""...think instead about the joy-filled times when you and your friend were together."" A noise makes you turn around, and you see Oliver, the little robot that stirred such brotherly feelings in Floyd. Toddling over to you on unsteady legs, he looks uncomprehendingly at Floyd's remains, but picks up the paddleball set. Oliver looks up at you, tugs on the leg of your "
|
|
PRINTD PATROL-UNIFORM
|
|
PRINTI ", and asks in a quavering voice, ""Play game... Play game with Oliver?"""
|
|
CRLF
|
|
CRLF
|
|
ADD SCORE,5 >SCORE
|
|
USL
|
|
CALL CONTINUE
|
|
CALL TELL-SCORE
|
|
QUIT
|
|
RTRUE
|
|
?CCL8: CALL BACK-OFF,STR?337
|
|
RSTACK
|
|
?CCL3: CALL TOUCHING?,PYRAMID
|
|
ZERO? STACK \?PRD12
|
|
EQUAL? PRSA,V?WALK-TO \?CCL10
|
|
?PRD12: ZERO? FLOYD-SHOT \?CCL10
|
|
CALL BACK-OFF,STR?337
|
|
RSTACK
|
|
?CCL10: EQUAL? PRSA,V?MEASURE \?CCL16
|
|
PRINTR "The pyramid is somewhere between half a meter and a meter across."
|
|
?CCL16: EQUAL? PRSA,V?EXAMINE \?CCL18
|
|
PRINTI "The pyramid is completely featureless, but you can almost feel the emanations of evil pouring forth from it, urging the surrounding factory on towards its sick and deadly purpose. "
|
|
CALL PERFORM,V?MEASURE,PYRAMID
|
|
RTRUE
|
|
?CCL18: EQUAL? PRSA,V?TAKE \FALSE
|
|
PRINTR "Oomph! It's heavier than it looks."
|
|
|
|
|
|
.FUNCT BACK-OFF,STRING
|
|
PRINTI "As you approach "
|
|
PRINT STRING
|
|
PRINTR " levels his stun ray at you, so you quickly back off."
|
|
|
|
.ENDI
|