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

1170 lines
28 KiB
Plaintext

.FUNCT DO-INSTEAD-OF,OBJ1,OBJ2
EQUAL? PRSI,OBJ2 \?ELS5
CALL PERFORM,PRSA,PRSO,OBJ1
RSTACK
?ELS5: EQUAL? PRSO,OBJ2 \?ELS7
CALL PERFORM,PRSA,OBJ1,PRSI
RSTACK
?ELS7: CALL V-FOO
ZERO? STACK /FALSE
RTRUE
.FUNCT TURN-F
EQUAL? PRSA,V?USE \FALSE
CALL PERFORM,V?WAIT-FOR,PRSO
RTRUE
.FUNCT IT-F
EQUAL? PRSI,IT \?THN10
EQUAL? PRSA,V?TELL-ABOUT /?THN10
EQUAL? PRSA,V?SEARCH-FOR,V?ASK-FOR,V?ASK-ABOUT /?THN14
?THN10: EQUAL? PRSO,IT \FALSE
EQUAL? PRSA,V?WHAT /?THN14
EQUAL? PRSA,V?FIND,V?ASK-CONTEXT-FOR,V?ASK-CONTEXT-ABOUT \FALSE
?THN14: PRINTR """I'm not sure what you're talking about."""
.FUNCT FLOOR-F
EQUAL? PRSA,V?PUT \?ELS5
EQUAL? PRSI,FLOOR \?ELS5
CALL PERFORM,V?DROP,PRSO
RTRUE
?ELS5: EQUAL? PRSA,V?WALK-TO,V?THROUGH \?ELS9
ZERO? SUB-IN-TANK /FALSE
CALL PERFORM,PRSA,TEST-TANK
RTRUE
?ELS9: EQUAL? PRSA,V?LOOK-ON,V?SEARCH,V?EXAMINE \FALSE
PRINTR "You don't find anything new there."
.FUNCT GLOBAL-SNARK-F
EQUAL? PRSA,V?FIND,V?EXAMINE \?ELS5
ZERO? SNARK-ATTACK-COUNT \TRUE
?ELS5: EQUAL? PRSA,V?FIND \FALSE
ZERO? MONSTER-GONE \FALSE
PRINTI "It's attacking the "
PRINTD AQUADOME
PRINTR "!"
.FUNCT MIKE-3-F,OBJ
PRINTI "The "
PRINTD OBJ
PRINTI " is mounted on "
CALL PRINTA,CLAW
PRINTR "."
.FUNCT CANT-SEND
PRINTR "You can't send it. Only you can pilot it there."
.FUNCT LOCAL-SUB-F
EQUAL? PRSA,V?TURN,V?PUT \?ELS5
CALL MORE-SPECIFIC
RSTACK
?ELS5: EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH \?ELS7
CALL DO-INSTEAD-OF,SUB,LOCAL-SUB
RTRUE
?ELS7: EQUAL? PRSA,V?EXAMINE \?ELS9
GET ON-SUB,0
ZERO? STACK \?CND10
GET ON-SUB,1
ZERO? STACK \?CND10
GETP LOCAL-SUB,P?TEXT
PRINT STACK
CRLF
RTRUE
?CND10: GET ON-SUB,0
ZERO? STACK /?CND17
GET ON-SUB,0
CALL MIKE-3-F,STACK
?CND17: GET ON-SUB,1
ZERO? STACK /TRUE
GET ON-SUB,1
CALL MIKE-3-F,STACK
RTRUE
?ELS9: EQUAL? PRSA,V?FIND \?ELS24
CALL INT,I-SEND-SUB
PUT STACK,0,0
PRINTR "It's right here!"
?ELS24: EQUAL? PRSA,V?LOOK-BEHIND /?THN29
EQUAL? PRSA,V?LOOK-OUTSIDE \?ELS28
EQUAL? HERE,SUB \?ELS28
?THN29: CALL PERFORM,V?LOOK-OUTSIDE,SUB-WINDOW
RTRUE
?ELS28: EQUAL? PRSA,V?LOOK-INSIDE \?ELS34
EQUAL? HERE,SUB,CRAWL-SPACE \?ELS39
CALL PERFORM,V?LOOK
RTRUE
?ELS39: PRINTR "You can't see much from here."
?ELS34: EQUAL? PRSA,V?SEND-TO,V?SEND-OUT,V?SEND \?ELS45
EQUAL? PRSO,LOCAL-SUB \?ELS45
CALL CANT-SEND
RSTACK
?ELS45: EQUAL? PRSA,V?BOARD,V?THROUGH \?ELS49
EQUAL? HERE,SUB,CRAWL-SPACE \?ELS54
CALL ALREADY,WINNER,STR?117
RSTACK
?ELS54: EQUAL? HERE,AIRLOCK-WALL \?ELS56
CALL GOTO,AIRLOCK
ZERO? STACK /FALSE
CALL GOTO,SUB
ZERO? STACK /TRUE
EQUAL? WINNER,PLAYER /TRUE
CALL OKAY
RTRUE
?ELS56: EQUAL? HERE,WEST-TANK-AREA,SOUTH-TANK-AREA \?ELS68
GETP WEST-TANK-AREA,P?EAST
PRINT STACK
CRLF
RTRUE
?ELS68: CALL DO-WALK,P?IN
RTRUE
?ELS49: EQUAL? PRSA,V?RAISE,V?DROP,V?DISEMBARK \?ELS74
EQUAL? HERE,SUB,CRAWL-SPACE /?ELS79
PRINTR "You're not in it!"
?ELS79: EQUAL? PRSA,V?DROP \?ELS83
CALL DO-WALK,P?DOWN
RTRUE
?ELS83: EQUAL? PRSA,V?RAISE \?ELS85
CALL DO-WALK,P?UP
RTRUE
?ELS85: CALL DO-WALK,P?OUT
RTRUE
?ELS74: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS89
EQUAL? HERE,CRAWL-SPACE,AIRLOCK-WALL /?ELS89
CALL PERFORM,PRSA,SUB-DOOR
RTRUE
?ELS89: EQUAL? PRSA,V?ANALYZE \?ELS93
EQUAL? PRSI,DAMAGE,GLOBAL-SABOTAGE,FALSE-VALUE \?ELS93
PRINTI "You can do this by pushing the "
PRINTD TEST-BUTTON
EQUAL? HERE,SUB,CRAWL-SPACE /?CND98
PRINTI " on the "
PRINTD CONTROLS
PRINTI " inside"
?CND98: PRINTR "."
?ELS93: EQUAL? PRSA,V?LAMP-ON \?ELS106
EQUAL? HERE,SUB /?ELS111
CALL THIS-IS-IT,SUB
PRINTI "You have to be in the "
PRINTD SUB
PRINTR " to start it."
?ELS111: FSET? REACTOR,ONBIT /?ELS115
CALL THIS-IS-IT,REACTOR
PRINTR "The reactor is off!"
?ELS115: ZERO? SUB-IN-TANK /?ELS123
ZERO? TEST-TANK-FULL \?ELS123
CALL THIS-IS-IT,TEST-TANK
ZERO? STACK \?THN120
?ELS123: ZERO? SUB-IN-DOME /?ELS119
ZERO? AIRLOCK-FULL \?ELS119
CALL THIS-IS-IT,AIRLOCK
ZERO? STACK /?ELS119
?THN120: PRINTR "The tank is empty!"
?ELS119: ZERO? SUB-IN-TANK /?ELS133
FSET? TANK-GATE,OPENBIT /?ELS133
CALL THIS-IS-IT,TANK-GATE
ZERO? STACK \?THN130
?ELS133: ZERO? SUB-IN-DOME /?ELS129
FSET? AIRLOCK-HATCH,OPENBIT /?ELS129
CALL THIS-IS-IT,AIRLOCK-HATCH
ZERO? STACK /?ELS129
?THN130: PRINTR "The gate is closed!"
?ELS129: FSET? ENGINE,ONBIT /?ELS139
CALL THIS-IS-IT,ENGINE
PRINTR "The engine is off!"
?ELS139: PRINTI "You can do this by setting the throttle to the speed you want (slow, medium, or fast) and by moving the "
PRINTD JOYSTICK
PRINTI " in the "
PRINTD INTDIR
PRINTR " you wish to go."
?ELS106: EQUAL? PRSA,V?STOP \FALSE
EQUAL? HERE,SUB /?ELS152
CALL THIS-IS-IT,SUB
PRINTI "You have to be in the "
PRINTD SUB
PRINTR " to stop it."
?ELS152: FSET? ENGINE,ONBIT /?ELS156
PRINTR "The engine is off!"
?ELS156: SET 'TARGET-DEPTH,SUB-DEPTH
PRINT I-ASSUME
PRINTI " close the "
PRINTD THROTTLE
PRINTI ".)"
CRLF
CALL PERFORM,V?CLOSE,THROTTLE
RTRUE
.FUNCT GLOBAL-SUB-2-F
CALL DO-INSTEAD-OF,GLOBAL-SUB,GLOBAL-SUB-2
RTRUE
.FUNCT GLOBAL-SUB-F
ZERO? SUB-IN-TANK /?ELS5
ZERO? BLY-TOLD-PROBLEM \?THN8
EQUAL? PRSO,GLOBAL-BLY /?ELS5
?THN8: EQUAL? PRSA,V?FIND /?THN10
EQUAL? PRSA,V?ASK-ABOUT \?ELS5
FSET? PRSO,PERSON \?ELS5
?THN10: CALL INT,I-SEND-SUB
PUT STACK,0,0
PRINTI "The only sub at"
CALL RESEARCH-LAB
PRINTI " is your new "
PRINTD GLOBAL-SUB
PRINTI ". It's located in the test tank just south of "
PRINTD YOUR-LABORATORY
PRINTR "."
?ELS5: EQUAL? PRSA,V?WALK-TO,V?THROUGH,V?BOARD \?ELS19
CALL CHEERS?
CALL GOTO,SUB
ZERO? STACK /TRUE
EQUAL? WINNER,PLAYER /TRUE
CALL OKAY
RTRUE
?ELS19: EQUAL? PRSA,V?PUT \?ELS26
FSET? PRSO,WEAPONBIT /FALSE
CALL MORE-SPECIFIC
RSTACK
?ELS26: EQUAL? PRSA,V?SEND-TO,V?SEND-OUT,V?SEND \FALSE
EQUAL? PRSO,GLOBAL-SUB \FALSE
CALL CANT-SEND
RSTACK
.FUNCT CONTROLS-F
EQUAL? HERE,CENTER-OF-LAB \?ELS5
EQUAL? PRSA,V?LAMP-OFF,V?LAMP-ON,V?EXAMINE /?ELS5
CALL DO-INSTEAD-OF,VIDEOPHONE,CONTROLS
RTRUE
?ELS5: EQUAL? HERE,WEST-TANK-AREA \FALSE
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "These are valves, gauges and control gear needed to make full use of the tank. Two important controls are the "
PRINTD OPEN-GATE-BUTTON
PRINTI " and the "
PRINTD FILL-TANK-BUTTON
PRINTI ". This gear can be operated by remote control from all "
CALL PRINT-NAME,LAST-NAME
PRINTR " subs."
.FUNCT PHONE-ON,PER,PWHERE,ON
SET 'REMOTE-PERSON,PER
SET 'QCONTEXT,PER
CALL THIS-IS-IT,PER
SET 'REMOTE-PERSON-REMLOC,PWHERE
SET 'REMOTE-PERSON-ON,ON
SET 'REMOTE-PERSON-LOC,HERE
SET 'QCONTEXT-ROOM,HERE
MOVE REMOTE-PERSON,REMOTE-PERSON-LOC
RTRUE
.FUNCT PHONE-OFF
ZERO? REMOTE-PERSON /FALSE
MOVE REMOTE-PERSON,GLOBAL-OBJECTS
SET 'REMOTE-PERSON,FALSE-VALUE
SET 'REMOTE-PERSON-LOC,FALSE-VALUE
SET 'REMOTE-PERSON-ON,FALSE-VALUE
RETURN REMOTE-PERSON-ON
.FUNCT INTERCOM-F,P,L
EQUAL? PRSA,V?SAY-INTO,V?LAMP-ON \?ELS5
PRINTR "Try the command: CALL (someone) ON THE INTERCOM."
?ELS5: EQUAL? PRSA,V?PHONE \FALSE
FSET? PRSO,PERSON \?ELS12
GETP PRSO,P?CHARACTER
GET CHARACTER-TABLE,STACK >P
LOC P >L
JUMP ?CND10
?ELS12: CALL HAR-HAR
RTRUE
?CND10: EQUAL? L,EAST-WALL \?ELS21
EQUAL? HERE,OFFICE /?THN18
?ELS21: EQUAL? HERE,EAST-WALL \?ELS17
EQUAL? L,OFFICE \?ELS17
?THN18: EQUAL? P,SHARON \?CND24
IN? SHARON,OFFICE \?CND24
FCLEAR SHARON,NDESCBIT
FCLEAR FILE-DRAWER,NDESCBIT
FCLEAR PAPERS,NDESCBIT
?CND24: MOVE P,HERE
PRINTI "Here "
JUMP ?CND15
?ELS17: PRINTI "There's no "
PRINTD INTERCOM
PRINTI " line to where "
?CND15: CALL HE-SHE-IT,P
PRINTR " is."
.FUNCT A-O-K
PRINTR "All systems A-O-K."
.FUNCT TEST-BUTTON-F
EQUAL? PRSA,V?LAMP-ON /?THN6
EQUAL? PRSA,V?LAMP-OFF,V?TURN,V?PUSH \FALSE
?THN6: EQUAL? HERE,CENTER-OF-LAB \?ELS12
FSET? VIDEOPHONE,MUNGBIT \?ELS15
CALL TELL-HINT,83,POWER-SUPPLY,FALSE-VALUE
RTRUE
?ELS15: EQUAL? P-XADJN,W?TEST \?ELS17
CALL A-O-K
RTRUE
?ELS17: IN? MICROPHONE,PLAYER \?ELS19
EQUAL? PRSA,V?LAMP-ON,V?LAMP-OFF \?ELS22
CALL PERFORM,PRSA,MICROPHONE
RTRUE
?ELS22: FSET? MICROPHONE,ONBIT \?ELS24
CALL PERFORM,V?LAMP-OFF,MICROPHONE
RTRUE
?ELS24: CALL PERFORM,V?LAMP-ON,MICROPHONE
RTRUE
?ELS19: EQUAL? PRSA,V?LAMP-OFF \?ELS28
CALL PERFORM,V?LAMP-OFF,VIDEOPHONE
RTRUE
?ELS28: CALL PERFORM,V?LAMP-ON,VIDEOPHONE
RTRUE
?ELS12: EQUAL? HERE,SUB,CRAWL-SPACE \?ELS32
ZERO? TEST-BUTTON-READOUT /FALSE
PRINTI "Readout display says:
"
EQUAL? TEST-BUTTON-READOUT,TEST-BUTTON-NORMAL \?ELS43
CALL A-O-K
RTRUE
?ELS43: EQUAL? TEST-BUTTON-READOUT,GATE-CRASHED-MSG \?ELS45
PRINTI "No damage. Hull still watertight."
JUMP ?CND41
?ELS45: EQUAL? TEST-BUTTON-READOUT,REGULATOR-MSG \?ELS49
SET 'REGULATOR-MSG-SEEN,TRUE-VALUE
PRINTI "Lasers in operational computers are over-charging.
To correct, adjust "
PRINTD VOLTAGE-REGULATOR
PRINTI ".
WARNING: "
PRINTD VOLTAGE-REGULATOR
PRINTI " is reachable only from "
PRINTD CRAWL-SPACE
PRINTI ", behind the "
PRINTD ENGINE-ACCESS-HATCH
PRINTI ". This is a hazardous operation at sea!"
JUMP ?CND41
?ELS49: EQUAL? TEST-BUTTON-READOUT,TEST-BUTTON-POD \?ELS53
PRINTD ESCAPE-POD-UNIT
PRINTI " is not properly connected."
JUMP ?CND41
?ELS53: EQUAL? TEST-BUTTON-READOUT,CLAW-MUNGED-MSG \?CND41
PRINTI "The "
PRINTD CLAW
PRINTI " is damaged."
?CND41: CRLF
RTRUE
?ELS32: EQUAL? P-XADJN,W?TEST \?ELS61
CALL A-O-K
RSTACK
?ELS61: EQUAL? HERE,EAST-WALL \?ELS63
EQUAL? PRSA,V?LAMP-OFF \?ELS66
CALL PERFORM,V?LAMP-OFF,MICROWAVE-SECURITY-SCANNER
RTRUE
?ELS66: CALL PERFORM,V?LAMP-ON,MICROWAVE-SECURITY-SCANNER
RTRUE
?ELS63: EQUAL? HERE,NORTH-WALL \FALSE
EQUAL? PRSA,V?LAMP-OFF \?ELS73
CALL PERFORM,V?LAMP-OFF,COMPUTESTOR
RTRUE
?ELS73: CALL PERFORM,V?LAMP-ON,COMPUTESTOR
RTRUE
.FUNCT GLOBAL-SONAR-F
EQUAL? HERE,SUB,CRAWL-SPACE \?ELS5
CALL DO-INSTEAD-OF,SONARSCOPE,GLOBAL-SONAR
RTRUE
?ELS5: ZERO? SUB-IN-DOME /?ELS7
CALL DO-INSTEAD-OF,SONAR-EQUIPMENT,GLOBAL-SONAR
RTRUE
?ELS7: CALL REMOTE-VERB?
ZERO? STACK \FALSE
CALL NOT-HERE,GLOBAL-SONAR
RSTACK
.FUNCT ALARM-F
EQUAL? PRSA,V?STOP /?THN6
EQUAL? PRSA,V?REPLY,V?LISTEN,V?LAMP-OFF \FALSE
?THN6: ZERO? ALARM-RINGING /?ELS12
CALL WHY-NOT-VP
RSTACK
?ELS12: PRINTR "It's not ringing!"
.FUNCT WHY-NOT-VP
PRINTI "Why not turn on the "
PRINTD VIDEOPHONE
PRINTR "?"
.FUNCT VIDEOPHONE-2-F
PRINT I-ASSUME
PRINTI " the "
PRINTD VIDEOPHONE
PRINTI ".)"
CRLF
CALL DO-INSTEAD-OF,VIDEOPHONE,VIDEOPHONE-2
RTRUE
.FUNCT VIDEOPHONE-F,ARG,V
EQUAL? PRSA,V?READ,V?EXAMINE \?ELS5
EQUAL? REMOTE-PERSON-ON,VIDEOPHONE \?ELS10
PRINTI "You can see "
PRINTD REMOTE-PERSON
PRINTI " on"
CALL THE-PRSO-PRINT
PRINTR "."
?ELS10: ZERO? WOMAN-ON-SCREEN /?ELS14
PRINTI "You can see a fuzzy picture of a woman on"
CALL THE-PRSO-PRINT
PRINTR ". Maybe you should turn the knob."
?ELS14: FSET? VIDEOPHONE,ONBIT \?ELS19
PRINTI "The "
PRINTD VIDEOPHONE
PRINTR " is on, but no one's on the screen."
?ELS19: PRINTR "The screen is dark."
?ELS5: EQUAL? PRSA,V?LISTEN \?ELS27
EQUAL? REMOTE-PERSON-ON,VIDEOPHONE \?ELS32
CALL PERFORM,PRSA,REMOTE-PERSON
RTRUE
?ELS32: ZERO? WOMAN-ON-SCREEN /?ELS34
PRINTI "You can hear fuzzy sound from"
CALL THE-PRSO-PRINT
PRINTR ". Maybe you should turn the knob."
?ELS34: ZERO? ALARM-RINGING /FALSE
PRINTI "An "
PRINTD ALARM
PRINTI " on the "
PRINTD VIDEOPHONE
PRINTR " is ringing."
?ELS27: EQUAL? PRSA,V?ANALYZE \?ELS44
EQUAL? PRSI,GLOBAL-SABOTAGE \?ELS44
ZERO? SUB-IN-TANK /?ELS44
PRINTI "If you wish to determine at once whether any saboteur or other intruder may have penetrated"
CALL RESEARCH-LAB
PRINTI ", activate the "
PRINTD MICROWAVE-SECURITY-SCANNER
PRINTR "."
?ELS44: EQUAL? PRSA,V?WALK-TO \?ELS52
ZERO? SUB-IN-TANK \?THN55
ZERO? SUB-IN-DOME /?ELS52
?THN55: EQUAL? HERE,CENTER-OF-LAB,COMM-BLDG /?ELS52
ZERO? SUB-IN-TANK /?ELS59
CALL PERFORM,V?WALK-TO,CENTER-OF-LAB
RTRUE
?ELS59: CALL PERFORM,V?WALK-TO,COMM-BLDG
RTRUE
?ELS52: CALL REMOTE-VERB?
ZERO? STACK \FALSE
EQUAL? HERE,CENTER-OF-LAB,COMM-BLDG /?ELS66
PRINTI "You must be in the "
ZERO? SUB-IN-TANK /?ELS71
PRINTD CENTER-OF-LAB
JUMP ?CND69
?ELS71: PRINTD COMM-BLDG
?CND69: PRINTR " to do that."
?ELS66: EQUAL? PRSA,V?TURN,V?FIX,V?ADJUST \?ELS82
FSET? VIDEOPHONE,MUNGBIT \?ELS85
PRINTI "You can't fix the "
PRINTD VIDEOPHONE
PRINTI " until you know what is wrong. The simplest way to find out is to consult your "
CALL PRINT-NAME,LAST-NAME
PRINTI " "
PRINTD COMPUTESTOR
PRINTI ", which is programmed to troubleshoot many of your inventions. Or, alternately, you may have the "
PRINTD VIDEOPHONE
PRINTI " repaired by a "
PRINTD GLOBAL-TECHNICIAN
PRINTR "."
?ELS85: FSET? VIDEOPHONE,ONBIT /?ELS89
CALL WHY-NOT-VP
RTRUE
?ELS89: ZERO? WOMAN-ON-SCREEN \?CND83
PRINTR "Nothing changes."
?CND83: SET 'WOMAN-ON-SCREEN,FALSE-VALUE
CALL PHONE-ON,GLOBAL-BLY,AQUADOME,VIDEOPHONE
CALL THIS-IS-IT,PROBLEM
PRINTI "Ah, that's better! You recognize the woman as "
PRINTD BLY
PRINTI ", who's in charge of the "
PRINT URS
PRINTI " of "
PRINTD IU-GLOBAL
PRINTI ", called the "
PRINTD AQUADOME
PRINTI ", just off the Atlantic coast. """
CALL PRINT-NAME,FIRST-NAME
PRINTI "! "
CALL PRINT-NAME,FIRST-NAME
PRINTI "!"" she's saying. ""This is the "
PRINTD AQUADOME
PRINTI " calling"
CALL RESEARCH-LAB
PRINTI "! We have an urgent problem!"""
CRLF
CALL SCORE-OBJ,VIDEOPHONE-2
RTRUE
?ELS82: EQUAL? PRSA,V?LAMP-OFF \?ELS99
FSET? VIDEOPHONE,ONBIT \FALSE
SET 'WOMAN-ON-SCREEN,FALSE-VALUE
FCLEAR VIDEOPHONE,ONBIT
EQUAL? REMOTE-PERSON-ON,VIDEOPHONE \?ELS107
FSET? MICROPHONE,ONBIT \?ELS107
CALL PERFORM,V?GOODBYE,REMOTE-PERSON
RTRUE
?ELS107: CALL PHONE-OFF
PRINTR "The screen goes dark."
?ELS99: EQUAL? PRSA,V?REPLY,V?LAMP-ON \?ELS115
ZERO? SUB-IN-TANK /?ELS115
FSET? VIDEOPHONE,ONBIT \?ELS120
CALL ALREADY,VIDEOPHONE,STR?42
RTRUE
?ELS120: FSET? CIRCUIT-BREAKER,OPENBIT /?THN123
FSET? VIDEOPHONE,MUNGBIT \?CND118
?THN123: PRINTR "You can't. It's conked out."
?CND118: CALL INT,I-LAMP-ON-SCOPE
PUT STACK,0,0
FSET VIDEOPHONE,ONBIT
ZERO? ALARM-RINGING /?ELS131
SET 'ALARM-RINGING,FALSE-VALUE
CALL QUEUE,I-ALARM-RINGING,0
SET 'WOMAN-ON-SCREEN,TRUE-VALUE
CALL THIS-IS-IT,GLOBAL-BLY
PRINTI "As the "
PRINTD ALARM
PRINTI " stops ringing, a picture of a woman holding a "
PRINTD MICROPHONE
PRINTI " appears, and you can hear her voice from the speaker. But both sound and picture are fuzzy."
CRLF
CALL SCORE-OBJ,VIDEOPHONE
RTRUE
?ELS131: PRINTR "A test pattern appears."
?ELS115: EQUAL? PRSA,V?PHONE \FALSE
ZERO? WOMAN-ON-SCREEN \?THN144
EQUAL? REMOTE-PERSON-ON,VIDEOPHONE \?CND141
?THN144: PRINTI "You should finish talking with "
ZERO? WOMAN-ON-SCREEN /?ELS150
PRINTI "the woman"
JUMP ?CND148
?ELS150: PRINTD REMOTE-PERSON
?CND148: PRINTR " first."
?CND141: EQUAL? PRSO,YOUR-LABORATORY \?ELS164
ZERO? SUB-IN-DOME /?ELS164
PRINTR "There's no answer."
?ELS164: EQUAL? PRSO,GLOBAL-BLY,AQUADOME \FALSE
ZERO? SUB-IN-TANK /FALSE
ZERO? BLY-TOLD-PROBLEM /?ELS177
PRINTI "There's no answer. The crew must be busy with the "
PRINTD SNARK
PRINTR "."
?ELS177: ZERO? ALARM-RINGING /FALSE
CALL PERFORM,V?LAMP-ON,VIDEOPHONE
RTRUE
.FUNCT GLOBAL-SABOTAGE-F
EQUAL? PRSA,V?ANALYZE \FALSE
EQUAL? PRSO,VIDEOPHONE \FALSE
CALL INT,I-TIP-SAYS
PUT STACK,0,0
RFALSE
.FUNCT WATER-F
CALL REMOTE-VERB?
ZERO? STACK \FALSE
ZERO? SUB-IN-TANK /?ELS7
CALL IN-TANK-AREA?,HERE
ZERO? STACK /FALSE
ZERO? TEST-TANK-FULL /FALSE
CALL DO-INSTEAD-OF,TEST-TANK,GLOBAL-WATER
RTRUE
?ELS7: EQUAL? PRSA,V?EXAMINE,V?ANALYZE \?ELS17
CALL GLOBAL-IN?,WINDOW,HERE
ZERO? STACK /?ELS22
CALL PERFORM,V?LOOK-OUTSIDE,WINDOW
RTRUE
?ELS22: EQUAL? HERE,SUB \FALSE
CALL PERFORM,V?LOOK-OUTSIDE,SUB-WINDOW
RTRUE
?ELS17: EQUAL? PRSA,V?THROUGH,V?SWIM \FALSE
PRINTI "This is no time for a swim, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "!"
.FUNCT SEA-F
EQUAL? PRSA,V?ANALYZE,V?EXAMINE \?ELS5
ZERO? SUB-IN-DOME \?THN11
ZERO? SUB-IN-OPEN-SEA \?THN11
EQUAL? NOW-TERRAIN,SEA-TERRAIN \FALSE
?THN11: CALL PLENTY-WATER
RSTACK
?ELS5: EQUAL? PRSA,V?WALK-TO,V?THROUGH,V?FIND \FALSE
ZERO? SUB-IN-DOME \?THN20
ZERO? SUB-IN-OPEN-SEA \?THN20
EQUAL? NOW-TERRAIN,SEA-TERRAIN \?ELS19
?THN20: PRINTR "You're in it!"
?ELS19: EQUAL? HERE,SUB,CRAWL-SPACE \?ELS25
PRINTR "The nautical chart in your SEASTALKER package should help."
?ELS25: PRINTI "First you must get in the "
PRINTD SUB
PRINTR "."
.FUNCT YOU-F
EQUAL? WINNER,PLAYER /?ELS5
CALL DO-INSTEAD-OF,WINNER,YOU
RTRUE
?ELS5: EQUAL? PRSA,V?ASK-ABOUT \FALSE
EQUAL? PRSI,YOU \FALSE
CALL PERFORM,V?ASK-ABOUT,PRSO,PRSO
RTRUE
.FUNCT HINT-F
EQUAL? PRSA,V?FIND \?ELS5
PRINT HELP-TEXT
CRLF
RTRUE
?ELS5: EQUAL? PRSA,V?TAKE,V?ASK-CONTEXT-FOR,V?ASK-FOR \FALSE
EQUAL? TIP,PRSO,PRSI,WINNER \?ELS14
PRINT HELP-TEXT
CRLF
RTRUE
?ELS14: CALL MORE-SPECIFIC
RSTACK
.FUNCT DIRNS-F
EQUAL? PRSA,V?ASK-FOR \FALSE
EQUAL? PRSO,GLOBAL-BLY \FALSE
SET 'WINNER,GLOBAL-BLY
CALL PERFORM,V?FIND,AQUADOME
RTRUE
.FUNCT GLOBAL-HERE-F,FLG=0,F,HR,TIM,VAL
EQUAL? PRSA,V?KNOCK \?ELS5
PRINTR "Knocking on the walls reveals nothing unusual."
?ELS5: EQUAL? PRSA,V?TIE-TO,V?PUT \?ELS9
CALL MORE-SPECIFIC
RSTACK
?ELS9: EQUAL? PRSA,V?EXAMINE,V?SEARCH \?ELS11
GETP HERE,P?CORRIDOR
ZERO? STACK /?ELS14
SET 'TIM,3
JUMP ?CND12
?ELS14: GETP HERE,P?SIZE
ADD 2,STACK >TIM
?CND12: EQUAL? P-ADVERB,W?CAREFULLY \?CND17
MUL 2,TIM >TIM
?CND17: PRINTI "(It's better to examine or search one thing at a time. It would take a long time to search a whole room or area thoroughly. A "
EQUAL? P-ADVERB,W?CAREFULLY \?ELS24
PRINTI "careful"
JUMP ?CND22
?ELS24: PRINTI "brief"
?CND22: PRINTI " search would take "
PRINTN TIM
PRINTI " turns, and it might not reveal much. Would you like to do it anyway?)"
CALL YES?
ZERO? STACK /?ELS37
CALL INT-WAIT,TIM >VAL
EQUAL? M-FATAL,VAL /TRUE
ZERO? VAL /?ELS44
PRINTI "Your "
EQUAL? P-ADVERB,W?CAREFULLY \?ELS52
PUSH STR?118
JUMP ?CND48
?ELS52: PUSH STR?119
?CND48: PRINT STACK
PRINTR " search reveals nothing exciting."
?ELS44: PRINTR "You didn't finish looking over the place."
?ELS37: PRINTR "Okay."
?ELS11: EQUAL? PRSA,V?ANALYZE,V?WHAT \FALSE
FIRST? HERE >F /?KLU83
?KLU83:
?PRG65: ZERO? F \?ELS69
JUMP ?REP66
?ELS69: FSET? F,CONTBIT \?ELS71
CALL INHABITED?,F
ZERO? STACK /?ELS71
SET 'FLG,TRUE-VALUE
SET 'HR,HERE
SET 'HERE,F
CALL GLOBAL-HERE-F
SET 'HERE,HR
JUMP ?CND67
?ELS71: FSET? F,PERSON \?CND67
EQUAL? F,PLAYER /?CND67
SET 'FLG,TRUE-VALUE
CALL DESCRIBE-OBJECT,F,TRUE-VALUE,0
?CND67: NEXT? F >F /?KLU84
?KLU84: JUMP ?PRG65
?REP66: ZERO? FLG \TRUE
PRINTR "There's nobody else here."
.FUNCT AIR-F
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTR "You can see through the air around you."
?ELS5: EQUAL? PRSA,V?WALK-TO \?ELS9
PRINTR "It's all around you!"
?ELS9: EQUAL? PRSA,V?SMELL \FALSE
CALL FRESH-AIR?,HERE
ZERO? STACK \TRUE
PRINTR "The air is rather musty."
.FUNCT GENERIC-TANK-F,OBJ
ZERO? SUB-IN-TANK /?ELS5
RETURN TEST-TANK
?ELS5: ZERO? SUB-IN-DOME \?THN9
CALL SUB-OUTSIDE-AIRLOCK?
ZERO? STACK /FALSE
?THN9: RETURN DOCKING-TANK
.FUNCT TOO-FAR-AWAY,OBJ
CALL TOO-BAD-BUT,OBJ,STR?16
RSTACK
.FUNCT TEST-TANK-F
EQUAL? PRSA,V?WALK-TO \?ELS5
CALL IN-TANK-AREA?,HERE
ZERO? STACK /?ELS10
CALL ALREADY,PLAYER,STR?117
RSTACK
?ELS10: ZERO? SUB-IN-TANK /FALSE
CALL PERFORM,PRSA,NORTH-TANK-AREA
RTRUE
?ELS5: CALL REMOTE-VERB?
ZERO? STACK \FALSE
EQUAL? NOW-TERRAIN,BAY-TERRAIN \?ELS17
CALL TOO-FAR-AWAY,TEST-TANK
RSTACK
?ELS17: ZERO? SUB-IN-TANK \?ELS19
PRINTI "You're nowhere near"
CALL RESEARCH-LAB
PRINTR "!"
?ELS19: EQUAL? HERE,SUB \?THN28
ZERO? SUB-IN-TANK \?ELS25
?THN28: EQUAL? HERE,NORTH-TANK-AREA,WEST-TANK-AREA,SOUTH-TANK-AREA /?ELS25
CALL NOT-HERE,TEST-TANK
RSTACK
?ELS25: EQUAL? PRSA,V?BOARD \?ELS31
PRINTR "That won't do any good."
?ELS31: EQUAL? PRSA,V?LEAVE \?ELS35
PRINTI "You can either walk north, or get in the "
PRINTD SUB
PRINTR " and go east."
?ELS35: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?ANALYZE \?ELS39
CALL FILL-TANK-BUTTON-F
RSTACK
?ELS39: EQUAL? PRSA,V?FILL,V?EMPTY \?ELS41
EQUAL? HERE,WEST-TANK-AREA,SUB /?ELS41
PRINTR "You'll have to go west to do that."
?ELS41: EQUAL? PRSA,V?EMPTY \?ELS47
FSET? TANK-GATE,OPENBIT \?ELS52
CALL YOU-CANT,STR?65,TANK-GATE,STR?21
RSTACK
?ELS52: FSET? ENGINE,ONBIT \?ELS54
CALL YOU-CANT,STR?65,ENGINE,STR?42
RSTACK
?ELS54: ZERO? TEST-TANK-FULL /?ELS56
SET 'TEST-TANK-FULL,FALSE-VALUE
PRINTI "The "
PRINTD GLOBAL-WATER
PRINTR " quickly drains from the tank."
?ELS56: CALL ALREADY,TEST-TANK,STR?65
RSTACK
?ELS47: EQUAL? PRSA,V?FILL \?ELS63
ZERO? TEST-TANK-FULL /?ELS68
CALL ALREADY,TEST-TANK,STR?66
RSTACK
?ELS68: SET 'TEST-TANK-FULL,TRUE-VALUE
PRINTI "The "
PRINTD GLOBAL-WATER
PRINTR " quickly fills the tank, up to the level of the walkway."
?ELS63: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS75
CALL PERFORM,PRSA,TANK-GATE
RTRUE
?ELS75: EQUAL? PRSA,V?THROUGH,V?SWIM \FALSE
PRINTI "This is no time for a swim, "
CALL PRINT-NAME,FIRST-NAME
PRINTR "!"
.FUNCT FILL-TANK-BUTTON-F,OBJ,FLAG
ZERO? SUB-IN-TANK /?ELS3
SET 'FLAG,TEST-TANK-FULL
SET 'OBJ,TEST-TANK
JUMP ?CND1
?ELS3: ZERO? SUB-IN-DOME \?THN7
CALL SUB-OUTSIDE-AIRLOCK?
ZERO? STACK /FALSE
?THN7: SET 'FLAG,AIRLOCK-FULL
SET 'OBJ,AIRLOCK
?CND1: EQUAL? PRSA,V?EMPTY /?THN16
EQUAL? PRSA,V?FILL,V?CLOSE,V?OPEN \?ELS15
?THN16: CALL PERFORM,PRSA,OBJ
RTRUE
?ELS15: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?ANALYZE \?ELS19
PRINTI "The "
PRINTD OBJ
PRINTI " is "
CALL TANK-STATUS
PRINT STACK
PRINTR "."
?ELS19: EQUAL? PRSA,V?USE,V?PUSH,V?MOVE \FALSE
ZERO? FLAG /?ELS28
PRINT I-ASSUME
PRINTI " empty"
CALL PRINTT,OBJ
PRINTI ".)"
CRLF
CALL PERFORM,V?EMPTY,OBJ
RTRUE
?ELS28: PRINT I-ASSUME
PRINTI " fill"
CALL PRINTT,OBJ
PRINTI ".)"
CRLF
CALL PERFORM,V?FILL,OBJ
RTRUE
.FUNCT TANK-GATE-F
EQUAL? PRSA,V?FIND \?ELS5
PRINTR "It's on the east wall of the test tank."
?ELS5: CALL REMOTE-VERB?
ZERO? STACK \FALSE
EQUAL? HERE,SUB /?ELS11
CALL IN-TANK-AREA?,HERE
ZERO? STACK \?ELS11
CALL NOT-HERE,TANK-GATE
RSTACK
?ELS11: EQUAL? PRSA,V?EXAMINE,V?ANALYZE \?ELS15
PRINTI "This gate "
FSET? TANK-GATE,OPENBIT \?ELS22
PUSH STR?113
JUMP ?CND18
?ELS22: PUSH STR?120
?CND18: PRINT STACK
PRINTI " raised to permit submarines to go in or out of the tank. The gate can be raised or lowered by wall controls or by remote control from all "
CALL PRINT-NAME,LAST-NAME
PRINTR " subs."
?ELS15: EQUAL? PRSA,V?DROP /?THN27
EQUAL? PRSA,V?RAISE,V?CLOSE,V?OPEN \FALSE
?THN27: EQUAL? HERE,WEST-TANK-AREA,SUB /?CND29
PRINTR "You'll have to go west to do that."
?CND29: CALL OPEN-CLOSE-GATE,TANK-GATE,TEST-TANK-FULL,TEST-TANK
RSTACK
.FUNCT OPEN-GATE-BUTTON-F,OBJ
ZERO? SUB-IN-TANK /?ELS3
SET 'OBJ,TANK-GATE
JUMP ?CND1
?ELS3: ZERO? SUB-IN-DOME \?THN7
CALL SUB-OUTSIDE-AIRLOCK?
ZERO? STACK /FALSE
?THN7: SET 'OBJ,AIRLOCK-HATCH
?CND1: EQUAL? PRSA,V?DROP /?THN16
EQUAL? PRSA,V?RAISE,V?CLOSE,V?OPEN \?ELS15
?THN16: CALL PERFORM,PRSA,OBJ
RTRUE
?ELS15: EQUAL? PRSA,V?EXAMINE,V?ANALYZE \?ELS19
PRINTI "The "
PRINTD OBJ
PRINTI " is "
CALL GATE-STATUS
PRINT STACK
PRINTR "."
?ELS19: EQUAL? PRSA,V?USE,V?PUSH,V?MOVE \FALSE
FSET? OBJ,OPENBIT \?ELS28
PRINT I-ASSUME
PRINTI " close"
CALL PRINTT,OBJ
PRINTI ".)"
CRLF
CALL PERFORM,V?CLOSE,OBJ
RTRUE
?ELS28: PRINT I-ASSUME
PRINTI " open"
CALL PRINTT,OBJ
PRINTI ".)"
CRLF
CALL PERFORM,V?OPEN,OBJ
RTRUE
.FUNCT GATE-STATUS
ZERO? SUB-IN-TANK /?ELS5
FSET? TANK-GATE,OPENBIT \?ELS11
RETURN STR?21
?ELS11: RETURN STR?17
?ELS5: ZERO? SUB-IN-DOME \?THN16
CALL SUB-OUTSIDE-AIRLOCK?
ZERO? STACK /?ELS15
?THN16: FSET? AIRLOCK-HATCH,OPENBIT \?ELS22
RETURN STR?21
?ELS22: RETURN STR?17
?ELS15: RETURN STR?121
.FUNCT TANK-STATUS
ZERO? SUB-IN-TANK /?ELS5
ZERO? TEST-TANK-FULL /?ELS11
RETURN STR?66
?ELS11: RETURN STR?65
?ELS5: ZERO? SUB-IN-DOME \?THN17
CALL SUB-OUTSIDE-AIRLOCK?
ZERO? STACK /?ELS16
?THN17: ZERO? AIRLOCK-FULL /?ELS23
RETURN STR?66
?ELS23: RETURN STR?65
?ELS16: RETURN STR?121
.FUNCT AIRLOCK-HATCH-F
EQUAL? PRSA,V?FIND \?ELS5
PRINTI "It's on the south wall of the "
PRINTD AQUADOME
PRINTI " "
PRINTD AIRLOCK
PRINTR "."
?ELS5: CALL REMOTE-VERB?
ZERO? STACK \FALSE
ZERO? SUB-IN-DOME /?THN14
EQUAL? HERE,SUB,AIRLOCK,BLY-OFFICE /?ELS11
?THN14: CALL SUB-OUTSIDE-AIRLOCK?
ZERO? STACK \?ELS11
CALL TOO-FAR-AWAY,AIRLOCK-HATCH
RSTACK
?ELS11: ZERO? SNARK-ATTACK-COUNT /?ELS17
PRINTR "It's too late now! The machinery is jammed!"
?ELS17: EQUAL? PRSA,V?DROP /?THN22
EQUAL? PRSA,V?RAISE,V?CLOSE,V?OPEN \FALSE
?THN22: CALL OPEN-CLOSE-GATE,AIRLOCK-HATCH,AIRLOCK-FULL,AIRLOCK
RSTACK
.FUNCT OPEN-CLOSE-GATE,GATE,FULL,TANK
EQUAL? PRSA,V?RAISE,V?OPEN \?ELS3
FSET? GATE,OPENBIT \?ELS6
CALL ALREADY,GATE,STR?21
RTRUE
?ELS6: ZERO? FULL \?ELS8
PRINTI "You'd better fill the "
PRINTD TANK
PRINTR " first, unless you want to go surfing!"
?ELS8: EQUAL? GATE,TANK-GATE \?CND13
EQUAL? HERE,SUB \?CND13
SET 'OPENED-GATE-FROM-SUB,TRUE-VALUE
?CND13: FSET GATE,OPENBIT
JUMP ?CND1
?ELS3: FSET? GATE,OPENBIT \?ELS22
FCLEAR GATE,OPENBIT
JUMP ?CND1
?ELS22: CALL ALREADY,GATE,STR?17
RTRUE
?CND1: FSET? GATE,OPENBIT \?ELS27
PRINTI "Opened"
JUMP ?CND25
?ELS27: PRINTI "Closed"
?CND25: EQUAL? HERE,SUB \?CND34
PRINTI " (by remote control)"
?CND34: PRINTR "."
.FUNCT AIRLOCK-POP?
ZERO? GREENUP-ESCAPE /?ELS5
CALL FIND-FLAG,AIRLOCK,PERSON,GREENUP
RSTACK
?ELS5: CALL FIND-FLAG,AIRLOCK,PERSON
RSTACK
.FUNCT GENERIC-GATE-F,OBJ
ZERO? SUB-IN-TANK /?ELS5
RETURN TANK-GATE
?ELS5: ZERO? SUB-IN-DOME \?THN9
CALL SUB-OUTSIDE-AIRLOCK?
ZERO? STACK /FALSE
?THN9: RETURN AIRLOCK-HATCH
.FUNCT SUB-OUTSIDE-AIRLOCK?
EQUAL? SUB-DEPTH,AIRLOCK-DEPTH \FALSE
ZERO? SUB-LON \FALSE
ZERO? FINE-SONAR /?ELS9
EQUAL? -2,SUB-LAT /TRUE
?ELS9: EQUAL? -1,SUB-LAT /TRUE
RFALSE
.FUNCT AIRLOCK-ROOF-F
EQUAL? PRSA,V?FIND \?ELS5
PRINTI "It covers the "
PRINTD AQUADOME
PRINTI " "
PRINTD AIRLOCK
PRINTR "."
?ELS5: CALL REMOTE-VERB?
ZERO? STACK \FALSE
ZERO? SUB-IN-DOME /?THN12
EQUAL? HERE,SUB,AIRLOCK,BLY-OFFICE /?ELS11
EQUAL? HERE,AIRLOCK-WALL /?ELS11
?THN12: CALL TOO-FAR-AWAY,AIRLOCK-ROOF
RSTACK
?ELS11: EQUAL? PRSA,V?OPEN \?ELS17
FSET? AIRLOCK-ROOF,OPENBIT \?ELS20
CALL ALREADY,AIRLOCK-ROOF,STR?21
RTRUE
?ELS20: FSET? AIRLOCK-HATCH,OPENBIT \?CND18
CALL THIS-IS-IT,AIRLOCK-HATCH
PRINTI "A safety mechanism prevents it. The "
PRINTD AIRLOCK-HATCH
PRINTR " is open!"
?CND18: FSET AIRLOCK-ROOF,OPENBIT
PRINTI "Opened"
EQUAL? HERE,SUB \?CND27
PRINTI " (by remote control)"
?CND27: PRINTR "."
?ELS17: EQUAL? PRSA,V?CLOSE \FALSE
FSET? AIRLOCK-ROOF,OPENBIT /?CND36
CALL ALREADY,AIRLOCK-ROOF,STR?17
RTRUE
?CND36: FCLEAR AIRLOCK-ROOF,OPENBIT
PRINTI "Closed"
EQUAL? HERE,SUB \?CND41
PRINTI " (by remote control)"
?CND41: PRINTI "."
CRLF
ZERO? GREENUP-ESCAPE /TRUE
GRTR? 3,GREENUP-ESCAPE \TRUE
PRINTI "Greenup can't get into the "
PRINTD SUB
PRINTI " and escape any more. "
CALL GREENUP-CUFF
RTRUE
.FUNCT EVIDENCE-F
ZERO? ZOE-MENTIONED-EVIDENCE /FALSE
EQUAL? PRSA,V?TAKE \FALSE
CALL PERFORM,PRSA,BLACK-BOX
RTRUE
.FUNCT LAB-ASSISTANT-F
EQUAL? PRSA,V?WALK-TO,V?FIND \FALSE
CALL DO-INSTEAD-OF,LOWELL,LAB-ASSISTANT
RSTACK
.FUNCT DOC-LABORATORY-F
EQUAL? PRSA,V?THROUGH,V?WALK-TO \FALSE
CALL PERFORM,V?WALK-TO,DOME-LAB
RTRUE
.FUNCT YOUR-LABORATORY-F
CALL IN-LAB?,HERE
ZERO? STACK /?ELS5
CALL DO-INSTEAD-OF,HERE,YOUR-LABORATORY
RTRUE
?ELS5: EQUAL? PRSA,V?THROUGH,V?WALK-TO \FALSE
CALL PERFORM,V?WALK-TO,CENTER-OF-LAB
RTRUE
.FUNCT GENERIC-LABORATORY-F,OBJ
ZERO? SUB-IN-TANK /?ELS5
RETURN YOUR-LABORATORY
?ELS5: ZERO? SUB-IN-DOME /FALSE
RETURN DOME-LAB
.FUNCT TRAITOR-F,X
EQUAL? PRSA,V?ASK-ABOUT \?ELS9
FSET? PRSO,PERSON /?THN6
?ELS9: EQUAL? PRSA,V?WHAT,V?FIND \FALSE
?THN6: ZERO? QCONTEXT /?ORP13
PUSH QCONTEXT
JUMP ?THN10
?ORP13: EQUAL? PRSA,V?ASK-ABOUT /?ORT12
PUSH 0
JUMP ?THN10
?ORT12: PUSH 1
?THN10: POP 'X
ZERO? X /?CND14
PRINTI """"
?CND14: PRINTI "I guess you'll have to figure that out, "
CALL PRINT-NAME,FIRST-NAME
PRINTI "."
ZERO? X /?CND22
PRINTI """"
?CND22: CRLF
RTRUE
.FUNCT CHAIR-F
EQUAL? PRSA,V?CLIMB-DOWN /?THN6
EQUAL? PRSA,V?CLIMB-ON,V?LOOK-UNDER,V?SIT \FALSE
?THN6: PRINTR "That's just a waste of time."
.FUNCT UNDERWATER-F
EQUAL? PRSA,V?WALK \FALSE
PRINTI "You must be in the "
PRINTD SUB
PRINTR " to do that."
.FUNCT GAME-F
EQUAL? PRSA,V?READ,V?PLAY,V?EXAMINE \FALSE
SET 'P-WON,FALSE-VALUE
PRINTR "(You're doing it!)"
.FUNCT SOMETHING-F
SET 'P-WON,FALSE-VALUE
PRINTI "(Type a real word instead of "
PRINTD SOMETHING
PRINTR ".)"
.FUNCT LEFT-RIGHT-F
EQUAL? PRSA,V?LOOK-OUTSIDE,V?LOOK-INSIDE,V?EXAMINE \?ELS5
EQUAL? HERE,SUB \?ELS8
CALL PERFORM,PRSA,SUB-WINDOW
RTRUE
?ELS8: CALL PERFORM,PRSA,WINDOW
RTRUE
?ELS5: EQUAL? PRSA,V?WALK,V?TURN \FALSE
CALL V-WALK-AROUND
RSTACK
.ENDI