hollywoodhijinx/elevator.zap

886 lines
27 KiB
Plaintext

.FUNCT CLOSET-HOLE-PSEUDO
EQUAL? PRSA,V?PUT \?ELS5
EQUAL? PRSO,PEG-0 \?ELS10
ADD SCORE,10 >SCORE
CALL ROB,PLAYER,HEART-OF-MAZE
FSET? RING,WORNBIT \?CND11
MOVE RING,PLAYER
?CND11: FSET? TOUPEE,WORNBIT \?CND14
MOVE TOUPEE,PLAYER
?CND14: FSET? MASK,WORNBIT \?CND17
MOVE MASK,PLAYER
?CND17: CALL DEQUEUE,I-SANDS-OF-TIME
CALL DEQUEUE,I-NOISE
CALL QUEUE,I-AUNT,2
PRINTI "You put"
CALL TPRINT,PEG-0
PRINTI " in the hole and the closet door slams shut. Without warning, the floor drops out from under you! You fall for several seconds then land with a bone-crunching thud, dropping everything you're holding. You slide down a twisting, slippery slide and are dumped into a room filled with props.
You look around the room and can't believe what your eyes are seeing. There is Aunt Hildegarde! She's tied to the conveyor belt of a whirling buzz saw and a man is standing over her. Aunt Hildegarde sees you and screams. The man turns and you immediately recognize your childhood nemesis: Cousin Herman."
CRLF
CRLF
CALL QUEUE,I-HERMAN-ATTACK,2
CALL GOTO,PROP-VAULT
RSTACK
?ELS10: PRINTI "The "
CALL DPRINT,PRSO
PRINTR " won't fit in the hole."
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
PRINTR "You see nothing but darkness."
.FUNCT CLOSET-F,RARG,DOOR
EQUAL? RARG,M-LOOK \FALSE
CALL WHICH-DOOR? >DOOR
PRINTI "You're in a small closet. Mounted at an angle on the back wall of the closet are three coat pegs. To the left of the first peg there is a hole the size of a peg. To the right of the third peg there is a peg which has been sawed-off, flush with the wall. The door to the north is "
FSET? DOOR,OPENBIT \?ELS8
PRINTI "open"
JUMP ?CND6
?ELS8: PRINTI "closed"
?CND6: PRINTC 46
RTRUE
.FUNCT PEG-5-F
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTR "It's what's left of a coat peg. It looks as if someone sawed off the peg."
?ELS5: EQUAL? PRSA,V?PULL \FALSE
PRINTR "There's nothing to pull -- it's sawed-off."
.FUNCT CLOSET-EXIT-F,DOOR
CALL WHICH-DOOR? >DOOR
FSET? DOOR,OPENBIT /?ELS5
CALL THIS-IS-IT,DOOR
CALL ITS-CLOSED,DOOR
RFALSE
?ELS5: EQUAL? CLOSET-FLOOR,CELLAR \?ELS7
RETURN CELLAR
?ELS7: EQUAL? CLOSET-FLOOR,FOYER \?ELS9
RETURN FOYER
?ELS9: RETURN UPSTAIRS-HALL-MIDDLE
.FUNCT WHICH-DOOR?
EQUAL? HERE,CLOSET \?ELS5
EQUAL? CLOSET-FLOOR,CELLAR \?ELS10
RETURN CELLAR-CD
?ELS10: EQUAL? CLOSET-FLOOR,FOYER \?ELS12
RETURN FOYER-CD
?ELS12: EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE \?ELS14
RETURN UPSTAIRS-CD
?ELS14: RETURN ATTIC-CD
?ELS5: EQUAL? CLOSET-FLOOR,CELLAR \?ELS23
RETURN FOYER-CD
?ELS23: EQUAL? CLOSET-FLOOR,FOYER \?ELS25
RETURN UPSTAIRS-CD
?ELS25: RETURN ATTIC-CD
.FUNCT PROP-VAULT-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is a vault filled with props. You can see Aunt Hildegarde tied to a buzz saw. Cousin Herman is here, thinking of something rotten to do to you. To the east there is a chute."
RTRUE
.FUNCT CHUTE-F
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS5
PRINTR "The chute leads down into darkness."
?ELS5: EQUAL? PRSA,V?ENTER \?ELS7
CALL DO-WALK,P?DOWN
RSTACK
?ELS7: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,CHUTE \FALSE
REMOVE PRSO
PRINTI "You toss"
CALL TPRINT,PRSO
PRINTR " in the chute."
.FUNCT TO-CHUTE
ZERO? HERMAN-DOWN /?ELS5
PRINTI "Haven't you forgotten something?"
CRLF
RFALSE
?ELS5: PRINTI "Cousin Herman jumps in front of the chute then punches you in the stomach."
CRLF
RFALSE
.FUNCT CLOSET-REF-F
EQUAL? PRSA,V?SEARCH,V?ENTER,V?LOOK-INSIDE \?ELS5
EQUAL? HERE,CLOSET-TOP \?ELS5
PRINTR "You can't enter the closet from here."
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS9
EQUAL? HERE,CLOSET \?ELS9
CALL V-LOOK
RSTACK
?ELS9: EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE \?ELS13
EQUAL? HERE,CLOSET /?ELS13
EQUAL? CLOSET-FLOOR,HERE \?ELS20
PRINTR "You'll have to enter the closet first."
?ELS20: PRINTR "You see an empty shaft."
?ELS13: EQUAL? PRSA,V?SEARCH \?ELS24
CALL PERFORM,V?SEARCH,GLOBAL-ROOM
RTRUE
?ELS24: EQUAL? PRSA,V?OPEN \?ELS26
EQUAL? HERE,CLOSET \?ELS31
CALL WHICH-DOOR?
JUMP ?CND27
?ELS31: EQUAL? HERE,FOYER \?ELS33
PUSH FOYER-CD
JUMP ?CND27
?ELS33: EQUAL? HERE,UPSTAIRS-HALL-MIDDLE \?ELS35
PUSH UPSTAIRS-CD
JUMP ?CND27
?ELS35: EQUAL? HERE,CELLAR \?ELS37
PUSH CELLAR-CD
JUMP ?CND27
?ELS37: PUSH ATTIC-CD
?CND27: CALL PERFORM,V?OPEN,STACK
RTRUE
?ELS26: EQUAL? PRSA,V?CLOSE \?ELS41
EQUAL? HERE,CLOSET \?ELS46
CALL WHICH-DOOR?
JUMP ?CND42
?ELS46: EQUAL? HERE,FOYER \?ELS48
PUSH FOYER-CD
JUMP ?CND42
?ELS48: EQUAL? HERE,UPSTAIRS-HALL-MIDDLE \?ELS50
PUSH UPSTAIRS-CD
JUMP ?CND42
?ELS50: EQUAL? HERE,CELLAR \?ELS52
PUSH CELLAR-CD
JUMP ?CND42
?ELS52: PUSH ATTIC-CD
?CND42: CALL PERFORM,V?CLOSE,STACK
RTRUE
?ELS41: EQUAL? PRSA,V?EXIT,V?DISEMBARK \?ELS56
CALL DO-WALK,P?OUT
RSTACK
?ELS56: EQUAL? PRSA,V?ENTER \FALSE
EQUAL? HERE,CLOSET \?ELS63
PRINTR "Look around."
?ELS63: CALL DO-WALK,P?IN
RSTACK
.FUNCT PEGS-F
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTR "There are three pegs mounted at an angle to the wall. To the left of the first peg is a hole the size of a peg. To the right of the third peg you can see where a peg has been sawed-off, flush with the wall."
?ELS5: EQUAL? PRSA,V?PUSH,V?PULL,V?MOVE /?THN8
EQUAL? PRSA,V?PUSH-DOWN,V?LOWER \FALSE
?THN8: PRINTR "You try to pull down all three pegs at once. They won't budge, but the closet makes a grinding noise."
.FUNCT PEG-F
EQUAL? PRSA,V?PUSH,V?PULL,V?MOVE /?THN6
EQUAL? PRSA,V?PUSH-DOWN,V?LOWER \?ELS5
?THN6: EQUAL? PRSO,BUCKET-PEG \?ELS12
FSET? BUCKET,BUCKET-PEG-DOWN-BIT \?ELS12
PRINTI "The bucket is already holding"
CALL TPRINT,PRSO
PRINTR " down."
?ELS12: PRINTI "You pull the peg down to a horizontal position."
FSET? BUCKET,BUCKET-PEG-DOWN-BIT \?CND17
PRINTI " You hear a grinding noise."
?CND17: CRLF
CRLF
PRINTI "As you release the peg, it pops back into its original 45-degree position."
FSET? BUCKET,BUCKET-PEG-DOWN-BIT \?ELS24
CRLF
RTRUE
?ELS24: PRINTC 32
CALL ELEVATOR-OPERATOR,PRSO
RSTACK
?ELS5: EQUAL? PRSA,V?HANG-UP \?ELS28
EQUAL? PRSI,PEG-3,PEG-2,PEG-1 \?ELS28
EQUAL? PRSO,BUCKET /?ELS28
MOVE PRSO,HERE
PRINTI "The "
CALL DPRINT,PRSO
PRINTR " slips off and falls to the floor."
?ELS28: EQUAL? PRSA,V?EXAMINE \FALSE
FSET? BUCKET,BUCKET-PEG-DOWN-BIT \?ELS35
PRINTI "The "
CALL DPRINT,PRSO
PRINTI " is in a horizontal position with a bucket hanging on it."
JUMP ?CND33
?ELS35: EQUAL? PRSO,BUCKET-PEG \?ELS37
PRINTI "The "
CALL DPRINT,PRSO
PRINTI " is pointing up at an angle with a bucket hanging on it."
JUMP ?CND33
?ELS37: PRINTI "You see a worn coat peg mounted at an angle."
?CND33: CRLF
RTRUE
.FUNCT PEG-0-F
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "It's a worn coat peg."
.FUNCT ELEVATOR-OPERATOR,PEG
EQUAL? HERE,FOYER,CELLAR,UPSTAIRS-HALL-MIDDLE /?THN4
EQUAL? HERE,ATTIC,SHAFT-BOTTOM \?CND1
?THN4: PRINTI "The closet door swings shut by itself."
CRLF
?CND1: EQUAL? PEG,PEG-1 \?ELS12
EQUAL? CLOSET-FLOOR,CELLAR /?THN9
?ELS12: EQUAL? PEG,PEG-2 \?ELS14
EQUAL? CLOSET-FLOOR,FOYER /?THN9
?ELS14: EQUAL? PEG,PEG-3 \?ELS8
EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE \?ELS8
?THN9: EQUAL? HERE,CLOSET,CLOSET-TOP \?CND6
EQUAL? HERE,CLOSET \?ELS22
CALL WHICH-DOOR?
FSET? STACK,OPENBIT \?ELS25
PRINTI "The closet door swings shut and you"
JUMP ?CND20
?ELS25: PRINTI "You"
JUMP ?CND20
?ELS22: CALL WHICH-DOOR?
FSET? STACK,OPENBIT \?ELS32
PRINTI "The shaft door swings shut and you"
JUMP ?CND20
?ELS32: PRINTI "You"
?CND20: PRINTI " feel the closet"
EQUAL? HERE,CLOSET /?CND35
PRINTI " ceiling"
?CND35: PRINTI " vibrate, then stop."
CRLF
JUMP ?CND6
?ELS8: EQUAL? HERE,CLOSET,CLOSET-TOP \?ELS42
EQUAL? HERE,CLOSET /?CND43
CRLF
?CND43: PRINTI "The closet "
EQUAL? HERE,CLOSET-TOP \?CND46
PRINTI "ceiling "
?CND46: PRINTI "begins to shake and rattle a bit"
EQUAL? HERE,CLOSET,CLOSET-TOP \?CND49
CALL WHICH-DOOR?
FSET? STACK,OPENBIT \?CND49
PRINTI " as the door swings shut"
?CND49: PRINTI ". You feel your stomach "
EQUAL? PEG,PEG-3 \?ELS56
PRINTI "drop to your knees as the closet "
EQUAL? HERE,CLOSET /?ELS59
PRINTI "moves up. You enter the top of the shaft, then the closet stops."
CRLF
CRLF
CALL GOTO,CLOSET-TOP
JUMP ?CND6
?ELS59: PRINTI "moves up, then stops."
CRLF
JUMP ?CND6
?ELS56: EQUAL? PEG,PEG-2 \?ELS63
EQUAL? CLOSET-FLOOR,CELLAR \?ELS63
PRINTI "drop to your knees as the closet "
EQUAL? HERE,CLOSET /?CND66
PRINTI "floor "
?CND66: PRINTI "moves up, then stops."
CRLF
EQUAL? HERE,CLOSET /?CND6
CRLF
CALL GOTO,CLOSET-TOP
JUMP ?CND6
?ELS63: EQUAL? PEG,PEG-2 \?ELS73
EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE \?ELS73
PRINTI "rising to your throat as the closet "
EQUAL? HERE,CLOSET /?CND76
PRINTI "floor "
?CND76: PRINTI "moves down, then stops."
CRLF
EQUAL? HERE,CLOSET /?CND6
CRLF
CALL GOTO,CLOSET-TOP
JUMP ?CND6
?ELS73: PRINTI "rising to your throat as the closet "
EQUAL? HERE,CLOSET /?CND84
PRINTI "floor "
?CND84: PRINTI "moves down, then stops."
CRLF
EQUAL? HERE,CLOSET /?CND6
CRLF
CALL GOTO,CLOSET-TOP
JUMP ?CND6
?ELS42: EQUAL? HERE,SHAFT-BOTTOM \?CND6
EQUAL? PEG,PEG-1 \?CND6
CALL JIGS-UP,STR?216
?CND6: EQUAL? PEG,PEG-1 \?ELS96
SET 'CLOSET-FLOOR,CELLAR
JUMP ?CND94
?ELS96: EQUAL? PEG,PEG-2 \?ELS98
SET 'CLOSET-FLOOR,FOYER
JUMP ?CND94
?ELS98: SET 'CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE
?CND94: FCLEAR ATTIC-CD,OPENBIT
FCLEAR UPSTAIRS-CD,OPENBIT
FCLEAR FOYER-CD,OPENBIT
FCLEAR CELLAR-CD,OPENBIT
RTRUE
.FUNCT BUCKET-F,OARG=0,FULL?=0
IN? PORTABLE-WATER,BUCKET /?PRD1
PUSH 0
JUMP ?PRD2
?PRD1: PUSH 1
?PRD2: SET 'FULL?,STACK
ZERO? OARG /?ELS7
ZERO? BUCKET-PEG /FALSE
EQUAL? OARG,M-OBJDESC? /TRUE
CRLF
PRINTI "A "
PRINTD BUCKET
PRINTI " is hanging from"
CALL TPRINT,BUCKET-PEG
IN? PORTABLE-WATER,BUCKET \?CND18
PRINTI ". The bucket "
CALL DESCRIBE-WATER-LEVEL
?CND18: PRINTC 46
RTRUE
?ELS7: EQUAL? PRSA,V?HANG-UP,V?PUT-ON \?ELS24
EQUAL? PRSI,PEG-3,PEG-2,PEG-1 \?ELS24
SET 'BUCKET-PEG,PRSI
FSET BUCKET,TRYTAKEBIT
MOVE BUCKET,HERE
IN? PORTABLE-WATER,BUCKET \?CND27
FSET PORTABLE-WATER,NDESCBIT
?CND27: IN? PORTABLE-WATER,BUCKET \?ELS38
GRTR? AMOUNT-OF-WATER,10 /?THN35
?ELS38: CALL WEIGHT,BUCKET
GRTR? STACK,20 \?ELS34
?THN35: FSET BUCKET,BUCKET-PEG-DOWN-BIT
PRINTI "As you hang"
CALL TPRINT,BUCKET
PRINTI " on"
CALL TPRINT,PRSI
PRINTR ", the peg lowers to a horizontal position and you feel the closet begin to vibrate."
?ELS34: PRINTI "You hang"
CALL TPRINT,BUCKET
PRINTR " on the peg."
?ELS24: EQUAL? PRSA,V?TAKE \?ELS42
EQUAL? PRSO,BUCKET \?ELS42
FSET? BUCKET,TRYTAKEBIT \?ELS42
CALL ITAKE
ZERO? STACK /TRUE
FSET? BUCKET,WETBIT \?ELS51
FCLEAR BUCKET,WETBIT
MOVE PORTABLE-WATER,BUCKET
SET 'AMOUNT-OF-WATER,26
PRINTI "Taken."
CRLF
CALL QUEUE,I-DRIP,1
RSTACK
?ELS51: FSET? BUCKET,BUCKET-PEG-DOWN-BIT \?ELS53
FCLEAR BUCKET,TRYTAKEBIT
FCLEAR BUCKET,BUCKET-PEG-DOWN-BIT
FCLEAR PORTABLE-WATER,NDESCBIT
PRINTI "As you remove"
CALL TPRINT,BUCKET
PRINTC 44
CALL TPRINT,BUCKET-PEG
PRINTI " pops back into its original 45-degree position. "
CALL ELEVATOR-OPERATOR,BUCKET-PEG
SET 'BUCKET-PEG,FALSE-VALUE
RTRUE
?ELS53: FCLEAR BUCKET,TRYTAKEBIT
FCLEAR PORTABLE-WATER,NDESCBIT
SET 'BUCKET-PEG,FALSE-VALUE
PRINTR "Taken."
?ELS42: EQUAL? PRSA,V?EXAMINE,V?SEARCH,V?LOOK-INSIDE \?ELS57
PRINTI "It's an old metal bucket which is beginning to rust through on the bottom. It has a rusty handle and "
IN? PORTABLE-WATER,BUCKET \?ELS62
CALL DESCRIBE-WATER-LEVEL
PRINTR "."
?ELS62: FIRST? BUCKET \?ELS64
PRINTI "contains"
CALL DESCRIBE-NOTHING
ZERO? STACK \TRUE
RTRUE
?ELS64: PRINTR "it's empty."
?ELS57: ZERO? FULL? /?ELS71
EQUAL? PRSA,V?THROW \?ELS71
CALL PERFORM,V?DROP,PORTABLE-WATER
MOVE BUCKET,HERE
RTRUE
?ELS71: EQUAL? PRSA,V?STAND-ON \?ELS75
PRINTR "It wouldn't be a very elevating experience."
?ELS75: EQUAL? PRSA,V?DRINK-FROM,V?DRINK \?ELS77
ZERO? FULL? /?ELS82
CALL PERFORM,V?DRINK,WATER
RTRUE
?ELS82: CALL EMPTY-BUCKET
RSTACK
?ELS77: EQUAL? PRSA,V?EMPTY,V?POUR \?ELS87
ZERO? FULL? /?ELS92
CALL PERFORM,V?EMPTY,PORTABLE-WATER
RTRUE
?ELS92: CALL EMPTY-BUCKET
RSTACK
?ELS87: EQUAL? PRSA,V?PUT \?ELS97
EQUAL? PRSI,BUCKET \?ELS97
ZERO? BUCKET-PEG /?ELS104
PRINT PEG-IN-WAY
RTRUE
?ELS104: EQUAL? PRSO,WATER,PORTABLE-WATER \?ELS107
CALL PERFORM,V?FILL,BUCKET,WATER
RTRUE
?ELS107: ZERO? FULL? /FALSE
PRINTI "But"
CALL TPRINT,PRSO
PRINTR " would get all wet."
?ELS97: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
CALL CANT-OPEN-CLOSE
RSTACK
.FUNCT DESCRIBE-WATER-LEVEL
PRINTI "is "
GRTR? AMOUNT-OF-WATER,21 \?ELS3
PRINTI "full"
JUMP ?CND1
?ELS3: GRTR? AMOUNT-OF-WATER,13 \?ELS5
PRINTI "more than half full"
JUMP ?CND1
?ELS5: GRTR? AMOUNT-OF-WATER,11 \?ELS7
PRINTI "about half full"
JUMP ?CND1
?ELS7: GRTR? AMOUNT-OF-WATER,3 \?ELS9
PRINTI "less than half full"
JUMP ?CND1
?ELS9: PRINTI "nearly empty"
?CND1: PRINTI " of water"
RTRUE
.FUNCT I-DRIP
CALL QUEUE,I-DRIP,-1
DEC 'AMOUNT-OF-WATER
IN? BUCKET,POND /?THN8
IN? BUCKET,PLAYER \?ELS3
EQUAL? HERE,INLET,ON-POOL-1,IN-POOL-1 /?THN8
EQUAL? HERE,UNDERPASS-1,UNDERPASS-2,IN-POOL-2 /?THN8
EQUAL? HERE,ON-POOL-2 \?ELS3
?THN8: SET 'AMOUNT-OF-WATER,26
RFALSE
?ELS3: ZERO? AMOUNT-OF-WATER \?CND1
FCLEAR PORTABLE-WATER,NDESCBIT
REMOVE PORTABLE-WATER
CALL DEQUEUE,I-DRIP
?CND1: CALL VISIBLE?,BUCKET
ZERO? STACK /?CND12
ZERO? LIT /?CND12
CRLF
PRINTI "The water "
EQUAL? AMOUNT-OF-WATER,25 \?ELS19
PRINTI "begin"
JUMP ?CND17
?ELS19: PRINTI "continue"
?CND17: PRINTI "s to dribble out of"
CALL TPRINT,BUCKET
PRINTC 46
ZERO? AMOUNT-OF-WATER \?ELS24
PRINTI " The bucket is now pretty much empty."
JUMP ?CND22
?ELS24: EQUAL? AMOUNT-OF-WATER,6,12,18 \?CND22
PRINTI " The bucket is now around "
EQUAL? AMOUNT-OF-WATER,18 \?ELS29
PRINTI "three-quarters"
JUMP ?CND27
?ELS29: EQUAL? AMOUNT-OF-WATER,12 \?ELS31
PRINTI "half"
JUMP ?CND27
?ELS31: PRINTI "one-quarter"
?CND27: PRINTI " full."
?CND22: CRLF
?CND12: FSET? BUCKET,BUCKET-PEG-DOWN-BIT \?CND34
LESS? AMOUNT-OF-WATER,10 \?CND34
CALL VISIBLE?,BUCKET
ZERO? STACK /?CND39
PRINTI "Suddenly"
CALL TPRINT,BUCKET-PEG
PRINTI " pops back into its original 45-degree position. "
?CND39: CALL ELEVATOR-OPERATOR,BUCKET-PEG
FCLEAR BUCKET,BUCKET-PEG-DOWN-BIT
RTRUE
?CND34: CALL VISIBLE?,BUCKET
ZERO? STACK \TRUE
RFALSE
.FUNCT EMPTY-BUCKET,OBJ
FIRST? BUCKET >OBJ \?ELS5
EQUAL? PRSA,V?DRINK-FROM \?ELS10
CALL PERFORM,V?DRINK,OBJ
RTRUE
?ELS10: NEXT? OBJ \?ELS15
PRINTI "The contents of the "
CALL DPRINT,BUCKET
PRINTI " fall"
JUMP ?CND13
?ELS15: PRINTI "Okay,"
CALL TPRINT,OBJ
PRINTI " falls"
?CND13: CALL ROB,BUCKET,HERE
PRINTR " out of it."
?ELS5: PRINTR "It's empty."
.FUNCT NOT-HOLDING-WATER?
IN? PORTABLE-WATER,BUCKET /FALSE
PRINTR "You're not carrying any water."
.FUNCT SHAFT-BOTTOM-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "You're standing at the bottom of a shaft. The door to the north is "
FSET? CELLAR-CD,OPENBIT \?ELS8
PRINTI "open"
JUMP ?CND6
?ELS8: PRINTI "closed"
?CND6: PRINTC 46
RTRUE
.FUNCT CLOSET-TOP-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "You're standing in a shaft on top of the closet. The door to the north is "
CALL WHICH-DOOR?
FSET? STACK,OPENBIT \?ELS8
PRINTI "open"
JUMP ?CND6
?ELS8: PRINTI "closed"
?CND6: PRINTC 46
RTRUE
.FUNCT CLOSET-TOP-EXIT,DOOR
CALL WHICH-DOOR? >DOOR
FSET? DOOR,OPENBIT /?ELS5
CALL THIS-IS-IT,DOOR
CALL ITS-CLOSED,DOOR
RFALSE
?ELS5: EQUAL? CLOSET-FLOOR,CELLAR \?ELS7
RETURN FOYER
?ELS7: EQUAL? CLOSET-FLOOR,FOYER \?ELS9
RETURN UPSTAIRS-HALL-MIDDLE
?ELS9: RETURN ATTIC
.FUNCT ATTIC-CD-F
EQUAL? PRSA,V?OPEN \FALSE
FSET? ATTIC-CD,OPENBIT /FALSE
EQUAL? CLOSET-FLOOR,ATTIC /FALSE
EQUAL? HERE,ATTIC \FALSE
CALL OPEN-DOOR-TO-SHAFT
FSET ATTIC-CD,OPENBIT
RTRUE
.FUNCT ATTIC-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is a dusty old attic with cobwebs hanging from the ceiling rafters. The attic is empty except for"
CALL APRINT,TRUNK
FSET? ATTIC-DOOR,OPENBIT \?ELS8
PRINTI ". A ladder leads down through an opening"
JUMP ?CND6
?ELS8: PRINTI " and a folding ladder attached to a panel"
?CND6: PRINTI " in the floor. To the south there is a"
FSET? ATTIC-CD,OPENBIT \?ELS13
PRINTI "n open"
JUMP ?CND11
?ELS13: PRINTI " closed"
?CND11: PRINTI " door."
RTRUE
.FUNCT TO-&-FROM-ATTIC
FSET? ATTIC-DOOR,OPENBIT \?ELS5
FSET? SKIS,WORNBIT \?ELS10
PRINTI "You can't fit through the opening wearing the skis."
CRLF
RFALSE
?ELS10: EQUAL? HERE,ATTIC \?ELS17
RETURN UPSTAIRS-HALL-MIDDLE
?ELS17: RETURN ATTIC
?ELS5: PRINTI "The "
CALL DPRINT,ATTIC-DOOR
PRINTI " is closed."
CRLF
RFALSE
.FUNCT ATTIC-CLOSET-ENTER-F
FSET? ATTIC-CD,OPENBIT /?ELS5
CALL ITS-CLOSED,ATTIC-CD
RFALSE
?ELS5: EQUAL? CLOSET-FLOOR,UPSTAIRS-HALL-MIDDLE \?ELS7
RETURN CLOSET-TOP
?ELS7: EQUAL? CLOSET-FLOOR,FOYER \?ELS9
PRINTI "You enter the shaft and plunge down a floor. A bit shaken, you find yourself at..."
CRLF
CRLF
RETURN CLOSET-TOP
?ELS9: CALL JIGS-UP,STR?217
RSTACK
.FUNCT TRUNK-F
EQUAL? PRSA,V?OPEN \?ELS5
FSET? TRUNK,TRUNK-LOCKED-BIT \?ELS5
PRINTR "It won't budge."
?ELS5: EQUAL? PRSA,V?MOVE,V?TAKE \FALSE
EQUAL? PRSO,TRUNK \FALSE
PRINT SPINACH
CRLF
RTRUE
.FUNCT FIRE-HYDRANT-F
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "Don't you recognize it? It's a prop "
CALL DPRINT,FIRE-HYDRANT
PRINTR " from ""Atomic Chihuahuas From Hell."" Uncle Buddy took a lot of heat for that film when two unlikely special interest groups, the Institute for Nuclear Power and the American Chihuahua Breeders Association, joined forces in an effort to have the film banned."
.FUNCT ATTIC-DOOR-F
EQUAL? PRSA,V?LOWER,V?OPEN,V?PUSH-DOWN /?THN8
EQUAL? PRSA,V?PUSH,V?PULL \?ELS5
?THN8: FSET? ATTIC-DOOR,OPENBIT /?ELS5
EQUAL? HERE,UPSTAIRS-HALL-MIDDLE \?ELS14
PRINTR "It won't budge from this side."
?ELS14: FSET ATTIC-DOOR,OPENBIT
FCLEAR ATTIC-DOOR,LOCKEDBIT
PRINTI "The panel in the floor drops downward and the ladder unfolds as it swings down into the upstairs hallway."
FSET? TRUNK,OPENBIT /?CND17
FCLEAR TRUNK,TRUNK-LOCKED-BIT
PRINTI " At the same time you hear a click from under"
CALL TPRINT,TRUNK
PRINTI "'s lid."
?CND17: CRLF
RTRUE
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
FSET? ATTIC-DOOR,OPENBIT \?ELS26
PRINTR "The ladder hangs from an open panel in the ceiling, extended to the floor of the upstairs hallway."
?ELS26: EQUAL? HERE,ATTIC \FALSE
PRINTR "The wooden ladder is folded in thirds, with the first third attached to a panel in the floor."
.FUNCT AUNT-F
EQUAL? AUNT,WINNER \?ELS5
PRINTI """Shut up and get me off this buzz saw!"""
CRLF
CALL PCLEAR
RSTACK
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7
PRINTR "She's strapped to the conveyor belt and moving closer to the buzz saw's spinning blade."
?ELS7: EQUAL? PRSA,V?CUT \?ELS9
EQUAL? PRSI,SWORD \?ELS9
CALL PERFORM,V?LAMP-OFF,SAW
RTRUE
?ELS9: EQUAL? PRSA,V?LET-GO,V?RESCUE,V?UNTIE \FALSE
EQUAL? PRSO,AUNT \FALSE
CALL PERFORM,V?LAMP-OFF,SAW
RTRUE
.FUNCT HERMAN-F
EQUAL? PRSA,V?TELL /?THN6
EQUAL? PRSA,V?ASK-ABOUT \?ELS5
EQUAL? PRSO,HERMAN \?ELS5
?THN6: PRINTI "Herman never was the talkative type."
CRLF
CALL PCLEAR
RSTACK
?ELS5: EQUAL? PRSA,V?KILL \?ELS11
ZERO? PRSI \?ELS11
FIRST? PLAYER \?ELS18
PRINTI "[with the "
FIRST? PLAYER /?KLU29
?KLU29: CALL DPRINT,STACK
PRINTC 93
CRLF
FIRST? PLAYER /?KLU30
?KLU30: CALL PERFORM,V?KILL,HERMAN,STACK
RTRUE
?ELS18: PRINTR "You slug Herman in the gut. It feels good after all these years."
?ELS11: EQUAL? PRSA,V?PUSH \?ELS22
EQUAL? PRSO,HERMAN \?ELS22
PRINTR "He pushes you right back."
?ELS22: EQUAL? PRSA,V?EXAMINE \?ELS26
PRINTR "It's Cousin Herman all right. A little older and a little chubbier. He still wears Batman slip-on tennis shoes."
?ELS26: EQUAL? PRSA,V?KICK,V?BITE \FALSE
PRINTR """%*&@#!,"" shouts Herman at the top of his lungs. You are aghast at Herman's profanity in the presence of your Aunt Hildegarde."
.FUNCT PROP-F,HERMAN-THING,PLAYER-THING
FIRST? HERMAN >HERMAN-THING /?KLU53
?KLU53: FIRST? PLAYER >PLAYER-THING /?KLU54
?KLU54:
?PRG1: ZERO? PLAYER-THING /?REP2
EQUAL? PLAYER-THING,TOUPEE,MASK,RING \?REP2
NEXT? PLAYER-THING >PLAYER-THING /?PRG1
JUMP ?PRG1
?REP2: EQUAL? PRSA,V?TAKE \?ELS14
EQUAL? PRSO,HERMAN-THING \?ELS19
PRINTI "You reach for"
CALL TPRINT,HERMAN-THING
PRINTI ", but "
CALL DPRINT,HERMAN
PRINTR " twists away from you."
?ELS19: ZERO? PLAYER-THING /?ELS21
PRINTI "You're already armed with"
CALL ARPRINT,PLAYER-THING
RSTACK
?ELS21: CALL PICK-REMOVE,PRSO,PROPS
RFALSE
?ELS14: EQUAL? PRSA,V?THROW,V?SHOOT \?ELS26
EQUAL? PRSI,HERMAN \?ELS26
CALL PERFORM,V?KILL,HERMAN,PRSO
RTRUE
?ELS26: EQUAL? PRSA,V?CUT,V?KILL \FALSE
EQUAL? PRSO,HERMAN \FALSE
INC 'HERMAN-HITS
ZERO? HERMAN-DOWN /?ELS37
CALL DEQUEUE,I-AUNT
PRINTI "With the hate of all those summers of his bullying built up, you let Herman have it with"
CALL TPRINT,PLAYER-THING
PRINTI ", killing him. At the same time you hear a scream not unlike one you would hear in an Uncle Buddy movie. As the tone of the saw blade changes you realize your Aunt Hildegarde has just taken her final bow. You stand and cry for a few minutes remembering the good times with your aunt and wishing you had done more to save her.
Later you find your way out of the prop vault. You go next door to Johnny's and call the police. Unfortunately it never occurred to you that with two dead bodies involved they wouldn't believe your story."
CRLF
CALL FINISH
RSTACK
?ELS37: EQUAL? HERMAN-HITS,3 \?ELS40
SET 'HERMAN-DOWN,TRUE-VALUE
SET 'AUNT-COUNT,6
CALL QUEUE,I-AUNT,2
CALL DEQUEUE,I-HERMAN-ATTACK
PRINTI "You "
EQUAL? PLAYER-THING,GUN \?ELS43
PRINTI "fire"
CALL TPRINT,GUN
PRINTI " hitting him in the shoulder."
JUMP ?CND41
?ELS43: PRINTI "give it your best, striking Herman."
?CND41: PRINTR " He drops to the ground. (Hmm, guess that wasn't a prop after all.) Slowly, he starts to come to his feet. The saw blade is less than an inch from the blue-gray hairs of Aunt Hildegarde's head!"
?ELS40: PRINTI "You "
EQUAL? PLAYER-THING,GUN \?ELS50
PRINTI "fire"
CALL TPRINT,GUN
PRINTI ", blasting Herman with smooth and creamy whipped cream. You toss the gun away in disgust. It sails into the chute."
CRLF
JUMP ?CND48
?ELS50: PRINTI "give it your best, striking Herman. The "
CALL DPRINT,PLAYER-THING
PRINTI " breaks into a hundred pieces. It was only a prop."
CRLF
?CND48: REMOVE PLAYER-THING
RTRUE
.FUNCT I-AUNT
CALL QUEUE,I-AUNT,1
INC 'AUNT-COUNT
EQUAL? AUNT-COUNT,7 \?ELS5
CRLF
PRINTI "You hear what sounds like an old woman being run through a buzz saw. Suddenly you realize -- that old woman was your Aunt Hildegarde. Cousin Herman stares at the saw blade in horror then turns and dives into the chute, disappearing. You stand there as the blade continues to cut, wishing you had done more to save her.
Later you find your way out of the prop vault. You go next door to Johnny's and call the police. When they arrive they have a difficult time believing your story. You're advised to call a good lawyer."
CRLF
CALL FINISH
RSTACK
?ELS5: CRLF
PRINTI "Your Aunt Hildegarde, strapped to the conveyor belt, is "
GET AUNT-DISTANCE,AUNT-COUNT
PRINT STACK
PRINTI " the saw blade. "
ZERO? HERMAN-HITS /?ELS10
EQUAL? AUNT-COUNT,1 \?ELS14
PRINTI """Herman, dear, please turn off the buzz saw and untie me,"" says Aunt Hildegarde politely."
JUMP ?CND8
?ELS14: EQUAL? AUNT-COUNT,2 \?ELS16
PRINTI """Herman, that's no way to treat your cousin,"" admonishes Aunt Hildegarde."
JUMP ?CND8
?ELS16: EQUAL? AUNT-COUNT,3 \?ELS18
PRINTI """I'm just glad your Uncle Buddy isn't alive to see this,"" says Aunt Hildegarde with resignation."
JUMP ?CND8
?ELS18: EQUAL? AUNT-COUNT,4 \?ELS20
PRINTI """Herman, enough is enough. You are in big trouble, buster. Pumpkin, untie me then run and get your Uncle Buddy's belt,"" orders Aunt Hildegarde."
JUMP ?CND8
?ELS20: EQUAL? AUNT-COUNT,5 \?ELS22
PRINTI """Now you two stop that horseplay and get me off this contraption,"" demands Aunt Hildegarde."
JUMP ?CND8
?ELS22: EQUAL? AUNT-COUNT,6 \?CND8
PRINTI """Pumpkin! Help!"" screams Aunt Hildegarde over the roar of the buzz saw."
JUMP ?CND8
?ELS10: PRINTI """Herman, stop this silly game this instant and untie me,"" demands Aunt Hildegarde."
?CND8: CRLF
RTRUE
.FUNCT SAW-F,HERMAN-THING
FIRST? HERMAN >HERMAN-THING /?KLU21
?KLU21: EQUAL? PRSA,V?LAMP-OFF \?ELS5
ZERO? HERMAN-DOWN /?ELS10
ADD SCORE,20 >SCORE
PRINTI "The conveyor belt stops and the buzz saw's blade begins to slow. As you untie your Aunt Hildegarde, Herman races toward the chute and jumps inside, disappearing. You hear his squeaky laugh trail off in the distance. Aunt Hildegarde gets up from the buzz saw rubbing the back of her head. Though a bit shaken, she explains she had been watching you while you searched for the ""treasures.""
""As I followed your progress I began to realize you and I were not the only ones on the estate. My suspicions were confirmed when I received a rap on the skull. The next thing I knew I was being tied to this buzz saw by your Cousin Herman,"" says Aunt Hildegarde. ""I guess he couldn't stand to see you inherit the family fortune. Well, it's all yours now. I knew you could do it,"" says Aunt Hildegarde with satisfaction.
""I'm sorry I put you through all this, Pumpkin, but your Uncle Buddy and I had to be sure that whoever inherited the estate and the studio would be clever enough to handle it all. The only way I could be sure the stipulations in my will would be carried out would be to oversee it myself, so I faked my death,"" says Aunt Hildegarde, hugging you so tight she squeezes the air out of your lungs. ""Tomorrow we'll go see my lawyer and he'll take care of all the paper work. I know you'll take good care of Hildebud and the studio. As for me, I'm sure it won't be long before the press discovers I'm alive. I plan to go to the south of France for a rest while the story leaks out. It will be great publicity for the studio,"" says Aunt Hildegarde. Then she adds, ""And let's hope we've seen the last of your Cousin Herman."""
CRLF
CALL FINISH
RSTACK
?ELS10: ZERO? HERMAN-THING /?ELS13
REMOVE HERMAN-THING
PRINTI "Cousin Herman hits you with"
CALL TPRINT,HERMAN-THING
PRINTI ", driving you away from the buzz saw. The "
CALL DPRINT,HERMAN-THING
PRINTR " crumbles; it was only a prop."
?ELS13: PRINTR "Cousin Herman slugs you in the stomach, pushing you away from the buzz saw."
?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS18
PRINTI "It's already turned on!"
RTRUE
?ELS18: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "It's a large, steel blade that seems to spin faster as Aunt Hildegarde moves closer to it."
.FUNCT I-HERMAN-ATTACK,NEXT-PROP,FOO,HERMAN-THING
FIRST? HERMAN >HERMAN-THING /?KLU23
?KLU23: CALL QUEUE,I-HERMAN-ATTACK,-1
ZERO? HERMAN-THING /?ELS5
REMOVE HERMAN-THING
CRLF
PRINTI "Cousin Herman "
EQUAL? HERMAN-THING,GUN \?ELS9
PRINTI "fires"
JUMP ?CND7
?ELS9: EQUAL? HERMAN-THING,BAG \?ELS11
PRINTI "throws"
JUMP ?CND7
?ELS11: PRINTI "swings"
?CND7: PRINTI " the "
CALL DPRINT,HERMAN-THING
PRINTI ", "
EQUAL? HERMAN-THING,GUN \?ELS18
PRINTR "covering you with whipped cream. Herman tosses the gun in the chute."
?ELS18: PRINTI "striking you. The "
CALL DPRINT,HERMAN-THING
PRINTR " crumbles; it was only a prop."
?ELS5: CALL PICK-ONE,PROPS
MOVE STACK,HERMAN
FIRST? HERMAN >HERMAN-THING /?KLU24
?KLU24: CRLF
PRINTI "Cousin Herman grabs the "
CALL DPRINT,HERMAN-THING
PRINTR "."
.ENDI