.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