amfv/globals.zap
2019-04-14 15:46:21 -04:00

2563 lines
64 KiB
Plaintext

.FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ,X=0
EQUAL? PRSO,NOT-HERE-OBJECT \?ELS3
EQUAL? PRSI,NOT-HERE-OBJECT \?ELS3
PRINTR "[Those things aren't here!]"
?ELS3: EQUAL? PRSO,NOT-HERE-OBJECT \?ELS9
SET 'TBL,P-PRSO
JUMP ?CND1
?ELS9: SET 'TBL,P-PRSI
SET 'PRSO?,FALSE-VALUE
?CND1: ZERO? PRSO? /?ELS18
CALL1 PRSO-VERB?
ZERO? STACK \?THN15
?ELS18: ZERO? PRSO? \?ELS20
CALL1 PRSI-VERB?
ZERO? STACK \?THN15
?ELS20: ZERO? PRSO? \?CND12
EQUAL? WINNER,PLAYER /?CND12
EQUAL? PRSA,V?SGIVE \?CND12
EQUAL? PRSO,ME \?CND12
?THN15: SET 'X,TRUE-VALUE
CALL FIND-NOT-HERE,TBL,PRSO? >OBJ
ZERO? OBJ /FALSE
EQUAL? OBJ,NOT-HERE-OBJECT \TRUE
?CND12: ZERO? X /?ELS33
PRINTI "[You'll have to be more specific.]"
CRLF
JUMP ?CND31
?ELS33: EQUAL? PRSA,V?CALL,V?TELL \?ELS38
EQUAL? P-XNAM,W?JILL \?ELS38
CALL1 IN-APARTMENT?
ZERO? STACK /?ELS38
IN? JILL,LOCAL-GLOBALS /?ELS38
EQUAL? SYEAR,2041,2051 \?ELS43
PRINTI """I can't hear you, Perry!"" Jill shouts back. ""Come in here!"""
CRLF
JUMP ?CND31
?ELS43: PRINTI "There's no reply; perhaps Jill didn't hear you from the other room."
CRLF
JUMP ?CND31
?ELS38: EQUAL? WINNER,PLAYER \?ELS51
PRINTI "[You can't "
EQUAL? P-XNAM,W?CONVERSAT,W?ALARM,W?MUSIC \?ELS56
PRINTI "hear"
JUMP ?CND54
?ELS56: PRINTI "see"
?CND54: CALL2 NAME?,P-XNAM
ZERO? STACK \?ELS65
EQUAL? P-XADJ,W?MY /?ELS65
PRINTI " any"
JUMP ?CND63
?ELS65: EQUAL? P-XNAM,W?WIZARD,W?OZ \?CND63
PRINTI " any"
?CND63: CALL2 NOT-HERE-PRINT,PRSO?
PRINTI " here!]"
CRLF
JUMP ?CND31
?ELS51: EQUAL? MODE,INTERFACE-MODE \?ELS80
PRINTI "Emitting signals of confusion,"
JUMP ?CND78
?ELS80: PRINTI "Looking confused,"
?CND78: CALL ARTICLE,WINNER,TRUE-VALUE
EQUAL? MODE,INTERFACE-MODE \?ELS89
PRINTI " reports, ""This unit is unaware of"
JUMP ?CND87
?ELS89: PRINTI " says, ""I don't see"
?CND87: CALL2 NAME?,P-XNAM
ZERO? STACK \?CND96
PRINTI " any"
?CND96: CALL2 NOT-HERE-PRINT,PRSO?
PRINTI " here!"""
CRLF
?CND31: CALL1 CLEAR-BUF
RTRUE
.FUNCT PRSO-VERB?
EQUAL? PRSA,V?FIND,V?FOLLOW,V?BUY /TRUE
EQUAL? PRSA,V?WHAT,V?WHERE,V?WHO /TRUE
EQUAL? PRSA,V?BUY-WITH,V?WALK-TO,V?WAIT-FOR /TRUE
EQUAL? PRSA,V?CALL,V?PAY-FOR /TRUE
RFALSE
.FUNCT PRSI-VERB?
EQUAL? PRSA,V?ASK-ABOUT,V?ASK-FOR,V?TELL-ABOUT /TRUE
RFALSE
.FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ
CALL2 MOBY-FIND,TBL >M-F
EQUAL? 1,M-F \?ELS5
ZERO? PRSO? /?ELS8
SET 'PRSO,P-MOBY-FOUND
SET 'P-IT-OBJECT,PRSO
RFALSE
?ELS8: SET 'PRSI,P-MOBY-FOUND
RFALSE
?ELS5: LESS? 1,M-F \?ELS13
GET TBL,1 >OBJ
GETP OBJ,P?GENERIC
CALL STACK >OBJ
ZERO? OBJ /?ELS13
EQUAL? OBJ,NOT-HERE-OBJECT /TRUE
ZERO? PRSO? /?ELS20
SET 'PRSO,OBJ
SET 'P-IT-OBJECT,PRSO
RFALSE
?ELS20: SET 'PRSI,OBJ
RFALSE
?ELS13: RETURN NOT-HERE-OBJECT
.FUNCT NOT-HERE-PRINT,PRSO?,?TMP1
ZERO? P-OFLAG \?THN6
ZERO? P-MERGED /?ELS5
?THN6: ZERO? P-XADJ /?CND8
EQUAL? P-XADJ,W?MY \?ELS14
PRINTI " your"
JUMP ?CND8
?ELS14: PRINTI " "
PRINTB P-XADJ
?CND8: ZERO? P-XNAM /FALSE
PRINTI " "
PRINTB P-XNAM
RTRUE
?ELS5: ZERO? PRSO? /?ELS30
GET P-ITBL,P-NC1 >?TMP1
GET P-ITBL,P-NC1L
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
RSTACK
?ELS30: GET P-ITBL,P-NC2 >?TMP1
GET P-ITBL,P-NC2L
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
RSTACK
.FUNCT GROUND-F
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-ON,V?CLIMB-UP /?THN6
EQUAL? PRSA,V?SIT,V?LIE-DOWN,V?BOARD \?ELS5
?THN6: CALL1 V-YELL
RSTACK
?ELS5: EQUAL? PRSA,V?LOOK-UNDER \?ELS9
CALL1 V-COUNT
RSTACK
?ELS9: EQUAL? PRSA,V?LEAVE \FALSE
CALL2 DO-WALK,P?UP
RSTACK
.FUNCT WALLS-F
EQUAL? HERE,ROCKVIL-REFORMATORY \FALSE
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "Huge monolithic walls, topped with guardposts and barbed wire, separate this entrance area from the prison proper."
.FUNCT CEILING-F
EQUAL? PRSA,V?LOOK-UNDER \FALSE
CALL2 PERFORM,V?LOOK
RTRUE
.FUNCT HALLWAY-F
EQUAL? PRSA,V?THROUGH,V?WALK-TO \?ELS5
EQUAL? HERE,EPILOGUE-LIVING-ROOM \?ELS10
CALL2 DO-WALK,P?NORTH
RSTACK
?ELS10: EQUAL? HERE,HOSPITAL-ANNEX,EPILOGUE-BATHROOM \?ELS12
CALL2 DO-WALK,P?NE
RSTACK
?ELS12: EQUAL? HERE,CINEMA \?ELS14
CALL2 DO-WALK,P?IN
RSTACK
?ELS14: EQUAL? HERE,LIVING-ROOM \?ELS16
CALL2 DO-WALK,P?SOUTH
RSTACK
?ELS16: EQUAL? HERE,HOSPITAL \?ELS18
CALL2 DO-WALK,P?SW
RSTACK
?ELS18: EQUAL? HERE,DEN \?ELS20
CALL2 DO-WALK,P?WEST
RSTACK
?ELS20: EQUAL? HERE,GUEST-ROOM \?ELS22
CALL2 DO-WALK,P?EAST
RSTACK
?ELS22: CALL GLOBAL-IN?,HALLWAY,HERE
ZERO? STACK /FALSE
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE \?ELS28
EQUAL? HERE,PARKVIEW-HALL,FOYER \?ELS33
CALL1 V-WALK-AROUND
RSTACK
?ELS33: PRINT LOOK-AROUND
CRLF
RTRUE
?ELS28: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \FALSE
EQUAL? HERE,PARKVIEW-HALL,FOYER \?ELS44
CALL1 V-LOOK
RSTACK
?ELS44: EQUAL? HERE,CINEMA \FALSE
PRINTR "The hall to the theatres is dark."
.FUNCT BUILDING-F
EQUAL? PRSA,V?DISEMBARK,V?WALK-TO,V?THROUGH /?THN6
EQUAL? PRSA,V?LEAVE \?ELS5
?THN6: CALL1 V-WALK-AROUND
RSTACK
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? SYEAR,2081 /?THN15
EQUAL? HERE,BURNED-OUT-AREA \?ELS14
?THN15: PRINTR "The buildings are all gutted."
?ELS14: EQUAL? HERE,CHURCH-ENTRANCE,MIDLAND-AND-CHURCH,CONSTRUCTION-SITE-5 \FALSE
EQUAL? SYEAR,2071 \FALSE
PRINTI "Nothing is left of the building "
EQUAL? HERE,CHURCH-ENTRANCE \?ELS27
PRINTI "to the northwest "
JUMP ?CND25
?ELS27: EQUAL? HERE,MIDLAND-AND-CHURCH \?CND25
PRINTI "to the southwest "
?CND25: PRINTR "excepts ruins."
.FUNCT STAIRS-F
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \?ELS5
CALL2 DO-WALK,P?UP
RSTACK
?ELS5: EQUAL? PRSA,V?CLIMB-DOWN \?ELS7
CALL2 DO-WALK,P?DOWN
RSTACK
?ELS7: EQUAL? PRSA,V?SMELL \?ELS9
EQUAL? HERE,WICKER-AND-RIVER \?ELS9
EQUAL? SYEAR,2071 /?ELS9
PRINTR "There's an odor of urine from the Tube entrance."
?ELS9: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? SYEAR,2091 \FALSE
PRINTI "The curving stairway leads "
EQUAL? HERE,MASTER-BEDROOM \?ELS24
PRINTR "down to the living room."
?ELS24: PRINTR "up to the master bedroom."
.FUNCT UNOPENABLE-DOOR-F
EQUAL? PRSA,V?UNLOCK,V?OPEN \?ELS5
EQUAL? PRSI,KEY \?ELS5
PRINTR "Your key doesn't fit the lock."
?ELS5: EQUAL? PRSA,V?OPEN \?ELS11
PRINTR "The door is locked."
?ELS11: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? SYEAR,2071 \FALSE
EQUAL? HERE,UNIVERSITY-HEIGHTS,PARKVIEW-APARTMENTS,CHURCH-STREET-APARTMENTS \FALSE
PRINTR "The cracked glass is held together by boards."
.FUNCT SLEEP-F
EQUAL? PRSA,V?WALK-TO,V?TAKE \FALSE
CALL1 V-SLEEP
RSTACK
.FUNCT SMOKE-F
EQUAL? PRSA,V?WALK-TO \?ELS5
EQUAL? HERE,MAIN-AND-WICKER \?ELS5
EQUAL? SYEAR,2081 \?ELS5
CALL2 DO-WALK,P?SOUTH
RSTACK
?ELS5: EQUAL? SYEAR,2071 \?ELS9
EQUAL? HERE,MAIN-AND-WICKER,POWER-STATION,BURGER-MEISTER \?ELS9
CALL1 MOBY-VERB?
ZERO? STACK \?ELS9
CALL2 CANT-SEE,SMOKE
RSTACK
?ELS9: EQUAL? PRSA,V?SMELL \?ELS13
EQUAL? HERE,MAIN-AND-WICKER \?ELS18
PRINTR "You get a brief whiff of burning wood."
?ELS18: EQUAL? HERE,POWER-STATION \?ELS22
PRINTR "The smoke carries the pungent smell of high-sulfur coal."
?ELS22: PRINTR "The tobacco smoke has a strong, bitter odor."
?ELS13: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,POWER-STATION \?ELS35
PRINTR "The smoke billows upward in a thick, black pillar."
?ELS35: EQUAL? HERE,MAIN-AND-WICKER \FALSE
PRINTR "The smoke rises from unseen fires south of here."
.FUNCT PLAY-F
EQUAL? PRSA,V?WALK-TO,V?THROUGH,V?EXAMINE \FALSE
EQUAL? HERE,WELLS-THEATRE,PICKFORD-THEATRE \FALSE
PRINT NO-TICKET
CRLF
RTRUE
.FUNCT SKY-F
FSET? HERE,OUTSIDEBIT /?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,SKY
RSTACK
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
ZERO? SIMULATING /FALSE
PRINTI "The sky is "
ZERO? LIGHT-LEVEL \?ELS16
PRINTI "dark"
JUMP ?CND14
?ELS16: EQUAL? LIGHT-LEVEL,1,2 \?ELS20
PRINTI "getting "
LESS? STIME,720 \?ELS25
PRINTI "lighter"
JUMP ?CND14
?ELS25: PRINTI "darker"
JUMP ?CND14
?ELS20: EQUAL? SYEAR,2061,2071 \?ELS33
CALL2 SCORE,118
PRINTI "gray and smoggy"
JUMP ?CND14
?ELS33: PRINTI "light"
?CND14: PRINTR "."
.FUNCT NIGHT-F
EQUAL? PRSA,V?WAIT-FOR \?ELS5
CALL PERFORM,V?WAIT-FOR,DUSK
RTRUE
?ELS5: ZERO? SIMULATING /?ELS7
ZERO? LIGHT-LEVEL /?ELS7
CALL1 MOBY-VERB?
ZERO? STACK \?ELS7
CALL2 CANT-SEE,NIGHT
RSTACK
?ELS7: EQUAL? HERE,ROOFTOP /FALSE
CALL1 MOBY-VERB?
ZERO? STACK \FALSE
CALL2 CANT-SEE,NIGHT
RSTACK
.FUNCT DAY-F
EQUAL? PRSA,V?WAIT-FOR \?ELS5
CALL PERFORM,V?WAIT-FOR,DAWN
RTRUE
?ELS5: ZERO? SIMULATING /FALSE
ZERO? LIGHT-LEVEL \FALSE
CALL1 MOBY-VERB?
ZERO? STACK \FALSE
CALL2 CANT-SEE,DAY
RSTACK
.FUNCT HANDS-F,ACTOR
ZERO? SIMULATING \?ELS5
PRINTR "You have no hands."
?ELS5: EQUAL? PRSA,V?WAVE \?ELS9
SET 'PRSO,FALSE-VALUE
CALL2 PERFORM,V?WAVE-AT
RTRUE
?ELS9: EQUAL? PRSA,V?SHAKE \?ELS11
CALL FIND-IN,HERE,ACTORBIT >ACTOR
ZERO? ACTOR /?ELS16
CALL PERFORM,V?THANK,ACTOR
RTRUE
?ELS16: PRINTR "Pleased to meet you."
?ELS11: EQUAL? PRSA,V?WASH \FALSE
CALL GLOBAL-IN?,SINK,HERE
ZERO? STACK /?ELS27
PRINTR "Your hands are now cleaner."
?ELS27: PRINTR "There's no sink here!"
.FUNCT HEAD-F
ZERO? SIMULATING \FALSE
PRINTR "You don't have a head, in the human sense."
.FUNCT PLAYER-F
ZERO? SIMULATING \FALSE
EQUAL? PRSA,V?GIVE \?ELS8
EQUAL? PRSO,RECORD-BUFFER /FALSE
?ELS8: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-DOWN,V?BOARD /?THN13
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-OVER,V?CLIMB-ON /?THN13
EQUAL? PRSA,V?ENTER,V?DISEMBARK,V?CROSS /?THN13
EQUAL? PRSA,V?LEAP,V?HIDE,V?FOLLOW /?THN13
EQUAL? PRSA,V?SIT,V?LIE-DOWN,V?LEAVE /?THN13
EQUAL? PRSA,V?STAND-ON,V?STAND,V?SKIP /?THN13
EQUAL? PRSA,V?WALK-AROUND \?ELS12
?THN13: PRINTR "A difficult task for an immobile computer."
?ELS12: EQUAL? PRSA,V?DIG,V?CUT,V?CLOSE /?THN19
EQUAL? PRSA,V?KILL,V?GIVE,V?DROP /?THN19
EQUAL? PRSA,V?MUNG,V?MOVE,V?KNOCK /?THN19
EQUAL? PRSA,V?PUSH,V?POINT,V?OPEN /?THN19
EQUAL? PRSA,V?PUT-ON,V?PUT-BEHIND,V?PUT /?THN19
EQUAL? PRSA,V?SHAKE,V?TOUCH,V?PUT-UNDER /?THN19
EQUAL? PRSA,V?TAKE,V?ROB,V?THROW /?THN19
EQUAL? PRSA,V?UNTIE,V?TURN,V?TIE /?THN19
EQUAL? PRSA,V?SEARCH,V?WAVE-AT,V?WAVE /?THN19
EQUAL? PRSA,V?DANCE,V?KICK \?ELS18
?THN19: PRINTR "That would be a neat trick without appendages."
?ELS18: EQUAL? PRSA,V?SMILE,V?KISS,V?BITE \?ELS24
PRINTR "Your speakers are not equipped with mouths."
?ELS24: EQUAL? PRSA,V?DRINK,V?EAT \?ELS28
PRINTR "You can't and don't need to."
?ELS28: EQUAL? PRSA,V?SMELL \FALSE
PRINTR "You're not equipped with olfactory senses."
.FUNCT YOURSELF-F
PRINTR "[It's not clear whom you're referring to.]"
.FUNCT ME-F,OLIT
EQUAL? PRSA,V?TELL \?ELS5
PRINTI "Talking to yourself is a sign of impending mental collapse."
CRLF
CALL1 CLEAR-BUF
RSTACK
?ELS5: EQUAL? PRSA,V?LISTEN \?ELS9
PRINTR "Yes?"
?ELS9: EQUAL? PRSA,V?ALARM \?ELS13
EQUAL? MODE,SLEEP-MODE \?ELS18
PRINTR "You are (although you haven't left Sleep Mode yet)."
?ELS18: PRINT YOU-ARE
CRLF
RTRUE
?ELS13: EQUAL? PRSA,V?GIVE \?ELS26
EQUAL? PRSI,ME \?ELS26
CALL PERFORM,V?TAKE,PRSO
RTRUE
?ELS26: EQUAL? PRSA,V?MOVE \?ELS30
CALL1 V-WALK-AROUND
RSTACK
?ELS30: EQUAL? PRSA,V?SEARCH \?ELS32
CALL1 V-INVENTORY
RTRUE
?ELS32: EQUAL? PRSA,V?MUNG,V?KILL \?ELS34
PRINTR "Dumb."
?ELS34: EQUAL? PRSA,V?WHERE,V?FIND \?ELS38
PRINTI "You're "
FSET? HERE,STREETBIT \?ELS43
PRINTI "at"
JUMP ?CND41
?ELS43: EQUAL? HERE,MAIN-STREET-BRIDGE,RIVER-STREET-BRIDGE,PIER \?ELS47
PRINTI "on"
JUMP ?CND41
?ELS47: PRINTI "in"
?CND41: EQUAL? HERE,INTERFACE-ROOM,SIMULATION-ROOM /?THN57
EQUAL? HERE,LIBRARY-ROOM,SLEEP-ROOM,COMM-ROOM \?ELS56
?THN57: CALL ARTICLE,MODE,TRUE-VALUE
JUMP ?CND54
?ELS56: CALL ARTICLE,HERE,TRUE-VALUE
?CND54: PRINTR "."
?ELS38: EQUAL? PRSA,V?WHO \?ELS64
ZERO? SIMULATING /?ELS69
PRINTR "Perry Simm."
?ELS69: PRINTR "PRISM."
?ELS64: EQUAL? PRSA,V?FOLLOW \?ELS78
PRINTR "It's difficult not to follow yourself."
?ELS78: EQUAL? PRSA,V?EXAMINE \?ELS82
ZERO? SIMULATING \?ELS87
PRINTR "How can you look at yourself? You're spread out through many rooms in several buildings, most of which don't have communication outlets!"
?ELS87: EQUAL? SYEAR,2081 \?ELS91
PRINTR "Through your torn clothes you can see malnutrition sores on your thin, bony arms."
?ELS91: EQUAL? SYEAR,2071 \?ELS95
PRINTR "Your clothes are frayed, and your skin is beginning to show the wrinkles of your sixty years."
?ELS95: PRINTI "You look much as you always have: a normal, middle-aged male"
EQUAL? SYEAR,2061 \?CND102
PRINTI ", perhaps a little older and a little grayer"
?CND102: PRINTI ". Your clothes are "
EQUAL? SYEAR,2061 \?ELS113
PRINTR "a bit old and ratty."
?ELS113: PRINTR "simple but adequate."
?ELS82: EQUAL? PRSA,V?WASH \?ELS121
PRINTR "You're not dirty."
?ELS121: EQUAL? PRSA,V?CALL \FALSE
CALL1 V-COUNT
RSTACK
.FUNCT MY-NAME-F
EQUAL? PRSA,V?WHAT \FALSE
CALL PERFORM,V?WHO,ME
RTRUE
.FUNCT CONVERSATION-F
EQUAL? HERE,DORM \?ELS5
ZERO? DORM-RAID-FLAG \?ELS5
PRINTI "[You can't hear any "
PRINTD CONVERSATION
PRINTR " here!]"
?ELS5: EQUAL? PRSA,V?LISTEN \FALSE
EQUAL? HERE,CONTROL-CENTER \?ELS18
PRINTI "Even at maximum sensitivity, your aural receptors can't quite make out the words of the "
PRINTD CONVERSATION
PRINTR "."
?ELS18: PRINTR "You can't make out any words."
.FUNCT MUSIC-F
EQUAL? SYEAR,2061 \?ELS5
EQUAL? HERE,DORM \?ELS5
PRINTR "[You can't hear any music here!]"
?ELS5: EQUAL? PRSA,V?LISTEN \FALSE
EQUAL? HERE,BAR \?ELS16
CALL PERFORM,V?LISTEN,JUKEBOX
RTRUE
?ELS16: PRINTR "The music is loud but muffled."
.FUNCT DOORWAY-F
EQUAL? PRSA,V?THROUGH \?ELS5
CALL1 V-WALK-AROUND
RSTACK
?ELS5: EQUAL? PRSA,V?OPEN \?ELS7
PRINTR "It is."
?ELS7: EQUAL? PRSA,V?CLOSE \?ELS11
PRINTR "That door doesn't close."
?ELS11: EQUAL? PRSA,V?SMELL \?ELS15
EQUAL? HERE,WICKER-AND-RIVER \?ELS15
EQUAL? SYEAR,2071 /?ELS15
CALL PERFORM,V?SMELL,STAIRS
RTRUE
?ELS15: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINTR "You can't tell what's on the other side from here."
.FUNCT GLOBAL-ROOM-F
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?LOOK \?ELS5
CALL1 V-LOOK
RTRUE
?ELS5: EQUAL? PRSA,V?WALK-TO,V?THROUGH \?ELS7
CALL1 V-WALK-AROUND
RSTACK
?ELS7: EQUAL? PRSA,V?DISEMBARK,V?LEAVE \?ELS9
CALL2 DO-WALK,P?OUT
RSTACK
?ELS9: EQUAL? PRSA,V?WALK-AROUND \?ELS11
PRINTR "Walking around the room reveals nothing new. To move elsewhere, just type the desired direction."
?ELS11: EQUAL? PRSA,V?WASH \FALSE
CALL1 IN-APARTMENT?
ZERO? STACK /?ELS20
ZERO? APARTMENT-RAID-FLAG /?ELS25
PRINTR "You begin cleaning up the mess."
?ELS25: EQUAL? JILL-COUNTER,9 \FALSE
IN? JILL,HERE \FALSE
PRINT MY-WEEK
CRLF
RTRUE
?ELS20: EQUAL? HERE,FOODVILLE-1,FOODVILLE-2 \FALSE
EQUAL? SYEAR,2071,2081 \FALSE
PRINTR "A hopeless job."
.FUNCT ALLEY-OBJECT-F
EQUAL? PRSA,V?THROUGH,V?WALK-TO \?ELS5
EQUAL? HERE,ALLEY \?ELS10
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS10: EQUAL? HERE,FACTORY-ENTRANCE \?ELS14
CALL2 DO-WALK,P?EAST
RSTACK
?ELS14: EQUAL? HERE,BAR \?ELS16
CALL2 DO-WALK,P?WEST
RSTACK
?ELS16: CALL1 V-WALK-AROUND
RSTACK
?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE \?ELS20
EQUAL? HERE,ALLEY \?ELS25
CALL1 V-WALK-AROUND
RSTACK
?ELS25: PRINT LOOK-AROUND
CRLF
RTRUE
?ELS20: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,ALLEY \FALSE
CALL1 V-LOOK
RSTACK
.FUNCT STREET-F
FSET? HERE,STREETBIT /?ELS5
EQUAL? HERE,ROOFTOP /?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,STREET
RSTACK
?ELS5: EQUAL? PRSA,V?CROSS \?ELS9
PRINTR "That's not useful; anything you could do or see there, you can do or see here."
?ELS9: EQUAL? PRSA,V?FOLLOW \FALSE
CALL1 V-WALK-AROUND
RSTACK
.FUNCT PEOPLE-F
IN? SABOTEURS,HERE \?ELS5
CALL CHANGE-OBJECT,PEOPLE,SABOTEURS
RSTACK
?ELS5: EQUAL? HERE,ATHLETIC-FIELD \?ELS7
EQUAL? SYEAR,2061,2071 \?ELS7
CALL CHANGE-OBJECT,PEOPLE,CHILDREN
RSTACK
?ELS7: ZERO? LIGHT-LEVEL \?ELS11
FSET? HERE,STREETBIT \?ELS11
CALL1 MOBY-VERB?
ZERO? STACK \?ELS11
CALL2 CANT-SEE,PEOPLE
RSTACK
?ELS11: ZERO? SIMULATING /?ELS15
EQUAL? SYEAR,2081 \?ELS15
CALL2 CANT-SEE,PEOPLE
RSTACK
?ELS15: EQUAL? HERE,CORE \?ELS19
IN? SABOTEURS,HERE /?ELS19
CALL1 MOBY-VERB?
ZERO? STACK \?ELS19
CALL2 CANT-SEE,PEOPLE
RSTACK
?ELS19: EQUAL? PRSA,V?TELL \?ELS23
PRINTI "You can't speak to crowds of people, just individuals."
CRLF
CALL1 CLEAR-BUF
RSTACK
?ELS23: EQUAL? PRSA,V?TELL-ABOUT,V?ASK-ABOUT \?ELS27
EQUAL? PRSO,PEOPLE \?ELS27
CALL PERFORM,V?TELL,PEOPLE
RTRUE
?ELS27: EQUAL? PRSA,V?FOLLOW \?ELS31
CALL1 V-WALK-AROUND
RSTACK
?ELS31: EQUAL? PRSA,V?WAIT-FOR \?ELS33
EQUAL? HERE,CORE,ROOFTOP \?ELS33
EQUAL? PART-FLAG,3 \?ELS33
CALL2 V-WAIT,120
RSTACK
?ELS33: EQUAL? PRSA,V?LISTEN,V?EXAMINE \?ELS37
EQUAL? HERE,ROCKVIL-STADIUM \?ELS37
EQUAL? SYEAR,2071 \?ELS37
LESS? STIME,1201 \?ELS37
GRTR? STIME,481 \?ELS37
PRINTR "The mob is frenzied and bloodthirsty."
?ELS37: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,BAR \FALSE
CALL1 PEOPLE-IN-BAR-DESC
CRLF
RTRUE
.FUNCT PEOPLE-IN-BAR-DESC
PRINTI "The bar is filled with "
EQUAL? SYEAR,2071 \?ELS5
PRINTI "tough-looking serfs and black marketeers"
JUMP ?CND3
?ELS5: PRINTI "all sorts of sleazy lowlifes"
?CND3: PRINTI "."
RTRUE
.FUNCT PARENTS-F
INTBL? W?MOTHER,P-NAMW,2 /?THN8
INTBL? W?MOM,P-NAMW,2 \?ELS5
?THN8: CALL2 VISIBLE?,JILL
ZERO? STACK /?ELS5
CALL CHANGE-OBJECT,PARENTS,JILL
RSTACK
?ELS5: INTBL? W?FATHER,P-NAMW,2 /?THN14
INTBL? W?DAD,P-NAMW,2 \?ELS11
?THN14: CALL1 IN-APARTMENT?
ZERO? STACK /?ELS11
EQUAL? SYEAR,2041,2051 \?ELS11
CALL CHANGE-OBJECT,PARENTS,ME
RSTACK
?ELS11: CALL1 MOBY-VERB?
ZERO? STACK \FALSE
CALL2 CANT-SEE,PARENTS
RSTACK
.FUNCT MINDEX-F
EQUAL? SYEAR,2061,2071 \?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,MINDEX
RSTACK
?ELS5: EQUAL? PRSA,V?TOUCH,V?MOVE,V?PUSH \?ELS9
PRINTR "Why do you think they call it ""dope?"""
?ELS9: EQUAL? PRSA,V?SMELL \?ELS13
ZERO? DORM-RAID-FLAG /?ELS18
PRINTR "The odor has dissipated."
?ELS18: PRINTR "It smells typically sweet and prickly."
?ELS13: EQUAL? PRSA,V?BUY \FALSE
CALL2 CANT-BUY,MINDEX
RSTACK
.FUNCT GENERIC-APARTMENT-F
RETURN APARTMENT-OBJECT
.FUNCT GENERIC-MITCHELL-F
EQUAL? P-NAM,W?RAV \?ELS5
RETURN RAV
?ELS5: ZERO? SIMULATING /?ELS7
EQUAL? SYEAR,2041 \?ELS7
RETURN BABY
?ELS7: RETURN MITCHELL
.FUNCT GENERIC-BOOK-F
CALL2 VISIBLE?,BOOK
ZERO? STACK /?ELS5
CALL2 VISIBLE?,JILL-BOOK
ZERO? STACK \FALSE
?ELS5: CALL2 VISIBLE?,BOOK
ZERO? STACK /?ELS9
FSET? BOOK,TRYTAKEBIT /?ELS9
EQUAL? P-NAM,W?BOOK \?ELS9
RETURN BOOK
?ELS9: RETURN BOOKS
.FUNCT GENERIC-TUBECAR-F
CALL2 VISIBLE?,RED-TUBECAR-OBJECT
ZERO? STACK /?ELS5
CALL2 VISIBLE?,BROWN-TUBECAR-OBJECT
ZERO? STACK \FALSE
?ELS5: EQUAL? HERE,TUBE-AT-UNIVERSITY,TUBE-AT-BODANSKI,TUBE-AT-AIRPORT \?ELS9
RETURN BROWN-TUBECAR-OBJECT
?ELS9: RETURN RED-TUBECAR-OBJECT
.FUNCT GENERIC-SODA-F
RETURN SODA
.FUNCT GENERIC-FOOD-F
EQUAL? PRSA,V?BUY \?ELS5
EQUAL? P-NAM,W?FOOD \?ELS5
RETURN MEAL
?ELS5: CALL2 VISIBLE?,TURKEY-SANDWICH
ZERO? STACK \FALSE
CALL2 VISIBLE?,HAM-SANDWICH
ZERO? STACK \FALSE
CALL2 VISIBLE?,GRANOLA-CLUSTER
ZERO? STACK \FALSE
CALL2 VISIBLE?,APPLE
ZERO? STACK \FALSE
CALL2 VISIBLE?,GROCERIES
ZERO? STACK \FALSE
CALL2 VISIBLE?,SOY-PATTY
ZERO? STACK \FALSE
CALL2 VISIBLE?,SALAD
ZERO? STACK \FALSE
RETURN MEAL
.FUNCT GENERIC-PERELMAN-F
RETURN PERELMAN
.FUNCT GENERIC-NEWSPAPER-F
RETURN NEWSPAPER
.FUNCT GENERIC-BED-F
RETURN BED
.FUNCT GENERIC-GUARD-F
INTBL? W?BSF,P-ADJW,2 \?ELS5
RETURN BSF-BASE
?ELS5: ZERO? SIMULATING \?ELS7
ZERO? SEIGE /?ELS7
RETURN NATIONAL-GUARDSMAN
?ELS7: EQUAL? HERE,MAIN-AND-WICKER \?ELS11
EQUAL? PRSA,V?FOLLOW \?ELS11
EQUAL? SYEAR,2051 \?ELS11
RETURN SPEAR-CARRIER
?ELS11: PUTP SPEAR-CARRIER,P?SDESC,STR?292
RETURN SPEAR-CARRIER
.FUNCT GENERIC-ROOM-F
EQUAL? HERE,DINING-ROOM \?ELS5
RETURN DINING-ROOM-OBJECT
?ELS5: EQUAL? HERE,LIVING-ROOM,EPILOGUE-LIVING-ROOM \?ELS7
RETURN LIVING-ROOM-OBJECT
?ELS7: EQUAL? HERE,BEDROOM,MASTER-BEDROOM \?ELS9
RETURN BEDROOM-OBJECT
?ELS9: EQUAL? HERE,BATHROOM,EPILOGUE-BATHROOM \?ELS11
RETURN BATHROOM-OBJECT
?ELS11: EQUAL? HERE,SOLARIUM \?ELS13
RETURN SOLARIUM-OBJECT
?ELS13: RETURN GLOBAL-ROOM
.FUNCT GENERIC-KITCHEN-F
RETURN KITCHEN-OBJECT
.FUNCT GENERIC-OFFICIAL-F
EQUAL? HERE,FIRST-METHODIST-CHURCH,ST-MICHAELS \?ELS5
RETURN CHURCH-OFFICIAL
?ELS5: RETURN GOVERNMENT-OFFICIAL
.FUNCT ROCKVIL-OBJECT-F
EQUAL? PRSA,V?WALK-TO,V?THROUGH \?ELS5
ZERO? SIMULATING /?ELS10
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS10: PRINTI "Try entering "
PRINTD SIMULATION-MODE
PRINTR "."
?ELS5: ZERO? SIMULATING \?ELS21
EQUAL? HERE,ROOFTOP /?ELS21
CALL1 MOBY-VERB?
ZERO? STACK \?ELS21
CALL2 CANT-SEE,ROCKVIL-OBJECT
RSTACK
?ELS21: EQUAL? HERE,ROOFTOP \?ELS25
EQUAL? PRSA,V?EXAMINE \?ELS25
PRINTI "All you can see of the city is a g"
GRTR? TIME,1155 /?THN33
LESS? TIME,430 \?ELS32
?THN33: PRINTI "low"
JUMP ?CND30
?ELS32: PRINTI "ray haze"
?CND30: PRINTR " on the horizon."
?ELS25: EQUAL? HERE,SKYCAB \FALSE
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "The city is spread below you like a map."
.FUNCT CANT-BUY,OBJ
PRINTI "You can't buy"
CALL2 ARTICLE,OBJ
PRINTR " here!"
.FUNCT TOO-POOR,AMOUNT,ITEM
LESS? CREDIT,AMOUNT \FALSE
PRINTI ", but are embarrassed when"
CALL2 ARTICLE,SPEAR-CARRIER
PRINTI " returns with your card and"
EQUAL? SYEAR,2041 \?ELS12
PRINTI " politely"
JUMP ?CND10
?ELS12: EQUAL? SYEAR,2051 \?ELS16
PRINTI ", with a slight smirk,"
JUMP ?CND10
?ELS16: EQUAL? SYEAR,2061 \?ELS20
PRINTI " rudely"
JUMP ?CND10
?ELS20: EQUAL? SYEAR,2071 \?CND10
PRINTI " almost abusively"
?CND10: PRINTI " informs you that you don't have enough funds in your account to cover the $"
PRINTN AMOUNT
PRINTI " cost of"
CALL ARTICLE,ITEM,TRUE-VALUE
PRINTR "."
.FUNCT DEBIT,AMOUNT
SUB CREDIT,AMOUNT >CREDIT
PRINTI ". After a moment,"
CALL ARTICLE,SPEAR-CARRIER,TRUE-VALUE
PRINTI " returns your card, informing you that your account has been debited for $"
PRINTN AMOUNT
PRINTI " and that your new balance is $"
PRINTN CREDIT
RTRUE
.FUNCT VENDING,VENDOR,ITEM,AMOUNT
PRINTI "You insert your card into the "
PRINTD VENDOR
PRINTI ". A readout flashes """
LESS? CREDIT,AMOUNT \?ELS9
PRINTR "INSUFFICIENT FUNDS"" and your card spits back into your hand."
?ELS9: FCLEAR ITEM,TRYTAKEBIT
FCLEAR ITEM,NDESCBIT
MOVE ITEM,PLAYER
SUB CREDIT,AMOUNT >CREDIT
PRINTI "NEW BALANCE: $"
PRINTN CREDIT
PRINTI """ and a "
PRINTD ITEM
PRINTR " pops out into your hands."
.FUNCT CLOSING-TIME,TIME,LOC-STRING,ACTOR-STRING,NEW-LOC
GRTR? STIME,TIME \FALSE
CRLF
PRINTI "An announcement heralds the closing of "
PRINT LOC-STRING
PRINTI " for the evening, and "
PRINT ACTOR-STRING
PRINTI " shows you to the exit."
CRLF
CRLF
EQUAL? HERE,JOYBOOTH \?CND8
MOVE HEADSET,HERE
FSET HEADSET,NDESCBIT
FCLEAR HEADSET,WORNBIT
?CND8: CALL2 GOTO,NEW-LOC
RTRUE
.FUNCT CURFEW-CLOSE,NEW-LOC
GRTR? STIME,1200 \FALSE
EQUAL? SYEAR,2041 /FALSE
CRLF
PRINTI "Someone calls out something about ""getting late"" and ""we gotta close up."" You follow everyone out."
CRLF
CRLF
MOVE BEER,LOCAL-GLOBALS
CALL2 GOTO,NEW-LOC
RTRUE
.FUNCT RESTAURANT-CLOSES,NEW-LOC
EQUAL? SYEAR,2041 /FALSE
GRTR? STIME,1200 \FALSE
CRLF
PRINTI "The waiter approaches. ""I'm sorry, but notice the hour."" He "
IN? CREDIT-CARD,SPEAR-CARRIER \?CND10
MOVE CREDIT-CARD,PLAYER
PRINTI "returns your credit card and "
?CND10: PRINTI "leads you out."
CRLF
CRLF
CALL2 GOTO,NEW-LOC
RTRUE
.FUNCT SHOP-CLOSES,TIME,LOC-STRING,ACTOR-STRING,NEW-LOC
GRTR? STIME,TIME \FALSE
CRLF
PRINT ACTOR-STRING
PRINTI " informs you that the "
PRINT LOC-STRING
PRINTI " is closing and ushers you to the door."
CRLF
CRLF
CALL2 GOTO,NEW-LOC
RTRUE
.FUNCT CLOSED-PRINT,LOC
GRTR? STIME,300 \?ELS5
LESS? STIME,840 \?ELS5
PRINT LOC
PRINTR " isn't open yet."
?ELS5: PRINT LOC
PRINTR " seems to be closed for the night."
.FUNCT SUBURBS-ENTER-F
EQUAL? HERE,SOUTHWAY-UNDERPASS \?ELS3
EQUAL? SYEAR,2071 \?ELS3
PRINTI "The collapsed highway blocks the road."
CRLF
RFALSE
?ELS3: SOUND 1
PRINTI "WARNING: You have reached the boundary of this simulation."
CRLF
RFALSE
.FUNCT OFFICE-BUILDING-ENTER-F
GRTR? STIME,1120 /?THN4
LESS? STIME,475 \?ELS3
?THN4: CALL2 CLOSED-PRINT,STR?293
RFALSE
?ELS3: EQUAL? SYEAR,2071 \?ELS7
SET 'BRUISED,TRUE-VALUE
CALL2 SCORE,98
PRINTI "As soon as you enter, two thugs in security uniforms beat you up and drag you out to the gutter. They laugh with mindless glee before returning to the building."
CRLF
RFALSE
?ELS7: PUTP SPEAR-CARRIER,P?SDESC,STR?292
SET 'FOLLOW-FLAG,9
CALL QUEUE,I-UNFOLLOW,2
PRINTI "As you enter, a security guard, seeing that you have no badge, "
EQUAL? SYEAR,2041 \?ELS16
PRINTI "politely leads "
JUMP ?CND14
?ELS16: EQUAL? SYEAR,2061 \?ELS20
CALL2 SCORE,97
PRINTI "roughly pushes "
JUMP ?CND14
?ELS20: PRINTI "escorts "
?CND14: PRINTI "you back out to the street and then returns to the building."
CRLF
RFALSE
.FUNCT APARTMENT-ENTER-F
EQUAL? SYEAR,2071 \?ELS3
CALL2 SCORE,98
PRINTI "As soon as you enter, a guard clubs you and tosses you out onto the sidewalk. Passersby look away, giving you a wide berth."
CRLF
RFALSE
?ELS3: PUTP SPEAR-CARRIER,P?SDESC,STR?294
SET 'FOLLOW-FLAG,9
CALL QUEUE,I-UNFOLLOW,2
PRINTI "A "
LESS? STIME,420 \?CND10
PRINTI "tired-looking "
?CND10: PRINTI "doorman, not recognizing you as a resident, "
EQUAL? SYEAR,2041 \?ELS19
PRINTI "politely "
JUMP ?CND17
?ELS19: EQUAL? SYEAR,2061 \?CND17
CALL2 SCORE,97
PRINTI "roughly "
?CND17: PRINTI "turns you away before returning to the building."
CRLF
RFALSE
.FUNCT DESCRIBE-APARTMENT-VESTIBULE,IN-DIR,OUT-DIR
PRINTI "You are in the vestibule of a typical high-rise city apartment building. A wide expanse of labelled buzzers and tiny mailboxes fills one wall. "
EQUAL? SYEAR,2061,2071 \?CND3
CALL2 SCORE,0
PRINTI "The mailboxes have been extensively vandalized, and graffiti is sprayed across every surface. "
?CND3: EQUAL? SYEAR,2071 \?ELS10
PRINTI "Shattered glass doors, held together by cheap wooden boards,"
JUMP ?CND8
?ELS10: PRINTI "Glass doors"
?CND8: PRINTI " lie "
EQUAL? HERE,PARKVIEW-APARTMENTS \?ELS21
FSET? PARKVIEW-DOOR,OPENBIT \?ELS21
PRINTI "open"
JUMP ?CND19
?ELS21: PRINTI "closed"
?CND19: PRINTI " to the "
PRINT IN-DIR
PRINTI ". Next to this inner door is a "
EQUAL? SYEAR,2061,2071 \?ELS34
PRINTI "tangle of cords where a "
PRINTD PICTUREPHONE
PRINTI " has been ripped out by vandals"
JUMP ?CND32
?ELS34: PRINTD PICTUREPHONE
?CND32: PRINTI ". The street lies to the "
PRINT OUT-DIR
PRINTI "."
RTRUE
.FUNCT BUZZERS-F
EQUAL? PRSA,V?PUSH \?ELS5
PRINTR "You push one of the buzzers at random, but there's no response."
?ELS5: EQUAL? PRSA,V?READ,V?EXAMINE \?ELS9
PRINTI "The buzzers and mailboxes are all labelled with name after ordinary name."
EQUAL? HERE,PARKVIEW-APARTMENTS \?CND12
PRINTI " One of the buzzers is, of course, yours."
?CND12: CRLF
RTRUE
?ELS9: EQUAL? PRSA,V?COUNT \FALSE
PRINTR "Hundreds."
.FUNCT MAILBOXES-F
EQUAL? PRSA,V?OPEN \?ELS5
EQUAL? PRSI,KEY \?ELS10
CALL PERFORM,V?UNLOCK,MAILBOXES
RTRUE
?ELS10: PRINTR "The mailboxes are all locked."
?ELS5: EQUAL? PRSA,V?UNLOCK \?ELS16
PRINTR "You don't have the proper key."
?ELS16: EQUAL? PRSA,V?COUNT,V?READ \?ELS20
CALL PERFORM,PRSA,BUZZERS
RTRUE
?ELS20: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? SYEAR,2061,2071 \?ELS27
PRINTR "The mailboxes are battered and covered with graffiti."
?ELS27: CALL PERFORM,V?OPEN,MAILBOXES
RTRUE
.FUNCT PICTUREPHONE-F
EQUAL? SYEAR,2061,2071 \FALSE
PRINTI "The "
PRINTD PICTUREPHONE
PRINTR " is gone, torn out of the wall."
.FUNCT LABEL-F
INTBL? W?MY,P-ADJW,2 \?ELS5
EQUAL? HERE,PARKVIEW-APARTMENTS \?ELS10
CALL CHANGE-OBJECT,LABEL,MY-BUZZER
RSTACK
?ELS10: PRINTR "Your label isn't here; it's in the lobby of your apartment building!"
?ELS5: IN? BUZZERS,HERE \?ELS16
EQUAL? PRSA,V?EXAMINE,V?READ,V?COUNT \FALSE
CALL PERFORM,PRSA,BUZZERS
RTRUE
?ELS16: EQUAL? HERE,FOODVILLE-1,FOODVILLE-2 \?ELS23
EQUAL? SYEAR,2061 \?ELS23
EQUAL? PRSA,V?READ \FALSE
PRINTR "The labels on the tins of food are cheaply made and poorly applied."
?ELS23: CALL2 VISIBLE?,SCOTCH
ZERO? STACK /?ELS34
EQUAL? PRSA,V?READ \FALSE
CALL PERFORM,V?READ,SCOTCH
RTRUE
?ELS34: CALL1 MOBY-VERB?
ZERO? STACK \FALSE
CALL2 CANT-SEE,LABEL
RSTACK
.FUNCT GRAFFITI-F
EQUAL? HERE,RED-TUBECAR,BROWN-TUBECAR \?ELS7
EQUAL? SYEAR,2041 /?THN4
?ELS7: EQUAL? HERE,CEMETERY,ELM-UNDERPASS \?ELS9
EQUAL? SYEAR,2041,2051,2061 /?THN4
?ELS9: EQUAL? HERE,CHURCH-STREET-PARK \?ELS11
EQUAL? SYEAR,2061,2071 /?THN4
?ELS11: EQUAL? HERE,CHURCH-ENTRANCE,HALLEY-PARK-EAST \?ELS13
EQUAL? SYEAR,2041,2051,2071 /?THN4
?ELS13: CALL GLOBAL-IN?,PICTUREPHONE,HERE
ZERO? STACK /?CND1
EQUAL? SYEAR,2041,2051 \?CND1
?THN4: CALL1 MOBY-VERB?
ZERO? STACK \?CND1
CALL2 CANT-SEE,GRAFFITI
RTRUE
?CND1: EQUAL? PRSA,V?READ \FALSE
EQUAL? HERE,CEMETERY \?ELS28
PRINTI "The "
PRINTD HEADSTONES
PRINTR " are defaced with anti-Catholic phrases."
?ELS28: EQUAL? HERE,CHURCH-STREET-PARK /?THN35
EQUAL? HERE,RED-TUBECAR,BROWN-TUBECAR \?ELS34
EQUAL? SYEAR,2051 \?ELS34
?THN35: PRINTR "The graffiti is ugly but inoffensive, mostly various names and initials."
?ELS34: EQUAL? HERE,ELM-UNDERPASS \?ELS42
PRINTR """Chinks Get Lost."""
?ELS42: PRINTR "The graffiti is mostly obscene or racist."
.FUNCT GLOBAL-SIGN-F
EQUAL? HERE,KENNEDY-PARK \?ELS5
EQUAL? SYEAR,2061 /?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,GLOBAL-SIGN
RSTACK
?ELS5: EQUAL? HERE,MAIN-AND-WICKER \?ELS9
EQUAL? SYEAR,2071,2081 /?ELS9
CALL1 MOBY-VERB?
ZERO? STACK \?ELS9
CALL2 CANT-SEE,GLOBAL-SIGN
RSTACK
?ELS9: EQUAL? HERE,CONSTRUCTION-SITE-1,CONSTRUCTION-SITE-2,MAIN-AND-RIVER \?ELS13
EQUAL? SYEAR,2041 /?ELS13
CALL1 MOBY-VERB?
ZERO? STACK \?ELS13
CALL2 CANT-SEE,GLOBAL-SIGN
RSTACK
?ELS13: EQUAL? HERE,SOUTHWAY-AND-PARK,SYMPHONY-ENTRANCE /?THN20
EQUAL? HERE,SKYCAR-LOT-6,SKYCAR-LOT-7,ZOO \?ELS17
?THN20: EQUAL? SYEAR,2071 /?ELS17
CALL1 MOBY-VERB?
ZERO? STACK \?ELS17
CALL2 CANT-SEE,GLOBAL-SIGN
RSTACK
?ELS17: EQUAL? HERE,POST-OFFICE,MUSEUM-ENTRANCE,RIVERSIDE-PARK \?ELS23
EQUAL? SYEAR,2041,2051 \?ELS23
CALL1 MOBY-VERB?
ZERO? STACK \?ELS23
CALL2 CANT-SEE,GLOBAL-SIGN
RSTACK
?ELS23: EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
EQUAL? HERE,KENNEDY-PARK \?ELS29
PRINTR " ""KENNEDY PARK CONDOMINIUMS
Elegant Urban Living
Opening December 15, 2061
Rockvil Development Corp."""
?ELS29: EQUAL? HERE,POST-OFFICE \?ELS33
PRINTI """Open daily, "
EQUAL? SYEAR,2061 \?ELS38
PRINTI "10a"
JUMP ?CND36
?ELS38: PRINTI "3p"
?CND36: PRINTR "m to 4pm."""
?ELS33: EQUAL? HERE,CONSTRUCTION-SITE-1 \?ELS48
PRINTR " ""First Continent Bank Building
6,000 sq. meters of office space
Opening September 1, 2042"""
?ELS48: EQUAL? HERE,CONSTRUCTION-SITE-2 \?ELS52
PRINTI " "
PRINTD HEIMAN-VILLAGE
PRINTR " Two
** City Within a City **
Opening July 8, 2042"
?ELS52: EQUAL? HERE,MAIN-AND-WICKER \?ELS58
EQUAL? SYEAR,2081 \?ELS58
CALL2 SCORE,38
PRINTR """Buxton/Briggs territory begins here. Outsiders will be killed on sight."""
?ELS58: EQUAL? HERE,SOUTHWAY-AND-PARK,MAIN-AND-WICKER \?ELS64
PRINTI """Rations for "
MOD SDATE,3
ZERO? STACK \?ELS69
PRINTI "1's, 2's and 3's"
JUMP ?CND67
?ELS69: MOD SDATE,3
EQUAL? STACK,1 \?ELS73
PRINTI "4's, 5's and 6's"
JUMP ?CND67
?ELS73: PRINTI "7's, 8's, 9's and 10's"
?CND67: PRINTR " today."""
?ELS64: EQUAL? HERE,SKYCAR-LOT-6,SKYCAR-LOT-7,SYMPHONY-ENTRANCE \?ELS83
PRINT SYMPHONY-CLOSED
CRLF
RTRUE
?ELS83: EQUAL? HERE,MUSEUM-ENTRANCE,RIVERSIDE-PARK \?ELS87
PRINTR """Closed for remodeling. Re-opening September 2058."""
?ELS87: EQUAL? HERE,ZOO \?ELS91
PRINTR "The signs on the cages, crudely made, read ""EXTINCT."""
?ELS91: PRINTR "The billboard advertises office space within the building."
.FUNCT GLOBAL-WINDOW-F
EQUAL? HERE,POST-OFFICE \?ELS5
EQUAL? PRSA,V?OPEN,V?EXAMINE,V?LOOK-INSIDE \?ELS10
EQUAL? SYEAR,2071 \?ELS10
LESS? STIME,900 /?THN13
GRTR? STIME,960 \?ELS10
?THN13: PRINTR "The window is shut tight."
?ELS10: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINTI "You see a typical back room of a "
PRINTD POST-OFFICE-OBJECT
PRINTR "."
?ELS5: EQUAL? PRSA,V?OPEN \?ELS24
PRINTR "This window cannot be opened."
?ELS24: EQUAL? PRSA,V?CLOSE \?ELS28
PRINTR "It is."
?ELS28: EQUAL? HERE,SOUTHWAY-AND-PARK,MAIN-AND-WICKER \?ELS32
EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \FALSE
PRINTI "The window is "
EQUAL? SYEAR,2041 \?ELS42
PRINTI "brightly lit and heaped with food"
JUMP ?CND40
?ELS42: EQUAL? SYEAR,2051 \?ELS46
PRINTI "filled with food"
JUMP ?CND40
?ELS46: EQUAL? SYEAR,2061 \?ELS50
PRINTI "dimly-lit, with sparse stacks of cans"
JUMP ?CND40
?ELS50: EQUAL? SYEAR,2071 \?ELS54
PRINTI "too grimy to see through. There is a sign in the window"
JUMP ?CND40
?ELS54: PRINTI "completely shattered"
?CND40: PRINTR "."
?ELS32: EQUAL? HERE,ELM-UNDERPASS \?ELS64
EQUAL? PRSA,V?EXAMINE \?ELS69
EQUAL? SYEAR,2071 \?ELS69
PRINTR "There is graffiti painted on the window."
?ELS69: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \FALSE
PRINTR "You can see the interior of a Chinese restaurant."
?ELS64: EQUAL? HERE,RAILROAD-MUSEUM \?ELS79
EQUAL? PRSA,V?LOOK-INSIDE \?ELS79
PRINTI "You can see the old "
PRINTD RAILROAD-YARD
PRINTR "s."
?ELS79: EQUAL? HERE,BURNED-OUT-AREA \?ELS87
EQUAL? PRSA,V?LOOK-INSIDE \?ELS92
PRINTR "It's too dark inside the abandoned buildings to see anything."
?ELS92: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "Almost all the windows in sight are broken or boarded over."
?ELS87: EQUAL? HERE,WICKER-AND-PIER \?ELS100
EQUAL? SYEAR,2071 \?ELS105
EQUAL? PRSA,V?EXAMINE \?ELS110
PRINTR "The window is grimy."
?ELS110: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINTR "The bookstore looks deserted."
?ELS105: EQUAL? PRSA,V?EXAMINE \?ELS123
PRINTR "The window is clean and shiny."
?ELS123: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINTR "You see the interior of a small bookstore."
?ELS100: EQUAL? HERE,CAFETERIA \?ELS131
EQUAL? PRSA,V?LOOK-INSIDE \?ELS131
PRINTR "You can see a wide expanse of lush green grass."
?ELS131: EQUAL? HERE,MASTER-BEDROOM \?ELS137
EQUAL? PRSA,V?LOOK-INSIDE \?ELS137
PRINTR "The windows are set into the upper part of the wall; all you can see is a sunny sky."
?ELS137: EQUAL? HERE,SKYCAB \FALSE
EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINTR "Rockvil continues to glide by below you:"
.FUNCT GLASS-F
EQUAL? HERE,FOODVILLE-2 \?ELS5
EQUAL? SYEAR,2081 /?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,GLASS
RSTACK
?ELS5: EQUAL? HERE,CONSTRUCTION-SITE-5 \?ELS9
EQUAL? SYEAR,2071 /?ELS9
CALL1 MOBY-VERB?
ZERO? STACK \?ELS9
CALL2 CANT-SEE,GLASS
RSTACK
?ELS9: EQUAL? HERE,MIDLAND-AND-RIVER \?ELS13
EQUAL? SYEAR,2051 \?ELS13
CALL1 MOBY-VERB?
ZERO? STACK \?ELS13
CALL2 CANT-SEE,GLASS
RSTACK
?ELS13: EQUAL? PRSA,V?EXAMINE \?ELS17
EQUAL? HERE,FOODVILLE-2,CONSTRUCTION-SITE-5 \?ELS17
PRINTR "The shattered glass covers most of the floor."
?ELS17: EQUAL? PRSA,V?TAKE \?ELS23
EQUAL? HERE,FOODVILLE-2,CONSTRUCTION-SITE-5 \?ELS23
PRINTR "The bits of glass are too sharp and tiny to carry."
?ELS23: EQUAL? HERE,UNIVERSITY-HEIGHTS,PARKVIEW-APARTMENTS,CHURCH-STREET-APARTMENTS \FALSE
EQUAL? SYEAR,2071 \FALSE
PRINTR "The glass on the doors is broken."
.FUNCT SEAT-F
EQUAL? PRSA,V?COUNT \?ELS5
EQUAL? HERE,LECTURE-HALL \?ELS5
PRINTR "Several hundred."
?ELS5: EQUAL? HERE,SKYCAB \FALSE
EQUAL? PRSA,V?DISEMBARK \FALSE
CALL1 V-STAND
RSTACK
.FUNCT CHAIR-F
EQUAL? HERE,SIMONS,THE-COACHMAN,ROYS-PAGODA \?ELS5
CALL1 RESTAURANT-TABLE-F
RSTACK
?ELS5: EQUAL? HERE,DINING-ROOM \?ELS7
CALL1 FURNITURE-REMOVED
RSTACK
?ELS7: EQUAL? PRSA,V?BOARD,V?CLIMB-ON,V?SIT \FALSE
PRINTR "You don't see any open chairs."
.FUNCT GLOBAL-TABLE-F
EQUAL? HERE,CLOSED-FACTORY \?ELS5
EQUAL? SYEAR,2041 \?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,GLOBAL-TABLE
RSTACK
?ELS5: EQUAL? HERE,DINING-ROOM \?ELS9
CALL1 FURNITURE-REMOVED
RSTACK
?ELS9: EQUAL? HERE,CAFETERIA \?ELS11
EQUAL? PRSA,V?EXAMINE \?ELS11
CALL1 CAFETERIA-TABLE-DESC
CRLF
RTRUE
?ELS11: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE
EQUAL? PRSI,GLOBAL-TABLE \FALSE
PRINTR "It's a bad idea to leave things around in a place like this -- they're liable to disappear."
.FUNCT PARK-OBJECT-F
EQUAL? SYEAR,2071 \?ELS5
EQUAL? HERE,ZOO,HUANG-HALL,HALLEY-AND-PARK /?THN8
EQUAL? HERE,AQUARIUM,HALLEY-AND-UNIVERSITY /?THN8
EQUAL? HERE,PARK-ENTRANCE,SKYCAR-LOT-4 \?ELS5
?THN8: CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,PARK-OBJECT
RSTACK
?ELS5: EQUAL? SYEAR,2061,2071 \?ELS11
EQUAL? HERE,ELM-AND-PARK,MAIN-AND-CHURCH,CHURCH-STREET-PARK /?THN14
EQUAL? HERE,ELM-AND-KENNEDY,HEIMAN-VILLAGE,MAIN-AND-KENNEDY \?ELS11
?THN14: CALL1 MOBY-VERB?
ZERO? STACK \?ELS11
CALL2 CANT-SEE,PARK-OBJECT
RSTACK
?ELS11: EQUAL? HERE,SKYCAB \?ELS17
EQUAL? PRSA,V?EXAMINE \?ELS22
PRINTR "You can see a festival of some sort in Halley Park. The gold and crimson tents of the festival form a multicolored patchwork against the green background of the city's oldest park."
?ELS22: CALL2 MILE-AWAY,PARK-OBJECT
RSTACK
?ELS17: EQUAL? PRSA,V?EXAMINE \?ELS28
EQUAL? HERE,HALLEY-PARK-EAST,HALLEY-PARK-WEST,CHURCH-STREET-PARK /?THN34
EQUAL? HERE,KENNEDY-PARK,RIVERSIDE-PARK \?ELS33
?THN34: CALL1 V-LOOK
RSTACK
?ELS33: CALL1 FROM-HERE
RSTACK
?ELS28: EQUAL? PRSA,V?THROUGH,V?WALK-TO \?ELS39
EQUAL? HERE,HALLEY-PARK-EAST,HALLEY-PARK-WEST,KENNEDY-PARK /?THN45
EQUAL? HERE,RIVERSIDE-PARK,CHURCH-STREET-PARK \?ELS44
?THN45: PRINT LOOK-AROUND
CRLF
RTRUE
?ELS44: EQUAL? HERE,ZOO,SYMPHONY-HALL \?ELS50
CALL2 DO-WALK,P?SE
RSTACK
?ELS50: EQUAL? HERE,HALLEY-AND-PARK,ELM-AND-KENNEDY \?ELS52
CALL2 DO-WALK,P?NW
RSTACK
?ELS52: EQUAL? HERE,PARK-ENTRANCE \?ELS54
CALL2 DO-WALK,P?WEST
RSTACK
?ELS54: EQUAL? HERE,ELM-AND-PARK \?ELS56
CALL2 DO-WALK,P?NE
RSTACK
?ELS56: EQUAL? HERE,MAIN-AND-KENNEDY \?ELS58
CALL2 DO-WALK,P?SW
RSTACK
?ELS58: EQUAL? HERE,AQUARIUM,MAIN-AND-CHURCH,SKYCAR-LOT-4 \?ELS60
CALL2 DO-WALK,P?SOUTH
RSTACK
?ELS60: EQUAL? HERE,HALLEY-AND-UNIVERSITY,HUANG-HALL \?ELS62
CALL2 DO-WALK,P?NORTH
RSTACK
?ELS62: CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK /FALSE
CALL2 DO-WALK,P?EAST
RSTACK
?ELS39: EQUAL? PRSA,V?LEAVE,V?DISEMBARK \FALSE
EQUAL? HERE,HALLEY-PARK-EAST,HALLEY-PARK-WEST,KENNEDY-PARK /?THN72
EQUAL? HERE,RIVERSIDE-PARK,CHURCH-STREET-PARK \?ELS71
?THN72: CALL1 V-WALK-AROUND
RSTACK
?ELS71: PRINT LOOK-AROUND
CRLF
RTRUE
.FUNCT MUSEUM-OBJECT-F
EQUAL? HERE,SKYCAB \?ELS5
CALL CHANGE-OBJECT,MUSEUM-OBJECT,BSF-BASE
RSTACK
?ELS5: EQUAL? PRSA,V?WALK-TO,V?THROUGH \?ELS7
EQUAL? HERE,RIVERSIDE-PARK,HALLEY-AND-PARK \?ELS12
CALL2 DO-WALK,P?SW
RSTACK
?ELS12: EQUAL? HERE,MUSEUM-ENTRANCE \?ELS14
CALL2 DO-WALK,P?SOUTH
RSTACK
?ELS14: CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK /FALSE
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS7: EQUAL? PRSA,V?LEAVE,V?DISEMBARK \?ELS20
EQUAL? HERE,HALLEY-MUSEUM \?ELS25
CALL2 DO-WALK,P?NE
RSTACK
?ELS25: EQUAL? HERE,RAILROAD-MUSEUM \?ELS27
CALL2 DO-WALK,P?NORTH
RSTACK
?ELS27: PRINT LOOK-AROUND
CRLF
RTRUE
?ELS20: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,HALLEY-MUSEUM,RAILROAD-MUSEUM \?ELS38
CALL1 V-LOOK
RSTACK
?ELS38: EQUAL? HERE,HALLEY-AND-PARK \?ELS40
PRINTI "The building "
EQUAL? SYEAR,2041,2051 \?ELS45
PRINTI "houses"
JUMP ?CND43
?ELS45: PRINTI "once housed"
?CND43: PRINTI " the famous "
PRINTD HALLEY-MUSEUM
PRINTR "."
?ELS40: EQUAL? HERE,MUSEUM-ENTRANCE \FALSE
PRINTI "The "
PRINTD RAILROAD-MUSEUM
PRINTI " is housed in a small building"
EQUAL? SYEAR,2051,2061 \?CND62
PRINTI ", now closed"
?CND62: PRINTR "."
.FUNCT FIELD-F
EQUAL? PRSA,V?THROUGH,V?WALK-TO \?ELS5
EQUAL? HERE,RIVER-AND-PARK \?ELS10
CALL2 DO-WALK,P?SE
RSTACK
?ELS10: EQUAL? HERE,RIVER-AND-KENNEDY \?ELS12
CALL2 DO-WALK,P?SW
RSTACK
?ELS12: EQUAL? HERE,ROCKVIL-STADIUM \?ELS14
PRINTR "Spectators are not permitted on the field."
?ELS14: CALL GLOBAL-IN?,FIELD,HERE
ZERO? STACK /FALSE
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS5: EQUAL? PRSA,V?LEAVE,V?DISEMBARK \?ELS22
EQUAL? HERE,ATHLETIC-FIELD,ROCKVIL-STADIUM \?ELS27
CALL1 V-WALK-AROUND
RSTACK
?ELS27: PRINT LOOK-AROUND
CRLF
RTRUE
?ELS22: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,ROCKVIL-STADIUM,ATHLETIC-FIELD \FALSE
CALL1 V-LOOK
RSTACK
.FUNCT FENCE-F
EQUAL? HERE,SOUTHWAY-AND-KENNEDY,SOUTHWAY-AND-RIVER \?ELS5
EQUAL? SYEAR,2041 /?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,FENCE
RSTACK
?ELS5: EQUAL? HERE,BEND,CONSTRUCTION-SITE-2 \?ELS9
EQUAL? SYEAR,2041 /?ELS9
CALL1 MOBY-VERB?
ZERO? STACK \?ELS9
CALL2 CANT-SEE,FENCE
RSTACK
?ELS9: EQUAL? HERE,WAREHOUSE-1 \?ELS13
EQUAL? SYEAR,2041,2051 \?ELS13
CALL1 MOBY-VERB?
ZERO? STACK \?ELS13
CALL2 CANT-SEE,FENCE
RSTACK
?ELS13: EQUAL? HERE,CHURCH-STREET-PARK \?ELS17
EQUAL? SYEAR,2061,2071 \?ELS17
CALL1 MOBY-VERB?
ZERO? STACK \?ELS17
CALL2 CANT-SEE,FENCE
RSTACK
?ELS17: EQUAL? PRSA,V?CLIMB-OVER,V?CLIMB-UP,V?CLIMB-FOO /?THN22
EQUAL? PRSA,V?LEAP \FALSE
?THN22: EQUAL? HERE,ROOFTOP \?ELS28
CALL2 DO-WALK,P?NORTH
RSTACK
?ELS28: PRINTR "The fence is unclimbable."
.FUNCT GATE-F
EQUAL? HERE,KENNEDY-PARK,MAIN-AND-KENNEDY /?THN8
EQUAL? HERE,ELM-AND-KENNEDY,ELM-AND-PARK \?ELS5
?THN8: EQUAL? SYEAR,2061,2071 \?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,GATE
RSTACK
?ELS5: EQUAL? HERE,HALLEY-AND-PARK,ZOO,SKYCAR-LOT-4 /?THN14
EQUAL? HERE,PARK-ENTRANCE,HALLEY-AND-UNIVERSITY \?ELS11
?THN14: EQUAL? SYEAR,2071 /?ELS11
CALL1 MOBY-VERB?
ZERO? STACK \?ELS11
CALL2 CANT-SEE,GATE
RSTACK
?ELS11: EQUAL? PRSA,V?OPEN \?ELS17
EQUAL? HERE,SKYBUS-TERMINAL \?ELS22
PRINTR "The boarding gates can be opened only by the skybus system employees."
?ELS22: EQUAL? HERE,BASE-GATE \?ELS26
PRINTR "Only the guard is allowed to open the gate."
?ELS26: EQUAL? HERE,PARK-ENTRANCE,HALLEY-AND-UNIVERSITY /?THN31
EQUAL? HERE,HALLEY-AND-PARK,ZOO,SKYCAR-LOT-4 \?ELS30
?THN31: PRINTR "The gates are locked."
?ELS30: PRINTR "The gates are open!"
?ELS17: EQUAL? PRSA,V?CLOSE \?ELS40
EQUAL? HERE,PARK-ENTRANCE,HALLEY-AND-UNIVERSITY /?THN46
EQUAL? HERE,SKYBUS-TERMINAL,HALLEY-AND-PARK /?THN46
EQUAL? HERE,ZOO,BASE-GATE,SKYCAR-LOT-4 \?ELS45
?THN46: PRINTR "The gates are closed!"
?ELS45: PRINTR "The gates can't be closed."
?ELS40: EQUAL? PRSA,V?THROUGH \FALSE
EQUAL? HERE,KENNEDY-PARK,CEMETERY \?ELS60
CALL1 V-WALK-AROUND
RSTACK
?ELS60: EQUAL? HERE,MAIN-AND-WICKER,HALLEY-AND-UNIVERSITY \?ELS62
CALL2 DO-WALK,P?NORTH
RSTACK
?ELS62: EQUAL? HERE,MIDLAND-AND-CHURCH,ZOO \?ELS64
CALL2 DO-WALK,P?SE
RSTACK
?ELS64: EQUAL? HERE,CHURCH-ENTRANCE \?ELS66
CALL2 DO-WALK,P?EAST
RSTACK
?ELS66: EQUAL? HERE,MAIN-AND-KENNEDY \?ELS68
CALL2 DO-WALK,P?SW
RSTACK
?ELS68: EQUAL? HERE,ELM-AND-KENNEDY,BASE-GATE,SKYBUS-TERMINAL \?ELS70
CALL2 DO-WALK,P?NW
RSTACK
?ELS70: EQUAL? HERE,PARK-ENTRANCE \?ELS72
CALL2 DO-WALK,P?WEST
RSTACK
?ELS72: EQUAL? HERE,SKYCAR-LOT-4 \?ELS74
CALL2 DO-WALK,P?SOUTH
RSTACK
?ELS74: CALL2 DO-WALK,P?NE
RSTACK
.FUNCT COUNTER-F
EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE
EQUAL? HERE,KITCHEN \?ELS10
PRINTR "There's no room on the counter. Maybe you should try the table."
?ELS10: EQUAL? PRSI,COUNTER \?ELS14
CALL PERFORM,V?DROP,BEER
RTRUE
?ELS14: EQUAL? HERE,EPILOGUE-KITCHEN /FALSE
CALL PERFORM,V?PUT,PRSO,GLOBAL-TABLE
RTRUE
.FUNCT SHELVES-F
EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,BOOKSTORE \?ELS10
PRINTR "The shelves are closely-placed and crammed with used books."
?ELS10: EQUAL? HERE,FOODVILLE-1,FOODVILLE-2 \FALSE
PRINTI "The shelves are "
EQUAL? SYEAR,2041 \?ELS19
PRINTI "heaped with food"
JUMP ?CND17
?ELS19: EQUAL? SYEAR,2051 \?ELS23
PRINTI "adequately stocked with food"
JUMP ?CND17
?ELS23: EQUAL? SYEAR,2061 \?ELS27
PRINTI "sparsely-filled with food"
JUMP ?CND17
?ELS27: PRINTI "bare"
?CND17: PRINTR "."
.FUNCT FACTORY-OBJECT-F
EQUAL? HERE,CLOSED-FACTORY \?ELS5
EQUAL? SYEAR,2041 /?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,FACTORY-OBJECT
RSTACK
?ELS5: EQUAL? PRSA,V?THROUGH,V?WALK-TO \?ELS9
EQUAL? HERE,WICKER-AND-RIVER \?ELS14
EQUAL? SYEAR,2041 \?ELS19
CALL1 V-WALK-AROUND
RSTACK
?ELS19: CALL2 DO-WALK,P?EAST
RSTACK
?ELS14: EQUAL? HERE,POWER-STATION-ENTRANCE \?ELS23
CALL2 DO-WALK,P?NE
RSTACK
?ELS23: EQUAL? HERE,FACTORY-ENTRANCE \?ELS25
CALL2 DO-WALK,P?SE
RSTACK
?ELS25: EQUAL? HERE,INDUSTRIAL-PARK-DRIVE \?ELS27
PRINTR "Not surprisingly, the doors are locked."
?ELS27: CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK /FALSE
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS9: EQUAL? PRSA,V?DISEMBARK,V?LEAVE \?ELS35
EQUAL? HERE,CLOSED-FACTORY \?ELS40
CALL2 DO-WALK,P?SOUTH
RSTACK
?ELS40: EQUAL? HERE,SKYCAR-FACTORY \?ELS42
CALL1 V-WALK-AROUND
RSTACK
?ELS42: PRINT LOOK-AROUND
CRLF
RTRUE
?ELS35: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,SKYCAR-FACTORY,CLOSED-FACTORY \?ELS53
CALL1 V-LOOK
RSTACK
?ELS53: EQUAL? HERE,INDUSTRIAL-PARK-DRIVE /FALSE
CALL1 FROM-HERE
RSTACK
.FUNCT STORE-OBJECT-F
EQUAL? PRSA,V?DISEMBARK,V?LEAVE \?ELS5
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS5: EQUAL? PRSA,V?THROUGH,V?WALK-TO \FALSE
PRINTR "If you want to buy something, just say so."
.FUNCT HOTEL-OBJECT-F
EQUAL? PRSA,V?THROUGH,V?WALK-TO \?ELS5
EQUAL? HERE,CENTRE-AND-KENNEDY \?ELS10
CALL2 DO-WALK,P?EAST
RSTACK
?ELS10: EQUAL? HERE,AIRPORTWAY-AND-RIVER \?ELS12
CALL2 DO-WALK,P?SE
RSTACK
?ELS12: EQUAL? HERE,SKYCAR-LOT-7 \?ELS14
CALL2 DO-WALK,P?WEST
RSTACK
?ELS14: CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK /FALSE
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS5: EQUAL? PRSA,V?LEAVE,V?DISEMBARK \?ELS20
EQUAL? HERE,VELDRAN-HOTEL \?ELS25
CALL2 DO-WALK,P?NE
RSTACK
?ELS25: EQUAL? HERE,COLONIAL-HOTEL \?ELS27
CALL1 V-WALK-AROUND
RSTACK
?ELS27: PRINT LOOK-AROUND
CRLF
RTRUE
?ELS20: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,VELDRAN-HOTEL,COLONIAL-HOTEL \?ELS38
CALL1 V-LOOK
RSTACK
?ELS38: EQUAL? HERE,CENTRE-AND-KENNEDY \?ELS40
PRINTR "The Veldran is a high-rise, luxury hotel."
?ELS40: PRINTR "The Colonial is a fairly old but opulent hotel."
.FUNCT CHURCH-OBJECT-F
EQUAL? HERE,TRAIN-STATION,BODANSKI-SQUARE,MIDLAND-AND-RIVER \?ELS5
EQUAL? SYEAR,2041 \?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,CHURCH-OBJECT
RSTACK
?ELS5: EQUAL? HERE,AQUARIUM-AND-RIVER,CHURCH-ENTRANCE,FIRST-METHODIST-CHURCH /?THN12
EQUAL? HERE,CHURCH-ENTRANCE,SKYCAR-LOT-5 \?ELS9
?THN12: EQUAL? SYEAR,2071 \?ELS9
CALL1 MOBY-VERB?
ZERO? STACK \?ELS9
CALL2 CANT-SEE,CHURCH-OBJECT
RSTACK
?ELS9: EQUAL? PRSA,V?THROUGH,V?WALK-TO \?ELS15
EQUAL? HERE,BODANSKI-SQUARE \?ELS20
CALL2 DO-WALK,P?SE
RSTACK
?ELS20: EQUAL? HERE,MIDLAND-AND-RIVER \?ELS22
CALL2 DO-WALK,P?NE
RSTACK
?ELS22: EQUAL? HERE,CHURCH-ENTRANCE \?ELS24
CALL2 DO-WALK,P?WEST
RSTACK
?ELS24: EQUAL? HERE,SKYCAR-LOT-5 \?ELS26
CALL2 DO-WALK,P?NORTH
RSTACK
?ELS26: EQUAL? HERE,AQUARIUM-AND-RIVER \?ELS28
CALL2 DO-WALK,P?SW
RSTACK
?ELS28: CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK /FALSE
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS15: EQUAL? PRSA,V?DISEMBARK,V?LEAVE \?ELS34
EQUAL? HERE,ST-MICHAELS \?ELS39
CALL2 DO-WALK,P?EAST
RSTACK
?ELS39: EQUAL? HERE,TRAIN-STATION,FIRST-METHODIST-CHURCH \?ELS41
CALL1 V-WALK-AROUND
RSTACK
?ELS41: PRINT LOOK-AROUND
CRLF
RTRUE
?ELS34: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,TRAIN-STATION,ST-MICHAELS,FIRST-METHODIST-CHURCH \?ELS52
CALL1 V-LOOK
RSTACK
?ELS52: EQUAL? HERE,CHURCH-ENTRANCE \?ELS54
PRINTI "It is"
CALL1 ST-MICHAELS-DESC
CRLF
RTRUE
?ELS54: EQUAL? HERE,BODANSKI-SQUARE,MIDLAND-AND-RIVER \?ELS58
PRINTR "The building is a house of worship for the Church of God's Word."
?ELS58: PRINTR "The neoclassical building is a Methodist church."
.FUNCT SCHOOL-OBJECT-F
EQUAL? HERE,HEIMAN-VILLAGE \?ELS5
PRINTR "The schools are on the upper floors, inaccessible to you."
?ELS5: EQUAL? PRSA,V?THROUGH,V?WALK-TO \?ELS9
EQUAL? HERE,AQUARIUM-AND-KENNEDY,RIVER-AND-KENNEDY \?ELS14
CALL2 DO-WALK,P?SE
RSTACK
?ELS14: EQUAL? HERE,AIRPORTWAY-AND-RIVER \?ELS16
CALL2 DO-WALK,P?WEST
RSTACK
?ELS16: CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK /FALSE
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS9: EQUAL? PRSA,V?DISEMBARK,V?LEAVE \?ELS22
EQUAL? HERE,ROCKVIL-HIGH \?ELS27
CALL1 V-WALK-AROUND
RSTACK
?ELS27: EQUAL? HERE,DENTAL-SCHOOL \?ELS29
CALL2 DO-WALK,P?NW
RSTACK
?ELS29: PRINT LOOK-AROUND
CRLF
RTRUE
?ELS22: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,DENTAL-SCHOOL,ROCKVIL-HIGH \?ELS40
CALL1 V-LOOK
RSTACK
?ELS40: EQUAL? HERE,AQUARIUM-AND-KENNEDY \?ELS42
PRINTI "It's the "
PRINTD DENTAL-SCHOOL
PRINTR "."
?ELS42: PRINTI "It's a "
EQUAL? SYEAR,2041,2051 \?ELS53
PRINTI "public"
JUMP ?CND51
?ELS53: PRINTI "church-owned"
?CND51: PRINTR " high school."
.FUNCT CONSTRUCTION-OBJECT-F
EQUAL? HERE,KENNEDY-PARK,MAIN-AND-KENNEDY /?THN8
EQUAL? HERE,ELM-AND-KENNEDY,ELM-AND-PARK \?ELS5
?THN8: EQUAL? SYEAR,2061 /?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,CONSTRUCTION-OBJECT
RSTACK
?ELS5: EQUAL? HERE,CONSTRUCTION-SITE-1,MAIN-AND-CHURCH,CONSTRUCTION-SITE-2 /?THN14
EQUAL? HERE,CONSTRUCTION-SITE-3,CHURCH-ENTRANCE,CONSTRUCTION-SITE-4 /?THN14
EQUAL? HERE,CONSTRUCTION-SITE-5,MIDLAND-AND-CHURCH,SOUTHWAY-AND-KENNEDY /?THN14
EQUAL? HERE,SOUTHWAY-AND-RIVER,BEND \?ELS11
?THN14: EQUAL? SYEAR,2041 /?ELS11
CALL1 MOBY-VERB?
ZERO? STACK \?ELS11
CALL2 CANT-SEE,CONSTRUCTION-OBJECT
RSTACK
?ELS11: EQUAL? HERE,CEMETERY \?ELS17
EQUAL? SYEAR,2071 /?ELS17
CALL1 MOBY-VERB?
ZERO? STACK \?ELS17
CALL2 CANT-SEE,CONSTRUCTION-OBJECT
RSTACK
?ELS17: EQUAL? PRSA,V?THROUGH,V?WALK-TO \?ELS21
EQUAL? HERE,BEND,ELM-AND-PARK \?ELS26
CALL2 DO-WALK,P?NE
RSTACK
?ELS26: EQUAL? HERE,ELM-AND-KENNEDY,SOUTHWAY-AND-KENNEDY \?ELS28
CALL2 DO-WALK,P?NW
RSTACK
?ELS28: EQUAL? HERE,MAIN-AND-KENNEDY,MIDLAND-AND-CHURCH \?ELS30
CALL2 DO-WALK,P?SW
RSTACK
?ELS30: EQUAL? HERE,SOUTHWAY-AND-RIVER \?ELS32
CALL2 DO-WALK,P?EAST
RSTACK
?ELS32: EQUAL? HERE,CHURCH-ENTRANCE,MAIN-AND-CHURCH \?ELS34
CALL1 V-WALK-AROUND
RSTACK
?ELS34: CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK /FALSE
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS21: EQUAL? PRSA,V?LEAVE,V?DISEMBARK \?ELS40
EQUAL? HERE,CONSTRUCTION-SITE-1 \?ELS45
CALL2 DO-WALK,P?SE
RSTACK
?ELS45: EQUAL? HERE,CONSTRUCTION-SITE-3 \?ELS47
CALL2 DO-WALK,P?NE
RSTACK
?ELS47: EQUAL? HERE,KENNEDY-PARK,CONSTRUCTION-SITE-4,CONSTRUCTION-SITE-2 /?THN50
EQUAL? HERE,CEMETERY,CONSTRUCTION-SITE-5 \?ELS49
?THN50: CALL1 V-WALK-AROUND
RSTACK
?ELS49: PRINT LOOK-AROUND
CRLF
RTRUE
?ELS40: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,CONSTRUCTION-SITE-1,KENNEDY-PARK,CONSTRUCTION-SITE-2 /?THN60
EQUAL? HERE,CONSTRUCTION-SITE-3,CEMETERY,CONSTRUCTION-SITE-4 /?THN60
EQUAL? HERE,CONSTRUCTION-SITE-5 \FALSE
?THN60: CALL1 V-LOOK
RSTACK
.FUNCT VACANT-LOT-F
EQUAL? SYEAR,2041,2051 \?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,VACANT-LOT
RSTACK
?ELS5: EQUAL? SYEAR,2061 \?ELS9
EQUAL? HERE,WAREHOUSE-1,WICKER-AND-RIVER /?ELS9
CALL1 MOBY-VERB?
ZERO? STACK \?ELS9
CALL2 CANT-SEE,VACANT-LOT
RSTACK
?ELS9: EQUAL? PRSA,V?WALK-TO,V?THROUGH \?ELS13
EQUAL? HERE,AQUARIUM-AND-RIVER \?ELS18
CALL2 DO-WALK,P?SW
RSTACK
?ELS18: EQUAL? HERE,SKYCAR-LOT-5 \?ELS20
CALL2 DO-WALK,P?NORTH
RSTACK
?ELS20: EQUAL? HERE,WICKER-AND-RIVER,CHURCH-ENTRANCE \?ELS22
CALL2 DO-WALK,P?WEST
RSTACK
?ELS22: CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK /FALSE
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS13: EQUAL? PRSA,V?DISEMBARK,V?LEAVE \FALSE
EQUAL? HERE,WAREHOUSE-1,ST-MICHAELS \?ELS33
CALL2 DO-WALK,P?EAST
RSTACK
?ELS33: EQUAL? HERE,FIRST-METHODIST-CHURCH \?ELS35
CALL1 V-WALK-AROUND
RSTACK
?ELS35: PRINT LOOK-AROUND
CRLF
RTRUE
.FUNCT TUNNEL-F
EQUAL? HERE,CHURCH-STREET-PARK \?ELS5
EQUAL? SYEAR,2041,2051 \?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,TUNNEL
RSTACK
?ELS5: EQUAL? PRSA,V?THROUGH \?ELS9
EQUAL? HERE,HALLEY-AND-PARK \?ELS14
CALL2 DO-WALK,P?NORTH
RSTACK
?ELS14: EQUAL? HERE,AQUARIUM-AND-PARK \?ELS16
CALL2 DO-WALK,P?SOUTH
RSTACK
?ELS16: CALL2 DO-WALK,P?WEST
RSTACK
?ELS9: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINTR "Park Street descends into the gloom of the tunnel."
.FUNCT EXHIBITS-F
EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,AQUARIUM \?ELS10
PRINTI "The exhibits of marine life are "
EQUAL? SYEAR,2041 \?ELS15
PRINTI "well-maintained"
JUMP ?CND13
?ELS15: CALL2 SCORE,71
PRINTI "poorly-maintained"
?CND13: PRINTR "."
?ELS10: EQUAL? HERE,RAILROAD-MUSEUM \?ELS25
PRINTR "The exhibits of railroad history are interesting and well done."
?ELS25: PRINTR "The exhibits are visually interesting and well-documented."
.FUNCT SKYCAR-F
EQUAL? PRSA,V?WAIT-FOR \?ELS5
FSET? HERE,TUBEBIT \?ELS5
CALL PERFORM,V?WAIT-FOR,RED-TUBECAR
RTRUE
?ELS5: FSET? HERE,OUTSIDEBIT /?ELS9
EQUAL? HERE,SERVICE-STATION /?ELS9
CALL1 MOBY-VERB?
ZERO? STACK \?ELS9
CALL2 CANT-SEE,SKYCAR
RSTACK
?ELS9: EQUAL? PRSA,V?BOARD,V?THROUGH \?ELS13
PRINTR "You'd be arrested for carbreaking!"
?ELS13: EQUAL? PRSA,V?COUNT \?ELS17
EQUAL? HERE,SKYCAR-FACTORY \?ELS17
PRINTI "There are too many cars to count, but you can easily see that this huge parking lot is "
EQUAL? SYEAR,2041 \?ELS24
PRINTI "nearly full"
JUMP ?CND22
?ELS24: EQUAL? SYEAR,2051 \?ELS28
CALL2 SCORE,109
PRINTI "well more than half full"
JUMP ?CND22
?ELS28: EQUAL? SYEAR,2061 \?ELS32
CALL2 SCORE,110
PRINTI "less than half full"
JUMP ?CND22
?ELS32: CALL2 SCORE,111
PRINTI "nearly empty"
?CND22: PRINTR "."
?ELS17: EQUAL? PRSA,V?BUY \FALSE
CALL2 CANT-BUY,SKYCAR
RSTACK
.FUNCT CARLOT-F,X=0
EQUAL? HERE,SKYCAR-LOT-1,SKYCAR-LOT-2,SKYCAR-LOT-3 /?THN4
EQUAL? HERE,SKYCAR-LOT-4,SKYCAR-LOT-5,SKYCAR-LOT-6 /?THN4
EQUAL? HERE,SKYCAR-LOT-7,SKYCAR-FACTORY \?CND1
?THN4: SET 'X,TRUE-VALUE
?CND1: EQUAL? PRSA,V?THROUGH,V?WALK-TO \?ELS10
ZERO? X /?ELS15
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS15: CALL1 V-WALK-AROUND
RSTACK
?ELS10: EQUAL? PRSA,V?DISEMBARK,V?LEAVE \?ELS22
ZERO? X /?ELS27
CALL1 V-WALK-AROUND
RSTACK
?ELS27: PRINT LOOK-AROUND
CRLF
RTRUE
?ELS22: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS34
EQUAL? HERE,SKYCAR-FACTORY \?ELS34
CALL PERFORM,V?COUNT,SKYCAR
RTRUE
?ELS34: ZERO? X /FALSE
EQUAL? PRSA,V?EXAMINE \FALSE
CALL1 V-LOOK
RSTACK
.FUNCT CHILDREN-F
EQUAL? HERE,LIVING-ROOM \?ELS5
IN? MITCHELL,HERE \?ELS10
CALL CHANGE-OBJECT,CHILDREN,MITCHELL
RSTACK
?ELS10: EQUAL? HERE,LIVING-ROOM \?ELS12
EQUAL? SYEAR,2071 \?ELS12
CALL CHANGE-OBJECT,CHILDREN,PAINTING
RSTACK
?ELS12: CALL1 MOBY-VERB?
ZERO? STACK \FALSE
CALL2 CANT-SEE,CHILDREN
RSTACK
?ELS5: EQUAL? PRSA,V?TELL \?ELS18
PRINTI "They didn't seem to hear you."
CRLF
CALL1 CLEAR-BUF
RSTACK
?ELS18: EQUAL? HERE,ZOO \?ELS22
EQUAL? SYEAR,2061 /?ELS27
CALL1 MOBY-VERB?
ZERO? STACK \?ELS27
CALL2 CANT-SEE,CHILDREN
RSTACK
?ELS27: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "The children are poking a small, whimpering animal."
?ELS22: EQUAL? SYEAR,2061,2071 /?ELS40
CALL1 MOBY-VERB?
ZERO? STACK \?ELS40
CALL2 CANT-SEE,CHILDREN
RSTACK
?ELS40: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "The children are all uniformed and are wearing pendants with the symbol of the Church."
.FUNCT WOMAN-F
EQUAL? HERE,LIVING-ROOM \?ELS5
EQUAL? SYEAR,2061 \?ELS10
CALL CHANGE-OBJECT,WOMAN,PAINTING
RSTACK
?ELS10: CALL1 MOBY-VERB?
ZERO? STACK \FALSE
CALL2 CANT-SEE,WOMAN
RSTACK
?ELS5: EQUAL? SYEAR,2041 \?ELS14
EQUAL? PRSA,V?TELL \?ELS19
PRINTI "She can't hear you from here."
CRLF
CALL1 CLEAR-BUF
RSTACK
?ELS19: EQUAL? PRSA,V?TELL-ABOUT,V?ASK-ABOUT \?ELS23
EQUAL? PRSO,WOMAN \?ELS23
CALL PERFORM,V?TELL,WOMAN
RTRUE
?ELS23: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "The woman is dressed in prison garb."
?ELS14: CALL1 MOBY-VERB?
ZERO? STACK \FALSE
CALL2 CANT-SEE,WOMAN
RSTACK
.FUNCT WATER-F
EQUAL? HERE,KENNEDY-PARK,HALLEY-PARK-WEST \?ELS5
EQUAL? SYEAR,2061,2071 \?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,WATER
RSTACK
?ELS5: EQUAL? PRSA,V?BUY \?ELS9
EQUAL? HERE,SIMONS,THE-COACHMAN,ROYS-PAGODA \?ELS14
PRINTR "The waiter brings a glass of cold water. After drinking it, the glass is cleared away."
?ELS14: EQUAL? HERE,BAR,EZZIS-BAR \?ELS18
PRINTR "The bartender snorts. ""You want water, find a lake!"""
?ELS18: PRINTR "You can't order water here!"
?ELS9: EQUAL? PRSA,V?DRINK \?ELS26
EQUAL? HERE,KITCHEN,BATHROOM \?ELS31
PRINTI "You drink some water. It"
EQUAL? SYEAR,2041,2051 \?ELS38
PRINTR "'s quite refreshing."
?ELS38: CALL2 SCORE,1
PRINTR " tastes slightly rusty."
?ELS31: PRINTR "You can't drink the water here!"
?ELS26: EQUAL? HERE,KENNEDY-PARK \?ELS50
CALL CHANGE-OBJECT,WATER,WATERPOOL
RSTACK
?ELS50: EQUAL? HERE,HALLEY-PARK-WEST \?ELS52
CALL CHANGE-OBJECT,WATER,DUCK-POND
RSTACK
?ELS52: CALL GLOBAL-IN?,RESERVOIR,HERE
ZERO? STACK /?ELS54
CALL CHANGE-OBJECT,WATER,RESERVOIR
RSTACK
?ELS54: EQUAL? HERE,AQUARIUM \?ELS56
CALL CHANGE-OBJECT,WATER,TANK
RSTACK
?ELS56: CALL GLOBAL-IN?,RIVER,HERE
ZERO? STACK /?ELS58
CALL CHANGE-OBJECT,WATER,RIVER
RSTACK
?ELS58: EQUAL? PRSA,V?OFF \?ELS60
EQUAL? HERE,BATHROOM \?ELS69
EQUAL? JILL-COUNTER,11 /?THN66
?ELS69: EQUAL? HERE,KITCHEN \?ELS65
EQUAL? JILL-COUNTER,7 \?ELS65
?THN66: PRINTR "Jill's using the sink!"
?ELS65: PRINTR "It is."
?ELS60: EQUAL? PRSA,V?ON \FALSE
EQUAL? HERE,BATHROOM \?ELS86
EQUAL? JILL-COUNTER,11 /?THN83
?ELS86: EQUAL? HERE,KITCHEN \?CND80
EQUAL? JILL-COUNTER,7 \?CND80
?THN83: PRINTR "It is."
?CND80: PRINTI "You turn on the water for a few seconds"
EQUAL? SYEAR,2071 \?CND93
CALL2 SCORE,2
PRINTI ". As usual, the hot water isn't working today"
?CND93: PRINTR "."
.FUNCT RESERVOIR-F
EQUAL? PRSA,V?SWIM,V?THROUGH,V?BOARD \?ELS5
PRINTR "An unclimbable fence surrounds the reservoir."
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "The tall fence prevents you from approaching the reservoir. All you can see is a wide expanse of calm water."
.FUNCT RIVER-ENTER-F
CALL PERFORM,V?BOARD,RIVER
RFALSE
.FUNCT RIVER-F
EQUAL? HERE,PATIO,SKYCAB \?ELS5
EQUAL? PRSA,V?EXAMINE \?ELS10
EQUAL? HERE,PATIO \?ELS15
PRINTI "T"
PRINT RIVER-DESC
CRLF
RTRUE
?ELS15: PRINTI "The river is dotted with sailboats, and a tourboat is just pulling away from the pier for a daytrip upriver, through Montana to the Devil's Tower region of Wyoming. "
CALL PERFORM,V?EXAMINE,CULTURAL-CENTER
RTRUE
?ELS10: CALL2 MILE-AWAY,RIVER
RSTACK
?ELS5: EQUAL? PRSA,V?LEAP,V?THROUGH,V?BOARD /?THN26
EQUAL? PRSA,V?SWIM \?ELS25
?THN26: PRINTI "Swimming in the river is inadvisable. "
CALL PERFORM,V?EXAMINE,RIVER
RTRUE
?ELS25: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "The current is strong, and the water is "
EQUAL? SYEAR,2041 \?ELS36
PRINTI "a bit unhealthy"
JUMP ?CND34
?ELS36: EQUAL? SYEAR,2051 \?ELS40
CALL2 SCORE,132
PRINTI "quite unhealthy"
JUMP ?CND34
?ELS40: EQUAL? SYEAR,2061 \?ELS44
CALL2 SCORE,133
PRINTI "very polluted"
JUMP ?CND34
?ELS44: CALL2 SCORE,134
PRINTI "extremely poisoned and polluted"
?CND34: PRINTR "."
.FUNCT IN-RESTAURANT?
EQUAL? HERE,SIMONS,THE-COACHMAN /TRUE
EQUAL? HERE,ROYS-PAGODA,BURGER-MEISTER \FALSE
RTRUE
.FUNCT RESTAURANT-OBJECT-F
EQUAL? HERE,BURGER-MEISTER,AQUARIUM-AND-PARK \?ELS5
EQUAL? SYEAR,2071 \?ELS5
CALL1 MOBY-VERB?
ZERO? STACK \?ELS5
CALL2 CANT-SEE,RESTAURANT-OBJECT
RSTACK
?ELS5: EQUAL? PRSA,V?WALK-TO,V?THROUGH \?ELS9
CALL1 IN-RESTAURANT?
ZERO? STACK /?ELS14
PRINT LOOK-AROUND
CRLF
RTRUE
?ELS14: EQUAL? HERE,MAIN-AND-WICKER \?ELS18
CALL2 DO-WALK,P?SE
RSTACK
?ELS18: EQUAL? HERE,AQUARIUM-AND-PARK,BODANSKI-SQUARE \?ELS20
CALL2 DO-WALK,P?NE
RSTACK
?ELS20: CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK /FALSE
CALL2 DO-WALK,P?SOUTH
RSTACK
?ELS9: EQUAL? PRSA,V?LEAVE,V?DISEMBARK \?ELS24
EQUAL? HERE,ELM-UNDERPASS,MAIN-AND-WICKER /?THN30
EQUAL? HERE,BODANSKI-SQUARE,AQUARIUM-AND-PARK \?ELS29
?THN30: PRINT LOOK-AROUND
CRLF
RTRUE
?ELS29: CALL2 DO-WALK,P?OUT
RSTACK
?ELS24: EQUAL? PRSA,V?EXAMINE \FALSE
CALL1 IN-RESTAURANT?
ZERO? STACK /?ELS42
CALL1 V-LOOK
RSTACK
?ELS42: EQUAL? HERE,ELM-UNDERPASS \?ELS44
PRINTD ROYS-PAGODA
PRINTR " is a small Chinese restaurant."
?ELS44: EQUAL? HERE,AQUARIUM-AND-PARK \?ELS48
PRINTI "The "
PRINTD BURGER-MEISTER
PRINTR " looks like a typical fast-food place."
?ELS48: EQUAL? SYEAR,2081 \?ELS54
CALL PERFORM,V?EXAMINE,BUILDING
RTRUE
?ELS54: EQUAL? HERE,BODANSKI-SQUARE \?ELS59
PRINTD SIMONS
JUMP ?CND57
?ELS59: EQUAL? HERE,MAIN-AND-WICKER \?CND57
PRINTD THE-COACHMAN
?CND57: PRINTR " is a large, fairly fancy restaurant."
.FUNCT INIT-STATUS-LINE,HEIGHT,DONT-CLEAR=0
ZERO? DONT-CLEAR \?CND1
CLEAR -1
SPLIT HEIGHT
?CND1: SET 'L-HERE,FALSE-VALUE
SET 'L-MODE,FALSE-VALUE
SET 'L-DATE,FALSE-VALUE
SCREEN S-WINDOW
BUFOUT FALSE-VALUE
EQUAL? HEIGHT,7 /TRUE
CALL2 INVERSE-LINE,1
CALL2 INVERSE-LINE,2
HLIGHT 1
CURSET 1,2
PRINTI "Mode:"
CURSET 1,60
PRINTI "Time:"
CURSET 2,2
PRINTI "Location:"
CURSET 2,60
PRINTI "Date:"
HLIGHT 0
BUFOUT TRUE-VALUE
SCREEN S-TEXT
RTRUE
.FUNCT INVERSE-LINE,LINE-NUMBER,CENTER-HALF=0
ZERO? CENTER-HALF /?ELS3
CURSET LINE-NUMBER,21
JUMP ?CND1
?ELS3: CURSET LINE-NUMBER,1
?CND1: HLIGHT 1
?PRG7: PRINTI " "
ZERO? CENTER-HALF /?ELS13
JUMP ?REP8
?ELS13: SET 'CENTER-HALF,TRUE-VALUE
JUMP ?PRG7
?REP8: HLIGHT 0
RTRUE
.FUNCT PRINT-SPACES,CNT
?PRG1: DLESS? 'CNT,0 /TRUE
PRINTC 32
JUMP ?PRG1
.FUNCT CONTINUE,CURRENTLY-SCRIPTING=0
CRLF
CRLF
CRLF
GET 0,8
BTST STACK,1 \?CND1
SET 'CURRENTLY-SCRIPTING,TRUE-VALUE
DIROUT D-PRINTER-OFF
?CND1: PRINTI "[Hit any key to continue.]"
BUFOUT FALSE-VALUE
BUFOUT TRUE-VALUE
ZERO? CURRENTLY-SCRIPTING /?CND6
DIROUT D-PRINTER-ON
?CND6: INPUT 1
RSTACK
.FUNCT STATUS-LINE,LEN,LOCATION
BUFOUT FALSE-VALUE
SCREEN S-WINDOW
HLIGHT 1
EQUAL? MODE,L-MODE \?THN4
ZERO? RECORDING /?ELS7
ZERO? L-RECORDING /?THN4
?ELS7: ZERO? L-RECORDING /?CND1
ZERO? RECORDING \?CND1
?THN4: DIROUT D-SCREEN-OFF
DIROUT D-TABLE-ON,SL-BUFFER
CALL2 DPRINT,MODE
ZERO? RECORDING /?CND12
PRINTI " (recording)"
?CND12: DIROUT D-TABLE-OFF
DIROUT D-SCREEN-ON
GET SL-BUFFER,0 >LEN
CURSET 1,9
CALL2 DPRINT,MODE
ZERO? RECORDING /?ELS22
SET 'L-RECORDING,TRUE-VALUE
PRINTI " (recording)"
JUMP ?CND20
?ELS22: SET 'L-RECORDING,FALSE-VALUE
?CND20: SET 'L-MODE,MODE
SUB 33,LEN
CALL2 PRINT-SPACES,STACK
?CND1: CURSET 1,67
ZERO? SIMULATING /?ELS30
CALL2 TIME-PRINT,STIME
JUMP ?CND28
?ELS30: CALL2 TIME-PRINT,TIME
?CND28: CALL2 PRINT-SPACES,3
ZERO? CURRENT-FILE /?ELS40
EQUAL? L-HERE,CURRENT-DIRECTORY \?THN37
?ELS40: ZERO? CURRENT-FILE \?CND34
EQUAL? L-HERE,HERE /?CND34
?THN37: CURSET 2,13
DIROUT D-SCREEN-OFF
DIROUT D-TABLE-ON,SL-BUFFER
ZERO? CURRENT-FILE /?ELS45
SET 'LOCATION,CURRENT-DIRECTORY
JUMP ?CND43
?ELS45: SET 'LOCATION,HERE
?CND43: CALL2 DPRINT,LOCATION
SET 'L-HERE,LOCATION
DIROUT D-TABLE-OFF
DIROUT D-SCREEN-ON
GET SL-BUFFER,0 >LEN
CALL2 DPRINT,LOCATION
SUB 29,LEN
CALL2 PRINT-SPACES,STACK
?CND34: ZERO? SIMULATING /?ELS55
EQUAL? SDATE,L-DATE /?ELS55
CURSET 2,67
PRINTN SMONTH
PRINTI "/"
PRINTN SDATE
PRINTI "/"
PRINTN SYEAR
SET 'L-DATE,SDATE
CALL2 PRINT-SPACES,3
JUMP ?CND53
?ELS55: ZERO? SIMULATING \?CND53
EQUAL? DATE,L-DATE /?CND53
CURSET 2,67
PRINTN MONTH
PRINTI "/"
PRINTN DATE
PRINTI "/"
PRINTN YEAR
SET 'L-DATE,DATE
CALL2 PRINT-SPACES,3
?CND53: SCREEN S-TEXT
HLIGHT 0
BUFOUT TRUE-VALUE
RTRUE
.FUNCT TIME-PRINT,TM,SKIP-AM-PM=0,HR
GRTR? TM,1440 \?CND1
SUB TM,1440 >TM
?CND1: DIV TM,60 >HR
GRTR? HR,12 \?CND4
SUB HR,12 >HR
?CND4: ZERO? HR \?ELS9
PRINTI "12"
JUMP ?CND7
?ELS9: PRINTN HR
?CND7: PRINTI ":"
MOD TM,60 >HR
LESS? HR,10 \?CND16
PRINTI "0"
?CND16: PRINTN HR
ZERO? SKIP-AM-PM \TRUE
CALL2 AM-PM-PRINT,TM
RSTACK
.FUNCT JUSTIFY-TIME-PRINT,NUM
GRTR? NUM,59 \?ELS3
LESS? NUM,600 \?ELS3
PRINTI " "
JUMP ?CND1
?ELS3: LESS? NUM,1320 \?CND1
GRTR? NUM,779 \?CND1
PRINTI " "
?CND1: CALL TIME-PRINT,NUM,TRUE-VALUE
RSTACK
.FUNCT AM-PM-PRINT,NUM
LESS? NUM,720 /?THN6
EQUAL? NUM,1440 \?ELS5
?THN6: PRINTI "am"
RTRUE
?ELS5: PRINTI "pm"
RTRUE
.FUNCT TITLE-PRINT
CALL2 ITALICIZE,STR?295
RSTACK
.FUNCT TURN-RECORD-OFF,SIM=0
ZERO? RECORDING /FALSE
SOUND 1
SET 'RECORDING,FALSE-VALUE
ZERO? SIM /?CND7
CRLF
?CND7: PRINTI "WARNING: Deactivating record feature."
CRLF
ZERO? SIM \FALSE
CRLF
RTRUE
.FUNCT ERR,STR,NO-CR=0
SOUND 2
PRINTI "ERROR: "
PRINT STR
ZERO? NO-CR \TRUE
CRLF
RTRUE
.FUNCT CANT-SEE,OBJ,PTR
PRINTI "[You can't see"
FSET? OBJ,MYBIT \?ELS5
PRINTI " "
CALL2 DPRINT,OBJ
JUMP ?CND3
?ELS5: FSET? OBJ,NARTICLEBIT \?THN13
EQUAL? OBJ,MEAL \?CND10
?THN13: PRINTI " any"
?CND10: EQUAL? OBJ,PRSO \?ELS19
ZERO? P-MERGED \?THN23
GET P-ITBL,P-NC1 >PTR
GET PTR,0
EQUAL? STACK,W?IT \?ELS22
?THN23: PRINTI " "
CALL2 DPRINT,PRSO
JUMP ?CND17
?ELS22: GET P-ITBL,P-NC1L
CALL BUFFER-PRINT,PTR,STACK,FALSE-VALUE
JUMP ?CND17
?ELS19: ZERO? P-MERGED \?THN31
GET P-ITBL,P-NC2 >PTR
GET PTR,0
EQUAL? STACK,W?IT \?ELS30
?THN31: PRINTI " "
CALL2 DPRINT,PRSI
JUMP ?CND3
?ELS30: GET P-ITBL,P-NC2L
CALL BUFFER-PRINT,PTR,STACK,FALSE-VALUE
?CND17:
?CND3: PRINTI " here.]"
CRLF
CALL1 CLEAR-BUF
RSTACK
.FUNCT DISCONNECTED
PRINTI "? Per Project regulations, I have no choice but to shut down your conscious-level processors while we reevaluate your psychological makeup. I...I don't know what else to say."" You feel your senses begin to ebb..."
CRLF
CALL1 FINISH
RSTACK
.FUNCT MILE-AWAY,OBJ
PRINTI "The "
CALL2 DPRINT,OBJ
PRINTR " is nearly a mile away!"
.FUNCT FROM-HERE
PRINTI "You can't see much of the "
CALL2 DPRINT,PRSO
PRINTR " from here."
.FUNCT TELL-ME-HOW
PRINTI "It's not obvious how to do that to"
CALL2 ARTICLE,PRSO
PRINTR "."
.FUNCT OF-COURSE,OBJ
PRINTI "The "
CALL2 DPRINT,OBJ
PRINTR " is closed at this hour, of course."
.FUNCT ADDRESS-DIRECTLY,ACTOR
PRINTI "You must address"
CALL ARTICLE,ACTOR,TRUE-VALUE
PRINTI " directly."
CRLF
CALL1 CLEAR-BUF
RSTACK
.FUNCT CLOTHES-BUDGET
PRINTR "You've already strained your clothes budget; Jill would have your hide if you spent more."
.FUNCT FURNITURE-REMOVED
PRINTR "All the furniture has been removed!"
.FUNCT PERELMAN-WALKS-IN-WITH-COFFEE
EQUAL? HERE,OFFICE \FALSE
CRLF
PRINTR "Doctor Perelman walks into the office carrying a cup of coffee. He sits down at his desk, places the coffee mug almost out of sight below your monitor, and begins working."
.ENDI