mirror of
https://github.com/historicalsource/seastalker
synced 2024-04-26 22:19:38 +03:00
1135 lines
26 KiB
Plaintext
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
|