.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