.FUNCT DIR-PRINT,DIR,THE?=1,CNT=0 ?PRG1: GET DIR-STRINGS,CNT EQUAL? STACK,DIR \?CND3 ZERO? THE? /?CND6 PRINTI "the " ?CND6: ADD CNT,1 GET DIR-STRINGS,STACK PRINT STACK RTRUE ?CND3: INC 'CNT JUMP ?PRG1 .FUNCT NULL-F,A1,A2 RFALSE .FUNCT DOOR-ROOM,RM,DR,P=0,TBL ?PRG1: NEXTP RM,P >P ZERO? P /FALSE LESS? P,LOW-DIRECTION /FALSE GETPT RM,P >TBL PTSIZE TBL EQUAL? DEXIT,STACK \?PRG1 GETB TBL,DEXITOBJ EQUAL? DR,STACK \?PRG1 GETB TBL,REXIT RETURN STACK .FUNCT FIND-FLAG,RM,FLAG,EXCLUDED=0,O FIRST? RM >O /?KLU12 ?KLU12: ?PRG1: ZERO? O /FALSE FSET? O,FLAG \?ELS7 EQUAL? O,EXCLUDED /?ELS7 RETURN O ?ELS7: NEXT? O >O /?KLU13 ?KLU13: JUMP ?PRG1 .FUNCT META-LOC,OBJ,L LOC OBJ >L ?PRG1: ZERO? L /FALSE EQUAL? L,LOCAL-GLOBALS,GLOBAL-OBJECTS \?ELS7 RETURN L ?ELS7: IN? OBJ,ROOMS \?ELS9 RETURN OBJ ?ELS9: SET 'OBJ,L LOC OBJ >L JUMP ?PRG1 .FUNCT IN-LAB-AREA?,RM ZERO? SUB-IN-TANK /?ELS5 EQUAL? RM,SUB,CRAWL-SPACE /TRUE ?ELS5: EQUAL? RM,HALLWAY,LAB-STORAGE,OFFICE /TRUE CALL IN-LAB?,RM ZERO? STACK \TRUE CALL IN-TANK-AREA?,RM ZERO? STACK \TRUE RFALSE .FUNCT IN-LAB?,RM EQUAL? RM,NORTH-WALL,EAST-WALL,SOUTH-WALL /TRUE EQUAL? RM,WEST-WALL,CENTER-OF-LAB /TRUE RFALSE .FUNCT IN-TANK-AREA?,RM EQUAL? RM,SOUTH-TANK-AREA,WEST-TANK-AREA,NORTH-TANK-AREA /TRUE RFALSE .FUNCT SHARON-PASSES-YOU?,L,?ORTMP EQUAL? HERE,OFFICE /TRUE EQUAL? HERE,HALLWAY /?THN8 EQUAL? HERE,LAB-STORAGE \?ELS7 FSET? STORAGE-DOOR,OPENBIT \?ELS7 ?THN8: EQUAL? L,OFFICE /FALSE RTRUE ?ELS7: EQUAL? HERE,LAB-STORAGE \?ELS15 EQUAL? L,LAB-STORAGE /TRUE RFALSE ?ELS15: CALL IN-LAB?,HERE ZERO? STACK /?ELS19 EQUAL? L,OFFICE,HALLWAY,LAB-STORAGE /FALSE RTRUE ?ELS19: CALL IN-TANK-AREA?,HERE ZERO? STACK /?ELS23 CALL IN-TANK-AREA?,L POP '?ORTMP ZERO? ?ORTMP /?ORP27 RETURN ?ORTMP ?ORP27: EQUAL? L,SUB,CRAWL-SPACE /TRUE RFALSE ?ELS23: EQUAL? HERE,SUB \?ELS29 EQUAL? L,SUB,CRAWL-SPACE /TRUE RFALSE ?ELS29: EQUAL? L,CRAWL-SPACE /TRUE RFALSE .FUNCT RESEARCH-LAB PRINTI " the " CALL PRINT-NAME,LAST-NAME PRINTI " Research Lab" RTRUE .FUNCT NORTH-WALL-F,RARG=0 EQUAL? RARG,M-LOOK \?ELS5 PRINTI "You're in the " PRINTD NORTH-WALL PRINTI " of " PRINTD YOUR-LABORATORY PRINTI ". A " PRINTD COMPUTESTOR PRINTR " stands here to help test your inventions." ?ELS5: EQUAL? RARG,M-ENTER \FALSE CALL VIDEOPHONE-WORKING ZERO? STACK \TRUE RFALSE .FUNCT COMPUTESTOR-F EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-ON,V?LOOK-INSIDE /FALSE EQUAL? PRSA,V?LOOK-BEHIND,V?WALK-TO,V?TAKE /FALSE EQUAL? PRSA,V?EXAMINE \?ELS9 PRINTI "The " PRINTD COMPUTESTOR PRINTI " is o" FSET? COMPUTESTOR,ONBIT \?ELS16 PUSH STR?40 JUMP ?CND12 ?ELS16: PUSH STR?41 ?CND12: PRINT STACK PRINTR "." ?ELS9: EQUAL? PRSA,V?LAMP-ON \?ELS20 FSET? COMPUTESTOR,ONBIT /FALSE FSET COMPUTESTOR,ONBIT PRINTI "The " PRINTD COMPUTESTOR PRINTR " is ready for questions." ?ELS20: CALL REMOTE-VERB? ZERO? STACK /?ELS29 EQUAL? PRSA,V?ASK-ABOUT \FALSE EQUAL? PRSO,COMPUTESTOR \FALSE ?ELS29: FSET? COMPUTESTOR,ONBIT /?ELS35 PRINTI "The " PRINTD COMPUTESTOR PRINTR " is off!" ?ELS35: EQUAL? PRSA,V?USE,V?ASK \?ELS39 FSET? VIDEOPHONE,MUNGBIT \?ELS44 CALL PERFORM,V?ASK-ABOUT,COMPUTESTOR,VIDEOPHONE RTRUE ?ELS44: IN? CATALYST-CAPSULE,REACTOR /FALSE CALL PERFORM,V?ASK-ABOUT,COMPUTESTOR,GLOBAL-SUB RTRUE ?ELS39: EQUAL? PRSA,V?ASK-ABOUT \FALSE EQUAL? PRSO,COMPUTESTOR \FALSE EQUAL? PRSI,CIRCUIT-BREAKER \?ELS57 FSET? CIRCUIT-BREAKER,OPENBIT \?ELS57 PRINTI """A " PRINTD CIRCUIT-BREAKER PRINTR " is open.""" ?ELS57: EQUAL? PRSI,VIDEOPHONE \?ELS63 FSET? VIDEOPHONE,MUNGBIT \?ELS63 SET 'TIP-SAYS-1,32 SET 'TIP-SAYS-2,VIDEOPHONE CALL QUEUE,I-TIP-SAYS,3 PUT STACK,0,1 PRINTI """Symptoms: no picture, no sound. Possible causes: 1) Failure of the " PRINTD VIDEOPHONE-TRANSMITTER PRINTI " at source. 2) A short in the " PRINTD VIDEOPHONE-CABLE PRINTI " linking " PRINTD VIDEOPHONE-TRANSMITTER PRINTI " to" CALL RESEARCH-LAB PRINTI ", if signal is coming from " PRINTD AQUADOME PRINTI ". 3) Sunspot interference or " PRINTD VIDEOPHONE-SATELLITE PRINTI " malfunction if " PRINTD VIDEOPHONE-TRANSMITTER PRINTI " is at earth's surface. 4) Failure of the video receiver. 5) Overload in the " PRINTD ELECTRICAL-CONTROL-PANEL PRINTI " (" PRINTD CIRCUIT-BREAKER PRINTI " popped). 6) Sabotage (" PRINTD CIRCUIT-BREAKER PRINTR " open).""" ?ELS63: EQUAL? PRSI,VIDEOPHONE-TRANSMITTER \?ELS71 FSET? VIDEOPHONE,MUNGBIT \?ELS71 PRINTI "Impossible. It's located " PRINTD UNDERWATER PRINTI " at the " PRINTD AQUADOME PRINTI ", beyond your control. Right now you have no communication with the " PRINTD AQUADOME PRINTR "." ?ELS71: EQUAL? PRSI,VIDEOPHONE-CABLE \?ELS77 PRINTR "This can be done only by submarine." ?ELS77: EQUAL? PRSI,VIDEOPHONE-SATELLITE \?ELS81 PRINTI "You're goofing off, " CALL PRINT-NAME,FIRST-NAME PRINTI ". Video signals from the " PRINTD AQUADOME PRINTI " to" CALL RESEARCH-LAB PRINTI " are NOT relayed by a space " PRINTD VIDEOPHONE-SATELLITE PRINTR "." ?ELS81: EQUAL? PRSI,VIDEOPHONE-RECEIVER \?ELS87 PRINTI "You can do this by pushing the " PRINTD TEST-BUTTON PRINTI " on the " PRINTD VIDEOPHONE PRINTR "." ?ELS87: EQUAL? PRSI,REACTOR,GLOBAL-SUB \?ELS91 IN? CATALYST-CAPSULE,REACTOR /?ELS91 PRINTI """Symptom: " PRINTD ENGINE PRINTI " won't start. Possible causes: 1) The " PRINTD CATALYST-CAPSULE PRINTI " is not inserted in the " PRINTD REACTOR PRINTI ". 2) The " PRINTD REACTOR PRINTI " is not turned on. 3) The " PRINTD TEST-TANK PRINTR " is not filled.""" ?ELS91: PRINTI """This device is designed only to troubleshoot operating problems."" (Maybe you can find information about" CALL THE-PRSI-PRINT PRINTR " in your SEASTALKER package.)" .FUNCT VIDEOPHONE-TEST-F EQUAL? PRSA,V?ANALYZE \FALSE CALL PERFORM,V?ASK-ABOUT,COMPUTESTOR,PRSO RTRUE .FUNCT EAST-WALL-F,RARG=0 EQUAL? RARG,M-LOOK \?ELS5 PRINTI "You're in the " PRINTD EAST-WALL PRINTI " of " PRINTD YOUR-LABORATORY PRINTI ". A doorway leads out through a " PRINTD HALLWAY PRINTI " to the office of your " PRINTD LAB-ASSISTANT PRINTI ", " PRINTD GLOBAL-SHARON PRINTI ". A " PRINTD MICROWAVE-SECURITY-SCANNER PRINTI " stands against the wall. An " PRINTD INTERCOM PRINTI " sits on the " PRINTD DESK PRINTR "." ?ELS5: EQUAL? RARG,M-ENTER \FALSE CALL VIDEOPHONE-WORKING ZERO? STACK \TRUE RFALSE .FUNCT VIDEOPHONE-WORKING ZERO? BREAKER-JUST-FIXED /FALSE FSET? CIRCUIT-BREAKER,OPENBIT /FALSE SET 'BREAKER-JUST-FIXED,FALSE-VALUE PRINTI "As you re-enter the lab, " CALL TIP-SAYS PRINTI "Look, " CALL PRINT-NAME,FIRST-NAME PRINTI "! The " PRINTD VIDEOPHONE PRINTR "'s working again! There's a normal test pattern on the screen!""" .FUNCT MICROWAVE-SECURITY-SCANNER-F EQUAL? PRSA,V?LAMP-ON \FALSE PRINTR "No beep occurs. Scanner displays: ""NO INTRUDER PRESENT ON GROUNDS.""" .FUNCT DESK-F CALL COMMON-DESK-F,DESK RSTACK .FUNCT COMMON-DESK-F,OBJ EQUAL? PRSA,V?OPEN \?ELS5 PRINTR "It has no drawers." ?ELS5: EQUAL? PRSA,V?LOOK-ON,V?LOOK-INSIDE,V?EXAMINE \FALSE EQUAL? PRSO,OBJ \FALSE PRINTI "An " PRINTD INTERCOM PRINTI " is on the desk" FIRST? OBJ \?CND14 PRINTI ", as well as " CALL PRINT-CONTENTS,OBJ ?CND14: PRINTR "." .FUNCT GENERIC-DESK-F,OBJ CALL IN-LAB?,HERE ZERO? STACK /?ELS5 RETURN DESK ?ELS5: EQUAL? HERE,OFFICE \?ELS7 RETURN KEMP-DESK ?ELS7: ZERO? SUB-IN-DOME /FALSE RETURN BLY-DESK .FUNCT HALLWAY-F,RARG=0 EQUAL? RARG,M-LOOK \?ELS5 PRINTI "You're in a " PRINTD HALLWAY PRINTI ", with " PRINTD YOUR-LABORATORY PRINTI " to the west, a " PRINTD LAB-STORAGE PRINTI " to the south, and " PRINTD OFFICE PRINTI " to the east. An " PRINTD ELECTRICAL-CONTROL-PANEL PRINTR " fills most of the north wall." ?ELS5: EQUAL? RARG,M-ENTER \FALSE FSET? CIRCUIT-BREAKER,MUNGBIT \FALSE CALL TELL-HINT,31,ELECTRICAL-CONTROL-PANEL,FALSE-VALUE RSTACK .FUNCT ELECTRICAL-CONTROL-PANEL-F EQUAL? PRSA,V?EXAMINE,V?ANALYZE \?ELS5 FSET? CIRCUIT-BREAKER,OPENBIT \?ELS5 CALL THIS-IS-IT,CIRCUIT-BREAKER PRINTI "A " PRINTD CIRCUIT-BREAKER PRINTI " on the " PRINTD ELECTRICAL-CONTROL-PANEL PRINTI " is open. This " PRINTD CIRCUIT-BREAKER PRINTI " controls the " PRINTD POWER-SUPPLY PRINTI " to the " PRINTD VIDEOPHONE PRINTI " and other equipment in the private " PRINTD VIDEOPHONE PRINTI " network." CRLF IN? TIP,HERE \TRUE CALL TIP-SAYS PRINTR "How did that happen? You didn't overload the circuit.""" ?ELS5: EQUAL? PRSA,V?OPEN \FALSE PRINTI "You don't need to open the " PRINTD ELECTRICAL-CONTROL-PANEL PRINTR "." .FUNCT CIRCUIT-BREAKER-F,V EQUAL? PRSA,V?EXAMINE,V?ANALYZE \?ELS5 FSET? PRSO,OPENBIT \?ELS5 CALL TELL-HINT,31,ELECTRICAL-CONTROL-PANEL,FALSE-VALUE RSTACK ?ELS5: EQUAL? PRSA,V?LAMP-ON,V?TURN,V?MOVE /?THN10 EQUAL? PRSA,V?FIX,V?PUSH,V?CLOSE \?ELS9 ?THN10: FSET? PRSO,OPENBIT \?ELS16 FSET PRSO,NDESCBIT CALL OKAY,CIRCUIT-BREAKER,STR?17 FSET? PRSO,MUNGBIT \TRUE SET 'BREAKER-JUST-FIXED,TRUE-VALUE FCLEAR PRSO,MUNGBIT FCLEAR VIDEOPHONE,MUNGBIT FSET VIDEOPHONE,ONBIT CALL SCORE-OBJ,CIRCUIT-BREAKER RTRUE ?ELS16: CALL ALREADY,CIRCUIT-BREAKER,STR?17 RSTACK ?ELS9: EQUAL? PRSA,V?LAMP-OFF,V?OPEN \FALSE FSET? PRSO,OPENBIT \?ELS28 CALL ALREADY,CIRCUIT-BREAKER,STR?21 RSTACK ?ELS28: PRINTR "You shouldn't do that." .FUNCT GENERIC-STORAGE-ROOM-F,OBJ ZERO? SUB-IN-DOME /?ELS5 RETURN DOME-STORAGE ?ELS5: ZERO? SUB-IN-TANK /FALSE RETURN LAB-STORAGE .FUNCT GENERIC-OFFICE-F,OBJ ZERO? SUB-IN-DOME /?ELS5 RETURN BLY-OFFICE ?ELS5: ZERO? SUB-IN-TANK /FALSE RETURN OFFICE .FUNCT OFFICE-F,ARG=0 EQUAL? ARG,M-LOOK \?ELS5 PRINTI "You're in the office of your " PRINTD LAB-ASSISTANT PRINTI ", " PRINTD GLOBAL-SHARON PRINTI ". There is a desk and chair here, and the " PRINTD OFFICE-DOOR PRINTI " leading out to the parking lot. To the west, a " PRINTD HALLWAY PRINTI " leads back to " PRINTD YOUR-LABORATORY PRINTR "." ?ELS5: IN? SHARON,OFFICE \?ELS9 EQUAL? ARG,M-BEG \?ELS9 CALL EXIT-VERB? ZERO? STACK /?ELS9 FSET SHARON,NDESCBIT FSET FILE-DRAWER,NDESCBIT FSET PAPERS,NDESCBIT RFALSE ?ELS9: EQUAL? ARG,M-ENTER \FALSE FCLEAR SHARON,NDESCBIT FCLEAR FILE-DRAWER,NDESCBIT FCLEAR PAPERS,NDESCBIT IN? SHARON,OFFICE \FALSE CALL THIS-IS-IT,SHARON CALL THIS-IS-IT,FILE-DRAWER PRINTI "As you enter, Sharon is hastily going through the contents of an open " PRINTD FILE-DRAWER PRINTR ". She turns with a startled expression as you appear in the doorway. Her face is flushed and her manner seems slightly emotional." .FUNCT OFFICE-DOOR-F EQUAL? PRSA,V?OPEN \FALSE PRINTR "There's nothing outside to help your mission!" .FUNCT PAPERS-F,X EQUAL? PRSA,V?LOOK-UP \?ELS5 EQUAL? PRSI,PAPERS,FILE-DRAWER \?ELS5 FSET? PRSO,PERSON \?ELS10 GETP LOCAL-SUB,P?TEXT PRINT STACK CRLF JUMP ?CND8 ?ELS10: PRINTI "There's no information in the drawer about that." ?CND8: CRLF RTRUE ?ELS5: EQUAL? PRSA,V?CLOSE \?ELS18 IN? SHARON,OFFICE \?ELS18 PRINTI "Sharon stops you from closing it. ""Hey, " CALL PRINT-NAME,FIRST-NAME PRINTR "! I can't do my job here if you interfere!""" ?ELS18: EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH,V?TAKE /?THN25 EQUAL? PRSA,V?READ,V?LOOK-INSIDE,V?EXAMINE \FALSE ?THN25: FSET? FILE-DRAWER,OPENBIT /?CND27 CALL TOO-BAD-BUT,FILE-DRAWER,STR?17 RTRUE ?CND27: FSET PAPERS,TOUCHBIT PRINTI "You look " EQUAL? P-ADVERB,W?CAREFULLY \?ELS34 PRINTI "more thoroughly through the drawer and still" JUMP ?CND32 ?ELS34: PRINTI "quickly through the drawer but" ?CND32: PRINTR " find nothing suspicious, so you decide to leave the papers alone." .FUNCT KEMP-DESK-F CALL COMMON-DESK-F,KEMP-DESK RSTACK .FUNCT SOUTH-WALL-F,RARG=0 EQUAL? RARG,M-LOOK \?ELS5 PRINTI "You're in the " PRINTD SOUTH-WALL PRINTI " of " PRINTD YOUR-LABORATORY PRINTI ", next to shelves full of chemical and electronic supplies. A door leads south to the " PRINTD TEST-TANK PRINTR "." ?ELS5: EQUAL? RARG,M-ENTER \FALSE CALL VIDEOPHONE-WORKING ZERO? STACK \TRUE RFALSE .FUNCT CHEMICAL-SUPPLY-SHELVES-F EQUAL? PRSA,V?PUT /?THN6 EQUAL? PRSA,V?LOOK-ON,V?LOOK-INSIDE,V?EXAMINE \FALSE ?THN6: FCLEAR CHEMICALS,NDESCBIT RFALSE .FUNCT ELECTRONIC-SUPPLY-SHELVES-F EQUAL? PRSA,V?PUT /?THN6 EQUAL? PRSA,V?LOOK-ON,V?LOOK-INSIDE,V?EXAMINE \FALSE ?THN6: FCLEAR ELECTRONICS,NDESCBIT RFALSE .FUNCT WEST-WALL-F,RARG=0 EQUAL? RARG,M-LOOK \?ELS5 PRINTI "You're in the " PRINTD WEST-WALL PRINTI " of " PRINTD YOUR-LABORATORY PRINTR ", next to a shelf full of mechanical supplies." ?ELS5: EQUAL? RARG,M-ENTER \FALSE CALL VIDEOPHONE-WORKING ZERO? STACK \TRUE RFALSE .FUNCT MECHANICAL-SUPPLY-SHELVES-F EQUAL? PRSA,V?PUT /?THN6 EQUAL? PRSA,V?LOOK-ON,V?LOOK-INSIDE,V?EXAMINE \FALSE ?THN6: FCLEAR MECHANICALS,NDESCBIT RFALSE .FUNCT GENERIC-CENTER-F,OBJ ZERO? SUB-IN-TANK /?ELS5 RETURN CENTER-OF-LAB ?ELS5: ZERO? SUB-IN-DOME /FALSE RETURN CENTER-OF-DOME .FUNCT CENTER-OF-LAB-F,RARG=0 EQUAL? RARG,M-BEG \?ELS5 LOC MICROPHONE EQUAL? STACK,WINNER \?ELS5 CALL EXIT-VERB? ZERO? STACK /?ELS5 CALL THIS-IS-IT,MICROPHONE CALL HE-SHE-IT,WINNER,TRUE-VALUE PRINTI " can't walk away while " CALL HE-SHE-IT,WINNER,FALSE-VALUE,STR?113 PRINTI " holding the " PRINTD MICROPHONE PRINTR "!" ?ELS5: EQUAL? RARG,M-LOOK \?ELS13 PRINTI "You're at your workbench in the center of " PRINTD YOUR-LABORATORY PRINTI ", a small part of" CALL RESEARCH-LAB PRINTI " in the town of Frobton. The " PRINTD VIDEOPHONE PRINTI " screen looms overhead" ZERO? ALARM-RINGING /?CND18 PRINTI ", with its " PRINTD ALARM PRINTI " ringing" ?CND18: PRINTR "." ?ELS13: EQUAL? RARG,M-ENTER \FALSE CALL VIDEOPHONE-WORKING ZERO? STACK \TRUE RFALSE .FUNCT WORKBENCH-F EQUAL? PRSA,V?PUT,V?LOOK-ON,V?LOOK-INSIDE /?THN6 EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \FALSE ?THN6: FCLEAR SUB-PLANS,NDESCBIT RFALSE .FUNCT SCREENPLAY PRINTR "Screenplay by Jim Lawrence" .FUNCT SUB-PLANS-F,X EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \FALSE PRINTI "Written in one corner is the legend: " RANDOM 2 >X EQUAL? X,1 \?CND8 CALL SCREENPLAY ?CND8: PRINTI " Directed by Stu Galley " EQUAL? X,1 /?CND13 CALL SCREENPLAY ?CND13: CRLF CALL V-VERSION RSTACK .FUNCT GENERIC-MICROPHONE-F,OBJ ZERO? SUB-IN-TANK /?ELS5 RETURN MICROPHONE ?ELS5: ZERO? SUB-IN-DOME /FALSE RETURN MICROPHONE-DOME .FUNCT MICROPHONE-F,DOME?=0 EQUAL? PRSA,V?EXAMINE \?ELS5 PRINTI "The " PRINTD MICROPHONE PRINTI " is connected to the " PRINTD VIDEOPHONE PRINTI " by a coiled cord. At the moment, it is turned o" ZERO? DOME? /?ELS16 FSET? MICROPHONE-DOME,ONBIT /?THN13 ?ELS16: ZERO? DOME? \?ELS12 FSET? MICROPHONE,ONBIT \?ELS12 ?THN13: PRINTR "n." ?ELS12: PRINTR "ff." ?ELS5: EQUAL? PRSA,V?LAMP-OFF /?THN29 CALL DIVESTMENT?,MICROPHONE ZERO? STACK \?THN29 CALL DIVESTMENT?,MICROPHONE-DOME ZERO? STACK /?ELS26 ?THN29: EQUAL? PRSO,MICROPHONE-DOME,MICROPHONE \?ELS26 EQUAL? VIDEOPHONE,REMOTE-PERSON-ON \?ELS26 PRINTI "You'd better say ""Good-bye"" to " PRINTD REMOTE-PERSON PRINTR " first." ?ELS26: EQUAL? PRSA,V?SAY-INTO,V?REPLY \?ELS34 FSET? VIDEOPHONE,ONBIT /?ELS34 PRINTI "That won't do any good while the " PRINTD VIDEOPHONE PRINTR " is off." ?ELS34: EQUAL? PRSA,V?SAY-INTO \?ELS40 EQUAL? REMOTE-PERSON-ON,VIDEOPHONE \?ELS45 PRINTD REMOTE-PERSON PRINTR " nods at you." ?ELS45: ZERO? WOMAN-ON-SCREEN /?ELS49 PRINTR "That won't do any good while the sound is fuzzy." ?ELS49: PRINTR "It's not clear whom you're talking to." ?ELS40: EQUAL? PRSA,V?LAMP-ON \FALSE IN? MICROPHONE,PLAYER /?THN61 IN? MICROPHONE-DOME,PLAYER \FALSE ?THN61: ZERO? DOME? /?ELS69 FSET? MICROPHONE-DOME,ONBIT /?THN66 ?ELS69: ZERO? DOME? \?CND63 FSET? MICROPHONE,ONBIT \?CND63 ?THN66: CALL ALREADY,MICROPHONE,STR?42 RTRUE ?CND63: ZERO? DOME? /?ELS76 CALL OKAY,MICROPHONE-DOME,STR?42 RSTACK ?ELS76: CALL OKAY,MICROPHONE,STR?42 RSTACK .FUNCT TECHNICIAN-F EQUAL? PRSA,V?$CALL /?THN6 EQUAL? PRSA,V?TAKE,V?PHONE,V?FIND \FALSE ?THN6: PRINTI "How can you do that? By telepathy or carrier pigeon? " IN? SHARON,OFFICE \?CND10 PRINTI "Seriously, your " PRINTD LAB-ASSISTANT PRINTI ", " PRINTD SHARON PRINTI ", is in her office, which is through a doorway to the east. Or, you could summon her by the " PRINTD INTERCOM PRINTI " on your desk." ?CND10: CRLF RTRUE .FUNCT GANGPLANK-F EQUAL? PRSA,V?CLIMB-ON,V?CLIMB-DOWN,V?BOARD \FALSE CALL DO-WALK,P?SOUTH RTRUE .FUNCT GENERIC-TANK-CONTROL-GEAR-F,OBJ RETURN TANK-CONTROL-GEAR-1 .FUNCT GENERIC-TANK-AREA-F,OBJ RETURN NORTH-TANK-AREA .FUNCT TANK-AREA-F,RARG=0 EQUAL? RARG,M-LOOK \FALSE USL FSET NORTH-TANK-AREA,TOUCHBIT FSET WEST-TANK-AREA,TOUCHBIT FSET SOUTH-TANK-AREA,TOUCHBIT EQUAL? HERE,NORTH-TANK-AREA \?ELS8 PRINTI "You're at a temporary runway or gangplank that leads from the walkway to the " PRINTD SUB-DOOR PRINTI " of the " PRINTD GLOBAL-SUB PRINTI ". " CALL CHECK-DOOR,SUB-DOOR JUMP ?CND6 ?ELS8: EQUAL? HERE,WEST-TANK-AREA \?CND6 PRINTI "You're at a " PRINTD WORK-COUNTER PRINTI ", next to the " PRINTD TANK-CONTROL-GEAR-1 PRINTI " used to operate the " PRINTD TEST-TANK PRINTI ". " ?CND6: PRINTI "The test tank (which is now " ZERO? TEST-TANK-FULL /?ELS19 PRINTI "filled with " JUMP ?CND17 ?ELS19: PRINTI "empty of " ?CND17: PRINTD GLOBAL-WATER PRINTI ") is located in a large work room, just south of " PRINTD YOUR-LABORATORY PRINTI ", with concrete-block walls on three sides and a high metal roof. Most of its floor is dug out and lined with steel, to form the huge tank used for developing and testing " PRINTD UNDERWATER PRINTR " gear and the pilot models of your submarine craft. There's a walkway around the tank on three sides -- north, west and south. On the east side, a steel gate forms the wall of the room." .FUNCT FRESH-AIR?,RM,P,L,TBL,O ZERO? DOME-AIR-BAD? /?CND1 ZERO? SUB-IN-DOME /?CND1 PRINTR "It's impossible to tell that way whether the air is good." ?CND1: SET 'P,0 ?PRG8: NEXTP HERE,P >P ZERO? P /FALSE LESS? P,LOW-DIRECTION /?PRG8 GETPT HERE,P >TBL PTSIZE TBL >L EQUAL? L,DEXIT \?PRG8 GETB TBL,DEXITOBJ >O FSET? O,OPENBIT \?PRG8 PRINTI "There's a pleasant breeze coming through the " PRINTD O PRINTR "." .FUNCT CORRIDOR-LOOK,ITM=0,C,Z,COR,VAL,FOUND=0 GETP HERE,P?CORRIDOR >C ZERO? C /FALSE ?PRG6: SUB C,8192 >Z LESS? Z,0 /?ELS10 SET 'COR,COR-20000 JUMP ?CND8 ?ELS10: SUB C,4096 >Z LESS? Z,0 /?ELS12 SET 'COR,COR-10000 JUMP ?CND8 ?ELS12: SUB C,2048 >Z LESS? Z,0 /?ELS14 SET 'COR,COR-4000 JUMP ?CND8 ?ELS14: SUB C,1024 >Z LESS? Z,0 /?ELS16 SET 'COR,COR-2000 JUMP ?CND8 ?ELS16: SUB C,512 >Z LESS? Z,0 /?ELS18 SET 'COR,COR-1000 JUMP ?CND8 ?ELS18: SUB C,256 >Z LESS? Z,0 /?ELS20 SET 'COR,COR-400 JUMP ?CND8 ?ELS20: SUB C,128 >Z LESS? Z,0 /?ELS22 SET 'COR,COR-200 JUMP ?CND8 ?ELS22: SUB C,64 >Z LESS? Z,0 /?ELS24 SET 'COR,COR-64 JUMP ?CND8 ?ELS24: SUB C,32 >Z LESS? Z,0 /?ELS26 SET 'COR,COR-32 JUMP ?CND8 ?ELS26: SUB C,16 >Z LESS? Z,0 /?ELS28 SET 'COR,COR-16 JUMP ?CND8 ?ELS28: SUB C,8 >Z LESS? Z,0 /?ELS30 SET 'COR,COR-8 JUMP ?CND8 ?ELS30: SUB C,4 >Z LESS? Z,0 /?ELS32 SET 'COR,COR-4 JUMP ?CND8 ?ELS32: SUB C,2 >Z LESS? Z,0 /?ELS34 SET 'COR,COR-2 JUMP ?CND8 ?ELS34: SUB C,1 >Z LESS? Z,0 /?REP7 SET 'COR,COR-1 ?CND8: CALL CORRIDOR-CHECK,COR,ITM >VAL ZERO? FOUND \?CND39 SET 'FOUND,VAL ?CND39: SET 'C,Z JUMP ?PRG6 ?REP7: RETURN FOUND .FUNCT CORRIDOR-CHECK,COR,ITM,CNT=2,PAST=0,FOUND=0,RM,OBJ ?PRG1: GET COR,CNT >RM ZERO? RM /FALSE EQUAL? RM,HERE \?ELS7 SET 'PAST,1 JUMP ?CND3 ?ELS7: FIRST? RM >OBJ \?CND3 ?PRG10: ZERO? ITM /?ELS14 EQUAL? OBJ,ITM \?CND12 GET COR,PAST >FOUND JUMP ?REP11 ?ELS14: FSET? OBJ,PERSON \?CND12 FSET? OBJ,INVISIBLE /?CND12 FSET? OBJ,NDESCBIT /?CND12 CALL IS-CREW?,OBJ ZERO? STACK /?ELS25 CALL CREW-5-TOGETHER? ZERO? STACK /?ELS25 FSET? BLY,MUNGBIT /?ELS25 EQUAL? OBJ,LOWELL \?CND23 PRINTI "The five " PRINTD CREW PRINTI " members are off to " GET COR,PAST CALL DIR-PRINT,STACK PRINTI "." CRLF JUMP ?CND23 ?ELS25: FSET? OBJ,TOUCHBIT /?ELS36 PRINTI "Someone is off to " GET COR,PAST CALL DIR-PRINT,STACK PRINTI "." CRLF JUMP ?CND12 ?ELS36: PRINTD OBJ PRINTI " is off to " GET COR,PAST CALL DIR-PRINT,STACK PRINTI "." CRLF ?CND23: ?CND12: NEXT? OBJ >OBJ /?KLU54 ?KLU54: ZERO? OBJ \?PRG10 ?REP11: ZERO? FOUND /?CND3 RETURN FOUND ?CND3: INC 'CNT JUMP ?PRG1 .ENDI