720 lines
20 KiB
Plaintext
720 lines
20 KiB
Plaintext
|
|
|
|
.FUNCT FILM-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
IN? FILM,FILM-PROJECTOR \?ELS10
|
|
FSET? FILM-PROJECTOR,ONBIT \?ELS10
|
|
CALL PERFORM,V?EXAMINE,PROJECTION-SCREEN
|
|
RTRUE
|
|
?ELS10: CALL FILM-SLIDE-DESC,FILM,STR?78
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?TAKE \?ELS16
|
|
IN? FILM,FILM-PROJECTOR \FALSE
|
|
FSET? FILM-PROJECTOR,ONBIT \FALSE
|
|
PRINTI "Even a nonunion projectionist like yourself should know how dangerous it is to try to take film from"
|
|
CALL APRINT,FILM-PROJECTOR
|
|
PRINTR " while it's running."
|
|
?ELS16: EQUAL? PRSA,V?PUT \?ELS25
|
|
FSET? FILM-PROJECTOR,ONBIT \?ELS25
|
|
EQUAL? PRSI,FILM-PROJECTOR \?ELS25
|
|
PRINTI "You start to put"
|
|
CALL TPRINT,FILM
|
|
PRINTI " in"
|
|
CALL TPRINT,FILM-PROJECTOR
|
|
PRINTI ", but glance up at a sign on the wall. The sign states: Remember, Perry Projectionist sez, ""Never try to put film in"
|
|
CALL APRINT,FILM-PROJECTOR
|
|
PRINTR " that's turned on."""
|
|
?ELS25: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,SLIDE-PROJECTOR \FALSE
|
|
PRINTI "The "
|
|
CALL DPRINT,FILM
|
|
PRINTI " won't fit in"
|
|
CALL TRPRINT,PRSI
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SLIDE-F
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
CALL FILM-SLIDE-DESC,SLIDE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT FILM-SLIDE-DESC,OBJ,STRING=0
|
|
IN? OBJ,FILM-PROJECTOR /?THN6
|
|
IN? OBJ,SLIDE-PROJECTOR \?ELS5
|
|
?THN6: PRINTI "It's in"
|
|
LOC OBJ
|
|
CALL TPRINT,STACK
|
|
PRINTR "."
|
|
?ELS5: PRINTI "You examine the "
|
|
ZERO? STRING /?CND10
|
|
PRINT STRING
|
|
?CND10: CALL DPRINT,OBJ
|
|
PRINTR " closely. Whatever is on it is too small for you to make out."
|
|
|
|
|
|
.FUNCT FILM-PROJECTOR-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTI "It's a large, black, Simplex 70, 35mm "
|
|
CALL DPRINT,FILM-PROJECTOR
|
|
PRINTI ". In the front it has a short lens. "
|
|
IN? LENS-CAP,FILM-PROJECTOR \?CND6
|
|
PRINTI "There's a lens cap on the lens. "
|
|
?CND6: PRINTI "The "
|
|
CALL DPRINT,FILM-PROJECTOR
|
|
IN? FILM,FILM-PROJECTOR \?ELS11
|
|
PRINTI " has"
|
|
CALL APRINT,FILM
|
|
PRINTI " in it, and"
|
|
JUMP ?CND9
|
|
?ELS11: IN? CORPSE-LINE,FILM-PROJECTOR \?CND9
|
|
PRINTI " has"
|
|
CALL APRINT,CORPSE-LINE
|
|
PRINTI " in it, and"
|
|
?CND9: PRINTI " is turned o"
|
|
FSET? FILM-PROJECTOR,ONBIT \?ELS16
|
|
PRINTC 110
|
|
JUMP ?CND14
|
|
?ELS16: PRINTI "ff"
|
|
?CND14: PRINTR "."
|
|
?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS20
|
|
FSET? FILM-PROJECTOR,ONBIT /?ELS20
|
|
PRINTI "Immediately the projector begins to roll"
|
|
FSET FILM-PROJECTOR,ONBIT
|
|
IN? FILM,FILM-PROJECTOR /?THN26
|
|
IN? CORPSE-LINE,FILM-PROJECTOR \?ELS25
|
|
?THN26: IN? FILM,FILM-PROJECTOR \?CND28
|
|
CALL QUEUE,I-FILM-DROP,2
|
|
?CND28: PRINTI ". The film starts to run through the projector"
|
|
FSET? LENS-CAP,LENS-CAP-OFF-BIT \?CND23
|
|
FSET SCREENING-ROOM,ONBIT
|
|
PRINTI " and a stream of colored light shoots out of the lens onto the screen in the screening room"
|
|
IN? CORPSE-LINE,FILM-PROJECTOR \?CND23
|
|
PRINTC 46
|
|
CRLF
|
|
CALL CORPSE-LINE-DEATH
|
|
JUMP ?CND23
|
|
?ELS25: FSET? LENS-CAP,LENS-CAP-OFF-BIT \?CND23
|
|
FSET SCREENING-ROOM,ONBIT
|
|
PRINTI ". A stream of white light shoots out of the lens of"
|
|
CALL TPRINT,FILM-PROJECTOR
|
|
PRINTI " onto the screen in the screening room"
|
|
?CND23: PRINTR "."
|
|
?ELS20: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS43
|
|
CALL CANT-OPEN-CLOSE
|
|
RSTACK
|
|
?ELS43: EQUAL? PRSA,V?LAMP-OFF \?ELS45
|
|
FSET? FILM-PROJECTOR,ONBIT \?ELS45
|
|
FCLEAR FILM-PROJECTOR,ONBIT
|
|
FSET? SLIDE-PROJECTOR,ONBIT /?CND48
|
|
FCLEAR SCREENING-ROOM,ONBIT
|
|
?CND48: PRINTI "You hear"
|
|
CALL TPRINT,FILM-PROJECTOR
|
|
PRINTR "'s whining trail off as it rolls to a stop."
|
|
?ELS45: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE
|
|
EQUAL? PRSI,FILM-PROJECTOR \FALSE
|
|
EQUAL? PRSO,FILM,CORPSE-LINE /?ELS59
|
|
CALL WASTE-OF-TIME
|
|
RSTACK
|
|
?ELS59: IN? FILM,FILM-PROJECTOR /?THN62
|
|
IN? CORPSE-LINE,FILM-PROJECTOR \FALSE
|
|
?THN62: PRINTI "You'll have to take"
|
|
FIRST? FILM-PROJECTOR /?KLU64
|
|
?KLU64: CALL TPRINT,STACK
|
|
PRINTR " out first."
|
|
|
|
|
|
.FUNCT CORPSE-LINE-DEATH
|
|
CRLF
|
|
PRINTI "Your eyes are immediately drawn to the screen. "
|
|
FSET? SLIDE-PROJECTOR,ONBIT \?ELS3
|
|
PRINTI "Although it's a little distorted by the slide projector, you"
|
|
JUMP ?CND1
|
|
?ELS3: PRINTI "You"
|
|
?CND1: CALL JIGS-UP,STR?79
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-FILM-DROP
|
|
MOVE FILM,PROJECTION-BOOTH
|
|
EQUAL? HERE,PROJECTION-BOOTH \FALSE
|
|
CRLF
|
|
PRINTI "The "
|
|
CALL DPRINT,FILM
|
|
PRINTI " runs out of"
|
|
CALL TPRINT,FILM-PROJECTOR
|
|
PRINTR " and onto the floor."
|
|
|
|
|
|
.FUNCT PROJECTORS-DESC,OBJ,STRING=0
|
|
PRINTI "It's"
|
|
CALL APRINT,OBJ
|
|
ZERO? STRING /?CND1
|
|
PRINT STRING
|
|
?CND1: PRINTI ". The "
|
|
CALL DPRINT,OBJ
|
|
PRINTC 32
|
|
FIRST? OBJ \?ELS7
|
|
PRINTI "has"
|
|
FIRST? OBJ /?KLU15
|
|
?KLU15: CALL APRINT,STACK
|
|
PRINTI " in it"
|
|
JUMP ?CND5
|
|
?ELS7: PRINTI "is empty"
|
|
?CND5: PRINTI " and is turned o"
|
|
FSET? OBJ,ONBIT \?ELS12
|
|
PRINTC 110
|
|
JUMP ?CND10
|
|
?ELS12: PRINTI "ff"
|
|
?CND10: PRINTR "."
|
|
|
|
|
|
.FUNCT SLIDE-PROJECTOR-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
CALL PROJECTORS-DESC,SLIDE-PROJECTOR,STR?80
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS7
|
|
FSET? SLIDE-PROJECTOR,ONBIT /?ELS7
|
|
FSET SLIDE-PROJECTOR,ONBIT
|
|
FSET SCREENING-ROOM,ONBIT
|
|
PRINTI "A stream of "
|
|
IN? SLIDE,SLIDE-PROJECTOR \?ELS12
|
|
PRINTI "colored"
|
|
JUMP ?CND10
|
|
?ELS12: PRINTI "white"
|
|
?CND10: PRINTI " light shoots out of the lens of"
|
|
CALL TPRINT,SLIDE-PROJECTOR
|
|
PRINTR " onto the screen in the screening room."
|
|
?ELS7: EQUAL? PRSA,V?FOCUS \?ELS16
|
|
CALL PERFORM,V?FOCUS,SLIDE-PROJECTOR-LENS
|
|
RTRUE
|
|
?ELS16: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS18
|
|
CALL CANT-OPEN-CLOSE
|
|
RSTACK
|
|
?ELS18: EQUAL? PRSA,V?LAMP-OFF \FALSE
|
|
FSET? SLIDE-PROJECTOR,ONBIT \FALSE
|
|
FCLEAR SLIDE-PROJECTOR,ONBIT
|
|
FSET? FILM-PROJECTOR,ONBIT \?THN26
|
|
FSET? LENS-CAP,LENS-CAP-OFF-BIT /?CND23
|
|
?THN26: FCLEAR SCREENING-ROOM,ONBIT
|
|
?CND23: PRINTI "You turn off"
|
|
CALL TPRINT,SLIDE-PROJECTOR
|
|
PRINTR " and the light from the lens fades away."
|
|
|
|
|
|
.FUNCT PROJECTED-IMAGE-F
|
|
EQUAL? PRSI,PROJECTED-IMAGE \?ELS5
|
|
CALL PERFORM,PRSA,PRSO,PROJECTION-SCREEN
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSO,PROJECTED-IMAGE \FALSE
|
|
CALL PERFORM,PRSA,PROJECTION-SCREEN,PRSI
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PROJECTION-SCREEN-F
|
|
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
|
PRINTI "The "
|
|
CALL DPRINT,PROJECTION-SCREEN
|
|
PRINTI " is "
|
|
FSET? FILM-PROJECTOR,ONBIT \?ELS8
|
|
FSET? LENS-CAP,LENS-CAP-OFF-BIT \?ELS8
|
|
IN? FILM,FILM-PROJECTOR \?ELS13
|
|
FSET? SLIDE-PROJECTOR,ONBIT \?ELS16
|
|
IN? SLIDE,SLIDE-PROJECTOR \?ELS19
|
|
FSET? SLIDE-PROJECTOR-LENS,FOCUS-BIT \?ELS22
|
|
PRINTI "showing a message saying:
|
|
|
|
PLAY """
|
|
GET SONGS,SONG-NUMBER
|
|
PRINT STACK
|
|
PRINTI ".""
|
|
Love,
|
|
Aunt Hildegarde"
|
|
ZERO? PROJECTOR-POINTS \?CND6
|
|
ADD SCORE,10 >SCORE
|
|
SET 'PROJECTOR-POINTS,TRUE-VALUE
|
|
JUMP ?CND6
|
|
?ELS22: PRINTI "filled with bits of colored words and a blur of colored light"
|
|
JUMP ?CND6
|
|
?ELS19: PRINT WASHED-OUT-BITS
|
|
JUMP ?CND6
|
|
?ELS16: PRINT BITS-&-PIECES
|
|
JUMP ?CND6
|
|
?ELS13: FSET? SLIDE-PROJECTOR,ONBIT \?ELS36
|
|
IN? SLIDE,SLIDE-PROJECTOR \?ELS39
|
|
FSET? SLIDE-PROJECTOR-LENS,FOCUS-BIT \?ELS42
|
|
PRINT WASHED-OUT-BITS
|
|
JUMP ?CND6
|
|
?ELS42: PRINT WASHED-OUT-BITS
|
|
JUMP ?CND6
|
|
?ELS39: PRINT WHITE-LIGHT
|
|
JUMP ?CND6
|
|
?ELS36: PRINT WHITE-LIGHT
|
|
JUMP ?CND6
|
|
?ELS8: FSET? SLIDE-PROJECTOR,ONBIT \?ELS53
|
|
IN? SLIDE,SLIDE-PROJECTOR \?ELS56
|
|
FSET? SLIDE-PROJECTOR-LENS,FOCUS-BIT \?ELS59
|
|
PRINT BITS-&-PIECES
|
|
JUMP ?CND6
|
|
?ELS59: PRINTI "a blur of colored light"
|
|
JUMP ?CND6
|
|
?ELS56: PRINT WHITE-LIGHT
|
|
JUMP ?CND6
|
|
?ELS53: PRINTI "blank"
|
|
?CND6: PRINTR "."
|
|
|
|
|
|
.FUNCT LENS-CAP-F
|
|
EQUAL? PRSA,V?PUT-ON \?ELS5
|
|
EQUAL? PRSI,FILM-PROJECTOR,FILM-PROJECTOR-LENS \?ELS5
|
|
FCLEAR LENS-CAP,LENS-CAP-OFF-BIT
|
|
FSET LENS-CAP,NDESCBIT
|
|
FSET LENS-CAP,TRYTAKEBIT
|
|
MOVE LENS-CAP,FILM-PROJECTOR
|
|
FSET? SLIDE-PROJECTOR,ONBIT /?CND8
|
|
FSET? FILM-PROJECTOR,ONBIT \?CND8
|
|
FCLEAR SCREENING-ROOM,ONBIT
|
|
?CND8: PRINTI "You place"
|
|
CALL TPRINT,LENS-CAP
|
|
PRINTI " over"
|
|
CALL TRPRINT,FILM-PROJECTOR-LENS
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?PUT-ON \?ELS14
|
|
EQUAL? PRSI,SLIDE-PROJECTOR,SLIDE-PROJECTOR-LENS \?ELS14
|
|
PRINTI "The "
|
|
CALL DPRINT,LENS-CAP
|
|
PRINTI " won't fit on"
|
|
CALL TRPRINT,PRSI
|
|
RSTACK
|
|
?ELS14: EQUAL? PRSA,V?UNTIE,V?TAKE-OFF \?ELS18
|
|
FSET? LENS-CAP,LENS-CAP-OFF-BIT /?ELS18
|
|
CALL PERFORM,V?TAKE,LENS-CAP
|
|
RTRUE
|
|
?ELS18: EQUAL? PRSA,V?TAKE \FALSE
|
|
EQUAL? PRSO,LENS-CAP \FALSE
|
|
FSET? LENS-CAP,LENS-CAP-OFF-BIT /FALSE
|
|
CALL ITAKE
|
|
ZERO? STACK /TRUE
|
|
FSET LENS-CAP,LENS-CAP-OFF-BIT
|
|
FCLEAR LENS-CAP,NDESCBIT
|
|
FCLEAR LENS-CAP,TRYTAKEBIT
|
|
FSET? FILM-PROJECTOR,ONBIT \FALSE
|
|
FSET SCREENING-ROOM,ONBIT
|
|
PRINTI "As you remove"
|
|
CALL TPRINT,LENS-CAP
|
|
PRINTI " a stream of "
|
|
IN? FILM,FILM-PROJECTOR /?THN36
|
|
IN? CORPSE-LINE,FILM-PROJECTOR \?ELS35
|
|
?THN36: PRINTI "colored"
|
|
JUMP ?CND33
|
|
?ELS35: PRINTI "white"
|
|
?CND33: PRINTI " light shoots from"
|
|
CALL TPRINT,FILM-PROJECTOR
|
|
PRINTI "'s lens."
|
|
CRLF
|
|
IN? CORPSE-LINE,FILM-PROJECTOR \TRUE
|
|
CALL CORPSE-LINE-DEATH
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FILM-PROJECTOR-LENS-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTI "It's a hand-ground, all-aluminum, Bierman 500 "
|
|
CALL DPRINT,FILM-PROJECTOR-LENS
|
|
FSET? LENS-CAP,LENS-CAP-OFF-BIT /?ELS8
|
|
PRINTI " with"
|
|
CALL APRINT,LENS-CAP
|
|
PRINTI " on it"
|
|
JUMP ?CND6
|
|
?ELS8: FSET? FILM-PROJECTOR,ONBIT \?CND6
|
|
PRINTI ", with a spray of "
|
|
IN? FILM,FILM-PROJECTOR \?ELS16
|
|
PRINTI "colored"
|
|
JUMP ?CND14
|
|
?ELS16: PRINTI "white"
|
|
?CND14: PRINTI " light coming out of it"
|
|
?CND6: PRINTR "."
|
|
?ELS5: EQUAL? PRSA,V?TURN,V?FOCUS \?ELS20
|
|
PRINT YOU-CANT
|
|
PRINTI "adjust"
|
|
CALL TPRINT,FILM-PROJECTOR-LENS
|
|
PRINTR ". It's preset for Uncle Buddy's screening room."
|
|
?ELS20: EQUAL? PRSA,V?UNTIE,V?TAKE \FALSE
|
|
PRINT LENS-ATTACHED
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SLIDE-PROJECTOR-LENS-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTI "It's a fairly expensive, focusable "
|
|
CALL DPRINT,SLIDE-PROJECTOR-LENS
|
|
FSET? SLIDE-PROJECTOR,ONBIT \?CND6
|
|
PRINTI ". A stream of "
|
|
IN? SLIDE,SLIDE-PROJECTOR \?ELS11
|
|
PRINTI "colored"
|
|
JUMP ?CND9
|
|
?ELS11: PRINTI "white"
|
|
?CND9: PRINTI " light sprays from the lens"
|
|
?CND6: PRINTR "."
|
|
?ELS5: EQUAL? PRSA,V?TURN,V?FOCUS \?ELS15
|
|
FSET? SLIDE-PROJECTOR,ONBIT /?ELS20
|
|
PRINTI "How can you focus"
|
|
CALL TPRINT,SLIDE-PROJECTOR
|
|
PRINTR " when it's not turned on?"
|
|
?ELS20: FSET? SLIDE-PROJECTOR-LENS,FOCUS-BIT \?ELS22
|
|
CALL YOU-ALREADY
|
|
RSTACK
|
|
?ELS22: IN? SLIDE,SLIDE-PROJECTOR /?ELS24
|
|
PRINTI "How can you focus"
|
|
CALL TPRINT,SLIDE-PROJECTOR
|
|
PRINTR " when there's nothing in it?"
|
|
?ELS24: PRINTI "You twist"
|
|
CALL TRPRINT,SLIDE-PROJECTOR-LENS
|
|
FSET SLIDE-PROJECTOR-LENS,FOCUS-BIT
|
|
RTRUE
|
|
?ELS15: EQUAL? PRSA,V?TAKE \FALSE
|
|
PRINT LENS-ATTACHED
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PROJECTION-BOOTH-F,RARG
|
|
EQUAL? RARG,M-ENTER \FALSE
|
|
FSET? PROJECTION-BOOTH,EVERYBIT /FALSE
|
|
FSET PROJECTION-BOOTH,EVERYBIT
|
|
RANDOM 10
|
|
SUB STACK,1 >SONG-NUMBER
|
|
RETURN SONG-NUMBER
|
|
|
|
|
|
.FUNCT SCREENING-ROOM-PSEUDO-F
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
CALL PERFORM,V?LOOK-INSIDE,WINDOW
|
|
RTRUE
|
|
|
|
|
|
.FUNCT OUTSIDE-PARLOR-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is a long hall stretching east and west."
|
|
FSET? WALL-SAFE,INVISIBLE \?ELS10
|
|
PRINTI " There is a painting hanging here."
|
|
RTRUE
|
|
?ELS10: PRINTI " There is a painting swung away from the wall. Next to the painting is a"
|
|
FSET? WALL-SAFE,OPENBIT \?ELS15
|
|
PRINTI "n open"
|
|
JUMP ?CND13
|
|
?ELS15: PRINTI " closed"
|
|
?CND13: PRINTI " wall safe."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PARLOR-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
ZERO? TIPPED /?ELS8
|
|
PRINTI "This room is askew with the floor tilting down in the "
|
|
EQUAL? TIPPED,CRAWL-SPACE-NORTH \?ELS12
|
|
PRINTI "north and up in the south"
|
|
JUMP ?CND10
|
|
?ELS12: PRINTI "south and up in the north"
|
|
?CND10: PRINTI ". The piano is "
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "This is the parlor where Uncle Buddy would bring potential investors. He would break out his finest scotch and Cuban cigars. Once the ""guests"" were tight he would present his latest movie idea. (You've seen his movies, so you know anyone who would agree to invest in one of them had to have been drinking.) Strange, you notice all the furniture in this room is bolted to the floor, except for the piano "
|
|
?CND6: EQUAL? PIANO-LOC,1 \?ELS19
|
|
PRINTI "against the northern wall"
|
|
JUMP ?CND17
|
|
?ELS19: EQUAL? PIANO-LOC,2 \?ELS21
|
|
PRINTI "in the middle of the room"
|
|
JUMP ?CND17
|
|
?ELS21: PRINTI "against the southern wall"
|
|
?CND17: FSET? CRAWL-SPACE-DOOR,OPENBIT \?CND24
|
|
PRINTI ". There is an open door in the floor"
|
|
?CND24: PRINTI ". A doorway leads west."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT TO-CRAWL-SPACE-NORTH
|
|
FSET? CRAWL-SPACE-DOOR,OPENBIT \?ELS5
|
|
FSET? SKIS,WORNBIT \?ELS10
|
|
PRINTI "You can't fit through the opening wearing the skis."
|
|
CRLF
|
|
RFALSE
|
|
?ELS10: EQUAL? TIPPED,CRAWL-SPACE-NORTH \?ELS12
|
|
PRINTI "Now that the parlor is tilted, you can't fit into the crawl space."
|
|
CRLF
|
|
RFALSE
|
|
?ELS12: RETURN CRAWL-SPACE-NORTH
|
|
?ELS5: PRINTI "You can't go that way."
|
|
CRLF
|
|
RFALSE
|
|
|
|
|
|
.FUNCT CRAWL-SPACE-DOOR-F
|
|
EQUAL? PRSA,V?OPEN \FALSE
|
|
EQUAL? HERE,PARLOR \FALSE
|
|
ZERO? SONG-PLAYED /?ELS15
|
|
FSET? CRAWL-SPACE-DOOR,OPENBIT /?ELS15
|
|
FSET CRAWL-SPACE-DOOR,OPENBIT
|
|
PRINTR "Opened."
|
|
?ELS15: PRINTR "You can't seem to open it."
|
|
|
|
|
|
.FUNCT CRAWL-SPACE-NORTH-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is the northern half of an uncomfortably warm crawl space beneath the parlor. It appears as though this room is under construction."
|
|
CALL DESCRIBE-CRAWL-SPACE-BEAM,STR?97
|
|
PRINTI " To the north, about a foot above the floor, you see an entrance to a passage."
|
|
ZERO? TIPPED \?CND6
|
|
PRINTI " The entrance is partially blocked by the floor of the room above."
|
|
?CND6: CALL DESCRIBE-NICHE,NORTH-NICHE
|
|
PRINTI " There is a"
|
|
FSET? CRAWL-SPACE-DOOR,OPENBIT \?ELS11
|
|
PRINTI "n open"
|
|
JUMP ?CND9
|
|
?ELS11: PRINTI " closed"
|
|
?CND9: PRINTI " door above you."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT TO-CRAWL-SPACE-SOUTH
|
|
EQUAL? TIPPED,CRAWL-SPACE-SOUTH \?ELS5
|
|
PRINTI "You won't fit in the southern half of the crawl space. The ceiling shifted and now fills the space."
|
|
CRLF
|
|
RFALSE
|
|
?ELS5: RETURN CRAWL-SPACE-SOUTH
|
|
|
|
|
|
.FUNCT TO-FIRST-SECRET-ROOM
|
|
EQUAL? TIPPED,CRAWL-SPACE-SOUTH \?ELS5
|
|
RETURN FIRST-SECRET-ROOM
|
|
?ELS5: PRINTI "You can't fit through the passage. It's partially blocked by the floor of the room above."
|
|
CRLF
|
|
RFALSE
|
|
|
|
|
|
.FUNCT PARKING-METER-F
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "This is the parking meter that was the final frustration for budding actor Alan Chaplin in Uncle Buddy's ""You Can't Fight City Hall, But You Can Blow It Up!"""
|
|
|
|
|
|
.FUNCT DESCRIBE-NICHE,NICHE
|
|
PRINTI " There is a niche in the ceiling here."
|
|
FIRST? NICHE \TRUE
|
|
PRINTI " In"
|
|
CALL TPRINT,NICHE
|
|
PRINTI " there is"
|
|
FIRST? NICHE /?KLU4
|
|
?KLU4: CALL APRINT,STACK
|
|
PRINTI " supporting the ceiling."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BEAM-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "The thick, wooden beam runs across the ceiling of the crawl space."
|
|
|
|
|
|
.FUNCT DESCRIBE-CRAWL-SPACE-BEAM,STRING
|
|
PRINTI " A wooden beam runs east-west across the ceiling, forming the boundary between this side of the crawl space and the other half to the "
|
|
PRINT STRING
|
|
PRINTC 46
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CRAWL-SPACE-SOUTH-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is the southern half of an uncomfortably warm crawl space beneath the parlor."
|
|
CALL DESCRIBE-CRAWL-SPACE-BEAM,STR?99
|
|
CALL DESCRIBE-NICHE,SOUTH-NICHE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT POST-F,OARG,POST-LOC
|
|
LOC PRSO >POST-LOC
|
|
EQUAL? PRSA,V?MOVE,V?TAKE \?ELS5
|
|
FSET? PRSO,CANT-MOVE-POST-BIT \?ELS5
|
|
PRINTR "The pillar won't budge from the niche."
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
|
|
EQUAL? POST-LOC,NORTH-NICHE,SOUTH-NICHE \?ELS14
|
|
PRINTI "It's in"
|
|
LOC PRSO
|
|
CALL TRPRINT,STACK
|
|
RSTACK
|
|
?ELS14: PRINTI "The "
|
|
CALL DPRINT,PRSO
|
|
PRINTR " is made of wood and is about two feet tall."
|
|
?ELS9: EQUAL? PRSA,V?PUT \?ELS18
|
|
EQUAL? PRSI,NORTH-NICHE,SOUTH-NICHE \?ELS18
|
|
ZERO? TIPPED /?ELS25
|
|
PRINTR "The post won't go in the niche now that the ceiling is tilted."
|
|
?ELS25: EQUAL? PRSI,NORTH-NICHE \?ELS32
|
|
EQUAL? PIANO-LOC,1 /?THN37
|
|
?ELS32: EQUAL? PRSI,SOUTH-NICHE \?ELS34
|
|
EQUAL? PIANO-LOC,3 /?THN37
|
|
?ELS34: EQUAL? PIANO-LOC,2 \FALSE
|
|
EQUAL? PRSI,NORTH-NICHE /?THN37
|
|
EQUAL? PRSI,SOUTH-NICHE \FALSE
|
|
?THN37: PRINTR "Because of the weight from above you can't put the pillar back in the niche."
|
|
?ELS18: EQUAL? PRSA,V?BURN \FALSE
|
|
PRINT PYRO
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PIANO-F
|
|
EQUAL? PRSA,V?PUSH-TO \?ELS5
|
|
EQUAL? PRSI,INTDIR \?ELS5
|
|
EQUAL? TIPPED,CRAWL-SPACE-NORTH,CRAWL-SPACE-SOUTH /?ELS12
|
|
EQUAL? P-DIRECTION,P?NORTH \?ELS17
|
|
EQUAL? PIANO-LOC,1 \?ELS17
|
|
PRINTR "It's already up against the wall."
|
|
?ELS17: EQUAL? P-DIRECTION,P?NORTH \?ELS21
|
|
EQUAL? PIANO-LOC,2 \?ELS21
|
|
IN? ROUND-POST,NORTH-NICHE \?ELS28
|
|
FCLEAR SQUARE-POST,CANT-MOVE-POST-BIT
|
|
SET 'PIANO-LOC,1
|
|
PRINTR "The hearty breakfast you had this morning pays off as you push the piano north against the wall."
|
|
?ELS28: SET 'TIPPED,CRAWL-SPACE-NORTH
|
|
SET 'PIANO-LOC,1
|
|
PRINTR "You push the piano north a couple of feet and the room begins to tip. As the north side of the parlor tips down, the piano rolls across the floor and against the north wall with an atonal banging of the keys. The south side of the floor tilts up."
|
|
?ELS21: EQUAL? P-DIRECTION,P?NORTH \?ELS32
|
|
EQUAL? PIANO-LOC,3 \?ELS32
|
|
IN? ROUND-POST,NORTH-NICHE \?CND35
|
|
FSET ROUND-POST,CANT-MOVE-POST-BIT
|
|
?CND35: IN? SQUARE-POST,SOUTH-NICHE \?CND38
|
|
FSET SQUARE-POST,CANT-MOVE-POST-BIT
|
|
?CND38: SET 'PIANO-LOC,2
|
|
PRINTR "You push the piano north to the center of the room."
|
|
?ELS32: EQUAL? P-DIRECTION,P?SOUTH \?ELS42
|
|
EQUAL? PIANO-LOC,1 \?ELS42
|
|
IN? ROUND-POST,NORTH-NICHE \?CND45
|
|
FSET ROUND-POST,CANT-MOVE-POST-BIT
|
|
?CND45: IN? SQUARE-POST,SOUTH-NICHE \?CND48
|
|
FSET SQUARE-POST,CANT-MOVE-POST-BIT
|
|
?CND48: SET 'PIANO-LOC,2
|
|
PRINTR "You push the piano south to the center of the room."
|
|
?ELS42: EQUAL? P-DIRECTION,P?SOUTH \?ELS52
|
|
EQUAL? PIANO-LOC,2 \?ELS52
|
|
IN? SQUARE-POST,SOUTH-NICHE \?ELS59
|
|
FCLEAR ROUND-POST,CANT-MOVE-POST-BIT
|
|
SET 'PIANO-LOC,3
|
|
PRINTR "The hearty breakfast you had this morning pays off as you push the piano south against the wall."
|
|
?ELS59: MOVE ROUND-POST,CRAWL-SPACE-NORTH
|
|
FCLEAR ROUND-POST,NDESCBIT
|
|
FCLEAR ROUND-POST,CANT-MOVE-POST-BIT
|
|
SET 'TIPPED,CRAWL-SPACE-SOUTH
|
|
SET 'PIANO-LOC,3
|
|
PRINTR "You push the piano south a couple of feet and the room begins to tip. As the south side of the parlor tips down the piano rolls across the floor and slams against the south wall. The north side of the floor tilts up."
|
|
?ELS52: EQUAL? P-DIRECTION,P?SOUTH \?ELS63
|
|
EQUAL? PIANO-LOC,3 \?ELS63
|
|
PRINTR "It's already up against the wall."
|
|
?ELS63: EQUAL? P-DIRECTION,P?EAST,P?WEST,P?NE /?THN68
|
|
EQUAL? P-DIRECTION,P?NW,P?SE,P?SW \FALSE
|
|
?THN68: PRINTI "You try pushing the piano "
|
|
EQUAL? P-DIRECTION,P?EAST \?ELS72
|
|
PRINTI "east"
|
|
JUMP ?CND70
|
|
?ELS72: EQUAL? P-DIRECTION,P?WEST \?ELS74
|
|
PRINTI "west"
|
|
JUMP ?CND70
|
|
?ELS74: EQUAL? P-DIRECTION,P?NE \?ELS76
|
|
PRINTI "northeast"
|
|
JUMP ?CND70
|
|
?ELS76: EQUAL? P-DIRECTION,P?NW \?ELS78
|
|
PRINTI "northwest"
|
|
JUMP ?CND70
|
|
?ELS78: EQUAL? P-DIRECTION,P?SE \?ELS80
|
|
PRINTI "southeast"
|
|
JUMP ?CND70
|
|
?ELS80: EQUAL? P-DIRECTION,P?SW \?CND70
|
|
PRINTI "southwest"
|
|
?CND70: PRINTI " but the casters it rides on are old and worn. They're stuck, so"
|
|
CALL TPRINT,PIANO
|
|
PRINTR " will only move north and south."
|
|
?ELS12: PRINTR "Now that the room is tipped, the piano is too heavy to move."
|
|
?ELS5: EQUAL? PRSA,V?MOVE,V?PUSH \?ELS86
|
|
PRINTR "Did you have a direction in mind?"
|
|
?ELS86: EQUAL? PRSA,V?RAISE \?ELS88
|
|
CALL PERFORM,V?OPEN,PIANO
|
|
RTRUE
|
|
?ELS88: EQUAL? PRSA,V?LOWER \?ELS90
|
|
CALL PERFORM,V?CLOSE,PIANO
|
|
RTRUE
|
|
?ELS90: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTI "It's the baby grand that Aunt Hildegarde bought for you and Herman. Though neither of you practiced as you should, you've managed to maintain a shaky repertoire of standards. The casters on the piano's legs have seen better days. The piano lid is "
|
|
FSET? PIANO,OPENBIT \?ELS95
|
|
PRINTI "open"
|
|
JUMP ?CND93
|
|
?ELS95: PRINTI "closed"
|
|
?CND93: PRINTR "."
|
|
|
|
|
|
.FUNCT CASTERS-PSEUDO
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "The casters look old and worn, as if they have seen better days."
|
|
|
|
|
|
.FUNCT NICHE-F
|
|
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS5
|
|
PRINTI "You see"
|
|
FIRST? PRSO /?ELS8
|
|
PRINTI " nothing"
|
|
JUMP ?CND6
|
|
?ELS8: FIRST? PRSO /?KLU17
|
|
?KLU17: CALL APRINT,STACK
|
|
?CND6: PRINTI " in"
|
|
CALL TRPRINT,PRSO
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?PUT \?ELS12
|
|
EQUAL? PRSI,SOUTH-NICHE,NORTH-NICHE \?ELS12
|
|
EQUAL? PRSO,SQUARE-POST,ROUND-POST /?ELS12
|
|
CALL WASTE-OF-TIME
|
|
RSTACK
|
|
?ELS12: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
|
|
CALL CANT-OPEN-CLOSE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-NOISE
|
|
FSET? HERE,CAVEBIT \?CND1
|
|
CALL QUEUE,I-NOISE,5
|
|
RFALSE
|
|
?CND1: CRLF
|
|
FSET? HERE,OUTDOORSBIT \?ELS6
|
|
CALL PICK-ONE,OUTDOOR-NOISE
|
|
PRINT STACK
|
|
JUMP ?CND4
|
|
?ELS6: CALL PICK-ONE,INDOOR-NOISE
|
|
PRINT STACK
|
|
?CND4: CRLF
|
|
RANDOM 20
|
|
ADD 30,STACK
|
|
CALL QUEUE,I-NOISE,STACK
|
|
RFALSE
|
|
|
|
|
|
.FUNCT OUT-OF-P-DEBUG
|
|
FSET FLASHLIGHT,ONBIT
|
|
MOVE GREEN-MATCH,PLAYER
|
|
MOVE FLASHLIGHT,PLAYER
|
|
PRINTI "Your flashlight comes on and a green match appears in your hand as you exit the work room."
|
|
CRLF
|
|
CRLF
|
|
EQUAL? P-WALK-DIR,P?NORTH \?ELS5
|
|
RETURN CELLAR
|
|
?ELS5: EQUAL? P-WALK-DIR,P?SW \?ELS7
|
|
RETURN ATTIC
|
|
?ELS7: EQUAL? P-WALK-DIR,P?WEST \?ELS9
|
|
RETURN BOAT-DOCK
|
|
?ELS9: EQUAL? P-WALK-DIR,P?EAST \?ELS11
|
|
RETURN HEART-OF-MAZE
|
|
?ELS11: EQUAL? P-WALK-DIR,P?SOUTH \?ELS13
|
|
RETURN UPSTAIRS-HALL-MIDDLE
|
|
?ELS13: EQUAL? P-WALK-DIR,P?SE \?ELS15
|
|
RETURN BOMB-SHELTER
|
|
?ELS15: EQUAL? P-WALK-DIR,P?NE \?ELS17
|
|
RETURN CRAWL-SPACE-NORTH
|
|
?ELS17: EQUAL? P-WALK-DIR,P?NW \FALSE
|
|
RETURN CANNON-EMPLACEMENT
|
|
|
|
.ENDI
|