530 lines
15 KiB
Plaintext
530 lines
15 KiB
Plaintext
|
|
|
|
.FUNCT I-WELDER
|
|
IN? WELDER,HERE \?CCL3
|
|
PRINTI " "
|
|
INC 'WELDER-COUNTER
|
|
ZERO? LIT \?CCL6
|
|
REMOVE WELDER
|
|
SET 'WELDER-COUNTER,0
|
|
PRINTC 89
|
|
PRINT HEAR-WELDER-LEAVE
|
|
RTRUE
|
|
?CCL6: EQUAL? WELDER-COUNTER,2 \?CCL8
|
|
PRINTI "The welder moves closer. "
|
|
JUMP ?CND4
|
|
?CCL8: EQUAL? WELDER-COUNTER,3 /?CND4
|
|
CALL JIGS-UP,STR?8
|
|
?CND4: CALL PERFORM,V?EXAMINE,WELDER
|
|
RSTACK
|
|
?CCL3: GRTR? WELDER-COUNTER,0 \?CCL11
|
|
REMOVE WELDER
|
|
SET 'WELDER-COUNTER,0
|
|
PRINTI " Nearby, y"
|
|
PRINT HEAR-WELDER-LEAVE
|
|
RTRUE
|
|
?CCL11: FSET? HERE,NWELDERBIT /FALSE
|
|
IN? PROTAGONIST,BED /FALSE
|
|
ZERO? LIT /FALSE
|
|
RANDOM 100
|
|
LESS? NUMBER-OF-WELDERS,STACK /FALSE
|
|
ZERO? STUNNED \FALSE
|
|
EQUAL? HERE,SPACETRUCK \?CND18
|
|
FSET? SPACETRUCK-HATCH,OPENBIT \FALSE
|
|
?CND18: MOVE WELDER,HERE
|
|
INC 'WELDER-COUNTER
|
|
RANDOM NUMBER-OF-WELDERS >WELDER-TABLE-POINTER
|
|
PRINTI " You spot a "
|
|
PRINTD WELDER
|
|
PRINTI " approaching. "
|
|
FSET? WELDER,TOUCHBIT /?CND24
|
|
FSET WELDER,TOUCHBIT
|
|
CALL PERFORM,V?WHAT,WELDER
|
|
?CND24: CALL PERFORM,V?EXAMINE,WELDER
|
|
CALL STOP
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-HEADLAMP
|
|
FSET? HEADLAMP,ONBIT \?CCL3
|
|
DEC 'HEADLAMP-COUNTER
|
|
ZERO? HEADLAMP-COUNTER \?CND4
|
|
FCLEAR HEADLAMP,ACTIVEBIT
|
|
FCLEAR HEADLAMP,ONBIT
|
|
?CND4: CALL VISIBLE?,HEADLAMP
|
|
ZERO? STACK /FALSE
|
|
EQUAL? HEADLAMP-COUNTER,0,15,30 \FALSE
|
|
PRINTI " The light from the headlamp "
|
|
ZERO? HEADLAMP-COUNTER \?CCL13
|
|
PRINTI "flickers and dies!"
|
|
CRLF
|
|
CALL NOW-DARK?
|
|
RSTACK
|
|
?CCL13: EQUAL? HEADLAMP-COUNTER,5 \?CCL15
|
|
PRINTR "is almost out!"
|
|
?CCL15: PRINTR "seems somewhat dimmer."
|
|
?CCL3: CALL DEQUEUE,I-HEADLAMP
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-PLATINUM-DETECTOR,?TMP1
|
|
INC 'DETECTOR-COUNTER
|
|
CALL VISIBLE?,PLATINUM-DETECTOR
|
|
ZERO? STACK /?CND1
|
|
CALL META-LOC,FOIL >?TMP1
|
|
CALL META-LOC,PLATINUM-DETECTOR
|
|
EQUAL? ?TMP1,STACK /?CCL2
|
|
CALL ULTIMATELY-IN?,PLATINUM-DETECTOR,BARBERSHOP
|
|
ZERO? STACK /?CND1
|
|
ZERO? MIRROR-BROKEN \?CND1
|
|
?CCL2: PRINTI " The detector is quietly beeping."
|
|
CRLF
|
|
?CND1: EQUAL? DETECTOR-COUNTER,50,75 \?CCL11
|
|
IN? PLATINUM-DETECTOR,PROTAGONIST \?CCL11
|
|
PRINTI " You notice that the detector is getting "
|
|
EQUAL? DETECTOR-COUNTER,75 \?CND14
|
|
PRINTI "very "
|
|
?CND14: PRINTR "warm."
|
|
?CCL11: EQUAL? DETECTOR-COUNTER,100 \FALSE
|
|
IN? PLATINUM-DETECTOR,PROTAGONIST \FALSE
|
|
MOVE PLATINUM-DETECTOR,HERE
|
|
PRINTR " Yeow! The detector is now too hot to handle, so you drop it."
|
|
|
|
|
|
.FUNCT I-DRYER
|
|
INC 'DRYER-COUNTER
|
|
FCLEAR LAUNDRY,TOUCHBIT
|
|
EQUAL? HERE,LAUNDRY \FALSE
|
|
EQUAL? DRYER-COUNTER,5,10,15 \FALSE
|
|
PRINTI " "
|
|
CALL DESCRIBE-DRYER-HEAT
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-RADIO
|
|
EQUAL? HERE,SPACETRUCK \FALSE
|
|
RANDOM 100
|
|
LESS? 30,STACK /?CCL5
|
|
PRINTI " The radio crackles to life. ""Breaker. "
|
|
CALL PICK-ONE,RADIO-LINES
|
|
PRINT STACK
|
|
PRINTR " Over."""
|
|
?CCL5: RANDOM 100
|
|
LESS? 20,STACK /FALSE
|
|
PRINTR " A country and western station drifts into tune for a moment, but then fades again."
|
|
|
|
|
|
.FUNCT I-FLOYD,OBJ=0,?TMP1
|
|
CALL QUEUE,I-FLOYD,-1
|
|
FSET? FLOYD,TOUCHBIT /?CCL3
|
|
FSET FLOYD,TOUCHBIT
|
|
FSET FLOYD,TRYTAKEBIT
|
|
PRINTI " The third robot looks up from his marbles, jumps to his feet, and starts waving wildly. It's Floyd, your robotic companion from Resida! (Footnote 3) You've seen him only occasionally since he opted for assignment in the Stellar Patrol those five long years ago."
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL3: ZERO? ROBOT-PICKED \?CCL5
|
|
PRINTI " Floyd jumps up and down saying, ""Oh boy oh boy oh boy pick Floyd pick Floyd pick Floyd!"""
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL5: ZERO? FLOYD-ANGUISHED /?CCL7
|
|
CALL VISIBLE?,FLOYD
|
|
ZERO? STACK \?CND8
|
|
SET 'FLOYD-ANGUISHED,FALSE-VALUE
|
|
?CND8: SET 'FLOYD-FOLLOW,FALSE-VALUE
|
|
RFALSE
|
|
?CCL7: CALL VISIBLE?,FLOYD
|
|
ZERO? STACK /?CCL11
|
|
FSET? FLOYD,ACTIVEBIT \FALSE
|
|
LOC FLOYD
|
|
EQUAL? STACK,PILOT-SEAT,COPILOT-SEAT \?CCL16
|
|
GRTR? SPACETRUCK-COUNTER,0 \?CCL16
|
|
ZERO? PILOT-SEAT-COMMENT \?CCL16
|
|
SET 'PILOT-SEAT-COMMENT,TRUE-VALUE
|
|
PRINTI " Floyd strains to see over the top of the dashboard. ""Boy, seats low! Floyd could sure use a phone book!"""
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL16: IN? OSTRICH,HERE \?CCL21
|
|
ZERO? OSTRICH-COMMENT \?CCL21
|
|
SET 'OSTRICH-COMMENT,TRUE-VALUE
|
|
PRINTI " Floyd looks at the ostrich with breathless excitement. ""Wow! An elephant!"""
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL21: IN? BALLOON,HERE \?CCL25
|
|
ZERO? BALLOON-COMMENT \?CCL25
|
|
ZERO? HANGING-IN-AIR \?CCL25
|
|
GRTR? ROBOT-EVILNESS,13 \?CCL25
|
|
SET 'BALLOON-COMMENT,TRUE-VALUE
|
|
PRINTI " You notice Floyd taunting the "
|
|
PRINTD BALLOON
|
|
PRINTI ". The frightened balloon takes refuge in the far corner of the room."
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL25: FSET? HERE,FLOYDBIT /?PRD33
|
|
ZERO? FLOYD-SPOKE \?PRD33
|
|
RANDOM 100
|
|
LESS? 6,STACK \?CTR30
|
|
?PRD33: GRTR? TIMER-SETTING,0 \?CCL31
|
|
CALL VISIBLE?,EXPLOSIVE
|
|
ZERO? STACK /?CCL31
|
|
?CTR30: REMOVE FLOYD
|
|
PRINTI " "
|
|
IN? PLATO,HERE \?CCL41
|
|
SET 'POSTPONE-ATTACK,TRUE-VALUE
|
|
REMOVE PLATO
|
|
GRTR? ROBOT-EVILNESS,8 \?CCL44
|
|
PRINTI """Let us take a stroll, Floyd,"" says Plato, tucking his book under one arm. ""Tagging along after this simpleton human is becoming tiresome."" He breezes out. Floyd hesitates, then follows."
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL44: RANDOM 100
|
|
LESS? 50,STACK \?CTR45
|
|
EQUAL? HERE,LIBRARY \?CCL46
|
|
?CTR45: PRINTI """Hey, Plato!"" says Floyd. ""Play Hider-and-Seeker with Floyd?"" Plato glances up from his book, nods, and says, ""I do believe that I can spare a few millichrons for a relaxing bit of sport."" Floyd bounds away, with Plato a bit behind. From out of sight, Floyd's voice faintly echoes back to you: ""Ollie ollie oxen free!"""
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL46: PRINTI "Plato reaches the last page of his book. ""Heavens! It appears to be time for another jaunt to the library. Would you care to accompany me, my boisterous friend?""
|
|
""Oh boy yessiree!"" says Floyd, bounding off after Plato. ""I hope they have copies of my favorite comic, THE ADVENTURES OF LANE MASTODON!"""
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL41: PRINTI "Floyd says, ""Floyd going exploring. See you later."" He glides out of the room."
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL31: RANDOM 100
|
|
LESS? 45,STACK /?CND1
|
|
ZERO? FLOYD-SPOKE \?CND1
|
|
IN? FLOYD,HERE \?CND1
|
|
IN? PROTAGONIST,HERE \?CND1
|
|
ZERO? HANGING-IN-AIR \?CND1
|
|
ZERO? LIT /?CND1
|
|
FIRST? HERE >OBJ /?KLU177
|
|
?KLU177: ZERO? OBJ /?CCL58
|
|
FSET? OBJ,TOUCHBIT \?CCL58
|
|
FSET? OBJ,TAKEBIT \?CCL58
|
|
FSET? OBJ,CONTBIT /?CCL58
|
|
EQUAL? OBJ,OSTRICH-NIP,SPACESUIT /?CCL58
|
|
EQUAL? OBJ,DETONATOR,TIMER,EXPLOSIVE /?CCL58
|
|
CALL CCOUNT,FLOYD
|
|
LESS? STACK,4 \?CCL58
|
|
RANDOM 100
|
|
LESS? 6,STACK /?CCL58
|
|
MOVE OBJ,FLOYD
|
|
PRINTI " Floyd picks up"
|
|
CALL TPRINT,OBJ
|
|
PRINTI ", examines it, and tucks "
|
|
FSET? OBJ,PLURALBIT \?CCL69
|
|
PRINTI "them"
|
|
JUMP ?CND67
|
|
?CCL69: PRINTI "it"
|
|
?CND67: PRINTI " under his arm."
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL58: FIRST? FLOYD \?CCL71
|
|
RANDOM 100
|
|
LESS? 6,STACK /?CCL71
|
|
FIRST? FLOYD >OBJ /?KLU178
|
|
?KLU178: NEXT? OBJ \?CND74
|
|
RANDOM 100
|
|
LESS? 60,STACK /?CND74
|
|
NEXT? OBJ >OBJ /?CND74
|
|
?CND74: MOVE OBJ,HERE
|
|
PRINTI " Floyd drops"
|
|
CALL TPRINT,OBJ
|
|
PRINTI " he was carrying."
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL71: FIRST? FLOYD \?CCL79
|
|
RANDOM 100
|
|
LESS? 4,STACK /?CCL79
|
|
FIRST? FLOYD >OBJ /?KLU180
|
|
?KLU180: NEXT? OBJ \?CND82
|
|
RANDOM 100
|
|
LESS? 60,STACK /?CND82
|
|
NEXT? OBJ >OBJ /?CND82
|
|
?CND82: PRINTI " Floyd moves"
|
|
CALL TPRINT,OBJ
|
|
PRINTI " in a wavering course through the air, making a roaring noise like a rocket exhaust."
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL79: IN? PLATO,HERE \?CCL87
|
|
RANDOM 100
|
|
LESS? 70,STACK /?CCL87
|
|
PRINTI " "
|
|
CALL PICK-ONE,PLATOISMS
|
|
PRINT STACK
|
|
PRINT PERIOD-CR
|
|
JUMP ?CND1
|
|
?CCL87: PRINTI " Floyd "
|
|
MUL ROBOT-EVILNESS,3
|
|
SUB 36,STACK >?TMP1
|
|
RANDOM 100
|
|
LESS? ?TMP1,STACK /?CCL92
|
|
CALL PICK-ONE,GOOD-FLOYDISMS
|
|
PRINT STACK
|
|
PRINT PERIOD-CR
|
|
JUMP ?CND1
|
|
?CCL92: MUL ROBOT-EVILNESS,25
|
|
SUB STACK,300 >?TMP1
|
|
RANDOM 100
|
|
LESS? ?TMP1,STACK /?CCL94
|
|
CALL PICK-ONE,BAD-FLOYDISMS
|
|
PRINT STACK
|
|
PRINT PERIOD-CR
|
|
JUMP ?CND1
|
|
?CCL94: RANDOM 100
|
|
LESS? 6,STACK /?CCL96
|
|
SET 'AWAITING-REPLY,4
|
|
ADD C-ELAPSED,2
|
|
CALL QUEUE,I-REPLY,STACK
|
|
PRINTI "says, ""Hey! Wanna play Hucka-Bucka-Beanstalk?"""
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL96: CALL PICK-ONE,NEUTRAL-FLOYDISMS
|
|
PRINT STACK
|
|
PRINT PERIOD-CR
|
|
JUMP ?CND1
|
|
?CCL11: FSET? FLOYD,ACTIVEBIT /?CCL98
|
|
EQUAL? HERE,VACUUM-STORAGE,AIRLOCK /FALSE
|
|
LESS? SPACETRUCK-COUNTER,5 /FALSE
|
|
CALL NEXT-ROOM?,FLOYD
|
|
ZERO? STACK \FALSE
|
|
FSET FLOYD,ACTIVEBIT
|
|
FSET FLOYD,ACTORBIT
|
|
PRINTI " Floyd bounds up to you"
|
|
PRINT HOPPING-MAD
|
|
ZERO? PLATO-INTRODUCED /?CCL107
|
|
PRINTI " Plato strolls in and gives Floyd a pat. ""I reactivated the little fellow; I hope you don't mind."""
|
|
CRLF
|
|
JUMP ?CND105
|
|
?CCL107: PRINTI " Another robot wanders in behind Floyd and notices you."
|
|
CRLF
|
|
CALL I-PLATO,TRUE-VALUE
|
|
PRINTI " Plato motions toward Floyd. ""I presume you know this playful little fellow. Someone had deactivated him, so I rectified the situation."""
|
|
CRLF
|
|
?CND105: MOVE PLATO,HERE
|
|
MOVE FLOYD,HERE
|
|
JUMP ?CND1
|
|
?CCL98: GRTR? ROBOT-EVILNESS,17 \?CCL109
|
|
LOC FLOYD
|
|
ZERO? STACK /?CND110
|
|
LOC FLOYD
|
|
FSET? STACK,NWELDERBIT \?CND110
|
|
CALL NEXT-ROOM?,FLOYD
|
|
ZERO? STACK \FALSE
|
|
?CND110: CALL MOVE-FLOYD-TO-FACTORY
|
|
RFALSE
|
|
?CCL109: ZERO? FLOYD-FOLLOW /?CCL116
|
|
EQUAL? HERE,AIRLOCK \?CCL116
|
|
PRINTI " Floyd calls from above, """
|
|
ZERO? PLATO-INTRODUCED /?CCL121
|
|
ZERO? PLATO-ATTACK-COUNTER \?CCL121
|
|
PRINTI "We"
|
|
JUMP ?CND119
|
|
?CCL121: PRINTC 73
|
|
?CND119: PRINTI "'ll wait here; it doesn't look like there's room in that phone booth for "
|
|
ZERO? PLATO-INTRODUCED /?CCL126
|
|
ZERO? PLATO-ATTACK-COUNTER \?CCL126
|
|
PRINTI "all"
|
|
JUMP ?CND124
|
|
?CCL126: PRINTI "both"
|
|
?CND124: PRINTI " of us."""
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL116: ZERO? FLOYD-FOLLOW /?CCL130
|
|
ZERO? TIMER-SETTING /?PRD133
|
|
CALL VISIBLE?,EXPLOSIVE
|
|
ZERO? STACK \?CCL130
|
|
?PRD133: RANDOM 100
|
|
LESS? 80,STACK /?CCL130
|
|
PRINTI " Floyd "
|
|
ZERO? PLATO-INTRODUCED /?CCL138
|
|
ZERO? PLATO-ATTACK-COUNTER \?CCL138
|
|
MOVE PLATO,HERE
|
|
PRINTI "and Plato follow"
|
|
JUMP ?CND136
|
|
?CCL138: PRINTI "follows"
|
|
?CND136: MOVE FLOYD,HERE
|
|
PRINTI " you."
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL130: EQUAL? HERE,SPACETRUCK,ELEVATOR,BRIG /?CTR141
|
|
EQUAL? HERE,ARMORY \?CCL142
|
|
?CTR141: PRINTI " Floyd bounces in"
|
|
ZERO? PLATO-INTRODUCED /?CND145
|
|
ZERO? PLATO-ATTACK-COUNTER \?CND145
|
|
MOVE PLATO,HERE
|
|
PRINTI ", followed at a more leisurely pace by Plato"
|
|
?CND145: PRINTI ". ""Hey, wait for "
|
|
ZERO? PLATO-INTRODUCED /?CCL151
|
|
ZERO? PLATO-ATTACK-COUNTER \?CCL151
|
|
MOVE PLATO,HERE
|
|
PRINTI "us"
|
|
JUMP ?CND149
|
|
?CCL151: PRINTI "Floyd"
|
|
?CND149: MOVE FLOYD,HERE
|
|
PRINTI "!"" he yells."
|
|
CRLF
|
|
JUMP ?CND1
|
|
?CCL142: RANDOM 100
|
|
LESS? 17,STACK /?CND1
|
|
ZERO? LIT /?CND1
|
|
EQUAL? HERE,AIRLOCK,VACUUM-STORAGE /?CND1
|
|
PRINTI " Floyd "
|
|
ZERO? PLATO-INTRODUCED \?CCL160
|
|
FSET? LEVEL-FIVE,TOUCHBIT \?CCL160
|
|
RANDOM 100
|
|
LESS? 50,STACK /?CCL160
|
|
PRINTI "dashes into view, followed by a slightly older-looking robot. ""Look, Floyd found a new friend,"" Floyd says with unbounded exuberance."
|
|
CRLF
|
|
CALL I-PLATO,TRUE-VALUE
|
|
JUMP ?CND158
|
|
?CCL160: MUL ROBOT-EVILNESS,10
|
|
SUB STACK,70 >?TMP1
|
|
RANDOM 100
|
|
LESS? ?TMP1,STACK /?CCL166
|
|
PRINTI "meanders in. ""You doing anything fun?"" he asks, and then answers his own question, ""Nope. Same dumb boring things."""
|
|
JUMP ?CND164
|
|
?CCL166: RANDOM 100
|
|
LESS? 15,STACK /?CCL168
|
|
PRINTI "rushes into the room and barrels into you. ""Oops, sorry,"" he says. ""Floyd not looking at where he was going to."""
|
|
JUMP ?CND164
|
|
?CCL168: PRINTI "bounds into the room. ""Floyd here now!"" he cries."
|
|
?CND164: ZERO? PLATO-INTRODUCED /?CND169
|
|
ZERO? PLATO-ATTACK-COUNTER \?CND169
|
|
MOVE PLATO,HERE
|
|
PRINTI " You notice that Plato has also roamed into view behind Floyd, once again absorbed in his reading."
|
|
?CND169: CRLF
|
|
?CND158: MOVE FLOYD,HERE
|
|
ZERO? HANGING-IN-AIR /?CND1
|
|
ZERO? HANGING-COMMENT \?CND1
|
|
SET 'FLOYD-SPOKE,TRUE-VALUE
|
|
SET 'HANGING-COMMENT,TRUE-VALUE
|
|
PRINT FLOYDS-HANGING-IN-AIR-COMMENT
|
|
?CND1: SET 'FLOYD-SPOKE,FALSE-VALUE
|
|
SET 'FLOYD-FOLLOW,FALSE-VALUE
|
|
RETURN FLOYD-FOLLOW
|
|
|
|
|
|
.FUNCT I-EXPLOSIVE-MELT,OLD-MELT-COUNTER
|
|
SET 'OLD-MELT-COUNTER,MELT-COUNTER
|
|
IN? EXPLOSIVE,THERMOS \?CCL3
|
|
FSET? THERMOS,OPENBIT /?CCL3
|
|
DIV C-ELAPSED,4
|
|
JUMP ?CND1
|
|
?CCL3: PUSH C-ELAPSED
|
|
?CND1: ADD MELT-COUNTER,STACK >MELT-COUNTER
|
|
GRTR? MELT-COUNTER,210 \?CCL8
|
|
CALL VISIBLE?,EXPLOSIVE
|
|
ZERO? STACK /?CCL11
|
|
PRINTI " The explosive "
|
|
PRINT SUBLIMES-INTO-FREZONE
|
|
CALL DEQUEUE,I-EXPLOSIVE-MELT
|
|
CALL REMOVE-CAREFULLY,EXPLOSIVE
|
|
CRLF
|
|
RTRUE
|
|
?CCL11: CALL REMOVE-CAREFULLY,EXPLOSIVE
|
|
RSTACK
|
|
?CCL8: CALL VISIBLE?,EXPLOSIVE
|
|
ZERO? STACK /FALSE
|
|
ZERO? LIT /FALSE
|
|
GRTR? MELT-COUNTER,170 \?CCL18
|
|
GRTR? OLD-MELT-COUNTER,170 /?CCL18
|
|
PRINTI " "
|
|
CALL DESCRIBE-EXPLOSIVE
|
|
RSTACK
|
|
?CCL18: GRTR? MELT-COUNTER,130 \FALSE
|
|
GRTR? OLD-MELT-COUNTER,130 /FALSE
|
|
PRINTI " "
|
|
CALL DESCRIBE-EXPLOSIVE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-TIMER,?TMP1
|
|
CALL QUEUE,I-TIMER,-1
|
|
SUB TIMER-SETTING,C-ELAPSED >TIMER-SETTING
|
|
LESS? TIMER-SETTING,1 \?CND1
|
|
CALL DEQUEUE,I-TIMER
|
|
SET 'TIMER-SETTING,0
|
|
?CND1: CALL VISIBLE?,TIMER
|
|
ZERO? STACK /?CND3
|
|
PRINTI " The timer reaches "
|
|
PRINTN TIMER-SETTING
|
|
ZERO? TIMER-SETTING \?CND5
|
|
PRINTI " and stops ticking"
|
|
?CND5: PRINTC 46
|
|
?CND3: ZERO? TIMER-SETTING \?CND7
|
|
ZERO? TIMER-CONNECTED /?CND7
|
|
LOC DIODE-M >?TMP1
|
|
LOC DIODE-J
|
|
EQUAL? DETONATOR,?TMP1,STACK \?CND7
|
|
IN? DIODE-J,DETONATOR \?CCL14
|
|
MOVE DIODE-J,LOCAL-GLOBALS
|
|
CALL VISIBLE?,DETONATOR
|
|
ZERO? STACK /?CND7
|
|
PRINTI " You hear a sizzling sound from the detonator"
|
|
FSET? SPACESUIT,WORNBIT /?CND17
|
|
PRINTI ", and a burnt odor assaults your nose"
|
|
?CND17: PRINTC 46
|
|
JUMP ?CND7
|
|
?CCL14: ZERO? EXPLOSIVE-CONNECTED /?CCL20
|
|
CALL META-LOC,EXPLOSIVE
|
|
EQUAL? STACK,HERE \?CCL23
|
|
PRINTI " The explosive fulfills its destiny by exploding. You simultaneously fulfill your own destiny: turning into itsy-bitsy pieces of "
|
|
PRINT LFC
|
|
CALL JIGS-UP,STR?9
|
|
JUMP ?CND21
|
|
?CCL23: IN? EXPLOSIVE,DRILLED-HOLE \?CCL25
|
|
RANDOM 200
|
|
ADD STACK,20
|
|
CALL QUEUE,I-LIGHTS-OUT,STACK
|
|
FSET SAFE,OPENBIT
|
|
FSET SAFE,TOUCHBIT
|
|
FCLEAR SAFE,LOCKEDBIT
|
|
JUMP ?CND21
|
|
?CCL25: CALL DESTROY-EXPLOSIVE-CONT
|
|
?CND21: CALL NEXT-ROOM?,TIMER
|
|
ZERO? STACK /?CCL28
|
|
PRINTI " You hear a deafening explosion from very nearby!"
|
|
CRLF
|
|
JUMP ?CND26
|
|
?CCL28: PRINTI " You hear a loud but distant explosion."
|
|
CRLF
|
|
?CND26: REMOVE TIMER
|
|
REMOVE EXPLOSIVE
|
|
REMOVE DETONATOR
|
|
JUMP ?CND7
|
|
?CCL20: CALL VISIBLE?,TIMER
|
|
ZERO? STACK /?CND7
|
|
PRINTI " You hear a click from the detonator."
|
|
?CND7: CALL VISIBLE?,TIMER
|
|
ZERO? STACK /FALSE
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-LOG-READER
|
|
INC 'LOG-READER-COUNTER
|
|
FSET? LOG-READER,ACTIVEBIT /?CCL3
|
|
CALL DEQUEUE,I-LOG-READER
|
|
SET 'LOG-READER-COUNTER,0
|
|
RETURN LOG-READER-COUNTER
|
|
?CCL3: EQUAL? LOG-READER-COUNTER,12 \?CCL5
|
|
EQUAL? HERE,COMMANDERS-OFFICE \?CCL5
|
|
PRINTR " The reader begins producing a whining noise."
|
|
?CCL5: EQUAL? LOG-READER-COUNTER,13 \?CCL9
|
|
EQUAL? HERE,COMMANDERS-OFFICE \?CCL9
|
|
PRINTI " The whine from the "
|
|
PRINTD LOG-READER
|
|
PRINTR " rises in pitch, and grows louder by the millichron!"
|
|
?CCL9: EQUAL? LOG-READER-COUNTER,14 \FALSE
|
|
REMOVE LOG-READER
|
|
CALL DEQUEUE,I-LOG-READER
|
|
FCLEAR COMMANDERS-OFFICE,TOUCHBIT
|
|
EQUAL? HERE,COMMANDERS-OFFICE \?CCL16
|
|
CALL JIGS-UP,STR?10
|
|
RSTACK
|
|
?CCL16: EQUAL? HERE,COMMANDERS-QUARTERS,BRIEFING-ROOM,STATION-CONTROL /?CCL18
|
|
EQUAL? HERE,SOUTH-JUNCTION \FALSE
|
|
?CCL18: PRINTR " You hear an explosion from nearby."
|
|
|
|
.ENDI
|