Revision 107

This commit is contained in:
historicalsource 2019-04-14 16:11:30 -04:00
parent 24f2323694
commit 43e39b2ba0
23 changed files with 5190 additions and 4364 deletions

View file

@ -6,63 +6,68 @@
.FUNCT INTNUM-F
CALL NOUN-USED,W?ONE,INTNUM
ZERO? STACK \?PRD5
CALL NOUN-USED,W?TWO,INTNUM
ZERO? STACK \?PRD5
CALL NOUN-USED,W?THREE,INTNUM
CALL ADJ-USED,A?BIN,INTNUM
ZERO? STACK /?CCL3
?PRD5: CALL GLOBAL-IN?,KEYPAD,HERE
ZERO? STACK /?CCL3
EQUAL? PRSA,V?TYPE,V?PUSH \?CCL3
PRINTR "[Use numerals: for example, TYPE 5 rather than TYPE FIVE.]"
?CCL3: EQUAL? PRSA,V?ON,V?SHOOT,V?EXAMINE /?PRD13
EQUAL? PRSA,V?MUNG,V?KILL,V?OFF \?CCL11
?PRD13: GET WELDER-TABLE,WELDER-TABLE-POINTER
EQUAL? STACK,P-NUMBER \?CCL11
IN? WELDER,HERE \?CCL11
EQUAL? PRSO,INTNUM \?CCL19
CALL PERFORM-PRSA,WELDER,PRSI
RSTACK
?CCL19: CALL PERFORM-PRSA,PRSO,WELDER
RSTACK
?CCL11: EQUAL? PRSA,V?ENTER \?PRD23
EQUAL? P-PRSA-WORD,W?ENTER \?PRD23
CALL GLOBAL-IN?,KEYPAD,HERE
ZERO? STACK \?CTR20
?PRD23: EQUAL? PRSA,V?PUSH \?CCL21
CALL GLOBAL-IN?,KEYPAD,HERE
ZERO? STACK /?CCL21
?CTR20: CALL PERFORM,V?TYPE,INTNUM
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
?CCL21: EQUAL? PRSA,V?SET \?CCL30
ZERO? PRSI \?CCL30
EQUAL? HERE,COMMANDERS-QUARTERS \?CCL30
EQUAL? P-NUMBER,DIAL-SETTING \?CCL36
?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
?CCL36: GRTR? P-NUMBER,8000 \?CCL38
PRINTR "The dial only goes up to 8000."
?CCL38: SET 'DIAL-SETTING,P-NUMBER
?CCL40: GRTR? P-NUMBER,8000 \?CCL42
PRINTR "The dial goes up to only 8000."
?CCL42: SET 'DIAL-SETTING,P-NUMBER
PRINTR """Click."""
?CCL30: EQUAL? PRSA,V?WAIT-FOR \?CCL40
GRTR? P-NUMBER,40 \?CCL43
?CCL34: EQUAL? PRSA,V?WAIT-FOR \?CCL44
GRTR? P-NUMBER,40 \?CCL47
PRINT TOO-LONG-TO-WAIT
RTRUE
?CCL43: CALL V-WAIT
?CCL47: CALL V-WAIT
RSTACK
?CCL40: EQUAL? PRSA,V?WAIT-UNTIL \?CCL45
GRTR? P-NUMBER,INTERNAL-MOVES \?CCL48
?CCL44: EQUAL? PRSA,V?WAIT-UNTIL \?CCL49
GRTR? P-NUMBER,INTERNAL-MOVES \?CCL52
SUB P-NUMBER,INTERNAL-MOVES
LESS? STACK,41 \?CCL48
LESS? STACK,41 \?CCL52
CALL V-WAIT
RSTACK
?CCL48: PRINT TOO-LONG-TO-WAIT
?CCL52: PRINT TOO-LONG-TO-WAIT
RTRUE
?CCL45: CALL TOUCHING?,INTNUM
ZERO? STACK \?CCL52
?CCL49: CALL TOUCHING?,INTNUM
ZERO? STACK \?CCL56
EQUAL? PRSA,V?SHOOT \FALSE
?CCL52: PRINT HUH
?CCL56: PRINT HUH
RTRUE
@ -129,41 +134,26 @@
.FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ
CALL MOBY-FIND,TBL >M-F
ZERO? DEBUG /?CND1
PRINTI "[Found "
PRINTN M-F
PRINTI " obj]"
CRLF
?CND1: EQUAL? 1,M-F \?CCL5
ZERO? DEBUG /?CND6
PRINTI "[Namely: "
PRINTD P-MOBY-FOUND
PRINTC 93
CRLF
?CND6: ZERO? PRSO? /?CCL10
EQUAL? 1,M-F \?CCL3
ZERO? PRSO? /?CCL6
SET 'PRSO,P-MOBY-FOUND
CALL THIS-IS-IT,PRSO
RFALSE
?CCL10: SET 'PRSI,P-MOBY-FOUND
?CCL6: SET 'PRSI,P-MOBY-FOUND
RFALSE
?CCL5: LESS? 1,M-F \?CCL12
?CCL3: LESS? 1,M-F \?CCL8
GET TBL,1 >OBJ
GETP OBJ,P?GENERIC
CALL STACK >OBJ
ZERO? OBJ /?CCL12
ZERO? DEBUG /?CND15
PRINTI "[Generic: "
PRINTD OBJ
PRINTC 93
CRLF
?CND15: EQUAL? OBJ,NOT-HERE-OBJECT /TRUE
ZERO? PRSO? /?CCL21
ZERO? OBJ /?CCL8
EQUAL? OBJ,NOT-HERE-OBJECT /TRUE
ZERO? PRSO? /?CCL15
SET 'PRSO,OBJ
CALL THIS-IS-IT,PRSO
RFALSE
?CCL21: SET 'PRSI,OBJ
?CCL15: SET 'PRSI,OBJ
RFALSE
?CCL12: RETURN NOT-HERE-OBJECT
?CCL8: RETURN NOT-HERE-OBJECT
.FUNCT NOT-HERE-PRINT,PRSO?,?TMP1
@ -188,12 +178,24 @@
.FUNCT GROUND-F
EQUAL? PRSA,V?ENTER,V?CLIMB-ON \?CCL3
SET 'C-ELAPSED,31
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?LOOK-UNDER \?CCL5
?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
?CCL5: EQUAL? PRSA,V?LEAVE \FALSE
?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
@ -209,15 +211,20 @@
.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 \?CCL7
EQUAL? HERE,DOME \?CCL7
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL12
EQUAL? HERE,DOME \?CCL12
PRINT DOME-DESC
CRLF
RTRUE
?CCL7: EQUAL? PRSA,V?LOOK-UNDER \FALSE
?CCL12: EQUAL? PRSA,V?LOOK-UNDER \FALSE
CALL PERFORM,V?LOOK
RTRUE
@ -246,7 +253,7 @@
CRLF
RTRUE
?CCL19: EQUAL? HERE,GREASY-STRAW \?CCL21
IN? NECTAR,LOCAL-GLOBALS \?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!"
@ -277,7 +284,9 @@
PRINTR "You see a large cargo bay."
?CCL14: EQUAL? SPACETRUCK-COUNTER,4 \?CCL16
EQUAL? COURSE-PICKED,RIGHT-COURSE \?CCL16
PRINTR " 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, is a tangle of tubes and space bubbles and derelict rockets. These form a ""village,"" the sort of seedy, unauthorized village that frequently collects around a space station."
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
@ -388,7 +397,7 @@ FREZONE (tm) explosive available."""
SET 'PRSO,FALSE-VALUE
RFALSE
?CCL3: EQUAL? PRSA,V?SHAKE \?CCL5
CALL FIND-IN,HERE,ACTORBIT,STR?87 >ACTOR
CALL FIND-IN,HERE,ACTORBIT,STR?89 >ACTOR
ZERO? ACTOR /?CCL8
CALL PERFORM,V?SHAKE-WITH,HANDS,ACTOR
RTRUE
@ -403,19 +412,26 @@ FREZONE (tm) explosive available."""
?CCL10: EQUAL? PRSA,V?CLEAN \?CCL15
PRINTR "Done."
?CCL15: EQUAL? PRSA,V?SHOOT \?CCL17
CALL JIGS-UP,STR?88
CALL JIGS-UP,STR?90
RSTACK
?CCL17: EQUAL? PRSA,V?TAKE-WITH \FALSE
?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 \FALSE
EQUAL? PRSO,TONGUE \FALSE
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
@ -442,10 +458,10 @@ FREZONE (tm) explosive available."""
RSTACK
?CCL17: EQUAL? PRSA,V?MUNG,V?KILL \?CCL19
EQUAL? PRSO,ME \?CCL19
CALL JIGS-UP,STR?89
CALL JIGS-UP,STR?91
RSTACK
?CCL19: EQUAL? PRSA,V?SHOOT \?CCL23
CALL JIGS-UP,STR?90
CALL JIGS-UP,STR?92
RSTACK
?CCL23: EQUAL? PRSA,V?WHERE,V?FIND \?CCL25
PRINTI "You're in"
@ -482,30 +498,30 @@ FREZONE (tm) explosive available."""
CALL BOTH-SEATS-NOT-OCCUPIED
ZERO? STACK /?CCL15
PRINTI "The form is spit back out. "
CALL RECORDING,STR?93
CALL RECORDING,STR?95
RSTACK
?CCL15: REMOVE PRSO
FSET PRSO,NDESCBIT
PRINT FORM-ACCEPTED
CALL RECORDING,STR?94
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?95
CALL RECORDING,STR?97
RSTACK
?CCL19: EQUAL? PRSO,ASSIGNMENT-COMPLETION-FORM \?CCL23
EQUAL? HERE,DECK-TWELVE \?CCL23
PRINT FORM-REJECTED
CALL RECORDING,STR?96
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?96
CALL RECORDING,STR?98
RSTACK
?CCL32: ADD SCORE,6 >SCORE
INC 'ROBOT-EVILNESS
@ -516,14 +532,14 @@ FREZONE (tm) explosive available."""
?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?97
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?98
?CCL38: CALL DOESNT-FIT,STR?100
RSTACK
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINT ONLY-BLACKNESS
@ -534,7 +550,7 @@ FREZONE (tm) explosive available."""
IN? PROTAGONIST,PILOT-SEAT \?CCL3
IN? FLOYD,COPILOT-SEAT /FALSE
?CCL3: IN? PROTAGONIST,COPILOT-SEAT \TRUE
IN? FLOYD,COPILOT-SEAT /FALSE
IN? FLOYD,PILOT-SEAT /FALSE
RTRUE
@ -550,8 +566,8 @@ FREZONE (tm) explosive available."""
.FUNCT FURNISHING-F
EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH,V?OPEN /?CTR2
EQUAL? PRSA,V?EXAMINE \?CCL3
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 "
@ -561,29 +577,50 @@ FREZONE (tm) explosive available."""
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
GRTR? SLEEPY-LEVEL,0 \?CCL10
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."
?CCL10: MOVE PROTAGONIST,BED
?CCL12: MOVE PROTAGONIST,BED
PRINTR "You are now in bed."
?CCL7: EQUAL? PRSA,V?EXIT,V?STAND,V?DISEMBARK /?PRD14
EQUAL? PRSA,V?DROP \?CCL12
?PRD14: CALL QUEUED?,I-FALL-ASLEEP
ZERO? STACK /?CCL12
?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!"
?CCL12: EQUAL? PRSA,V?DROP,V?EXIT,V?LEAVE \?CCL18
?CCL14: EQUAL? PRSA,V?DROP,V?EXIT,V?LEAVE \?CCL20
CALL PERFORM,V?DISEMBARK,BED
RTRUE
?CCL18: EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL20
EQUAL? PRSI,BED \?CCL20
?CCL20: EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL22
EQUAL? PRSI,BED \?CCL22
MOVE PRSO,HERE
PRINTI "The "
PRINTD PRSO
@ -591,19 +628,19 @@ FREZONE (tm) explosive available."""
PRINT LANDS-ON-FLOOR
CRLF
RTRUE
?CCL20: EQUAL? PRSA,V?LOOK-UNDER \?CCL24
IN? PROTAGONIST,BED \?CCL24
?CCL22: EQUAL? PRSA,V?LOOK-UNDER \?CCL26
IN? PROTAGONIST,BED \?CCL26
PRINTR "You're IN the bed, so unless you have X-ray vision..."
?CCL24: EQUAL? PRSA,V?LOOK-UNDER \?CCL28
EQUAL? HERE,COMMANDERS-QUARTERS \?CCL28
FSET? VALIDATION-STAMP,TOUCHBIT /?CCL28
?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 "!"
?CCL28: EQUAL? PRSA,V?SHOOT,V?KILL,V?DRILL \FALSE
?CCL30: EQUAL? PRSA,V?SHOOT,V?KILL,V?DRILL \FALSE
PRINTR "That would be a clear case of mattresscide!"
@ -616,43 +653,54 @@ FREZONE (tm) explosive available."""
.FUNCT I-SLEEP-WARNINGS
IN? WELDER,HERE \?PRD4
GRTR? SLEEPY-LEVEL,3 /?CCL2
?PRD4: GRTR? PLATO-ATTACK-COUNTER,0 \?CND1
IN? PLATO,HERE \?CND1
?PRD4: ZERO? STUNNED /?CND1
?CCL2: CALL QUEUE,I-HUNGER-WARNINGS,2
RFALSE
?CND1: INC 'SLEEPY-LEVEL
PRINTI " "
IN? PROTAGONIST,BED \?CCL11
IN? PROTAGONIST,BED \?CCL9
CALL DEQUEUE,I-SLEEP-WARNINGS
CALL QUEUE,I-FALL-ASLEEP,16
PRINTR "You suddenly realize how tired you were and how comfortable the bed is. You should be asleep in no time."
?CCL11: EQUAL? SLEEPY-LEVEL,1 \?CCL13
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
PRINTR "You begin to feel weary. It might be time to think about finding a nice safe place to sleep."
?CCL13: EQUAL? SLEEPY-LEVEL,2 \?CCL15
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
PRINTR "You're really tired now. You'd better find a place to sleep real soon."
?CCL15: EQUAL? SLEEPY-LEVEL,3 \?CCL17
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
PRINTR "If you don't get some sleep soon you'll probably drop."
?CCL17: EQUAL? SLEEPY-LEVEL,4 \?CCL19
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
PRINTR "You can barely keep your eyes open."
?CCL19: EQUAL? HERE,BED \?CCL22
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 ?CND20
?CCL22: CALL GLOBAL-IN?,BED,HERE
ZERO? STACK /?CCL24
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 ?CND20
?CCL24: PRINT YOU-CANT
JUMP ?CND18
?CCL22: PRINT YOU-CANT
PRINTI "stay awake a moment longer. You drop "
IN? PROTAGONIST,HERE \?CND25
FSET? HERE,WEIGHTLESSBIT /?CND25
IN? PROTAGONIST,HERE \?CND23
FSET? HERE,WEIGHTLESSBIT /?CND23
PRINTI "to the deck and fall "
?CND25: PRINTI "into a deep but fitful sleep."
?CND20: CALL WAKING-UP
?CND23: PRINTI "into a deep but fitful sleep."
?CND18: CALL WAKING-UP
?CND7: IN? PROTAGONIST,BED /FALSE
CALL STOP
RSTACK
@ -671,7 +719,7 @@ FREZONE (tm) explosive available."""
IN? PROTAGONIST,BED /?CND1
MOVE PROTAGONIST,HERE
?CND1: FSET? SPACESUIT,WORNBIT \?CCL5
CALL JIGS-UP,STR?105
CALL JIGS-UP,STR?107
JUMP ?CND3
?CCL5: EQUAL? COURSE-PICKED,RIGHT-COURSE /?CCL7
EQUAL? HERE,SPACETRUCK \?CCL7
@ -693,7 +741,7 @@ FREZONE (tm) explosive available."""
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?46
CALL JIGS-UP,STR?9
JUMP ?CND3
?CCL14: IN? PROTAGONIST,HERE \?PRD18
FSET? DOCKING-BAY-2,TOUCHBIT \?PRD18
@ -701,11 +749,25 @@ FREZONE (tm) explosive available."""
RANDOM 100
LESS? ?TMP1,STACK \?CTR15
?PRD18: CALL ULTIMATELY-IN?,OSTRICH-NIP
ZERO? STACK /?CCL16
IN? OSTRICH,HERE \?CCL16
?CTR15: CALL JIGS-UP,STR?106
ZERO? STACK /?PRD22
IN? OSTRICH,HERE /?CTR15
?PRD22: IN? EXPLOSIVE,DRILLED-HOLE \?CCL16
?CTR15: CALL JIGS-UP,STR?108
JUMP ?CND3
?CCL16: RANDOM 100
?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
@ -714,34 +776,41 @@ FREZONE (tm) explosive available."""
?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 \?CCL27
GRTR? DAY,2 \?CCL37
SET 'MOVES,9947
JUMP ?CND25
?CCL27: CALL QUEUE,I-MESSAGE,943
JUMP ?CND35
?CCL37: CALL QUEUE,I-MESSAGE,943
ADD SCORE,3 >SCORE
SET 'MOVES,INTERNAL-MOVES
?CND25: FCLEAR AUTO-DOOR,TOUCHBIT
?CND35: FCLEAR AUTO-DOOR,TOUCHBIT
CALL QUEUE,I-SLEEP-WARNINGS,5900
CALL ULTIMATELY-IN?,EXPLOSIVE,VACUUM-STORAGE
ZERO? STACK \?CND28
ZERO? STACK \?CND38
MOVE EXPLOSIVE,DECK-TWELVE
CALL REMOVE-CAREFULLY,EXPLOSIVE
CALL DEQUEUE,I-EXPLOSIVE-MELT
?CND28: FSET? HEADLAMP,ONBIT \?CND30
?CND38: FSET? HEADLAMP,ONBIT \?CND40
FCLEAR HEADLAMP,ACTIVEBIT
FCLEAR HEADLAMP,ONBIT
SET 'HEADLAMP-COUNTER,0
?CND30: GRTR? SOUP-WARMTH,0 \?CND32
FSET? THERMOS,OPENBIT \?CCL36
?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 ?CND32
?CCL36: SUB SOUP-WARMTH,30 >SOUP-WARMTH
?CND32: FSET OSTRICH,TOUCHBIT
JUMP ?CND44
?CCL48: SUB SOUP-WARMTH,30 >SOUP-WARMTH
?CND44: FSET OSTRICH,TOUCHBIT
CALL ROB,PROTAGONIST,HERE
USL
PRINTI "***** NOVEM "
@ -751,37 +820,37 @@ FREZONE (tm) explosive available."""
CRLF
CRLF
PRINTI "You awake "
ZERO? LIT \?CCL39
ZERO? LIT \?CCL51
PRINTI "in darkness."
JUMP ?CND37
?CCL39: CALL QUEUED?,I-LIGHTS-OUT
ZERO? STACK /?CCL41
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 ?CND37
?CCL41: LOC PROTAGONIST
EQUAL? STACK,BED,PILOT-SEAT,COPILOT-SEAT \?CCL43
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 ?CND37
?CCL43: PRINTI "and slowly stand up, feeling stiff from your uncomfortable night's sleep."
?CND37: EQUAL? DAY,4 \?CND44
FSET? SAFE,OPENBIT /?CCL48
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 ?CND44
?CCL48: CALL QUEUED?,I-ANNOUNCEMENT
ZERO? STACK \?CND44
JUMP ?CND56
?CCL60: CALL QUEUED?,I-ANNOUNCEMENT
ZERO? STACK \?CND56
CALL QUEUE,I-ANNOUNCEMENT,383
?CND44: GRTR? HUNGER-LEVEL,0 \?CCL52
?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 ?CND50
?CCL52: CALL QUEUE,I-HUNGER-WARNINGS,400
?CND50: CRLF
JUMP ?CND62
?CCL64: CALL QUEUE,I-HUNGER-WARNINGS,400
?CND62: CRLF
CALL RUNNING?,I-SPACETRUCK
ZERO? STACK /?CND53
EQUAL? COURSE-PICKED,RIGHT-COURSE \?CND53
ZERO? STACK /?CND65
EQUAL? COURSE-PICKED,RIGHT-COURSE \?CND65
CALL QUEUE,I-WELDER,-1
CALL DEQUEUE,I-SPACETRUCK
FCLEAR SPACETRUCK,WEIGHTLESSBIT
@ -789,75 +858,84 @@ FREZONE (tm) explosive available."""
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
?CND53: EQUAL? DAY,3 \?CND57
?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 \?CND57
FSET? CHRONOMETER,WORNBIT \?CND69
PRINTI " "
CALL PERFORM,V?EXAMINE,CHRONOMETER
?CND57: FSET? FLOYD,ACTIVEBIT \?CND61
IN? FLOYD,FACTORY /?CND61
EQUAL? HERE,AIRLOCK /?CND61
?CND69: FSET? FLOYD,ACTIVEBIT \?CND73
IN? FLOYD,FACTORY /?CND73
EQUAL? HERE,AIRLOCK /?CND73
SET 'FLOYD-SPOKE,TRUE-VALUE
PRINTI " Floyd "
GRTR? ROBOT-EVILNESS,13 \?CCL68
GRTR? ROBOT-EVILNESS,13 \?CCL80
PRINTI "is rudely kicking you"
IN? PROTAGONIST,BED \?CND69
IN? PROTAGONIST,BED \?CND81
PRINTI "r mattress"
?CND69: PRINTI ". ""Trot it! Will you kripping wake up already? Floyd getting bored!"""
?CND81: PRINTI ". ""Trot it! Will you kripping wake up already? Floyd getting bored!"""
CRLF
JUMP ?CND66
?CCL68: PRINTI "bounces impatiently at "
IN? PROTAGONIST,BED \?CCL73
JUMP ?CND78
?CCL80: PRINTI "bounces impatiently at "
IN? PROTAGONIST,BED \?CCL85
PRINTI "the foot of the bed"
JUMP ?CND71
?CCL73: PRINTI "your side"
?CND71: ZERO? PLATO-INTRODUCED /?CND74
ZERO? PLATO-ATTACK-COUNTER \?CND74
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"
?CND74: ZERO? PLATO-INTRODUCED \?CCL80
?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 ?CND66
?CCL80: PRINTI ". ""About time you woke up, you lazy "
GRTR? ROBOT-EVILNESS,9 \?CCL83
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 ?CND81
?CCL83: PRINTI "bones!"" says Floyd. ""Let's explore around some mo"
?CND81: PRINTI "re!"""
JUMP ?CND93
?CCL95: PRINTI "bones!"" says Floyd. ""Let's explore around some mo"
?CND93: PRINTI "re!"""
CRLF
?CND66: MOVE FLOYD,HERE
?CND61: ZERO? LIT /FALSE
?CND78: MOVE FLOYD,HERE
?CND73: ZERO? LIT /?CND96
CRLF
CALL V-LOOK
?CND96: CALL STOP
RSTACK
.FUNCT I-HUNGER-WARNINGS
GRTR? PLATO-ATTACK-COUNTER,0 \?CND1
IN? PLATO,HERE \?CND1
ZERO? STUNNED /?CND1
CALL QUEUE,I-HUNGER-WARNINGS,2
RFALSE
?CND1: INC 'HUNGER-LEVEL
PRINTI " "
EQUAL? HUNGER-LEVEL,1 \?CCL7
EQUAL? HUNGER-LEVEL,1 \?CCL5
CALL QUEUE,I-HUNGER-WARNINGS,450
PRINTR "A growl from your stomach warns that you're getting pretty hungry and thirsty."
?CCL7: EQUAL? HUNGER-LEVEL,2 \?CCL9
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
PRINTR "You're now really ravenous and your lips are quite parched."
?CCL9: EQUAL? HUNGER-LEVEL,3 \?CCL11
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
PRINTR "You're starting to feel faint from lack of food and liquid."
?CCL11: EQUAL? HUNGER-LEVEL,4 \?CCL13
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
PRINTR "If you don't eat or drink something in a few millichrons, you'll probably pass out."
?CCL13: EQUAL? HUNGER-LEVEL,5 \FALSE
CALL JIGS-UP,STR?107
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
@ -890,6 +968,7 @@ FREZONE (tm) explosive available."""
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
@ -906,52 +985,6 @@ FREZONE (tm) explosive available."""
PRINTR "It's doubtful that you could even make a dent in the welder."
.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?108
?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
GRTR? PLATO-ATTACK-COUNTER,0 \?CCL20
IN? PLATO,HERE /FALSE
?CCL20: 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 /?CND26
FSET WELDER,TOUCHBIT
CALL PERFORM,V?WHAT,WELDER
?CND26: CALL PERFORM,V?EXAMINE,WELDER
CALL STOP
RSTACK
.FUNCT TOUCHING?,THING
EQUAL? PRSO,THING \?CCL3
EQUAL? PRSA,V?TAKE,V?TOUCH,V?SHAKE /TRUE
@ -976,14 +1009,18 @@ FREZONE (tm) explosive available."""
SET 'P-WON,FALSE-VALUE
PRINT YOU-CANT
PRINTI "see"
CALL NAME?,OBJ
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 \?CCL5
?CND1: EQUAL? OBJ,PRSI \?CCL8
CALL PRSI-PRINT
JUMP ?CND3
?CCL5: CALL PRSO-PRINT
?CND3: PRINTI " here."
JUMP ?CND6
?CCL8: CALL PRSO-PRINT
?CND6: PRINTI " here."
CRLF
CALL STOP
RSTACK
@ -1007,7 +1044,7 @@ FREZONE (tm) explosive available."""
EQUAL? OBJ,TIMER,DETONATOR \?CCL3
SET 'TIMER-CONNECTED,FALSE-VALUE
SET 'ALSO,TRUE-VALUE
CALL VISIBLE?,DETONATOR
CALL VISIBLE?,TIMER
ZERO? STACK /?CND1
PRINTI " (The timer is"
PRINT NO-LONGER-ATTACHED
@ -1015,13 +1052,16 @@ FREZONE (tm) explosive available."""
?CCL3: ZERO? EXPLOSIVE-CONNECTED /?CND1
EQUAL? OBJ,EXPLOSIVE,DETONATOR \?CND1
SET 'EXPLOSIVE-CONNECTED,FALSE-VALUE
CALL VISIBLE?,DETONATOR
CALL VISIBLE?,EXPLOSIVE
ZERO? STACK /?CND1
PRINTI " (The explosive is"
ZERO? ALSO /?CND13
PRINTI " also"
?CND13: PRINT NO-LONGER-ATTACHED
?CND1: FSET OBJ,TOUCHBIT
?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
@ -1078,6 +1118,7 @@ FREZONE (tm) explosive available."""
EQUAL? PRSO,ROBOT-PICKED /?CND1
PRINTI " from outside the bin"
?CND1: PRINT PERIOD-CR
ZERO? P-MULT \TRUE
CALL STOP
RSTACK
@ -1089,8 +1130,8 @@ FREZONE (tm) explosive available."""
CALL TPRINT,OBJ
?CND1: PRINTI " first."
CRLF
CALL STOP
RSTACK
ZERO? P-MULT \TRUE
RETURN 8
.FUNCT DOESNT-FIT,STRING
@ -1165,4 +1206,13 @@ FREZONE (tm) explosive available."""
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

View file

@ -77,14 +77,20 @@ anything you didn't see before." CR>)
(IN GLOBAL-OBJECTS)
(DESC "number")
(SYNONYM NUMBER ONE TWO THREE)
(ADJECTIVE BIN) ;"for LOOK AT BIN THREE, etc. in Robot Pool"
(ACTION INTNUM-F)>
<ROUTINE INTNUM-F ()
<COND (<AND <OR <NOUN-USED ,W?ONE ,INTNUM>
<NOUN-USED ,W?TWO ,INTNUM>
<NOUN-USED ,W?THREE ,INTNUM>>
<COND (<ADJ-USED ,A?BIN ,INTNUM>
<COND (<NOT <EQUAL? ,HERE ,ROBOT-POOL>>
<TELL ,YOU-CANT "see any bin here!]" CR>)
(<G? ,P-NUMBER 3>
<TELL "There are only three bins!" CR>)
(T
<TELL ,REFER-TO-BIN>)>)
(<AND <EQUAL? <GET ,P-NAMW 0> ,W?ONE ,W?TWO ,W?THREE>
<GLOBAL-IN? ,KEYPAD ,HERE>
<VERB? PUSH TYPE>>
<VERB? PUSH TYPE>> ;"TYPE ONE for example"
<TELL
"[Use numerals: for example, TYPE 5 rather than TYPE FIVE.]" CR>)
(<AND <VERB? EXAMINE SHOOT ON OFF KILL MUNG>
@ -92,9 +98,10 @@ anything you didn't see before." CR>)
,P-NUMBER>
<IN? ,WELDER ,HERE>>
<COND (<PRSO? ,INTNUM>
<PERFORM-PRSA ,WELDER ,PRSI>)
<PERFORM ,PRSA ,WELDER ,PRSI>)
(T
<PERFORM-PRSA ,PRSO ,WELDER>)>)
<PERFORM ,PRSA ,PRSO ,WELDER>)>
<RTRUE>)
(<OR <AND <VERB? ENTER>
<EQUAL? ,P-PRSA-WORD ,W?ENTER>
<GLOBAL-IN? ,KEYPAD ,HERE>>
@ -108,7 +115,7 @@ anything you didn't see before." CR>)
<COND (<EQUAL? ,P-NUMBER ,DIAL-SETTING>
<TELL ,SENILITY-STRIKES>)
(<G? ,P-NUMBER 8000>
<TELL "The dial only goes up to 8000." CR>)
<TELL "The dial goes up to only 8000." CR>)
(T
<SETG DIAL-SETTING ,P-NUMBER>
<TELL "\"Click.\"" CR>)>)
@ -217,10 +224,10 @@ anything you didn't see before." CR>)
then P-MOBY-FOUND is it. You can treat the 0 and >1 cases alike or differently.
Always return RFALSE (not handled) if you have resolved the problem."
<SET M-F <MOBY-FIND .TBL>>
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[Found " N .M-F " obj]" CR>)>
<COND (<EQUAL? 1 .M-F>
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[Namely: " D ,P-MOBY-FOUND "]" CR>)>
<COND (.PRSO?
<SETG PRSO ,P-MOBY-FOUND>
@ -233,7 +240,7 @@ Always return RFALSE (not handled) if you have resolved the problem."
;"Protocol: returns .OBJ if that's the one to use
,NOT-HERE-OBJECT if case was handled and msg TELLed
<> if WHICH-PRINT should be called"
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[Generic: " D .OBJ "]" CR>)>
<COND (<EQUAL? .OBJ ,NOT-HERE-OBJECT>
<RTRUE>)
@ -267,10 +274,22 @@ Always return RFALSE (not handled) if you have resolved the problem."
<ROUTINE GROUND-F ()
<COND (<VERB? CLIMB-ON ENTER>
<SETG C-ELAPSED 31>
<TELL "After a brief squat on the floor, you stand again." CR>)
<COND (,STUNNED
<TELL ,LOOK-AROUND>)
(T
<SETG C-ELAPSED 31>
<TELL
"After a brief squat on the floor, you stand again." CR>)>)
(<VERB? CLEAN>
<SETG AWAITING-REPLY 1>
<QUEUE I-REPLY <+ ,C-ELAPSED 2>>
<TELL "Do you also do windows?" CR>)
(<VERB? LOOK-UNDER>
<IMPOSSIBLES>)
(<AND <VERB? OPEN>
<EQUAL? ,HERE ,BOTTOM-OF-AIR-SHAFT>>
<PERFORM ,V?OPEN ,GRATING>
<RTRUE>)
(<VERB? LEAVE>
<DO-WALK ,P?UP>)>>
@ -295,11 +314,18 @@ Always return RFALSE (not handled) if you have resolved the problem."
<ROUTINE CEILING-F ()
<COND (<AND <VERB? EXAMINE SEARCH>
<EQUAL? ,HERE ,PET-STORE>>
<MOVE ,PANEL ,HERE>
<THIS-IS-IT ,PANEL>
<TELL
"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." CR>)
<COND (<IN? ,PANEL ,HERE>
<TELL
"There's a panel mounted in the ceiling. ">
<PERFORM ,V?EXAMINE ,PANEL>
<RTRUE>)
;"if panel has no LOC, it means that you blew it up"
(<IN? ,PANEL ,LOCAL-GLOBALS>
<MOVE ,PANEL ,HERE>
<THIS-IS-IT ,PANEL>
<TELL
"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." CR>)>)
(<AND <VERB? EXAMINE>
<EQUAL? ,HERE ,DOME>>
<TELL ,DOME-DESC CR>)
@ -338,7 +364,7 @@ the Pet Store would never have uncovered: a panel mounted in the ceiling." CR>)
<COND (<NOT ,LIT>
<TELL ,TOO-DARK CR>)
(<AND <EQUAL? ,HERE ,GREASY-STRAW>
<IN? ,NECTAR ,LOCAL-GLOBALS>>
<NOT <FSET? ,NECTAR ,TOUCHBIT>>>
<MOVE ,NECTAR ,HERE>
<THIS-IS-IT ,NECTAR>
<TELL
@ -394,10 +420,9 @@ the Pet Store would never have uncovered: a panel mounted in the ceiling." CR>)
" 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,
is a tangle of tubes and space bubbles and derelict rockets. These form a
\"village,\" the sort of seedy, unauthorized village that frequently collects
around a space station." CR>)
Sub-Module. Joining the Command Module, at its two other connection points,"
,TANGLE-OF-TUBES " These form a \"village,\" the sort of seedy, unauthorized
village that frequently collects around a space station." CR>)
(T
<TELL
"You see nothing but the majestic sweep of the galaxy." CR>)>)
@ -410,7 +435,7 @@ around a space station." CR>)
(IN LOCAL-GLOBALS)
(DESC "sign")
(SYNONYM SIGN)
(ADJECTIVE EYE-CATCHING)
(ADJECTIVE LARGE RED EYE-CATCHING)
(FLAGS READBIT)
(ACTION SIGN-F)>
@ -569,6 +594,10 @@ of multi-part forms, it's far outside your area of expertise." CR>)>)
<JIGS-UP
"Done. You might remain alive long enough to type EXAMINE MY STUMP.
Oops, I guess not.">)
(<VERB? DRILL>
<TELL
"Hmmm. Are you trying for a hole in " 'PRSO
" to match the hole in your head?" CR>)
(<AND <VERB? TAKE-WITH>
<PRSI? ,HANDS>>
<PERFORM ,V?TAKE ,PRSO>
@ -586,7 +615,9 @@ Oops, I guess not.">)
<COND (<AND <VERB? PUT-ON RUN-OVER>
<PRSO? ,TONGUE>>
<PERFORM ,V?TASTE ,PRSI>
<RTRUE>)>>
<RTRUE>)
(<VERB? DRILL>
<HANDS-F>)>>
<OBJECT PROTAGONIST
(IN DECK-TWELVE)
@ -737,7 +768,7 @@ Sub-Module connector you might have expected." CR>)>)
<IN? ,FLOYD ,COPILOT-SEAT>>
<RFALSE>)
(<AND <IN? ,PROTAGONIST ,COPILOT-SEAT>
<IN? ,FLOYD ,COPILOT-SEAT>>
<IN? ,FLOYD ,PILOT-SEAT>>
<RFALSE>)
(T
<RTRUE>)>>
@ -775,20 +806,38 @@ Sub-Module connector you might have expected." CR>)>)
(ACTION FURNISHING-F)>
<ROUTINE FURNISHING-F ()
<COND (<VERB? OPEN SEARCH LOOK-INSIDE EXAMINE>
<COND (<VERB? ENTER OPEN SEARCH LOOK-INSIDE EXAMINE>
<TELL
"You merely find a few personal items of little interest." CR>)
(<VERB? PUT PUT-ON>
<TELL
"The " D ,PRSI " is such a mess that you can't find a good spot
to put" TR ,PRSO>)>>
<OBJECT VILLAGE
(IN LOCAL-GLOBALS)
(DESC "village")
(SYNONYM VILLAGE)
(ADJECTIVE SEEDY NONREGULATION UNAUTHORIZED ILLEGAL SPACE)
(ACTION VILLAGE-F)>
<ROUTINE VILLAGE-F ()
<COND (<AND <EQUAL? ,HERE ,SPACETRUCK>
<OR <NOT <EQUAL? ,SPACETRUCK-COUNTER 4>>
<NOT <EQUAL? ,COURSE-PICKED ,RIGHT-COURSE>>>>
<CANT-SEE ,VILLAGE>)
(<VERB? ENTER WALK-TO EXIT LEAVE DISEMBARK>
<V-WALK-AROUND>)
(<AND <VERB? EXAMINE>
<EQUAL? ,HERE ,SPACETRUCK>>
<TELL "The village" ,TANGLE-OF-TUBES CR>)>>
;"sleeping"
<OBJECT BED
(IN LOCAL-GLOBALS)
(DESC "bed")
(SYNONYM BED)
(SYNONYM BED BEDS)
(FLAGS VEHBIT SEARCHBIT CONTBIT OPENBIT)
(ACTION BED-F)>
@ -797,7 +846,9 @@ to put" TR ,PRSO>)>>
<NOT <GLOBAL-IN? ,BED ,HERE>>>
<TELL "There's no bed here!" CR>)
(<VERB? ENTER WALK-TO>
<COND (<G? ,SLEEPY-LEVEL 0>
<COND (,STUNNED
<YOURE-STUNNED>)
(<G? ,SLEEPY-LEVEL 0>
<MOVE ,PROTAGONIST ,BED>
<QUEUE I-FALL-ASLEEP 22>
<DEQUEUE I-SLEEP-WARNINGS>
@ -848,8 +899,7 @@ asleep in short order." CR>)
<ROUTINE I-SLEEP-WARNINGS ()
<COND (<OR <AND <IN? ,WELDER ,HERE>
<G? ,SLEEPY-LEVEL 3>>
<AND <G? ,PLATO-ATTACK-COUNTER 0>
<IN? ,PLATO ,HERE>>>
,STUNNED>
<QUEUE I-HUNGER-WARNINGS 2>
<RFALSE>)>
<SETG SLEEPY-LEVEL <+ ,SLEEPY-LEVEL 1>>
@ -890,7 +940,9 @@ a nice safe place to sleep." CR>)
<NOT <FSET? ,HERE ,WEIGHTLESSBIT>>>
<TELL "to the deck and fall ">)>
<TELL "into a deep but fitful sleep.">)>
<WAKING-UP>)>>
<WAKING-UP>)>
<COND (<NOT <IN? ,PROTAGONIST ,BED>>
<STOP>)>>
<ROUTINE I-FALL-ASLEEP ()
<COND (<IN? ,WELDER ,HERE>
@ -929,7 +981,7 @@ the water. You try to scream, but cannot. You feel your life draining away"
"You wake up in a huge stadium, watching an important ceremony. It's a Stellar
Patrol promotion ceremony on Tremain! Suddenly your own name echoes over the
PA system -- and down below you see YOURSELF walking up the steps to the stage!
P.A. system -- and down below you see YOURSELF walking up the steps to the stage!
The presiding admiral describes your heroism on Resida, mentioning that you
were awarded the key to the planet, and then asks the ceremonial question,
\"Do you accept promotion to Lieutenant First Class?\" You try to yell \"No!\"
@ -985,16 +1037,30 @@ Moral: don't screw up vital assignments like picking up " ,FORM-NAME>
<FSET? ,DOCKING-BAY-2 ,TOUCHBIT>
<PROB <* ,DAY 40>>>
<AND <ULTIMATELY-IN? ,OSTRICH-NIP>
<IN? ,OSTRICH ,HERE>>>
<IN? ,OSTRICH ,HERE>>
<IN? ,EXPLOSIVE ,DRILLED-HOLE>>
<JIGS-UP
"A movement awakens you in the middle of the night! Through unfocused
eyes you see a large machine rolling menacingly closer! A bright light
leaps from it, straight toward...">)
(<AND ,EXPLOSIVE-CONNECTED
,TIMER-CONNECTED
<IN? ,DIODE-M ,DETONATOR>
<G? ,TIMER-SETTING 0>>
<COND (<EQUAL? <META-LOC ,EXPLOSIVE> ,HERE>
<JIGS-UP "Snore...snore...KABOOM!">)
(T
<DESTROY-EXPLOSIVE-CONT>
<REMOVE ,TIMER>
<REMOVE ,EXPLOSIVE>
<REMOVE ,DETONATOR>)>)
(<PROB 60>
<TELL "..." <PICK-ONE ,DREAMS> ,ELLIPSIS>)>
<SETG DAY <+ ,DAY 1>>
<SETG ROBOT-EVILNESS <+ ,ROBOT-EVILNESS 1>>
<I-ROBOT-EVILNESS>
<SETG TIMER-SETTING 0>
<DEQUEUE I-TIMER>
<SETG SLEEPY-LEVEL 0>
<SETG SUIT-PRESSED <>>
<SETG FLOYD-ANGUISHED <>>
@ -1020,6 +1086,10 @@ leaps from it, straight toward...">)
<FCLEAR ,HEADLAMP ,ACTIVEBIT>
<FCLEAR ,HEADLAMP ,ONBIT>
<SETG HEADLAMP-COUNTER 0>)>
<COND (<RUNNING? ,I-LOG-READER>
<REMOVE ,LOG-READER>
<DEQUEUE I-LOG-READER>
<FCLEAR ,COMMANDERS-OFFICE ,TOUCHBIT>)>
<COND (<G? ,SOUP-WARMTH 0>
<COND (<FSET? ,THERMOS ,OPENBIT>
<SETG SOUP-WARMTH 0>)
@ -1114,15 +1184,15 @@ friend,\" says Floyd with unbounded exuberance and a wide grin." CR>
<MOVE ,FLOYD ,HERE>)>
<COND (,LIT
<CRLF>
<V-LOOK>)>>
<V-LOOK>)>
<STOP>>
;"thirst and hunger"
<GLOBAL HUNGER-LEVEL 0>
<ROUTINE I-HUNGER-WARNINGS ()
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0>
<IN? ,PLATO ,HERE>>
<COND (,STUNNED
<QUEUE I-HUNGER-WARNINGS 2>
<RFALSE>)>
<SETG HUNGER-LEVEL <+ ,HUNGER-LEVEL 1>>
@ -1146,7 +1216,8 @@ hungry and thirsty." CR>)
"If you don't eat or drink something in a few millichrons, you'll
probably pass out." CR>)
(<EQUAL? ,HUNGER-LEVEL 5>
<JIGS-UP "You collapse from extreme thirst and hunger.">)>>
<JIGS-UP "You collapse from extreme thirst and hunger.">)>
<STOP>>
;"the welding menace"
@ -1191,6 +1262,7 @@ vanishes! A wave of hot vapor pushes you backwards.">
<COND (<VISIBLE? ,EXPLOSIVE>
<TELL
" As the heat wave hits the explosive, it " ,SUBLIMES-INTO-FREZONE>
<DEQUEUE I-EXPLOSIVE-MELT>
<REMOVE-CAREFULLY ,EXPLOSIVE>)>
<COND (<AND <IN? ,OSTRICH ,HERE>
<FSET? ,OSTRICH ,TOUCHBIT>>
@ -1215,46 +1287,7 @@ vanishes! A wave of hot vapor pushes you backwards.">
<GLOBAL WELDER-COUNTER 0> ;"how close is the attacking welder to you?"
<ROUTINE I-WELDER ()
<COND (<IN? ,WELDER ,HERE>
<TELL " ">
<SETG WELDER-COUNTER <+ ,WELDER-COUNTER 1>>
<COND (<NOT ,LIT>
<REMOVE ,WELDER>
<SETG WELDER-COUNTER 0>
<TELL "Y" ,HEAR-WELDER-LEAVE>
<RTRUE>)
(<EQUAL? ,WELDER-COUNTER 2>
<TELL "The welder moves closer. ">)
(<NOT <EQUAL? ,WELDER-COUNTER 3>>
<JIGS-UP
"A powerful arc of raw energy bridges the gap between two of the monster's
welding extensions. Unfortunately, you were pretty much right between the
same two extensions at that moment.">)>
<PERFORM ,V?EXAMINE ,WELDER>)
(<G? ,WELDER-COUNTER 0>
<REMOVE ,WELDER>
<SETG WELDER-COUNTER 0>
<TELL " Nearby, y" ,HEAR-WELDER-LEAVE>)
(<AND <NOT <FSET? ,HERE ,NWELDERBIT>>
<NOT <IN? ,PROTAGONIST ,BED>>
,LIT
<PROB ,NUMBER-OF-WELDERS>>
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0>
<IN? ,PLATO ,HERE>>
<RFALSE>)
(<AND <EQUAL? ,HERE ,SPACETRUCK>
<NOT <FSET? ,SPACETRUCK-HATCH ,OPENBIT>>>
<RFALSE>)>
<MOVE ,WELDER ,HERE>
<SETG WELDER-COUNTER <+ ,WELDER-COUNTER 1>>
<SETG WELDER-TABLE-POINTER <RANDOM ,NUMBER-OF-WELDERS>>
<TELL " You spot a " 'WELDER " approaching. ">
<COND (<NOT <FSET? ,WELDER ,TOUCHBIT>>
<FSET ,WELDER ,TOUCHBIT>
<PERFORM ,V?WHAT ,WELDER>)>
<PERFORM ,V?EXAMINE ,WELDER>
<STOP>)>>
;"routine I-WELDER moved to INTERRUPTS file"
;"utility routines and shared strings"
@ -1283,7 +1316,10 @@ same two extensions at that moment.">)>
<ROUTINE CANT-SEE (OBJ)
<SETG P-WON <>>
<TELL ,YOU-CANT "see">
<COND (<NOT <NAME? .OBJ>>
<COND (<NOT <NAME? <COND (<PRSO? .OBJ>
<GET ,P-NAMW 0>)
(T
<GET ,P-NAMW 1>)>>>
<TELL " any">)>
<COND (<EQUAL? .OBJ ,PRSI>
<PRSI-PRINT>)
@ -1303,16 +1339,19 @@ same two extensions at that moment.">)>
<EQUAL? .OBJ ,TIMER ,DETONATOR>>
<SETG TIMER-CONNECTED <>>
<SET ALSO T>
<COND (<VISIBLE? ,DETONATOR>
<COND (<VISIBLE? ,TIMER>
<TELL " (The timer is" ,NO-LONGER-ATTACHED>)>)
(<AND ,EXPLOSIVE-CONNECTED
<EQUAL? .OBJ ,EXPLOSIVE ,DETONATOR>>
<SETG EXPLOSIVE-CONNECTED <>>
<COND (<VISIBLE? ,DETONATOR>
<COND (<VISIBLE? ,EXPLOSIVE>
<TELL " (The explosive is">
<COND (.ALSO
<TELL " also">)>
<TELL ,NO-LONGER-ATTACHED>)>)>
<COND (<AND <IN? ,EXPLOSIVE ,THERMOS>
<NOT <FSET? ,THERMOS ,OPENBIT>>>
<SETG THERMOS-FILLED-WITH-GAS T>)>
<FSET .OBJ ,TOUCHBIT>
<FCLEAR .OBJ ,TRYTAKEBIT>
<REMOVE .OBJ>>
@ -1358,14 +1397,20 @@ same two extensions at that moment.">)>
<NOT <PRSO? ,ROBOT-PICKED>>>
<TELL " from outside the bin">)>
<TELL ,PERIOD-CR>
<STOP>>
<COND (,P-MULT
<RTRUE>)
(T
<STOP>)>>
<ROUTINE DO-FIRST (STRING "OPTIONAL" (OBJ <>))
<TELL ,YOULL-HAVE-TO .STRING>
<COND (.OBJ
<TPRINT .OBJ>)>
<TELL " first." CR>
<STOP>>
<COND (,P-MULT ;"for example, don't stop a TAKE ALL for worn objects"
<RTRUE>)
(T
<RFATAL>)>>
<ROUTINE DOESNT-FIT (STRING)
<TELL
@ -1421,6 +1466,13 @@ same two extensions at that moment.">)>
<CRLF>)>
<RTRUE>>
<ROUTINE MESS (STRING)
<TELL
"You create a " .STRING "ish mess. In the wink of an eye, an army of common
Cassiopeian cockroaches swarms out of the \"woodwork,\" devours the "
.STRING ", and return to their hidden recesses. You spend a moment pondering
the competence of the station's Extermination Officer">>
;<ROUTINE UNIMPORTANT-THING-F ()
<TELL "That's not important; leave it alone." CR>>
@ -1554,4 +1606,22 @@ engine vents like steam from the nostrils of an angry bull.">
<GLOBAL LADDER-LEADS ", and a ladder leads both upward and downward.">
<GLOBAL TOO-LONG-TO-WAIT "That's too long to wait.|">
<GLOBAL TOO-LONG-TO-WAIT "That's too long to wait.|">
<GLOBAL CALLOUS-DISREGARD
". 2. A callous disregard for scientific accuracy on the part of the author">
<GLOBAL REFER-TO-BIN
"[Please refer to them as FIRST BIN, SECOND BIN, and THIRD BIN.]|">
<GLOBAL FLOYDS-HANGING-IN-AIR-COMMENT
" \"Boy, that looks like fun!\" says Floyd, peering up at you.
\"Can Floyd try it? Huh? Please?\"|">
<GLOBAL TANGLE-OF-TUBES
" is a tangle of tubes and space bubbles and derelict rockets.">
<GLOBAL WONT-BUDGE "It won't budge.|">
<GLOBAL FLOYD-SNIFFS
"Floyd sniffs, \"Please leave Floyd alone for a while.\"|">

529
interrupts.zap Normal file
View file

@ -0,0 +1,529 @@
.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

456
interrupts.zil Normal file
View file

@ -0,0 +1,456 @@
"INTERRUPTS for
STATIONFALL
(c) Copyright 1987 Infocom, Inc. All Rights Reserved."
<ROUTINE I-WELDER ()
<COND (<IN? ,WELDER ,HERE>
<TELL " ">
<SETG WELDER-COUNTER <+ ,WELDER-COUNTER 1>>
<COND (<NOT ,LIT>
<REMOVE ,WELDER>
<SETG WELDER-COUNTER 0>
<TELL "Y" ,HEAR-WELDER-LEAVE>
<RTRUE>)
(<EQUAL? ,WELDER-COUNTER 2>
<TELL "The welder moves closer. ">)
(<NOT <EQUAL? ,WELDER-COUNTER 3>>
<JIGS-UP
"A powerful arc of raw energy bridges the gap between two of the monster's
welding extensions. Unfortunately, you were pretty much right between the
same two extensions at that moment.">)>
<PERFORM ,V?EXAMINE ,WELDER>)
(<G? ,WELDER-COUNTER 0>
<REMOVE ,WELDER>
<SETG WELDER-COUNTER 0>
<TELL " Nearby, y" ,HEAR-WELDER-LEAVE>)
(<AND <NOT <FSET? ,HERE ,NWELDERBIT>>
<NOT <IN? ,PROTAGONIST ,BED>>
,LIT
<PROB ,NUMBER-OF-WELDERS>>
<COND (,STUNNED
<RFALSE>)
(<AND <EQUAL? ,HERE ,SPACETRUCK>
<NOT <FSET? ,SPACETRUCK-HATCH ,OPENBIT>>>
<RFALSE>)>
<MOVE ,WELDER ,HERE>
<SETG WELDER-COUNTER <+ ,WELDER-COUNTER 1>>
<SETG WELDER-TABLE-POINTER <RANDOM ,NUMBER-OF-WELDERS>>
<TELL " You spot a " 'WELDER " approaching. ">
<COND (<NOT <FSET? ,WELDER ,TOUCHBIT>>
<FSET ,WELDER ,TOUCHBIT>
<PERFORM ,V?WHAT ,WELDER>)>
<PERFORM ,V?EXAMINE ,WELDER>
<STOP>)>>
<ROUTINE I-HEADLAMP ()
<COND (<FSET? ,HEADLAMP ,ONBIT>
<SETG HEADLAMP-COUNTER <- ,HEADLAMP-COUNTER 1>>
<COND (<EQUAL? ,HEADLAMP-COUNTER 0>
<FCLEAR ,HEADLAMP ,ACTIVEBIT>
<FCLEAR ,HEADLAMP ,ONBIT>)>
<COND (<AND <VISIBLE? ,HEADLAMP>
<EQUAL? ,HEADLAMP-COUNTER 0 15 30>>
<TELL " The light from the headlamp ">
<COND (<EQUAL? ,HEADLAMP-COUNTER 0>
<TELL "flickers and dies!" CR>
<NOW-DARK?>)
(<EQUAL? ,HEADLAMP-COUNTER 5>
<TELL "is almost out!" CR>)
(T
<TELL "seems somewhat dimmer." CR>)>)>)
(T
<DEQUEUE I-HEADLAMP>)>>
<ROUTINE I-PLATINUM-DETECTOR ()
<SETG DETECTOR-COUNTER <+ ,DETECTOR-COUNTER 1>>
<COND (<AND <VISIBLE? ,PLATINUM-DETECTOR>
<OR <EQUAL? <META-LOC ,FOIL>
<META-LOC ,PLATINUM-DETECTOR>>
<AND <ULTIMATELY-IN? ,PLATINUM-DETECTOR ,BARBERSHOP>
<NOT ,MIRROR-BROKEN>>>>
<TELL " The detector is quietly beeping." CR>)>
<COND (<AND <EQUAL? ,DETECTOR-COUNTER 50 75>
<IN? ,PLATINUM-DETECTOR ,PROTAGONIST>>
<TELL " You notice that the detector is getting ">
<COND (<EQUAL? ,DETECTOR-COUNTER 75>
<TELL "very ">)>
<TELL "warm." CR>)
(<AND <EQUAL? ,DETECTOR-COUNTER 100>
<IN? ,PLATINUM-DETECTOR ,PROTAGONIST>>
<MOVE ,PLATINUM-DETECTOR ,HERE>
<TELL
" Yeow! The detector is now too hot to handle, so you drop it." CR>)>>
<ROUTINE I-DRYER ()
<SETG DRYER-COUNTER <+ ,DRYER-COUNTER 1>>
<FCLEAR ,LAUNDRY ,TOUCHBIT>
<COND (<AND <EQUAL? ,HERE ,LAUNDRY>
<EQUAL? ,DRYER-COUNTER 5 10 15>>
<TELL " ">
<DESCRIBE-DRYER-HEAT>
<CRLF>)>>
<ROUTINE I-RADIO ()
<COND (<NOT <EQUAL? ,HERE ,SPACETRUCK>>
<RFALSE>)
(<PROB 30>
<TELL
" The radio crackles to life. \"Breaker. "
<PICK-ONE ,RADIO-LINES> " Over.\"" CR>)
(<PROB 20>
<TELL
" A country and western station drifts into tune for a moment, but then
fades again." CR>)>>
<ROUTINE I-FLOYD ("AUX" (OBJ <>))
<QUEUE I-FLOYD -1>
<COND (<NOT <FSET? ,FLOYD ,TOUCHBIT>>
<FSET ,FLOYD ,TOUCHBIT>
<FSET ,FLOYD ,TRYTAKEBIT>
<TELL
" 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." CR>)
(<NOT ,ROBOT-PICKED>
<TELL
" Floyd jumps up and down saying, \"Oh boy oh boy oh boy pick Floyd
pick Floyd pick Floyd!\"" CR>)
(,FLOYD-ANGUISHED
<COND (<NOT <VISIBLE? ,FLOYD>>
<SETG FLOYD-ANGUISHED <>>)>
<SETG FLOYD-FOLLOW <>>
<RFALSE>)
(<VISIBLE? ,FLOYD>
<COND (<NOT <FSET? ,FLOYD ,ACTIVEBIT>>
<RFALSE>)>
<COND (<AND <EQUAL? <LOC ,FLOYD> ,PILOT-SEAT ,COPILOT-SEAT>
<G? ,SPACETRUCK-COUNTER 0>
<NOT ,PILOT-SEAT-COMMENT>>
<SETG PILOT-SEAT-COMMENT T>
<TELL
" Floyd strains to see over the top of the dashboard. \"Boy, seats low!
Floyd could sure use a phone book!\"" CR>)
(<AND <IN? ,OSTRICH ,HERE>
<NOT ,OSTRICH-COMMENT>>
<SETG OSTRICH-COMMENT T>
<TELL
" Floyd looks at the ostrich with breathless excitement.
\"Wow! An elephant!\"" CR>)
(<AND <IN? ,BALLOON ,HERE>
<NOT ,BALLOON-COMMENT>
<NOT ,HANGING-IN-AIR>
<G? ,ROBOT-EVILNESS 13>>
<SETG BALLOON-COMMENT T>
<TELL
" You notice Floyd taunting the " D ,BALLOON ". The frightened balloon
takes refuge in the far corner of the room." CR>)
(<OR <AND <NOT <FSET? ,HERE ,FLOYDBIT>>
<NOT ,FLOYD-SPOKE>
<PROB 6>>
<AND <G? ,TIMER-SETTING 0>
<VISIBLE? ,EXPLOSIVE>>>
<REMOVE ,FLOYD>
<TELL " ">
<COND (<IN? ,PLATO ,HERE>
<SETG POSTPONE-ATTACK T>
<REMOVE ,PLATO>
<COND (<G? ,ROBOT-EVILNESS 8>
<TELL
"\"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." CR>)
(<OR <PROB 50>
<EQUAL? ,HERE ,LIBRARY>>
<TELL
"\"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!\"" CR>)
(T
<TELL
"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!\"" CR>)>)
(T
<TELL
"Floyd says, \"Floyd going exploring. See you later.\"
He glides out of the room." CR>)>)
(<AND <PROB 45>
<NOT ,FLOYD-SPOKE>
<IN? ,FLOYD ,HERE>
<IN? ,PROTAGONIST ,HERE>
<NOT ,HANGING-IN-AIR>
,LIT>
<SET OBJ <FIRST? ,HERE>>
<COND (<AND .OBJ
<FSET? .OBJ ,TOUCHBIT>
<FSET? .OBJ ,TAKEBIT>
<NOT <FSET? .OBJ ,CONTBIT>>
<NOT <EQUAL? .OBJ ,OSTRICH-NIP ,SPACESUIT>>
<NOT <EQUAL? .OBJ ,DETONATOR ,TIMER
,EXPLOSIVE>>
<L? <CCOUNT ,FLOYD> 4>
<PROB 6>>
<MOVE .OBJ ,FLOYD>
<TELL
" Floyd picks up" T .OBJ ", examines it, and tucks ">
<COND (<FSET? .OBJ ,PLURALBIT>
<TELL "them">)
(T
<TELL "it">)>
<TELL " under his arm." CR>)
(<AND <FIRST? ,FLOYD>
<PROB 6>>
<SET OBJ <FIRST? ,FLOYD>>
<COND (<AND <NEXT? .OBJ>
<PROB 60>>
<SET OBJ <NEXT? .OBJ>>)>
<MOVE .OBJ ,HERE>
<TELL
" Floyd drops" T .OBJ " he was carrying." CR>)
(<AND <FIRST? ,FLOYD>
<PROB 4>>
<SET OBJ <FIRST? ,FLOYD>>
<COND (<AND <NEXT? .OBJ>
<PROB 60>>
<SET OBJ <NEXT? .OBJ>>)>
<TELL
" Floyd moves" T .OBJ " in a wavering course through the air, making
a roaring noise like a rocket exhaust." CR>)
(<AND <IN? ,PLATO ,HERE>
<PROB 70>>
<TELL " " <PICK-ONE ,PLATOISMS> ,PERIOD-CR>)
(T
<TELL " Floyd ">
<COND (<PROB <- 36 <* ,ROBOT-EVILNESS 3>>>
<TELL <PICK-ONE ,GOOD-FLOYDISMS>
,PERIOD-CR>)
(<PROB <- <* ,ROBOT-EVILNESS 25> 300>>
<TELL <PICK-ONE ,BAD-FLOYDISMS>
,PERIOD-CR>)
(<PROB 6>
<SETG AWAITING-REPLY 4>
<QUEUE I-REPLY <+ ,C-ELAPSED 2>>
<TELL
"says, \"Hey! Wanna play Hucka-Bucka-Beanstalk?\"" CR>)
(T
<TELL <PICK-ONE ,NEUTRAL-FLOYDISMS>
,PERIOD-CR>)>)>)>)
(<NOT <FSET? ,FLOYD ,ACTIVEBIT>>
<COND (<OR <EQUAL? ,HERE ,VACUUM-STORAGE ,AIRLOCK>
<L? ,SPACETRUCK-COUNTER 5>>
<RFALSE>)
(<NEXT-ROOM? ,FLOYD>
<RFALSE>)>
<FSET ,FLOYD ,ACTIVEBIT>
<FSET ,FLOYD ,ACTORBIT>
<TELL " Floyd bounds up to you" ,HOPPING-MAD>
<COND (,PLATO-INTRODUCED
<TELL
" Plato strolls in and gives Floyd a pat. \"I reactivated the little fellow;
I hope you don't mind.\"" CR>)
(T
<TELL
" Another robot wanders in behind Floyd and notices you." CR>
<I-PLATO T>
<TELL
" Plato motions toward Floyd. \"I presume you know this playful little
fellow. Someone had deactivated him, so I rectified the situation.\"" CR>)>
<MOVE ,PLATO ,HERE>
<MOVE ,FLOYD ,HERE>)
;"Floyd is active but not present"
(<G? ,ROBOT-EVILNESS 17>
<COND (<AND <LOC ,FLOYD>
<FSET? <LOC ,FLOYD> ,NWELDERBIT>
<NEXT-ROOM? ,FLOYD>>
;"don't move Floyd to Factory if he's in the next room
and it's a dead end"
<RFALSE>)>
<MOVE-FLOYD-TO-FACTORY>
<RFALSE>)
(<AND ,FLOYD-FOLLOW
<EQUAL? ,HERE ,AIRLOCK>>
<TELL " Floyd calls from above, \"">
<COND (<AND ,PLATO-INTRODUCED
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
<TELL "We">)
(T
<TELL "I">)>
<TELL
"'ll wait here; it doesn't look like there's room in that phone booth for ">
<COND (<AND ,PLATO-INTRODUCED
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
<TELL "all">)
(T
<TELL "both">)>
<TELL " of us.\"" CR>)
(<AND ,FLOYD-FOLLOW
<OR <EQUAL? ,TIMER-SETTING 0>
<NOT <VISIBLE? ,EXPLOSIVE>>>
<PROB 80>>
<TELL " Floyd ">
<COND (<AND ,PLATO-INTRODUCED
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
<MOVE ,PLATO ,HERE>
<TELL "and Plato follow">)
(T
<TELL "follows">)>
<MOVE ,FLOYD ,HERE>
<TELL " you." CR>)
(<EQUAL? ,HERE ,SPACETRUCK ,ELEVATOR ,BRIG ,ARMORY>
<TELL " Floyd bounces in">
<COND (<AND ,PLATO-INTRODUCED
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
<MOVE ,PLATO ,HERE>
<TELL ", followed at a more leisurely pace by Plato">)>
<TELL ". \"Hey, wait for ">
<COND (<AND ,PLATO-INTRODUCED
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
<MOVE ,PLATO ,HERE>
<TELL "us">)
(T
<TELL "Floyd">)>
<MOVE ,FLOYD ,HERE>
<TELL "!\" he yells." CR>)
(<AND <PROB 17>
,LIT
<NOT <EQUAL? ,HERE ,AIRLOCK ,VACUUM-STORAGE>>>
<TELL " Floyd ">
<COND (<AND <NOT ,PLATO-INTRODUCED>
<FSET? ,LEVEL-FIVE ,TOUCHBIT>
<PROB 50>>
<TELL
"dashes into view, followed by a slightly older-looking robot. \"Look, Floyd
found a new friend,\" Floyd says with unbounded exuberance." CR>
<I-PLATO T>)
(T
<COND (<PROB <- <* ,ROBOT-EVILNESS 10> 70>>
<TELL
"meanders in. \"You doing anything fun?\" he asks, and then answers
his own question, \"Nope. Same dumb boring things.\"">)
(<PROB 15>
<TELL
"rushes into the room and barrels into you. \"Oops, sorry,\" he says.
\"Floyd not looking at where he was going to.\"">)
(T
<TELL
"bounds into the room. \"Floyd here now!\" he cries.">)>
<COND (<AND ,PLATO-INTRODUCED
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
<MOVE ,PLATO ,HERE>
<TELL
" You notice that Plato has also roamed into view behind Floyd, once again
absorbed in his reading.">)>
<CRLF>)>
<MOVE ,FLOYD ,HERE>
<COND (<AND ,HANGING-IN-AIR
<NOT ,HANGING-COMMENT>>
<SETG FLOYD-SPOKE T>
<SETG HANGING-COMMENT T>
<TELL ,FLOYDS-HANGING-IN-AIR-COMMENT>)>)>
<SETG FLOYD-SPOKE <>>
<SETG FLOYD-FOLLOW <>>>
<ROUTINE I-EXPLOSIVE-MELT ("AUX" OLD-MELT-COUNTER)
<SET OLD-MELT-COUNTER ,MELT-COUNTER>
<SETG MELT-COUNTER
<+ ,MELT-COUNTER <COND (<AND <IN? ,EXPLOSIVE ,THERMOS>
<NOT <FSET? ,THERMOS ,OPENBIT>>>
</ ,C-ELAPSED 4>)
(T
,C-ELAPSED)>>>
<COND (<G? ,MELT-COUNTER 210>
<COND (<VISIBLE? ,EXPLOSIVE>
<TELL " The explosive " ,SUBLIMES-INTO-FREZONE>
<DEQUEUE I-EXPLOSIVE-MELT>
<REMOVE-CAREFULLY ,EXPLOSIVE>
<CRLF>)
(T
<REMOVE-CAREFULLY ,EXPLOSIVE>)>)
(<AND <VISIBLE? ,EXPLOSIVE>
,LIT>
<COND (<AND <G? ,MELT-COUNTER 170>
<NOT <G? .OLD-MELT-COUNTER 170>>>
<TELL " ">
<DESCRIBE-EXPLOSIVE>)
(<AND <G? ,MELT-COUNTER 130>
<NOT <G? .OLD-MELT-COUNTER 130>>>
<TELL " ">
<DESCRIBE-EXPLOSIVE>)>)>>
<ROUTINE I-TIMER ()
<QUEUE I-TIMER -1>
<SETG TIMER-SETTING <- ,TIMER-SETTING ,C-ELAPSED>>
<COND (<L? ,TIMER-SETTING 1>
<DEQUEUE I-TIMER>
<SETG TIMER-SETTING 0>)>
<COND (<VISIBLE? ,TIMER>
<TELL " The timer reaches " N ,TIMER-SETTING>
<COND (<EQUAL? ,TIMER-SETTING 0>
<TELL " and stops ticking">)>
<TELL ".">)>
<COND (<AND <EQUAL? ,TIMER-SETTING 0>
,TIMER-CONNECTED
<EQUAL? ,DETONATOR <LOC ,DIODE-M> <LOC ,DIODE-J>>>
<COND (<IN? ,DIODE-J ,DETONATOR>
<MOVE ,DIODE-J ,LOCAL-GLOBALS>
<COND (<VISIBLE? ,DETONATOR>
<TELL
" You hear a sizzling sound from the detonator">
<COND (<NOT <FSET? ,SPACESUIT ,WORNBIT>>
<TELL
", and a burnt odor assaults your nose">)>
<TELL ".">)>)
(,EXPLOSIVE-CONNECTED
<COND (<EQUAL? <META-LOC ,EXPLOSIVE> ,HERE>
<TELL
" The explosive fulfills its destiny by exploding. You simultaneously fulfill
your own destiny: turning into itsy-bitsy pieces of " ,LFC>
<JIGS-UP ".">)
(<IN? ,EXPLOSIVE ,DRILLED-HOLE>
<QUEUE I-LIGHTS-OUT <+ <RANDOM 200> 20>>
<FSET ,SAFE ,OPENBIT>
<FSET ,SAFE ,TOUCHBIT>
<FCLEAR ,SAFE ,LOCKEDBIT>)
(T
<DESTROY-EXPLOSIVE-CONT>)>
<COND (<NEXT-ROOM? ,TIMER>
<TELL
" You hear a deafening explosion from very nearby!" CR>)
(T
<TELL
" You hear a loud but distant explosion." CR>)>
<REMOVE ,TIMER>
<REMOVE ,EXPLOSIVE>
<REMOVE ,DETONATOR>)
(<VISIBLE? ,TIMER>
<TELL " You hear a click from the detonator.">)>)>
<COND (<VISIBLE? ,TIMER>
<CRLF>)>>
<ROUTINE I-LOG-READER ()
<SETG LOG-READER-COUNTER <+ ,LOG-READER-COUNTER 1>>
<COND (<NOT <FSET? ,LOG-READER ,ACTIVEBIT>>
<DEQUEUE I-LOG-READER>
<SETG LOG-READER-COUNTER 0>)
(<AND <EQUAL? ,LOG-READER-COUNTER 12>
<EQUAL? ,HERE ,COMMANDERS-OFFICE>>
<TELL " The reader begins producing a whining noise." CR>)
(<AND <EQUAL? ,LOG-READER-COUNTER 13>
<EQUAL? ,HERE ,COMMANDERS-OFFICE>>
<TELL
" The whine from the " 'LOG-READER " rises in pitch, and grows louder
by the millichron!" CR>)
(<EQUAL? ,LOG-READER-COUNTER 14>
<REMOVE ,LOG-READER>
<DEQUEUE I-LOG-READER>
<FCLEAR ,COMMANDERS-OFFICE ,TOUCHBIT>
<COND (<EQUAL? ,HERE ,COMMANDERS-OFFICE>
<JIGS-UP " The log reader explodes!">)
(<EQUAL? ,HERE ,COMMANDERS-QUARTERS ,BRIEFING-ROOM
,STATION-CONTROL ,SOUTH-JUNCTION>
<TELL " You hear an explosion from nearby." CR>)>)>>

274
misc.zap
View file

@ -133,130 +133,138 @@ START::
GET P-PRSO,1 >OBJ
SET 'NUM,ICNT
JUMP ?CND25
?CCL34: SET 'NUM,1
?CND25: ZERO? OBJ \?CND35
EQUAL? ICNT,1 \?CND35
?CCL34: GETB P-SYNTAX,P-SBITS
BAND STACK,P-SONUMS
EQUAL? STACK,2 \?CCL36
SET 'NUM,ICNT
JUMP ?CND25
?CCL36: SET 'NUM,1
?CND25: ZERO? OBJ \?CND37
EQUAL? ICNT,1 \?CND37
GET P-PRSI,1 >OBJ
?CND35: EQUAL? PRSA,V?WALK \?CCL41
CALL PERFORM-PRSA,PRSO >V
JUMP ?CND39
?CCL41: ZERO? NUM \?CCL43
?CND37: EQUAL? PRSA,V?WALK \?CCL43
CALL PERFORM,PRSA,PRSO >V
JUMP ?CND41
?CCL43: ZERO? NUM \?CCL45
GETB P-SYNTAX,P-SBITS
BAND STACK,P-SONUMS
ZERO? STACK \?CCL46
CALL PERFORM-PRSA >V
ZERO? STACK \?CCL48
CALL PERFORM,PRSA >V
SET 'PRSO,FALSE-VALUE
JUMP ?CND39
?CCL46: ZERO? LIT \?CCL48
JUMP ?CND41
?CCL48: ZERO? LIT \?CCL50
PRINT TOO-DARK
CRLF
CALL STOP
JUMP ?CND39
?CCL48: PRINTI "There isn't anything to "
JUMP ?CND41
?CCL50: PRINTI "There isn't anything to "
GET P-ITBL,P-VERBN >TMP
EQUAL? PRSA,V?TELL \?CCL51
EQUAL? PRSA,V?TELL \?CCL53
PRINTI "talk to"
JUMP ?CND49
?CCL51: ZERO? P-OFLAG \?CTR52
ZERO? P-MERGED /?CCL53
?CTR52: GET TMP,0
JUMP ?CND51
?CCL53: ZERO? P-OFLAG \?CTR54
ZERO? P-MERGED /?CCL55
?CTR54: GET TMP,0
PRINTB STACK
JUMP ?CND49
?CCL53: GETB TMP,2 >?TMP1
JUMP ?CND51
?CCL55: GETB TMP,2 >?TMP1
GETB TMP,3
CALL WORD-PRINT,?TMP1,STACK
?CND49: PRINTC 33
?CND51: PRINTC 33
CRLF
SET 'V,FALSE-VALUE
CALL STOP
JUMP ?CND39
?CCL43: SET 'P-NOT-HERE,0
JUMP ?CND41
?CCL45: SET 'P-NOT-HERE,0
SET 'P-MULT,FALSE-VALUE
GRTR? NUM,1 \?CND56
GRTR? NUM,1 \?CND58
SET 'P-MULT,TRUE-VALUE
?CND56: SET 'TMP,FALSE-VALUE
?PRG58: IGRTR? 'CNT,NUM \?CCL62
GRTR? P-NOT-HERE,0 \?CCL65
?CND58: SET 'TMP,FALSE-VALUE
?PRG60: IGRTR? 'CNT,NUM \?CCL64
GRTR? P-NOT-HERE,0 \?CCL67
PRINTI "[The "
EQUAL? P-NOT-HERE,NUM /?CND66
EQUAL? P-NOT-HERE,NUM /?CND68
PRINTI "other "
?CND66: PRINTI "object"
EQUAL? P-NOT-HERE,1 /?CND68
?CND68: PRINTI "object"
EQUAL? P-NOT-HERE,1 /?CND70
PRINTC 115
?CND68: PRINTI " that you mentioned "
EQUAL? P-NOT-HERE,1 /?CCL72
?CND70: PRINTI " that you mentioned "
EQUAL? P-NOT-HERE,1 /?CCL74
PRINTI "are"
JUMP ?CND70
?CCL72: PRINTI "is"
?CND70: PRINTI "n't here.]"
JUMP ?CND72
?CCL74: PRINTI "is"
?CND72: PRINTI "n't here.]"
CRLF
JUMP ?CND39
?CCL65: ZERO? TMP \?CND39
JUMP ?CND41
?CCL67: ZERO? TMP \?CND41
CALL REFERRING
JUMP ?CND39
?CCL62: ZERO? PTBL /?CCL76
JUMP ?CND41
?CCL64: ZERO? PTBL /?CCL78
GET P-PRSO,CNT >OBJ1
JUMP ?CND74
?CCL76: GET P-PRSI,CNT >OBJ1
?CND74: ZERO? PTBL /?CCL79
JUMP ?CND76
?CCL78: GET P-PRSI,CNT >OBJ1
?CND76: ZERO? PTBL /?CCL81
SET 'PRSO,OBJ1
JUMP ?CND77
?CCL79: SET 'PRSO,OBJ
?CND77: ZERO? PTBL /?CCL82
JUMP ?CND79
?CCL81: SET 'PRSO,OBJ
?CND79: ZERO? PTBL /?CCL84
SET 'PRSI,OBJ
JUMP ?CND80
?CCL82: SET 'PRSI,OBJ1
?CND80: GRTR? NUM,1 /?CCL84
JUMP ?CND82
?CCL84: SET 'PRSI,OBJ1
?CND82: GRTR? NUM,1 /?CCL86
GET P-ITBL,P-NC1
GET STACK,0
EQUAL? STACK,W?ALL,W?BOTH,W?EVERYT \?CND83
?CCL84: CALL DONT-ALL,OBJ1
ZERO? STACK \?PRG58
EQUAL? OBJ1,IT \?CCL92
EQUAL? STACK,W?ALL,W?BOTH,W?EVERYT \?CND85
?CCL86: CALL DONT-ALL,OBJ1
ZERO? STACK \?PRG60
EQUAL? OBJ1,IT \?CCL94
PRINTD P-IT-OBJECT
JUMP ?CND90
?CCL92: EQUAL? OBJ1,HIM \?CCL94
JUMP ?CND92
?CCL94: EQUAL? OBJ1,HIM \?CCL96
PRINTD P-HIM-OBJECT
JUMP ?CND90
?CCL94: PRINTD OBJ1
?CND90: PRINTI ": "
?CND83: SET 'TMP,TRUE-VALUE
CALL PERFORM-PRSA,PRSO,PRSI >V
EQUAL? V,M-FATAL \?PRG58
?CND39: EQUAL? V,M-FATAL \?CND97
JUMP ?CND92
?CCL96: PRINTD OBJ1
?CND92: PRINTI ": "
?CND85: SET 'TMP,TRUE-VALUE
CALL PERFORM,PRSA,PRSO,PRSI >V
EQUAL? V,M-FATAL \?PRG60
SET 'P-CONT,FALSE-VALUE
?CND97: CALL CLOCKER-VERB?
ZERO? STACK /?CCL101
EQUAL? PRSA,V?TELL /?CCL101
ZERO? P-WON /?CCL101
SET 'QUOTE-FLAG,FALSE-VALUE
?CND41: EQUAL? V,M-FATAL \?CND99
SET 'P-CONT,FALSE-VALUE
?CND99: CALL CLOCKER-VERB?
ZERO? STACK /?CCL103
EQUAL? PRSA,V?TELL /?CCL103
ZERO? P-WON /?CCL103
CALL RUNNING?,I-SPACETRUCK
ZERO? STACK /?CND105
LESS? SPACETRUCK-COUNTER,5 \?CND105
ZERO? STACK /?CND107
LESS? SPACETRUCK-COUNTER,5 \?CND107
SET 'C-ELAPSED,240
?CND105: GETP HERE,P?ACTION
?CND107: GETP HERE,P?ACTION
CALL STACK,M-END >V
JUMP ?CND1
?CCL101: SET 'C-ELAPSED,0
?CCL103: SET 'C-ELAPSED,0
JUMP ?CND1
?CCL3: SET 'P-CONT,FALSE-VALUE
?CND1: ZERO? P-WON /?CND109
?CND1: ZERO? P-WON /?CND111
ADD INTERNAL-MOVES,C-ELAPSED >INTERNAL-MOVES
FSET? CHRONOMETER,WORNBIT \?CCL113
LESS? DAY,3 \?CCL116
FSET? CHRONOMETER,WORNBIT \?CCL115
LESS? DAY,3 \?CCL118
SET 'MOVES,INTERNAL-MOVES
JUMP ?CND111
?CCL116: SET 'MOVES,9947
JUMP ?CND111
?CCL113: SET 'MOVES,0
?CND111: ZERO? C-ELAPSED /?CND117
JUMP ?CND113
?CCL118: SET 'MOVES,9947
JUMP ?CND113
?CCL115: SET 'MOVES,0
?CND113: ZERO? C-ELAPSED /?CND119
CALL CLOCKER >V
?CND117: SET 'POSTPONE-ATTACK,FALSE-VALUE
?CND119: SET 'POSTPONE-ATTACK,FALSE-VALUE
SET 'FLOYD-TRYTAKEN,FALSE-VALUE
SET 'P-PRSA-WORD,FALSE-VALUE
SET 'P-NUMBER,0
SET 'PRSA,FALSE-VALUE
SET 'PRSO,FALSE-VALUE
SET 'PRSI,FALSE-VALUE
?CND109: SET 'C-ELAPSED,7
?CND111: SET 'C-ELAPSED,7
RETURN C-ELAPSED
@ -335,87 +343,68 @@ START::
PRINTR "?]"
.FUNCT PERFORM-PRSA,O=0,I=0
CALL PERFORM,PRSA,O,I
RTRUE
.FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI
ZERO? DEBUG /?CND1
PRINTI "[Perform: "
PRINTN A
ZERO? O /?CND3
PRINTI " / PRSO = "
EQUAL? A,V?WALK /?CCL7
PRINTD O
JUMP ?CND3
?CCL7: PRINTN O
?CND3: ZERO? I /?CND8
PRINTI " / PRSI = "
PRINTD I
?CND8: PRINTC 93
CRLF
?CND1: SET 'OA,PRSA
SET 'OA,PRSA
SET 'OO,PRSO
SET 'OI,PRSI
SET 'PRSA,A
ZERO? P-WALK-DIR \?CND10
EQUAL? IT,O,I \?CND10
ZERO? P-WALK-DIR \?CND1
EQUAL? IT,O,I \?CND1
CALL VISIBLE?,P-IT-OBJECT
ZERO? STACK /?CCL16
EQUAL? IT,O \?CCL19
ZERO? STACK /?CCL7
EQUAL? IT,O \?CCL10
SET 'O,P-IT-OBJECT
JUMP ?CND10
?CCL19: SET 'I,P-IT-OBJECT
?CND10: ZERO? P-WALK-DIR \?CND25
EQUAL? HIM,O,I \?CND25
JUMP ?CND1
?CCL10: SET 'I,P-IT-OBJECT
?CND1: ZERO? P-WALK-DIR \?CND16
EQUAL? HIM,O,I \?CND16
CALL VISIBLE?,P-HIM-OBJECT
ZERO? STACK /?CCL31
EQUAL? HIM,O \?CCL34
ZERO? STACK /?CCL22
EQUAL? HIM,O \?CCL25
SET 'O,P-HIM-OBJECT
JUMP ?CND25
?CCL16: ZERO? I \?CCL22
JUMP ?CND16
?CCL7: ZERO? I \?CCL13
CALL FAKE-ORPHAN,TRUE-VALUE
RETURN 8
?CCL22: CALL REFERRING
?CCL13: CALL REFERRING
RETURN 8
?CCL34: SET 'I,P-HIM-OBJECT
?CND25: SET 'PRSO,O
?CCL25: SET 'I,P-HIM-OBJECT
?CND16: SET 'PRSO,O
SET 'PRSI,I
EQUAL? A,V?WALK /?CCL42
EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?CCL42
EQUAL? A,V?WALK /?CCL33
EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?CCL33
CALL D-APPLY,STR?1,NOT-HERE-OBJECT-F >V
ZERO? V /?CCL42
ZERO? V /?CCL33
SET 'P-WON,FALSE-VALUE
JUMP ?CND40
?CCL31: ZERO? I \?CCL37
JUMP ?CND31
?CCL22: ZERO? I \?CCL28
CALL FAKE-ORPHAN
RETURN 8
?CCL37: CALL REFERRING,TRUE-VALUE
?CCL28: CALL REFERRING,TRUE-VALUE
RETURN 8
?CCL42: SET 'O,PRSO
?CCL33: SET 'O,PRSO
SET 'I,PRSI
CALL THIS-IS-IT,PRSI
CALL THIS-IS-IT,PRSO
GETP WINNER,P?ACTION
CALL D-APPLY,STR?2,STACK >V
ZERO? V \?CND40
ZERO? V \?CND31
GET PREACTIONS,A
CALL D-APPLY,STR?3,STACK >V
ZERO? V \?CND40
ZERO? I /?CCL52
ZERO? V \?CND31
ZERO? I /?CCL43
GETP I,P?ACTION
CALL D-APPLY,STR?4,STACK >V
ZERO? V \?CND40
?CCL52: ZERO? O /?CCL56
EQUAL? A,V?WALK /?CCL56
ZERO? V \?CND31
?CCL43: ZERO? O /?CCL47
EQUAL? A,V?WALK /?CCL47
GETP O,P?ACTION
CALL D-APPLY,STR?5,STACK >V
ZERO? V \?CND40
?CCL56: GET ACTIONS,A
ZERO? V \?CND31
?CCL47: GET ACTIONS,A
CALL D-APPLY,FALSE-VALUE,STACK >V
ZERO? V /?CND40
?CND40: SET 'PRSA,OA
ZERO? V /?CND31
?CND31: SET 'PRSA,OA
SET 'PRSO,OO
SET 'PRSI,OI
RETURN V
@ -423,30 +412,11 @@ START::
.FUNCT D-APPLY,STR,FCN,FOO=0,RES
ZERO? FCN /FALSE
ZERO? DEBUG /?CND4
ZERO? STR \?CCL8
PRINTI " Default ->"
CRLF
JUMP ?CND4
?CCL8: PRINTI " "
PRINT STR
PRINTI " -> "
?CND4: ZERO? FOO /?CCL11
ZERO? FOO /?CCL6
CALL FCN,FOO >RES
JUMP ?CND9
?CCL11: CALL FCN >RES
?CND9: ZERO? DEBUG /?CND12
ZERO? STR /?CND12
EQUAL? RES,M-FATAL \?CCL18
PRINTI "Fatal"
CRLF
RETURN RES
?CCL18: ZERO? RES \?CCL20
PRINTI "Not handled"
?CCL6: CALL FCN >RES
RETURN RES
?CCL20: PRINTI "Handled"
CRLF
?CND12: RETURN RES
.FUNCT DEQUEUE,RTN

View file

@ -157,9 +157,9 @@
<CONSTANT M-ENTER 3>
<CONSTANT M-EXIT 4>
<CONSTANT M-LOOK 5>
<CONSTANT M-FATAL 6>
<CONSTANT M-OBJDESC 7>
<CONSTANT M-OBJDESC? 8>
<CONSTANT M-OBJDESC 6>
<CONSTANT M-OBJDESC? 7>
<CONSTANT M-FATAL 8> ;"must always be 8--compiler turns RFATAL into RETURN 8"
<ZSTART GO> ;"else, ZIL gets confused between verb-word GO and routine GO"
@ -259,16 +259,18 @@ Alpha-Mu-79 to pick up a supply of " ,FORM-NAME ,ELLIPSIS>
<SET TBL ,P-PRSI>
<SET OBJ <GET ,P-PRSO 1>>
.ICNT)
(T
(<EQUAL? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS> 2>
.ICNT ;"catch case of 'give floyd all' 4/27/87 PDL")
(T
1)>>
<COND (<AND <NOT .OBJ>
<1? .ICNT>>
<SET OBJ <GET ,P-PRSI 1>>)>
<COND (<EQUAL? ,PRSA ,V?WALK>
<SET V <PERFORM-PRSA ,PRSO>>)
<SET V <PERFORM ,PRSA ,PRSO>>)
(<0? .NUM>
<COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
<SET V <PERFORM-PRSA>>
<SET V <PERFORM ,PRSA>>
<SETG PRSO <>>)
(<NOT ,LIT>
<TELL ,TOO-DARK CR>
@ -338,8 +340,10 @@ Alpha-Mu-79 to pick up a supply of " ,FORM-NAME ,ELLIPSIS>
<TELL D .OBJ1>)>
<TELL ": ">)>)>
<SET TMP T>
<SET V <PERFORM-PRSA ,PRSO ,PRSI>>
<SET V <PERFORM ,PRSA ,PRSO ,PRSI>>
<COND (<EQUAL? .V ,M-FATAL>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<RETURN>)>)>>)>
<COND (<EQUAL? .V ,M-FATAL>
<SETG P-CONT <>>)>
@ -370,6 +374,7 @@ Alpha-Mu-79 to pick up a supply of " ,FORM-NAME ,ELLIPSIS>
<SETG P-PRSA-WORD <>>
;"else, when input is just a direction, P-PRSA-WORD will remain
whatever it was for the previous turn"
<SETG P-NUMBER 0>
<SETG PRSA <>>
<SETG PRSO <>>
<SETG PRSI <>>)>
@ -460,12 +465,12 @@ Alpha-Mu-79 to pick up a supply of " ,FORM-NAME ,ELLIPSIS>
<PREP-PRINT <GETB ,P-SYNTAX ,P-SPREP1>>
<TELL "?]" CR>>
<ROUTINE PERFORM-PRSA ("OPTIONAL" (O <>) (I <>))
;<ROUTINE PERFORM-PRSA ("OPTIONAL" (O <>) (I <>))
<PERFORM ,PRSA .O .I>
<RTRUE>>
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[Perform: ">
%<COND (<GASSIGNED? ZILCH>
'<TELL N .A>)
@ -483,7 +488,8 @@ Alpha-Mu-79 to pick up a supply of " ,FORM-NAME ,ELLIPSIS>
<SET OO ,PRSO>
<SET OI ,PRSI>
<SETG PRSA .A>
<COND (<AND <NOT ,P-WALK-DIR> <EQUAL? ,IT .O .I>>
<COND (<AND <NOT ,P-WALK-DIR>
<EQUAL? ,IT .O .I>>
<COND (<VISIBLE? ,P-IT-OBJECT>
<COND (<EQUAL? ,IT .O>
<SET O ,P-IT-OBJECT>)
@ -556,9 +562,10 @@ Alpha-Mu-79 to pick up a supply of " ,FORM-NAME ,ELLIPSIS>
.V>
<ROUTINE D-APPLY (STR FCN "OPTIONAL" (FOO <>) "AUX" RES)
<COND (<NOT .FCN> <>)
<COND (<NOT .FCN>
<>)
(T
<COND (,DEBUG
;<COND (,DEBUG
<COND (<NOT .STR>
<TELL " Default ->" CR>)
(T
@ -567,7 +574,7 @@ Alpha-Mu-79 to pick up a supply of " ,FORM-NAME ,ELLIPSIS>
<APPLY .FCN .FOO>)
(T
<APPLY .FCN>)>>
<COND (<AND ,DEBUG
;<COND (<AND ,DEBUG
.STR>
<COND (<EQUAL? .RES ,M-FATAL>
<TELL "Fatal" CR>)

View file

@ -44,7 +44,6 @@
EQUAL? PROTAGONIST,WINNER \?CND17
CRLF
?CND17: SET 'RESERVE-PTR,FALSE-VALUE
SET 'P-CONT,FALSE-VALUE
JUMP ?CND14
?CCL16: ZERO? P-CONT /?CCL22
SET 'PTR,P-CONT
@ -52,7 +51,6 @@
ZERO? ELIMINATE-CR \?CND23
CRLF
?CND23: SET 'ELIMINATE-CR,FALSE-VALUE
SET 'P-CONT,FALSE-VALUE
JUMP ?CND14
?CCL22: SET 'WINNER,PROTAGONIST
SET 'QUOTE-FLAG,FALSE-VALUE
@ -63,29 +61,32 @@
ZERO? VERBOSITY /?CND29
CRLF
?CND29: PRINTC 62
READ P-INBUF,P-LEXV
GET OOPS-TABLE,O-PTR
ZERO? STACK \?CND31
PUT OOPS-TABLE,O-END,FALSE-VALUE
?CND31: READ P-INBUF,P-LEXV
GETB P-LEXV,P-LEXWORDS >OLEN
?CND14: GETB P-LEXV,P-LEXWORDS >P-LEN
ZERO? P-LEN \?CCL33
ZERO? P-LEN \?CCL35
PRINTI "[I beg your pardon?]"
CRLF
RFALSE
?CCL33: GET P-LEXV,PTR
EQUAL? STACK,W?OOPS \?CCL35
?CCL35: GET P-LEXV,PTR
EQUAL? STACK,W?OOPS \?CCL37
ADD PTR,P-LEXELEN
GET P-LEXV,STACK
EQUAL? STACK,W?PERIOD,W?COMMA \?CND36
EQUAL? STACK,W?PERIOD,W?COMMA \?CND38
ADD PTR,P-LEXELEN >PTR
DEC 'P-LEN
?CND36: GRTR? P-LEN,1 /?CCL40
?CND38: GRTR? P-LEN,1 /?CCL42
CALL CANT-USE-THAT-WAY,STR?6
RFALSE
?CCL40: GET OOPS-TABLE,O-PTR
ZERO? STACK /?CCL42
GRTR? P-LEN,2 \?CND43
?CCL42: GET OOPS-TABLE,O-PTR
ZERO? STACK /?CCL44
GRTR? P-LEN,2 \?CND45
PRINTI "[Warning: Only the first word after OOPS is used.]"
CRLF
?CND43: GET OOPS-TABLE,O-PTR >?TMP1
?CND45: GET OOPS-TABLE,O-PTR >?TMP1
ADD PTR,P-LEXELEN
GET P-LEXV,STACK
PUT AGAIN-LEXV,?TMP1,STACK
@ -104,67 +105,72 @@
GETB P-LEXV,P-LEXWORDS >P-LEN
GET OOPS-TABLE,O-START >PTR
CALL INBUF-STUFF,P-INBUF,OOPS-INBUF
JUMP ?CND31
?CCL42: PUT OOPS-TABLE,O-END,FALSE-VALUE
JUMP ?CND33
?CCL44: PUT OOPS-TABLE,O-END,FALSE-VALUE
PRINTI "[There was no word to replace!]"
CRLF
RFALSE
?CCL35: PUT OOPS-TABLE,O-END,FALSE-VALUE
?CND31: GET P-LEXV,PTR
EQUAL? STACK,W?AGAIN,W?G \?CCL47
ZERO? P-OFLAG /?CCL50
?CCL37: ZERO? P-CONT \?CND33
PUT OOPS-TABLE,O-END,FALSE-VALUE
?CND33: SET 'P-CONT,FALSE-VALUE
GET P-LEXV,PTR
EQUAL? STACK,W?AGAIN,W?G \?CCL50
GETB OOPS-INBUF,1
ZERO? STACK \?CCL53
PRINTI "[What do you want to do again?]"
CRLF
RFALSE
?CCL53: ZERO? P-OFLAG /?CCL55
CALL CANT-USE-THAT-WAY,STR?7
RFALSE
?CCL50: ZERO? P-WON \?CCL52
?CCL55: ZERO? P-WON \?CCL57
PRINTI "[That would just repeat a mistake!]"
CRLF
RFALSE
?CCL52: EQUAL? OWINNER,PROTAGONIST /?CCL54
?CCL57: EQUAL? OWINNER,PROTAGONIST /?CCL59
CALL VISIBLE?,OWINNER
ZERO? STACK \?CCL54
PRINTC 91
PRINT YOU-CANT
PRINTI "see "
ZERO? STACK \?CCL59
PRINTI "[You can't see "
PRINTD OWINNER
PRINTI " any more.]"
CRLF
RFALSE
?CCL54: GRTR? P-LEN,1 \?CCL58
?CCL59: GRTR? P-LEN,1 \?CCL63
ADD PTR,P-LEXELEN
GET P-LEXV,STACK
EQUAL? STACK,W?PERIOD,W?COMMA,W?THEN /?CTR60
EQUAL? STACK,W?PERIOD,W?COMMA,W?THEN /?CTR65
ADD PTR,P-LEXELEN
GET P-LEXV,STACK
EQUAL? STACK,W?AND \?CCL61
?CTR60: ADD PTR,4 >PTR
EQUAL? STACK,W?AND \?CCL66
?CTR65: ADD PTR,4 >PTR
GETB P-LEXV,P-LEXWORDS
SUB STACK,2
PUTB P-LEXV,P-LEXWORDS,STACK
JUMP ?CND48
?CCL61: CALL RECOGNIZE
JUMP ?CND51
?CCL66: CALL RECOGNIZE
RFALSE
?CCL58: ADD PTR,P-LEXELEN >PTR
?CCL63: ADD PTR,P-LEXELEN >PTR
GETB P-LEXV,P-LEXWORDS
SUB STACK,1
PUTB P-LEXV,P-LEXWORDS,STACK
?CND48: GETB P-LEXV,P-LEXWORDS
GRTR? STACK,0 \?CCL66
?CND51: GETB P-LEXV,P-LEXWORDS
GRTR? STACK,0 \?CCL71
CALL STUFF,RESERVE-LEXV,P-LEXV
CALL INBUF-STUFF,RESERVE-INBUF,P-INBUF
SET 'RESERVE-PTR,PTR
JUMP ?CND64
?CCL66: SET 'RESERVE-PTR,FALSE-VALUE
?CND64: SET 'WINNER,OWINNER
JUMP ?CND69
?CCL71: SET 'RESERVE-PTR,FALSE-VALUE
?CND69: SET 'WINNER,OWINNER
SET 'P-MERGED,OMERGED
CALL INBUF-STUFF,P-INBUF,OOPS-INBUF
CALL STUFF,P-LEXV,AGAIN-LEXV
SET 'CNT,-1
SET 'DIR,AGAIN-DIR
?PRG67: IGRTR? 'CNT,P-ITBLLEN /?CND45
?PRG72: IGRTR? 'CNT,P-ITBLLEN /?CND48
GET P-OTBL,CNT
PUT P-ITBL,CNT,STACK
JUMP ?PRG67
?CCL47: CALL STUFF,AGAIN-LEXV,P-LEXV
JUMP ?PRG72
?CCL50: CALL STUFF,AGAIN-LEXV,P-LEXV
CALL INBUF-STUFF,OOPS-INBUF,P-INBUF
PUT OOPS-TABLE,O-START,PTR
MUL 4,P-LEN
@ -173,77 +179,80 @@
MUL P-LEXELEN,STACK
ADD PTR,STACK
MUL 2,STACK >LEN
GET OOPS-TABLE,O-END
ZERO? STACK \?CND77
SUB LEN,1
GETB P-LEXV,STACK >?TMP1
SUB LEN,2
GETB P-LEXV,STACK
ADD ?TMP1,STACK
PUT OOPS-TABLE,O-END,STACK
SET 'RESERVE-PTR,FALSE-VALUE
?CND77: SET 'RESERVE-PTR,FALSE-VALUE
SET 'LEN,P-LEN
SET 'P-NCN,0
SET 'P-GETFLAGS,0
?PRG72: DLESS? 'P-LEN,0 \?CCL76
?PRG79: DLESS? 'P-LEN,0 \?CCL83
SET 'QUOTE-FLAG,FALSE-VALUE
JUMP ?CND45
?CCL76: GET P-LEXV,PTR >WRD
JUMP ?CND48
?CCL83: GET P-LEXV,PTR >WRD
CALL NAUGHTY-WORD?,WRD
ZERO? STACK \FALSE
GET P-LEXV,PTR >WRD
ZERO? WRD \?CTR79
ZERO? WRD \?CTR86
CALL NUMBER?,PTR >WRD
ZERO? WRD /?CCL80
?CTR79: CALL NEXT-WORD,PTR >NW
EQUAL? WRD,W?TO \?CCL85
EQUAL? VERB,ACT?TELL,ACT?ASK \?CCL85
ZERO? WRD /?CCL87
?CTR86: CALL NEXT-WORD,PTR >NW
EQUAL? WRD,W?TO \?CCL92
EQUAL? VERB,ACT?TELL,ACT?ASK \?CCL92
CALL WT?,NW,64,1
ZERO? STACK /?CCL85
ZERO? STACK /?CCL92
PUT P-ITBL,P-VERB,ACT?TELL
SET 'WRD,W?QUOTE
JUMP ?CND83
?CCL85: EQUAL? WRD,W?THEN \?CND83
GRTR? P-LEN,0 \?CND83
ZERO? VERB \?CND83
ZERO? QUOTE-FLAG \?CND83
JUMP ?CND90
?CCL92: EQUAL? WRD,W?THEN \?CND90
GRTR? P-LEN,0 \?CND90
ZERO? VERB \?CND90
ZERO? QUOTE-FLAG \?CND90
PUT P-ITBL,P-VERB,ACT?TELL
PUT P-ITBL,P-VERBN,0
SET 'WRD,W?QUOTE
?CND83: EQUAL? WRD,W?THEN,W?PERIOD /?CTR95
EQUAL? WRD,W?QUOTE \?CCL96
?CTR95: EQUAL? WRD,W?QUOTE \?CND99
ZERO? QUOTE-FLAG /?CCL103
?CND90: EQUAL? WRD,W?THEN,W?PERIOD /?CTR102
EQUAL? WRD,W?QUOTE \?CCL103
?CTR102: EQUAL? WRD,W?QUOTE \?CND106
ZERO? QUOTE-FLAG /?CCL110
SET 'QUOTE-FLAG,FALSE-VALUE
JUMP ?CND99
?CCL103: SET 'QUOTE-FLAG,TRUE-VALUE
?CND99: ZERO? P-LEN /?PEN104
JUMP ?CND106
?CCL110: SET 'QUOTE-FLAG,TRUE-VALUE
?CND106: ZERO? P-LEN /?PEN111
ADD PTR,P-LEXELEN >P-CONT
?PEN104: PUTB P-LEXV,P-LEXWORDS,P-LEN
JUMP ?CND45
?CCL96: CALL WT?,WRD,16,3 >VAL
ZERO? VAL /?CCL107
EQUAL? VERB,FALSE-VALUE,ACT?WALK,ACT?GO \?CCL107
EQUAL? LEN,1 /?CTR106
EQUAL? LEN,2 \?PRD113
EQUAL? VERB,ACT?WALK,ACT?GO /?CTR106
?PRD113: EQUAL? NW,W?THEN,W?PERIOD,W?QUOTE \?PRD116
LESS? LEN,2 \?CTR106
?PRD116: ZERO? QUOTE-FLAG /?PRD119
EQUAL? LEN,2 \?PRD119
EQUAL? NW,W?QUOTE /?CTR106
?PRD119: GRTR? LEN,2 \?CCL107
EQUAL? NW,W?COMMA,W?AND \?CCL107
?CTR106: SET 'DIR,VAL
EQUAL? NW,W?COMMA,W?AND \?CND125
?PEN111: PUTB P-LEXV,P-LEXWORDS,P-LEN
JUMP ?CND48
?CCL103: CALL WT?,WRD,16,3 >VAL
ZERO? VAL /?CCL114
EQUAL? VERB,FALSE-VALUE,ACT?WALK,ACT?GO \?CCL114
EQUAL? LEN,1 /?CTR113
EQUAL? LEN,2 \?PRD120
EQUAL? VERB,ACT?WALK,ACT?GO /?CTR113
?PRD120: EQUAL? NW,W?THEN,W?PERIOD,W?QUOTE \?PRD123
LESS? LEN,2 \?CTR113
?PRD123: ZERO? QUOTE-FLAG /?PRD126
EQUAL? LEN,2 \?PRD126
EQUAL? NW,W?QUOTE /?CTR113
?PRD126: GRTR? LEN,2 \?CCL114
EQUAL? NW,W?COMMA,W?AND \?CCL114
?CTR113: SET 'DIR,VAL
EQUAL? NW,W?COMMA,W?AND \?CND132
ADD PTR,P-LEXELEN
CALL CHANGE-LEXV,STACK,W?THEN
?CND125: GRTR? LEN,2 /?CND74
?CND132: GRTR? LEN,2 /?CND81
SET 'QUOTE-FLAG,FALSE-VALUE
JUMP ?CND45
?CCL107: CALL WT?,WRD,64,1 >VAL
ZERO? VAL /?CCL130
ZERO? VERB \?CCL130
JUMP ?CND48
?CCL114: CALL WT?,WRD,64,1 >VAL
ZERO? VAL /?CCL137
ZERO? VERB \?CCL137
ZERO? P-OFLAG \?CND140
SET 'P-PRSA-WORD,WRD
SET 'VERB,VAL
?CND140: SET 'VERB,VAL
PUT P-ITBL,P-VERB,VAL
PUT P-ITBL,P-VERBN,P-VTBL
PUT P-VTBL,0,WRD
@ -254,70 +263,70 @@
ADD CNT,1
GETB P-LEXV,STACK
PUTB P-VTBL,3,STACK
JUMP ?CND74
?CCL130: CALL WT?,WRD,8,0 >VAL
ZERO? VAL \?CTR133
EQUAL? WRD,W?ALL,W?ONE,W?BOTH /?CTR133
EQUAL? WRD,W?EVERYT /?CTR133
JUMP ?CND81
?CCL137: CALL WT?,WRD,8,0 >VAL
ZERO? VAL \?CTR142
EQUAL? WRD,W?ALL,W?ONE,W?BOTH /?CTR142
EQUAL? WRD,W?EVERYT /?CTR142
CALL WT?,WRD,32
ZERO? STACK \?CTR133
ZERO? STACK \?CTR142
CALL WT?,WRD,128
ZERO? STACK /?CCL134
?CTR133: ZERO? VAL /?CND140
EQUAL? WRD,W?BACK \?CND140
EQUAL? VERB,ACT?HAND /?CND140
ZERO? STACK /?CCL143
?CTR142: ZERO? VAL /?CND149
EQUAL? WRD,W?BACK \?CND149
EQUAL? VERB,ACT?HAND /?CND149
SET 'VAL,0
?CND140: GRTR? P-LEN,0 \?CCL146
EQUAL? NW,W?OF \?CCL146
ZERO? VAL \?CCL146
EQUAL? WRD,W?ALL,W?ONE,W?A /?CCL146
EQUAL? WRD,W?BOTH,W?EVERYT \?CND74
?CCL146: ZERO? VAL /?CCL153
ZERO? P-LEN /?CTR152
EQUAL? NW,W?THEN,W?PERIOD \?CCL153
?CTR152: SET 'P-END-ON-PREP,TRUE-VALUE
LESS? P-NCN,2 \?CND74
?CND149: GRTR? P-LEN,0 \?CCL155
EQUAL? NW,W?OF \?CCL155
ZERO? VAL \?CCL155
EQUAL? WRD,W?ALL,W?ONE,W?A /?CCL155
EQUAL? WRD,W?BOTH,W?EVERYT \?CND81
?CCL155: ZERO? VAL /?CCL162
ZERO? P-LEN /?CTR161
EQUAL? NW,W?THEN,W?PERIOD \?CCL162
?CTR161: SET 'P-END-ON-PREP,TRUE-VALUE
LESS? P-NCN,2 \?CND81
PUT P-ITBL,P-PREP1,VAL
PUT P-ITBL,P-PREP1N,WRD
JUMP ?CND74
?CCL153: EQUAL? P-NCN,2 \?CCL161
JUMP ?CND81
?CCL162: EQUAL? P-NCN,2 \?CCL170
PRINTI "[There were too many nouns in that sentence.]"
CRLF
RFALSE
?CCL161: INC 'P-NCN
?CCL170: INC 'P-NCN
CALL CLAUSE,PTR,VAL,WRD >PTR
ZERO? PTR /FALSE
LESS? PTR,0 \?CND74
LESS? PTR,0 \?CND81
SET 'QUOTE-FLAG,FALSE-VALUE
?CND45: PUT OOPS-TABLE,O-PTR,FALSE-VALUE
ZERO? DIR /?CND172
?CND48: PUT OOPS-TABLE,O-PTR,FALSE-VALUE
ZERO? DIR /?CND181
SET 'PRSA,V?WALK
SET 'PRSO,DIR
SET 'P-OFLAG,FALSE-VALUE
SET 'P-WALK-DIR,DIR
SET 'AGAIN-DIR,DIR
RTRUE
?CCL134: CALL WT?,WRD,4
ZERO? STACK \?CND74
EQUAL? VERB,ACT?TELL \?CCL168
?CCL143: CALL WT?,WRD,4
ZERO? STACK \?CND81
EQUAL? VERB,ACT?TELL \?CCL177
CALL WT?,WRD,64,1
ZERO? STACK /?CCL168
EQUAL? WINNER,PROTAGONIST \?CCL168
ZERO? STACK /?CCL177
EQUAL? WINNER,PROTAGONIST \?CCL177
PRINTI "[The way to speak to other characters is described in the instruction manual section entitled ""Communicating With Infocom's Interactive Fiction.""]"
CRLF
RFALSE
?CCL168: CALL CANT-USE,PTR
?CCL177: CALL CANT-USE,PTR
RFALSE
?CCL80: CALL UNKNOWN-WORD,PTR
?CCL87: CALL UNKNOWN-WORD,PTR
RFALSE
?CND74: SET 'LW,WRD
?CND81: SET 'LW,WRD
ADD PTR,P-LEXELEN >PTR
JUMP ?PRG72
?CND172: SET 'P-WALK-DIR,FALSE-VALUE
JUMP ?PRG79
?CND181: SET 'P-WALK-DIR,FALSE-VALUE
SET 'AGAIN-DIR,FALSE-VALUE
ZERO? P-OFLAG /?CND174
ZERO? P-OFLAG /?CND183
CALL ORPHAN-MERGE
?CND174: CALL SYNTAX-CHECK
?CND183: CALL SYNTAX-CHECK
ZERO? STACK /FALSE
CALL SNARF-OBJECTS
ZERO? STACK /FALSE
@ -412,14 +421,10 @@
RSTACK
.FUNCT NEXT-WORD,PTR,NW
.FUNCT NEXT-WORD,PTR
ZERO? P-LEN /FALSE
ADD PTR,P-LEXELEN
GET P-LEXV,STACK >NW
ZERO? NW /?CCL6
RETURN NW
?CCL6: ADD PTR,P-LEXELEN
CALL NUMBER?,STACK
GET P-LEXV,STACK
RSTACK
@ -545,8 +550,8 @@
MUL PTR,2
ADD P-LEXV,STACK
GETB STACK,3 >BPTR
?PRG1: GRTR? SUM,10000 /FALSE
DLESS? 'CNT,0 /?REP2
?PRG1: DLESS? 'CNT,0 /?REP2
GRTR? SUM,6553 /FALSE
GETB P-INBUF,BPTR >CHR
LESS? CHR,58 \?CCL10
GRTR? CHR,47 \?CCL10
@ -637,15 +642,17 @@
GET STACK,0 >WRD
CALL WT?,WRD,64,1 >?TMP1
GET P-OTBL,P-VERB
EQUAL? ?TMP1,STACK \?CCL3
SET 'VRB,TRUE-VALUE
EQUAL? ?TMP1,STACK /?CTR2
CALL WT?,WRD,32
ZERO? STACK /?CCL3
?CTR2: SET 'VRB,TRUE-VALUE
SET 'ADJ,TRUE-VALUE
JUMP ?CND1
?CCL3: CALL WT?,WRD,32
ZERO? STACK /?CCL5
ZERO? STACK /?CCL7
SET 'ADJ,TRUE-VALUE
JUMP ?CND1
?CCL5: CALL WT?,WRD,128,0
?CCL7: CALL WT?,WRD,128,0
ZERO? STACK /?CND1
ZERO? P-NCN \?CND1
PUT P-ITBL,P-VERB,0
@ -656,95 +663,95 @@
PUT P-ITBL,P-NC1L,STACK
SET 'P-NCN,1
?CND1: GET P-ITBL,P-VERB >VERB
ZERO? VERB /?CCL11
ZERO? ADJ \?CCL11
ZERO? VERB /?CCL13
ZERO? ADJ \?CCL13
GET P-OTBL,P-VERB
EQUAL? VERB,STACK \FALSE
?CCL11: EQUAL? P-NCN,2 /FALSE
?CCL13: EQUAL? P-NCN,2 /FALSE
GET P-OTBL,P-NC1
EQUAL? STACK,1 \?CCL18
EQUAL? STACK,1 \?CCL20
GET P-ITBL,P-PREP1 >TEMP
GET P-OTBL,P-PREP1
EQUAL? TEMP,STACK /?CTR20
EQUAL? TEMP,STACK /?CTR22
ZERO? TEMP \FALSE
?CTR20: ZERO? ADJ /?CCL26
ZERO? VRB \?CCL26
?CTR22: ZERO? ADJ /?CCL28
ZERO? VRB \?CCL28
ADD P-LEXV,2
PUT P-OTBL,P-NC1,STACK
GET P-ITBL,P-NC1L
ZERO? STACK \?CND29
ZERO? STACK \?CND31
ADD P-LEXV,6
PUT P-ITBL,P-NC1L,STACK
?CND29: ZERO? P-NCN \?CND24
?CND31: ZERO? P-NCN \?CND26
SET 'P-NCN,1
JUMP ?CND24
?CCL26: GET P-ITBL,P-NC1
JUMP ?CND26
?CCL28: GET P-ITBL,P-NC1
PUT P-OTBL,P-NC1,STACK
?CND24: GET P-ITBL,P-NC1L
?CND26: GET P-ITBL,P-NC1L
PUT P-OTBL,P-NC1L,STACK
JUMP ?CND9
?CCL18: GET P-OTBL,P-NC2
EQUAL? STACK,1 \?CCL34
JUMP ?CND11
?CCL20: GET P-OTBL,P-NC2
EQUAL? STACK,1 \?CCL36
GET P-ITBL,P-PREP1 >TEMP
GET P-OTBL,P-PREP2
EQUAL? TEMP,STACK /?CTR36
EQUAL? TEMP,STACK /?CTR38
ZERO? TEMP \FALSE
?CTR36: ZERO? ADJ /?CND40
ZERO? VRB \?CND40
?CTR38: ZERO? ADJ /?CND42
ZERO? VRB \?CND42
ADD P-LEXV,2
PUT P-ITBL,P-NC1,STACK
GET P-ITBL,P-NC1L
ZERO? STACK \?CND40
ZERO? STACK \?CND42
ADD P-LEXV,6
PUT P-ITBL,P-NC1L,STACK
?CND40: GET P-ITBL,P-NC1
?CND42: GET P-ITBL,P-NC1
PUT P-OTBL,P-NC2,STACK
GET P-ITBL,P-NC1L
PUT P-OTBL,P-NC2L,STACK
SET 'P-NCN,2
JUMP ?CND9
?CCL34: ZERO? P-ACLAUSE /?CND9
EQUAL? P-NCN,1 /?CCL49
ZERO? ADJ \?CCL49
JUMP ?CND11
?CCL36: ZERO? P-ACLAUSE /?CND11
EQUAL? P-NCN,1 /?CCL51
ZERO? ADJ \?CCL51
SET 'P-ACLAUSE,FALSE-VALUE
RFALSE
?CCL49: GET P-ITBL,P-NC1 >BEG
ZERO? ADJ /?CND52
?CCL51: GET P-ITBL,P-NC1 >BEG
ZERO? ADJ /?CND54
ADD P-LEXV,2 >BEG
SET 'ADJ,FALSE-VALUE
?CND52: GET P-ITBL,P-NC1L >END
?PRG54: GET BEG,0 >WRD
EQUAL? BEG,END \?CCL58
ZERO? ADJ /?CCL61
?CND54: GET P-ITBL,P-NC1L >END
?PRG56: GET BEG,0 >WRD
EQUAL? BEG,END \?CCL60
ZERO? ADJ /?CCL63
CALL CLAUSE-WIN,ADJ
JUMP ?CND9
?CCL61: SET 'P-ACLAUSE,FALSE-VALUE
JUMP ?CND11
?CCL63: SET 'P-ACLAUSE,FALSE-VALUE
RFALSE
?CCL58: EQUAL? WRD,W?ALL,W?EVERYT,W?ONE /?CTR62
EQUAL? WRD,W?BOTH /?CTR62
?CCL60: EQUAL? WRD,W?ALL,W?EVERYT,W?ONE /?CTR64
EQUAL? WRD,W?BOTH /?CTR64
GETB WRD,P-PSOFF
BTST STACK,32 \?CCL63
BTST STACK,32 \?CCL65
CALL ADJ-CHECK,WRD,ADJ,ADJ
ZERO? STACK /?CCL63
?CTR62: SET 'ADJ,WRD
?CND56: ADD BEG,P-WORDLEN >BEG
ZERO? END \?PRG54
ZERO? STACK /?CCL65
?CTR64: SET 'ADJ,WRD
?CND58: ADD BEG,P-WORDLEN >BEG
ZERO? END \?PRG56
SET 'END,BEG
SET 'P-NCN,1
SUB BEG,4
PUT P-ITBL,P-NC1,STACK
PUT P-ITBL,P-NC1L,BEG
JUMP ?PRG54
?CCL63: EQUAL? WRD,W?ONE \?CCL70
JUMP ?PRG56
?CCL65: EQUAL? WRD,W?ONE \?CCL72
CALL CLAUSE-WIN,ADJ
JUMP ?CND9
?CCL70: GETB WRD,P-PSOFF
BTST STACK,128 \?CND56
EQUAL? WRD,P-ANAM \?CCL74
JUMP ?CND11
?CCL72: GETB WRD,P-PSOFF
BTST STACK,128 \?CND58
EQUAL? WRD,P-ANAM \?CCL76
CALL CLAUSE-WIN,ADJ
JUMP ?CND9
?CCL74: CALL CLAUSE-WIN
?CND9: GET P-OVTBL,0
JUMP ?CND11
?CCL76: CALL CLAUSE-WIN
?CND11: GET P-OVTBL,0
PUT P-VTBL,0,STACK
GETB P-OVTBL,2
PUTB P-VTBL,2,STACK
@ -752,12 +759,12 @@
PUTB P-VTBL,3,STACK
PUT P-OTBL,P-VERBN,P-VTBL
PUTB P-VTBL,2,0
?PRG77: IGRTR? 'CNT,P-ITBLLEN \?CCL81
?PRG79: IGRTR? 'CNT,P-ITBLLEN \?CCL83
SET 'P-MERGED,TRUE-VALUE
RTRUE
?CCL81: GET P-OTBL,CNT
?CCL83: GET P-OTBL,CNT
PUT P-ITBL,CNT,STACK
JUMP ?PRG77
JUMP ?PRG79
.FUNCT CLAUSE-WIN,ADJ=0
@ -790,7 +797,9 @@
.FUNCT UNKNOWN-WORD,PTR,BUF,?TMP1
PUT OOPS-TABLE,O-PTR,PTR
ZERO? P-OFLAG /?CND1
PUT OOPS-TABLE,O-END,0
?CND1: PUT OOPS-TABLE,O-PTR,PTR
PRINTI "[I don't know the word """
MUL PTR,2 >BUF
ADD P-LEXV,BUF
@ -813,10 +822,7 @@
ADD P-LEXV,BUF
GETB STACK,3
CALL WORD-PRINT,?TMP1,STACK
PRINTI """ in a way that I don't understand.]"
CRLF
CALL STOP
RSTACK
PRINTR """ in a way that I don't understand.]"
.FUNCT SYNTAX-CHECK,SYN,LEN,NUM,OBJ,DRIVE1=0,DRIVE2=0,PREP,VERB,?TMP2,?TMP1
@ -1002,41 +1008,41 @@
SET 'PN,TRUE-VALUE
JUMP ?CND3
?CCL13: CALL NAME?,WRD
ZERO? STACK /?CCL15
CALL CAPITALIZE,BEG
ZERO? STACK \?CTR14
EQUAL? WRD,W?THERMOS \?CCL15
?CTR14: CALL CAPITALIZE,BEG
SET 'PN,TRUE-VALUE
JUMP ?CND3
?CCL15: ZERO? FIRST?? /?CND16
ZERO? PN \?CND16
ZERO? CP /?CND16
EQUAL? WRD,W?MY /?CND16
?CCL15: ZERO? FIRST?? /?CND18
ZERO? PN \?CND18
ZERO? CP /?CND18
EQUAL? WRD,W?MY /?CND18
PRINTI "the "
?CND16: ZERO? P-OFLAG \?CTR23
ZERO? P-MERGED /?CCL24
?CTR23: PRINTB WRD
JUMP ?CND22
?CCL24: EQUAL? WRD,W?IT,W?THEM \?CCL28
?CND18: ZERO? P-OFLAG \?CTR25
ZERO? P-MERGED /?CCL26
?CTR25: PRINTB WRD
JUMP ?CND24
?CCL26: EQUAL? WRD,W?IT,W?THEM \?CCL30
CALL ACCESSIBLE?,P-IT-OBJECT
ZERO? STACK /?CCL28
ZERO? STACK /?CCL30
PRINTD P-IT-OBJECT
JUMP ?CND22
?CCL28: EQUAL? WRD,W?HIM,W?HIMSELF,W?HER /?PRD34
EQUAL? WRD,W?HERSELF \?CCL32
?PRD34: CALL ACCESSIBLE?,P-HIM-OBJECT
ZERO? STACK /?CCL32
JUMP ?CND24
?CCL30: EQUAL? WRD,W?HIM,W?HIMSELF,W?HER /?PRD36
EQUAL? WRD,W?HERSELF \?CCL34
?PRD36: CALL ACCESSIBLE?,P-HIM-OBJECT
ZERO? STACK /?CCL34
PRINTD P-HIM-OBJECT
JUMP ?CND22
?CCL32: GETB BEG,2 >?TMP1
JUMP ?CND24
?CCL34: GETB BEG,2 >?TMP1
GETB BEG,3
CALL WORD-PRINT,?TMP1,STACK
?CND22: SET 'FIRST??,FALSE-VALUE
?CND24: SET 'FIRST??,FALSE-VALUE
?CND3: ADD BEG,P-WORDLEN >BEG
JUMP ?PRG1
.FUNCT NAME?,WRD
EQUAL? WRD,W?FLOYD,W?PLATO,W?OLIVER /TRUE
EQUAL? WRD,W?THERMOS /TRUE
RFALSE
@ -1478,21 +1484,16 @@
SET 'ADJ,P-ADJ
SET 'P-NAM,P-XNAM
SET 'P-ADJ,P-XADJ
ZERO? DEBUG /?CND1
PRINTI "[MOBY-FINDing; P-NAM="
PRINTB P-NAM
PRINTC 93
CRLF
?CND1: PUT TBL,P-MATCHLEN,0
?PRG5: IN? OBJ,ROOMS /?CND7
PUT TBL,P-MATCHLEN,0
?PRG3: IN? OBJ,ROOMS /?CND5
CALL THIS-IT?,OBJ >FOO
ZERO? FOO /?CND7
ZERO? FOO /?CND5
CALL OBJ-FOUND,OBJ,TBL >FOO
?CND7: IGRTR? 'OBJ,LAST-OBJECT \?PRG5
?CND5: IGRTR? 'OBJ,LAST-OBJECT \?PRG3
GET TBL,P-MATCHLEN >LEN
EQUAL? LEN,1 \?CND13
EQUAL? LEN,1 \?CND11
GET TBL,1 >P-MOBY-FOUND
?CND13: SET 'P-NAM,NAM
?CND11: SET 'P-NAM,NAM
SET 'P-ADJ,ADJ
RETURN LEN
@ -1504,7 +1505,7 @@
?CND1: SET 'RLEN,LEN
EQUAL? WINNER,PROTAGONIST /?CCL5
PRINTI """I don't understand wh"
EQUAL? P-ADJ,W?YOUR,W?MY \?CCL8
EQUAL? P-ADJ,A?YOUR,A?MY,A?PURPOS \?CCL8
PRINTR "at you mean!"""
?CCL8: PRINTI "ether you mean "
JUMP ?PRG22
@ -1679,45 +1680,44 @@
EQUAL? OBJ,LEASH \?CCL29
ZERO? HANGING-IN-AIR \?PRG8
?CCL29: SET 'PRSO,OBJ
FSET? OBJ,TRYTAKEBIT \?CCL34
SET 'TAKEN,TRUE-VALUE
FSET? OBJ,TRYTAKEBIT /?CTR33
CALL UNTOUCHABLE?,OBJ
ZERO? STACK \?CTR33
ZERO? STUNNED /?CCL34
?CTR33: SET 'TAKEN,TRUE-VALUE
JUMP ?CND32
?CCL34: CALL UNTOUCHABLE?,OBJ
ZERO? STACK /?CCL36
SET 'TAKEN,TRUE-VALUE
JUMP ?CND32
?CCL36: EQUAL? WINNER,PROTAGONIST /?CCL38
?CCL34: EQUAL? WINNER,PROTAGONIST /?CCL39
SET 'TAKEN,FALSE-VALUE
JUMP ?CND32
?CCL38: BTST IBITS,STAKE \?CCL40
?CCL39: BTST IBITS,STAKE \?CCL41
CALL ITAKE,FALSE-VALUE
EQUAL? STACK,TRUE-VALUE \?CCL40
EQUAL? STACK,TRUE-VALUE \?CCL41
SET 'TAKEN,FALSE-VALUE
JUMP ?CND32
?CCL40: SET 'TAKEN,TRUE-VALUE
?CND32: ZERO? TAKEN /?CCL45
BTST IBITS,SHAVE \?CCL45
?CCL41: SET 'TAKEN,TRUE-VALUE
?CND32: ZERO? TAKEN /?CCL46
BTST IBITS,SHAVE \?CCL46
GET TBL,P-MATCHLEN
LESS? 1,STACK \?CCL50
LESS? 1,STACK \?CCL51
PRINT YNH
PRINTI " all those things!"
CRLF
RFALSE
?CCL50: EQUAL? OBJ,NOT-HERE-OBJECT \?CND48
?CCL51: EQUAL? OBJ,NOT-HERE-OBJECT \?CND49
PRINT YOU-CANT
PRINTI "see that here!"
CRLF
RFALSE
?CND48: EQUAL? WINNER,PROTAGONIST \?CCL54
?CND49: EQUAL? WINNER,PROTAGONIST \?CCL55
PRINT YNH
JUMP ?CND52
?CCL54: PRINTI "It doesn't look like"
JUMP ?CND53
?CCL55: PRINTI "It doesn't look like"
CALL TPRINT,WINNER
PRINTI " has"
?CND52: CALL THIS-IS-IT,OBJ
?CND53: CALL THIS-IS-IT,OBJ
CALL TRPRINT,OBJ
RFALSE
?CCL45: ZERO? TAKEN \?PRG8
?CCL46: ZERO? TAKEN \?PRG8
IN? PROTAGONIST,OBJ /?PRG8
EQUAL? WINNER,PROTAGONIST \?PRG8
PRINTI "[taking"

View file

@ -166,7 +166,7 @@ with 'P-'. Local variables are not restricted in any way."
<EQUAL? ,PROTAGONIST ,WINNER>>
<CRLF>)>
<SETG RESERVE-PTR <>>
<SETG P-CONT <>>)
;<SETG P-CONT <>> ;"retrofix 59")
(,P-CONT
<SET PTR ,P-CONT>
;<COND (<AND <NOT <EQUAL? ,VERBOSITY 0>>
@ -176,7 +176,7 @@ with 'P-'. Local variables are not restricted in any way."
<NOT ,ELIMINATE-CR>>
<CRLF>)>
<SETG ELIMINATE-CR <>>
<SETG P-CONT <>>)
;<SETG P-CONT <>> ;"retrofix 59")
(T
<SETG WINNER ,PROTAGONIST>
<SETG QUOTE-FLAG <>>
@ -186,6 +186,8 @@ with 'P-'. Local variables are not restricted in any way."
<COND (<NOT <EQUAL? ,VERBOSITY 0>>
<CRLF>)>
<TELL ">">
<COND (<ZERO? <GET ,OOPS-TABLE ,O-PTR>>
<PUT ,OOPS-TABLE ,O-END <>>)> ;"retrofix 59"
<READ ,P-INBUF ,P-LEXV>
<SET OLEN <GETB ,P-LEXV ,P-LEXWORDS>>)>
<SETG P-LEN <GETB ,P-LEXV ,P-LEXWORDS>>
@ -218,10 +220,14 @@ with 'P-'. Local variables are not restricted in any way."
<PUT ,OOPS-TABLE ,O-END <>>
<TELL "[There was no word to replace!]" CR>
<RFALSE>)>)
(T
(<ZERO? ,P-CONT> ;"retrofix 58"
<PUT ,OOPS-TABLE ,O-END <>>)>
<SETG P-CONT <>> ;"retrofix 59"
<COND (<EQUAL? <GET ,P-LEXV .PTR> ,W?AGAIN ,W?G>
<COND (,P-OFLAG
<COND (<ZERO? <GETB ,OOPS-INBUF 1>>
<TELL "[What do you want to do again?]" CR>
<RFALSE>)
(,P-OFLAG
<CANT-USE-THAT-WAY "AGAIN">
<RFALSE>)
(<NOT ,P-WON>
@ -229,7 +235,7 @@ with 'P-'. Local variables are not restricted in any way."
<RFALSE>)
(<AND <NOT <EQUAL? .OWINNER ,PROTAGONIST>>
<NOT <VISIBLE? .OWINNER>>>
<TELL "[" ,YOU-CANT "see " D .OWINNER " any more.]" CR>
<TELL "[You can't see " D .OWINNER " any more.]" CR>
<RFALSE>)
(<G? ,P-LEN 1>
<COND (<OR <EQUAL? <GET ,P-LEXV <+ .PTR ,P-LEXELEN>>
@ -271,8 +277,10 @@ with 'P-'. Local variables are not restricted in any way."
<PUT ,OOPS-TABLE ,O-LENGTH <* 4 ,P-LEN>> ;"fix #36"
<SET LEN
<* 2 <+ .PTR <* ,P-LEXELEN <GETB ,P-LEXV ,P-LEXWORDS>>>>>
<PUT ,OOPS-TABLE ,O-END <+ <GETB ,P-LEXV <- .LEN 1>>
<GETB ,P-LEXV <- .LEN 2>>>>
<COND (<ZERO? <GET ,OOPS-TABLE ,O-END>> ;"retrofix 58"
<PUT ,OOPS-TABLE ,O-END
<+ <GETB ,P-LEXV <- .LEN 1>>
<GETB ,P-LEXV <- .LEN 2>>>>)>
<SETG RESERVE-PTR <>>
<SET LEN ,P-LEN>
;<SETG P-DIR <>>
@ -342,14 +350,17 @@ with 'P-'. Local variables are not restricted in any way."
<RETURN>)>)
(<AND <SET VAL <WT? .WRD ,PS?VERB ,P1?VERB>>
<NOT .VERB>>
<SETG P-PRSA-WORD .WRD>
<COND (<ZERO? ,P-OFLAG>
<SETG P-PRSA-WORD .WRD>)
;(T
<SETG P-PRSA-WORD
<GET <GET ,P-ITBL ,P-VERBN> 0>>)>
<SET VERB .VAL>
<PUT ,P-ITBL ,P-VERB .VAL>
<PUT ,P-ITBL ,P-VERBN ,P-VTBL>
<PUT ,P-VTBL 0 .WRD>
<PUTB ,P-VTBL 2 <GETB ,P-LEXV
<SET CNT
<+ <* .PTR 2> 2>>>>
<PUTB ,P-VTBL 2
<GETB ,P-LEXV <SET CNT <+ <* .PTR 2> 2>>>>
<PUTB ,P-VTBL 3 <GETB ,P-LEXV <+ .CNT 1>>>)
(<OR <SET VAL <WT? .WRD ,PS?PREPOSITION 0>>
<EQUAL? .WRD ,W?ALL ,W?ONE ,W?BOTH>
@ -517,7 +528,11 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<SET OFFS <+ .OFFS 1>>)>
<GETB .PTR .OFFS>)>)>>
<ROUTINE NEXT-WORD (PTR "AUX" NW)
<ROUTINE NEXT-WORD (PTR)
<COND (<NOT <ZERO? ,P-LEN>>
<GET ,P-LEXV <+ .PTR ,P-LEXELEN>>)>>
;<ROUTINE NEXT-WORD (PTR "AUX" NW)
<COND (<NOT <ZERO? ,P-LEN>>
<COND (<SET NW <GET ,P-LEXV <+ .PTR ,P-LEXELEN>>>
.NW)
@ -531,8 +546,11 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<PUT ,P-ITBL <SET NUM <+ ,P-PREP1 .OFF>> .VAL>
<PUT ,P-ITBL <+ .NUM 1> .WRD>
<SET PTR <+ .PTR ,P-LEXELEN>>)
(T <SETG P-LEN <+ ,P-LEN 1>>)>
<COND (<ZERO? ,P-LEN> <SETG P-NCN <- ,P-NCN 1>> <RETURN -1>)>
(T
<SETG P-LEN <+ ,P-LEN 1>>)>
<COND (<ZERO? ,P-LEN>
<SETG P-NCN <- ,P-NCN 1>>
<RETURN -1>)>
<PUT ,P-ITBL <SET NUM <+ ,P-NC1 .OFF>> <REST ,P-LEXV <* .PTR 2>>>
<REPEAT ()
<COND (<L? <SETG P-LEN <- ,P-LEN 1>> 0>
@ -541,7 +559,8 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<SET WRD <GET ,P-LEXV .PTR>>
<COND (<NAUGHTY-WORD? .WRD>
<RFALSE>)
(<OR .WRD <SET WRD <NUMBER? .PTR>>>
(<OR .WRD
<SET WRD <NUMBER? .PTR>>>
<SET NW <NEXT-WORD .PTR>>
<COND (<AND .FIRST?? ;"fix 'lie down on...'"
<OR <EQUAL? .WRD ,W?THE ,W?A ,W?AN>
@ -567,8 +586,7 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
;"ADDED 4/27 FOR TURTLE,UP"
<NOT .FIRST??>>>
<SETG P-LEN <+ ,P-LEN 1>>
<PUT ,P-ITBL
<+ .NUM 1>
<PUT ,P-ITBL <+ .NUM 1>
<REST ,P-LEXV <* .PTR 2>>>
<RETURN <- .PTR ,P-LEXELEN>>)
;"This next clause was 2 clauses further down"
@ -618,7 +636,9 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
(T
<CANT-USE .PTR>
<RFALSE>)>)
(T <UNKNOWN-WORD .PTR> <RFALSE>)>
(T
<UNKNOWN-WORD .PTR>
<RFALSE>)>
<SET LW .WRD>
<SET FIRST?? <>>
<SET PTR <+ .PTR ,P-LEXELEN>>>>
@ -627,9 +647,10 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<SET CNT <GETB <REST ,P-LEXV <* .PTR 2>> 2>>
<SET BPTR <GETB <REST ,P-LEXV <* .PTR 2>> 3>>
<REPEAT ()
<COND (<G? .SUM 10000> <RFALSE>)
(<L? <SET CNT <- .CNT 1>> 0>
<COND (<L? <SET CNT <- .CNT 1>> 0>
<RETURN>)
(<G? .SUM 6553>
<RFALSE>)
(T
<SET CHR <GETB ,P-INBUF .BPTR>>
<COND (<AND <L? .CHR 58>
@ -695,7 +716,8 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<SET BPTR <+ .BPTR 1>>)>>
<COND (<NOT <EQUAL? .CCTR 3>> ;"only handles 3 digits after the comma"
<RFALSE>)
(<ZERO? .SUM> ;"if it returned 0, the calling predicate becomes <>"
(<ZERO? .SUM>
;"if it returned 0, the calling predicate becomes <>"
<RETURN 1000>)
(T
<RETURN .SUM>)>>
@ -704,9 +726,13 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<ROUTINE ORPHAN-MERGE ("AUX" (CNT -1) TEMP VERB BEG END (ADJ <>) (VRB <>) WRD)
<SETG P-OFLAG <>>
<COND (<EQUAL? <WT? <SET WRD <GET <GET ,P-ITBL ,P-VERBN> 0>>
<COND (<OR <EQUAL? <WT? <SET WRD <GET <GET ,P-ITBL ,P-VERBN> 0>>
,PS?VERB ,P1?VERB>
<GET ,P-OTBL ,P-VERB>>
<WT? .WRD ,PS?ADJECTIVE>>
;<EQUAL? <WT? <SET WRD <GET <GET ,P-ITBL ,P-VERBN> 0>>
,PS?VERB ,P1?VERB>
<GET ,P-OTBL ,P-VERB>> ;"old predicate, axed for rfix 45"
<SET VRB T>
<SET ADJ T>)
(<WT? .WRD ,PS?ADJECTIVE>
@ -822,6 +848,8 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<SET BUF <+ .BUF 1>>)>>>
<ROUTINE UNKNOWN-WORD (PTR "AUX" BUF)
<COND (<T? ,P-OFLAG>
<PUT ,OOPS-TABLE ,O-END 0>)>
<PUT ,OOPS-TABLE ,O-PTR .PTR>
<TELL "[I don't know the word \"">
<WORD-PRINT <GETB <REST ,P-LEXV <SET BUF <* .PTR 2>>> 2>
@ -834,8 +862,7 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<TELL "[You used the word \"">
<WORD-PRINT <GETB <REST ,P-LEXV <SET BUF <* .PTR 2>>> 2>
<GETB <REST ,P-LEXV .BUF> 3>>
<TELL "\" in a way that I don't understand.]" CR>
<STOP>>
<TELL "\" in a way that I don't understand.]" CR>>
;" Perform syntax matching operations, using P-ITBL as the source of
the verb and adjectives for this input. Returns false if no
@ -1001,7 +1028,8 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
(<EQUAL? .WRD ,W?ME ,W?MYSELF>
<PRINTD ,ME>
<SET PN T>)
(<NAME? .WRD>
(<OR <NAME? .WRD>
<EQUAL? .WRD ,W?THERMOS>>
<CAPITALIZE .BEG>
<SET PN T>)
(T
@ -1031,7 +1059,7 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<SET BEG <REST .BEG ,P-WORDLEN>>>>
<ROUTINE NAME? (WRD)
<COND (<EQUAL? .WRD ,W?FLOYD ,W?PLATO ,W?OLIVER ,W?THERMOS>
<COND (<EQUAL? .WRD ,W?FLOYD ,W?PLATO ,W?OLIVER>
<RTRUE>)
(T
<RFALSE>)>>
@ -1438,7 +1466,7 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<SET ADJ ,P-ADJ>
<SETG P-NAM ,P-XNAM>
<SETG P-ADJ ,P-XADJ>
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[MOBY-FINDing; P-NAM=">
<PRINTB ,P-NAM>
<TELL "]" CR>)>
@ -1483,7 +1511,7 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
<SET RLEN .LEN>
<COND (<NOT <EQUAL? ,WINNER ,PROTAGONIST>>
<TELL "\"I don't understand wh">
<COND (<EQUAL? ,P-ADJ ,W?YOUR ,W?MY>
<COND (<EQUAL? ,P-ADJ ,A?YOUR ,A?MY ,A?PURPOS>
<TELL "at you mean!\"" CR>
<RTRUE>)
(T
@ -1686,9 +1714,9 @@ OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV"
T)
(T
<SETG PRSO .OBJ>
<COND (<FSET? .OBJ ,TRYTAKEBIT>
<SET TAKEN T>)
(<UNTOUCHABLE? .OBJ>
<COND (<OR <FSET? .OBJ ,TRYTAKEBIT>
<UNTOUCHABLE? .OBJ>
,STUNNED>
<SET TAKEN T>)
(<NOT <EQUAL? ,WINNER ,PROTAGONIST>>
<SET TAKEN <>>)

1
s6.zap
View file

@ -3,6 +3,7 @@
.INSERT "PS:<S6>S6PUR"
.INSERT "PS:<S6>MISC"
.INSERT "PS:<S6>PARSER"
.INSERT "PS:<S6>INTERRUPTS"
.INSERT "PS:<S6>SYNTAX"
.INSERT "PS:<S6>VERBS"
.INSERT "PS:<S6>GLOBALS"

1
s6.zil
View file

@ -17,6 +17,7 @@ OFF!-INITIAL ;"makes debugging possible -- pdl"
<INSERT-FILE "MISC" T>
<INSERT-FILE "PARSER" T>
<INSERT-FILE "INTERRUPTS" T>
<INSERT-FILE "SYNTAX" T>
<INSERT-FILE "VERBS" T>
<INSERT-FILE "GLOBALS" T>

BIN
s6.zip

Binary file not shown.

1968
s6dat.zap

File diff suppressed because it is too large Load diff

View file

@ -15,7 +15,7 @@ PT?1:: .TABLE
.ENDT
PT?2::
PT?16:: .TABLE
PT?17:: .TABLE
6
W?FORM
0
@ -75,7 +75,7 @@ PT?6:: .TABLE
.ENDT
PT?7::
PT?11:: .TABLE
PT?12:: .TABLE
3
W?SLOT
0
@ -88,44 +88,75 @@ PT?8:: .TABLE
W?RED
COMM-BUTTON-F
W?SCREEN
0
W?MESSAGE
SCREEN-F
.ENDT
PT?9:: .TABLE
9
W?FILE
W?FILES
FILES-F
W?FORM
0
FILES-F
W?FORMS
0
FILES-F
.ENDT
PT?10:: .TABLE
3
W?BUTTON
W?RED
LOG-READER-BUTTON-F
.ENDT
PT?10:: .TABLE
PT?11:: .TABLE
3
W?DIAL
0
DIAL-F
.ENDT
PT?12:: .TABLE
6
PT?13:: .TABLE
9
W?SEAT
0
THEATRE-SEAT-F
W?BOOTH
W?PROJECTION
PROJECTION-BOOTH-F
W?LOCK
0
BRIG-LOCK-F
.ENDT
PT?13:: .TABLE
PT?14:: .TABLE
3
W?DOME
W?TRANSPARENT
DOME-OBJECT-F
.ENDT
PT?14::
PT?15:: .TABLE
6
9
W?SHIP
W?ALIEN
ALIEN-SHIP-PSEUDO-F
W?SHIP
W?SPACE
ALIEN-SHIP-PSEUDO-F
W?HATCH
0
ALIEN-HATCH-F
.ENDT
PT?16:: .TABLE
9
W?HATCH
0
ALIEN-HATCH-F
W?SHIP
W?ALIEN
ALIEN-SHIP-PSEUDO-F
@ -134,42 +165,42 @@ PT?15:: .TABLE
ALIEN-SHIP-PSEUDO-F
.ENDT
PT?17:: .TABLE
PT?18:: .TABLE
3
W?COMPUTER
0
COMPUTER-F
.ENDT
PT?18:: .TABLE
PT?19:: .TABLE
3
W?POSTER
0
RECRUITMENT-POSTER-F
.ENDT
PT?19:: .TABLE
PT?20:: .TABLE
3
W?MIRROR
W?GLASS
MIRROR-F
.ENDT
PT?20:: .TABLE
PT?21:: .TABLE
3
W?POSTER
0
TRAVEL-AGENCY-POSTER-F
.ENDT
PT?21:: .TABLE
PT?22:: .TABLE
3
W?HOLE
W?SMALL
DOC-HOLE-F
.ENDT
PT?22:: .TABLE
PT?23:: .TABLE
3
W?SLOT
0

820
s6str.zap
View file

@ -11,447 +11,465 @@ STRBEG::
.GSTR STR?5,"PRSO"
.GSTR STR?6,"OOPS"
.GSTR STR?7,"AGAIN"
.GSTR STR?8,"begins"
.GSTR STR?9,"ends"
.GSTR STR?10,"leave the game"
.GSTR STR?11,"restart"
.GSTR STR?12,"Biting"
.GSTR STR?13,"climb into"
.GSTR STR?14,"climb onto"
.GSTR STR?15,"close"
.GSTR STR?16,"disconnect the timer"
.GSTR STR?17,"disconnect the explosive"
.GSTR STR?18,"crumple"
.GSTR STR?19,"dress"
.GSTR STR?20,"open"
.GSTR STR?21,"get onto"
.GSTR STR?22,"get into"
.GSTR STR?23,"look"
.GSTR STR?24,"Kicking"
.GSTR STR?25,"Knocking on"
.GSTR STR?26,"You plummet down the shaft..."
.GSTR STR?27,"sound"
.GSTR STR?28,"look inside"
.GSTR STR?29,"look through"
.GSTR STR?30,"indecis"
.GSTR STR?31,"Pulling"
.GSTR STR?32,"move"
.GSTR STR?33,"Trying to destroy"
.GSTR STR?34,"negat"
.GSTR STR?35,"ff"
.GSTR STR?36,"n"
.GSTR STR?37,"pick"
.GSTR STR?38,"put it in the presser"
.GSTR STR?39,"Pushing"
.GSTR STR?40,"Playing in this way with"
.GSTR STR?41,"read"
.GSTR STR?42,"roll"
.GSTR STR?43,"search"
.GSTR STR?44,"Turning"
.GSTR STR?45,"Shaking"
.GSTR STR?46,"."
.GSTR STR?47,"smell"
.GSTR STR?48,"spray"
.GSTR STR?49,"move that much"
.GSTR STR?50,"taste"
.GSTR STR?51,"Touching"
.GSTR STR?52,"Keyboard is only active following authorization"
.GSTR STR?53,"You have already made your selection"
.GSTR STR?54,"That bin is unoccupied"
.GSTR STR?55,"Error"
.GSTR STR?56,"Fuel levels at zero"
.GSTR STR?57,"Course set. Launch in approximately 30 millichrons"
.GSTR STR?58,"Safety precautions forbid the acceptance of course settings unless both the pilot and copilot seats are occupied"
.GSTR STR?59,"Select a level between 1 and 9"
.GSTR STR?60,"The instant you press the button, the elevator begins plunging down the shaft! It's worse than just free-fall; the elevator is actually in a power dive!!! You punch frantically at the keypad..."
.GSTR STR?61,"You are already at that level"
.GSTR STR?62,"You have not deposited a coin"
.GSTR STR?63,"This dispenser offers only 9 selections"
.GSTR STR?64,"Sorry, that item is sold out. Please contact your PX Officer regarding restocking of dispenser"
.GSTR STR?65,"walk"
.GSTR STR?66,"wear"
.GSTR STR?67,"posit"
.GSTR STR?68,"remove"
.GSTR STR?69," is as worthwhile as cleaning a grotch cage."
.GSTR STR?70," accomplishes nothing."
.GSTR STR?71," has no desirable effect."
.GSTR STR?72,"Fat chance."
.GSTR STR?73,"A valiant attempt."
.GSTR STR?74,"You can't be serious."
.GSTR STR?75,"Not bloody likely."
.GSTR STR?76,"What a concept."
.GSTR STR?77,"Nice try."
.GSTR STR?78,"You are behaving like a demented Denebian slime devil."
.GSTR STR?79,"Dream on."
.GSTR STR?80,"It's the looney bin for you!"
.GSTR STR?81,"You have lost your mind."
.GSTR STR?82,"A waste of time."
.GSTR STR?83,"A worthless action -- and much too difficult for a poorly-written program like this one to handle."
.GSTR STR?84,"Useless. Unhelpful."
.GSTR STR?85,"There's another turn down the drain."
.GSTR STR?86,"Why bother?"
.GSTR STR?87,"with"
.GSTR STR?88,"Done. You might remain alive long enough to type EXAMINE MY STUMP. Oops, I guess not."
.GSTR STR?89,"If you insist."
.GSTR STR?90,"Wow! A hole where your torso used to be!"
.GSTR STR?91,"I was going to ask you the same question!"
.GSTR STR?92,"Floyd loves games! Let's play!"
.GSTR STR?93,"Safety precautions forbid the activation of the vehicle unless both the pilot and copilot seats are occupied"
.GSTR STR?94,"Spacecraft activated. Type in the course heading"
.GSTR STR?95,"Authorization approved. Type the bin number of the desired robot"
.GSTR STR?96,"This form has not been validated by a commanding officer"
.GSTR STR?97,"Improper form for this location"
.GSTR STR?98,"slot"
.GSTR STR?99,"The quiet, dusty corridors stir disturbing memories. You're back on Resida, the deserted, plague-stricken world where you met Floyd. A hot flush creeps over you, indicating that the virulent disease that conquered this planet is beginnning its insidious work on you"
.GSTR STR?100,"You are strolling across Deck Four of the Duffy, when suddenly you remember that you were supposed to have Handwriting Legibility Evaluation Forms -- all nine parts, for every member of the crew -- on Captain Fussbottom's desk by 7800. It's 7790, and those forms are stored on the other side of the ship. You try to run, but the floor is covered with glue. You can hear the Captain calling your name, louder and louder, as you struggle to move your legs"
.GSTR STR?101,"You gulp down the last of your Ramosian Fire Nectar and ask the andro-waiter for another pitcher. This pub makes the finest Nectar on all of Ramos Two, and you and your shipmates are having a pretty rowdy time. Through the windows of the pub you can see a mighty, ancient castle, shining in the light of the three Ramosian moons. The Fire Nectar spreads through your blood and you begin to feel drowsy"
.GSTR STR?102,"You wake up in a huge stadium, watching an important ceremony. It's a Stellar Patrol promotion ceremony on Tremain! Suddenly your own name echoes over the PA system -- and down below you see YOURSELF walking up the steps to the stage! The presiding admiral describes your heroism on Resida, mentioning that you were awarded the key to the planet, and then asks the ceremonial question, ""Do you accept promotion to Lieutenant First Class?"" You try to yell ""No!"" from the stands, but the words are lost in the vastness of the stadium"
.GSTR STR?103,"You find yourself in a spacepod outside the docking bays of a large space station. All the doors are closed. You snap on the radio, and discover that Floyd is in charge within the station. ""Open the pod bay doors, Floyd,"" you tell him but he replies, ""I'm sorry, I can't do that,"" and begins laughing and your air is beginning to run out"
.GSTR STR?104,"At last, the Duffy is approaching station Delta Upsilon Upsilon Phi -- your first rec leave in almost six months. It's even worth the six solid days of paperwork necessary for a standard half-day leave. Stationfall is millichrons away, but suddenly you realize that you're all alone on the Duffy! Frantic, you dash to the deserted bridge, but it's too late to stop the out-of-control Duffy from ramming the massive space station! The hull of the station rushes toward you"
.GSTR STR?105,"You dream of being buried alive in an ancient Egyptian pyramid, inside the sarcophagus with some long-dead pharaoh. Phew, does he stink! You gasp and gag as the air in the coffin runs low.
.GSTR STR?8,"A powerful arc of raw energy bridges the gap between two of the monster's welding extensions. Unfortunately, you were pretty much right between the same two extensions at that moment."
.GSTR STR?9,"."
.GSTR STR?10," The log reader explodes!"
.GSTR STR?11,"begins"
.GSTR STR?12,"ends"
.GSTR STR?13,"leave the game"
.GSTR STR?14,"restart"
.GSTR STR?15,"Biting"
.GSTR STR?16,"climb into"
.GSTR STR?17,"climb onto"
.GSTR STR?18,"close"
.GSTR STR?19,"disconnect the timer"
.GSTR STR?20,"disconnect the explosive"
.GSTR STR?21,"crumple"
.GSTR STR?22,"dress"
.GSTR STR?23,"open"
.GSTR STR?24,"get onto"
.GSTR STR?25,"get into"
.GSTR STR?26,"look"
.GSTR STR?27,"Kicking"
.GSTR STR?28,"Knocking on"
.GSTR STR?29,"jump"
.GSTR STR?30,"You plummet down the shaft..."
.GSTR STR?31,"sound"
.GSTR STR?32,"look inside"
.GSTR STR?33,"look through"
.GSTR STR?34,"indecis"
.GSTR STR?35,"Pulling"
.GSTR STR?36,"move"
.GSTR STR?37,"Trying to destroy"
.GSTR STR?38,"negat"
.GSTR STR?39,"ff"
.GSTR STR?40,"n"
.GSTR STR?41,"pick"
.GSTR STR?42,"Pushing"
.GSTR STR?43,"Playing in this way with"
.GSTR STR?44,"read"
.GSTR STR?45,"roll"
.GSTR STR?46,"search"
.GSTR STR?47,"Turning"
.GSTR STR?48,"Shaking"
.GSTR STR?49,"smell"
.GSTR STR?50,"spray"
.GSTR STR?51,"move that much"
.GSTR STR?52,"taste"
.GSTR STR?53,"Touching"
.GSTR STR?54,"Keyboard is active only following authorization"
.GSTR STR?55,"You have already made your selection"
.GSTR STR?56,"That bin is unoccupied"
.GSTR STR?57,"Error"
.GSTR STR?58,"Fuel level at zero"
.GSTR STR?59,"Course set. Launch in approximately 30 millichrons"
.GSTR STR?60,"Safety precautions forbid the acceptance of course settings unless both the pilot and copilot seats are occupied"
.GSTR STR?61,"Select a level between 1 and 9"
.GSTR STR?62,"The instant you press the button, the elevator begins plunging down the shaft in a power dive! You punch frantically at the keypad..."
.GSTR STR?63,"You are already at that level"
.GSTR STR?64,"You have not deposited a coin"
.GSTR STR?65,"This dispenser offers only 9 selections"
.GSTR STR?66,"Sorry, that item is sold out. Inform your PX Officer for restocking"
.GSTR STR?67,"walk"
.GSTR STR?68,"wear"
.GSTR STR?69,"posit"
.GSTR STR?70,"remove"
.GSTR STR?71," is as worthwhile as cleaning a grotch cage."
.GSTR STR?72," accomplishes nothing."
.GSTR STR?73," has no desirable effect."
.GSTR STR?74,"Fat chance."
.GSTR STR?75,"A valiant attempt."
.GSTR STR?76,"You can't be serious."
.GSTR STR?77,"Not bloody likely."
.GSTR STR?78,"What a concept."
.GSTR STR?79,"Nice try."
.GSTR STR?80,"You are behaving like a demented Denebian slime devil."
.GSTR STR?81,"Dream on."
.GSTR STR?82,"You're wacko."
.GSTR STR?83,"You have lost your mind."
.GSTR STR?84,"A waste of time."
.GSTR STR?85,"A worthless action -- and much too complex for a crufty program like this one to handle."
.GSTR STR?86,"Useless. Unhelpful."
.GSTR STR?87,"There's another turn down the drain."
.GSTR STR?88,"Why bother?"
.GSTR STR?89,"with"
.GSTR STR?90,"Done. You might remain alive long enough to type EXAMINE MY STUMP. Oops, I guess not."
.GSTR STR?91,"If you insist."
.GSTR STR?92,"Wow! A hole where your torso used to be!"
.GSTR STR?93,"I was going to ask you the same question!"
.GSTR STR?94,"Floyd loves games! Let's play!"
.GSTR STR?95,"Safety precautions forbid the activation of the vehicle unless both the pilot and copilot seats are occupied"
.GSTR STR?96,"Spacecraft activated. Type in the course heading"
.GSTR STR?97,"Authorization approved. Type the bin number of the desired robot"
.GSTR STR?98,"This form has not been validated by a commanding officer"
.GSTR STR?99,"Improper form for this location"
.GSTR STR?100,"slot"
.GSTR STR?101,"The quiet, dusty corridors stir disturbing memories. You're back on Resida, the deserted, plague-stricken world where you met Floyd. A hot flush creeps over you, indicating that the virulent disease that conquered this planet is beginnning its insidious work on you"
.GSTR STR?102,"You are strolling across Deck Four of the Duffy, when suddenly you remember that you were supposed to have Handwriting Legibility Evaluation Forms -- all nine parts, for every member of the crew -- on Captain Fussbottom's desk by 7800. It's 7790, and those forms are stored on the other side of the ship. You try to run, but the floor is covered with glue. You can hear the Captain calling your name, louder and louder, as you struggle to move your legs"
.GSTR STR?103,"You gulp down the last of your Ramosian Fire Nectar and ask the andro-waiter for another pitcher. This pub makes the finest Nectar on all of Ramos Two, and you and your shipmates are having a pretty rowdy time. Through the windows of the pub you can see a mighty, ancient castle, shining in the light of the three Ramosian moons. The Fire Nectar spreads through your blood and you begin to feel drowsy"
.GSTR STR?104,"You wake up in a huge stadium, watching an important ceremony. It's a Stellar Patrol promotion ceremony on Tremain! Suddenly your own name echoes over the P.A. system -- and down below you see YOURSELF walking up the steps to the stage! The presiding admiral describes your heroism on Resida, mentioning that you were awarded the key to the planet, and then asks the ceremonial question, ""Do you accept promotion to Lieutenant First Class?"" You try to yell ""No!"" from the stands, but the words are lost in the vastness of the stadium"
.GSTR STR?105,"You find yourself in a spacepod outside the docking bays of a large space station. All the doors are closed. You snap on the radio, and discover that Floyd is in charge within the station. ""Open the pod bay doors, Floyd,"" you tell him but he replies, ""I'm sorry, I can't do that,"" and begins laughing and your air is beginning to run out"
.GSTR STR?106,"At last, the Duffy is approaching station Delta Upsilon Upsilon Phi -- your first rec leave in almost six months. It's even worth the six solid days of paperwork necessary for a standard half-day leave. Stationfall is millichrons away, but suddenly you realize that you're all alone on the Duffy! Frantic, you dash to the deserted bridge, but it's too late to stop the out-of-control Duffy from ramming the massive space station! The hull of the station rushes toward you"
.GSTR STR?107,"You dream of being buried alive in an ancient Egyptian pyramid, inside the sarcophagus with some long-dead pharaoh. Phew, does he stink! You gasp and gag as the air in the coffin runs low.
This dream, incidentally, is not a particularly unusual one among people who go to sleep inside space suits with limited oxygen supplies."
.GSTR STR?106,"A movement awakens you in the middle of the night! Through unfocused eyes you see a large machine rolling menacingly closer! A bright light leaps from it, straight toward..."
.GSTR STR?107,"You collapse from extreme thirst and hunger."
.GSTR STR?108,"A powerful arc of raw energy bridges the gap between two of the monster's welding extensions. Unfortunately, you were pretty much right between the same two extensions at that moment."
.GSTR STR?109,"It's too dark to see a thing."
.GSTR STR?110,"You're not holding"
.GSTR STR?111,"There's nothing "
.GSTR STR?112,"You can see"
.GSTR STR?113,"It seems that"
.GSTR STR?114,"You can't "
.GSTR STR?115,"You'll have to "
.GSTR STR?116,"Look around you.
.GSTR STR?108,"A movement awakens you in the middle of the night! Through unfocused eyes you see a large machine rolling menacingly closer! A bright light leaps from it, straight toward..."
.GSTR STR?109,"Snore...snore...KABOOM!"
.GSTR STR?110,"You collapse from extreme thirst and hunger."
.GSTR STR?111,"It's too dark to see a thing."
.GSTR STR?112,"You're not holding"
.GSTR STR?113,"There's nothing "
.GSTR STR?114,"You can see"
.GSTR STR?115,"It seems that"
.GSTR STR?116,"You can't "
.GSTR STR?117,"You'll have to "
.GSTR STR?118,"Look around you.
"
.GSTR STR?117,"You're holding it!
.GSTR STR?119,"You're holding it!
"
.GSTR STR?118,"[There seems to be a noun missing in that sentence.]
.GSTR STR?120,"[There seems to be a noun missing in that sentence.]
"
.GSTR STR?119,"You see only blackness.
.GSTR STR?121,"You see only blackness.
"
.GSTR STR?120,"You already did that. Senility strikes again!
.GSTR STR?122,"You already did that. Senility strikes again!
"
.GSTR STR?121,".
.GSTR STR?123,".
"
.GSTR STR?122,"...
.GSTR STR?124,"...
"
.GSTR STR?123,"Nothing happens.
.GSTR STR?125,"Nothing happens.
"
.GSTR STR?124,"Failed.
.GSTR STR?126,"Failed.
"
.GSTR STR?125,"Okay.
.GSTR STR?127,"Okay.
"
.GSTR STR?126,"Huh?
.GSTR STR?128,"Huh?
"
.GSTR STR?127,"You can't go that way.
.GSTR STR?129,"You can't go that way.
"
.GSTR STR?128,"It already is!
.GSTR STR?130,"It already is!
"
.GSTR STR?129,"""Floyd does not one of those have!""
.GSTR STR?131,"""Floyd does not one of those have!""
"
.GSTR STR?130,"Like most fromitz boards, it is a twisted maze of silicon circuits. It is square, approximately seventeen centimeters on each side.
.GSTR STR?132,"Like most fromitz boards, it is a twisted maze of silicon circuits. It is square, approximately seventeen centimeters on each side.
"
.GSTR STR?131,"You're neither hungry nor thirsty.
.GSTR STR?133,"You're neither hungry nor thirsty.
"
.GSTR STR?132,"Floyd is leaning against the wall, his head lolling to the side. Apparently, someone has heartlessly turned him off."
.GSTR STR?133,"The only part of the complex robot authorization equipment that is visible to you is a slot (for inserting your form) and a keypad (for typing your selection)."
.GSTR STR?134,"Request for Stellar Patrol Issue Regulation Black Form Binders Request Form Forms"
.GSTR STR?135,"The thick side wall of the tank has been blasted open"
.GSTR STR?136,"Next time, say what number to set it to.
.GSTR STR?134,"Floyd is leaning against the wall, his head lolling to the side. Apparently, someone has heartlessly turned him off."
.GSTR STR?135,"The only part of the complex robot authorization equipment that is visible to you is a slot (for inserting your form) and a keypad (for typing your selection)."
.GSTR STR?136,"Request for Stellar Patrol Issue Regulation Black Form Binders Request Form Forms"
.GSTR STR?137,"The thick side wall of the tank has been blasted open"
.GSTR STR?138,"Next time, say what number to set it to.
"
.GSTR STR?137,", hopping mad. ""Why you turn Floyd off?"" he asks accusingly."
.GSTR STR?138,"Spanning the entire garden is a transparent dome, providing a breathtaking view of the heavens in all their splendor."
.GSTR STR?139," strike the machine's power source, inducing an overload implosion in said power source."
.GSTR STR?140,"""The Galaxy's Best Zero-Gee Restaurant"""
.GSTR STR?141,"The eternal flame has been extinguished!"
.GSTR STR?142,"Lieutenant First Class"
.GSTR STR?143,"Through the large, dirty window, you can see Dan's used spaceship lot. The spaceships floating in Dan's lot all have their prices whitewashed on their viewports, along with phrases like ""A steal!"" and ""Just reduced!"""
.GSTR STR?144,"You are already in that mode.
.GSTR STR?139,", hopping mad. ""Why you turn Floyd off?"" he asks accusingly."
.GSTR STR?140,"Spanning the entire garden is a transparent dome, providing a breathtaking view of the heavens in all their splendor."
.GSTR STR?141," strike the machine's power source, inducing an overload implosion in said power source."
.GSTR STR?142,"""The Galaxy's Best Zero-Gee Restaurant"""
.GSTR STR?143,"The eternal flame has been extinguished!"
.GSTR STR?144,"Lieutenant First Class"
.GSTR STR?145,"Through the large, dirty window, you can see Dan's used spaceship lot. The spaceships floating in Dan's lot all have their prices whitewashed on their viewports, along with phrases like ""A steal!"" and ""Just reduced!"""
.GSTR STR?146,"You are already in that mode.
"
.GSTR STR?145,"That might get you into serious trouble as a violation of the Comprehensive Forms Destruction and Mutilation Act of 11309 GY.
.GSTR STR?147,"That might get you into serious trouble as a violation of the Comprehensive Forms Destruction and Mutilation Act of 11309 GY.
"
.GSTR STR?146,"ou hear the welder move off in another direction.
.GSTR STR?148,"ou hear the welder move off in another direction.
"
.GSTR STR?147,", of course, no longer attached to the detonator.)"
.GSTR STR?148,"The form is swallowed up, followed by a long pause for triple-redundancy processing. "
.GSTR STR?149,"The form is rejected. "
.GSTR STR?150,"suddenly sublimes into a puff of FREZONE (tm) gas."
.GSTR STR?151,"For those unfamiliar with PLANETFALL, "
.GSTR STR?152,"
.GSTR STR?149,", of course, no longer attached to the detonator.)"
.GSTR STR?150,"The form is swallowed up, followed by a long pause for triple-redundancy processing. "
.GSTR STR?151,"The form is rejected. "
.GSTR STR?152,"suddenly sublimes into a puff of FREZONE (tm) gas."
.GSTR STR?153,"For those unfamiliar with PLANETFALL, "
.GSTR STR?154,"
You have entered a cluttered space bubble "
.GSTR STR?153," in the center... Oops. At second glance, you realize that the "
.GSTR STR?154," between the arms of the frozen exercise machine, smoke pouring from its engine vents like steam from the nostrils of an angry bull."
.GSTR STR?155,"You detach the detonator from "
.GSTR STR?156," The ostrich gives a pathetic squawk of terror "
.GSTR STR?157,"ou can just make out a letter ""M.""
.GSTR STR?155," in the center... Oops. At second glance, you realize that the "
.GSTR STR?156," between the arms of the frozen exercise machine, smoke pouring from its engine vents like steam from the nostrils of an angry bull."
.GSTR STR?157,"You detach the detonator from "
.GSTR STR?158," The ostrich gives a pathetic squawk of terror "
.GSTR STR?159,"ou can just make out a letter ""M.""
"
.GSTR STR?158," and lands on the floor."
.GSTR STR?159,", and a ladder leads both upward and downward."
.GSTR STR?160,"That's too long to wait.
.GSTR STR?160," and lands on the floor."
.GSTR STR?161,", and a ladder leads both upward and downward."
.GSTR STR?162,"That's too long to wait.
"
.GSTR STR?161,"You are in the heart of the administrative level of the ship, the largest level of the S.P.S. Duffy or any other Stellar Patrol ship for that matter. The corridor continues starboard and a room lies aft of here. Through the door to port lies the bulk of the Duffy. Next to the door is a slot."
.GSTR STR?162,"You must insert a validated Assignment Completion Form in the slot"
.GSTR STR?163,"""STELLAR PATROL
.GSTR STR?163,". 2. A callous disregard for scientific accuracy on the part of the author"
.GSTR STR?164,"[Please refer to them as FIRST BIN, SECOND BIN, and THIRD BIN.]
"
.GSTR STR?165," ""Boy, that looks like fun!"" says Floyd, peering up at you. ""Can Floyd try it? Huh? Please?""
"
.GSTR STR?166," is a tangle of tubes and space bubbles and derelict rockets."
.GSTR STR?167,"It won't budge.
"
.GSTR STR?168,"Floyd sniffs, ""Please leave Floyd alone for a while.""
"
.GSTR STR?169,"You are in the heart of the administrative level of the ship, the largest level of the S.P.S. Duffy or any other Stellar Patrol ship for that matter. The corridor continues starboard and a room lies aft. Beyond the door to port lies the bulk of the Duffy. Next to the door is a slot."
.GSTR STR?170,"You must insert a validated Assignment Completion Form in the slot"
.GSTR STR?171,"""STELLAR PATROL
Paperwork Task Force
ID Number: 1451-352-716"""
.GSTR STR?164,"This is the largest space in the ship, three decks tall and with the floor area of seven Rigellian buzzball fields. The only exit is fore."
.GSTR STR?165,"The room is filled to the ceiling with row upon row of pallets filled with boxes. Each box has some writing stamped on the side."
.GSTR STR?166,"The deck five corridor ends here at the entrance to the cargo bay, to starboard. A smaller entrance leads fore."
.GSTR STR?167,"He's an amusing and friendly little fellow."
.GSTR STR?168,"That's me!"
.GSTR STR?169,"Floyd, he"
.GSTR STR?170,"rubs his head affectionately against your shoulder"
.GSTR STR?171,"notices a mouse scurrying by and tries to hide behind you"
.GSTR STR?172,"reminisces about the excitement of your adventure on Resida"
.GSTR STR?173,"hums the theme song from a popular Saturday morning hyperwave cartoon"
.GSTR STR?174,"plays a quick game of paddleball, almost breaking his record of four hits"
.GSTR STR?175,"paces impatiently"
.GSTR STR?176,"absent-mindedly recites the first six hundred digits of pi"
.GSTR STR?177,"recalls the time he bruised his knee"
.GSTR STR?178,"tells you how much it hurts to repair dents"
.GSTR STR?179,"cranes his neck to see what you are doing"
.GSTR STR?180,"examines himself for signs of rust"
.GSTR STR?181,"absent-mindedly oils one of his joints"
.GSTR STR?182,"wanders restlessly around the room"
.GSTR STR?183,"sneaks up clumsily behind you and shouts ""Boo!"" in your ear"
.GSTR STR?184,"frets about the possibility of his batteries failing"
.GSTR STR?185,"whistles tunelessly"
.GSTR STR?186,"boasts about the time he helped someone find a lost paper clip"
.GSTR STR?187,"yawns and looks bored"
.GSTR STR?188,"complains about a recent assignment in the forms filing department"
.GSTR STR?189,"produces a crayon from one of his compartments and scrawls his name on the wall"
.GSTR STR?190,"stomps on your foot, for no apparent reason"
.GSTR STR?191,"accidentally bumps into you, and reacts by cursing your ancestors"
.GSTR STR?192,"produces a loud burp and fails to apologize"
.GSTR STR?193,"mumbles about a mysterious future in which humans will have to take orders from robots"
.GSTR STR?194,"tells an off-color joke about the bizarre mating habits of flesh and blood creatures"
.GSTR STR?195,"Floyd tells Plato about a neat shortcut for calculating seventh order differentials"
.GSTR STR?196,"Plato tells Floyd one of the ancient legends about the early days of the settlement of the galaxy"
.GSTR STR?197,"Floyd confides to Plato that his life's dream is to get locked up overnight in a toy factory"
.GSTR STR?198,"Floyd and Plato discuss their favorite battery recharging techniques"
.GSTR STR?199,"Plato helps polish a hard-to-reach spot on Floyd's back"
.GSTR STR?200,"""You like Floyd, don't you, Plato?"" asks Floyd. ""Yes,"" replies the taller robot, ""you're the only robot I've ever met who doesn't call me a nerd."" Floyd smiles"
.GSTR STR?201,"In a very sad voice, Floyd talks of his friend Lazarus, a medical robot on Resida who was tragically disassembled. Plato responds, ""Now, Floyd, don't fill your head with the sad memories of Lazarus' death. Think instead about the joy-filled times when you and your friend were together."" Floyd seems awed by such wisdom"
.GSTR STR?202,"Floyd gives Plato a friendly hug"
.GSTR STR?203,"Floyd stubs his toe and begins to whimper. ""There, there,"" says Plato, ""such a reaction will not reduce the level of pain."" He gives Floyd a little tickle, and Floyd begins giggling and forgets the injury"
.GSTR STR?204,"Bin number two holds a spindly little robot, a specialized model designed for bursting and decollating multi-part forms. A tiny nameplate on her perforating extension reads ""Helen."""
.GSTR STR?205,"In the first bin is a bulky robot, obviously intended for heavy lifting. A brass plate on one of his pneumatic arm lifts says ""Rex."""
.GSTR STR?206," Rex trundles after you. Unfortunately, Rex is not too bright on his best days, and today is not one of them. He forgets to stop when you do; sixteen tons of Rex turn you into a human pancake."
.GSTR STR?207,"open the hatch"
.GSTR STR?208,"If you're in spacelane 630-461, keep it down to 26000 kilometers per millichron. There's a stakeout there."
.GSTR STR?209,"Anyone seen any smokeys in the Nebulon sector?"
.GSTR STR?210,"I'm looking for a traffic report on spacelane 317-455."
.GSTR STR?211,"At the conclusion of this recording, your emergency message will be sent. In the meantime, stay calm. Nothing can go wrong <skip> go wrong <skip> go wrong <skip> go wrong.."
.GSTR STR?212," filling the bay with hot ion gasses. Since you slept through most lectures at boot camp, you may not recall that hot ion gasses are pretty deadly."
.GSTR STR?213,". Once in space, the truck's air gushes out through the open hatch."
.GSTR STR?214,", leaving an impressive cloud of ion dust. However, you're in no condition to admire it, since you are now smeared all over the rear wall of the truck."
.GSTR STR?215,"Fuel level at three-quarters"
.GSTR STR?216,"Fuel level at one-quarter"
.GSTR STR?217,"Docking bay one is occupied. Defaulting to bay two"
.GSTR STR?218,"Arrival at terminus of inputted course. Fuel levels now effectively at zero. Oxygen supply for one person: approximately two chrons"
.GSTR STR?219," As the oxygen runs low, Floyd becomes quite chipper. Never before has he been in such a rust-inhibiting atmosphere. You, on the other hand, are dead."
.GSTR STR?220," blueberry walnut soup"
.GSTR STR?221," Ramosian tree-mold custard"
.GSTR STR?222," apricot yogurt"
.GSTR STR?223,"This is a fairly large space where much of the maintenance work for the station takes place. Some repair work for visiting ships is also done here. The room is filled with all sorts of repair and fabrication machinery. A door leads south, and there's an opening to the north."
.GSTR STR?224,"I'm really not at all mechanically inclined. My sincerest apologies."
.GSTR STR?225,"It's a kind of a thingamabob for putting in a, you know, a whosiwhatsis."
.GSTR STR?226,"This is one of the storage areas. Exits lie to the east and south."
.GSTR STR?227,"twenty tiny sockets"
.GSTR STR?228,"The central corridor continues around to the southeast and southwest, but another corridor joins from the north. There's a door to the east and a doorway to the northeast."
.GSTR STR?229,"The corridor widens here as it approaches the skin of the space station at the point where a Scientific Sub-Module would connect. Sure enough, the connecting tube of a Sub-Module begins just to the north! An auto-door lies to the west. Opposite it, a doorway leads east."
.GSTR STR?230,"This is the shop for station personnel, selling everything from postcards to chewing gum at inflated prices. Exits lead west and southwest."
.GSTR STR?231,"In the corner of the PX is a Stellar Patrol dispensing machine, consisting of a screen (displaying the dispenser's ""exciting"" offerings), a slot (for coin insertion), a keypad (for typing your selection), and a hole (where the dispensed item hopefully -- but rarely -- arrives)."
.GSTR STR?232,"coin slot"
.GSTR STR?233," In case you were napping during Demolitions Training, this means that you're now a fine layer of ash all over the walls of the PX."
.GSTR STR?234,"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis."
.GSTR STR?235,"Surrounding the beds of this infirmary is the finest diagnostic equipment that unlimited Stellar Patrol budgets can buy. To the east, an ID reader indicates a security door. You can leave to the west or southeast."
.GSTR STR?236,"This is a modest prison, with three cells. The only exit is west."
.GSTR STR?237,"lock"
.GSTR STR?238,"The corridor continues around to the northwest and southwest, and an adjoining one heads east."
.GSTR STR?239,"This central corridor turns northeast and northwest of here. A second corridor begins here and leads south. There are doorways to the southwest, southeast, and east."
.GSTR STR?240," The shock seems to have been a bit too much for your heart."
.GSTR STR?241,"This is the room where octuplet copies of important forms are stored. Since it is only about a hundred square meters, this room cannot hold more than a few days worth of storage before being dumped to nanofilm. Mercifully, there is an exit to the northeast."
.GSTR STR?242,"reader"
.GSTR STR?243," The log reader explodes!"
.GSTR STR?244,"These are by far the nicest living quarters on the station, with separate sleeping, changing, and working cubicles, and a private SanFac. The only exit is west."
.GSTR STR?245,"Sitting on the Commander's desk is an ordinary-looking log tape. There's a notation printed on it."
.GSTR STR?246,"""Commander's Log -- 11349.12.2 through 11349.12.4"""
.GSTR STR?247,"A sturdy safe is welded to the deck next to the desk."
.GSTR STR?248,"The safe has been blown open! The area around the safe is blackened, and a burnt odor hangs in the air."
.GSTR STR?249,"hole"
.GSTR STR?250,"This is the Station Commander's conference room. Doors point north and west."
.GSTR STR?251,"This is a secondary weapons storage deck, but the only weapon deck on a station with no Military Sub-Module. Exit: south."
.GSTR STR?252,"This is a wide but not very tall docking bay. The station entrance lies to the east."
.GSTR STR?253,"""Spacetruck Refueling Instructions"
.GSTR STR?254,"This cramped dormitory, composed of approximately twenty private cubicles, curves around the northern half of this level, with exits to the southeast and southwest."
.GSTR STR?255,"You enter one of the cubicles but find nothing of interest."
.GSTR STR?256,"This warren of tiny cubicles fills the southern half of this level, curving toward exits in the northeast and northwest corners."
.GSTR STR?257,"This is a crowded but otherwise typical sanitary facility, with rows of showers, toilet stalls, and sinks. There are exits both north and south."
.GSTR STR?258,"A multiple-function exercise machine sits imposingly on one side of the gym. There is a sign above it."
.GSTR STR?259," hums encouraging platitudes as it exercises you to death."
.GSTR STR?260,"In the corner, next to the dryer, is a large empty spot where the washer should be."
.GSTR STR?261,"lurches forward and slams shut on your arm. Before you pass out from the pain, you hear a rumbling sound from the presser, but you can't decide whether it sounds more like a chuckle or a burp."
.GSTR STR?262,"""Chapel Maintenance Procedures"
.GSTR STR?263,"This sixty-seat auditorium is used for lectures, certain large briefings, an occasional live entertainment, and a rare live broadcast over deep-space channels. A projection booth dominates the rear of the room. The theatre's only exit is to the north."
.GSTR STR?264,"Aaarghhh! The coffee is poisoned! It's eating away at your insides!!"
.GSTR STR?265,"This is the primary storage room of the station, with large stockpiles of important items. For example, basic organic materials are needed to supplement the food supply due to the tiny inefficiencies of the recycling process. This is nearly the top level of the Command Module, and the ceiling curves in sharply over the supply room, which curves around to doors at the northwestern and southwestern ends."
.GSTR STR?266,"detonator"
.GSTR STR?267,"This is a medium-sized conference room with doors to the south and west."
.GSTR STR?268,"This is a fairly large conference room with north and south exits."
.GSTR STR?269,"This station's library has some printed material, such as recently transmitted magazines, but primarily it is a location for reading nanofilm spools, using the spool reader, and accessing the main computer's data banks via a computer terminal. Strangely, the computer terminal has been removed from the room. There's a door to the north and an exit to the west."
.GSTR STR?270,"Magazines are not to be removed from the library"
.GSTR STR?271,"You stroll down one of the pebbled paths. It circles the garden, passing more exotic plants, and returns to the area near the elevator."
.GSTR STR?272,"""Shrubbery Maintenance Supplies"""
.GSTR STR?273,"open the grating"
.GSTR STR?274,"These cubicles are for use by any visitors or station personnel beyond the normal complement. The entire barracks seem to be unused as well as deserted. The exit lies to the south, and the barracks curve around to the east."
.GSTR STR?275,"This is the rather ordinary sanitary facility for the barracks to the north."
.GSTR STR?276,"This is the station's largest docking bay. A huge door to the east leads into the station.
.GSTR STR?172,"This is the largest space in the ship, three decks tall and with the floor area of seven Rigellian buzzball fields. The only exit is fore."
.GSTR STR?173,"The room is filled to the ceiling with row upon row of pallets filled with boxes. Each box has some writing stamped on the side."
.GSTR STR?174,"The deck twelve corridor ends here at the entrance to the cargo bay, to starboard. A smaller entrance leads fore."
.GSTR STR?175,"He's an amusing and friendly little fellow."
.GSTR STR?176,"That's me!"
.GSTR STR?177,"Floyd, he"
.GSTR STR?178,"rubs his head affectionately against your shoulder"
.GSTR STR?179,"notices a mouse scurrying by and tries to hide behind you"
.GSTR STR?180,"reminisces about the excitement of your adventure on Resida"
.GSTR STR?181,"hums the theme song from a popular Saturday morning hyperwave cartoon"
.GSTR STR?182,"plays a quick game of paddleball, almost breaking his record of four hits"
.GSTR STR?183,"paces impatiently"
.GSTR STR?184,"absent-mindedly recites the first six hundred digits of pi"
.GSTR STR?185,"recalls the time he bruised his knee"
.GSTR STR?186,"tells you how much it hurts to repair dents"
.GSTR STR?187,"cranes his neck to see what you are doing"
.GSTR STR?188,"examines himself for signs of rust"
.GSTR STR?189,"absent-mindedly oils one of his joints"
.GSTR STR?190,"wanders restlessly around the room"
.GSTR STR?191,"sneaks up clumsily behind you and shouts ""Boo!"" in your ear"
.GSTR STR?192,"frets about the possibility of his batteries failing"
.GSTR STR?193,"whistles tunelessly"
.GSTR STR?194,"boasts about the time he helped someone find a lost paper clip"
.GSTR STR?195,"yawns and looks bored"
.GSTR STR?196,"complains about a recent assignment in the forms filing department"
.GSTR STR?197,"produces a crayon from one of his compartments and scrawls his name on the wall"
.GSTR STR?198,"stomps on your foot, for no apparent reason"
.GSTR STR?199,"accidentally bumps into you, and reacts by cursing your ancestors"
.GSTR STR?200,"produces a loud burp and fails to apologize"
.GSTR STR?201,"mumbles about a mysterious future in which humans will have to take orders from robots"
.GSTR STR?202,"tells an off-color joke about the bizarre mating habits of flesh and blood creatures"
.GSTR STR?203,"Floyd tells Plato about a neat shortcut for calculating seventh order differentials"
.GSTR STR?204,"Plato tells Floyd one of the ancient legends about the early days of the settlement of the galaxy"
.GSTR STR?205,"Floyd confides to Plato that his life's dream is to get locked up overnight in a toy factory"
.GSTR STR?206,"Floyd and Plato discuss their favorite battery recharging techniques"
.GSTR STR?207,"Plato helps polish a hard-to-reach spot on Floyd's back"
.GSTR STR?208,"""You like Floyd, don't you, Plato?"" asks Floyd. ""Yes,"" replies the taller robot, ""you're the only robot I've ever met who doesn't call me a nerd."" Floyd smiles"
.GSTR STR?209,"In a very sad voice, Floyd talks of his friend Lazarus, a medical robot on Resida who was tragically disassembled. Plato responds, ""Now, Floyd, don't fill your head with the sad memories of Lazarus' death. Think instead about the joy-filled times when you and your friend were together."" Floyd seems awed by such wisdom"
.GSTR STR?210,"Floyd gives Plato a friendly hug"
.GSTR STR?211,"Floyd stubs his toe and begins to whimper. ""There, there,"" says Plato, ""such a reaction will not reduce the level of pain."" He gives Floyd a little tickle, and Floyd begins giggling and forgets the injury"
.GSTR STR?212,"Bin number two holds a spindly little robot, a specialized model designed for bursting and decollating multi-part forms. A tiny nameplate on her perforating extension reads ""Helen."""
.GSTR STR?213,"In the first bin is a bulky robot, obviously intended for heavy lifting. A brass plate on one of his pneumatic arm lifts says ""Rex."""
.GSTR STR?214," Rex trundles after you. Unfortunately, Rex is not too bright on his best days, and today is not one of them. He forgets to stop when you do; sixteen tons of Rex turn you into a human pancake."
.GSTR STR?215,"open the hatch"
.GSTR STR?216,"If you're in spacelane 630-461, keep it down to 26000 kilometers per millichron. There's a stakeout there."
.GSTR STR?217,"Anyone seen any smokeys in the Nebulon sector?"
.GSTR STR?218,"I'm looking for a traffic report on spacelane 317-455."
.GSTR STR?219,"At the conclusion of this recording, your emergency message will be sent. In the meantime, stay calm. Nothing can go wrong <skip> go wrong <skip> go wrong <skip> go wrong.."
.GSTR STR?220," filling the bay with hot ion gasses. Since you slept through most lectures at boot camp, you may not recall that hot ion gasses are pretty deadly."
.GSTR STR?221,". Once in space, the truck's air gushes out through the open hatch."
.GSTR STR?222,", leaving an impressive cloud of ion dust. However, you're in no condition to admire it, since you are now smeared all over the rear wall of the truck."
.GSTR STR?223,"Fuel level at three-quarters"
.GSTR STR?224,"Fuel level at one-quarter"
.GSTR STR?225,"Docking bay one is occupied. Defaulting to bay two"
.GSTR STR?226,"Arrival at terminus of inputted course. Fuel level now effectively at zero. Oxygen supply for one person: approximately two chrons"
.GSTR STR?227," As the oxygen runs low, Floyd becomes quite chipper. Never before has he been in such a rust-inhibiting atmosphere. You, on the other hand, are dead."
.GSTR STR?228," blueberry walnut soup"
.GSTR STR?229,"soup"
.GSTR STR?230," Ramosian tree-mold custard"
.GSTR STR?231," apricot yogurt"
.GSTR STR?232,"This is a fairly large space where much of the maintenance work for the station takes place. Some repair work for visiting ships is also done here. The room is filled with all sorts of repair and fabrication machinery. A door leads south, and there's an opening to the north."
.GSTR STR?233,"I'm really not at all mechanically inclined. My sincerest apologies."
.GSTR STR?234,"It's a kind of a thingamabob for putting in a, you know, a whosiwhatsis."
.GSTR STR?235,"This is one of the storage areas. Exits lie to the east and south."
.GSTR STR?236,"twenty tiny sockets"
.GSTR STR?237,"The central corridor continues around to the southeast and southwest, but another corridor joins from the north. There's a door to the east and a doorway to the northeast."
.GSTR STR?238,"The corridor widens here as it approaches the skin of the space station at the point where a Scientific Sub-Module would connect. Sure enough, the connecting tube of a Sub-Module begins just to the north! An auto-door lies to the west. Opposite it, a doorway leads east. A junction is visible to the south."
.GSTR STR?239,"This is the shop for station personnel, selling everything from postcards to chewing gum at inflated prices. Exits lead west and southwest."
.GSTR STR?240,"In the corner of the PX is a Stellar Patrol dispensing machine, consisting of a screen (displaying the dispenser's ""exciting"" offerings), a slot (for coin insertion), a keypad (for typing your selection), and a hole (where the dispensed item hopefully -- but rarely -- arrives)."
.GSTR STR?241,"coin slot"
.GSTR STR?242," In case you were napping during Demolitions Training, this means that you're now a fine layer of ash all over the walls of the PX."
.GSTR STR?243,"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis."
.GSTR STR?244,"Surrounding the beds of this infirmary is the finest diagnostic equipment that unlimited Stellar Patrol budgets can buy. To the east, an ID reader indicates a security door. You can leave to the west or southeast."
.GSTR STR?245,"This is a modest prison, with three cells. The only exit is west."
.GSTR STR?246,"lock"
.GSTR STR?247,"The corridor continues around to the northwest and southwest, and an adjoining one heads east."
.GSTR STR?248,"This central corridor turns northeast and northwest of here. A second corridor begins here and leads south. There are doorways to the southwest, southeast, and east."
.GSTR STR?249," The shock seems to have been a bit too much for your heart."
.GSTR STR?250,"This is the room where octuplet copies of forms are stored. Since it's only a hundred square meters, this room cannot hold more than a few days' worth of storage before being dumped to nanofilm. Mercifully, there is an exit to the northeast."
.GSTR STR?251,"reader"
.GSTR STR?252,"These are by far the nicest living quarters on the station, with separate sleeping, changing, and working cubicles, and a private SanFac. The only exit is west."
.GSTR STR?253,"Sitting on the Commander's desk is an ordinary-looking log tape. There's a notation printed on it."
.GSTR STR?254,"""Commander's Log -- 11349.12.2 through 11349.12.4"""
.GSTR STR?255,"A sturdy safe is welded to the deck next to the desk."
.GSTR STR?256,"The safe has been blown open! The area around the safe is blackened, and a burnt odor hangs in the air."
.GSTR STR?257,"hole"
.GSTR STR?258,"This is the Station Commander's conference room. Doors point north and west."
.GSTR STR?259,"This is a secondary weapons storage deck, but the only weapon deck on a station with no Military Sub-Module. Exit: south."
.GSTR STR?260,"This is a wide but not very tall docking bay. The station entrance lies to the east."
.GSTR STR?261,"""Spacetruck Refueling Instructions"""
.GSTR STR?262,"This cramped dormitory, composed of approximately twenty private cubicles, curves around the northern half of this level, with exits to the southeast and southwest."
.GSTR STR?263,"You enter one of the cubicles but find nothing of interest."
.GSTR STR?264,"This warren of tiny cubicles fills the southern half of this level, curving toward exits in the northeast and northwest corners."
.GSTR STR?265,"This is a crowded but otherwise typical sanitary facility, with rows of showers, toilet stalls, and sinks. There are exits both north and south."
.GSTR STR?266,"A multiple-function exercise machine sits imposingly on one side of the gym. There is a sign above it."
.GSTR STR?267," hums encouraging platitudes as it exercises you to death."
.GSTR STR?268,"In the corner, next to the dryer, is a large empty spot where the washer should be."
.GSTR STR?269,"lurches forward and slams shut on your arm. Before you pass out from the pain, you hear a rumbling sound from the presser, but you can't decide whether it sounds more like a chuckle or a burp."
.GSTR STR?270,"""Chapel Maintenance Procedures"""
.GSTR STR?271,"This sixty-seat auditorium is used for lectures, certain large briefings, an occasional live entertainment, and a rare live broadcast over deep-space channels. A projection booth dominates the rear of the room. The theatre's only exit is to the north."
.GSTR STR?272,"coffee"
.GSTR STR?273,"Aaarghhh! The coffee is poisoned! It's eating away at your insides!!"
.GSTR STR?274,"This is the primary storage room of the station, with large stockpiles of important items. For example, basic organic materials are needed to supplement the food supply due to the tiny inefficiencies of the recycling process. This is nearly the top level of the Command Module, and the ceiling curves in sharply over the supply room, which curves around to doors at the northwestern and southwestern ends."
.GSTR STR?275,"detonator"
.GSTR STR?276,"This is a medium-sized conference room with doors to the south and west."
.GSTR STR?277,"This is a fairly large conference room with north and south exits."
.GSTR STR?278,"This station's library has some printed material, such as recently transmitted magazines, but primarily it is a location for reading nanofilm spools, using the spool reader here, and for accessing the main computer's data banks via a computer terminal. Strangely, the computer terminal has been removed. There's a door to the north and an exit to the west."
.GSTR STR?279,"Magazines are not to be removed from the library"
.GSTR STR?280,"You stroll down one of the pebbled paths. It circles the garden, passing more exotic plants, and returns to the area near the elevator."
.GSTR STR?281,"""Shrubbery Maintenance Supplies"""
.GSTR STR?282,"open the grating"
.GSTR STR?283,"These cubicles are for use by any visitors or station personnel beyond the normal complement. The entire barracks seem to be unused as well as deserted. The exit lies to the south, and the barracks curve around to the east."
.GSTR STR?284,"This is the rather ordinary sanitary facility for the barracks to the north."
.GSTR STR?285,"This is the station's largest docking bay. A huge door to the east leads into the station.
Resting in the docking bay is a small ship of obviously alien origin. An open hatch seems to beckon you inward."
.GSTR STR?277,"Must be a connect-the-dots! And a real easy one, too! None of those dumb numbers to confuse you! Where's my crayon?"
.GSTR STR?278,"Hmmm. Some kind of alien writing, I presume. If I recall, the Mayor is an expert on that subject."
.GSTR STR?279,"Lying under the dots is a skeleton, the brittle remains of a member of some unfamiliar alien race."
.GSTR STR?280,"This is the station's smallest docking bay. You can enter the station to the east."
.GSTR STR?281,"The corridor, which widens off to the west, ends here. There are doorways north and east of you, and doors to the south and southwest. The door to the north must be a security door, because there's an ID reader next to it."
.GSTR STR?282,"This is a room where new robots are constructed, old robots are repaired, and unused robots are stored. There's a door to the east."
.GSTR STR?283,"opening of the chamber"
.GSTR STR?284,"There's a young-looking robot lying here, apparently having completed the final ""training"" phase of its construction. The wires for feeding it information have been removed, but it has not yet ""woken up."" A dim memory from your old robotics text drifts through your mind: ""The incubation period between the training and 'birth' of a robot is two to twenty days, depending on the complexity of the model."" This particular model has the name ""Oliver"" engraved on its chestplate."
.GSTR STR?285,"If we be here when Oliver wakes up, Floyd would like to teach Oliver to play paddleball. Paddleball helped Floyd forget how lonely and scared he was until he found friends...like you."
.GSTR STR?286,"Ah, a new robot. Poor fellow; new robots are so mercilessly mistreated by the older robots. Such is our lot."
.GSTR STR?287,"In an event staggering in its improbability, a huge meteor crashes through the hull of the space station as you take aim, and turns you into cosmic dust. Can't say you didn't deserve it, you baby-robot-killer you."
.GSTR STR?288,"This is the place where a station's exports are prepared before transfer to the docking bays and subsequent shipment throughout the regional sector. Hanging above a large vacant section of the room is an eye-catching sign. The only exit is west."
.GSTR STR?289,"This is a fairly comfortable two-person living quarters, significantly roomier than the barracks where most of the ship's personnel live. There's a door to the north, and an opening leads southeast."
.GSTR STR?290,"This is a fairly comfortable two-person living quarters, significantly roomier than the barracks where most of the ship's personnel live. A door leads north and a doorway south."
.GSTR STR?291,"This is a fairly comfortable two-person living quarters, significantly roomier than the barracks where most of the ship's personnel live. A doorway lies to the southwest, and there's an auto-door to the north."
.GSTR STR?292,"A moderately luxurious SanFac, with a pair of bathtubs in addition to the regular fixtures. Exits lead north, northeast, and northwest."
.GSTR STR?293,"Partway down, you discover that the ladder passage to Level Eight is sealed off -- apparently from below."
.GSTR STR?294,"""Collater Repair Manual"""
.GSTR STR?295,"Outdated forms and expired files are reduced to pulp by this machinery. In addition, raw pulp is constantly being ferried into the station from nearby forest worlds. The output from this plant feeds the station's printing plant, which lies to the southeast."
.GSTR STR?296,"Someone has presumably been attempting to repair some of the machinery in this room, because they left a drill lying around."
.GSTR STR?297,"drill"
.GSTR STR?298,"remove the bit that's in the drill"
.GSTR STR?299,"Oh, no! The elevator isn't at this floor! It's a long plunge..."
.GSTR STR?300,"Magnetically-stored data has been damaged; see the Security Officer to have data restored"
.GSTR STR?301,"This shiny cylindrical corridor is the connector between the Command Module, to the south, and the Scientific Sub-Module, to the north."
.GSTR STR?302,"This laboratory, which fills most of the middle level of the Sub-Module, is for the study of applications of the various space-related research that takes place on the other levels. Gangways lead up and down, and a door leads north. A connecting tube opens to the south."
.GSTR STR?303,"This is a small office associated with the lab to the south."
.GSTR STR?304,"This is the notebook of a certain Professor Schmidt, who was studying a strange pyramid discovered aboard a derelict alien ship and brought here.
.GSTR STR?286,"Must be a connect-the-dots! And a real easy one, too! None of those dumb numbers to confuse you! Where's my crayon?"
.GSTR STR?287,"Hmmm. Some kind of alien writing, I presume. If I recall, the Mayor is an expert on that subject."
.GSTR STR?288,"Lying under the dots is a skeleton, the brittle remains of a member of some unfamiliar alien race."
.GSTR STR?289,"This is the station's smallest docking bay. You can enter the station to the east."
.GSTR STR?290,"The corridor, which widens off to the west, ends here. Doors lie to the east, north, south, and southwest. The door to the north must be a security door, because there's an ID reader next to it."
.GSTR STR?291,"This is a room where new robots are constructed, old robots are repaired, and unused robots are stored. There's a door to the east."
.GSTR STR?292,"opening of the chamber"
.GSTR STR?293,"There's a young-looking robot lying here, apparently having completed the final ""training"" phase of its construction. The wires for feeding it information have been removed, but it has not yet ""woken up."" A dim memory from your old robotics text drifts through your mind: ""The incubation period between the training and 'birth' of a robot is two to twenty days, depending on the complexity of the model."" This particular model has the name ""Oliver"" engraved on its chestplate."
.GSTR STR?294,"A little ""sleeping"" robot named ""Oliver"" is lying here."
.GSTR STR?295,"If we be here when Oliver wakes up, Floyd would like to teach Oliver to play paddleball. Paddleball helped Floyd forget how lonely and scared he was until he found friends...like you."
.GSTR STR?296,"Ah, a new robot. Poor fellow; new robots are so mercilessly mistreated by the older robots. Such is our lot."
.GSTR STR?297,"In an event staggering in its improbability, a huge meteor crashes through the hull of the space station as you take aim, and turns you into cosmic dust. Can't say you didn't deserve it, you baby-robot-killer you."
.GSTR STR?298,"This is the place where a station's exports are prepared before transfer to the docking bays and subsequent shipment throughout the regional sector. Hanging above a large vacant section of the room is an eye-catching sign. The only exit is west."
.GSTR STR?299,"This is a fairly comfortable two-person living quarters, significantly roomier than the barracks where most of the ship's personnel live. There's a door to the north, and an opening leads southeast."
.GSTR STR?300,"This is a fairly comfortable two-person living quarters, significantly roomier than the barracks where most of the ship's personnel live. A door leads north and a doorway south."
.GSTR STR?301,"This is a fairly comfortable two-person living quarters, significantly roomier than the barracks where most of the ship's personnel live. A doorway lies to the southwest, and there's an auto-door to the north."
.GSTR STR?302,"A moderately luxurious SanFac, with a pair of bathtubs in addition to the regular fixtures. Exits lead north, northeast, and northwest."
.GSTR STR?303,"A few rungs down, you discover that the ladder passage to Level Eight is sealed off -- apparently from below."
.GSTR STR?304,"""Collater Repair Manual"""
.GSTR STR?305,"Outdated forms and expired files are reduced to pulp by this machinery. In addition, raw pulp is constantly being ferried into the station from nearby forest worlds. The output from this plant feeds the station's printing plant, which lies to the southeast."
.GSTR STR?306,"Someone has presumably been attempting to repair some of the machinery in this room, because they left a drill lying around."
.GSTR STR?307,"drill"
.GSTR STR?308,"remove the bit that's in the drill"
.GSTR STR?309,"Oh, no! The elevator isn't at this floor! It's a long plunge..."
.GSTR STR?310,"Magnetically-stored data has been damaged; see the Security Officer to have data restored"
.GSTR STR?311,"This shiny cylindrical corridor is the connector between the Command Module, to the south, and the Scientific Sub-Module, to the north."
.GSTR STR?312,"This laboratory, which fills most of the middle level of the Sub-Module, is for the study of applications of the various space-related research that takes place on the other levels. Gangways lead up and down, and a door leads north. A connecting tube opens to the south."
.GSTR STR?313,"This is a small office associated with the lab to the south."
.GSTR STR?314,"This is the notebook of a certain Professor Schmidt, who was studying a strange pyramid discovered aboard a derelict alien ship and brought here.
Schmidt traced back the path of the alien ship; the path points out of the galaxy without nearing any star system. Further, extending the path leads straight to one of our smaller neighboring galaxies. Schmidt concludes that the ship and the pyramid are probably well over one billion years old!
Next, Schmidt studied the wall markings in the alien ship. A series of identical dots, they defied every computerized model of linguistic decipherment! Then, in an inspiration, Schmidt studied the dots for nonvisual properties. His diary vaguely refers to a breakthrough, saying, ""I guess my pal, the mayor, will get to show off his linguistic training.""
Finally, Schmidt began concentrating his studies on the pyramid itself. He was able to discover very little, blaming this primarily on the unexplained failures of several crucial pieces of lab machinery."
.GSTR STR?305,"This laboratory conducts research into various space-related physical sciences. Gangways lead up and down, a there's a door to the north."
.GSTR STR?306,"Various biological sciences, as they related to the environment of space, are studied in this laboratory. There is a gangway leading up, another leading down, and a door leading north."
.GSTR STR?307,"Lying on one of the desks is a scribbled note."
.GSTR STR?308,"""Schmidt -- Why didn't I see it until now! Just think of this station as a cell and the pyramid as a mechanized bacterioph"" The note ends at that point; there seem to be some reddish-brown stains on it."
.GSTR STR?309,"This cramped living area has cubicles for the dozen or so scientists and engineers working in this Sub-Module. The only exit is a gangway leading down."
.GSTR STR?310,"I don't have a very specific function in the station's robotic organizational scheme, but I do keep the library organized."
.GSTR STR?311,"Floyd's best friend! Oh, except you, of course!"
.GSTR STR?312,"Some early poems by Ignatius Tomato. He's my current favorite."
.GSTR STR?313,"burst into tears and dashes out of the room. A beam leaps from the gun..."
.GSTR STR?314," the station's reactor turns into a good old-fashioned H-bomb."
.GSTR STR?315,"You are at the top of an air shaft. Handholds lead downward, and a partially open air grate leads out of the shaft."
.GSTR STR?316,"You are in a large, vertical air duct. Handholds lead up and down."
.GSTR STR?317,"You have reached the bottom of the air vent. Ducts too small for you to enter lead off laterally. Handholds lead upward, and the entire floor of the duct is another large grating."
.GSTR STR?318,"The sides ducts are too small to enter!"
.GSTR STR?319,"This tiny control station allows access to the massive memory banks of the station's computer. Ever since the formation of the Third Galactic Union ended the great interstellar dark age, every Stellar Patrol spaceship, every Patrol space station, has been equipped with a computer bulging with the entire accumulated knowledge of mankind. Never again will humanity be permitted to slip back into the ignorance and savagery of the dark age.
.GSTR STR?315,"This laboratory conducts research into various space-related physical sciences. Gangways lead up and down, and there's a door to the north."
.GSTR STR?316,"Various biological sciences, as they relate to the environment of space, are studied in this laboratory. There is a gangway leading up, another leading down, and a door leading north."
.GSTR STR?317,"Lying on one of the desks is a scribbled note."
.GSTR STR?318,"""Schmidt -- Why didn't I see it until now! Just think of this station as a cell and the pyramid as a mechanized bacterioph"" The note ends at that point; there seem to be some reddish-brown stains on it."
.GSTR STR?319,"This cramped living area has cubicles for the dozen or so scientists and engineers working in this Sub-Module. The only exit is a gangway leading down."
.GSTR STR?320,"I don't have a very specific function in the station's robotic organizational scheme, but I do keep the library organized."
.GSTR STR?321,"Floyd's best friend! Oh, except you, of course!"
.GSTR STR?322,"Some early poems by Ignatius Tomato. He's my current favorite."
.GSTR STR?323,"burst into tears and dashes out of the room. A beam leaps from the gun..."
.GSTR STR?324," the station's reactor turns into a good old-fashioned H-bomb."
.GSTR STR?325,"You are at the top of an air shaft. Handholds lead downward, and a partially open air grate leads out of the shaft."
.GSTR STR?326,"You are in a large, vertical air duct. Handholds lead up and down."
.GSTR STR?327,"You have reached the bottom of the air vent. Ducts too small for you to enter lead off laterally. Handholds lead upward, and the entire floor of the duct is another large grating."
.GSTR STR?328,"The sides ducts are too small to enter!"
.GSTR STR?329,"This tiny control station allows access to the massive memory banks of the station's computer. Ever since the formation of the Third Galactic Union ended the great interstellar dark age, every Stellar Patrol spaceship, every Patrol space station, has been equipped with a computer bulging with the entire accumulated knowledge of mankind. Never again will humanity be permitted to slip back into the ignorance and savagery of the dark age.
A ladder leads up to Level Eight, and there's a call button next to the elevator shaft to the north."
.GSTR STR?320," reaches you, and performs various repetitions all over your body, proving that exercise isn't always good for you."
.GSTR STR?321,"slips into gear and zooms forward, goring you on its fork."
.GSTR STR?322,"There is gravity here at the bottom of the elevator shaft. The elevator's not in sight; the only exit is back to the computer room to the south."
.GSTR STR?323,"There's no way to climb the shaft."
.GSTR STR?324,"Floyd fires his stun ray nonchalantly in your direction, laughing, as though taunting you. You feel part of your leg go numb"
.GSTR STR?325,"Smoke is trickling from the tails of the tiny rockets, as though the duplicate pyramids were preparing for activation and launch"
.GSTR STR?326,"One of the blinking lights on the reactor goes from yellow to red"
.GSTR STR?327,"the pyramid, Floyd"
.GSTR STR?328,"This is an east-west tube, widening as it gets farther from the Command Module."
.GSTR STR?329,"This is a wide, cheaply constructed space tube, narrowing to the west. There are openings off this ""street"" in virtually every direction, including one leading downward."
.GSTR STR?330,"Well, there are openings in ALMOST every direction."
.GSTR STR?331,"This is a tiny living bubble beneath Broadway. The inhabitant, who is nowhere in sight, seems to be in the profession of reading the future for superstitious spacemen."
.GSTR STR?332,"The Stellar Patrol has opened a recruitment office off Broadway, thus giving tacit approval to this technically nonregulation space village. Posters showing a rose-colored view of Patrol life are plastered all over the walls. A door leads south."
.GSTR STR?333,"This moderately large store sells all kinds of games and other recreational materials. There is also an in-house rec area, featuring a group of simulation booths. The ""street"" lies to the southwest."
.GSTR STR?334,"groof hunting on Septurion Seven"
.GSTR STR?335,"a little-known incident during the signing of the Treaty of Gishen IV"
.GSTR STR?336,"a torrid romance on the tropical planet of San Cupidor"
.GSTR STR?337,"searching for treasure in a magical underground kingdom"
.GSTR STR?338,"bullfighting, skydiving, and dental hygiene"
.GSTR STR?339,"The huge galactic mining conglomerates often open field offices in these space villages, and this is one of those. Miners will haul some promising hunk of space rock into the vicinity, and then come here to sell the rights to it. You can leave to the west."
.GSTR STR?340,"Some miner has left a headlamp here."
.GSTR STR?341,"A piece of reflective foil is hanging on the wall where the mirror once was."
.GSTR STR?342,"Trans-molecular platinum foil! I am told that it is the most perfectly reflective material known to man, and not just on the visual wavelengths!"
.GSTR STR?343,"Floyd loves anything reflective! Give Floyd a mirror and he'll be happy for days!"
.GSTR STR?344,"This is a small convenience store, the main source of food and living supplies for this village, as well as a supplement supply for personnel from the space station proper. The shelves are pretty bare, and there is no one in sight. Exits lead north, east, southeast and south."
.GSTR STR?345,"A small, translucent plastic bag is sitting on one of the shelves."
.GSTR STR?346,", delectable, moist boysenberry-flavored taffy"
.GSTR STR?347,"This shop, with exits to the northeast and southeast, sells a variety of animals. Many a lonely spacer has discovered the joys a pet can bring, and this shop features animals of both terrestrial and alien origin. A large sign advertises this month's special."
.GSTR STR?348,"You can see the faint outline of a panel in the ceiling."
.GSTR STR?349,"This sprawling old cargo ship, its engines long ago cannibalized for spare parts, has been converted into a store for supplies and curios. There's an eye-catching sign on the wall. Passageways lead in many directions, and there's an opening in the floor."
.GSTR STR?350,"""FREZONE (tm) Liquid Gorzium Explosive
.GSTR STR?330," reaches you, and performs various repetitions all over your body, proving that exercise isn't always good for you."
.GSTR STR?331,"slips into gear and zooms forward, goring you on its fork."
.GSTR STR?332,"There is gravity here at the bottom of the elevator shaft. The elevator's not in sight; the only exit is back to the computer room to the south."
.GSTR STR?333,"There's no way to climb the shaft."
.GSTR STR?334,"Floyd fires his stun ray nonchalantly in your direction, laughing, as though taunting you. You feel part of your leg go numb"
.GSTR STR?335,"Smoke is trickling from the tails of the tiny rockets, as though the duplicate pyramids were preparing for activation and launch"
.GSTR STR?336,"One of the blinking lights on the reactor goes from yellow to red"
.GSTR STR?337,"the pyramid, Floyd"
.GSTR STR?338,"This is an east-west tube, widening as it gets farther from the Command Module."
.GSTR STR?339,"This is a wide, cheaply constructed space tube, narrowing to the west. There are openings off this ""street"" in virtually every direction, including one leading downward."
.GSTR STR?340,"Well, there are openings in ALMOST every direction."
.GSTR STR?341,"This is a tiny living bubble beneath Broadway. The inhabitant, who is nowhere in sight, seems to be in the profession of reading the future for superstitious spacers."
.GSTR STR?342,"The Stellar Patrol has opened a recruitment office off Broadway, thus giving tacit approval to this technically nonregulation space village. Posters showing a rose-colored view of Patrol life are plastered all over the walls. A door leads south."
.GSTR STR?343,"This moderately large store sells all kinds of games and other recreational materials. There is also an in-house rec area, featuring a group of simulation booths. The ""street"" lies to the southwest."
.GSTR STR?344,"groof hunting on Septurion Seven"
.GSTR STR?345,"a little-known incident during the signing of the Treaty of Gishen IV"
.GSTR STR?346,"a torrid romance on the tropical planet of San Cupidor"
.GSTR STR?347,"searching for treasure in a magical underground empire"
.GSTR STR?348,"bullfighting, skydiving, and dental hygiene"
.GSTR STR?349,"The huge galactic mining conglomerates often open field offices in these space villages, and this is one of those. Miners will haul some promising hunk of space rock into the vicinity, and then come here to sell the rights to it. You can leave to the west."
.GSTR STR?350,"Some miner has left a headlamp here."
.GSTR STR?351,"A piece of reflective foil is hanging on the wall where the mirror once was."
.GSTR STR?352,"Trans-molecular platinum foil! I am told that it is the most perfectly reflective material known, and not just on the visual wavelengths!"
.GSTR STR?353,"Floyd loves anything reflective! Give Floyd a mirror and he'll be happy for days!"
.GSTR STR?354,"This is a small convenience store, the main source of food and living supplies for this village, as well as a supplement supply for personnel from the space station proper. The shelves are pretty bare, and there is no one in sight. Exits lead north, east, southeast and south."
.GSTR STR?355,"A small, translucent plastic bag is sitting on one of the shelves."
.GSTR STR?356,", delectable, moist boysenberry-flavored taffy"
.GSTR STR?357,"This shop, with exits to the northeast and southeast, sells a variety of animals. Many a lonely spacer has discovered the joys a pet can bring, and this shop features animals of both terrestrial and alien origin. A large sign advertises this month's special."
.GSTR STR?358,"You can see the faint outline of a panel in the ceiling."
.GSTR STR?359,"This sprawling old cargo ship, its engines long ago cannibalized for spare parts, has been converted into a store for supplies and curios. There's an eye-catching sign on the wall. Passageways lead in many directions, and there's an opening in the floor."
.GSTR STR?360,"""FREZONE (tm) Liquid Gorzium Explosive
Instructions for use:
1. Insert explosive in hole of appropriate diameter.
2. Attach detonator to explosive and timer.
3. Set timer.
4. Vamoose.
NOTE: Do not expose explosive to temperatures above 150 degrees Kelvin for period of more than 100 millichrons."""
.GSTR STR?351,"This living bubble has been set up as an artist's loft. Most of the space is taken up by a large scrap sculpture floating in the center of the bubble. It is, of course, pretty impossible to tell how close the sculpture is to completion. The way out is to the east."
.GSTR STR?352,"The most recognizable item in the sculpture is a J-series hyperdiode."
.GSTR STR?353,"From your experience with tawdry, space village bars, they are crowded every millichron of the day and night. So it's quite unusual that this saloon is totally deserted. Despite the current solitude, you can almost hear the tinny music, the loud voices, the fistfights. Openings lead west and northwest, and to the east is a partially disguised exit."
.GSTR STR?354,"This is a tiny room, smelling strongly of various synthesized opium variants. There's a sign on the wall and a door to the south."
.GSTR STR?355,"Your lungs rupture, not to mention all sorts of even nastier stuff that you're lucky if you can't imagine."
.GSTR STR?356,"This filthy north-south tube is quite a change from the gleaming, well-scrubbed metal of the space station."
.GSTR STR?357,"This large spacetube is the main thoroughfare of a space village which has sprung up here on the outskirts of the space station, which lies to the north. Rather than the bustling thoroughfare you might expect, however, there isn't a soul in sight. Openings lead up, northeast, south and west. To the southeast, the ""street"" narrows and ramps downward."
.GSTR STR?358," fire nectar - thick and warming"
.GSTR STR?359,"This permanently-docked one-man ship serves as the office for Hizzoner the Mayor, the unofficial leader of the village. Main Street is below."
.GSTR STR?360,"You spot a copy of a book entitled ""Deciphering Alien Speech."""
.GSTR STR?361,"""(bitter/salty/bitter) softness/weakness
(sweet/very-sour) Hunji (noun form)
(bland/salty/sour) Zeenak (adj form)
(bland/bitter) air/atmosphere
(very-salty) however
(sweet/very-sweet) legal destruction (sabotage?)
(very-sweet/bland/sour) I have shined light upon
(sour/bland/sour/sweet) turn back
(bland) (definite article?)
(slightly-sour) solitary
(very-sweet/very-salty) element/substance
(sweet/slightly-bitter) brethren (adj form)
(sour/bland/bland/sour) died/failed
(bland/sour/very-sour) is souring/turning bad
(spicy-hot/bland/bland) (a number) (78? 7/8?)
(bitter/sour/very-sour) weapon (poss form)
(very-sweet) (emphasis mark?)
(very-salty/salty/sour) bad/evil/deadly radiation (plur form)"""
.GSTR STR?362,"This is a branch office of the First Galactic Bank of Nebulon. There are doors to the north and northwest."
.GSTR STR?363,"This small space bubble, with openings to the east and southeast, is decorated with posters of exotic locales, but it's hard to imagine that anyone in this rundown spacetown would be able to afford an interstellar pleasure jaunt."
.GSTR STR?364,"There's no doubt that ""alley"" is the best word to describe this winding, garbage-strewn connector. Dark passages branch off in almost every direction, and the alley slopes upward to the northwest."
.GSTR STR?365,"This is the home of some kook, a proselytizer of the fringe religion which believes that humankind has angered God by venturing out into space, and the universe will end sometime next week. Next week never seems to come, but there are enough kooks in the galaxy to keep the belief going. You can exit to the south."
.GSTR STR?366,"
NOTE: Do not expose explosive to temperatures above 150 degrees Kelvin for periods of more than 100 millichrons."""
.GSTR STR?361,"This living bubble has been set up as an artist's loft. Most of the space is taken up by a large scrap sculpture floating in the center of the bubble. It is, of course, pretty impossible to tell how close the sculpture is to completion. The way out is to the east."
.GSTR STR?362,"The most recognizable item in the sculpture is a J-series hyperdiode."
.GSTR STR?363,"From your experience with tawdry, space village bars, they are crowded every millichron of the day and night. So it's quite unusual that this saloon is totally deserted. Despite the current solitude, you can almost hear the tinny music, the loud voices, the fistfights. Openings lead west and northwest, and to the east is a partially disguised exit."
.GSTR STR?364,"This is a tiny room, smelling strongly of various synthesized opium variants. There's a sign on the wall and a door to the south."
.GSTR STR?365,"Your lungs rupture, not to mention all sorts of even nastier stuff that you're lucky if you can't imagine."
.GSTR STR?366,"This filthy north-south tube is quite a change from the gleaming, well-scrubbed metal of the space station."
.GSTR STR?367,"This large spacetube is the main thoroughfare of a space village which has sprung up here on the outskirts of the space station, which lies to the north. Rather than the bustling thoroughfare you might expect, however, there isn't a soul in sight. Openings lead up, northeast, south and west. To the southeast, the ""street"" narrows and ramps downward."
.GSTR STR?368," fire nectar -- thick and warming"
.GSTR STR?369,"nectar"
.GSTR STR?370,"This permanently-docked one-man ship serves as the office for Hizzoner the Mayor, the unofficial leader of the village. Main Street is below."
.GSTR STR?371,"You spot a copy of a book entitled ""Deciphering Alien Speech."""
.GSTR STR?372,"""bttr/salty/bttr softness/weakness
sweet/v.sour Hunji (noun form)
blnd/salty/sour Zeenak (adj form)
blnd/bttr air/atmosphere
sour/blnd/blnd/sour died/failed
sweet/v.sweet legal destruction
(sabotage?)
v.salty however
sour/blnd/sour/sweet turn back
blnd (def. article?)
v.sweet/blnd/sour I have shined
light upon
slightly-sour solitary
v.sweet/v.salty element/substance
sweet/slightly-bttr brethren (adj)
blnd/sour/v.sour is souring
v.salty/salty/sour bad/evil/deadly
radiations
spicy-hot/blnd/blnd 78 (?) 7/8 (?)
bttr/sour/v.sour weapon (possesv.)
v.sweet (emphasis mark?)"""
.GSTR STR?373,"This is a branch office of the First Galactic Bank of Nebulon. There are doors to the north and northwest."
.GSTR STR?374,"This small space bubble, with openings to the east and southeast, is decorated with posters of exotic locales, but it's hard to imagine that anyone in this rundown spacetown would be able to afford an interstellar pleasure jaunt."
.GSTR STR?375,"There's no doubt that ""alley"" is the best word to describe this winding, garbage-strewn connector. Dark passages branch off in almost every direction, and the alley slopes upward to the northwest."
.GSTR STR?376,"This is the home of some kook, a proselytizer of the fringe religion which believes that humankind has angered God by venturing out into space, and the universe will end sometime next week. Next week never seems to come, but there are enough kooks in the galaxy to keep the belief going. You can exit to the south."
.GSTR STR?377,"
Lost in Space
You spend several chrons tumbling into the starry depths, the station dwindling to a dot of light behind you. Eventually, your air runs out."
.GSTR STR?367,"As you swivel the headlamp around, you discover a tiny cylinder with an even tinier label."
.GSTR STR?368,"""FREZONE (tm) Liquid Gorzium Explosive. For use only by licensed demolitionist. Instruction sheet available from vendor; read thoroughly before use!"""
.GSTR STR?369,"The three balls hanging by the (northeastern) entrance to this space hut indicate that a villager down on his or her luck could come here to hock some valuable possession."
.GSTR STR?370,"Some destitute spacer was so hard up that he or she actually pawned a spray can. It's sitting here in the shop, and has some lettering on it."
.GSTR STR?371,"This is a dilapidated vessel that some seedy loan shark has moored on the south side of the alley."
.GSTR STR?372,"A fairly sturdy strong box is fastened to the floor. Or maybe the ceiling. One can never be sure without gravity."
.GSTR STR?373,"""ONE GALAKMID
.GSTR STR?378,"As you swivel the headlamp around, you discover a tiny cylinder with an even tinier label."
.GSTR STR?379,"""FREZONE (tm) Liquid Gorzium Explosive. For use only by licensed demolitionist. Instruction sheet available from vendor; read thoroughly before use!"""
.GSTR STR?380,"The three balls hanging by the (northeastern) entrance to this space hut indicate that a villager down on his or her luck could come here to hock some valuable possession."
.GSTR STR?381,"Some destitute spacer was so hard up that he or she actually pawned a spray can. It's sitting here in the shop, and has some lettering on it."
.GSTR STR?382,"This is a dilapidated vessel that some seedy loan shark has moored on the south side of the alley."
.GSTR STR?383,"A fairly sturdy strong box is fastened to the floor. Or maybe the ceiling. One can never be sure without gravity."
.GSTR STR?384,"""ONE GALAKMID
Third Galactic Union"""
.GSTR STR?374,"This physician's bubble is owned by the village quack, known to his friends as ""Doc"" Schuster, but known to the vast majority of the villagers as Schuster the Shyster. There's a small hole in the wall, probably the opening for a disposal chute. The Doc is out, and in this case, out is northwest."
.GSTR STR?375,"There is a large pile of intoxicated ostrich here."
.GSTR STR?376,"""Doc -- that ostrich nip you've been waiting for finally came in. Drop by and pick it up. If I'm not in, you'll find it in my ceiling panel."""
.GSTR STR?377,"In the corner of the office is a rather plain-looking machine with a keypad. It looks a bit jerry-built."
.GSTR STR?378,"opening"
.GSTR STR?379,"A scrambled card cannot be altered"
.GSTR STR?380,"Ensign, Sixth Class or lower"
.GSTR STR?381,"Ensign, Fifth through Second Class"
.GSTR STR?382,"Ensign First Class"
.GSTR STR?383,"Midshipman"
.GSTR STR?384,"Lieutenant Second Class"
.GSTR STR?385,"Lieutenant Commander"
.GSTR STR?386,"Commander or Captain"
.GSTR STR?387,"Admiral"
.GSTR STR?388,"Fleet Admiral"
.GSTR STR?389,"This outdated drydock is now a messy junk yard. A huge pile of floating junk fills the center of the bubble. Passages lead upwards and west."
.GSTR STR?390,"Of all the items floating in the scrap heap, the pair of magnetic spaceboots looks to be in the best shape."
.GSTR STR?385,"This physician's bubble is owned by the village quack, known to his friends as ""Doc"" Schuster, but known to the vast majority of the villagers as Schuster the Shyster. There's a small hole in the wall, probably the opening for a disposal chute. The Doc is out, and in this case, out is northwest."
.GSTR STR?386,"There is a large pile of intoxicated ostrich here."
.GSTR STR?387,"""Doc -- that ostrich nip you've been waiting for finally came in. Drop by and pick it up. If I'm not in, you'll find it in my ceiling panel."""
.GSTR STR?388,"In the corner of the office is a rather plain-looking machine with a keypad. It looks a bit jerry-built."
.GSTR STR?389,"opening"
.GSTR STR?390,"A scrambled card cannot be altered"
.GSTR STR?391,"Ensign, lower classes"
.GSTR STR?392,"Ensign First Class"
.GSTR STR?393,"Upshipman"
.GSTR STR?394,"Lieutenant Last Class"
.GSTR STR?395,"Lieutenant Second Class"
.GSTR STR?396,"Commander or Captain"
.GSTR STR?397,"Admiral"
.GSTR STR?398,"HyperAdmiral"
.GSTR STR?399,"Grand Fleet HyperAdmiral"
.GSTR STR?400,"This outdated drydock is now a messy junk yard. A huge pile of floating junk fills the center of the bubble. Passages lead upwards and west."
.GSTR STR?401,"Of all the items floating in the scrap heap, the pair of magnetic spaceboots looks to be in the best shape."
.ENDI

754
ship.zap

File diff suppressed because it is too large Load diff

405
ship.zil
View file

@ -8,8 +8,8 @@
(LDESC
"You are in the heart of the administrative level of the ship, the largest
level of the S.P.S. Duffy or any other Stellar Patrol ship for that matter.
The corridor continues starboard and a room lies aft of here. Through the
door to port lies the bulk of the Duffy. Next to the door is a slot.")
The corridor continues starboard and a room lies aft. Beyond the door to
port lies the bulk of the Duffy. Next to the door is a slot.")
(EAST TO CARGO-BAY-ENTRANCE)
(SOUTH TO FORM-STORAGE-ROOM)
(WEST PER FAKE-DOOR-ENTER-F)
@ -18,7 +18,7 @@ door to port lies the bulk of the Duffy. Next to the door is a slot.")
(<> SLOT FORM-SLOT-F)>)>
<ROUTINE FAKE-DOOR-ENTER-F ()
<THIS-IS-IT ,PSEUDO-OBJECT>
;<THIS-IS-IT ,PSEUDO-OBJECT> ;"doesn't work"
<TELL "The door is closed." CR>
<RFALSE>>
@ -26,6 +26,8 @@ door to port lies the bulk of the Duffy. Next to the door is a slot.")
<COND (<VERB? OPEN>
<RECORDING
"You must insert a validated Assignment Completion Form in the slot">)
(<VERB? EXAMINE>
<TELL "There's a slot next to the closed door." CR>)
(<VERB? ENTER>
<DO-WALK ,P?WEST>)>>
@ -37,7 +39,7 @@ door to port lies the bulk of the Duffy. Next to the door is a slot.")
(SYNONYM FORM FORMS QX-17-T)
(ADJECTIVE ASSIGNMENT COMPLETION FORM)
(FLAGS TAKEBIT READBIT VOWELBIT)
(SIZE 2)
(SIZE 1)
(ACTION FORM-F)>
<OBJECT ROBOT-USE-AUTHORIZATION-FORM
@ -46,6 +48,7 @@ door to port lies the bulk of the Duffy. Next to the door is a slot.")
(SYNONYM FORM FORMS JZ-59-G)
(ADJECTIVE ROBOT USE AUTHORIZATION FORM)
(FLAGS TAKEBIT READBIT)
(SIZE 1)
(ACTION FORM-F)>
<OBJECT CLASS-THREE-SPACECRAFT-ACTIVATION-FORM
@ -54,6 +57,7 @@ door to port lies the bulk of the Duffy. Next to the door is a slot.")
(SYNONYM FORM FORMS HB-56-V)
(ADJECTIVE CLASS THREE SPACECRAFT ACTIVA FORM)
(FLAGS TAKEBIT READBIT)
(SIZE 1)
(ACTION FORM-F)>
<ROUTINE FORM-F ()
@ -79,7 +83,7 @@ door to port lies the bulk of the Duffy. Next to the door is a slot.")
(DESC "chronometer")
(SYNONYM CHRONOMETER WRISTWATCH WATCH)
(ADJECTIVE WRIST MY)
(SIZE 10)
(SIZE 8)
(FLAGS TAKEBIT WEARBIT WORNBIT)
(ACTION CHRONOMETER-F)>
@ -103,12 +107,14 @@ stopped. You can't recall doing anything that might have broken it." CR>)
(SYNONYM CARD CARDS)
(ADJECTIVE MY PATROL ID IDENTIFICATION)
(FLAGS VOWELBIT TAKEBIT TRYTAKEBIT READBIT)
(SIZE 3)
(SIZE 2)
(TEXT
"\"STELLAR PATROL|
Paperwork Task Force|
ID Number: 1451-352-716\"")>
<GLOBAL SCRAMBLED-FOOTNOTE <>>
<GLOBAL ID-SCRAMBLED <>>
<OBJECT PATROL-UNIFORM
@ -118,6 +124,7 @@ ID Number: 1451-352-716\"")>
(ADJECTIVE PATROL MY)
(FLAGS TAKEBIT WORNBIT WEARBIT CONTBIT SEARCHBIT OPENBIT)
(CAPACITY 10)
(SIZE 8)
(ACTION PATROL-UNIFORM-F)>
<GLOBAL SUIT-PRESSED <>>
@ -145,9 +152,8 @@ else, it is super-comfy">
(<PROB ,BLATHER-PROB>
<DEQUEUE I-BLATHER>
<TELL
" Ensign Twelfth Class Blather walks by, carrying various toilet scrubbing
supplies. He spots you, glances away, whimpers, and slouches out of sight
(Footnote 2)." CR>)
" Ensign Twelfth Class Blather walks by, lugging his toilet scrubbing
supplies. He spots you, whimpers, and slouches away (Footnote 2)." CR>)
(T
<SETG BLATHER-PROB <+ ,BLATHER-PROB 10>>)>>
@ -216,7 +222,7 @@ Disbursal Form,\" \"Loss of Form Pallet Label Report Form,\" and
(IN ROOMS)
(DESC "Cargo Bay Entrance")
(LDESC
"The deck five corridor ends here at the entrance to the cargo bay, to
"The deck twelve corridor ends here at the entrance to the cargo bay, to
starboard. A smaller entrance leads fore.")
(EAST TO CARGO-BAY)
(WEST TO DECK-TWELVE)
@ -241,7 +247,7 @@ starboard. A smaller entrance leads fore.")
<QUEUE I-FLOYD <+ ,C-ELAPSED 2>>)
(<EQUAL? .RARG ,M-LOOK>
<TELL
"This is where a " ,LFC " would come to check out a robot for use on an
"This is where a " ,LFC " would come to obtain a robot for use on an
important assignment. Also for a trivial assignment like yours. "
,ROBOT-POOL-EQUIPMENT-DESC " You can exit aft.">)
(<AND <EQUAL? .RARG ,M-EXIT>
@ -253,7 +259,7 @@ important assignment. Also for a trivial assignment like yours. "
<PRSO? ,PSEUDO-OBJECT>>
<AND <EQUAL? <GET ,P-ADJW 1> <>>
<PRSI? ,PSEUDO-OBJECT>>>
<TELL "Next time, specify which bin you meant." CR>)
<TELL ,REFER-TO-BIN>)
(<VERB? LOOK-INSIDE>
<COND (<AND <ADJ-USED ,A?FIRST ,PSEUDO-OBJECT>
<NOT <EQUAL? ,ROBOT-PICKED ,REX>>>
@ -296,23 +302,24 @@ important assignment. Also for a trivial assignment like yours. "
<PERFORM ,V?COMFORT ,FLOYD>
<STOP>)
(,FLOYD-ANGUISHED
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?TOUCH ,FLOYD>
<TELL ,FLOYD-SNIFFS>
<STOP>)
(<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>>
<SET TXT <GETP ,PRSI ,P?FLOYD-ASK-ABOUT>>
<COND (<G? ,ROBOT-EVILNESS 12>
<TELL "\"Oh, quit jabbering already.\"" CR>)
(<SET TXT <GETP ,PRSI ,P?FLOYD-ASK-ABOUT>>
<TELL "\"" .TXT "\"" CR>)
(T
<TELL "Floyd shrugs. \"Beats me.">
(<OR <NOT .TXT>
<AND <PRSI? ,OLIVER>
<NOT <FSET? ,OLIVER ,TOUCHBIT>>>>
<TELL "Floyd shrugs. \"Beats me.">
<COND (<IN? ,PLATO ,HERE>
<TELL
" Ask Plato. He knows everything!">)>
<TELL "\"" CR>)>)
(<AND <G? ,PLATO-ATTACK-COUNTER 0>
<IN? ,PLATO ,HERE>>
<TELL "\"" CR>)
(T
<TELL "\"" .TXT "\"" CR>)>)
(,STUNNED
<COND (<OR <VERB? HELP>
<AND <VERB? SAVE-SOMETHING>
<PRSO? ,ME>>
@ -323,7 +330,7 @@ important assignment. Also for a trivial assignment like yours. "
<SETG FLOYD-TOLD T>
<TELL
"Floyd waves his hands helplessly. \"Yes... I mean no... I mean oh no oh help
me please. Floyd does not know right thing to do...\"" CR>)
me please. Floyd in quandry...\"" CR>)
(T
<TELL
"Floyd just looks at you with confusion and panic in his eyes." CR>
@ -441,7 +448,7 @@ of direction.\" Then he looks up at you with wide, trusting eyes.
(<AND <NOT <FSET? ,FLOYD ,TOUCHBIT>>
<NOUN-USED ,W?FLOYD ,FLOYD>>
<TELL "You don't see anyone by that name here." CR>
<STOP>)
<RFATAL>)
(<AND <NOT <EQUAL? ,ROBOT-PICKED ,FLOYD>>
<TOUCHING? ,FLOYD>>
<CANT-REACH ,FLOYD>)
@ -452,8 +459,7 @@ of direction.\" Then he looks up at you with wide, trusting eyes.
(<AND ,FLOYD-ANGUISHED
<OR <TOUCHING? ,FLOYD>
<VERB? COMFORT>>>
<TELL
"Floyd sniffs, \"Please leave Floyd alone for a while.\"" CR>)
<TELL ,FLOYD-SNIFFS>)
(<AND <PROB <- <* ,ROBOT-EVILNESS 10> 70>>
<TOUCHING? ,FLOYD>
<NOT <VERB? OFF KICK SHAKE>>
@ -547,7 +553,7 @@ life, you kripping ingrate.\"" CR>)
<COND (,FLOYD-ANGUISHED
<PERFORM ,V?TOUCH ,FLOYD>
<RTRUE>)
(<NOT <EQUAL? ,FLOYD ,ROBOT-PICKED>>
(<UNTOUCHABLE? ,FLOYD>
<CANT-REACH ,FLOYD>
<RTRUE>)>
<SETG C-ELAPSED 30>
@ -629,17 +635,18 @@ games with it?\" he asks." CR>)
<TELL
"Floyd smells faintly of ozone and light machine oil." CR>)>)
;"following clauses are for when Floyd is off"
(<AND <VERB? ON OFF>
,FLOYD-SHOT>
<TELL
"The switch crumbles in your hand; it looks like Floyd's headed for that
big Robot Pool in the sky..." CR>)
(<VERB? ON>
<COND (,FLOYD-SHOT
<TELL
"Floyd IS on...but he's headed for that big Robot Pool in the sky..." CR>)
(T
<QUEUE I-FLOYD -1>
<SETG FLOYD-SPOKE T>
<FSET ,FLOYD ,ACTORBIT>
<FSET ,FLOYD ,ACTIVEBIT>
<FSET ,FLOYD ,TOUCHBIT>
<TELL "Floyd jumps to his feet" ,HOPPING-MAD CR>)>)
<QUEUE I-FLOYD -1>
<SETG FLOYD-SPOKE T>
<FSET ,FLOYD ,ACTORBIT>
<FSET ,FLOYD ,ACTIVEBIT>
<FSET ,FLOYD ,TOUCHBIT>
<TELL "Floyd jumps to his feet" ,HOPPING-MAD CR>)
(<VERB? OFF>
<TELL "Floyd isn't on." CR>)
(<AND <VERB? TELL>
@ -715,265 +722,7 @@ grip slips and he clatters to the deck. \"Oops! More dents!\"" CR>)>>
<GLOBAL FLOYD-ANGUISHED <>> ;"true if Plato just died"
<ROUTINE I-FLOYD ("AUX" (OBJ <>))
<QUEUE I-FLOYD -1>
<COND (<NOT <FSET? ,FLOYD ,TOUCHBIT>>
<FSET ,FLOYD ,TOUCHBIT>
<FSET ,FLOYD ,TRYTAKEBIT>
<TELL
" 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." CR>)
(<NOT ,ROBOT-PICKED>
<TELL
" Floyd jumps up and down saying, \"Oh boy oh boy oh boy pick Floyd
pick Floyd pick Floyd!\"" CR>)
(,FLOYD-ANGUISHED
<COND (<NOT <VISIBLE? ,FLOYD>>
<SETG FLOYD-ANGUISHED <>>)>
<SETG FLOYD-FOLLOW <>>
<RFALSE>)
(<VISIBLE? ,FLOYD>
<COND (<NOT <FSET? ,FLOYD ,ACTIVEBIT>>
<RFALSE>)>
<COND (<AND <IN? ,OSTRICH ,HERE>
<NOT ,OSTRICH-COMMENT>>
<SETG OSTRICH-COMMENT T>
<TELL
" Floyd looks at the ostrich with breathless excitement.
\"Wow! An elephant!\"" CR>)
(<AND <IN? ,BALLOON ,HERE>
<NOT ,BALLOON-COMMENT>
<G? ,ROBOT-EVILNESS 13>>
<SETG BALLOON-COMMENT T>
<TELL
" You notice Floyd taunting the " D ,BALLOON ". The frightened balloon
takes refuge in the far corner of the room." CR>)
(<OR <AND <NOT <FSET? ,HERE ,FLOYDBIT>>
<NOT ,FLOYD-SPOKE>
<PROB 6>>
<AND <G? ,TIMER-SETTING 0>
<VISIBLE? ,EXPLOSIVE>>>
<REMOVE ,FLOYD>
<TELL " ">
<COND (<IN? ,PLATO ,HERE>
<SETG POSTPONE-ATTACK T>
<REMOVE ,PLATO>
<COND (<G? ,ROBOT-EVILNESS 8>
<TELL
"\"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." CR>)
(<OR <PROB 50>
<EQUAL? ,HERE ,LIBRARY>>
<TELL
"\"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!\"" CR>)
(T
<TELL
"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!\"" CR>)>)
(T
<TELL
"Floyd says, \"Floyd going exploring. See you later.\"
He glides out of the room." CR>)>)
(<AND <PROB 45>
<NOT ,FLOYD-SPOKE>
<IN? ,FLOYD ,HERE>
<IN? ,PROTAGONIST ,HERE>
<NOT ,HANGING-IN-AIR>
,LIT>
<SET OBJ <FIRST? ,HERE>>
<COND (<AND .OBJ
<FSET? .OBJ ,TOUCHBIT>
<FSET? .OBJ ,TAKEBIT>
<NOT <FSET? .OBJ ,CONTBIT>>
<NOT <EQUAL? .OBJ ,OSTRICH-NIP ,SPACESUIT>>
<NOT <EQUAL? .OBJ ,DETONATOR ,TIMER
,EXPLOSIVE>>
<L? <CCOUNT ,FLOYD> 4>
<PROB 6>>
<MOVE .OBJ ,FLOYD>
<TELL
" Floyd picks up" T .OBJ ", examines it, and tucks ">
<COND (<FSET? .OBJ ,PLURALBIT>
<TELL "them">)
(T
<TELL "it">)>
<TELL " under his arm." CR>)
(<AND <FIRST? ,FLOYD>
<PROB 6>>
<SET OBJ <FIRST? ,FLOYD>>
<COND (<AND <NEXT? .OBJ>
<PROB 60>>
<SET OBJ <NEXT? .OBJ>>)>
<MOVE .OBJ ,HERE>
<TELL
" Floyd drops" T .OBJ " he was carrying." CR>)
(<AND <FIRST? ,FLOYD>
<PROB 4>>
<SET OBJ <FIRST? ,FLOYD>>
<COND (<AND <NEXT? .OBJ>
<PROB 60>>
<SET OBJ <NEXT? .OBJ>>)>
<TELL
" Floyd moves" T .OBJ " in a wavering course through the air, making
a roaring noise like a rocket exhaust." CR>)
(<AND <IN? ,PLATO ,HERE>
<PROB 70>>
<TELL " " <PICK-ONE ,PLATOISMS> ,PERIOD-CR>)
(T
<TELL " Floyd ">
<COND (<PROB <- 36 <* ,ROBOT-EVILNESS 3>>>
<TELL <PICK-ONE ,GOOD-FLOYDISMS>
,PERIOD-CR>)
(<PROB <- <* ,ROBOT-EVILNESS 25> 300>>
<TELL <PICK-ONE ,BAD-FLOYDISMS>
,PERIOD-CR>)
(<PROB 6>
<SETG AWAITING-REPLY 4>
<QUEUE I-REPLY <+ ,C-ELAPSED 2>>
<TELL
"says, \"Hey! Wanna play Hucka-Bucka-Beanstalk?\"" CR>)
(T
<TELL <PICK-ONE ,NEUTRAL-FLOYDISMS>
,PERIOD-CR>)>)>)>)
(<NOT <FSET? ,FLOYD ,ACTIVEBIT>>
<COND (<OR <EQUAL? ,HERE ,VACUUM-STORAGE ,AIRLOCK>
<L? ,SPACETRUCK-COUNTER 5>>
<RFALSE>)
(<NEXT-ROOM? ,FLOYD>
<RFALSE>)>
<FSET ,FLOYD ,ACTIVEBIT>
<FSET ,FLOYD ,ACTORBIT>
<TELL " Floyd bounds up to you" ,HOPPING-MAD>
<COND (,PLATO-INTRODUCED
<TELL
" Plato strolls in and gives Floyd a pat. \"I reactivated the little fellow;
I hope you don't mind.\"" CR>)
(T
<TELL
" Another robot wanders in behind Floyd and notices you." CR>
<I-PLATO T>
<TELL
" Plato motions toward Floyd. \"I presume you know this playful little
fellow. Someone had deactivated him, so I rectified the situation.\"" CR>)>
<MOVE ,PLATO ,HERE>
<MOVE ,FLOYD ,HERE>)
;"Floyd is active but not present"
(<G? ,ROBOT-EVILNESS 17>
<COND (<AND <LOC ,FLOYD>
<FSET? <LOC ,FLOYD> ,NWELDERBIT>
<NEXT-ROOM? ,FLOYD>>
;"don't move Floyd to Factory if he's in the next room
and it's a dead end"
<RFALSE>)>
<MOVE ,FLOYD ,FACTORY>
<ROB ,FLOYD <COND (<EQUAL? ,HERE ,EAST-JUNCTION ,LEVEL-FIVE>
,SOUTH-CONNECTION)
(<==? ,HERE ,SOUTH-JUNCTION ,NORTH-JUNCTION>
,EAST-CONNECTION)
(<PROB 25>
,SOUTH-JUNCTION)
(<PROB 33>
,EAST-JUNCTION)
(<PROB 50>
,NORTH-JUNCTION)
(T
,LEVEL-FIVE)>>
<MOVE ,STUN-GUN ,FLOYD>
<DEQUEUE I-FLOYD>
<DEQUEUE I-ROBOT-EVILNESS>
<RFALSE>)
(<AND ,FLOYD-FOLLOW
<EQUAL? ,HERE ,AIRLOCK>>
<TELL " Floyd calls from above, \"">
<COND (<AND ,PLATO-INTRODUCED
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
<TELL "We">)
(T
<TELL "I">)>
<TELL
"'ll wait here; it doesn't look like there's room in that phone booth for ">
<COND (<AND ,PLATO-INTRODUCED
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
<TELL "all">)
(T
<TELL "both">)>
<TELL " of us.\"" CR>)
(<OR <AND ,FLOYD-FOLLOW
<G? ,TIMER-SETTING 0>
<VISIBLE? ,EXPLOSIVE>>
<AND ,FLOYD-FOLLOW
<PROB 80>>>
<TELL " Floyd ">
<COND (<AND ,PLATO-INTRODUCED
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
<MOVE ,PLATO ,HERE>
<TELL "and Plato follow">)
(T
<TELL "follows">)>
<MOVE ,FLOYD ,HERE>
<TELL " you." CR>)
(<EQUAL? ,HERE ,SPACETRUCK ,ELEVATOR ,BRIG ,ARMORY>
<TELL " Floyd bounces in">
<COND (<AND ,PLATO-INTRODUCED
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
<MOVE ,PLATO ,HERE>
<TELL ", followed at a more leisurely pace by Plato">)>
<TELL ". \"Hey, wait for ">
<COND (<AND ,PLATO-INTRODUCED
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
<MOVE ,PLATO ,HERE>
<TELL "us">)
(T
<TELL "Floyd">)>
<MOVE ,FLOYD ,HERE>
<TELL "!\" he yells." CR>)
(<AND <PROB 17>
,LIT
<NOT <EQUAL? ,HERE ,AIRLOCK ,VACUUM-STORAGE>>>
<TELL " Floyd ">
<COND (<AND <NOT ,PLATO-INTRODUCED>
<FSET? ,LEVEL-FIVE ,TOUCHBIT>
<PROB 50>>
<TELL
"dashes into view, followed by a slightly older-looking robot. \"Look, Floyd
found a new friend,\" Floyd says with unbounded exuberance." CR>
<I-PLATO T>)
(T
<COND (<PROB <- <* ,ROBOT-EVILNESS 10> 70>>
<TELL
"meanders in. \"You doing anything fun?\" he asks, and then answers
his own question, \"Nope. Same dumb boring things.\"">)
(<PROB 15>
<TELL
"rushes into the room and barrels into you. \"Oops, sorry,\" he says.
\"Floyd not looking at where he was going to.\"">)
(T
<TELL
"bounds into the room. \"Floyd here now!\" he cries.">)>
<COND (<AND ,PLATO-INTRODUCED
<EQUAL? ,PLATO-ATTACK-COUNTER 0>>
<MOVE ,PLATO ,HERE>
<TELL
" You notice that Plato has also roamed into view behind Floyd, once again
absorbed in his reading.">)>
<CRLF>)>
<MOVE ,FLOYD ,HERE>
<COND (<AND ,HANGING-IN-AIR
<NOT ,HANGING-COMMENT>>
<SETG FLOYD-SPOKE T>
<FLOYDS-HANGING-IN-AIR-COMMENT>)>)>
<SETG FLOYD-SPOKE <>>
<SETG FLOYD-FOLLOW <>>>
;"routine I-FLOYD moved to INTERRUPTS file"
<GLOBAL GOOD-FLOYDISMS
<LTABLE 0
@ -1036,6 +785,24 @@ awed by such wisdom"
\"such a reaction will not reduce the level of pain.\" He gives Floyd a
little tickle, and Floyd begins giggling and forgets the injury">>
<ROUTINE MOVE-FLOYD-TO-FACTORY ()
<MOVE ,FLOYD ,FACTORY>
<ROB ,FLOYD <COND (<EQUAL? ,HERE ,EAST-JUNCTION ,LEVEL-FIVE>
,SOUTH-CONNECTION)
(<==? ,HERE ,SOUTH-JUNCTION ,NORTH-JUNCTION>
,EAST-CONNECTION)
(<PROB 25>
,SOUTH-JUNCTION)
(<PROB 33>
,EAST-JUNCTION)
(<PROB 50>
,NORTH-JUNCTION)
(T
,LEVEL-FIVE)>>
<MOVE ,STUN-GUN ,FLOYD>
<DEQUEUE I-FLOYD>
<DEQUEUE I-ROBOT-EVILNESS>>
<OBJECT HELEN
(IN ROBOT-POOL)
(DESC "Helen")
@ -1068,7 +835,8 @@ perforating extension reads \"Helen.\"")
CLASS-THREE-SPACECRAFT-ACTIVATION-FORM>>
<CONFETTI ,PRSO>)
(<VERB? OFF ON OPEN>
<PERFORM-PRSA ,PLATO>)
<PERFORM, PRSA ,PLATO>
<RTRUE>)
(<VERB? PICK>
<PICK-ROBOT>)>>
@ -1101,7 +869,8 @@ A brass plate on one of his pneumatic arm lifts says \"Rex.\"")
<TOUCHING? ,REX>>
<CANT-REACH ,REX>)
(<VERB? OFF ON OPEN>
<PERFORM-PRSA ,PLATO>)
<PERFORM, PRSA ,PLATO>
<RTRUE>)
(<VERB? PICK>
<PICK-ROBOT>)>>
@ -1200,7 +969,8 @@ off and unoccupied.")
(T
<TELL ,LOOK-AROUND>)>)
(<VERB? OPEN CLOSE>
<PERFORM-PRSA ,SPACETRUCK-HATCH>)
<PERFORM, PRSA ,SPACETRUCK-HATCH>
<RTRUE>)
(<VERB? EXAMINE>
<COND (<EQUAL? ,HERE ,SPACETRUCK>
<V-LOOK>)
@ -1227,7 +997,7 @@ off and unoccupied.")
(DESC "Spacetruck")
(OUT PER SPACETRUCK-EXIT-F)
(FLAGS RLANDBIT ONBIT NWELDERBIT FLOYDBIT)
(GLOBAL WINDOW KEYPAD SPACETRUCK-OBJECT SPACETRUCK-HATCH)
(GLOBAL VILLAGE WINDOW KEYPAD SPACETRUCK-OBJECT SPACETRUCK-HATCH)
(ACTION SPACETRUCK-F)
(THINGS <PSEUDO (<> SLOT FORM-SLOT-F)
(RED BUTTON RED-BUTTON-F)>)>
@ -1307,7 +1077,11 @@ controlling the autopilot. The hatch is ">
<TELL "co">)
(T
<MOVE ,FLOYD ,PILOT-SEAT>)>
<TELL D ,PILOT-SEAT ".">
<PRINTD ,PILOT-SEAT>
<COND (<EQUAL? <LOC ,FLOYD> ,PILOT-SEAT ,COPILOT-SEAT>
<TELL
", his feet dangling a few centimeters short of the floor">)>
<TELL ".">
<COND (<EQUAL? ,SPACETRUCK-COUNTER -1>
<SETG FLOYD-SPOKE T>
<SETG AWAITING-REPLY 2>
@ -1349,17 +1123,7 @@ a truck in over two weeks!\"">)>
<DEQUEUE I-RADIO>
<RFALSE>)>>
<ROUTINE I-RADIO ()
<COND (<NOT <EQUAL? ,HERE ,SPACETRUCK>>
<RFALSE>)
(<PROB 30>
<TELL
" The radio crackles to life. \"Breaker. "
<PICK-ONE ,RADIO-LINES> " Over.\"" CR>)
(<PROB 20>
<TELL
" A country and western station drifts into tune for a moment, but then
fades again." CR>)>>
;"routine I-RADIO moved to INTERRUPTS file"
<GLOBAL RADIO-LINES
<LTABLE
@ -1450,7 +1214,7 @@ the floor, the bay floods with air, and a voice whispers, \"Stationfall.\"
Through the viewport, you see no one to meet you. Odd." CR>)
(T
<RECORDING
"Arrival at terminus of inputted course. Fuel levels now effectively at
"Arrival at terminus of inputted course. Fuel level now effectively at
zero. Oxygen supply for one person: approximately two chrons">
<QUEUE I-SUFFOCATE 1970>)>
<DEQUEUE I-SPACETRUCK>)>>
@ -1527,6 +1291,11 @@ dead.">>
"It's your basic insulated bottle, which hasn't changed much over the
centuries. This one is plaid, with pictures of little robots all over it. ">
<RFALSE> ;"open-closed")
(<AND <VERB? POUR EMPTY>
<PRSO? ,THERMOS>
<IN? ,SOUP ,THERMOS>>
<PERFORM ,PRSA ,SOUP ,PRSI>
<RTRUE>)
(<AND <VERB? PUT>
<PRSI? ,THERMOS>
<NOT <PRSO? ,EXPLOSIVE ,SMALL-BIT ,LARGE-BIT ,MEDIUM-BIT>>>
@ -1539,7 +1308,11 @@ centuries. This one is plaid, with pictures of little robots all over it. ">
(,THERMOS-FILLED-WITH-GAS
<FSET ,THERMOS ,OPENBIT>
<TELL
"You open the thermos, releasing a puff of FREZONE (tm) gas." CR>)>)>>
"You open the thermos, releasing a puff of FREZONE (tm) gas." CR>)>)
(<AND <VERB? REACH-IN>
<IN? ,SOUP ,THERMOS>>
<PERFORM ,V?EXAMINE ,SOUP>
<RTRUE>)>>
<GLOBAL THERMOS-FILLED-WITH-GAS <>>
@ -1578,7 +1351,11 @@ centuries. This one is plaid, with pictures of little robots all over it. ">
<NOT <ULTIMATELY-IN? ,THERMOS>>>
<THIS-IS-IT ,THERMOS>
<TELL ,YNH TR ,THERMOS>)
(<VERB? EXAMINE TOUCH TASTE>
(<VERB? POUR EMPTY>
<REMOVE ,SOUP>
<MESS "soup">
<TELL ,PERIOD-CR>)
(<VERB? EXAMINE TOUCH TASTE REACH-IN>
<TELL "The soup seems to be ">
<DESCRIBE-SOUP-TEMPERATURE>)>>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -71,11 +71,11 @@
<SYNTAX $VERIFY = V-$VERIFY>
<SYNTAX $VERIFY OBJECT = V-$VERIFY>
<SYNTAX $DEBUG = V-$DEBUG>
;<SYNTAX $DEBUG = V-$DEBUG>
<SYNTAX $STATION = V-$STATION>
;<SYNTAX $STATION = V-$STATION>
<SYNTAX $KEY = V-$KEY>
;<SYNTAX $KEY = V-$KEY>
;"subtitle real verbs"
@ -155,7 +155,7 @@
<SYNTAX CONNECT OBJECT TO OBJECT = V-CONNECT>
<VERB-SYNONYM CONNECT ATTACH>
<SYNTAX COVER OBJECT WITH OBJECT (HELD MANY) = V-SPUT-ON>
<SYNTAX COVER OBJECT WITH OBJECT (HELD MANY HAVE) = V-SPUT-ON>
<SYNTAX COUNT OBJECT = V-COUNT>
@ -253,7 +253,7 @@
<SYNONYM FIX REPAIR>
<SYNTAX FLATTEN OBJECT = V-FLATTEN>
<VERB-SYNONYM FLATTEN UNCRUMPLE STRAIGHTEN>
<VERB-SYNONYM FLATTEN UNCRUMPLE UNCREASE STRAIGHTEN>
<SYNTAX FOLLOW OBJECT = V-FOLLOW>
<VERB-SYNONYM FOLLOW PURSUE CHASE>
@ -470,7 +470,7 @@
<VERB-SYNONYM SHOOT FIRE BLAST ZAP>
<SYNTAX SHOW OBJECT (HELD MANY) TO OBJECT (FIND ACTORBIT) = V-SHOW>
<SYNTAX SHOW OBJECT (FIND ACTORBIT) OBJECT (HELD MANY) = V-SSHOW>
<SYNTAX SHOW OBJECT (FIND ACTORBIT) OBJECT (HELD MANY HAVE) = V-SSHOW>
<SYNTAX SIT ON OBJECT ;(FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX SIT DOWN OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-SIT>

830
verbs.zap

File diff suppressed because it is too large Load diff

327
verbs.zil
View file

@ -31,6 +31,7 @@
<ROUTINE V-SAVE ()
<SETG P-CONT <>> ;"flush anything on input line after SAVE"
<SETG QUOTE-FLAG <>>
<PUTB ,OOPS-INBUF 1 0> ;"retrofix 50"
<COND (<AND <VISIBLE? ,FLOYD>
<FSET? ,FLOYD ,TOUCHBIT>
<FSET? ,FLOYD ,ACTIVEBIT>
@ -59,17 +60,16 @@ was more fun,\" he sighs." CR CR>
<TELL ,FAILED>)>>
<ROUTINE CONTINUE ()
<TELL "[Hit your RETURN/ENTER key.]" CR>
<TELL "[Hit RETURN/ENTER.]" CR>
<PUTB ,P-LEXV 0 10>
<READ ,P-INBUF ,P-LEXV>
<PUTB ,P-LEXV 0 60>>
<ROUTINE TELL-SCORE ()
<TELL
"Your score is " N ,SCORE " (out of 80 points). It is Day " N ,DAY " of your
adventure. ">
<TELL "It is Day " N ,DAY " of your adventure. ">
<V-TIME T>
<TELL " Your score gives you the rank of ">
<TELL
" Your score is " N ,SCORE " (of 80 points), giving you the rank of ">
<COND (<EQUAL? ,SCORE 0>
<TELL "Insignificant Nobody">)
(<L? ,SCORE 17> ;"1 thru 16"
@ -94,9 +94,8 @@ adventure. ">
<FSET? ,FLOYD ,ACTIVEBIT>
<NOT <EQUAL? ,HERE ,FACTORY>>>
<TELL
" \"Uh oh,\" frets Floyd. \"If this is going to be permanent,
Floyd will have to be careful not to use any of the bad words
he learned aboard the Duffy!\"" CR>)>
" \"Uh oh,\" frets Floyd. \"Once printer is on, Floyd will have to be
careful not to use any of the bad words he learned aboard the Duffy!\"" CR>)>
<PUT 0 8 <BOR <GET 0 8> 1>>
<CORP-NOTICE "begins">
<V-VERSION>>
@ -121,14 +120,12 @@ to save for important scenes. Not like this one.\"" CR>)>
<ROUTINE V-DIAGNOSE ()
<SETG C-ELAPSED 18>
<COND (<EQUAL? ,HERE ,FACTORY>
<TELL
"We're talking adrenaline. Lots and lots of adrenalin." CR>)
<TELL "We're talking adrenaline. Lots of adrenalin." CR>)
(T
<TELL "You feel ">
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0>
<IN? ,PLATO ,HERE>>
<COND (,STUNNED
<TELL "numb. ">
<STUNNED>
<YOURE-STUNNED>
<RTRUE>)
(<EQUAL? ,SLEEPY-LEVEL 0>
<TELL "well-rested">)
@ -225,10 +222,10 @@ the Robot Pool again?\"" CR>)>
<SET REPEATING T>
<TELL-SCORE>)>
<TELL
" According to the Treaty of Gishen IV, which was amended after the Battle
on Sorkin III in 11347 GY, you must be given the opportunity to restart the
story, restore a saved position, or end this session of the game. In the
interests of interstellar peace, type RESTART, RESTORE, or QUIT: >">
" According to the Treaty of Gishen IV (amended after the Battle on Sorkin
III in 11347 GY) you have the opportunity to restart the story, restore a saved
position, or end this session of the game. In the interests of interstellar
peace, type RESTART, RESTORE, or QUIT: >">
<PUTB ,P-LEXV 0 10>
<READ ,P-INBUF ,P-LEXV>
<PUTB ,P-LEXV 0 60>
@ -316,9 +313,9 @@ this disk, they'll have Floyd to answer to.\"" CR>)>>
<CONSTANT SERIAL 0>
<GLOBAL DEBUG <>>
;<GLOBAL DEBUG <>>
<ROUTINE V-$DEBUG ()
;<ROUTINE V-$DEBUG ()
<TELL "O">
<COND (,DEBUG
<SETG DEBUG <>>
@ -328,7 +325,7 @@ this disk, they'll have Floyd to answer to.\"" CR>)>>
<TELL "n">)>
<TELL ,PERIOD-CR>>
<ROUTINE V-$STATION ()
;<ROUTINE V-$STATION ()
<FSET ,FLOYD ,TOUCHBIT>
<FSET ,SPACETRUCK-HATCH ,OPENBIT>
<FSET ,IRIS-HATCH ,OPENBIT>
@ -343,7 +340,7 @@ this disk, they'll have Floyd to answer to.\"" CR>)>>
<QUEUE I-PLATO 750>
<GOTO ,SPACETRUCK>>
<ROUTINE V-$KEY ()
;<ROUTINE V-$KEY ()
<QUEUE I-LIGHTS-OUT <+ <RANDOM 200> 20>>
<MOVE ,KEY ,PROTAGONIST>
<MOVE ,HEADLAMP ,PROTAGONIST>
@ -359,22 +356,21 @@ this disk, they'll have Floyd to answer to.\"" CR>)>>
<ROUTINE V-ALARM ()
<COND (<PRSO? ,ROOMS>
<PERFORM-PRSA ,ME>)
<PERFORM ,PRSA ,ME>
<RTRUE>)
(T
<TELL "But" T ,PRSO " isn't asleep." CR>)>>
<ROUTINE V-ANSWER ()
<COND (<AND ,AWAITING-REPLY
<YES-WORD <GET ,P-LEXV ,P-CONT>>>
<V-YES>
<STOP>)
<V-YES>)
(<AND ,AWAITING-REPLY
<NO-WORD <GET ,P-LEXV ,P-CONT>>>
<V-NO>
<STOP>)
<V-NO>)
(T
<TELL "Nobody is awaiting your answer." CR>
<STOP>)>>
<TELL "Nobody is awaiting your answer." CR>)>
<STOP>>
<ROUTINE V-APPLAUD ()
<TELL "\"Clap.\"" CR>
@ -589,7 +585,8 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
<RTRUE>)
(<NOT ,PRSO>
<COND (<NOT <IN? ,PROTAGONIST ,HERE>>
<PERFORM-PRSA <LOC ,PROTAGONIST>>)
<PERFORM ,PRSA <LOC ,PROTAGONIST>>
<RTRUE>)
(T
<TELL ,LOOK-AROUND>)>)
(<EQUAL? ,P-PRSA-WORD ,W?TAKE> ;"since GET OUT is also TAKE OUT"
@ -641,7 +638,7 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
<ROUTINE V-DRILL ()
<COND (<FSET? ,PRSO ,TAKEBIT>
<TELL
"You'll need a vice to hold down" T ,PRSO " before you can drill it." CR>)
"You'll need a vise to hold" T ,PRSO " before you can drill it." CR>)
(T
<TELL
"The point of the drill doesn't seem to be as hard as" TR ,PRSO>)>>
@ -651,7 +648,7 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
<PERFORM ,V?DRILL ,PRSI>
<RTRUE>)
(T
<TELL ,RECOGNIZE>)>>
<RECOGNIZE>)>>
;<ROUTINE V-DRIVE ()
<V-DRIVE-DIR>>
@ -676,7 +673,9 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
<TELL ,PERIOD-CR>)>>
<ROUTINE PRE-EAT ()
<COND (<AND ,PRSI
<COND (,STUNNED
<YOURE-STUNNED>)
(<AND ,PRSI
<NOT <IN? ,PRSO ,PRSI>>>
<NOT-IN>)
(<FSET? ,SPACESUIT ,WORNBIT>
@ -707,7 +706,8 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
<COND (<NOT <FSET? ,PRSO ,OPENBIT>>
<DO-FIRST "open" ,PRSO>)
(<SET X <FIRST? ,PRSO>>
<TELL "(How about" T .X "?)">
<COND (<NEXT? .X>
<TELL "(How about" T .X "?)" CR>)>
<PERFORM ,V?EAT .X>
<RTRUE>)
(T
@ -790,6 +790,8 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
;<FSET ,PRSO ,TOUCHBIT>
<APPLY <GETP ,PRSO ,P?ACTION> ,M-ENTER>
<CRLF>)>)
(<PRSO? ,AIR>
<V-LEAP>)
(<EQUAL? <GET ,P-ITBL ,P-PREP1> ,PR?ON>
<CANT-VERB-A-PRSO "get onto">)
(<NOT <FSET? ,PRSO ,TAKEBIT>>
@ -844,9 +846,8 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
<TELL "about" TR ,PRSO>)>>
<ROUTINE V-EXERCISE ()
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0>
<IN? ,PLATO ,HERE>>
<STUNNED>
<COND (,STUNNED
<YOURE-STUNNED>
<RTRUE>)
(<IN? ,PROTAGONIST ,EXERCISE-MACHINE>
<COND (<AND <ULTIMATELY-IN? ,JAMMER ,HERE>
@ -858,7 +859,7 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
(T
<TELL "You do a few repetitions">)>)
(T
<TELL "You drop to the deck and do a few push-ups">)>
<TELL "You do a few push-ups">)>
<TELL
". Dr. Ventricalli, the Duffy's cardiologist, would be pleased." CR>>
@ -928,8 +929,8 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
<ROUTINE V-FIX ()
<TELL
"[You shouldn't expect such general commands to work. To repair something,
you must perform the specific steps required.]" CR>>
"[Such general commands won't work. To repair something, you must perform the
specific steps required.]" CR>>
<ROUTINE V-FLATTEN ()
<TELL ,HUH>>
@ -958,8 +959,8 @@ you must perform the specific steps required.]" CR>>
<RTRUE>)
(<EQUAL? ,P-NUMBER 1>
<TELL
"These dice are obviously special zero-gee dice which project their
own gravitational field onto the nearest surface. Zero-gee dice are, of
"These must be those special zero-gee dice which project their own
gravitational field onto the nearest surface. Zero-gee dice are, of
course, notoriously easy to load">)
(<EQUAL? ,P-NUMBER 2>
<TELL
@ -974,8 +975,8 @@ recounted in PLANETFALL">)
<TELL
"This is, of course, impossible. To do this, the creature would have to be
an order of magnitude larger. There are two possible explanations: 1. The
creature actually extends part of its volume into a parallel dimension.
2. A callous disregard for scientific accuracy on the part of the author">)
creature actually extends part of its volume into a parallel dimension"
,CALLOUS-DISREGARD>)
(<EQUAL? ,P-NUMBER 5 9 13>
<TELL "Kids: ">
<COND (<EQUAL? ,P-NUMBER 5>
@ -990,8 +991,8 @@ creature actually extends part of its volume into a parallel dimension.
<TELL "That was just an example">)
(<EQUAL? ,P-NUMBER 7>
<TELL
,UNFAMILIAR "your frenzied boss, Ensign Blather, would toss you into
the Feinstein's brig for almost any violation of the Stellar Patrol's
,UNFAMILIAR "your frenzied (former) boss, Ensign Blather, would toss you into
the Feinstein's brig for the tiniest violation of the Stellar Patrol's
near-infinity of trivial regulations">)
(<EQUAL? ,P-NUMBER 8>
<TELL
@ -1013,6 +1014,22 @@ wishes to point out his right to rip off his own ideas. So there">)
(T
<TELL "1)">)>)
;"13 handled above"
(<EQUAL? ,P-NUMBER 14>
<TELL
"Actually, it is only a myth that ostriches stick their heads in holes when
frightened. The fact that this ostrich does can be attributed to: 1. an
addling of the animal's brain caused by extended exposure to weightlessness"
,CALLOUS-DISREGARD>)
(<EQUAL? ,P-NUMBER 15>
<TELL
"IF you also played Planetfall, and IF you scrambled any magnetic cards in
Planetfall by being careless with the magnet: GOTCHA AGAIN! (Footnote 16)" CR>
<RTRUE>)
(<EQUAL? ,P-NUMBER 16>
<TELL
"Reminds me of that old saying, \"Fool me once, shame on you. Fool me twice,
shame on me!\"" CR>
<RTRUE>)
(T
<TELL "There is no Footnote " N ,P-NUMBER ,PERIOD-CR>
<RTRUE>)>
@ -1021,17 +1038,23 @@ wishes to point out his right to rip off his own ideas. So there">)
<TELL ". (Footnote 8)">)>
<TELL ,PERIOD-CR>>
<ROUTINE PRE-GIVE ()
<ROUTINE PRE-GIVE ("AUX" IDROP-VALUE)
<COND (<AND <VERB? GIVE>
<PRSO? ,HANDS>>
<PERFORM ,V?SHAKE-WITH ,PRSI>
<RTRUE>)
(<IDROP>
<RTRUE>)>>
(<SET IDROP-VALUE <IDROP>>
<RETURN .IDROP-VALUE>)>>
<ROUTINE V-GET-DRESSED ()
<COND (<PRSO? ,ROOMS>
<TELL "You are!" CR>)
<COND (<FSET? ,PATROL-UNIFORM ,WORNBIT>
<TELL "You are!" CR>)
(<VISIBLE? ,PATROL-UNIFORM>
<PERFORM ,V?WEAR ,PATROL-UNIFORM>
<RTRUE>)
(T
<TELL "No clothes in sight!" CR>)>)
(T
<RECOGNIZE>)>>
@ -1074,12 +1097,13 @@ wishes to point out his right to rip off his own ideas. So there">)
<ROUTINE V-HELP ()
<TELL
"[Help!?! You need help?!? Do you know how hard it is being a computer? My
chips are about to go, my wife just ran off with a mainframe from Milwaukee,
and one of the kids just told me that when he grows up he wants to be a
talking greeting card! Furtherm... Hey! I'm not done! Mumk mpgrlph...]|
If you're really stuck, you can order a complete map and InvisiClues hint
booklet from your dealer or by using the order form from your package." CR>>
"[Help!?! You need help?!? What about me, your poor computer? My chips are
about to go, my mate just ran off with a mainframe from Milwaukee, and the
kid wants to be a talking greeting card when he grows up! Furtherm... Hey!
I'm not done! Mumk mpgrlph...]|
If you're really stuck, you can get an InvisiClues (TM) hint booklet
and map from your dealer, or by using the order form from your package."
CR>>
<ROUTINE V-HIDE ()
<TELL ,YOU-CANT "hide ">
@ -1124,7 +1148,10 @@ booklet from your dealer or by using the order form from your package." CR>>
<TELL "Your brain is out to launch." CR>>
<ROUTINE V-LEAP ()
<COND (,PRSO
<COND (,STUNNED
<YOURE-STUNNED "jump">)
(<AND ,PRSO
<NOT <PRSO? ,ROOMS>>>
<TELL
"You have spent too much time among the leaping loon-toads of Leonia." CR>)
(<AND <EQUAL? ,HERE ,CHAPEL>
@ -1133,7 +1160,7 @@ booklet from your dealer or by using the order form from your package." CR>>
"Your best jump still leaves you half a meter short of the star." CR>)
(<EQUAL? ,HERE ,AIR-SHAFT ,TOP-OF-AIR-SHAFT>
<COND (<EQUAL? ,AIR-SHAFT-LOC 7>
,BOTTOM-OF-AIR-SHAFT)
<GOTO ,BOTTOM-OF-AIR-SHAFT>)
(T
<JIGS-UP "You plummet down the shaft...">)>)
(<EQUAL? ,HERE ,BOTTOM-OF-AIR-SHAFT>
@ -1221,9 +1248,8 @@ booklet from your dealer or by using the order form from your package." CR>>
<RTRUE>)>>
<ROUTINE V-LOOK-INSIDE ()
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0>
<IN? ,PLATO ,HERE>>
<STUNNED>)
<COND (,STUNNED
<YOURE-STUNNED>)
(<FSET? ,PRSO ,ACTORBIT>
<TELL ,IT-SEEMS-THAT T ,PRSO " has">
<COND (<NOT <DESCRIBE-NOTHING>>
@ -1274,7 +1300,8 @@ booklet from your dealer or by using the order form from your package." CR>>
<ROUTINE V-LOOK-UP ()
<COND (<PRSO? ,ROOMS>
<COND (<EQUAL? ,HERE ,BOTTOM-OF-ELEVATOR-SHAFT>
<COND (<EQUAL? ,HERE ,AIR-SHAFT ,BOTTOM-OF-AIR-SHAFT
,BOTTOM-OF-ELEVATOR-SHAFT>
<TELL ,ONLY-BLACKNESS>)
(T
<PERFORM ,V?EXAMINE ,CEILING>
@ -1405,7 +1432,7 @@ booklet from your dealer or by using the order form from your package." CR>>
<COND (<FSET? ,PRSO ,ACTORBIT>
<WEE>)
(T
<TELL "You're wacko." CR>)>>
<IMPOSSIBLES>)>>
<ROUTINE V-POINT ()
<TELL "That would be pointless." CR>>
@ -1427,7 +1454,8 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
<PERFORM ,V?CLOSE ,PRESSER>
<RTRUE>)
(T
<DO-FIRST "put it in the presser">)>)
<TELL
,YOULL-HAVE-TO "put" T ,PRSO " in the presser first." CR>)>)
(T
<HACK-HACK "Pushing">)>>
@ -1437,21 +1465,17 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
(T
<RECOGNIZE>)>>
<ROUTINE PRE-PUT ()
<ROUTINE PRE-PUT ("AUX" IDROP-VALUE)
<COND (<PRSI? ,GROUND>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)
(<PRSO? ,HANDS>
<COND (<AND <VERB? PUT-ON PUT>
<PRSI? ,HANDS ,TONGUE>>
<RFALSE>)
(<VERB? PUT>
<PERFORM ,V?REACH-IN ,PRSI>
<RTRUE>)
(T
<IMPOSSIBLES>)>)
<PERFORM <COND (<VERB? PUT> ,V?REACH-IN)
(T ,V?TOUCH)>
,PRSI>
<RTRUE>)
(<AND <NOT <PRSI? ,HANDS ,TONGUE>>
<PRE-LOOK>>
<PRE-LOOK> ;"it's too dark...">
<RTRUE>)
(<IN? ,PRSO ,PRSI>
<TELL "But" T ,PRSO " is already in" TR ,PRSI>)
@ -1469,8 +1493,8 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
<TELL T ,PRSO "!" CR>)
(<UNTOUCHABLE? ,PRSI>
<CANT-REACH ,PRSI>)
(<IDROP>
<RTRUE>)>>
(<SET IDROP-VALUE <IDROP>>
<RETURN .IDROP-VALUE>)>>
<ROUTINE V-PUT ()
<COND (<AND <NOT <FSET? ,PRSI ,OPENBIT>>
@ -1483,7 +1507,7 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
<NOT <FSET? ,PRSO ,TAKEBIT>>>>
<TELL "How can you do that?" CR>)
(<FSET? ,PRSI ,DOORBIT>
<TELL "You can't do that from here." CR>)
<TELL ,YOU-CANT "do that from here." CR>)
(<AND <NOT <FSET? ,PRSI ,OPENBIT>>
<NOT <FSET? ,PRSI ,SURFACEBIT>>>
<THIS-IS-IT ,PRSI>
@ -1518,6 +1542,9 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
(<OR <FSET? ,PRSI ,SURFACEBIT>
<FSET? ,PRSI ,VEHBIT>>
<V-PUT>)
(<EQUAL? ,P-PRSA-WORD ,W?WRAP>
<TELL
"Useless. You're getting too wrapped up in this story." CR>)
(T
<TELL "There's no good surface on" TR ,PRSI>)>>
@ -1571,18 +1598,15 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
<ROUTINE V-SAY ("AUX" V)
<COND (<AND ,AWAITING-REPLY
<YES-WORD <GET ,P-LEXV ,P-CONT>>>
<V-YES>
<STOP>)
<V-YES>)
(<AND ,AWAITING-REPLY
<NO-WORD <GET ,P-LEXV ,P-CONT>>>
<V-NO>
<STOP>)
<V-NO>)
(<SET V <FIND-IN ,HERE ,ACTORBIT>>
<TELL "You must address" T .V " directly." CR>
<STOP>)
<TELL "You must address" T .V " directly." CR>)
(T
<PERFORM ,V?TELL ,ME>
<STOP>)>>
<PERFORM ,V?TELL ,ME>)>
<STOP>>
<ROUTINE V-SCARE ()
<TELL
@ -1635,8 +1659,7 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
(<NOT <FSET? ,PRSI ,ACTORBIT>>
<TELL "I don't think" T ,PRSI " even has hands." CR>)
(T
<PERFORM ,V?THANK ,PRSI>
<RTRUE>)>>
<TELL "\"How do you do.\"" CR>)>>
<ROUTINE PRE-SHOOT ()
<COND (<AND <NOT ,PRSI>
@ -1646,8 +1669,7 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
<TELL "\"Click.\"" CR>)
(T
<SETG ZAPGUN-SHOTS <- ,ZAPGUN-SHOTS 1>>
<TELL
"Some nasty flames shoot out the maw of the zapgun." CR>)>
<TELL "Nasty flames spew from the zapgun." CR>)>
<RTRUE>)
(T
<SETG PRSI ,ZAPGUN>
@ -1692,8 +1714,8 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
<SET L <LOC ,PRSO>>
<COND (<EQUAL? .L ,FLOYD>
<TELL
" Floyd, who was holding" T ,PRSO " at the time, gives a shriek of fear,
and all the oil drains from his face.">)
" Floyd, who was holding" T ,PRSO ", gives a shriek of fear, and
all the oil drains from his face.">)
(<NOT <EQUAL? .L ,HERE ,PEDESTAL ,DRILLED-HOLE>>
<TELL
" Naturally," T .L " is also history, since" T ,PRSO " was sitting ">
@ -1746,23 +1768,22 @@ and all the oil drains from his face.">)
<COND (<FSET? ,SPACESUIT ,WORNBIT>
<TELL
"You smell stale air and rusty metal and unbathed " ,LFC " -- all the
usual odors of the inside a space suit." CR>)>>
usual odors of a space suit." CR>)>>
<ROUTINE V-SMELL ()
<COND (<OR <NOT ,PRSO>
<PRSO? ,AIR>>
<COND (,BALLOON-ODOR
<TELL
"The awful odor of the " ,BALLOON "'s digestive gas is thankfully fading." CR>)
"The awful odor of the " 'BALLOON "'s digestive gas is thankfully fading." CR>)
(<AND <EQUAL? ,HERE ,GREASY-STRAW>
<IN? ,NECTAR ,LOCAL-GLOBALS>>
<NOT <FSET? ,NECTAR ,TOUCHBIT>>>
<TELL "There's something yum-smelling around here!" CR>)
(<EQUAL? ,HERE ,OPIUM-DEN>
<TELL "There's a lingering smell of various drugs." CR>)
(<VISIBLE? ,BALLOON>
<TELL
"There's an odor reminiscent of the video room at home on a night when your
mom served Northern Gallium Bonzo Beans." CR>)
<PERFORM ,V?SMELL ,BALLOON>
<RTRUE>)
(<AND <EQUAL? ,HERE ,COMMANDERS-QUARTERS>
<FSET? ,SAFE ,OPENBIT>>
<TELL "The odor of an explosion hangs in the air." CR>)
@ -1813,6 +1834,8 @@ mom served Northern Gallium Bonzo Beans." CR>)
(<AND ,PRSO
<FSET? ,PRSO ,TAKEBIT>>
<WASTES>)
(,STUNNED
<YOURE-STUNNED>)
(T
<TELL "You're already standing." CR>)>>
@ -1839,9 +1862,8 @@ mom served Northern Gallium Bonzo Beans." CR>)
<RTRUE>>
<ROUTINE PRE-TAKE ()
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0>
<IN? ,PLATO ,HERE>>
<STUNNED "move that much">)
<COND (,STUNNED
<YOURE-STUNNED "move that much">)
(<UNTOUCHABLE? ,PRSO>
<CANT-REACH ,PRSO>)
(<AND <NOT <PRSI? ,HANDS ,TONGUE>>
@ -1913,6 +1935,8 @@ mom served Northern Gallium Bonzo Beans." CR>)
<RTRUE>)
(T
<V-STAND>)>)
(,STUNNED
<YOURE-STUNNED>)
(<FSET? ,PRSO ,WORNBIT>
<SETG C-ELAPSED 18>
<FCLEAR ,PRSO ,WORNBIT>
@ -1944,8 +1968,7 @@ mom served Northern Gallium Bonzo Beans." CR>)
<RTRUE>)
(T
<TELL
"Hmmm..." T ,PRSO " looks at you expectantly,
as if you seemed to be about to talk." CR>)>)
"Hmmm..." T ,PRSO " looks at you expectantly." CR>)>)
(T
<TELL
"Talking to" A ,PRSO "? Dr. Blanchard, the Duffy's psychiatrist, would
@ -2021,10 +2044,9 @@ be fascinated to hear that." CR>
<TELL ,PERIOD-CR>)>>
<ROUTINE PRE-TOUCH ("OPTIONAL" (VB T))
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0>
<IN? ,PLATO ,HERE>>
<COND (,STUNNED
<COND (.VB
<STUNNED "move that much">)>
<YOURE-STUNNED "move that much">)>
<RTRUE>)
(<UNTOUCHABLE? ,PRSO>
<COND (.VB
@ -2049,7 +2071,9 @@ be fascinated to hear that." CR>
<STOP>)>)
(<AND ,PRSO
<PRSO? ,INTNUM>>
<COND (<EQUAL? ,HERE ,ROBOT-POOL>
<COND (<NOT ,P-NUMBER> ;"input was TYPE NUMBER"
<TELL "[Specify the number! TYPE 7, for example.]" CR>)
(<EQUAL? ,HERE ,ROBOT-POOL>
<ROBOT-TYPE>)
(<EQUAL? ,HERE ,SPACETRUCK>
<SPACETRUCK-TYPE>)
@ -2070,10 +2094,10 @@ be fascinated to hear that." CR>
<ROUTINE ROBOT-TYPE ()
<COND (<NOT <FSET? ,ROBOT-USE-AUTHORIZATION-FORM ,NDESCBIT>>
<RECORDING "Keyboard is only active following authorization">)
<RECORDING "Keyboard is active only following authorization">)
(,ROBOT-PICKED
<RECORDING "You have already made your selection">)
(<G? ,P-NUMBER 10>
;(<G? ,P-NUMBER 10>
<TELL "There are only ten keys on the keypad." CR>)
(<G? ,P-NUMBER 3>
<RECORDING "That bin is unoccupied">)
@ -2100,9 +2124,9 @@ quivering, as though he were about to cry." CR>)>>
<ROUTINE SPACETRUCK-TYPE ("AUX" X)
<COND (<NOT <FSET? ,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM ,NDESCBIT>>
<RECORDING "Keyboard is only active following authorization">)
<RECORDING "Keyboard is active only following authorization">)
(<EQUAL? ,SPACETRUCK-COUNTER 5>
<RECORDING "Fuel levels at zero">)
<RECORDING "Fuel level at zero">)
(<NOT <EQUAL? ,COURSE-PICKED 0>>
<RECORDING "You have already made your selection">)
(<AND <OR <IN? ,PROTAGONIST ,PILOT-SEAT>
@ -2110,23 +2134,23 @@ quivering, as though he were about to cry." CR>)>>
<OR <IN? ,PROTAGONIST ,COPILOT-SEAT>
<IN? ,FLOYD ,COPILOT-SEAT>>>
<SETG COURSE-PICKED ,P-NUMBER>
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[P-NUMBER = " N ,P-NUMBER ".]" CR>
<TELL "[INTERNAL-MOVES = " N ,INTERNAL-MOVES ".]" CR>)>
<SET X </ ,INTERNAL-MOVES 50>>
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[X = " N .X ".]" CR>)>
<SET X <- .X 132>>
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[X = " N .X ".]" CR>)>
<SET X <* .X .X>>
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[X = " N .X ".]" CR>)>
<SET X </ .X 4>>
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[X = " N .X ".]" CR>)>
<SETG RIGHT-COURSE <+ .X 103>>
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[RIGHT-COURSE = " N ,RIGHT-COURSE ".]" CR>)>
<QUEUE I-SPACETRUCK 33>
<RECORDING
@ -2142,9 +2166,8 @@ the pilot and copilot seats are occupied">)>>
<RECORDING "Select a level between 1 and 9">)
(<G? ,DAY 2>
<JIGS-UP
"The instant you press the button, the elevator begins plunging down the shaft!
It's worse than just free-fall; the elevator is actually in a power dive!!!
You punch frantically at the keypad...">)
"The instant you press the button, the elevator begins plunging down the shaft
in a power dive! You punch frantically at the keypad...">)
(<EQUAL? ,ELEVATOR-LEVEL ,P-NUMBER>
<RECORDING "You are already at that level">)
(<EQUAL? ,P-NUMBER 8 9>
@ -2207,8 +2230,7 @@ the dispenser hole." CR>)
<RECORDING "Error">)
(T
<RECORDING
"Sorry, that item is sold out. Please contact your PX Officer regarding
restocking of dispenser">)>>
"Sorry, that item is sold out. Inform your PX Officer for restocking">)>>
<ROUTINE RECORDING (STRING)
<COND (<PROB 33>
@ -2276,9 +2298,8 @@ restocking of dispenser">)>>
<COND (<NOT ,P-WALK-DIR>
<PERFORM ,V?WALK-TO ,PRSO>
<RTRUE>)
(<AND <G? ,PLATO-ATTACK-COUNTER 0>
<IN? ,PLATO ,HERE>>
<STUNNED "walk">)
(,STUNNED
<YOURE-STUNNED "walk">)
(<AND <PRSO? ,P?OUT>
<EQUAL? .AV ,SIMULATION-BOOTH ,HOLDING-TANK>>
<PERFORM ,V?DISEMBARK .AV>
@ -2321,47 +2342,49 @@ restocking of dispenser">)>>
<NOT <ULTIMATELY-IN? ,DETONATOR>>>
<DO-FIRST "disconnect the explosive">)
(<SET PT <GETPT ,HERE ,PRSO>>
<COND (,LIT
<SETG C-ELAPSED 22>)
(T
<SETG C-ELAPSED 33>)>
<COND (<EQUAL? <SET PTS <PTSIZE .PT>> ,UEXIT>
<SETG C-ELAPSED 22>
<GOTO <GETB .PT ,REXIT>>)
(<EQUAL? .PTS ,CEXIT>
<COND (<EQUAL? ,HERE ,CASINO>
<COND (<VALUE <GETB .PT ,CEXITFLAG>>
<SETG C-ELAPSED 22>
<GOTO <GETB .PT ,REXIT>>)
;(<SET STR <GET .PT ,CEXITSTR>>
<TELL .STR CR>
<RFATAL>)
(T
<SETG C-ELAPSED 7>
<TELL ,CANT-GO>
<RFATAL>)>)
(T ;"kludge for auto-doors"
<SETG C-ELAPSED 22>
<COND (<NOT <EQUAL? ,VERBOSITY 0>>
<DESCRIBE-AUTO-DOOR>)>
<GOTO <GETB .PT ,REXIT>>)>)
(<EQUAL? .PTS ,NEXIT>
<SETG C-ELAPSED 7>
<TELL <GET .PT ,NEXITSTR> CR>
<RFATAL>)
(<EQUAL? .PTS ,FEXIT>
<SETG C-ELAPSED 22>
<COND (<SET RM <APPLY <GET .PT ,FEXITFCN>>>
<GOTO .RM>)
(<EQUAL? ,HERE ,AIR-SHAFT>
<RTRUE>)
(T
<COND (<EQUAL? ,HERE ,AIR-SHAFT>
<RTRUE>)
(T
<SETG C-ELAPSED 7>
<RFATAL>)>)>)
<SETG C-ELAPSED 7>
<RFATAL>)>)
(<EQUAL? .PTS ,DEXIT>
<COND (<FSET? <SET OBJ <GETB .PT ,DEXITOBJ>> ,OPENBIT>
<SETG C-ELAPSED 22>
<GOTO <GETB .PT ,REXIT>>)
(<SET STR <GET .PT ,DEXITSTR>>
<SETG C-ELAPSED 7>
<THIS-IS-IT .OBJ>
<TELL .STR CR>
<RFATAL>)
(T
<SETG C-ELAPSED 7>
<THIS-IS-IT .OBJ>
<DO-FIRST "open" .OBJ>
<RFATAL>)>)>)
@ -2472,7 +2495,7 @@ generally the epitome of reliability.">)>)>
<RTRUE>>
<ROUTINE V-YELL ()
<TELL "Aaaarrgghh!" CR>
<TELL "Aaaarrrggghhh!" CR>
<COND (<IN? ,OSTRICH ,HERE>
<TELL " ">
<PERFORM ,V?SCARE ,OSTRICH>
@ -2490,10 +2513,10 @@ generally the epitome of reliability.">)>)>
<TELL "That was just a rhetorical question." CR>)
(<EQUAL? ,AWAITING-REPLY 2>
<TELL
"\"Floyd changed his mind. These controls are too scary-looking.\"" CR>)
"\"Floyd changed his mind. Controls too scary-looking.\"" CR>)
(<EQUAL? ,AWAITING-REPLY 3>
<TELL
"Floyd shrugs. \"Floyd not feel like learning new rules now. Let's play
"Floyd shrugs. \"Floyd feels not like learning new rules now. Let's play
tag. Floyd knows rules for tag really well!\"" CR>)
(<EQUAL? ,AWAITING-REPLY 4>
<PERFORM ,V?PLAY-WITH ,FLOYD>
@ -2530,7 +2553,9 @@ tag. Floyd knows rules for tag really well!\"" CR>)
(<PROB <- <* <CCOUNT ,PROTAGONIST> 20> 150>>
;"holding 8 items, 10%
9 itmes, 30%
10 items, 50%
11 items, 70%
12 items, 90%
13 items, 100%"
<SET OBJ <FIRST? ,PROTAGONIST>>
<REPEAT ()
@ -2592,7 +2617,10 @@ tag. Floyd knows rules for tag really well!\"" CR>)
(T
<TELL
"That's easy for you to say since you don't even have" TR ,PRSO>)>
<RFATAL>)
<COND (,P-MULT
<RTRUE>)
(T
<RFATAL>)>)
(<AND <NOT <IN? ,PRSO ,PROTAGONIST>>
<FSET? <LOC ,PRSO> ,CONTBIT>
<NOT <FSET? <LOC ,PRSO> ,OPENBIT>>>
@ -2606,6 +2634,7 @@ tag. Floyd knows rules for tag really well!\"" CR>)
<COND (<SET X <FIRST? .OBJ>>
<REPEAT ()
<COND (<NOT <FSET? .X ,WORNBIT>>
;"worn things shouldnt count toward max load"
<SET CNT <+ .CNT 1>>)>
<COND (<NOT <SET X <NEXT? .X>>>
<RETURN>)>>)>
@ -2615,10 +2644,8 @@ tag. Floyd knows rules for tag really well!\"" CR>)
<ROUTINE WEIGHT (OBJ "AUX" CONT (WT 0))
<COND (<SET CONT <FIRST? .OBJ>>
<REPEAT ()
<COND (<AND <EQUAL? .OBJ ,PROTAGONIST>
<FSET? .CONT ,WORNBIT>>
T ;"worn things shouldnt count toward max load")
(T
<COND (<NOT <FSET? .CONT ,WORNBIT>>
;"worn things shouldnt count toward max load"
<SET WT <+ .WT <WEIGHT .CONT>>>)>
<SET CONT <NEXT? .CONT>>
<COND (<NOT .CONT>
@ -3045,12 +3072,22 @@ a modicum of stability.">)>)>
<RFALSE>)
(<AND ,HANGING-IN-AIR
<IN? .OBJ ,HERE>>
<COND (<OR <EQUAL? .OBJ ,BALLOON ,ETERNAL-FLAME>
<COND (<OR <EQUAL? .OBJ ,BALLOON ,ETERNAL-FLAME ,LEASH>
<AND <EQUAL? .OBJ ,STAR>
<FSET? .OBJ ,TRYTAKEBIT>>>
<RFALSE>)
(T
<RTRUE>)>)
(<AND <IN? .OBJ ,STAR>
<FSET? ,STAR ,TRYTAKEBIT>
<NOT ,HANGING-IN-AIR>>
<RTRUE>)
(<AND <EQUAL? .OBJ ,BALLOON ,LEASH>
<IN? .OBJ ,CAGE>>
<RTRUE>)
(<AND <EQUAL? .OBJ ,FLOYD ,REX ,HELEN>
<NOT <EQUAL? .OBJ ,ROBOT-PICKED>>>
<RTRUE>)
(<IN? ,PROTAGONIST ,HERE>
<RFALSE>)
(<OR <ULTIMATELY-IN? .OBJ <LOC ,PROTAGONIST>>
@ -3222,7 +3259,7 @@ a modicum of stability.">)>)>
"Fat chance."
"You are behaving like a demented Denebian slime devil."
"Dream on."
"It's the looney bin for you!"
"You're wacko."
"You have lost your mind.">>
<ROUTINE WASTES ()
@ -3231,8 +3268,8 @@ a modicum of stability.">)>)>
<GLOBAL WASTE-LIST
<LTABLE 0
"A waste of time."
"A worthless action -- and much too difficult for a poorly-written program
like this one to handle."
"A worthless action -- and much too complex for a crufty program like
this one to handle."
"Useless. Unhelpful."
"There's another turn down the drain."
"Why bother?">>

View file

@ -32,9 +32,10 @@
.FUNCT IRIS-HATCH-F
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
PRINTR "It won't budge."
PRINT WONT-BUDGE
RTRUE
?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "The hatch, like the f-stop of a camera, is composed of many pieces which move to form a circular opening of the desired size. This is a common way of joining connecting tubes to ships or stations. "
PRINTI "The hatch, like the f-stop of a camera, is composed of many pieces which move to form a circular opening of the desired size. This is a common way of joining connecting tubes to ships or stations. There's a slot next to the hatch. "
RFALSE
@ -93,28 +94,6 @@
RFALSE
.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 BARBERSHOP-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "You have entered a surprisingly old-fashioned looking tonsorial parlor. "
@ -134,23 +113,26 @@
PRINTR "You look mah-velous."
?CCL7: EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-BEHIND \?CCL9
PRINTR "The mirror seems to be affixed to the wall."
?CCL9: EQUAL? PRSA,V?MUNG /?CCL11
EQUAL? PRSA,V?THROW \FALSE
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
?CCL11: SET 'MIRROR-BROKEN,TRUE-VALUE
?CCL9: EQUAL? PRSA,V?KILL,V?KICK,V?MUNG \?CCL11
SET 'MIRROR-BROKEN,TRUE-VALUE
MOVE FOIL,HERE
PRINTI "The mirror smashes into a cloud of glass dust, which (fortunately) is quickly sucked away by the barbershop's ventilation system. As the glass is sucked away you discover what gave the mirror its reflectivity: "
GETP FOIL,P?FDESC
PRINT STACK
CRLF
RTRUE
?CCL11: EQUAL? PRSA,V?THROW \FALSE
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
MOVE PRSO,HERE
CALL PERFORM,V?KICK,PSEUDO-OBJECT
RTRUE
.FUNCT FOIL-F
EQUAL? PRSA,V?EXAMINE,V?MEASURE \?CCL3
PRINTI "It's a large piece of "
PRINTD FOIL
PRINTR ", about six feet on a side."
PRINTR ", about two meters on a side."
?CCL3: EQUAL? PRSA,V?CRUMPLE \?CCL5
PRINTR "You crumple the foil into a fist-sized wad, but it instantly returns to its wrinkle-free state."
?CCL5: EQUAL? PRSA,V?FIND \FALSE
@ -220,7 +202,9 @@
?CCL10: EQUAL? PRSA,V?CATCH,V?TAKE \?CCL21
CALL PERFORM,V?TAKE,LEASH
RTRUE
?CCL21: EQUAL? PRSA,V?HUG,V?TOUCH \FALSE
?CCL21: EQUAL? PRSA,V?SMELL \?CCL23
PRINTR "There's an odor reminiscent of your school dorm on a night when the dining hall served Northern Gallium Bonzo Beans."
?CCL23: EQUAL? PRSA,V?HUG,V?TOUCH \FALSE
PRINTI "The "
PRINTD BALLOON
PRINTR " purrs and rings of color shimmer along its body."
@ -229,67 +213,60 @@
.FUNCT LEASH-F
EQUAL? PRSA,V?MOVE,V?TAKE \?CCL3
EQUAL? PRSO,LEASH \?CCL3
IN? BALLOON,CAGE \?CCL8
PRINT YOU-CANT
PRINTR "reach the leash inside the cage."
?CCL8: ZERO? HANGING-IN-AIR /?CCL10
ZERO? HANGING-IN-AIR /?CCL8
PRINT SENILITY-STRIKES
RTRUE
?CCL10: FSET? SPACESUIT,WORNBIT \?CCL12
?CCL8: FSET? SPACESUIT,WORNBIT \?CCL10
PRINTR "The space suit's glove is a bit too big and clumsy to fit through the loop of the leash. You'll have to remove the suit before grabbing the leash."
?CCL12: FSET? HERE,WEIGHTLESSBIT \?CCL14
?CCL10: FSET? HERE,WEIGHTLESSBIT \?CCL12
PRINTI "The Arcturian tries to ""float"" away from you, but its buoyancy system is useless in zero-gee. As you grasp the leash, it uses its lateral propulsion method in an attempt to get away. In other words, it farts right in your face. In a reflexive maneuver to wave away the odor, you release the leash"
CALL CCOUNT,PROTAGONIST
GRTR? STACK,0 \?CND15
GRTR? STACK,0 \?CND13
CALL ROB,PROTAGONIST,HERE
PRINTI " and drop everything you were holding"
?CND15: PRINT PERIOD-CR
?CND13: PRINT PERIOD-CR
RTRUE
?CCL14: SET 'HANGING-IN-AIR,TRUE-VALUE
?CCL12: SET 'HANGING-IN-AIR,TRUE-VALUE
PRINTI "As you grab the leash, the startled "
PRINTD BALLOON
PRINTI " tries to get away by hyperinflating. Slowly, its buoyancy lifts you right "
FSET? BOOTS,WORNBIT \?CCL19
FSET? BOOTS,WORNBIT \?CCL17
FCLEAR BOOTS,WORNBIT
MOVE BOOTS,HERE
PRINTI "out of the "
PRINTD BOOTS
JUMP ?CND17
?CCL19: PRINTI "off the deck"
?CND17: PRINTI "! Within moments, the Arcturian is bobbing against the ceiling, and you're hanging five feet off the floor! (Footnote 4)"
JUMP ?CND15
?CCL17: PRINTI "off the deck"
?CND15: PRINTI "! Within moments, the Arcturian is bobbing against the ceiling, and you're hanging two meters off the floor! (Footnote 4)"
CRLF
IN? FLOYD,HERE \TRUE
FSET? FLOYD,ACTIVEBIT \TRUE
ZERO? HANGING-COMMENT \TRUE
SET 'FLOYD-SPOKE,TRUE-VALUE
CALL FLOYDS-HANGING-IN-AIR-COMMENT
SET 'HANGING-COMMENT,TRUE-VALUE
PRINT FLOYDS-HANGING-IN-AIR-COMMENT
RTRUE
?CCL3: EQUAL? PRSA,V?UNTIE,V?REMOVE \?CCL26
?CCL3: EQUAL? PRSA,V?UNTIE,V?REMOVE \?CCL24
PRINTI "There's no obvious way to remove the leash from"
CALL TRPRINT,BALLOON
RSTACK
?CCL26: EQUAL? PRSA,V?DISCONNECT \?CCL28
ZERO? PRSI /?CTR27
EQUAL? PRSI,BALLOON \?CCL28
?CTR27: CALL PERFORM,V?REMOVE,LEASH
?CCL24: EQUAL? PRSA,V?DISCONNECT \?CCL26
ZERO? PRSI /?CTR25
EQUAL? PRSI,BALLOON \?CCL26
?CTR25: CALL PERFORM,V?REMOVE,LEASH
RTRUE
?CCL28: EQUAL? PRSA,V?DROP \FALSE
?CCL26: EQUAL? PRSA,V?DROP \FALSE
ZERO? HANGING-IN-AIR /FALSE
SET 'HANGING-IN-AIR,FALSE-VALUE
PRINTI "You drop to the deck."
IN? BALLOON,HERE \?CND37
IN? BALLOON,HERE \?CND35
PRINTI " The "
PRINTD BALLOON
PRINTR " gradually floats downward until it's back at around eye-level."
?CND37: CRLF
?CND35: CRLF
RTRUE
.FUNCT FLOYDS-HANGING-IN-AIR-COMMENT
SET 'HANGING-COMMENT,TRUE-VALUE
PRINTR " ""Boy, that looks like fun!"" says Floyd, peering up at you. ""Can Floyd try it? Huh? Please?"""
.FUNCT PANEL-F
EQUAL? PRSA,V?LOWER,V?REMOVE,V?MOVE /?CCL3
EQUAL? PRSA,V?LOOK-BEHIND \FALSE
@ -389,27 +366,32 @@
.FUNCT DICE-F,NUM,?TMP1
EQUAL? PRSA,V?THROW,V?ROLL \?CCL3
FSET? HERE,WEIGHTLESSBIT \?CCL6
CALL ULTIMATELY-IN?,DICE
ZERO? STACK \?CCL6
PRINT YNH
CALL TRPRINT,DICE
RTRUE
?CCL6: FSET? HERE,WEIGHTLESSBIT \?CCL8
RANDOM 100
LESS? 50,STACK /?CCL9
LESS? 50,STACK /?CCL11
SET 'NUM,7
JUMP ?CND4
?CCL9: SET 'NUM,11
?CCL11: SET 'NUM,11
JUMP ?CND4
?CCL6: RANDOM 6 >?TMP1
?CCL8: RANDOM 6 >?TMP1
RANDOM 6
ADD ?TMP1,STACK >NUM
?CND4: MOVE DICE,HERE
PRINTI "You roll a"
EQUAL? NUM,8,11 \?CND10
EQUAL? NUM,8,11 \?CND12
PRINTC 110
?CND10: PRINTC 32
?CND12: PRINTC 32
PRINTN NUM
FSET? HERE,WEIGHTLESSBIT \?CND12
ZERO? DICE-FOOTNOTE \?CND12
FSET? HERE,WEIGHTLESSBIT \?CND14
ZERO? DICE-FOOTNOTE \?CND14
SET 'DICE-FOOTNOTE,TRUE-VALUE
PRINTI " (Footnote 1)"
?CND12: PRINT PERIOD-CR
?CND14: PRINT PERIOD-CR
RTRUE
?CCL3: EQUAL? PRSA,V?SHAKE \FALSE
PRINTR "Shaken."
@ -434,7 +416,7 @@
.FUNCT VACUUM-DEATH
CALL JIGS-UP,STR?355
CALL JIGS-UP,STR?365
RSTACK
@ -453,7 +435,7 @@
.FUNCT COUNTER-F
EQUAL? PRSA,V?SEARCH,V?LOOK-BEHIND,V?LOOK-UNDER /?PRD5
EQUAL? PRSA,V?HIDE,V?EXAMINE \?CCL3
?PRD5: IN? NECTAR,LOCAL-GLOBALS \?CCL3
?PRD5: FSET? NECTAR,TOUCHBIT /?CCL3
CALL PERFORM,V?SEARCH,GLOBAL-ROOM
RTRUE
?CCL3: EQUAL? PRSA,V?LOOK-OVER \FALSE
@ -463,14 +445,20 @@
.FUNCT NECTAR-F
EQUAL? PRSA,V?EMPTY,V?POUR,V?THROW \?CCL3
EQUAL? PRSO,NECTAR \?CCL3
PRINTI "You create a nectarish mess, which thankfully dries up very quickly"
CALL MESS,STR?369
CALL ANTI-LITTER,NECTAR
RSTACK
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL7
CALL NOUN-USED,W?CUP,NECTAR
ZERO? STACK /?CCL7
PRINTR "The cup is filled with nectar."
?CCL7: EQUAL? PRSA,V?FIND \FALSE
PRINTR "Yup. Nectar."
?CCL7: EQUAL? PRSA,V?EXAMINE,V?TOUCH,V?REACH-IN /?CTR10
EQUAL? PRSA,V?TASTE \?CCL11
?CTR10: PRINTR "The nectar is warm and thick."
?CCL11: EQUAL? PRSA,V?EAT-FROM \?CCL15
CALL PERFORM,V?EAT,NECTAR
RTRUE
?CCL15: EQUAL? PRSA,V?FIND \FALSE
IN? NECTAR,LOCAL-GLOBALS \FALSE
EQUAL? HERE,GREASY-STRAW \FALSE
CALL PERFORM,V?SEARCH,GLOBAL-ROOM
@ -515,7 +503,7 @@
GRTR? DETECTOR-COUNTER,99 \?CCL12
PRINTR "Ouch! The detector is too hot to pick up!"
?CCL12: CALL ITAKE
EQUAL? STACK,M-FATAL,FALSE-VALUE /FALSE
EQUAL? STACK,M-FATAL,FALSE-VALUE /TRUE
PRINTI "As you pick up the detector, you notice that is feels "
GRTR? DETECTOR-COUNTER,75 \?CND15
PRINTI "very "
@ -541,30 +529,6 @@
PRINTR "The beeping is strongest as you approach the mirror."
.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 TRAVEL-AGENCY-POSTER-F
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
PRINTR "The posters show a sunset on ""Historic Ramos II,"" the steel and zynoid towers of ""Varshon, the Galactic Capital,"" and scantily-clad beauties cavorting on the beaches of ""The Pleasure Moons of Mazzotta."""
@ -582,14 +546,16 @@
EQUAL? PRSA,V?OPEN \FALSE
FSET? INNER-AIRLOCK-DOOR,OPENBIT /FALSE
FSET? OUTER-AIRLOCK-DOOR,OPENBIT \FALSE
PRINTR "It won't budge."
PRINT WONT-BUDGE
RTRUE
.FUNCT OUTER-AIRLOCK-DOOR-F,X=0,N=0,OBJ-FLUSHED=0,?TMP1
EQUAL? PRSA,V?OPEN \?CCL3
FSET? OUTER-AIRLOCK-DOOR,OPENBIT /?CCL3
FSET? INNER-AIRLOCK-DOOR,OPENBIT \?CCL8
PRINTR "It won't budge."
PRINT WONT-BUDGE
RTRUE
?CCL8: PRINTI "As the door opens, the air in the lock whooshes out into the vacuum of space"
FSET? SPACESUIT,WORNBIT /?CCL11
PRINTI ". "
@ -600,38 +566,41 @@
CALL LOST-IN-SPACE
JUMP ?CND9
?CCL13: FSET OUTER-AIRLOCK-DOOR,OPENBIT
FIRST? AIRLOCK >X /?PRG14
?PRG14: ZERO? X /?REP15
NEXT? X >N /?KLU39
?KLU39: EQUAL? X,PROTAGONIST,OSTRICH,BALLOON /?CND18
CALL META-LOC,EXPLOSIVE
EQUAL? STACK,HERE \?CND14
CALL DEQUEUE,I-EXPLOSIVE-MELT
?CND14: FIRST? AIRLOCK >X /?PRG16
?PRG16: ZERO? X /?REP17
NEXT? X >N /?KLU41
?KLU41: EQUAL? X,PROTAGONIST,OSTRICH,BALLOON /?CND20
REMOVE X
SET 'OBJ-FLUSHED,TRUE-VALUE
?CND18: SET 'X,N
JUMP ?PRG14
?REP15: ZERO? OBJ-FLUSHED /?CND20
?CND20: SET 'X,N
JUMP ?PRG16
?REP17: ZERO? OBJ-FLUSHED /?CND22
PRINTI ", flushing everything in the airlock"
?CND20: PRINT PERIOD-CR
?CND9: IN? OSTRICH,HERE \?CND22
?CND22: PRINT PERIOD-CR
?CND9: IN? OSTRICH,HERE \?CND24
REMOVE OSTRICH
PRINT PATHETIC-SQUAWK
PRINTI " as it is swept into space, quickly dwindling from sight."
CRLF
?CND22: IN? BALLOON,HERE \?CND24
?CND24: IN? BALLOON,HERE \?CND26
REMOVE BALLOON
REMOVE LEASH
PRINTI " The "
PRINTD BALLOON
PRINTI ", unable to adjust to the sudden drop in pressure, explodes into a puff of hydrogen that immediately vanishes!"
CRLF
?CND24: CALL ULTIMATELY-IN?,FOOD-KIT
ZERO? STACK /?CND26
?CND26: CALL ULTIMATELY-IN?,FOOD-KIT
ZERO? STACK /?CND28
LOC ORANGE-GOO >?TMP1
LOC GRAY-GOO
EQUAL? FOOD-KIT,?TMP1,STACK \?CND26
FSET? FOOD-KIT,OPENBIT \?CND26
EQUAL? FOOD-KIT,?TMP1,STACK \?CND28
FSET? FOOD-KIT,OPENBIT \?CND28
PRINTI " "
CALL SPACE-FOOD
?CND26: CALL SPACE-LIQUID,SOUP
?CND28: CALL SPACE-LIQUID,SOUP
CALL SPACE-LIQUID,COFFEE
CALL SPACE-LIQUID,NECTAR
RTRUE
@ -640,9 +609,9 @@
FSET? OUTER-AIRLOCK-DOOR,OPENBIT \FALSE
FCLEAR OUTER-AIRLOCK-DOOR,OPENBIT
CALL ULTIMATELY-IN?,EXPLOSIVE,HERE
ZERO? STACK /?CND36
ZERO? STACK /?CND38
CALL QUEUE,I-EXPLOSIVE-MELT,-1
?CND36: PRINTR "As soon as the door is closed, air hisses back into the airlock."
?CND38: PRINTR "As soon as the door is closed, air hisses back into the airlock."
.FUNCT GENERIC-AIRLOCK-DOOR-F
@ -655,7 +624,7 @@
.FUNCT AIRLOCK-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is a cramped lock with doors above and below you. "
PRINTI "This is a cramped airlock with doors above and below you. "
FSET? INNER-AIRLOCK-DOOR,OPENBIT /?CCL6
FSET? OUTER-AIRLOCK-DOOR,OPENBIT /?CCL6
PRINTI "Neither door"
@ -699,12 +668,12 @@
PUSH 0
JUMP ?CND23
?CCL27: PUSH OUTER-AIRLOCK-DOOR
?CND23: CALL PERFORM-PRSA,STACK
RSTACK
?CND23: CALL PERFORM,PRSA,STACK
RTRUE
.FUNCT LOST-IN-SPACE
CALL JIGS-UP,STR?366
CALL JIGS-UP,STR?377
RSTACK
@ -712,7 +681,7 @@
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This area outside the airlock is being used for vacuum storage, in much the same way that your dad kept beer cold in the back yard during winters on Gallium. In fact, the villagers usually refer to this place as the ""vac yard."" Only the "
PRINTD BOOTS
PRINTI ", clinging to the outer skin of the warehouse, are preventing you from floating off into space. Tethered all around you: those items in the Trading Post's inventory that, for reasons of temperature or anti-corrosion, must be stored here in space. The door to the airlock, ""above"" you, is "
PRINTI ", clinging to the outer skin of the warehouse, is preventing you from floating off into space. Tethered all around you: those items in the Trading Post's inventory that, for reasons of temperature or anti-corrosion, must be stored here in space. The door to the airlock, ""above"" you, is "
CALL OPEN-CLOSED,OUTER-AIRLOCK-DOOR
PRINTC 46
RTRUE
@ -730,48 +699,21 @@
RSTACK
?CCL8: CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?DISCONNECT \FALSE
?CCL3: EQUAL? PRSA,V?PUT \?CCL10
EQUAL? PRSI,HEATING-CHAMBER \?CCL10
PRINTI "The explosive "
PRINT SUBLIMES-INTO-FREZONE
CALL DEQUEUE,I-EXPLOSIVE-MELT
CALL REMOVE-CAREFULLY,EXPLOSIVE
CRLF
RTRUE
?CCL10: EQUAL? PRSA,V?DISCONNECT \FALSE
ZERO? PRSI \FALSE
ZERO? EXPLOSIVE-CONNECTED /FALSE
CALL PERFORM,V?DISCONNECT,EXPLOSIVE,DETONATOR
RTRUE
.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
CRLF
JUMP ?CND9
?CCL11: IN? EXPLOSIVE,THERMOS \?CND9
FSET? THERMOS,OPENBIT /?CND9
SET 'THERMOS-FILLED-WITH-GAS,TRUE-VALUE
?CND9: CALL REMOVE-CAREFULLY,EXPLOSIVE
RSTACK
?CCL8: CALL VISIBLE?,EXPLOSIVE
ZERO? STACK /FALSE
ZERO? LIT /FALSE
GRTR? MELT-COUNTER,170 \?CCL21
GRTR? OLD-MELT-COUNTER,170 /?CCL21
PRINTI " "
CALL DESCRIBE-EXPLOSIVE
RSTACK
?CCL21: GRTR? MELT-COUNTER,130 \FALSE
GRTR? OLD-MELT-COUNTER,130 /FALSE
PRINTI " "
CALL DESCRIBE-EXPLOSIVE
RSTACK
.FUNCT DESCRIBE-EXPLOSIVE
PRINTI " The explosive "
GRTR? MELT-COUNTER,170 \?CCL3
@ -793,57 +735,62 @@
A mixture of high-quality spores
Lowest gas-inducement levels of any brand!"""
?CCL8: EQUAL? PRSA,V?SPRAY \FALSE
ZERO? PRSI /?CCL13
PRINTR "The nozzle of the can isn't very directional; rather than spraying the can on something in particular, it seems to be more designed to simply produce a broad mist."
?CCL13: ZERO? SPRAY-COUNTER \?CCL15
CALL ULTIMATELY-IN?,SPRAY-CAN
ZERO? STACK \?CCL13
PRINT YNH
CALL TRPRINT,SPRAY-CAN
RTRUE
?CCL13: ZERO? PRSI /?CCL15
PRINTR "The nozzle of the can isn't very directional; rather than spraying something in particular, it seems designed to produce a broad mist."
?CCL15: ZERO? SPRAY-COUNTER \?CND11
PRINT NOTHING-HAPPENS
RTRUE
?CCL15: DEC 'SPRAY-COUNTER
?CND11: DEC 'SPRAY-COUNTER
PRINTI "A dusty mist puffs from the can and begins dissipating"
IN? BALLOON,HERE \?CCL18
IN? BALLOON,HERE \?CCL19
PRINTI ". The "
PRINTD BALLOON
PRINTI " begins darting around the room, its mouth absurdly wide open"
JUMP ?CND16
?CCL18: EQUAL? HERE,PET-STORE \?CCL20
IN? BALLOON,CAGE \?CCL20
JUMP ?CND17
?CCL19: EQUAL? HERE,PET-STORE \?CCL21
IN? BALLOON,CAGE \?CCL21
PRINTI ". The "
PRINTD BALLOON
PRINTI " puffs wildly around the cage, trying to get at the yummy spores"
JUMP ?CND16
?CCL20: CALL NEXT-ROOM?,BALLOON
ZERO? STACK /?CND16
EQUAL? HERE,BRIG,ARMORY /?CND16
JUMP ?CND17
?CCL21: CALL NEXT-ROOM?,BALLOON
ZERO? STACK /?CND17
EQUAL? HERE,BRIG,ARMORY /?CND17
PRINTI ". The "
PRINTD BALLOON
EQUAL? HERE,CHAPEL \?CCL28
FSET? ETERNAL-FLAME,ONBIT \?CCL28
EQUAL? HERE,CHAPEL \?CCL29
FSET? ETERNAL-FLAME,ONBIT \?CCL29
PRINTR " appears in the doorway, stops, and hastily puffs away."
?CCL28: PRINTI " farts in, hungrily gobbling up the spores"
ZERO? CROSSED-BOUNDARY \?CCL32
IN? BALLOON,ELEVATOR /?CCL32
EQUAL? HERE,ELEVATOR \?CND31
?CCL32: PRINTI ". As the "
?CCL29: PRINTI " farts in, hungrily gobbling up the spores"
ZERO? CROSSED-BOUNDARY \?CCL33
IN? BALLOON,ELEVATOR /?CCL33
EQUAL? HERE,ELEVATOR \?CND32
?CCL33: PRINTI ". As the "
PRINTD BALLOON
PRINTI " crosses the boundary "
ZERO? CROSSED-BOUNDARY /?CCL38
ZERO? CROSSED-BOUNDARY /?CCL39
PRINTI "between the Command Module and the village"
JUMP ?CND36
?CCL38: PRINTI "of the "
JUMP ?CND37
?CCL39: PRINTI "of the "
PRINTD ELEVATOR-SHAFT
?CND36: PRINTI ", it is caught unawares by the sudden "
EQUAL? CROSSED-BOUNDARY,1 /?CTR40
EQUAL? HERE,ELEVATOR \?CCL41
?CTR40: PRINTI "lack of gravity, but soon"
JUMP ?CND39
?CCL41: PRINTI "presence of gravity. It sinks almost to the floor before it"
?CND39: PRINTI " adjusts"
?CND31: MOVE BALLOON,HERE
?CND37: PRINTI ", it is caught unawares by the sudden "
EQUAL? CROSSED-BOUNDARY,1 /?CTR41
EQUAL? HERE,ELEVATOR \?CCL42
?CTR41: PRINTI "lack of gravity, but soon"
JUMP ?CND40
?CCL42: PRINTI "presence of gravity. It sinks almost to the floor before it"
?CND40: PRINTI " adjusts"
?CND32: MOVE BALLOON,HERE
MOVE LEASH,HERE
SET 'CROSSED-BOUNDARY,0
?CND16: ZERO? HANGING-IN-AIR /?CND44
?CND17: ZERO? HANGING-IN-AIR /?CND45
PRINTI ". Like an epileptic yo-yo, you are flung against the ceiling, floor, and most of the walls"
?CND44: PRINT PERIOD-CR
?CND45: PRINT PERIOD-CR
RTRUE
@ -946,7 +893,7 @@ Lowest gas-inducement levels of any brand!"""
EQUAL? PRSI,PSEUDO-OBJECT \?CCL3
GETP PRSO,P?SIZE
GRTR? STACK,5 \?CCL8
CALL DOESNT-FIT,STR?249
CALL DOESNT-FIT,STR?257
RSTACK
?CCL8: PRINTI "With a ""fwoomp!"""
CALL TPRINT-PRSO
@ -965,14 +912,14 @@ Lowest gas-inducement levels of any brand!"""
.FUNCT OSTRICH-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "It's a handsome, full-grown ostrich, nearly eight feet tall. As with all ostriches, half its height is its neck"
PRINTI "It's a handsome, full-grown ostrich, nearly three meters tall. As with all ostriches, half its height is its neck"
FSET? OSTRICH,TOUCHBIT /?CND4
PRINTI ". The ostrich looks to be asleep, or unconscious, or drunk"
?CND4: PRINT PERIOD-CR
RTRUE
?CCL3: EQUAL? PRSA,V?SHOOT \?CCL7
REMOVE OSTRICH
PRINTR "The ostrich gives the last of a generous lifetime's supply of squawks before being consumed in fiery raygun death."
PRINTR "The ostrich gives the last of a generous lifetime's supply of squawks before being consumed in fiery zapgun death."
?CCL7: FSET? OSTRICH,TOUCHBIT /?CCL9
EQUAL? PRSA,V?SCARE \?CCL12
PRINTR "The ostrich is unconscious!"
@ -1005,18 +952,21 @@ Lowest gas-inducement levels of any brand!"""
?CCL31: PRINTI "The ostrich emits a terrified squawk and sticks its head "
EQUAL? HERE,DOC-SCHUSTER \?CCL38
PRINTI "into the disposal hole"
ZERO? OSTRICH-FOOTNOTE \?CND36
SET 'OSTRICH-FOOTNOTE,TRUE-VALUE
PRINTI " (Footnote 14)"
JUMP ?CND36
?CCL38: EQUAL? HERE,PX \?CCL40
IN? DISPENSER,HERE \?CCL40
?CCL38: EQUAL? HERE,PX \?CCL42
IN? DISPENSER,HERE \?CCL42
PRINTI "into the dispenser hole."
CALL OSTRICH-INTO-DISPENSER
CRLF
RTRUE
?CCL40: IN? HEATING-CHAMBER,HERE \?CCL44
?CCL42: IN? HEATING-CHAMBER,HERE \?CCL46
PRINTI "into the "
PRINTD HEATING-CHAMBER
PRINTR ". After a quick singe, it jerks its head out, squawking in pain."
?CCL44: PRINTI "under its wing"
?CCL46: PRINTI "under its wing"
?CND36: PRINTR " for a moment."
@ -1033,12 +983,12 @@ Lowest gas-inducement levels of any brand!"""
RSTACK
?CCL3: EQUAL? PRSA,V?REACH-IN,V?LOOK-INSIDE \?CCL5
EQUAL? PRSO,PSEUDO-OBJECT \?CCL5
CALL PERFORM-PRSA,ID-CHANGER,PRSI
RSTACK
CALL PERFORM,PRSA,ID-CHANGER,PRSI
RTRUE
?CCL5: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
CALL PERFORM-PRSA,PRSO,ID-CHANGER
RSTACK
CALL PERFORM,PRSA,PRSO,ID-CHANGER
RTRUE
.FUNCT ID-CHANGER-F
@ -1054,7 +1004,8 @@ Lowest gas-inducement levels of any brand!"""
PRINT HUH
RTRUE
?CCL8: EQUAL? PRSA,V?TAKE \?CCL10
PRINTR "It's bolted down."
PRINT WONT-BUDGE
RTRUE
?CCL10: EQUAL? PRSA,V?PUT \?CCL12
EQUAL? PRSI,ID-CHANGER \?CCL12
EQUAL? PRSO,ID-CARD \?CCL17
@ -1062,7 +1013,12 @@ Lowest gas-inducement levels of any brand!"""
FSET? ID-CHANGER,ACTIVEBIT \?CCL20
PRINTI "A voice from the machine says, """
ZERO? ID-SCRAMBLED /?CCL23
PRINTR "Magnetic card data is scrambled; unable to read."""
PRINTI "Magnetic card data is scrambled; unable to read."""
ZERO? SCRAMBLED-FOOTNOTE \?CND24
SET 'SCRAMBLED-FOOTNOTE,TRUE-VALUE
PRINTR " (Footnote 15)"
?CND24: CRLF
RTRUE
?CCL23: PRINTI "Current rank is "
PRINTN ID-RANK
PRINTI ": "
@ -1071,7 +1027,7 @@ Lowest gas-inducement levels of any brand!"""
PRINT STACK
PRINTR ". Enter new rank on keypad."""
?CCL20: PRINTR "The card fits neatly into the opening."
?CCL17: CALL DOESNT-FIT,STR?378
?CCL17: CALL DOESNT-FIT,STR?389
RSTACK
?CCL12: EQUAL? PRSA,V?ON \FALSE
FSET? ID-CHANGER,ACTIVEBIT /FALSE
@ -1087,15 +1043,18 @@ Lowest gas-inducement levels of any brand!"""
IN? ID-CARD,ID-CHANGER \?CCL3
FSET? ID-CHANGER,ACTIVEBIT \?CCL3
ZERO? ID-SCRAMBLED /?CCL8
CALL RECORDING,STR?379
ZERO? SCRAMBLED-FOOTNOTE \?CND9
SET 'SCRAMBLED-FOOTNOTE,TRUE-VALUE
PRINTI "(Footnote 15) "
?CND9: CALL RECORDING,STR?390
RSTACK
?CCL8: GRTR? P-NUMBER,10 \?CCL10
?CCL8: GRTR? P-NUMBER,10 \?CCL12
PRINTI """Error!"" chirps the "
PRINTD ID-CHANGER
PRINTR ". ""The highest rank number recognized by the Stellar Patrol is 10."""
?CCL10: LESS? P-NUMBER,1 \?CCL12
?CCL12: LESS? P-NUMBER,1 \?CCL14
PRINTR "You may DESERVE a rank that low, but unfortunately it doesn't exist."
?CCL12: SET 'ID-RANK,P-NUMBER
?CCL14: SET 'ID-RANK,P-NUMBER
PRINTI """New rank is "
PRINTN ID-RANK
PRINTI ": "

View file

@ -41,12 +41,12 @@ the station's artificial gravity ">
<ROUTINE IRIS-HATCH-F ()
<COND (<VERB? OPEN CLOSE>
<TELL "It won't budge." CR>)
<TELL ,WONT-BUDGE>)
(<VERB? EXAMINE>
<TELL
"The hatch, like the f-stop of a camera, is composed of many pieces which
move to form a circular opening of the desired size. This is a common way
of joining connecting tubes to ships or stations. ">
"The hatch, like the f-stop of a camera, is composed of many pieces which move
to form a circular opening of the desired size. This is a common way of joining
connecting tubes to ships or stations. There's a slot next to the hatch. ">
<RFALSE>)>>
<ROOM MAKESHIFT-CONNECTOR
@ -58,7 +58,7 @@ from the Command Module.")
(WEST PER VILLAGE-BOUNDARY-F)
(EAST TO BROADWAY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL IRIS-HATCH)>
(GLOBAL IRIS-HATCH VILLAGE)>
<ROOM BROADWAY
(IN ROOMS)
@ -76,7 +76,8 @@ including one leading downward.")
(WEST TO MAKESHIFT-CONNECTOR)
(NW "Well, there are openings in ALMOST every direction.")
(DOWN TO FORTUNE-TELLER)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)>
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)>
<ROOM FORTUNE-TELLER
(IN ROOMS)
@ -84,10 +85,11 @@ including one leading downward.")
(LDESC
"This is a tiny living bubble beneath Broadway. The inhabitant, who is
nowhere in sight, seems to be in the profession of reading the future
for superstitious spacemen.")
for superstitious spacers.")
(UP TO BROADWAY)
(OUT TO BROADWAY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)>
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<OBJECT CRYSTAL-BALL
(IN FORTUNE-TELLER)
@ -117,6 +119,7 @@ the walls. A door leads south.")
(SOUTH TO BROADWAY)
(OUT TO BROADWAY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)
(THINGS <PSEUDO (<> POSTER RECRUITMENT-POSTER-F)>)>
<ROUTINE RECRUITMENT-POSTER-F ()
@ -147,7 +150,8 @@ materials. There is also an in-house rec area, featuring a group of simulation
booths. The \"street\" lies to the southwest.")
(SW TO BROADWAY)
(OUT TO BROADWAY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)>
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<OBJECT SIMULATION-BOOTH
(IN REC-SHOP)
@ -187,7 +191,7 @@ booths. The \"street\" lies to the southwest.")
"groof hunting on Septurion Seven"
"a little-known incident during the signing of the Treaty of Gishen IV"
"a torrid romance on the tropical planet of San Cupidor"
"searching for treasure in a magical underground kingdom"
"searching for treasure in a magical underground empire"
"bullfighting, skydiving, and dental hygiene">>
<ROOM FIELD-OFFICE
@ -200,7 +204,8 @@ hunk of space rock into the vicinity, and then come here to sell the rights
to it. You can leave to the west.")
(WEST TO BROADWAY)
(OUT TO BROADWAY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)>
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<OBJECT HEADLAMP
(IN FIELD-OFFICE)
@ -208,6 +213,7 @@ to it. You can leave to the west.")
(FDESC "Some miner has left a headlamp here.")
(SYNONYM LAMP LIGHT HEADLAMP)
(FLAGS TAKEBIT LIGHTBIT WEARBIT)
(SIZE 8)
(ACTION HEADLAMP-F)>
<ROUTINE HEADLAMP-F ()
@ -233,24 +239,7 @@ leaving both hands free for work. ">
<GLOBAL HEADLAMP-COUNTER 92>
<ROUTINE I-HEADLAMP ()
<COND (<FSET? ,HEADLAMP ,ONBIT>
<SETG HEADLAMP-COUNTER <- ,HEADLAMP-COUNTER 1>>
<COND (<EQUAL? ,HEADLAMP-COUNTER 0>
<FCLEAR ,HEADLAMP ,ACTIVEBIT>
<FCLEAR ,HEADLAMP ,ONBIT>)>
<COND (<AND <VISIBLE? ,HEADLAMP>
<EQUAL? ,HEADLAMP-COUNTER 0 15 30>>
<TELL " The light from the headlamp ">
<COND (<EQUAL? ,HEADLAMP-COUNTER 0>
<TELL "flickers and dies!" CR>
<NOW-DARK?>)
(<EQUAL? ,HEADLAMP-COUNTER 5>
<TELL "is almost out!" CR>)
(T
<TELL "seems somewhat dimmer." CR>)>)>)
(T
<DEQUEUE I-HEADLAMP>)>>
;"routine I-HEADLAMP moved to INTERRUPTS file"
<ROOM BARBERSHOP
(IN ROOMS)
@ -258,6 +247,7 @@ leaving both hands free for work. ">
(WEST TO GROCERY)
(NW TO BROADWAY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)
(ACTION BARBERSHOP-F)
(THINGS <PSEUDO (GLASS MIRROR MIRROR-F)>)>
@ -284,16 +274,19 @@ barber isn't here, though. Doors lead northwest and west.">)>>
<TELL "You look mah-velous." CR>)
(<VERB? LOOK-BEHIND LOOK-UNDER>
<TELL "The mirror seems to be affixed to the wall." CR>)
(<OR <VERB? MUNG>
<AND <VERB? THROW>
<PRSI? ,PSEUDO-OBJECT>>>
(<VERB? MUNG KICK KILL>
<SETG MIRROR-BROKEN T>
<MOVE ,FOIL ,HERE>
<TELL
"The mirror smashes into a cloud of glass dust, which (fortunately) is
quickly sucked away by the barbershop's ventilation system. As the glass
is sucked away you discover what gave the mirror its reflectivity: "
<GETP ,FOIL ,P?FDESC> CR>)>>
<GETP ,FOIL ,P?FDESC> CR>)
(<AND <VERB? THROW>
<PRSI? ,PSEUDO-OBJECT>>
<MOVE ,PRSO ,HERE>
<PERFORM ,V?KICK ,PSEUDO-OBJECT>
<RTRUE>)>>
<OBJECT FOIL
(DESC "reflective foil")
@ -304,7 +297,7 @@ is sucked away you discover what gave the mirror its reflectivity: "
(FLAGS TAKEBIT NARTICLEBIT)
(PLATO-ASK-ABOUT
"Trans-molecular platinum foil! I am told that it is the most perfectly
reflective material known to man, and not just on the visual wavelengths!")
reflective material known, and not just on the visual wavelengths!")
(FLOYD-ASK-ABOUT
"Floyd loves anything reflective! Give Floyd a mirror and he'll be happy
for days!")
@ -314,7 +307,7 @@ for days!")
<ROUTINE FOIL-F ()
<COND (<VERB? MEASURE EXAMINE>
<TELL
"It's a large piece of " 'FOIL ", about six feet on a side." CR>)
"It's a large piece of " 'FOIL ", about two meters on a side." CR>)
(<VERB? CRUMPLE>
<TELL
"You crumple the foil into a fist-sized wad, but it instantly returns to
@ -339,7 +332,8 @@ Exits lead north, east, southeast and south.")
(EAST TO BARBERSHOP)
(SE TO SALOON)
(SOUTH TO TRADING-POST)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)>
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)>
<OBJECT PLASTIC-BAG
(IN GROCERY)
@ -349,6 +343,7 @@ Exits lead north, east, southeast and south.")
(SYNONYM BAG)
(ADJECTIVE SMALL TRANSL PLASTIC)
(CAPACITY 10)
(SIZE 4)
(FLAGS TAKEBIT CONTBIT SEARCHBIT)>
<OBJECT TAFFY
@ -378,7 +373,7 @@ large sign advertises this month's special.")
(NE TO BROADWAY)
(SE TO TRADING-POST)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL SIGN)>
(GLOBAL VILLAGE SIGN)>
<OBJECT CAGE
(IN PET-STORE)
@ -449,6 +444,10 @@ of its digestive gas." CR>)>)
(<VERB? TAKE CATCH>
<PERFORM ,V?TAKE ,LEASH>
<RTRUE>)
(<VERB? SMELL>
<TELL
"There's an odor reminiscent of your school dorm on a night when the dining
hall served Northern Gallium Bonzo Beans." CR>)
(<VERB? TOUCH HUG>
<TELL
"The " D ,BALLOON " purrs and rings of color shimmer along its body." CR>)>>
@ -467,9 +466,7 @@ of its digestive gas." CR>)>)
<ROUTINE LEASH-F ()
<COND (<AND <VERB? TAKE MOVE>
<PRSO? ,LEASH>>
<COND (<IN? ,BALLOON ,CAGE>
<TELL ,YOU-CANT "reach the leash inside the cage." CR>)
(,HANGING-IN-AIR
<COND (,HANGING-IN-AIR
<TELL ,SENILITY-STRIKES>)
(<FSET? ,SPACESUIT ,WORNBIT>
<TELL
@ -498,12 +495,13 @@ hyperinflating. Slowly, its buoyancy lifts you right ">
<TELL "off the deck">)>
<TELL
"! Within moments, the Arcturian is bobbing against the ceiling, and you're
hanging five feet off the floor! (Footnote 4)" CR>
hanging two meters off the floor! (Footnote 4)" CR>
<COND (<AND <IN? ,FLOYD ,HERE>
<FSET? ,FLOYD ,ACTIVEBIT>
<NOT ,HANGING-COMMENT>>
<SETG FLOYD-SPOKE T>
<FLOYDS-HANGING-IN-AIR-COMMENT>)>
<SETG HANGING-COMMENT T>
<TELL ,FLOYDS-HANGING-IN-AIR-COMMENT>)>
<RTRUE>)>)
(<VERB? REMOVE UNTIE>
<TELL
@ -523,13 +521,8 @@ hanging five feet off the floor! (Footnote 4)" CR>
back at around eye-level.">)>
<CRLF>)>>
<ROUTINE FLOYDS-HANGING-IN-AIR-COMMENT ()
<SETG HANGING-COMMENT T>
<TELL
" \"Boy, that looks like fun!\" says Floyd, peering up at you.
\"Can Floyd try it? Huh? Please?\"" CR>>
<OBJECT PANEL
(IN LOCAL-GLOBALS)
(DESC "ceiling panel")
(FDESC ;"so it'll get printed before other DESCs"
"You can see the faint outline of a panel in the ceiling.")
@ -551,6 +544,7 @@ back at around eye-level.">)>
(ADJECTIVE OSTRICH)
(FLAGS TAKEBIT)
(VALUE 3)
(SIZE 4)
(ACTION OSTRICH-NIP-F)>
<ROUTINE OSTRICH-NIP-F ()
@ -576,7 +570,7 @@ there's an opening in the floor.")
(NW TO PET-STORE)
(DOWN TO WAREHOUSE)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL SIGN)>
(GLOBAL VILLAGE SIGN)>
<OBJECT INSTRUCTION-SHEET
(IN TRADING-POST)
@ -584,7 +578,7 @@ there's an opening in the floor.")
(SYNONYM SHEET)
(ADJECTIVE INSTRUCTION)
(FLAGS TAKEBIT READBIT VOWELBIT)
(SIZE 2)
(SIZE 1)
(TEXT
"\"FREZONE (tm) Liquid Gorzium Explosive|
Instructions for use:|
@ -593,13 +587,13 @@ Instructions for use:|
3. Set timer.|
4. Vamoose.|
NOTE: Do not expose explosive to temperatures above
150 degrees Kelvin for period of more than 100 millichrons.\"")>
150 degrees Kelvin for periods of more than 100 millichrons.\"")>
<OBJECT TWELVE-PRONG-FROMITZ-BOARD
(IN TRADING-POST)
(DESC "twelve-prong fromitz board")
(SYNONYM BOARD BOARDS PRONGS)
(ADJECTIVE TWELVE PRONG 12-PRONG FROMITZ NUMBER)
(ADJECTIVE TWELVE PRONG PRONGED 12-PRONG FROMITZ NUMBER)
(FLAGS TAKEBIT)
(PLATO-ASK-ABOUT
"I'm really not at all mechanically inclined. My sincerest apologies.")
@ -629,6 +623,7 @@ completion. The way out is to the east.")
(EAST TO TRADING-POST)
(OUT TO TRADING-POST)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)
(ACTION STUDIO-F)>
<ROUTINE STUDIO-F (RARG)
@ -652,7 +647,6 @@ a 91st-century-style scrap sculpture" ,ELLIPSIS>)>>
"I'm really not at all mechanically inclined. My sincerest apologies.")
(FLOYD-ASK-ABOUT
"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis.")
(SIZE 5)
(FLAGS TAKEBIT)
(ACTION DIODE-J-F)>
@ -691,7 +685,8 @@ to the east is a partially disguised exit.")
(EAST TO CASINO)
(WEST TO TRADING-POST)
(NW TO GROCERY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)>
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)>
<ROOM CASINO
(IN ROOMS)
@ -700,6 +695,7 @@ to the east is a partially disguised exit.")
(WEST TO SALOON)
(UP TO FLOPHOUSE IF ROULETTE-TURNED)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)
(ACTION CASINO-F)>
<GLOBAL ROULETTE-TURNED <>>
@ -750,14 +746,17 @@ and to the north!" CR>)>)
(DESC "pair of dice")
(SYNONYM PAIR DICE)
(FLAGS TAKEBIT PLURALBIT)
(SIZE 2)
(SIZE 3)
(ACTION DICE-F)>
<GLOBAL DICE-FOOTNOTE <>>
<ROUTINE DICE-F ("AUX" NUM)
<COND (<VERB? ROLL THROW>
<COND (<FSET? ,HERE ,WEIGHTLESSBIT>
<COND (<NOT <ULTIMATELY-IN? ,DICE>>
<TELL ,YNH TR ,DICE>
<RTRUE>)
(<FSET? ,HERE ,WEIGHTLESSBIT>
<COND (<PROB 50>
<SET NUM 7>)
(T
@ -785,7 +784,7 @@ and to the north!" CR>)>)
There's a sign on the wall and a door to the south.")
(SOUTH TO CASINO)
(OUT TO CASINO)
(GLOBAL SIGN)
(GLOBAL VILLAGE SIGN)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)>
<ROOM FLOPHOUSE
@ -794,7 +793,7 @@ There's a sign on the wall and a door to the south.")
(DOWN TO CASINO)
(OUT TO CASINO)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL BED)
(GLOBAL VILLAGE BED)
(ACTION FLOPHOUSE-F)>
<ROUTINE FLOPHOUSE-F (RARG)
@ -843,7 +842,7 @@ well-scrubbed metal of the space station.")
(NORTH PER VILLAGE-BOUNDARY-F)
(SOUTH TO MAIN-STREET)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL IRIS-HATCH)>
(GLOBAL VILLAGE IRIS-HATCH)>
<ROOM MAIN-STREET
(IN ROOMS)
@ -861,7 +860,8 @@ the \"street\" narrows and ramps downward.")
(WEST TO TRAVEL-AGENCY)
(UP TO MAYORS-OFFICE)
(DOWN TO ALLEY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)>
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)>
<ROOM GREASY-STRAW
(IN ROOMS)
@ -869,7 +869,7 @@ the \"street\" narrows and ramps downward.")
(NE TO TRADING-POST)
(SW TO MAIN-STREET)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL SIGN)
(GLOBAL SIGN VILLAGE)
(ACTION GREASY-STRAW-F)>
<ROUTINE GREASY-STRAW-F (RARG)
@ -892,7 +892,7 @@ Exits lead northeast and southwest.">)>>
<ROUTINE COUNTER-F ()
<COND (<AND <VERB? LOOK-UNDER LOOK-BEHIND SEARCH EXAMINE HIDE>
<IN? ,NECTAR ,LOCAL-GLOBALS>>
<NOT <FSET? ,NECTAR ,TOUCHBIT>>>
<PERFORM ,V?SEARCH ,GLOBAL-ROOM>
<RTRUE>)
(<VERB? LOOK-OVER>
@ -904,19 +904,23 @@ Exits lead northeast and southwest.">)>>
(SYNONYM CUP NECTAR FOOD)
(ADJECTIVE RAMOSIAN FIRE)
(FLAGS TAKEBIT)
(FOOD-DESC " fire nectar - thick and warming")
(FOOD-DESC " fire nectar -- thick and warming")
(GENERIC GENERIC-FOOD-F)
(ACTION NECTAR-F)>
<ROUTINE NECTAR-F ()
<COND (<AND <VERB? THROW POUR EMPTY>
<PRSO? ,NECTAR>>
<TELL
"You create a nectarish mess, which thankfully dries up very quickly">
<MESS "nectar">
<ANTI-LITTER ,NECTAR>)
(<AND <VERB? LOOK-INSIDE>
<NOUN-USED ,W?CUP ,NECTAR>>
<TELL "The cup is filled with nectar." CR>)
<TELL "Yup. Nectar." CR>)
(<VERB? REACH-IN TOUCH EXAMINE TASTE>
<TELL "The nectar is warm and thick." CR>)
(<VERB? EAT-FROM>
<PERFORM ,V?EAT ,NECTAR>
<RTRUE>)
(<AND <VERB? FIND>
<IN? ,NECTAR ,LOCAL-GLOBALS>
<EQUAL? ,HERE ,GREASY-STRAW>>
@ -937,7 +941,8 @@ Exits lead northeast and southwest.">)>>
Mayor, the unofficial leader of the village. Main Street is below.")
(DOWN TO MAIN-STREET)
(OUT TO MAIN-STREET)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)>
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<OBJECT BOOK
(IN MAYORS-OFFICE)
@ -947,6 +952,7 @@ Mayor, the unofficial leader of the village. Main Street is below.")
(SYNONYM TEXTBOOK BOOK)
(ADJECTIVE TEXT)
(FLAGS TAKEBIT READBIT)
(SIZE 8)
(ACTION BOOK-F)>
<ROUTINE BOOK-F ()
@ -971,9 +977,33 @@ of the subject." CR>)>)
(DESC "piece of paper")
(SYNONYM PAPER PIECE)
(FLAGS TAKEBIT READBIT)
(SIZE 2)
(SIZE 1)
(TEXT
"\"(bitter/salty/bitter) softness/weakness|
"\"bttr/salty/bttr softness/weakness|
sweet/v.sour Hunji (noun form)|
blnd/salty/sour Zeenak (adj form)|
blnd/bttr air/atmosphere|
sour/blnd/blnd/sour died/failed|
sweet/v.sweet legal destruction|
(sabotage?)|
v.salty however|
sour/blnd/sour/sweet turn back|
blnd (def. article?)|
v.sweet/blnd/sour I have shined|
light upon|
slightly-sour solitary|
v.sweet/v.salty element/substance|
sweet/slightly-bttr brethren (adj)|
blnd/sour/v.sour is souring|
v.salty/salty/sour bad/evil/deadly|
radiations|
spicy-hot/blnd/blnd 78 (?) 7/8 (?)|
bttr/sour/v.sour weapon (possesv.)|
v.sweet (emphasis mark?)\""
;"old TEXT below didn't work on 40-column computers"
;"\"(bitter/salty/bitter) softness/weakness|
(sweet/very-sour) Hunji (noun form)|
(bland/salty/sour) Zeenak (adj form)|
(bland/bitter) air/atmosphere|
@ -1000,7 +1030,8 @@ of the subject." CR>)>)
doors to the north and northwest.")
(NORTH TO MAIN-STREET)
(NW TO TRAVEL-AGENCY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)>
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)>
<OBJECT PLATINUM-DETECTOR
(IN BANK)
@ -1008,6 +1039,7 @@ doors to the north and northwest.")
(SYNONYM DETECTOR)
(ADJECTIVE PLATINUM)
(FLAGS TAKEBIT LIGHTBIT)
(SIZE 15)
(ACTION PLATINUM-DETECTOR-F)>
<ROUTINE PLATINUM-DETECTOR-F ()
@ -1022,7 +1054,9 @@ doors to the north and northwest.")
<G? ,DETECTOR-COUNTER 49>>
<COND (<G? ,DETECTOR-COUNTER 99>
<TELL "Ouch! The detector is too hot to pick up!" CR>)
(<NOT <EQUAL? <ITAKE> ,M-FATAL <>>>
(<EQUAL? <ITAKE> ,M-FATAL <>>
<RTRUE>)
(T
<TELL
"As you pick up the detector, you notice that is feels ">
<COND (<G? ,DETECTOR-COUNTER 75>
@ -1047,25 +1081,7 @@ doors to the north and northwest.")
<GLOBAL DETECTOR-COUNTER 0>
<ROUTINE I-PLATINUM-DETECTOR ()
<SETG DETECTOR-COUNTER <+ ,DETECTOR-COUNTER 1>>
<COND (<AND <VISIBLE? ,PLATINUM-DETECTOR>
<OR <EQUAL? <META-LOC ,FOIL>
<META-LOC ,PLATINUM-DETECTOR>>
<AND <ULTIMATELY-IN? ,PLATINUM-DETECTOR ,BARBERSHOP>
<NOT ,MIRROR-BROKEN>>>>
<TELL " The detector is quietly beeping." CR>)>
<COND (<AND <EQUAL? ,DETECTOR-COUNTER 50 75>
<IN? ,PLATINUM-DETECTOR ,PROTAGONIST>>
<TELL " You notice that the detector is getting ">
<COND (<EQUAL? ,DETECTOR-COUNTER 75>
<TELL "very ">)>
<TELL "warm." CR>)
(<AND <EQUAL? ,DETECTOR-COUNTER 100>
<IN? ,PLATINUM-DETECTOR ,PROTAGONIST>>
<MOVE ,PLATINUM-DETECTOR ,HERE>
<TELL
" Yeow! The detector is now too hot to handle, so you drop it." CR>)>>
;"routine I-PLATINUM-DETECTOR moved to INTERRUPTS file"
<ROOM TRAVEL-AGENCY
(IN ROOMS)
@ -1077,6 +1093,7 @@ rundown spacetown would be able to afford an interstellar pleasure jaunt.")
(EAST TO MAIN-STREET)
(SE TO BANK)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)
(THINGS <PSEUDO (<> POSTER TRAVEL-AGENCY-POSTER-F)>)>
<ROUTINE TRAVEL-AGENCY-POSTER-F ()
@ -1114,7 +1131,7 @@ and the alley slopes upward to the northwest.")
(NW TO MAIN-STREET)
(UP TO MAIN-STREET)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL GARBAGE)>
(GLOBAL GARBAGE VILLAGE)>
<ROOM MISSIONARY
(IN ROOMS)
@ -1127,7 +1144,8 @@ are enough kooks in the galaxy to keep the belief going. You can exit to the
south.")
(SOUTH TO ALLEY)
(OUT TO ALLEY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)>
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<ROOM WAREHOUSE
(IN ROOMS)
@ -1136,7 +1154,7 @@ south.")
(SW TO ALLEY)
(DOWN TO AIRLOCK IF INNER-AIRLOCK-DOOR IS OPEN)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL SIGN INNER-AIRLOCK-DOOR AIRLOCK-OBJECT)
(GLOBAL SIGN VILLAGE INNER-AIRLOCK-DOOR AIRLOCK-OBJECT)
(ACTION WAREHOUSE-F)>
<ROUTINE WAREHOUSE-F (RARG)
@ -1150,7 +1168,7 @@ in the ceiling and the southwest wall.">)>>
<OBJECT INNER-AIRLOCK-DOOR
(IN LOCAL-GLOBALS)
(DESC "inner airlock door")
(DESC "inner door")
(SYNONYM DOOR HATCH)
(ADJECTIVE INNER UPPER AIRLOCK)
(FLAGS DOORBIT VOWELBIT)
@ -1161,11 +1179,11 @@ in the ceiling and the southwest wall.">)>>
<COND (<AND <VERB? OPEN>
<NOT <FSET? ,INNER-AIRLOCK-DOOR ,OPENBIT>>
<FSET? ,OUTER-AIRLOCK-DOOR ,OPENBIT>>
<TELL "It won't budge." CR>)>>
<TELL ,WONT-BUDGE>)>>
<OBJECT OUTER-AIRLOCK-DOOR
(IN LOCAL-GLOBALS)
(DESC "outer airlock door")
(DESC "outer door")
(SYNONYM DOOR HATCH)
(ADJECTIVE OUTER LOWER AIRLOCK)
(FLAGS DOORBIT VOWELBIT)
@ -1176,7 +1194,7 @@ in the ceiling and the southwest wall.">)>>
<COND (<AND <VERB? OPEN>
<NOT <FSET? ,OUTER-AIRLOCK-DOOR ,OPENBIT>>>
<COND (<FSET? ,INNER-AIRLOCK-DOOR ,OPENBIT>
<TELL "It won't budge." CR>)
<TELL ,WONT-BUDGE>)
(T
<TELL
"As the door opens, the air in the lock whooshes out into the vacuum of space">
@ -1188,12 +1206,8 @@ in the ceiling and the southwest wall.">)>>
<LOST-IN-SPACE>)
(T
<FSET ,OUTER-AIRLOCK-DOOR ,OPENBIT>
;<COND (<AND <ULTIMATELY-IN? ,BOTTLE>
<NOT ,CARBON-DIOXIDE-GONE>>
<DEQUEUE I-MELT-CARBON-DIOXIDE>
<COND (<IN? ,EXPLOSIVE ,BOTTLE>
<DEQUEUE I-EXPLOSIVE-MELT>)>
<QUEUE I-FREEZE-CARBON-DIOXIDE -1>)>
<COND (<EQUAL? <META-LOC ,EXPLOSIVE> ,HERE>
<DEQUEUE I-EXPLOSIVE-MELT>)>
<SET X <FIRST? ,AIRLOCK>>
<REPEAT ()
<COND (<NOT .X>
@ -1265,13 +1279,13 @@ explodes into a puff of hydrogen that immediately vanishes!" CR>)>
(DOWN TO VACUUM-STORAGE IF OUTER-AIRLOCK-DOOR IS OPEN)
(OUT TO VACUUM-STORAGE IF OUTER-AIRLOCK-DOOR IS OPEN)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL INNER-AIRLOCK-DOOR OUTER-AIRLOCK-DOOR AIRLOCK-OBJECT)
(GLOBAL VILLAGE INNER-AIRLOCK-DOOR OUTER-AIRLOCK-DOOR AIRLOCK-OBJECT)
(ACTION AIRLOCK-F)>
<ROUTINE AIRLOCK-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is a cramped lock with doors above and below you. ">
"This is a cramped airlock with doors above and below you. ">
<COND (<AND <NOT <FSET? ,INNER-AIRLOCK-DOOR ,OPENBIT>>
<NOT <FSET? ,OUTER-AIRLOCK-DOOR ,OPENBIT>>>
<TELL "Neither door">)
@ -1310,10 +1324,11 @@ explodes into a puff of hydrogen that immediately vanishes!" CR>)>
<COND (<EQUAL? ,HERE ,AIRLOCK>
<TELL "There are two doors." CR>)
(T
<PERFORM-PRSA <COND (<EQUAL? ,HERE ,WAREHOUSE>
,INNER-AIRLOCK-DOOR)
(<EQUAL? ,HERE ,VACUUM-STORAGE>
,OUTER-AIRLOCK-DOOR)>>)>)>>
<PERFORM ,PRSA <COND (<EQUAL? ,HERE ,WAREHOUSE>
,INNER-AIRLOCK-DOOR)
(<EQUAL? ,HERE ,VACUUM-STORAGE>
,OUTER-AIRLOCK-DOOR)>>
<RTRUE>)>)>>
<ROUTINE LOST-IN-SPACE ()
<JIGS-UP "||
@ -1327,7 +1342,7 @@ dwindling to a dot of light behind you. Eventually, your air runs out.">>
(UP TO AIRLOCK IF OUTER-AIRLOCK-DOOR IS OPEN)
(IN TO AIRLOCK IF OUTER-AIRLOCK-DOOR IS OPEN)
(FLAGS RLANDBIT WEIGHTLESSBIT NWELDERBIT)
(GLOBAL OUTER-AIRLOCK-DOOR AIRLOCK-OBJECT)
(GLOBAL VILLAGE OUTER-AIRLOCK-DOOR AIRLOCK-OBJECT)
(VALUE 3)
(ACTION VACUUM-STORAGE-F)>
@ -1338,7 +1353,7 @@ dwindling to a dot of light behind you. Eventually, your air runs out.">>
same way that your dad kept beer cold in the back yard during winters on
Gallium. In fact, the villagers usually refer to this place as the \"vac
yard.\" Only the " 'BOOTS ", clinging to the outer skin of the warehouse,
are preventing you from floating off into space. Tethered all around you:
is preventing you from floating off into space. Tethered all around you:
those items in the Trading Post's inventory that, for reasons of temperature
or anti-corrosion, must be stored here in space. The door to the airlock,
\"above\" you, is ">
@ -1354,6 +1369,7 @@ with an even tinier label.")
(SYNONYM EXPLOSIVE CYLIND LABEL)
(ADJECTIVE EXPLOSIVE FREZONE SMALL)
(FLAGS TAKEBIT VOWELBIT READBIT)
(SIZE 3)
(TEXT
"\"FREZONE (tm) Liquid Gorzium Explosive. For use only by licensed
demolitionist. Instruction sheet available from vendor; read
@ -1386,6 +1402,12 @@ It has a tiny label.">
(T
<QUEUE I-EXPLOSIVE-MELT 100>
<RFALSE>)>)
(<AND <VERB? PUT>
<PRSI? ,HEATING-CHAMBER>>
<TELL "The explosive " ,SUBLIMES-INTO-FREZONE>
<DEQUEUE I-EXPLOSIVE-MELT>
<REMOVE-CAREFULLY ,EXPLOSIVE>
<CRLF>)
(<AND <VERB? DISCONNECT>
<NOT ,PRSI>
,EXPLOSIVE-CONNECTED>
@ -1398,31 +1420,7 @@ It has a tiny label.">
<GLOBAL MELT-COUNTER 0>
<ROUTINE I-EXPLOSIVE-MELT ("AUX" OLD-MELT-COUNTER)
<SET OLD-MELT-COUNTER ,MELT-COUNTER>
<SETG MELT-COUNTER <+ ,MELT-COUNTER
<COND (<AND <IN? ,EXPLOSIVE ,THERMOS>
<NOT <FSET? ,THERMOS ,OPENBIT>>>
</ ,C-ELAPSED 4>)
(T
,C-ELAPSED)>>>
<COND (<G? ,MELT-COUNTER 210>
<COND (<VISIBLE? ,EXPLOSIVE>
<TELL " The explosive " ,SUBLIMES-INTO-FREZONE CR>)
(<AND <IN? ,EXPLOSIVE ,THERMOS>
<NOT <FSET? ,THERMOS ,OPENBIT>>>
<SETG THERMOS-FILLED-WITH-GAS T>)>
<REMOVE-CAREFULLY ,EXPLOSIVE>)
(<AND <VISIBLE? ,EXPLOSIVE>
,LIT>
<COND (<AND <G? ,MELT-COUNTER 170>
<NOT <G? .OLD-MELT-COUNTER 170>>>
<TELL " ">
<DESCRIBE-EXPLOSIVE>)
(<AND <G? ,MELT-COUNTER 130>
<NOT <G? .OLD-MELT-COUNTER 130>>>
<TELL " ">
<DESCRIBE-EXPLOSIVE>)>)>>
;"routine I-EXPLOSIVE-MELT moved to INTERRUPTS file"
<ROUTINE DESCRIBE-EXPLOSIVE ()
<TELL " The explosive ">
@ -1441,7 +1439,8 @@ indicate that a villager down on his or her luck could come here to hock
some valuable possession.")
(NE TO ALLEY)
(OUT TO ALLEY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)>
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<OBJECT SPRAY-CAN
(IN PAWN-SHOP)
@ -1453,6 +1452,7 @@ spray can. It's sitting here in the shop, and has some lettering on it.")
(ADJECTIVE SPRAY)
(FLAGS TAKEBIT READBIT)
(GENERIC GENERIC-CAN-F)
(SIZE 8)
(ACTION SPRAY-CAN-F)>
<ROUTINE SPRAY-CAN-F ()
@ -1468,17 +1468,18 @@ spray can. It's sitting here in the shop, and has some lettering on it.")
A mixture of high-quality spores|
Lowest gas-inducement levels of any brand!\"" CR>)
(<VERB? SPRAY>
<COND (,PRSI
<COND (<NOT <ULTIMATELY-IN? ,SPRAY-CAN>>
<TELL ,YNH TR ,SPRAY-CAN>
<RTRUE>)
(,PRSI
<TELL
"The nozzle of the can isn't very directional; rather than spraying the
can on something in particular, it seems to be more designed to simply
produce a broad mist." CR>
"The nozzle of the can isn't very directional; rather than spraying something
in particular, it seems designed to produce a broad mist." CR>
<RTRUE>)
(<EQUAL? ,SPRAY-COUNTER 0>
<TELL ,NOTHING-HAPPENS>
<RTRUE>)
(T
<SETG SPRAY-COUNTER <- ,SPRAY-COUNTER 1>>)>
<RTRUE>)>
<SETG SPRAY-COUNTER <- ,SPRAY-COUNTER 1>>
<TELL "A dusty mist puffs from the can and begins dissipating">
<COND (<IN? ,BALLOON ,HERE>
<TELL
@ -1586,7 +1587,8 @@ and most of the walls">)>
the south side of the alley.")
(NORTH TO ALLEY)
(OUT TO ALLEY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)>
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<OBJECT STRONG-BOX
(IN LOAN-SHARK)
@ -1628,6 +1630,7 @@ smaller than an average asteroid." CR>)
(SYNONYM COIN GALAKMID)
(FLAGS TAKEBIT READBIT)
(VALUE 5)
(SIZE 2)
(TEXT
"\"ONE GALAKMID|
Third Galactic Union\"")>
@ -1643,6 +1646,7 @@ for a disposal chute. The Doc is out, and in this case, out is northwest.")
(NW TO ALLEY)
(OUT TO ALLEY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)
(ACTION DOC-SCHUSTER-F)
(THINGS <PSEUDO (SMALL HOLE DOC-HOLE-F)>)>
@ -1678,18 +1682,21 @@ unusual, for a disposal hole." CR>)
<GLOBAL SNIFFED <>>
<GLOBAL OSTRICH-FOOTNOTE <>>
<OBJECT OSTRICH
(IN DOC-SCHUSTER)
(DESC "ostrich")
(FDESC "There is a large pile of intoxicated ostrich here.")
(SYNONYM OSTRICH PET BIRD)
(SYNONYM OSTRICH PET BIRD PILE)
(ADJECTIVE LARGE INTOXICATED)
(FLAGS VOWELBIT TOUCHBIT)
(ACTION OSTRICH-F)>
<ROUTINE OSTRICH-F ()
<COND (<VERB? EXAMINE>
<TELL
"It's a handsome, full-grown ostrich, nearly eight feet tall.
"It's a handsome, full-grown ostrich, nearly three meters tall.
As with all ostriches, half its height is its neck">
<COND (<NOT <FSET? ,OSTRICH ,TOUCHBIT>>
<TELL
@ -1699,7 +1706,7 @@ As with all ostriches, half its height is its neck">
<REMOVE ,OSTRICH>
<TELL
"The ostrich gives the last of a generous lifetime's supply of squawks
before being consumed in fiery raygun death." CR>)
before being consumed in fiery zapgun death." CR>)
(<NOT <FSET? ,OSTRICH ,TOUCHBIT>>
<COND (<VERB? SCARE>
<TELL "The ostrich is unconscious!" CR>)
@ -1738,7 +1745,10 @@ of intoxicated ostrich." CR>)
<TELL
"The ostrich emits a terrified squawk and sticks its head ">
<COND (<EQUAL? ,HERE ,DOC-SCHUSTER>
<TELL "into the disposal hole">)
<TELL "into the disposal hole">
<COND (<NOT ,OSTRICH-FOOTNOTE>
<SETG OSTRICH-FOOTNOTE T>
<TELL " (Footnote 14)">)>)
(<AND <EQUAL? ,HERE ,PX>
<IN? ,DISPENSER ,HERE>>
<TELL "into the dispenser hole.">
@ -1759,7 +1769,7 @@ out, squawking in pain." CR>
(DESC "letter")
(SYNONYM LETTER)
(FLAGS READBIT TAKEBIT)
(SIZE 2)
(SIZE 1)
(TEXT
"\"Doc -- that ostrich nip you've been waiting for finally came in. Drop
by and pick it up. If I'm not in, you'll find it in my ceiling panel.\"")>
@ -1770,7 +1780,7 @@ by and pick it up. If I'm not in, you'll find it in my ceiling panel.\"")>
(NW TO TRADING-POST)
(DOWN TO JUNK-YARD)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL KEYPAD WINDOW)
(GLOBAL VILLAGE KEYPAD WINDOW)
(ACTION SHADY-DANS-F)
(THINGS <PSEUDO (<> SLOT ID-CHANGER-SLOT-F)>)>
@ -1786,10 +1796,12 @@ and downward. " ,DANS-LOT-DESC>)>>
<CANT-SEE ,PSEUDO-OBJECT>)
(<AND <VERB? LOOK-INSIDE REACH-IN>
<PRSO? ,PSEUDO-OBJECT>>
<PERFORM-PRSA ,ID-CHANGER ,PRSI>)
<PERFORM ,PRSA ,ID-CHANGER ,PRSI>
<RTRUE>)
(<AND <VERB? PUT>
<PRSI? ,PSEUDO-OBJECT>>
<PERFORM-PRSA ,PRSO ,ID-CHANGER>)>>
<PERFORM, PRSA ,PRSO ,ID-CHANGER>
<RTRUE>)>>
<OBJECT ID-CHANGER
(IN SHADY-DANS)
@ -1815,7 +1827,7 @@ notable features: a keypad and a very small slot. The machine is currently o">
(<VERB? OPEN CLOSE>
<TELL ,HUH>)
(<VERB? TAKE>
<TELL "It's bolted down." CR>)
<TELL ,WONT-BUDGE>)
(<AND <VERB? PUT>
<PRSI? ,ID-CHANGER>>
<COND (<PRSO? ,ID-CARD>
@ -1824,7 +1836,11 @@ notable features: a keypad and a very small slot. The machine is currently o">
<TELL "A voice from the machine says, \"">
<COND (,ID-SCRAMBLED
<TELL
"Magnetic card data is scrambled; unable to read.\"" CR>)
"Magnetic card data is scrambled; unable to read.\"">
<COND (<NOT ,SCRAMBLED-FOOTNOTE>
<SETG SCRAMBLED-FOOTNOTE T>
<TELL " (Footnote 15)">)>
<CRLF>)
(T
<TELL
"Current rank is " N ,ID-RANK ": " <GET ,ID-RANK-LIST <- ,ID-RANK 1>>
@ -1847,6 +1863,9 @@ notable features: a keypad and a very small slot. The machine is currently o">
<COND (<AND <IN? ,ID-CARD ,ID-CHANGER>
<FSET? ,ID-CHANGER ,ACTIVEBIT>>
<COND (,ID-SCRAMBLED
<COND (<NOT ,SCRAMBLED-FOOTNOTE>
<SETG SCRAMBLED-FOOTNOTE T>
<TELL "(Footnote 15) ">)>
<RECORDING "A scrambled card cannot be altered">)
(<G? ,P-NUMBER 10>
<TELL
@ -1865,16 +1884,16 @@ recognized by the Stellar Patrol is 10.\"" CR>)
<GLOBAL ID-RANK-LIST
<TABLE
"Ensign, Sixth Class or lower"
"Ensign, Fifth through Second Class"
"Ensign, lower classes"
"Ensign First Class"
"Midshipman"
"Upshipman"
"Lieutenant Last Class"
"Lieutenant Second Class"
"Lieutenant First Class"
"Lieutenant Commander"
"Commander or Captain"
"Admiral"
"Fleet Admiral">>
"HyperAdmiral"
"Grand Fleet HyperAdmiral">>
<ROOM JUNK-YARD
(IN ROOMS)
@ -1885,7 +1904,7 @@ fills the center of the bubble. Passages lead upwards and west.")
(UP TO SHADY-DANS)
(WEST TO ALLEY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL GARBAGE)
(GLOBAL GARBAGE VILLAGE)
(ACTION JUNK-YARD-F)>
<ROUTINE JUNK-YARD-F (RARG)
@ -1906,6 +1925,7 @@ sculpture in the style of 91st-century scrap art. The sculpture is floating"
looks to be in the best shape.")
(SYNONYM PAIR BOOTS SPACEBOOTS)
(ADJECTIVE MAGNETIC)
(SIZE 20)
(FLAGS PLURALBIT TRYTAKEBIT TAKEBIT WEARBIT)
(ACTION BOOTS-F)>
@ -1945,8 +1965,8 @@ attracted by the boots." CR>)
<OBJECT GARBAGE
(IN LOCAL-GLOBALS) ;"in Junk Yard and Alley"
(DESC "garbage")
(SYNONYM GARBAGE JUNK PILE)
(ADJECTIVE LARGE FLOATING USELESS RANDOM)
(SYNONYM GARBAGE JUNK TRASH PILE)
(ADJECTIVE LARGE FLOATING USELESS RANDOM JUNK GARBAGE TRASH)
(FLAGS NARTICLEBIT)
(ACTION GARBAGE-F)>