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

1135 lines
26 KiB
Plaintext

.FUNCT I-ALARM-RINGING
CALL IN-LAB?,HERE
ZERO? STACK /FALSE
PRINTI "The "
PRINTD ALARM
PRINTR " continues to ring."
.FUNCT GRAB-ATTENTION,X,OBJ=0
CALL BAD-AIR?
ZERO? STACK \FALSE
FSET? X,BUSYBIT \?ELS7
CALL TOO-BAD-BUT,X,STR?195
RFALSE
?ELS7: ZERO? SNARK-ATTACK-COUNT /TRUE
CALL DONT-KNOW,X,OBJ
RFALSE
.FUNCT TELL-HINT,CARDNUM,OBJ,CR?=1
ZERO? CR? /?CND1
CRLF
?CND1: PRINTI "(If you want a clue, find Infocard #"
DIV CARDNUM,10
PRINTN STACK
PRINTI " in your "
PRINTD GAME
PRINTI " package. Read hidden clue #"
MOD CARDNUM,10
PRINTN STACK
PRINTI " and put """
PRINTD OBJ
PRINTR """ in the blank space.)"
.FUNCT I-LAMP-ON-SCOPE
CALL GLOBAL-IN?,VIDEOPHONE,HERE
ZERO? STACK /?ELS5
ZERO? ALARM-RINGING /FALSE
FSET? VIDEOPHONE,ONBIT /FALSE
CALL QUEUE,I-LAMP-ON-SCOPE,7
PUT STACK,0,1
CALL TELL-HINT,82,VIDEOPHONE
RSTACK
?ELS5: ZERO? SUB-IN-TANK /FALSE
CALL QUEUE,I-LAMP-ON-SCOPE,1
PUT STACK,0,1
RFALSE
.FUNCT I-SEND-SUB
FSET? VIDEOPHONE,ONBIT \FALSE
ZERO? WOMAN-ON-SCREEN \FALSE
CALL TELL-HINT,81,LOCAL-SUB
RSTACK
.FUNCT TIP-FOLLOWS-YOU,RM
ZERO? TIP-FOLLOWS-YOU? /FALSE
CALL IN-LAB?,RM
ZERO? STACK /?ELS7
CALL IN-LAB?,OLD-HERE
ZERO? STACK \FALSE
?ELS7: CALL IN-TANK-AREA?,RM
ZERO? STACK /?ELS11
CALL IN-TANK-AREA?,OLD-HERE
ZERO? STACK \FALSE
?ELS11: EQUAL? RM,CRAWL-SPACE /FALSE
EQUAL? OLD-HERE,RM /FALSE
SET 'OLD-HERE,RM
IN? MICROPHONE,TIP \?ELS20
MOVE MICROPHONE,CENTER-OF-LAB
JUMP ?CND18
?ELS20: IN? MICROPHONE-DOME,TIP \?CND18
MOVE MICROPHONE-DOME,COMM-BLDG
?CND18: LOC TIP
EQUAL? RM,SUB,STACK /?CND23
FCLEAR TIP,TOUCHBIT
?CND23: MOVE TIP,RM
RTRUE
.FUNCT I-SHARON-GONE,L
ZERO? MONSTER-GONE \?CND1
CALL QUEUE,I-SHARON-GONE,4
RFALSE
?CND1: CALL META-LOC,SHARON >L
REMOVE SHARON
CALL ROB,SHARON,GLOBAL-SHARON
FCLEAR FILE-DRAWER,NDESCBIT
FCLEAR PAPERS,NDESCBIT
CALL SHARON-PASSES-YOU?,L
ZERO? STACK /FALSE
CALL SUDDENLY-SHARON,L
PRINTI "really must go now, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ". I'll see you later."""
CRLF
EQUAL? HERE,OFFICE \TRUE
PRINTI "She leaves through the "
PRINTD OFFICE-DOOR
PRINTR "."
.FUNCT ROB,WHAT,THIEF,N,X
FIRST? WHAT >X /?KLU6
?KLU6:
?PRG1: ZERO? X /TRUE
NEXT? X >N /?KLU7
?KLU7: MOVE X,THIEF
FCLEAR X,TAKEBIT
SET 'X,N
JUMP ?PRG1
.FUNCT SUDDENLY-SHARON,L
PRINTI "
Suddenly Sharon "
EQUAL? L,HERE /?ELS5
PRINTI "passes by and says"
JUMP ?CND3
?ELS5: PRINTI "leaves, saying"
?CND3: PRINTI ", ""I "
RTRUE
.FUNCT I-SHARON-TO-HALLWAY,L
CALL QUEUE,I-SHARON-TO-HALLWAY,0
CALL META-LOC,SHARON >L
MOVE SHARON,HALLWAY
CALL SHARON-PASSES-YOU?,L
ZERO? STACK /?CND1
CALL SUDDENLY-SHARON,L
PRINTI "must go back to my office now, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "."""
CRLF
?CND1: CALL I-SHARON,G-REACHED
RSTACK
.FUNCT I-SHARON,GARG=0,L
LOC SHARON >L
EQUAL? GARG,G-REACHED \FALSE
EQUAL? L,HALLWAY \FALSE
MOVE SHARON,OFFICE
FSET SHARON,NDESCBIT
FSET FILE-DRAWER,NDESCBIT
FSET PAPERS,NDESCBIT
FSET? VIDEOPHONE,ONBIT \FALSE
FCLEAR VIDEOPHONE,ONBIT
FSET VIDEOPHONE,MUNGBIT
CALL PHONE-OFF
SET 'SHARON-BROKE-CIRCUIT,TRUE-VALUE
FSET CIRCUIT-BREAKER,MUNGBIT
FSET CIRCUIT-BREAKER,OPENBIT
SET 'MONSTER-GONE,TRUE-VALUE
CALL IN-LAB?,HERE
ZERO? STACK /?CND16
CRLF
PRINTI "Something's wrong! The picture vanished from your "
PRINTD VIDEOPHONE
PRINTI " screen, and the sound conked out!
"
CALL TIP-SAYS
PRINTI "That's strange! Maybe you should use the "
PRINTD COMPUTESTOR
PRINTI "."""
CRLF
?CND16: CALL SCORE-UPD,-3
RTRUE
.FUNCT TIP-SAYS,QUIET=0
PRINTI "Tip s"
IN? TIP,HERE \?ELS5
PRINTI "ays"
JUMP ?CND3
?ELS5: PRINTI "houts"
?CND3: ZERO? QUIET /?CND12
PRINTI " quietly"
?CND12: PRINTI ", """
RTRUE
.FUNCT NOT-NOW?,BLY?=1
ZERO? BLY? /?ELS5
ZERO? BLY-PRIVATELY-DELAY \TRUE
?ELS5: FSET? BLY,MUNGBIT /TRUE
ZERO? GREENUP-ESCAPE \TRUE
EQUAL? HERE,CRAWL-SPACE,SUB /TRUE
RFALSE
.FUNCT I-BLY-PRIVATELY
ZERO? SNARK-ATTACK-COUNT \FALSE
CALL READY-FOR-SNARK?
ZERO? STACK \FALSE
ZERO? ZOE-MENTIONED-EVIDENCE \FALSE
CALL NOT-NOW?
ZERO? STACK /?CND11
SET 'BLY-PRIVATELY-DELAY,FALSE-VALUE
CALL QUEUE,I-BLY-PRIVATELY,7
RFALSE
?CND11: SET 'BLY-PRIVATELY-DELAY,TRUE-VALUE
MOVE PRIVATE-MATTER,GLOBAL-OBJECTS
CRLF
PRINTI "Suddenly "
PRINTD BLY
PRINTI " "
CALL META-LOC,BLY
EQUAL? STACK,HERE /?CND16
MOVE BLY,HERE
PRINTI "comes over and "
?CND16: ZERO? BLY-PRIVATELY-COUNT \?ELS23
PRINTI "say"
JUMP ?CND21
?ELS23: PRINTI "repeat"
?CND21: PRINTI "s, """
CALL PRINT-NAME,FIRST-NAME
PRINTI ", can we discuss a "
PRINTD PRIVATE-MATTER
PRINTI " now?"""
INC 'BLY-PRIVATELY-COUNT
CALL YES?
ZERO? STACK \?CND32
CALL QUEUE,I-BLY-PRIVATELY,7
RFALSE
?CND32: CALL ASK-BLY-ABOUT-PRIVATE-MATTER
RTRUE
.FUNCT I-BLY-SAYS,ASKED?=0,L
ZERO? ASKED? /?ELS3
CALL QUEUE,I-BLY-SAYS,0
JUMP ?CND1
?ELS3: CALL READY-FOR-SNARK?
ZERO? STACK \FALSE
CALL NOT-NOW?
ZERO? STACK /?CND1
SET 'BLY-PRIVATELY-DELAY,FALSE-VALUE
CALL QUEUE,I-BLY-SAYS,7
RFALSE
?CND1: SET 'BLY-PRIVATELY-DELAY,TRUE-VALUE
CALL META-LOC,BLY >L
ZERO? ASKED? \?THN14
EQUAL? L,BLY-OFFICE \?ELS13
EQUAL? L,HERE \?ELS13
?THN14: ZERO? ASKED? \?CND18
CRLF
?CND18: PRINTI """"
CALL PRINT-NAME,FIRST-NAME
PRINTI ","" says Zoe, ""we could be in danger! The Snark may attack again any time! Would you answer some questions?"""
CALL YES?
ZERO? STACK \?CND23
ZERO? ASKED? \TRUE
CALL QUEUE,I-BLY-SAYS,3
PUT STACK,0,1
RFALSE
?CND23: PRINTI """Can you use the "
PRINTD SUB
PRINTI " to hunt the "
PRINTD GLOBAL-SNARK
PRINTI ", instead of waiting for it to attack?"""
CALL YES?
ZERO? STACK /?CND34
PRINTI """Do you wish to arm the "
PRINTD SUB
PRINTI " for attacking?"""
CALL YES?
ZERO? STACK /?CND34
CALL TELL-HINT,73,CLAW,FALSE-VALUE
CALL TELL-HINT,72,DART
EQUAL? HERE,DOME-LAB /?CND39
PRINTI "
""If you want to think it over, we should go to the "
PRINTD DOME-LAB
PRINTI ". Shall we go now?"""
CALL YES?
ZERO? STACK /?CND34
PRINTI """Okay, let's go.""
"
IN? BLACK-BOX,BLY \?CND52
MOVE BLACK-BOX,HERE
?CND52: SET 'WINNER,PLAYER
CALL GOTO,DOME-LAB
ZERO? STACK /?CND39
MOVE BLY,DOME-LAB
?CND39:
?CND34: RETURN 2
?ELS13: CALL QUEUE,I-BLY-SAYS,3
PUT STACK,0,1
RFALSE
.FUNCT I-TIP-SAYS
EQUAL? TIP-SAYS-2,MAGAZINE \?ELS5
FSET? MAGAZINE,TOUCHBIT /FALSE
?ELS5: ZERO? TIP-SAYS-1 /FALSE
CALL META-LOC,MAGAZINE
EQUAL? STACK,SUB,CRAWL-SPACE \FALSE
CALL TELL-HINT,TIP-SAYS-1,TIP-SAYS-2
RSTACK
.FUNCT I-TIP-SONAR-PLAN,P
FSET? TIP,BUSYBIT \?ELS3
CALL QUEUE,I-TIP-SONAR-PLAN,3
RFALSE
?ELS3: ZERO? SNARK-ATTACK-COUNT \?THN6
CALL READY-FOR-SNARK?
ZERO? STACK /?CND1
?THN6: CALL QUEUE,I-TIP-SONAR-PLAN,0
RFALSE
?CND1: CALL FIND-FLAG,HERE,PERSON,PLAYER >P
ZERO? P \?ELS12
CALL TIP-COMES
RSTACK
?ELS12: EQUAL? P,TIP \?ELS14
REMOVE PLAYER
CALL FIND-FLAG,HERE,PERSON,TIP >P
MOVE PLAYER,HERE
CALL TIP-COMES,P
RSTACK
?ELS14: CALL TIP-COMES,TRUE-VALUE
RSTACK
.FUNCT MIKE-1-F,OBJ,FOO=0
ZERO? FOO \?ELS5
PRINTI """Is "
PRINTD OBJ
PRINTI " a suspect?"""
RTRUE
?ELS5: PRINTI """Do you think "
PRINTD OBJ
PRINTI " could be the "
PRINTD TRAITOR
PRINTI "?"""
RTRUE
.FUNCT TIP-COMES,ALMOST=0
ZERO? SIEGEL-TESTED \FALSE
FSET? SIEGEL,BUSYBIT /FALSE
ZERO? GREENUP-ESCAPE \FALSE
ZERO? GREENUP-TRAPPED \FALSE
ZERO? GREENUP-CUFFED \FALSE
EQUAL? HERE,SUB,CRAWL-SPACE /?THN12
FSET? TIP,BUSYBIT \?ELS11
?THN12: CALL QUEUE,I-TIP-SONAR-PLAN,3
RFALSE
?ELS11: ZERO? ALMOST /?CND1
MOVE TIP,HERE
CALL INT,I-TIP-SONAR-PLAN
GET STACK,1 >ALMOST
GRTR? ALMOST,-1 /?THN20
SUB 0,ALMOST
MOD STACK,7
EQUAL? STACK,2 \FALSE
?THN20: CALL TIP-SAYS,TRUE-VALUE
CALL PRINT-NAME,FIRST-NAME
PRINTI ", I'd like to talk with you alone."""
CRLF
GRTR? ALMOST,-1 \TRUE
CALL QUEUE,I-TIP-SONAR-PLAN,-1
RTRUE
?CND1: CALL QUEUE,I-TIP-SONAR-PLAN,0
CRLF
ZERO? BLACK-BOX-EXAMINED \?CND29
CALL TELL-HINT,11,BLACK-BOX
?CND29: MOVE TIP,HERE
CALL TIP-SAYS,TRUE-VALUE
CALL PRINT-NAME,FIRST-NAME
PRINTI ", did "
PRINTD BLY
PRINTI " mention any troublemakers among the "
PRINTD CREW
PRINTI "?"""
CALL YES?
ZERO? STACK /TRUE
PRINTI """Do you suspect "
PRINTD ANTRIM
PRINTI " or "
PRINTD HORVAK
PRINTI " or "
PRINTD SIEGEL
PRINTI "?"""
CALL YES?
ZERO? STACK /TRUE
PRINTI """Marv maintains the "
PRINTD SONAR-EQUIPMENT
PRINTI ","" "
CALL TIP-SAYS
PRINTI "and we'll need it to warn us if the "
PRINTD SNARK
PRINTI " comes back. Didn't Zoe say something is wrong with it?"""
CALL YES?
ZERO? STACK /TRUE
PRINTI """"
CALL PRINT-NAME,FIRST-NAME
PRINTI ", do you think someone tampered with it?"""
CALL YES?
ZERO? STACK /TRUE
PRINTI """Does Marv suspect you've discovered signs of tampering?"""
CALL YES?
ZERO? STACK \TRUE
CALL THIS-IS-IT,TIP-IDEA
PRINTI """Then I have an idea how to trap Marv and find out if he's the "
PRINTD TRAITOR
PRINTI "!"""
CRLF
RTRUE
.FUNCT REACTION-MAY-BE,PER
PRINTD PER
PRINTI "'s reaction may be all you need to prove he's NOT the "
PRINTD TRAITOR
PRINTR ". But you'll have to decide for yourself."
.FUNCT SIEGEL-BOX
PRINTR "It will modulate the sonar's ultrasonic pulses!"""
.FUNCT I-SIEGEL-REPORTS
ZERO? DOME-AIR-BAD? /?CND1
CALL QUEUE,I-SIEGEL-REPORTS,3
PUT STACK,0,1
RFALSE
?CND1: FCLEAR SIEGEL,BUSYBIT
IN? SIEGEL,COMM-BLDG \FALSE
CALL MOVE-HERE-NOT-SUB,SIEGEL
IN? BLACK-BOX,SONAR-EQUIPMENT /?CND8
PRINTI "Suddenly "
PRINTD SIEGEL
PRINTI " reports: ""The "
PRINTD SONAR-EQUIPMENT
PRINTI " looks okay to me, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "."""
?CND8: EQUAL? HERE,COMM-BLDG \?ELS15
PRINTI "Suddenly "
PRINTD SIEGEL
PRINTI " turns to you"
JUMP ?CND13
?ELS15: IN? TIP,HERE \?CND20
CALL TIP-SAYS
CALL PRINT-NAME,FIRST-NAME
PRINTI ", here comes Marv, and he looks excited!""
"
?CND20: PRINTI "Marv comes running up to you"
?CND13: PRINTI " with the "
PRINTD BLACK-BOX
PRINTI " and says: ""Look"
MOVE BLACK-BOX,SIEGEL
ZERO? SIEGEL-TESTED /?ELS31
PRINTI "! I found the same "
PRINTD BLACK-BOX
PRINTI " on the "
PRINTD SONAR-EQUIPMENT
PRINTR " again!"""
?ELS31: SET 'SIEGEL-TESTED,TRUE-VALUE
PRINTI " what I found attached to the "
PRINTD SONAR-EQUIPMENT
PRINTI ", "
CALL PRINT-NAME,FIRST-NAME
PRINTI "! "
CALL SIEGEL-BOX
IN? TIP,HERE \TRUE
CALL TIP-FLASHES
CALL REACTION-MAY-BE,SIEGEL
PRINTI "
Tip snaps his fingers and says: """
CALL PRINT-NAME,FIRST-NAME
PRINTI "! Didn't that article in the "
PRINTD MAGAZINE
PRINTI " say "
PRINTD THORPE
PRINTI "'s synthetic sea creatures reacted to ultrasonic pulses in a special way?"""
CALL QUEUE,I-TIP-PRIVATELY,1
PUT STACK,0,1
CALL YES?
ZERO? STACK /?ELS46
PRINTR """That's what I thought."""
?ELS46: PRINTI """I think you should check that."""
CRLF
RTRUE
.FUNCT I-TIP-PRIVATELY
CALL READY-FOR-SNARK?
ZERO? STACK \?THN4
ZERO? ANTRIM-CHECKED-SUB /?ELS3
?THN4: CALL QUEUE,I-TIP-PRIVATELY,0
RFALSE
?ELS3: FSET? TIP,BUSYBIT \?CND1
CALL QUEUE,I-TIP-PRIVATELY,3
PUT STACK,0,1
RFALSE
?CND1: MOVE TIP,HERE
CRLF
PRINTI "Tip draws you aside. ""Could I speak to you privately, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "?"""
CALL YES?
ZERO? STACK \?CND10
CALL QUEUE,I-TIP-PRIVATELY,3
PUT STACK,0,1
RFALSE
?CND10: PRINTI """The Snark could be a synthetic monster created by "
PRINTD THORPE
PRINTI "!"" he says when you're alone. ""I read about them in that "
PRINTD MAGAZINE
PRINTI ". If I'm right, whoever attached the "
PRINTD BLACK-BOX
PRINTI " to the "
PRINTD SONAR-EQUIPMENT
PRINTI " could be working for Thorpe! That way the "
PRINTD GLOBAL-SNARK
PRINTI " would be lured into attacking the "
PRINTD AQUADOME
PRINTI "! Do you agree, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "?"""
CALL YES?
ZERO? STACK \?CND15
PRINT RECONSIDER?
PRINTI """"
CRLF
?CND15: CALL MIKE-1-F,ANTRIM,TRUE-VALUE
CALL YES?
ZERO? STACK \?ELS22
PRINT RECONSIDER?
PRINTI " In fact "
JUMP ?CND20
?ELS22: PRINTI """Then "
?CND20: PRINTI "why not test him"
ZERO? SIEGEL-TESTED /?CND31
PRINTI ", since you tested "
PRINTD SIEGEL
?CND31: PRINTI "?"" Tip asks. ""Mick is a laser expert in charge of maintenance on subs at the "
PRINTD AQUADOME
PRINTI "."""
CRLF
IN? PRIVATE-MATTER,GLOBAL-OBJECTS \?CND39
CALL TELL-HINT,12,OVERHEATING,FALSE-VALUE
ZERO? REGULATOR-MSG-SEEN /?CND39
CALL TELL-HINT,43,ANTRIM,FALSE-VALUE
?CND39: CALL TELL-HINT,22,ANTRIM,FALSE-VALUE
RSTACK
.FUNCT I-ANTRIM-TO-SUB,STR=0
CALL READY-FOR-SNARK?
ZERO? STACK \FALSE
ZERO? ANTRIM-CHECKED-SUB \FALSE
ZERO? STR /?ELS8
JUMP ?CND1
?ELS8: CALL NOT-NOW?,FALSE-VALUE
ZERO? STACK /?CND1
CALL QUEUE,I-ANTRIM-TO-SUB,3
RFALSE
?CND1: FSET? VOLTAGE-REGULATOR,MUNGBIT \?ELS14
CALL QUEUE,I-ANTRIM-REPORTS,9
PUT STACK,0,1
JUMP ?CND12
?ELS14: CALL QUEUE,I-ANTRIM-REPORTS,19
PUT STACK,0,1
?CND12: SET 'ANTRIM-CHECKED-SUB,TRUE-VALUE
IN? BLY,HERE \?CND17
SET 'BLY-HEARD-ANTRIM,TRUE-VALUE
?CND17: FSET ANTRIM,BUSYBIT
ZERO? STR /?ELS22
PRINT STR
JUMP ?CND20
?ELS22: PRINTI "
Suddenly "
PRINTD ANTRIM
IN? ANTRIM,HERE /?CND30
PRINTI " appears and"
?CND30: PRINTI " says, ""I'm going to check out your new "
PRINTD SUB
PRINTI ", "
?CND20: CALL PRINT-NAME,FIRST-NAME
PRINTI "!"" Mick turns and "
MOVE ANTRIM,CRAWL-SPACE
FSET ENGINE-ACCESS-HATCH,OPENBIT
EQUAL? HERE,SUB,CRAWL-SPACE \?ELS43
PRINTR "goes to work."
?ELS43: EQUAL? HERE,AIRLOCK \?ELS47
PRINTI "climbs aboard the "
PRINTD SUB
PRINTR "."
?ELS47: PRINTI "hurries toward the "
PRINTD AIRLOCK
PRINTR "."
.FUNCT TIP-FLASHES
IN? TIP,HERE \FALSE
ZERO? TIP-FLASHED /?CND4
PRINTI "Once again "
?CND4: SET 'TIP-FLASHED,TRUE-VALUE
PRINTI "Tip flashes you a meaningful glance. "
RTRUE
.FUNCT I-ANTRIM-REPORTS
ZERO? DOME-AIR-BAD? /?CND1
CALL QUEUE,I-ANTRIM-REPORTS,3
RFALSE
?CND1: FCLEAR ANTRIM,BUSYBIT
CALL MOVE-HERE-NOT-SUB,ANTRIM
CRLF
ZERO? ASKED-ANTRIM /?ELS8
PRINTD ANTRIM
PRINTI " reports back "
EQUAL? HERE,SUB,AIRLOCK \?ELS14
PRINTI "to you"
JUMP ?CND12
?ELS14: PRINTI "from the "
PRINTD AIRLOCK
?CND12: FSET? VOLTAGE-REGULATOR,MUNGBIT \?ELS23
PRINTI ".
""I think I found your "
PRINTD OVERHEATING
PRINTI " problem. The "
PRINTD VOLTAGE-REGULATOR
PRINTI " was making the lasers overcharge.
I've adjusted it, but I could replace it. Want me to?"""
CALL YES?
ZERO? STACK /?CND6
FCLEAR VOLTAGE-REGULATOR,MUNGBIT
JUMP ?CND6
?ELS23: PRINTI ", looking somewhat puzzled.
"""
CALL PRINT-NAME,FIRST-NAME
PRINTI ", I ran the "
PRINTD ENGINE
PRINTI " on full, but it didn't overheat.
The "
PRINTD VOLTAGE-REGULATOR
PRINTI " PROBABLY got out of adjustment and overcharged the lasers, but it seems okay now. Just to be safe, I installed a new "
PRINTD VOLTAGE-REGULATOR
PRINTI ".
"
JUMP ?CND6
?ELS8: ZERO? BLY-HEARD-ANTRIM \?THN38
LOC BLY
EQUAL? HERE,SUB,BLY-OFFICE,STACK \?ELS37
?THN38: PRINTI "Suddenly "
JUMP ?CND35
?ELS37: CALL MOVE-HERE-NOT-SUB,BLY
PRINTD BLY
PRINTI " is approaching.
"""
CALL PRINT-NAME,FIRST-NAME
PRINTI ", did you send "
PRINTD ANTRIM
PRINTI " to work on the "
PRINTD SUB
PRINTI "?"" she asks. ""I was just "
EQUAL? HERE,BLY-OFFICE /?CND46
PRINTI "in my office, "
?CND46: PRINTI "checking the "
PRINTD STATION-MONITOR
PRINTI " to see what each of the crew was doing, and I discovered Mick had gone to the "
PRINTD AIRLOCK
PRINTI ". When I saw him on the "
PRINTD STATION-MONITOR
PRINTI ", he had just come out of the "
PRINTD SUB
PRINTI "'s hatch.
Wait -- here he is now!""
"
?CND35: PRINTI "Mick appears and says, ""I thought maybe you had a problem on the way here, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ", so I wanted to check on it. Everything seems to be okay now."""
CRLF
?CND6: CALL TIP-FLASHES
FSET? VOLTAGE-REGULATOR,MUNGBIT \?ELS57
SET 'TEST-BUTTON-READOUT,TEST-BUTTON-NORMAL
PRINTI "It now looks as though "
PRINTD ANTRIM
PRINTI " can be eliminated as the "
PRINTD TRAITOR
PRINTI ", but you'll want to confirm this by pushing the "
PRINTD TEST-BUTTON
PRINTI " before you set out again in the "
PRINTD SUB
PRINTI ".
"
JUMP ?CND55
?ELS57: CALL REACTION-MAY-BE,ANTRIM
?CND55: FCLEAR VOLTAGE-REGULATOR,MUNGBIT
CALL READY-FOR-SNARK?
ZERO? STACK \TRUE
IN? ESCAPE-POD-UNIT,SUB /TRUE
CRLF
PRINTD ANTRIM
PRINTI " turns away, then stops and says:
"""
CALL PRINT-NAME,FIRST-NAME
PRINTI ", there's no "
PRINTD ESCAPE-POD-UNIT
PRINTI " under your seats in the "
PRINTD SUB
PRINTI ". I hear you're planning a new type of unit for the Ultramarine Bioceptor. But the standard unit will fit, and we have one in the "
PRINTD DOME-STORAGE
PRINTI ".
Would you like one installed, just in case? "
PRINTD GREENUP
PRINTI " and "
PRINTD LOWELL
PRINTI " could do it in a few minutes. Shall I tell 'em to?"""
CALL YES?
ZERO? STACK /?CND70
CALL META-LOC,LOWELL
MOVE ANTRIM,STACK
CALL INSTALL-ESCAPE-POD-UNIT,ANTRIM
RTRUE
?CND70: PRINTR """I sure hope you don't need it."""
.FUNCT INSTALL-ESCAPE-POD-UNIT,PER,X=0,?TMP1
PRINTI """Okay"
LOC LOWELL >?TMP1
LOC GREENUP
EQUAL? HERE,?TMP1,STACK \?CND3
PRINTI ", we'll install it"
?CND3: PRINTI "."""
CRLF
LOC SYRINGE
EQUAL? STACK,LOWELL,GREENUP,ESCAPE-POD-UNIT \?CND10
SET 'X,TRUE-VALUE
?CND10: ZERO? X /?ELS17
LOC ESCAPE-POD-UNIT
EQUAL? STACK,LOWELL,GREENUP,DOME-STORAGE \?ELS17
CALL SCORE-OBJ,ESCAPE-POD-UNIT
MOVE GREENUP,SUB
MOVE LOWELL,SUB
FSET GREENUP,BUSYBIT
FSET LOWELL,BUSYBIT
MOVE ESCAPE-POD-UNIT,LOWELL
MOVE SYRINGE,GREENUP
FSET SYRINGE,MUNGBIT
CALL QUEUE,I-LOWELL-REPORTS,12
PUT STACK,0,1
RTRUE
?ELS17: PRINTI "But "
CALL HE-SHE-IT,PER
MOVE PER,HERE
PRINTI " returns a moment later and says, ""We can't find the "
ZERO? X /?ELS28
PRINTD ESCAPE-POD-UNIT
JUMP ?CND26
?ELS28: PRINTD SYRINGE
?CND26: PRINTR "."""
.FUNCT I-LOWELL-REPORTS
CALL NOT-NOW?,FALSE-VALUE
ZERO? STACK /?CND1
CALL QUEUE,I-LOWELL-REPORTS,3
RFALSE
?CND1: MOVE ESCAPE-POD-UNIT,SUB
FCLEAR ESCAPE-POD-UNIT,TAKEBIT
FSET ESCAPE-POD-UNIT,OPENBIT
MOVE SYRINGE,ESCAPE-POD-UNIT
SET 'TEST-BUTTON-READOUT,TEST-BUTTON-POD
MOVE GREENUP,HERE
MOVE LOWELL,HERE
FCLEAR GREENUP,BUSYBIT
FCLEAR LOWELL,BUSYBIT
PRINTI "
Suddenly "
PRINTD GREENUP
PRINTI " and "
PRINTD LOWELL
PRINTI " report back from the "
EQUAL? HERE,AIRLOCK \?ELS8
PRINTD SUB
JUMP ?CND6
?ELS8: PRINTD AIRLOCK
?CND6: CALL SAID-TO,LOWELL
PRINTI ".
""That "
PRINTD ESCAPE-POD-UNIT
PRINTI " is in place, "
CALL PRINT-NAME,FIRST-NAME
PRINTR ","" says Amy. ""Bill installed the part under your pilot's seat, and I installed the rest."""
.FUNCT I-ANALYSIS
FCLEAR HORVAK,BUSYBIT
FSET SYRINGE,TAKEBIT
CALL MOVE-HERE-NOT-SUB,HORVAK
ZERO? STACK /?ELS5
CRLF
FSET? SYRINGE,MUNGBIT /?ELS10
PRINTI "Suddenly "
PRINTD HORVAK
PRINTI " appears. ""I couldn't find anything unusual about the "
PRINTD SYRINGE
PRINTR "."""
?ELS10: SET 'GREENUP-GUILT,TRUE-VALUE
PRINTD HORVAK
PRINTI "'s face is grim and pale as he reports the result of his analysis.
"
CALL PERFORM,V?ASK-ABOUT,HORVAK,SYRINGE
IN? TIP,HERE \FALSE
PRINTI "
Tip turns to you with a gasp. ""Holy smoke, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "! That's exactly what would have happened once you warmed up the pilot's seat enough to trigger the sensor relay!"""
?ELS5: CALL QUEUE,I-ANALYSIS,2
RFALSE
.FUNCT I-SYNTHESIS
FCLEAR HORVAK,BUSYBIT
MOVE DART,HORVAK
FCLEAR DART,TRYTAKEBIT
FSET DART,TAKEBIT
FCLEAR DART,NDESCBIT
FCLEAR DART,MUNGBIT
CALL THIS-IS-IT,DART
CALL SAID-TO,HORVAK
PRINTI "Doc Horvak "
CALL MOVE-HERE-NOT-SUB,HORVAK,STR?197,STR?198
PRINTI " holding an aquatic dart gun. "
IN? HORVAK,HERE /?CND5
PRINTI "He shouts from outside, "
?CND5: PRINTI """Okay, "
CALL PRINT-NAME,FIRST-NAME
PRINTI ", I've made a special 'trank' to use against an A.H.-type organism! It's loaded in the dart gun. What shall I do with it?"""
CRLF
CALL SCORE-OBJ,DART
RTRUE
.FUNCT MOVE-HERE-NOT-SUB,PER,HERE-STR=0,NOT-HERE-STR=0
IN? PER,HERE \?CND1
ZERO? HERE-STR /TRUE
PRINT HERE-STR
RTRUE
?CND1: LOC PER
CALL THROUGH-ROOF?,STACK
ZERO? STACK /?CND10
FSET AIRLOCK-ROOF,OPENBIT
?CND10: EQUAL? PER,SHARON \?CND15
FCLEAR SHARON,NDESCBIT
FCLEAR FILE-DRAWER,NDESCBIT
FCLEAR PAPERS,NDESCBIT
?CND15: ZERO? NOT-HERE-STR /?CND18
PRINT NOT-HERE-STR
?CND18: EQUAL? HERE,CRAWL-SPACE,SUB \?ELS28
ZERO? SUB-IN-TANK /?ELS31
MOVE PER,NORTH-TANK-AREA
RFALSE
?ELS31: MOVE PER,AIRLOCK
RFALSE
?ELS28: MOVE PER,HERE
RTRUE
.FUNCT I-GREENUP-ESCAPE
CALL QUEUE,I-GREENUP-ESCAPE,-1
PUT STACK,0,1
INC 'GREENUP-ESCAPE
EQUAL? 3,GREENUP-ESCAPE \?ELS3
MOVE GREENUP,AIRLOCK
CRLF
PRINTI "Greenup has reached the top of the wall and is climbing down the ladder into the "
PRINTD AIRLOCK
PRINTI ". In a moment he'll reach the floor and head for the "
PRINTD SUB
PRINTI "."
CRLF
RFALSE
?ELS3: EQUAL? 4,GREENUP-ESCAPE \?ELS7
CRLF
PRINTI "Greenup is scrambling aboard the "
PRINTD SUB
PRINTI ". Tip groans. ""There's no way to stop him now, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "! All he has to do is open the "
PRINTD AIRLOCK-HATCH
PRINTI " and shove off!"""
CRLF
CALL TELL-HINT,52,AIRLOCK-ELECTRICITY,FALSE-VALUE
RTRUE
?ELS7: EQUAL? 9,GREENUP-ESCAPE \FALSE
FCLEAR AIRLOCK-ROOF,OPENBIT
FSET AIRLOCK-HATCH,OPENBIT
SET 'AIRLOCK-FULL,TRUE-VALUE
CALL QUEUE,I-SNARK-ATTACKS,1
PRINTI "
Better not raise any false hopes. As the "
PRINTD SUB
PRINTI " glides out, a pall of gloom settles over the "
PRINTD AQUADOME
PRINTI ". All hands sense that there's little hope, that Greenup has scuttled their last chance of fighting off another attack by the "
PRINTD GLOBAL-SNARK
PRINTI ".
A "
PRINTD VIDEOPHONE
PRINTI " call to "
PRINTD IU-GLOBAL
PRINTI " confirms that no other subs are available for a rescue expedition, even if there were time. And a general S.O.S. to any craft in the vicinity isn't answered."
CALL FINISH
RFALSE
.FUNCT GREENUP-CUFF
SET 'GREENUP-ESCAPE,0
SET 'GREENUP-TRAPPED,FALSE-VALUE
CALL QUEUE,I-GREENUP-ESCAPE,0
MOVE GREENUP,GALLEY
FSET GREENUP,MUNGBIT
SET 'GREENUP-CUFFED,TRUE-VALUE
PRINTI "Knowing he's trapped, "
PRINTD GREENUP
PRINTI " gives up without a fight. "
PRINTD BLY
PRINTI " orders him handcuffed to a pipe in the "
PRINTD GALLEY
PRINTI "."
CRLF
CALL SCORE-OBJ,GLOBAL-GREENUP
RTRUE
.FUNCT I-POISON-JAB
EQUAL? HERE,SUB \FALSE
IN? ESCAPE-POD-UNIT,SUB \FALSE
FSET? SYRINGE,MUNGBIT \FALSE
IN? SYRINGE,ESCAPE-POD-UNIT \FALSE
CRLF
PRINTI "A sudden jab in your right buttock makes you realize that the "
PRINTD SYRINGE
PRINTI " in the "
PRINTD ESCAPE-POD-UNIT
PRINTI " has been activated, even though no alarm sounded.
You realize that the "
PRINTD SYRINGE
PRINTI " did NOT contain a stimulant. Instead of feeling more alert, you're already feeling doomed.
The truth is that you have been fatally poisoned, and the promising career of a brilliant young inventor will be cut short.
An investigation into your death would reveal that the "
PRINTD ESCAPE-POD-UNIT
PRINTI " under your seat had been tampered with.
A body-heat sensor had been substituted for the electronic monitor, and a wire was connected from the sensor to the "
PRINTD SYRINGE
PRINTI ". The stimulant in the "
PRINTD SYRINGE
PRINTI " had been replaced with arsenic stolen from the "
PRINTD CHEMICAL-SUPPLY-SHELVES
PRINTI " of the "
PRINTD DOME-LAB
PRINTI ".
As soon as you heated up your pilot's seat, the sensor triggered the "
PRINTD SYRINGE
PRINTI ", and it injected you with the poison.
Most regrettable!"
CALL FINISH
RSTACK
.FUNCT I-TIP-REPORTS,B,D
FSET? BLY,MUNGBIT \?CND1
CALL QUEUE,I-TIP-REPORTS,3
RFALSE
?CND1: EQUAL? HERE,CRAWL-SPACE \?ELS8
MOVE TIP,SUB
JUMP ?CND6
?ELS8: MOVE TIP,HERE
?CND6: FCLEAR TIP,BUSYBIT
SET 'TIP-FOLLOWS-YOU?,TRUE-VALUE
SET 'FINE-SONAR,TRUE-VALUE
MOVE FINE-GRID,SUB
FCLEAR FINE-GRID,TAKEBIT
CALL TIP-SAYS
PRINTI "All set, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "! The "
PRINTD FINE-GRID
PRINTI " is installed on both the "
PRINTD SONARSCOPE
PRINTI " and the "
PRINTD THROTTLE
GET ON-SUB,0
EQUAL? BAZOOKA,STACK /?PRD13
PUSH 0
JUMP ?PRD14
?PRD13: PUSH 1
?PRD14: SET 'B,STACK
GET ON-SUB,1
EQUAL? DART,STACK /?PRD15
PUSH 0
JUMP ?PRD16
?PRD15: PUSH 1
?PRD16: SET 'D,STACK
ZERO? B \?THN20
ZERO? D /?CND17
?THN20: PRINTI " -- and so "
ZERO? B /?ELS26
ZERO? D /?ELS26
PRINTI "are"
JUMP ?CND24
?ELS26: PRINTI "is"
?CND24: ZERO? D /?CND35
PRINTI " the "
PRINTD DART
?CND35: ZERO? B /?CND41
ZERO? D /?CND41
PRINTI " and"
?CND41: ZERO? B /?CND17
PRINTI " the "
PRINTD BAZOOKA
?CND17: PRINTI "! Let's shove off and find the "
PRINTD GLOBAL-SNARK
PRINTR "!"""
.FUNCT USE-FEWER-TURNS
PRINTI "
(You'll probably do better if you restart and use fewer turns next time.)"
RTRUE
.FUNCT I-SNARK-ATTACKS
ZERO? SNARK-ATTACK-COUNT \?CND1
ZERO? SUB-IN-DOME \?ELS6
EQUAL? JOYSTICK-DIR,P?SE /?THN10
LESS? SUB-LON,0 \?ELS18
SUB 0,SUB-LON
JUMP ?CND14
?ELS18: PUSH SUB-LON
?CND14: LESS? SONAR-RANGE,STACK /?CND7
LESS? SUB-LAT,0 \?ELS25
SUB 0,SUB-LAT
JUMP ?CND21
?ELS25: PUSH SUB-LAT
?CND21: LESS? SONAR-RANGE,STACK /?CND7
?THN10: CALL QUEUE,I-SNARK-ATTACKS,3
RFALSE
?CND7: PRINTI "A call comes on the "
EQUAL? HERE,SUB,CRAWL-SPACE \?ELS32
PRINTD SONARPHONE
JUMP ?CND30
?ELS32: PRINTD VIDEOPHONE
?CND30: PRINTI " from the "
PRINTD AQUADOME
PRINTI ": the "
PRINTD GLOBAL-SNARK
PRINTI " is attacking and destroying it! You're too late!"
CALL USE-FEWER-TURNS
CALL FINISH
JUMP ?CND1
?ELS6: CALL QUEUE,I-SNARK-ATTACKS,-1
PUT STACK,0,1
?CND1: INC 'SNARK-ATTACK-COUNT
EQUAL? 1,SNARK-ATTACK-COUNT \?ELS47
MOVE SIEGEL,COMM-BLDG
MOVE TIP,HERE
PRINTI "
Suddenly an alarm rings through the "
PRINTD AQUADOME
PRINTI "! "
PRINTD SIEGEL
PRINTI " yells over the squawk box:
""Now hear this! Two blips have appeared on the "
PRINTD SONAR-EQUIPMENT
PRINTI "! No definite form, but they're large, and they're coming closer."
PRINTI """
"
CALL TIP-SAYS
PRINTI "One of them must be the "
PRINTD GLOBAL-SNARK
PRINTI "!"" "
EQUAL? HERE,SUB,CRAWL-SPACE,AIRLOCK \?ELS57
FSET? AIRLOCK-HATCH,OPENBIT \?CND55
FCLEAR AIRLOCK-HATCH,OPENBIT
PRINTI "The "
PRINTD AIRLOCK-HATCH
PRINTI " closes in defense."
JUMP ?CND55
?ELS57: CALL GLOBAL-IN?,WINDOW,HERE
ZERO? STACK /?ELS67
PRINTI """Look out the "
JUMP ?CND65
?ELS67: PRINTI """Let's find a "
?CND65: PRINTD WINDOW
PRINTI ", "
CALL PRINT-NAME,FIRST-NAME
PRINTI "!"""
?CND55: CRLF
RETURN 2
?ELS47: EQUAL? 2,SNARK-ATTACK-COUNT \?ELS79
PRINTI "
Even as you try this, the undersea nightmare takes shape!
""Holy spaghetti! LOOK at that thing!"" cries Tip.
A hideous creature, with bulblike eyes near its snout, rears out of the murk, its tentacles flailing the "
PRINTD GLOBAL-WATER
PRINTI "! In this moment of terror, the "
PRINTD GLOBAL-SNARK
PRINTI " seems as big as a house, and it's just outside the "
PRINTD AQUADOME
PRINTI "!"
CRLF
RETURN 2
?ELS79: EQUAL? 3,SNARK-ATTACK-COUNT \FALSE
PRINTI "
No more time for that! The "
PRINTD SNARK
PRINTI " has flopped down on the "
PRINTD AQUADOME
PRINTI "! There's a sound like thunder as the plastic hemisphere cracks under the impact! The crew's screams of fear are drowned by the roar of the sea!
The Atlantic Ocean is pouring into the "
PRINTD AQUADOME
PRINTI "! And your last thought, before a zillion tons of "
PRINTD GLOBAL-WATER
PRINTI " crushes you to jelly, is ""Oh gosh! I wonder if I shut off the Bunsen burner in the lab?"""
CALL USE-FEWER-TURNS
CALL FINISH
RSTACK
.ENDI