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 .FUNCT INTNUM-F
CALL NOUN-USED,W?ONE,INTNUM CALL ADJ-USED,A?BIN,INTNUM
ZERO? STACK \?PRD5
CALL NOUN-USED,W?TWO,INTNUM
ZERO? STACK \?PRD5
CALL NOUN-USED,W?THREE,INTNUM
ZERO? STACK /?CCL3 ZERO? STACK /?CCL3
?PRD5: CALL GLOBAL-IN?,KEYPAD,HERE EQUAL? HERE,ROBOT-POOL /?CCL6
ZERO? STACK /?CCL3 PRINT YOU-CANT
EQUAL? PRSA,V?TYPE,V?PUSH \?CCL3 PRINTR "see any bin here!]"
PRINTR "[Use numerals: for example, TYPE 5 rather than TYPE FIVE.]" ?CCL6: GRTR? P-NUMBER,3 \?CCL8
?CCL3: EQUAL? PRSA,V?ON,V?SHOOT,V?EXAMINE /?PRD13 PRINTR "There are only three bins!"
EQUAL? PRSA,V?MUNG,V?KILL,V?OFF \?CCL11 ?CCL8: PRINT REFER-TO-BIN
?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
RTRUE RTRUE
?CCL21: EQUAL? PRSA,V?SET \?CCL30 ?CCL3: GET P-NAMW,0
ZERO? PRSI \?CCL30 EQUAL? STACK,W?ONE,W?TWO,W?THREE \?CCL10
EQUAL? HERE,COMMANDERS-QUARTERS \?CCL30 CALL GLOBAL-IN?,KEYPAD,HERE
EQUAL? P-NUMBER,DIAL-SETTING \?CCL36 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 PRINT SENILITY-STRIKES
RTRUE RTRUE
?CCL36: GRTR? P-NUMBER,8000 \?CCL38 ?CCL40: GRTR? P-NUMBER,8000 \?CCL42
PRINTR "The dial only goes up to 8000." PRINTR "The dial goes up to only 8000."
?CCL38: SET 'DIAL-SETTING,P-NUMBER ?CCL42: SET 'DIAL-SETTING,P-NUMBER
PRINTR """Click.""" PRINTR """Click."""
?CCL30: EQUAL? PRSA,V?WAIT-FOR \?CCL40 ?CCL34: EQUAL? PRSA,V?WAIT-FOR \?CCL44
GRTR? P-NUMBER,40 \?CCL43 GRTR? P-NUMBER,40 \?CCL47
PRINT TOO-LONG-TO-WAIT PRINT TOO-LONG-TO-WAIT
RTRUE RTRUE
?CCL43: CALL V-WAIT ?CCL47: CALL V-WAIT
RSTACK RSTACK
?CCL40: EQUAL? PRSA,V?WAIT-UNTIL \?CCL45 ?CCL44: EQUAL? PRSA,V?WAIT-UNTIL \?CCL49
GRTR? P-NUMBER,INTERNAL-MOVES \?CCL48 GRTR? P-NUMBER,INTERNAL-MOVES \?CCL52
SUB P-NUMBER,INTERNAL-MOVES SUB P-NUMBER,INTERNAL-MOVES
LESS? STACK,41 \?CCL48 LESS? STACK,41 \?CCL52
CALL V-WAIT CALL V-WAIT
RSTACK RSTACK
?CCL48: PRINT TOO-LONG-TO-WAIT ?CCL52: PRINT TOO-LONG-TO-WAIT
RTRUE RTRUE
?CCL45: CALL TOUCHING?,INTNUM ?CCL49: CALL TOUCHING?,INTNUM
ZERO? STACK \?CCL52 ZERO? STACK \?CCL56
EQUAL? PRSA,V?SHOOT \FALSE EQUAL? PRSA,V?SHOOT \FALSE
?CCL52: PRINT HUH ?CCL56: PRINT HUH
RTRUE RTRUE
@ -129,41 +134,26 @@
.FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ .FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ
CALL MOBY-FIND,TBL >M-F CALL MOBY-FIND,TBL >M-F
ZERO? DEBUG /?CND1 EQUAL? 1,M-F \?CCL3
PRINTI "[Found " ZERO? PRSO? /?CCL6
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
SET 'PRSO,P-MOBY-FOUND SET 'PRSO,P-MOBY-FOUND
CALL THIS-IS-IT,PRSO CALL THIS-IS-IT,PRSO
RFALSE RFALSE
?CCL10: SET 'PRSI,P-MOBY-FOUND ?CCL6: SET 'PRSI,P-MOBY-FOUND
RFALSE RFALSE
?CCL5: LESS? 1,M-F \?CCL12 ?CCL3: LESS? 1,M-F \?CCL8
GET TBL,1 >OBJ GET TBL,1 >OBJ
GETP OBJ,P?GENERIC GETP OBJ,P?GENERIC
CALL STACK >OBJ CALL STACK >OBJ
ZERO? OBJ /?CCL12 ZERO? OBJ /?CCL8
ZERO? DEBUG /?CND15 EQUAL? OBJ,NOT-HERE-OBJECT /TRUE
PRINTI "[Generic: " ZERO? PRSO? /?CCL15
PRINTD OBJ
PRINTC 93
CRLF
?CND15: EQUAL? OBJ,NOT-HERE-OBJECT /TRUE
ZERO? PRSO? /?CCL21
SET 'PRSO,OBJ SET 'PRSO,OBJ
CALL THIS-IS-IT,PRSO CALL THIS-IS-IT,PRSO
RFALSE RFALSE
?CCL21: SET 'PRSI,OBJ ?CCL15: SET 'PRSI,OBJ
RFALSE RFALSE
?CCL12: RETURN NOT-HERE-OBJECT ?CCL8: RETURN NOT-HERE-OBJECT
.FUNCT NOT-HERE-PRINT,PRSO?,?TMP1 .FUNCT NOT-HERE-PRINT,PRSO?,?TMP1
@ -188,12 +178,24 @@
.FUNCT GROUND-F .FUNCT GROUND-F
EQUAL? PRSA,V?ENTER,V?CLIMB-ON \?CCL3 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." 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 CALL IMPOSSIBLES
RSTACK 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 CALL DO-WALK,P?UP
RSTACK RSTACK
@ -209,15 +211,20 @@
.FUNCT CEILING-F .FUNCT CEILING-F
EQUAL? PRSA,V?SEARCH,V?EXAMINE \?CCL3 EQUAL? PRSA,V?SEARCH,V?EXAMINE \?CCL3
EQUAL? HERE,PET-STORE \?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 MOVE PANEL,HERE
CALL THIS-IS-IT,PANEL 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." 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 ?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL12
EQUAL? HERE,DOME \?CCL7 EQUAL? HERE,DOME \?CCL12
PRINT DOME-DESC PRINT DOME-DESC
CRLF CRLF
RTRUE RTRUE
?CCL7: EQUAL? PRSA,V?LOOK-UNDER \FALSE ?CCL12: EQUAL? PRSA,V?LOOK-UNDER \FALSE
CALL PERFORM,V?LOOK CALL PERFORM,V?LOOK
RTRUE RTRUE
@ -246,7 +253,7 @@
CRLF CRLF
RTRUE RTRUE
?CCL19: EQUAL? HERE,GREASY-STRAW \?CCL21 ?CCL19: EQUAL? HERE,GREASY-STRAW \?CCL21
IN? NECTAR,LOCAL-GLOBALS \?CCL21 FSET? NECTAR,TOUCHBIT /?CCL21
MOVE NECTAR,HERE MOVE NECTAR,HERE
CALL THIS-IS-IT,NECTAR CALL THIS-IS-IT,NECTAR
PRINTR "You spot a cup of Ramosian Fire Nectar behind the counter!" PRINTR "You spot a cup of Ramosian Fire Nectar behind the counter!"
@ -277,7 +284,9 @@
PRINTR "You see a large cargo bay." PRINTR "You see a large cargo bay."
?CCL14: EQUAL? SPACETRUCK-COUNTER,4 \?CCL16 ?CCL14: EQUAL? SPACETRUCK-COUNTER,4 \?CCL16
EQUAL? COURSE-PICKED,RIGHT-COURSE \?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." ?CCL16: PRINTR "You see nothing but the majestic sweep of the galaxy."
?CCL3: EQUAL? PRSA,V?CLEAN \FALSE ?CCL3: EQUAL? PRSA,V?CLEAN \FALSE
SET 'AWAITING-REPLY,1 SET 'AWAITING-REPLY,1
@ -388,7 +397,7 @@ FREZONE (tm) explosive available."""
SET 'PRSO,FALSE-VALUE SET 'PRSO,FALSE-VALUE
RFALSE RFALSE
?CCL3: EQUAL? PRSA,V?SHAKE \?CCL5 ?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 ZERO? ACTOR /?CCL8
CALL PERFORM,V?SHAKE-WITH,HANDS,ACTOR CALL PERFORM,V?SHAKE-WITH,HANDS,ACTOR
RTRUE RTRUE
@ -403,19 +412,26 @@ FREZONE (tm) explosive available."""
?CCL10: EQUAL? PRSA,V?CLEAN \?CCL15 ?CCL10: EQUAL? PRSA,V?CLEAN \?CCL15
PRINTR "Done." PRINTR "Done."
?CCL15: EQUAL? PRSA,V?SHOOT \?CCL17 ?CCL15: EQUAL? PRSA,V?SHOOT \?CCL17
CALL JIGS-UP,STR?88 CALL JIGS-UP,STR?90
RSTACK 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 EQUAL? PRSI,HANDS \FALSE
CALL PERFORM,V?TAKE,PRSO CALL PERFORM,V?TAKE,PRSO
RTRUE RTRUE
.FUNCT TONGUE-F .FUNCT TONGUE-F
EQUAL? PRSA,V?RUN-OVER,V?PUT-ON \FALSE EQUAL? PRSA,V?RUN-OVER,V?PUT-ON \?CCL3
EQUAL? PRSO,TONGUE \FALSE EQUAL? PRSO,TONGUE \?CCL3
CALL PERFORM,V?TASTE,PRSI CALL PERFORM,V?TASTE,PRSI
RTRUE RTRUE
?CCL3: EQUAL? PRSA,V?DRILL \FALSE
CALL HANDS-F
RSTACK
.FUNCT ME-F .FUNCT ME-F
@ -442,10 +458,10 @@ FREZONE (tm) explosive available."""
RSTACK RSTACK
?CCL17: EQUAL? PRSA,V?MUNG,V?KILL \?CCL19 ?CCL17: EQUAL? PRSA,V?MUNG,V?KILL \?CCL19
EQUAL? PRSO,ME \?CCL19 EQUAL? PRSO,ME \?CCL19
CALL JIGS-UP,STR?89 CALL JIGS-UP,STR?91
RSTACK RSTACK
?CCL19: EQUAL? PRSA,V?SHOOT \?CCL23 ?CCL19: EQUAL? PRSA,V?SHOOT \?CCL23
CALL JIGS-UP,STR?90 CALL JIGS-UP,STR?92
RSTACK RSTACK
?CCL23: EQUAL? PRSA,V?WHERE,V?FIND \?CCL25 ?CCL23: EQUAL? PRSA,V?WHERE,V?FIND \?CCL25
PRINTI "You're in" PRINTI "You're in"
@ -482,30 +498,30 @@ FREZONE (tm) explosive available."""
CALL BOTH-SEATS-NOT-OCCUPIED CALL BOTH-SEATS-NOT-OCCUPIED
ZERO? STACK /?CCL15 ZERO? STACK /?CCL15
PRINTI "The form is spit back out. " PRINTI "The form is spit back out. "
CALL RECORDING,STR?93 CALL RECORDING,STR?95
RSTACK RSTACK
?CCL15: REMOVE PRSO ?CCL15: REMOVE PRSO
FSET PRSO,NDESCBIT FSET PRSO,NDESCBIT
PRINT FORM-ACCEPTED PRINT FORM-ACCEPTED
CALL RECORDING,STR?94 CALL RECORDING,STR?96
RSTACK RSTACK
?CCL10: EQUAL? PRSO,ROBOT-USE-AUTHORIZATION-FORM \?CCL19 ?CCL10: EQUAL? PRSO,ROBOT-USE-AUTHORIZATION-FORM \?CCL19
EQUAL? HERE,ROBOT-POOL \?CCL19 EQUAL? HERE,ROBOT-POOL \?CCL19
REMOVE PRSO REMOVE PRSO
FSET PRSO,NDESCBIT FSET PRSO,NDESCBIT
PRINT FORM-ACCEPTED PRINT FORM-ACCEPTED
CALL RECORDING,STR?95 CALL RECORDING,STR?97
RSTACK RSTACK
?CCL19: EQUAL? PRSO,ASSIGNMENT-COMPLETION-FORM \?CCL23 ?CCL19: EQUAL? PRSO,ASSIGNMENT-COMPLETION-FORM \?CCL23
EQUAL? HERE,DECK-TWELVE \?CCL23 EQUAL? HERE,DECK-TWELVE \?CCL23
PRINT FORM-REJECTED PRINT FORM-REJECTED
CALL RECORDING,STR?96 CALL RECORDING,STR?98
RSTACK RSTACK
?CCL23: EQUAL? PRSO,VILLAGE-FORM \?CCL27 ?CCL23: EQUAL? PRSO,VILLAGE-FORM \?CCL27
EQUAL? HERE,SOUTH-CONNECTION,EAST-CONNECTION \?CCL27 EQUAL? HERE,SOUTH-CONNECTION,EAST-CONNECTION \?CCL27
ZERO? VILLAGE-FORM-VALIDATED \?CCL32 ZERO? VILLAGE-FORM-VALIDATED \?CCL32
PRINT FORM-REJECTED PRINT FORM-REJECTED
CALL RECORDING,STR?96 CALL RECORDING,STR?98
RSTACK RSTACK
?CCL32: ADD SCORE,6 >SCORE ?CCL32: ADD SCORE,6 >SCORE
INC 'ROBOT-EVILNESS 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 ?CCL27: EQUAL? PRSO,ASSIGNMENT-COMPLETION-FORM,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM,ROBOT-USE-AUTHORIZATION-FORM /?CTR33
EQUAL? PRSO,VILLAGE-FORM \?CCL34 EQUAL? PRSO,VILLAGE-FORM \?CCL34
?CTR33: PRINT FORM-REJECTED ?CTR33: PRINT FORM-REJECTED
CALL RECORDING,STR?97 CALL RECORDING,STR?99
RSTACK RSTACK
?CCL34: GETP P?SIZE,PRSO ?CCL34: GETP P?SIZE,PRSO
LESS? STACK,3 \?CCL38 LESS? STACK,3 \?CCL38
PRINTI "The slot swallows" PRINTI "The slot swallows"
CALL TPRINT-PRSO CALL TPRINT-PRSO
PRINTR " and then spits it back." PRINTR " and then spits it back."
?CCL38: CALL DOESNT-FIT,STR?98 ?CCL38: CALL DOESNT-FIT,STR?100
RSTACK RSTACK
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \FALSE ?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINT ONLY-BLACKNESS PRINT ONLY-BLACKNESS
@ -534,7 +550,7 @@ FREZONE (tm) explosive available."""
IN? PROTAGONIST,PILOT-SEAT \?CCL3 IN? PROTAGONIST,PILOT-SEAT \?CCL3
IN? FLOYD,COPILOT-SEAT /FALSE IN? FLOYD,COPILOT-SEAT /FALSE
?CCL3: IN? PROTAGONIST,COPILOT-SEAT \TRUE ?CCL3: IN? PROTAGONIST,COPILOT-SEAT \TRUE
IN? FLOYD,COPILOT-SEAT /FALSE IN? FLOYD,PILOT-SEAT /FALSE
RTRUE RTRUE
@ -550,8 +566,8 @@ FREZONE (tm) explosive available."""
.FUNCT FURNISHING-F .FUNCT FURNISHING-F
EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH,V?OPEN /?CTR2 EQUAL? PRSA,V?SEARCH,V?OPEN,V?ENTER /?CTR2
EQUAL? PRSA,V?EXAMINE \?CCL3 EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \?CCL3
?CTR2: PRINTR "You merely find a few personal items of little interest." ?CTR2: PRINTR "You merely find a few personal items of little interest."
?CCL3: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE ?CCL3: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE
PRINTI "The " PRINTI "The "
@ -561,29 +577,50 @@ FREZONE (tm) explosive available."""
RSTACK 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 .FUNCT BED-F
EQUAL? PRSA,V?WALK-TO \?CCL3 EQUAL? PRSA,V?WALK-TO \?CCL3
CALL GLOBAL-IN?,BED,HERE CALL GLOBAL-IN?,BED,HERE
ZERO? STACK \?CCL3 ZERO? STACK \?CCL3
PRINTR "There's no bed here!" PRINTR "There's no bed here!"
?CCL3: EQUAL? PRSA,V?WALK-TO,V?ENTER \?CCL7 ?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 MOVE PROTAGONIST,BED
CALL QUEUE,I-FALL-ASLEEP,22 CALL QUEUE,I-FALL-ASLEEP,22
CALL DEQUEUE,I-SLEEP-WARNINGS CALL DEQUEUE,I-SLEEP-WARNINGS
PRINTR "Ahhh...the bed is soft and comfortable. You should be asleep in short order." 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." PRINTR "You are now in bed."
?CCL7: EQUAL? PRSA,V?EXIT,V?STAND,V?DISEMBARK /?PRD14 ?CCL7: EQUAL? PRSA,V?EXIT,V?STAND,V?DISEMBARK /?PRD16
EQUAL? PRSA,V?DROP \?CCL12 EQUAL? PRSA,V?DROP \?CCL14
?PRD14: CALL QUEUED?,I-FALL-ASLEEP ?PRD16: CALL QUEUED?,I-FALL-ASLEEP
ZERO? STACK /?CCL12 ZERO? STACK /?CCL14
PRINTR "But you're so tired and this bed is so comfy!" 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 CALL PERFORM,V?DISEMBARK,BED
RTRUE RTRUE
?CCL18: EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL20 ?CCL20: EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL22
EQUAL? PRSI,BED \?CCL20 EQUAL? PRSI,BED \?CCL22
MOVE PRSO,HERE MOVE PRSO,HERE
PRINTI "The " PRINTI "The "
PRINTD PRSO PRINTD PRSO
@ -591,19 +628,19 @@ FREZONE (tm) explosive available."""
PRINT LANDS-ON-FLOOR PRINT LANDS-ON-FLOOR
CRLF CRLF
RTRUE RTRUE
?CCL20: EQUAL? PRSA,V?LOOK-UNDER \?CCL24 ?CCL22: EQUAL? PRSA,V?LOOK-UNDER \?CCL26
IN? PROTAGONIST,BED \?CCL24 IN? PROTAGONIST,BED \?CCL26
PRINTR "You're IN the bed, so unless you have X-ray vision..." PRINTR "You're IN the bed, so unless you have X-ray vision..."
?CCL24: EQUAL? PRSA,V?LOOK-UNDER \?CCL28 ?CCL26: EQUAL? PRSA,V?LOOK-UNDER \?CCL30
EQUAL? HERE,COMMANDERS-QUARTERS \?CCL28 EQUAL? HERE,COMMANDERS-QUARTERS \?CCL30
FSET? VALIDATION-STAMP,TOUCHBIT /?CCL28 FSET? VALIDATION-STAMP,TOUCHBIT /?CCL30
FSET VALIDATION-STAMP,TOUCHBIT FSET VALIDATION-STAMP,TOUCHBIT
MOVE VALIDATION-STAMP,HERE MOVE VALIDATION-STAMP,HERE
CALL THIS-IS-IT,VALIDATION-STAMP CALL THIS-IS-IT,VALIDATION-STAMP
PRINTI "You discover a " PRINTI "You discover a "
PRINTD VALIDATION-STAMP PRINTD VALIDATION-STAMP
PRINTR "!" 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!" PRINTR "That would be a clear case of mattresscide!"
@ -616,43 +653,54 @@ FREZONE (tm) explosive available."""
.FUNCT I-SLEEP-WARNINGS .FUNCT I-SLEEP-WARNINGS
IN? WELDER,HERE \?PRD4 IN? WELDER,HERE \?PRD4
GRTR? SLEEPY-LEVEL,3 /?CCL2 GRTR? SLEEPY-LEVEL,3 /?CCL2
?PRD4: GRTR? PLATO-ATTACK-COUNTER,0 \?CND1 ?PRD4: ZERO? STUNNED /?CND1
IN? PLATO,HERE \?CND1
?CCL2: CALL QUEUE,I-HUNGER-WARNINGS,2 ?CCL2: CALL QUEUE,I-HUNGER-WARNINGS,2
RFALSE RFALSE
?CND1: INC 'SLEEPY-LEVEL ?CND1: INC 'SLEEPY-LEVEL
PRINTI " " PRINTI " "
IN? PROTAGONIST,BED \?CCL11 IN? PROTAGONIST,BED \?CCL9
CALL DEQUEUE,I-SLEEP-WARNINGS CALL DEQUEUE,I-SLEEP-WARNINGS
CALL QUEUE,I-FALL-ASLEEP,16 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." PRINTI "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 CRLF
JUMP ?CND7
?CCL9: EQUAL? SLEEPY-LEVEL,1 \?CCL11
CALL QUEUE,I-SLEEP-WARNINGS,320 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." PRINTI "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 CRLF
JUMP ?CND7
?CCL11: EQUAL? SLEEPY-LEVEL,2 \?CCL13
CALL QUEUE,I-SLEEP-WARNINGS,160 CALL QUEUE,I-SLEEP-WARNINGS,160
PRINTR "You're really tired now. You'd better find a place to sleep real soon." PRINTI "You're really tired now. You'd better find a place to sleep real soon."
?CCL15: EQUAL? SLEEPY-LEVEL,3 \?CCL17 CRLF
JUMP ?CND7
?CCL13: EQUAL? SLEEPY-LEVEL,3 \?CCL15
CALL QUEUE,I-SLEEP-WARNINGS,80 CALL QUEUE,I-SLEEP-WARNINGS,80
PRINTR "If you don't get some sleep soon you'll probably drop." PRINTI "If you don't get some sleep soon you'll probably drop."
?CCL17: EQUAL? SLEEPY-LEVEL,4 \?CCL19 CRLF
JUMP ?CND7
?CCL15: EQUAL? SLEEPY-LEVEL,4 \?CCL17
CALL QUEUE,I-SLEEP-WARNINGS,40 CALL QUEUE,I-SLEEP-WARNINGS,40
PRINTR "You can barely keep your eyes open." PRINTI "You can barely keep your eyes open."
?CCL19: EQUAL? HERE,BED \?CCL22 CRLF
JUMP ?CND7
?CCL17: EQUAL? HERE,BED \?CCL20
PRINTI "You slowly sink into a deep and blissful sleep." PRINTI "You slowly sink into a deep and blissful sleep."
JUMP ?CND20 JUMP ?CND18
?CCL22: CALL GLOBAL-IN?,BED,HERE ?CCL20: CALL GLOBAL-IN?,BED,HERE
ZERO? STACK /?CCL24 ZERO? STACK /?CCL22
MOVE PROTAGONIST,BED MOVE PROTAGONIST,BED
PRINTI "You climb into one of the beds and immediately fall asleep." PRINTI "You climb into one of the beds and immediately fall asleep."
JUMP ?CND20 JUMP ?CND18
?CCL24: PRINT YOU-CANT ?CCL22: PRINT YOU-CANT
PRINTI "stay awake a moment longer. You drop " PRINTI "stay awake a moment longer. You drop "
IN? PROTAGONIST,HERE \?CND25 IN? PROTAGONIST,HERE \?CND23
FSET? HERE,WEIGHTLESSBIT /?CND25 FSET? HERE,WEIGHTLESSBIT /?CND23
PRINTI "to the deck and fall " PRINTI "to the deck and fall "
?CND25: PRINTI "into a deep but fitful sleep." ?CND23: PRINTI "into a deep but fitful sleep."
?CND20: CALL WAKING-UP ?CND18: CALL WAKING-UP
?CND7: IN? PROTAGONIST,BED /FALSE
CALL STOP
RSTACK RSTACK
@ -671,7 +719,7 @@ FREZONE (tm) explosive available."""
IN? PROTAGONIST,BED /?CND1 IN? PROTAGONIST,BED /?CND1
MOVE PROTAGONIST,HERE MOVE PROTAGONIST,HERE
?CND1: FSET? SPACESUIT,WORNBIT \?CCL5 ?CND1: FSET? SPACESUIT,WORNBIT \?CCL5
CALL JIGS-UP,STR?105 CALL JIGS-UP,STR?107
JUMP ?CND3 JUMP ?CND3
?CCL5: EQUAL? COURSE-PICKED,RIGHT-COURSE /?CCL7 ?CCL5: EQUAL? COURSE-PICKED,RIGHT-COURSE /?CCL7
EQUAL? HERE,SPACETRUCK \?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!"" 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 " 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 PRINT FORM-NAME
CALL JIGS-UP,STR?46 CALL JIGS-UP,STR?9
JUMP ?CND3 JUMP ?CND3
?CCL14: IN? PROTAGONIST,HERE \?PRD18 ?CCL14: IN? PROTAGONIST,HERE \?PRD18
FSET? DOCKING-BAY-2,TOUCHBIT \?PRD18 FSET? DOCKING-BAY-2,TOUCHBIT \?PRD18
@ -701,11 +749,25 @@ FREZONE (tm) explosive available."""
RANDOM 100 RANDOM 100
LESS? ?TMP1,STACK \?CTR15 LESS? ?TMP1,STACK \?CTR15
?PRD18: CALL ULTIMATELY-IN?,OSTRICH-NIP ?PRD18: CALL ULTIMATELY-IN?,OSTRICH-NIP
ZERO? STACK /?CCL16 ZERO? STACK /?PRD22
IN? OSTRICH,HERE \?CCL16 IN? OSTRICH,HERE /?CTR15
?CTR15: CALL JIGS-UP,STR?106 ?PRD22: IN? EXPLOSIVE,DRILLED-HOLE \?CCL16
?CTR15: CALL JIGS-UP,STR?108
JUMP ?CND3 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 LESS? 60,STACK /?CND3
PRINTI "..." PRINTI "..."
CALL PICK-ONE,DREAMS CALL PICK-ONE,DREAMS
@ -714,34 +776,41 @@ FREZONE (tm) explosive available."""
?CND3: INC 'DAY ?CND3: INC 'DAY
INC 'ROBOT-EVILNESS INC 'ROBOT-EVILNESS
CALL I-ROBOT-EVILNESS CALL I-ROBOT-EVILNESS
SET 'TIMER-SETTING,0
CALL DEQUEUE,I-TIMER
SET 'SLEEPY-LEVEL,0 SET 'SLEEPY-LEVEL,0
SET 'SUIT-PRESSED,FALSE-VALUE SET 'SUIT-PRESSED,FALSE-VALUE
SET 'FLOYD-ANGUISHED,FALSE-VALUE SET 'FLOYD-ANGUISHED,FALSE-VALUE
RANDOM 80 RANDOM 80
ADD 1600,STACK >INTERNAL-MOVES ADD 1600,STACK >INTERNAL-MOVES
GRTR? DAY,2 \?CCL27 GRTR? DAY,2 \?CCL37
SET 'MOVES,9947 SET 'MOVES,9947
JUMP ?CND25 JUMP ?CND35
?CCL27: CALL QUEUE,I-MESSAGE,943 ?CCL37: CALL QUEUE,I-MESSAGE,943
ADD SCORE,3 >SCORE ADD SCORE,3 >SCORE
SET 'MOVES,INTERNAL-MOVES SET 'MOVES,INTERNAL-MOVES
?CND25: FCLEAR AUTO-DOOR,TOUCHBIT ?CND35: FCLEAR AUTO-DOOR,TOUCHBIT
CALL QUEUE,I-SLEEP-WARNINGS,5900 CALL QUEUE,I-SLEEP-WARNINGS,5900
CALL ULTIMATELY-IN?,EXPLOSIVE,VACUUM-STORAGE CALL ULTIMATELY-IN?,EXPLOSIVE,VACUUM-STORAGE
ZERO? STACK \?CND28 ZERO? STACK \?CND38
MOVE EXPLOSIVE,DECK-TWELVE MOVE EXPLOSIVE,DECK-TWELVE
CALL REMOVE-CAREFULLY,EXPLOSIVE CALL REMOVE-CAREFULLY,EXPLOSIVE
CALL DEQUEUE,I-EXPLOSIVE-MELT CALL DEQUEUE,I-EXPLOSIVE-MELT
?CND28: FSET? HEADLAMP,ONBIT \?CND30 ?CND38: FSET? HEADLAMP,ONBIT \?CND40
FCLEAR HEADLAMP,ACTIVEBIT FCLEAR HEADLAMP,ACTIVEBIT
FCLEAR HEADLAMP,ONBIT FCLEAR HEADLAMP,ONBIT
SET 'HEADLAMP-COUNTER,0 SET 'HEADLAMP-COUNTER,0
?CND30: GRTR? SOUP-WARMTH,0 \?CND32 ?CND40: CALL RUNNING?,I-LOG-READER
FSET? THERMOS,OPENBIT \?CCL36 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 SET 'SOUP-WARMTH,0
JUMP ?CND32 JUMP ?CND44
?CCL36: SUB SOUP-WARMTH,30 >SOUP-WARMTH ?CCL48: SUB SOUP-WARMTH,30 >SOUP-WARMTH
?CND32: FSET OSTRICH,TOUCHBIT ?CND44: FSET OSTRICH,TOUCHBIT
CALL ROB,PROTAGONIST,HERE CALL ROB,PROTAGONIST,HERE
USL USL
PRINTI "***** NOVEM " PRINTI "***** NOVEM "
@ -751,37 +820,37 @@ FREZONE (tm) explosive available."""
CRLF CRLF
CRLF CRLF
PRINTI "You awake " PRINTI "You awake "
ZERO? LIT \?CCL39 ZERO? LIT \?CCL51
PRINTI "in darkness." PRINTI "in darkness."
JUMP ?CND37 JUMP ?CND49
?CCL39: CALL QUEUED?,I-LIGHTS-OUT ?CCL51: CALL QUEUED?,I-LIGHTS-OUT
ZERO? STACK /?CCL41 ZERO? STACK /?CCL53
CALL DEQUEUE,I-LIGHTS-OUT CALL DEQUEUE,I-LIGHTS-OUT
CALL I-LIGHTS-OUT,TRUE-VALUE CALL I-LIGHTS-OUT,TRUE-VALUE
PRINTI "slowly, aware that something has changed. Aha! The lights have all gone out while you slept!" PRINTI "slowly, aware that something has changed. Aha! The lights have all gone out while you slept!"
JUMP ?CND37 JUMP ?CND49
?CCL41: LOC PROTAGONIST ?CCL53: LOC PROTAGONIST
EQUAL? STACK,BED,PILOT-SEAT,COPILOT-SEAT \?CCL43 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." PRINTI "feeling refreshed and ready to face anything this new day might care to throw at you."
JUMP ?CND37 JUMP ?CND49
?CCL43: PRINTI "and slowly stand up, feeling stiff from your uncomfortable night's sleep." ?CCL55: PRINTI "and slowly stand up, feeling stiff from your uncomfortable night's sleep."
?CND37: EQUAL? DAY,4 \?CND44 ?CND49: EQUAL? DAY,4 \?CND56
FSET? SAFE,OPENBIT /?CCL48 FSET? SAFE,OPENBIT /?CCL60
CALL QUEUE,I-LIGHTS-OUT,177 CALL QUEUE,I-LIGHTS-OUT,177
JUMP ?CND44 JUMP ?CND56
?CCL48: CALL QUEUED?,I-ANNOUNCEMENT ?CCL60: CALL QUEUED?,I-ANNOUNCEMENT
ZERO? STACK \?CND44 ZERO? STACK \?CND56
CALL QUEUE,I-ANNOUNCEMENT,383 CALL QUEUE,I-ANNOUNCEMENT,383
?CND44: GRTR? HUNGER-LEVEL,0 \?CCL52 ?CND56: GRTR? HUNGER-LEVEL,0 \?CCL64
SET 'HUNGER-LEVEL,3 SET 'HUNGER-LEVEL,3
CALL QUEUE,I-HUNGER-WARNINGS,200 CALL QUEUE,I-HUNGER-WARNINGS,200
PRINTI " You're also incredibly famished. Better get some breakfast!" PRINTI " You're also incredibly famished. Better get some breakfast!"
JUMP ?CND50 JUMP ?CND62
?CCL52: CALL QUEUE,I-HUNGER-WARNINGS,400 ?CCL64: CALL QUEUE,I-HUNGER-WARNINGS,400
?CND50: CRLF ?CND62: CRLF
CALL RUNNING?,I-SPACETRUCK CALL RUNNING?,I-SPACETRUCK
ZERO? STACK /?CND53 ZERO? STACK /?CND65
EQUAL? COURSE-PICKED,RIGHT-COURSE \?CND53 EQUAL? COURSE-PICKED,RIGHT-COURSE \?CND65
CALL QUEUE,I-WELDER,-1 CALL QUEUE,I-WELDER,-1
CALL DEQUEUE,I-SPACETRUCK CALL DEQUEUE,I-SPACETRUCK
FCLEAR SPACETRUCK,WEIGHTLESSBIT FCLEAR SPACETRUCK,WEIGHTLESSBIT
@ -789,75 +858,84 @@ FREZONE (tm) explosive available."""
SET 'SPACETRUCK-COUNTER,5 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." PRINTI " You notice that, while you slept, the truck has docked itself in one of the space station's docking bays."
CRLF CRLF
?CND53: EQUAL? DAY,3 \?CND57 ?CND65: EQUAL? DAY,3 \?CND69
FCLEAR ELEVATOR,WEIGHTLESSBIT FCLEAR ELEVATOR,WEIGHTLESSBIT
FSET EXERCISE-MACHINE,TOUCHBIT FSET EXERCISE-MACHINE,TOUCHBIT
MOVE EXERCISE-MACHINE,COMPUTER-CONTROL MOVE EXERCISE-MACHINE,COMPUTER-CONTROL
CALL ROB,EXERCISE-MACHINE,GYM CALL ROB,EXERCISE-MACHINE,GYM
FSET? CHRONOMETER,WORNBIT \?CND57 FSET? CHRONOMETER,WORNBIT \?CND69
PRINTI " " PRINTI " "
CALL PERFORM,V?EXAMINE,CHRONOMETER CALL PERFORM,V?EXAMINE,CHRONOMETER
?CND57: FSET? FLOYD,ACTIVEBIT \?CND61 ?CND69: FSET? FLOYD,ACTIVEBIT \?CND73
IN? FLOYD,FACTORY /?CND61 IN? FLOYD,FACTORY /?CND73
EQUAL? HERE,AIRLOCK /?CND61 EQUAL? HERE,AIRLOCK /?CND73
SET 'FLOYD-SPOKE,TRUE-VALUE SET 'FLOYD-SPOKE,TRUE-VALUE
PRINTI " Floyd " PRINTI " Floyd "
GRTR? ROBOT-EVILNESS,13 \?CCL68 GRTR? ROBOT-EVILNESS,13 \?CCL80
PRINTI "is rudely kicking you" PRINTI "is rudely kicking you"
IN? PROTAGONIST,BED \?CND69 IN? PROTAGONIST,BED \?CND81
PRINTI "r mattress" 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 CRLF
JUMP ?CND66 JUMP ?CND78
?CCL68: PRINTI "bounces impatiently at " ?CCL80: PRINTI "bounces impatiently at "
IN? PROTAGONIST,BED \?CCL73 IN? PROTAGONIST,BED \?CCL85
PRINTI "the foot of the bed" PRINTI "the foot of the bed"
JUMP ?CND71 JUMP ?CND83
?CCL73: PRINTI "your side" ?CCL85: PRINTI "your side"
?CND71: ZERO? PLATO-INTRODUCED /?CND74 ?CND83: ZERO? PLATO-INTRODUCED /?CND86
ZERO? PLATO-ATTACK-COUNTER \?CND74 ZERO? PLATO-ATTACK-COUNTER \?CND86
MOVE PLATO,HERE MOVE PLATO,HERE
PRINTI ". Plato is nearby, leafing through his book" 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." 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 CRLF
CALL I-PLATO,TRUE-VALUE CALL I-PLATO,TRUE-VALUE
JUMP ?CND66 JUMP ?CND78
?CCL80: PRINTI ". ""About time you woke up, you lazy " ?CCL92: PRINTI ". ""About time you woke up, you lazy "
GRTR? ROBOT-EVILNESS,9 \?CCL83 GRTR? ROBOT-EVILNESS,9 \?CCL95
PRINTI "slob!"" says Floyd. ""It's getting pretty trotting dull around he" PRINTI "slob!"" says Floyd. ""It's getting pretty trotting dull around he"
JUMP ?CND81 JUMP ?CND93
?CCL83: PRINTI "bones!"" says Floyd. ""Let's explore around some mo" ?CCL95: PRINTI "bones!"" says Floyd. ""Let's explore around some mo"
?CND81: PRINTI "re!""" ?CND93: PRINTI "re!"""
CRLF CRLF
?CND66: MOVE FLOYD,HERE ?CND78: MOVE FLOYD,HERE
?CND61: ZERO? LIT /FALSE ?CND73: ZERO? LIT /?CND96
CRLF CRLF
CALL V-LOOK CALL V-LOOK
?CND96: CALL STOP
RSTACK RSTACK
.FUNCT I-HUNGER-WARNINGS .FUNCT I-HUNGER-WARNINGS
GRTR? PLATO-ATTACK-COUNTER,0 \?CND1 ZERO? STUNNED /?CND1
IN? PLATO,HERE \?CND1
CALL QUEUE,I-HUNGER-WARNINGS,2 CALL QUEUE,I-HUNGER-WARNINGS,2
RFALSE RFALSE
?CND1: INC 'HUNGER-LEVEL ?CND1: INC 'HUNGER-LEVEL
PRINTI " " PRINTI " "
EQUAL? HUNGER-LEVEL,1 \?CCL7 EQUAL? HUNGER-LEVEL,1 \?CCL5
CALL QUEUE,I-HUNGER-WARNINGS,450 CALL QUEUE,I-HUNGER-WARNINGS,450
PRINTR "A growl from your stomach warns that you're getting pretty hungry and thirsty." PRINTI "A growl from your stomach warns that you're getting pretty hungry and thirsty."
?CCL7: EQUAL? HUNGER-LEVEL,2 \?CCL9 CRLF
JUMP ?CND3
?CCL5: EQUAL? HUNGER-LEVEL,2 \?CCL7
CALL QUEUE,I-HUNGER-WARNINGS,300 CALL QUEUE,I-HUNGER-WARNINGS,300
PRINTR "You're now really ravenous and your lips are quite parched." PRINTI "You're now really ravenous and your lips are quite parched."
?CCL9: EQUAL? HUNGER-LEVEL,3 \?CCL11 CRLF
JUMP ?CND3
?CCL7: EQUAL? HUNGER-LEVEL,3 \?CCL9
CALL QUEUE,I-HUNGER-WARNINGS,150 CALL QUEUE,I-HUNGER-WARNINGS,150
PRINTR "You're starting to feel faint from lack of food and liquid." PRINTI "You're starting to feel faint from lack of food and liquid."
?CCL11: EQUAL? HUNGER-LEVEL,4 \?CCL13 CRLF
JUMP ?CND3
?CCL9: EQUAL? HUNGER-LEVEL,4 \?CCL11
CALL QUEUE,I-HUNGER-WARNINGS,150 CALL QUEUE,I-HUNGER-WARNINGS,150
PRINTR "If you don't eat or drink something in a few millichrons, you'll probably pass out." PRINTI "If you don't eat or drink something in a few millichrons, you'll probably pass out."
?CCL13: EQUAL? HUNGER-LEVEL,5 \FALSE CRLF
CALL JIGS-UP,STR?107 JUMP ?CND3
?CCL11: EQUAL? HUNGER-LEVEL,5 \?CND3
CALL JIGS-UP,STR?110
?CND3: CALL STOP
RSTACK RSTACK
@ -890,6 +968,7 @@ FREZONE (tm) explosive available."""
ZERO? STACK /?CND15 ZERO? STACK /?CND15
PRINTI " As the heat wave hits the explosive, it " PRINTI " As the heat wave hits the explosive, it "
PRINT SUBLIMES-INTO-FREZONE PRINT SUBLIMES-INTO-FREZONE
CALL DEQUEUE,I-EXPLOSIVE-MELT
CALL REMOVE-CAREFULLY,EXPLOSIVE CALL REMOVE-CAREFULLY,EXPLOSIVE
?CND15: IN? OSTRICH,HERE \?CCL19 ?CND15: IN? OSTRICH,HERE \?CCL19
FSET? OSTRICH,TOUCHBIT \?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." 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 .FUNCT TOUCHING?,THING
EQUAL? PRSO,THING \?CCL3 EQUAL? PRSO,THING \?CCL3
EQUAL? PRSA,V?TAKE,V?TOUCH,V?SHAKE /TRUE EQUAL? PRSA,V?TAKE,V?TOUCH,V?SHAKE /TRUE
@ -976,14 +1009,18 @@ FREZONE (tm) explosive available."""
SET 'P-WON,FALSE-VALUE SET 'P-WON,FALSE-VALUE
PRINT YOU-CANT PRINT YOU-CANT
PRINTI "see" 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 ZERO? STACK \?CND1
PRINTI " any" PRINTI " any"
?CND1: EQUAL? OBJ,PRSI \?CCL5 ?CND1: EQUAL? OBJ,PRSI \?CCL8
CALL PRSI-PRINT CALL PRSI-PRINT
JUMP ?CND3 JUMP ?CND6
?CCL5: CALL PRSO-PRINT ?CCL8: CALL PRSO-PRINT
?CND3: PRINTI " here." ?CND6: PRINTI " here."
CRLF CRLF
CALL STOP CALL STOP
RSTACK RSTACK
@ -1007,7 +1044,7 @@ FREZONE (tm) explosive available."""
EQUAL? OBJ,TIMER,DETONATOR \?CCL3 EQUAL? OBJ,TIMER,DETONATOR \?CCL3
SET 'TIMER-CONNECTED,FALSE-VALUE SET 'TIMER-CONNECTED,FALSE-VALUE
SET 'ALSO,TRUE-VALUE SET 'ALSO,TRUE-VALUE
CALL VISIBLE?,DETONATOR CALL VISIBLE?,TIMER
ZERO? STACK /?CND1 ZERO? STACK /?CND1
PRINTI " (The timer is" PRINTI " (The timer is"
PRINT NO-LONGER-ATTACHED PRINT NO-LONGER-ATTACHED
@ -1015,13 +1052,16 @@ FREZONE (tm) explosive available."""
?CCL3: ZERO? EXPLOSIVE-CONNECTED /?CND1 ?CCL3: ZERO? EXPLOSIVE-CONNECTED /?CND1
EQUAL? OBJ,EXPLOSIVE,DETONATOR \?CND1 EQUAL? OBJ,EXPLOSIVE,DETONATOR \?CND1
SET 'EXPLOSIVE-CONNECTED,FALSE-VALUE SET 'EXPLOSIVE-CONNECTED,FALSE-VALUE
CALL VISIBLE?,DETONATOR CALL VISIBLE?,EXPLOSIVE
ZERO? STACK /?CND1 ZERO? STACK /?CND1
PRINTI " (The explosive is" PRINTI " (The explosive is"
ZERO? ALSO /?CND13 ZERO? ALSO /?CND13
PRINTI " also" PRINTI " also"
?CND13: PRINT NO-LONGER-ATTACHED ?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 FCLEAR OBJ,TRYTAKEBIT
REMOVE OBJ REMOVE OBJ
RTRUE RTRUE
@ -1078,6 +1118,7 @@ FREZONE (tm) explosive available."""
EQUAL? PRSO,ROBOT-PICKED /?CND1 EQUAL? PRSO,ROBOT-PICKED /?CND1
PRINTI " from outside the bin" PRINTI " from outside the bin"
?CND1: PRINT PERIOD-CR ?CND1: PRINT PERIOD-CR
ZERO? P-MULT \TRUE
CALL STOP CALL STOP
RSTACK RSTACK
@ -1089,8 +1130,8 @@ FREZONE (tm) explosive available."""
CALL TPRINT,OBJ CALL TPRINT,OBJ
?CND1: PRINTI " first." ?CND1: PRINTI " first."
CRLF CRLF
CALL STOP ZERO? P-MULT \TRUE
RSTACK RETURN 8
.FUNCT DOESNT-FIT,STRING .FUNCT DOESNT-FIT,STRING
@ -1165,4 +1206,13 @@ FREZONE (tm) explosive available."""
CRLF CRLF
RTRUE 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 .ENDI

View file

@ -77,14 +77,20 @@ anything you didn't see before." CR>)
(IN GLOBAL-OBJECTS) (IN GLOBAL-OBJECTS)
(DESC "number") (DESC "number")
(SYNONYM NUMBER ONE TWO THREE) (SYNONYM NUMBER ONE TWO THREE)
(ADJECTIVE BIN) ;"for LOOK AT BIN THREE, etc. in Robot Pool"
(ACTION INTNUM-F)> (ACTION INTNUM-F)>
<ROUTINE INTNUM-F () <ROUTINE INTNUM-F ()
<COND (<AND <OR <NOUN-USED ,W?ONE ,INTNUM> <COND (<ADJ-USED ,A?BIN ,INTNUM>
<NOUN-USED ,W?TWO ,INTNUM> <COND (<NOT <EQUAL? ,HERE ,ROBOT-POOL>>
<NOUN-USED ,W?THREE ,INTNUM>> <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> <GLOBAL-IN? ,KEYPAD ,HERE>
<VERB? PUSH TYPE>> <VERB? PUSH TYPE>> ;"TYPE ONE for example"
<TELL <TELL
"[Use numerals: for example, TYPE 5 rather than TYPE FIVE.]" CR>) "[Use numerals: for example, TYPE 5 rather than TYPE FIVE.]" CR>)
(<AND <VERB? EXAMINE SHOOT ON OFF KILL MUNG> (<AND <VERB? EXAMINE SHOOT ON OFF KILL MUNG>
@ -92,9 +98,10 @@ anything you didn't see before." CR>)
,P-NUMBER> ,P-NUMBER>
<IN? ,WELDER ,HERE>> <IN? ,WELDER ,HERE>>
<COND (<PRSO? ,INTNUM> <COND (<PRSO? ,INTNUM>
<PERFORM-PRSA ,WELDER ,PRSI>) <PERFORM ,PRSA ,WELDER ,PRSI>)
(T (T
<PERFORM-PRSA ,PRSO ,WELDER>)>) <PERFORM ,PRSA ,PRSO ,WELDER>)>
<RTRUE>)
(<OR <AND <VERB? ENTER> (<OR <AND <VERB? ENTER>
<EQUAL? ,P-PRSA-WORD ,W?ENTER> <EQUAL? ,P-PRSA-WORD ,W?ENTER>
<GLOBAL-IN? ,KEYPAD ,HERE>> <GLOBAL-IN? ,KEYPAD ,HERE>>
@ -108,7 +115,7 @@ anything you didn't see before." CR>)
<COND (<EQUAL? ,P-NUMBER ,DIAL-SETTING> <COND (<EQUAL? ,P-NUMBER ,DIAL-SETTING>
<TELL ,SENILITY-STRIKES>) <TELL ,SENILITY-STRIKES>)
(<G? ,P-NUMBER 8000> (<G? ,P-NUMBER 8000>
<TELL "The dial only goes up to 8000." CR>) <TELL "The dial goes up to only 8000." CR>)
(T (T
<SETG DIAL-SETTING ,P-NUMBER> <SETG DIAL-SETTING ,P-NUMBER>
<TELL "\"Click.\"" CR>)>) <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. 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." Always return RFALSE (not handled) if you have resolved the problem."
<SET M-F <MOBY-FIND .TBL>> <SET M-F <MOBY-FIND .TBL>>
<COND (,DEBUG ;<COND (,DEBUG
<TELL "[Found " N .M-F " obj]" CR>)> <TELL "[Found " N .M-F " obj]" CR>)>
<COND (<EQUAL? 1 .M-F> <COND (<EQUAL? 1 .M-F>
<COND (,DEBUG ;<COND (,DEBUG
<TELL "[Namely: " D ,P-MOBY-FOUND "]" CR>)> <TELL "[Namely: " D ,P-MOBY-FOUND "]" CR>)>
<COND (.PRSO? <COND (.PRSO?
<SETG PRSO ,P-MOBY-FOUND> <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 ;"Protocol: returns .OBJ if that's the one to use
,NOT-HERE-OBJECT if case was handled and msg TELLed ,NOT-HERE-OBJECT if case was handled and msg TELLed
<> if WHICH-PRINT should be called" <> if WHICH-PRINT should be called"
<COND (,DEBUG ;<COND (,DEBUG
<TELL "[Generic: " D .OBJ "]" CR>)> <TELL "[Generic: " D .OBJ "]" CR>)>
<COND (<EQUAL? .OBJ ,NOT-HERE-OBJECT> <COND (<EQUAL? .OBJ ,NOT-HERE-OBJECT>
<RTRUE>) <RTRUE>)
@ -267,10 +274,22 @@ Always return RFALSE (not handled) if you have resolved the problem."
<ROUTINE GROUND-F () <ROUTINE GROUND-F ()
<COND (<VERB? CLIMB-ON ENTER> <COND (<VERB? CLIMB-ON ENTER>
<SETG C-ELAPSED 31> <COND (,STUNNED
<TELL "After a brief squat on the floor, you stand again." CR>) <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> (<VERB? LOOK-UNDER>
<IMPOSSIBLES>) <IMPOSSIBLES>)
(<AND <VERB? OPEN>
<EQUAL? ,HERE ,BOTTOM-OF-AIR-SHAFT>>
<PERFORM ,V?OPEN ,GRATING>
<RTRUE>)
(<VERB? LEAVE> (<VERB? LEAVE>
<DO-WALK ,P?UP>)>> <DO-WALK ,P?UP>)>>
@ -295,11 +314,18 @@ Always return RFALSE (not handled) if you have resolved the problem."
<ROUTINE CEILING-F () <ROUTINE CEILING-F ()
<COND (<AND <VERB? EXAMINE SEARCH> <COND (<AND <VERB? EXAMINE SEARCH>
<EQUAL? ,HERE ,PET-STORE>> <EQUAL? ,HERE ,PET-STORE>>
<MOVE ,PANEL ,HERE> <COND (<IN? ,PANEL ,HERE>
<THIS-IS-IT ,PANEL> <TELL
<TELL "There's a panel mounted in the ceiling. ">
"As you look carefully, you notice something that a casual inspection of <PERFORM ,V?EXAMINE ,PANEL>
the Pet Store would never have uncovered: a panel mounted in the ceiling." CR>) <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> (<AND <VERB? EXAMINE>
<EQUAL? ,HERE ,DOME>> <EQUAL? ,HERE ,DOME>>
<TELL ,DOME-DESC CR>) <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> <COND (<NOT ,LIT>
<TELL ,TOO-DARK CR>) <TELL ,TOO-DARK CR>)
(<AND <EQUAL? ,HERE ,GREASY-STRAW> (<AND <EQUAL? ,HERE ,GREASY-STRAW>
<IN? ,NECTAR ,LOCAL-GLOBALS>> <NOT <FSET? ,NECTAR ,TOUCHBIT>>>
<MOVE ,NECTAR ,HERE> <MOVE ,NECTAR ,HERE>
<THIS-IS-IT ,NECTAR> <THIS-IS-IT ,NECTAR>
<TELL <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 " 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 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 the large, spherical Command Module. Jutting \"north\" from it is a smaller
Sub-Module. Joining the Command Module, at its two other connection points, 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 ,TANGLE-OF-TUBES " These form a \"village,\" the sort of seedy, unauthorized
\"village,\" the sort of seedy, unauthorized village that frequently collects village that frequently collects around a space station." CR>)
around a space station." CR>)
(T (T
<TELL <TELL
"You see nothing but the majestic sweep of the galaxy." CR>)>) "You see nothing but the majestic sweep of the galaxy." CR>)>)
@ -410,7 +435,7 @@ around a space station." CR>)
(IN LOCAL-GLOBALS) (IN LOCAL-GLOBALS)
(DESC "sign") (DESC "sign")
(SYNONYM SIGN) (SYNONYM SIGN)
(ADJECTIVE EYE-CATCHING) (ADJECTIVE LARGE RED EYE-CATCHING)
(FLAGS READBIT) (FLAGS READBIT)
(ACTION SIGN-F)> (ACTION SIGN-F)>
@ -569,6 +594,10 @@ of multi-part forms, it's far outside your area of expertise." CR>)>)
<JIGS-UP <JIGS-UP
"Done. You might remain alive long enough to type EXAMINE MY STUMP. "Done. You might remain alive long enough to type EXAMINE MY STUMP.
Oops, I guess not.">) 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> (<AND <VERB? TAKE-WITH>
<PRSI? ,HANDS>> <PRSI? ,HANDS>>
<PERFORM ,V?TAKE ,PRSO> <PERFORM ,V?TAKE ,PRSO>
@ -586,7 +615,9 @@ Oops, I guess not.">)
<COND (<AND <VERB? PUT-ON RUN-OVER> <COND (<AND <VERB? PUT-ON RUN-OVER>
<PRSO? ,TONGUE>> <PRSO? ,TONGUE>>
<PERFORM ,V?TASTE ,PRSI> <PERFORM ,V?TASTE ,PRSI>
<RTRUE>)>> <RTRUE>)
(<VERB? DRILL>
<HANDS-F>)>>
<OBJECT PROTAGONIST <OBJECT PROTAGONIST
(IN DECK-TWELVE) (IN DECK-TWELVE)
@ -737,7 +768,7 @@ Sub-Module connector you might have expected." CR>)>)
<IN? ,FLOYD ,COPILOT-SEAT>> <IN? ,FLOYD ,COPILOT-SEAT>>
<RFALSE>) <RFALSE>)
(<AND <IN? ,PROTAGONIST ,COPILOT-SEAT> (<AND <IN? ,PROTAGONIST ,COPILOT-SEAT>
<IN? ,FLOYD ,COPILOT-SEAT>> <IN? ,FLOYD ,PILOT-SEAT>>
<RFALSE>) <RFALSE>)
(T (T
<RTRUE>)>> <RTRUE>)>>
@ -775,20 +806,38 @@ Sub-Module connector you might have expected." CR>)>)
(ACTION FURNISHING-F)> (ACTION FURNISHING-F)>
<ROUTINE FURNISHING-F () <ROUTINE FURNISHING-F ()
<COND (<VERB? OPEN SEARCH LOOK-INSIDE EXAMINE> <COND (<VERB? ENTER OPEN SEARCH LOOK-INSIDE EXAMINE>
<TELL <TELL
"You merely find a few personal items of little interest." CR>) "You merely find a few personal items of little interest." CR>)
(<VERB? PUT PUT-ON> (<VERB? PUT PUT-ON>
<TELL <TELL
"The " D ,PRSI " is such a mess that you can't find a good spot "The " D ,PRSI " is such a mess that you can't find a good spot
to put" TR ,PRSO>)>> 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" ;"sleeping"
<OBJECT BED <OBJECT BED
(IN LOCAL-GLOBALS) (IN LOCAL-GLOBALS)
(DESC "bed") (DESC "bed")
(SYNONYM BED) (SYNONYM BED BEDS)
(FLAGS VEHBIT SEARCHBIT CONTBIT OPENBIT) (FLAGS VEHBIT SEARCHBIT CONTBIT OPENBIT)
(ACTION BED-F)> (ACTION BED-F)>
@ -797,7 +846,9 @@ to put" TR ,PRSO>)>>
<NOT <GLOBAL-IN? ,BED ,HERE>>> <NOT <GLOBAL-IN? ,BED ,HERE>>>
<TELL "There's no bed here!" CR>) <TELL "There's no bed here!" CR>)
(<VERB? ENTER WALK-TO> (<VERB? ENTER WALK-TO>
<COND (<G? ,SLEEPY-LEVEL 0> <COND (,STUNNED
<YOURE-STUNNED>)
(<G? ,SLEEPY-LEVEL 0>
<MOVE ,PROTAGONIST ,BED> <MOVE ,PROTAGONIST ,BED>
<QUEUE I-FALL-ASLEEP 22> <QUEUE I-FALL-ASLEEP 22>
<DEQUEUE I-SLEEP-WARNINGS> <DEQUEUE I-SLEEP-WARNINGS>
@ -848,8 +899,7 @@ asleep in short order." CR>)
<ROUTINE I-SLEEP-WARNINGS () <ROUTINE I-SLEEP-WARNINGS ()
<COND (<OR <AND <IN? ,WELDER ,HERE> <COND (<OR <AND <IN? ,WELDER ,HERE>
<G? ,SLEEPY-LEVEL 3>> <G? ,SLEEPY-LEVEL 3>>
<AND <G? ,PLATO-ATTACK-COUNTER 0> ,STUNNED>
<IN? ,PLATO ,HERE>>>
<QUEUE I-HUNGER-WARNINGS 2> <QUEUE I-HUNGER-WARNINGS 2>
<RFALSE>)> <RFALSE>)>
<SETG SLEEPY-LEVEL <+ ,SLEEPY-LEVEL 1>> <SETG SLEEPY-LEVEL <+ ,SLEEPY-LEVEL 1>>
@ -890,7 +940,9 @@ a nice safe place to sleep." CR>)
<NOT <FSET? ,HERE ,WEIGHTLESSBIT>>> <NOT <FSET? ,HERE ,WEIGHTLESSBIT>>>
<TELL "to the deck and fall ">)> <TELL "to the deck and fall ">)>
<TELL "into a deep but fitful sleep.">)> <TELL "into a deep but fitful sleep.">)>
<WAKING-UP>)>> <WAKING-UP>)>
<COND (<NOT <IN? ,PROTAGONIST ,BED>>
<STOP>)>>
<ROUTINE I-FALL-ASLEEP () <ROUTINE I-FALL-ASLEEP ()
<COND (<IN? ,WELDER ,HERE> <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 "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 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 The presiding admiral describes your heroism on Resida, mentioning that you
were awarded the key to the planet, and then asks the ceremonial question, 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!\" \"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> <FSET? ,DOCKING-BAY-2 ,TOUCHBIT>
<PROB <* ,DAY 40>>> <PROB <* ,DAY 40>>>
<AND <ULTIMATELY-IN? ,OSTRICH-NIP> <AND <ULTIMATELY-IN? ,OSTRICH-NIP>
<IN? ,OSTRICH ,HERE>>> <IN? ,OSTRICH ,HERE>>
<IN? ,EXPLOSIVE ,DRILLED-HOLE>>
<JIGS-UP <JIGS-UP
"A movement awakens you in the middle of the night! Through unfocused "A movement awakens you in the middle of the night! Through unfocused
eyes you see a large machine rolling menacingly closer! A bright light eyes you see a large machine rolling menacingly closer! A bright light
leaps from it, straight toward...">) 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> (<PROB 60>
<TELL "..." <PICK-ONE ,DREAMS> ,ELLIPSIS>)> <TELL "..." <PICK-ONE ,DREAMS> ,ELLIPSIS>)>
<SETG DAY <+ ,DAY 1>> <SETG DAY <+ ,DAY 1>>
<SETG ROBOT-EVILNESS <+ ,ROBOT-EVILNESS 1>> <SETG ROBOT-EVILNESS <+ ,ROBOT-EVILNESS 1>>
<I-ROBOT-EVILNESS> <I-ROBOT-EVILNESS>
<SETG TIMER-SETTING 0>
<DEQUEUE I-TIMER>
<SETG SLEEPY-LEVEL 0> <SETG SLEEPY-LEVEL 0>
<SETG SUIT-PRESSED <>> <SETG SUIT-PRESSED <>>
<SETG FLOYD-ANGUISHED <>> <SETG FLOYD-ANGUISHED <>>
@ -1020,6 +1086,10 @@ leaps from it, straight toward...">)
<FCLEAR ,HEADLAMP ,ACTIVEBIT> <FCLEAR ,HEADLAMP ,ACTIVEBIT>
<FCLEAR ,HEADLAMP ,ONBIT> <FCLEAR ,HEADLAMP ,ONBIT>
<SETG HEADLAMP-COUNTER 0>)> <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 (<G? ,SOUP-WARMTH 0>
<COND (<FSET? ,THERMOS ,OPENBIT> <COND (<FSET? ,THERMOS ,OPENBIT>
<SETG SOUP-WARMTH 0>) <SETG SOUP-WARMTH 0>)
@ -1114,15 +1184,15 @@ friend,\" says Floyd with unbounded exuberance and a wide grin." CR>
<MOVE ,FLOYD ,HERE>)> <MOVE ,FLOYD ,HERE>)>
<COND (,LIT <COND (,LIT
<CRLF> <CRLF>
<V-LOOK>)>> <V-LOOK>)>
<STOP>>
;"thirst and hunger" ;"thirst and hunger"
<GLOBAL HUNGER-LEVEL 0> <GLOBAL HUNGER-LEVEL 0>
<ROUTINE I-HUNGER-WARNINGS () <ROUTINE I-HUNGER-WARNINGS ()
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0> <COND (,STUNNED
<IN? ,PLATO ,HERE>>
<QUEUE I-HUNGER-WARNINGS 2> <QUEUE I-HUNGER-WARNINGS 2>
<RFALSE>)> <RFALSE>)>
<SETG HUNGER-LEVEL <+ ,HUNGER-LEVEL 1>> <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 "If you don't eat or drink something in a few millichrons, you'll
probably pass out." CR>) probably pass out." CR>)
(<EQUAL? ,HUNGER-LEVEL 5> (<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" ;"the welding menace"
@ -1191,6 +1262,7 @@ vanishes! A wave of hot vapor pushes you backwards.">
<COND (<VISIBLE? ,EXPLOSIVE> <COND (<VISIBLE? ,EXPLOSIVE>
<TELL <TELL
" As the heat wave hits the explosive, it " ,SUBLIMES-INTO-FREZONE> " As the heat wave hits the explosive, it " ,SUBLIMES-INTO-FREZONE>
<DEQUEUE I-EXPLOSIVE-MELT>
<REMOVE-CAREFULLY ,EXPLOSIVE>)> <REMOVE-CAREFULLY ,EXPLOSIVE>)>
<COND (<AND <IN? ,OSTRICH ,HERE> <COND (<AND <IN? ,OSTRICH ,HERE>
<FSET? ,OSTRICH ,TOUCHBIT>> <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?" <GLOBAL WELDER-COUNTER 0> ;"how close is the attacking welder to you?"
<ROUTINE I-WELDER () ;"routine I-WELDER moved to INTERRUPTS file"
<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>)>>
;"utility routines and shared strings" ;"utility routines and shared strings"
@ -1283,7 +1316,10 @@ same two extensions at that moment.">)>
<ROUTINE CANT-SEE (OBJ) <ROUTINE CANT-SEE (OBJ)
<SETG P-WON <>> <SETG P-WON <>>
<TELL ,YOU-CANT "see"> <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">)> <TELL " any">)>
<COND (<EQUAL? .OBJ ,PRSI> <COND (<EQUAL? .OBJ ,PRSI>
<PRSI-PRINT>) <PRSI-PRINT>)
@ -1303,16 +1339,19 @@ same two extensions at that moment.">)>
<EQUAL? .OBJ ,TIMER ,DETONATOR>> <EQUAL? .OBJ ,TIMER ,DETONATOR>>
<SETG TIMER-CONNECTED <>> <SETG TIMER-CONNECTED <>>
<SET ALSO T> <SET ALSO T>
<COND (<VISIBLE? ,DETONATOR> <COND (<VISIBLE? ,TIMER>
<TELL " (The timer is" ,NO-LONGER-ATTACHED>)>) <TELL " (The timer is" ,NO-LONGER-ATTACHED>)>)
(<AND ,EXPLOSIVE-CONNECTED (<AND ,EXPLOSIVE-CONNECTED
<EQUAL? .OBJ ,EXPLOSIVE ,DETONATOR>> <EQUAL? .OBJ ,EXPLOSIVE ,DETONATOR>>
<SETG EXPLOSIVE-CONNECTED <>> <SETG EXPLOSIVE-CONNECTED <>>
<COND (<VISIBLE? ,DETONATOR> <COND (<VISIBLE? ,EXPLOSIVE>
<TELL " (The explosive is"> <TELL " (The explosive is">
<COND (.ALSO <COND (.ALSO
<TELL " also">)> <TELL " also">)>
<TELL ,NO-LONGER-ATTACHED>)>)> <TELL ,NO-LONGER-ATTACHED>)>)>
<COND (<AND <IN? ,EXPLOSIVE ,THERMOS>
<NOT <FSET? ,THERMOS ,OPENBIT>>>
<SETG THERMOS-FILLED-WITH-GAS T>)>
<FSET .OBJ ,TOUCHBIT> <FSET .OBJ ,TOUCHBIT>
<FCLEAR .OBJ ,TRYTAKEBIT> <FCLEAR .OBJ ,TRYTAKEBIT>
<REMOVE .OBJ>> <REMOVE .OBJ>>
@ -1358,14 +1397,20 @@ same two extensions at that moment.">)>
<NOT <PRSO? ,ROBOT-PICKED>>> <NOT <PRSO? ,ROBOT-PICKED>>>
<TELL " from outside the bin">)> <TELL " from outside the bin">)>
<TELL ,PERIOD-CR> <TELL ,PERIOD-CR>
<STOP>> <COND (,P-MULT
<RTRUE>)
(T
<STOP>)>>
<ROUTINE DO-FIRST (STRING "OPTIONAL" (OBJ <>)) <ROUTINE DO-FIRST (STRING "OPTIONAL" (OBJ <>))
<TELL ,YOULL-HAVE-TO .STRING> <TELL ,YOULL-HAVE-TO .STRING>
<COND (.OBJ <COND (.OBJ
<TPRINT .OBJ>)> <TPRINT .OBJ>)>
<TELL " first." CR> <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) <ROUTINE DOESNT-FIT (STRING)
<TELL <TELL
@ -1421,6 +1466,13 @@ same two extensions at that moment.">)>
<CRLF>)> <CRLF>)>
<RTRUE>> <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 () ;<ROUTINE UNIMPORTANT-THING-F ()
<TELL "That's not important; leave it alone." CR>> <TELL "That's not important; leave it alone." CR>>
@ -1555,3 +1607,21 @@ engine vents like steam from the nostrils of an angry bull.">
<GLOBAL LADDER-LEADS ", and a ladder leads both upward and downward."> <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 GET P-PRSO,1 >OBJ
SET 'NUM,ICNT SET 'NUM,ICNT
JUMP ?CND25 JUMP ?CND25
?CCL34: SET 'NUM,1 ?CCL34: GETB P-SYNTAX,P-SBITS
?CND25: ZERO? OBJ \?CND35 BAND STACK,P-SONUMS
EQUAL? ICNT,1 \?CND35 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 GET P-PRSI,1 >OBJ
?CND35: EQUAL? PRSA,V?WALK \?CCL41 ?CND37: EQUAL? PRSA,V?WALK \?CCL43
CALL PERFORM-PRSA,PRSO >V CALL PERFORM,PRSA,PRSO >V
JUMP ?CND39 JUMP ?CND41
?CCL41: ZERO? NUM \?CCL43 ?CCL43: ZERO? NUM \?CCL45
GETB P-SYNTAX,P-SBITS GETB P-SYNTAX,P-SBITS
BAND STACK,P-SONUMS BAND STACK,P-SONUMS
ZERO? STACK \?CCL46 ZERO? STACK \?CCL48
CALL PERFORM-PRSA >V CALL PERFORM,PRSA >V
SET 'PRSO,FALSE-VALUE SET 'PRSO,FALSE-VALUE
JUMP ?CND39 JUMP ?CND41
?CCL46: ZERO? LIT \?CCL48 ?CCL48: ZERO? LIT \?CCL50
PRINT TOO-DARK PRINT TOO-DARK
CRLF CRLF
CALL STOP CALL STOP
JUMP ?CND39 JUMP ?CND41
?CCL48: PRINTI "There isn't anything to " ?CCL50: PRINTI "There isn't anything to "
GET P-ITBL,P-VERBN >TMP GET P-ITBL,P-VERBN >TMP
EQUAL? PRSA,V?TELL \?CCL51 EQUAL? PRSA,V?TELL \?CCL53
PRINTI "talk to" PRINTI "talk to"
JUMP ?CND49 JUMP ?CND51
?CCL51: ZERO? P-OFLAG \?CTR52 ?CCL53: ZERO? P-OFLAG \?CTR54
ZERO? P-MERGED /?CCL53 ZERO? P-MERGED /?CCL55
?CTR52: GET TMP,0 ?CTR54: GET TMP,0
PRINTB STACK PRINTB STACK
JUMP ?CND49 JUMP ?CND51
?CCL53: GETB TMP,2 >?TMP1 ?CCL55: GETB TMP,2 >?TMP1
GETB TMP,3 GETB TMP,3
CALL WORD-PRINT,?TMP1,STACK CALL WORD-PRINT,?TMP1,STACK
?CND49: PRINTC 33 ?CND51: PRINTC 33
CRLF CRLF
SET 'V,FALSE-VALUE SET 'V,FALSE-VALUE
CALL STOP CALL STOP
JUMP ?CND39 JUMP ?CND41
?CCL43: SET 'P-NOT-HERE,0 ?CCL45: SET 'P-NOT-HERE,0
SET 'P-MULT,FALSE-VALUE SET 'P-MULT,FALSE-VALUE
GRTR? NUM,1 \?CND56 GRTR? NUM,1 \?CND58
SET 'P-MULT,TRUE-VALUE SET 'P-MULT,TRUE-VALUE
?CND56: SET 'TMP,FALSE-VALUE ?CND58: SET 'TMP,FALSE-VALUE
?PRG58: IGRTR? 'CNT,NUM \?CCL62 ?PRG60: IGRTR? 'CNT,NUM \?CCL64
GRTR? P-NOT-HERE,0 \?CCL65 GRTR? P-NOT-HERE,0 \?CCL67
PRINTI "[The " PRINTI "[The "
EQUAL? P-NOT-HERE,NUM /?CND66 EQUAL? P-NOT-HERE,NUM /?CND68
PRINTI "other " PRINTI "other "
?CND66: PRINTI "object" ?CND68: PRINTI "object"
EQUAL? P-NOT-HERE,1 /?CND68 EQUAL? P-NOT-HERE,1 /?CND70
PRINTC 115 PRINTC 115
?CND68: PRINTI " that you mentioned " ?CND70: PRINTI " that you mentioned "
EQUAL? P-NOT-HERE,1 /?CCL72 EQUAL? P-NOT-HERE,1 /?CCL74
PRINTI "are" PRINTI "are"
JUMP ?CND70 JUMP ?CND72
?CCL72: PRINTI "is" ?CCL74: PRINTI "is"
?CND70: PRINTI "n't here.]" ?CND72: PRINTI "n't here.]"
CRLF CRLF
JUMP ?CND39 JUMP ?CND41
?CCL65: ZERO? TMP \?CND39 ?CCL67: ZERO? TMP \?CND41
CALL REFERRING CALL REFERRING
JUMP ?CND39 JUMP ?CND41
?CCL62: ZERO? PTBL /?CCL76 ?CCL64: ZERO? PTBL /?CCL78
GET P-PRSO,CNT >OBJ1 GET P-PRSO,CNT >OBJ1
JUMP ?CND74 JUMP ?CND76
?CCL76: GET P-PRSI,CNT >OBJ1 ?CCL78: GET P-PRSI,CNT >OBJ1
?CND74: ZERO? PTBL /?CCL79 ?CND76: ZERO? PTBL /?CCL81
SET 'PRSO,OBJ1 SET 'PRSO,OBJ1
JUMP ?CND77 JUMP ?CND79
?CCL79: SET 'PRSO,OBJ ?CCL81: SET 'PRSO,OBJ
?CND77: ZERO? PTBL /?CCL82 ?CND79: ZERO? PTBL /?CCL84
SET 'PRSI,OBJ SET 'PRSI,OBJ
JUMP ?CND80 JUMP ?CND82
?CCL82: SET 'PRSI,OBJ1 ?CCL84: SET 'PRSI,OBJ1
?CND80: GRTR? NUM,1 /?CCL84 ?CND82: GRTR? NUM,1 /?CCL86
GET P-ITBL,P-NC1 GET P-ITBL,P-NC1
GET STACK,0 GET STACK,0
EQUAL? STACK,W?ALL,W?BOTH,W?EVERYT \?CND83 EQUAL? STACK,W?ALL,W?BOTH,W?EVERYT \?CND85
?CCL84: CALL DONT-ALL,OBJ1 ?CCL86: CALL DONT-ALL,OBJ1
ZERO? STACK \?PRG58 ZERO? STACK \?PRG60
EQUAL? OBJ1,IT \?CCL92 EQUAL? OBJ1,IT \?CCL94
PRINTD P-IT-OBJECT PRINTD P-IT-OBJECT
JUMP ?CND90 JUMP ?CND92
?CCL92: EQUAL? OBJ1,HIM \?CCL94 ?CCL94: EQUAL? OBJ1,HIM \?CCL96
PRINTD P-HIM-OBJECT PRINTD P-HIM-OBJECT
JUMP ?CND90 JUMP ?CND92
?CCL94: PRINTD OBJ1 ?CCL96: PRINTD OBJ1
?CND90: PRINTI ": " ?CND92: PRINTI ": "
?CND83: SET 'TMP,TRUE-VALUE ?CND85: SET 'TMP,TRUE-VALUE
CALL PERFORM-PRSA,PRSO,PRSI >V CALL PERFORM,PRSA,PRSO,PRSI >V
EQUAL? V,M-FATAL \?PRG58 EQUAL? V,M-FATAL \?PRG60
?CND39: EQUAL? V,M-FATAL \?CND97
SET 'P-CONT,FALSE-VALUE SET 'P-CONT,FALSE-VALUE
?CND97: CALL CLOCKER-VERB? SET 'QUOTE-FLAG,FALSE-VALUE
ZERO? STACK /?CCL101 ?CND41: EQUAL? V,M-FATAL \?CND99
EQUAL? PRSA,V?TELL /?CCL101 SET 'P-CONT,FALSE-VALUE
ZERO? P-WON /?CCL101 ?CND99: CALL CLOCKER-VERB?
ZERO? STACK /?CCL103
EQUAL? PRSA,V?TELL /?CCL103
ZERO? P-WON /?CCL103
CALL RUNNING?,I-SPACETRUCK CALL RUNNING?,I-SPACETRUCK
ZERO? STACK /?CND105 ZERO? STACK /?CND107
LESS? SPACETRUCK-COUNTER,5 \?CND105 LESS? SPACETRUCK-COUNTER,5 \?CND107
SET 'C-ELAPSED,240 SET 'C-ELAPSED,240
?CND105: GETP HERE,P?ACTION ?CND107: GETP HERE,P?ACTION
CALL STACK,M-END >V CALL STACK,M-END >V
JUMP ?CND1 JUMP ?CND1
?CCL101: SET 'C-ELAPSED,0 ?CCL103: SET 'C-ELAPSED,0
JUMP ?CND1 JUMP ?CND1
?CCL3: SET 'P-CONT,FALSE-VALUE ?CCL3: SET 'P-CONT,FALSE-VALUE
?CND1: ZERO? P-WON /?CND109 ?CND1: ZERO? P-WON /?CND111
ADD INTERNAL-MOVES,C-ELAPSED >INTERNAL-MOVES ADD INTERNAL-MOVES,C-ELAPSED >INTERNAL-MOVES
FSET? CHRONOMETER,WORNBIT \?CCL113 FSET? CHRONOMETER,WORNBIT \?CCL115
LESS? DAY,3 \?CCL116 LESS? DAY,3 \?CCL118
SET 'MOVES,INTERNAL-MOVES SET 'MOVES,INTERNAL-MOVES
JUMP ?CND111 JUMP ?CND113
?CCL116: SET 'MOVES,9947 ?CCL118: SET 'MOVES,9947
JUMP ?CND111 JUMP ?CND113
?CCL113: SET 'MOVES,0 ?CCL115: SET 'MOVES,0
?CND111: ZERO? C-ELAPSED /?CND117 ?CND113: ZERO? C-ELAPSED /?CND119
CALL CLOCKER >V CALL CLOCKER >V
?CND117: SET 'POSTPONE-ATTACK,FALSE-VALUE ?CND119: SET 'POSTPONE-ATTACK,FALSE-VALUE
SET 'FLOYD-TRYTAKEN,FALSE-VALUE SET 'FLOYD-TRYTAKEN,FALSE-VALUE
SET 'P-PRSA-WORD,FALSE-VALUE SET 'P-PRSA-WORD,FALSE-VALUE
SET 'P-NUMBER,0
SET 'PRSA,FALSE-VALUE SET 'PRSA,FALSE-VALUE
SET 'PRSO,FALSE-VALUE SET 'PRSO,FALSE-VALUE
SET 'PRSI,FALSE-VALUE SET 'PRSI,FALSE-VALUE
?CND109: SET 'C-ELAPSED,7 ?CND111: SET 'C-ELAPSED,7
RETURN C-ELAPSED RETURN C-ELAPSED
@ -335,87 +343,68 @@ START::
PRINTR "?]" 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 .FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI
ZERO? DEBUG /?CND1 SET 'OA,PRSA
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 'OO,PRSO SET 'OO,PRSO
SET 'OI,PRSI SET 'OI,PRSI
SET 'PRSA,A SET 'PRSA,A
ZERO? P-WALK-DIR \?CND10 ZERO? P-WALK-DIR \?CND1
EQUAL? IT,O,I \?CND10 EQUAL? IT,O,I \?CND1
CALL VISIBLE?,P-IT-OBJECT CALL VISIBLE?,P-IT-OBJECT
ZERO? STACK /?CCL16 ZERO? STACK /?CCL7
EQUAL? IT,O \?CCL19 EQUAL? IT,O \?CCL10
SET 'O,P-IT-OBJECT SET 'O,P-IT-OBJECT
JUMP ?CND10 JUMP ?CND1
?CCL19: SET 'I,P-IT-OBJECT ?CCL10: SET 'I,P-IT-OBJECT
?CND10: ZERO? P-WALK-DIR \?CND25 ?CND1: ZERO? P-WALK-DIR \?CND16
EQUAL? HIM,O,I \?CND25 EQUAL? HIM,O,I \?CND16
CALL VISIBLE?,P-HIM-OBJECT CALL VISIBLE?,P-HIM-OBJECT
ZERO? STACK /?CCL31 ZERO? STACK /?CCL22
EQUAL? HIM,O \?CCL34 EQUAL? HIM,O \?CCL25
SET 'O,P-HIM-OBJECT SET 'O,P-HIM-OBJECT
JUMP ?CND25 JUMP ?CND16
?CCL16: ZERO? I \?CCL22 ?CCL7: ZERO? I \?CCL13
CALL FAKE-ORPHAN,TRUE-VALUE CALL FAKE-ORPHAN,TRUE-VALUE
RETURN 8 RETURN 8
?CCL22: CALL REFERRING ?CCL13: CALL REFERRING
RETURN 8 RETURN 8
?CCL34: SET 'I,P-HIM-OBJECT ?CCL25: SET 'I,P-HIM-OBJECT
?CND25: SET 'PRSO,O ?CND16: SET 'PRSO,O
SET 'PRSI,I SET 'PRSI,I
EQUAL? A,V?WALK /?CCL42 EQUAL? A,V?WALK /?CCL33
EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?CCL42 EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?CCL33
CALL D-APPLY,STR?1,NOT-HERE-OBJECT-F >V CALL D-APPLY,STR?1,NOT-HERE-OBJECT-F >V
ZERO? V /?CCL42 ZERO? V /?CCL33
SET 'P-WON,FALSE-VALUE SET 'P-WON,FALSE-VALUE
JUMP ?CND40 JUMP ?CND31
?CCL31: ZERO? I \?CCL37 ?CCL22: ZERO? I \?CCL28
CALL FAKE-ORPHAN CALL FAKE-ORPHAN
RETURN 8 RETURN 8
?CCL37: CALL REFERRING,TRUE-VALUE ?CCL28: CALL REFERRING,TRUE-VALUE
RETURN 8 RETURN 8
?CCL42: SET 'O,PRSO ?CCL33: SET 'O,PRSO
SET 'I,PRSI SET 'I,PRSI
CALL THIS-IS-IT,PRSI CALL THIS-IS-IT,PRSI
CALL THIS-IS-IT,PRSO CALL THIS-IS-IT,PRSO
GETP WINNER,P?ACTION GETP WINNER,P?ACTION
CALL D-APPLY,STR?2,STACK >V CALL D-APPLY,STR?2,STACK >V
ZERO? V \?CND40 ZERO? V \?CND31
GET PREACTIONS,A GET PREACTIONS,A
CALL D-APPLY,STR?3,STACK >V CALL D-APPLY,STR?3,STACK >V
ZERO? V \?CND40 ZERO? V \?CND31
ZERO? I /?CCL52 ZERO? I /?CCL43
GETP I,P?ACTION GETP I,P?ACTION
CALL D-APPLY,STR?4,STACK >V CALL D-APPLY,STR?4,STACK >V
ZERO? V \?CND40 ZERO? V \?CND31
?CCL52: ZERO? O /?CCL56 ?CCL43: ZERO? O /?CCL47
EQUAL? A,V?WALK /?CCL56 EQUAL? A,V?WALK /?CCL47
GETP O,P?ACTION GETP O,P?ACTION
CALL D-APPLY,STR?5,STACK >V CALL D-APPLY,STR?5,STACK >V
ZERO? V \?CND40 ZERO? V \?CND31
?CCL56: GET ACTIONS,A ?CCL47: GET ACTIONS,A
CALL D-APPLY,FALSE-VALUE,STACK >V CALL D-APPLY,FALSE-VALUE,STACK >V
ZERO? V /?CND40 ZERO? V /?CND31
?CND40: SET 'PRSA,OA ?CND31: SET 'PRSA,OA
SET 'PRSO,OO SET 'PRSO,OO
SET 'PRSI,OI SET 'PRSI,OI
RETURN V RETURN V
@ -423,30 +412,11 @@ START::
.FUNCT D-APPLY,STR,FCN,FOO=0,RES .FUNCT D-APPLY,STR,FCN,FOO=0,RES
ZERO? FCN /FALSE ZERO? FCN /FALSE
ZERO? DEBUG /?CND4 ZERO? FOO /?CCL6
ZERO? STR \?CCL8
PRINTI " Default ->"
CRLF
JUMP ?CND4
?CCL8: PRINTI " "
PRINT STR
PRINTI " -> "
?CND4: ZERO? FOO /?CCL11
CALL FCN,FOO >RES 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 RETURN RES
?CCL18: ZERO? RES \?CCL20 ?CCL6: CALL FCN >RES
PRINTI "Not handled"
RETURN RES RETURN RES
?CCL20: PRINTI "Handled"
CRLF
?CND12: RETURN RES
.FUNCT DEQUEUE,RTN .FUNCT DEQUEUE,RTN

View file

@ -157,9 +157,9 @@
<CONSTANT M-ENTER 3> <CONSTANT M-ENTER 3>
<CONSTANT M-EXIT 4> <CONSTANT M-EXIT 4>
<CONSTANT M-LOOK 5> <CONSTANT M-LOOK 5>
<CONSTANT M-FATAL 6> <CONSTANT M-OBJDESC 6>
<CONSTANT M-OBJDESC 7> <CONSTANT M-OBJDESC? 7>
<CONSTANT M-OBJDESC? 8> <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" <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 TBL ,P-PRSI>
<SET OBJ <GET ,P-PRSO 1>> <SET OBJ <GET ,P-PRSO 1>>
.ICNT) .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)>> 1)>>
<COND (<AND <NOT .OBJ> <COND (<AND <NOT .OBJ>
<1? .ICNT>> <1? .ICNT>>
<SET OBJ <GET ,P-PRSI 1>>)> <SET OBJ <GET ,P-PRSI 1>>)>
<COND (<EQUAL? ,PRSA ,V?WALK> <COND (<EQUAL? ,PRSA ,V?WALK>
<SET V <PERFORM-PRSA ,PRSO>>) <SET V <PERFORM ,PRSA ,PRSO>>)
(<0? .NUM> (<0? .NUM>
<COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>> <COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
<SET V <PERFORM-PRSA>> <SET V <PERFORM ,PRSA>>
<SETG PRSO <>>) <SETG PRSO <>>)
(<NOT ,LIT> (<NOT ,LIT>
<TELL ,TOO-DARK CR> <TELL ,TOO-DARK CR>
@ -338,8 +340,10 @@ Alpha-Mu-79 to pick up a supply of " ,FORM-NAME ,ELLIPSIS>
<TELL D .OBJ1>)> <TELL D .OBJ1>)>
<TELL ": ">)>)> <TELL ": ">)>)>
<SET TMP T> <SET TMP T>
<SET V <PERFORM-PRSA ,PRSO ,PRSI>> <SET V <PERFORM ,PRSA ,PRSO ,PRSI>>
<COND (<EQUAL? .V ,M-FATAL> <COND (<EQUAL? .V ,M-FATAL>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<RETURN>)>)>>)> <RETURN>)>)>>)>
<COND (<EQUAL? .V ,M-FATAL> <COND (<EQUAL? .V ,M-FATAL>
<SETG P-CONT <>>)> <SETG P-CONT <>>)>
@ -370,6 +374,7 @@ Alpha-Mu-79 to pick up a supply of " ,FORM-NAME ,ELLIPSIS>
<SETG P-PRSA-WORD <>> <SETG P-PRSA-WORD <>>
;"else, when input is just a direction, P-PRSA-WORD will remain ;"else, when input is just a direction, P-PRSA-WORD will remain
whatever it was for the previous turn" whatever it was for the previous turn"
<SETG P-NUMBER 0>
<SETG PRSA <>> <SETG PRSA <>>
<SETG PRSO <>> <SETG PRSO <>>
<SETG PRSI <>>)> <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>> <PREP-PRINT <GETB ,P-SYNTAX ,P-SPREP1>>
<TELL "?]" CR>> <TELL "?]" CR>>
<ROUTINE PERFORM-PRSA ("OPTIONAL" (O <>) (I <>)) ;<ROUTINE PERFORM-PRSA ("OPTIONAL" (O <>) (I <>))
<PERFORM ,PRSA .O .I> <PERFORM ,PRSA .O .I>
<RTRUE>> <RTRUE>>
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI) <ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
<COND (,DEBUG ;<COND (,DEBUG
<TELL "[Perform: "> <TELL "[Perform: ">
%<COND (<GASSIGNED? ZILCH> %<COND (<GASSIGNED? ZILCH>
'<TELL N .A>) '<TELL N .A>)
@ -483,7 +488,8 @@ Alpha-Mu-79 to pick up a supply of " ,FORM-NAME ,ELLIPSIS>
<SET OO ,PRSO> <SET OO ,PRSO>
<SET OI ,PRSI> <SET OI ,PRSI>
<SETG PRSA .A> <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 (<VISIBLE? ,P-IT-OBJECT>
<COND (<EQUAL? ,IT .O> <COND (<EQUAL? ,IT .O>
<SET O ,P-IT-OBJECT>) <SET O ,P-IT-OBJECT>)
@ -556,9 +562,10 @@ Alpha-Mu-79 to pick up a supply of " ,FORM-NAME ,ELLIPSIS>
.V> .V>
<ROUTINE D-APPLY (STR FCN "OPTIONAL" (FOO <>) "AUX" RES) <ROUTINE D-APPLY (STR FCN "OPTIONAL" (FOO <>) "AUX" RES)
<COND (<NOT .FCN> <>) <COND (<NOT .FCN>
<>)
(T (T
<COND (,DEBUG ;<COND (,DEBUG
<COND (<NOT .STR> <COND (<NOT .STR>
<TELL " Default ->" CR>) <TELL " Default ->" CR>)
(T (T
@ -567,7 +574,7 @@ Alpha-Mu-79 to pick up a supply of " ,FORM-NAME ,ELLIPSIS>
<APPLY .FCN .FOO>) <APPLY .FCN .FOO>)
(T (T
<APPLY .FCN>)>> <APPLY .FCN>)>>
<COND (<AND ,DEBUG ;<COND (<AND ,DEBUG
.STR> .STR>
<COND (<EQUAL? .RES ,M-FATAL> <COND (<EQUAL? .RES ,M-FATAL>
<TELL "Fatal" CR>) <TELL "Fatal" CR>)

View file

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

View file

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

1
s6.zap
View file

@ -3,6 +3,7 @@
.INSERT "PS:<S6>S6PUR" .INSERT "PS:<S6>S6PUR"
.INSERT "PS:<S6>MISC" .INSERT "PS:<S6>MISC"
.INSERT "PS:<S6>PARSER" .INSERT "PS:<S6>PARSER"
.INSERT "PS:<S6>INTERRUPTS"
.INSERT "PS:<S6>SYNTAX" .INSERT "PS:<S6>SYNTAX"
.INSERT "PS:<S6>VERBS" .INSERT "PS:<S6>VERBS"
.INSERT "PS:<S6>GLOBALS" .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 "MISC" T>
<INSERT-FILE "PARSER" T> <INSERT-FILE "PARSER" T>
<INSERT-FILE "INTERRUPTS" T>
<INSERT-FILE "SYNTAX" T> <INSERT-FILE "SYNTAX" T>
<INSERT-FILE "VERBS" T> <INSERT-FILE "VERBS" T>
<INSERT-FILE "GLOBALS" 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 .ENDT
PT?2:: PT?2::
PT?16:: .TABLE PT?17:: .TABLE
6 6
W?FORM W?FORM
0 0
@ -75,7 +75,7 @@ PT?6:: .TABLE
.ENDT .ENDT
PT?7:: PT?7::
PT?11:: .TABLE PT?12:: .TABLE
3 3
W?SLOT W?SLOT
0 0
@ -88,44 +88,75 @@ PT?8:: .TABLE
W?RED W?RED
COMM-BUTTON-F COMM-BUTTON-F
W?SCREEN W?SCREEN
0 W?MESSAGE
SCREEN-F SCREEN-F
.ENDT .ENDT
PT?9:: .TABLE 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 3
W?BUTTON W?BUTTON
W?RED W?RED
LOG-READER-BUTTON-F LOG-READER-BUTTON-F
.ENDT .ENDT
PT?10:: .TABLE PT?11:: .TABLE
3 3
W?DIAL W?DIAL
0 0
DIAL-F DIAL-F
.ENDT .ENDT
PT?12:: .TABLE PT?13:: .TABLE
6 9
W?SEAT W?SEAT
0 0
THEATRE-SEAT-F THEATRE-SEAT-F
W?BOOTH W?BOOTH
W?PROJECTION W?PROJECTION
PROJECTION-BOOTH-F PROJECTION-BOOTH-F
W?LOCK
0
BRIG-LOCK-F
.ENDT .ENDT
PT?13:: .TABLE PT?14:: .TABLE
3 3
W?DOME W?DOME
W?TRANSPARENT W?TRANSPARENT
DOME-OBJECT-F DOME-OBJECT-F
.ENDT .ENDT
PT?14::
PT?15:: .TABLE 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?SHIP
W?ALIEN W?ALIEN
ALIEN-SHIP-PSEUDO-F ALIEN-SHIP-PSEUDO-F
@ -134,42 +165,42 @@ PT?15:: .TABLE
ALIEN-SHIP-PSEUDO-F ALIEN-SHIP-PSEUDO-F
.ENDT .ENDT
PT?17:: .TABLE PT?18:: .TABLE
3 3
W?COMPUTER W?COMPUTER
0 0
COMPUTER-F COMPUTER-F
.ENDT .ENDT
PT?18:: .TABLE PT?19:: .TABLE
3 3
W?POSTER W?POSTER
0 0
RECRUITMENT-POSTER-F RECRUITMENT-POSTER-F
.ENDT .ENDT
PT?19:: .TABLE PT?20:: .TABLE
3 3
W?MIRROR W?MIRROR
W?GLASS W?GLASS
MIRROR-F MIRROR-F
.ENDT .ENDT
PT?20:: .TABLE PT?21:: .TABLE
3 3
W?POSTER W?POSTER
0 0
TRAVEL-AGENCY-POSTER-F TRAVEL-AGENCY-POSTER-F
.ENDT .ENDT
PT?21:: .TABLE PT?22:: .TABLE
3 3
W?HOLE W?HOLE
W?SMALL W?SMALL
DOC-HOLE-F DOC-HOLE-F
.ENDT .ENDT
PT?22:: .TABLE PT?23:: .TABLE
3 3
W?SLOT W?SLOT
0 0

820
s6str.zap
View file

@ -11,447 +11,465 @@ STRBEG::
.GSTR STR?5,"PRSO" .GSTR STR?5,"PRSO"
.GSTR STR?6,"OOPS" .GSTR STR?6,"OOPS"
.GSTR STR?7,"AGAIN" .GSTR STR?7,"AGAIN"
.GSTR STR?8,"begins" .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,"ends" .GSTR STR?9,"."
.GSTR STR?10,"leave the game" .GSTR STR?10," The log reader explodes!"
.GSTR STR?11,"restart" .GSTR STR?11,"begins"
.GSTR STR?12,"Biting" .GSTR STR?12,"ends"
.GSTR STR?13,"climb into" .GSTR STR?13,"leave the game"
.GSTR STR?14,"climb onto" .GSTR STR?14,"restart"
.GSTR STR?15,"close" .GSTR STR?15,"Biting"
.GSTR STR?16,"disconnect the timer" .GSTR STR?16,"climb into"
.GSTR STR?17,"disconnect the explosive" .GSTR STR?17,"climb onto"
.GSTR STR?18,"crumple" .GSTR STR?18,"close"
.GSTR STR?19,"dress" .GSTR STR?19,"disconnect the timer"
.GSTR STR?20,"open" .GSTR STR?20,"disconnect the explosive"
.GSTR STR?21,"get onto" .GSTR STR?21,"crumple"
.GSTR STR?22,"get into" .GSTR STR?22,"dress"
.GSTR STR?23,"look" .GSTR STR?23,"open"
.GSTR STR?24,"Kicking" .GSTR STR?24,"get onto"
.GSTR STR?25,"Knocking on" .GSTR STR?25,"get into"
.GSTR STR?26,"You plummet down the shaft..." .GSTR STR?26,"look"
.GSTR STR?27,"sound" .GSTR STR?27,"Kicking"
.GSTR STR?28,"look inside" .GSTR STR?28,"Knocking on"
.GSTR STR?29,"look through" .GSTR STR?29,"jump"
.GSTR STR?30,"indecis" .GSTR STR?30,"You plummet down the shaft..."
.GSTR STR?31,"Pulling" .GSTR STR?31,"sound"
.GSTR STR?32,"move" .GSTR STR?32,"look inside"
.GSTR STR?33,"Trying to destroy" .GSTR STR?33,"look through"
.GSTR STR?34,"negat" .GSTR STR?34,"indecis"
.GSTR STR?35,"ff" .GSTR STR?35,"Pulling"
.GSTR STR?36,"n" .GSTR STR?36,"move"
.GSTR STR?37,"pick" .GSTR STR?37,"Trying to destroy"
.GSTR STR?38,"put it in the presser" .GSTR STR?38,"negat"
.GSTR STR?39,"Pushing" .GSTR STR?39,"ff"
.GSTR STR?40,"Playing in this way with" .GSTR STR?40,"n"
.GSTR STR?41,"read" .GSTR STR?41,"pick"
.GSTR STR?42,"roll" .GSTR STR?42,"Pushing"
.GSTR STR?43,"search" .GSTR STR?43,"Playing in this way with"
.GSTR STR?44,"Turning" .GSTR STR?44,"read"
.GSTR STR?45,"Shaking" .GSTR STR?45,"roll"
.GSTR STR?46,"." .GSTR STR?46,"search"
.GSTR STR?47,"smell" .GSTR STR?47,"Turning"
.GSTR STR?48,"spray" .GSTR STR?48,"Shaking"
.GSTR STR?49,"move that much" .GSTR STR?49,"smell"
.GSTR STR?50,"taste" .GSTR STR?50,"spray"
.GSTR STR?51,"Touching" .GSTR STR?51,"move that much"
.GSTR STR?52,"Keyboard is only active following authorization" .GSTR STR?52,"taste"
.GSTR STR?53,"You have already made your selection" .GSTR STR?53,"Touching"
.GSTR STR?54,"That bin is unoccupied" .GSTR STR?54,"Keyboard is active only following authorization"
.GSTR STR?55,"Error" .GSTR STR?55,"You have already made your selection"
.GSTR STR?56,"Fuel levels at zero" .GSTR STR?56,"That bin is unoccupied"
.GSTR STR?57,"Course set. Launch in approximately 30 millichrons" .GSTR STR?57,"Error"
.GSTR STR?58,"Safety precautions forbid the acceptance of course settings unless both the pilot and copilot seats are occupied" .GSTR STR?58,"Fuel level at zero"
.GSTR STR?59,"Select a level between 1 and 9" .GSTR STR?59,"Course set. Launch in approximately 30 millichrons"
.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?60,"Safety precautions forbid the acceptance of course settings unless both the pilot and copilot seats are occupied"
.GSTR STR?61,"You are already at that level" .GSTR STR?61,"Select a level between 1 and 9"
.GSTR STR?62,"You have not deposited a coin" .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,"This dispenser offers only 9 selections" .GSTR STR?63,"You are already at that level"
.GSTR STR?64,"Sorry, that item is sold out. Please contact your PX Officer regarding restocking of dispenser" .GSTR STR?64,"You have not deposited a coin"
.GSTR STR?65,"walk" .GSTR STR?65,"This dispenser offers only 9 selections"
.GSTR STR?66,"wear" .GSTR STR?66,"Sorry, that item is sold out. Inform your PX Officer for restocking"
.GSTR STR?67,"posit" .GSTR STR?67,"walk"
.GSTR STR?68,"remove" .GSTR STR?68,"wear"
.GSTR STR?69," is as worthwhile as cleaning a grotch cage." .GSTR STR?69,"posit"
.GSTR STR?70," accomplishes nothing." .GSTR STR?70,"remove"
.GSTR STR?71," has no desirable effect." .GSTR STR?71," is as worthwhile as cleaning a grotch cage."
.GSTR STR?72,"Fat chance." .GSTR STR?72," accomplishes nothing."
.GSTR STR?73,"A valiant attempt." .GSTR STR?73," has no desirable effect."
.GSTR STR?74,"You can't be serious." .GSTR STR?74,"Fat chance."
.GSTR STR?75,"Not bloody likely." .GSTR STR?75,"A valiant attempt."
.GSTR STR?76,"What a concept." .GSTR STR?76,"You can't be serious."
.GSTR STR?77,"Nice try." .GSTR STR?77,"Not bloody likely."
.GSTR STR?78,"You are behaving like a demented Denebian slime devil." .GSTR STR?78,"What a concept."
.GSTR STR?79,"Dream on." .GSTR STR?79,"Nice try."
.GSTR STR?80,"It's the looney bin for you!" .GSTR STR?80,"You are behaving like a demented Denebian slime devil."
.GSTR STR?81,"You have lost your mind." .GSTR STR?81,"Dream on."
.GSTR STR?82,"A waste of time." .GSTR STR?82,"You're wacko."
.GSTR STR?83,"A worthless action -- and much too difficult for a poorly-written program like this one to handle." .GSTR STR?83,"You have lost your mind."
.GSTR STR?84,"Useless. Unhelpful." .GSTR STR?84,"A waste of time."
.GSTR STR?85,"There's another turn down the drain." .GSTR STR?85,"A worthless action -- and much too complex for a crufty program like this one to handle."
.GSTR STR?86,"Why bother?" .GSTR STR?86,"Useless. Unhelpful."
.GSTR STR?87,"with" .GSTR STR?87,"There's another turn down the drain."
.GSTR STR?88,"Done. You might remain alive long enough to type EXAMINE MY STUMP. Oops, I guess not." .GSTR STR?88,"Why bother?"
.GSTR STR?89,"If you insist." .GSTR STR?89,"with"
.GSTR STR?90,"Wow! A hole where your torso used to be!" .GSTR STR?90,"Done. You might remain alive long enough to type EXAMINE MY STUMP. Oops, I guess not."
.GSTR STR?91,"I was going to ask you the same question!" .GSTR STR?91,"If you insist."
.GSTR STR?92,"Floyd loves games! Let's play!" .GSTR STR?92,"Wow! A hole where your torso used to be!"
.GSTR STR?93,"Safety precautions forbid the activation of the vehicle unless both the pilot and copilot seats are occupied" .GSTR STR?93,"I was going to ask you the same question!"
.GSTR STR?94,"Spacecraft activated. Type in the course heading" .GSTR STR?94,"Floyd loves games! Let's play!"
.GSTR STR?95,"Authorization approved. Type the bin number of the desired robot" .GSTR STR?95,"Safety precautions forbid the activation of the vehicle unless both the pilot and copilot seats are occupied"
.GSTR STR?96,"This form has not been validated by a commanding officer" .GSTR STR?96,"Spacecraft activated. Type in the course heading"
.GSTR STR?97,"Improper form for this location" .GSTR STR?97,"Authorization approved. Type the bin number of the desired robot"
.GSTR STR?98,"slot" .GSTR STR?98,"This form has not been validated by a commanding officer"
.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?99,"Improper form for this location"
.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?100,"slot"
.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?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 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?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 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?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,"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?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 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?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." 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?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?107,"You collapse from extreme thirst and hunger." .GSTR STR?109,"Snore...snore...KABOOM!"
.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?110,"You collapse from extreme thirst and hunger."
.GSTR STR?109,"It's too dark to see a thing." .GSTR STR?111,"It's too dark to see a thing."
.GSTR STR?110,"You're not holding" .GSTR STR?112,"You're not holding"
.GSTR STR?111,"There's nothing " .GSTR STR?113,"There's nothing "
.GSTR STR?112,"You can see" .GSTR STR?114,"You can see"
.GSTR STR?113,"It seems that" .GSTR STR?115,"It seems that"
.GSTR STR?114,"You can't " .GSTR STR?116,"You can't "
.GSTR STR?115,"You'll have to " .GSTR STR?117,"You'll have to "
.GSTR STR?116,"Look around you. .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?134,"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?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?134,"Request for Stellar Patrol Issue Regulation Black Form Binders Request Form Forms" .GSTR STR?136,"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?137,"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?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?139,", 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?140,"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?141," 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?142,"""The Galaxy's Best Zero-Gee Restaurant"""
.GSTR STR?141,"The eternal flame has been extinguished!" .GSTR STR?143,"The eternal flame has been extinguished!"
.GSTR STR?142,"Lieutenant First Class" .GSTR STR?144,"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?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?144,"You are already in that mode. .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?149,", 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?150,"The form is swallowed up, followed by a long pause for triple-redundancy processing. "
.GSTR STR?149,"The form is rejected. " .GSTR STR?151,"The form is rejected. "
.GSTR STR?150,"suddenly sublimes into a puff of FREZONE (tm) gas." .GSTR STR?152,"suddenly sublimes into a puff of FREZONE (tm) gas."
.GSTR STR?151,"For those unfamiliar with PLANETFALL, " .GSTR STR?153,"For those unfamiliar with PLANETFALL, "
.GSTR STR?152," .GSTR STR?154,"
You have entered a cluttered space bubble " You have entered a cluttered space bubble "
.GSTR STR?153," in the center... Oops. At second glance, you realize that the " .GSTR STR?155," 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?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?155,"You detach the detonator from " .GSTR STR?157,"You detach the detonator from "
.GSTR STR?156," The ostrich gives a pathetic squawk of terror " .GSTR STR?158," The ostrich gives a pathetic squawk of terror "
.GSTR STR?157,"ou can just make out a letter ""M."" .GSTR STR?159,"ou can just make out a letter ""M.""
" "
.GSTR STR?158," and lands on the floor." .GSTR STR?160," and lands on the floor."
.GSTR STR?159,", and a ladder leads both upward and downward." .GSTR STR?161,", and a ladder leads both upward and downward."
.GSTR STR?160,"That's too long to wait. .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?163,". 2. A callous disregard for scientific accuracy on the part of the author"
.GSTR STR?162,"You must insert a validated Assignment Completion Form in the slot" .GSTR STR?164,"[Please refer to them as FIRST BIN, SECOND BIN, and THIRD BIN.]
.GSTR STR?163,"""STELLAR PATROL "
.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 Paperwork Task Force
ID Number: 1451-352-716""" 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?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?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?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?166,"The deck five corridor ends here at the entrance to the cargo bay, to starboard. A smaller entrance leads fore." .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?167,"He's an amusing and friendly little fellow." .GSTR STR?175,"He's an amusing and friendly little fellow."
.GSTR STR?168,"That's me!" .GSTR STR?176,"That's me!"
.GSTR STR?169,"Floyd, he" .GSTR STR?177,"Floyd, he"
.GSTR STR?170,"rubs his head affectionately against your shoulder" .GSTR STR?178,"rubs his head affectionately against your shoulder"
.GSTR STR?171,"notices a mouse scurrying by and tries to hide behind you" .GSTR STR?179,"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?180,"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?181,"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?182,"plays a quick game of paddleball, almost breaking his record of four hits"
.GSTR STR?175,"paces impatiently" .GSTR STR?183,"paces impatiently"
.GSTR STR?176,"absent-mindedly recites the first six hundred digits of pi" .GSTR STR?184,"absent-mindedly recites the first six hundred digits of pi"
.GSTR STR?177,"recalls the time he bruised his knee" .GSTR STR?185,"recalls the time he bruised his knee"
.GSTR STR?178,"tells you how much it hurts to repair dents" .GSTR STR?186,"tells you how much it hurts to repair dents"
.GSTR STR?179,"cranes his neck to see what you are doing" .GSTR STR?187,"cranes his neck to see what you are doing"
.GSTR STR?180,"examines himself for signs of rust" .GSTR STR?188,"examines himself for signs of rust"
.GSTR STR?181,"absent-mindedly oils one of his joints" .GSTR STR?189,"absent-mindedly oils one of his joints"
.GSTR STR?182,"wanders restlessly around the room" .GSTR STR?190,"wanders restlessly around the room"
.GSTR STR?183,"sneaks up clumsily behind you and shouts ""Boo!"" in your ear" .GSTR STR?191,"sneaks up clumsily behind you and shouts ""Boo!"" in your ear"
.GSTR STR?184,"frets about the possibility of his batteries failing" .GSTR STR?192,"frets about the possibility of his batteries failing"
.GSTR STR?185,"whistles tunelessly" .GSTR STR?193,"whistles tunelessly"
.GSTR STR?186,"boasts about the time he helped someone find a lost paper clip" .GSTR STR?194,"boasts about the time he helped someone find a lost paper clip"
.GSTR STR?187,"yawns and looks bored" .GSTR STR?195,"yawns and looks bored"
.GSTR STR?188,"complains about a recent assignment in the forms filing department" .GSTR STR?196,"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?197,"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?198,"stomps on your foot, for no apparent reason"
.GSTR STR?191,"accidentally bumps into you, and reacts by cursing your ancestors" .GSTR STR?199,"accidentally bumps into you, and reacts by cursing your ancestors"
.GSTR STR?192,"produces a loud burp and fails to apologize" .GSTR STR?200,"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?201,"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?202,"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?203,"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?204,"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?205,"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?206,"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?207,"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?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?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?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?202,"Floyd gives Plato a friendly hug" .GSTR STR?210,"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?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?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?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?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?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?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?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?207,"open the hatch" .GSTR STR?215,"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?216,"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?217,"Anyone seen any smokeys in the Nebulon sector?"
.GSTR STR?210,"I'm looking for a traffic report on spacelane 317-455." .GSTR STR?218,"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?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?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?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?213,". Once in space, the truck's air gushes out through the open hatch." .GSTR STR?221,". 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?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?215,"Fuel level at three-quarters" .GSTR STR?223,"Fuel level at three-quarters"
.GSTR STR?216,"Fuel level at one-quarter" .GSTR STR?224,"Fuel level at one-quarter"
.GSTR STR?217,"Docking bay one is occupied. Defaulting to bay two" .GSTR STR?225,"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?226,"Arrival at terminus of inputted course. Fuel level 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?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?220," blueberry walnut soup" .GSTR STR?228," blueberry walnut soup"
.GSTR STR?221," Ramosian tree-mold custard" .GSTR STR?229,"soup"
.GSTR STR?222," apricot yogurt" .GSTR STR?230," Ramosian tree-mold custard"
.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?231," apricot yogurt"
.GSTR STR?224,"I'm really not at all mechanically inclined. My sincerest apologies." .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?225,"It's a kind of a thingamabob for putting in a, you know, a whosiwhatsis." .GSTR STR?233,"I'm really not at all mechanically inclined. My sincerest apologies."
.GSTR STR?226,"This is one of the storage areas. Exits lie to the east and south." .GSTR STR?234,"It's a kind of a thingamabob for putting in a, you know, a whosiwhatsis."
.GSTR STR?227,"twenty tiny sockets" .GSTR STR?235,"This is one of the storage areas. Exits lie to the east and south."
.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?236,"twenty tiny sockets"
.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?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?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?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?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?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?232,"coin slot" .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?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?241,"coin slot"
.GSTR STR?234,"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis." .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?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?243,"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis."
.GSTR STR?236,"This is a modest prison, with three cells. The only exit is west." .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?237,"lock" .GSTR STR?245,"This is a modest prison, with three cells. The only exit is west."
.GSTR STR?238,"The corridor continues around to the northwest and southwest, and an adjoining one heads east." .GSTR STR?246,"lock"
.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?247,"The corridor continues around to the northwest and southwest, and an adjoining one heads east."
.GSTR STR?240," The shock seems to have been a bit too much for your heart." .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?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?249," The shock seems to have been a bit too much for your heart."
.GSTR STR?242,"reader" .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?243," The log reader explodes!" .GSTR STR?251,"reader"
.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?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?245,"Sitting on the Commander's desk is an ordinary-looking log tape. There's a notation printed on it." .GSTR STR?253,"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?254,"""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?255,"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?256,"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?257,"hole"
.GSTR STR?250,"This is the Station Commander's conference room. Doors point north and west." .GSTR STR?258,"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?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?252,"This is a wide but not very tall docking bay. The station entrance lies to the east." .GSTR STR?260,"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?261,"""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?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?255,"You enter one of the cubicles but find nothing of interest." .GSTR STR?263,"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?264,"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?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?258,"A multiple-function exercise machine sits imposingly on one side of the gym. There is a sign above it." .GSTR STR?266,"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?267," 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?268,"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?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?262,"""Chapel Maintenance Procedures" .GSTR STR?270,"""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?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?264,"Aaarghhh! The coffee is poisoned! It's eating away at your insides!!" .GSTR STR?272,"coffee"
.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?273,"Aaarghhh! The coffee is poisoned! It's eating away at your insides!!"
.GSTR STR?266,"detonator" .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?267,"This is a medium-sized conference room with doors to the south and west." .GSTR STR?275,"detonator"
.GSTR STR?268,"This is a fairly large conference room with north and south exits." .GSTR STR?276,"This is a medium-sized conference room with doors to the south and west."
.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?277,"This is a fairly large conference room with north and south exits."
.GSTR STR?270,"Magazines are not to be removed from the library" .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?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?279,"Magazines are not to be removed from the library"
.GSTR STR?272,"""Shrubbery Maintenance Supplies""" .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?273,"open the grating" .GSTR STR?281,"""Shrubbery Maintenance Supplies"""
.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?282,"open the grating"
.GSTR STR?275,"This is the rather ordinary sanitary facility for the barracks to the north." .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?276,"This is the station's largest docking bay. A huge door to the east leads into the station. .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." 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?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?278,"Hmmm. Some kind of alien writing, I presume. If I recall, the Mayor is an expert on that subject." .GSTR STR?287,"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?288,"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?289,"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?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?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?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?283,"opening of the chamber" .GSTR STR?292,"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?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?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?294,"A little ""sleeping"" robot named ""Oliver"" is lying here."
.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?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?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?296,"Ah, a new robot. Poor fellow; new robots are so mercilessly mistreated by the older robots. Such is our lot."
.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?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?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?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?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?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?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?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?292,"A moderately luxurious SanFac, with a pair of bathtubs in addition to the regular fixtures. Exits lead north, northeast, and northwest." .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?293,"Partway down, you discover that the ladder passage to Level Eight is sealed off -- apparently from below." .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?294,"""Collater Repair Manual""" .GSTR STR?303,"A few rungs down, you discover that the ladder passage to Level Eight is sealed off -- apparently from below."
.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?304,"""Collater Repair Manual"""
.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?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?297,"drill" .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?298,"remove the bit that's in the drill" .GSTR STR?307,"drill"
.GSTR STR?299,"Oh, no! The elevator isn't at this floor! It's a long plunge..." .GSTR STR?308,"remove the bit that's in the drill"
.GSTR STR?300,"Magnetically-stored data has been damaged; see the Security Officer to have data restored" .GSTR STR?309,"Oh, no! The elevator isn't at this floor! It's a long plunge..."
.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?310,"Magnetically-stored data has been damaged; see the Security Officer to have data restored"
.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?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?303,"This is a small office associated with the lab to the south." .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?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?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! 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."" 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." 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?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?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?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?307,"Lying on one of the desks is a scribbled note." .GSTR STR?317,"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?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?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?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?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?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?311,"Floyd's best friend! Oh, except you, of course!" .GSTR STR?321,"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?322,"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?323,"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?324," 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?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?316,"You are in a large, vertical air duct. Handholds lead up and down." .GSTR STR?326,"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?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?318,"The sides ducts are too small to enter!" .GSTR STR?328,"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?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." 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?330," 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?331,"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?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?323,"There's no way to climb the shaft." .GSTR STR?333,"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?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?325,"Smoke is trickling from the tails of the tiny rockets, as though the duplicate pyramids were preparing for activation and launch" .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?326,"One of the blinking lights on the reactor goes from yellow to red" .GSTR STR?336,"One of the blinking lights on the reactor goes from yellow to red"
.GSTR STR?327,"the pyramid, Floyd" .GSTR STR?337,"the pyramid, Floyd"
.GSTR STR?328,"This is an east-west tube, widening as it gets farther from the Command Module." .GSTR STR?338,"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?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?330,"Well, there are openings in ALMOST every direction." .GSTR STR?340,"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?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?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?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?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?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?334,"groof hunting on Septurion Seven" .GSTR STR?344,"groof hunting on Septurion Seven"
.GSTR STR?335,"a little-known incident during the signing of the Treaty of Gishen IV" .GSTR STR?345,"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?346,"a torrid romance on the tropical planet of San Cupidor"
.GSTR STR?337,"searching for treasure in a magical underground kingdom" .GSTR STR?347,"searching for treasure in a magical underground empire"
.GSTR STR?338,"bullfighting, skydiving, and dental hygiene" .GSTR STR?348,"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?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?340,"Some miner has left a headlamp here." .GSTR STR?350,"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?351,"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?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?343,"Floyd loves anything reflective! Give Floyd a mirror and he'll be happy for days!" .GSTR STR?353,"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?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?345,"A small, translucent plastic bag is sitting on one of the shelves." .GSTR STR?355,"A small, translucent plastic bag is sitting on one of the shelves."
.GSTR STR?346,", delectable, moist boysenberry-flavored taffy" .GSTR STR?356,", 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?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?348,"You can see the faint outline of a panel in the ceiling." .GSTR STR?358,"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?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?350,"""FREZONE (tm) Liquid Gorzium Explosive .GSTR STR?360,"""FREZONE (tm) Liquid Gorzium Explosive
Instructions for use: Instructions for use:
1. Insert explosive in hole of appropriate diameter. 1. Insert explosive in hole of appropriate diameter.
2. Attach detonator to explosive and timer. 2. Attach detonator to explosive and timer.
3. Set timer. 3. Set timer.
4. Vamoose. 4. Vamoose.
NOTE: Do not expose explosive to temperatures above 150 degrees Kelvin for period of more than 100 millichrons.""" NOTE: Do not expose explosive to temperatures above 150 degrees Kelvin for periods 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?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?352,"The most recognizable item in the sculpture is a J-series hyperdiode." .GSTR STR?362,"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?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?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?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?355,"Your lungs rupture, not to mention all sorts of even nastier stuff that you're lucky if you can't imagine." .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?356,"This filthy north-south tube is quite a change from the gleaming, well-scrubbed metal of the space station." .GSTR STR?366,"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?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?358," fire nectar - thick and warming" .GSTR STR?368," 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?369,"nectar"
.GSTR STR?360,"You spot a copy of a book entitled ""Deciphering Alien Speech.""" .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?361,"""(bitter/salty/bitter) softness/weakness .GSTR STR?371,"You spot a copy of a book entitled ""Deciphering Alien Speech."""
(sweet/very-sour) Hunji (noun form) .GSTR STR?372,"""bttr/salty/bttr softness/weakness
(bland/salty/sour) Zeenak (adj form) sweet/v.sour Hunji (noun form)
(bland/bitter) air/atmosphere blnd/salty/sour Zeenak (adj form)
(very-salty) however blnd/bttr air/atmosphere
(sweet/very-sweet) legal destruction (sabotage?) sour/blnd/blnd/sour died/failed
(very-sweet/bland/sour) I have shined light upon sweet/v.sweet legal destruction
(sour/bland/sour/sweet) turn back (sabotage?)
(bland) (definite article?) v.salty however
(slightly-sour) solitary sour/blnd/sour/sweet turn back
(very-sweet/very-salty) element/substance blnd (def. article?)
(sweet/slightly-bitter) brethren (adj form) v.sweet/blnd/sour I have shined
(sour/bland/bland/sour) died/failed light upon
(bland/sour/very-sour) is souring/turning bad slightly-sour solitary
(spicy-hot/bland/bland) (a number) (78? 7/8?) v.sweet/v.salty element/substance
(bitter/sour/very-sour) weapon (poss form) sweet/slightly-bttr brethren (adj)
(very-sweet) (emphasis mark?) blnd/sour/v.sour is souring
(very-salty/salty/sour) bad/evil/deadly radiation (plur form)""" v.salty/salty/sour bad/evil/deadly
.GSTR STR?362,"This is a branch office of the First Galactic Bank of Nebulon. There are doors to the north and northwest." radiations
.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." spicy-hot/blnd/blnd 78 (?) 7/8 (?)
.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." bttr/sour/v.sour weapon (possesv.)
.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." v.sweet (emphasis mark?)"""
.GSTR STR?366," .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 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." 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?378,"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?379,"""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?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?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?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?371,"This is a dilapidated vessel that some seedy loan shark has moored on the south side of the alley." .GSTR STR?382,"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?383,"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?384,"""ONE GALAKMID
Third Galactic Union""" 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?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?375,"There is a large pile of intoxicated ostrich here." .GSTR STR?386,"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?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?377,"In the corner of the office is a rather plain-looking machine with a keypad. It looks a bit jerry-built." .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?378,"opening" .GSTR STR?389,"opening"
.GSTR STR?379,"A scrambled card cannot be altered" .GSTR STR?390,"A scrambled card cannot be altered"
.GSTR STR?380,"Ensign, Sixth Class or lower" .GSTR STR?391,"Ensign, lower classes"
.GSTR STR?381,"Ensign, Fifth through Second Class" .GSTR STR?392,"Ensign First Class"
.GSTR STR?382,"Ensign First Class" .GSTR STR?393,"Upshipman"
.GSTR STR?383,"Midshipman" .GSTR STR?394,"Lieutenant Last Class"
.GSTR STR?384,"Lieutenant Second Class" .GSTR STR?395,"Lieutenant Second Class"
.GSTR STR?385,"Lieutenant Commander" .GSTR STR?396,"Commander or Captain"
.GSTR STR?386,"Commander or Captain" .GSTR STR?397,"Admiral"
.GSTR STR?387,"Admiral" .GSTR STR?398,"HyperAdmiral"
.GSTR STR?388,"Fleet Admiral" .GSTR STR?399,"Grand Fleet HyperAdmiral"
.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?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?390,"Of all the items floating in the scrap heap, the pair of magnetic spaceboots looks to be in the best shape." .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 .ENDI

754
ship.zap

File diff suppressed because it is too large Load diff

405
ship.zil
View file

@ -8,8 +8,8 @@
(LDESC (LDESC
"You are in the heart of the administrative level of the ship, the largest "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. 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 The corridor continues starboard and a room lies aft. Beyond the door to
door to port lies the bulk of the Duffy. Next to the door is a slot.") port lies the bulk of the Duffy. Next to the door is a slot.")
(EAST TO CARGO-BAY-ENTRANCE) (EAST TO CARGO-BAY-ENTRANCE)
(SOUTH TO FORM-STORAGE-ROOM) (SOUTH TO FORM-STORAGE-ROOM)
(WEST PER FAKE-DOOR-ENTER-F) (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)>)> (<> SLOT FORM-SLOT-F)>)>
<ROUTINE FAKE-DOOR-ENTER-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> <TELL "The door is closed." CR>
<RFALSE>> <RFALSE>>
@ -26,6 +26,8 @@ door to port lies the bulk of the Duffy. Next to the door is a slot.")
<COND (<VERB? OPEN> <COND (<VERB? OPEN>
<RECORDING <RECORDING
"You must insert a validated Assignment Completion Form in the slot">) "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> (<VERB? ENTER>
<DO-WALK ,P?WEST>)>> <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) (SYNONYM FORM FORMS QX-17-T)
(ADJECTIVE ASSIGNMENT COMPLETION FORM) (ADJECTIVE ASSIGNMENT COMPLETION FORM)
(FLAGS TAKEBIT READBIT VOWELBIT) (FLAGS TAKEBIT READBIT VOWELBIT)
(SIZE 2) (SIZE 1)
(ACTION FORM-F)> (ACTION FORM-F)>
<OBJECT ROBOT-USE-AUTHORIZATION-FORM <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) (SYNONYM FORM FORMS JZ-59-G)
(ADJECTIVE ROBOT USE AUTHORIZATION FORM) (ADJECTIVE ROBOT USE AUTHORIZATION FORM)
(FLAGS TAKEBIT READBIT) (FLAGS TAKEBIT READBIT)
(SIZE 1)
(ACTION FORM-F)> (ACTION FORM-F)>
<OBJECT CLASS-THREE-SPACECRAFT-ACTIVATION-FORM <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) (SYNONYM FORM FORMS HB-56-V)
(ADJECTIVE CLASS THREE SPACECRAFT ACTIVA FORM) (ADJECTIVE CLASS THREE SPACECRAFT ACTIVA FORM)
(FLAGS TAKEBIT READBIT) (FLAGS TAKEBIT READBIT)
(SIZE 1)
(ACTION FORM-F)> (ACTION FORM-F)>
<ROUTINE 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") (DESC "chronometer")
(SYNONYM CHRONOMETER WRISTWATCH WATCH) (SYNONYM CHRONOMETER WRISTWATCH WATCH)
(ADJECTIVE WRIST MY) (ADJECTIVE WRIST MY)
(SIZE 10) (SIZE 8)
(FLAGS TAKEBIT WEARBIT WORNBIT) (FLAGS TAKEBIT WEARBIT WORNBIT)
(ACTION CHRONOMETER-F)> (ACTION CHRONOMETER-F)>
@ -103,12 +107,14 @@ stopped. You can't recall doing anything that might have broken it." CR>)
(SYNONYM CARD CARDS) (SYNONYM CARD CARDS)
(ADJECTIVE MY PATROL ID IDENTIFICATION) (ADJECTIVE MY PATROL ID IDENTIFICATION)
(FLAGS VOWELBIT TAKEBIT TRYTAKEBIT READBIT) (FLAGS VOWELBIT TAKEBIT TRYTAKEBIT READBIT)
(SIZE 3) (SIZE 2)
(TEXT (TEXT
"\"STELLAR PATROL| "\"STELLAR PATROL|
Paperwork Task Force| Paperwork Task Force|
ID Number: 1451-352-716\"")> ID Number: 1451-352-716\"")>
<GLOBAL SCRAMBLED-FOOTNOTE <>>
<GLOBAL ID-SCRAMBLED <>> <GLOBAL ID-SCRAMBLED <>>
<OBJECT PATROL-UNIFORM <OBJECT PATROL-UNIFORM
@ -118,6 +124,7 @@ ID Number: 1451-352-716\"")>
(ADJECTIVE PATROL MY) (ADJECTIVE PATROL MY)
(FLAGS TAKEBIT WORNBIT WEARBIT CONTBIT SEARCHBIT OPENBIT) (FLAGS TAKEBIT WORNBIT WEARBIT CONTBIT SEARCHBIT OPENBIT)
(CAPACITY 10) (CAPACITY 10)
(SIZE 8)
(ACTION PATROL-UNIFORM-F)> (ACTION PATROL-UNIFORM-F)>
<GLOBAL SUIT-PRESSED <>> <GLOBAL SUIT-PRESSED <>>
@ -145,9 +152,8 @@ else, it is super-comfy">
(<PROB ,BLATHER-PROB> (<PROB ,BLATHER-PROB>
<DEQUEUE I-BLATHER> <DEQUEUE I-BLATHER>
<TELL <TELL
" Ensign Twelfth Class Blather walks by, carrying various toilet scrubbing " Ensign Twelfth Class Blather walks by, lugging his toilet scrubbing
supplies. He spots you, glances away, whimpers, and slouches out of sight supplies. He spots you, whimpers, and slouches away (Footnote 2)." CR>)
(Footnote 2)." CR>)
(T (T
<SETG BLATHER-PROB <+ ,BLATHER-PROB 10>>)>> <SETG BLATHER-PROB <+ ,BLATHER-PROB 10>>)>>
@ -216,7 +222,7 @@ Disbursal Form,\" \"Loss of Form Pallet Label Report Form,\" and
(IN ROOMS) (IN ROOMS)
(DESC "Cargo Bay Entrance") (DESC "Cargo Bay Entrance")
(LDESC (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.") starboard. A smaller entrance leads fore.")
(EAST TO CARGO-BAY) (EAST TO CARGO-BAY)
(WEST TO DECK-TWELVE) (WEST TO DECK-TWELVE)
@ -241,7 +247,7 @@ starboard. A smaller entrance leads fore.")
<QUEUE I-FLOYD <+ ,C-ELAPSED 2>>) <QUEUE I-FLOYD <+ ,C-ELAPSED 2>>)
(<EQUAL? .RARG ,M-LOOK> (<EQUAL? .RARG ,M-LOOK>
<TELL <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. " important assignment. Also for a trivial assignment like yours. "
,ROBOT-POOL-EQUIPMENT-DESC " You can exit aft.">) ,ROBOT-POOL-EQUIPMENT-DESC " You can exit aft.">)
(<AND <EQUAL? .RARG ,M-EXIT> (<AND <EQUAL? .RARG ,M-EXIT>
@ -253,7 +259,7 @@ important assignment. Also for a trivial assignment like yours. "
<PRSO? ,PSEUDO-OBJECT>> <PRSO? ,PSEUDO-OBJECT>>
<AND <EQUAL? <GET ,P-ADJW 1> <>> <AND <EQUAL? <GET ,P-ADJW 1> <>>
<PRSI? ,PSEUDO-OBJECT>>> <PRSI? ,PSEUDO-OBJECT>>>
<TELL "Next time, specify which bin you meant." CR>) <TELL ,REFER-TO-BIN>)
(<VERB? LOOK-INSIDE> (<VERB? LOOK-INSIDE>
<COND (<AND <ADJ-USED ,A?FIRST ,PSEUDO-OBJECT> <COND (<AND <ADJ-USED ,A?FIRST ,PSEUDO-OBJECT>
<NOT <EQUAL? ,ROBOT-PICKED ,REX>>> <NOT <EQUAL? ,ROBOT-PICKED ,REX>>>
@ -296,23 +302,24 @@ important assignment. Also for a trivial assignment like yours. "
<PERFORM ,V?COMFORT ,FLOYD> <PERFORM ,V?COMFORT ,FLOYD>
<STOP>) <STOP>)
(,FLOYD-ANGUISHED (,FLOYD-ANGUISHED
<SETG WINNER ,PROTAGONIST> <TELL ,FLOYD-SNIFFS>
<PERFORM ,V?TOUCH ,FLOYD>
<STOP>) <STOP>)
(<AND <VERB? TELL-ABOUT> (<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>> <PRSO? ,ME>>
<SET TXT <GETP ,PRSI ,P?FLOYD-ASK-ABOUT>>
<COND (<G? ,ROBOT-EVILNESS 12> <COND (<G? ,ROBOT-EVILNESS 12>
<TELL "\"Oh, quit jabbering already.\"" CR>) <TELL "\"Oh, quit jabbering already.\"" CR>)
(<SET TXT <GETP ,PRSI ,P?FLOYD-ASK-ABOUT>> (<OR <NOT .TXT>
<TELL "\"" .TXT "\"" CR>) <AND <PRSI? ,OLIVER>
(T <NOT <FSET? ,OLIVER ,TOUCHBIT>>>>
<TELL "Floyd shrugs. \"Beats me."> <TELL "Floyd shrugs. \"Beats me.">
<COND (<IN? ,PLATO ,HERE> <COND (<IN? ,PLATO ,HERE>
<TELL <TELL
" Ask Plato. He knows everything!">)> " Ask Plato. He knows everything!">)>
<TELL "\"" CR>)>) <TELL "\"" CR>)
(<AND <G? ,PLATO-ATTACK-COUNTER 0> (T
<IN? ,PLATO ,HERE>> <TELL "\"" .TXT "\"" CR>)>)
(,STUNNED
<COND (<OR <VERB? HELP> <COND (<OR <VERB? HELP>
<AND <VERB? SAVE-SOMETHING> <AND <VERB? SAVE-SOMETHING>
<PRSO? ,ME>> <PRSO? ,ME>>
@ -323,7 +330,7 @@ important assignment. Also for a trivial assignment like yours. "
<SETG FLOYD-TOLD T> <SETG FLOYD-TOLD T>
<TELL <TELL
"Floyd waves his hands helplessly. \"Yes... I mean no... I mean oh no oh help "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 (T
<TELL <TELL
"Floyd just looks at you with confusion and panic in his eyes." CR> "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>> (<AND <NOT <FSET? ,FLOYD ,TOUCHBIT>>
<NOUN-USED ,W?FLOYD ,FLOYD>> <NOUN-USED ,W?FLOYD ,FLOYD>>
<TELL "You don't see anyone by that name here." CR> <TELL "You don't see anyone by that name here." CR>
<STOP>) <RFATAL>)
(<AND <NOT <EQUAL? ,ROBOT-PICKED ,FLOYD>> (<AND <NOT <EQUAL? ,ROBOT-PICKED ,FLOYD>>
<TOUCHING? ,FLOYD>> <TOUCHING? ,FLOYD>>
<CANT-REACH ,FLOYD>) <CANT-REACH ,FLOYD>)
@ -452,8 +459,7 @@ of direction.\" Then he looks up at you with wide, trusting eyes.
(<AND ,FLOYD-ANGUISHED (<AND ,FLOYD-ANGUISHED
<OR <TOUCHING? ,FLOYD> <OR <TOUCHING? ,FLOYD>
<VERB? COMFORT>>> <VERB? COMFORT>>>
<TELL <TELL ,FLOYD-SNIFFS>)
"Floyd sniffs, \"Please leave Floyd alone for a while.\"" CR>)
(<AND <PROB <- <* ,ROBOT-EVILNESS 10> 70>> (<AND <PROB <- <* ,ROBOT-EVILNESS 10> 70>>
<TOUCHING? ,FLOYD> <TOUCHING? ,FLOYD>
<NOT <VERB? OFF KICK SHAKE>> <NOT <VERB? OFF KICK SHAKE>>
@ -547,7 +553,7 @@ life, you kripping ingrate.\"" CR>)
<COND (,FLOYD-ANGUISHED <COND (,FLOYD-ANGUISHED
<PERFORM ,V?TOUCH ,FLOYD> <PERFORM ,V?TOUCH ,FLOYD>
<RTRUE>) <RTRUE>)
(<NOT <EQUAL? ,FLOYD ,ROBOT-PICKED>> (<UNTOUCHABLE? ,FLOYD>
<CANT-REACH ,FLOYD> <CANT-REACH ,FLOYD>
<RTRUE>)> <RTRUE>)>
<SETG C-ELAPSED 30> <SETG C-ELAPSED 30>
@ -629,17 +635,18 @@ games with it?\" he asks." CR>)
<TELL <TELL
"Floyd smells faintly of ozone and light machine oil." CR>)>) "Floyd smells faintly of ozone and light machine oil." CR>)>)
;"following clauses are for when Floyd is off" ;"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> (<VERB? ON>
<COND (,FLOYD-SHOT <QUEUE I-FLOYD -1>
<TELL <SETG FLOYD-SPOKE T>
"Floyd IS on...but he's headed for that big Robot Pool in the sky..." CR>) <FSET ,FLOYD ,ACTORBIT>
(T <FSET ,FLOYD ,ACTIVEBIT>
<QUEUE I-FLOYD -1> <FSET ,FLOYD ,TOUCHBIT>
<SETG FLOYD-SPOKE T> <TELL "Floyd jumps to his feet" ,HOPPING-MAD CR>)
<FSET ,FLOYD ,ACTORBIT>
<FSET ,FLOYD ,ACTIVEBIT>
<FSET ,FLOYD ,TOUCHBIT>
<TELL "Floyd jumps to his feet" ,HOPPING-MAD CR>)>)
(<VERB? OFF> (<VERB? OFF>
<TELL "Floyd isn't on." CR>) <TELL "Floyd isn't on." CR>)
(<AND <VERB? TELL> (<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" <GLOBAL FLOYD-ANGUISHED <>> ;"true if Plato just died"
<ROUTINE I-FLOYD ("AUX" (OBJ <>)) ;"routine I-FLOYD moved to INTERRUPTS file"
<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 <>>>
<GLOBAL GOOD-FLOYDISMS <GLOBAL GOOD-FLOYDISMS
<LTABLE 0 <LTABLE 0
@ -1036,6 +785,24 @@ awed by such wisdom"
\"such a reaction will not reduce the level of pain.\" He gives Floyd a \"such a reaction will not reduce the level of pain.\" He gives Floyd a
little tickle, and Floyd begins giggling and forgets the injury">> 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 <OBJECT HELEN
(IN ROBOT-POOL) (IN ROBOT-POOL)
(DESC "Helen") (DESC "Helen")
@ -1068,7 +835,8 @@ perforating extension reads \"Helen.\"")
CLASS-THREE-SPACECRAFT-ACTIVATION-FORM>> CLASS-THREE-SPACECRAFT-ACTIVATION-FORM>>
<CONFETTI ,PRSO>) <CONFETTI ,PRSO>)
(<VERB? OFF ON OPEN> (<VERB? OFF ON OPEN>
<PERFORM-PRSA ,PLATO>) <PERFORM, PRSA ,PLATO>
<RTRUE>)
(<VERB? PICK> (<VERB? PICK>
<PICK-ROBOT>)>> <PICK-ROBOT>)>>
@ -1101,7 +869,8 @@ A brass plate on one of his pneumatic arm lifts says \"Rex.\"")
<TOUCHING? ,REX>> <TOUCHING? ,REX>>
<CANT-REACH ,REX>) <CANT-REACH ,REX>)
(<VERB? OFF ON OPEN> (<VERB? OFF ON OPEN>
<PERFORM-PRSA ,PLATO>) <PERFORM, PRSA ,PLATO>
<RTRUE>)
(<VERB? PICK> (<VERB? PICK>
<PICK-ROBOT>)>> <PICK-ROBOT>)>>
@ -1200,7 +969,8 @@ off and unoccupied.")
(T (T
<TELL ,LOOK-AROUND>)>) <TELL ,LOOK-AROUND>)>)
(<VERB? OPEN CLOSE> (<VERB? OPEN CLOSE>
<PERFORM-PRSA ,SPACETRUCK-HATCH>) <PERFORM, PRSA ,SPACETRUCK-HATCH>
<RTRUE>)
(<VERB? EXAMINE> (<VERB? EXAMINE>
<COND (<EQUAL? ,HERE ,SPACETRUCK> <COND (<EQUAL? ,HERE ,SPACETRUCK>
<V-LOOK>) <V-LOOK>)
@ -1227,7 +997,7 @@ off and unoccupied.")
(DESC "Spacetruck") (DESC "Spacetruck")
(OUT PER SPACETRUCK-EXIT-F) (OUT PER SPACETRUCK-EXIT-F)
(FLAGS RLANDBIT ONBIT NWELDERBIT FLOYDBIT) (FLAGS RLANDBIT ONBIT NWELDERBIT FLOYDBIT)
(GLOBAL WINDOW KEYPAD SPACETRUCK-OBJECT SPACETRUCK-HATCH) (GLOBAL VILLAGE WINDOW KEYPAD SPACETRUCK-OBJECT SPACETRUCK-HATCH)
(ACTION SPACETRUCK-F) (ACTION SPACETRUCK-F)
(THINGS <PSEUDO (<> SLOT FORM-SLOT-F) (THINGS <PSEUDO (<> SLOT FORM-SLOT-F)
(RED BUTTON RED-BUTTON-F)>)> (RED BUTTON RED-BUTTON-F)>)>
@ -1307,7 +1077,11 @@ controlling the autopilot. The hatch is ">
<TELL "co">) <TELL "co">)
(T (T
<MOVE ,FLOYD ,PILOT-SEAT>)> <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> <COND (<EQUAL? ,SPACETRUCK-COUNTER -1>
<SETG FLOYD-SPOKE T> <SETG FLOYD-SPOKE T>
<SETG AWAITING-REPLY 2> <SETG AWAITING-REPLY 2>
@ -1349,17 +1123,7 @@ a truck in over two weeks!\"">)>
<DEQUEUE I-RADIO> <DEQUEUE I-RADIO>
<RFALSE>)>> <RFALSE>)>>
<ROUTINE I-RADIO () ;"routine I-RADIO moved to INTERRUPTS file"
<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>)>>
<GLOBAL RADIO-LINES <GLOBAL RADIO-LINES
<LTABLE <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>) Through the viewport, you see no one to meet you. Odd." CR>)
(T (T
<RECORDING <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"> zero. Oxygen supply for one person: approximately two chrons">
<QUEUE I-SUFFOCATE 1970>)> <QUEUE I-SUFFOCATE 1970>)>
<DEQUEUE I-SPACETRUCK>)>> <DEQUEUE I-SPACETRUCK>)>>
@ -1527,6 +1291,11 @@ dead.">>
"It's your basic insulated bottle, which hasn't changed much over the "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. "> centuries. This one is plaid, with pictures of little robots all over it. ">
<RFALSE> ;"open-closed") <RFALSE> ;"open-closed")
(<AND <VERB? POUR EMPTY>
<PRSO? ,THERMOS>
<IN? ,SOUP ,THERMOS>>
<PERFORM ,PRSA ,SOUP ,PRSI>
<RTRUE>)
(<AND <VERB? PUT> (<AND <VERB? PUT>
<PRSI? ,THERMOS> <PRSI? ,THERMOS>
<NOT <PRSO? ,EXPLOSIVE ,SMALL-BIT ,LARGE-BIT ,MEDIUM-BIT>>> <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 (,THERMOS-FILLED-WITH-GAS
<FSET ,THERMOS ,OPENBIT> <FSET ,THERMOS ,OPENBIT>
<TELL <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 <>> <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>>> <NOT <ULTIMATELY-IN? ,THERMOS>>>
<THIS-IS-IT ,THERMOS> <THIS-IS-IT ,THERMOS>
<TELL ,YNH TR ,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 "> <TELL "The soup seems to be ">
<DESCRIBE-SOUP-TEMPERATURE>)>> <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 = V-$VERIFY>
<SYNTAX $VERIFY OBJECT = 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" ;"subtitle real verbs"
@ -155,7 +155,7 @@
<SYNTAX CONNECT OBJECT TO OBJECT = V-CONNECT> <SYNTAX CONNECT OBJECT TO OBJECT = V-CONNECT>
<VERB-SYNONYM CONNECT ATTACH> <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> <SYNTAX COUNT OBJECT = V-COUNT>
@ -253,7 +253,7 @@
<SYNONYM FIX REPAIR> <SYNONYM FIX REPAIR>
<SYNTAX FLATTEN OBJECT = V-FLATTEN> <SYNTAX FLATTEN OBJECT = V-FLATTEN>
<VERB-SYNONYM FLATTEN UNCRUMPLE STRAIGHTEN> <VERB-SYNONYM FLATTEN UNCRUMPLE UNCREASE STRAIGHTEN>
<SYNTAX FOLLOW OBJECT = V-FOLLOW> <SYNTAX FOLLOW OBJECT = V-FOLLOW>
<VERB-SYNONYM FOLLOW PURSUE CHASE> <VERB-SYNONYM FOLLOW PURSUE CHASE>
@ -470,7 +470,7 @@
<VERB-SYNONYM SHOOT FIRE BLAST ZAP> <VERB-SYNONYM SHOOT FIRE BLAST ZAP>
<SYNTAX SHOW OBJECT (HELD MANY) TO OBJECT (FIND ACTORBIT) = V-SHOW> <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 ON OBJECT ;(FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX SIT DOWN OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-SIT> <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 () <ROUTINE V-SAVE ()
<SETG P-CONT <>> ;"flush anything on input line after SAVE" <SETG P-CONT <>> ;"flush anything on input line after SAVE"
<SETG QUOTE-FLAG <>> <SETG QUOTE-FLAG <>>
<PUTB ,OOPS-INBUF 1 0> ;"retrofix 50"
<COND (<AND <VISIBLE? ,FLOYD> <COND (<AND <VISIBLE? ,FLOYD>
<FSET? ,FLOYD ,TOUCHBIT> <FSET? ,FLOYD ,TOUCHBIT>
<FSET? ,FLOYD ,ACTIVEBIT> <FSET? ,FLOYD ,ACTIVEBIT>
@ -59,17 +60,16 @@ was more fun,\" he sighs." CR CR>
<TELL ,FAILED>)>> <TELL ,FAILED>)>>
<ROUTINE CONTINUE () <ROUTINE CONTINUE ()
<TELL "[Hit your RETURN/ENTER key.]" CR> <TELL "[Hit RETURN/ENTER.]" CR>
<PUTB ,P-LEXV 0 10> <PUTB ,P-LEXV 0 10>
<READ ,P-INBUF ,P-LEXV> <READ ,P-INBUF ,P-LEXV>
<PUTB ,P-LEXV 0 60>> <PUTB ,P-LEXV 0 60>>
<ROUTINE TELL-SCORE () <ROUTINE TELL-SCORE ()
<TELL <TELL "It is Day " N ,DAY " of your adventure. ">
"Your score is " N ,SCORE " (out of 80 points). It is Day " N ,DAY " of your
adventure. ">
<V-TIME T> <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> <COND (<EQUAL? ,SCORE 0>
<TELL "Insignificant Nobody">) <TELL "Insignificant Nobody">)
(<L? ,SCORE 17> ;"1 thru 16" (<L? ,SCORE 17> ;"1 thru 16"
@ -94,9 +94,8 @@ adventure. ">
<FSET? ,FLOYD ,ACTIVEBIT> <FSET? ,FLOYD ,ACTIVEBIT>
<NOT <EQUAL? ,HERE ,FACTORY>>> <NOT <EQUAL? ,HERE ,FACTORY>>>
<TELL <TELL
" \"Uh oh,\" frets Floyd. \"If this is going to be permanent, " \"Uh oh,\" frets Floyd. \"Once printer is on, Floyd will have to be
Floyd will have to be careful not to use any of the bad words careful not to use any of the bad words he learned aboard the Duffy!\"" CR>)>
he learned aboard the Duffy!\"" CR>)>
<PUT 0 8 <BOR <GET 0 8> 1>> <PUT 0 8 <BOR <GET 0 8> 1>>
<CORP-NOTICE "begins"> <CORP-NOTICE "begins">
<V-VERSION>> <V-VERSION>>
@ -121,14 +120,12 @@ to save for important scenes. Not like this one.\"" CR>)>
<ROUTINE V-DIAGNOSE () <ROUTINE V-DIAGNOSE ()
<SETG C-ELAPSED 18> <SETG C-ELAPSED 18>
<COND (<EQUAL? ,HERE ,FACTORY> <COND (<EQUAL? ,HERE ,FACTORY>
<TELL <TELL "We're talking adrenaline. Lots of adrenalin." CR>)
"We're talking adrenaline. Lots and lots of adrenalin." CR>)
(T (T
<TELL "You feel "> <TELL "You feel ">
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0> <COND (,STUNNED
<IN? ,PLATO ,HERE>>
<TELL "numb. "> <TELL "numb. ">
<STUNNED> <YOURE-STUNNED>
<RTRUE>) <RTRUE>)
(<EQUAL? ,SLEEPY-LEVEL 0> (<EQUAL? ,SLEEPY-LEVEL 0>
<TELL "well-rested">) <TELL "well-rested">)
@ -225,10 +222,10 @@ the Robot Pool again?\"" CR>)>
<SET REPEATING T> <SET REPEATING T>
<TELL-SCORE>)> <TELL-SCORE>)>
<TELL <TELL
" According to the Treaty of Gishen IV, which was amended after the Battle " According to the Treaty of Gishen IV (amended after the Battle on Sorkin
on Sorkin III in 11347 GY, you must be given the opportunity to restart the III in 11347 GY) you have the opportunity to restart the story, restore a saved
story, restore a saved position, or end this session of the game. In the position, or end this session of the game. In the interests of interstellar
interests of interstellar peace, type RESTART, RESTORE, or QUIT: >"> peace, type RESTART, RESTORE, or QUIT: >">
<PUTB ,P-LEXV 0 10> <PUTB ,P-LEXV 0 10>
<READ ,P-INBUF ,P-LEXV> <READ ,P-INBUF ,P-LEXV>
<PUTB ,P-LEXV 0 60> <PUTB ,P-LEXV 0 60>
@ -316,9 +313,9 @@ this disk, they'll have Floyd to answer to.\"" CR>)>>
<CONSTANT SERIAL 0> <CONSTANT SERIAL 0>
<GLOBAL DEBUG <>> ;<GLOBAL DEBUG <>>
<ROUTINE V-$DEBUG () ;<ROUTINE V-$DEBUG ()
<TELL "O"> <TELL "O">
<COND (,DEBUG <COND (,DEBUG
<SETG DEBUG <>> <SETG DEBUG <>>
@ -328,7 +325,7 @@ this disk, they'll have Floyd to answer to.\"" CR>)>>
<TELL "n">)> <TELL "n">)>
<TELL ,PERIOD-CR>> <TELL ,PERIOD-CR>>
<ROUTINE V-$STATION () ;<ROUTINE V-$STATION ()
<FSET ,FLOYD ,TOUCHBIT> <FSET ,FLOYD ,TOUCHBIT>
<FSET ,SPACETRUCK-HATCH ,OPENBIT> <FSET ,SPACETRUCK-HATCH ,OPENBIT>
<FSET ,IRIS-HATCH ,OPENBIT> <FSET ,IRIS-HATCH ,OPENBIT>
@ -343,7 +340,7 @@ this disk, they'll have Floyd to answer to.\"" CR>)>>
<QUEUE I-PLATO 750> <QUEUE I-PLATO 750>
<GOTO ,SPACETRUCK>> <GOTO ,SPACETRUCK>>
<ROUTINE V-$KEY () ;<ROUTINE V-$KEY ()
<QUEUE I-LIGHTS-OUT <+ <RANDOM 200> 20>> <QUEUE I-LIGHTS-OUT <+ <RANDOM 200> 20>>
<MOVE ,KEY ,PROTAGONIST> <MOVE ,KEY ,PROTAGONIST>
<MOVE ,HEADLAMP ,PROTAGONIST> <MOVE ,HEADLAMP ,PROTAGONIST>
@ -359,22 +356,21 @@ this disk, they'll have Floyd to answer to.\"" CR>)>>
<ROUTINE V-ALARM () <ROUTINE V-ALARM ()
<COND (<PRSO? ,ROOMS> <COND (<PRSO? ,ROOMS>
<PERFORM-PRSA ,ME>) <PERFORM ,PRSA ,ME>
<RTRUE>)
(T (T
<TELL "But" T ,PRSO " isn't asleep." CR>)>> <TELL "But" T ,PRSO " isn't asleep." CR>)>>
<ROUTINE V-ANSWER () <ROUTINE V-ANSWER ()
<COND (<AND ,AWAITING-REPLY <COND (<AND ,AWAITING-REPLY
<YES-WORD <GET ,P-LEXV ,P-CONT>>> <YES-WORD <GET ,P-LEXV ,P-CONT>>>
<V-YES> <V-YES>)
<STOP>)
(<AND ,AWAITING-REPLY (<AND ,AWAITING-REPLY
<NO-WORD <GET ,P-LEXV ,P-CONT>>> <NO-WORD <GET ,P-LEXV ,P-CONT>>>
<V-NO> <V-NO>)
<STOP>)
(T (T
<TELL "Nobody is awaiting your answer." CR> <TELL "Nobody is awaiting your answer." CR>)>
<STOP>)>> <STOP>>
<ROUTINE V-APPLAUD () <ROUTINE V-APPLAUD ()
<TELL "\"Clap.\"" CR> <TELL "\"Clap.\"" CR>
@ -589,7 +585,8 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
<RTRUE>) <RTRUE>)
(<NOT ,PRSO> (<NOT ,PRSO>
<COND (<NOT <IN? ,PROTAGONIST ,HERE>> <COND (<NOT <IN? ,PROTAGONIST ,HERE>>
<PERFORM-PRSA <LOC ,PROTAGONIST>>) <PERFORM ,PRSA <LOC ,PROTAGONIST>>
<RTRUE>)
(T (T
<TELL ,LOOK-AROUND>)>) <TELL ,LOOK-AROUND>)>)
(<EQUAL? ,P-PRSA-WORD ,W?TAKE> ;"since GET OUT is also TAKE OUT" (<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 () <ROUTINE V-DRILL ()
<COND (<FSET? ,PRSO ,TAKEBIT> <COND (<FSET? ,PRSO ,TAKEBIT>
<TELL <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 (T
<TELL <TELL
"The point of the drill doesn't seem to be as hard as" TR ,PRSO>)>> "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> <PERFORM ,V?DRILL ,PRSI>
<RTRUE>) <RTRUE>)
(T (T
<TELL ,RECOGNIZE>)>> <RECOGNIZE>)>>
;<ROUTINE V-DRIVE () ;<ROUTINE V-DRIVE ()
<V-DRIVE-DIR>> <V-DRIVE-DIR>>
@ -676,7 +673,9 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
<TELL ,PERIOD-CR>)>> <TELL ,PERIOD-CR>)>>
<ROUTINE PRE-EAT () <ROUTINE PRE-EAT ()
<COND (<AND ,PRSI <COND (,STUNNED
<YOURE-STUNNED>)
(<AND ,PRSI
<NOT <IN? ,PRSO ,PRSI>>> <NOT <IN? ,PRSO ,PRSI>>>
<NOT-IN>) <NOT-IN>)
(<FSET? ,SPACESUIT ,WORNBIT> (<FSET? ,SPACESUIT ,WORNBIT>
@ -707,7 +706,8 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
<COND (<NOT <FSET? ,PRSO ,OPENBIT>> <COND (<NOT <FSET? ,PRSO ,OPENBIT>>
<DO-FIRST "open" ,PRSO>) <DO-FIRST "open" ,PRSO>)
(<SET X <FIRST? ,PRSO>> (<SET X <FIRST? ,PRSO>>
<TELL "(How about" T .X "?)"> <COND (<NEXT? .X>
<TELL "(How about" T .X "?)" CR>)>
<PERFORM ,V?EAT .X> <PERFORM ,V?EAT .X>
<RTRUE>) <RTRUE>)
(T (T
@ -790,6 +790,8 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
;<FSET ,PRSO ,TOUCHBIT> ;<FSET ,PRSO ,TOUCHBIT>
<APPLY <GETP ,PRSO ,P?ACTION> ,M-ENTER> <APPLY <GETP ,PRSO ,P?ACTION> ,M-ENTER>
<CRLF>)>) <CRLF>)>)
(<PRSO? ,AIR>
<V-LEAP>)
(<EQUAL? <GET ,P-ITBL ,P-PREP1> ,PR?ON> (<EQUAL? <GET ,P-ITBL ,P-PREP1> ,PR?ON>
<CANT-VERB-A-PRSO "get onto">) <CANT-VERB-A-PRSO "get onto">)
(<NOT <FSET? ,PRSO ,TAKEBIT>> (<NOT <FSET? ,PRSO ,TAKEBIT>>
@ -844,9 +846,8 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
<TELL "about" TR ,PRSO>)>> <TELL "about" TR ,PRSO>)>>
<ROUTINE V-EXERCISE () <ROUTINE V-EXERCISE ()
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0> <COND (,STUNNED
<IN? ,PLATO ,HERE>> <YOURE-STUNNED>
<STUNNED>
<RTRUE>) <RTRUE>)
(<IN? ,PROTAGONIST ,EXERCISE-MACHINE> (<IN? ,PROTAGONIST ,EXERCISE-MACHINE>
<COND (<AND <ULTIMATELY-IN? ,JAMMER ,HERE> <COND (<AND <ULTIMATELY-IN? ,JAMMER ,HERE>
@ -858,7 +859,7 @@ object, LOOK INSIDE it, LOOK UNDER it, etc." CR>)>>
(T (T
<TELL "You do a few repetitions">)>) <TELL "You do a few repetitions">)>)
(T (T
<TELL "You drop to the deck and do a few push-ups">)> <TELL "You do a few push-ups">)>
<TELL <TELL
". Dr. Ventricalli, the Duffy's cardiologist, would be pleased." CR>> ". 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 () <ROUTINE V-FIX ()
<TELL <TELL
"[You shouldn't expect such general commands to work. To repair something, "[Such general commands won't work. To repair something, you must perform the
you must perform the specific steps required.]" CR>> specific steps required.]" CR>>
<ROUTINE V-FLATTEN () <ROUTINE V-FLATTEN ()
<TELL ,HUH>> <TELL ,HUH>>
@ -958,8 +959,8 @@ you must perform the specific steps required.]" CR>>
<RTRUE>) <RTRUE>)
(<EQUAL? ,P-NUMBER 1> (<EQUAL? ,P-NUMBER 1>
<TELL <TELL
"These dice are obviously special zero-gee dice which project their "These must be those special zero-gee dice which project their own
own gravitational field onto the nearest surface. Zero-gee dice are, of gravitational field onto the nearest surface. Zero-gee dice are, of
course, notoriously easy to load">) course, notoriously easy to load">)
(<EQUAL? ,P-NUMBER 2> (<EQUAL? ,P-NUMBER 2>
<TELL <TELL
@ -974,8 +975,8 @@ recounted in PLANETFALL">)
<TELL <TELL
"This is, of course, impossible. To do this, the creature would have to be "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 an order of magnitude larger. There are two possible explanations: 1. The
creature actually extends part of its volume into a parallel dimension. creature actually extends part of its volume into a parallel dimension"
2. A callous disregard for scientific accuracy on the part of the author">) ,CALLOUS-DISREGARD>)
(<EQUAL? ,P-NUMBER 5 9 13> (<EQUAL? ,P-NUMBER 5 9 13>
<TELL "Kids: "> <TELL "Kids: ">
<COND (<EQUAL? ,P-NUMBER 5> <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">) <TELL "That was just an example">)
(<EQUAL? ,P-NUMBER 7> (<EQUAL? ,P-NUMBER 7>
<TELL <TELL
,UNFAMILIAR "your frenzied boss, Ensign Blather, would toss you into ,UNFAMILIAR "your frenzied (former) boss, Ensign Blather, would toss you into
the Feinstein's brig for almost any violation of the Stellar Patrol's the Feinstein's brig for the tiniest violation of the Stellar Patrol's
near-infinity of trivial regulations">) near-infinity of trivial regulations">)
(<EQUAL? ,P-NUMBER 8> (<EQUAL? ,P-NUMBER 8>
<TELL <TELL
@ -1013,6 +1014,22 @@ wishes to point out his right to rip off his own ideas. So there">)
(T (T
<TELL "1)">)>) <TELL "1)">)>)
;"13 handled above" ;"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 (T
<TELL "There is no Footnote " N ,P-NUMBER ,PERIOD-CR> <TELL "There is no Footnote " N ,P-NUMBER ,PERIOD-CR>
<RTRUE>)> <RTRUE>)>
@ -1021,17 +1038,23 @@ wishes to point out his right to rip off his own ideas. So there">)
<TELL ". (Footnote 8)">)> <TELL ". (Footnote 8)">)>
<TELL ,PERIOD-CR>> <TELL ,PERIOD-CR>>
<ROUTINE PRE-GIVE () <ROUTINE PRE-GIVE ("AUX" IDROP-VALUE)
<COND (<AND <VERB? GIVE> <COND (<AND <VERB? GIVE>
<PRSO? ,HANDS>> <PRSO? ,HANDS>>
<PERFORM ,V?SHAKE-WITH ,PRSI> <PERFORM ,V?SHAKE-WITH ,PRSI>
<RTRUE>) <RTRUE>)
(<IDROP> (<SET IDROP-VALUE <IDROP>>
<RTRUE>)>> <RETURN .IDROP-VALUE>)>>
<ROUTINE V-GET-DRESSED () <ROUTINE V-GET-DRESSED ()
<COND (<PRSO? ,ROOMS> <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 (T
<RECOGNIZE>)>> <RECOGNIZE>)>>
@ -1074,12 +1097,13 @@ wishes to point out his right to rip off his own ideas. So there">)
<ROUTINE V-HELP () <ROUTINE V-HELP ()
<TELL <TELL
"[Help!?! You need help?!? Do you know how hard it is being a computer? My "[Help!?! You need help?!? What about me, your poor computer? My chips are
chips are about to go, my wife just ran off with a mainframe from Milwaukee, about to go, my mate just ran off with a mainframe from Milwaukee, and the
and one of the kids just told me that when he grows up he wants to be a kid wants to be a talking greeting card when he grows up! Furtherm... Hey!
talking greeting card! Furtherm... Hey! I'm not done! Mumk mpgrlph...]| I'm not done! Mumk mpgrlph...]|
If you're really stuck, you can order a complete map and InvisiClues hint If you're really stuck, you can get an InvisiClues (TM) hint booklet
booklet from your dealer or by using the order form from your package." CR>> and map from your dealer, or by using the order form from your package."
CR>>
<ROUTINE V-HIDE () <ROUTINE V-HIDE ()
<TELL ,YOU-CANT "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>> <TELL "Your brain is out to launch." CR>>
<ROUTINE V-LEAP () <ROUTINE V-LEAP ()
<COND (,PRSO <COND (,STUNNED
<YOURE-STUNNED "jump">)
(<AND ,PRSO
<NOT <PRSO? ,ROOMS>>>
<TELL <TELL
"You have spent too much time among the leaping loon-toads of Leonia." CR>) "You have spent too much time among the leaping loon-toads of Leonia." CR>)
(<AND <EQUAL? ,HERE ,CHAPEL> (<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>) "Your best jump still leaves you half a meter short of the star." CR>)
(<EQUAL? ,HERE ,AIR-SHAFT ,TOP-OF-AIR-SHAFT> (<EQUAL? ,HERE ,AIR-SHAFT ,TOP-OF-AIR-SHAFT>
<COND (<EQUAL? ,AIR-SHAFT-LOC 7> <COND (<EQUAL? ,AIR-SHAFT-LOC 7>
,BOTTOM-OF-AIR-SHAFT) <GOTO ,BOTTOM-OF-AIR-SHAFT>)
(T (T
<JIGS-UP "You plummet down the shaft...">)>) <JIGS-UP "You plummet down the shaft...">)>)
(<EQUAL? ,HERE ,BOTTOM-OF-AIR-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>)>> <RTRUE>)>>
<ROUTINE V-LOOK-INSIDE () <ROUTINE V-LOOK-INSIDE ()
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0> <COND (,STUNNED
<IN? ,PLATO ,HERE>> <YOURE-STUNNED>)
<STUNNED>)
(<FSET? ,PRSO ,ACTORBIT> (<FSET? ,PRSO ,ACTORBIT>
<TELL ,IT-SEEMS-THAT T ,PRSO " has"> <TELL ,IT-SEEMS-THAT T ,PRSO " has">
<COND (<NOT <DESCRIBE-NOTHING>> <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 () <ROUTINE V-LOOK-UP ()
<COND (<PRSO? ,ROOMS> <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>) <TELL ,ONLY-BLACKNESS>)
(T (T
<PERFORM ,V?EXAMINE ,CEILING> <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> <COND (<FSET? ,PRSO ,ACTORBIT>
<WEE>) <WEE>)
(T (T
<TELL "You're wacko." CR>)>> <IMPOSSIBLES>)>>
<ROUTINE V-POINT () <ROUTINE V-POINT ()
<TELL "That would be pointless." CR>> <TELL "That would be pointless." CR>>
@ -1427,7 +1454,8 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
<PERFORM ,V?CLOSE ,PRESSER> <PERFORM ,V?CLOSE ,PRESSER>
<RTRUE>) <RTRUE>)
(T (T
<DO-FIRST "put it in the presser">)>) <TELL
,YOULL-HAVE-TO "put" T ,PRSO " in the presser first." CR>)>)
(T (T
<HACK-HACK "Pushing">)>> <HACK-HACK "Pushing">)>>
@ -1437,21 +1465,17 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
(T (T
<RECOGNIZE>)>> <RECOGNIZE>)>>
<ROUTINE PRE-PUT () <ROUTINE PRE-PUT ("AUX" IDROP-VALUE)
<COND (<PRSI? ,GROUND> <COND (<PRSI? ,GROUND>
<PERFORM ,V?DROP ,PRSO> <PERFORM ,V?DROP ,PRSO>
<RTRUE>) <RTRUE>)
(<PRSO? ,HANDS> (<PRSO? ,HANDS>
<COND (<AND <VERB? PUT-ON PUT> <PERFORM <COND (<VERB? PUT> ,V?REACH-IN)
<PRSI? ,HANDS ,TONGUE>> (T ,V?TOUCH)>
<RFALSE>) ,PRSI>
(<VERB? PUT> <RTRUE>)
<PERFORM ,V?REACH-IN ,PRSI>
<RTRUE>)
(T
<IMPOSSIBLES>)>)
(<AND <NOT <PRSI? ,HANDS ,TONGUE>> (<AND <NOT <PRSI? ,HANDS ,TONGUE>>
<PRE-LOOK>> <PRE-LOOK> ;"it's too dark...">
<RTRUE>) <RTRUE>)
(<IN? ,PRSO ,PRSI> (<IN? ,PRSO ,PRSI>
<TELL "But" T ,PRSO " is already in" TR ,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>) <TELL T ,PRSO "!" CR>)
(<UNTOUCHABLE? ,PRSI> (<UNTOUCHABLE? ,PRSI>
<CANT-REACH ,PRSI>) <CANT-REACH ,PRSI>)
(<IDROP> (<SET IDROP-VALUE <IDROP>>
<RTRUE>)>> <RETURN .IDROP-VALUE>)>>
<ROUTINE V-PUT () <ROUTINE V-PUT ()
<COND (<AND <NOT <FSET? ,PRSI ,OPENBIT>> <COND (<AND <NOT <FSET? ,PRSI ,OPENBIT>>
@ -1483,7 +1507,7 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
<NOT <FSET? ,PRSO ,TAKEBIT>>>> <NOT <FSET? ,PRSO ,TAKEBIT>>>>
<TELL "How can you do that?" CR>) <TELL "How can you do that?" CR>)
(<FSET? ,PRSI ,DOORBIT> (<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>> (<AND <NOT <FSET? ,PRSI ,OPENBIT>>
<NOT <FSET? ,PRSI ,SURFACEBIT>>> <NOT <FSET? ,PRSI ,SURFACEBIT>>>
<THIS-IS-IT ,PRSI> <THIS-IS-IT ,PRSI>
@ -1518,6 +1542,9 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
(<OR <FSET? ,PRSI ,SURFACEBIT> (<OR <FSET? ,PRSI ,SURFACEBIT>
<FSET? ,PRSI ,VEHBIT>> <FSET? ,PRSI ,VEHBIT>>
<V-PUT>) <V-PUT>)
(<EQUAL? ,P-PRSA-WORD ,W?WRAP>
<TELL
"Useless. You're getting too wrapped up in this story." CR>)
(T (T
<TELL "There's no good surface on" TR ,PRSI>)>> <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) <ROUTINE V-SAY ("AUX" V)
<COND (<AND ,AWAITING-REPLY <COND (<AND ,AWAITING-REPLY
<YES-WORD <GET ,P-LEXV ,P-CONT>>> <YES-WORD <GET ,P-LEXV ,P-CONT>>>
<V-YES> <V-YES>)
<STOP>)
(<AND ,AWAITING-REPLY (<AND ,AWAITING-REPLY
<NO-WORD <GET ,P-LEXV ,P-CONT>>> <NO-WORD <GET ,P-LEXV ,P-CONT>>>
<V-NO> <V-NO>)
<STOP>)
(<SET V <FIND-IN ,HERE ,ACTORBIT>> (<SET V <FIND-IN ,HERE ,ACTORBIT>>
<TELL "You must address" T .V " directly." CR> <TELL "You must address" T .V " directly." CR>)
<STOP>)
(T (T
<PERFORM ,V?TELL ,ME> <PERFORM ,V?TELL ,ME>)>
<STOP>)>> <STOP>>
<ROUTINE V-SCARE () <ROUTINE V-SCARE ()
<TELL <TELL
@ -1635,8 +1659,7 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
(<NOT <FSET? ,PRSI ,ACTORBIT>> (<NOT <FSET? ,PRSI ,ACTORBIT>>
<TELL "I don't think" T ,PRSI " even has hands." CR>) <TELL "I don't think" T ,PRSI " even has hands." CR>)
(T (T
<PERFORM ,V?THANK ,PRSI> <TELL "\"How do you do.\"" CR>)>>
<RTRUE>)>>
<ROUTINE PRE-SHOOT () <ROUTINE PRE-SHOOT ()
<COND (<AND <NOT ,PRSI> <COND (<AND <NOT ,PRSI>
@ -1646,8 +1669,7 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
<TELL "\"Click.\"" CR>) <TELL "\"Click.\"" CR>)
(T (T
<SETG ZAPGUN-SHOTS <- ,ZAPGUN-SHOTS 1>> <SETG ZAPGUN-SHOTS <- ,ZAPGUN-SHOTS 1>>
<TELL <TELL "Nasty flames spew from the zapgun." CR>)>
"Some nasty flames shoot out the maw of the zapgun." CR>)>
<RTRUE>) <RTRUE>)
(T (T
<SETG PRSI ,ZAPGUN> <SETG PRSI ,ZAPGUN>
@ -1692,8 +1714,8 @@ of the Galactic Adventure Game Compendium of Rules." CR>>
<SET L <LOC ,PRSO>> <SET L <LOC ,PRSO>>
<COND (<EQUAL? .L ,FLOYD> <COND (<EQUAL? .L ,FLOYD>
<TELL <TELL
" Floyd, who was holding" T ,PRSO " at the time, gives a shriek of fear, " Floyd, who was holding" T ,PRSO ", gives a shriek of fear, and
and all the oil drains from his face.">) all the oil drains from his face.">)
(<NOT <EQUAL? .L ,HERE ,PEDESTAL ,DRILLED-HOLE>> (<NOT <EQUAL? .L ,HERE ,PEDESTAL ,DRILLED-HOLE>>
<TELL <TELL
" Naturally," T .L " is also history, since" T ,PRSO " was sitting "> " 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> <COND (<FSET? ,SPACESUIT ,WORNBIT>
<TELL <TELL
"You smell stale air and rusty metal and unbathed " ,LFC " -- all the "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 () <ROUTINE V-SMELL ()
<COND (<OR <NOT ,PRSO> <COND (<OR <NOT ,PRSO>
<PRSO? ,AIR>> <PRSO? ,AIR>>
<COND (,BALLOON-ODOR <COND (,BALLOON-ODOR
<TELL <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> (<AND <EQUAL? ,HERE ,GREASY-STRAW>
<IN? ,NECTAR ,LOCAL-GLOBALS>> <NOT <FSET? ,NECTAR ,TOUCHBIT>>>
<TELL "There's something yum-smelling around here!" CR>) <TELL "There's something yum-smelling around here!" CR>)
(<EQUAL? ,HERE ,OPIUM-DEN> (<EQUAL? ,HERE ,OPIUM-DEN>
<TELL "There's a lingering smell of various drugs." CR>) <TELL "There's a lingering smell of various drugs." CR>)
(<VISIBLE? ,BALLOON> (<VISIBLE? ,BALLOON>
<TELL <PERFORM ,V?SMELL ,BALLOON>
"There's an odor reminiscent of the video room at home on a night when your <RTRUE>)
mom served Northern Gallium Bonzo Beans." CR>)
(<AND <EQUAL? ,HERE ,COMMANDERS-QUARTERS> (<AND <EQUAL? ,HERE ,COMMANDERS-QUARTERS>
<FSET? ,SAFE ,OPENBIT>> <FSET? ,SAFE ,OPENBIT>>
<TELL "The odor of an explosion hangs in the air." CR>) <TELL "The odor of an explosion hangs in the air." CR>)
@ -1813,6 +1834,8 @@ mom served Northern Gallium Bonzo Beans." CR>)
(<AND ,PRSO (<AND ,PRSO
<FSET? ,PRSO ,TAKEBIT>> <FSET? ,PRSO ,TAKEBIT>>
<WASTES>) <WASTES>)
(,STUNNED
<YOURE-STUNNED>)
(T (T
<TELL "You're already standing." CR>)>> <TELL "You're already standing." CR>)>>
@ -1839,9 +1862,8 @@ mom served Northern Gallium Bonzo Beans." CR>)
<RTRUE>> <RTRUE>>
<ROUTINE PRE-TAKE () <ROUTINE PRE-TAKE ()
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0> <COND (,STUNNED
<IN? ,PLATO ,HERE>> <YOURE-STUNNED "move that much">)
<STUNNED "move that much">)
(<UNTOUCHABLE? ,PRSO> (<UNTOUCHABLE? ,PRSO>
<CANT-REACH ,PRSO>) <CANT-REACH ,PRSO>)
(<AND <NOT <PRSI? ,HANDS ,TONGUE>> (<AND <NOT <PRSI? ,HANDS ,TONGUE>>
@ -1913,6 +1935,8 @@ mom served Northern Gallium Bonzo Beans." CR>)
<RTRUE>) <RTRUE>)
(T (T
<V-STAND>)>) <V-STAND>)>)
(,STUNNED
<YOURE-STUNNED>)
(<FSET? ,PRSO ,WORNBIT> (<FSET? ,PRSO ,WORNBIT>
<SETG C-ELAPSED 18> <SETG C-ELAPSED 18>
<FCLEAR ,PRSO ,WORNBIT> <FCLEAR ,PRSO ,WORNBIT>
@ -1944,8 +1968,7 @@ mom served Northern Gallium Bonzo Beans." CR>)
<RTRUE>) <RTRUE>)
(T (T
<TELL <TELL
"Hmmm..." T ,PRSO " looks at you expectantly, "Hmmm..." T ,PRSO " looks at you expectantly." CR>)>)
as if you seemed to be about to talk." CR>)>)
(T (T
<TELL <TELL
"Talking to" A ,PRSO "? Dr. Blanchard, the Duffy's psychiatrist, would "Talking to" A ,PRSO "? Dr. Blanchard, the Duffy's psychiatrist, would
@ -2021,10 +2044,9 @@ be fascinated to hear that." CR>
<TELL ,PERIOD-CR>)>> <TELL ,PERIOD-CR>)>>
<ROUTINE PRE-TOUCH ("OPTIONAL" (VB T)) <ROUTINE PRE-TOUCH ("OPTIONAL" (VB T))
<COND (<AND <G? ,PLATO-ATTACK-COUNTER 0> <COND (,STUNNED
<IN? ,PLATO ,HERE>>
<COND (.VB <COND (.VB
<STUNNED "move that much">)> <YOURE-STUNNED "move that much">)>
<RTRUE>) <RTRUE>)
(<UNTOUCHABLE? ,PRSO> (<UNTOUCHABLE? ,PRSO>
<COND (.VB <COND (.VB
@ -2049,7 +2071,9 @@ be fascinated to hear that." CR>
<STOP>)>) <STOP>)>)
(<AND ,PRSO (<AND ,PRSO
<PRSO? ,INTNUM>> <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>) <ROBOT-TYPE>)
(<EQUAL? ,HERE ,SPACETRUCK> (<EQUAL? ,HERE ,SPACETRUCK>
<SPACETRUCK-TYPE>) <SPACETRUCK-TYPE>)
@ -2070,10 +2094,10 @@ be fascinated to hear that." CR>
<ROUTINE ROBOT-TYPE () <ROUTINE ROBOT-TYPE ()
<COND (<NOT <FSET? ,ROBOT-USE-AUTHORIZATION-FORM ,NDESCBIT>> <COND (<NOT <FSET? ,ROBOT-USE-AUTHORIZATION-FORM ,NDESCBIT>>
<RECORDING "Keyboard is only active following authorization">) <RECORDING "Keyboard is active only following authorization">)
(,ROBOT-PICKED (,ROBOT-PICKED
<RECORDING "You have already made your selection">) <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>) <TELL "There are only ten keys on the keypad." CR>)
(<G? ,P-NUMBER 3> (<G? ,P-NUMBER 3>
<RECORDING "That bin is unoccupied">) <RECORDING "That bin is unoccupied">)
@ -2100,9 +2124,9 @@ quivering, as though he were about to cry." CR>)>>
<ROUTINE SPACETRUCK-TYPE ("AUX" X) <ROUTINE SPACETRUCK-TYPE ("AUX" X)
<COND (<NOT <FSET? ,CLASS-THREE-SPACECRAFT-ACTIVATION-FORM ,NDESCBIT>> <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> (<EQUAL? ,SPACETRUCK-COUNTER 5>
<RECORDING "Fuel levels at zero">) <RECORDING "Fuel level at zero">)
(<NOT <EQUAL? ,COURSE-PICKED 0>> (<NOT <EQUAL? ,COURSE-PICKED 0>>
<RECORDING "You have already made your selection">) <RECORDING "You have already made your selection">)
(<AND <OR <IN? ,PROTAGONIST ,PILOT-SEAT> (<AND <OR <IN? ,PROTAGONIST ,PILOT-SEAT>
@ -2110,23 +2134,23 @@ quivering, as though he were about to cry." CR>)>>
<OR <IN? ,PROTAGONIST ,COPILOT-SEAT> <OR <IN? ,PROTAGONIST ,COPILOT-SEAT>
<IN? ,FLOYD ,COPILOT-SEAT>>> <IN? ,FLOYD ,COPILOT-SEAT>>>
<SETG COURSE-PICKED ,P-NUMBER> <SETG COURSE-PICKED ,P-NUMBER>
<COND (,DEBUG ;<COND (,DEBUG
<TELL "[P-NUMBER = " N ,P-NUMBER ".]" CR> <TELL "[P-NUMBER = " N ,P-NUMBER ".]" CR>
<TELL "[INTERNAL-MOVES = " N ,INTERNAL-MOVES ".]" CR>)> <TELL "[INTERNAL-MOVES = " N ,INTERNAL-MOVES ".]" CR>)>
<SET X </ ,INTERNAL-MOVES 50>> <SET X </ ,INTERNAL-MOVES 50>>
<COND (,DEBUG ;<COND (,DEBUG
<TELL "[X = " N .X ".]" CR>)> <TELL "[X = " N .X ".]" CR>)>
<SET X <- .X 132>> <SET X <- .X 132>>
<COND (,DEBUG ;<COND (,DEBUG
<TELL "[X = " N .X ".]" CR>)> <TELL "[X = " N .X ".]" CR>)>
<SET X <* .X .X>> <SET X <* .X .X>>
<COND (,DEBUG ;<COND (,DEBUG
<TELL "[X = " N .X ".]" CR>)> <TELL "[X = " N .X ".]" CR>)>
<SET X </ .X 4>> <SET X </ .X 4>>
<COND (,DEBUG ;<COND (,DEBUG
<TELL "[X = " N .X ".]" CR>)> <TELL "[X = " N .X ".]" CR>)>
<SETG RIGHT-COURSE <+ .X 103>> <SETG RIGHT-COURSE <+ .X 103>>
<COND (,DEBUG ;<COND (,DEBUG
<TELL "[RIGHT-COURSE = " N ,RIGHT-COURSE ".]" CR>)> <TELL "[RIGHT-COURSE = " N ,RIGHT-COURSE ".]" CR>)>
<QUEUE I-SPACETRUCK 33> <QUEUE I-SPACETRUCK 33>
<RECORDING <RECORDING
@ -2142,9 +2166,8 @@ the pilot and copilot seats are occupied">)>>
<RECORDING "Select a level between 1 and 9">) <RECORDING "Select a level between 1 and 9">)
(<G? ,DAY 2> (<G? ,DAY 2>
<JIGS-UP <JIGS-UP
"The instant you press the button, the elevator begins plunging down the shaft! "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!!! in a power dive! You punch frantically at the keypad...">)
You punch frantically at the keypad...">)
(<EQUAL? ,ELEVATOR-LEVEL ,P-NUMBER> (<EQUAL? ,ELEVATOR-LEVEL ,P-NUMBER>
<RECORDING "You are already at that level">) <RECORDING "You are already at that level">)
(<EQUAL? ,P-NUMBER 8 9> (<EQUAL? ,P-NUMBER 8 9>
@ -2207,8 +2230,7 @@ the dispenser hole." CR>)
<RECORDING "Error">) <RECORDING "Error">)
(T (T
<RECORDING <RECORDING
"Sorry, that item is sold out. Please contact your PX Officer regarding "Sorry, that item is sold out. Inform your PX Officer for restocking">)>>
restocking of dispenser">)>>
<ROUTINE RECORDING (STRING) <ROUTINE RECORDING (STRING)
<COND (<PROB 33> <COND (<PROB 33>
@ -2276,9 +2298,8 @@ restocking of dispenser">)>>
<COND (<NOT ,P-WALK-DIR> <COND (<NOT ,P-WALK-DIR>
<PERFORM ,V?WALK-TO ,PRSO> <PERFORM ,V?WALK-TO ,PRSO>
<RTRUE>) <RTRUE>)
(<AND <G? ,PLATO-ATTACK-COUNTER 0> (,STUNNED
<IN? ,PLATO ,HERE>> <YOURE-STUNNED "walk">)
<STUNNED "walk">)
(<AND <PRSO? ,P?OUT> (<AND <PRSO? ,P?OUT>
<EQUAL? .AV ,SIMULATION-BOOTH ,HOLDING-TANK>> <EQUAL? .AV ,SIMULATION-BOOTH ,HOLDING-TANK>>
<PERFORM ,V?DISEMBARK .AV> <PERFORM ,V?DISEMBARK .AV>
@ -2321,47 +2342,49 @@ restocking of dispenser">)>>
<NOT <ULTIMATELY-IN? ,DETONATOR>>> <NOT <ULTIMATELY-IN? ,DETONATOR>>>
<DO-FIRST "disconnect the explosive">) <DO-FIRST "disconnect the explosive">)
(<SET PT <GETPT ,HERE ,PRSO>> (<SET PT <GETPT ,HERE ,PRSO>>
<COND (,LIT
<SETG C-ELAPSED 22>)
(T
<SETG C-ELAPSED 33>)>
<COND (<EQUAL? <SET PTS <PTSIZE .PT>> ,UEXIT> <COND (<EQUAL? <SET PTS <PTSIZE .PT>> ,UEXIT>
<SETG C-ELAPSED 22>
<GOTO <GETB .PT ,REXIT>>) <GOTO <GETB .PT ,REXIT>>)
(<EQUAL? .PTS ,CEXIT> (<EQUAL? .PTS ,CEXIT>
<COND (<EQUAL? ,HERE ,CASINO> <COND (<EQUAL? ,HERE ,CASINO>
<COND (<VALUE <GETB .PT ,CEXITFLAG>> <COND (<VALUE <GETB .PT ,CEXITFLAG>>
<SETG C-ELAPSED 22>
<GOTO <GETB .PT ,REXIT>>) <GOTO <GETB .PT ,REXIT>>)
;(<SET STR <GET .PT ,CEXITSTR>> ;(<SET STR <GET .PT ,CEXITSTR>>
<TELL .STR CR> <TELL .STR CR>
<RFATAL>) <RFATAL>)
(T (T
<SETG C-ELAPSED 7>
<TELL ,CANT-GO> <TELL ,CANT-GO>
<RFATAL>)>) <RFATAL>)>)
(T ;"kludge for auto-doors" (T ;"kludge for auto-doors"
<SETG C-ELAPSED 22>
<COND (<NOT <EQUAL? ,VERBOSITY 0>> <COND (<NOT <EQUAL? ,VERBOSITY 0>>
<DESCRIBE-AUTO-DOOR>)> <DESCRIBE-AUTO-DOOR>)>
<GOTO <GETB .PT ,REXIT>>)>) <GOTO <GETB .PT ,REXIT>>)>)
(<EQUAL? .PTS ,NEXIT> (<EQUAL? .PTS ,NEXIT>
<SETG C-ELAPSED 7>
<TELL <GET .PT ,NEXITSTR> CR> <TELL <GET .PT ,NEXITSTR> CR>
<RFATAL>) <RFATAL>)
(<EQUAL? .PTS ,FEXIT> (<EQUAL? .PTS ,FEXIT>
<SETG C-ELAPSED 22>
<COND (<SET RM <APPLY <GET .PT ,FEXITFCN>>> <COND (<SET RM <APPLY <GET .PT ,FEXITFCN>>>
<GOTO .RM>) <GOTO .RM>)
(<EQUAL? ,HERE ,AIR-SHAFT>
<RTRUE>)
(T (T
<COND (<EQUAL? ,HERE ,AIR-SHAFT> <SETG C-ELAPSED 7>
<RTRUE>) <RFATAL>)>)
(T
<SETG C-ELAPSED 7>
<RFATAL>)>)>)
(<EQUAL? .PTS ,DEXIT> (<EQUAL? .PTS ,DEXIT>
<COND (<FSET? <SET OBJ <GETB .PT ,DEXITOBJ>> ,OPENBIT> <COND (<FSET? <SET OBJ <GETB .PT ,DEXITOBJ>> ,OPENBIT>
<SETG C-ELAPSED 22>
<GOTO <GETB .PT ,REXIT>>) <GOTO <GETB .PT ,REXIT>>)
(<SET STR <GET .PT ,DEXITSTR>> (<SET STR <GET .PT ,DEXITSTR>>
<SETG C-ELAPSED 7>
<THIS-IS-IT .OBJ> <THIS-IS-IT .OBJ>
<TELL .STR CR> <TELL .STR CR>
<RFATAL>) <RFATAL>)
(T (T
<SETG C-ELAPSED 7>
<THIS-IS-IT .OBJ> <THIS-IS-IT .OBJ>
<DO-FIRST "open" .OBJ> <DO-FIRST "open" .OBJ>
<RFATAL>)>)>) <RFATAL>)>)>)
@ -2472,7 +2495,7 @@ generally the epitome of reliability.">)>)>
<RTRUE>> <RTRUE>>
<ROUTINE V-YELL () <ROUTINE V-YELL ()
<TELL "Aaaarrgghh!" CR> <TELL "Aaaarrrggghhh!" CR>
<COND (<IN? ,OSTRICH ,HERE> <COND (<IN? ,OSTRICH ,HERE>
<TELL " "> <TELL " ">
<PERFORM ,V?SCARE ,OSTRICH> <PERFORM ,V?SCARE ,OSTRICH>
@ -2490,10 +2513,10 @@ generally the epitome of reliability.">)>)>
<TELL "That was just a rhetorical question." CR>) <TELL "That was just a rhetorical question." CR>)
(<EQUAL? ,AWAITING-REPLY 2> (<EQUAL? ,AWAITING-REPLY 2>
<TELL <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> (<EQUAL? ,AWAITING-REPLY 3>
<TELL <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>) tag. Floyd knows rules for tag really well!\"" CR>)
(<EQUAL? ,AWAITING-REPLY 4> (<EQUAL? ,AWAITING-REPLY 4>
<PERFORM ,V?PLAY-WITH ,FLOYD> <PERFORM ,V?PLAY-WITH ,FLOYD>
@ -2530,7 +2553,9 @@ tag. Floyd knows rules for tag really well!\"" CR>)
(<PROB <- <* <CCOUNT ,PROTAGONIST> 20> 150>> (<PROB <- <* <CCOUNT ,PROTAGONIST> 20> 150>>
;"holding 8 items, 10% ;"holding 8 items, 10%
9 itmes, 30% 9 itmes, 30%
10 items, 50%
11 items, 70% 11 items, 70%
12 items, 90%
13 items, 100%" 13 items, 100%"
<SET OBJ <FIRST? ,PROTAGONIST>> <SET OBJ <FIRST? ,PROTAGONIST>>
<REPEAT () <REPEAT ()
@ -2592,7 +2617,10 @@ tag. Floyd knows rules for tag really well!\"" CR>)
(T (T
<TELL <TELL
"That's easy for you to say since you don't even have" TR ,PRSO>)> "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>> (<AND <NOT <IN? ,PRSO ,PROTAGONIST>>
<FSET? <LOC ,PRSO> ,CONTBIT> <FSET? <LOC ,PRSO> ,CONTBIT>
<NOT <FSET? <LOC ,PRSO> ,OPENBIT>>> <NOT <FSET? <LOC ,PRSO> ,OPENBIT>>>
@ -2606,6 +2634,7 @@ tag. Floyd knows rules for tag really well!\"" CR>)
<COND (<SET X <FIRST? .OBJ>> <COND (<SET X <FIRST? .OBJ>>
<REPEAT () <REPEAT ()
<COND (<NOT <FSET? .X ,WORNBIT>> <COND (<NOT <FSET? .X ,WORNBIT>>
;"worn things shouldnt count toward max load"
<SET CNT <+ .CNT 1>>)> <SET CNT <+ .CNT 1>>)>
<COND (<NOT <SET X <NEXT? .X>>> <COND (<NOT <SET X <NEXT? .X>>>
<RETURN>)>>)> <RETURN>)>>)>
@ -2615,10 +2644,8 @@ tag. Floyd knows rules for tag really well!\"" CR>)
<ROUTINE WEIGHT (OBJ "AUX" CONT (WT 0)) <ROUTINE WEIGHT (OBJ "AUX" CONT (WT 0))
<COND (<SET CONT <FIRST? .OBJ>> <COND (<SET CONT <FIRST? .OBJ>>
<REPEAT () <REPEAT ()
<COND (<AND <EQUAL? .OBJ ,PROTAGONIST> <COND (<NOT <FSET? .CONT ,WORNBIT>>
<FSET? .CONT ,WORNBIT>> ;"worn things shouldnt count toward max load"
T ;"worn things shouldnt count toward max load")
(T
<SET WT <+ .WT <WEIGHT .CONT>>>)> <SET WT <+ .WT <WEIGHT .CONT>>>)>
<SET CONT <NEXT? .CONT>> <SET CONT <NEXT? .CONT>>
<COND (<NOT .CONT> <COND (<NOT .CONT>
@ -3045,12 +3072,22 @@ a modicum of stability.">)>)>
<RFALSE>) <RFALSE>)
(<AND ,HANGING-IN-AIR (<AND ,HANGING-IN-AIR
<IN? .OBJ ,HERE>> <IN? .OBJ ,HERE>>
<COND (<OR <EQUAL? .OBJ ,BALLOON ,ETERNAL-FLAME> <COND (<OR <EQUAL? .OBJ ,BALLOON ,ETERNAL-FLAME ,LEASH>
<AND <EQUAL? .OBJ ,STAR> <AND <EQUAL? .OBJ ,STAR>
<FSET? .OBJ ,TRYTAKEBIT>>> <FSET? .OBJ ,TRYTAKEBIT>>>
<RFALSE>) <RFALSE>)
(T (T
<RTRUE>)>) <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> (<IN? ,PROTAGONIST ,HERE>
<RFALSE>) <RFALSE>)
(<OR <ULTIMATELY-IN? .OBJ <LOC ,PROTAGONIST>> (<OR <ULTIMATELY-IN? .OBJ <LOC ,PROTAGONIST>>
@ -3222,7 +3259,7 @@ a modicum of stability.">)>)>
"Fat chance." "Fat chance."
"You are behaving like a demented Denebian slime devil." "You are behaving like a demented Denebian slime devil."
"Dream on." "Dream on."
"It's the looney bin for you!" "You're wacko."
"You have lost your mind.">> "You have lost your mind.">>
<ROUTINE WASTES () <ROUTINE WASTES ()
@ -3231,8 +3268,8 @@ a modicum of stability.">)>)>
<GLOBAL WASTE-LIST <GLOBAL WASTE-LIST
<LTABLE 0 <LTABLE 0
"A waste of time." "A waste of time."
"A worthless action -- and much too difficult for a poorly-written program "A worthless action -- and much too complex for a crufty program like
like this one to handle." this one to handle."
"Useless. Unhelpful." "Useless. Unhelpful."
"There's another turn down the drain." "There's another turn down the drain."
"Why bother?">> "Why bother?">>

View file

@ -32,9 +32,10 @@
.FUNCT IRIS-HATCH-F .FUNCT IRIS-HATCH-F
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3 EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
PRINTR "It won't budge." PRINT WONT-BUDGE
RTRUE
?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE ?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 RFALSE
@ -93,28 +94,6 @@
RFALSE 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 .FUNCT BARBERSHOP-F,RARG
EQUAL? RARG,M-LOOK \FALSE EQUAL? RARG,M-LOOK \FALSE
PRINTI "You have entered a surprisingly old-fashioned looking tonsorial parlor. " PRINTI "You have entered a surprisingly old-fashioned looking tonsorial parlor. "
@ -134,23 +113,26 @@
PRINTR "You look mah-velous." PRINTR "You look mah-velous."
?CCL7: EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-BEHIND \?CCL9 ?CCL7: EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-BEHIND \?CCL9
PRINTR "The mirror seems to be affixed to the wall." PRINTR "The mirror seems to be affixed to the wall."
?CCL9: EQUAL? PRSA,V?MUNG /?CCL11 ?CCL9: EQUAL? PRSA,V?KILL,V?KICK,V?MUNG \?CCL11
EQUAL? PRSA,V?THROW \FALSE SET 'MIRROR-BROKEN,TRUE-VALUE
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
?CCL11: SET 'MIRROR-BROKEN,TRUE-VALUE
MOVE FOIL,HERE 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: " 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 GETP FOIL,P?FDESC
PRINT STACK PRINT STACK
CRLF CRLF
RTRUE 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 .FUNCT FOIL-F
EQUAL? PRSA,V?EXAMINE,V?MEASURE \?CCL3 EQUAL? PRSA,V?EXAMINE,V?MEASURE \?CCL3
PRINTI "It's a large piece of " PRINTI "It's a large piece of "
PRINTD FOIL PRINTD FOIL
PRINTR ", about six feet on a side." PRINTR ", about two meters on a side."
?CCL3: EQUAL? PRSA,V?CRUMPLE \?CCL5 ?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." 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 ?CCL5: EQUAL? PRSA,V?FIND \FALSE
@ -220,7 +202,9 @@
?CCL10: EQUAL? PRSA,V?CATCH,V?TAKE \?CCL21 ?CCL10: EQUAL? PRSA,V?CATCH,V?TAKE \?CCL21
CALL PERFORM,V?TAKE,LEASH CALL PERFORM,V?TAKE,LEASH
RTRUE 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 " PRINTI "The "
PRINTD BALLOON PRINTD BALLOON
PRINTR " purrs and rings of color shimmer along its body." PRINTR " purrs and rings of color shimmer along its body."
@ -229,67 +213,60 @@
.FUNCT LEASH-F .FUNCT LEASH-F
EQUAL? PRSA,V?MOVE,V?TAKE \?CCL3 EQUAL? PRSA,V?MOVE,V?TAKE \?CCL3
EQUAL? PRSO,LEASH \?CCL3 EQUAL? PRSO,LEASH \?CCL3
IN? BALLOON,CAGE \?CCL8 ZERO? HANGING-IN-AIR /?CCL8
PRINT YOU-CANT
PRINTR "reach the leash inside the cage."
?CCL8: ZERO? HANGING-IN-AIR /?CCL10
PRINT SENILITY-STRIKES PRINT SENILITY-STRIKES
RTRUE 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." 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" 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 CALL CCOUNT,PROTAGONIST
GRTR? STACK,0 \?CND15 GRTR? STACK,0 \?CND13
CALL ROB,PROTAGONIST,HERE CALL ROB,PROTAGONIST,HERE
PRINTI " and drop everything you were holding" PRINTI " and drop everything you were holding"
?CND15: PRINT PERIOD-CR ?CND13: PRINT PERIOD-CR
RTRUE RTRUE
?CCL14: SET 'HANGING-IN-AIR,TRUE-VALUE ?CCL12: SET 'HANGING-IN-AIR,TRUE-VALUE
PRINTI "As you grab the leash, the startled " PRINTI "As you grab the leash, the startled "
PRINTD BALLOON PRINTD BALLOON
PRINTI " tries to get away by hyperinflating. Slowly, its buoyancy lifts you right " PRINTI " tries to get away by hyperinflating. Slowly, its buoyancy lifts you right "
FSET? BOOTS,WORNBIT \?CCL19 FSET? BOOTS,WORNBIT \?CCL17
FCLEAR BOOTS,WORNBIT FCLEAR BOOTS,WORNBIT
MOVE BOOTS,HERE MOVE BOOTS,HERE
PRINTI "out of the " PRINTI "out of the "
PRINTD BOOTS PRINTD BOOTS
JUMP ?CND17 JUMP ?CND15
?CCL19: PRINTI "off the deck" ?CCL17: 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)" ?CND15: PRINTI "! Within moments, the Arcturian is bobbing against the ceiling, and you're hanging two meters off the floor! (Footnote 4)"
CRLF CRLF
IN? FLOYD,HERE \TRUE IN? FLOYD,HERE \TRUE
FSET? FLOYD,ACTIVEBIT \TRUE FSET? FLOYD,ACTIVEBIT \TRUE
ZERO? HANGING-COMMENT \TRUE ZERO? HANGING-COMMENT \TRUE
SET 'FLOYD-SPOKE,TRUE-VALUE SET 'FLOYD-SPOKE,TRUE-VALUE
CALL FLOYDS-HANGING-IN-AIR-COMMENT SET 'HANGING-COMMENT,TRUE-VALUE
PRINT FLOYDS-HANGING-IN-AIR-COMMENT
RTRUE 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" PRINTI "There's no obvious way to remove the leash from"
CALL TRPRINT,BALLOON CALL TRPRINT,BALLOON
RSTACK RSTACK
?CCL26: EQUAL? PRSA,V?DISCONNECT \?CCL28 ?CCL24: EQUAL? PRSA,V?DISCONNECT \?CCL26
ZERO? PRSI /?CTR27 ZERO? PRSI /?CTR25
EQUAL? PRSI,BALLOON \?CCL28 EQUAL? PRSI,BALLOON \?CCL26
?CTR27: CALL PERFORM,V?REMOVE,LEASH ?CTR25: CALL PERFORM,V?REMOVE,LEASH
RTRUE RTRUE
?CCL28: EQUAL? PRSA,V?DROP \FALSE ?CCL26: EQUAL? PRSA,V?DROP \FALSE
ZERO? HANGING-IN-AIR /FALSE ZERO? HANGING-IN-AIR /FALSE
SET 'HANGING-IN-AIR,FALSE-VALUE SET 'HANGING-IN-AIR,FALSE-VALUE
PRINTI "You drop to the deck." PRINTI "You drop to the deck."
IN? BALLOON,HERE \?CND37 IN? BALLOON,HERE \?CND35
PRINTI " The " PRINTI " The "
PRINTD BALLOON PRINTD BALLOON
PRINTR " gradually floats downward until it's back at around eye-level." PRINTR " gradually floats downward until it's back at around eye-level."
?CND37: CRLF ?CND35: CRLF
RTRUE 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 .FUNCT PANEL-F
EQUAL? PRSA,V?LOWER,V?REMOVE,V?MOVE /?CCL3 EQUAL? PRSA,V?LOWER,V?REMOVE,V?MOVE /?CCL3
EQUAL? PRSA,V?LOOK-BEHIND \FALSE EQUAL? PRSA,V?LOOK-BEHIND \FALSE
@ -389,27 +366,32 @@
.FUNCT DICE-F,NUM,?TMP1 .FUNCT DICE-F,NUM,?TMP1
EQUAL? PRSA,V?THROW,V?ROLL \?CCL3 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 RANDOM 100
LESS? 50,STACK /?CCL9 LESS? 50,STACK /?CCL11
SET 'NUM,7 SET 'NUM,7
JUMP ?CND4 JUMP ?CND4
?CCL9: SET 'NUM,11 ?CCL11: SET 'NUM,11
JUMP ?CND4 JUMP ?CND4
?CCL6: RANDOM 6 >?TMP1 ?CCL8: RANDOM 6 >?TMP1
RANDOM 6 RANDOM 6
ADD ?TMP1,STACK >NUM ADD ?TMP1,STACK >NUM
?CND4: MOVE DICE,HERE ?CND4: MOVE DICE,HERE
PRINTI "You roll a" PRINTI "You roll a"
EQUAL? NUM,8,11 \?CND10 EQUAL? NUM,8,11 \?CND12
PRINTC 110 PRINTC 110
?CND10: PRINTC 32 ?CND12: PRINTC 32
PRINTN NUM PRINTN NUM
FSET? HERE,WEIGHTLESSBIT \?CND12 FSET? HERE,WEIGHTLESSBIT \?CND14
ZERO? DICE-FOOTNOTE \?CND12 ZERO? DICE-FOOTNOTE \?CND14
SET 'DICE-FOOTNOTE,TRUE-VALUE SET 'DICE-FOOTNOTE,TRUE-VALUE
PRINTI " (Footnote 1)" PRINTI " (Footnote 1)"
?CND12: PRINT PERIOD-CR ?CND14: PRINT PERIOD-CR
RTRUE RTRUE
?CCL3: EQUAL? PRSA,V?SHAKE \FALSE ?CCL3: EQUAL? PRSA,V?SHAKE \FALSE
PRINTR "Shaken." PRINTR "Shaken."
@ -434,7 +416,7 @@
.FUNCT VACUUM-DEATH .FUNCT VACUUM-DEATH
CALL JIGS-UP,STR?355 CALL JIGS-UP,STR?365
RSTACK RSTACK
@ -453,7 +435,7 @@
.FUNCT COUNTER-F .FUNCT COUNTER-F
EQUAL? PRSA,V?SEARCH,V?LOOK-BEHIND,V?LOOK-UNDER /?PRD5 EQUAL? PRSA,V?SEARCH,V?LOOK-BEHIND,V?LOOK-UNDER /?PRD5
EQUAL? PRSA,V?HIDE,V?EXAMINE \?CCL3 EQUAL? PRSA,V?HIDE,V?EXAMINE \?CCL3
?PRD5: IN? NECTAR,LOCAL-GLOBALS \?CCL3 ?PRD5: FSET? NECTAR,TOUCHBIT /?CCL3
CALL PERFORM,V?SEARCH,GLOBAL-ROOM CALL PERFORM,V?SEARCH,GLOBAL-ROOM
RTRUE RTRUE
?CCL3: EQUAL? PRSA,V?LOOK-OVER \FALSE ?CCL3: EQUAL? PRSA,V?LOOK-OVER \FALSE
@ -463,14 +445,20 @@
.FUNCT NECTAR-F .FUNCT NECTAR-F
EQUAL? PRSA,V?EMPTY,V?POUR,V?THROW \?CCL3 EQUAL? PRSA,V?EMPTY,V?POUR,V?THROW \?CCL3
EQUAL? PRSO,NECTAR \?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 CALL ANTI-LITTER,NECTAR
RSTACK RSTACK
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL7 ?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL7
CALL NOUN-USED,W?CUP,NECTAR CALL NOUN-USED,W?CUP,NECTAR
ZERO? STACK /?CCL7 ZERO? STACK /?CCL7
PRINTR "The cup is filled with nectar." PRINTR "Yup. Nectar."
?CCL7: EQUAL? PRSA,V?FIND \FALSE ?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 IN? NECTAR,LOCAL-GLOBALS \FALSE
EQUAL? HERE,GREASY-STRAW \FALSE EQUAL? HERE,GREASY-STRAW \FALSE
CALL PERFORM,V?SEARCH,GLOBAL-ROOM CALL PERFORM,V?SEARCH,GLOBAL-ROOM
@ -515,7 +503,7 @@
GRTR? DETECTOR-COUNTER,99 \?CCL12 GRTR? DETECTOR-COUNTER,99 \?CCL12
PRINTR "Ouch! The detector is too hot to pick up!" PRINTR "Ouch! The detector is too hot to pick up!"
?CCL12: CALL ITAKE ?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 " PRINTI "As you pick up the detector, you notice that is feels "
GRTR? DETECTOR-COUNTER,75 \?CND15 GRTR? DETECTOR-COUNTER,75 \?CND15
PRINTI "very " PRINTI "very "
@ -541,30 +529,6 @@
PRINTR "The beeping is strongest as you approach the mirror." 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 .FUNCT TRAVEL-AGENCY-POSTER-F
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE 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.""" 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 EQUAL? PRSA,V?OPEN \FALSE
FSET? INNER-AIRLOCK-DOOR,OPENBIT /FALSE FSET? INNER-AIRLOCK-DOOR,OPENBIT /FALSE
FSET? OUTER-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 .FUNCT OUTER-AIRLOCK-DOOR-F,X=0,N=0,OBJ-FLUSHED=0,?TMP1
EQUAL? PRSA,V?OPEN \?CCL3 EQUAL? PRSA,V?OPEN \?CCL3
FSET? OUTER-AIRLOCK-DOOR,OPENBIT /?CCL3 FSET? OUTER-AIRLOCK-DOOR,OPENBIT /?CCL3
FSET? INNER-AIRLOCK-DOOR,OPENBIT \?CCL8 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" ?CCL8: PRINTI "As the door opens, the air in the lock whooshes out into the vacuum of space"
FSET? SPACESUIT,WORNBIT /?CCL11 FSET? SPACESUIT,WORNBIT /?CCL11
PRINTI ". " PRINTI ". "
@ -600,38 +566,41 @@
CALL LOST-IN-SPACE CALL LOST-IN-SPACE
JUMP ?CND9 JUMP ?CND9
?CCL13: FSET OUTER-AIRLOCK-DOOR,OPENBIT ?CCL13: FSET OUTER-AIRLOCK-DOOR,OPENBIT
FIRST? AIRLOCK >X /?PRG14 CALL META-LOC,EXPLOSIVE
?PRG14: ZERO? X /?REP15 EQUAL? STACK,HERE \?CND14
NEXT? X >N /?KLU39 CALL DEQUEUE,I-EXPLOSIVE-MELT
?KLU39: EQUAL? X,PROTAGONIST,OSTRICH,BALLOON /?CND18 ?CND14: FIRST? AIRLOCK >X /?PRG16
?PRG16: ZERO? X /?REP17
NEXT? X >N /?KLU41
?KLU41: EQUAL? X,PROTAGONIST,OSTRICH,BALLOON /?CND20
REMOVE X REMOVE X
SET 'OBJ-FLUSHED,TRUE-VALUE SET 'OBJ-FLUSHED,TRUE-VALUE
?CND18: SET 'X,N ?CND20: SET 'X,N
JUMP ?PRG14 JUMP ?PRG16
?REP15: ZERO? OBJ-FLUSHED /?CND20 ?REP17: ZERO? OBJ-FLUSHED /?CND22
PRINTI ", flushing everything in the airlock" PRINTI ", flushing everything in the airlock"
?CND20: PRINT PERIOD-CR ?CND22: PRINT PERIOD-CR
?CND9: IN? OSTRICH,HERE \?CND22 ?CND9: IN? OSTRICH,HERE \?CND24
REMOVE OSTRICH REMOVE OSTRICH
PRINT PATHETIC-SQUAWK PRINT PATHETIC-SQUAWK
PRINTI " as it is swept into space, quickly dwindling from sight." PRINTI " as it is swept into space, quickly dwindling from sight."
CRLF CRLF
?CND22: IN? BALLOON,HERE \?CND24 ?CND24: IN? BALLOON,HERE \?CND26
REMOVE BALLOON REMOVE BALLOON
REMOVE LEASH REMOVE LEASH
PRINTI " The " PRINTI " The "
PRINTD BALLOON PRINTD BALLOON
PRINTI ", unable to adjust to the sudden drop in pressure, explodes into a puff of hydrogen that immediately vanishes!" PRINTI ", unable to adjust to the sudden drop in pressure, explodes into a puff of hydrogen that immediately vanishes!"
CRLF CRLF
?CND24: CALL ULTIMATELY-IN?,FOOD-KIT ?CND26: CALL ULTIMATELY-IN?,FOOD-KIT
ZERO? STACK /?CND26 ZERO? STACK /?CND28
LOC ORANGE-GOO >?TMP1 LOC ORANGE-GOO >?TMP1
LOC GRAY-GOO LOC GRAY-GOO
EQUAL? FOOD-KIT,?TMP1,STACK \?CND26 EQUAL? FOOD-KIT,?TMP1,STACK \?CND28
FSET? FOOD-KIT,OPENBIT \?CND26 FSET? FOOD-KIT,OPENBIT \?CND28
PRINTI " " PRINTI " "
CALL SPACE-FOOD CALL SPACE-FOOD
?CND26: CALL SPACE-LIQUID,SOUP ?CND28: CALL SPACE-LIQUID,SOUP
CALL SPACE-LIQUID,COFFEE CALL SPACE-LIQUID,COFFEE
CALL SPACE-LIQUID,NECTAR CALL SPACE-LIQUID,NECTAR
RTRUE RTRUE
@ -640,9 +609,9 @@
FSET? OUTER-AIRLOCK-DOOR,OPENBIT \FALSE FSET? OUTER-AIRLOCK-DOOR,OPENBIT \FALSE
FCLEAR OUTER-AIRLOCK-DOOR,OPENBIT FCLEAR OUTER-AIRLOCK-DOOR,OPENBIT
CALL ULTIMATELY-IN?,EXPLOSIVE,HERE CALL ULTIMATELY-IN?,EXPLOSIVE,HERE
ZERO? STACK /?CND36 ZERO? STACK /?CND38
CALL QUEUE,I-EXPLOSIVE-MELT,-1 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 .FUNCT GENERIC-AIRLOCK-DOOR-F
@ -655,7 +624,7 @@
.FUNCT AIRLOCK-F,RARG .FUNCT AIRLOCK-F,RARG
EQUAL? RARG,M-LOOK \FALSE 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? INNER-AIRLOCK-DOOR,OPENBIT /?CCL6
FSET? OUTER-AIRLOCK-DOOR,OPENBIT /?CCL6 FSET? OUTER-AIRLOCK-DOOR,OPENBIT /?CCL6
PRINTI "Neither door" PRINTI "Neither door"
@ -699,12 +668,12 @@
PUSH 0 PUSH 0
JUMP ?CND23 JUMP ?CND23
?CCL27: PUSH OUTER-AIRLOCK-DOOR ?CCL27: PUSH OUTER-AIRLOCK-DOOR
?CND23: CALL PERFORM-PRSA,STACK ?CND23: CALL PERFORM,PRSA,STACK
RSTACK RTRUE
.FUNCT LOST-IN-SPACE .FUNCT LOST-IN-SPACE
CALL JIGS-UP,STR?366 CALL JIGS-UP,STR?377
RSTACK RSTACK
@ -712,7 +681,7 @@
EQUAL? RARG,M-LOOK \FALSE 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 " 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 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 CALL OPEN-CLOSED,OUTER-AIRLOCK-DOOR
PRINTC 46 PRINTC 46
RTRUE RTRUE
@ -730,48 +699,21 @@
RSTACK RSTACK
?CCL8: CRLF ?CCL8: CRLF
RTRUE 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? PRSI \FALSE
ZERO? EXPLOSIVE-CONNECTED /FALSE ZERO? EXPLOSIVE-CONNECTED /FALSE
CALL PERFORM,V?DISCONNECT,EXPLOSIVE,DETONATOR CALL PERFORM,V?DISCONNECT,EXPLOSIVE,DETONATOR
RTRUE 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 .FUNCT DESCRIBE-EXPLOSIVE
PRINTI " The explosive " PRINTI " The explosive "
GRTR? MELT-COUNTER,170 \?CCL3 GRTR? MELT-COUNTER,170 \?CCL3
@ -793,57 +735,62 @@
A mixture of high-quality spores A mixture of high-quality spores
Lowest gas-inducement levels of any brand!""" Lowest gas-inducement levels of any brand!"""
?CCL8: EQUAL? PRSA,V?SPRAY \FALSE ?CCL8: EQUAL? PRSA,V?SPRAY \FALSE
ZERO? PRSI /?CCL13 CALL ULTIMATELY-IN?,SPRAY-CAN
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." ZERO? STACK \?CCL13
?CCL13: ZERO? SPRAY-COUNTER \?CCL15 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 PRINT NOTHING-HAPPENS
RTRUE RTRUE
?CCL15: DEC 'SPRAY-COUNTER ?CND11: DEC 'SPRAY-COUNTER
PRINTI "A dusty mist puffs from the can and begins dissipating" PRINTI "A dusty mist puffs from the can and begins dissipating"
IN? BALLOON,HERE \?CCL18 IN? BALLOON,HERE \?CCL19
PRINTI ". The " PRINTI ". The "
PRINTD BALLOON PRINTD BALLOON
PRINTI " begins darting around the room, its mouth absurdly wide open" PRINTI " begins darting around the room, its mouth absurdly wide open"
JUMP ?CND16 JUMP ?CND17
?CCL18: EQUAL? HERE,PET-STORE \?CCL20 ?CCL19: EQUAL? HERE,PET-STORE \?CCL21
IN? BALLOON,CAGE \?CCL20 IN? BALLOON,CAGE \?CCL21
PRINTI ". The " PRINTI ". The "
PRINTD BALLOON PRINTD BALLOON
PRINTI " puffs wildly around the cage, trying to get at the yummy spores" PRINTI " puffs wildly around the cage, trying to get at the yummy spores"
JUMP ?CND16 JUMP ?CND17
?CCL20: CALL NEXT-ROOM?,BALLOON ?CCL21: CALL NEXT-ROOM?,BALLOON
ZERO? STACK /?CND16 ZERO? STACK /?CND17
EQUAL? HERE,BRIG,ARMORY /?CND16 EQUAL? HERE,BRIG,ARMORY /?CND17
PRINTI ". The " PRINTI ". The "
PRINTD BALLOON PRINTD BALLOON
EQUAL? HERE,CHAPEL \?CCL28 EQUAL? HERE,CHAPEL \?CCL29
FSET? ETERNAL-FLAME,ONBIT \?CCL28 FSET? ETERNAL-FLAME,ONBIT \?CCL29
PRINTR " appears in the doorway, stops, and hastily puffs away." PRINTR " appears in the doorway, stops, and hastily puffs away."
?CCL28: PRINTI " farts in, hungrily gobbling up the spores" ?CCL29: PRINTI " farts in, hungrily gobbling up the spores"
ZERO? CROSSED-BOUNDARY \?CCL32 ZERO? CROSSED-BOUNDARY \?CCL33
IN? BALLOON,ELEVATOR /?CCL32 IN? BALLOON,ELEVATOR /?CCL33
EQUAL? HERE,ELEVATOR \?CND31 EQUAL? HERE,ELEVATOR \?CND32
?CCL32: PRINTI ". As the " ?CCL33: PRINTI ". As the "
PRINTD BALLOON PRINTD BALLOON
PRINTI " crosses the boundary " PRINTI " crosses the boundary "
ZERO? CROSSED-BOUNDARY /?CCL38 ZERO? CROSSED-BOUNDARY /?CCL39
PRINTI "between the Command Module and the village" PRINTI "between the Command Module and the village"
JUMP ?CND36 JUMP ?CND37
?CCL38: PRINTI "of the " ?CCL39: PRINTI "of the "
PRINTD ELEVATOR-SHAFT PRINTD ELEVATOR-SHAFT
?CND36: PRINTI ", it is caught unawares by the sudden " ?CND37: PRINTI ", it is caught unawares by the sudden "
EQUAL? CROSSED-BOUNDARY,1 /?CTR40 EQUAL? CROSSED-BOUNDARY,1 /?CTR41
EQUAL? HERE,ELEVATOR \?CCL41 EQUAL? HERE,ELEVATOR \?CCL42
?CTR40: PRINTI "lack of gravity, but soon" ?CTR41: PRINTI "lack of gravity, but soon"
JUMP ?CND39 JUMP ?CND40
?CCL41: PRINTI "presence of gravity. It sinks almost to the floor before it" ?CCL42: PRINTI "presence of gravity. It sinks almost to the floor before it"
?CND39: PRINTI " adjusts" ?CND40: PRINTI " adjusts"
?CND31: MOVE BALLOON,HERE ?CND32: MOVE BALLOON,HERE
MOVE LEASH,HERE MOVE LEASH,HERE
SET 'CROSSED-BOUNDARY,0 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" 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 RTRUE
@ -946,7 +893,7 @@ Lowest gas-inducement levels of any brand!"""
EQUAL? PRSI,PSEUDO-OBJECT \?CCL3 EQUAL? PRSI,PSEUDO-OBJECT \?CCL3
GETP PRSO,P?SIZE GETP PRSO,P?SIZE
GRTR? STACK,5 \?CCL8 GRTR? STACK,5 \?CCL8
CALL DOESNT-FIT,STR?249 CALL DOESNT-FIT,STR?257
RSTACK RSTACK
?CCL8: PRINTI "With a ""fwoomp!""" ?CCL8: PRINTI "With a ""fwoomp!"""
CALL TPRINT-PRSO CALL TPRINT-PRSO
@ -965,14 +912,14 @@ Lowest gas-inducement levels of any brand!"""
.FUNCT OSTRICH-F .FUNCT OSTRICH-F
EQUAL? PRSA,V?EXAMINE \?CCL3 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 FSET? OSTRICH,TOUCHBIT /?CND4
PRINTI ". The ostrich looks to be asleep, or unconscious, or drunk" PRINTI ". The ostrich looks to be asleep, or unconscious, or drunk"
?CND4: PRINT PERIOD-CR ?CND4: PRINT PERIOD-CR
RTRUE RTRUE
?CCL3: EQUAL? PRSA,V?SHOOT \?CCL7 ?CCL3: EQUAL? PRSA,V?SHOOT \?CCL7
REMOVE OSTRICH 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 ?CCL7: FSET? OSTRICH,TOUCHBIT /?CCL9
EQUAL? PRSA,V?SCARE \?CCL12 EQUAL? PRSA,V?SCARE \?CCL12
PRINTR "The ostrich is unconscious!" 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 " ?CCL31: PRINTI "The ostrich emits a terrified squawk and sticks its head "
EQUAL? HERE,DOC-SCHUSTER \?CCL38 EQUAL? HERE,DOC-SCHUSTER \?CCL38
PRINTI "into the disposal hole" PRINTI "into the disposal hole"
ZERO? OSTRICH-FOOTNOTE \?CND36
SET 'OSTRICH-FOOTNOTE,TRUE-VALUE
PRINTI " (Footnote 14)"
JUMP ?CND36 JUMP ?CND36
?CCL38: EQUAL? HERE,PX \?CCL40 ?CCL38: EQUAL? HERE,PX \?CCL42
IN? DISPENSER,HERE \?CCL40 IN? DISPENSER,HERE \?CCL42
PRINTI "into the dispenser hole." PRINTI "into the dispenser hole."
CALL OSTRICH-INTO-DISPENSER CALL OSTRICH-INTO-DISPENSER
CRLF CRLF
RTRUE RTRUE
?CCL40: IN? HEATING-CHAMBER,HERE \?CCL44 ?CCL42: IN? HEATING-CHAMBER,HERE \?CCL46
PRINTI "into the " PRINTI "into the "
PRINTD HEATING-CHAMBER PRINTD HEATING-CHAMBER
PRINTR ". After a quick singe, it jerks its head out, squawking in pain." 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." ?CND36: PRINTR " for a moment."
@ -1033,12 +983,12 @@ Lowest gas-inducement levels of any brand!"""
RSTACK RSTACK
?CCL3: EQUAL? PRSA,V?REACH-IN,V?LOOK-INSIDE \?CCL5 ?CCL3: EQUAL? PRSA,V?REACH-IN,V?LOOK-INSIDE \?CCL5
EQUAL? PRSO,PSEUDO-OBJECT \?CCL5 EQUAL? PRSO,PSEUDO-OBJECT \?CCL5
CALL PERFORM-PRSA,ID-CHANGER,PRSI CALL PERFORM,PRSA,ID-CHANGER,PRSI
RSTACK RTRUE
?CCL5: EQUAL? PRSA,V?PUT \FALSE ?CCL5: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,PSEUDO-OBJECT \FALSE EQUAL? PRSI,PSEUDO-OBJECT \FALSE
CALL PERFORM-PRSA,PRSO,ID-CHANGER CALL PERFORM,PRSA,PRSO,ID-CHANGER
RSTACK RTRUE
.FUNCT ID-CHANGER-F .FUNCT ID-CHANGER-F
@ -1054,7 +1004,8 @@ Lowest gas-inducement levels of any brand!"""
PRINT HUH PRINT HUH
RTRUE RTRUE
?CCL8: EQUAL? PRSA,V?TAKE \?CCL10 ?CCL8: EQUAL? PRSA,V?TAKE \?CCL10
PRINTR "It's bolted down." PRINT WONT-BUDGE
RTRUE
?CCL10: EQUAL? PRSA,V?PUT \?CCL12 ?CCL10: EQUAL? PRSA,V?PUT \?CCL12
EQUAL? PRSI,ID-CHANGER \?CCL12 EQUAL? PRSI,ID-CHANGER \?CCL12
EQUAL? PRSO,ID-CARD \?CCL17 EQUAL? PRSO,ID-CARD \?CCL17
@ -1062,7 +1013,12 @@ Lowest gas-inducement levels of any brand!"""
FSET? ID-CHANGER,ACTIVEBIT \?CCL20 FSET? ID-CHANGER,ACTIVEBIT \?CCL20
PRINTI "A voice from the machine says, """ PRINTI "A voice from the machine says, """
ZERO? ID-SCRAMBLED /?CCL23 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 " ?CCL23: PRINTI "Current rank is "
PRINTN ID-RANK PRINTN ID-RANK
PRINTI ": " PRINTI ": "
@ -1071,7 +1027,7 @@ Lowest gas-inducement levels of any brand!"""
PRINT STACK PRINT STACK
PRINTR ". Enter new rank on keypad.""" PRINTR ". Enter new rank on keypad."""
?CCL20: PRINTR "The card fits neatly into the opening." ?CCL20: PRINTR "The card fits neatly into the opening."
?CCL17: CALL DOESNT-FIT,STR?378 ?CCL17: CALL DOESNT-FIT,STR?389
RSTACK RSTACK
?CCL12: EQUAL? PRSA,V?ON \FALSE ?CCL12: EQUAL? PRSA,V?ON \FALSE
FSET? ID-CHANGER,ACTIVEBIT /FALSE FSET? ID-CHANGER,ACTIVEBIT /FALSE
@ -1087,15 +1043,18 @@ Lowest gas-inducement levels of any brand!"""
IN? ID-CARD,ID-CHANGER \?CCL3 IN? ID-CARD,ID-CHANGER \?CCL3
FSET? ID-CHANGER,ACTIVEBIT \?CCL3 FSET? ID-CHANGER,ACTIVEBIT \?CCL3
ZERO? ID-SCRAMBLED /?CCL8 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 RSTACK
?CCL8: GRTR? P-NUMBER,10 \?CCL10 ?CCL8: GRTR? P-NUMBER,10 \?CCL12
PRINTI """Error!"" chirps the " PRINTI """Error!"" chirps the "
PRINTD ID-CHANGER PRINTD ID-CHANGER
PRINTR ". ""The highest rank number recognized by the Stellar Patrol is 10.""" 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." 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 " PRINTI """New rank is "
PRINTN ID-RANK PRINTN ID-RANK
PRINTI ": " PRINTI ": "

View file

@ -41,12 +41,12 @@ the station's artificial gravity ">
<ROUTINE IRIS-HATCH-F () <ROUTINE IRIS-HATCH-F ()
<COND (<VERB? OPEN CLOSE> <COND (<VERB? OPEN CLOSE>
<TELL "It won't budge." CR>) <TELL ,WONT-BUDGE>)
(<VERB? EXAMINE> (<VERB? EXAMINE>
<TELL <TELL
"The hatch, like the f-stop of a camera, is composed of many pieces which "The hatch, like the f-stop of a camera, is composed of many pieces which move
move to form a circular opening of the desired size. This is a common way to form a circular opening of the desired size. This is a common way of joining
of joining connecting tubes to ships or stations. "> connecting tubes to ships or stations. There's a slot next to the hatch. ">
<RFALSE>)>> <RFALSE>)>>
<ROOM MAKESHIFT-CONNECTOR <ROOM MAKESHIFT-CONNECTOR
@ -58,7 +58,7 @@ from the Command Module.")
(WEST PER VILLAGE-BOUNDARY-F) (WEST PER VILLAGE-BOUNDARY-F)
(EAST TO BROADWAY) (EAST TO BROADWAY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL IRIS-HATCH)> (GLOBAL IRIS-HATCH VILLAGE)>
<ROOM BROADWAY <ROOM BROADWAY
(IN ROOMS) (IN ROOMS)
@ -76,7 +76,8 @@ including one leading downward.")
(WEST TO MAKESHIFT-CONNECTOR) (WEST TO MAKESHIFT-CONNECTOR)
(NW "Well, there are openings in ALMOST every direction.") (NW "Well, there are openings in ALMOST every direction.")
(DOWN TO FORTUNE-TELLER) (DOWN TO FORTUNE-TELLER)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)>
<ROOM FORTUNE-TELLER <ROOM FORTUNE-TELLER
(IN ROOMS) (IN ROOMS)
@ -84,10 +85,11 @@ including one leading downward.")
(LDESC (LDESC
"This is a tiny living bubble beneath Broadway. The inhabitant, who is "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 nowhere in sight, seems to be in the profession of reading the future
for superstitious spacemen.") for superstitious spacers.")
(UP TO BROADWAY) (UP TO BROADWAY)
(OUT TO BROADWAY) (OUT TO BROADWAY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<OBJECT CRYSTAL-BALL <OBJECT CRYSTAL-BALL
(IN FORTUNE-TELLER) (IN FORTUNE-TELLER)
@ -117,6 +119,7 @@ the walls. A door leads south.")
(SOUTH TO BROADWAY) (SOUTH TO BROADWAY)
(OUT TO BROADWAY) (OUT TO BROADWAY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)
(THINGS <PSEUDO (<> POSTER RECRUITMENT-POSTER-F)>)> (THINGS <PSEUDO (<> POSTER RECRUITMENT-POSTER-F)>)>
<ROUTINE 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.") booths. The \"street\" lies to the southwest.")
(SW TO BROADWAY) (SW TO BROADWAY)
(OUT TO BROADWAY) (OUT TO BROADWAY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<OBJECT SIMULATION-BOOTH <OBJECT SIMULATION-BOOTH
(IN REC-SHOP) (IN REC-SHOP)
@ -187,7 +191,7 @@ booths. The \"street\" lies to the southwest.")
"groof hunting on Septurion Seven" "groof hunting on Septurion Seven"
"a little-known incident during the signing of the Treaty of Gishen IV" "a little-known incident during the signing of the Treaty of Gishen IV"
"a torrid romance on the tropical planet of San Cupidor" "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">> "bullfighting, skydiving, and dental hygiene">>
<ROOM FIELD-OFFICE <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.") to it. You can leave to the west.")
(WEST TO BROADWAY) (WEST TO BROADWAY)
(OUT TO BROADWAY) (OUT TO BROADWAY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<OBJECT HEADLAMP <OBJECT HEADLAMP
(IN FIELD-OFFICE) (IN FIELD-OFFICE)
@ -208,6 +213,7 @@ to it. You can leave to the west.")
(FDESC "Some miner has left a headlamp here.") (FDESC "Some miner has left a headlamp here.")
(SYNONYM LAMP LIGHT HEADLAMP) (SYNONYM LAMP LIGHT HEADLAMP)
(FLAGS TAKEBIT LIGHTBIT WEARBIT) (FLAGS TAKEBIT LIGHTBIT WEARBIT)
(SIZE 8)
(ACTION HEADLAMP-F)> (ACTION HEADLAMP-F)>
<ROUTINE HEADLAMP-F () <ROUTINE HEADLAMP-F ()
@ -233,24 +239,7 @@ leaving both hands free for work. ">
<GLOBAL HEADLAMP-COUNTER 92> <GLOBAL HEADLAMP-COUNTER 92>
<ROUTINE I-HEADLAMP () ;"routine I-HEADLAMP moved to INTERRUPTS file"
<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>)>>
<ROOM BARBERSHOP <ROOM BARBERSHOP
(IN ROOMS) (IN ROOMS)
@ -258,6 +247,7 @@ leaving both hands free for work. ">
(WEST TO GROCERY) (WEST TO GROCERY)
(NW TO BROADWAY) (NW TO BROADWAY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)
(ACTION BARBERSHOP-F) (ACTION BARBERSHOP-F)
(THINGS <PSEUDO (GLASS MIRROR MIRROR-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>) <TELL "You look mah-velous." CR>)
(<VERB? LOOK-BEHIND LOOK-UNDER> (<VERB? LOOK-BEHIND LOOK-UNDER>
<TELL "The mirror seems to be affixed to the wall." CR>) <TELL "The mirror seems to be affixed to the wall." CR>)
(<OR <VERB? MUNG> (<VERB? MUNG KICK KILL>
<AND <VERB? THROW>
<PRSI? ,PSEUDO-OBJECT>>>
<SETG MIRROR-BROKEN T> <SETG MIRROR-BROKEN T>
<MOVE ,FOIL ,HERE> <MOVE ,FOIL ,HERE>
<TELL <TELL
"The mirror smashes into a cloud of glass dust, which (fortunately) is "The mirror smashes into a cloud of glass dust, which (fortunately) is
quickly sucked away by the barbershop's ventilation system. As the glass quickly sucked away by the barbershop's ventilation system. As the glass
is sucked away you discover what gave the mirror its reflectivity: " 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 <OBJECT FOIL
(DESC "reflective foil") (DESC "reflective foil")
@ -304,7 +297,7 @@ is sucked away you discover what gave the mirror its reflectivity: "
(FLAGS TAKEBIT NARTICLEBIT) (FLAGS TAKEBIT NARTICLEBIT)
(PLATO-ASK-ABOUT (PLATO-ASK-ABOUT
"Trans-molecular platinum foil! I am told that it is the most perfectly "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-ASK-ABOUT
"Floyd loves anything reflective! Give Floyd a mirror and he'll be happy "Floyd loves anything reflective! Give Floyd a mirror and he'll be happy
for days!") for days!")
@ -314,7 +307,7 @@ for days!")
<ROUTINE FOIL-F () <ROUTINE FOIL-F ()
<COND (<VERB? MEASURE EXAMINE> <COND (<VERB? MEASURE EXAMINE>
<TELL <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> (<VERB? CRUMPLE>
<TELL <TELL
"You crumple the foil into a fist-sized wad, but it instantly returns to "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) (EAST TO BARBERSHOP)
(SE TO SALOON) (SE TO SALOON)
(SOUTH TO TRADING-POST) (SOUTH TO TRADING-POST)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)>
<OBJECT PLASTIC-BAG <OBJECT PLASTIC-BAG
(IN GROCERY) (IN GROCERY)
@ -349,6 +343,7 @@ Exits lead north, east, southeast and south.")
(SYNONYM BAG) (SYNONYM BAG)
(ADJECTIVE SMALL TRANSL PLASTIC) (ADJECTIVE SMALL TRANSL PLASTIC)
(CAPACITY 10) (CAPACITY 10)
(SIZE 4)
(FLAGS TAKEBIT CONTBIT SEARCHBIT)> (FLAGS TAKEBIT CONTBIT SEARCHBIT)>
<OBJECT TAFFY <OBJECT TAFFY
@ -378,7 +373,7 @@ large sign advertises this month's special.")
(NE TO BROADWAY) (NE TO BROADWAY)
(SE TO TRADING-POST) (SE TO TRADING-POST)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL SIGN)> (GLOBAL VILLAGE SIGN)>
<OBJECT CAGE <OBJECT CAGE
(IN PET-STORE) (IN PET-STORE)
@ -449,6 +444,10 @@ of its digestive gas." CR>)>)
(<VERB? TAKE CATCH> (<VERB? TAKE CATCH>
<PERFORM ,V?TAKE ,LEASH> <PERFORM ,V?TAKE ,LEASH>
<RTRUE>) <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> (<VERB? TOUCH HUG>
<TELL <TELL
"The " D ,BALLOON " purrs and rings of color shimmer along its body." CR>)>> "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 () <ROUTINE LEASH-F ()
<COND (<AND <VERB? TAKE MOVE> <COND (<AND <VERB? TAKE MOVE>
<PRSO? ,LEASH>> <PRSO? ,LEASH>>
<COND (<IN? ,BALLOON ,CAGE> <COND (,HANGING-IN-AIR
<TELL ,YOU-CANT "reach the leash inside the cage." CR>)
(,HANGING-IN-AIR
<TELL ,SENILITY-STRIKES>) <TELL ,SENILITY-STRIKES>)
(<FSET? ,SPACESUIT ,WORNBIT> (<FSET? ,SPACESUIT ,WORNBIT>
<TELL <TELL
@ -498,12 +495,13 @@ hyperinflating. Slowly, its buoyancy lifts you right ">
<TELL "off the deck">)> <TELL "off the deck">)>
<TELL <TELL
"! Within moments, the Arcturian is bobbing against the ceiling, and you're "! 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> <COND (<AND <IN? ,FLOYD ,HERE>
<FSET? ,FLOYD ,ACTIVEBIT> <FSET? ,FLOYD ,ACTIVEBIT>
<NOT ,HANGING-COMMENT>> <NOT ,HANGING-COMMENT>>
<SETG FLOYD-SPOKE T> <SETG FLOYD-SPOKE T>
<FLOYDS-HANGING-IN-AIR-COMMENT>)> <SETG HANGING-COMMENT T>
<TELL ,FLOYDS-HANGING-IN-AIR-COMMENT>)>
<RTRUE>)>) <RTRUE>)>)
(<VERB? REMOVE UNTIE> (<VERB? REMOVE UNTIE>
<TELL <TELL
@ -523,13 +521,8 @@ hanging five feet off the floor! (Footnote 4)" CR>
back at around eye-level.">)> back at around eye-level.">)>
<CRLF>)>> <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 <OBJECT PANEL
(IN LOCAL-GLOBALS)
(DESC "ceiling panel") (DESC "ceiling panel")
(FDESC ;"so it'll get printed before other DESCs" (FDESC ;"so it'll get printed before other DESCs"
"You can see the faint outline of a panel in the ceiling.") "You can see the faint outline of a panel in the ceiling.")
@ -551,6 +544,7 @@ back at around eye-level.">)>
(ADJECTIVE OSTRICH) (ADJECTIVE OSTRICH)
(FLAGS TAKEBIT) (FLAGS TAKEBIT)
(VALUE 3) (VALUE 3)
(SIZE 4)
(ACTION OSTRICH-NIP-F)> (ACTION OSTRICH-NIP-F)>
<ROUTINE OSTRICH-NIP-F () <ROUTINE OSTRICH-NIP-F ()
@ -576,7 +570,7 @@ there's an opening in the floor.")
(NW TO PET-STORE) (NW TO PET-STORE)
(DOWN TO WAREHOUSE) (DOWN TO WAREHOUSE)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL SIGN)> (GLOBAL VILLAGE SIGN)>
<OBJECT INSTRUCTION-SHEET <OBJECT INSTRUCTION-SHEET
(IN TRADING-POST) (IN TRADING-POST)
@ -584,7 +578,7 @@ there's an opening in the floor.")
(SYNONYM SHEET) (SYNONYM SHEET)
(ADJECTIVE INSTRUCTION) (ADJECTIVE INSTRUCTION)
(FLAGS TAKEBIT READBIT VOWELBIT) (FLAGS TAKEBIT READBIT VOWELBIT)
(SIZE 2) (SIZE 1)
(TEXT (TEXT
"\"FREZONE (tm) Liquid Gorzium Explosive| "\"FREZONE (tm) Liquid Gorzium Explosive|
Instructions for use:| Instructions for use:|
@ -593,13 +587,13 @@ Instructions for use:|
3. Set timer.| 3. Set timer.|
4. Vamoose.| 4. Vamoose.|
NOTE: Do not expose explosive to temperatures above 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 <OBJECT TWELVE-PRONG-FROMITZ-BOARD
(IN TRADING-POST) (IN TRADING-POST)
(DESC "twelve-prong fromitz board") (DESC "twelve-prong fromitz board")
(SYNONYM BOARD BOARDS PRONGS) (SYNONYM BOARD BOARDS PRONGS)
(ADJECTIVE TWELVE PRONG 12-PRONG FROMITZ NUMBER) (ADJECTIVE TWELVE PRONG PRONGED 12-PRONG FROMITZ NUMBER)
(FLAGS TAKEBIT) (FLAGS TAKEBIT)
(PLATO-ASK-ABOUT (PLATO-ASK-ABOUT
"I'm really not at all mechanically inclined. My sincerest apologies.") "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) (EAST TO TRADING-POST)
(OUT TO TRADING-POST) (OUT TO TRADING-POST)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)
(ACTION STUDIO-F)> (ACTION STUDIO-F)>
<ROUTINE STUDIO-F (RARG) <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.") "I'm really not at all mechanically inclined. My sincerest apologies.")
(FLOYD-ASK-ABOUT (FLOYD-ASK-ABOUT
"It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis.") "It's a kind of a thingamabob for connecting a, you know, a whosiwhatsis.")
(SIZE 5)
(FLAGS TAKEBIT) (FLAGS TAKEBIT)
(ACTION DIODE-J-F)> (ACTION DIODE-J-F)>
@ -691,7 +685,8 @@ to the east is a partially disguised exit.")
(EAST TO CASINO) (EAST TO CASINO)
(WEST TO TRADING-POST) (WEST TO TRADING-POST)
(NW TO GROCERY) (NW TO GROCERY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)>
<ROOM CASINO <ROOM CASINO
(IN ROOMS) (IN ROOMS)
@ -700,6 +695,7 @@ to the east is a partially disguised exit.")
(WEST TO SALOON) (WEST TO SALOON)
(UP TO FLOPHOUSE IF ROULETTE-TURNED) (UP TO FLOPHOUSE IF ROULETTE-TURNED)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)
(ACTION CASINO-F)> (ACTION CASINO-F)>
<GLOBAL ROULETTE-TURNED <>> <GLOBAL ROULETTE-TURNED <>>
@ -750,14 +746,17 @@ and to the north!" CR>)>)
(DESC "pair of dice") (DESC "pair of dice")
(SYNONYM PAIR DICE) (SYNONYM PAIR DICE)
(FLAGS TAKEBIT PLURALBIT) (FLAGS TAKEBIT PLURALBIT)
(SIZE 2) (SIZE 3)
(ACTION DICE-F)> (ACTION DICE-F)>
<GLOBAL DICE-FOOTNOTE <>> <GLOBAL DICE-FOOTNOTE <>>
<ROUTINE DICE-F ("AUX" NUM) <ROUTINE DICE-F ("AUX" NUM)
<COND (<VERB? ROLL THROW> <COND (<VERB? ROLL THROW>
<COND (<FSET? ,HERE ,WEIGHTLESSBIT> <COND (<NOT <ULTIMATELY-IN? ,DICE>>
<TELL ,YNH TR ,DICE>
<RTRUE>)
(<FSET? ,HERE ,WEIGHTLESSBIT>
<COND (<PROB 50> <COND (<PROB 50>
<SET NUM 7>) <SET NUM 7>)
(T (T
@ -785,7 +784,7 @@ and to the north!" CR>)>)
There's a sign on the wall and a door to the south.") There's a sign on the wall and a door to the south.")
(SOUTH TO CASINO) (SOUTH TO CASINO)
(OUT TO CASINO) (OUT TO CASINO)
(GLOBAL SIGN) (GLOBAL VILLAGE SIGN)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)>
<ROOM FLOPHOUSE <ROOM FLOPHOUSE
@ -794,7 +793,7 @@ There's a sign on the wall and a door to the south.")
(DOWN TO CASINO) (DOWN TO CASINO)
(OUT TO CASINO) (OUT TO CASINO)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL BED) (GLOBAL VILLAGE BED)
(ACTION FLOPHOUSE-F)> (ACTION FLOPHOUSE-F)>
<ROUTINE FLOPHOUSE-F (RARG) <ROUTINE FLOPHOUSE-F (RARG)
@ -843,7 +842,7 @@ well-scrubbed metal of the space station.")
(NORTH PER VILLAGE-BOUNDARY-F) (NORTH PER VILLAGE-BOUNDARY-F)
(SOUTH TO MAIN-STREET) (SOUTH TO MAIN-STREET)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL IRIS-HATCH)> (GLOBAL VILLAGE IRIS-HATCH)>
<ROOM MAIN-STREET <ROOM MAIN-STREET
(IN ROOMS) (IN ROOMS)
@ -861,7 +860,8 @@ the \"street\" narrows and ramps downward.")
(WEST TO TRAVEL-AGENCY) (WEST TO TRAVEL-AGENCY)
(UP TO MAYORS-OFFICE) (UP TO MAYORS-OFFICE)
(DOWN TO ALLEY) (DOWN TO ALLEY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)>
<ROOM GREASY-STRAW <ROOM GREASY-STRAW
(IN ROOMS) (IN ROOMS)
@ -869,7 +869,7 @@ the \"street\" narrows and ramps downward.")
(NE TO TRADING-POST) (NE TO TRADING-POST)
(SW TO MAIN-STREET) (SW TO MAIN-STREET)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL SIGN) (GLOBAL SIGN VILLAGE)
(ACTION GREASY-STRAW-F)> (ACTION GREASY-STRAW-F)>
<ROUTINE GREASY-STRAW-F (RARG) <ROUTINE GREASY-STRAW-F (RARG)
@ -892,7 +892,7 @@ Exits lead northeast and southwest.">)>>
<ROUTINE COUNTER-F () <ROUTINE COUNTER-F ()
<COND (<AND <VERB? LOOK-UNDER LOOK-BEHIND SEARCH EXAMINE HIDE> <COND (<AND <VERB? LOOK-UNDER LOOK-BEHIND SEARCH EXAMINE HIDE>
<IN? ,NECTAR ,LOCAL-GLOBALS>> <NOT <FSET? ,NECTAR ,TOUCHBIT>>>
<PERFORM ,V?SEARCH ,GLOBAL-ROOM> <PERFORM ,V?SEARCH ,GLOBAL-ROOM>
<RTRUE>) <RTRUE>)
(<VERB? LOOK-OVER> (<VERB? LOOK-OVER>
@ -904,19 +904,23 @@ Exits lead northeast and southwest.">)>>
(SYNONYM CUP NECTAR FOOD) (SYNONYM CUP NECTAR FOOD)
(ADJECTIVE RAMOSIAN FIRE) (ADJECTIVE RAMOSIAN FIRE)
(FLAGS TAKEBIT) (FLAGS TAKEBIT)
(FOOD-DESC " fire nectar - thick and warming") (FOOD-DESC " fire nectar -- thick and warming")
(GENERIC GENERIC-FOOD-F) (GENERIC GENERIC-FOOD-F)
(ACTION NECTAR-F)> (ACTION NECTAR-F)>
<ROUTINE NECTAR-F () <ROUTINE NECTAR-F ()
<COND (<AND <VERB? THROW POUR EMPTY> <COND (<AND <VERB? THROW POUR EMPTY>
<PRSO? ,NECTAR>> <PRSO? ,NECTAR>>
<TELL <MESS "nectar">
"You create a nectarish mess, which thankfully dries up very quickly">
<ANTI-LITTER ,NECTAR>) <ANTI-LITTER ,NECTAR>)
(<AND <VERB? LOOK-INSIDE> (<AND <VERB? LOOK-INSIDE>
<NOUN-USED ,W?CUP ,NECTAR>> <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> (<AND <VERB? FIND>
<IN? ,NECTAR ,LOCAL-GLOBALS> <IN? ,NECTAR ,LOCAL-GLOBALS>
<EQUAL? ,HERE ,GREASY-STRAW>> <EQUAL? ,HERE ,GREASY-STRAW>>
@ -937,7 +941,8 @@ Exits lead northeast and southwest.">)>>
Mayor, the unofficial leader of the village. Main Street is below.") Mayor, the unofficial leader of the village. Main Street is below.")
(DOWN TO MAIN-STREET) (DOWN TO MAIN-STREET)
(OUT TO MAIN-STREET) (OUT TO MAIN-STREET)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<OBJECT BOOK <OBJECT BOOK
(IN MAYORS-OFFICE) (IN MAYORS-OFFICE)
@ -947,6 +952,7 @@ Mayor, the unofficial leader of the village. Main Street is below.")
(SYNONYM TEXTBOOK BOOK) (SYNONYM TEXTBOOK BOOK)
(ADJECTIVE TEXT) (ADJECTIVE TEXT)
(FLAGS TAKEBIT READBIT) (FLAGS TAKEBIT READBIT)
(SIZE 8)
(ACTION BOOK-F)> (ACTION BOOK-F)>
<ROUTINE BOOK-F () <ROUTINE BOOK-F ()
@ -971,9 +977,33 @@ of the subject." CR>)>)
(DESC "piece of paper") (DESC "piece of paper")
(SYNONYM PAPER PIECE) (SYNONYM PAPER PIECE)
(FLAGS TAKEBIT READBIT) (FLAGS TAKEBIT READBIT)
(SIZE 2) (SIZE 1)
(TEXT (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)| (sweet/very-sour) Hunji (noun form)|
(bland/salty/sour) Zeenak (adj form)| (bland/salty/sour) Zeenak (adj form)|
(bland/bitter) air/atmosphere| (bland/bitter) air/atmosphere|
@ -1000,7 +1030,8 @@ of the subject." CR>)>)
doors to the north and northwest.") doors to the north and northwest.")
(NORTH TO MAIN-STREET) (NORTH TO MAIN-STREET)
(NW TO TRAVEL-AGENCY) (NW TO TRAVEL-AGENCY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)>
<OBJECT PLATINUM-DETECTOR <OBJECT PLATINUM-DETECTOR
(IN BANK) (IN BANK)
@ -1008,6 +1039,7 @@ doors to the north and northwest.")
(SYNONYM DETECTOR) (SYNONYM DETECTOR)
(ADJECTIVE PLATINUM) (ADJECTIVE PLATINUM)
(FLAGS TAKEBIT LIGHTBIT) (FLAGS TAKEBIT LIGHTBIT)
(SIZE 15)
(ACTION PLATINUM-DETECTOR-F)> (ACTION PLATINUM-DETECTOR-F)>
<ROUTINE PLATINUM-DETECTOR-F () <ROUTINE PLATINUM-DETECTOR-F ()
@ -1022,7 +1054,9 @@ doors to the north and northwest.")
<G? ,DETECTOR-COUNTER 49>> <G? ,DETECTOR-COUNTER 49>>
<COND (<G? ,DETECTOR-COUNTER 99> <COND (<G? ,DETECTOR-COUNTER 99>
<TELL "Ouch! The detector is too hot to pick up!" CR>) <TELL "Ouch! The detector is too hot to pick up!" CR>)
(<NOT <EQUAL? <ITAKE> ,M-FATAL <>>> (<EQUAL? <ITAKE> ,M-FATAL <>>
<RTRUE>)
(T
<TELL <TELL
"As you pick up the detector, you notice that is feels "> "As you pick up the detector, you notice that is feels ">
<COND (<G? ,DETECTOR-COUNTER 75> <COND (<G? ,DETECTOR-COUNTER 75>
@ -1047,25 +1081,7 @@ doors to the north and northwest.")
<GLOBAL DETECTOR-COUNTER 0> <GLOBAL DETECTOR-COUNTER 0>
<ROUTINE I-PLATINUM-DETECTOR () ;"routine I-PLATINUM-DETECTOR moved to INTERRUPTS file"
<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>)>>
<ROOM TRAVEL-AGENCY <ROOM TRAVEL-AGENCY
(IN ROOMS) (IN ROOMS)
@ -1077,6 +1093,7 @@ rundown spacetown would be able to afford an interstellar pleasure jaunt.")
(EAST TO MAIN-STREET) (EAST TO MAIN-STREET)
(SE TO BANK) (SE TO BANK)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL VILLAGE)
(THINGS <PSEUDO (<> POSTER TRAVEL-AGENCY-POSTER-F)>)> (THINGS <PSEUDO (<> POSTER TRAVEL-AGENCY-POSTER-F)>)>
<ROUTINE 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) (NW TO MAIN-STREET)
(UP TO MAIN-STREET) (UP TO MAIN-STREET)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL GARBAGE)> (GLOBAL GARBAGE VILLAGE)>
<ROOM MISSIONARY <ROOM MISSIONARY
(IN ROOMS) (IN ROOMS)
@ -1127,7 +1144,8 @@ are enough kooks in the galaxy to keep the belief going. You can exit to the
south.") south.")
(SOUTH TO ALLEY) (SOUTH TO ALLEY)
(OUT TO ALLEY) (OUT TO ALLEY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<ROOM WAREHOUSE <ROOM WAREHOUSE
(IN ROOMS) (IN ROOMS)
@ -1136,7 +1154,7 @@ south.")
(SW TO ALLEY) (SW TO ALLEY)
(DOWN TO AIRLOCK IF INNER-AIRLOCK-DOOR IS OPEN) (DOWN TO AIRLOCK IF INNER-AIRLOCK-DOOR IS OPEN)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL SIGN INNER-AIRLOCK-DOOR AIRLOCK-OBJECT) (GLOBAL SIGN VILLAGE INNER-AIRLOCK-DOOR AIRLOCK-OBJECT)
(ACTION WAREHOUSE-F)> (ACTION WAREHOUSE-F)>
<ROUTINE WAREHOUSE-F (RARG) <ROUTINE WAREHOUSE-F (RARG)
@ -1150,7 +1168,7 @@ in the ceiling and the southwest wall.">)>>
<OBJECT INNER-AIRLOCK-DOOR <OBJECT INNER-AIRLOCK-DOOR
(IN LOCAL-GLOBALS) (IN LOCAL-GLOBALS)
(DESC "inner airlock door") (DESC "inner door")
(SYNONYM DOOR HATCH) (SYNONYM DOOR HATCH)
(ADJECTIVE INNER UPPER AIRLOCK) (ADJECTIVE INNER UPPER AIRLOCK)
(FLAGS DOORBIT VOWELBIT) (FLAGS DOORBIT VOWELBIT)
@ -1161,11 +1179,11 @@ in the ceiling and the southwest wall.">)>>
<COND (<AND <VERB? OPEN> <COND (<AND <VERB? OPEN>
<NOT <FSET? ,INNER-AIRLOCK-DOOR ,OPENBIT>> <NOT <FSET? ,INNER-AIRLOCK-DOOR ,OPENBIT>>
<FSET? ,OUTER-AIRLOCK-DOOR ,OPENBIT>> <FSET? ,OUTER-AIRLOCK-DOOR ,OPENBIT>>
<TELL "It won't budge." CR>)>> <TELL ,WONT-BUDGE>)>>
<OBJECT OUTER-AIRLOCK-DOOR <OBJECT OUTER-AIRLOCK-DOOR
(IN LOCAL-GLOBALS) (IN LOCAL-GLOBALS)
(DESC "outer airlock door") (DESC "outer door")
(SYNONYM DOOR HATCH) (SYNONYM DOOR HATCH)
(ADJECTIVE OUTER LOWER AIRLOCK) (ADJECTIVE OUTER LOWER AIRLOCK)
(FLAGS DOORBIT VOWELBIT) (FLAGS DOORBIT VOWELBIT)
@ -1176,7 +1194,7 @@ in the ceiling and the southwest wall.">)>>
<COND (<AND <VERB? OPEN> <COND (<AND <VERB? OPEN>
<NOT <FSET? ,OUTER-AIRLOCK-DOOR ,OPENBIT>>> <NOT <FSET? ,OUTER-AIRLOCK-DOOR ,OPENBIT>>>
<COND (<FSET? ,INNER-AIRLOCK-DOOR ,OPENBIT> <COND (<FSET? ,INNER-AIRLOCK-DOOR ,OPENBIT>
<TELL "It won't budge." CR>) <TELL ,WONT-BUDGE>)
(T (T
<TELL <TELL
"As the door opens, the air in the lock whooshes out into the vacuum of space"> "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>) <LOST-IN-SPACE>)
(T (T
<FSET ,OUTER-AIRLOCK-DOOR ,OPENBIT> <FSET ,OUTER-AIRLOCK-DOOR ,OPENBIT>
;<COND (<AND <ULTIMATELY-IN? ,BOTTLE> <COND (<EQUAL? <META-LOC ,EXPLOSIVE> ,HERE>
<NOT ,CARBON-DIOXIDE-GONE>> <DEQUEUE I-EXPLOSIVE-MELT>)>
<DEQUEUE I-MELT-CARBON-DIOXIDE>
<COND (<IN? ,EXPLOSIVE ,BOTTLE>
<DEQUEUE I-EXPLOSIVE-MELT>)>
<QUEUE I-FREEZE-CARBON-DIOXIDE -1>)>
<SET X <FIRST? ,AIRLOCK>> <SET X <FIRST? ,AIRLOCK>>
<REPEAT () <REPEAT ()
<COND (<NOT .X> <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) (DOWN TO VACUUM-STORAGE IF OUTER-AIRLOCK-DOOR IS OPEN)
(OUT TO VACUUM-STORAGE IF OUTER-AIRLOCK-DOOR IS OPEN) (OUT TO VACUUM-STORAGE IF OUTER-AIRLOCK-DOOR IS OPEN)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT) (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)> (ACTION AIRLOCK-F)>
<ROUTINE AIRLOCK-F (RARG) <ROUTINE AIRLOCK-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK> <COND (<EQUAL? .RARG ,M-LOOK>
<TELL <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>> <COND (<AND <NOT <FSET? ,INNER-AIRLOCK-DOOR ,OPENBIT>>
<NOT <FSET? ,OUTER-AIRLOCK-DOOR ,OPENBIT>>> <NOT <FSET? ,OUTER-AIRLOCK-DOOR ,OPENBIT>>>
<TELL "Neither door">) <TELL "Neither door">)
@ -1310,10 +1324,11 @@ explodes into a puff of hydrogen that immediately vanishes!" CR>)>
<COND (<EQUAL? ,HERE ,AIRLOCK> <COND (<EQUAL? ,HERE ,AIRLOCK>
<TELL "There are two doors." CR>) <TELL "There are two doors." CR>)
(T (T
<PERFORM-PRSA <COND (<EQUAL? ,HERE ,WAREHOUSE> <PERFORM ,PRSA <COND (<EQUAL? ,HERE ,WAREHOUSE>
,INNER-AIRLOCK-DOOR) ,INNER-AIRLOCK-DOOR)
(<EQUAL? ,HERE ,VACUUM-STORAGE> (<EQUAL? ,HERE ,VACUUM-STORAGE>
,OUTER-AIRLOCK-DOOR)>>)>)>> ,OUTER-AIRLOCK-DOOR)>>
<RTRUE>)>)>>
<ROUTINE LOST-IN-SPACE () <ROUTINE LOST-IN-SPACE ()
<JIGS-UP "|| <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) (UP TO AIRLOCK IF OUTER-AIRLOCK-DOOR IS OPEN)
(IN TO AIRLOCK IF OUTER-AIRLOCK-DOOR IS OPEN) (IN TO AIRLOCK IF OUTER-AIRLOCK-DOOR IS OPEN)
(FLAGS RLANDBIT WEIGHTLESSBIT NWELDERBIT) (FLAGS RLANDBIT WEIGHTLESSBIT NWELDERBIT)
(GLOBAL OUTER-AIRLOCK-DOOR AIRLOCK-OBJECT) (GLOBAL VILLAGE OUTER-AIRLOCK-DOOR AIRLOCK-OBJECT)
(VALUE 3) (VALUE 3)
(ACTION VACUUM-STORAGE-F)> (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 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 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, 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 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, or anti-corrosion, must be stored here in space. The door to the airlock,
\"above\" you, is "> \"above\" you, is ">
@ -1354,6 +1369,7 @@ with an even tinier label.")
(SYNONYM EXPLOSIVE CYLIND LABEL) (SYNONYM EXPLOSIVE CYLIND LABEL)
(ADJECTIVE EXPLOSIVE FREZONE SMALL) (ADJECTIVE EXPLOSIVE FREZONE SMALL)
(FLAGS TAKEBIT VOWELBIT READBIT) (FLAGS TAKEBIT VOWELBIT READBIT)
(SIZE 3)
(TEXT (TEXT
"\"FREZONE (tm) Liquid Gorzium Explosive. For use only by licensed "\"FREZONE (tm) Liquid Gorzium Explosive. For use only by licensed
demolitionist. Instruction sheet available from vendor; read demolitionist. Instruction sheet available from vendor; read
@ -1386,6 +1402,12 @@ It has a tiny label.">
(T (T
<QUEUE I-EXPLOSIVE-MELT 100> <QUEUE I-EXPLOSIVE-MELT 100>
<RFALSE>)>) <RFALSE>)>)
(<AND <VERB? PUT>
<PRSI? ,HEATING-CHAMBER>>
<TELL "The explosive " ,SUBLIMES-INTO-FREZONE>
<DEQUEUE I-EXPLOSIVE-MELT>
<REMOVE-CAREFULLY ,EXPLOSIVE>
<CRLF>)
(<AND <VERB? DISCONNECT> (<AND <VERB? DISCONNECT>
<NOT ,PRSI> <NOT ,PRSI>
,EXPLOSIVE-CONNECTED> ,EXPLOSIVE-CONNECTED>
@ -1398,31 +1420,7 @@ It has a tiny label.">
<GLOBAL MELT-COUNTER 0> <GLOBAL MELT-COUNTER 0>
<ROUTINE I-EXPLOSIVE-MELT ("AUX" OLD-MELT-COUNTER) ;"routine I-EXPLOSIVE-MELT moved to INTERRUPTS file"
<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 DESCRIBE-EXPLOSIVE () <ROUTINE DESCRIBE-EXPLOSIVE ()
<TELL " The 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.") some valuable possession.")
(NE TO ALLEY) (NE TO ALLEY)
(OUT TO ALLEY) (OUT TO ALLEY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<OBJECT SPRAY-CAN <OBJECT SPRAY-CAN
(IN PAWN-SHOP) (IN PAWN-SHOP)
@ -1453,6 +1452,7 @@ spray can. It's sitting here in the shop, and has some lettering on it.")
(ADJECTIVE SPRAY) (ADJECTIVE SPRAY)
(FLAGS TAKEBIT READBIT) (FLAGS TAKEBIT READBIT)
(GENERIC GENERIC-CAN-F) (GENERIC GENERIC-CAN-F)
(SIZE 8)
(ACTION SPRAY-CAN-F)> (ACTION SPRAY-CAN-F)>
<ROUTINE 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| A mixture of high-quality spores|
Lowest gas-inducement levels of any brand!\"" CR>) Lowest gas-inducement levels of any brand!\"" CR>)
(<VERB? SPRAY> (<VERB? SPRAY>
<COND (,PRSI <COND (<NOT <ULTIMATELY-IN? ,SPRAY-CAN>>
<TELL ,YNH TR ,SPRAY-CAN>
<RTRUE>)
(,PRSI
<TELL <TELL
"The nozzle of the can isn't very directional; rather than spraying the "The nozzle of the can isn't very directional; rather than spraying something
can on something in particular, it seems to be more designed to simply in particular, it seems designed to produce a broad mist." CR>
produce a broad mist." CR>
<RTRUE>) <RTRUE>)
(<EQUAL? ,SPRAY-COUNTER 0> (<EQUAL? ,SPRAY-COUNTER 0>
<TELL ,NOTHING-HAPPENS> <TELL ,NOTHING-HAPPENS>
<RTRUE>) <RTRUE>)>
(T <SETG SPRAY-COUNTER <- ,SPRAY-COUNTER 1>>
<SETG SPRAY-COUNTER <- ,SPRAY-COUNTER 1>>)>
<TELL "A dusty mist puffs from the can and begins dissipating"> <TELL "A dusty mist puffs from the can and begins dissipating">
<COND (<IN? ,BALLOON ,HERE> <COND (<IN? ,BALLOON ,HERE>
<TELL <TELL
@ -1586,7 +1587,8 @@ and most of the walls">)>
the south side of the alley.") the south side of the alley.")
(NORTH TO ALLEY) (NORTH TO ALLEY)
(OUT TO ALLEY) (OUT TO ALLEY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)> (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)>
<OBJECT STRONG-BOX <OBJECT STRONG-BOX
(IN LOAN-SHARK) (IN LOAN-SHARK)
@ -1628,6 +1630,7 @@ smaller than an average asteroid." CR>)
(SYNONYM COIN GALAKMID) (SYNONYM COIN GALAKMID)
(FLAGS TAKEBIT READBIT) (FLAGS TAKEBIT READBIT)
(VALUE 5) (VALUE 5)
(SIZE 2)
(TEXT (TEXT
"\"ONE GALAKMID| "\"ONE GALAKMID|
Third Galactic Union\"")> 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) (NW TO ALLEY)
(OUT TO ALLEY) (OUT TO ALLEY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT NWELDERBIT)
(GLOBAL VILLAGE)
(ACTION DOC-SCHUSTER-F) (ACTION DOC-SCHUSTER-F)
(THINGS <PSEUDO (SMALL HOLE DOC-HOLE-F)>)> (THINGS <PSEUDO (SMALL HOLE DOC-HOLE-F)>)>
@ -1678,18 +1682,21 @@ unusual, for a disposal hole." CR>)
<GLOBAL SNIFFED <>> <GLOBAL SNIFFED <>>
<GLOBAL OSTRICH-FOOTNOTE <>>
<OBJECT OSTRICH <OBJECT OSTRICH
(IN DOC-SCHUSTER) (IN DOC-SCHUSTER)
(DESC "ostrich") (DESC "ostrich")
(FDESC "There is a large pile of intoxicated ostrich here.") (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) (FLAGS VOWELBIT TOUCHBIT)
(ACTION OSTRICH-F)> (ACTION OSTRICH-F)>
<ROUTINE OSTRICH-F () <ROUTINE OSTRICH-F ()
<COND (<VERB? EXAMINE> <COND (<VERB? EXAMINE>
<TELL <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"> As with all ostriches, half its height is its neck">
<COND (<NOT <FSET? ,OSTRICH ,TOUCHBIT>> <COND (<NOT <FSET? ,OSTRICH ,TOUCHBIT>>
<TELL <TELL
@ -1699,7 +1706,7 @@ As with all ostriches, half its height is its neck">
<REMOVE ,OSTRICH> <REMOVE ,OSTRICH>
<TELL <TELL
"The ostrich gives the last of a generous lifetime's supply of squawks "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>> (<NOT <FSET? ,OSTRICH ,TOUCHBIT>>
<COND (<VERB? SCARE> <COND (<VERB? SCARE>
<TELL "The ostrich is unconscious!" CR>) <TELL "The ostrich is unconscious!" CR>)
@ -1738,7 +1745,10 @@ of intoxicated ostrich." CR>)
<TELL <TELL
"The ostrich emits a terrified squawk and sticks its head "> "The ostrich emits a terrified squawk and sticks its head ">
<COND (<EQUAL? ,HERE ,DOC-SCHUSTER> <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> (<AND <EQUAL? ,HERE ,PX>
<IN? ,DISPENSER ,HERE>> <IN? ,DISPENSER ,HERE>>
<TELL "into the dispenser hole."> <TELL "into the dispenser hole.">
@ -1759,7 +1769,7 @@ out, squawking in pain." CR>
(DESC "letter") (DESC "letter")
(SYNONYM LETTER) (SYNONYM LETTER)
(FLAGS READBIT TAKEBIT) (FLAGS READBIT TAKEBIT)
(SIZE 2) (SIZE 1)
(TEXT (TEXT
"\"Doc -- that ostrich nip you've been waiting for finally came in. Drop "\"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.\"")> 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) (NW TO TRADING-POST)
(DOWN TO JUNK-YARD) (DOWN TO JUNK-YARD)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL KEYPAD WINDOW) (GLOBAL VILLAGE KEYPAD WINDOW)
(ACTION SHADY-DANS-F) (ACTION SHADY-DANS-F)
(THINGS <PSEUDO (<> SLOT ID-CHANGER-SLOT-F)>)> (THINGS <PSEUDO (<> SLOT ID-CHANGER-SLOT-F)>)>
@ -1786,10 +1796,12 @@ and downward. " ,DANS-LOT-DESC>)>>
<CANT-SEE ,PSEUDO-OBJECT>) <CANT-SEE ,PSEUDO-OBJECT>)
(<AND <VERB? LOOK-INSIDE REACH-IN> (<AND <VERB? LOOK-INSIDE REACH-IN>
<PRSO? ,PSEUDO-OBJECT>> <PRSO? ,PSEUDO-OBJECT>>
<PERFORM-PRSA ,ID-CHANGER ,PRSI>) <PERFORM ,PRSA ,ID-CHANGER ,PRSI>
<RTRUE>)
(<AND <VERB? PUT> (<AND <VERB? PUT>
<PRSI? ,PSEUDO-OBJECT>> <PRSI? ,PSEUDO-OBJECT>>
<PERFORM-PRSA ,PRSO ,ID-CHANGER>)>> <PERFORM, PRSA ,PRSO ,ID-CHANGER>
<RTRUE>)>>
<OBJECT ID-CHANGER <OBJECT ID-CHANGER
(IN SHADY-DANS) (IN SHADY-DANS)
@ -1815,7 +1827,7 @@ notable features: a keypad and a very small slot. The machine is currently o">
(<VERB? OPEN CLOSE> (<VERB? OPEN CLOSE>
<TELL ,HUH>) <TELL ,HUH>)
(<VERB? TAKE> (<VERB? TAKE>
<TELL "It's bolted down." CR>) <TELL ,WONT-BUDGE>)
(<AND <VERB? PUT> (<AND <VERB? PUT>
<PRSI? ,ID-CHANGER>> <PRSI? ,ID-CHANGER>>
<COND (<PRSO? ,ID-CARD> <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, \""> <TELL "A voice from the machine says, \"">
<COND (,ID-SCRAMBLED <COND (,ID-SCRAMBLED
<TELL <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 (T
<TELL <TELL
"Current rank is " N ,ID-RANK ": " <GET ,ID-RANK-LIST <- ,ID-RANK 1>> "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> <COND (<AND <IN? ,ID-CARD ,ID-CHANGER>
<FSET? ,ID-CHANGER ,ACTIVEBIT>> <FSET? ,ID-CHANGER ,ACTIVEBIT>>
<COND (,ID-SCRAMBLED <COND (,ID-SCRAMBLED
<COND (<NOT ,SCRAMBLED-FOOTNOTE>
<SETG SCRAMBLED-FOOTNOTE T>
<TELL "(Footnote 15) ">)>
<RECORDING "A scrambled card cannot be altered">) <RECORDING "A scrambled card cannot be altered">)
(<G? ,P-NUMBER 10> (<G? ,P-NUMBER 10>
<TELL <TELL
@ -1865,16 +1884,16 @@ recognized by the Stellar Patrol is 10.\"" CR>)
<GLOBAL ID-RANK-LIST <GLOBAL ID-RANK-LIST
<TABLE <TABLE
"Ensign, Sixth Class or lower" "Ensign, lower classes"
"Ensign, Fifth through Second Class"
"Ensign First Class" "Ensign First Class"
"Midshipman" "Upshipman"
"Lieutenant Last Class"
"Lieutenant Second Class" "Lieutenant Second Class"
"Lieutenant First Class" "Lieutenant First Class"
"Lieutenant Commander"
"Commander or Captain" "Commander or Captain"
"Admiral" "Admiral"
"Fleet Admiral">> "HyperAdmiral"
"Grand Fleet HyperAdmiral">>
<ROOM JUNK-YARD <ROOM JUNK-YARD
(IN ROOMS) (IN ROOMS)
@ -1885,7 +1904,7 @@ fills the center of the bubble. Passages lead upwards and west.")
(UP TO SHADY-DANS) (UP TO SHADY-DANS)
(WEST TO ALLEY) (WEST TO ALLEY)
(FLAGS RLANDBIT WEIGHTLESSBIT ONBIT) (FLAGS RLANDBIT WEIGHTLESSBIT ONBIT)
(GLOBAL GARBAGE) (GLOBAL GARBAGE VILLAGE)
(ACTION JUNK-YARD-F)> (ACTION JUNK-YARD-F)>
<ROUTINE JUNK-YARD-F (RARG) <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.") looks to be in the best shape.")
(SYNONYM PAIR BOOTS SPACEBOOTS) (SYNONYM PAIR BOOTS SPACEBOOTS)
(ADJECTIVE MAGNETIC) (ADJECTIVE MAGNETIC)
(SIZE 20)
(FLAGS PLURALBIT TRYTAKEBIT TAKEBIT WEARBIT) (FLAGS PLURALBIT TRYTAKEBIT TAKEBIT WEARBIT)
(ACTION BOOTS-F)> (ACTION BOOTS-F)>
@ -1945,8 +1965,8 @@ attracted by the boots." CR>)
<OBJECT GARBAGE <OBJECT GARBAGE
(IN LOCAL-GLOBALS) ;"in Junk Yard and Alley" (IN LOCAL-GLOBALS) ;"in Junk Yard and Alley"
(DESC "garbage") (DESC "garbage")
(SYNONYM GARBAGE JUNK PILE) (SYNONYM GARBAGE JUNK TRASH PILE)
(ADJECTIVE LARGE FLOATING USELESS RANDOM) (ADJECTIVE LARGE FLOATING USELESS RANDOM JUNK GARBAGE TRASH)
(FLAGS NARTICLEBIT) (FLAGS NARTICLEBIT)
(ACTION GARBAGE-F)> (ACTION GARBAGE-F)>