seastalker/people.zap
historicalsource 7ef7f3e553 Final Revision
2019-04-13 22:35:09 -04:00

2312 lines
61 KiB
Plaintext

.FUNCT READ-NAME,TBL,STR,PTR,LEN,N,NUMTOKENS,TOK
?FCN: PRINT STR
CRLF
PRINTI ">"
READ P-INBUF,P-LEXV
GETB P-LEXV,P-LEXWORDS
ZERO? STACK \?CND5
PRINTI "I beg your pardon?"
CRLF
JUMP ?FCN
?CND5: GET P-LEXV,P-LEXSTART >N
ZERO? N /?CND10
CALL WT?,N,PS?VERB,P1?VERB >N
EQUAL? ACT?RESTART,N \?ELS15
RESTART
PRINT FAILED
CRLF
JUMP ?FCN
?ELS15: EQUAL? N,ACT?$VERIFY \?ELS19
CALL V-$VERIFY
JUMP ?FCN
?ELS19: EQUAL? N,ACT?RELEASE \?ELS21
CALL V-VERSION
JUMP ?FCN
?ELS21: EQUAL? N,ACT?RESTORE \?CND10
CALL V-RESTORE
ZERO? STACK /?FCN
RETURN 2
?CND10: GETB P-LEXV,1 >NUMTOKENS
SET 'TOK,NUMTOKENS
SET 'NAME-OUTLEN,1
ADD 1,P-LEXSTART
MUL 2,STACK >N
?PRG31: DLESS? 'TOK,0 \?CND33
JUMP ?REP32
?CND33: GETB P-LEXV,N >LEN
ADD 1,N
GETB P-LEXV,STACK >PTR
CALL READ-NAME-REPEAT,TBL,PTR,LEN
GRTR? NAME-OUTLEN,NAME-LENGTH \?CND36
JUMP ?REP32
?CND36: PUTB TBL,NAME-OUTLEN,32
IGRTR? 'NAME-OUTLEN,NAME-LENGTH \?CND39
JUMP ?REP32
?CND39: EQUAL? TBL,FIRST-NAME \?ELS44
ZERO? FN-SPACE \?CND42
SUB NAME-OUTLEN,1 >FN-SPACE
JUMP ?CND42
?ELS44: ZERO? LN-SPACE \?CND42
SUB NAME-OUTLEN,1 >LN-SPACE
?CND42: ADD 4,N >N
JUMP ?PRG31
?REP32: GRTR? NAME-OUTLEN,NAME-LENGTH \?ELS52
PUTB TBL,0,NAME-LENGTH
RTRUE
?ELS52: SUB NAME-OUTLEN,2
PUTB TBL,0,STACK
RTRUE
.FUNCT READ-NAME-REPEAT,TBL,PTR,LEN,CH
?PRG1: GETB P-INBUF,PTR >CH
DLESS? 'LEN,0 /TRUE
EQUAL? CH,45,39,38 /?CND6
MOD CH,32
ADD 96,STACK >CH
?CND6: PUTB TBL,NAME-OUTLEN,CH
IGRTR? 'NAME-OUTLEN,NAME-LENGTH /TRUE
INC 'PTR
JUMP ?PRG1
.FUNCT PRINT-NAME,TBL,CAP=0,PTR=0,LEN,CH,SP?=1
GETB TBL,0 >LEN
?PRG1: IGRTR? 'PTR,LEN /TRUE
GETB TBL,PTR >CH
ZERO? CAP \?THN11
ZERO? SP? /?ELS8
?THN11: EQUAL? CH,32,45,39 /?ELS8
EQUAL? CH,38 /?ELS8
SUB CH,32
PRINTC STACK
JUMP ?CND6
?ELS8: PRINTC CH
?CND6: EQUAL? CH,32,45,39 \?ELS17
SET 'SP?,TRUE-VALUE
JUMP ?PRG1
?ELS17: EQUAL? CH,38 \?ELS19
SET 'SP?,TRUE-VALUE
JUMP ?PRG1
?ELS19: SET 'SP?,FALSE-VALUE
JUMP ?PRG1
.FUNCT NAME?,PTR,?ORTMP
CALL XNAME?,PTR,FIRST-NAME,FN-SPACE
POP '?ORTMP
ZERO? ?ORTMP /?ORP4
RETURN ?ORTMP
?ORP4: CALL XNAME?,PTR,LAST-NAME,LN-SPACE
RSTACK
.FUNCT XNAME?,PTR,TBL,MAX,CNT,BPTR,CHR,N?=1,NCNT=0
MUL PTR,2
ADD P-LEXV,STACK
GETB STACK,2 >CNT
GRTR? CNT,6 \?CND1
SET 'CNT,6
?CND1: MUL PTR,2
ADD P-LEXV,STACK
GETB STACK,3 >BPTR
ZERO? MAX \?CND4
GETB TBL,0 >MAX
?CND4: DLESS? 'MAX,7 /?CND7
SET 'MAX,6
?CND7:
?PRG10: IGRTR? 'NCNT,MAX \?ELS14
ZERO? CNT /?REP11
SET 'N?,FALSE-VALUE
JUMP ?REP11
?ELS14: DLESS? 'CNT,0 \?ELS19
SET 'N?,FALSE-VALUE
JUMP ?REP11
?ELS19: GETB P-INBUF,BPTR >CHR
EQUAL? CHR,45,38,39 /?CND22
MOD CHR,32
ADD 96,STACK >CHR
?CND22: GETB TBL,NCNT
EQUAL? CHR,STACK /?CND25
SET 'N?,FALSE-VALUE
?CND25: INC 'BPTR
JUMP ?PRG10
?REP11: ZERO? N? /FALSE
EQUAL? TBL,FIRST-NAME \?ELS38
PUT P-LEXV,PTR,W?$FN
RETURN W?$FN
?ELS38: PUT P-LEXV,PTR,W?$LN
RETURN W?$LN
.FUNCT PLAYER-NAME-F
CALL DO-INSTEAD-OF,PLAYER,PLAYER-NAME
RTRUE
.FUNCT PLAYER-F,LON,LAT
EQUAL? PRSO,PLAYER \FALSE
EQUAL? PRSA,V?GOODBYE,V?HELLO \?ELS10
CALL HAR-HAR
RSTACK
?ELS10: EQUAL? PRSA,V?EXAMINE \?ELS12
CALL PERFORM,V?INVENTORY
RTRUE
?ELS12: EQUAL? PRSA,V?FIND \?ELS14
EQUAL? NOW-TERRAIN,BAY-TERRAIN,SEA-TERRAIN \FALSE
PRINTI "The "
EQUAL? NOW-TERRAIN,BAY-TERRAIN \?ELS24
SUB SUB-LON,SEA-WALL-LON >LON
SUB SUB-LAT,SEA-WALL-LAT >LAT
PRINTD SEA-WALL
JUMP ?CND22
?ELS24: SET 'LON,SUB-LON
SET 'LAT,SUB-LAT
ZERO? FINE-SONAR /?CND29
INC 'LAT
?CND29: PRINTD AIRLOCK
?CND22: PRINTI " is "
ZERO? LON /?CND37
LESS? LON,0 \?ELS46
SUB 0,LON
JUMP ?CND42
?ELS46: PUSH LON
?CND42: MUL 5,STACK
PRINTN STACK
ZERO? FINE-SONAR \?CND49
PRINTI "00"
?CND49: PRINTI " meters "
GRTR? 0,LON \?ELS60
PUSH STR?78
JUMP ?CND56
?ELS60: PUSH STR?79
?CND56: PRINT STACK
PRINTI "st "
ZERO? LAT /?CND37
PRINTI "and "
?CND37: ZERO? LAT /?CND68
LESS? LAT,0 \?ELS77
SUB 0,LAT
JUMP ?CND73
?ELS77: PUSH LAT
?CND73: MUL 5,STACK
PRINTN STACK
ZERO? FINE-SONAR \?CND80
PRINTI "00"
?CND80: PRINTI " meters "
GRTR? 0,LAT \?ELS91
PUSH STR?80
JUMP ?CND87
?ELS91: PUSH STR?81
?CND87: PRINT STACK
PRINTI "th "
?CND68: PRINTI "of here."
CRLF
SUB AIRLOCK-DEPTH,SUB-DEPTH >LON
EQUAL? NOW-TERRAIN,SEA-TERRAIN \TRUE
ZERO? LON /TRUE
PRINTI "It's also "
MUL 5,LON
PRINTN STACK
PRINTR " meters below you."
?ELS14: EQUAL? PRSA,V?SEARCH \FALSE
CALL PERFORM,V?INVENTORY
RTRUE
.FUNCT ARM-F
CALL DIVESTMENT?,ARM
ZERO? STACK \?THN6
CALL DIVESTMENT?,GASH
ZERO? STACK /?ELS5
?THN6: CALL HAR-HAR
RSTACK
?ELS5: EQUAL? PRSA,V?EXAMINE,V?ANALYZE \FALSE
FSET? ARM,MUNGBIT \?ELS14
PRINTR "Your arm is seriously gashed."
?ELS14: CALL NOTHING-SPECIAL
RSTACK
.FUNCT TIP-IS-PLAYING
EQUAL? TIP-PLAYS,WINDOW \?ELS7
PUSH STR?82
JUMP ?CND3
?ELS7: PUSH STR?83
?CND3: PRINT STACK
PRINTI " the "
PRINTD TIP-PLAYS
RTRUE
.FUNCT TIP-F,ARG=0,OBJ,X,L
LOC TIP >L
EQUAL? ARG,M-OBJDESC \?ELS5
FSET? TIP,TOUCHBIT /?ELS8
FSET TIP,TOUCHBIT
CRLF
PRINTD TIP
PRINTI " follows you into"
CALL PRINTT,L
EQUAL? L,BLY-OFFICE \?CND11
CALL PICK-ONE,TIP-PICKS >TIP-PLAYS
PRINTI " and begins "
CALL TIP-IS-PLAYING
?CND11: PRINTR "."
?ELS8: EQUAL? L,SUB \?ELS19
PRINTD TIP
PRINTI " is sitting behind you, "
IN? MAGAZINE,TIP \?ELS24
PRINTI "reading a "
PRINTD MAGAZINE
PRINTR "."
?ELS24: ZERO? TIP-FOLLOWS-YOU? \?ELS28
PRINTI "installing a "
PRINTD FINE-GRID
PRINTR "."
?ELS28: PRINTR "checking the instruments."
?ELS19: EQUAL? L,BLY-OFFICE \?ELS36
PRINTD TIP
PRINTI " is "
CALL TIP-IS-PLAYING
PRINTR "."
?ELS36: CALL DESCRIBE-COLLAPSE,TIP
RTRUE
?ELS5: EQUAL? WINNER,TIP \?ELS44
CALL GRAB-ATTENTION,TIP
ZERO? STACK /TRUE
EQUAL? PRSO,FINE-GRID \?ELS59
EQUAL? PRSA,V?TAKE /?ELS59
EQUAL? PRSA,V?TIE-TO,V?PUT \?ELS59
EQUAL? PRSI,SONARSCOPE,GLOBAL-SONAR,THROTTLE /?THN52
?ELS59: CALL MOUNTING-VERB?,FINE-GRID
ZERO? STACK /?ELS51
?THN52: SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-ABOUT,TIP,FINE-GRID
RTRUE
?ELS51: EQUAL? PRSA,V?WAIT-FOR \?ELS65
EQUAL? PRSO,HERE /?THN62
?ELS65: EQUAL? PRSA,V?FOLLOW \?ELS61
EQUAL? PRSO,PLAYER \?ELS61
?THN62: PRINTI """I won't let you out of my sight, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "!"""
?ELS61: CALL COM-CHECK,TIP >X
ZERO? X /?ELS71
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS71: CALL PICK-ONE,WHY-ME
PRINT STACK
CRLF
RETURN 2
?ELS44: CALL ASK-ABOUT?,TIP >OBJ
ZERO? OBJ /?ELS86
CALL GRAB-ATTENTION,TIP
ZERO? STACK /TRUE
CALL SAID-TO,TIP
EQUAL? OBJ,AUTO-PILOT \?ELS94
ZERO? SUB-IN-OPEN-SEA /?ELS94
FSET? AUTO-PILOT,ONBIT /?ELS94
CALL TIME-FOR-PILOT
RSTACK
?ELS94: EQUAL? OBJ,REACTOR,CATALYST-CAPSULE \?ELS98
IN? CATALYST-CAPSULE,REACTOR /FALSE
CALL TELL-HINT,33,CATALYST-CAPSULE,FALSE-VALUE
RSTACK
?ELS98: EQUAL? OBJ,SPECIAL-TOOL-GLOBAL,SPECIAL-TOOL \?ELS105
EQUAL? HERE,SUB \FALSE
CALL TELL-HINT,61,TIP,FALSE-VALUE
RSTACK
?ELS105: EQUAL? OBJ,TRAITOR,BLACK-BOX \?ELS112
CALL TIP-COMES
ZERO? STACK \TRUE
?ELS112: EQUAL? OBJ,TIP-IDEA,GLOBAL-SONAR,GLOBAL-SIEGEL \?ELS116
IN? TIP-IDEA,GLOBAL-OBJECTS \?ELS116
ZERO? SIEGEL-TESTED \?ELS116
FSET? SIEGEL,BUSYBIT /?ELS116
CALL TELL-HINT,13,SIEGEL,FALSE-VALUE
RSTACK
?ELS116: EQUAL? OBJ,STATION-MONITOR \?ELS120
PRINTR """I just like to play with it."""
?ELS120: EQUAL? OBJ,FINE-GRID \?ELS124
ZERO? FINE-SONAR \?THN128
ZERO? SUB-IN-DOME \?CND125
EQUAL? NOW-TERRAIN,SEA-TERRAIN /?CND125
?THN128: PRINTR """I think it's swell!"""
?CND125: PRINTI """If the "
PRINTD SNARK
PRINTI " stays near the sea floor, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ", it may churn up silt. Even with our "
PRINTD SEARCH-BEAM
PRINTI " on, we might have trouble aiming a weapon. Wouldn't it be easier if we could spot its exact position by sonar?"""
CALL YES?
ZERO? STACK /TRUE
PRINTI """"
CALL PRINT-NAME,FIRST-NAME
PRINTI ", our "
PRINTD SONARSCOPE
PRINTI " shows each "
PRINTD GRID-UNIT
PRINTI " as 500 meters across. A blip indicates the APPROXIMATE position of an object. That's not good enough to hit the broad side of a barn! "
ZERO? SUB-IN-DOME \?CND141
IN? FINE-GRID,TIP /?CND141
PRINTI "When we're in the "
PRINTD AQUADOME
PRINTI ", ask me about a "
PRINTD FINE-GRID
PRINTR "."""
?CND141: PRINTI "Let me install a "
PRINTD FINE-GRID
PRINTI " on the "
PRINTD SONARSCOPE
PRINTI " that'll show a blip's position to within 5 meters, okay?"""
CALL YES?
ZERO? STACK /TRUE
CALL QUEUE,I-TIP-REPORTS,5
PUT STACK,0,1
FSET TIP,BUSYBIT
ZERO? SUB-IN-DOME /TRUE
EQUAL? HERE,SUB,AIRLOCK,AIRLOCK-WALL \?ELS159
MOVE TIP,DOME-STORAGE
JUMP ?CND157
?ELS159: MOVE TIP,SUB
?CND157: MOVE FINE-GRID,TIP
SET 'TIP-FOLLOWS-YOU?,FALSE-VALUE
PRINTI """"
CALL PRINT-NAME,FIRST-NAME
PRINTI ", I checked"
EQUAL? HERE,DOME-STORAGE /?CND164
PRINTI " the "
PRINTD DOME-STORAGE
?CND164: PRINTI " and found a "
PRINTD FINE-GRID
PRINTI " that'll fit our "
PRINTD SONARSCOPE
PRINTI ". I can install it quickly! I'll have someone install a fine throttle control, too, for tight maneuvering. It has the same 3 settings, but for small "
PRINTD GRID-UNIT
PRINTI "s -- 0, 5, 10, or 15 meters per turn."""
CRLF
RTRUE
?ELS124: CALL COMMON-ASK-ABOUT,TIP,OBJ >X
ZERO? X /?ELS172
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS172: PRINTI """You know as much as I do, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS86: EQUAL? PRSA,V?TELL-ABOUT \?ELS185
EQUAL? PRSO,GLOBAL-SNARK \FALSE
PRINTI """I know, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "! We'd better go there fast in the "
PRINTD GLOBAL-SUB
PRINTR "!"""
?ELS185: CALL COMMON-OTHER,TIP
ZERO? STACK \TRUE
RFALSE
.FUNCT ASK-ABOUT?,PER
EQUAL? PRSA,V?CONFRONT,V?ASK-ABOUT \?ELS5
EQUAL? PRSO,PER \?ELS5
ZERO? PRSI /?ELS5
RETURN PRSI
?ELS5: EQUAL? PRSA,V?WHAT,V?FIND \FALSE
ZERO? PRSO /FALSE
IN? PRSO,GLOBAL-OBJECTS \FALSE
RETURN PRSO
.FUNCT GLOBAL-SHARON-F,ARG=0,OBJ,L,X
SET 'L,REMOTE-PERSON-LOC
ZERO? SHARON-EXPLAINED \?ELS5
EQUAL? REMOTE-PERSON,GLOBAL-SHARON \?ELS5
SET 'SHARON-EXPLAINED,TRUE-VALUE
CALL SHARON-EXPLAINS
RETURN 2
?ELS5: EQUAL? WINNER,GLOBAL-SHARON \?ELS11
EQUAL? PRSA,V?FIND \?ELS16
EQUAL? PRSO,GLOBAL-SHARON \?ELS16
PRINTI """I'm in the "
PRINTD THORPE-SUB
PRINTR "."""
?ELS16: EQUAL? PRSA,V?FIND \?ELS22
EQUAL? PRSO,GLOBAL-SNARK \?ELS22
PRINTR """It's right here, next to me."""
?ELS22: EQUAL? PRSA,V?SET,V?PUSH /?THN31
EQUAL? PRSA,V?MOVE-DIR,V?MOVE,V?STOP \?ELS28
?THN31: EQUAL? PRSO,THORPE-SUB,SNARK,ROOMS \?ELS28
PRINTR """I'm afraid I can't control it that well."""
?ELS28: CALL COM-CHECK,GLOBAL-SHARON >X
ZERO? X /?ELS36
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS36: PRINTI """Sorry, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ", but I'm too busy driving this "
PRINTD THORPE-SUB
PRINTI "."""
CRLF
RETURN 2
?ELS11: EQUAL? REMOTE-PERSON,GLOBAL-SHARON \?ELS51
CALL ASK-ABOUT?,GLOBAL-SHARON >OBJ
ZERO? OBJ /?ELS51
CALL SAID-TO,GLOBAL-SHARON
EQUAL? OBJ,SNARK \?ELS58
CALL SHARON-ABOUT-MONSTER
RTRUE
?ELS58: EQUAL? OBJ,THORPE-SUB \?ELS60
CALL SHARON-ABOUT-CAT
RTRUE
?ELS60: EQUAL? OBJ,GLOBAL-THORPE \?ELS62
CALL SHARON-ABOUT-THORPE
RTRUE
?ELS62: CALL COMMON-ASK-ABOUT,GLOBAL-SHARON,OBJ >X
ZERO? X /?ELS64
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS64: CALL DONT-KNOW,GLOBAL-SHARON,OBJ
RSTACK
?ELS51: EQUAL? PRSO,GLOBAL-SHARON \?ELS75
EQUAL? PRSA,V?HELLO \?ELS75
EQUAL? REMOTE-PERSON-ON,SONARPHONE,INTERCOM \?ELS75
PRINTI "You hear "
PRINTD PRSO
PRINTR " nodding at you."
?ELS75: EQUAL? PRSO,GLOBAL-SHARON \?ELS81
EQUAL? PRSA,V?REPLY,V?LISTEN \?ELS81
CALL WAITING-FOR-YOU-TO-SPEAK
RTRUE
?ELS81: EQUAL? PRSO,GLOBAL-SHARON \?ELS85
EQUAL? PRSA,V?PHONE \?ELS85
EQUAL? HERE,SUB,CRAWL-SPACE /?ELS85
ZERO? SUB-IN-DOME \?ELS85
PRINTR "There's no phone line to where she is."
?ELS85: EQUAL? PRSO,GLOBAL-SHARON \?ELS91
EQUAL? PRSA,V?READ \?ELS91
CALL FIGURE-OF-SPEECH
RTRUE
?ELS91: CALL GLOBAL-PERSON
RSTACK
.FUNCT FIGURE-OF-SPEECH
PRINTR "That's just a figure of speech! Try the command: SAY ""HELLO."""
.FUNCT DONT-KNOW-ANYTHING
PRINTR """Uh . . . I don't know anything about it."""
.FUNCT SHARON-F,ARG=0,OBJ,L,X
LOC SHARON >L
EQUAL? ARG,M-OBJDESC \?ELS5
IN? SHARON,OFFICE \?ELS10
PRINTR "Sharon is looking through the file drawer."
?ELS10: IN? SHARON,HERE \?ELS14
IN? HERE,ROOMS \?ELS14
PRINTR "Sharon is pacing back and forth."
?ELS14: PRINTI "Sharon is sitting on the "
LOC SHARON
PRINTD STACK
PRINTR "."
?ELS5: EQUAL? WINNER,SHARON \?ELS24
EQUAL? PRSA,V?FIND \?ELS29
EQUAL? PRSO,MAGAZINE \?ELS34
CALL PERFORM,V?ASK-ABOUT,SHARON,MAGAZINE
RTRUE
?ELS34: EQUAL? PRSO,GLOBAL-THORPE \FALSE
PRINTI "Sharon looks surprised. ""I don't know, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS29: EQUAL? PRSA,V?LOOK-INSIDE \?ELS40
EQUAL? PRSO,FILE-DRAWER \?ELS40
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-ABOUT,SHARON,FILE-DRAWER
RTRUE
?ELS40: CALL COM-CHECK,SHARON >X
ZERO? X /?ELS44
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS44: PRINTR """I'm too busy right now."""
?ELS24: EQUAL? PRSA,V?ASK \?ELS57
IN? SHARON,OFFICE \?ELS57
CALL PERFORM,V?ASK-ABOUT,SHARON,FILE-DRAWER
RTRUE
?ELS57: CALL ASK-ABOUT?,SHARON >OBJ
ZERO? OBJ /?ELS61
CALL GRAB-ATTENTION,SHARON
ZERO? STACK /TRUE
CALL SAID-TO,SHARON
EQUAL? OBJ,MAGAZINE,ARTICLE \?ELS69
LOC MAGAZINE
EQUAL? STACK,SHARON,PLAYER \?ELS69
PRINTI """Uh . . . That's not the "
PRINTD MAGAZINE
PRINTR " I'm looking for."""
?ELS69: EQUAL? OBJ,CIRCUIT-BREAKER,ELECTRICAL-CONTROL-PANEL \?ELS75
ZERO? SHARON-BROKE-CIRCUIT /?ELS75
CALL DONT-KNOW-ANYTHING
RSTACK
?ELS75: EQUAL? OBJ,CATALYST-CAPSULE \?ELS79
PRINTR """Uh . . . I guess I forgot about it. Sorry."""
?ELS79: EQUAL? OBJ,GLOBAL-SHARON,SHARON \?ELS83
PRINTR """You know me well and trust me completely."""
?ELS83: EQUAL? OBJ,PROBLEM \?ELS87
PRINTI """Sorry, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ", but I just got word that my mother is ill. They want me to come to the hospital at once."
PRINTR """"
?ELS87: EQUAL? OBJ,ARTICLE /?THN96
EQUAL? OBJ,FILE-DRAWER,PAPERS,MAGAZINE \?ELS95
?THN96: PRINTI """I can't find the "
PRINTD MAGAZINE
PRINTI " I bought for my mother this morning. I thought it might be in the "
PRINTD FILE-DRAWER
PRINTI ". I wanted to take it to the hospital for her to read. I really must rush off, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "!"""
?ELS95: EQUAL? OBJ,THORPE,GLOBAL-THORPE \?ELS101
CALL PERFORM,V?ASK-ABOUT,SHARON,PRIVATE-MATTER
RTRUE
?ELS101: CALL COMMON-ASK-ABOUT,SHARON,OBJ >X
ZERO? X /?ELS103
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS103: CALL PICK-ONE,SHARON-ASKED
PRINT STACK
CRLF
RTRUE
?ELS61: EQUAL? PRSA,V?GOODBYE \?ELS116
PRINTI """I'm going as soon as I find that "
PRINTD MAGAZINE
PRINTR "."""
?ELS116: CALL COMMON-OTHER,SHARON
ZERO? STACK \TRUE
RFALSE
.FUNCT BLY-TELLS-PROBLEM
SET 'BLY-TOLD-PROBLEM,TRUE-VALUE
CALL QUEUE,I-SHARON-TO-HALLWAY,6
PUT STACK,0,1
CALL SAID-TO,GLOBAL-BLY
CALL THIS-IS-IT,GLOBAL-SNARK
CALL PRINT-NAME,FIRST-NAME
PRINTI "! Our transparent dome enclosing the "
PRINT URS
PRINTR " is being battered by a huge monster!"""
.FUNCT MIKE-2-F
PRINTI """The "
PRINTD SNARK
PRINTI "'s gone for now, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ". It's no longer in sight."
RTRUE
.FUNCT GLOBAL-BLY-F,ARG=0,OBJ,L,X
SET 'L,REMOTE-PERSON-LOC
EQUAL? ARG,M-OBJDESC \?ELS5
EQUAL? L,CENTER-OF-LAB \FALSE
ZERO? WOMAN-ON-SCREEN /?ELS15
PRINTR "You can't tell who the woman is."
?ELS15: PRINTI "You can see a picture of "
PRINTD BLY
PRINTI " on the "
PRINTD REMOTE-PERSON-ON
PRINTR "."
?ELS5: EQUAL? L,CENTER-OF-LAB \?ELS24
CALL SPEAKING-VERB?
ZERO? STACK /?ELS24
EQUAL? PRSO,FALSE-VALUE,GLOBAL-BLY,PLAYER \?ELS24
IN? MICROPHONE,PLAYER \?THN27
FSET? MICROPHONE,ONBIT /?ELS24
?THN27: SET 'P-CONT,FALSE-VALUE
CALL THIS-IS-IT,MICROPHONE
PRINTI "She can't hear you unless you "
IN? MICROPHONE,PLAYER /?ELS35
PRINTI "pick up your "
PRINTD MICROPHONE
FSET? MICROPHONE,ONBIT /?CND38
PRINTI " and switch it on"
?CND38: PRINTR "."
?ELS35: PRINTI "switch on your "
PRINTD MICROPHONE
PRINTR "."
?ELS24: ZERO? BLY-TOLD-PROBLEM \?ELS50
EQUAL? PRSA,V?LISTEN,V?GOODBYE /?ELS50
ZERO? MONSTER-GONE \?ELS50
IN? MICROPHONE,PLAYER \?ELS50
EQUAL? REMOTE-PERSON,GLOBAL-BLY \?ELS50
CALL QUEUE,I-SEND-SUB,8
PUT STACK,0,1
PRINTI """"
CALL PRINT-NAME,FIRST-NAME
PRINTI "! "
CALL BLY-TELLS-PROBLEM
RETURN 2
?ELS50: EQUAL? WINNER,GLOBAL-BLY \?ELS63
EQUAL? PRSA,V?FIND \?ELS68
EQUAL? PRSO,GLOBAL-BLY \?ELS68
PRINTI """I'm at the "
PRINTD AQUADOME
PRINTR "."""
?ELS68: EQUAL? PRSO,PLAYER \?ELS74
EQUAL? P-ADVERB,W?PRIVATELY \?ELS74
EQUAL? PRSA,V?TELL /?THN77
EQUAL? PRSA,V?TELL-ABOUT \?ELS74
EQUAL? PRSI,PRIVATE-MATTER \?ELS74
?THN77: SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-ABOUT,GLOBAL-BLY,PRIVATE-MATTER
RTRUE
?ELS74: EQUAL? PRSA,V?EXAMINE \?ELS88
EQUAL? PRSO,GLOBAL-SNARK /?THN85
?ELS88: EQUAL? PRSA,V?SHOW \?ELS84
EQUAL? PRSO,PLAYER \?ELS84
EQUAL? PRSI,GLOBAL-SNARK \?ELS84
?THN85: ZERO? MONSTER-GONE /?ELS95
CALL MIKE-2-F
PRINTR """"
?ELS95: PRINTI "The "
PRINTD AQUADOME
PRINTI "'s camera pans, and the monster comes into view on your "
PRINTD VIDEOPHONE
PRINTR " screen. It resembles a huge sea slug, about 5 meters tall. Its clawed tentacles pound and scratch at the dome."
?ELS84: EQUAL? PRSA,V?KILL \?ELS108
EQUAL? PRSO,GLOBAL-SNARK /?THN113
?ELS108: EQUAL? PRSA,V?SHOOT,V?ATTACK \?ELS110
EQUAL? PRSO,GLOBAL-SNARK \?ELS110
EQUAL? PRSI,FALSE-VALUE,GLOBAL-WEAPON,GLOBAL-EXPLOSIVE /?THN113
?ELS110: EQUAL? PRSO,GLOBAL-EXPLOSIVE,GLOBAL-WEAPON \?ELS104
EQUAL? PRSA,V?USE /?THN113
EQUAL? PRSA,V?USE-AGAINST \?ELS104
EQUAL? PRSI,GLOBAL-SNARK \?ELS104
?THN113: ZERO? MONSTER-GONE /?ELS121
CALL MIKE-2-F
PRINTR """"
?ELS121: EQUAL? PRSO,GLOBAL-EXPLOSIVE /?THN127
EQUAL? PRSI,GLOBAL-EXPLOSIVE \?ELS126
?THN127: PRINTI """Setting off explosions so close might damage the "
PRINTD AQUADOME
PRINTR " even worse than the Snark is doing."""
?ELS126: PRINTI """"
CALL PRINT-NAME,FIRST-NAME
PRINTR ", this is a peaceful research facility. We have no weapons."""
?ELS104: EQUAL? PRSA,V?SEND-OUT,V?SEND \?ELS136
EQUAL? PRSO,GLOBAL-SUB \?ELS136
PRINTI """No subs are stationed here at the "
PRINTD AQUADOME
PRINTI ", "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS136: EQUAL? PRSO,DISTRESS-CALL \?ELS142
EQUAL? PRSA,V?SEND /?THN145
EQUAL? PRSA,V?SEND-TO \?ELS142
EQUAL? PRSI,GLOBAL-SUB \?ELS142
?THN145: PRINTI """No response to our "
PRINTD SONARPHONE
PRINTI " "
PRINTD DISTRESS-CALL
PRINTR "s."""
?ELS142: EQUAL? PRSO,GLOBAL-SUB \?ELS152
EQUAL? PRSA,V?FIND /?THN155
EQUAL? PRSA,V?FIND-WITH \?ELS152
EQUAL? PRSI,GLOBAL-SONAR \?ELS152
?THN155: PRINTI """No blips appear on the "
PRINTD SONAR-EQUIPMENT
PRINTR "."""
?ELS152: EQUAL? PRSA,V?DISEMBARK,V?LEAVE /?THN163
EQUAL? PRSA,V?WALK-TO \?ELS162
EQUAL? PRSO,GLOBAL-HERE,YOUR-LABORATORY,GLOBAL-SURFACE \?ELS162
?THN163: PRINTR """Our emergency escape bell would be vulnerable to a monster as big as the Snark. Ditto for SCUBA gear, deep-sea diving suits, or jet-propelled observation bubbles."""
?ELS162: EQUAL? PRSA,V?ASK-FOR,V?ASK-ABOUT \?ELS170
CALL PICK-ONE,WHY-ME
PRINT STACK
CRLF
RETURN 2
?ELS170: EQUAL? PRSA,V?TELL,V?REPLY \?ELS176
EQUAL? PRSO,PLAYER \?ELS176
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK,GLOBAL-BLY
RTRUE
?ELS176: EQUAL? PRSA,V?WAIT-FOR /?THN181
EQUAL? PRSA,V?FIND \?ELS180
EQUAL? PRSO,PLAYER \?ELS180
?THN181: PRINTI """Okay, "
CALL PRINT-NAME,FIRST-NAME
PRINTR ", but hurry!"""
?ELS180: CALL COM-CHECK,GLOBAL-BLY >X
ZERO? X /?ELS190
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS190: CALL PICK-ONE,WHY-ME
PRINT STACK
CRLF
RETURN 2
?ELS63: EQUAL? REMOTE-PERSON,GLOBAL-BLY \?ELS205
CALL ASK-ABOUT?,GLOBAL-BLY >OBJ
ZERO? OBJ /?ELS205
CALL SAID-TO,GLOBAL-BLY
EQUAL? OBJ,PROBLEM \?ELS212
EQUAL? L,SUB \?ELS217
PRINTR """I'll tell you when we can talk privately."""
?ELS217: PRINTI """"
CALL BLY-TELLS-PROBLEM
RSTACK
?ELS212: EQUAL? OBJ,GLOBAL-SNARK \?ELS225
EQUAL? REMOTE-PERSON-ON,SONARPHONE \?ELS228
MOVE PRIVATE-MATTER,GLOBAL-OBJECTS
INC 'BLY-PRIVATELY-COUNT
PRINTI """There have been no new attacks, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ". But the creature may come back. And"
CALL DISCUSS-PRIVATE
RTRUE
?ELS228: PRINTI """Some of our divers saw it while exploring the undersea environment. They nicknamed it the Snark. This is the first time it has approached the "
PRINTD AQUADOME
PRINTI ", and it may be the last time, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "! I'm not sure how long our plastic dome enclosure c"
ZERO? MONSTER-GONE /?ELS237
PRINTI "ould"
JUMP ?CND235
?ELS237: PRINTI "an"
?CND235: PRINTR " withstand such a battering!"""
?ELS225: CALL COMMON-ASK-ABOUT,GLOBAL-BLY,OBJ >X
ZERO? X /?ELS248
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS248: CALL DONT-KNOW,GLOBAL-BLY,OBJ
RSTACK
?ELS205: EQUAL? PRSA,V?$CALL,V?ASK \?ELS259
PRINTI """Ask me about something in particular, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS259: ZERO? WOMAN-ON-SCREEN /?ELS263
EQUAL? PRSA,V?EXAMINE \?ELS263
PRINTR "You can't tell who the woman is."
?ELS263: EQUAL? PRSO,GLOBAL-BLY \?ELS269
EQUAL? PRSA,V?HELLO \?ELS269
EQUAL? REMOTE-PERSON-ON,SONARPHONE,INTERCOM \?ELS269
PRINTI "You hear "
PRINTD PRSO
PRINTR " nodding at you."
?ELS269: EQUAL? PRSA,V?GOODBYE \?ELS275
PRINTI """I hope to see you soon, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "."""
CRLF
EQUAL? REMOTE-PERSON-ON,VIDEOPHONE \?CND280
CALL I-SHARON-TO-HALLWAY
?CND280: CALL PHONE-OFF
RTRUE
?ELS275: EQUAL? PRSO,GLOBAL-BLY \?ELS284
EQUAL? PRSA,V?REPLY,V?LISTEN \?ELS284
CALL WAITING-FOR-YOU-TO-SPEAK
RTRUE
?ELS284: EQUAL? PRSO,GLOBAL-BLY \?ELS288
EQUAL? PRSA,V?PHONE \?ELS288
EQUAL? HERE,SUB,CRAWL-SPACE /?ELS288
ZERO? SUB-IN-DOME /FALSE
?ELS288: EQUAL? PRSO,GLOBAL-BLY \?ELS292
EQUAL? PRSA,V?READ \?ELS292
CALL FIGURE-OF-SPEECH
RTRUE
?ELS292: EQUAL? PRSA,V?TELL-ABOUT \?ELS296
EQUAL? PRSI,GLOBAL-SUB \FALSE
PRINTI """The only submarine capable of hunting it at such depths is your "
PRINTD GLOBAL-SUB
PRINTR ". Please send us that!"""
?ELS296: CALL COMMON-OTHER,GLOBAL-BLY
ZERO? STACK \TRUE
CALL GLOBAL-PERSON
RSTACK
.FUNCT BLY-F,ARG=0,OBJ,L,X
LOC BLY >L
EQUAL? ARG,M-OBJDESC \?ELS5
CALL DESCRIBE-COLLAPSE,BLY
RSTACK
?ELS5: ZERO? DOME-AIR-BAD? /?ELS7
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \?ELS7
PRINTI """Never mind me, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "!"" she cries. ""S-S-Something's wrong with the "
PRINTD AIR-SUPPLY-SYSTEM
PRINTI "! ... F-Fix it -- or we'll all s-s-soon be ..."""
CRLF
RETURN 2
?ELS7: EQUAL? WINNER,BLY \?ELS15
CALL GRAB-ATTENTION,BLY
ZERO? STACK /TRUE
EQUAL? PRSA,V?FIND \?ELS22
EQUAL? PRSO,PHOTO \?ELS22
ZERO? BLY-SAW-PHOTO \?ELS22
PRINTR """It's either on his person or in his locker, in the dormitory."""
?ELS22: EQUAL? PRSA,V?GIVE \?ELS28
EQUAL? PRSO,JOB \?ELS28
EQUAL? PRSI,GLOBAL-SIEGEL,SIEGEL \?ELS28
PRINTI """I'll have him check the "
PRINTD SONAR-EQUIPMENT
PRINTI ". Okay?"""
CALL YES?
ZERO? STACK /?CND33
CALL ZOE-SENDS-MARV,COMM-BLDG
RTRUE
?CND33: PRINTI """Should I give him some chore that's close to the "
PRINTD SONAR-EQUIPMENT
PRINTI " so he can keep an eye on it?"""
CALL YES?
ZERO? STACK /?CND38
CALL ZOE-SENDS-MARV,COMM-BLDG
RTRUE
?CND38: PRINTI """Then somewhere out of sight of the "
PRINTD COMM-BLDG
PRINTI "? That's where the "
PRINTD SONAR-EQUIPMENT
PRINTI "is."""
CALL YES?
ZERO? STACK /?ELS47
SET 'SIEGEL-OUT-OF-SIGHT,TRUE-VALUE
CALL ZOE-SENDS-MARV,AIRLOCK
RTRUE
?ELS47: PRINTI """Then, you'd better do it, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS28: EQUAL? PRSA,V?TIE-TO,V?PUT \?ELS53
EQUAL? PRSO,BLACK-BOX \?ELS53
EQUAL? PRSI,SONAR-EQUIPMENT,GLOBAL-SONAR \?ELS53
MOVE BLACK-BOX,SONAR-EQUIPMENT
PRINTI """Wilco, "
CALL PRINT-NAME,FIRST-NAME
PRINTR ". Consider it done."""
?ELS53: EQUAL? PRSA,V?EXAMINE,V?READ \?ELS59
EQUAL? PRSO,DIARY \?ELS59
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-ABOUT,BLY,DIARY
RTRUE
?ELS59: EQUAL? PRSA,V?SHOW \?ELS63
EQUAL? PRSO,PLAYER \?ELS63
EQUAL? PRSI,EVIDENCE \?ELS63
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-ABOUT,BLY,PRSI
RTRUE
?ELS63: EQUAL? PRSO,PLAYER \?ELS67
EQUAL? P-ADVERB,W?PRIVATELY \?ELS67
EQUAL? PRSA,V?TELL /?THN70
EQUAL? PRSA,V?TELL-ABOUT \?ELS67
EQUAL? PRSI,PRIVATE-MATTER \?ELS67
?THN70: SET 'WINNER,PLAYER
CALL ASK-BLY-ABOUT-PRIVATE-MATTER
RTRUE
?ELS67: EQUAL? PRSA,V?ASK \?ELS75
EQUAL? PRSO,PLAYER \?ELS75
CALL I-BLY-SAYS,TRUE-VALUE
ZERO? STACK \TRUE
?ELS75: FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \?ELS79
CALL EXIT-VERB?
ZERO? STACK /?ELS79
PRINTI """Not now, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS79: CALL COM-CHECK,BLY >X
ZERO? X /?ELS85
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS85: CALL PICK-ONE,WHY-ME
PRINT STACK
CRLF
RETURN 2
?ELS15: EQUAL? PRSA,V?ASK /?THN101
EQUAL? PRSO,BLY \?ELS100
EQUAL? PRSA,V?TELL \?ELS100
EQUAL? P-ADVERB,W?PRIVATELY \?ELS100
?THN101: CALL ASK-BLY-ABOUT-PRIVATE-MATTER
RTRUE
?ELS100: EQUAL? PRSA,V?TELL-ABOUT,V?ASK-ABOUT \?ELS106
EQUAL? PRSI,CONTROL-CIRCUITS-GAUGE,CONTROL-CIRCUITS,OVERHEATING /?THN109
EQUAL? PRSI,VOLTAGE-REGULATOR,LOCAL-SUB,GLOBAL-SUB \?ELS106
?THN109: PRINTI """You mean the problem you had on the way here? Shall I ask Mick to check on it?"""
CALL YES?
ZERO? STACK /TRUE
MOVE ANTRIM,HERE
SET 'WINNER,ANTRIM
CALL PERFORM,V?FIX,GLOBAL-SUB
RTRUE
?ELS106: CALL ASK-ABOUT?,BLY >OBJ
ZERO? OBJ /?ELS117
CALL GRAB-ATTENTION,BLY
ZERO? STACK /TRUE
CALL SAID-TO,BLY
FSET BLY,TOUCHBIT
EQUAL? OBJ,PRIVATE-MATTER \?ELS125
CALL ASK-BLY-ABOUT-PRIVATE-MATTER
RSTACK
?ELS125: EQUAL? OBJ,PROBLEM \?ELS127
ZERO? DOME-AIR-BAD? /?ELS132
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \?ELS132
CALL BADGES-RED
RTRUE
?ELS132: ZERO? ZOE-MENTIONED-EVIDENCE \?ELS136
SET 'WINNER,PLAYER
CALL ASK-BLY-ABOUT-PRIVATE-MATTER
RTRUE
?ELS136: EQUAL? HERE,BLY-OFFICE \?ELS138
ZERO? ZOE-BLUSHING /?ELS138
CALL DOC-IN-LOVE
RSTACK
?ELS138: PRINTI """I'm worried that the "
PRINTD SNARK
PRINTI " may attack again, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS127: EQUAL? OBJ,DIARY \?ELS146
PRINTR """I think that I can guess what's in it."""
?ELS146: EQUAL? OBJ,REASON,PHOTO \?ELS150
EQUAL? OBJ,PHOTO \?CND151
SET 'BLY-SAW-PHOTO,TRUE-VALUE
?CND151: CALL DISCRETION,BLY,HORVAK
PRINTI """A friend took a picture of me just before I was assigned here. I usually keep it on my desk, but a few days after Doc came on to me, I realized it was gone."
ZERO? BLY-SAW-PHOTO \?CND156
PRINTI " It still hasn't turned up."
?CND156: PRINTR " I think Doc took it. He wanted a picture of me."""
?ELS150: EQUAL? OBJ,EVIDENCE,BLACK-BOX \?ELS164
ZERO? ZOE-MENTIONED-EVIDENCE \?CND165
CALL ASK-BLY-ABOUT-PRIVATE-MATTER
RTRUE
?CND165: PRINTI """I wanted to make sure the "
PRINTD SONAR-EQUIPMENT
PRINTI " would warn us if the "
PRINTD SNARK
PRINTI " approached again. I was worried because the blips on the scope looked fuzzy, as if the system was out of alignment. When I inspected it, I found someone had secretly attached "
IN? BLACK-BOX,BLY-DESK /?ELS172
IN? BLACK-BOX,BLY \?ELS179
PUSH STR?86
JUMP ?CND175
?ELS179: PUSH STR?87
?CND175: PRINT STACK
PRINTD BLACK-BOX
JUMP ?CND170
?ELS172: PRINTI "this device"
?CND170: PRINTI " to it!"""
CRLF
IN? BLACK-BOX,BLY-DESK \?CND188
MOVE BLACK-BOX,BLY
CALL THIS-IS-IT,BLACK-BOX
PRINTI "Zoe takes a small """
PRINTD BLACK-BOX
PRINTI """ device from her desk drawer."
CRLF
?CND188: CALL QUEUE,I-TIP-SONAR-PLAN,-1
PUT STACK,0,1
MOVE TIP-IDEA,GLOBAL-OBJECTS
RTRUE
?ELS164: EQUAL? OBJ,SIEGEL,GLOBAL-SIEGEL \?ELS194
ZERO? SIEGEL-TESTED \?THN198
FSET? SIEGEL,BUSYBIT /?THN198
IN? BLACK-BOX,BLY-DESK \?ELS197
?THN198: CALL DISCRETION,BLY,SIEGEL
PRINTI """"
JUMP ?CND195
?ELS197: CALL DISCRETION,BLY,SIEGEL,ANTRIM
PRINTI """I bet you're wondering if he could have attached that "
PRINTD BLACK-BOX
PRINTI " to the "
PRINTD SONAR-EQUIPMENT
PRINTI ".
I agree that he had the opportunity, but all I can say, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ", is that he's no troublemaker like "
PRINTD ANTRIM
PRINTI "."
CRLF
?CND195: PRINTI "He's a great diver and a skilled electronics engineer.
I think he really enjoys exploring the undersea environment. He discovered that "
PRINTD ORE-NODULES
PRINTI " on the sea floor near the "
PRINTD AQUADOME
PRINTI ".
I have no reason to suspect him of trying to sabotage the "
PRINT URS
PRINTI " of "
PRINTD IU-GLOBAL
PRINTI "."
ZERO? SIEGEL-TESTED \?THN213
FSET? SIEGEL,BUSYBIT /?THN213
IN? BLACK-BOX,BLY-DESK \?ELS212
?THN213: PRINTR """"
?ELS212: PRINTI " But I do have a plan that will help us find out. Do you want to hear it, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "?"""
MOVE BLY-PLAN,GLOBAL-OBJECTS
CALL YES?
ZERO? STACK /TRUE
CALL QUEUE,I-TIP-SONAR-PLAN,0
CALL TELL-HINT,13,SIEGEL,FALSE-VALUE
RTRUE
?ELS194: EQUAL? OBJ,BLY-PLAN \?ELS225
CALL TELL-HINT,13,SIEGEL,FALSE-VALUE
RSTACK
?ELS225: EQUAL? OBJ,ANTRIM,GLOBAL-ANTRIM \?ELS227
PRINTI "Just hearing Antrim's name makes her eyes flash fire, and she clenches her fists. You can tell she's had a hard time keeping her temper when dealing with Antrim.
"
CALL DISCRETION,BLY,ANTRIM
PRINTI """"
CALL PRINT-NAME,FIRST-NAME
PRINTI ", that redheaded troublemaker's been nothing but bad news since the day I arrived! He's always got a chip on his shoulder and looks for ways to embarrass me or start a fight."
ZERO? ANTRIM-EXPLODED /?CND232
PRINTI " You heard his remarks about the "
PRINTD OXYGEN-GEAR
PRINTI "."
?CND232: PRINTR " Most of the time he complains about discipline, but whenever I ease up he's always the first to accuse me of laxity!"""
?ELS227: EQUAL? OBJ,ORE-NODULES \?ELS241
PRINTI """Oops, I forgot you hadn't heard about it, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ". I was about to report it when we were attacked. "
PRINTD SIEGEL
PRINTI " discovered it by accident. The ore is mostly manganese and iron, but there's gold and platinum, and there may be traces of rare earths, too. This could be the richest payoff yet from the "
PRINTD AQUADOME
PRINTR "!"""
?ELS241: EQUAL? OBJ,SPECIAL-TOOL \?ELS245
PRINTI """That belongs on the "
PRINTD HOOK
PRINTI "!"
IN? SPECIAL-TOOL,BLY-OFFICE \?CND248
PRINTI " Why is it in my office? It hasn't been there long! When I "
EQUAL? HERE,BLY-OFFICE \?ELS255
PRINTI "came back "
JUMP ?CND253
?ELS255: PRINTI "went back t"
?CND253: PRINTI "here to put something in a drawer, I knocked a pen off my desk. I had to stoop down to find it. Had that wrench been lying under my desk, I would have seen it!"
?CND248: PRINTR """"
?ELS245: EQUAL? OBJ,GLOBAL-HORVAK,HORVAK \?ELS267
FSET? SPECIAL-TOOL,TOUCHBIT /?ELS272
CALL DOC-IN-LOVE
RSTACK
?ELS272: SET 'ZOE-BLUSHING,TRUE-VALUE
CALL DISCRETION,BLY,HORVAK
PRINTI """I wonder if he sabotaged the "
PRINTD AIR-SUPPLY-SYSTEM
ZERO? HORVAK-FIXED-AIR \?CND277
PRINTI " and then ditched the wrench there"
?CND277: PRINTI "?"
ZERO? HORVAK-FIXED-AIR \?CND284
PRINTI " He had the opportunity: he could have tossed it there when he came to get my "
PRINTD OXYGEN-GEAR
PRINTI ". But"
?CND284: PRINTR " I just can't BELIEVE Doc would cut off our air supply!""
Zoe blushes and her voice trembles with emotion as she speaks."
?ELS267: EQUAL? OBJ,LOWELL,GLOBAL-LOWELL /?THN293
EQUAL? OBJ,GREENUP,GLOBAL-GREENUP \?ELS292
ZERO? GREENUP-GUILT \?ELS292
?THN293: PRINTI """"
CALL HE-SHE-IT,OBJ,TRUE-VALUE
PRINTR "'s an excellent diver."""
?ELS292: EQUAL? OBJ,GREENUP,GLOBAL-GREENUP \?ELS302
PRINTR """I never would have suspected him!"""
?ELS302: FSET? AIR-SUPPLY-SYSTEM,MUNGBIT /?ELS306
EQUAL? OBJ,AIR-SUPPLY-SYSTEM,AIR-SUPPLY-SYSTEM-GLOBAL,GLOBAL-SABOTAGE \?ELS306
IN? CREW,HERE \?CND309
PRINTI "Zoe shoots a troubled glance at her five crew members.
"
?CND309: PRINTI """Once we saw your "
PRINTD SEARCH-BEAM
PRINTI " beam, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ", we were all watching for your arrival outside the dome. Any one of us could have tampered with the "
PRINTD AIR-SUPPLY-SYSTEM
PRINTI " without being noticed.""
"
CALL TIP-SAYS
PRINTI "One thing's for sure. Whoever did it also took that "
PRINTD SPECIAL-TOOL
PRINTI "!""
"
IN? ANTRIM,HERE \TRUE
SET 'ANTRIM-EXPLODED,TRUE-VALUE
PRINTD ANTRIM
PRINTI " explodes: ""That shows you what kind of a commander Bly is! Regulations state that EVERYONE has to wear "
PRINTD OXYGEN-GEAR
PRINTR " all the time. But neither of those two divers were wearing theirs! Bly wasn't even wearing HER OWN!"""
?ELS306: CALL COMMON-ASK-ABOUT,BLY,OBJ >X
ZERO? X /?ELS324
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS324: CALL DONT-KNOW,BLY,OBJ
RSTACK
?ELS117: CALL COMMON-OTHER,BLY
ZERO? STACK \TRUE
RFALSE
.FUNCT ASK-BLY-ABOUT-PRIVATE-MATTER
CALL QUEUE,I-BLY-PRIVATELY,0
EQUAL? HERE,BLY-OFFICE \?CND1
CALL ZOE-MENTIONS-EVIDENCE
RTRUE
?CND1: PRINTI """Come to my office"
PRINTI ", "
CALL PRINT-NAME,FIRST-NAME
PRINTI ".""
"
ZERO? DOME-AIR-BAD? \?ELS10
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \?ELS10
MOVE ANTRIM,HERE
PRINTI "As you turn to leave with "
PRINTD BLY
PRINTI ", "
PRINTD ANTRIM
PRINTI " explodes angrily:
""What's so private, 'Captain Bly'? If you have a complaint, why not spill it now? Or are you afraid we might complain about YOU?!""
Before you can say anything, Zoe yells:
""That's enough, Antrim! Maybe I have some complaints about the way the crew performs. When I make any about you, or hand out disciplinary action, you'll be the first to -- to --""
"
CALL I-DOME-AIR,TRUE-VALUE
RSTACK
?ELS10: MOVE BLY,BLY-OFFICE
FSET BLY,NDESCBIT
SET 'WINNER,PLAYER
CALL GOTO,BLY-OFFICE
RSTACK
.FUNCT DOC-IN-LOVE
CALL DISCRETION,BLY,HORVAK
PRINTI """This is embarrassing. Doc's in love with me, or so he says.
When he said he loved me, I didn't handle it well. I lost my poise and told him this was a scientific research station, not a singles resort, and that I was his commanding officer -- so cut the romantic stuff and go back to work.
"
FSET? SPECIAL-TOOL,TOUCHBIT \?CND3
MOVE REASON,GLOBAL-OBJECTS
PRINTI "Maybe you'll say Doc was angry over that, and hurting the "
PRINTD AIR-SUPPLY-SYSTEM
PRINTI " was his way of getting revenge. But I don't think so. I've reason to think he still loves me.
"
?CND3: PRINTI "Anyhow, if "
FSET? SPECIAL-TOOL,TOUCHBIT \?CND10
PRINTI "you still suspect him, and "
?CND10: PRINTI "you want another slant on what makes him tick, you should talk to his "
PRINTD LAB-ASSISTANT
PRINTR "."""
.FUNCT ZOE-SENDS-MARV,PLACE
PRINTI """Wilco, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "."
ZERO? SIEGEL-OUT-OF-SIGHT \?CND3
PRINTI " I'm afraid he may have seen me going there to put the "
PRINTD BLACK-BOX
PRINTI " on the "
PRINTD SONAR-EQUIPMENT
PRINTI "."
?CND3: MOVE SIEGEL,PLACE
EQUAL? PLACE,COMM-BLDG \?CND8
IN? BLACK-BOX,SONAR-EQUIPMENT \?CND8
FSET SIEGEL,BUSYBIT
CALL QUEUE,I-SIEGEL-REPORTS,4
PUT STACK,0,1
?CND8: PRINTI """"
CRLF
PRINTI "Zoe sends "
PRINTD SIEGEL
PRINTI " into the "
PRINTD PLACE
PRINTR "."
.FUNCT IS-CREW?,PER
EQUAL? PER,LOWELL,ANTRIM,HORVAK /TRUE
EQUAL? PER,SIEGEL,GREENUP /TRUE
RFALSE
.FUNCT CREW-5-TOGETHER?,L
LOC LOWELL >L
LOC ANTRIM
EQUAL? L,STACK \?ELS5
LOC HORVAK
EQUAL? L,STACK \?ELS5
LOC SIEGEL
EQUAL? L,STACK \?ELS5
LOC GREENUP
EQUAL? L,STACK \?ELS5
MOVE CREW,L
RTRUE
?ELS5: REMOVE CREW
RFALSE
.FUNCT ANTRIM-F,ARG=0,OBJ,X,SUB0,SUB1
EQUAL? ARG,M-OBJDESC \?ELS5
IN? ANTRIM,AIRLOCK \?ELS8
CALL DESCRIBE-PERSON,ANTRIM,STR?88
RTRUE
?ELS8: CALL DESCRIBE-COLLAPSE,ANTRIM
RTRUE
?ELS5: EQUAL? WINNER,ANTRIM \?ELS12
CALL GRAB-ATTENTION,ANTRIM
ZERO? STACK /TRUE
EQUAL? PRSA,V?FIX /?THN22
EQUAL? PRSA,V?EXAMINE,V?ANALYZE,V?ADJUST \?ELS19
?THN22: EQUAL? PRSO,CONTROL-CIRCUITS-GAUGE,CONTROL-CIRCUITS,OVERHEATING /?THN24
EQUAL? PRSO,VOLTAGE-REGULATOR,LOCAL-SUB,GLOBAL-SUB \?ELS19
?THN24: ZERO? ANTRIM-CHECKED-SUB /?CND26
PRINTR """I already did that!"""
?CND26: MOVE BLY,HERE
SET 'ASKED-ANTRIM,TRUE-VALUE
CALL I-ANTRIM-TO-SUB,STR?89
PRINTI "But "
PRINTD BLY
PRINTI " has heard your order. ""Please remember, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ","" she says, ""while Mick is working on your "
PRINTD SUB
PRINTI ", it'll be out of action. The "
PRINTD SNARK
PRINTI " may return at any time, and we'll be defenseless! Are you sure you want to repair the "
PRINTD SUB
PRINTI " now?"""
CALL YES?
ZERO? STACK /TRUE
GET ON-SUB,0 >SUB0
GET ON-SUB,1 >SUB1
EQUAL? BAZOOKA,SUB0 \?THN40
EQUAL? DART,SUB1 /TRUE
?THN40: PRINTI """Then why not use the time to arm the "
PRINTD SUB
EQUAL? BAZOOKA,SUB0 /?THN47
EQUAL? DART,SUB1 \?CND44
?THN47: PRINTI " better"
?CND44: PRINTI "?"" Zoe goes on."
CRLF
EQUAL? BAZOOKA,SUB0 /?CND53
CALL TELL-HINT,73,CLAW,FALSE-VALUE
?CND53: EQUAL? DART,SUB1 /?CND56
CALL TELL-HINT,72,DART
?CND56: SET 'BLY-PRIVATELY-DELAY,TRUE-VALUE
PRINTI "
""If you want to consider your options"
PRINTI ", let's go to"
EQUAL? DART,SUB1 /?ELS65
PRINTI " the "
PRINTD DOME-LAB
JUMP ?CND63
?ELS65: EQUAL? BAZOOKA,SUB0 /?CND63
LOC BAZOOKA
CALL PRINTT,STACK
?CND63: PRINTI "."""
CRLF
RTRUE
?ELS19: CALL COM-CHECK,ANTRIM >X
ZERO? X /?ELS75
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS75: CALL PICK-ONE,WHY-ME
PRINT STACK
CRLF
RETURN 2
?ELS12: CALL ASK-ABOUT?,ANTRIM >OBJ
ZERO? OBJ /?ELS90
CALL GRAB-ATTENTION,ANTRIM
ZERO? STACK /TRUE
CALL SAID-TO,ANTRIM
EQUAL? OBJ,GLOBAL-BLY \?ELS98
PRINTR """What a slave driver! Sometimes I call her 'Captain Bly'!"""
?ELS98: CALL COMMON-ASK-ABOUT,ANTRIM,OBJ >X
ZERO? X /?ELS102
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS102: CALL DONT-KNOW,ANTRIM,OBJ
RSTACK
?ELS90: CALL COMMON-OTHER,ANTRIM
ZERO? STACK \TRUE
RFALSE
.FUNCT HORVAK-F,ARG=0,OBJ,X,L
LOC HORVAK >L
EQUAL? ARG,M-OBJDESC \?ELS5
CALL DESCRIBE-COLLAPSE,HORVAK
RSTACK
?ELS5: EQUAL? WINNER,HORVAK \?ELS7
CALL GRAB-ATTENTION,HORVAK
ZERO? STACK /TRUE
EQUAL? PRSA,V?FIX,V?EXAMINE,V?ANALYZE \?ELS14
EQUAL? PRSO,ESCAPE-POD-UNIT,SYRINGE \?ELS14
MOVE SYRINGE,HORVAK
FCLEAR SYRINGE,TAKEBIT
FSET HORVAK,BUSYBIT
CALL QUEUE,I-ANALYSIS,4
PUT STACK,0,1
IN? HORVAK,DOME-LAB /?CND17
MOVE HORVAK,DOME-LAB
PRINTI "He heads for the "
PRINTD DOME-LAB
PRINTI ". "
?CND17: PRINTI "It will take "
PRINTD HORVAK
PRINTI " 4 turns to analyze the chemical contents of"
CALL THE-PRSO-PRINT
PRINTR "."
?ELS14: EQUAL? PRSA,V?TAKE,V?FIX \?ELS25
EQUAL? PRSO,DART \?ELS25
FCLEAR PRSO,NDESCBIT
EQUAL? PRSA,V?TAKE \?ELS32
MOVE PRSO,HORVAK
PRINTR """Okay."""
?ELS32: CALL FIX-DART
RSTACK
?ELS25: EQUAL? PRSO,HORVAK-LOCKER \?ELS42
EQUAL? PRSA,V?OPEN /?THN39
?ELS42: EQUAL? PRSO,HORVAK-KEY \?ELS44
EQUAL? PRSA,V?GIVE /?THN39
?ELS44: EQUAL? PRSI,HORVAK-KEY \?ELS38
EQUAL? PRSA,V?SGIVE \?ELS38
?THN39: SET 'WINNER,PLAYER
CALL PERFORM,V?SEARCH,HORVAK
RTRUE
?ELS38: EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \?ELS48
EQUAL? PRSO,ARTICLE,MAGAZINE \?ELS48
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-ABOUT,HORVAK,MAGAZINE
RTRUE
?ELS48: CALL COM-CHECK,HORVAK >X
ZERO? X /?ELS52
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS52: CALL PICK-ONE,WHY-ME
PRINT STACK
CRLF
RETURN 2
?ELS7: CALL ASK-ABOUT?,HORVAK >OBJ
ZERO? OBJ /?ELS67
CALL GRAB-ATTENTION,HORVAK
ZERO? STACK /TRUE
CALL SAID-TO,HORVAK
EQUAL? OBJ,SPECIAL-TOOL,SPECIAL-TOOL-GLOBAL \?ELS75
ZERO? HORVAK-FIXED-AIR /?ELS80
PRINTI """I found it in the "
PRINTD BLY-OFFICE
PRINTI ", "
CALL PRINT-NAME,FIRST-NAME
PRINTI ", when I ran in there to get her "
PRINTD OXYGEN-GEAR
PRINTR ". I spotted it under her desk."""
?ELS80: CALL DONT-KNOW-ANYTHING
RSTACK
?ELS75: EQUAL? OBJ,BLY,GLOBAL-BLY \?ELS87
IN? REASON,GLOBAL-OBJECTS \?ELS92
PRINTR """It's true. I can't hide my love for her any longer."""
?ELS92: PRINTR """I have no complaints."""
?ELS87: EQUAL? OBJ,HORVAK-LOCKER,HORVAK-KEY \?ELS100
SET 'WINNER,PLAYER
CALL PERFORM,V?SEARCH,HORVAK
RTRUE
?ELS100: EQUAL? OBJ,PHOTO \?ELS102
PRINTR """I took it because I wanted a picture of her."""
?ELS102: EQUAL? OBJ,SYRINGE,ESCAPE-POD-UNIT \?ELS106
ZERO? GREENUP-GUILT /?ELS111
PRINTI """"
CALL PRINT-NAME,FIRST-NAME
PRINTI ", the "
PRINTD SYRINGE
PRINTI " contains a lot of arsenic, and some arsenic is missing from my "
PRINTD CHEMICAL-SUPPLY-SHELVES
PRINTI "! If you'd been jabbed with that "
PRINTD SYRINGE
PRINTR ", you'd be dead!"""
?ELS111: SET 'WINNER,HORVAK
CALL PERFORM,V?ANALYZE,SYRINGE
RTRUE
?ELS106: EQUAL? OBJ,MAGAZINE,ARTICLE \?ELS118
FSET? DART,MUNGBIT \?ELS118
PRINTI "Doc quickly reads the "
PRINTD ARTICLE
PRINTI ", then flashes you an excited glance.
"""
CALL PRINT-NAME,FIRST-NAME
PRINTI ", Thorpe's sea creatures evolved from AMINO-HYDROPHASE. If the Snark's his creation, then I know exactly what drug will tranquilize it! Shall I make some up?"""
CALL YES?
ZERO? STACK /TRUE
CALL FIX-DART
GET ON-SUB,0
EQUAL? BAZOOKA,STACK /TRUE
CALL META-LOC,BLY
EQUAL? STACK,HERE \TRUE
PRINTD BLY
PRINTI " still looks worried. """
CALL PRINT-NAME,FIRST-NAME
PRINTI ", you should have a really high-powered weapon, too. You may run up against an enemy sub, if Thorpe himself is operating around here. Can you think of any device to use as a weapon of last resort?"""
CALL YES?
ZERO? STACK /?CND133
PRINTI """Show me what device you have in mind, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?CND133: FSET? AIR-SUPPLY-SYSTEM,MUNGBIT /TRUE
CALL SAID-TO,TIP
CALL THIS-IS-IT,BAZOOKA
PRINTI "Once again, Tip has an idea."
CRLF
CALL TELL-HINT,71,BAZOOKA
PRINTI """Shall I have it mounted on the other "
PRINTD CLAW
PRINTI " of the "
PRINTD SUB
PRINTI "?"""
CALL YES?
ZERO? STACK /TRUE
CALL MOUNT-WEAPON,BAZOOKA
CALL FINE-SEQUENCE
RTRUE
?ELS118: CALL COMMON-ASK-ABOUT,HORVAK,OBJ >X
ZERO? X /?ELS149
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS149: CALL DONT-KNOW,HORVAK,OBJ
RSTACK
?ELS67: EQUAL? PRSA,V?GIVE \?ELS160
IN? PRSO,PLAYER \?ELS160
EQUAL? PRSI,HORVAK \?ELS160
EQUAL? PRSO,MAGAZINE \?ELS167
MOVE PRSO,HORVAK
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-ABOUT,HORVAK,MAGAZINE
RTRUE
?ELS167: EQUAL? PRSO,SYRINGE \FALSE
MOVE PRSO,HORVAK
PRINTI """Want me to analyze this, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "?"""
CALL YES?
ZERO? STACK /FALSE
SET 'WINNER,HORVAK
CALL PERFORM,V?ANALYZE,SYRINGE
RTRUE
?ELS160: EQUAL? PRSA,V?SEARCH \?ELS178
PRINTR """Certainly not! The contents of my locker are my private property!"""
?ELS178: CALL COMMON-OTHER,HORVAK
ZERO? STACK \TRUE
RFALSE
.FUNCT FIX-DART
FSET? DART,MUNGBIT /?ELS5
PRINTR """Hey, I already did that!"""
?ELS5: MOVE HORVAK,DOME-LAB
MOVE DART,HORVAK
CALL QUEUE,I-SYNTHESIS,5
PUT STACK,0,1
FSET HORVAK,BUSYBIT
PRINTR "This will take 5 turns."
.FUNCT SIEGEL-F,ARG=0,OBJ,X,L
LOC SIEGEL >L
EQUAL? ARG,M-OBJDESC \?ELS5
FSET? SIEGEL,BUSYBIT \?ELS10
CALL DESCRIBE-PERSON,SIEGEL,STR?90
RSTACK
?ELS10: CALL DESCRIBE-COLLAPSE,SIEGEL
RSTACK
?ELS5: EQUAL? WINNER,SIEGEL \?ELS14
CALL GRAB-ATTENTION,SIEGEL
ZERO? STACK /TRUE
EQUAL? PRSA,V?FIX /?THN24
EQUAL? PRSA,V?EXAMINE,V?ANALYZE,V?ADJUST \?ELS21
?THN24: EQUAL? PRSO,SONAR-EQUIPMENT,GLOBAL-SONAR \?ELS21
PRINTI """Right, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ". No doubt you're testing all systems. I'll "
EQUAL? HERE,COMM-BLDG /?CND31
PRINTI "report back and "
?CND31: PRINTI "let you know if the sonar's working okay."""
CRLF
MOVE SIEGEL,COMM-BLDG
FSET SIEGEL,BUSYBIT
CALL QUEUE,I-SIEGEL-REPORTS,4
PUT STACK,0,1
RTRUE
?ELS21: CALL COM-CHECK,SIEGEL >X
ZERO? X /?ELS39
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS39: CALL PICK-ONE,WHY-ME
PRINT STACK
CRLF
RETURN 2
?ELS14: CALL ASK-ABOUT?,SIEGEL >OBJ
ZERO? OBJ /?ELS54
CALL GRAB-ATTENTION,SIEGEL
ZERO? STACK /TRUE
CALL SAID-TO,SIEGEL
EQUAL? OBJ,GLOBAL-SONAR,SONAR-EQUIPMENT,SONAR-MAN \?ELS62
PRINTI """I operate the "
PRINTD SONAR-EQUIPMENT
PRINTR "."""
?ELS62: EQUAL? OBJ,BLACK-BOX \?ELS66
FSET? SIEGEL,BUSYBIT \?ELS71
CALL I-SIEGEL-REPORTS
ZERO? STACK \TRUE
?ELS71: PRINTI """"
CALL SIEGEL-BOX
RTRUE
?ELS66: CALL COMMON-ASK-ABOUT,SIEGEL,OBJ >X
ZERO? X /?ELS79
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS79: CALL DONT-KNOW,SIEGEL,OBJ
RSTACK
?ELS54: CALL COMMON-OTHER,SIEGEL
ZERO? STACK \TRUE
RFALSE
.FUNCT GREENUP-F,ARG=0,OBJ,X,L
LOC GREENUP >L
EQUAL? ARG,M-OBJDESC \?ELS5
ZERO? GREENUP-CUFFED /?ELS10
PRINTR "Greenup is handcuffed to a pipe."
?ELS10: CALL DESCRIBE-COLLAPSE,GREENUP
RSTACK
?ELS5: EQUAL? WINNER,GREENUP \?ELS17
CALL GRAB-ATTENTION,GREENUP
ZERO? STACK /TRUE
CALL MOUNTING-VERB?,ESCAPE-POD-UNIT
ZERO? STACK /?ELS24
FSET? ESCAPE-POD-UNIT,TAKEBIT \?ELS24
CALL INSTALL-ESCAPE-POD-UNIT,GREENUP
RSTACK
?ELS24: CALL COM-CHECK,GREENUP >X
ZERO? X /?ELS28
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS28: CALL PICK-ONE,WHY-ME
PRINT STACK
CRLF
RETURN 2
?ELS17: CALL ASK-ABOUT?,GREENUP >OBJ
ZERO? OBJ /?ELS43
CALL GRAB-ATTENTION,GREENUP
ZERO? STACK /TRUE
CALL SAID-TO,GREENUP
EQUAL? OBJ,SYRINGE,ESCAPE-POD-UNIT \?ELS51
IN? ESCAPE-POD-UNIT,SUB \?ELS51
ZERO? GREENUP-GUILT /?ELS58
FSET? GREENUP,MUNGBIT /?ELS58
CALL PERFORM,V?ARREST,GREENUP
RTRUE
?ELS58: CALL DONT-KNOW-ANYTHING
RTRUE
?ELS51: ZERO? GREENUP-TRAPPED \?THN67
ZERO? GREENUP-CUFFED /?ELS64
?THN67: PRINTR "His only response is a sneer and silence."
?ELS64: CALL COMMON-ASK-ABOUT,GREENUP,OBJ >X
ZERO? X /?ELS72
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS72: CALL DONT-KNOW,GREENUP,OBJ
RSTACK
?ELS43: EQUAL? PRSA,V?ASK \?ELS83
ZERO? GREENUP-TRAPPED /FALSE
CALL PERFORM,V?ASK-ABOUT,GREENUP,MOTIVE
RTRUE
?ELS83: CALL COMMON-OTHER,GREENUP
ZERO? STACK \TRUE
RFALSE
.FUNCT LOWELL-F,ARG=0,OBJ,X,L
LOC LOWELL >L
EQUAL? ARG,M-OBJDESC \?ELS5
CALL DESCRIBE-COLLAPSE,LOWELL
RSTACK
?ELS5: EQUAL? WINNER,LOWELL \?ELS7
CALL GRAB-ATTENTION,LOWELL
ZERO? STACK /TRUE
EQUAL? PRSA,V?FIND \?ELS14
EQUAL? PRSO,DIARY \FALSE
CALL PERFORM,V?ASK-ABOUT,LOWELL,DIARY
RTRUE
?ELS14: CALL MOUNTING-VERB?,ESCAPE-POD-UNIT
ZERO? STACK /?ELS21
FSET? ESCAPE-POD-UNIT,TAKEBIT \?ELS21
CALL INSTALL-ESCAPE-POD-UNIT,LOWELL
RSTACK
?ELS21: CALL COM-CHECK,LOWELL >X
ZERO? X /?ELS25
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS25: CALL PICK-ONE,WHY-ME
PRINT STACK
CRLF
RETURN 2
?ELS7: CALL ASK-ABOUT?,LOWELL >OBJ
ZERO? OBJ /?ELS40
CALL GRAB-ATTENTION,LOWELL
ZERO? STACK /TRUE
CALL SAID-TO,LOWELL
EQUAL? OBJ,HORVAK,GLOBAL-HORVAK \?ELS48
CALL DISCRETION,LOWELL,HORVAK
PRINTI """He's dedicated to scientific research. He's a great marine biologist and enjoys his work here at the "
PRINTD AQUADOME
PRINTI ", or he HAS enjoyed it until recently.
I don't know why, but "
PRINTD HORVAK
PRINTR " has become moody and introverted. I've seen him writing in a private diary."""
?ELS48: EQUAL? OBJ,DIARY \?ELS52
FSET? DIARY,TOUCHBIT /?ELS52
CALL DISCRETION,LOWELL,HORVAK
PRINTI """It's not in the lab. "
PRINTD HORVAK
PRINTR "'s always secretive about his diary. He would never leave it around where anyone might find it. It's probably in his locker, in the crew's dormitory."""
?ELS52: EQUAL? OBJ,LAB-ASSISTANT \?ELS58
PRINTI """I'm "
PRINTD HORVAK
PRINTI "'s "
PRINTD LAB-ASSISTANT
PRINTR "."""
?ELS58: CALL COMMON-ASK-ABOUT,LOWELL,OBJ >X
ZERO? X /?ELS62
EQUAL? X,M-FATAL \TRUE
RFALSE
?ELS62: CALL DONT-KNOW,LOWELL,OBJ
RSTACK
?ELS40: CALL COMMON-OTHER,LOWELL
ZERO? STACK \TRUE
RFALSE
.FUNCT GLOBAL-THORPE-F
EQUAL? PRSA,V?AIM \?ELS9
EQUAL? PRSO,BAZOOKA,DART /FALSE
?ELS9: EQUAL? PRSA,V?ATTACK,V?KILL,V?SHOOT \?ELS5
EQUAL? PRSI,BAZOOKA,DART /FALSE
?ELS5: EQUAL? PRSA,V?TELL-ABOUT \?ELS13
EQUAL? PRSO,PLAYER \?ELS13
IN? MAGAZINE,PLAYER \?ELS20
PRINTI "He is a noted marine biologist.
The "
PRINTD ARTICLE
PRINTI " mentions that he may have created synthetic forms of sea life by genetic engineering.
He can't be located to discuss this. He apparently has gone into hiding to evade the resulting publicity.
He has told close friends he will soon marry an American woman named "
PRINTD SHARON
PRINTR "."
?ELS20: FSET? MAGAZINE,TOUCHBIT \FALSE
PRINTI "Try looking in the "
PRINTD MAGAZINE
PRINTR "."
?ELS13: CALL GLOBAL-PERSON
RSTACK
.FUNCT BRING-ME,WHAT,WHO,L
IN? WHAT,GLOBAL-OBJECTS \?CND1
FSET? WHAT,PERSON \?CND1
GETP WHAT,P?CHARACTER
GET CHARACTER-TABLE,STACK >WHAT
?CND1: CALL META-LOC,WHAT >L
IN? L,ROOMS \?ELS10
CALL FAR-AWAY?,L
ZERO? STACK \?ELS10
FSET? WHAT,PERSON \?ELS16
FSET? WHAT,MUNGBIT /?ELS16
FSET? WHAT,BUSYBIT \?THN13
?ELS16: FSET? WHAT,TAKEBIT \?ELS10
EQUAL? HERE,CRAWL-SPACE,SUB /?ELS10
?THN13: EQUAL? L,HERE \?CND19
FSET? WHAT,PERSON \?CND19
CALL ALREADY,WHAT,STR?50
RTRUE
?CND19: MOVE WHO,HERE
MOVE WHAT,WHO
FCLEAR WHAT,NDESCBIT
FCLEAR WHAT,INVISIBLE
FSET WHAT,TOUCHBIT
EQUAL? L,HERE \?ELS26
PRINTI """Okay."""
JUMP ?CND24
?ELS26: PRINTI """Here is"
CALL PRINTT,WHAT
PRINTI ", "
CALL PRINT-NAME,FIRST-NAME
PRINTI "."" "
?CND24: FSET? WHAT,PERSON \?CND33
MOVE WHAT,HERE
CALL HE-SHE-IT,WHAT,TRUE-VALUE
PRINTI "'s wondering why you want to see "
CALL HIM-HER-IT,WHAT
PRINTI "."
?CND33: CRLF
RTRUE
?ELS10: ZERO? ZOE-MENTIONED-EVIDENCE /?ELS41
EQUAL? WHAT,EVIDENCE /FALSE
?ELS41: PRINTI """Sorry, "
CALL PRINT-NAME,FIRST-NAME
PRINTR ", but I don't think I can."""
.FUNCT CARRY-CHECK,PER
CALL PRINT-CONT,PER,TRUE-VALUE,0
RSTACK
.FUNCT COM-CHECK,PER
CALL GRAB-ATTENTION,PER
ZERO? STACK /TRUE
EQUAL? PRSA,V?ARM \?ELS7
EQUAL? PRSO,GLOBAL-SUB,LOCAL-SUB \FALSE
PRINTI """Good idea, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "! How do you want to do that?"""
?ELS7: EQUAL? PRSA,V?WALK-TO \?ELS16
EQUAL? PRSO,GLOBAL-HERE \FALSE
PRINTI """I am here, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "!"""
?ELS16: EQUAL? PRSO,BAZOOKA,DART \?ELS25
CALL MOUNTING-VERB?,PRSO
ZERO? STACK /?ELS25
SET 'WINNER,PLAYER
CALL PERFORM,PRSA,PRSO,PRSI
RTRUE
?ELS25: EQUAL? PRSA,V?FIND \?ELS29
EQUAL? PRSO,GLOBAL-SNARK \?ELS34
ZERO? MONSTER-GONE /?ELS34
CALL IS-CREW?,PER
ZERO? STACK \?THN37
EQUAL? PER,BLY,GLOBAL-BLY \?ELS34
?THN37: SET 'TOLD-SNARK-WENT,TRUE-VALUE
CALL TELL-HINT,62,SNARK,FALSE-VALUE
RSTACK
?ELS34: RETURN 2
?ELS29: EQUAL? PRSA,V?FIX \?ELS44
EQUAL? PRSO,ARM,GASH \FALSE
FSET? ARM,MUNGBIT \FALSE
EQUAL? WINNER,HORVAK \?ELS56
FCLEAR ARM,MUNGBIT
FSET GASH,INVISIBLE
PRINTD HORVAK
PRINTR " quickly bandages your gash. Your arm is as good as new."
?ELS56: PRINTR """I think Doc can do that better himself."""
?ELS44: EQUAL? PRSA,V?THANKS \?ELS64
RETURN 2
?ELS64: EQUAL? PRSA,V?TAKE /?THN69
EQUAL? PRSA,V?SEND-TO,V?SEND,V?BRING \?ELS68
?THN69: IN? PRSO,PLAYER \?ELS75
SET 'WINNER,PLAYER
CALL PERFORM,V?GIVE,PRSO,PER
RTRUE
?ELS75: FSET? PRSO,TRYTAKEBIT /FALSE
CALL BRING-ME,PRSO,PER
RSTACK
?ELS68: EQUAL? PRSA,V?EXAMINE \?ELS83
SET 'WINNER,PLAYER
CALL PERFORM,V?SHOW,PER,PRSO
RTRUE
?ELS83: EQUAL? PRSA,V?FOLLOW \?ELS85
EQUAL? PRSO,PLAYER \FALSE
PRINTR """If you want me to go somewhere, just say so."""
?ELS85: EQUAL? PRSA,V?GIVE \?ELS94
EQUAL? PRSI,PLAYER \?ELS94
SET 'WINNER,PLAYER
CALL PERFORM,V?TAKE,PRSO,PER
RTRUE
?ELS94: EQUAL? PRSA,V?SGIVE \?ELS98
EQUAL? PRSO,PLAYER \?ELS98
SET 'WINNER,PLAYER
CALL PERFORM,V?TAKE,PRSI,PER
RTRUE
?ELS98: EQUAL? PRSA,V?THROUGH /?THN103
EQUAL? PRSA,V?LEAVE,V?WALK-TO,V?WALK /?THN103
EQUAL? PRSA,V?SGIVE,V?GIVE,V?DROP \?ELS102
?THN103: EQUAL? PER,REMOTE-PERSON /FALSE
RETURN 2
?ELS102: EQUAL? PRSA,V?GOODBYE,V?HELLO \?ELS113
ZERO? PRSO /?THN119
EQUAL? PRSO,PER \FALSE
?THN119: SET 'WINNER,PLAYER
CALL PERFORM,PRSA,PER
RTRUE
?ELS113: EQUAL? PRSA,V?HELP \?ELS122
EQUAL? PRSO,FALSE-VALUE,PLAYER \?ELS127
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK,PER
RTRUE
?ELS127: RETURN 2
?ELS122: EQUAL? PRSA,V?INVENTORY \?ELS133
CALL CARRY-CHECK,PER
ZERO? STACK \TRUE
PRINTD PER
PRINTR " isn't holding anything."
?ELS133: EQUAL? PRSA,V?LISTEN \?ELS140
EQUAL? PRSO,PLAYER-NAME /?THN146
IN? PRSO,GLOBAL-OBJECTS /FALSE
?THN146: PRINTI """I'm trying to, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "!"""
?ELS140: EQUAL? PRSA,V?SHOW \?ELS151
EQUAL? PRSO,PLAYER \FALSE
IN? PRSI,PER \?ELS161
SET 'WINNER,PLAYER
CALL PERFORM,V?TAKE,PRSI,PER
RTRUE
?ELS161: PRINTI """I'm sure you can find "
CALL HIM-HER-IT,PRSI
PRINTI ", "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS151: EQUAL? PRSA,V?TELL \?ELS169
EQUAL? PRSO,PLAYER \FALSE
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK,PER
RTRUE
?ELS169: EQUAL? PRSA,V?TELL-ABOUT \?ELS176
EQUAL? PRSO,PLAYER \FALSE
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-ABOUT,PER,PRSI
RTRUE
?ELS176: EQUAL? PRSA,V?WAIT-FOR \?ELS183
EQUAL? PRSO,PLAYER \?ELS183
SET 'WINNER,PLAYER
CALL PERFORM,V?$CALL,PER
RTRUE
?ELS183: EQUAL? PRSA,V?TALK-ABOUT,V?WHAT \?ELS189
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-ABOUT,PER,PRSO
RTRUE
?ELS189: EQUAL? PRSA,V?NO,V?YES \FALSE
PRINTC 34
EQUAL? PRSA,V?YES \?ELS194
PRINTI "Glad"
JUMP ?CND192
?ELS194: PRINTI "Sorry"
?CND192: PRINTI " to hear it, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
.FUNCT COMMON-ASK-ABOUT,PER,OBJ
EQUAL? OBJ,DEPTH,CREW,CREW-GLOBAL \?ELS5
RETURN 2
?ELS5: EQUAL? OBJ,DEPTHFINDER \?ELS9
RETURN 2
?ELS9: EQUAL? OBJ,GLOBAL-WEAPON,MORE \?ELS13
PRINTI """Ask me about something specific, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS13: EQUAL? OBJ,BAY,GLOBAL-SONAR,SONAR-EQUIPMENT /?THN18
EQUAL? OBJ,GLOBAL-SUB,LOCAL-SUB,CLAW \?ELS17
?THN18: PRINTI """You know more about it than I do, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS17: EQUAL? OBJ,PER \?ELS23
PRINTR """I have no secrets. Anyone can see what I am."""
?ELS23: EQUAL? OBJ,PLAYER \?ELS27
PRINTI """You're "
CALL PRINT-NAME,FIRST-NAME
PRINTI " "
CALL PRINT-NAME,LAST-NAME
PRINTR ", the famous young inventor."""
?ELS27: EQUAL? OBJ,AIRLOCK-ELECTRICITY \?ELS31
PRINTI """It powers the "
PRINTD AIRLOCK-HATCH
PRINTR "."""
?ELS31: EQUAL? OBJ,VIDEOPHONE \?ELS35
CALL GLOBAL-IN?,VIDEOPHONE,HERE
ZERO? STACK /FALSE
SET 'P-WON,FALSE-VALUE
GETP OBJ,P?TEXT
PRINT STACK
CRLF
RTRUE
?ELS35: FSET? OBJ,PERSON /FALSE
GETP OBJ,P?TEXT
EQUAL? STACK,STR?26 \?ELS46
SET 'P-WON,FALSE-VALUE
GETP OBJ,P?TEXT
PRINT STACK
CRLF
RTRUE
?ELS46: EQUAL? OBJ,DIARY \?ELS50
FSET? DIARY,TOUCHBIT \FALSE
PRINTR """I think that it's pretty obvious."""
?ELS50: EQUAL? OBJ,EVIDENCE,BLACK-BOX \?ELS59
CALL SHOULD-ASK,BLY,PER
RSTACK
?ELS59: EQUAL? OBJ,FINE-GRID \?ELS61
CALL SHOULD-ASK,TIP,PER
RSTACK
?ELS61: EQUAL? OBJ,MAGAZINE,ARTICLE \?ELS63
PRINTI """It's a "
PRINTD MAGAZINE
PRINTR " called 'SCIENCE WORLD.'"""
?ELS63: EQUAL? OBJ,CONTROL-CIRCUITS-GAUGE \?ELS67
PRINTI "The "
PRINTD CONTROL-CIRCUITS-GAUGE
PRINTR " is a thermometer for an important part of the engine."
?ELS67: EQUAL? OBJ,OXYGEN-GEAR \?ELS71
PRINTI """Your Dad made the rule about it, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ". Everyone in the "
PRINTD AQUADOME
PRINTI " should carry one at all times, remember?
They're little canisters of oxygen that you can wear around your neck. When you turn the valve, you can suck air through the rubber straw at the top."
IN? OXYGEN-GEAR,SUB \?CND74
PRINTI "
The canister is in the "
PRINTD SUB
PRINTI ", just like in all "
CALL PRINT-NAME,LAST-NAME
PRINTI " submarines."
?CND74: PRINTR """"
?ELS71: IN? OBJ,PER \?ELS82
PRINTI """I have it right here, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS82: EQUAL? OBJ,BLACK-CIRCUITRY,GLOBAL-SABOTAGE /?THN87
EQUAL? OBJ,AIR-SUPPLY-SYSTEM,AIR-SUPPLY-SYSTEM-GLOBAL \?ELS86
?THN87: PRINTR """You know as much as I do."""
?ELS86: EQUAL? OBJ,PRIVATE-MATTER \?ELS92
EQUAL? PER,REMOTE-PERSON \?ELS97
PRINTI """Wait until you see me, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS97: MOVE PRIVATE-MATTER,GLOBAL-OBJECTS
PRINTD PER
PRINTI " says, ""I'm sorry, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ", but that's a "
PRINTD PRIVATE-MATTER
PRINTR "."""
?ELS92: EQUAL? OBJ,PROBLEM /?THN106
ZERO? DEPTH-WARNING /?ELS109
EQUAL? OBJ,DEPTHFINDER-LIGHT,ALARM-SUB /?THN106
?ELS109: ZERO? SONAR-WARNING \?THN112
ZERO? SHIP-WARNING /?ELS105
?THN112: EQUAL? OBJ,SONARSCOPE-LIGHT,ALARM-SUB \?ELS105
?THN106: ZERO? DEPTH-WARNING \?THN119
ZERO? SONAR-WARNING \?THN119
ZERO? SHIP-WARNING /?ELS118
?THN119: PRINTI """I think you're going too close to "
ZERO? DEPTH-WARNING /?ELS127
PUSH STR?93
JUMP ?CND123
?ELS127: PUSH STR?94
?CND123: PRINT STACK
PRINTI ", "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS118: ZERO? DOME-AIR-BAD? /?ELS132
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \?ELS132
CALL BADGES-RED
RTRUE
?ELS132: PRINTD PER
PRINTI " says, ""I don't know, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS105: EQUAL? OBJ,BADGE-GLOBAL,BADGE-GLOBAL-2,BADGE-GLOBAL-3 \?ELS140
PRINTC 34
CALL EXAMINE-BADGE
PRINTR """"
?ELS140: EQUAL? OBJ,GLOBAL-SONAR,SONAR-MAN \?ELS144
PRINTI """"
PRINTD SIEGEL
PRINTI " operates the "
PRINTD SONAR-EQUIPMENT
PRINTR "."""
?ELS144: EQUAL? OBJ,LAB-ASSISTANT \?ELS148
PRINTI """"
PRINTD LOWELL
PRINTI " is "
PRINTD HORVAK
PRINTI "'s "
PRINTD LAB-ASSISTANT
PRINTR "."""
?ELS148: EQUAL? OBJ,ALARM \?ELS152
ZERO? ALARM-RINGING /FALSE
CALL WHY-NOT-VP
RSTACK
?ELS152: EQUAL? OBJ,SYRINGE,ESCAPE-POD-UNIT,GLOBAL-GREENUP \?ELS160
ZERO? GREENUP-GUILT /?ELS165
PRINTI """I never suspected "
PRINTD GREENUP
PRINTI " of being a "
PRINTD TRAITOR
PRINTI "."""
CRLF
IN? GREENUP,HERE \TRUE
FSET? GREENUP,MUNGBIT /TRUE
CALL PERFORM,V?ARREST,GREENUP
RTRUE
?ELS165: EQUAL? OBJ,SYRINGE,ESCAPE-POD-UNIT \FALSE
PRINTI """Maybe "
PRINTD HORVAK
PRINTR " can analyze it."""
?ELS160: FSET? ARM,MUNGBIT \?ELS179
EQUAL? OBJ,ARM,GASH \?ELS179
PRINTI """That looks pretty serious, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?ELS179: CALL IS-CREW?,PER
ZERO? STACK \?THN186
EQUAL? PER,BLY \FALSE
?THN186: EQUAL? OBJ,ELECTROLYTE-RELAY \?ELS192
ZERO? SUB-IN-DOME /?ELS192
PRINTI """It belongs in the "
PRINTD EMPTY-SPACE
PRINTR "."""
?ELS192: EQUAL? OBJ,SPECIAL-TOOL-GLOBAL,SPECIAL-TOOL \?ELS198
ZERO? SUB-IN-DOME /?ELS198
FSET? SPECIAL-TOOL,INVISIBLE /?THN204
FSET? ELECTROLYTE-RELAY,MUNGBIT \?CND201
?THN204: PRINTI """The "
PRINTD SPECIAL-TOOL
PRINTR " should be on that hook."""
?CND201: PRINTI """I'm sure glad "
ZERO? HORVAK-FIXED-AIR /?ELS212
EQUAL? PRSO,HORVAK \?ELS216
PRINTI "I"
JUMP ?CND210
?ELS216: PRINTI "Doc"
JUMP ?CND210
?ELS212: PRINTI "you"
?CND210: PRINTI " fixed the "
PRINTD AIR-SUPPLY-SYSTEM
PRINTI ", "
CALL PRINT-NAME,FIRST-NAME
PRINTR "!"""
?ELS198: EQUAL? OBJ,GLOBAL-SNARK \FALSE
ZERO? MONSTER-GONE /FALSE
SET 'TOLD-SNARK-WENT,TRUE-VALUE
CALL TELL-HINT,62,SNARK,FALSE-VALUE
RSTACK
.FUNCT SHOULD-ASK,WHO,PER=0
ZERO? PER /?CND1
PRINTD PER
PRINTI " says, "
?CND1: PRINTI """I think you should ask "
PRINTD WHO
PRINTR " about that."""
.FUNCT COMMON-OTHER,PER,LPER=0
IN? PER,GLOBAL-OBJECTS \?ELS3
GETP PER,P?CHARACTER
GET CHARACTER-TABLE,STACK >LPER
JUMP ?CND1
?ELS3: SET 'LPER,PER
?CND1: EQUAL? PRSA,V?ASK /FALSE
EQUAL? PRSA,V?EXAMINE \?ELS12
CALL CARRY-CHECK,LPER
ZERO? STACK \TRUE
GETP LOCAL-SUB,P?TEXT
PRINT STACK
CRLF
RTRUE
?ELS12: EQUAL? PRSI,LPER \?ELS19
IN? PRSO,PLAYER \?ELS19
EQUAL? PRSO,BADGE-PLAYER /?ELS19
EQUAL? PRSA,V?GIVE \?ELS19
MOVE PRSO,LPER
PRINTI """Hey, thanks, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "!"""
?ELS19: EQUAL? PRSO,PER \?ELS25
EQUAL? PRSA,V?HELP \?ELS25
ZERO? DOME-AIR-BAD? /?ELS32
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \?ELS32
PRINTI "It would help more to fix the "
PRINTD AIR-SUPPLY-SYSTEM
PRINTR "."
?ELS32: IN? PER,GLOBAL-OBJECTS /FALSE
PRINTD PER
PRINTR " looks offended. ""I'm quite capable by myself, you know."""
?ELS25: EQUAL? PRSO,PER \?ELS42
EQUAL? PRSA,V?RUB \?ELS42
PRINTD PER
PRINTR " looks bewildered. ""What are you trying to do?"""
?ELS42: EQUAL? PRSO,PER \FALSE
EQUAL? PRSA,V?SHOW \FALSE
CALL PERFORM,V?ASK-ABOUT,PRSO,PRSI
RTRUE
.FUNCT DESCRIBE-COLLAPSE,PER
FSET? BLY,MUNGBIT \?ELS5
EQUAL? PER,TIP \?ELS10
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \?ELS15
CALL DESCRIBE-PERSON,PER,STR?95
RSTACK
?ELS15: CALL DESCRIBE-PERSON,PER
RSTACK
?ELS10: EQUAL? PER,BLY,LOWELL,GREENUP \?ELS19
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \?ELS24
CALL DESCRIBE-PERSON,PER,STR?96
RSTACK
?ELS24: CALL DESCRIBE-PERSON,PER,STR?97
RSTACK
?ELS19: FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \?ELS33
ZERO? BADGES-RED-SAID? /?ELS38
CALL DESCRIBE-PERSON,PER,STR?98
RSTACK
?ELS38: CALL DESCRIBE-PERSON,PER,STR?95
RSTACK
?ELS33: CALL DESCRIBE-PERSON,PER
RSTACK
?ELS5: CALL DESCRIBE-PERSON,PER
RSTACK
.FUNCT DESCRIBE-PERSON,PER,STR=0
CALL IS-CREW?,PER
ZERO? STACK /?ELS5
CALL CREW-5-TOGETHER?
ZERO? STACK /?ELS5
FSET? BLY,MUNGBIT /?ELS5
EQUAL? PER,LOWELL \FALSE
PRINTI "The five "
PRINTD CREW
PRINTR " members are here."
?ELS5: PRINTD PER
PRINTI " is "
ZERO? STR \?ELS23
PUSH STR?50
JUMP ?CND19
?ELS23: PUSH STR
?CND19: PRINT STACK
PRINTR "."
.FUNCT DISCRETION,P1,P2,P3=0
CALL META-LOC,P2
EQUAL? HERE,STACK \?ELS5
ZERO? P3 /?ELS5
CALL META-LOC,P3
EQUAL? HERE,STACK \?ELS5
PRINTD P1
PRINTI " looks briefly toward "
PRINTD P2
PRINTI " and "
PRINTD P3
PRINTR " and then speaks in a whisper."
?ELS5: CALL META-LOC,P2
EQUAL? HERE,STACK \?ELS11
PRINTD P1
PRINTI " looks briefly toward "
PRINTD P2
PRINTR " and then speaks in a whisper."
?ELS11: ZERO? P3 /FALSE
CALL META-LOC,P3
EQUAL? HERE,STACK \FALSE
PRINTD P1
PRINTI " looks briefly toward "
PRINTD P3
PRINTR " and then speaks in a whisper."
.FUNCT DONT-KNOW,CHAR,OBJ
PRINTD CHAR
PRINTI " says, ""I don't think that's important right now, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
.FUNCT GLOBAL-PERSON,L
EQUAL? PRSA,V?WHAT,V?WALK-TO /FALSE
EQUAL? PRSA,V?WAIT-FOR,V?PHONE,V?LOOK-UP /FALSE
EQUAL? PRSA,V?FOLLOW,V?FIND,V?ARREST /FALSE
EQUAL? PRSA,V?EXAMINE \?ELS9
FSET? PRSO,PERSON \?ELS9
GETP PRSO,P?CHARACTER
GET CHARACTER-TABLE,STACK >L
ZERO? L /?ELS9
CALL CORRIDOR-LOOK,L
ZERO? STACK \FALSE
CALL NOT-HERE,PRSO
RSTACK
?ELS9: EQUAL? PRSA,V?TELL-ABOUT,V?TELL,V?REPLY /?THN21
EQUAL? PRSA,V?HELLO,V?ASK-FOR,V?ASK-ABOUT \?ELS18
?THN21: ZERO? PRSO /?ELS18
FSET? PRSO,PERSON \?ELS18
IN? PRSO,GLOBAL-OBJECTS /?ELS18
EQUAL? PRSA,V?REPLY \FALSE
SET 'PRSA,V?TELL
RFALSE
?ELS18: EQUAL? PRSA,V?TELL-ABOUT,V?ASK-ABOUT \?ELS27
ZERO? PRSI /?ELS27
FSET? PRSI,PERSON \?ELS27
IN? PRSI,GLOBAL-OBJECTS \?ELS27
GETP PRSI,P?CHARACTER
GET CHARACTER-TABLE,STACK
CALL PERFORM,PRSA,PRSO,STACK
RTRUE
?ELS27: SET 'P-CONT,FALSE-VALUE
EQUAL? PRSA,V?TELL-ABOUT,V?ASK-ABOUT /?THN35
ZERO? NOW-PRSI \?ELS34
?THN35: PRINTD PRSO
JUMP ?CND32
?ELS34: ZERO? PRSI /?ELS40
PRINTD PRSI
JUMP ?CND32
?ELS40: PRINTD WINNER
?CND32: CALL NOT-HERE-PERSON,PRSO
RTRUE
.FUNCT NOT-HERE-PERSON,PER,L,?TMP1
FSET? PER,PERSON \?ELS3
GETP PER,P?CHARACTER
GET CHARACTER-TABLE,STACK
LOC STACK >L
JUMP ?CND1
?ELS3: LOC PER >L
?CND1: ZERO? L /?ELS10
GETP HERE,P?CORRIDOR >?TMP1
GETP L,P?CORRIDOR
BAND ?TMP1,STACK
EQUAL? 0,STACK /?ELS10
PRINTI " isn't close enough"
CALL SPEAKING-VERB?
ZERO? STACK /?CND15
PRINTI " to hear you"
?CND15: PRINTR "."
?ELS10: PRINTR " isn't here!"
.FUNCT INHABITED?,RM
CALL POPULATION,RM
ZERO? STACK /FALSE
RTRUE
.FUNCT POPULATION,RM,NOT1=0,NOT2=0,CNT=0,OBJ
FIRST? RM >OBJ /?CND1
RETURN CNT
?CND1:
?PRG4: FSET? OBJ,PERSON \?ELS8
FSET? OBJ,INVISIBLE /?ELS8
ZERO? NOT1 /?THN11
EQUAL? OBJ,NOT1 /?ELS8
?THN11: ZERO? NOT2 /?THN13
EQUAL? OBJ,NOT2 /?ELS8
?THN13: INC 'CNT
JUMP ?CND6
?ELS8: FSET? OBJ,CONTBIT \?CND6
CALL POPULATION,OBJ,NOT1,NOT2
ADD CNT,STACK >CNT
?CND6: NEXT? OBJ >OBJ /?KLU20
?KLU20: ZERO? OBJ \?PRG4
RETURN CNT
.ENDI