mirror of
https://github.com/historicalsource/stationfall
synced 2024-04-30 07:59:24 +03:00
1219 lines
32 KiB
Plaintext
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
|