mirror of
https://github.com/historicalsource/amfv
synced 2024-04-29 23:59:42 +03:00
2563 lines
64 KiB
Plaintext
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
|