stationfall/globals.zap
historicalsource 43e39b2ba0 Revision 107
2019-04-14 16:11:30 -04:00

1219 lines
32 KiB
Plaintext

.FUNCT INTDIR-F
EQUAL? PRSA,V?SET \FALSE
PRINTR "Okay, you're now facing in that direction, but you don't see anything you didn't see before."
.FUNCT INTNUM-F
CALL ADJ-USED,A?BIN,INTNUM
ZERO? STACK /?CCL3
EQUAL? HERE,ROBOT-POOL /?CCL6
PRINT YOU-CANT
PRINTR "see any bin here!]"
?CCL6: GRTR? P-NUMBER,3 \?CCL8
PRINTR "There are only three bins!"
?CCL8: PRINT REFER-TO-BIN
RTRUE
?CCL3: GET P-NAMW,0
EQUAL? STACK,W?ONE,W?TWO,W?THREE \?CCL10
CALL GLOBAL-IN?,KEYPAD,HERE
ZERO? STACK /?CCL10
EQUAL? PRSA,V?TYPE,V?PUSH \?CCL10
PRINTR "[Use numerals: for example, TYPE 5 rather than TYPE FIVE.]"
?CCL10: EQUAL? PRSA,V?ON,V?SHOOT,V?EXAMINE /?PRD17
EQUAL? PRSA,V?MUNG,V?KILL,V?OFF \?CCL15
?PRD17: GET WELDER-TABLE,WELDER-TABLE-POINTER
EQUAL? STACK,P-NUMBER \?CCL15
IN? WELDER,HERE \?CCL15
EQUAL? PRSO,INTNUM \?CCL23
CALL PERFORM,PRSA,WELDER,PRSI
RTRUE
?CCL23: CALL PERFORM,PRSA,PRSO,WELDER
RTRUE
?CCL15: EQUAL? PRSA,V?ENTER \?PRD27
EQUAL? P-PRSA-WORD,W?ENTER \?PRD27
CALL GLOBAL-IN?,KEYPAD,HERE
ZERO? STACK \?CTR24
?PRD27: EQUAL? PRSA,V?PUSH \?CCL25
CALL GLOBAL-IN?,KEYPAD,HERE
ZERO? STACK /?CCL25
?CTR24: CALL PERFORM,V?TYPE,INTNUM
RTRUE
?CCL25: EQUAL? PRSA,V?SET \?CCL34
ZERO? PRSI \?CCL34
EQUAL? HERE,COMMANDERS-QUARTERS \?CCL34
EQUAL? P-NUMBER,DIAL-SETTING \?CCL40
PRINT SENILITY-STRIKES
RTRUE
?CCL40: GRTR? P-NUMBER,8000 \?CCL42
PRINTR "The dial goes up to only 8000."
?CCL42: SET 'DIAL-SETTING,P-NUMBER
PRINTR """Click."""
?CCL34: EQUAL? PRSA,V?WAIT-FOR \?CCL44
GRTR? P-NUMBER,40 \?CCL47
PRINT TOO-LONG-TO-WAIT
RTRUE
?CCL47: CALL V-WAIT
RSTACK
?CCL44: EQUAL? PRSA,V?WAIT-UNTIL \?CCL49
GRTR? P-NUMBER,INTERNAL-MOVES \?CCL52
SUB P-NUMBER,INTERNAL-MOVES
LESS? STACK,41 \?CCL52
CALL V-WAIT
RSTACK
?CCL52: PRINT TOO-LONG-TO-WAIT
RTRUE
?CCL49: CALL TOUCHING?,INTNUM
ZERO? STACK \?CCL56
EQUAL? PRSA,V?SHOOT \FALSE
?CCL56: PRINT HUH
RTRUE
.FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ,X=0
EQUAL? PRSO,NOT-HERE-OBJECT \?CCL3
EQUAL? PRSI,NOT-HERE-OBJECT \?CCL3
PRINTR "Those things aren't here!"
?CCL3: EQUAL? PRSO,NOT-HERE-OBJECT \?CCL7
SET 'TBL,P-PRSO
JUMP ?CND1
?CCL7: SET 'TBL,P-PRSI
SET 'PRSO?,FALSE-VALUE
?CND1: ZERO? PRSO? /?CCL10
CALL PRSO-MOBY-VERB?
ZERO? STACK /?CCL10
SET 'X,TRUE-VALUE
JUMP ?CND8
?CCL10: ZERO? PRSO? \?CND8
CALL PRSI-MOBY-VERB?
ZERO? STACK /?CND8
SET 'X,TRUE-VALUE
?CND8: ZERO? X /?CCL18
CALL FIND-NOT-HERE,TBL,PRSO? >OBJ
ZERO? OBJ /FALSE
EQUAL? OBJ,NOT-HERE-OBJECT \TRUE
EQUAL? PRSA,V?FOLLOW,V?WALK-TO \?CCL26
CALL V-WALK-AROUND
JUMP ?CND16
?CCL26: PRINTC 91
PRINT YOULL-HAVE-TO
PRINTI "be more specific.]"
CRLF
JUMP ?CND16
?CCL18: EQUAL? WINNER,PROTAGONIST \?CCL29
PRINTI "You"
JUMP ?CND27
?CCL29: PRINTI "Looking confused,"
CALL TPRINT,WINNER
PRINTI " says, ""I"
?CND27: PRINTI " can't see"
CALL NAME?,P-XNAM
ZERO? STACK \?CND30
PRINTI " any"
?CND30: CALL NOT-HERE-PRINT,PRSO?
PRINTI " here!"
EQUAL? WINNER,PROTAGONIST /?CND32
PRINTC 34
?CND32: CRLF
?CND16: CALL STOP
RSTACK
.FUNCT PRSO-MOBY-VERB?
EQUAL? PRSA,V?WHAT,V?WHERE,V?WAIT-FOR /TRUE
EQUAL? PRSA,V?WALK-TO,V?CALL,V?SAY /TRUE
EQUAL? PRSA,V?FIND,V?FOLLOW /TRUE
RFALSE
.FUNCT PRSI-MOBY-VERB?
EQUAL? PRSA,V?ASK-ABOUT,V?ASK-FOR,V?TELL-ABOUT /TRUE
RFALSE
.FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ
CALL MOBY-FIND,TBL >M-F
EQUAL? 1,M-F \?CCL3
ZERO? PRSO? /?CCL6
SET 'PRSO,P-MOBY-FOUND
CALL THIS-IS-IT,PRSO
RFALSE
?CCL6: SET 'PRSI,P-MOBY-FOUND
RFALSE
?CCL3: LESS? 1,M-F \?CCL8
GET TBL,1 >OBJ
GETP OBJ,P?GENERIC
CALL STACK >OBJ
ZERO? OBJ /?CCL8
EQUAL? OBJ,NOT-HERE-OBJECT /TRUE
ZERO? PRSO? /?CCL15
SET 'PRSO,OBJ
CALL THIS-IS-IT,PRSO
RFALSE
?CCL15: SET 'PRSI,OBJ
RFALSE
?CCL8: RETURN NOT-HERE-OBJECT
.FUNCT NOT-HERE-PRINT,PRSO?,?TMP1
ZERO? P-OFLAG /?CCL3
ZERO? P-XADJ /?CND4
PRINTC 32
PRINTB P-XADJN
?CND4: ZERO? P-XNAM /FALSE
PRINTC 32
PRINTB P-XNAM
RTRUE
?CCL3: ZERO? PRSO? /?CCL10
GET P-ITBL,P-NC1 >?TMP1
GET P-ITBL,P-NC1L
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
RSTACK
?CCL10: GET P-ITBL,P-NC2 >?TMP1
GET P-ITBL,P-NC2L
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
RSTACK
.FUNCT GROUND-F
EQUAL? PRSA,V?ENTER,V?CLIMB-ON \?CCL3
ZERO? STUNNED /?CCL6
PRINT LOOK-AROUND
RTRUE
?CCL6: SET 'C-ELAPSED,31
PRINTR "After a brief squat on the floor, you stand again."
?CCL3: EQUAL? PRSA,V?CLEAN \?CCL8
SET 'AWAITING-REPLY,1
ADD C-ELAPSED,2
CALL QUEUE,I-REPLY,STACK
PRINTR "Do you also do windows?"
?CCL8: EQUAL? PRSA,V?LOOK-UNDER \?CCL10
CALL IMPOSSIBLES
RSTACK
?CCL10: EQUAL? PRSA,V?OPEN \?CCL12
EQUAL? HERE,BOTTOM-OF-AIR-SHAFT \?CCL12
CALL PERFORM,V?OPEN,GRATING
RTRUE
?CCL12: EQUAL? PRSA,V?LEAVE \FALSE
CALL DO-WALK,P?UP
RSTACK
.FUNCT WALLS-F
EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,HOLDING-TANK-LEVEL \FALSE
PRINT BLASTED-OPEN
PRINT PERIOD-CR
RTRUE
.FUNCT CEILING-F
EQUAL? PRSA,V?SEARCH,V?EXAMINE \?CCL3
EQUAL? HERE,PET-STORE \?CCL3
IN? PANEL,HERE \?CCL8
PRINTI "There's a panel mounted in the ceiling. "
CALL PERFORM,V?EXAMINE,PANEL
RTRUE
?CCL8: IN? PANEL,LOCAL-GLOBALS \FALSE
MOVE PANEL,HERE
CALL THIS-IS-IT,PANEL
PRINTR "As you look carefully, you notice something that a casual inspection of the Pet Store would never have uncovered: a panel mounted in the ceiling."
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL12
EQUAL? HERE,DOME \?CCL12
PRINT DOME-DESC
CRLF
RTRUE
?CCL12: EQUAL? PRSA,V?LOOK-UNDER \FALSE
CALL PERFORM,V?LOOK
RTRUE
.FUNCT GLOBAL-ROOM-F
EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE,V?LOOK \?CCL3
CALL V-LOOK
RSTACK
?CCL3: EQUAL? PRSA,V?WALK-TO,V?ENTER \?CCL5
CALL V-WALK-AROUND
RSTACK
?CCL5: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?CCL7
CALL DO-WALK,P?OUT
RSTACK
?CCL7: EQUAL? PRSA,V?WALK-AROUND \?CCL9
EQUAL? HERE,BARBERSHOP \?CCL9
ZERO? MIRROR-BROKEN \?CCL9
CALL ULTIMATELY-IN?,PLATINUM-DETECTOR
ZERO? STACK /?CCL9
FSET? PLATINUM-DETECTOR,ACTIVEBIT \?CCL9
CALL PERFORM,V?FOLLOW,PLATINUM-DETECTOR
RTRUE
?CCL9: EQUAL? PRSA,V?SEARCH \?CCL16
ZERO? LIT \?CCL19
PRINT TOO-DARK
CRLF
RTRUE
?CCL19: EQUAL? HERE,GREASY-STRAW \?CCL21
FSET? NECTAR,TOUCHBIT /?CCL21
MOVE NECTAR,HERE
CALL THIS-IS-IT,NECTAR
PRINTR "You spot a cup of Ramosian Fire Nectar behind the counter!"
?CCL21: PRINTR "A cursory search of the room reveals nothing new."
?CCL16: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,GLOBAL-ROOM \FALSE
EQUAL? P-PRSA-WORD,W?THROW \?CCL30
CALL PERFORM,V?THROW,PRSO
RTRUE
?CCL30: CALL PERFORM,V?DROP,PRSO
RTRUE
.FUNCT WINDOW-F
EQUAL? PRSA,V?LOOK-INSIDE \?CCL3
EQUAL? HERE,SHADY-DANS \?CCL6
PRINT DANS-LOT-DESC
CRLF
RTRUE
?CCL6: EQUAL? HERE,DOCKING-BAY-2,CARGO-BAY \?CCL8
PRINTI "You see the interior of"
CALL TRPRINT,SPACETRUCK-OBJECT
RSTACK
?CCL8: EQUAL? SPACETRUCK-COUNTER,5 \?CCL10
EQUAL? COURSE-PICKED,RIGHT-COURSE \?CCL10
PRINTR "You see an empty docking bay."
?CCL10: EQUAL? SPACETRUCK-COUNTER,-1 \?CCL14
PRINTR "You see a large cargo bay."
?CCL14: EQUAL? SPACETRUCK-COUNTER,4 \?CCL16
EQUAL? COURSE-PICKED,RIGHT-COURSE \?CCL16
PRINTI " You are approaching the station from slightly above it (on the galactic plane), thus offering a good view of the station's layout. In the center is the large, spherical Command Module. Jutting ""north"" from it is a smaller Sub-Module. Joining the Command Module, at its two other connection points,"
PRINT TANGLE-OF-TUBES
PRINTR " These form a ""village,"" the sort of seedy, unauthorized village that frequently collects around a space station."
?CCL16: PRINTR "You see nothing but the majestic sweep of the galaxy."
?CCL3: EQUAL? PRSA,V?CLEAN \FALSE
SET 'AWAITING-REPLY,1
ADD C-ELAPSED,2
CALL QUEUE,I-REPLY,STACK
PRINTR "Do you also do floors?"
.FUNCT SIGN-F
EQUAL? HERE,DOME \?CCL3
IN? HOUSING,DOME /?CCL3
CALL CANT-SEE,SIGN
RSTACK
?CCL3: EQUAL? PRSA,V?READ \FALSE
EQUAL? HERE,DOME \?CCL10
CALL PERFORM,V?READ,HOUSING
RTRUE
?CCL10: EQUAL? HERE,GYM \?CCL12
PRINTI """IMPORTANT! The "
PRINTD EXERCISE-MACHINE
PRINTI " has diagnostic frequencies which communicate with each other on frequency 710. Do not bring anything which broadcasts on that frequency within range of the machine!"""
IN? EXERCISE-MACHINE,GYM /?CND13
PRINTI " Strangely, you don't see any "
PRINTD EXERCISE-MACHINE
PRINTR " anywhere in the gym."
?CND13: CRLF
RTRUE
?CCL12: EQUAL? HERE,SHIPPING-ROOM \?CCL16
PRINTR """Always return the forklift to the shipping room when it's not in use! THIS MEANS YOU!"""
?CCL16: EQUAL? HERE,GREASY-STRAW \?CCL18
PRINT RESTAURANT-SIGN-TEXT
CRLF
RTRUE
?CCL18: EQUAL? HERE,TRADING-POST \?CCL20
PRINTR """!!!BEST PRICES IN TOWN!!!
IF YOU DON'T SEE IT ASK FOR IT!
Illegal wares shown by appointment only.
FREZONE (tm) explosive available."""
?CCL20: EQUAL? HERE,PET-STORE \?CCL22
PRINTI """SPECIAL!!! The best pet a lonely spacer could ever hope for!
"
PRINTD BALLOON
PRINTI "s are fascinating critters. Filled with hydrogen, they float freely through the air like small dirigibles.
With their translucent bodies and iridescent skin, they're a beautiful addition to the decor of any living bubble. Docile and friendly, "
PRINTD BALLOON
PRINTI "s are easy to care for, feeding on airborne spores!
Limited supply!! Order yours today!!""
You recall one fact about "
PRINTD BALLOON
PRINTR "s which the sign fails to mention: they propel themselves around by ejecting digestive gasses. This makes them one of the smelliest pets imaginable."
?CCL22: EQUAL? HERE,OPIUM-DEN \?CCL24
PRINTR "The sign is from the government's latest anti-drug crusade. It depicts the president of the Third Galactic Union, her hands crossed across her chest in a defiant pose, with the caption, ""Drugs are a no-no!"" You notice that someone has drawn a mustache on her."
?CCL24: PRINTR """TRADING POST VACUUM STORAGE AREA
Trespassers will be spaced!"""
.FUNCT EQUIPMENT-F
EQUAL? PRSA,V?EXAMINE \?CCL3
EQUAL? HERE,ROBOT-POOL \?CCL6
PRINT ROBOT-POOL-EQUIPMENT-DESC
CRLF
RTRUE
?CCL6: PRINTR "Since this equipment has nothing to do with the filling out or filing of multi-part forms, it's far outside your area of expertise."
?CCL3: EQUAL? PRSA,V?USE \?CCL8
EQUAL? HERE,ROBOT-POOL \?CCL8
PRINTR "Put the form in the slot, you dolt!"
?CCL8: EQUAL? PRSA,V?OFF,V?ON \FALSE
CALL PERFORM,V?EXAMINE,EQUIPMENT
RTRUE
.FUNCT FIXTURES-F
EQUAL? PRSA,V?USE,V?WALK-TO,V?ENTER \?CCL3
PRINTR "This story doesn't go into that sort of detail."
?CCL3: EQUAL? PRSA,V?ON,V?TAKE \FALSE
CALL NOUN-USED,W?SHOWER,FIXTURES
ZERO? STACK /FALSE
CALL PERFORM,V?USE,FIXTURES
RTRUE
.FUNCT HOLE-F
EQUAL? PRSA,V?DRILL-HOLE \?CCL3
EQUAL? PRSO,HOLE /FALSE
?CCL3: EQUAL? PRSA,V?DRILL \?CCL7
EQUAL? PRSO,HOLE \?CCL7
CALL PERFORM,V?DRILL-HOLE,HOLE,WALLS
RTRUE
?CCL7: CALL PRSO-MOBY-VERB?
ZERO? STACK \FALSE
CALL PRSI-MOBY-VERB?
ZERO? STACK \FALSE
CALL CANT-SEE,HOLE
RSTACK
.FUNCT LADDER-F
EQUAL? PRSA,V?CLIMB-UP \?CCL3
CALL DO-WALK,P?UP
RSTACK
?CCL3: EQUAL? PRSA,V?CLIMB-DOWN \FALSE
CALL DO-WALK,P?DOWN
RSTACK
.FUNCT HANDS-F,ACTOR
EQUAL? PRSA,V?APPLAUD \?CCL3
SET 'PRSO,FALSE-VALUE
RFALSE
?CCL3: EQUAL? PRSA,V?SHAKE \?CCL5
CALL FIND-IN,HERE,ACTORBIT,STR?89 >ACTOR
ZERO? ACTOR /?CCL8
CALL PERFORM,V?SHAKE-WITH,HANDS,ACTOR
RTRUE
?CCL8: PRINTR "Pleased to meet you."
?CCL5: EQUAL? PRSA,V?COUNT \?CCL10
CALL NOUN-USED,W?FINGER,HANDS
ZERO? STACK /?CCL13
PRINTI "Ten"
JUMP ?CND11
?CCL13: PRINTI "Two"
?CND11: PRINTR ", as usual."
?CCL10: EQUAL? PRSA,V?CLEAN \?CCL15
PRINTR "Done."
?CCL15: EQUAL? PRSA,V?SHOOT \?CCL17
CALL JIGS-UP,STR?90
RSTACK
?CCL17: EQUAL? PRSA,V?DRILL \?CCL19
PRINTI "Hmmm. Are you trying for a hole in "
PRINTD PRSO
PRINTR " to match the hole in your head?"
?CCL19: EQUAL? PRSA,V?TAKE-WITH \FALSE
EQUAL? PRSI,HANDS \FALSE
CALL PERFORM,V?TAKE,PRSO
RTRUE
.FUNCT TONGUE-F
EQUAL? PRSA,V?RUN-OVER,V?PUT-ON \?CCL3
EQUAL? PRSO,TONGUE \?CCL3
CALL PERFORM,V?TASTE,PRSI
RTRUE
?CCL3: EQUAL? PRSA,V?DRILL \FALSE
CALL HANDS-F
RSTACK
.FUNCT ME-F
EQUAL? PRSA,V?TELL \?CCL3
PRINTI "Talking to yourself is a sign of impending mental collapse."
CRLF
CALL STOP
RSTACK
?CCL3: EQUAL? PRSA,V?DRILL \?CCL5
PRINTR "Why bother? Based on that input, you already have holes in your head!"
?CCL5: EQUAL? PRSA,V?GIVE \?CCL7
EQUAL? PRSI,ME \?CCL7
CALL PERFORM,V?TAKE,PRSO
RTRUE
?CCL7: EQUAL? PRSA,V?SHOW \?CCL11
EQUAL? PRSI,ME \?CCL11
CALL PERFORM,V?EXAMINE,PRSO
RTRUE
?CCL11: EQUAL? PRSA,V?MOVE \?CCL15
CALL V-WALK-AROUND
RSTACK
?CCL15: EQUAL? PRSA,V?SEARCH \?CCL17
CALL V-INVENTORY
RSTACK
?CCL17: EQUAL? PRSA,V?MUNG,V?KILL \?CCL19
EQUAL? PRSO,ME \?CCL19
CALL JIGS-UP,STR?91
RSTACK
?CCL19: EQUAL? PRSA,V?SHOOT \?CCL23
CALL JIGS-UP,STR?92
RSTACK
?CCL23: EQUAL? PRSA,V?WHERE,V?FIND \?CCL25
PRINTI "You're in"
CALL TRPRINT,HERE
RSTACK
?CCL25: EQUAL? PRSA,V?FOLLOW \?CCL27
PRINTR "It would be hard not to."
?CCL27: EQUAL? PRSA,V?EXAMINE \?CCL29
CALL V-DIAGNOSE
RSTACK
?CCL29: EQUAL? PRSA,V?ALARM \?CCL31
PRINTR "You are!"
?CCL31: EQUAL? PRSA,V?TAKE \FALSE
PRINTR "How romantic!"
.FUNCT GRUE-F
EQUAL? PRSA,V?WHAT \?CCL3
PRINTR "Grues are vicious, carnivorous beasts first introduced to Earth by an alien spaceship during the 22nd century. Grues spread throughout the galaxy alongside man. Now extinct on all civilized planets, they still exist in some backwater corners of the galaxy. Their favorite diet is Lieutenants First Class, but their insatiable appetite is tempered by their fear of light."
?CCL3: CALL TOUCHING?,GRUE
ZERO? STACK \?CCL5
EQUAL? PRSA,V?WALK-TO,V?EXAMINE \FALSE
?CCL5: PRINTR "There's no grue in sight, fortunately."
.FUNCT FORM-SLOT-F
EQUAL? PRSA,V?PUT \?CCL3
EQUAL? PRSI,PSEUDO-OBJECT \?CCL3
EQUAL? PRSO,CRUMPLED-FORM \?CCL8
PRINTR "The form's crumpledness prevents it from sliding into the slot."
?CCL8: EQUAL? PRSO,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM \?CCL10
EQUAL? HERE,SPACETRUCK \?CCL10
EQUAL? HERE,SPACETRUCK \?CCL15
CALL BOTH-SEATS-NOT-OCCUPIED
ZERO? STACK /?CCL15
PRINTI "The form is spit back out. "
CALL RECORDING,STR?95
RSTACK
?CCL15: REMOVE PRSO
FSET PRSO,NDESCBIT
PRINT FORM-ACCEPTED
CALL RECORDING,STR?96
RSTACK
?CCL10: EQUAL? PRSO,ROBOT-USE-AUTHORIZATION-FORM \?CCL19
EQUAL? HERE,ROBOT-POOL \?CCL19
REMOVE PRSO
FSET PRSO,NDESCBIT
PRINT FORM-ACCEPTED
CALL RECORDING,STR?97
RSTACK
?CCL19: EQUAL? PRSO,ASSIGNMENT-COMPLETION-FORM \?CCL23
EQUAL? HERE,DECK-TWELVE \?CCL23
PRINT FORM-REJECTED
CALL RECORDING,STR?98
RSTACK
?CCL23: EQUAL? PRSO,VILLAGE-FORM \?CCL27
EQUAL? HERE,SOUTH-CONNECTION,EAST-CONNECTION \?CCL27
ZERO? VILLAGE-FORM-VALIDATED \?CCL32
PRINT FORM-REJECTED
CALL RECORDING,STR?98
RSTACK
?CCL32: ADD SCORE,6 >SCORE
INC 'ROBOT-EVILNESS
FSET IRIS-HATCH,OPENBIT
REMOVE PRSO
FSET PRSO,NDESCBIT
PRINTR "The hatch begins irising open, then sparks and smokes and grinds to a halt. However, it's about half dilated, wide enough to pass through. Beyond, you can see a small, dingy connecting tube, rather than the clean and brightly-lit Sub-Module connector you might have expected."
?CCL27: EQUAL? PRSO,ASSIGNMENT-COMPLETION-FORM,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM,ROBOT-USE-AUTHORIZATION-FORM /?CTR33
EQUAL? PRSO,VILLAGE-FORM \?CCL34
?CTR33: PRINT FORM-REJECTED
CALL RECORDING,STR?99
RSTACK
?CCL34: GETP P?SIZE,PRSO
LESS? STACK,3 \?CCL38
PRINTI "The slot swallows"
CALL TPRINT-PRSO
PRINTR " and then spits it back."
?CCL38: CALL DOESNT-FIT,STR?100
RSTACK
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINT ONLY-BLACKNESS
RTRUE
.FUNCT BOTH-SEATS-NOT-OCCUPIED
IN? PROTAGONIST,PILOT-SEAT \?CCL3
IN? FLOYD,COPILOT-SEAT /FALSE
?CCL3: IN? PROTAGONIST,COPILOT-SEAT \TRUE
IN? FLOYD,PILOT-SEAT /FALSE
RTRUE
.FUNCT KEYPAD-F
EQUAL? PRSA,V?PUSH \FALSE
RANDOM 10
SUB STACK,1 >P-NUMBER
PRINTI "Randomly, you hit "
PRINTN P-NUMBER
PRINTI ". "
CALL PERFORM,V?TYPE,INTNUM
RTRUE
.FUNCT FURNISHING-F
EQUAL? PRSA,V?SEARCH,V?OPEN,V?ENTER /?CTR2
EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \?CCL3
?CTR2: PRINTR "You merely find a few personal items of little interest."
?CCL3: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE
PRINTI "The "
PRINTD PRSI
PRINTI " is such a mess that you can't find a good spot to put"
CALL TRPRINT,PRSO
RSTACK
.FUNCT VILLAGE-F
EQUAL? HERE,SPACETRUCK \?CCL3
EQUAL? SPACETRUCK-COUNTER,4 \?CTR2
EQUAL? COURSE-PICKED,RIGHT-COURSE /?CCL3
?CTR2: CALL CANT-SEE,VILLAGE
RSTACK
?CCL3: EQUAL? PRSA,V?EXIT,V?WALK-TO,V?ENTER /?CTR8
EQUAL? PRSA,V?DISEMBARK,V?LEAVE \?CCL9
?CTR8: CALL V-WALK-AROUND
RSTACK
?CCL9: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,SPACETRUCK \FALSE
PRINTI "The village"
PRINT TANGLE-OF-TUBES
CRLF
RTRUE
.FUNCT BED-F
EQUAL? PRSA,V?WALK-TO \?CCL3
CALL GLOBAL-IN?,BED,HERE
ZERO? STACK \?CCL3
PRINTR "There's no bed here!"
?CCL3: EQUAL? PRSA,V?WALK-TO,V?ENTER \?CCL7
ZERO? STUNNED /?CCL10
CALL YOURE-STUNNED
RSTACK
?CCL10: GRTR? SLEEPY-LEVEL,0 \?CCL12
MOVE PROTAGONIST,BED
CALL QUEUE,I-FALL-ASLEEP,22
CALL DEQUEUE,I-SLEEP-WARNINGS
PRINTR "Ahhh...the bed is soft and comfortable. You should be asleep in short order."
?CCL12: MOVE PROTAGONIST,BED
PRINTR "You are now in bed."
?CCL7: EQUAL? PRSA,V?EXIT,V?STAND,V?DISEMBARK /?PRD16
EQUAL? PRSA,V?DROP \?CCL14
?PRD16: CALL QUEUED?,I-FALL-ASLEEP
ZERO? STACK /?CCL14
PRINTR "But you're so tired and this bed is so comfy!"
?CCL14: EQUAL? PRSA,V?DROP,V?EXIT,V?LEAVE \?CCL20
CALL PERFORM,V?DISEMBARK,BED
RTRUE
?CCL20: EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL22
EQUAL? PRSI,BED \?CCL22
MOVE PRSO,HERE
PRINTI "The "
PRINTD PRSO
PRINTI " bounces off the bed"
PRINT LANDS-ON-FLOOR
CRLF
RTRUE
?CCL22: EQUAL? PRSA,V?LOOK-UNDER \?CCL26
IN? PROTAGONIST,BED \?CCL26
PRINTR "You're IN the bed, so unless you have X-ray vision..."
?CCL26: EQUAL? PRSA,V?LOOK-UNDER \?CCL30
EQUAL? HERE,COMMANDERS-QUARTERS \?CCL30
FSET? VALIDATION-STAMP,TOUCHBIT /?CCL30
FSET VALIDATION-STAMP,TOUCHBIT
MOVE VALIDATION-STAMP,HERE
CALL THIS-IS-IT,VALIDATION-STAMP
PRINTI "You discover a "
PRINTD VALIDATION-STAMP
PRINTR "!"
?CCL30: EQUAL? PRSA,V?SHOOT,V?KILL,V?DRILL \FALSE
PRINTR "That would be a clear case of mattresscide!"
.FUNCT SLEEP-F
EQUAL? PRSA,V?TAKE,V?WALK-TO \FALSE
CALL V-SLEEP
RSTACK
.FUNCT I-SLEEP-WARNINGS
IN? WELDER,HERE \?PRD4
GRTR? SLEEPY-LEVEL,3 /?CCL2
?PRD4: ZERO? STUNNED /?CND1
?CCL2: CALL QUEUE,I-HUNGER-WARNINGS,2
RFALSE
?CND1: INC 'SLEEPY-LEVEL
PRINTI " "
IN? PROTAGONIST,BED \?CCL9
CALL DEQUEUE,I-SLEEP-WARNINGS
CALL QUEUE,I-FALL-ASLEEP,16
PRINTI "You suddenly realize how tired you were and how comfortable the bed is. You should be asleep in no time."
CRLF
JUMP ?CND7
?CCL9: EQUAL? SLEEPY-LEVEL,1 \?CCL11
CALL QUEUE,I-SLEEP-WARNINGS,320
PRINTI "You begin to feel weary. It might be time to think about finding a nice safe place to sleep."
CRLF
JUMP ?CND7
?CCL11: EQUAL? SLEEPY-LEVEL,2 \?CCL13
CALL QUEUE,I-SLEEP-WARNINGS,160
PRINTI "You're really tired now. You'd better find a place to sleep real soon."
CRLF
JUMP ?CND7
?CCL13: EQUAL? SLEEPY-LEVEL,3 \?CCL15
CALL QUEUE,I-SLEEP-WARNINGS,80
PRINTI "If you don't get some sleep soon you'll probably drop."
CRLF
JUMP ?CND7
?CCL15: EQUAL? SLEEPY-LEVEL,4 \?CCL17
CALL QUEUE,I-SLEEP-WARNINGS,40
PRINTI "You can barely keep your eyes open."
CRLF
JUMP ?CND7
?CCL17: EQUAL? HERE,BED \?CCL20
PRINTI "You slowly sink into a deep and blissful sleep."
JUMP ?CND18
?CCL20: CALL GLOBAL-IN?,BED,HERE
ZERO? STACK /?CCL22
MOVE PROTAGONIST,BED
PRINTI "You climb into one of the beds and immediately fall asleep."
JUMP ?CND18
?CCL22: PRINT YOU-CANT
PRINTI "stay awake a moment longer. You drop "
IN? PROTAGONIST,HERE \?CND23
FSET? HERE,WEIGHTLESSBIT /?CND23
PRINTI "to the deck and fall "
?CND23: PRINTI "into a deep but fitful sleep."
?CND18: CALL WAKING-UP
?CND7: IN? PROTAGONIST,BED /FALSE
CALL STOP
RSTACK
.FUNCT I-FALL-ASLEEP
IN? WELDER,HERE \?CND1
CALL QUEUE,I-FALL-ASLEEP,2
?CND1: PRINTI " You slowly sink into a deep sleep."
CALL DEQUEUE,I-FALL-ASLEEP
CALL WAKING-UP
RSTACK
.FUNCT WAKING-UP,X,N,?TMP1
CRLF
CRLF
IN? PROTAGONIST,BED /?CND1
MOVE PROTAGONIST,HERE
?CND1: FSET? SPACESUIT,WORNBIT \?CCL5
CALL JIGS-UP,STR?107
JUMP ?CND3
?CCL5: EQUAL? COURSE-PICKED,RIGHT-COURSE /?CCL7
EQUAL? HERE,SPACETRUCK \?CCL7
PRINTI "You wake up gasping for air! The "
PRINTD SPACETRUCK-OBJECT
CALL RUNNING?,I-SPACETRUCK
ZERO? STACK /?CCL12
PRINTI " is dead in uncharted space and it"
JUMP ?CND10
?CCL12: PRINTC 39
?CND10: PRINTI "s oxygen is running out!"
CRLF
CALL I-SUFFOCATE
JUMP ?CND3
?CCL7: EQUAL? SPACETRUCK-COUNTER,-1 \?CCL14
PRINTI "A clanging noise wakes you up, and you slowly become aware that you are in the Duffy's brig, and furthermore, you are wearing the uniform of an Ensign Ninth Class! You trace the clanging noise to a pipe in your cell.
Placing your ear against the pipe, you hear, ""Psst! Grapevine news! Some dumb kripping "
PRINT LFC
PRINTI " fell asleep on Deck Twelve in the middle of some big assignment! The poor trot-head's been broken to Ensign Ninth, and there's talk of a court-martial!""
Sure enough, the next morning you are led in front of a firing squad. Moral: don't screw up vital assignments like picking up "
PRINT FORM-NAME
CALL JIGS-UP,STR?9
JUMP ?CND3
?CCL14: IN? PROTAGONIST,HERE \?PRD18
FSET? DOCKING-BAY-2,TOUCHBIT \?PRD18
MUL DAY,40 >?TMP1
RANDOM 100
LESS? ?TMP1,STACK \?CTR15
?PRD18: CALL ULTIMATELY-IN?,OSTRICH-NIP
ZERO? STACK /?PRD22
IN? OSTRICH,HERE /?CTR15
?PRD22: IN? EXPLOSIVE,DRILLED-HOLE \?CCL16
?CTR15: CALL JIGS-UP,STR?108
JUMP ?CND3
?CCL16: ZERO? EXPLOSIVE-CONNECTED /?CCL26
ZERO? TIMER-CONNECTED /?CCL26
IN? DIODE-M,DETONATOR \?CCL26
GRTR? TIMER-SETTING,0 \?CCL26
CALL META-LOC,EXPLOSIVE
EQUAL? STACK,HERE \?CCL33
CALL JIGS-UP,STR?109
JUMP ?CND3
?CCL33: CALL DESTROY-EXPLOSIVE-CONT
REMOVE TIMER
REMOVE EXPLOSIVE
REMOVE DETONATOR
JUMP ?CND3
?CCL26: RANDOM 100
LESS? 60,STACK /?CND3
PRINTI "..."
CALL PICK-ONE,DREAMS
PRINT STACK
PRINT ELLIPSIS
?CND3: INC 'DAY
INC 'ROBOT-EVILNESS
CALL I-ROBOT-EVILNESS
SET 'TIMER-SETTING,0
CALL DEQUEUE,I-TIMER
SET 'SLEEPY-LEVEL,0
SET 'SUIT-PRESSED,FALSE-VALUE
SET 'FLOYD-ANGUISHED,FALSE-VALUE
RANDOM 80
ADD 1600,STACK >INTERNAL-MOVES
GRTR? DAY,2 \?CCL37
SET 'MOVES,9947
JUMP ?CND35
?CCL37: CALL QUEUE,I-MESSAGE,943
ADD SCORE,3 >SCORE
SET 'MOVES,INTERNAL-MOVES
?CND35: FCLEAR AUTO-DOOR,TOUCHBIT
CALL QUEUE,I-SLEEP-WARNINGS,5900
CALL ULTIMATELY-IN?,EXPLOSIVE,VACUUM-STORAGE
ZERO? STACK \?CND38
MOVE EXPLOSIVE,DECK-TWELVE
CALL REMOVE-CAREFULLY,EXPLOSIVE
CALL DEQUEUE,I-EXPLOSIVE-MELT
?CND38: FSET? HEADLAMP,ONBIT \?CND40
FCLEAR HEADLAMP,ACTIVEBIT
FCLEAR HEADLAMP,ONBIT
SET 'HEADLAMP-COUNTER,0
?CND40: CALL RUNNING?,I-LOG-READER
ZERO? STACK /?CND42
REMOVE LOG-READER
CALL DEQUEUE,I-LOG-READER
FCLEAR COMMANDERS-OFFICE,TOUCHBIT
?CND42: GRTR? SOUP-WARMTH,0 \?CND44
FSET? THERMOS,OPENBIT \?CCL48
SET 'SOUP-WARMTH,0
JUMP ?CND44
?CCL48: SUB SOUP-WARMTH,30 >SOUP-WARMTH
?CND44: FSET OSTRICH,TOUCHBIT
CALL ROB,PROTAGONIST,HERE
USL
PRINTI "***** NOVEM "
ADD DAY,3
PRINTN STACK
PRINTI ", 11349 *****"
CRLF
CRLF
PRINTI "You awake "
ZERO? LIT \?CCL51
PRINTI "in darkness."
JUMP ?CND49
?CCL51: CALL QUEUED?,I-LIGHTS-OUT
ZERO? STACK /?CCL53
CALL DEQUEUE,I-LIGHTS-OUT
CALL I-LIGHTS-OUT,TRUE-VALUE
PRINTI "slowly, aware that something has changed. Aha! The lights have all gone out while you slept!"
JUMP ?CND49
?CCL53: LOC PROTAGONIST
EQUAL? STACK,BED,PILOT-SEAT,COPILOT-SEAT \?CCL55
PRINTI "feeling refreshed and ready to face anything this new day might care to throw at you."
JUMP ?CND49
?CCL55: PRINTI "and slowly stand up, feeling stiff from your uncomfortable night's sleep."
?CND49: EQUAL? DAY,4 \?CND56
FSET? SAFE,OPENBIT /?CCL60
CALL QUEUE,I-LIGHTS-OUT,177
JUMP ?CND56
?CCL60: CALL QUEUED?,I-ANNOUNCEMENT
ZERO? STACK \?CND56
CALL QUEUE,I-ANNOUNCEMENT,383
?CND56: GRTR? HUNGER-LEVEL,0 \?CCL64
SET 'HUNGER-LEVEL,3
CALL QUEUE,I-HUNGER-WARNINGS,200
PRINTI " You're also incredibly famished. Better get some breakfast!"
JUMP ?CND62
?CCL64: CALL QUEUE,I-HUNGER-WARNINGS,400
?CND62: CRLF
CALL RUNNING?,I-SPACETRUCK
ZERO? STACK /?CND65
EQUAL? COURSE-PICKED,RIGHT-COURSE \?CND65
CALL QUEUE,I-WELDER,-1
CALL DEQUEUE,I-SPACETRUCK
FCLEAR SPACETRUCK,WEIGHTLESSBIT
ADD SCORE,5 >SCORE
SET 'SPACETRUCK-COUNTER,5
PRINTI " You notice that, while you slept, the truck has docked itself in one of the space station's docking bays."
CRLF
?CND65: EQUAL? DAY,3 \?CND69
FCLEAR ELEVATOR,WEIGHTLESSBIT
FSET EXERCISE-MACHINE,TOUCHBIT
MOVE EXERCISE-MACHINE,COMPUTER-CONTROL
CALL ROB,EXERCISE-MACHINE,GYM
FSET? CHRONOMETER,WORNBIT \?CND69
PRINTI " "
CALL PERFORM,V?EXAMINE,CHRONOMETER
?CND69: FSET? FLOYD,ACTIVEBIT \?CND73
IN? FLOYD,FACTORY /?CND73
EQUAL? HERE,AIRLOCK /?CND73
SET 'FLOYD-SPOKE,TRUE-VALUE
PRINTI " Floyd "
GRTR? ROBOT-EVILNESS,13 \?CCL80
PRINTI "is rudely kicking you"
IN? PROTAGONIST,BED \?CND81
PRINTI "r mattress"
?CND81: PRINTI ". ""Trot it! Will you kripping wake up already? Floyd getting bored!"""
CRLF
JUMP ?CND78
?CCL80: PRINTI "bounces impatiently at "
IN? PROTAGONIST,BED \?CCL85
PRINTI "the foot of the bed"
JUMP ?CND83
?CCL85: PRINTI "your side"
?CND83: ZERO? PLATO-INTRODUCED /?CND86
ZERO? PLATO-ATTACK-COUNTER \?CND86
MOVE PLATO,HERE
PRINTI ". Plato is nearby, leafing through his book"
?CND86: ZERO? PLATO-INTRODUCED \?CCL92
PRINTI ", along with a slightly older-looking robot. ""Wake up and meet Floyd's new friend,"" says Floyd with unbounded exuberance and a wide grin."
CRLF
CALL I-PLATO,TRUE-VALUE
JUMP ?CND78
?CCL92: PRINTI ". ""About time you woke up, you lazy "
GRTR? ROBOT-EVILNESS,9 \?CCL95
PRINTI "slob!"" says Floyd. ""It's getting pretty trotting dull around he"
JUMP ?CND93
?CCL95: PRINTI "bones!"" says Floyd. ""Let's explore around some mo"
?CND93: PRINTI "re!"""
CRLF
?CND78: MOVE FLOYD,HERE
?CND73: ZERO? LIT /?CND96
CRLF
CALL V-LOOK
?CND96: CALL STOP
RSTACK
.FUNCT I-HUNGER-WARNINGS
ZERO? STUNNED /?CND1
CALL QUEUE,I-HUNGER-WARNINGS,2
RFALSE
?CND1: INC 'HUNGER-LEVEL
PRINTI " "
EQUAL? HUNGER-LEVEL,1 \?CCL5
CALL QUEUE,I-HUNGER-WARNINGS,450
PRINTI "A growl from your stomach warns that you're getting pretty hungry and thirsty."
CRLF
JUMP ?CND3
?CCL5: EQUAL? HUNGER-LEVEL,2 \?CCL7
CALL QUEUE,I-HUNGER-WARNINGS,300
PRINTI "You're now really ravenous and your lips are quite parched."
CRLF
JUMP ?CND3
?CCL7: EQUAL? HUNGER-LEVEL,3 \?CCL9
CALL QUEUE,I-HUNGER-WARNINGS,150
PRINTI "You're starting to feel faint from lack of food and liquid."
CRLF
JUMP ?CND3
?CCL9: EQUAL? HUNGER-LEVEL,4 \?CCL11
CALL QUEUE,I-HUNGER-WARNINGS,150
PRINTI "If you don't eat or drink something in a few millichrons, you'll probably pass out."
CRLF
JUMP ?CND3
?CCL11: EQUAL? HUNGER-LEVEL,5 \?CND3
CALL JIGS-UP,STR?110
?CND3: CALL STOP
RSTACK
.FUNCT WELDER-F
EQUAL? PRSA,V?EXAMINE \?CCL3
EQUAL? WELDER-COUNTER,1 \?CCL6
PRINTI "This welder, which is marked ""Welder Number "
GET WELDER-TABLE,WELDER-TABLE-POINTER
PRINTN STACK
PRINTR ","" seems to be moving purposefully toward you, its welding extensions quivering with...excitement?"
?CCL6: EQUAL? WELDER-COUNTER,2 \?CCL8
PRINTR "There definitely seems to be something menacing about its behavior."
?CCL8: PRINTR "The welder is now almost upon you!"
?CCL3: EQUAL? PRSA,V?WHAT \?CCL10
PRINTI "A "
PRINTD WELDER
PRINTI " is a very simple machine which repairs any leaks or holes in the hull of any sort of space habitat. Because of the potentially catastrophic effects of a break in the integrity of a hull on the habitat's air supply, "
PRINTD WELDER
PRINTR "s are kept active at all times, roaming around with their sensing devices alert for the tiniest leak."
?CCL10: EQUAL? PRSA,V?SHOOT \?CCL12
REMOVE WELDER
GET WELDER-TABLE,NUMBER-OF-WELDERS
PUT WELDER-TABLE,WELDER-TABLE-POINTER,STACK
DEC 'NUMBER-OF-WELDERS
SET 'WELDER-COUNTER,0
ZERO? NUMBER-OF-WELDERS \?CND13
CALL DEQUEUE,I-WELDER
?CND13: PRINTI "The welder is enveloped by red-hot plasma rays. It glows ever brighter in the heat of the rays, seems to shimmer like a mirage, and then suddenly vanishes! A wave of hot vapor pushes you backwards."
CALL VISIBLE?,EXPLOSIVE
ZERO? STACK /?CND15
PRINTI " As the heat wave hits the explosive, it "
PRINT SUBLIMES-INTO-FREZONE
CALL DEQUEUE,I-EXPLOSIVE-MELT
CALL REMOVE-CAREFULLY,EXPLOSIVE
?CND15: IN? OSTRICH,HERE \?CCL19
FSET? OSTRICH,TOUCHBIT \?CCL19
PRINTC 32
CALL PERFORM,V?SCARE,OSTRICH
RSTACK
?CCL19: CRLF
RTRUE
?CCL12: EQUAL? PRSA,V?OFF \?CCL23
PRINTR "There's no apparent on-off switch."
?CCL23: EQUAL? PRSA,V?ON \?CCL25
PRINTR "It is!"
?CCL25: EQUAL? PRSA,V?MUNG,V?KILL \FALSE
PRINTR "It's doubtful that you could even make a dent in the welder."
.FUNCT TOUCHING?,THING
EQUAL? PRSO,THING \?CCL3
EQUAL? PRSA,V?TAKE,V?TOUCH,V?SHAKE /TRUE
EQUAL? PRSA,V?CLEAN,V?KISS,V?ENTER /TRUE
EQUAL? PRSA,V?PUSH,V?CLOSE,V?LOOK-UNDER /TRUE
EQUAL? PRSA,V?MOVE,V?OPEN,V?KNOCK /TRUE
EQUAL? PRSA,V?SET,V?SHAKE,V?RAISE /TRUE
EQUAL? PRSA,V?UNLOCK,V?LOCK,V?HUG /TRUE
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-DOWN,V?CLIMB-ON /TRUE
EQUAL? PRSA,V?ON,V?OFF,V?THROW /TRUE
EQUAL? PRSA,V?TASTE,V?BITE,V?TICKLE /TRUE
EQUAL? PRSA,V?LOOK-INSIDE,V?STAND-ON,V?TIE /TRUE
EQUAL? PRSA,V?MUNG,V?KICK,V?KILL /TRUE
EQUAL? PRSA,V?KNOCK,V?CUT,V?PUSH /TRUE
EQUAL? PRSA,V?SEARCH /TRUE
?CCL3: EQUAL? PRSI,THING \FALSE
EQUAL? PRSA,V?PUT-ON,V?PUT,V?GIVE /TRUE
RFALSE
.FUNCT CANT-SEE,OBJ
SET 'P-WON,FALSE-VALUE
PRINT YOU-CANT
PRINTI "see"
EQUAL? PRSO,OBJ \?CCL5
GET P-NAMW,0
JUMP ?CND3
?CCL5: GET P-NAMW,1
?CND3: CALL NAME?,STACK
ZERO? STACK \?CND1
PRINTI " any"
?CND1: EQUAL? OBJ,PRSI \?CCL8
CALL PRSI-PRINT
JUMP ?CND6
?CCL8: CALL PRSO-PRINT
?CND6: PRINTI " here."
CRLF
CALL STOP
RSTACK
.FUNCT CANT-VERB-A-PRSO,STRING
PRINT YOU-CANT
PRINT STRING
CALL APRINT,PRSO
PRINTR "!"
.FUNCT TELL-HIT-HEAD
PRINTI "You hit your head against"
CALL TPRINT-PRSO
PRINTR " as you attempt this."
.FUNCT REMOVE-CAREFULLY,OBJ,ALSO=0
ZERO? TIMER-CONNECTED /?CCL3
EQUAL? OBJ,TIMER,DETONATOR \?CCL3
SET 'TIMER-CONNECTED,FALSE-VALUE
SET 'ALSO,TRUE-VALUE
CALL VISIBLE?,TIMER
ZERO? STACK /?CND1
PRINTI " (The timer is"
PRINT NO-LONGER-ATTACHED
JUMP ?CND1
?CCL3: ZERO? EXPLOSIVE-CONNECTED /?CND1
EQUAL? OBJ,EXPLOSIVE,DETONATOR \?CND1
SET 'EXPLOSIVE-CONNECTED,FALSE-VALUE
CALL VISIBLE?,EXPLOSIVE
ZERO? STACK /?CND1
PRINTI " (The explosive is"
ZERO? ALSO /?CND13
PRINTI " also"
?CND13: PRINT NO-LONGER-ATTACHED
?CND1: IN? EXPLOSIVE,THERMOS \?CND15
FSET? THERMOS,OPENBIT /?CND15
SET 'THERMOS-FILLED-WITH-GAS,TRUE-VALUE
?CND15: FSET OBJ,TOUCHBIT
FCLEAR OBJ,TRYTAKEBIT
REMOVE OBJ
RTRUE
.FUNCT NOUN-USED,TEST-NOUN,OBJ
EQUAL? PRSO,OBJ \?CCL3
GET P-NAMW,0
EQUAL? STACK,TEST-NOUN /TRUE
?CCL3: EQUAL? PRSI,OBJ \FALSE
GET P-NAMW,1
EQUAL? STACK,TEST-NOUN /TRUE
RFALSE
.FUNCT ADJ-USED,TEST-ADJ,OBJ
EQUAL? PRSO,OBJ \?CCL3
GET P-ADJW,0
EQUAL? TEST-ADJ,STACK /TRUE
?CCL3: EQUAL? PRSI,OBJ \FALSE
GET P-ADJW,1
EQUAL? TEST-ADJ,STACK /TRUE
RFALSE
.FUNCT OPEN-CLOSED,OBJ
FSET? OBJ,OPENBIT \?CCL3
PRINTI "open"
RTRUE
?CCL3: PRINTI "closed"
RTRUE
.FUNCT WEE
SET 'AWAITING-REPLY,1
ADD C-ELAPSED,2
CALL QUEUE,I-REPLY,STACK
PRINTR "Wasn't that fun?"
.FUNCT CANT-REACH,OBJ
PRINT YOU-CANT
PRINTI "reach"
CALL TPRINT,OBJ
ZERO? HANGING-IN-AIR /?CCL3
PRINTI " while you're hanging way up here"
JUMP ?CND1
?CCL3: IN? PROTAGONIST,HERE /?CCL5
PRINTI " from"
LOC PROTAGONIST
CALL TPRINT,STACK
JUMP ?CND1
?CCL5: EQUAL? PRSO,HELEN,REX,FLOYD \?CND1
EQUAL? PRSO,ROBOT-PICKED /?CND1
PRINTI " from outside the bin"
?CND1: PRINT PERIOD-CR
ZERO? P-MULT \TRUE
CALL STOP
RSTACK
.FUNCT DO-FIRST,STRING,OBJ=0
PRINT YOULL-HAVE-TO
PRINT STRING
ZERO? OBJ /?CND1
CALL TPRINT,OBJ
?CND1: PRINTI " first."
CRLF
ZERO? P-MULT \TRUE
RETURN 8
.FUNCT DOESNT-FIT,STRING
PRINTI "Unsurprisingly,"
CALL TPRINT-PRSO
PRINTI " doesn't fit the "
PRINT STRING
PRINT PERIOD-CR
RTRUE
.FUNCT NOT-IN
PRINTI "But"
CALL TPRINT-PRSO
PRINTI " isn't "
FSET? PRSI,ACTORBIT \?CCL3
PRINTI "being held by"
JUMP ?CND1
?CCL3: FSET? PRSI,SURFACEBIT \?CCL5
PRINTI "on"
JUMP ?CND1
?CCL5: PRINTI "in"
?CND1: CALL TRPRINT,PRSI
RSTACK
.FUNCT CANT-USE-THAT-WAY,STRING
PRINTC 91
PRINT YOU-CANT
PRINTI "use "
PRINT STRING
PRINTR " that way.]"
.FUNCT RECOGNIZE
SET 'P-WON,FALSE-VALUE
PRINTR "[That sentence isn't one I recognize.]"
.FUNCT PRONOUN
EQUAL? PRSO,ME \?CCL3
PRINTI "You"
RTRUE
?CCL3: FSET? PRSO,PLURALBIT \?CCL5
PRINTI "They"
RTRUE
?CCL5: FSET? PRSO,ACTORBIT \?CCL7
PRINTI "He"
RTRUE
?CCL7: PRINTI "It"
RTRUE
.FUNCT REFERRING,HIM-HER=0
PRINTI "I don't see wh"
ZERO? HIM-HER /?CCL3
PRINTC 111
JUMP ?CND1
?CCL3: PRINTI "at"
?CND1: PRINTR " you're referring to."
.FUNCT ANTI-LITTER,OBJ
REMOVE OBJ
PRINTI ". The "
EQUAL? OBJ,LEASH \?CCL3
PRINTI "leash"
JUMP ?CND1
?CCL3: PRINTI "cup"
?CND1: PRINTI " instantly vaporizes, part of the galactic anti-litter program."
EQUAL? OBJ,LEASH /TRUE
CRLF
RTRUE
.FUNCT MESS,STRING
PRINTI "You create a "
PRINT STRING
PRINTI "ish mess. In the wink of an eye, an army of common Cassiopeian cockroaches swarms out of the ""woodwork,"" devours the "
PRINT STRING
PRINTI ", and return to their hidden recesses. You spend a moment pondering the competence of the station's Extermination Officer"
RTRUE
.ENDI