652 lines
16 KiB
Plaintext
652 lines
16 KiB
Plaintext
|
|
|
|
.FUNCT CLEVELAND-OBJECT-F
|
|
EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5
|
|
EQUAL? HERE,CLEVELAND \?ELS10
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS10: EQUAL? HERE,LAWN \FALSE
|
|
CALL DO-WALK,P?NORTH
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS14
|
|
EQUAL? HERE,CLEVELAND \?ELS19
|
|
CALL V-WALK-AROUND
|
|
RSTACK
|
|
?ELS19: PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS14: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
CALL V-LOOK
|
|
RSTACK
|
|
|
|
|
|
.FUNCT LAWN-F,RARG
|
|
EQUAL? RARG,M-LOOK \?ELS5
|
|
PRINTI "Yes, ""Lawn"" is the kindest word for this muddy patch of limp crabgrass. "
|
|
FSET? RAKE,TRYTAKEBIT \?CND6
|
|
FSET? SACK,TRYTAKEBIT \?CND6
|
|
PRINTI "Miraculously, someone actually seems to "
|
|
ZERO? NAUGHTY-LEVEL \?ELS13
|
|
PRINTI "care"
|
|
JUMP ?CND11
|
|
?ELS13: PRINTI "give a "
|
|
EQUAL? NAUGHTY-LEVEL,1 \?ELS18
|
|
PRINTI "damn"
|
|
JUMP ?CND11
|
|
?ELS18: PRINTI "shit"
|
|
?CND11: PRINTI " about this lawn, because there are signs of recent activity:"
|
|
CALL APRINT,RAKE
|
|
PRINTI " and a large "
|
|
PRINTD SACK
|
|
PRINTI ". "
|
|
?CND6: PRINTI "A fence rings the lawn; through an opening to the north you can see Cleveland."
|
|
RTRUE
|
|
?ELS5: EQUAL? RARG,M-END \FALSE
|
|
FCLEAR RAKE,TRYTAKEBIT
|
|
FCLEAR SACK,TRYTAKEBIT
|
|
FCLEAR RAKE,NDESCBIT
|
|
FCLEAR SACK,NDESCBIT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FENCE-F
|
|
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB,V?LOOK-OVER /?THN6
|
|
EQUAL? PRSA,V?CLIMB-OVER \?ELS5
|
|
?THN6: PRINTR "It's too tall."
|
|
?ELS5: EQUAL? PRSA,V?PUT-AGAINST \FALSE
|
|
EQUAL? PRSO,TRELLIS \FALSE
|
|
CALL PERFORM-PRSA,TRELLIS,HOUSE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT LAWN-OBJECT-F
|
|
EQUAL? PRSA,V?RAKE \?ELS5
|
|
PRINTR "It's already raked."
|
|
?ELS5: EQUAL? PRSA,V?CLIMB,V?CLIMB-ON,V?CLIMB-UP /?THN8
|
|
EQUAL? PRSA,V?LOOK-UNDER,V?BOARD \?ELS7
|
|
?THN8: CALL PERFORM-PRSA,GROUND,PRSI
|
|
RTRUE
|
|
?ELS7: EQUAL? PRSA,V?PUT-ON \?ELS11
|
|
EQUAL? PRSI,PSEUDO-OBJECT \?ELS11
|
|
CALL PERFORM,V?DROP,PRSO
|
|
RTRUE
|
|
?ELS11: EQUAL? PRSA,V?SEARCH \?ELS15
|
|
PRINT NOTHING-NEW
|
|
RTRUE
|
|
?ELS15: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
CALL V-LOOK
|
|
RSTACK
|
|
|
|
|
|
.FUNCT LEAVES-F
|
|
EQUAL? PRSA,V?ENTER \?ELS5
|
|
CALL ULTIMATELY-IN?,LEAVES
|
|
ZERO? STACK /?ELS10
|
|
PRINT HOLDING-IT
|
|
RTRUE
|
|
?ELS10: CALL WEE
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?TAKE \?ELS14
|
|
CALL PRE-TOUCH
|
|
ZERO? STACK \TRUE
|
|
PRINT YOU-CANT
|
|
PRINTR "hold so many leaves in your arms!"
|
|
?ELS14: EQUAL? PRSA,V?RAKE \?ELS19
|
|
PRINTI "They're already in a "
|
|
IN? LEAVES,SACK \?ELS22
|
|
PRINTD SACK
|
|
JUMP ?CND20
|
|
?ELS22: PRINTI "pile"
|
|
?CND20: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS19: EQUAL? PRSA,V?COUNT \?ELS26
|
|
PRINTR "69,105."
|
|
?ELS26: EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH \?ELS28
|
|
PRINTR "You find ... more leaves!"
|
|
?ELS28: EQUAL? PRSA,V?POUR \?ELS30
|
|
EQUAL? PRSO,LEAVES \?ELS30
|
|
CALL ULTIMATELY-IN?,LEAVES
|
|
ZERO? STACK /?ELS37
|
|
EQUAL? PRSI,WINDOW \?ELS42
|
|
CALL PERFORM,V?PUT-THROUGH,LEAVES,WINDOW
|
|
RTRUE
|
|
?ELS42: CALL PERFORM,V?PUT,LEAVES,PRSI
|
|
RTRUE
|
|
?ELS37: PRINT YNH
|
|
CALL TRPRINT,LEAVES
|
|
RSTACK
|
|
?ELS30: EQUAL? PRSA,V?PUT,V?PUSH \?ELS52
|
|
EQUAL? PRSI,SACK /?THN49
|
|
?ELS52: EQUAL? PRSA,V?FILL \?ELS48
|
|
EQUAL? PRSO,SACK \?ELS48
|
|
?THN49: CALL UNTOUCHABLE?,LEAVES
|
|
ZERO? STACK /?ELS57
|
|
CALL CANT-REACH,LEAVES
|
|
RTRUE
|
|
?ELS57: IN? LEAVES,SACK /FALSE
|
|
?CND55: FCLEAR LEAVES,TRYTAKEBIT
|
|
SET 'LEAVES-PLACED,FALSE-VALUE
|
|
FSET TREE-HOLE,OPENBIT
|
|
FCLEAR LEAVES,NDESCBIT
|
|
MOVE LEAVES,SACK
|
|
PRINTR "Done."
|
|
?ELS48: EQUAL? PRSA,V?MOVE \?ELS61
|
|
ZERO? LEAVES-PLACED /?ELS61
|
|
FCLEAR LEAVES,TRYTAKEBIT
|
|
SET 'LEAVES-PLACED,FALSE-VALUE
|
|
FSET TREE-HOLE,OPENBIT
|
|
FCLEAR LEAVES,NDESCBIT
|
|
MOVE LEAVES,HERE
|
|
PRINTR "You uncover the trellis."
|
|
?ELS61: EQUAL? PRSA,V?LOOK-UNDER \?ELS65
|
|
ZERO? LEAVES-PLACED /?ELS65
|
|
CALL TRELLIS-VISIBLE
|
|
CRLF
|
|
RTRUE
|
|
?ELS65: EQUAL? PRSA,V?EMPTY \?ELS69
|
|
EQUAL? PRSO,LEAVES \?ELS69
|
|
IN? LEAVES,SACK \?ELS69
|
|
CALL PERFORM,V?DROP,LEAVES
|
|
RTRUE
|
|
?ELS69: EQUAL? PRSA,V?BOARD,V?CLIMB-ON,V?STAND-ON \FALSE
|
|
ZERO? LEAVES-PLACED /FALSE
|
|
CALL PERFORM,V?STAND-ON,TRELLIS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT GARDEN-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "The house opens onto a fragrant garden! A piece of sod has been "
|
|
FSET? SOD,MUNGBIT \?ELS8
|
|
PRINTI "rolled aside, revealing"
|
|
CALL APRINT,HOLE
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "recently planted"
|
|
?CND6: PRINTI ", and a clump of yellow, bulbous flowers grows nearby."
|
|
FSET? TRELLIS,TRYTAKEBIT \?CND11
|
|
PRINTI " The flowers barely reach the trellis which rises behind them."
|
|
?CND11: PRINTI " You can re-enter the house to the west."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FLOWERS-F
|
|
EQUAL? PRSA,V?SMELL \?ELS5
|
|
CALL PERFORM-PRSA,ODOR
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?MUNG,V?TAKE,V?PICK \FALSE
|
|
PRINTR "That would be the act of a philistine."
|
|
|
|
|
|
.FUNCT SOD-F
|
|
EQUAL? PRSA,V?TAKE \?ELS5
|
|
CALL EXAMINE-SOD,TRUE-VALUE
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?PUSH,V?ROLL,V?MOVE \?ELS7
|
|
FSET? SOD,MUNGBIT \?ELS12
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?ELS12: FSET SOD,MUNGBIT
|
|
CALL THIS-IS-IT,HOLE
|
|
PRINTI "Moving the sod reveals"
|
|
CALL ARPRINT,HOLE
|
|
RSTACK
|
|
?ELS7: EQUAL? PRSA,V?PUT-ON \?ELS20
|
|
EQUAL? PRSI,HOLE /?THN17
|
|
?ELS20: EQUAL? PRSA,V?UNROLL \?ELS16
|
|
?THN17: FSET? SOD,MUNGBIT \?ELS25
|
|
FCLEAR SOD,MUNGBIT
|
|
PRINTI "You re-cover"
|
|
CALL TRPRINT,HOLE
|
|
RSTACK
|
|
?ELS25: PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS16: EQUAL? PRSA,V?LOOK-UNDER,V?RAISE \?ELS29
|
|
FSET? SOD,MUNGBIT /?ELS29
|
|
PRINTR "You lift a corner. Before the sod drops back to the ground, you notice something dark."
|
|
?ELS29: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
CALL EXAMINE-SOD
|
|
RSTACK
|
|
|
|
|
|
.FUNCT EXAMINE-SOD,TAKING=0
|
|
PRINTI "Although the sod hasn't taken root yet, it"
|
|
ZERO? TAKING /?ELS3
|
|
PRINTI "'"
|
|
JUMP ?CND1
|
|
?ELS3: PRINTI " look"
|
|
?CND1: PRINTR "s too heavy to carry."
|
|
|
|
|
|
.FUNCT TRELLIS-F,OARG=0
|
|
ZERO? OARG /?ELS5
|
|
FSET? TRELLIS,MUNGBIT \FALSE
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " "
|
|
CALL DESCRIBE-TRELLIS-ON-HOLE
|
|
RSTACK
|
|
?ELS5: FSET? TRELLIS,UNTEEDBIT /FALSE
|
|
EQUAL? PRSA,V?PUT,V?PUT-ON \?ELS20
|
|
EQUAL? PRSO,LEAVES \?ELS20
|
|
FSET? TRELLIS,MUNGBIT \?ELS20
|
|
IN? LEAVES,TREE-HOLE \?ELS27
|
|
CALL CANT-REACH,LEAVES
|
|
RSTACK
|
|
?ELS27: SET 'LEAVES-PLACED,TRUE-VALUE
|
|
FCLEAR TREE-HOLE,OPENBIT
|
|
FSET LEAVES,NDESCBIT
|
|
FSET LEAVES,TRYTAKEBIT
|
|
MOVE LEAVES,TRELLIS
|
|
PRINTR "The leaves cover the trellis."
|
|
?ELS20: EQUAL? PRSA,V?PUT-ON \?ELS31
|
|
EQUAL? PRSI,TREE-HOLE \?ELS31
|
|
FSET? TRELLIS,MUNGBIT \?ELS38
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?ELS38: IN? LEAVES,TRELLIS \?CND41
|
|
SET 'LEAVES-PLACED,TRUE-VALUE
|
|
FCLEAR TREE-HOLE,OPENBIT
|
|
FSET LEAVES,NDESCBIT
|
|
FSET LEAVES,TRYTAKEBIT
|
|
?CND41: MOVE TRELLIS,HERE
|
|
FSET TRELLIS,TRYTAKEBIT
|
|
FSET TRELLIS,MUNGBIT
|
|
PRINTR "The trellis barely spans the hole."
|
|
?ELS31: EQUAL? PRSA,V?TAKE \?ELS45
|
|
FSET? TRELLIS,TRYTAKEBIT \?ELS45
|
|
CALL UNTOUCHABLE?,TRELLIS
|
|
ZERO? STACK \?ELS45
|
|
CALL UNDO-TRAP
|
|
RFALSE
|
|
?ELS45: EQUAL? PRSA,V?CLIMB-ON,V?CLIMB \?ELS49
|
|
EQUAL? HERE,GARDEN \?ELS49
|
|
FSET? TRELLIS,TRYTAKEBIT \?ELS49
|
|
CALL UNDO-TRAP
|
|
PRINTR "It falls over."
|
|
?ELS49: EQUAL? PRSA,V?REMOVE,V?MOVE \?ELS53
|
|
FSET? TRELLIS,MUNGBIT \?ELS53
|
|
CALL UNDO-TRAP
|
|
PRINTR "You uncover the hole."
|
|
?ELS53: EQUAL? PRSA,V?PUT-AGAINST \?ELS57
|
|
EQUAL? PRSI,HOUSE \?ELS57
|
|
PRINTR "The trellis is too flimsy to climb."
|
|
?ELS57: EQUAL? PRSA,V?LOOK-INSIDE \?ELS61
|
|
GET P-ITBL,P-PREP1
|
|
EQUAL? STACK,PR?THROUGH \?ELS61
|
|
CALL V-LOOK
|
|
RSTACK
|
|
?ELS61: EQUAL? PRSA,V?MEASURE \?ELS65
|
|
PRINTR "It's six or seven feet wide."
|
|
?ELS65: EQUAL? PRSA,V?EXAMINE \?ELS67
|
|
ZERO? LEAVES-PLACED /?ELS67
|
|
FCLEAR LEAVES,NDESCBIT
|
|
CALL V-EXAMINE
|
|
FSET LEAVES,NDESCBIT
|
|
RTRUE
|
|
?ELS67: EQUAL? PRSA,V?EXAMINE \?ELS71
|
|
FIRST? TRELLIS /?ELS71
|
|
PRINTR "The trellis is a tight lattice of white wood. Though slightly wider at the top, it is approximately square in shape."
|
|
?ELS71: EQUAL? PRSA,V?PUT \?ELS75
|
|
EQUAL? PRSI,TREE-HOLE \?ELS75
|
|
PRINT TRELLIS-TOO-WIDE
|
|
RTRUE
|
|
?ELS75: EQUAL? PRSA,V?BOARD,V?STAND-ON \FALSE
|
|
FSET? TRELLIS,MUNGBIT \FALSE
|
|
CALL ROB,TRELLIS,TREE-HOLE
|
|
REMOVE TRELLIS
|
|
MOVE PROTAGONIST,TREE-HOLE
|
|
PRINTI "Crash! You"
|
|
CALL AND-SIDEKICK,TREE-HOLE
|
|
CALL UNDO-TRAP
|
|
PRINTR " are now in the hole, along with some splinters."
|
|
|
|
|
|
.FUNCT TRELLIS-VISIBLE
|
|
PRINTI "The edge of a trellis is just visible under"
|
|
CALL APRINT,LEAVES
|
|
PRINTI "."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DESCRIBE-TRELLIS-ON-HOLE
|
|
ZERO? LEAVES-PLACED /?ELS5
|
|
CALL TRELLIS-VISIBLE
|
|
RSTACK
|
|
?ELS5: PRINTI "A trellis covers the hole."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT UNDO-TRAP
|
|
ZERO? LEAVES-PLACED /?CND1
|
|
SET 'LEAVES-PLACED,FALSE-VALUE
|
|
FCLEAR LEAVES,TRYTAKEBIT
|
|
FCLEAR LEAVES,NDESCBIT
|
|
?CND1: FSET TREE-HOLE,OPENBIT
|
|
FCLEAR TRELLIS,TRYTAKEBIT
|
|
FCLEAR TRELLIS,MUNGBIT
|
|
FCLEAR TRELLIS,NDESCBIT
|
|
FSET TRELLIS,OPENBIT
|
|
FSET TRELLIS,CONTBIT
|
|
FSET TRELLIS,SURFACEBIT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FIRST-FLOOR-F
|
|
EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5
|
|
EQUAL? HERE,BEDROOM \?ELS10
|
|
CALL DO-WALK,P?DOWN
|
|
RSTACK
|
|
?ELS10: EQUAL? HERE,TEENSY-WEENSY-HOUSE \FALSE
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS14
|
|
EQUAL? HERE,BEDROOM \?ELS19
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS19: CALL DO-WALK,P?UP
|
|
RSTACK
|
|
?ELS14: EQUAL? HERE,TEENSY-WEENSY-HOUSE \FALSE
|
|
EQUAL? PRSO,PSEUDO-OBJECT \?ELS28
|
|
CALL PERFORM-PRSA,GLOBAL-ROOM,PRSI
|
|
RTRUE
|
|
?ELS28: CALL PERFORM-PRSA,PRSO,GLOBAL-ROOM
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SECOND-FLOOR-F
|
|
EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5
|
|
EQUAL? HERE,TEENSY-WEENSY-HOUSE \?ELS10
|
|
CALL DO-WALK,P?UP
|
|
RSTACK
|
|
?ELS10: EQUAL? HERE,BEDROOM \FALSE
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS14
|
|
EQUAL? HERE,BEDROOM \?ELS19
|
|
CALL DO-WALK,P?DOWN
|
|
RSTACK
|
|
?ELS19: PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS14: EQUAL? HERE,BEDROOM \FALSE
|
|
EQUAL? PRSO,PSEUDO-OBJECT \?ELS28
|
|
CALL PERFORM-PRSA,GLOBAL-ROOM,PRSI
|
|
RTRUE
|
|
?ELS28: CALL PERFORM-PRSA,PRSO,GLOBAL-ROOM
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BEDROOM-EXIT-F,CALLED-BY-STAIRS-F=0
|
|
ZERO? SIDEKICK-TRIP-FLAG /?ELS5
|
|
CALL QUEUED?,I-SIDEKICK-OUT-WINDOW
|
|
ZERO? STACK /?ELS5
|
|
PRINTI "Just as you are about to..."
|
|
CRLF
|
|
RFALSE
|
|
?ELS5: ZERO? SHEET-HANGING /?ELS9
|
|
ZERO? CALLED-BY-STAIRS-F \?ELS9
|
|
PRINTI "Choice: You could climb down the stairs or the rope."
|
|
CRLF
|
|
RFALSE
|
|
?ELS9: RETURN TEENSY-WEENSY-HOUSE
|
|
|
|
|
|
.FUNCT BED-F
|
|
EQUAL? PRSA,V?MAKE \?ELS5
|
|
CALL V-CLEAN
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7
|
|
ZERO? SHEET-TIED \?THN10
|
|
FSET? SHEET,TRYTAKEBIT \?ELS7
|
|
?THN10: CALL SHEET-F,M-OBJDESC
|
|
FIRST? BED \?ELS16
|
|
FIRST? BED /?KLU34
|
|
?KLU34: EQUAL? STACK,SHEET \?ELS21
|
|
NEXT? SHEET /?ELS21
|
|
CRLF
|
|
RTRUE
|
|
?ELS21: PRINTI " "
|
|
RFALSE
|
|
?ELS16: CRLF
|
|
RTRUE
|
|
?ELS7: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS29
|
|
EQUAL? PRSO,STOOL,RAFT \?ELS29
|
|
CALL WASTES
|
|
RSTACK
|
|
?ELS29: EQUAL? PRSA,V?PUSH,V?MOVE \FALSE
|
|
PRINTR "The bed is too heavy to move."
|
|
|
|
|
|
.FUNCT SHEET-F,OARG=0
|
|
ZERO? OARG /?ELS5
|
|
ZERO? SHEET-TIED \?THN12
|
|
FSET? SHEET,TRYTAKEBIT \FALSE
|
|
?THN12: EQUAL? OARG,M-OBJDESC? /TRUE
|
|
EQUAL? PRSA,V?EXAMINE /?CND17
|
|
PRINTI " "
|
|
?CND17: ZERO? SHEET-TIED /?ELS24
|
|
PRINTI "A "
|
|
CALL DPRINT,SHEET
|
|
PRINTI " is tied to the bed"
|
|
ZERO? SHEET-HANGING /?CND26
|
|
PRINTI ", its other end out the window"
|
|
?CND26: PRINTI "."
|
|
RTRUE
|
|
?ELS24: PRINTI "The bed is unmade, with the sheet lying half on the floor."
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?MAKE \?ELS35
|
|
CALL NOUN-USED,W?ROPE,SHEET
|
|
ZERO? STACK /?ELS35
|
|
FSET? SHEET,MUNGBIT \?ELS42
|
|
CALL PERFORM,V?TIE-TOGETHER,SHEET
|
|
RTRUE
|
|
?ELS42: PRINTR "Be less general."
|
|
?ELS35: EQUAL? PRSA,V?MAKE-WITH,V?TIE \?ELS46
|
|
EQUAL? PRSO,PRSI \?ELS46
|
|
CALL PERFORM,V?TIE-TOGETHER,SHEET
|
|
RTRUE
|
|
?ELS46: EQUAL? PRSA,V?TIE-TOGETHER \?ELS50
|
|
FSET? SHEET,MUNGBIT \?ELS55
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?ELS55: FSET? SHEET,NARTICLEBIT \?ELS57
|
|
FCLEAR SHEET,NARTICLEBIT
|
|
FCLEAR SHEET,PLURALBIT
|
|
FSET SHEET,MUNGBIT
|
|
PUTP SHEET,P?SDESC,STR?377
|
|
PUTP SHEET,P?NO-T-DESC,STR?378
|
|
PRINTR "With the expertise of one who has watched countless prison escape movies, you tie the strips into a rope."
|
|
?ELS57: PRINTI "Tying the ends of the sheet together"
|
|
CALL HO-HUM
|
|
RSTACK
|
|
?ELS50: CALL NOUN-USED,W?ROPE,SHEET
|
|
ZERO? STACK /?ELS61
|
|
FSET? SHEET,MUNGBIT /?ELS61
|
|
CALL CANT-SEE,SHEET
|
|
RSTACK
|
|
?ELS61: EQUAL? PRSA,V?TAKE,V?PUT \?ELS65
|
|
EQUAL? PRSO,SHEET \?ELS65
|
|
FSET? SHEET,TRYTAKEBIT \?ELS65
|
|
EQUAL? PRSI,WINDOW /?ELS65
|
|
ZERO? SHEET-TIED /?ELS72
|
|
CALL DO-FIRST,STR?379
|
|
RSTACK
|
|
?ELS72: FCLEAR SHEET,TRYTAKEBIT
|
|
FCLEAR BED,NDESCBIT
|
|
RFALSE
|
|
?ELS65: FSET? SHEET,UNTEEDBIT /FALSE
|
|
EQUAL? PRSA,V?RIP /?THN80
|
|
EQUAL? PRSA,V?CUT \?ELS79
|
|
EQUAL? PRSO,SHEET \?ELS79
|
|
?THN80: FSET? SHEET,NARTICLEBIT /?THN89
|
|
FSET? SHEET,MUNGBIT \?ELS88
|
|
?THN89: PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?ELS88: SET 'SHEET-TIED,FALSE-VALUE
|
|
FSET SHEET,NARTICLEBIT
|
|
FCLEAR SHEET,TRYTAKEBIT
|
|
FCLEAR BED,NDESCBIT
|
|
FSET SHEET,PLURALBIT
|
|
PUTP SHEET,P?SDESC,STR?380
|
|
PUTP SHEET,P?NO-T-DESC,STR?381
|
|
PRINTI "You rip the sheet into"
|
|
CALL TRPRINT,SHEET
|
|
RSTACK
|
|
?ELS79: EQUAL? PRSA,V?TIE \?ELS94
|
|
EQUAL? PRSO,SHEET \?ELS94
|
|
ZERO? SHEET-TIED /?ELS101
|
|
PRINTI "But"
|
|
CALL TPRINT,SHEET
|
|
PRINTR " is already tied to the bed."
|
|
?ELS101: FSET? SHEET,NARTICLEBIT \?ELS104
|
|
PRINTI "Unless you want to make a nice decorative fringe for"
|
|
CALL TPRINT-PRSI
|
|
PRINTI ", that"
|
|
CALL HO-HUM
|
|
RSTACK
|
|
?ELS104: EQUAL? PRSI,BED \?ELS106
|
|
SET 'SHEET-TIED,TRUE-VALUE
|
|
FSET BED,NDESCBIT
|
|
FSET SHEET,TRYTAKEBIT
|
|
MOVE SHEET,HERE
|
|
CALL NOW-TIED,BED
|
|
RSTACK
|
|
?ELS106: FSET? PRSI,ACTORBIT \?ELS108
|
|
ZERO? NAUGHTY-LEVEL \FALSE
|
|
?ELS108: EQUAL? PRSO,BLANKET /FALSE
|
|
CALL WASTES
|
|
RSTACK
|
|
?ELS94: EQUAL? PRSA,V?UNTIE \?ELS114
|
|
ZERO? SHEET-TIED /?ELS114
|
|
FCLEAR SHEET,TRYTAKEBIT
|
|
SET 'SHEET-TIED,FALSE-VALUE
|
|
LOC PROTAGONIST
|
|
MOVE SHEET,STACK
|
|
ZERO? SHEET-HANGING /?ELS121
|
|
FCLEAR BED,NDESCBIT
|
|
SET 'SHEET-HANGING,FALSE-VALUE
|
|
PRINTI "You pull in"
|
|
CALL TPRINT-PRSO
|
|
PRINTR " and untie it."
|
|
?ELS121: PRINTR "Untied."
|
|
?ELS114: EQUAL? PRSA,V?PUT,V?PUT-THROUGH \?ELS126
|
|
EQUAL? PRSI,WINDOW \?ELS126
|
|
ZERO? SHEET-HANGING /?ELS133
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?ELS133: ZERO? SHEET-TIED /FALSE
|
|
FSET? SHEET,MUNGBIT /?CND138
|
|
PRINTR "The sheet would barely reach the window, let alone the ground below!"
|
|
?CND138: MOVE SHEET,HERE
|
|
SET 'SHEET-HANGING,TRUE-VALUE
|
|
PRINTI "The "
|
|
CALL DPRINT,SHEET
|
|
PRINTI " hangs almost to the ground."
|
|
IN? SIDEKICK,HERE \?THN144
|
|
ZERO? SIDEKICK-TRIP-FLAG /?CND141
|
|
?THN144: CRLF
|
|
RTRUE
|
|
?CND141: CALL QUEUE,I-SIDEKICK-OUT-WINDOW,2
|
|
PRINTI " "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTR " looks awed. ""Super idea! Doesn't look too strong, though. I'm lighter, so I'll go down."""
|
|
?ELS126: EQUAL? PRSA,V?MOVE \?ELS147
|
|
ZERO? SHEET-HANGING /?ELS152
|
|
SET 'SHEET-HANGING,FALSE-VALUE
|
|
PRINTI "You pull"
|
|
CALL TPRINT,SHEET
|
|
PRINTR " back into the room."
|
|
?ELS152: ZERO? SHEET-TIED /FALSE
|
|
CALL PERFORM-PRSA,BED
|
|
RTRUE
|
|
?ELS147: EQUAL? PRSA,V?CLIMB-DOWN \?ELS158
|
|
ZERO? SHEET-HANGING /?ELS158
|
|
PRINTI "The rope rips under your weight. "
|
|
CALL PLUMMET-TO-PAVEMENT
|
|
RSTACK
|
|
?ELS158: EQUAL? PRSA,V?MEASURE \?ELS162
|
|
FSET? SHEET,MUNGBIT \?ELS162
|
|
PRINTR "Long enough."
|
|
?ELS162: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
ZERO? SHEET-TIED \?THN169
|
|
FSET? SHEET,TRYTAKEBIT \FALSE
|
|
?THN169: CALL SHEET-F,M-OBJDESC
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PLUMMET-TO-PAVEMENT
|
|
CALL JIGS-UP,STR?382
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-SIDEKICK-OUT-WINDOW
|
|
PRINTI " "
|
|
ZERO? SIDEKICK-TRIP-FLAG /?ELS5
|
|
FSET BEDROOM,MUNGBIT
|
|
MOVE SIDEKICK,HERE
|
|
MOVE HEADLIGHT,HERE
|
|
CALL INCREMENT-SCORE,14,33,TRUE-VALUE
|
|
PRINTI "The ceiling collapses into a cloud of old plaster and startled termites, and out of the middle of it steps "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTI ", looking dishevelled but, for the most part, alive!
|
|
""That truck explosion knocked me into the basement of some nutty professor, who strapped me into a faster-than-light missile he was about to test! Halfway to Pluto, I was intercepted by slavers looking for asteroid mining laborers. I beat off about thirty of 'em, but they just kept coming and coming. Just then I noticed"
|
|
CALL APRINT,HOLE
|
|
PRINTI " which led to a spot about four feet above the floor of the attic ... or what used to be the floor of the attic. Anyway, I got the "
|
|
PRINTD HEADLIGHT
|
|
PRINTI "!"" "
|
|
CALL HE-SHE,TRUE-VALUE
|
|
PRINTI " points to the battered but usable "
|
|
PRINTD HEADLIGHT
|
|
PRINTR " on the floor."
|
|
?ELS5: EQUAL? HERE,BEDROOM \?THN9
|
|
ZERO? SHEET-HANGING \?ELS8
|
|
?THN9: CALL DEQUEUE,I-SIDEKICK-OUT-WINDOW
|
|
PRINTI """Okay, forget the "
|
|
PRINTD HEADLIGHT
|
|
PRINTI ","" shrugs "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS8: MOVE FORD,HERE
|
|
REMOVE SIDEKICK
|
|
REMOVE HEADLIGHT
|
|
SET 'FOLLOW-FLAG,1
|
|
CALL QUEUE,I-FOLLOW,2
|
|
FCLEAR HEADLIGHT,NDESCBIT
|
|
FCLEAR HEADLIGHT,TRYTAKEBIT
|
|
SET 'SIDEKICK-TRIP-FLAG,TRUE-VALUE
|
|
CALL QUEUE,I-SIDEKICK-OUT-WINDOW,1
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTI " climbs down the rope and unscrews the "
|
|
PRINTD HEADLIGHT
|
|
PRINTI ". Suddenly, a truck barrels down the street and hits "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTI ", carrying "
|
|
CALL HIM-HER
|
|
PRINTI " out of sight. Moments later, you hear an explosion. As the smoke drifts past the window"
|
|
CALL MEMORIAM
|
|
RSTACK
|
|
|
|
|
|
.FUNCT HEADLIGHT-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
FSET? HEADLIGHT,TRYTAKEBIT \?ELS5
|
|
PRINTR "It looks loose."
|
|
?ELS5: CALL TOUCHING?,HEADLIGHT
|
|
ZERO? STACK /FALSE
|
|
FSET? HEADLIGHT,TRYTAKEBIT \FALSE
|
|
CALL CANT-REACH,HEADLIGHT
|
|
RSTACK
|
|
|
|
|
|
.FUNCT FORD-F
|
|
CALL ADJ-USED,A?NUMBER
|
|
ZERO? STACK /?ELS5
|
|
EQUAL? P-NUMBER,1933 /?ELS5
|
|
CALL CANT-SEE,FORD
|
|
RSTACK
|
|
?ELS5: CALL TOUCHING?,FORD
|
|
ZERO? STACK /FALSE
|
|
CALL CANT-REACH,FORD
|
|
RSTACK
|
|
|
|
.ENDI
|