Revision 59 (Original Source)

master
historicalsource 2019-04-14 02:30:20 -04:00
commit 67b9cb45f6
28 changed files with 51699 additions and 0 deletions

1
README.md Normal file
View File

@ -0,0 +1 @@
# leathergoddesses

651
cleveland.zap Normal file
View File

@ -0,0 +1,651 @@
.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

724
cleveland.zil Normal file
View File

@ -0,0 +1,724 @@
"CLEVELAND for
LEATHER GODDESSES OF PHOBOS
(c) Copyright 1986 Infocom, Inc. All Rights Reserved."
<OBJECT CLEVELAND-OBJECT
(IN LOCAL-GLOBALS)
(DESC "Cleveland")
(SYNONYM CLEVELAND)
(ACTION CLEVELAND-OBJECT-F)>
<ROUTINE CLEVELAND-OBJECT-F ()
<COND (<VERB? ENTER WALK-TO BOARD>
<COND (<EQUAL? ,HERE ,CLEVELAND>
<TELL ,LOOK-AROUND>)
(<EQUAL? ,HERE ,LAWN>
<DO-WALK ,P?NORTH>)>)
(<VERB? LEAVE EXIT DISEMBARK>
<COND (<EQUAL? ,HERE ,CLEVELAND>
<V-WALK-AROUND>)
(T
<TELL ,LOOK-AROUND>)>)
(<VERB? EXAMINE>
<V-LOOK>)>>
<ROOM CLEVELAND
(IN ROOMS)
(DESC "Cleveland")
(LDESC
"You suddenly find yourself longing for the slime pits of Venus or the
sandstorms of Mars. This particular section of Cleveland has exits to
the northeast and south.")
(NE TO TEENSY-WEENSY-HOUSE)
(SOUTH TO LAWN)
(FLAGS RLANDBIT ONBIT NARTICLEBIT)
(GLOBAL CLEVELAND-OBJECT HOUSE)>
<ROOM LAWN
(IN ROOMS)
(DESC "Lawn")
(NORTH TO CLEVELAND)
(FLAGS RLANDBIT ONBIT)
(GLOBAL CLEVELAND-OBJECT)
(ACTION LAWN-F)
(THINGS <PSEUDO (TALL FENCE FENCE-F)
(<> LAWN LAWN-OBJECT-F)>)>
<ROUTINE LAWN-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"Yes, \"Lawn\" is the kindest word for this muddy patch of limp crabgrass. ">
<COND (<AND <FSET? ,RAKE ,TRYTAKEBIT>
<FSET? ,SACK ,TRYTAKEBIT>>
<TELL "Miraculously, someone actually seems to ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<TELL "care">)
(T
<TELL "give a ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 1>
<TELL "damn">)
(T
<TELL "shit">)>)>
<TELL
" about this lawn, because there are signs of recent activity:" A ,RAKE
" and a large " 'SACK ". ">)>
<TELL
"A fence rings the lawn; through an opening to the north you can
see Cleveland.">)
(<EQUAL? .RARG ,M-END>
<FCLEAR ,RAKE ,TRYTAKEBIT>
<FCLEAR ,SACK ,TRYTAKEBIT>
<FCLEAR ,RAKE ,NDESCBIT>
<FCLEAR ,SACK ,NDESCBIT>)>>
<ROUTINE FENCE-F ()
<COND (<VERB? LOOK-OVER CLIMB CLIMB-UP CLIMB-OVER>
<TELL "It's too tall." CR>)
(<AND <VERB? PUT-AGAINST>
<PRSO? ,TRELLIS>>
<PERFORM-PRSA ,TRELLIS ,HOUSE>
<RTRUE>)>>
<ROUTINE LAWN-OBJECT-F ()
<COND (<VERB? RAKE>
<TELL "It's already raked." CR>)
(<VERB? CLIMB-UP CLIMB-ON CLIMB BOARD LOOK-UNDER>
<PERFORM-PRSA ,GROUND ,PRSI>
<RTRUE>)
(<AND <VERB? PUT-ON>
<PRSI? ,PSEUDO-OBJECT>>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)
(<VERB? SEARCH>
<TELL ,NOTHING-NEW>)
(<VERB? EXAMINE>
<V-LOOK>)>>
<OBJECT RAKE
(IN LAWN)
(DESC "wooden rake")
(SYNONYM RAKE)
(ADJECTIVE WOODEN)
(FLAGS NDESCBIT TAKEBIT BURNBIT TRYTAKEBIT)>
<OBJECT SACK
(IN LAWN)
(DESC "canvas sack")
(SYNONYM SACK BAG)
(ADJECTIVE CANVAS LARGE)
(FLAGS NDESCBIT TRYTAKEBIT TAKEBIT CONTBIT SEARCHBIT BURNBIT)
(SIZE 3)
(CAPACITY 50)>
<OBJECT LEAVES
(IN SACK)
(DESC "whole bunch of leaves")
(SYNONYM BUNCH LEAVES LEAF PILE)
(ADJECTIVE WHOLE)
(FLAGS TAKEBIT BURNBIT TRYTAKEBIT PLURALBIT)
(SIZE 2)
(ACTION LEAVES-F)>
<ROUTINE LEAVES-F ()
<COND (<VERB? ENTER>
<COND (<ULTIMATELY-IN? ,LEAVES>
<TELL ,HOLDING-IT>)
(T
<WEE>)>)
(<VERB? TAKE>
<COND (<PRE-TOUCH>
<RTRUE>)>
<TELL ,YOU-CANT "hold so many leaves in your arms!" CR>)
(<VERB? RAKE>
<TELL "They're already in a ">
<COND (<IN? ,LEAVES ,SACK>
<PRINTD ,SACK>)
(T
<TELL "pile">)>
<TELL ,PERIOD-CR>)
(<VERB? COUNT>
<TELL "69,105." CR>)
(<VERB? SEARCH LOOK-INSIDE>
<TELL "You find ... more leaves!" CR>)
(<AND <VERB? POUR>
<PRSO? ,LEAVES>>
<COND (<ULTIMATELY-IN? ,LEAVES>
<COND (<PRSI? ,WINDOW>
<PERFORM ,V?PUT-THROUGH ,LEAVES ,WINDOW>
<RTRUE>)
(T
<PERFORM ,V?PUT ,LEAVES ,PRSI>
<RTRUE>)>)
(T
<TELL ,YNH TR ,LEAVES>)>)
(<OR <AND <VERB? PUSH PUT>
<PRSI? ,SACK>>
<AND <VERB? FILL>
<PRSO? ,SACK>>>
<COND (<UNTOUCHABLE? ,LEAVES>
<CANT-REACH ,LEAVES>
<RTRUE>)
(<IN? ,LEAVES ,SACK>
<RFALSE>)>
<FCLEAR ,LEAVES ,TRYTAKEBIT>
<SETG LEAVES-PLACED <>>
<FSET ,TREE-HOLE ,OPENBIT>
<FCLEAR ,LEAVES ,NDESCBIT>
<MOVE ,LEAVES ,SACK>
<TELL "Done." CR>)
(<AND <VERB? MOVE>
,LEAVES-PLACED>
<FCLEAR ,LEAVES ,TRYTAKEBIT>
<SETG LEAVES-PLACED <>>
<FSET ,TREE-HOLE ,OPENBIT>
<FCLEAR ,LEAVES ,NDESCBIT>
<MOVE ,LEAVES ,HERE>
<TELL "You uncover the trellis." CR>)
(<AND <VERB? LOOK-UNDER>
,LEAVES-PLACED>
<TRELLIS-VISIBLE>
<CRLF>)
(<AND <VERB? EMPTY>
<PRSO? ,LEAVES>
<IN? ,LEAVES ,SACK>>
<PERFORM ,V?DROP ,LEAVES>
<RTRUE>)
(<AND <VERB? STAND-ON CLIMB-ON BOARD>
,LEAVES-PLACED>
<PERFORM ,V?STAND-ON ,TRELLIS>
<RTRUE>)>>
<ROOM TEENSY-WEENSY-HOUSE
(IN ROOMS)
(DESC "Teensy-Weensy House")
(LDESC
"This rickety home is so petite that the entire first floor is only
one location in this story. When you tire of this floor, you can go
east, southwest, or up.")
(SW TO CLEVELAND)
(EAST TO GARDEN)
(UP TO BEDROOM)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(GLOBAL STAIRS HOUSE)
(THINGS <PSEUDO (FIRST FLOOR FIRST-FLOOR-F)
(SECOND FLOOR SECOND-FLOOR-F)>)>
<ROOM GARDEN
(IN ROOMS)
(DESC "Garden")
(WEST TO TEENSY-WEENSY-HOUSE)
(IN TO TEENSY-WEENSY-HOUSE)
(FLAGS RLANDBIT ONBIT)
(GLOBAL HOLE HOUSE)
(HOLE-DESTINATION END-OF-HALLWAY)
(ACTION GARDEN-F)
(THINGS <PSEUDO (<> FLOWER FLOWERS-F)>)>
<ROUTINE GARDEN-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"The house opens onto a fragrant garden! A piece of sod has been ">
<COND (<FSET? ,SOD ,MUNGBIT>
<TELL "rolled aside, revealing" A ,HOLE>)
(T
<TELL "recently planted">)>
<TELL
", and a clump of yellow, bulbous flowers grows nearby.">
<COND (<FSET? ,TRELLIS ,TRYTAKEBIT>
<TELL
" The flowers barely reach the trellis which rises behind them.">)>
<TELL " You can re-enter the house to the west.">)>>
<ROUTINE FLOWERS-F ()
<COND (<VERB? SMELL>
<PERFORM-PRSA ,ODOR>
<RTRUE>)
(<VERB? PICK TAKE MUNG>
<TELL "That would be the act of a philistine." CR>)>>
<OBJECT SOD
(IN GARDEN)
(DESC "sod")
(SYNONYM PIECE SOD)
(FLAGS NARTICLEBIT NDESCBIT TRYTAKEBIT)
(ACTION SOD-F)>
<ROUTINE SOD-F ()
<COND (<VERB? TAKE>
<EXAMINE-SOD T>)
(<VERB? MOVE ROLL PUSH>
<COND (<FSET? ,SOD ,MUNGBIT>
<TELL ,SENILITY-STRIKES>)
(T
<FSET ,SOD ,MUNGBIT>
<THIS-IS-IT ,HOLE>
<TELL "Moving the sod reveals" AR ,HOLE>)>)
(<OR <AND <VERB? PUT-ON>
<PRSI? ,HOLE>>
<VERB? UNROLL>>
<COND (<FSET? ,SOD ,MUNGBIT>
<FCLEAR ,SOD ,MUNGBIT>
<TELL "You re-cover" TR ,HOLE>)
(T
<TELL ,LOOK-AROUND>)>)
(<AND <VERB? RAISE LOOK-UNDER>
<NOT <FSET? ,SOD ,MUNGBIT>>>
<TELL
"You lift a corner. Before the sod drops back to the ground,
you notice something dark." CR>)
(<VERB? EXAMINE>
<EXAMINE-SOD>)>>
<ROUTINE EXAMINE-SOD ("OPTIONAL" (TAKING <>))
<TELL "Although the sod hasn't taken root yet, it">
<COND (.TAKING
<TELL "'">)
(T
<TELL " look">)>
<TELL "s too heavy to carry." CR>>
<OBJECT TRELLIS
(IN GARDEN)
(DESC "trellis")
(NO-T-DESC "rellis")
(DESCFCN TRELLIS-F)
(SYNONYM TRELLIS RELLIS)
(ADJECTIVE WOODEN WHITE TALL WIDE SQUARE)
(FLAGS NDESCBIT TAKEBIT BURNBIT TRYTAKEBIT SEARCHBIT)
(SIZE 55)
(CAPACITY 50)
(ACTION TRELLIS-F)>
<ROUTINE TRELLIS-F ("OPTIONAL" (OARG <>))
<COND (.OARG
<COND (<FSET? ,TRELLIS ,MUNGBIT>
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)>
<TELL " ">
<DESCRIBE-TRELLIS-ON-HOLE>)
(T
<RFALSE>)>)
(<FSET? ,TRELLIS ,UNTEEDBIT>
<RFALSE>)
(<AND <VERB? PUT-ON PUT>
<PRSO? ,LEAVES>
<FSET? ,TRELLIS ,MUNGBIT>>
<COND (<IN? ,LEAVES ,TREE-HOLE>
<CANT-REACH ,LEAVES>)
(T
<SETG LEAVES-PLACED T>
<FCLEAR ,TREE-HOLE ,OPENBIT>
<FSET ,LEAVES ,NDESCBIT>
<FSET ,LEAVES ,TRYTAKEBIT>
<MOVE ,LEAVES ,TRELLIS>
<TELL "The leaves cover the trellis." CR>)>)
(<AND <VERB? PUT-ON>
<PRSI? ,TREE-HOLE>>
<COND (<FSET? ,TRELLIS ,MUNGBIT>
<TELL ,SENILITY-STRIKES>)
(T
<COND (<IN? ,LEAVES ,TRELLIS>
<SETG LEAVES-PLACED T>
<FCLEAR ,TREE-HOLE ,OPENBIT>
<FSET ,LEAVES ,NDESCBIT>
<FSET ,LEAVES ,TRYTAKEBIT>)>
<MOVE ,TRELLIS ,HERE>
<FSET ,TRELLIS ,TRYTAKEBIT>
<FSET ,TRELLIS ,MUNGBIT>
<TELL "The trellis barely spans the hole." CR>)>)
(<AND <VERB? TAKE>
<FSET? ,TRELLIS ,TRYTAKEBIT>
<NOT <UNTOUCHABLE? ,TRELLIS>>>
<UNDO-TRAP>
<RFALSE>)
(<AND <VERB? CLIMB CLIMB-ON>
<EQUAL? ,HERE ,GARDEN>
<FSET? ,TRELLIS ,TRYTAKEBIT>>
<UNDO-TRAP>
<TELL "It falls over." CR>)
(<AND <VERB? MOVE REMOVE>
<FSET? ,TRELLIS ,MUNGBIT>>
<UNDO-TRAP>
<TELL "You uncover the hole." CR>)
(<AND <VERB? PUT-AGAINST>
<PRSI? ,HOUSE>>
<TELL "The trellis is too flimsy to climb." CR>)
(<AND <VERB? LOOK-INSIDE>
<EQUAL? <GET ,P-ITBL ,P-PREP1> ,PR?THROUGH>>
<V-LOOK>)
(<VERB? MEASURE>
<TELL "It's six or seven feet wide." CR>)
(<AND <VERB? EXAMINE>
,LEAVES-PLACED>
<FCLEAR ,LEAVES ,NDESCBIT>
<V-EXAMINE>
<FSET ,LEAVES ,NDESCBIT>)
(<AND <VERB? EXAMINE>
<NOT <FIRST? ,TRELLIS>>>
<TELL
"The trellis is a tight lattice of white wood. Though slightly
wider at the top, it is approximately square in shape." CR>)
(<AND <VERB? PUT>
<PRSI? ,TREE-HOLE>>
<TELL ,TRELLIS-TOO-WIDE>)
(<AND <VERB? STAND-ON BOARD>
<FSET? ,TRELLIS ,MUNGBIT>>
<ROB ,TRELLIS ,TREE-HOLE>
<REMOVE ,TRELLIS>
<MOVE ,PROTAGONIST ,TREE-HOLE>
<TELL "Crash! You">
<AND-SIDEKICK ,TREE-HOLE>
<UNDO-TRAP>
<TELL " are now in the hole, along with some splinters." CR>)>>
<ROUTINE TRELLIS-VISIBLE ()
<TELL "The edge of a trellis is just visible under" A ,LEAVES ".">>
<ROUTINE DESCRIBE-TRELLIS-ON-HOLE ()
<COND (,LEAVES-PLACED
<TRELLIS-VISIBLE>)
(T
<TELL "A trellis covers the hole.">)>>
<ROUTINE UNDO-TRAP ()
<COND (,LEAVES-PLACED
<SETG LEAVES-PLACED <>>
<FCLEAR ,LEAVES ,TRYTAKEBIT>
<FCLEAR ,LEAVES ,NDESCBIT>)>
<FSET ,TREE-HOLE ,OPENBIT>
<FCLEAR ,TRELLIS ,TRYTAKEBIT>
<FCLEAR ,TRELLIS ,MUNGBIT>
<FCLEAR ,TRELLIS ,NDESCBIT> ;"for first time you take it in Garden"
<FSET ,TRELLIS ,OPENBIT> ;"ditto"
<FSET ,TRELLIS ,CONTBIT> ;"ditto"
<FSET ,TRELLIS ,SURFACEBIT> ;"ditto">
<ROUTINE FIRST-FLOOR-F ()
<COND (<VERB? ENTER WALK-TO BOARD>
<COND (<EQUAL? ,HERE ,BEDROOM>
<DO-WALK ,P?DOWN>)
(<EQUAL? ,HERE ,TEENSY-WEENSY-HOUSE>
<TELL ,LOOK-AROUND>)>)
(<VERB? EXIT LEAVE DISEMBARK>
<COND (<EQUAL? ,HERE ,BEDROOM>
<TELL ,LOOK-AROUND>)
(T
<DO-WALK ,P?UP>)>)
(<EQUAL? ,HERE ,TEENSY-WEENSY-HOUSE>
<COND (<PRSO? ,PSEUDO-OBJECT>
<PERFORM-PRSA ,GLOBAL-ROOM ,PRSI>
<RTRUE>)
(T
<PERFORM-PRSA ,PRSO ,GLOBAL-ROOM>)>)>>
<ROUTINE SECOND-FLOOR-F ()
<COND (<VERB? ENTER WALK-TO BOARD>
<COND (<EQUAL? ,HERE ,TEENSY-WEENSY-HOUSE>
<DO-WALK ,P?UP>)
(<EQUAL? ,HERE ,BEDROOM>
<TELL ,LOOK-AROUND>)>)
(<VERB? EXIT LEAVE DISEMBARK>
<COND (<EQUAL? ,HERE ,BEDROOM>
<DO-WALK ,P?DOWN>)
(T
<TELL ,LOOK-AROUND>)>)
(<EQUAL? ,HERE ,BEDROOM>
<COND (<PRSO? ,PSEUDO-OBJECT>
<PERFORM-PRSA ,GLOBAL-ROOM ,PRSI>
<RTRUE>)
(T
<PERFORM-PRSA ,PRSO ,GLOBAL-ROOM>)>)>>
<ROOM BEDROOM
(IN ROOMS)
(DESC "Bedroom")
(LDESC
"The second floor of the house has an open window overlooking the street and
a stair leading down.")
(DOWN PER BEDROOM-EXIT-F)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(GLOBAL STAIRS WINDOW HOUSE)
(THINGS <PSEUDO (FIRST FLOOR FIRST-FLOOR-F)
(SECOND FLOOR SECOND-FLOOR-F)>)>
<ROUTINE BEDROOM-EXIT-F ("OPTIONAL" (CALLED-BY-STAIRS-F <>))
<COND (<AND ,SIDEKICK-TRIP-FLAG
<QUEUED? ,I-SIDEKICK-OUT-WINDOW>>
<TELL "Just as you are about to..." CR>
<RFALSE>)
(<AND ,SHEET-HANGING
<NOT .CALLED-BY-STAIRS-F>>
<TELL
"Choice: You could climb down the stairs or the rope." CR>
<RFALSE>)
(T
,TEENSY-WEENSY-HOUSE)>>
<OBJECT BED
(IN BEDROOM)
(DESC "bed")
(SYNONYM BED)
(FLAGS VEHBIT NDESCBIT CONTBIT SEARCHBIT SURFACEBIT OPENBIT)
(CAPACITY 100)
(ACTION BED-F)>
<ROUTINE BED-F ()
<COND (<VERB? MAKE>
<V-CLEAN>)
(<AND <VERB? EXAMINE>
<OR ,SHEET-TIED
<FSET? ,SHEET ,TRYTAKEBIT>>>
<SHEET-F ,M-OBJDESC>
<COND (<FIRST? ,BED>
<COND (<AND <EQUAL? <FIRST? ,BED> ,SHEET>
<NOT <NEXT? ,SHEET>>>
<CRLF>)
(T
<TELL " ">
<RFALSE>)>)
(T
<CRLF>)>)
(<AND <VERB? PUT PUT-ON>
<PRSO? ,RAFT ,STOOL>>
<WASTES> ;"don't want nested vehicles")
(<VERB? MOVE PUSH>
<TELL "The bed is too heavy to move." CR>)>>
<GLOBAL SHEET-HANGING <>>
<GLOBAL SHEET-TIED <>>
<OBJECT SHEET
(IN BEDROOM)
(SDESC "sheet")
(NO-T-DESC "shee")
(DESCFCN SHEET-F)
(SYNONYM SHEET STRIPS END ROPE)
(ADJECTIVE OTHER SHEE CLOTH) ;"no synonym slots left...sigh"
(FLAGS TAKEBIT BURNBIT TRYTAKEBIT)
(ACTION SHEET-F)>
<ROUTINE SHEET-F ("OPTIONAL" (OARG <>))
<COND (.OARG
<COND (<OR ,SHEET-TIED
<FSET? ,SHEET ,TRYTAKEBIT>>
<COND (<EQUAL? .OARG ,M-OBJDESC?>
<RTRUE>)>
<COND (<NOT <VERB? EXAMINE>>
<TELL " ">)>
<COND (,SHEET-TIED
<TELL "A " D ,SHEET " is tied to the bed">
<COND (,SHEET-HANGING
<TELL ", its other end out the window">)>
<TELL ".">)
(T
<TELL
"The bed is unmade, with the sheet lying half on the floor.">)>)
(T
<RFALSE>)>)
(<AND <VERB? MAKE>
<NOUN-USED ,W?ROPE ,SHEET>>
<COND (<FSET? ,SHEET ,MUNGBIT>
<PERFORM ,V?TIE-TOGETHER ,SHEET>
<RTRUE>)
(T
<TELL "Be less general." CR>)>)
(<AND <VERB? TIE MAKE-WITH>
<PRSO? ,PRSI> ;"both PRSO and PRSI are the sheet">
<PERFORM ,V?TIE-TOGETHER ,SHEET>
<RTRUE>)
(<VERB? TIE-TOGETHER>
<COND (<FSET? ,SHEET ,MUNGBIT>
<TELL ,SENILITY-STRIKES>)
(<FSET? ,SHEET ,NARTICLEBIT>
<FCLEAR ,SHEET ,NARTICLEBIT>
<FCLEAR ,SHEET ,PLURALBIT>
<FSET ,SHEET ,MUNGBIT>
<PUTP ,SHEET ,P?SDESC "rope of cloth">
<PUTP ,SHEET ,P?NO-T-DESC "rope of cloh">
<TELL
"With the expertise of one who has watched countless prison escape movies,
you tie the strips into a rope." CR>)
(T
<TELL "Tying the ends of the sheet together">
<HO-HUM>)>)
(<AND <NOUN-USED ,W?ROPE ,SHEET>
<NOT <FSET? ,SHEET ,MUNGBIT>>>
<CANT-SEE ,SHEET>)
(<AND <VERB? PUT TAKE>
<PRSO? ,SHEET>
<FSET? ,SHEET ,TRYTAKEBIT>
<NOT <PRSI? ,WINDOW>>>
<COND (,SHEET-TIED
<DO-FIRST "untie it">)
(T
<FCLEAR ,SHEET ,TRYTAKEBIT>
<FCLEAR ,BED ,NDESCBIT>
<RFALSE>)>)
(<FSET? ,SHEET ,UNTEEDBIT>
<RFALSE>)
(<OR <VERB? RIP>
<AND <VERB? CUT>
<PRSO? ,SHEET>>>
<COND (<OR <FSET? ,SHEET ,NARTICLEBIT>
<FSET? ,SHEET ,MUNGBIT>>
<TELL ,SENILITY-STRIKES>)
(T
<SETG SHEET-TIED <>>
<FSET ,SHEET ,NARTICLEBIT>
<FCLEAR ,SHEET ,TRYTAKEBIT>
<FCLEAR ,BED ,NDESCBIT>
<FSET ,SHEET ,PLURALBIT>
<PUTP ,SHEET ,P?SDESC "strips of cloth">
<PUTP ,SHEET ,P?NO-T-DESC "srips of cloh">
<TELL "You rip the sheet into" TR ,SHEET>)>)
(<AND <VERB? TIE>
<PRSO? ,SHEET>>
<COND (,SHEET-TIED
<TELL "But" T ,SHEET " is already tied to the bed." CR>)
(<FSET? ,SHEET ,NARTICLEBIT>
<TELL
"Unless you want to make a nice decorative fringe for" T ,PRSI ", that">
<HO-HUM>)
(<PRSI? ,BED>
<SETG SHEET-TIED T>
<FSET ,BED ,NDESCBIT>
<FSET ,SHEET ,TRYTAKEBIT>
<MOVE ,SHEET ,HERE>
<NOW-TIED ,BED>)
(<AND <FSET? ,PRSI ,ACTORBIT>
<NOT <EQUAL? ,NAUGHTY-LEVEL 0>>>
<RFALSE> ;"V-TIE will say KINKY!")
(<NOT <PRSO? ,BLANKET>> ;"BLANKET-F handles it"
<WASTES>)>)
(<AND <VERB? UNTIE>
,SHEET-TIED>
<FCLEAR ,SHEET ,TRYTAKEBIT>
<SETG SHEET-TIED <>>
<MOVE ,SHEET <LOC ,PROTAGONIST>>
<COND (,SHEET-HANGING
<FCLEAR ,BED ,NDESCBIT>
<SETG SHEET-HANGING <>>
<TELL "You pull in" T ,PRSO " and untie it." CR>)
(T
<TELL "Untied." CR>)>)
(<AND <VERB? PUT-THROUGH PUT>
<PRSI? ,WINDOW>>
<COND (,SHEET-HANGING
<TELL ,SENILITY-STRIKES>)
(,SHEET-TIED
<COND (<NOT <FSET? ,SHEET ,MUNGBIT>>
<TELL
"The sheet would barely reach the window, let alone the ground below!" CR>
<RTRUE>)>
<MOVE ,SHEET ,HERE>
<SETG SHEET-HANGING T>
<TELL "The " D ,SHEET " hangs almost to the ground.">
<COND (<OR <NOT <IN? ,SIDEKICK ,HERE>>
,SIDEKICK-TRIP-FLAG ;"he already went once">
<CRLF>
<RTRUE>)>
<QUEUE I-SIDEKICK-OUT-WINDOW 2>
<TELL
" " D ,SIDEKICK " looks awed. \"Super idea! Doesn't look too strong,
though. I'm lighter, so I'll go down.\"" CR>)>)
(<VERB? MOVE>
<COND (,SHEET-HANGING
<SETG SHEET-HANGING <>>
<TELL "You pull" T ,SHEET " back into the room." CR>)
(,SHEET-TIED
<PERFORM-PRSA ,BED>
<RTRUE>)>)
(<AND <VERB? CLIMB-DOWN>
,SHEET-HANGING>
<TELL "The rope rips under your weight. ">
<PLUMMET-TO-PAVEMENT>)
(<AND <VERB? MEASURE>
<FSET? ,SHEET ,MUNGBIT>>
<TELL "Long enough." CR>)
(<AND <VERB? EXAMINE>
<OR ,SHEET-TIED
<FSET? ,SHEET ,TRYTAKEBIT>>>
<SHEET-F ,M-OBJDESC>
<CRLF>)>>
<ROUTINE PLUMMET-TO-PAVEMENT ()
<JIGS-UP
"After plummeting to the pavement, ambulances rush up to take you the finest
hospitals in Cleveland. If only the ambulances had all picked the same
hospital, there might've been a chance to put you back together.">>
<ROUTINE I-SIDEKICK-OUT-WINDOW ()
<TELL " ">
<COND (,SIDEKICK-TRIP-FLAG
<FSET ,BEDROOM ,MUNGBIT>
<MOVE ,SIDEKICK ,HERE>
<MOVE ,HEADLIGHT ,HERE>
<INCREMENT-SCORE 14 33 T>
<TELL
"The ceiling collapses into a cloud of old plaster and startled termites,
and out of the middle of it steps " D ,SIDEKICK ", 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" A ,HOLE " 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 "
'HEADLIGHT "!\" ">
<HE-SHE T>
<TELL
" points to the battered but usable " 'HEADLIGHT " on the floor." CR>)
(<OR <NOT <EQUAL? ,HERE ,BEDROOM>>
<NOT ,SHEET-HANGING>>
<DEQUEUE I-SIDEKICK-OUT-WINDOW>
<TELL
"\"Okay, forget the " 'HEADLIGHT ",\" shrugs " D ,SIDEKICK ,PERIOD-CR>)
(T
<MOVE ,FORD ,HERE>
<REMOVE ,SIDEKICK>
<REMOVE ,HEADLIGHT>
<SETG FOLLOW-FLAG 1>
<QUEUE I-FOLLOW 2>
<FCLEAR ,HEADLIGHT ,NDESCBIT>
<FCLEAR ,HEADLIGHT ,TRYTAKEBIT>
<SETG SIDEKICK-TRIP-FLAG T>
<QUEUE I-SIDEKICK-OUT-WINDOW 1>
<TELL
D ,SIDEKICK " climbs down the rope and unscrews the " 'HEADLIGHT ". Suddenly,
a truck barrels down the street and hits " D ,SIDEKICK ", carrying ">
<HIM-HER>
<TELL
" out of sight. Moments later, you hear an explosion. As the smoke
drifts past the window">
<MEMORIAM>)>>
<OBJECT HEADLIGHT
(DESC "headlight")
(NO-T-DESC "headligh")
(SYNONYM HEADLIGHT LIGHT LIGH)
(ADJECTIVE FORD HEAD)
(FLAGS TAKEBIT TRYTAKEBIT NDESCBIT)
(ACTION HEADLIGHT-F)>
<ROUTINE HEADLIGHT-F ()
<COND (<AND <VERB? EXAMINE>
<FSET? ,HEADLIGHT ,TRYTAKEBIT>>
<TELL "It looks loose." CR>)
(<AND <TOUCHING? ,HEADLIGHT>
<FSET? ,HEADLIGHT ,TRYTAKEBIT>>
<CANT-REACH ,HEADLIGHT>)>>
<OBJECT FORD
(DESC "Ford")
(SYNONYM FORD CAR AUTO)
(ADJECTIVE NUMBER) ;"so you can refer to it as 1933 FORD"
(FLAGS NDESCBIT)
(ACTION FORD-F)>
<ROUTINE FORD-F ()
<COND (<AND <ADJ-USED ,A?NUMBER>
<NOT <EQUAL? ,P-NUMBER 1933>>>
<CANT-SEE ,FORD> ;"will this really work?")
(<TOUCHING? ,FORD>
<CANT-REACH ,FORD>)>>

433
earth.zap Normal file
View File

@ -0,0 +1,433 @@
.FUNCT JOES-BAR-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "An undistinguished bar, yet the social center of Upper Sandusky. The front door is almost lost amidst the hazy maze of neon that shrouds the grimy glass of the south wall. "
PRINT DOORS-MARKED
RTRUE
.FUNCT BAR-DOOR-F
EQUAL? PRSA,V?ENTER \?ELS5
CALL DO-WALK,P?SOUTH
RSTACK
?ELS5: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS7
PRINTR "It's a swinging door."
?ELS7: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
CALL PERFORM-PRSA,WINDOW
RTRUE
.FUNCT BAR-F
EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS5
CALL DO-WALK,P?SOUTH
RSTACK
?ELS5: EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS7
PRINT LOOK-AROUND
RTRUE
?ELS7: EQUAL? PRSA,V?EXAMINE \?ELS9
CALL V-LOOK
RSTACK
?ELS9: EQUAL? PRSA,V?SEARCH \FALSE
PRINT NOTHING-NEW
RTRUE
.FUNCT JOE-F
EQUAL? PRSA,V?TELL /?THN6
EQUAL? PRSA,V?ASK-FOR \?ELS5
EQUAL? PRSI,BEER \?ELS5
?THN6: PRINTI """You've had enough."""
CRLF
CALL STOP
RSTACK
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "Joe is bartending."
.FUNCT BEER-F
EQUAL? PRSA,V?BUY \FALSE
EQUAL? HERE,JOES-BAR \FALSE
PRINTI "The bartender"
CALL RUNNING?,I-URGE
ZERO? STACK /?CND8
PRINTI ", a keen judge of bladders,"
?CND8: PRINTI " says, "
CALL PERFORM,V?TELL,JOE
RTRUE
.FUNCT GARMENT-F
CALL WRONG-SEX-WORD,GARMENT,W?LOINCLOTH,W?BIKINI
ZERO? STACK /?ELS5
CALL STOP
RSTACK
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7
FSET? CELL,TOUCHBIT \?ELS7
PRINTI "The "
CALL DPRINT,GARMENT
PRINTR ", tight but comfy, covers only the ""bare essentials."""
?ELS7: EQUAL? PRSA,V?LOOK-INSIDE \?ELS11
PRINTI "1. You
2. A "
CALL DPRINT,COMIC-BOOK
CRLF
RTRUE
?ELS11: EQUAL? PRSA,V?TAKE-OFF /?THN14
EQUAL? PRSA,V?TAKE \FALSE
ZERO? GONE-APE /FALSE
?THN14: PRINTI "But"
CALL TPRINT,GARMENT
FSET? GARMENT,PLURALBIT \?ELS20
PRINTI " are"
JUMP ?CND18
?ELS20: PRINTI " is"
?CND18: PRINTR " so becoming!"
.FUNCT POCKET-F
EQUAL? PRSA,V?LOOK-INSIDE \?ELS5
PRINTI "There's"
CALL APRINT,COMIC-BOOK
PRINTR " there."
?ELS5: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,POCKET \FALSE
PRINTI "There's no room. "
CALL PERFORM,V?LOOK-INSIDE,POCKET
RTRUE
.FUNCT COMIC-BOOK-F
EQUAL? PRSA,V?BURN,V?TAKE,V?REMOVE \?ELS5
EQUAL? PRSO,COMIC-BOOK \?ELS5
PRINTI "You change your mind and"
PRINT STICK-IT-IN-POCKET
PRINTR " instead."
?ELS5: EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?READ \FALSE
FSET? CELL,TOUCHBIT \?ELS12
PRINTI """Hello, Prisoner!
You are a captive of "
PRINTD LGOP
PRINTI ". As an experimental subject, your unspeakably painful death will help our effort to enslave humanity and turn the Earth into our private pleasure world. Consider this to be a great honor, human.""
The remainder of the book covers the exacting rules of behavior expected of a prisoner of "
PRINTD LGOP
PRINTI ". For example, it mentions that escapees will be killed immediately and painfully by crack Leckbandi guards."
JUMP ?CND10
?ELS12: CALL IN-YOUR-PACKAGE,STR?205
?CND10: PRINTI " After reading it, you"
PRINT STICK-IT-IN-POCKET
PRINT PERIOD-CR
RTRUE
.FUNCT FLASHLIGHT-F
EQUAL? PRSA,V?LOOK-INSIDE,V?OPEN \?ELS5
PRINTI "The "
PRINTD FLASHLIGHT
PRINTR " has rusted shut."
?ELS5: EQUAL? PRSA,V?POINT \FALSE
FSET? FLASHLIGHT,ONBIT \FALSE
ZERO? PRSI /FALSE
PRINT NOTHING-NEW
RTRUE
.FUNCT MENS-ROOM-ENTER-F
ZERO? SEX-CHOSEN \?ELS5
SET 'SEX-CHOSEN,TRUE-VALUE
SET 'MALE,TRUE-VALUE
MOVE STOOL,MENS-ROOM
FSET SULTANS-WIFE,FEMALEBIT
FSET HAREM-GUARD,FEMALEBIT
FSET YOUNG-WOMAN,FEMALEBIT
PUTP SIDEKICK,P?SDESC,STR?207
PUTP SIDEKICKS-BODY,P?SDESC,STR?208
PUTP SPLATTERED-SIDEKICK,P?SDESC,STR?209
PUTP THORBAST,P?SDESC,STR?210
PUTP THORBAST-SWORD,P?SDESC,STR?211
PUTP SULTAN,P?SDESC,STR?212
PUTP YOUNG-WOMAN,P?SDESC,STR?213
PUTP PHOTO,P?SDESC,STR?214
PUTP HAREM,P?ODOR,STR?215
RETURN MENS-ROOM
?ELS5: ZERO? MALE /?ELS7
RETURN MENS-ROOM
?ELS7: PRINTD MENS-ROOM
CALL WRONG-BATHROOM,STR?216
RFALSE
.FUNCT LADIES-ROOM-ENTER-F
ZERO? SEX-CHOSEN \?ELS5
SET 'SEX-CHOSEN,TRUE-VALUE
MOVE STOOL,LADIES-ROOM
FSET ME,FEMALEBIT
FSET SULTAN,FEMALEBIT
FSET SIDEKICK,FEMALEBIT
FSET THORBAST,FEMALEBIT
PUTP SIDEKICK,P?SDESC,STR?217
PUTP SIDEKICKS-BODY,P?SDESC,STR?218
PUTP SPLATTERED-SIDEKICK,P?SDESC,STR?219
PUTP THORBAST,P?SDESC,STR?220
PUTP THORBAST-SWORD,P?SDESC,STR?221
PUTP SULTAN,P?SDESC,STR?222
PUTP YOUNG-WOMAN,P?SDESC,STR?223
PUTP PHOTO,P?SDESC,STR?224
PUTP HAREM,P?ODOR,STR?225
RETURN LADIES-ROOM
?ELS5: ZERO? MALE /?ELS7
PRINTD LADIES-ROOM
CALL WRONG-BATHROOM,STR?226
RFALSE
?ELS7: RETURN LADIES-ROOM
.FUNCT WRONG-BATHROOM,STRING
PRINTI "
As you enter the wrong bathroom, a "
PRINT STRING
PRINTI ". You hustle out.
"
CALL DESCRIBE-ROOM
RSTACK
.FUNCT BATHROOM-F,RARG
EQUAL? RARG,M-LOOK \?ELS5
PRINTI "This filthy bathroom belies the existence of disinfectant. A single toilet and sink are the only fixtures. More breathable air can be found to the south"
EQUAL? HERE,MENS-ROOM \?ELS8
PRINTI "ea"
JUMP ?CND6
?ELS8: PRINTI "we"
?CND6: PRINTI "st."
RTRUE
?ELS5: EQUAL? RARG,M-SMELL \FALSE
CALL THIS-IS-IT,PIZZA
MOVE PIZZA,HERE
PRINTI "You trace the smell to"
CALL APRINT,PIZZA
PRINTI ", crumpled in the corner. [Incidentally, we had some pretty putrid scents available, all of which would've seemed right at home in a filthy restroom. In the end, we were too kind to use them -- but we were sorely tempted!]"
RTRUE
.FUNCT MENS-ROOM-OBJECT-F
EQUAL? PRSA,V?ENTER,V?FIND \?ELS5
EQUAL? HERE,JOES-BAR \?ELS10
CALL DO-WALK,P?NW
RSTACK
?ELS10: PRINT LOOK-AROUND
RTRUE
?ELS5: EQUAL? PRSA,V?WALK-TO \?ELS14
EQUAL? HERE,JOES-BAR \?ELS19
CALL DO-WALK,P?NW
RSTACK
?ELS19: EQUAL? HERE,MENS-ROOM \FALSE
CALL V-PEE
RSTACK
?ELS14: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS23
EQUAL? HERE,MENS-ROOM \?ELS28
CALL DO-WALK,P?SE
RSTACK
?ELS28: PRINT LOOK-AROUND
RTRUE
?ELS23: EQUAL? PRSA,V?LOOK-INSIDE \?ELS32
EQUAL? HERE,MENS-ROOM \?ELS37
PRINT LOOK-AROUND
RTRUE
?ELS37: PRINT CANT-FROM-HERE
RTRUE
?ELS32: EQUAL? PRSA,V?SEARCH \?ELS41
PRINT NOTHING-NEW
RTRUE
?ELS41: EQUAL? PRSA,V?USE \?ELS43
EQUAL? HERE,JOES-BAR \?ELS48
PRINT LOOK-AROUND
RTRUE
?ELS48: CALL V-PEE
RSTACK
?ELS43: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "Filthy."
.FUNCT LADIES-ROOM-OBJECT-F
EQUAL? PRSA,V?ENTER,V?FIND \?ELS5
EQUAL? HERE,JOES-BAR \?ELS10
CALL DO-WALK,P?NE
RSTACK
?ELS10: PRINT LOOK-AROUND
RTRUE
?ELS5: EQUAL? PRSA,V?WALK-TO \?ELS14
EQUAL? HERE,JOES-BAR \?ELS19
CALL DO-WALK,P?NE
RSTACK
?ELS19: EQUAL? HERE,LADIES-ROOM \FALSE
CALL V-PEE
RSTACK
?ELS14: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS23
EQUAL? HERE,LADIES-ROOM \?ELS28
CALL DO-WALK,P?SW
RSTACK
?ELS28: PRINT LOOK-AROUND
RTRUE
?ELS23: EQUAL? PRSA,V?LOOK-INSIDE \?ELS32
EQUAL? HERE,LADIES-ROOM \?ELS37
PRINT LOOK-AROUND
RTRUE
?ELS37: PRINT CANT-FROM-HERE
RTRUE
?ELS32: EQUAL? PRSA,V?SEARCH \?ELS41
PRINT NOTHING-NEW
RTRUE
?ELS41: EQUAL? PRSA,V?EXAMINE,V?USE \FALSE
CALL PERFORM-PRSA,MENS-ROOM-OBJECT
RTRUE
.FUNCT GENERIC-RESTROOM-F
EQUAL? PRSA,V?ENTER,V?FIND,V?WALK-TO \?ELS5
EQUAL? HERE,JOES-BAR \?ELS5
PRINT DOORS-MARKED
CRLF
RETURN NOT-HERE-OBJECT
?ELS5: EQUAL? PRSA,V?WALK-TO \?ELS9
CALL V-PEE
RETURN NOT-HERE-OBJECT
?ELS9: ZERO? SEX-CHOSEN /FALSE
ZERO? MALE /?ELS17
RETURN MENS-ROOM-OBJECT
?ELS17: RETURN LADIES-ROOM-OBJECT
.FUNCT TOILET-F
EQUAL? PRSA,V?USE,V?PEE-IN \?ELS5
CALL V-PEE
RSTACK
?ELS5: EQUAL? PRSA,V?CLOSE \?ELS7
CALL NO-LID
RSTACK
?ELS7: EQUAL? PRSA,V?FLUSH \?ELS9
PRINTR "Probably the first fresh water to enter this john in a month."
?ELS9: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \FALSE
PRINT YECHH
RTRUE
.FUNCT SINK-F
EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \FALSE
CALL PERFORM,V?EXAMINE,TOILET
RTRUE
.FUNCT STOOL-F
EQUAL? PRSA,V?EXAMINE \?ELS5
FSET? STOOL,TOUCHBIT /?ELS5
PRINTR "It's safe to take, if you receive my meaning."
?ELS5: EQUAL? PRSA,V?CLIMB,V?BOARD \FALSE
FIRST? STOOL \?ELS14
CALL DO-FIRST,STR?228,STOOL
RSTACK
?ELS14: IN? PROTAGONIST,TREE-HOLE \FALSE
MOVE PROTAGONIST,HERE
PRINTI "Using the stool, you"
CALL AND-SIDEKICK,HERE
PRINTR " climb out of the hole."
.FUNCT I-URGE
CALL QUEUE,I-URGE,-1
INC 'URGE-COUNTER
PRINTI " "
EQUAL? URGE-COUNTER,1 \?ELS5
PRINTR "You feel an urge."
?ELS5: EQUAL? URGE-COUNTER,2 \?ELS7
PRINTR "You trace the urge to the region of your bladder."
?ELS7: EQUAL? URGE-COUNTER,3 \?ELS9
PRINTI "Though operating at far below normal speed, your mind begins to conclude that it would be best at this point to "
EQUAL? HERE,MENS-ROOM,LADIES-ROOM \?ELS12
PRINTI "use the"
JUMP ?CND10
?ELS12: PRINTI "find a"
?CND10: PRINTR " bathroom."
?ELS9: EQUAL? URGE-COUNTER,4 \?ELS16
PRINTR "Even if you don't care about your clothes, imagine the embarrassment!"
?ELS16: PRINT YOU-CANT
PRINTI "wait another second. "
EQUAL? HERE,MENS-ROOM,LADIES-ROOM \?ELS23
CALL QUEUE,I-KIDNAPPING,3
CALL DEQUEUE,I-URGE
MOVE PROTAGONIST,HERE
PRINTI "Fortunately, you've stumbled upon a bathroom. A moment later, you are feeling much better, although your thigh muscles are still quivering a tad."
CALL NOTICE-PIZZA-ODOR
RSTACK
?ELS23: PRINTI "Without going into embarrassing detail, you've made a mess. A moment later, before even half the people in Joe's have begun tittering, a flash of green light precedes the arrival of two VERY odd patrons. They rotate their bellies to get a better look at you. As their mouth stalks open you find that, despite an evolution that occurred dozens of astronomical units from Upper Sandusky, these fellows speak in perfect midwestern English.
""This one?""
""A pitiful specimen ... can't even control simple bodily functions ... the tests would be worthless...""
""Agreed. Must've been a screw-up somewhere. Let's take this one instead.""
They grab a blonde woman, whose scream is cut short by another green flash. Three weeks later, when the Earth is invaded and everyone is enslaved by "
PRINTD LGOP
PRINTI ", you wonder if there was a connection."
CRLF
CALL FINISH
RSTACK
.FUNCT PIZZA-F
EQUAL? PRSA,V?TAKE,V?TASTE,V?EAT \FALSE
FSET PIZZA,TOUCHBIT
PRINTI "The very thought is enough to make stronger "
ZERO? MALE \?CND6
PRINTI "wo"
?CND6: PRINTI "men than yourself "
ZERO? NAUGHTY-LEVEL \?ELS11
PRINTI "become quite ill"
JUMP ?CND9
?ELS11: EQUAL? NAUGHTY-LEVEL,1 \?ELS13
PRINTI "vomit"
JUMP ?CND9
?ELS13: PRINTI "puke their guts out"
?CND9: PRINT PERIOD-CR
RTRUE
.FUNCT NOTICE-PIZZA-ODOR
FSET? NOSE,MUNGBIT /FALSE
CALL THIS-IS-IT,ODOR
CRLF
PRINTR " Now that the ""crisis"" has passed, you notice a strong and familiar odor pervading the room."
.FUNCT I-KIDNAPPING
IN? PROTAGONIST,STOOL \?CND1
MOVE STOOL,CELL
?CND1: MOVE PROTAGONIST,HERE
ZERO? MALE /?ELS6
PUTP GARMENT,P?SDESC,STR?229
JUMP ?CND4
?ELS6: PUTP GARMENT,P?SDESC,STR?230
?CND4: PUTP COMIC-BOOK,P?SDESC,STR?231
FCLEAR GARMENT,NARTICLEBIT
FCLEAR GARMENT,VOWELBIT
FCLEAR GARMENT,PLURALBIT
CALL ROB,PROTAGONIST,CELL
MOVE GARMENT,PROTAGONIST
MOVE COMIC-BOOK,PROTAGONIST
CALL INCREMENT-SCORE,1,7
ZERO? VERBOSITY /?CND10
PRINTI " A brilliant flash of green light seems less unusual when followed by the appearance of tentacled aliens, as is the case with the current flash of green light. The tentacles wrap roughly around you as you faint.
After an unknown amount of time... Well, let's "
ZERO? NAUGHTY-LEVEL \?ELS15
PRINTI "be frank"
JUMP ?CND13
?ELS15: PRINTI "cut the "
EQUAL? NAUGHTY-LEVEL,1 \?ELS20
PRINTI "crap"
JUMP ?CND13
?ELS20: PRINTI "bullshit"
?CND13: PRINTI ". 7.3 hours later, you wake. Your head feels as if it's been run over by several locomotives, or at least one very large locomotive, and your clothes are now unrecognizable"
PRINT ELLIPSIS
?CND10: CALL GOTO,CELL
CALL CELL-F,M-END
RSTACK
.ENDI

536
earth.zil Normal file
View File

@ -0,0 +1,536 @@
"EARTH for
LEATHER GODDESSES OF PHOBOS
(c) Copyright 1986 Infocom, Inc. All Rights Reserved."
<ROOM JOES-BAR
(IN ROOMS)
(DESC "Joe's Bar")
(NW PER MENS-ROOM-ENTER-F)
(NE PER LADIES-ROOM-ENTER-F)
(SOUTH "A gust of wind blows you back into the bar.")
(OUT "A gust of wind blows you back into the bar.")
(FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
(GLOBAL MENS-ROOM-OBJECT LADIES-ROOM-OBJECT WINDOW)
(ACTION JOES-BAR-F)
(THINGS <PSEUDO (<> DUST UNIMPORTANT-THING-F)
(FRONT DOOR BAR-DOOR-F)
(<> BAR BAR-F)>)>
<ROUTINE JOES-BAR-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"An undistinguished bar, yet the social center of Upper Sandusky. The front
door is almost lost amidst the hazy maze of neon that shrouds the grimy glass
of the south wall. " ,DOORS-MARKED>)>>
<GLOBAL DOORS-MARKED
"Doors marked \"Ladies\" and \"Gents\" lead, respectively,
northeast and northwest.">
<ROUTINE BAR-DOOR-F ()
<COND (<VERB? ENTER>
<DO-WALK ,P?SOUTH>)
(<VERB? OPEN CLOSE>
<TELL "It's a swinging door." CR>)
(<VERB? LOOK-INSIDE>
<PERFORM-PRSA ,WINDOW>
<RTRUE>)>>
<ROUTINE BAR-F ()
<COND (<VERB? LEAVE EXIT DISEMBARK>
<DO-WALK ,P?SOUTH>)
(<VERB? ENTER WALK-TO BOARD>
<TELL ,LOOK-AROUND>)
(<VERB? EXAMINE>
<V-LOOK>)
(<VERB? SEARCH>
<TELL ,NOTHING-NEW>)>>
<OBJECT JOE
(IN JOES-BAR)
(DESC "Joe")
(SYNONYM JOE BARTENDER)
(FLAGS ACTORBIT NDESCBIT NARTICLEBIT)
(ACTION JOE-F)>
<ROUTINE JOE-F ()
<COND (<OR <VERB? TELL>
<AND <VERB? ASK-FOR>
<PRSI? ,BEER>>>
<TELL "\"You've had enough.\"" CR>
<STOP>)
(<VERB? EXAMINE>
<TELL "Joe is bartending." CR>)>>
<OBJECT BEER
(DESC "mug of beer")
(SYNONYM DRINK MUG BEER)
(ACTION BEER-F)>
<ROUTINE BEER-F ()
<COND (<AND <VERB? BUY>
<EQUAL? ,HERE ,JOES-BAR>>
<TELL "The bartender">
<COND (<RUNNING? ,I-URGE>
<TELL ", a keen judge of bladders,">)>
<TELL " says, ">
<PERFORM ,V?TELL ,JOE>
<RTRUE>)>>
<OBJECT GARMENT
(IN PROTAGONIST)
(SDESC "your overalls")
(SYNONYM OVERALL CLOTHES LOINCLOTH BIKINI)
(ADJECTIVE MY YOUR BRASS TIGHT)
(FLAGS TAKEBIT WEARBIT WORNBIT VOWELBIT NARTICLEBIT PLURALBIT)
(ACTION GARMENT-F)>
<ROUTINE GARMENT-F ()
<COND (<WRONG-SEX-WORD ,GARMENT ,W?LOINCLOTH ,W?BIKINI>
<STOP>)
(<AND <VERB? EXAMINE>
<FSET? ,CELL ,TOUCHBIT>>
<TELL
"The " D ,GARMENT ", tight but comfy,
covers only the \"bare essentials.\"" CR>)
(<VERB? LOOK-INSIDE>
<TELL
"1. You|
2. A " D ,COMIC-BOOK CR>)
;(<AND <VERB? TAKE TAKE-OFF>
,GONE-APE>
<TELL ;"victim of shrinking"
"In an odd way, this seems to fall in the category of exposing yourself." CR>)
(<OR <VERB? TAKE-OFF>
<AND <VERB? TAKE>
,GONE-APE>>
;<COND (<EQUAL? ,HERE ,JOES-BAR>
<TELL ;"victim of shrinking"
"You instantly become a legend in the annals of Joe's Bar history. As the
town policeman leads you away, wrapped in a blanket, you notice a flash of
green light and wild screams from inside the bar. When the earth is invaded
three weeks later, you wonder...">)>
<TELL "But" T ,GARMENT>
<COND (<FSET? ,GARMENT ,PLURALBIT>
<TELL " are">)
(T
<TELL " is">)>
<TELL " so becoming!" CR>)>>
<OBJECT POCKET
(IN GLOBAL-OBJECTS)
(DESC "pocket")
(SYNONYM POCKET)
(ADJECTIVE ;POCKET BACK) ;"why was POCKET also an adjective?"
(ACTION POCKET-F)>
<ROUTINE POCKET-F ()
<COND (<VERB? LOOK-INSIDE>
<TELL "There's" A ,COMIC-BOOK " there." CR>)
(<AND <VERB? PUT>
<PRSI? ,POCKET>>
<TELL "There's no room. ">
<PERFORM ,V?LOOK-INSIDE ,POCKET>
<RTRUE>)>>
<OBJECT COMIC-BOOK
(IN PROTAGONIST)
(SDESC "comic book")
(SYNONYM BOOK RULES)
(ADJECTIVE RULE COMIC 3-D)
(FLAGS READBIT TAKEBIT)
(ACTION COMIC-BOOK-F)>
<ROUTINE COMIC-BOOK-F ()
<COND (<AND <VERB? REMOVE TAKE BURN> ;"TAKE possible as gorilla"
<PRSO? ,COMIC-BOOK>>
<TELL
"You change your mind and" ,STICK-IT-IN-POCKET " instead." CR>)
(<VERB? READ LOOK-INSIDE OPEN>
<COND (<FSET? ,CELL ,TOUCHBIT>
<TELL
"\"Hello, Prisoner!|
You are a captive of " 'LGOP ". As an experimental subject, your unspeakably
painful death will help our effort to enslave humanity and turn the Earth into
our private pleasure world. Consider this to be a great honor, human.\"|
The remainder of the book covers the exacting rules of behavior expected
of a prisoner of " 'LGOP ". For example, it mentions that escapees will be
killed immediately and painfully by crack Leckbandi guards.">)
(T
<IN-YOUR-PACKAGE "3-D comic book">)>
<TELL
" After reading it, you" ,STICK-IT-IN-POCKET ,PERIOD-CR>)>>
<OBJECT FLASHLIGHT
(IN PROTAGONIST)
(DESC "flashlight")
(SYNONYM FLASHLIGHT LIGHT)
(ADJECTIVE FLASH)
(FLAGS TAKEBIT LIGHTBIT)
(ACTION FLASHLIGHT-F)>
<ROUTINE FLASHLIGHT-F ()
<COND (<VERB? OPEN LOOK-INSIDE>
<TELL "The " 'FLASHLIGHT " has rusted shut." CR>)
(<AND <VERB? POINT>
<FSET? ,FLASHLIGHT ,ONBIT>
,PRSI>
<TELL ,NOTHING-NEW>)>>
<ROOM MENS-ROOM
(IN ROOMS)
(DESC "Gents' Room")
(SE TO JOES-BAR)
(OUT TO JOES-BAR)
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(GLOBAL TOILET ODOR WATER MENS-ROOM-OBJECT)
(ODOR "pizza")
(ODOR-NUMBER 1)
(ACTION BATHROOM-F)
(THINGS <PSEUDO (<> SINK SINK-F)>)>
<ROOM LADIES-ROOM
(IN ROOMS)
(DESC "Ladies' Room")
(SW TO JOES-BAR)
(OUT TO JOES-BAR)
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(GLOBAL TOILET ODOR WATER LADIES-ROOM-OBJECT)
(ODOR "pizza")
(ODOR-NUMBER 1)
(ACTION BATHROOM-F)
(THINGS <PSEUDO (<> SINK SINK-F)>)>
<ROUTINE MENS-ROOM-ENTER-F ()
<COND (<NOT ,SEX-CHOSEN>
<SETG SEX-CHOSEN T>
<SETG MALE T>
<MOVE ,STOOL ,MENS-ROOM>
<FSET ,SULTANS-WIFE ,FEMALEBIT>
<FSET ,HAREM-GUARD ,FEMALEBIT>
<FSET ,YOUNG-WOMAN ,FEMALEBIT>
<PUTP ,SIDEKICK ,P?SDESC "Trent">
<PUTP ,SIDEKICKS-BODY ,P?SDESC "Trent's body">
<PUTP ,SPLATTERED-SIDEKICK ,P?SDESC "bits of splattered Trent">
<PUTP ,THORBAST ,P?SDESC "Thorbast">
<PUTP ,THORBAST-SWORD ,P?SDESC "his sword">
<PUTP ,SULTAN ,P?SDESC "Sultan">
<PUTP ,YOUNG-WOMAN ,P?SDESC "young woman">
<PUTP ,PHOTO ,P?SDESC "photo of Jean Harlow">
<PUTP ,HAREM ,P?ODOR "perfume">
,MENS-ROOM)
(,MALE
,MENS-ROOM)
(T
<PRINTD ,MENS-ROOM>
<WRONG-BATHROOM
"burly man in a partial state of undress unleashes a torrent of lewd remarks">
<RFALSE>)>>
<ROUTINE LADIES-ROOM-ENTER-F ()
<COND (<NOT ,SEX-CHOSEN>
<SETG SEX-CHOSEN T>
<MOVE ,STOOL ,LADIES-ROOM>
<FSET ,ME ,FEMALEBIT>
<FSET ,SULTAN ,FEMALEBIT>
<FSET ,SIDEKICK ,FEMALEBIT>
<FSET ,THORBAST ,FEMALEBIT>
<PUTP ,SIDEKICK ,P?SDESC "Tiffany">
<PUTP ,SIDEKICKS-BODY ,P?SDESC "Tiffany's body">
<PUTP ,SPLATTERED-SIDEKICK ,P?SDESC
"bits of splattered Tiffany">
<PUTP ,THORBAST ,P?SDESC "Thorbala">
<PUTP ,THORBAST-SWORD ,P?SDESC "her sword">
<PUTP ,SULTAN ,P?SDESC "Sultaness">
<PUTP ,YOUNG-WOMAN ,P?SDESC "young man">
<PUTP ,PHOTO ,P?SDESC "photo of Douglas Fairbanks">
<PUTP ,HAREM ,P?ODOR "cologne">
,LADIES-ROOM)
(,MALE
<PRINTD ,LADIES-ROOM>
<WRONG-BATHROOM
"female patron begins pummelling you with a purse that must
surely contain concrete">
<RFALSE>)
(T
,LADIES-ROOM)>>
<ROUTINE WRONG-BATHROOM (STRING)
<TELL
"| As you enter the wrong bathroom, a " .STRING ". You hustle out.||">
<DESCRIBE-ROOM>>
<ROUTINE BATHROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This filthy bathroom belies the existence of disinfectant. A single toilet and
sink are the only fixtures. More breathable air can be found to the south">
<COND (<EQUAL? ,HERE ,MENS-ROOM>
<TELL "ea">)
(T
<TELL "we">)>
<TELL "st.">)
(<EQUAL? .RARG ,M-SMELL>
<THIS-IS-IT ,PIZZA>
<MOVE ,PIZZA ,HERE>
<TELL
"You trace the smell to" A ,PIZZA ", crumpled in the corner. [Incidentally,
we had some pretty putrid scents available, all of which would've seemed right
at home in a filthy restroom. In the end, we were too kind to use them --
but we were sorely tempted!]">)>>
<OBJECT MENS-ROOM-OBJECT
(IN LOCAL-GLOBALS)
(DESC "gents' restroom")
(SYNONYM BATHROOM RESTROOM ROOM)
(ADJECTIVE MEN\'S GENT\'S MENS GENTS FILTHY)
(GENERIC GENERIC-RESTROOM-F)
(ACTION MENS-ROOM-OBJECT-F)>
<ROUTINE MENS-ROOM-OBJECT-F ()
<COND (<VERB? FIND ENTER>
<COND (<EQUAL? ,HERE ,JOES-BAR>
<DO-WALK ,P?NW>)
(T
<TELL ,LOOK-AROUND>)>)
(<VERB? WALK-TO>
<COND (<EQUAL? ,HERE ,JOES-BAR>
<DO-WALK ,P?NW>)
(<EQUAL? ,HERE ,MENS-ROOM>
<V-PEE>)>)
(<VERB? EXIT LEAVE DISEMBARK>
<COND (<EQUAL? ,HERE ,MENS-ROOM>
<DO-WALK ,P?SE>)
(T
<TELL ,LOOK-AROUND>)>)
(<VERB? LOOK-INSIDE>
<COND (<EQUAL? ,HERE ,MENS-ROOM>
<TELL ,LOOK-AROUND>)
(T
<TELL ,CANT-FROM-HERE>)>)
(<VERB? SEARCH>
<TELL ,NOTHING-NEW>)
(<VERB? USE>
<COND (<EQUAL? ,HERE ,JOES-BAR>
<TELL ,LOOK-AROUND>)
(T
<V-PEE>)>)
(<VERB? EXAMINE>
<TELL "Filthy." CR>)>>
<OBJECT LADIES-ROOM-OBJECT
(IN LOCAL-GLOBALS)
(DESC "ladies' restroom")
(SYNONYM BATHROOM RESTROOM ROOM)
(ADJECTIVE LADIES WOMEN FILTHY)
(GENERIC GENERIC-RESTROOM-F)
(ACTION LADIES-ROOM-OBJECT-F)>
<ROUTINE LADIES-ROOM-OBJECT-F ()
<COND (<VERB? FIND ENTER>
<COND (<EQUAL? ,HERE ,JOES-BAR>
<DO-WALK ,P?NE>)
(T
<TELL ,LOOK-AROUND>)>)
(<VERB? WALK-TO>
<COND (<EQUAL? ,HERE ,JOES-BAR>
<DO-WALK ,P?NE>)
(<EQUAL? ,HERE ,LADIES-ROOM>
<V-PEE>)>)
(<VERB? EXIT LEAVE DISEMBARK>
<COND (<EQUAL? ,HERE ,LADIES-ROOM>
<DO-WALK ,P?SW>)
(T
<TELL ,LOOK-AROUND>)>)
(<VERB? LOOK-INSIDE>
<COND (<EQUAL? ,HERE ,LADIES-ROOM>
<TELL ,LOOK-AROUND>)
(T
<TELL ,CANT-FROM-HERE>)>)
(<VERB? SEARCH>
<TELL ,NOTHING-NEW>)
(<VERB? USE EXAMINE>
<PERFORM-PRSA ,MENS-ROOM-OBJECT>
<RTRUE>)>>
<ROUTINE GENERIC-RESTROOM-F ()
<COND (<AND <VERB? WALK-TO FIND ENTER>
<EQUAL? ,HERE ,JOES-BAR>>
<TELL ,DOORS-MARKED CR>
<RETURN ,NOT-HERE-OBJECT>)
(<VERB? WALK-TO>
<V-PEE>
<RETURN ,NOT-HERE-OBJECT>)
(,SEX-CHOSEN
<COND (,MALE
<RETURN ,MENS-ROOM-OBJECT>)
(T
<RETURN ,LADIES-ROOM-OBJECT>)>)
(T
<RFALSE>)>>
<OBJECT TOILET
(IN LOCAL-GLOBALS)
(DESC "toilet")
(SYNONYM TOILET)
(FLAGS VEHBIT CONTBIT OPENBIT)
(CAPACITY 2)
(ACTION TOILET-F)>
<ROUTINE TOILET-F ()
<COND (<VERB? PEE-IN USE>
<V-PEE>)
(<VERB? CLOSE>
<NO-LID>)
(<VERB? FLUSH>
<TELL
"Probably the first fresh water to enter this john in a month." CR>)
(<VERB? LOOK-INSIDE EXAMINE>
<TELL ,YECHH>)>>
<ROUTINE SINK-F ()
<COND (<VERB? LOOK-INSIDE EXAMINE>
<PERFORM ,V?EXAMINE ,TOILET>
<RTRUE>)>>
<OBJECT STOOL
(DESC "stool")
(NO-T-DESC "sool")
(SYNONYM STOOL SOOL)
(ADJECTIVE SMALL WOODEN)
(SIZE 50)
(CAPACITY 20)
(FLAGS TAKEBIT VEHBIT SURFACEBIT CONTBIT OPENBIT SEARCHBIT BURNBIT)
(ACTION STOOL-F)>
<ROUTINE STOOL-F ()
<COND (<AND <VERB? EXAMINE>
<NOT <FSET? ,STOOL ,TOUCHBIT>>>
<TELL "It's safe to take, if you receive my meaning." CR>)
(<VERB? BOARD CLIMB>
<COND (<FIRST? ,STOOL>
<DO-FIRST "clear off" ,STOOL>)
(<IN? ,PROTAGONIST ,TREE-HOLE>
<MOVE ,PROTAGONIST ,HERE>
<TELL "Using the stool, you">
<AND-SIDEKICK ,HERE>
<TELL " climb out of the hole." CR>)>)>>
<GLOBAL MALE <>> ;"...is main character male? T = male, <> = female."
<GLOBAL SEX-CHOSEN <>>
<GLOBAL URGE-COUNTER 0>
<ROUTINE I-URGE ()
<QUEUE I-URGE -1>
<SETG URGE-COUNTER <+ ,URGE-COUNTER 1>>
<TELL " ">
<COND (<EQUAL? ,URGE-COUNTER 1>
<TELL "You feel an urge." CR>)
(<EQUAL? ,URGE-COUNTER 2>
<TELL "You trace the urge to the region of your bladder." CR>)
(<EQUAL? ,URGE-COUNTER 3>
<TELL
"Though operating at far below normal speed, your mind begins to conclude
that it would be best at this point to ">
<COND (<EQUAL? ,HERE ,MENS-ROOM ,LADIES-ROOM>
<TELL "use the">)
(T
<TELL "find a">)>
<TELL " bathroom." CR>)
(<EQUAL? ,URGE-COUNTER 4>
<TELL
"Even if you don't care about your clothes, imagine the embarrassment!" CR>)
(T
<TELL ,YOU-CANT "wait another second. ">
<COND (<EQUAL? ,HERE ,MENS-ROOM ,LADIES-ROOM>
<QUEUE I-KIDNAPPING 3>
<DEQUEUE I-URGE>
<MOVE ,PROTAGONIST ,HERE>
<TELL
"Fortunately, you've stumbled upon a bathroom. A moment later, you are feeling
much better, although your thigh muscles are still quivering a tad.">
<NOTICE-PIZZA-ODOR>)
(T
<TELL
"Without going into embarrassing detail, you've made a mess. A moment later,
before even half the people in Joe's have begun tittering, a flash of green
light precedes the arrival of two VERY odd patrons. They rotate their bellies
to get a better look at you. As their mouth stalks open you find that, despite
an evolution that occurred dozens of astronomical units from Upper Sandusky,
these fellows speak in perfect midwestern English.|
\"This one?\"|
\"A pitiful specimen ... can't even control simple bodily functions ...
the tests would be worthless...\"|
\"Agreed. Must've been a screw-up somewhere. Let's take this one instead.\"|
They grab a blonde woman, whose scream is cut short by another green flash.
Three weeks later, when the Earth is invaded and everyone is enslaved by "
'LGOP ", you wonder if there was a connection." CR>
<FINISH>)>)>>
<OBJECT PIZZA
(DESC "dubious slice of pizza")
(SYNONYM SLICE PIZZA)
(ADJECTIVE DUBIOUS AGING CRUMPLED)
(FLAGS TRYTAKEBIT)
(ACTION PIZZA-F)>
<ROUTINE PIZZA-F ()
<COND (<VERB? EAT TASTE TAKE>
<FSET ,PIZZA ,TOUCHBIT> ;"for V-VOMIT"
<TELL "The very thought is enough to make stronger ">
<COND (<NOT ,MALE>
<TELL "wo">)>
<TELL "men than yourself ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<TELL "become quite ill">)
(<EQUAL? ,NAUGHTY-LEVEL 1>
<TELL "vomit">)
(T
<TELL "puke their guts out">)>
<TELL ,PERIOD-CR>)>>
<ROUTINE NOTICE-PIZZA-ODOR ()
<COND (<NOT <FSET? ,NOSE ,MUNGBIT>>
<THIS-IS-IT ,ODOR>
<TELL CR
" Now that the \"crisis\" has passed, you notice a strong and familiar
odor pervading the room." CR>)>>
<ROUTINE I-KIDNAPPING ()
<COND (<IN? ,PROTAGONIST ,STOOL>
<MOVE ,STOOL ,CELL>)>
<MOVE ,PROTAGONIST ,HERE>
<COND (,MALE
<PUTP ,GARMENT ,P?SDESC "brass loincloth">)
(T
<PUTP ,GARMENT ,P?SDESC "brass bikini">)>
<PUTP ,COMIC-BOOK ,P?SDESC "rule book">
<FCLEAR ,GARMENT ,NARTICLEBIT>
<FCLEAR ,GARMENT ,VOWELBIT>
<FCLEAR ,GARMENT ,PLURALBIT>
<ROB ,PROTAGONIST ,CELL> ;"drop everything you have but..."
<MOVE ,GARMENT ,PROTAGONIST> ;"...your clothes..."
<MOVE ,COMIC-BOOK ,PROTAGONIST> ;"...and the rule book"
<INCREMENT-SCORE 1 7>
<COND (<NOT <EQUAL? ,VERBOSITY 0>>
<TELL
" A brilliant flash of green light seems less unusual when followed by the
appearance of tentacled aliens, as is the case with the current flash of green
light. The tentacles wrap roughly around you as you faint.|
After an unknown amount of time... Well, let's ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
<TELL "be frank">)
(T
<TELL "cut the ">
<COND (<EQUAL? ,NAUGHTY-LEVEL 1>
<TELL "crap">)
(T
<TELL "bullshit">)>)>
<TELL
". 7.3 hours later, you wake. Your head feels as if it's been run over by
several locomotives, or at least one very large locomotive, and your clothes
are now unrecognizable" ,ELLIPSIS>)>
<GOTO ,CELL>
<CELL-F ,M-END>>

1560
globals.zap Normal file

File diff suppressed because it is too large Load Diff

1775
globals.zil Normal file

File diff suppressed because it is too large Load Diff

3367
mars.zap Normal file

File diff suppressed because it is too large Load Diff

4226
mars.zil Normal file

File diff suppressed because it is too large Load Diff

602
misc.zap Normal file
View File

@ -0,0 +1,602 @@
.FUNCT PICK-ONE,TBL,LENGTH,CNT,RND,MSG,RFROB
GET TBL,0 >LENGTH
GET TBL,1 >CNT
DEC 'LENGTH
ADD TBL,2 >TBL
MUL CNT,2
ADD TBL,STACK >RFROB
SUB LENGTH,CNT
RANDOM STACK >RND
GET RFROB,RND >MSG
GET RFROB,1
PUT RFROB,RND,STACK
PUT RFROB,1,MSG
INC 'CNT
EQUAL? CNT,LENGTH \?CND1
SET 'CNT,0
?CND1: PUT TBL,0,CNT
RETURN MSG
.FUNCT DPRINT,OBJ
EQUAL? OBJ,SULTANS-WIFE \?ELS5
PRINTI "Sultan"
ZERO? MALE /?ELS8
PRINTI "'s wife #"
JUMP ?CND6
?ELS8: PRINTI "ess' husband #"
?CND6: PRINTN CHOICE-NUMBER
RTRUE
?ELS5: FSET? OBJ,UNTEEDBIT \?ELS13
GETP OBJ,P?NO-T-DESC
PRINT STACK
RTRUE
?ELS13: GETP OBJ,P?SDESC
ZERO? STACK /?ELS15
GETP OBJ,P?SDESC
PRINT STACK
RTRUE
?ELS15: PRINTD OBJ
RTRUE
.FUNCT DPRINT-SIDEKICK
CALL DPRINT,SIDEKICK
RSTACK
.FUNCT APRINT,OBJ
FSET? OBJ,NARTICLEBIT \?ELS3
PRINTI " "
JUMP ?CND1
?ELS3: FSET? OBJ,VOWELBIT \?ELS5
PRINTI " an "
JUMP ?CND1
?ELS5: PRINTI " a "
?CND1: CALL DPRINT,OBJ
RSTACK
.FUNCT TPRINT,OBJ
FSET? OBJ,NARTICLEBIT \?ELS3
PRINTI " "
JUMP ?CND1
?ELS3: PRINTI " the "
?CND1: CALL DPRINT,OBJ
RSTACK
.FUNCT TPRINT-PRSO
CALL TPRINT,PRSO
RSTACK
.FUNCT TPRINT-PRSI
CALL TPRINT,PRSI
RSTACK
.FUNCT ARPRINT,OBJ
CALL APRINT,OBJ
PRINT PERIOD-CR
RTRUE
.FUNCT TRPRINT,OBJ
CALL TPRINT,OBJ
PRINT PERIOD-CR
RTRUE
.FUNCT GO
START::
?FCN: SET 'HERE,WARNING
USL
PRINTI " Some material in this story may not be suitable for children, especially the parts involving sex, which no one should know anything about until reaching the age of eighteen (twenty-one in certain states). This story is also unsuitable for censors, members of the Moral Majority, and anyone else who thinks that sex is dirty rather than fun.
The attitudes expressed and language used in this story are representative only of the views of the author, and in no way represent the views of Infocom, Inc. or its employees, many of whom are children, censors, and members of the Moral Majority. (But very few of whom, based on last year's Christmas Party, think that sex is dirty.)
By now, all the folks who might be offended by "
PRINT LGOP-CAPS
PRINTI " have whipped their disk out of their drive and, evidence in hand, are indignantly huffing toward their dealer, their lawyer, or their favorite repression-oriented politico. So.."
PRINT HIT-RETURN
PRINTI "begin!"
READ P-INBUF,P-LEXV
CALL CLEAR-SCREEN
SET 'WINNER,PROTAGONIST
SET 'HERE,JOES-BAR
USL
PRINTI "The place: Upper Sandusky, Ohio. The time: 1936. The beer: at a nickel a mug, you don't ask for brand names. All you know is that your fifth one tasted as bad as the first."
CRLF
CRLF
CALL V-VERSION
CRLF
CALL V-LOOK
CALL I-URGE
CALL MAIN-LOOP
JUMP ?FCN
.FUNCT CLEAR-SCREEN,CNT=24
?PRG1: CRLF
DEC 'CNT
ZERO? CNT \?PRG1
RTRUE
.FUNCT MAIN-LOOP,TRASH
?PRG1: CALL MAIN-LOOP-1 >TRASH
JUMP ?PRG1
.FUNCT MAIN-LOOP-1,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,?TMP1
SET 'CNT,0
SET 'OBJ,FALSE-VALUE
SET 'PTBL,TRUE-VALUE
CALL PARSER >P-WON
ZERO? P-WON /?ELS3
GET P-PRSI,P-MATCHLEN >ICNT
GET P-PRSO,P-MATCHLEN >OCNT
ZERO? P-IT-OBJECT /?CND4
CALL ACCESSIBLE?,P-IT-OBJECT
ZERO? STACK /?CND4
SET 'TMP,FALSE-VALUE
?PRG9: IGRTR? 'CNT,ICNT \?ELS13
JUMP ?REP10
?ELS13: GET P-PRSI,CNT
EQUAL? STACK,IT \?PRG9
CALL TOO-DARK-FOR-IT?
ZERO? STACK \TRUE
PUT P-PRSI,CNT,P-IT-OBJECT
SET 'TMP,TRUE-VALUE
?REP10: ZERO? TMP \?CND22
SET 'CNT,0
?PRG25: IGRTR? 'CNT,OCNT \?ELS29
JUMP ?CND22
?ELS29: GET P-PRSO,CNT
EQUAL? STACK,IT \?PRG25
CALL TOO-DARK-FOR-IT?
ZERO? STACK \TRUE
PUT P-PRSO,CNT,P-IT-OBJECT
?CND22: SET 'CNT,0
?CND4: ZERO? OCNT \?ELS42
PUSH OCNT
JUMP ?CND38
?ELS42: GRTR? OCNT,1 \?ELS44
SET 'TBL,P-PRSO
ZERO? ICNT \?ELS47
SET 'OBJ,FALSE-VALUE
JUMP ?CND45
?ELS47: GET P-PRSI,1 >OBJ
?CND45: PUSH OCNT
JUMP ?CND38
?ELS44: GRTR? ICNT,1 \?ELS51
SET 'PTBL,FALSE-VALUE
SET 'TBL,P-PRSI
GET P-PRSO,1 >OBJ
PUSH ICNT
JUMP ?CND38
?ELS51: PUSH 1
?CND38: SET 'NUM,STACK
ZERO? OBJ \?CND54
EQUAL? ICNT,1 \?CND54
GET P-PRSI,1 >OBJ
?CND54: EQUAL? PRSA,V?WALK \?ELS61
CALL PERFORM-PRSA,PRSO >V
JUMP ?CND59
?ELS61: ZERO? NUM \?ELS63
GETB P-SYNTAX,P-SBITS
BAND STACK,P-SONUMS
ZERO? STACK \?ELS66
CALL PERFORM-PRSA >V
SET 'PRSO,FALSE-VALUE
JUMP ?CND59
?ELS66: ZERO? LIT \?ELS68
PRINT TOO-DARK
CRLF
CALL STOP
JUMP ?CND59
?ELS68: PRINTI "There isn't anything to "
GET P-ITBL,P-VERBN >TMP
EQUAL? PRSA,V?TELL \?ELS73
PRINTI "talk to"
JUMP ?CND71
?ELS73: ZERO? P-OFLAG \?THN76
ZERO? P-MERGED /?ELS75
?THN76: GET TMP,0
PRINTB STACK
JUMP ?CND71
?ELS75: GETB TMP,2 >?TMP1
GETB TMP,3
CALL WORD-PRINT,?TMP1,STACK
?CND71: PRINTI "!"
CRLF
SET 'V,FALSE-VALUE
CALL STOP
JUMP ?CND59
?ELS63: SET 'P-NOT-HERE,0
SET 'P-MULT,FALSE-VALUE
GRTR? NUM,1 \?CND82
SET 'P-MULT,TRUE-VALUE
?CND82: SET 'TMP,FALSE-VALUE
?PRG85: IGRTR? 'CNT,NUM \?ELS89
GRTR? P-NOT-HERE,0 \?ELS92
PRINTI "[The "
EQUAL? P-NOT-HERE,NUM /?CND93
PRINTI "other "
?CND93: PRINTI "object"
EQUAL? P-NOT-HERE,1 /?CND96
PRINTI "s"
?CND96: PRINTI " that you mentioned "
EQUAL? P-NOT-HERE,1 /?ELS101
PRINTI "are"
JUMP ?CND99
?ELS101: PRINTI "is"
?CND99: PRINTI "n't here.]"
CRLF
JUMP ?REP86
?ELS92: ZERO? TMP \?REP86
CALL REFERRING
JUMP ?REP86
?ELS89: ZERO? PTBL /?ELS110
GET P-PRSO,CNT >OBJ1
JUMP ?CND108
?ELS110: GET P-PRSI,CNT >OBJ1
?CND108: ZERO? PTBL /?ELS118
PUSH OBJ1
JUMP ?CND114
?ELS118: PUSH OBJ
?CND114: SET 'PRSO,STACK
ZERO? PTBL /?ELS126
PUSH OBJ
JUMP ?CND122
?ELS126: PUSH OBJ1
?CND122: SET 'PRSI,STACK
GRTR? NUM,1 /?THN133
GET P-ITBL,P-NC1
GET STACK,0
EQUAL? STACK,W?ALL,W?EVERYT \?CND130
?THN133: CALL DONT-ALL,OBJ1
ZERO? STACK /?ELS137
JUMP ?PRG85
?ELS137: EQUAL? OBJ1,IT \?ELS142
CALL DPRINT,P-IT-OBJECT
JUMP ?CND140
?ELS142: EQUAL? OBJ1,HIM \?ELS144
CALL DPRINT,P-HIM-OBJECT
JUMP ?CND140
?ELS144: EQUAL? OBJ1,HER \?ELS146
CALL DPRINT,P-HER-OBJECT
JUMP ?CND140
?ELS146: CALL DPRINT,OBJ1
?CND140: PRINTI ": "
?CND130: SET 'TMP,TRUE-VALUE
CALL PERFORM-PRSA,PRSO,PRSI >V
EQUAL? V,M-FATAL \?PRG85
JUMP ?CND59
?REP86:
?CND59: EQUAL? V,M-FATAL \?CND152
SET 'P-CONT,FALSE-VALUE
?CND152: CALL CLOCKER-VERB?
ZERO? STACK /?CND1
EQUAL? PRSA,V?TELL /?CND1
ZERO? P-WON /?CND1
GETP HERE,P?ACTION
CALL STACK,M-END >V
JUMP ?CND1
?ELS3: SET 'P-CONT,FALSE-VALUE
?CND1: ZERO? P-WON /?CND162
CALL CLOCKER-VERB?
ZERO? STACK /?CND166
CALL CLOCKER >V
?CND166: SET 'P-PRSA-WORD,FALSE-VALUE
SET 'PRSA,FALSE-VALUE
SET 'PRSO,FALSE-VALUE
SET 'PRSI,FALSE-VALUE
?CND162: ZERO? AWAITING-FAKE-ORPHAN /FALSE
ZERO? P-OFLAG \FALSE
CALL ORPHAN-VERB
RSTACK
.FUNCT TOO-DARK-FOR-IT?
ZERO? LIT \FALSE
CALL ULTIMATELY-IN?,P-IT-OBJECT,WINNER
ZERO? STACK \FALSE
IN? WINNER,P-IT-OBJECT /FALSE
PRINT TOO-DARK
CRLF
RTRUE
.FUNCT DONT-ALL,OBJ1,L
LOC OBJ1 >L
EQUAL? OBJ1,NOT-HERE-OBJECT \?ELS5
INC 'P-NOT-HERE
RTRUE
?ELS5: EQUAL? PRSA,V?TAKE \?ELS7
ZERO? PRSI /?ELS7
IN? PRSO,PRSI \TRUE
?ELS7: CALL ACCESSIBLE?,OBJ1
ZERO? STACK /TRUE
EQUAL? P-GETFLAGS,P-ALL \FALSE
ZERO? PRSI /?ELS18
EQUAL? PRSO,PRSI /TRUE
?ELS18: EQUAL? PRSA,V?TAKE \?ELS22
FSET? OBJ1,TAKEBIT /?ELS27
FSET? OBJ1,TRYTAKEBIT \TRUE
?ELS27: EQUAL? L,WINNER,HERE,PRSI /?ELS31
LOC WINNER
EQUAL? L,STACK /?ELS31
FSET? L,SURFACEBIT \TRUE
FSET? L,TAKEBIT /TRUE
RFALSE
?ELS31: ZERO? PRSI \FALSE
CALL ULTIMATELY-IN?,PRSO
ZERO? STACK /FALSE
RTRUE
?ELS22: EQUAL? PRSA,V?PUT-ON,V?PUT,V?DROP /?THN53
EQUAL? PRSA,V?SGIVE,V?GIVE \?ELS50
?THN53: IN? OBJ1,WINNER \TRUE
?ELS50: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE
IN? PRSO,WINNER /FALSE
CALL ULTIMATELY-IN?,PRSO,PRSI
ZERO? STACK \TRUE
RFALSE
.FUNCT CLOCKER-VERB?
EQUAL? PRSA,V?STATUS,V?HELP,V?VERSION /FALSE
EQUAL? PRSA,V?$COMMAND,V?$UNRECORD,V?$RECORD /FALSE
EQUAL? PRSA,V?RESTORE,V?SAVE,V?$RANDOM /FALSE
EQUAL? PRSA,V?SCRIPT,V?QUIT,V?RESTART /FALSE
EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?UNSCRIPT /FALSE
EQUAL? PRSA,V?TAME,V?LEWD,V?VERBOSE /FALSE
EQUAL? PRSA,V?SUGGESTIVE \TRUE
RFALSE
.FUNCT FAKE-ORPHAN,IT-WAS-USED=0,TMP,?TMP1
CALL ORPHAN,P-SYNTAX,FALSE-VALUE
GET P-OTBL,P-VERBN >TMP
PRINTI "[Be specific: Wh"
ZERO? IT-WAS-USED /?ELS3
PRINTI "at object"
JUMP ?CND1
?ELS3: PRINTI "o"
?CND1: PRINTI " do you want to "
ZERO? TMP \?ELS9
PRINTI "tell"
JUMP ?CND7
?ELS9: GETB P-VTBL,2
ZERO? STACK \?ELS11
GET TMP,0
PRINTB STACK
JUMP ?CND7
?ELS11: GETB TMP,2 >?TMP1
GETB TMP,3
CALL WORD-PRINT,?TMP1,STACK
PUTB P-VTBL,2,0
?CND7: SET 'P-OFLAG,TRUE-VALUE
SET 'P-WON,FALSE-VALUE
GETB P-SYNTAX,P-SPREP1
CALL PREP-PRINT,STACK
PRINTR "?]"
.FUNCT PERFORM-PRSA,O=0,I=0
CALL PERFORM,PRSA,O,I
RSTACK
.FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI
SET 'OA,PRSA
SET 'OO,PRSO
SET 'OI,PRSI
SET 'PRSA,A
EQUAL? IT,O,I \?CND1
CALL VISIBLE?,P-IT-OBJECT
ZERO? STACK /?ELS6
EQUAL? IT,O \?ELS9
SET 'O,P-IT-OBJECT
JUMP ?CND4
?ELS9: SET 'I,P-IT-OBJECT
JUMP ?CND4
?ELS6: ZERO? I \?ELS16
CALL FAKE-ORPHAN,TRUE-VALUE
RETURN 8
?ELS16: CALL REFERRING
RETURN 8
?CND4:
?CND1: EQUAL? HIM,O,I \?CND21
CALL VISIBLE?,P-HIM-OBJECT
ZERO? STACK /?ELS26
EQUAL? HIM,O \?ELS29
SET 'O,P-HIM-OBJECT
JUMP ?CND24
?ELS29: SET 'I,P-HIM-OBJECT
JUMP ?CND24
?ELS26: ZERO? I \?ELS36
CALL FAKE-ORPHAN
RETURN 8
?ELS36: CALL REFERRING,TRUE-VALUE
RETURN 8
?CND24:
?CND21: EQUAL? HER,O,I \?CND41
CALL VISIBLE?,P-HER-OBJECT
ZERO? STACK /?ELS46
EQUAL? HER,O \?ELS49
SET 'O,P-HER-OBJECT
JUMP ?CND44
?ELS49: SET 'I,P-HER-OBJECT
JUMP ?CND44
?ELS46: ZERO? I \?ELS56
CALL FAKE-ORPHAN
RETURN 8
?ELS56: CALL REFERRING,TRUE-VALUE
RETURN 8
?CND44:
?CND41: SET 'PRSO,O
SET 'PRSI,I
EQUAL? A,V?WALK /?ELS63
EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?ELS63
CALL D-APPLY,STR?1,NOT-HERE-OBJECT-F >V
ZERO? V /?ELS63
SET 'P-WON,FALSE-VALUE
JUMP ?CND61
?ELS63: SET 'O,PRSO
SET 'I,PRSI
CALL THIS-IS-IT,PRSI
CALL THIS-IS-IT,PRSO
GETP WINNER,P?ACTION
CALL D-APPLY,STR?2,STACK >V
ZERO? V /?ELS70
JUMP ?CND61
?ELS70: GET PREACTIONS,A
CALL D-APPLY,STR?3,STACK >V
ZERO? V /?ELS72
JUMP ?CND61
?ELS72: ZERO? I /?ELS74
GETP I,P?ACTION
CALL D-APPLY,STR?4,STACK >V
ZERO? V /?ELS74
JUMP ?CND61
?ELS74: ZERO? O /?ELS78
EQUAL? A,V?WALK /?ELS78
GETP O,P?ACTION
CALL D-APPLY,STR?5,STACK >V
ZERO? V /?ELS78
JUMP ?CND61
?ELS78: GET ACTIONS,A
CALL D-APPLY,FALSE-VALUE,STACK >V
ZERO? V /?CND61
?CND61: SET 'PRSA,OA
SET 'PRSO,OO
SET 'PRSI,OI
RETURN V
.FUNCT D-APPLY,STR,FCN,FOO=0,RES
ZERO? FCN /FALSE
ZERO? FOO /?ELS12
CALL FCN,FOO
JUMP ?CND8
?ELS12: CALL FCN
?CND8: SET 'RES,STACK
RETURN RES
.FUNCT DEQUEUE,RTN
CALL QUEUED?,RTN >RTN
ZERO? RTN /FALSE
PUT RTN,C-RTN,0
RTRUE
.FUNCT QUEUED?,RTN,C,E
ADD C-TABLE,C-TABLELEN >E
ADD C-TABLE,C-INTS >C
?PRG1: EQUAL? C,E /FALSE
GET C,C-RTN
EQUAL? STACK,RTN \?CND3
GET C,C-TICK
ZERO? STACK /FALSE
RETURN C
?CND3: ADD C,C-INTLEN >C
JUMP ?PRG1
.FUNCT RUNNING?,RTN,C,E
ADD C-TABLE,C-TABLELEN >E
ADD C-TABLE,C-INTS >C
?PRG1: EQUAL? C,E /FALSE
GET C,C-RTN
EQUAL? STACK,RTN \?CND3
GET C,C-TICK
ZERO? STACK /FALSE
GET C,C-TICK
GRTR? STACK,1 \TRUE
RFALSE
?CND3: ADD C,C-INTLEN >C
JUMP ?PRG1
.FUNCT QUEUE,RTN,TICK,C,E,INT=0
ADD C-TABLE,C-TABLELEN >E
ADD C-TABLE,C-INTS >C
?PRG1: EQUAL? C,E \?ELS5
ZERO? INT /?ELS8
SET 'C,INT
JUMP ?CND6
?ELS8: LESS? C-INTS,C-INTLEN \?CND12
PRINTI "**Too many ints!**"
CRLF
?CND12: SUB C-INTS,C-INTLEN >C-INTS
LESS? C-INTS,C-MAXINTS \?CND15
SET 'C-MAXINTS,C-INTS
?CND15: ADD C-TABLE,C-INTS >INT
?CND6: PUT INT,C-RTN,RTN
JUMP ?REP2
?ELS5: GET C,C-RTN
EQUAL? STACK,RTN \?ELS19
SET 'INT,C
JUMP ?REP2
?ELS19: GET C,C-RTN
ZERO? STACK \?CND3
SET 'INT,C
?CND3: ADD C,C-INTLEN >C
JUMP ?PRG1
?REP2: GRTR? INT,CLOCK-HAND \?CND22
ADD TICK,3
SUB 0,STACK >TICK
?CND22: PUT INT,C-TICK,TICK
RETURN INT
.FUNCT CLOCKER,E,TICK,RTN,FLG=0,Q?=0,OWINNER
ZERO? CLOCK-WAIT /?CND1
SET 'CLOCK-WAIT,FALSE-VALUE
RFALSE
?CND1: ADD C-TABLE,C-INTS >CLOCK-HAND
ADD C-TABLE,C-TABLELEN >E
SET 'OWINNER,WINNER
SET 'WINNER,PROTAGONIST
?PRG5: EQUAL? CLOCK-HAND,E \?ELS9
SET 'CLOCK-HAND,E
INC 'MOVES
SET 'WINNER,OWINNER
RETURN FLG
?ELS9: GET CLOCK-HAND,C-RTN
ZERO? STACK /?CND7
GET CLOCK-HAND,C-TICK >TICK
LESS? TICK,-1 \?ELS14
SUB 0,TICK
SUB STACK,3
PUT CLOCK-HAND,C-TICK,STACK
SET 'Q?,CLOCK-HAND
JUMP ?CND7
?ELS14: ZERO? TICK /?CND7
GRTR? TICK,0 \?CND17
DEC 'TICK
PUT CLOCK-HAND,C-TICK,TICK
?CND17: ZERO? TICK /?CND20
SET 'Q?,CLOCK-HAND
?CND20: GRTR? TICK,0 /?CND12
GET CLOCK-HAND,C-RTN >RTN
ZERO? TICK \?CND26
PUT CLOCK-HAND,C-RTN,0
?CND26: CALL RTN
ZERO? STACK /?CND29
SET 'FLG,TRUE-VALUE
?CND29: ZERO? Q? \?CND7
GET CLOCK-HAND,C-RTN
ZERO? STACK /?CND7
SET 'Q?,TRUE-VALUE
?CND12:
?CND7: ADD CLOCK-HAND,C-INTLEN >CLOCK-HAND
ZERO? Q? \?PRG5
ADD C-INTS,C-INTLEN >C-INTS
JUMP ?PRG5
.ENDI

703
misc.zil Normal file
View File

@ -0,0 +1,703 @@
"MISC for
LEATHER GODDESSES OF PHOBOS
(c) Copyright 1986 Infocom, Inc. All Rights Reserved."
;"macros"
<TELL-TOKENS (CRLF CR) <CRLF>
D ,SIDEKICK <DPRINT-SIDEKICK>
D * <DPRINT .X>
A * <APRINT .X>
T ,PRSO <TPRINT-PRSO>
T ,PRSI <TPRINT-PRSI>
T * <TPRINT .X>
AR * <ARPRINT .X>
TR * <TRPRINT .X>
N * <PRINTN .X>
C * <PRINTC .X>>
<DEFMAC VERB? ("ARGS" ATMS)
<MULTIFROB PRSA .ATMS>>
<DEFMAC PRSO? ("ARGS" ATMS)
<MULTIFROB PRSO .ATMS>>
<DEFMAC PRSI? ("ARGS" ATMS)
<MULTIFROB PRSI .ATMS>>
<DEFMAC ROOM? ("ARGS" ATMS)
<MULTIFROB HERE .ATMS>>
<DEFINE MULTIFROB (X ATMS "AUX" (OO (OR)) (O .OO) (L ()) ATM)
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .OO 1> <ERROR .X>)
(<LENGTH? .OO 2> <NTH .OO 2>)
(ELSE <CHTYPE .OO FORM>)>>)>
<REPEAT ()
<COND (<EMPTY? .ATMS> <RETURN!->)>
<SET ATM <NTH .ATMS 1>>
<SET L
(<COND (<TYPE? .ATM ATOM>
<CHTYPE <COND (<==? .X PRSA>
<PARSE
<STRING "V?"
<SPNAME .ATM>>>)
(ELSE .ATM)> GVAL>)
(ELSE .ATM)>
!.L)>
<SET ATMS <REST .ATMS>>
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
<SET O <REST <PUTREST .O
(<FORM EQUAL? <CHTYPE .X GVAL> !.L>)>>>
<SET L ()>>>
<DEFMAC BSET ('OBJ "ARGS" BITS)
<MULTIBITS FSET .OBJ .BITS>>
<DEFMAC BCLEAR ('OBJ "ARGS" BITS)
<MULTIBITS FCLEAR .OBJ .BITS>>
<DEFMAC BSET? ('OBJ "ARGS" BITS)
<MULTIBITS FSET? .OBJ .BITS>>
<DEFINE MULTIBITS (X OBJ ATMS "AUX" (O ()) ATM)
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
(<EQUAL? .X FSET?> <FORM OR !.O>)
(ELSE <FORM PROG () !.O>)>>)>
<SET ATM <NTH .ATMS 1>>
<SET ATMS <REST .ATMS>>
<SET O
(<FORM .X
.OBJ
<COND (<TYPE? .ATM FORM> .ATM)
(ELSE <FORM GVAL .ATM>)>>
!.O)>>>
<DEFMAC RFATAL ()
'<PROG () <PUSH 8> <RSTACK>>>
<DEFMAC PROB ('BASE?)
<FORM NOT <FORM L? .BASE? '<RANDOM 100>>>>
;<ROUTINE PICK-ONE (FROB)
<GET .FROB <RANDOM <GET .FROB 0>>>>
;"this new PICK-ONE won't begin repeating any of the items in the table until
they've all been used."
<ROUTINE PICK-ONE (TBL "AUX" LENGTH CNT RND MSG RFROB)
<SET LENGTH <GET .TBL 0>>
<SET CNT <GET .TBL 1>>
<SET LENGTH <- .LENGTH 1>>
<SET TBL <REST .TBL 2>>
<SET RFROB <REST .TBL <* .CNT 2>>>
<SET RND <RANDOM <- .LENGTH .CNT>>>
<SET MSG <GET .RFROB .RND>>
<PUT .RFROB .RND <GET .RFROB 1>>
<PUT .RFROB 1 .MSG>
<SET CNT <+ .CNT 1>>
<COND (<==? .CNT .LENGTH>
<SET CNT 0>)>
<PUT .TBL 0 .CNT>
.MSG>
<ROUTINE DPRINT (OBJ)
<COND (<EQUAL? .OBJ ,SULTANS-WIFE>
<TELL "Sultan">
<COND (,MALE
<TELL "'s wife #">)
(T
<TELL "ess' husband #">)>
<PRINTN ,CHOICE-NUMBER>)
(<FSET? .OBJ ,UNTEEDBIT>
<TELL <GETP .OBJ ,P?NO-T-DESC>>)
(<GETP .OBJ ,P?SDESC>
<TELL <GETP .OBJ ,P?SDESC>>)
(T
<PRINTD .OBJ>)>>
<ROUTINE DPRINT-SIDEKICK ()
<DPRINT ,SIDEKICK>>
<ROUTINE APRINT (OBJ)
<COND (<FSET? .OBJ ,NARTICLEBIT>
<TELL " ">)
(<FSET? .OBJ ,VOWELBIT>
<TELL " an ">)
(T
<TELL " a ">)>
<DPRINT .OBJ>>
<ROUTINE TPRINT (OBJ)
<COND (<FSET? .OBJ ,NARTICLEBIT>
<TELL " ">)
(T
<TELL " the ">)>
<DPRINT .OBJ>>
<ROUTINE TPRINT-PRSO ()
<TPRINT ,PRSO>>
<ROUTINE TPRINT-PRSI ()
<TPRINT ,PRSI>>
<ROUTINE ARPRINT (OBJ)
<APRINT .OBJ>
<TELL ,PERIOD-CR>>
<ROUTINE TRPRINT (OBJ)
<TPRINT .OBJ>
<TELL ,PERIOD-CR>>
<DEFINE PSEUDO ("TUPLE" V)
<MAPF ,PLTABLE
<FUNCTION (OBJ)
<COND (<N==? <LENGTH .OBJ> 3>
<ERROR BAD-THING .OBJ>)>
<MAPRET <COND (<NTH .OBJ 2>
<VOC <SPNAME <NTH .OBJ 2>> NOUN>)>
<COND (<NTH .OBJ 1>
<VOC <SPNAME <NTH .OBJ 1>> ADJECTIVE>)>
<3 .OBJ>>>
.V>>
;"MAIN-LOOP and associated routines"
<CONSTANT M-BEG 1>
<CONSTANT M-ENTER 2>
<CONSTANT M-LOOK 3>
<CONSTANT M-FLASH 4>
<CONSTANT M-OBJDESC 5>
<CONSTANT M-END 6>
<CONSTANT M-SMELL 7>
<CONSTANT M-FATAL 8>
<CONSTANT M-OBJDESC? 9>
<ROOM WARNING
(IN ROOMS)
(DESC "WARNING!")
(SYNONYM ZZMGCK) ;"No, this synonym doesn't need to exist... sigh">
<ZSTART GO> ;"else, ZIL gets confused between verb-word GO and routine GO"
<ROUTINE GO () ;"NOTE: this routine CANNOT have any local variables"
<SETG HERE ,WARNING>
<USL>
<TELL
" Some material in this story may not be suitable for children, especially
the parts involving sex, which no one should know anything about until
reaching the age of eighteen (twenty-one in certain states). This story is
also unsuitable for censors, members of the Moral Majority, and anyone
else who thinks that sex is dirty rather than fun.|
The attitudes expressed and language used in this story are representative
only of the views of the author, and in no way represent the views of Infocom,
Inc. or its employees, many of whom are children, censors, and members of the
Moral Majority. (But very few of whom, based on last year's Christmas Party,
think that sex is dirty.)|
By now, all the folks who might be offended by " ,LGOP-CAPS " have whipped
their disk out of their drive and, evidence in hand, are indignantly huffing
toward their dealer, their lawyer, or their favorite repression-oriented
politico. So.." ,HIT-RETURN "begin!">
<READ ,P-INBUF ,P-LEXV>
<CLEAR-SCREEN>
<SETG WINNER ,PROTAGONIST>
<SETG HERE ,JOES-BAR>
<USL>
<TELL
"The place: Upper Sandusky, Ohio. The time: 1936. The beer: at a nickel
a mug, you don't ask for brand names. All you know is that your fifth
one tasted as bad as the first." CR CR>
<V-VERSION>
<CRLF>
<V-LOOK>
<I-URGE>
<MAIN-LOOP>
<AGAIN>>
<ROUTINE CLEAR-SCREEN ("AUX" (CNT 24))
<REPEAT ()
<CRLF>
<SET CNT <- .CNT 1>>
<COND (<0? .CNT>
<RETURN>)>>>
<ROUTINE MAIN-LOOP ("AUX" TRASH)
<REPEAT ()
<SET TRASH <MAIN-LOOP-1>>>>
<ROUTINE MAIN-LOOP-1 ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
<SET CNT 0>
<SET OBJ <>>
<SET PTBL T>
<COND (<SETG P-WON <PARSER>>
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
<SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>
<COND (<AND ,P-IT-OBJECT
<ACCESSIBLE? ,P-IT-OBJECT>>
<SET TMP <>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .ICNT>
<RETURN>)
(T
<COND (<EQUAL? <GET ,P-PRSI .CNT> ,IT>
<COND (<TOO-DARK-FOR-IT?> <RTRUE>)>
<PUT ,P-PRSI .CNT ,P-IT-OBJECT>
<SET TMP T>
<RETURN>)>)>>
<COND (<NOT .TMP>
<SET CNT 0>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .OCNT>
<RETURN>)
(T
<COND (<EQUAL? <GET ,P-PRSO .CNT> ,IT>
<COND (<TOO-DARK-FOR-IT?> <RTRUE>)>
<PUT ,P-PRSO .CNT ,P-IT-OBJECT>
<RETURN>)>)>>)>
<SET CNT 0>)>
<SET NUM <COND (<0? .OCNT>
.OCNT)
(<G? .OCNT 1>
<SET TBL ,P-PRSO>
<COND (<0? .ICNT>
<SET OBJ <>>)
(T
<SET OBJ <GET ,P-PRSI 1>>)>
.OCNT)
(<G? .ICNT 1>
<SET PTBL <>>
<SET TBL ,P-PRSI>
<SET OBJ <GET ,P-PRSO 1>>
.ICNT)
(T
1)>>
<COND (<AND <NOT .OBJ>
<1? .ICNT>>
<SET OBJ <GET ,P-PRSI 1>>)>
<COND (<EQUAL? ,PRSA ,V?WALK>
<SET V <PERFORM-PRSA ,PRSO>>)
(<0? .NUM>
<COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
<SET V <PERFORM-PRSA>>
<SETG PRSO <>>)
(<NOT ,LIT>
<TELL ,TOO-DARK CR>
<STOP>)
(T
<TELL "There isn't anything to ">
<SET TMP <GET ,P-ITBL ,P-VERBN>>
<COND (<VERB? TELL>
<TELL "talk to">)
(<OR ,P-OFLAG ,P-MERGED>
<PRINTB <GET .TMP 0>>)
(T
<WORD-PRINT <GETB .TMP 2> <GETB .TMP 3>>)>
<TELL "!" CR>
<SET V <>>
<STOP>)>)
(T
<SETG P-NOT-HERE 0>
<SETG P-MULT <>>
<COND (<G? .NUM 1>
<SETG P-MULT T>)>
<SET TMP <>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .NUM>
<COND (<G? ,P-NOT-HERE 0>
<TELL "[The ">
<COND (<NOT <EQUAL? ,P-NOT-HERE .NUM>>
<TELL "other ">)>
<TELL "object">
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
<TELL "s">)>
<TELL " that you mentioned ">
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
<TELL "are">)
(T
<TELL "is">)>
<TELL "n't here.]" CR>)
(<NOT .TMP>
<REFERRING>)>
<RETURN>)
(T
<COND (.PTBL
<SET OBJ1 <GET ,P-PRSO .CNT>>)
(T
<SET OBJ1 <GET ,P-PRSI .CNT>>)>
<SETG PRSO <COND (.PTBL
.OBJ1)
(T
.OBJ)>>
<SETG PRSI <COND (.PTBL
.OBJ)
(T
.OBJ1)>>
<COND (<OR <G? .NUM 1>
<EQUAL? <GET <GET ,P-ITBL ,P-NC1> 0>
,W?ALL
,W?EVERYT>>
<COND (<DONT-ALL .OBJ1>
<AGAIN>)
(T
<COND (<EQUAL? .OBJ1 ,IT>
<TELL D ,P-IT-OBJECT>)
(<EQUAL? .OBJ1 ,HIM>
<TELL D ,P-HIM-OBJECT>)
(<EQUAL? .OBJ1 ,HER>
<TELL D ,P-HER-OBJECT>)
(T
<TELL D .OBJ1>)>
<TELL ": ">)>)>
<SET TMP T>
<SET V <PERFORM-PRSA ,PRSO ,PRSI>>
<COND (<EQUAL? .V ,M-FATAL>
<RETURN>)>)>>)>
<COND (<EQUAL? .V ,M-FATAL>
<SETG P-CONT <>>)>
<COND (<AND <CLOCKER-VERB?>
<NOT <VERB? TELL>>
,P-WON ;"fake YOU CANT SEE responses set P-WON to false">
<SET V <APPLY <GETP ,HERE ,P?ACTION> ,M-END>>)>)
(T
<SETG P-CONT <>>)>
<COND (,P-WON
<COND (<CLOCKER-VERB?>
<SET V <CLOCKER>>)>
<SETG P-PRSA-WORD <>>
;"else, when input is just a direction, P-PRSA-WORD will remain
whatever it was for the previous turn"
<SETG PRSA <>>
<SETG PRSO <>>
<SETG PRSI <>>)>
<COND (<AND ,AWAITING-FAKE-ORPHAN
<NOT ,P-OFLAG>>
<ORPHAN-VERB>)>>
<ROUTINE TOO-DARK-FOR-IT? ()
<COND (<AND <NOT ,LIT>
<NOT <ULTIMATELY-IN? ,P-IT-OBJECT ,WINNER>>
<NOT <IN? ,WINNER ,P-IT-OBJECT>>>
<TELL ,TOO-DARK CR>
<RTRUE>)>>
<ROUTINE DONT-ALL (OBJ1 "AUX" (L <LOC .OBJ1>))
;"RFALSE if OBJ1 should be included in the ALL, otherwise RTRUE"
<COND (<EQUAL? .OBJ1 ,NOT-HERE-OBJECT>
<SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>
<RTRUE>)
(<AND <VERB? TAKE> ;"TAKE prso FROM prsi and prso isn't in prsi"
,PRSI
<NOT <IN? ,PRSO ,PRSI>>>
<RTRUE>)
(<NOT <ACCESSIBLE? .OBJ1>> ;"can't get at object"
<RTRUE>)
(<EQUAL? ,P-GETFLAGS ,P-ALL> ;"cases for ALL"
<COND (<AND ,PRSI
<PRSO? ,PRSI>>
<RTRUE>)
(<VERB? TAKE>
;"TAKE ALL and object not accessible or takeable"
<COND (<AND <NOT <FSET? .OBJ1 ,TAKEBIT>>
<NOT <FSET? .OBJ1 ,TRYTAKEBIT>>>
<RTRUE>)
(<AND <NOT <EQUAL? .L ,WINNER ,HERE ,PRSI>>
<NOT <EQUAL? .L <LOC ,WINNER>>>>
<COND (<AND <FSET? .L ,SURFACEBIT>
<NOT <FSET? .L ,TAKEBIT>>> ;"tray"
<RFALSE>)
(T
<RTRUE>)>)
(<AND <NOT ,PRSI>
<ULTIMATELY-IN? ,PRSO>> ;"already have it"
<RTRUE>)
(T
<RFALSE>)>)
(<AND <VERB? DROP PUT PUT-ON GIVE SGIVE>
;"VERB ALL, object not held"
<NOT <IN? .OBJ1 ,WINNER>>>
<RTRUE>)
(<AND <VERB? PUT PUT-ON> ;"PUT ALL IN X,obj already in x"
<NOT <IN? ,PRSO ,WINNER>>
<ULTIMATELY-IN? ,PRSO ,PRSI>>
<RTRUE>)>)>>
<ROUTINE CLOCKER-VERB? ()
<COND (<VERB? VERSION HELP STATUS $RECORD $UNRECORD $COMMAND $RANDOM
SAVE RESTORE RESTART QUIT SCRIPT UNSCRIPT
BRIEF SUPER-BRIEF VERBOSE LEWD TAME SUGGESTIVE>
<RFALSE>)
(T
<RTRUE>)>>
<GLOBAL P-WON <>>
<GLOBAL P-MULT <>>
<GLOBAL P-NOT-HERE 0>
<ROUTINE FAKE-ORPHAN ("OPTIONAL" (IT-WAS-USED <>) "AUX" TMP)
<ORPHAN ,P-SYNTAX <>>
<SET TMP <GET ,P-OTBL ,P-VERBN>>
<TELL "[Be specific: Wh">
<COND (.IT-WAS-USED
<TELL "at object">)
(T
<TELL "o">)>
<TELL " do you want to ">
<COND (<EQUAL? .TMP 0>
<TELL "tell">)
(<0? <GETB ,P-VTBL 2>>
<PRINTB <GET .TMP 0>>)
(T
<WORD-PRINT <GETB .TMP 2> <GETB .TMP 3>>
<PUTB ,P-VTBL 2 0>)>
<SETG P-OFLAG T>
<SETG P-WON <>>
<PREP-PRINT <GETB ,P-SYNTAX ,P-SPREP1>>
<TELL "?]" CR>>
<ROUTINE PERFORM-PRSA ("OPTIONAL" (O <>) (I <>))
<PERFORM ,PRSA .O .I>>
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
;<COND (,DEBUG
<TELL "[Perform: ">
%<COND (<GASSIGNED? ZILCH>
'<TELL N .A>)
(T
'<PRINC <NTH ,ACTIONS <+ <* .A 2> 1>>>)>
<COND (.O
<TELL " / PRSO = ">
<COND (<NOT <EQUAL? .A ,V?WALK>>
<TELL D .O>)
(T
<TELL N .O>)>)>
<COND (.I <TELL " / PRSI = " D .I>)>
<TELL "]" CR>)>
<SET OA ,PRSA>
<SET OO ,PRSO>
<SET OI ,PRSI>
<SETG PRSA .A>
<COND (<EQUAL? ,IT .O .I>
<COND (<VISIBLE? ,P-IT-OBJECT>
<COND (<EQUAL? ,IT .O>
<SET O ,P-IT-OBJECT>)
(T
<SET I ,P-IT-OBJECT>)>)
(T
<COND (<NOT .I>
<FAKE-ORPHAN T>)
(T
<REFERRING>)>
<RFATAL>)>)>
<COND (<EQUAL? ,HIM .O .I>
<COND (<VISIBLE? ,P-HIM-OBJECT>
<COND (<EQUAL? ,HIM .O>
<SET O ,P-HIM-OBJECT>)
(T
<SET I ,P-HIM-OBJECT>)>)
(T
<COND (<NOT .I>
<FAKE-ORPHAN>)
(T
<REFERRING T>)>
<RFATAL>)>)>
<COND (<EQUAL? ,HER .O .I>
<COND (<VISIBLE? ,P-HER-OBJECT>
<COND (<EQUAL? ,HER .O>
<SET O ,P-HER-OBJECT>)
(T
<SET I ,P-HER-OBJECT>)>)
(T
<COND (<NOT .I>
<FAKE-ORPHAN>)
(T
<REFERRING T>)>
<RFATAL>)>)>
<SETG PRSO .O>
<SETG PRSI .I>
<COND (<AND <NOT <EQUAL? .A ,V?WALK>>
<EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
<SET V <D-APPLY "Not Here" ,NOT-HERE-OBJECT-F>>>
<SETG P-WON <>>
.V)
(T
<SET O ,PRSO>
<SET I ,PRSI>
<THIS-IS-IT ,PRSI>
<THIS-IS-IT ,PRSO>
<COND (<SET V <D-APPLY "Actor" <GETP ,WINNER ,P?ACTION>>>
.V)
;(<SET V <D-APPLY "M-Beg" <GETP ,HERE ,P?ACTION> ,M-BEG>>
.V)
(<SET V <D-APPLY "Preaction" <GET ,PREACTIONS .A>>>
.V)
(<AND .I <SET V <D-APPLY "PRSI" <GETP .I ,P?ACTION>>>>
.V)
;(<AND .O
<NOT <EQUAL? .A ,V?WALK>>
<LOC .O>
<GETP <LOC .O> ,P?CONTFCN>
<SET V <D-APPLY "Cont" <GETP <LOC .O> ,P?CONTFCN>>>>
.V)
(<AND .O
<NOT <EQUAL? .A ,V?WALK>>
<SET V <D-APPLY "PRSO" <GETP .O ,P?ACTION>>>>
.V)
(<SET V <D-APPLY <> <GET ,ACTIONS .A>>>
.V)>)>
<SETG PRSA .OA>
<SETG PRSO .OO>
<SETG PRSI .OI>
.V>
<ROUTINE D-APPLY (STR FCN "OPTIONAL" (FOO <>) "AUX" RES)
<COND (<NOT .FCN> <>)
(T
;<COND (,DEBUG
<COND (<NOT .STR>
<TELL " Default ->" CR>)
(T
<TELL " " .STR " -> ">)>)>
<SET RES <COND (.FOO
<APPLY .FCN .FOO>)
(T
<APPLY .FCN>)>>
;<COND (<AND ,DEBUG
.STR>
<COND (<EQUAL? .RES ,M-FATAL>
<TELL "Fatal" CR>)
(<NOT .RES>
<TELL "Not handled">)
(T <TELL "Handled" CR>)>)>
.RES)>>
;"CLOCKER and related routines"
<GLOBAL C-TABLE %<COND (<GASSIGNED? ZILCH>
'<ITABLE NONE 30>)
(T
'<ITABLE NONE 60>)>>
<GLOBAL CLOCK-WAIT <>>
<GLOBAL C-INTS 60>
<GLOBAL C-MAXINTS 60>
<GLOBAL CLOCK-HAND <>>
<CONSTANT C-TABLELEN 60>
<CONSTANT C-INTLEN 4> ;"length of an interrupt entry"
<CONSTANT C-RTN 0> ;"offset of routine name"
<CONSTANT C-TICK 1> ;"offset of count"
<ROUTINE DEQUEUE (RTN)
<COND (<SET RTN <QUEUED? .RTN>>
<PUT .RTN ,C-RTN 0>)>>
<ROUTINE QUEUED? (RTN "AUX" C E)
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET C <REST ,C-TABLE ,C-INTS>>
<REPEAT ()
<COND (<EQUAL? .C .E>
<RFALSE>)
(<EQUAL? <GET .C ,C-RTN> .RTN>
<COND (<ZERO? <GET .C ,C-TICK>>
<RFALSE>)
(T
<RETURN .C>)>)>
<SET C <REST .C ,C-INTLEN>>>>
<ROUTINE RUNNING? (RTN "AUX" C E)
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET C <REST ,C-TABLE ,C-INTS>>
<REPEAT ()
<COND (<EQUAL? .C .E>
<RFALSE>)
(<EQUAL? <GET .C ,C-RTN> .RTN>
<COND (<OR <ZERO? <GET .C ,C-TICK>>
<G? <GET .C ,C-TICK> 1>>
<RFALSE>)
(T
<RTRUE>)>)>
<SET C <REST .C ,C-INTLEN>>>>
<ROUTINE QUEUE (RTN TICK "AUX" C E (INT <>)) ;"automatically enables as well"
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET C <REST ,C-TABLE ,C-INTS>>
<REPEAT ()
<COND (<EQUAL? .C .E>
<COND (.INT
<SET C .INT>)
(T
<COND (<L? ,C-INTS ,C-INTLEN>
<TELL "**Too many ints!**" CR>)>
<SETG C-INTS <- ,C-INTS ,C-INTLEN>>
<COND (<L? ,C-INTS ,C-MAXINTS>
<SETG C-MAXINTS ,C-INTS>)>
<SET INT <REST ,C-TABLE ,C-INTS>>)>
<PUT .INT ,C-RTN .RTN>
<RETURN>)
(<EQUAL? <GET .C ,C-RTN> .RTN>
<SET INT .C>
<RETURN>)
(<ZERO? <GET .C ,C-RTN>>
<SET INT .C>)>
<SET C <REST .C ,C-INTLEN>>>
<COND (%<COND (<GASSIGNED? ZILCH>
'<G? .INT ,CLOCK-HAND>)
(T
'<L? <LENGTH .INT> <LENGTH ,CLOCK-HAND>>)>
<SET TICK <- <+ .TICK 3>>>)>
<PUT .INT ,C-TICK .TICK>
.INT>
<ROUTINE CLOCKER ("AUX" E TICK RTN (FLG <>) (Q? <>) OWINNER)
<COND (,CLOCK-WAIT
<SETG CLOCK-WAIT <>>
<RFALSE>)>
<SETG CLOCK-HAND <REST ,C-TABLE ,C-INTS>>
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET OWINNER ,WINNER>
<SETG WINNER ,PROTAGONIST>
<REPEAT ()
<COND (<EQUAL? ,CLOCK-HAND .E>
<SETG CLOCK-HAND .E>
<SETG MOVES <+ ,MOVES 1>>
<SETG WINNER .OWINNER>
<RETURN .FLG>)
(<NOT <ZERO? <GET ,CLOCK-HAND ,C-RTN>>>
<SET TICK <GET ,CLOCK-HAND ,C-TICK>>
<COND (<L? .TICK -1>
<PUT ,CLOCK-HAND ,C-TICK <- <- .TICK> 3>>
<SET Q? ,CLOCK-HAND>)
(<NOT <ZERO? .TICK>>
<COND (<G? .TICK 0>
<SET TICK <- .TICK 1>>
<PUT ,CLOCK-HAND ,C-TICK .TICK>)>
<COND (<NOT <ZERO? .TICK>>
<SET Q? ,CLOCK-HAND>)>
<COND (<NOT <G? .TICK 0>>
<SET RTN
%<COND (<GASSIGNED? ZILCH>
'<GET ,CLOCK-HAND ,C-RTN>)
(ELSE
'<NTH ,CLOCK-HAND
<+ <* ,C-RTN 2>
1>>)>>
<COND (<ZERO? .TICK>
<PUT ,CLOCK-HAND ,C-RTN 0>)>
<COND (<APPLY .RTN>
<SET FLG T>)>
<COND (<AND <NOT .Q?>
<NOT
<ZERO?
<GET ,CLOCK-HAND
,C-RTN>>>>
<SET Q? T>)>)>)>)>
<SETG CLOCK-HAND <REST ,CLOCK-HAND ,C-INTLEN>>
<COND (<NOT .Q?>
<SETG C-INTS <+ ,C-INTS ,C-INTLEN>>)>>>

1927
parser.zap Normal file

File diff suppressed because it is too large Load Diff

1781
parser.zil Normal file

File diff suppressed because it is too large Load Diff

1239
phobos.zap Normal file

File diff suppressed because it is too large Load Diff

1434
phobos.zil Normal file

File diff suppressed because it is too large Load Diff

1001
spaceship.zap Normal file

File diff suppressed because it is too large Load Diff

1102
spaceship.zil Normal file

File diff suppressed because it is too large Load Diff

2
syntax.zap Normal file
View File

@ -0,0 +1,2 @@
.ENDI

841
syntax.zil Normal file
View File

@ -0,0 +1,841 @@
"SYNTAX for
LEATHER GODDESSES OF PHOBOS
(c) Copyright 1986 Infocom, Inc. All Rights Reserved."
<BUZZ A AN THE IS ARE AM AND OF THEN ALL ;ONE BUT EXCEPT \. \, \" PLEASE
THIS THAT PRY HERE SOME MORE POUNDS G AGAIN OOPS SEX>
;"the following are all to make BODY-PARTS-HANDLER work"
<VOC "GODDESSES" ADJ>
<VOC "SHAPE" ADJ>
<VOC "SALESMAN" ADJ>
<VOC "SCIENTIST" ADJ>
<VOC "GORILLA" ADJ>
<VOC "MONKEY" ADJ>
<VOC "PROPRIETOR" ADJ>
<VOC "OWNER" ADJ>
<VOC "GUARD" ADJ>
<VOC "PRINCE" ADJ>
<VOC "DAUGHTER" ADJ>
<VOC "THETA" ADJ>
<VOC "BARTENDER" ADJ>
<VOC "WIFE\'S" ADJ>
<VOC "ELYSIA" ADJ>
<VOC "ELYSIUM" ADJ>
<VOC "MAN\'S" ADJ>
<VOC "WOMAN" ADJ>
<VOC "BABY\'S" ADJ>
<PREP-SYNONYM TO TOWARD>
<PREP-SYNONYM WITH USING>
<PREP-SYNONYM THROUGH THRU>
<PREP-SYNONYM ON ONTO>
<PREP-SYNONYM OUT OUTSIDE>
<PREP-SYNONYM IN INSIDE INTO>
<PREP-SYNONYM UNDER BELOW BENEATH UNDERNEATH>
<PREP-SYNONYM BEFORE NEAR BY>
<PREP-SYNONYM AROUND ALONG>
<SYNONYM ALL BOTH EVERYT>
<SYNONYM NORTH N>
<SYNONYM SOUTH S>
<SYNONYM EAST E>
<SYNONYM WEST W>
<SYNONYM DOWN D DOWNSTAIRS>
<SYNONYM UP U UPSTAIRS>
<SYNONYM NW NORTHWEST>
<SYNONYM NE NORTHE>
<SYNONYM SW SOUTHWEST>
<SYNONYM SE SOUTHE>
;"game commands"
<SYNTAX VERBOSE = V-VERBOSE>
<SYNTAX BRIEF = V-BRIEF>
<SYNTAX SUPER = V-SUPER-BRIEF>
<VERB-SYNONYM SUPER SUPERBRIEF>
<SYNTAX TAME = V-TAME>
<SYNTAX SUGGESTIVE = V-SUGGESTIVE>
<SYNTAX LEWD = V-LEWD>
<SYNTAX DIAGNOSE = V-DIAGNOSE>
<SYNTAX INVENT = V-INVENTORY>
<VERB-SYNONYM INVENT I>
<SYNTAX QUIT = V-QUIT>
<VERB-SYNONYM QUIT Q>
<SYNTAX RESTAR = V-RESTART>
<SYNTAX RESTOR = V-RESTORE>
<SYNTAX SAVE = V-SAVE>
<SYNTAX STATUS = V-STATUS>
<SYNTAX SCRIPT = V-SCRIPT>
<SYNTAX UNSCRIPT = V-UNSCRIPT>
<SYNTAX VERSION = V-VERSION>
<SYNTAX \#RANDOM OBJECT = V-$RANDOM>
<SYNTAX \#COMMAND = V-$COMMAND>
<SYNTAX \#RECORD = V-$RECORD>
<SYNTAX \#UNRECORD = V-$UNRECORD>
<SYNTAX $VERIFY = V-$VERIFY>
<SYNTAX $VERIFY OBJECT = V-$VERIFY>
;<SYNTAX $DEBUG = V-$DEBUG>
;<SYNTAX $PARTS = V-$PARTS>
;<SYNTAX $JUNGLE = V-$JUNGLE>
;<SYNTAX $CLEVELAND = V-$CLEVELAND>
;<SYNTAX $MARS = V-$MARS>
;<VERB-SYNONYM $MARS $ROYAL>
;<SYNTAX $SULTAN = V-$SULTAN>
;<SYNTAX $POLE = V-$POLE>
;<SYNTAX $SHOP = V-$SHOP>
;"subtitle real verbs"
<SYNTAX ANSWER = V-ANSWER>
<SYNTAX ANSWER OBJECT = V-USE-QUOTES>
<VERB-SYNONYM ANSWER REPLY GUESS>
<SYNTAX APPLAUD = V-APPLAUD>
<SYNTAX APPLAUD OBJECT = V-APPLAUD>
<VERB-SYNONYM APPLAUD CLAP>
<SYNTAX APPLY OBJECT (HELD TAKE) = V-APPLY>
<SYNTAX APPLY OBJECT (HELD MANY) TO OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX APPROA OBJECT = V-WALK-TO>
<SYNTAX ASK OBJECT (FIND ACTORBIT) ABOUT OBJECT = V-ASK-ABOUT PRE-SPEAK>
<SYNTAX ASK OBJECT (FIND ACTORBIT) ON OBJECT = V-ASK-ABOUT PRE-SPEAK>
<SYNTAX ASK OBJECT (FIND ACTORBIT) FOR OBJECT = V-ASK-FOR PRE-SPEAK>
<SYNTAX ASK FOR OBJECT = V-ASK-NO-ONE-FOR>
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-KILL>
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (HELD CARRIED HAVE) = V-KILL>
<VERB-SYNONYM ATTACK KILL MURDER FIGHT HIT SLAY SLAP STRIKE STAB>
<SYNTAX BARTER WITH OBJECT (FIND ACTORBIT) = V-BARTER-WITH>
<SYNTAX BARTER FOR OBJECT = V-BARTER-FOR>
<SYNTAX BARTER OBJECT (HELD CARRIED HAVE) FOR OBJECT = V-BARTER-FOR>
<VERB-SYNONYM BARTER BARGAIN TRADE SWAP EXCHANGE>
<SYNTAX BEND OBJECT = V-BEND>
<VERB-SYNONYM BEND SPREAD>
<SYNTAX BITE OBJECT = V-BITE>
<SYNTAX BLOW OBJECT = V-BLOW>
<SYNTAX BLOW UP OBJECT = V-INFLATE>
<SYNTAX BLOW OUT OBJECT (FIND ONBIT) = V-OFF PRE-TOUCH>
<SYNTAX BOARD OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNTAX BOARD OBJECT OBJECT = V-BOARD-DIR> ;"ride horse west"
<VERB-SYNONYM BOARD RIDE MOUNT>
<SYNTAX BREATHE = V-INHALE>
<SYNTAX BREATHE HARD OBJECT (FIND RLANDBIT) = V-INHALE>
<SYNTAX BURN OBJECT (FIND BURNBIT) = V-BURN PRE-TOUCH>
<SYNTAX BURN UP OBJECT (FIND BURNBIT) = V-BURN PRE-TOUCH>
<SYNTAX BURN OBJECT (FIND BURNBIT) WITH OBJECT (HAVE) = V-BURN PRE-TOUCH>
<SYNTAX BURN UP OBJECT (FIND BURNBIT) WITH OBJECT (HAVE) = V-BURN PRE-TOUCH>
<SYNTAX BUY OBJECT = V-BUY>
<SYNTAX BUY OBJECT FROM OBJECT = V-BUY>
<SYNTAX BUY OBJECT WITH OBJECT = V-BUY-WITH>
<VERB-SYNONYM BUY ORDER PURCHASE>
<SYNTAX CALL OBJECT = V-CALL>
<SYNTAX CALL OUT OBJECT = V-CALL>
<SYNTAX CALL TO OBJECT = V-CALL>
<SYNTAX CAST OFF OBJECT (FIND RLANDBIT) = V-CAST-OFF>
<SYNTAX CATCH OBJECT (ON-GROUND IN-ROOM) = V-CATCH>
<SYNTAX CATCH OBJECT (ON-GROUND IN-ROOM) IN OBJECT = V-CATCH>
<SYNTAX CATCH OBJECT (ON-GROUND IN-ROOM) WITH OBJECT = V-CATCH>
<VERB-SYNONYM CATCH TRAP>
<SYNTAX CHEER OBJECT (FIND ACTORBIT) = V-CHEER>
<SYNTAX CHEER UP OBJECT (FIND RLANDBIT) = V-CHEER>
<VERB-SYNONYM CHEER COMFORT ENTERTAIN>
<SYNTAX CIRCLE OBJECT = V-WALK-AROUND>
<SYNTAX CLICK OBJECT = V-CLICK>
<SYNTAX CLIMB OBJECT (ON-GROUND IN-ROOM) = V-CLIMB>
<SYNTAX CLIMB ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX CLIMB UP OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX CLIMB DOWN OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX CLIMB OUT OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX CLIMB OFF OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX CLIMB OVER OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-OVER>
<SYNTAX CLIMB IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNTAX CLIMB THROUGH OBJECT = V-ENTER>
<SYNTAX CLIMB UNDER OBJECT = V-CRAWL-UNDER>
<VERB-SYNONYM CLIMB SCALE>
<SYNTAX CLOSE OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-CLOSE PRE-TOUCH>
<SYNTAX CLOSE OFF OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
= V-OFF PRE-TOUCH>
<SYNTAX CLOSE UP OBJECT (FIND RLANDBIT) = V-SHUT-UP>
<VERB-SYNONYM CLOSE SHUT>
<SYNTAX COME = V-COME>
<SYNTAX COME WITH OBJECT = V-FOLLOW>
<VERB-SYNONYM COME CUM EJACULATE CLIMAX>
<SYNTAX COPULATE = V-COPULATE>
<SYNTAX COVER OBJECT WITH OBJECT (HELD MANY) = V-SPUT-ON>
<VERB-SYNONYM COVER PLUG>
<SYNTAX COUNT OBJECT = V-COUNT>
<SYNTAX CROSS OBJECT = V-CROSS>
<VERB-SYNONYM CROSS FORD>
<SYNTAX DECODE OBJECT = V-DECODE>
<VERB-SYNONYM DECODE DECIPHER>
<SYNTAX DEFLATE OBJECT = V-DEFLATE>
<SYNTAX DEFLATE OBJECT WITH OBJECT (HAVE) = V-DEFLATE>
<VERB-SYNONYM DEFLATE POP>
<SYNTAX DEMOLI OBJECT (ON-GROUND IN-ROOM) = V-MUNG>
<SYNTAX DEMOLI OBJECT WITH OBJECT (HELD CARRIED TAKE) = V-MUNG>
<SYNTAX DEMOLI OUT OBJECT (FIND RLANDBIT) = V-MUNG>
<SYNTAX DEMOLI DOWN OBJECT = V-KILL>
<VERB-SYNONYM DEMOLI DESTRO DAMAGE BREAK SMASH WRECK CRUSH TRAMPLE>
<SYNTAX DESCEN OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX DIG IN OBJECT = V-DIG>
<SYNTAX DIG THROUGH OBJECT = V-DIG>
<SYNTAX DISEMBARK = V-DISEMBARK>
<SYNTAX DISEMBARK OBJECT (ON-GROUND IN-ROOM) = V-DISEMBARK>
<VERB-SYNONYM DISEMBARK DEBARK DISMOUNT>
<SYNTAX DRESS = V-DRESS>
<SYNTAX DRESS OBJECT = V-DRESS>
<SYNTAX DRINK OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-DRINK>
<SYNTAX DRINK FROM OBJECT (HELD CARRIED) = V-DRINK-FROM>
<VERB-SYNONYM DRINK SIP SWALLOW>
<SYNTAX DROP OBJECT (HELD MANY HAVE) = V-DROP IDROP>
<SYNTAX DROP OBJECT (HELD MANY) DOWN OBJECT = V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY) OUT OBJECT = V-PUT-THROUGH IDROP>
<SYNTAX DROP OBJECT (HELD MANY) THROUGH OBJECT = V-PUT-THROUGH IDROP>
<SYNTAX DROP OBJECT (HELD CARRIED) BEFORE OBJECT = V-PUT-NEAR IDROP>
<SYNTAX DROP OBJECT (HELD CARRIED) AT OBJECT = V-PUT-NEAR IDROP>
<VERB-SYNONYM DROP DUMP>
<SYNTAX EAT OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-EAT>
<VERB-SYNONYM EAT DEVOUR INGEST GOBBLE>
<SYNTAX EMPTY OBJECT (HAVE TAKE) = V-EMPTY PRE-TOUCH>
<SYNTAX EMPTY OUT OBJECT (HAVE TAKE) = V-EMPTY PRE-TOUCH>
<SYNTAX EMPTY OBJECT (HAVE TAKE) OVER OBJECT = V-EMPTY PRE-TOUCH>
<SYNTAX EMPTY OBJECT (HAVE TAKE) ON OBJECT = V-EMPTY PRE-TOUCH>
<SYNTAX EMPTY OBJECT (HAVE TAKE) IN OBJECT = V-EMPTY PRE-TOUCH>
<SYNTAX EMPTY OBJECT (HAVE TAKE) TO OBJECT = V-EMPTY PRE-TOUCH>
<SYNTAX EMPTY OBJECT (MANY) FROM OBJECT (HAVE TAKE) = V-EMPTY-FROM>
<SYNTAX EMPTY OBJECT (MANY) OUT OBJECT (HAVE TAKE) = V-EMPTY-FROM>
<SYNTAX EMPTY OBJECT (HAVE TAKE) THROUGH OBJECT = V-EMPTY-FROM>
<SYNTAX ENTER = V-IN>
<SYNTAX ENTER OBJECT = V-ENTER>
<SYNTAX EXAMINE OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-EXAMINE PRE-LOOK>
;<SYNTAX EXAMINE IN OBJECT (HELD CARRIED IN-ROOM ON-GROUND)
= V-LOOK-INSIDE PRE-LOOK>
;<SYNTAX EXAMINE ON OBJECT (HELD CARRIED IN-ROOM ON-GROUND)
= V-LOOK-INSIDE PRE-LOOK>
;<SYNTAX EXAMINE FOR OBJECT = V-FIND>
<VERB-SYNONYM EXAMINE INSPECT DESCRIBE STUDY OBSERVE WATCH>
<SYNTAX EXIT = V-EXIT>
<SYNTAX EXIT OBJECT = V-EXIT>
<VERB-SYNONYM EXIT DEPART WITHDR>
<SYNTAX EXTINGUISH OBJECT (FIND ONBIT) = V-OFF PRE-TOUCH>
<VERB-SYNONYM EXTINGUISH DEACTIVATE>
<SYNTAX FEED OBJECT (FIND ACTORBIT) = V-FEED>
<SYNTAX FEED OBJECT (MANY HELD HAVE) TO OBJECT (FIND ACTORBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<SYNTAX FEED OBJECT (FIND ACTORBIT) (ON-GROUND) OBJECT (MANY HELD HAVE)
= V-SGIVE>
<SYNTAX FILL OBJECT (FIND CONTBIT) (HELD CARRIED HAVE) = V-FILL>
<SYNTAX FILL OBJECT (FIND CONTBIT) (HELD CARRIED HAVE) WITH OBJECT = V-FILL>
<SYNTAX FIND OBJECT = V-FIND>
<VERB-SYNONYM FIND SEEK>
<SYNTAX FLUSH OBJECT = V-FLUSH>
<SYNTAX FOLLOW OBJECT = V-FOLLOW>
<VERB-SYNONYM FOLLOW PURSUE CHASE>
<SYNTAX FUCK OBJECT (FIND ACTORBIT) = V-FUCK PRE-FUCK>
<VERB-SYNONYM FUCK SCREW LAY BANG HUMP FORNICATE SEDUCE>
<SYNTAX GIDDYAP = V-GIDDYAP>
<VERB-SYNONYM GIDDYAP GIDDAP>
<SYNTAX GO OBJECT = V-WALK>
<SYNTAX GO IN OBJECT = V-ENTER>
<SYNTAX GO OUT OBJECT = V-ENTER>
<SYNTAX GO THROUGH OBJECT = V-ENTER>
<SYNTAX GO AROUND OBJECT (FIND RLANDBIT) = V-WALK-AROUND>
<SYNTAX GO UNDER OBJECT = V-CRAWL-UNDER>
<SYNTAX GO BEHIND OBJECT = V-HIDE>
<SYNTAX GO UP OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX GO DOWN OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX GO TO OBJECT = V-WALK-TO>
<SYNTAX GO AWAY OBJECT (FIND RLANDBIT) = V-LEAVE>
<SYNTAX GO WITH OBJECT = V-FOLLOW>
<SYNTAX HAND OBJECT (MANY HELD HAVE) TO OBJECT (FIND ACTORBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<SYNTAX HAND OBJECT (FIND ACTORBIT) (ON-GROUND) OBJECT (MANY HELD HAVE)
= V-SGIVE>
<SYNTAX HAND UP OBJECT (FIND RLANDBIT) = V-GIVE-UP>
<SYNTAX HAND OBJECT (HELD CARRIED HAVE) FOR OBJECT = V-BARTER-FOR>
<SYNTAX HAND BACK OBJECT (HELD CARRIED HAVE) = V-RETURN>
<SYNTAX HAND OBJECT (MANY HELD HAVE) BACK OBJECT (FIND ACTORBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<VERB-SYNONYM HAND GIVE SELL DONATE OFFER>
<SYNTAX HEAR OBJECT = V-LISTEN PRE-LISTEN>
<SYNTAX HELLO = V-HELLO>
<SYNTAX HELLO OBJECT = V-HELLO>
<VERB-SYNONYM HELLO HI>
<SYNTAX HELP = V-HELP>
<SYNTAX HELP OBJECT = V-SAVE-SOMETHING>
<VERB-SYNONYM HELP HINT HINTS>
<SYNTAX HIDE = V-HIDE>
<SYNTAX HIDE UNDER OBJECT = V-HIDE>
<SYNTAX HIDE BEHIND OBJECT = V-HIDE>
<SYNTAX HISS = V-HISS>
<SYNTAX HISS AT OBJECT = V-HISS>
<SYNTAX INFLATE OBJECT = V-INFLATE>
<SYNTAX JERK OFF OBJECT (FIND RLANDBIT) = V-MASTURBATE>
<SYNTAX JERK OBJECT WITH OBJECT (HAVE) = V-WHIP>
<VERB-SYNONYM JERK JACK BEAT>
<SYNTAX JUMP = V-LEAP>
<SYNTAX JUMP OVER OBJECT = V-LEAP>
<SYNTAX JUMP ACROSS OBJECT = V-LEAP>
<SYNTAX JUMP IN OBJECT = V-ENTER>
<SYNTAX JUMP FROM OBJECT = V-LEAP-OFF>
<SYNTAX JUMP OFF OBJECT = V-LEAP-OFF>
<SYNTAX JUMP ON OBJECT = V-STAND-ON>
<SYNTAX JUMP ACROSS OBJECT = V-LEAP>
<SYNTAX JUMP OUT OBJECT = V-LEAP-OFF>
<SYNTAX JUMP THROUGH OBJECT = V-ENTER>
<SYNTAX JUMP UP OBJECT (FIND RLANDBIT) = V-LEAP>
<SYNTAX JUMP DOWN OBJECT (FIND RLANDBIT) = V-LEAP>
<SYNTAX JUMP TO OBJECT = V-LEAP>
<VERB-SYNONYM JUMP LEAP DIVE VAULT>
<SYNTAX KICK OBJECT = V-KICK>
<SYNTAX KISS OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-KISS PRE-TOUCH>
<SYNTAX KISS OBJECT (FIND ACTORBIT) ON OBJECT = V-KISS-ON>
<SYNTAX KNEEL TO OBJECT (FIND ACTORBIT) = V-KNEEL>
<SYNTAX KNEEL BEFORE OBJECT (FIND ACTORBIT) = V-KNEEL>
<SYNTAX KNEEL FOR OBJECT (FIND ACTORBIT) = V-KNEEL>
<VERB-SYNONYM KNEEL BOW>
<SYNTAX KNOCK ON OBJECT (FIND DOORBIT) = V-KNOCK>
<SYNTAX KNOCK AT OBJECT (FIND DOORBIT) = V-KNOCK>
<SYNTAX KNOCK DOWN OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-KILL>
<VERB-SYNONYM KNOCK RAP>
<SYNTAX KWEEPA = V-KWEEPA>
<SYNTAX LAND = V-LAND>
<SYNTAX LAND OBJECT (FIND VEHBIT) = V-LAND>
<VERB-SYNONYM LAND MOOR DOCK>
<SYNTAX LAUGH = V-LAUGH>
<SYNTAX LAUGH AT OBJECT = V-LAUGH>
<VERB-SYNONYM LAUGH CACKLE>
<SYNTAX LAUNCH OBJECT = V-LAUNCH>
<SYNTAX LEAN OBJECT (HAVE) ON OBJECT = V-PUT-AGAINST>
<SYNTAX LEAN OBJECT (HAVE) AGAINST OBJECT = V-PUT-AGAINST>
<SYNTAX LEAVE = V-LEAVE>
<SYNTAX LEAVE OBJECT = V-LEAVE>
<SYNTAX LEAVE OBJECT (HELD MANY) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX LEAVE OBJECT (HELD MANY) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX LEAVE OBJECT (HELD CARRIED) BEFORE OBJECT = V-PUT-NEAR IDROP>
<SYNTAX LEAVE OBJECT (HELD CARRIED) AT OBJECT = V-PUT-NEAR IDROP>
<SYNTAX LET GO OBJECT (HELD MANY HAVE) = V-DROP IDROP>
<SYNTAX LICK OBJECT = V-LICK>
<SYNTAX LIE ON OBJECT (FIND VEHBIT) = V-LIE-DOWN>
<SYNTAX LIE IN OBJECT (FIND VEHBIT) = V-LIE-DOWN>
<SYNTAX LIE DOWN OBJECT (FIND RLANDBIT) = V-LIE-DOWN>
<SYNTAX LIGHT OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-ON PRE-TOUCH>
<SYNTAX LIMBER = V-LIMBER>
<SYNTAX LIMBER UP OBJECT (FIND RLANDBIT) = V-LIMBER>
<VERB-SYNONYM LIMBER STRETCH>
<SYNTAX LISTEN = V-LISTEN PRE-LISTEN>
<SYNTAX LISTEN TO OBJECT = V-LISTEN PRE-LISTEN>
<SYNTAX LOCK OBJECT = V-LOCK>
<SYNTAX LOCK OBJECT (ON-GROUND IN-ROOM) WITH OBJECT = V-LOCK>
<SYNTAX LOOK = V-LOOK>
<SYNTAX LOOK AROUND OBJECT (FIND RLANDBIT) = V-LOOK>
<SYNTAX LOOK DOWN OBJECT (FIND RLANDBIT) = V-LOOK-DOWN PRE-LOOK>
<SYNTAX LOOK UP OBJECT (FIND RLANDBIT) = V-LOOK-UP PRE-LOOK>
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-EXAMINE PRE-LOOK>
<SYNTAX LOOK THROUGH OBJECT = V-LOOK-INSIDE PRE-LOOK>
<SYNTAX LOOK OUT OBJECT = V-LOOK-INSIDE PRE-LOOK>
<SYNTAX LOOK UNDER OBJECT = V-LOOK-UNDER PRE-LOOK>
<SYNTAX LOOK BEHIND OBJECT = V-LOOK-BEHIND PRE-LOOK>
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
= V-LOOK-INSIDE PRE-LOOK>
<SYNTAX LOOK ON OBJECT = V-EXAMINE PRE-LOOK>
<SYNTAX LOOK TO OBJECT = V-EXAMINE PRE-LOOK>
<SYNTAX LOOK FOR OBJECT = V-FIND>
<SYNTAX LOOK OVER OBJECT = V-LOOK-OVER PRE-LOOK>
<SYNTAX LOOK OBJECT = V-CHASTISE>
<VERB-SYNONYM LOOK L>
<SYNTAX LOVE OBJECT (FIND ACTORBIT) = V-LOVE>
<SYNTAX LOWER OBJECT = V-LOWER>
<SYNTAX LOWER OBJECT THROUGH OBJECT = V-PUT-THROUGH IDROP>
<SYNTAX LOWER OBJECT OUT OBJECT = V-PUT-THROUGH IDROP>
<SYNTAX MAKE OBJECT = V-MAKE>
<SYNTAX MAKE OUT OBJECT (FIND RLANDBIT) = V-MAKE-OUT>
<SYNTAX MAKE OBJECT WITH OBJECT = V-MAKE-WITH>
<SYNTAX MAKE HAPPY OBJECT = V-CHEER>
<SYNTAX MAKE OBJECT TO OBJECT (FIND ACTORBIT) = V-MAKE-LOVE>
<SYNTAX MARRY OBJECT (FIND ACTORBIT) = V-MARRY>
<VERB-SYNONYM MARRY WED>
<SYNTAX MASTURBATE = V-MASTURBATE>
<SYNTAX MEASURE OBJECT = V-MEASURE>
<SYNTAX MOAN = V-MOAN>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-TOUCH>
<SYNTAX MOVE APART OBJECT = V-BEND>
<SYNTAX MOVE OBJECT OBJECT = V-PUSH-DIR>
<SYNTAX MOVE AROUND OBJECT (FIND RLANDBIT) = V-WALK-AROUND>
<SYNTAX MOVE UP OBJECT (ON-GROUND IN-ROOM) = V-RAISE PRE-TOUCH>
<SYNTAX MOVE IN OBJECT = V-MOVE PRE-TOUCH>
<SYNTAX MOVE OBJECT TO OBJECT = V-MOVE PRE-TOUCH>
<VERB-SYNONYM MOVE PULL LEAD>
<SYNTAX NO = V-NO>
<VERB-SYNONYM NO NOPE UH-UH NAH>
<SYNTAX OPEN OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-OPEN PRE-TOUCH>
<SYNTAX OPEN UP OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-OPEN PRE-TOUCH>
<SYNTAX OPEN OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE) = V-OPEN PRE-TOUCH>
<SYNTAX PASS OBJECT = V-PASS>
<SYNTAX PASS OBJECT (MANY HELD HAVE) TO OBJECT (FIND ACTORBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<SYNTAX PAY OBJECT (FIND ACTORBIT) = V-PAY>
<SYNTAX PAY FOR OBJECT = V-BUY>
<SYNTAX PAY OBJECT (MANY HELD HAVE) TO OBJECT (FIND ACTORBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<SYNTAX PEE = V-PEE>
<SYNTAX PEE IN OBJECT = V-PEE-IN>
<SYNTAX PEE ON OBJECT = V-PEE-IN>
<VERB-SYNONYM PEE LEAK PISS URINATE PIDDLE TINKLE PEE-PEE WEE WEE-WEE>
<SYNTAX PHONE OBJECT = V-PHONE>
<SYNTAX PICK OBJECT = V-PICK>
<SYNTAX PICK OBJECT WITH OBJECT = V-PICK>
<SYNTAX PICK UP OBJECT (FIND TAKEBIT) (ON-GROUND MANY) = V-PICK-UP PRE-TAKE>
<SYNTAX PIN OBJECT = V-PIN>
<SYNTAX PIN OBJECT TO OBJECT = V-PIN>
<SYNTAX PLAY WITH OBJECT = V-TOUCH PRE-TOUCH>
<SYNTAX POINT AT OBJECT = V-POINT>
<SYNTAX POINT TO OBJECT = V-POINT>
<SYNTAX POINT OBJECT AT OBJECT = V-POINT>
<SYNTAX POINT OBJECT ON OBJECT = V-POINT>
<SYNTAX POINT OBJECT IN OBJECT = V-POINT>
<VERB-SYNONYM POINT SHINE AIM>
<SYNTAX POUR OBJECT (HELD CARRIED) ON OBJECT = V-POUR PRE-POUR>
<SYNTAX POUR OBJECT (HELD CARRIED) IN OBJECT = V-POUR PRE-POUR>
<SYNTAX POUR OUT OBJECT (HELD CARRIED) IN OBJECT = V-POUR PRE-POUR>
<SYNTAX POUR OBJECT (HELD CARRIED) FROM OBJECT = V-POUR PRE-POUR>
<SYNTAX POUR OBJECT (HELD CARRIED) OUT OBJECT = V-POUR PRE-POUR>
<VERB-SYNONYM POUR SPILL>
<SYNTAX PUSH OBJECT = V-PUSH>
<SYNTAX PUSH OBJECT OBJECT = V-PUSH-DIR>
<SYNTAX PUSH UP OBJECT = V-RAISE PRE-TOUCH>
<SYNTAX PUSH ON OBJECT (IN-ROOM ON-GROUND) = V-PUSH>
<SYNTAX PUSH OFF OBJECT (FIND RLANDBIT) = V-PUSH-OFF>
<SYNTAX PUSH OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNTAX PUSH OBJECT IN OBJECT = V-PUSH>
<SYNTAX PUSH OBJECT TO OBJECT = V-PUSH>
<VERB-SYNONYM PUSH PRESS>
<SYNTAX RAISE OBJECT = V-RAISE PRE-TOUCH>
<SYNTAX RAISE UP OBJECT = V-RAISE PRE-TOUCH>
<VERB-SYNONYM RAISE LIFT BOOST>
<SYNTAX RAKE OBJECT = V-RAKE PRE-RAKE>
<SYNTAX RAKE OBJECT WITH OBJECT (HAVE) = V-RAKE PRE-RAKE>
<SYNTAX RAKE OBJECT IN OBJECT = V-PUT PRE-PUT>
<SYNTAX RAPE OBJECT (FIND ACTORBIT) = V-RAPE>
<SYNTAX REACH IN OBJECT (ON-GROUND IN-ROOM) = V-REACH-IN>
<SYNTAX READ OBJECT (FIND READBIT) (TAKE) = V-READ PRE-LOOK>
<SYNTAX READ THROUGH OBJECT (FIND READBIT) (TAKE) = V-READ PRE-LOOK>
<SYNTAX READ OBJECT (FIND READBIT) (TAKE) THROUGH OBJECT = V-READ PRE-LOOK>
<SYNTAX READ OBJECT (FIND READBIT) (TAKE) WITH OBJECT = V-READ PRE-LOOK>
<VERB-SYNONYM READ SKIM BROWSE>
<SYNTAX RELIEVE OBJECT = V-RELIEVE>
<SYNTAX REMOVE OBJECT (FIND WORNBIT) = V-REMOVE>
<SYNTAX REMOVE OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED MANY)
FROM OBJECT = V-TAKE PRE-TAKE>
<VERB-SYNONYM REMOVE UNWRAP>
<SYNTAX RETURN OBJECT (HELD CARRIED HAVE) = V-RETURN>
<SYNTAX RETURN OBJECT (HELD CARRIED HAVE) TO OBJECT (ON-GROUND) = V-RETURN>
<SYNTAX RIP OBJECT = V-RIP>
<SYNTAX RIP OBJECT IN OBJECT = V-RIP>
<SYNTAX RIP UP OBJECT = V-RIP>
<SYNTAX RIP OBJECT WITH OBJECT = V-RIP>
<VERB-SYNONYM RIP TEAR SHRED>
<SYNTAX ROLL OBJECT = V-ROLL PRE-TOUCH>
<SYNTAX ROLL UP OBJECT = V-ROLL PRE-TOUCH>
<SYNTAX ROLL OBJECT ON OBJECT = V-PUT-ON PRE-PUT> ;"for ROLL SOD ON CIRCLE"
<SYNTAX ROLL OBJECT OVER OBJECT = V-PUT-ON PRE-PUT> ;"ditto"
<SYNTAX RUB OBJECT = V-TOUCH PRE-TOUCH>
<SYNTAX RUB OBJECT ON OBJECT = V-RUB PRE-TOUCH>
<SYNTAX RUB OBJECT WITH OBJECT = V-SRUB>
<SYNTAX SAVE OBJECT = V-SAVE-SOMETHING>
<VERB-SYNONYM SAVE RESCUE>
<SYNTAX SAY = V-SAY>
<SYNTAX SAY OBJECT = V-USE-QUOTES>
<SYNTAX SCAT = V-SCAT>
<VERB-SYNONYM SCAT SHOO BOO SCRAM>
<SYNTAX SCORE = V-SCORE>
<SYNTAX SCORE WITH OBJECT = V-SCORE>
<SYNTAX SEARCH OBJECT = V-SEARCH>
<SYNTAX SEARCH IN OBJECT = V-SEARCH>
<SYNTAX SEARCH FOR OBJECT = V-FIND>
<SYNTAX SEARCH THROUGH OBJECT = V-SEARCH>
<VERB-SYNONYM SEARCH RUMMAG>
<SYNTAX SHAKE OBJECT = V-SHAKE>
<SYNTAX SHAKE OBJECT WITH OBJECT = V-SHAKE-WITH>
<VERB-SYNONYM SHAKE BOUNCE ROCK ROCK-A-BYE>
<SYNTAX SHIT = V-SHIT>
<VERB-SYNONYM SHIT DEFECATE CRAP POO-POO>
<SYNTAX SHOW OBJECT (HELD MANY) TO OBJECT (FIND ACTORBIT) = V-SHOW>
<SYNTAX SHOW OBJECT (FIND ACTORBIT) OBJECT (HELD MANY) = V-SSHOW>
<SYNTAX SIGH = V-SIGH>
<SYNTAX SINK OBJECT = V-SINK>
<SYNTAX SIT ON OBJECT ;(FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX SIT DOWN OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-SIT>
<SYNTAX SIT IN OBJECT ;(FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX SKIP = V-SKIP>
<VERB-SYNONYM SKIP HOP>
<SYNTAX SLEEP = V-SLEEP>
<SYNTAX SLEEP IN OBJECT (IN-ROOM ON-GROUND) = V-BOARD>
<SYNTAX SLEEP ON OBJECT (IN-ROOM ON-GROUND) = V-BOARD>
<SYNTAX SLEEP WITH OBJECT (FIND ACTORBIT) = V-FUCK PRE-FUCK>
<VERB-SYNONYM SLEEP DOZE NAP SNOOZE>
<SYNTAX SLICE OBJECT WITH OBJECT (CARRIED HELD) = V-CUT>
<SYNTAX SLICE THROUGH OBJECT WITH OBJECT (CARRIED HELD) = V-CUT>
<VERB-SYNONYM SLICE CUT>
<SYNTAX SLIDE DOWN OBJECT (FIND RLANDBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX SMEAR OBJECT (HELD MANY) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX SMELL = V-SMELL PRE-SMELL>
<SYNTAX SMELL OBJECT = V-SMELL PRE-SMELL>
<VERB-SYNONYM SMELL SNIFF WHIFF>
<SYNTAX STAIN OBJECT = V-STAIN>
<SYNTAX STAIN OBJECT WITH OBJECT = V-STAIN>
<VERB-SYNONYM STAIN PAINT>
<SYNTAX STAND = V-STAND>
<SYNTAX STAND UP OBJECT (FIND RLANDBIT) = V-STAND>
<SYNTAX STAND ON OBJECT = V-STAND-ON>
<SYNTAX STAND IN OBJECT = V-STAND-ON>
<SYNTAX STAND BEHIND OBJECT = V-HIDE>
<VERB-SYNONYM STAND RISE>
<SYNTAX START OBJECT = V-ON PRE-TOUCH>
<VERB-SYNONYM START ACTIVA>
<SYNTAX STICK OBJECT (HELD MANY) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX STICK OBJECT (HELD MANY) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX STICK OBJECT (HELD MANY) DOWN OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX STICK OBJECT (HELD MANY) AROUND OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX STICK OBJECT (HELD MANY) OVER OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX STICK OBJECT (HELD MANY) ACROSS OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX STICK DOWN OBJECT (HELD MANY HAVE) = V-DROP IDROP>
<SYNTAX STICK OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNTAX STICK ON OBJECT (FIND WEARBIT) (HAVE) = V-WEAR>
<SYNTAX STICK OBJECT BEHIND OBJECT = V-PUT-BEHIND>
<SYNTAX STICK OBJECT (MANY) THROUGH OBJECT = V-PUT-THROUGH IDROP>
<SYNTAX STICK OBJECT (MANY) OUT OBJECT = V-PUT-THROUGH IDROP>
<SYNTAX STICK OUT OBJECT (FIND ONBIT) = V-OFF PRE-TOUCH>
<SYNTAX STICK OBJECT (HELD CARRIED) BEFORE OBJECT = V-PUT-NEAR IDROP>
<SYNTAX STICK OBJECT (HELD CARRIED) AT OBJECT = V-PUT-NEAR IDROP>
<SYNTAX STICK OBJECT TO OBJECT = V-PUT-TO> ;"for PUT BABY TO SLEEP"
<SYNTAX STICK OBJECT (HAVE) AGAINST OBJECT = V-PUT-AGAINST>
<VERB-SYNONYM STICK PUT STUFF INSERT PLACE>
<SYNTAX STIMULATE OBJECT (FIND ACTORBIT) = V-ON PRE-TOUCH>
<VERB-SYNONYM STIMULATE EXCITE>
<SYNTAX SUCK OBJECT = V-SUCK>
<SYNTAX SUCK OFF OBJECT = V-SUCK>
<SYNTAX SUCKLE OBJECT = V-SUCKLE>
<VERB-SYNONYM SUCKLE NURSE>
<SYNTAX SWIM = V-SWIM>
<SYNTAX SWIM IN OBJECT = V-SWIM>
<SYNTAX SWING OBJECT (HELD CARRIED HAVE) = V-SWING>
<SYNTAX SWING OBJECT (HELD CARRIED HAVE) AT OBJECT (FIND ACTORBIT) = V-SWING>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY) = V-TAKE PRE-TAKE>
<SYNTAX TAKE IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNTAX TAKE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNTAX TAKE UP OBJECT (FIND RLANDBIT) = V-STAND>
<SYNTAX TAKE DRESSE OBJECT (FIND RLANDBIT) = V-GET-DRESSED>
<SYNTAX TAKE UNDRES OBJECT (FIND RLANDBIT) = V-GET-UNDRESSED>
<SYNTAX TAKE OBJECT (CARRIED IN-ROOM MANY) OUT OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (CARRIED IN-ROOM MANY) OFF OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (IN-ROOM CARRIED MANY) FROM OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (IN-ROOM CARRIED MANY) IN OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (IN-ROOM CARRIED MANY) ON OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (IN-ROOM CARRIED MANY) WITH OBJECT (HAVE) = V-TAKE-WITH>
<SYNTAX TAKE OFF OBJECT (FIND RLANDBIT) = V-TAKE-OFF>
<SYNTAX TAKE OUT OBJECT (FIND VEHBIT) (ON-GROUND) = V-DISEMBARK>
<SYNTAX TAKE DOWN OBJECT (FIND VEHBIT) (ON-GROUND) = V-DISEMBARK>
<SYNTAX TAKE PISS OBJECT (FIND RLANDBIT) = V-TAKE-A-LEAK>
<SYNTAX TAKE LEAK OBJECT (FIND RLANDBIT) = V-TAKE-A-LEAK>
<SYNTAX TAKE SHIT OBJECT (FIND RLANDBIT) = V-TAKE-A-SHIT>
<SYNTAX TAKE DRUNK OBJECT (FIND RLANDBIT) = V-GET-DRUNK>
<VERB-SYNONYM TAKE GET GRAB HOLD CARRY>
<SYNTAX TALK TO OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL PRE-SPEAK>
<VERB-SYNONYM TALK SPEAK>
<SYNTAX TAP OBJECT = V-TOUCH PRE-TOUCH>
<SYNTAX TAP ON OBJECT = V-KNOCK>
<SYNTAX TASTE OBJECT = V-TASTE>
<VERB-SYNONYM TASTE NIBBLE>
<SYNTAX TELL OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL PRE-SPEAK>
<SYNTAX TELL OBJECT (FIND ACTORBIT) ABOUT OBJECT = V-TELL-ABOUT PRE-SPEAK>
<SYNTAX TELL OBJECT OBJECT = V-STELL>
<SYNTAX THANKS OBJECT = V-THANK>
<SYNTAX THANKS = V-THANK>
<VERB-SYNONYM THANKS THANK>
<SYNTAX THROW OBJECT (HELD CARRIED) = V-THROW IDROP>
<SYNTAX THROW AWAY OBJECT (HELD CARRIED) = V-THROW IDROP>
;<SYNTAX THROW OVERBOARD OBJECT (HELD CARRIED) = V-THROW-OVERBOARD IDROP>
<SYNTAX THROW OBJECT (HELD CARRIED) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX THROW OBJECT (HELD CARRIED) DOWN OBJECT = V-THROW IDROP>
<SYNTAX THROW OBJECT (HELD CARRIED) AT OBJECT (ON-GROUND IN-ROOM)
= V-THROW IDROP>
<SYNTAX THROW OBJECT (HELD CARRIED) TO OBJECT (ON-GROUND IN-ROOM)
= V-THROW-TO IDROP>
<SYNTAX THROW OBJECT (ON-GROUND IN-ROOM) OBJECT (HELD CARRIED) = V-STHROW>
<SYNTAX THROW OBJECT (HELD CARRIED) THROUGH OBJECT (ON-GROUND IN-ROOM)
= V-PUT-THROUGH IDROP>
<SYNTAX THROW OBJECT (HELD CARRIED) OUT OBJECT = V-PUT-THROUGH IDROP>
<SYNTAX THROW UP OBJECT (FIND RLANDBIT) = V-THROW-UP>
<VERB-SYNONYM THROW HURL TOSS>
<SYNTAX TIE OBJECT (HELD) TO OBJECT = V-TIE>
<SYNTAX TIE OBJECT (HELD) AROUND OBJECT = V-TIE>
<SYNTAX TIE OBJECT IN OBJECT = V-TIE-TOGETHER>
<SYNTAX TIE TOGETHER OBJECT = V-TIE-TOGETHER>
<VERB-SYNONYM TIE FASTEN STRAP SECURE ATTACH>
<SYNTAX TOUCH OBJECT = V-TOUCH PRE-TOUCH>
<SYNTAX TOUCH OBJECT WITH OBJECT = V-TOUCH PRE-TOUCH>
<SYNTAX TOUCH OBJECT ON OBJECT = V-TOUCH PRE-TOUCH>
<VERB-SYNONYM TOUCH FONDLE FEEL PAT PET POKE SCRATCH STROKE>
<SYNTAX TURN OBJECT = V-SET>
<SYNTAX TURN AROUND OBJECT (FIND RLANDBIT) = V-SET>
<SYNTAX TURN OBJECT TO OBJECT = V-SET>
<SYNTAX TURN OBJECT OBJECT = V-SET>
<SYNTAX TURN ON OBJECT (FIND LIGHTBIT) = V-ON PRE-TOUCH>
<SYNTAX TURN OFF OBJECT (FIND LIGHTBIT) = V-OFF PRE-TOUCH>
<VERB-SYNONYM TURN SET SPIN DIAL SWITCH STEER ROTATE FLIP FLICK>
<SYNTAX UNCOVER OBJECT = V-UNCOVER>
<VERB-SYNONYM UNCOVER UNBLOCK UNPIN UNPLUG>
<SYNTAX UNDRES = V-UNDRESS>
<SYNTAX UNDRES OBJECT = V-UNDRESS>
<VERB-SYNONYM UNDRES STRIP>
<SYNTAX UNLOCK OBJECT = V-UNLOCK>
<SYNTAX UNLOCK OBJECT WITH OBJECT (HAVE) = V-UNLOCK>
<SYNTAX UNROLL OBJECT = V-UNROLL>
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-UNTIE>
<VERB-SYNONYM UNTIE FREE UNSTRAP UNFAST UNATTA UNKNOT>
<SYNTAX USE OBJECT = V-USE>
<SYNTAX VOMIT = V-VOMIT>
<VERB-SYNONYM VOMIT PUKE REGURGITATE BARF>
<SYNTAX WAIT = V-WAIT>
<SYNTAX WAIT FOR OBJECT = V-WAIT-FOR>
<VERB-SYNONYM WAIT Z>
<SYNTAX WAKE OBJECT (FIND RLANDBIT) = V-ALARM>
<SYNTAX WAKE UP OBJECT (FIND RLANDBIT) = V-ALARM>
<VERB-SYNONYM WAKE AWAKE ROUSE>
<SYNTAX WALK = V-WALK-AROUND>
<SYNTAX WALK OBJECT = V-WALK>
<SYNTAX WALK IN OBJECT = V-ENTER>
<SYNTAX WALK OUT OBJECT = V-ENTER>
<SYNTAX WALK ACROSS OBJECT = V-ENTER>
<SYNTAX WALK ON OBJECT = V-STAND-ON>
<SYNTAX WALK OVER OBJECT = V-ENTER> ;"formerly V-LEAP"
<SYNTAX WALK THROUGH OBJECT = V-ENTER>
<SYNTAX WALK AROUND OBJECT (FIND RLANDBIT) = V-WALK-AROUND>
<SYNTAX WALK UNDER OBJECT = V-CRAWL-UNDER>
<SYNTAX WALK BEHIND OBJECT = V-HIDE>
<SYNTAX WALK UP OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX WALK DOWN OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX WALK TO OBJECT = V-WALK-TO>
<SYNTAX WALK AWAY OBJECT (FIND RLANDBIT) = V-LEAVE>
<VERB-SYNONYM WALK SIDLE RUN PROCEE STEP>
<SYNTAX WASH OBJECT = V-CLEAN>
<SYNTAX WASH UP OBJECT (FIND RLANDBIT) = V-CLEAN>
<SYNTAX WASH OFF OBJECT = V-CLEAN>
<VERB-SYNONYM WASH CLEAN WIPE>
<SYNTAX WEAR OBJECT (FIND WEARBIT) (HAVE) = V-WEAR>
<VERB-SYNONYM WEAR DON>
<SYNTAX WHAT OBJECT = V-WHAT>
<VERB-SYNONYM WHAT WHATS WHAT\' WHO WHOS>
<SYNTAX WHERE OBJECT = V-WHERE>
<VERB-SYNONYM WHERE WHERES>
<SYNTAX WHIP OBJECT = V-WHIP>
<SYNTAX WHIP OBJECT WITH OBJECT (HAVE) = V-WHIP>
<VERB-SYNONYM WHIP SNAP CRACK>
<SYNTAX WRAP OBJECT (HELD MANY) AROUND OBJECT = V-WRAP PRE-PUT>
<SYNTAX WRAP OBJECT IN OBJECT (HELD MANY) = V-SWRAP>
<SYNTAX YELL = V-YELL>
<SYNTAX YELL AT OBJECT = V-YELL>
<SYNTAX YELL TO OBJECT = V-YELL>
<VERB-SYNONYM YELL SCREAM SHOUT>
<SYNTAX YES = V-YES>
<VERB-SYNONYM YES Y YUP OK OKAY SURE>
<SYNTAX ZZMGCK OBJECT = V-ANSWER-KLUDGE>

1319
venus.zap Normal file

File diff suppressed because it is too large Load Diff

1560
venus.zil Normal file

File diff suppressed because it is too large Load Diff

4061
verbs.zap Normal file

File diff suppressed because it is too large Load Diff

3465
verbs.zil Normal file

File diff suppressed because it is too large Load Diff

39
x1.zap Normal file
View File

@ -0,0 +1,39 @@
.INSERT "X1DAT" ; DATA IS IN THIS FILE
.INSERT "MISC"
.INSERT "PARSER"
.INSERT "SYNTAX"
.INSERT "VERBS"
.INSERT "GLOBALS"
.INSERT "EARTH"
.INSERT "MARS"
.INSERT "VENUS"
.INSERT "CLEVELAND"
.INSERT "SPACESHIP"
.INSERT "PHOBOS"
.INSERT "X1STR"
.END

39
x1.zil Normal file
View File

@ -0,0 +1,39 @@
"X1 for
LEATHER GODDESSES OF PHOBOS
(c) Copyright 1986 Infocom, Inc. All Rights Reserved."
<PRINC "
*** X1: Leather Goddesses of Phobos ***
">
ON!-INITIAL
OFF!-INITIAL ;"makes debugging possible -- pdl"
;<COND (<GASSIGNED? MUDDLE>
<GC 0 T 5>
<BLOAT 90000 0 0 3300 0 0 0 0 0 256>)>
<SET REDEFINE T>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
<COND (<GASSIGNED? ZILCH>
<ID 0>)>
<SETG NEW-VOC? T>
<INSERT-FILE "MISC" T>
<INSERT-FILE "PARSER" T>
<INSERT-FILE "SYNTAX" T>
<INSERT-FILE "VERBS" T>
<INSERT-FILE "GLOBALS" T>
<INSERT-FILE "EARTH" T>
<INSERT-FILE "MARS" T>
<INSERT-FILE "VENUS" T>
<INSERT-FILE "CLEVELAND" T>
<INSERT-FILE "SPACESHIP" T>
<INSERT-FILE "PHOBOS" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 5>

BIN
x1.zip Normal file

Binary file not shown.

16826
x1dat.zap Normal file

File diff suppressed because it is too large Load Diff

485
x1str.zap Normal file
View File

@ -0,0 +1,485 @@
; STRINGS ARE DEFINED HERE
STRBEG::
.GSTR STR?1,"Not Here"
.GSTR STR?2,"Actor"
.GSTR STR?3,"Preaction"
.GSTR STR?4,"PRSI"
.GSTR STR?5,"PRSO"
.GSTR STR?6,"OOPS"
.GSTR STR?7,"AGAIN"
.GSTR STR?8,"talk to characters."
.GSTR STR?9,"A"
.GSTR STR?10,"B"
.GSTR STR?11,"C"
.GSTR STR?12,"D"
.GSTR STR?13,"F"
.GSTR STR?14,"S"
.GSTR STR?15,"Sandusky Stablehand"
.GSTR STR?16,"Knight of Columbus"
.GSTR STR?17,"Baron of Buffalo"
.GSTR STR?18,"Viscount of Van Wert County"
.GSTR STR?19,"Earl of Altoona"
.GSTR STR?20,"Marquess of McKeesport"
.GSTR STR?21,"Duke of Detroit"
.GSTR STR?22,"Prince of Pike's Peak"
.GSTR STR?23,"King of Queens"
.GSTR STR?24,"Interplanetary Emperor"
.GSTR STR?25,"Dame of Dayton"
.GSTR STR?26,"Baroness of Buffalo"
.GSTR STR?27,"Viscountess of Van Wert County"
.GSTR STR?28,"Countess of Cleveland"
.GSTR STR?29,"Marchioness of McKeesport"
.GSTR STR?30,"Duchess of Detroit"
.GSTR STR?31,"Princess of Pike's Peak"
.GSTR STR?32,"Queen of King of Prussia"
.GSTR STR?33,"Interplanetary Empress"
.GSTR STR?34,"begins"
.GSTR STR?35,"ends"
.GSTR STR?36,"leave the game"
.GSTR STR?37,"restart"
.GSTR STR?38,"ask"
.GSTR STR?39,"Spreading"
.GSTR STR?40,"Bending"
.GSTR STR?41,"Biting"
.GSTR STR?42,"blow"
.GSTR STR?43,"get into"
.GSTR STR?44,"get onto"
.GSTR STR?45,"untie"
.GSTR STR?46,"leave"
.GSTR STR?47,"drop"
.GSTR STR?48,"burn"
.GSTR STR?49,"climb into"
.GSTR STR?50,"climb onto"
.GSTR STR?51,"close"
.GSTR STR?52,"with"
.GSTR STR?53,"drink"
.GSTR STR?54,"look"
.GSTR STR?55,"Kicking"
.GSTR STR?56,"waist"
.GSTR STR?57,"knee"
.GSTR STR?58,"Knocking on"
.GSTR STR?59,"You leap, and the gravity of Phobos is so weak that you sail up, up, and away! You achieve escape velocity and sail into the icy depths of space."
.GSTR STR?60,"""Aaaiieeee!"""
.GSTR STR?61,"sound"
.GSTR STR?62,"Palm"
.GSTR STR?63,"hands over your eyes"
.GSTR STR?64,"Eyelids"
.GSTR STR?65,"eyes closed"
.GSTR STR?66,"open"
.GSTR STR?67,"look inside"
.GSTR STR?68,"make"
.GSTR STR?69,"Pulling"
.GSTR STR?70,"move"
.GSTR STR?71,"Trying to destroy"
.GSTR STR?72,"nega"
.GSTR STR?73,"ff"
.GSTR STR?74,"n"
.GSTR STR?75,"pick"
.GSTR STR?76,"Pushing"
.GSTR STR?77,"extinguish"
.GSTR STR?78,"Playing in this way with"
.GSTR STR?79,"read"
.GSTR STR?80,"to"
.GSTR STR?81,"return it to"
.GSTR STR?82,"score with"
.GSTR STR?83,"search"
.GSTR STR?84,"Turning"
.GSTR STR?85,"Shaking"
.GSTR STR?86,"smell"
.GSTR STR?87,"taste"
.GSTR STR?88,"talk to"
.GSTR STR?89,"Touching"
.GSTR STR?90,"Fondling"
.GSTR STR?91,"say something ""out loud."""
.GSTR STR?92,"wear"
.GSTR STR?93,"throat"
.GSTR STR?94,"posi"
.GSTR STR?95,"remove"
.GSTR STR?96,"different-looking angle"
.GSTR STR?97,"earlobe"
.GSTR STR?98,"nose"
.GSTR STR?99,"big toe"
.GSTR STR?100,"elbow"
.GSTR STR?101,"left buttock"
.GSTR STR?102," trails along."
.GSTR STR?103," follows you."
.GSTR STR?104," enters just a few steps behind you."
.GSTR STR?105," loyally stays at your side."
.GSTR STR?106," doesn't do anything."
.GSTR STR?107," accomplishes nothing."
.GSTR STR?108," has no desirable effect."
.GSTR STR?109,"What a concept."
.GSTR STR?110,"Nice try."
.GSTR STR?111,"You've gotta be kidding."
.GSTR STR?112,"Think again, humanoid."
.GSTR STR?113,"Fat chance."
.GSTR STR?114,"Imposterous!"
.GSTR STR?115,"Dream on."
.GSTR STR?116,"Prepossible!"
.GSTR STR?117,"It's the looney bin for you!"
.GSTR STR?118,"You have lost your mind."
.GSTR STR?119,"A bigger waste of time than selling green cheese to the man in the moon."
.GSTR STR?120,"It's not worth it. Believe me."
.GSTR STR?121,"Useless. Unhelpful. Non-productivish. Ineffectivoid."
.GSTR STR?122,"There's another turn down the drain."
.GSTR STR?123,"Why bother?"
.GSTR STR?124,"mount"
.GSTR STR?125,"man"
.GSTR STR?126,"woman"
.GSTR STR?127,"ground"
.GSTR STR?128,"floor"
.GSTR STR?129,"fresh honeysuckle"
.GSTR STR?130,"closed"
.GSTR STR?131,"Done."
.GSTR STR?132,"black circle"
.GSTR STR?133,"uncover"
.GSTR STR?134,"It's too dark to see a thing."
.GSTR STR?135,"You're not holding"
.GSTR STR?136,"There's nothing "
.GSTR STR?137,"You can see"
.GSTR STR?138,"It seems that"
.GSTR STR?139,"You can't see any "
.GSTR STR?140,"You can't "
.GSTR STR?141,"You'll have to "
.GSTR STR?142,"As the result of an ancient leak, the catacombs are knee deep in warm, brackish canal water."
.GSTR STR?143,"There's an engraving on its side."
.GSTR STR?144,"LEATHER GODDESSES OF PHOBOS"
.GSTR STR?145," stick it back in your back pocket"
.GSTR STR?146," spread apart to form an opening"
.GSTR STR?147," the arching towers and curving domes of the notorious Pleasure Palace of "
.GSTR STR?148," Main Attack Fleet"
.GSTR STR?149,"Many sounds seem muffled now that you"
.GSTR STR?150,", but just as you are about to kiss the frog "
.GSTR STR?151," extremely secret and private boudoir"
.GSTR STR?152," forty-five degree angle"
.GSTR STR?153,". Hit the RETURN/ENTER key to "
.GSTR STR?154,"xits bought and sold"
.GSTR STR?155,"Hanging from the base of the long, potent-looking battleship are two pendulous, brimming fuel tanks."
.GSTR STR?156," evolved eating flies weighing a quarter of a"
.GSTR STR?157,"The ground is oozy with proto-slime."
.GSTR STR?158," an ordinary pay vizicomm, with a handset, coin slot, dial, coin return knob, and coin return box."
.GSTR STR?159,". A sign is posted next to the stairs which lead both upwards and downwards."
.GSTR STR?160,"The proprietor stirs somewhat from his lethargy. """
.GSTR STR?161,"The writing on the button changes as you press it"
.GSTR STR?162,", pinned to the dock by the current.
"
.GSTR STR?163,". To keep it from floating away, you pull the raft out of the water.
"
.GSTR STR?164,"You are already in that mode.
"
.GSTR STR?165,"Look around you.
"
.GSTR STR?166,"You can't do that from here.
"
.GSTR STR?167,"You can't go that way.
"
.GSTR STR?168,"You're holding it!
"
.GSTR STR?169,"You can't smell any odor here.
"
.GSTR STR?170,"Sorry -- nothing beyond the missionary position in SUGGESTIVE level.
"
.GSTR STR?171,"[There seems to be a noun missing in that sentence.]
"
.GSTR STR?172,"You see only blackness.
"
.GSTR STR?173,"You already did that. Senility strikes again!
"
.GSTR STR?174,"You can't take that -- it's part of the vizicomm!
"
.GSTR STR?175,".
"
.GSTR STR?176,"...
"
.GSTR STR?177,"That would accomplish nothing, since you're covering your eyes with your hands.
"
.GSTR STR?178,"It would take considerably more royal blood than you've got to wear this royal crown.
"
.GSTR STR?179,"""Don't gimme trouble -- just gimme a number between 1 and 8379.""
"
.GSTR STR?180,"t begins crying twice as loudly as before.
"
.GSTR STR?181,"You can only fit one thing in the odd machine at a time.
"
.GSTR STR?182,"Nothing happens.
"
.GSTR STR?183,"The horse can't fit through there!
"
.GSTR STR?184,"Failed.
"
.GSTR STR?185,"Okay.
"
.GSTR STR?186,"Huh?
"
.GSTR STR?187,"Yechh.
"
.GSTR STR?188,"It already is!
"
.GSTR STR?189,"This reveals nothing new.
"
.GSTR STR?190,"You can only rake with a rake.
"
.GSTR STR?191," looks unappetizing, but smells deliciously familiar.
"
.GSTR STR?192,"[There was no verb in that sentence!]
"
.GSTR STR?193,"You don't want to. Believe me.
"
.GSTR STR?194,"You don't have enough dexterity.
"
.GSTR STR?195,"There's no obvious steering mechanism.
"
.GSTR STR?196,"""Phfffft!"" The torch goes out.
"
.GSTR STR?197,"The trellis is too wide to fit in the hole.
"
.GSTR STR?198,"""Leave me alone! I'm manipulating the budget for the invasion. I can't believe how much neuro-tinglers cost these days...""
"
.GSTR STR?199,"Your hand dwindles disorientingly to a point, like railroad tracks vanishing toward the horizon.
"
.GSTR STR?200,"It's like staring into an eternal void of blackest infinity sucking up all life and thought and hope and being -- or, like what you see after getting your face smashed in a bar fight. You can pick the metaphor you're most familiar with.
"
.GSTR STR?201,"A gust of wind blows you back into the bar."
.GSTR STR?202,"Doors marked ""Ladies"" and ""Gents"" lead, respectively, northeast and northwest."
.GSTR STR?203,"your overalls"
.GSTR STR?204,"comic book"
.GSTR STR?205,"3-D comic book"
.GSTR STR?206,"pizza"
.GSTR STR?207,"Trent"
.GSTR STR?208,"Trent's body"
.GSTR STR?209,"bits of splattered Trent"
.GSTR STR?210,"Thorbast"
.GSTR STR?211,"his sword"
.GSTR STR?212,"Sultan"
.GSTR STR?213,"young woman"
.GSTR STR?214,"photo of Jean Harlow"
.GSTR STR?215,"perfume"
.GSTR STR?216,"burly man in a partial state of undress unleashes a torrent of lewd remarks"
.GSTR STR?217,"Tiffany"
.GSTR STR?218,"Tiffany's body"
.GSTR STR?219,"bits of splattered Tiffany"
.GSTR STR?220,"Thorbala"
.GSTR STR?221,"her sword"
.GSTR STR?222,"Sultaness"
.GSTR STR?223,"young man"
.GSTR STR?224,"photo of Douglas Fairbanks"
.GSTR STR?225,"cologne"
.GSTR STR?226,"female patron begins pummelling you with a purse that must surely contain concrete"
.GSTR STR?227,"sool"
.GSTR STR?228,"clear off"
.GSTR STR?229,"brass loincloth"
.GSTR STR?230,"brass bikini"
.GSTR STR?231,"rule book"
.GSTR STR?232,"As you wander amidst these towering dunes of red Martian sand, you notice three distinct pathways: north, east, and west."
.GSTR STR?233,"Ruin"
.GSTR STR?234,"Another Ruin"
.GSTR STR?235,"Yet Another Ruin"
.GSTR STR?236,"Princess Theta stands demurely by her father's throne, buried up to her thighs in forty-five degree angles."
.GSTR STR?237,"angular"
.GSTR STR?238,"eighy-wo degree angle"
.GSTR STR?239,"east"
.GSTR STR?240,"Sitting on one of the stone blocks is a large green frog. Something about it catches your eye."
.GSTR STR?241,"green"
.GSTR STR?242,"This dock, which extends north into a broad canal, is crafted of fine woods from across the solar system: hickory wood from the forests of Earth, and dickory wood from the jungles of Venus. A path leads south."
.GSTR STR?243,"If you want to jump in the canal, say so."
.GSTR STR?244,"You spot a little white marsmouse running along the dock."
.GSTR STR?245,"aged cedarwood"
.GSTR STR?246,"."
.GSTR STR?247,"land"
.GSTR STR?248,"metallic glint"
.GSTR STR?249,"giant rusted structure"
.GSTR STR?250,"metal structure"
.GSTR STR?251,"slight"
.GSTR STR?252,"worsening"
.GSTR STR?253,"splitting"
.GSTR STR?254,"fantastically unbelievable ultra-awesome migraine"
.GSTR STR?255,"Your anatomy, in absorbing a dose of super-ionized energy in trans-lethal levels, has ultimately equalized this submolecular environmental imbalance by fulminating a cataclysmic exothermic reaction. Or to put it in lay terms, you've just blown up."
.GSTR STR?256,"south"
.GSTR STR?257,"north"
.GSTR STR?258,"west"
.GSTR STR?259,"This tiny dock, partly buried by drifting sand, extends south into the canal. A break in the sand forms a trail to the north."
.GSTR STR?260,"You are in a tiny basin, protected by dunes from the fierce Martian winds. The dunes are impassable, except to the south."
.GSTR STR?261,"sick of lip balm"
.GSTR STR?262,"The alien may have died of acute chapped lips (a perennial problem in the arid Martian climate). If so, it was a sudden death, for the lip balm near the body is completely unused."
.GSTR STR?263,"Lying next to the body, partially buried in the sand, is a strange coded message."
.GSTR STR?264,"A strange alien, probably a member of one of the ancient warrior races of Mars, lies dead at the base of a dune."
.GSTR STR?265,"This dock, on the south shore of the canal, is named after Don Donald, the first resident of Mars. There are no paths leading inland, but a tall dune to the south is less steep than the others."
.GSTR STR?266,"From this vantage, you can see the canal curving south, a bit downstream from here. Just after this bend, two docks flank the canal: an opulent dock on the east bank, and a dilapidated one on the closer shore.
You could slide down the dune to the north or the east."
.GSTR STR?267,"East or north?"
.GSTR STR?268,"This dock is in remarkably good shape, considering that it hasn't been painted in fifteen thousand years. A wide canal, flowing south, lies to the east, and an opening between the dunes leads west."
.GSTR STR?269,"As with all Martian civilization, this once-fashionable shopping center has fallen upon hard times; the only store to have endured the fifteen-millenia recession lies to the south. The canal is still as visible as it was when scheming marketeers misnamed the mall generations ago -- in other words, not at all. A path leads east, and a dune to the west seems mountable."
.GSTR STR?270,"This store is in good shape only relative to the other shops in the mall; for example, the last time it was vacuumed, humans were just inventing writing. The dust nearly covers the proprietor, who sits forlornly in the corner beneath a faded sign. An exit is barely visible through the dust to the north."
.GSTR STR?271,"ube"
.GSTR STR?272,"Now THIS Is My Kind of Dock"
.GSTR STR?273,"If I owned a pier on a major Martian canal, I'd want it to look just like this one -- handsome, well-proportioned, and amply endowed with jade and ivory. I could probably live without the alabaster stair which leads up at the end of the dock, to the east."
.GSTR STR?274,"A shaft of sunlight penetrates the stained glass windows and glistens off a large reflecting pool, filling this huge entry hall with a seductive pattern of tantalizing colors. Gleaming marble pillars rise majestically from the pool to support a towering, arched roof. You are on a branching pathway suspended above the pool, leading toward shadowy archways in every direction."
.GSTR STR?275,"As you approach, you realize that the archway in this direction is merely a design on a solid wall."
.GSTR STR?276,"clohes pin"
.GSTR STR?277,"Today must be drying day at the laundry, since there's only one clothes pin left."
.GSTR STR?278,"These twisted trees and elegant footbridges are even more beautiful than the gardens of the most lavish Fu Manchu films. Paths from the north, southeast, and west meet at a large well of hand-carved stone in the center of the garden."
.GSTR STR?279,"A slender tower protrudes magnificently above the palace grounds. A stair winds up into the tower and an oriental garden spreads out to the northwest."
.GSTR STR?280,"By standing erect at the parapet of this mighty tower, you command an exciting view. Below, gardens and courtyards intermingle with the palace buildings, forming a fertile oasis in the Martian desert. Off to the west, docks straddle a deep canal. On the far shore, sand dunes lap at crumbling buildings. On the top step of a winding stair is a black circle."
.GSTR STR?281,"A guard stands by the entrance to the harem, apparently waiting for a response from you."
.GSTR STR?282,"Oops, deceased"
.GSTR STR?283,"Vacationing on Ceres"
.GSTR STR?284,"Bad case of harem fever"
.GSTR STR?285,"you answer incorrectly"
.GSTR STR?286,"you do not answer"
.GSTR STR?287,"you enter the harem before answering"
.GSTR STR?288,"you attempt to leave"
.GSTR STR?289,"you touch me in any way"
.GSTR STR?290,"I happen to sneeze"
.GSTR STR?291,"any situation not covered by the rules occurs"
.GSTR STR?292,"You never actually notice where the tiger comes from, only that it seems very very very very ferocious."
.GSTR STR?293,"if you just said SAY or ANSWER with nothing after"
.GSTR STR?294," forewarned, the guards reduce you to three dots."
.GSTR STR?295,"the latest sounds in jazz."
.GSTR STR?296,"a new radio serial."
.GSTR STR?297,"possible uses of electricity."
.GSTR STR?298,"the writings of Jules Verne."
.GSTR STR?299,"the intelligence level of beavers."
.GSTR STR?300,"reliable torch"
.GSTR STR?301,"orch"
.GSTR STR?302,"unreliable torch"
.GSTR STR?303,"secre map"
.GSTR STR?304,"secret catacombs map"
.GSTR STR?305,"You stumble into the dark, hit a wall, knock yourself unconscious, fall into a foot of water, drown, and are devoured by Martian beetles."
.GSTR STR?306,"No living creature can even guess how long this storehouse has sat amidst the catacombs, undisturbed by man or by time, untouched by wars and weather, a silent witness to the passing eons, the rise and fall of empires, the births and deaths of countless billions, its only visitor the dark waters of a Martian canal."
.GSTR STR?307,"Sitting in one corner is a Cleveland telephone directory."
.GSTR STR?308,"Damp walls of brick rise to a point of light far above. A black circle is visible just below the surface of the water."
.GSTR STR?309,"The well has no handholds."
.GSTR STR?310,"This spot is much like the rest of the catacombs, except that a ladder leads up into the darkness."
.GSTR STR?311,"Generations of Sultans and Sultanesses are entombed here, along with their vast wealth, their favorite servants, and some form of transportation to the next world. For example, one Sultan lies amidst mountains of rubies, surrounded by a fleet of dirigibles."
.GSTR STR?312,"raft"
.GSTR STR?313,"raf"
.GSTR STR?314,"remove it from"
.GSTR STR?315,", and you with it."
.GSTR STR?316,"deflated raft"
.GSTR STR?317,"beetle"
.GSTR STR?318,"crab"
.GSTR STR?319," A Martian alligator, large enough to blend in inconspicuously with Great Britain's mercantile fleet, swims by and gulps a huge bunch of canal water -- the bunch that happens to include you, by the way."
.GSTR STR?320,"gator"
.GSTR STR?321,"No, not a typo. ""Dessert"" refers to the fifty foot Martian Cream Pie here. A mirage, of course. People hopelessly lost in the desert often see strange mirages, such as cream pies, lakes, or trails to the northwest and southeast."
.GSTR STR?322,"This tiny dock is the maritime entrance to the once-famous Wattz-Upp section of Mars. East of the dock is a wide, north-south canal; you can hear a gurgling sound to the west. There's a chill in the air; you might be approaching the south polar cap."
.GSTR STR?323,"white circle"
.GSTR STR?324,"A little bunny rabbit is sipping at the waters of the oasis."
.GSTR STR?325,"This is the southern terminus of the canal. Far below this dock, teleportation machinery transports massive quantities of water back to the head of the canal in the equatorial region of Mars. It's quite chilly, and the dock is covered with a sheet of ice. To the south, as far as you can see, is the bleak whiteness of the southern ice cap."
.GSTR STR?326,"A solitary black circle is the only break in an vaste expanse of whiteness extending to the horizon. Like a dark speck in a sea of white, or a huge piece of typing paper with but a single period typed upon it, this black circle seems to have been placed here entirely as an opportunity for some silly literary allusions. To avoid the danger of accidentally typing an ""L"" and having to read them again, follow the faint trails to the north or east."
.GSTR STR?327,"You'd only get lost in the snow and die."
.GSTR STR?328,"There's a wall of penguins in the way."
.GSTR STR?329,"This is the campsite of a family of nomadic robotic gypsies. A ragged tent is pitched on the north side of the camp, and trails lead northwest and south."
.GSTR STR?330,"This tattered tent, home to the deceased robots, provides meager protection against the cold polar winds. You can exit to the south."
.GSTR STR?331,"robot infant"
.GSTR STR?332,"baby robot wrapped in a blanket"
.GSTR STR?333,"in the basket"
.GSTR STR?334,"abandon"
.GSTR STR?335,"A matronly woman of massive proportions and rather cubical aspect "
.GSTR STR?336,"You are standing near the front stoop of a very large igloo. Its door is flanked by a faded sign and a barred window. Paths lead north, north and north."
.GSTR STR?337,"This is as far south as you can go!"
.GSTR STR?338,"You walk in a tight circle, returning to your starting point."
.GSTR STR?339,"steal"
.GSTR STR?340,"on the stoop"
.GSTR STR?341,"pair of coon balls"
.GSTR STR?342," as your flesh is quietly dissolved away. What a way to go."
.GSTR STR?343,"jar of untangling cream"
.GSTR STR?344,"jar of unangling cream"
.GSTR STR?345,"Inexplicably, sitting next to the circle, untouched by time or slime, is a jar of ointment."
.GSTR STR?346,"Princess Theta"
.GSTR STR?347," the angles return to their former forms: a golden chariot, a velvet tapestry, various fruits, some handcuffs, a flock of ducks ... and a huge hungry tiger."
.GSTR STR?348," down here also!"
.GSTR STR?349,"can of black sain"
.GSTR STR?350,"""MarsCo Brand Black Hyperdimensional Transport Circle Stain."""
.GSTR STR?351,"To the north: the entrance to a plasticoid house, the only type of structure that lasts more than three minutes in the volatile Venusian biosphere. To the south and east: paths into the jungle."
.GSTR STR?352,"You're near the rear entrance of a house, to the south. Trails enter the jungle to the east and the west."
.GSTR STR?353,"An extraordinary number of door-to-door salesmen are camped out here, having been booted away from the front door, but still hopeful of making a sale."
.GSTR STR?354,"""No thanks, I've already got one."
.GSTR STR?355,"""Stop insulting me. There's a glut of those on the market."
.GSTR STR?356,"""That model went out of style before I was born!"
.GSTR STR?357,"""I'll throw in a free two-week service contract."""
.GSTR STR?358,"""Barter-back guarantee!"""
.GSTR STR?359,"""Never had a complaint in 37 years of selling these babies."""
.GSTR STR?360,"""Includes a three-day warranty!"""
.GSTR STR?361,"waiting impatiently for you to descend."
.GSTR STR?362,"stalking around the room, rubbing his hands and cackling madly."
.GSTR STR?363,"watching you intently and scrawling an occasional note."
.GSTR STR?364,"open the door"
.GSTR STR?365,"If you were a representative of the Vaporo-Zap Energy Barrier Company, you'd be pleased to see that the firm's 100% effective guarantee had once again proven to be a solid claim."
.GSTR STR?366," yells, ""Mein Gott! Mad gorilla on der loose!"" He pulls out a ray gun and puts a bolt through your chest."
.GSTR STR?367,"Stepping off the cliff would mean a fatal plunge to the jungle below."
.GSTR STR?368," A tranquilizer dart pierces your rump and you spend your remaining years in the gorilla cage of the Venusian Planetary Zoo."
.GSTR STR?369,"The coin reads ""Ten Marsmids."""
.GSTR STR?370,"The coin reads ""One Marsmid."""
.GSTR STR?371,"You suddenly find yourself longing for the slime pits of Venus or the sandstorms of Mars. This particular section of Cleveland has exits to the northeast and south."
.GSTR STR?372,"This rickety home is so petite that the entire first floor is only one location in this story. When you tire of this floor, you can go east, southwest, or up."
.GSTR STR?373,"rellis"
.GSTR STR?374,"The second floor of the house has an open window overlooking the street and a stair leading down."
.GSTR STR?375,"sheet"
.GSTR STR?376,"shee"
.GSTR STR?377,"rope of cloth"
.GSTR STR?378,"rope of cloh"
.GSTR STR?379,"untie it"
.GSTR STR?380,"strips of cloth"
.GSTR STR?381,"srips of cloh"
.GSTR STR?382,"After plummeting to the pavement, ambulances rush up to take you the finest hospitals in Cleveland. If only the ambulances had all picked the same hospital, there might've been a chance to put you back together."
.GSTR STR?383,"headligh"
.GSTR STR?384,"The resulting explosion makes you go all to pieces."
.GSTR STR?385,"sword"
.GSTR STR?386,"One item in the hold is a sword, a potent weapon with a long, hard blade of glistening steel."
.GSTR STR?387,"whie sui"
.GSTR STR?388,"Hanging by the hatch is a white, form-fitting therma suit."
.GSTR STR?389,"garlic"
.GSTR STR?390,"get past your opponent"
.GSTR STR?391,"your sword"
.GSTR STR?392,"Oops! You've frozen to death!"
.GSTR STR?393,"turns you into a human shish kabob."
.GSTR STR?394,"get past the monster"
.GSTR STR?395,"This is the main cabin of a fashionable passenger ship, with exits to the ""east"" and ""south."""
.GSTR STR?396,"phoo"
.GSTR STR?397,"blanke"
.GSTR STR?398,"unwrap the baby"
.GSTR STR?399,"Hanging on the wall is a painting of a pussy cat."
.GSTR STR?400,"paining"
.GSTR STR?401,"ray"
.GSTR STR?402,"hunk of brown food"
.GSTR STR?403,"hunk of chocolae"
.GSTR STR?404,"hunk of chocolate"
.GSTR STR?405,"A crumpled paper lies discarded in the corner. There seems to be some writing on it."
.GSTR STR?406,"There's a seemingly meaningless matrix of letters on the paper:
HESOHREBBUR
ILSSSIPNGEF
RGIUGHTHDEN
SNKOOBENOHP
FALYTMERATP
SHEADLIGHTO
SLLABNOTTOC"
.GSTR STR?407," tall, neatly dressed Leckbandi tucks you under its arm. (The Leckbandi, who evolved in the asteroid belt, all work exclusively as security guards. This is odd, since there's not a single thing in the entire asteroid belt worth stealing.)
Consulting a wrist computer, the Leckbandi punches in notable features of your appearance: size, number of heads, lack of feathers, and so forth. Eventually, the tiny screen flashes: ""IDENTIFICATION COMPLETED: Prisoner, human, escaped. DISPOSITION: Death, painful, immediate."" The Leckbandi, who, like all Leckbandis, prides itself on its ability to follow the orders of wrist computers, immediately and painfully kills you."
.GSTR STR?408,"This is a moist cellar. Soft light trickles down the stairway."
.GSTR STR?409,"You discover that the window makes a pleasant ""boing"" noise when a human nose is pushed into it at approximately walking speed."
.GSTR STR?410,"mothballs"
.GSTR STR?411,"wicker baske"
.GSTR STR?412,"machbook"
.GSTR STR?413,"leather"
.GSTR STR?414,"fondling"
.GSTR STR?415,"breasts"
.GSTR STR?416,"kissing"
.GSTR STR?417,"lips"
.GSTR STR?418,"making love to"
.GSTR STR?419,"banana"
.GSTR STR?420,"All your attackers come together in a climactic battle scene far too incredible to describe in the 23 words allotted to this sentence."
.GSTR STR?421,"great"
.GSTR STR?422,"swell"
.GSTR STR?423,"fantastically"
.GSTR STR?424,"perfectly"
.GSTR STR?425,"teriff"
.GSTR STR?426,"boffo"
.GSTR STR?427,"hunky dory"
.GSTR STR?428,"neato peachy keen"
.ENDI