You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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