stationfall/interrupts.zap

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