mirror of
https://github.com/historicalsource/seastalker.git
synced 2026-01-11 23:22:43 +00:00
1413 lines
37 KiB
Plaintext
1413 lines
37 KiB
Plaintext
|
|
|
|
.FUNCT AQUADOME-F
|
|
EQUAL? PRSA,V?WHAT,V?FIND /?THN6
|
|
EQUAL? PRSA,V?ASK-ABOUT \?ELS5
|
|
FSET? PRSO,PERSON \?ELS5
|
|
?THN6: EQUAL? NOW-TERRAIN,SEA-TERRAIN \?ELS14
|
|
EQUAL? HERE,SUB \?ELS14
|
|
CALL PERFORM,V?FIND,PLAYER
|
|
RTRUE
|
|
?ELS14: ZERO? SUB-IN-OPEN-SEA /?ELS18
|
|
PRINTI "Its location is stored in the "
|
|
PRINTD AUTO-PILOT
|
|
PRINTR "'s computer memory."
|
|
?ELS18: ZERO? SUB-IN-DOME \FALSE
|
|
EQUAL? NOW-TERRAIN,SEA-TERRAIN /FALSE
|
|
PRINTI """The "
|
|
PRINTD AQUADOME
|
|
PRINTI " encloses the "
|
|
PRINT URS
|
|
PRINTI " of "
|
|
PRINTD IU-GLOBAL
|
|
PRINTI ", on the ocean floor off the Atlantic coast. Most "
|
|
CALL PRINT-NAME,LAST-NAME
|
|
PRINTI " subs can reach it by "
|
|
PRINTD AUTO-PILOT
|
|
PRINTR "."""
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS29
|
|
LESS? DISTANCE-FROM-BAY,AQUADOME-VISIBLE /?ELS29
|
|
SET 'P-WON,FALSE-VALUE
|
|
GETP LOCAL-SUB,P?TEXT
|
|
PRINT STACK
|
|
CRLF
|
|
RTRUE
|
|
?ELS29: EQUAL? PRSA,V?LOOK-OUTSIDE,V?LOOK-INSIDE \?ELS35
|
|
CALL PERFORM,PRSA,WINDOW
|
|
RTRUE
|
|
?ELS35: EQUAL? PRSA,V?THROUGH \?ELS37
|
|
EQUAL? HERE,SUB,CRAWL-SPACE \FALSE
|
|
PRINTR "Wait until you're close enough."
|
|
?ELS37: EQUAL? PRSA,V?WALK-AROUND \?ELS46
|
|
CALL GO-NEXT,IN-DOME-AROUND
|
|
ZERO? STACK /TRUE
|
|
EQUAL? WINNER,PLAYER /TRUE
|
|
CALL OKAY
|
|
RTRUE
|
|
?ELS46: EQUAL? PRSA,V?WALK-TO \FALSE
|
|
ZERO? SUB-IN-DOME /?ELS58
|
|
PRINTR "You're in it!"
|
|
?ELS58: ZERO? SUB-IN-OPEN-SEA /?ELS63
|
|
PRINTI "Let the "
|
|
PRINTD AUTO-PILOT
|
|
PRINTR " handle that."
|
|
?ELS63: PRINTR "First you must reach the open sea."
|
|
|
|
|
|
.FUNCT IN-DOME?,RM
|
|
EQUAL? RM,SUB,CRAWL-SPACE \?ELS5
|
|
RETURN SUB-IN-DOME
|
|
?ELS5: CALL ZMEMQ,RM,IN-DOME-AROUND
|
|
ZERO? STACK /FALSE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT AIR-ROOM?,RM
|
|
EQUAL? RM,FOOT-OF-RAMP,AIRLOCK,AIRLOCK-WALL /TRUE
|
|
EQUAL? RM,CENTER-OF-DOME,OUTSIDE-ADMIN-BLDG /TRUE
|
|
EQUAL? RM,BLY-OFFICE,SUB /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT THROUGH-ROOF?,RM,HR=0
|
|
ZERO? HR \?CND1
|
|
SET 'HR,HERE
|
|
?CND1: EQUAL? HR,SUB,CRAWL-SPACE,AIRLOCK \?ELS8
|
|
EQUAL? RM,SUB,CRAWL-SPACE,AIRLOCK /FALSE
|
|
RTRUE
|
|
?ELS8: EQUAL? RM,SUB,CRAWL-SPACE,AIRLOCK /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT WINDOW-F,POP
|
|
EQUAL? PRSA,V?BRUSH \?ELS5
|
|
PRINTR "The window is clean enough without your interference."
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
|
|
PRINTR "The window is a simple plastic sheet, giving a view of the dome outside."
|
|
?ELS9: EQUAL? PRSA,V?LOOK-OUTSIDE,V?LOOK-INSIDE \?ELS13
|
|
ZERO? SNARK-ATTACK-COUNT \?ELS18
|
|
PRINTR "You can see the dome outside."
|
|
?ELS18: MOVE BLY,HERE
|
|
PRINTI "The "
|
|
PRINTD AQUADOME
|
|
PRINTI "'s search lights probe the ocean, but the "
|
|
PRINTD GLOBAL-WATER
|
|
PRINTI " is too murky for the beams to penetrate.
|
|
""Tip's right!"" "
|
|
PRINTD BLY
|
|
PRINTI " says. ""That must be the "
|
|
PRINTD SNARK
|
|
PRINTI " out there. Its tentacles churned up silt from the seabed that way during its first attack, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTR "!"""
|
|
?ELS13: EQUAL? PRSA,V?MUNG \?ELS26
|
|
PRINTR "Vandalism is for vandals, not famous inventors!"
|
|
?ELS26: EQUAL? PRSA,V?UNLOCK /?THN31
|
|
EQUAL? PRSA,V?LOCK,V?CLOSE,V?OPEN \FALSE
|
|
?THN31: PRINTR "The window can't be opened."
|
|
|
|
|
|
.FUNCT EXERCISE-TRACK-F
|
|
EQUAL? PRSA,V?WALK-TO,V?THROUGH,V?FIND \FALSE
|
|
ZERO? SUB-IN-DOME /FALSE
|
|
PRINTR "You don't need exercise!"
|
|
|
|
|
|
.FUNCT AIRLOCK-F,RARG=0
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
ZERO? GREENUP-ESCAPE \?THN11
|
|
ZERO? GREENUP-TRAPPED /FALSE
|
|
?THN11: MOVE LOWELL,HERE
|
|
MOVE ANTRIM,HERE
|
|
PRINTR "Two of the crew are with you."
|
|
?ELS5: EQUAL? RARG,M-LOOK \?ELS16
|
|
PRINTI "You're now in the "
|
|
PRINTD AIRLOCK
|
|
PRINTR ", at the foot of the ramp."
|
|
?ELS16: ZERO? RARG \FALSE
|
|
CALL REMOTE-VERB?
|
|
ZERO? STACK /?ELS23
|
|
EQUAL? PRSA,V?WALK-TO,V?THROUGH \FALSE
|
|
?ELS23: ZERO? SUB-IN-DOME \?ELS27
|
|
CALL SUB-OUTSIDE-AIRLOCK?
|
|
ZERO? STACK \?ELS27
|
|
CALL NOT-HERE,AIRLOCK
|
|
RSTACK
|
|
?ELS27: EQUAL? PRSA,V?EMPTY \?ELS31
|
|
ZERO? AIRLOCK-FULL \?ELS36
|
|
CALL ALREADY,AIRLOCK,STR?65
|
|
RSTACK
|
|
?ELS36: FSET? AIRLOCK-HATCH,OPENBIT \?ELS38
|
|
CALL YOU-CANT,FALSE-VALUE,AIRLOCK-HATCH,STR?21
|
|
RSTACK
|
|
?ELS38: EQUAL? HERE,SUB,CRAWL-SPACE /?THN41
|
|
EQUAL? HERE,BLY-OFFICE,FOOT-OF-RAMP \FALSE
|
|
?THN41: CALL QUEUE,I-AIRLOCK-EMPTY,2
|
|
PUT STACK,0,1
|
|
PRINTR "This will take 1 turn."
|
|
?ELS31: EQUAL? PRSA,V?FILL \?ELS46
|
|
ZERO? AIRLOCK-FULL /?ELS49
|
|
CALL ALREADY,AIRLOCK,STR?66
|
|
RTRUE
|
|
?ELS49: FSET? AIRLOCK-ELECTRICITY,ONBIT /?ELS52
|
|
CALL YOU-CANT,FALSE-VALUE,AIRLOCK-ELECTRICITY,STR?39
|
|
RTRUE
|
|
?ELS52: CALL AIRLOCK-POP?
|
|
ZERO? STACK /?CND47
|
|
CALL YOU-CANT,FALSE-VALUE,AIRLOCK,STR?67
|
|
RTRUE
|
|
?CND47: ZERO? GREENUP-ESCAPE \?CND55
|
|
FSET? SUB-DOOR,OPENBIT \?CND58
|
|
CALL YOU-CANT,FALSE-VALUE,SUB-DOOR,STR?21
|
|
RTRUE
|
|
?CND58: FSET? AIRLOCK-ROOF,OPENBIT \?CND55
|
|
CALL THIS-IS-IT,AIRLOCK-ROOF
|
|
PRINTI "A safety mechanism prevents it. The "
|
|
PRINTD AIRLOCK-ROOF
|
|
PRINTR " is open!"
|
|
?CND55: ZERO? GREENUP-ESCAPE /?ELS70
|
|
GRTR? 4,GREENUP-ESCAPE \?ELS70
|
|
PRINTI "Greenup is frantically scrambling back up the ladder to avoid being swept off and drowned! "
|
|
CALL GREENUP-CUFF
|
|
PRINTI "Tip immediately empties the "
|
|
PRINTD AIRLOCK
|
|
PRINTR " again."
|
|
?ELS70: EQUAL? HERE,SUB,CRAWL-SPACE /?THN79
|
|
EQUAL? HERE,BLY-OFFICE,FOOT-OF-RAMP \FALSE
|
|
?THN79: CALL QUEUE,I-AIRLOCK-EMPTY,2
|
|
PUT STACK,0,1
|
|
PRINTR "This will take 1 turn."
|
|
?ELS46: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS84
|
|
CALL PERFORM,PRSA,AIRLOCK-HATCH
|
|
RTRUE
|
|
?ELS84: EQUAL? PRSA,V?WALK-TO,V?THROUGH \FALSE
|
|
ZERO? SUB-IN-DOME \?CND87
|
|
EQUAL? HERE,SUB,CRAWL-SPACE \?CND87
|
|
CALL TOO-BAD-BUT,PRSO,STR?16
|
|
RTRUE
|
|
?CND87: SET 'PRSO,AIRLOCK
|
|
CALL CHEERS?
|
|
RFALSE
|
|
|
|
|
|
.FUNCT CHEERS?
|
|
EQUAL? WINNER,PLAYER \FALSE
|
|
CALL ZMEMQ,HERE,IN-DOME-AROUND
|
|
ZERO? STACK /FALSE
|
|
EQUAL? HERE,AIRLOCK,AIRLOCK-WALL /FALSE
|
|
CALL READY-FOR-SNARK?
|
|
ZERO? STACK /FALSE
|
|
PRINTI "Cheers follow as you start up the ladder into the "
|
|
PRINTD AIRLOCK
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT I-AIRLOCK-EMPTY
|
|
ZERO? AIRLOCK-FULL /?ELS5
|
|
FSET? AIRLOCK-HATCH,OPENBIT /FALSE
|
|
SET 'AIRLOCK-FULL,FALSE-VALUE
|
|
CRLF
|
|
PRINTI "The "
|
|
PRINTD AIRLOCK
|
|
PRINTI " is now clear of "
|
|
PRINTD GLOBAL-WATER
|
|
PRINTI " and filled with air at sea-level pressure."
|
|
FSET? ENGINE,ONBIT \?CND12
|
|
FCLEAR ENGINE,ONBIT
|
|
PRINTI " The engine shuts off."
|
|
?CND12: FSET AIRLOCK-ROOF,OPENBIT
|
|
CALL THIS-IS-IT,SUB-DOOR
|
|
CRLF
|
|
PRINTI "The roof of the "
|
|
PRINTD AIRLOCK
|
|
PRINTI " is sliding open, and the "
|
|
PRINTD SUB
|
|
PRINTI " is in dry dock.
|
|
A ramp swings down from the top of the "
|
|
PRINTD AIRLOCK
|
|
PRINTI "'s north wall to your "
|
|
PRINTD SUB-DOOR
|
|
PRINTI "."
|
|
CRLF
|
|
RETURN 2
|
|
?ELS5: SET 'AIRLOCK-FULL,TRUE-VALUE
|
|
CRLF
|
|
PRINTI "The "
|
|
PRINTD AIRLOCK
|
|
PRINTI " is now filled with "
|
|
PRINTD GLOBAL-WATER
|
|
PRINTI "."
|
|
CRLF
|
|
ZERO? SUB-IN-DOME /FALSE
|
|
PRINTI "The adjustable cradle then releases the "
|
|
PRINTD SUB
|
|
PRINTR "'s keel from its grip."
|
|
|
|
|
|
.FUNCT GREENUP-LADDER-F
|
|
EQUAL? PRSA,V?THROUGH,V?CLIMB-UP /?THN6
|
|
EQUAL? PRSA,V?CLIMB-ON,V?CLIMB-DOWN,V?BOARD \FALSE
|
|
?THN6: PRINTI "The "
|
|
PRINTD GREENUP-LADDER
|
|
PRINTR " is only for emergencies."
|
|
|
|
|
|
.FUNCT AIRLOCK-RAMP-F
|
|
EQUAL? PRSA,V?CLIMB-ON,V?CLIMB-DOWN,V?BOARD \?ELS5
|
|
EQUAL? HERE,AIRLOCK-WALL \?ELS5
|
|
CALL DO-WALK,P?SOUTH
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?CLIMB-ON,V?CLIMB-UP,V?BOARD \FALSE
|
|
EQUAL? HERE,AIRLOCK \FALSE
|
|
CALL DO-WALK,P?NORTH
|
|
RTRUE
|
|
|
|
|
|
.FUNCT AIRLOCK-WALL-F,ARG=0
|
|
EQUAL? ARG,M-LOOK \FALSE
|
|
PRINTI "You're now atop the north wall of the "
|
|
PRINTD AQUADOME
|
|
PRINTI "'s "
|
|
PRINTD AIRLOCK
|
|
PRINTI "."
|
|
CRLF
|
|
PRINTI "This gives you a bird's-eye view of the whole "
|
|
PRINT URS
|
|
PRINTI " of "
|
|
PRINTD IU-GLOBAL
|
|
PRINTI ".
|
|
|
|
The dome is a transparent hemisphere made of plastic of great strength, developed by you for this specific purpose. The dome encloses the four attached buildings of the "
|
|
PRINT URS
|
|
PRINTI ": the workshop/lab and dormitory in the western half of the dome, and the administration and communication buildings in the eastern half.
|
|
"
|
|
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \?CND10
|
|
PRINTI "In the very center is the "
|
|
PRINTD AIR-SUPPLY-SYSTEM
|
|
PRINTI ". This is in a cylinder that runs from the floor to the top of the dome. It extracts oxygen from "
|
|
PRINTD GLOBAL-WATER
|
|
PRINTI " and emits it through small holes around its base to keep the air fresh at all times.
|
|
"
|
|
?CND10: PRINTI "A ladder goes from here down to the floor of the "
|
|
PRINTD AQUADOME
|
|
PRINTI ", outside the "
|
|
PRINTD AIRLOCK
|
|
PRINTI "'s north wall.
|
|
"
|
|
CALL CREW-5-TOGETHER?
|
|
ZERO? STACK /FALSE
|
|
IN? CREW,FOOT-OF-RAMP \FALSE
|
|
FSET? BLY,MUNGBIT /FALSE
|
|
PRINTD BLY
|
|
PRINTI " and her five "
|
|
PRINTD CREW
|
|
PRINTI " are"
|
|
FSET? FOOT-OF-RAMP,TOUCHBIT /?CND26
|
|
PRINTI " waiting to greet you"
|
|
?CND26: PRINTR " at the foot of this ladder."
|
|
|
|
|
|
.FUNCT AIRLOCK-LADDER-F
|
|
EQUAL? PRSA,V?CLIMB-ON,V?CLIMB-DOWN,V?BOARD \?ELS5
|
|
EQUAL? HERE,AIRLOCK-WALL \?ELS5
|
|
CALL DO-WALK,P?NORTH
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?CLIMB-ON,V?CLIMB-UP,V?BOARD \FALSE
|
|
EQUAL? HERE,FOOT-OF-RAMP \FALSE
|
|
CALL DO-WALK,P?SOUTH
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CREW-F
|
|
ZERO? DOME-AIR-BAD? /?THN8
|
|
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT /?ELS5
|
|
?THN8: EQUAL? PRSA,V?ASK-ABOUT \?ELS13
|
|
FSET? PRSO,PERSON \?ELS13
|
|
EQUAL? PRSI,CREW-GLOBAL,CREW /?THN10
|
|
?ELS13: EQUAL? PRSA,V?WHAT \?ELS15
|
|
EQUAL? PRSO,CREW-GLOBAL,CREW /?THN10
|
|
?ELS15: EQUAL? PRSA,V?TELL-ABOUT \?ELS5
|
|
EQUAL? PRSO,PLAYER \?ELS5
|
|
?THN10: PRINTI """The crew consists of:
|
|
Doctor Walt Horvak, marine biologist and first-aid medic;
|
|
"
|
|
PRINTD ANTRIM
|
|
PRINTI ", laser expert and frogman;
|
|
"
|
|
PRINTD SIEGEL
|
|
PRINTI ", electronics expert in charge of communications; and
|
|
"
|
|
PRINTD GREENUP
|
|
PRINTI " and "
|
|
PRINTD LOWELL
|
|
PRINTR ", diver-technicians."""
|
|
?ELS5: EQUAL? PRSA,V?TELL-ABOUT,V?TELL /?THN24
|
|
EQUAL? PRSA,V?ASK-FOR,V?ASK-ABOUT,V?ASK \?ELS21
|
|
?THN24: EQUAL? PRSO,CREW \?ELS21
|
|
PRINTI "You'd better talk to one crew member at a time."
|
|
CRLF
|
|
RETURN 2
|
|
?ELS21: EQUAL? PRSA,V?HELLO,V?GOODBYE \?ELS31
|
|
EQUAL? PRSO,CREW \?ELS31
|
|
PRINTD PRSO
|
|
PRINTR " nods at you."
|
|
?ELS31: EQUAL? PRSA,V?EXAMINE,V?DIAGNOSE \FALSE
|
|
ZERO? DOME-AIR-BAD? /?ELS42
|
|
PRINTD BLY
|
|
PRINTR " and the two divers, Greenup and Lowell, are without oxygen."
|
|
?ELS42: PRINTR "All the crew members are okay now."
|
|
|
|
|
|
.FUNCT CREW-GLOBAL-F,L
|
|
CALL SPEAKING-VERB?
|
|
ZERO? STACK /?ELS5
|
|
EQUAL? PRSO,CREW-GLOBAL \?ELS5
|
|
PRINTI "The "
|
|
PRINTD CREW-GLOBAL
|
|
CALL NOT-HERE-PERSON,CREW
|
|
SET 'P-CONT,FALSE-VALUE
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?WALK-TO \?ELS11
|
|
CALL PERFORM,PRSA,CREW
|
|
RTRUE
|
|
?ELS11: CALL CREW-F
|
|
RSTACK
|
|
|
|
|
|
.FUNCT GENERIC-BADGE-F,OBJ
|
|
RETURN BADGE-GLOBAL
|
|
|
|
|
|
.FUNCT BADGE-GLOBAL-F
|
|
ZERO? SUB-IN-DOME /?THN6
|
|
CALL FIND-FLAG,HERE,PERSON,WINNER
|
|
ZERO? STACK \?ELS5
|
|
?THN6: CALL NOT-HERE,BADGE-GLOBAL-3
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \FALSE
|
|
CALL EXAMINE-BADGE
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT EXAMINE-BADGE
|
|
ZERO? DOME-AIR-BAD? /?ELS5
|
|
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \?ELS11
|
|
PRINTI "The badge is turning red! The air is becoming unbreathable!"
|
|
RTRUE
|
|
?ELS11: PRINTI "The badge is less red now. The air is improving."
|
|
RTRUE
|
|
?ELS5: PRINTI "When a badge turns red, the air is no longer breathable. It's not red now."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BAD-AIR?
|
|
ZERO? DOME-AIR-BAD? /FALSE
|
|
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \FALSE
|
|
CALL AIR-SUPPLY-VERB?
|
|
ZERO? STACK \FALSE
|
|
PRINTI "Shouldn't you fix the "
|
|
PRINTD AIR-SUPPLY-SYSTEM
|
|
PRINTR " first?"
|
|
|
|
|
|
.FUNCT TROUBLE-BREATHING?
|
|
EQUAL? PRSA,V?WAIT-UNTIL,V?WAIT-FOR /FALSE
|
|
IN? OXYGEN-GEAR,PLAYER \?THN8
|
|
FSET? OXYGEN-GEAR,ONBIT /FALSE
|
|
?THN8: PRINTI "You are having "
|
|
GRTR? 13,DOME-AIR-BAD? /?CND12
|
|
PRINTI "real "
|
|
?CND12: PRINTR "trouble breathing."
|
|
|
|
|
|
.FUNCT TIP-REPORTS?
|
|
EQUAL? HERE,CENTER-OF-DOME /FALSE
|
|
CALL CORRIDOR-LOOK,AIR-SUPPLY-SYSTEM
|
|
ZERO? STACK \FALSE
|
|
EQUAL? HERE,SUB,CRAWL-SPACE,AIRLOCK \?CND8
|
|
MOVE TIP,AIRLOCK-WALL
|
|
?CND8: PRINTI "Tip, who is standing near the exit, reports that "
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-DOME-AIR,CALLED?=0,X
|
|
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \?ELS5
|
|
ZERO? DOME-AIR-BAD? \?CND6
|
|
SET 'DOME-AIR-BAD?,INITIAL-DOME-AIR-BAD
|
|
SET 'DOME-AIR-CRIME,TRUE-VALUE
|
|
CALL QUEUE,I-DOME-AIR,-1
|
|
PUT STACK,0,1
|
|
CALL VISIBLE?,BLY >X
|
|
FSET BLY,MUNGBIT
|
|
FSET GREENUP,MUNGBIT
|
|
FSET LOWELL,MUNGBIT
|
|
CALL TIP-REPORTS?
|
|
ZERO? STACK \?CND9
|
|
PRINTI "Suddenly you realize that "
|
|
?CND9: PRINTI "Zoe is literally gasping for breath. Her face is turning reddish-purple! She clutches her throat...
|
|
Everyone"
|
|
ZERO? CALLED? /?ELS18
|
|
JUMP ?CND16
|
|
?ELS18: IN? OXYGEN-GEAR,PLAYER \?ELS21
|
|
FSET? OXYGEN-GEAR,ONBIT \?ELS21
|
|
PRINTI ", except you,"
|
|
JUMP ?CND16
|
|
?ELS21: PRINTI ", including yourself,"
|
|
?CND16: PRINTR " is having trouble breathing!"
|
|
?CND6: CALL TROUBLE-BREATHING?
|
|
INC 'DOME-AIR-BAD?
|
|
EQUAL? 7,DOME-AIR-BAD? \?ELS36
|
|
CRLF
|
|
PRINTI "In 10 turns Bly, Greenup and Lowell, who were not carrying "
|
|
PRINTD OXYGEN-GEAR
|
|
PRINTI ", will suffocate from lack of oxygen. In 20 turns, "
|
|
IN? OXYGEN-GEAR,PLAYER \?ELS41
|
|
PRINTI "you and the others"
|
|
JUMP ?CND39
|
|
?ELS41: PRINTI "those"
|
|
?CND39: PRINTI " who do have "
|
|
PRINTD OXYGEN-GEAR
|
|
PRINTR " will have exhausted their supply of oxygen. Need we say more?"
|
|
?ELS36: EQUAL? 13,DOME-AIR-BAD? \?ELS51
|
|
CRLF
|
|
PRINTI "Zoe Bly and the two crew members without "
|
|
PRINTD OXYGEN-GEAR
|
|
PRINTI " now have only 4 TURNS left to live! Their lives depend on you, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI "!"
|
|
CRLF
|
|
FSET? ACCESS-PLATE,OPENBIT /TRUE
|
|
FSET? UNIVERSAL-TOOL,TOUCHBIT /TRUE
|
|
FSET UNIVERSAL-TOOL,TOUCHBIT
|
|
FCLEAR UNIVERSAL-TOOL,NDESCBIT
|
|
MOVE UNIVERSAL-TOOL,PLAYER
|
|
PRINTI "Tip"
|
|
IN? TIP,HERE /?CND61
|
|
MOVE TIP,HERE
|
|
PRINTI " runs up and"
|
|
?CND61: PRINTI " gives you a "
|
|
PRINTD UNIVERSAL-TOOL
|
|
PRINTI " and says, ""Here, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
FSET? CENTER-OF-DOME,TOUCHBIT \?ELS70
|
|
PRINTR ", open the cylinder with this! It'll fit anything!"""
|
|
?ELS70: PRINTI ", maybe you can use this somehow."""
|
|
CRLF
|
|
RTRUE
|
|
?ELS51: EQUAL? 17,DOME-AIR-BAD? \FALSE
|
|
LOC SPECIAL-TOOL
|
|
EQUAL? STACK,BLY-OFFICE,HORVAK /?PRD79
|
|
PUSH 0
|
|
JUMP ?PRD80
|
|
?PRD79: PUSH 1
|
|
?PRD80: SET 'X,STACK
|
|
MOVE HORVAK,CENTER-OF-DOME
|
|
PRINTI "
|
|
At this desperate moment, "
|
|
CALL TIP-REPORTS?
|
|
PRINTD HORVAK
|
|
PRINTI " runs from the "
|
|
PRINTD BLY-OFFICE
|
|
ZERO? X /?ELS89
|
|
LOC ELECTROLYTE-RELAY
|
|
EQUAL? STACK,AIR-SUPPLY-SYSTEM,CENTER-OF-DOME,HORVAK \?ELS89
|
|
CALL QUEUE,I-BLY-PRIVATELY,3
|
|
PUT STACK,0,1
|
|
MOVE SPECIAL-TOOL,HORVAK
|
|
FCLEAR SPECIAL-TOOL,INVISIBLE
|
|
FSET SPECIAL-TOOL,TOUCHBIT
|
|
REMOVE SPECIAL-TOOL-GLOBAL
|
|
CALL FIX-AIR-SUPPLY
|
|
SET 'HORVAK-FIXED-AIR,TRUE-VALUE
|
|
PRINTI ". He's clutching an oddly-shaped gadget.
|
|
"
|
|
CALL TIP-SAYS
|
|
PRINTI "Hey, that's the "
|
|
PRINTD SPECIAL-TOOL
|
|
PRINTI "!""
|
|
"
|
|
FSET? ACCESS-PLATE,OPENBIT /?CND96
|
|
FSET ACCESS-PLATE,OPENBIT
|
|
FSET AIR-SUPPLY-SYSTEM,OPENBIT
|
|
PRINTI "Using the "
|
|
PRINTD SPECIAL-TOOL
|
|
PRINTI ", "
|
|
PRINTD HORVAK
|
|
PRINTI " quickly opens the "
|
|
PRINTD ACCESS-PLATE
|
|
PRINTI ". "
|
|
?CND96: PRINTI "Inside the cylinder, the "
|
|
PRINTD ELECTROLYTE-RELAY
|
|
PRINTI " has come unscrewed and fallen out of its socket. Horvak"
|
|
IN? ELECTROLYTE-RELAY,HORVAK /?CND103
|
|
PRINTI " takes it and"
|
|
?CND103: PRINTI " screws it back in place; and within seconds, a fresh supply of oxygen is flowing out into the "
|
|
PRINTD AQUADOME
|
|
PRINTR "."
|
|
?ELS89: PRINTI ". He "
|
|
LOC HORVAK
|
|
EQUAL? HERE,STACK \?ELS118
|
|
PUSH STR?69
|
|
JUMP ?CND114
|
|
?ELS118: PUSH STR?62
|
|
?CND114: PRINT STACK
|
|
PRINTI "s, ""I never wanted it to go this far! I sabotaged the "
|
|
PRINTD AIR-SUPPLY-SYSTEM
|
|
PRINTI " to embarrass "
|
|
PRINTD BLY
|
|
PRINTI ", but now I can't find the "
|
|
ZERO? X /?ELS123
|
|
PRINTD ELECTROLYTE-RELAY
|
|
JUMP ?CND121
|
|
?ELS123: PRINTD SPECIAL-TOOL
|
|
?CND121: PRINTI " to fix it!""
|
|
As Doc breaks down in tears and Bly suffocates, you realize there's no point in continuing your mission."
|
|
CALL FINISH
|
|
RSTACK
|
|
?ELS5: SUB DOME-AIR-BAD?,DOME-AIR-FIX-RATE >DOME-AIR-BAD?
|
|
LESS? 0,DOME-AIR-BAD? /FALSE
|
|
CALL INT,I-DOME-AIR
|
|
PUT STACK,0,0
|
|
CALL QUEUE,I-ANTRIM-TO-SUB,10
|
|
PUT STACK,0,1
|
|
SET 'DOME-AIR-BAD?,FALSE-VALUE
|
|
FSET? BLY,MUNGBIT \FALSE
|
|
FCLEAR BLY,MUNGBIT
|
|
FCLEAR GREENUP,MUNGBIT
|
|
FCLEAR LOWELL,MUNGBIT
|
|
CALL VISIBLE?,BLY
|
|
ZERO? STACK /FALSE
|
|
CALL VISIBLE?,GREENUP
|
|
ZERO? STACK /FALSE
|
|
CALL VISIBLE?,LOWELL
|
|
ZERO? STACK /FALSE
|
|
ZERO? HORVAK-FIXED-AIR \?CND152
|
|
CRLF
|
|
PRINTD HORVAK
|
|
PRINTI " has just returned from the "
|
|
PRINTD BLY-OFFICE
|
|
PRINTI ", where he went to get Bly's "
|
|
PRINTD OXYGEN-GEAR
|
|
PRINTI ", but it's no longer needed."
|
|
CRLF
|
|
?CND152: CRLF
|
|
PRINTD BLY
|
|
PRINTI " is sitting up and her normal color has returned. Ditto for Greenup and Lowell, who collapsed. All are recovering from their temporary lack of air."
|
|
CRLF
|
|
CALL TELL-HINT,41,ELECTROLYTE-RELAY
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FOOT-OF-RAMP-F,ARG=0
|
|
EQUAL? ARG,M-BEG \?ELS5
|
|
EQUAL? PRSA,V?WALK \FALSE
|
|
EQUAL? PRSO,P?UP,P?SOUTH \FALSE
|
|
CALL CHEERS?
|
|
RFALSE
|
|
?ELS5: EQUAL? ARG,M-ENTER \?ELS17
|
|
CALL READY-FOR-SNARK?
|
|
ZERO? STACK \?THN23
|
|
ZERO? GREENUP-ESCAPE \?THN23
|
|
ZERO? GREENUP-TRAPPED /?ELS22
|
|
?THN23: MOVE BLY,HERE
|
|
MOVE ANTRIM,HERE
|
|
MOVE HORVAK,HERE
|
|
MOVE SIEGEL,HERE
|
|
MOVE LOWELL,HERE
|
|
ZERO? GREENUP-ESCAPE \?THN30
|
|
ZERO? GREENUP-TRAPPED /?ELS29
|
|
?THN30: PRINTI "The rest of the "
|
|
PRINTD CREW
|
|
PRINTR " are with you."
|
|
?ELS29: PRINTD BLY
|
|
PRINTR " and the others gather to shake your hand and wish you luck on your perilous mission."
|
|
?ELS22: ZERO? BLY-WELCOMED \FALSE
|
|
SET 'BLY-WELCOMED,TRUE-VALUE
|
|
PRINTD BLY
|
|
PRINTI " says, """
|
|
CALL BLY-WELCOME
|
|
PRINTR """"
|
|
?ELS17: EQUAL? ARG,M-LOOK \?ELS45
|
|
CALL CREW-5-TOGETHER?
|
|
ZERO? STACK /?ELS50
|
|
IN? CREW,FOOT-OF-RAMP \?ELS50
|
|
FSET? BLY,MUNGBIT /?ELS50
|
|
FSET? CREW,TOUCHBIT /?ELS57
|
|
FSET CREW,TOUCHBIT
|
|
CALL QUEUE,I-BLY-PRIVATELY,15
|
|
PUT STACK,0,1
|
|
PRINTI "You're now face-to-face with Zoe Bly and the "
|
|
PRINTD CREW
|
|
PRINTI ". They are wearing badges which show the air quality in the "
|
|
PRINTD AQUADOME
|
|
PRINTR "."
|
|
?ELS57: PRINTI "You're at the foot of the ladder. "
|
|
IN? BLY,FOOT-OF-RAMP \?ELS66
|
|
PRINTI "Zoe Bly and t"
|
|
JUMP ?CND64
|
|
?ELS66: PRINTI "T"
|
|
?CND64: PRINTI "he "
|
|
PRINTD CREW
|
|
PRINTR " are still here."
|
|
?ELS50: PRINTR "You're now at the foot of the ladder."
|
|
?ELS45: EQUAL? ARG,M-END \FALSE
|
|
EQUAL? EXCLAM-DOME-AIR-BAD,DOME-AIR-BAD? \FALSE
|
|
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT \FALSE
|
|
CRLF
|
|
CALL BADGES-RED,TRUE-VALUE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BADGES-RED,SHOUT?=0
|
|
ZERO? BADGES-RED-SAID? \FALSE
|
|
SET 'BADGES-RED-SAID?,TRUE-VALUE
|
|
ZERO? SHOUT? /?CND6
|
|
PRINTI "Someone shouts, "
|
|
?CND6: PRINTI """Our badges are turning red! The air's bad! Everyone use your "
|
|
PRINTD OXYGEN-GEAR
|
|
PRINTR "!"""
|
|
|
|
|
|
.FUNCT OUTSIDE-DORM-F,RARG=0
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
CALL FROM-HERE,P?WEST,P?SOUTH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT FROM-HERE,DIR1,DIR2
|
|
PRINTI "From here, you can go "
|
|
CALL DIR-PRINT,DIR1,FALSE-VALUE
|
|
PRINTI " or "
|
|
CALL DIR-PRINT,DIR2,FALSE-VALUE
|
|
PRINTR " into the building."
|
|
|
|
|
|
.FUNCT WOMENS-QUARTERS-F,RARG=0
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
CALL QUARTERS-F,WOMENS-QUARTERS,STR?70
|
|
RSTACK
|
|
|
|
|
|
.FUNCT GENERIC-FURNITURE-F,OBJ
|
|
ZERO? SUB-IN-TANK /?ELS5
|
|
RETURN WORKBENCH
|
|
?ELS5: RETURN HORVAK-LOCKER
|
|
|
|
|
|
.FUNCT MENS-QUARTERS-F,RARG=0
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
CALL QUARTERS-F,MENS-QUARTERS,STR?71
|
|
RSTACK
|
|
|
|
|
|
.FUNCT QUARTERS-F,RM,STR
|
|
PRINTI "You're in the "
|
|
PRINTD RM
|
|
PRINTI ". "
|
|
PRINT STR
|
|
PRINTR " of the room is a bunk and locker. In the center of the room are a table and chairs."
|
|
|
|
|
|
.FUNCT HORVAK-LOCKER-F
|
|
EQUAL? PRSA,V?LOOK-INSIDE \?ELS5
|
|
FSET? HORVAK-LOCKER,OPENBIT \?ELS5
|
|
PRINTI "The locker contains mostly clothing, toilet articles and books."
|
|
IN? DIARY,HORVAK-LOCKER \?CND10
|
|
PRINTI " One of the books is labeled DIARY."
|
|
IN? PHOTO,DIARY \?CND10
|
|
FCLEAR PHOTO,INVISIBLE
|
|
PRINTI " Something has been inserted between its pages."
|
|
?CND10: CRLF
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?UNLOCK,V?OPEN-WITH,V?OPEN \FALSE
|
|
EQUAL? PRSO,HORVAK-LOCKER \FALSE
|
|
FSET? HORVAK-LOCKER,OPENBIT /FALSE
|
|
FSET? HORVAK-LOCKER,LOCKED \?CND24
|
|
EQUAL? PRSI,UNIVERSAL-TOOL /?CND24
|
|
CALL THIS-IS-IT,HORVAK-KEY
|
|
PRINTI "It's locked. The normal way to open its lock (which you yourself designed, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTR ") is with a key."
|
|
?CND24: FCLEAR HORVAK-LOCKER,LOCKED
|
|
FSET HORVAK-LOCKER,OPENBIT
|
|
FSET DIARY,TAKEBIT
|
|
CALL PERFORM,V?LOOK-INSIDE,HORVAK-LOCKER
|
|
RTRUE
|
|
|
|
|
|
.FUNCT HORVAK-KEY-F
|
|
EQUAL? PRSI,HORVAK \?ELS9
|
|
EQUAL? PRSA,V?TAKE /?THN6
|
|
?ELS9: EQUAL? PRSO,HORVAK \FALSE
|
|
EQUAL? PRSA,V?SEARCH-FOR,V?ASK-FOR \FALSE
|
|
?THN6: EQUAL? WINNER,PLAYER \?ELS16
|
|
PRINTI "Be warned, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI ", that he will never willingly surrender it. You have no right to demand it without a search warrant. The "
|
|
PRINTD AQUADOME
|
|
PRINTR " is neither a military establishment nor a ship at sea, so you could get in legal trouble."
|
|
?ELS16: CALL HE-SHE-IT,WINNER,TRUE-VALUE,STR?72
|
|
PRINTI ", "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI ". Do not pursue this any further, or you will lose the respect and cooperation of the "
|
|
PRINTD CREW
|
|
PRINTR ", and thereby abort your rescue mission. If you attempt to use force, they may even mutiny and place you under arrest."
|
|
|
|
|
|
.FUNCT DIARY-F
|
|
EQUAL? PRSA,V?OPEN \?ELS5
|
|
FSET? DIARY,OPENBIT /?ELS5
|
|
IN? PHOTO,DIARY \?ELS5
|
|
FSET DIARY,OPENBIT
|
|
MOVE PHOTO,HERE
|
|
PRINTR "As you do so, a picture falls out. Oh, oh! It's a snapshot of Zoe Bly!"
|
|
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE,V?READ \FALSE
|
|
FSET? DIARY,OPENBIT /?ELS16
|
|
PRINTR "You must open it first."
|
|
?ELS16: PRINTI "You quickly discover references to Zoe Bly. It seems clear that "
|
|
PRINTD HORVAK
|
|
PRINTI " has fallen for Zoe. But her unsentimental manner is a large obstacle.
|
|
The last entry reads:
|
|
""If only I could find some way to break down that icy reserve of Zoe's, and make her realize she's not just a scientific thinking machine or a commanding officer...!
|
|
There must be some way! She doesn't do everything by the rule book. She even breaks regulations at times. If I can prove this and embarrass her, maybe she'll realize she's just a human being like the rest of us -- and not only a human being, but a warm, desirable woman...!""
|
|
"
|
|
FSET? SPECIAL-TOOL,TOUCHBIT \TRUE
|
|
PRINTI "
|
|
Well! It sounds as if "
|
|
PRINTD HORVAK
|
|
PRINTI " found the answer to his problem by sabotaging the "
|
|
PRINTD AIR-SUPPLY-SYSTEM
|
|
PRINTI " -- at a time when "
|
|
PRINTD BLY
|
|
PRINTI " was breaking regulations by not wearing her "
|
|
PRINTD OXYGEN-GEAR
|
|
PRINTR "!"
|
|
|
|
|
|
.FUNCT PHOTO-F
|
|
EQUAL? PRSA,V?TELL-ABOUT,V?EXAMINE,V?ANALYZE \FALSE
|
|
PRINTI "It's a "
|
|
PRINTD PHOTO
|
|
PRINTI " of "
|
|
PRINTD BLY
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT OUTSIDE-WORKSHOP-F,RARG=0
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
CALL FROM-HERE,P?WEST,P?NORTH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT WORKSHOP-F,RARG=0
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "The "
|
|
PRINTD WORKSHOP
|
|
PRINTR " is equipped for mechanical repair work. It contains assorted hand tools, machine tools, and spare parts."
|
|
|
|
|
|
.FUNCT WORKSHOP-STUFF-F
|
|
EQUAL? PRSA,V?MAKE \FALSE
|
|
PRINTR "That's too difficult, even for a famous young inventor."
|
|
|
|
|
|
.FUNCT DOME-LAB-F,RARG=0,MAGLOC
|
|
EQUAL? RARG,M-LOOK \?ELS5
|
|
PRINTI "The "
|
|
PRINTD DOME-LAB
|
|
PRINTI " is equipped for all sorts of marine biochemical research. "
|
|
CALL ROOM-IS-CROWDED
|
|
RSTACK
|
|
?ELS5: EQUAL? RARG,M-ENTER \FALSE
|
|
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT /FALSE
|
|
IN? BLY,DOME-LAB /?CND12
|
|
MOVE BLY,DOME-LAB
|
|
PRINTD BLY
|
|
PRINTI " comes too."
|
|
CRLF
|
|
?CND12: FSET? HORVAK,BUSYBIT /?CND17
|
|
IN? HORVAK,DOME-LAB /?CND17
|
|
MOVE HORVAK,DOME-LAB
|
|
PRINTD HORVAK
|
|
PRINTI " comes too."
|
|
CRLF
|
|
?CND17: ZERO? HORVAK-TOLD-AH \TRUE
|
|
FSET? DART,MUNGBIT \TRUE
|
|
FSET? HORVAK,BUSYBIT /TRUE
|
|
SET 'HORVAK-TOLD-AH,TRUE-VALUE
|
|
CRLF
|
|
PRINTD HORVAK
|
|
PRINTI " says:
|
|
"""
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI ", right after the Snark ceased its attack, I detected a high concentration of A.H. molecules in the "
|
|
PRINTD GLOBAL-WATER
|
|
PRINTI " around the "
|
|
PRINTD AQUADOME
|
|
PRINTI ". Have you ever heard of such a phenomenon before?"""
|
|
CALL YES?
|
|
ZERO? STACK \?CND31
|
|
PRINTI """I can make up an intense tranquilizer to subdue the "
|
|
PRINTD SNARK
|
|
PRINTI ","" "
|
|
PRINTD HORVAK
|
|
PRINTI " continues. ""You could use one of our aquatic dart guns to inject it into the creature. You could mount the gun on one of the "
|
|
PRINTD SUB
|
|
PRINTI "'s "
|
|
PRINTD CLAW
|
|
PRINTI "s.
|
|
But without knowing the creature's biochemistry, there's no guarantee the 'trank' will work. Shall I go ahead and make some up, anyhow?"""
|
|
CALL YES? >MAGLOC
|
|
?CND31: CALL META-LOC,MAGAZINE >MAGLOC
|
|
CALL IN-DOME?,MAGLOC
|
|
ZERO? STACK /TRUE
|
|
CALL TIP-SAYS
|
|
PRINTI "Wait a minute! Wasn't there something about A.H. molecules in that "
|
|
PRINTD MAGAZINE
|
|
PRINTI "? Shall "
|
|
EQUAL? MAGLOC,HERE \?ELS43
|
|
PRINTI "we"
|
|
JUMP ?CND41
|
|
?ELS43: PRINTI "I get it and"
|
|
?CND41: PRINTI " see?"""
|
|
CALL THIS-IS-IT,MAGAZINE
|
|
CALL YES?
|
|
ZERO? STACK /TRUE
|
|
IN? MAGAZINE,PLAYER /?CND55
|
|
MOVE MAGAZINE,PLAYER
|
|
PRINTI "Tip "
|
|
EQUAL? MAGLOC,HERE /?CND60
|
|
PRINTI "returns quickly and "
|
|
?CND60: PRINTI "hands you the "
|
|
PRINTD MAGAZINE
|
|
PRINTI ". "
|
|
?CND55: CALL THIS-IS-IT,HORVAK
|
|
PRINTD HORVAK
|
|
PRINTR " looks interested. ""I'd like to see that."""
|
|
|
|
|
|
.FUNCT OUTSIDE-COMM-BLDG-F,RARG=0
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
CALL FROM-HERE,P?EAST,P?NORTH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT COMM-BLDG-F,RARG=0
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "The "
|
|
PRINTD COMM-BLDG
|
|
PRINTI " has both a "
|
|
PRINTD VIDEOPHONE
|
|
PRINTI " for communicating with other places and the "
|
|
PRINTD SONAR-EQUIPMENT
|
|
PRINTI " for detecting objects in the "
|
|
PRINTD GLOBAL-WATER
|
|
PRINTR " around the dome."
|
|
|
|
|
|
.FUNCT SONAR-EQUIPMENT-F
|
|
EQUAL? PRSA,V?LAMP-OFF \?ELS5
|
|
PRINTR "It should stay on all the time."
|
|
?ELS5: EQUAL? PRSA,V?TELL-ABOUT,V?LOOK-ON,V?LOOK-INSIDE /?THN10
|
|
EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \?ELS9
|
|
?THN10: PRINTI "The "
|
|
PRINTD SONAR-EQUIPMENT
|
|
PRINTI " detects objects in the "
|
|
PRINTD GLOBAL-WATER
|
|
PRINTI " near the "
|
|
PRINTD AQUADOME
|
|
PRINTR "."
|
|
?ELS9: EQUAL? PRSA,V?TIE-TO \FALSE
|
|
EQUAL? PRSI,SONAR-EQUIPMENT \FALSE
|
|
CALL PERFORM,V?PUT,PRSO,PRSI
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MICROPHONE-DOME-F
|
|
CALL MICROPHONE-F,TRUE-VALUE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT GALLEY-F,RARG=0
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTR "This room serves as both galley and mess; the crew can both prepare food and eat it here."
|
|
|
|
|
|
.FUNCT OUTSIDE-ADMIN-BLDG-F,RARG=0
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
CALL FROM-HERE,P?EAST,P?SOUTH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BLY-OFFICE-F,ARG=0
|
|
EQUAL? ARG,M-LOOK \?ELS5
|
|
PRINTI "The "
|
|
PRINTD BLY-OFFICE
|
|
PRINTI " is small but tidy, with a single door leading out and a good view of the ocean through the "
|
|
PRINTD WINDOW
|
|
PRINTR "."
|
|
?ELS5: EQUAL? ARG,M-ENTER \?ELS9
|
|
FSET? AIR-SUPPLY-SYSTEM,MUNGBIT /?ELS9
|
|
IN? BLY,BLY-OFFICE \?ELS16
|
|
ZERO? GREENUP-ESCAPE \?ELS16
|
|
ZERO? GREENUP-TRAPPED \?ELS16
|
|
ZERO? GREENUP-CUFFED \?ELS16
|
|
ZERO? ZOE-MENTIONED-EVIDENCE \?ELS16
|
|
FCLEAR BLY,NDESCBIT
|
|
PRINTI "As you enter the office, "
|
|
CALL ZOE-MENTIONS-EVIDENCE
|
|
RSTACK
|
|
?ELS16: ZERO? GREENUP-ESCAPE /FALSE
|
|
IN? BLY,BLY-OFFICE /FALSE
|
|
MOVE BLY,BLY-OFFICE
|
|
PRINTR "Zoe comes with you."
|
|
?ELS9: EQUAL? ARG,M-BEG \?ELS28
|
|
CALL EXIT-VERB?
|
|
ZERO? STACK /?ELS28
|
|
ZERO? GREENUP-ESCAPE /?ELS35
|
|
CALL HE-SHE-IT,WINNER,TRUE-VALUE
|
|
PRINTR "'d better stay here and trap Greenup."
|
|
?ELS35: FSET? SPECIAL-TOOL,INVISIBLE \FALSE
|
|
EQUAL? WINNER,PLAYER \FALSE
|
|
PRINTI "As you start to leave, you notice "
|
|
CALL SPECIAL-TOOL-VISIBLE
|
|
RSTACK
|
|
?ELS28: EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH \FALSE
|
|
FSET? SPECIAL-TOOL,INVISIBLE \FALSE
|
|
PRINTI "You find "
|
|
CALL SPECIAL-TOOL-VISIBLE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SPECIAL-TOOL-VISIBLE
|
|
FCLEAR SPECIAL-TOOL,INVISIBLE
|
|
FSET SPECIAL-TOOL,TOUCHBIT
|
|
REMOVE SPECIAL-TOOL-GLOBAL
|
|
CALL THIS-IS-IT,SPECIAL-TOOL
|
|
PRINTI "an oddly shaped metallic object lying under Zoe's desk. It must be the "
|
|
PRINTD SPECIAL-TOOL
|
|
PRINTR "!"
|
|
|
|
|
|
.FUNCT ZOE-MENTIONS-EVIDENCE
|
|
SET 'ZOE-MENTIONED-EVIDENCE,TRUE-VALUE
|
|
MOVE TRAITOR,GLOBAL-OBJECTS
|
|
CALL THIS-IS-IT,EVIDENCE
|
|
CALL QUEUE,I-BLY-SAYS,6
|
|
PUT STACK,0,1
|
|
CALL SAID-TO,BLY
|
|
PRINTI "Zoe"
|
|
FSET? BLY-DOOR,OPENBIT \?CND3
|
|
FCLEAR BLY-DOOR,OPENBIT
|
|
PRINTI " closes the door and"
|
|
?CND3: PRINTI " says:
|
|
""There's a "
|
|
PRINTD TRAITOR
|
|
PRINTI " here at the "
|
|
PRINTD AQUADOME
|
|
PRINTI ", "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI "! "
|
|
ZERO? DOME-AIR-CRIME /?CND10
|
|
PRINTI "I'm not saying that just because the "
|
|
PRINTD AIR-SUPPLY-SYSTEM
|
|
PRINTI " was sabotaged. "
|
|
?CND10: PRINTI "I discovered "
|
|
ZERO? DOME-AIR-CRIME /?ELS22
|
|
PUSH STR?73
|
|
JUMP ?CND18
|
|
?ELS22: PUSH STR?74
|
|
?CND18: PRINT STACK
|
|
PRINTD EVIDENCE
|
|
PRINTI " after we talked on the "
|
|
PRINTD VIDEOPHONE
|
|
PRINTR "!"""
|
|
|
|
|
|
.FUNCT BLY-DESK-F
|
|
EQUAL? PRSA,V?LOOK-UNDER \FALSE
|
|
FSET? SPECIAL-TOOL,TOUCHBIT /FALSE
|
|
PRINTI "There's "
|
|
CALL SPECIAL-TOOL-VISIBLE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BLACK-BOX-F
|
|
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS5
|
|
FSET? BLACK-BOX,OPENBIT \?ELS10
|
|
SET 'BLACK-BOX-EXAMINED,TRUE-VALUE
|
|
PRINTI "After a brief study of the "
|
|
PRINTD BLACK-CIRCUITRY
|
|
PRINTR ", you deduce its purpose: it was designed to change the sonar output so the ultrasonic pulses make a more complex pattern (for example BURPETY BURP B'DURP) instead of just a simple, clear-cut BURP. This would also make fuzzier blips."
|
|
?ELS10: PRINTR "You'll need a suitable tool to open its cover."
|
|
?ELS5: EQUAL? PRSA,V?OPEN-WITH,V?OPEN \FALSE
|
|
FSET? BLACK-BOX,OPENBIT \?ELS23
|
|
CALL ALREADY,BLACK-BOX,STR?21
|
|
RSTACK
|
|
?ELS23: EQUAL? PRSI,UNIVERSAL-TOOL \?ELS25
|
|
CALL OKAY,BLACK-BOX,STR?21
|
|
RSTACK
|
|
?ELS25: PRINTI "You can't open it with"
|
|
ZERO? PRSI /?ELS32
|
|
CALL THE-PRSI-PRINT
|
|
JUMP ?CND30
|
|
?ELS32: PRINTI " your bare hands"
|
|
?CND30: PRINTR "!"
|
|
|
|
|
|
.FUNCT BLACK-CIRCUITRY-F
|
|
CALL DIVESTMENT?,BLACK-CIRCUITRY
|
|
ZERO? STACK /FALSE
|
|
CALL PERFORM,PRSA,BLACK-BOX,PRSI
|
|
RTRUE
|
|
|
|
|
|
.FUNCT STATION-MONITOR-F
|
|
EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \FALSE
|
|
ZERO? GREENUP-ESCAPE /?ELS10
|
|
CALL QUEUE,I-GREENUP-ESCAPE,-1
|
|
PUT STACK,0,1
|
|
EQUAL? GREENUP-ESCAPE,1 \TRUE
|
|
PRINTI "The monitor screen shows Greenup's head just coming into view above the top of the "
|
|
PRINTD AIRLOCK
|
|
PRINTI "'s west wall, as he climbs the outside ladder.
|
|
"
|
|
FSET? AIRLOCK-ROOF,OPENBIT /?ELS23
|
|
PRINTI "But since the "
|
|
PRINTD AIRLOCK-ROOF
|
|
PRINTI " is closed, Greenup can't get into the "
|
|
PRINTD SUB
|
|
PRINTI " to escape. "
|
|
CALL GREENUP-CUFF
|
|
RTRUE
|
|
?ELS23: PRINTI "Once he reaches the top of this wall, he will come down the inside ladder to the "
|
|
PRINTD SUB
|
|
PRINTR "."
|
|
?ELS10: PRINTD BLY
|
|
PRINTI " uses this monitor to check on activities in the "
|
|
PRINTD AQUADOME
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT AIRLOCK-ELECTRICITY-F
|
|
EQUAL? PRSA,V?CUT \?ELS5
|
|
CALL PERFORM,V?LAMP-OFF,PRSO
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?LAMP-OFF \FALSE
|
|
ZERO? GREENUP-ESCAPE /FALSE
|
|
FCLEAR AIRLOCK-ELECTRICITY,ONBIT
|
|
PRINTI "Very good, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI "! With the "
|
|
PRINTD AIRLOCK-ELECTRICITY
|
|
PRINTI " off, the "
|
|
PRINTD AIRLOCK-HATCH
|
|
PRINTI " won't respond to command signals from the "
|
|
PRINTD SUB
|
|
PRINTI " and will remain closed.
|
|
"
|
|
CALL GREENUP-CUFF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CONTROLS-OFFICE-F
|
|
EQUAL? PRSA,V?LAMP-OFF,V?CUT \?ELS5
|
|
CALL PERFORM,V?LAMP-OFF,AIRLOCK-ELECTRICITY
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \FALSE
|
|
PRINTI "MAIN OPERATING CONTROLS:
|
|
"
|
|
CALL FIXED-FONT-ON
|
|
PRINTD AIRLOCK-ROOF
|
|
PRINTI ": "
|
|
FSET? AIRLOCK-ROOF,OPENBIT \?ELS16
|
|
PUSH STR?21
|
|
JUMP ?CND12
|
|
?ELS16: PUSH STR?17
|
|
?CND12: PRINT STACK
|
|
CRLF
|
|
PRINTD FILL-TANK-BUTTON
|
|
PRINTI " : "
|
|
CALL TANK-STATUS
|
|
PRINT STACK
|
|
CRLF
|
|
PRINTD OPEN-GATE-BUTTON
|
|
PRINTI " : "
|
|
CALL GATE-STATUS
|
|
PRINT STACK
|
|
CRLF
|
|
CALL FIXED-FONT-OFF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DOME-STORAGE-F,RARG=0
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
CALL ROOM-IS-CROWDED
|
|
RSTACK
|
|
|
|
|
|
.FUNCT ROOM-IS-CROWDED
|
|
PRINTR "The room is crowded with supplies and equipment. If you want to find something, you'll have to search for it."
|
|
|
|
|
|
.FUNCT I-CHECK-POD
|
|
IN? SYRINGE,ESCAPE-POD-UNIT \FALSE
|
|
FSET? SYRINGE,MUNGBIT \FALSE
|
|
ZERO? SUB-IN-DOME /?CND8
|
|
CALL TELL-HINT,51,ESCAPE-POD-UNIT
|
|
?CND8: CALL QUEUE,I-CHECK-POD,7
|
|
PUT STACK,0,1
|
|
RFALSE
|
|
|
|
|
|
.FUNCT ESCAPE-POD-UNIT-F
|
|
CALL REMOTE-VERB?
|
|
ZERO? STACK \FALSE
|
|
IN? ESCAPE-POD-UNIT,SUB \FALSE
|
|
EQUAL? PRSA,V?EXAMINE,V?ANALYZE \?ELS12
|
|
PRINTI "A brief inspection under your seat leads to a horrifying discovery! A body-heat sensor was substituted for the electronic monitor, and a wire leads from the sensor to "
|
|
IN? SYRINGE,ESCAPE-POD-UNIT \?ELS17
|
|
PRINTI "the "
|
|
PRINTD SYRINGE
|
|
JUMP ?CND15
|
|
?ELS17: PRINTI "where the "
|
|
PRINTD SYRINGE
|
|
PRINTI " was"
|
|
?CND15: PRINTI ".
|
|
Tip reports that the part under his seat appears to be okay."
|
|
FSET? SYRINGE,MUNGBIT \?CND26
|
|
IN? SYRINGE,ESCAPE-POD-UNIT \?CND26
|
|
PRINTI " ""But I sure don't like the looks of that "
|
|
PRINTD SYRINGE
|
|
PRINTI " in YOUR part, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI "!"" he adds. ""Let's take it to "
|
|
PRINTD HORVAK
|
|
PRINTI " to analyze it."""
|
|
?CND26: CRLF
|
|
RTRUE
|
|
?ELS12: EQUAL? PRSA,V?FIX \FALSE
|
|
PRINTI "Maybe "
|
|
PRINTD HORVAK
|
|
PRINTR " can do that."
|
|
|
|
|
|
.FUNCT SYRINGE-F
|
|
EQUAL? PRSO,SYRINGE \FALSE
|
|
EQUAL? PRSA,V?FIX,V?EXAMINE,V?ANALYZE \?ELS10
|
|
PRINTI "Maybe "
|
|
PRINTD HORVAK
|
|
PRINTR " can do that."
|
|
?ELS10: EQUAL? PRSA,V?TAKE \?ELS14
|
|
FSET ESCAPE-POD-UNIT,NDESCBIT
|
|
SET 'TEST-BUTTON-READOUT,TEST-BUTTON-NORMAL
|
|
RFALSE
|
|
?ELS14: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,ESCAPE-POD-UNIT \FALSE
|
|
FCLEAR ESCAPE-POD-UNIT,NDESCBIT
|
|
SET 'TEST-BUTTON-READOUT,TEST-BUTTON-POD
|
|
RFALSE
|
|
|
|
|
|
.FUNCT FINE-GRID-F
|
|
EQUAL? PRSA,V?FIND \FALSE
|
|
ZERO? FINE-SONAR /FALSE
|
|
PRINTI "It's installed in the "
|
|
PRINTD SUB
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT CENTER-OF-DOME-F,ARG=0
|
|
EQUAL? ARG,M-LOOK \FALSE
|
|
PRINTI "You're in the very center of the "
|
|
PRINTD AQUADOME
|
|
PRINTI ", where the "
|
|
PRINTD AIR-SUPPLY-SYSTEM
|
|
PRINTR " rises like a tower, almost to the top of the dome itself."
|
|
|
|
|
|
.FUNCT AIR-SUPPLY-SYSTEM-F
|
|
EQUAL? PRSA,V?ANALYZE \?ELS5
|
|
PRINTR "How do you propose to do that?"
|
|
?ELS5: EQUAL? PRSA,V?READ,V?LOOK-INSIDE,V?EXAMINE \?ELS9
|
|
EQUAL? HERE,CENTER-OF-DOME \?ELS14
|
|
FSET? ACCESS-PLATE,OPENBIT \?ELS19
|
|
FSET? ELECTROLYTE-RELAY,MUNGBIT \?ELS24
|
|
PRINTI "You notice an "
|
|
PRINTD EMPTY-SPACE
|
|
PRINTI " in the complicated assembly facing you. Something has been unscrewed from this space!"
|
|
CRLF
|
|
IN? ELECTROLYTE-RELAY,AIR-SUPPLY-SYSTEM \FALSE
|
|
CALL THIS-IS-IT,ELECTROLYTE-RELAY
|
|
PRINTR "Something is lying at the base of the cylinder, just inside the housing."
|
|
?ELS24: PRINTR "There's a lot of complicated machinery inside."
|
|
?ELS19: PRINTI "The first thing you notice is a stenciled sign saying: "
|
|
CALL READ-AIR-SUPPLY
|
|
RSTACK
|
|
?ELS14: CALL TOO-FAR-AWAY,AIR-SUPPLY-SYSTEM
|
|
RSTACK
|
|
?ELS9: EQUAL? PRSA,V?WALK-TO,V?FIND \?ELS45
|
|
EQUAL? PRSO,AIR-SUPPLY-SYSTEM-GLOBAL \FALSE
|
|
CALL PERFORM,PRSA,AIR-SUPPLY-SYSTEM,PRSI
|
|
RTRUE
|
|
?ELS45: EQUAL? PRSA,V?FIX \?ELS52
|
|
PRINTR "How do you propose doing that, when you don't know what's wrong with it?"
|
|
?ELS52: EQUAL? PRSA,V?CLOSE,V?OPEN-WITH,V?OPEN \FALSE
|
|
CALL PERFORM,PRSA,ACCESS-PLATE,PRSI
|
|
RTRUE
|
|
|
|
|
|
.FUNCT READ-AIR-SUPPLY
|
|
PRINTI """To repair "
|
|
PRINTD AIR-SUPPLY-SYSTEM
|
|
PRINTI ", first open "
|
|
PRINTD ACCESS-PLATE
|
|
PRINTI " with "
|
|
PRINTD SPECIAL-TOOL
|
|
PRINTR " hanging on hook at right."" An arrow points to this hook."
|
|
|
|
|
|
.FUNCT AIR-SUPPLY-VERB?
|
|
EQUAL? PRSA,V?YELL-FOR /?THN6
|
|
EQUAL? PRSA,V?TAKE,V?FIND,V?GIVE \?ELS5
|
|
?THN6: EQUAL? PRSO,AIR-SUPPLY-SYSTEM-GLOBAL,AIR-SUPPLY-SYSTEM /TRUE
|
|
EQUAL? PRSO,SPECIAL-TOOL-GLOBAL,SPECIAL-TOOL,UNIVERSAL-TOOL /TRUE
|
|
?ELS5: EQUAL? PRSA,V?TELL-ABOUT /?THN17
|
|
EQUAL? PRSA,V?ASK-FOR,V?ASK-ABOUT,V?SGIVE \FALSE
|
|
?THN17: EQUAL? PRSI,AIR-SUPPLY-SYSTEM-GLOBAL,AIR-SUPPLY-SYSTEM /TRUE
|
|
EQUAL? PRSI,SPECIAL-TOOL-GLOBAL,SPECIAL-TOOL,UNIVERSAL-TOOL /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT ACCESS-PLATE-F
|
|
EQUAL? PRSA,V?READ \?ELS5
|
|
CALL READ-AIR-SUPPLY
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?ANALYZE,V?EXAMINE \?ELS7
|
|
FSET? ACCESS-PLATE,OPENBIT \?ELS12
|
|
PRINTR "It's open."
|
|
?ELS12: PRINTI "It's held in place on the cylinder by curiously-shaped fram bolts, which no ordinary wrench will fit."
|
|
FSET? AIR-SUPPLY-SYSTEM,TOUCHBIT /TRUE
|
|
PRINTI " To open it, you need a "
|
|
PRINTD SPECIAL-TOOL
|
|
PRINTR ", or something like it."
|
|
?ELS7: EQUAL? PRSA,V?LOOK-INSIDE \?ELS25
|
|
CALL PERFORM,PRSA,AIR-SUPPLY-SYSTEM,PRSI
|
|
RTRUE
|
|
?ELS25: EQUAL? PRSA,V?CLOSE \?ELS27
|
|
FSET? ACCESS-PLATE,OPENBIT \?ELS32
|
|
FCLEAR ACCESS-PLATE,OPENBIT
|
|
CALL OKAY,AIR-SUPPLY-SYSTEM,STR?17
|
|
RSTACK
|
|
?ELS32: CALL ALREADY,AIR-SUPPLY-SYSTEM,STR?17
|
|
RSTACK
|
|
?ELS27: EQUAL? PRSA,V?TAKE-WITH,V?OPEN-WITH,V?OPEN \?ELS36
|
|
EQUAL? PRSI,SPECIAL-TOOL,UNIVERSAL-TOOL \?ELS36
|
|
FSET? ACCESS-PLATE,OPENBIT \?ELS43
|
|
CALL ALREADY,ACCESS-PLATE,STR?21
|
|
RSTACK
|
|
?ELS43: CALL OKAY,ACCESS-PLATE,STR?21
|
|
FSET AIR-SUPPLY-SYSTEM,OPENBIT
|
|
FSET AIR-SUPPLY-SYSTEM,TOUCHBIT
|
|
CALL PERFORM,V?LOOK-INSIDE,AIR-SUPPLY-SYSTEM
|
|
CALL SCORE-OBJ,AIR-SUPPLY-SYSTEM
|
|
RTRUE
|
|
?ELS36: EQUAL? PRSA,V?TAKE-WITH,V?TAKE,V?OPEN \FALSE
|
|
FSET? ACCESS-PLATE,OPENBIT \?ELS52
|
|
CALL ALREADY,ACCESS-PLATE,STR?21
|
|
RSTACK
|
|
?ELS52: EQUAL? PRSI,SPECIAL-TOOL-GLOBAL \?ELS54
|
|
CALL NOT-HERE,PRSI
|
|
RTRUE
|
|
?ELS54: PRINTI "You can't remove"
|
|
CALL THE-PRSO-PRINT
|
|
PRINTR " with your bare hands!"
|
|
|
|
|
|
.FUNCT HOOK-F
|
|
FIRST? HOOK /?ELS5
|
|
EQUAL? PRSA,V?LOOK-ON,V?EXAMINE \?ELS10
|
|
PRINTI "There's nothing hanging on the "
|
|
PRINTD HOOK
|
|
PRINTR "."
|
|
?ELS10: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSO,SPECIAL-TOOL \?ELS19
|
|
MOVE PRSO,HOOK
|
|
PRINTR "Okay."
|
|
?ELS19: PRINTI "It won't fit on the "
|
|
PRINTD HOOK
|
|
PRINTR "."
|
|
?ELS5: EQUAL? PRSA,V?LOOK-ON,V?EXAMINE \FALSE
|
|
PRINTI "There's "
|
|
CALL PRINTA,SPECIAL-TOOL
|
|
PRINTI " hanging on the "
|
|
PRINTD HOOK
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT ARROW-F
|
|
EQUAL? PRSA,V?ANALYZE,V?EXAMINE,V?FOLLOW \FALSE
|
|
PRINTR "It points to the hook."
|
|
|
|
|
|
.FUNCT ELECTROLYTE-RELAY-F
|
|
EQUAL? PRSA,V?TAKE \?ELS5
|
|
FSET? PRSO,TAKEBIT /FALSE
|
|
PRINTI "What!? You don't want to spoil the "
|
|
PRINTD AIR-SUPPLY-SYSTEM
|
|
PRINTR " again!"
|
|
?ELS5: CALL REMOTE-VERB?
|
|
ZERO? STACK \FALSE
|
|
CALL NOT-HOLDING?,ELECTROLYTE-RELAY
|
|
ZERO? STACK \TRUE
|
|
EQUAL? PRSA,V?COMPARE \?ELS18
|
|
EQUAL? PRSI,ELECTROLYTE-RELAY \?ELS24
|
|
EQUAL? PRSO,EMPTY-SPACE /?THN21
|
|
?ELS24: EQUAL? PRSO,ELECTROLYTE-RELAY \?ELS18
|
|
EQUAL? PRSI,EMPTY-SPACE \?ELS18
|
|
?THN21: PRINTI "It looks as if the "
|
|
PRINTD ELECTROLYTE-RELAY
|
|
PRINTI " fits perfectly into the "
|
|
PRINTD EMPTY-SPACE
|
|
PRINTR "."
|
|
?ELS18: EQUAL? PRSA,V?EXAMINE \?ELS30
|
|
PRINTI "It has screw threads and, judging by its size and shape, it should screw very neatly into that "
|
|
PRINTD EMPTY-SPACE
|
|
PRINTI " in the "
|
|
PRINTD AIR-SUPPLY-SYSTEM
|
|
PRINTR " assembly."
|
|
?ELS30: EQUAL? PRSA,V?SCREW,V?PUT \?ELS38
|
|
EQUAL? PRSI,EMPTY-SPACE,AIR-SUPPLY-SYSTEM /?THN35
|
|
?ELS38: EQUAL? PRSA,V?SCREW-IN \FALSE
|
|
EQUAL? HERE,CENTER-OF-DOME \FALSE
|
|
?THN35: FSET? ACCESS-PLATE,OPENBIT /?CND41
|
|
CALL TOO-BAD-BUT,ACCESS-PLATE,STR?17
|
|
RTRUE
|
|
?CND41: CALL FIX-AIR-SUPPLY
|
|
PRINTI "It fits!"
|
|
CRLF
|
|
CALL SCORE-OBJ,ACCESS-PLATE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FIX-AIR-SUPPLY
|
|
FCLEAR AIR-SUPPLY-SYSTEM,MUNGBIT
|
|
REMOVE EMPTY-SPACE
|
|
MOVE ELECTROLYTE-RELAY,AIR-SUPPLY-SYSTEM
|
|
FCLEAR ELECTROLYTE-RELAY,TAKEBIT
|
|
FSET ELECTROLYTE-RELAY,NDESCBIT
|
|
FCLEAR ELECTROLYTE-RELAY,MUNGBIT
|
|
PUTP ELECTROLYTE-RELAY,P?TEXT,STR?77
|
|
RTRUE
|
|
|
|
|
|
.FUNCT EMPTY-SPACE-F
|
|
EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,EMPTY-SPACE \FALSE
|
|
PRINTI "Sorry, but"
|
|
CALL THE-PRSO-PRINT
|
|
PRINTR " won't stay unless you screw it in."
|
|
|
|
.ENDI
|