1320 lines
36 KiB
Plaintext
1320 lines
36 KiB
Plaintext
|
|
|
|
.FUNCT VENUS-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
CALL V-LOOK
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?EXIT,V?DISEMBARK,V?LEAVE \FALSE
|
|
PRINTR "How?"
|
|
|
|
|
|
.FUNCT JUNGLE-F,RARG
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
IN? FLYTRAP,HERE \?ELS5
|
|
CALL QUEUE,I-FLYTRAP,-1
|
|
RSTACK
|
|
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "You are surrounded by hot, steamy, primitive rain forest. Judging by the overpowering heat, the excessive humidity, and "
|
|
IN? FLYTRAP,HERE \?ELS12
|
|
PRINTI "especially by the gigantic "
|
|
PRINTD FLYTRAP
|
|
PRINTI " sidling your way, "
|
|
JUMP ?CND10
|
|
?ELS12: PRINTI "the odd flora, "
|
|
?CND10: PRINTI "you must be in the death-clogged jungles of Venus.
|
|
A path runs east-west through the jungle"
|
|
IN? FLYTRAP,HERE \?CND15
|
|
PRINTI ", but don't even think about going west unless you love wading into four tons of "
|
|
ZERO? MALE \?CND18
|
|
PRINTI "wo"
|
|
?CND18: PRINTI "man-eating lettuce"
|
|
?CND15: PRINTI "."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PASS-FLYTRAP-F
|
|
IN? FLYTRAP,HERE \?ELS5
|
|
PRINTI "Despite being warned, you walk right into the orifice of the "
|
|
PRINTD FLYTRAP
|
|
PRINTI ". "
|
|
CALL FLYTRAP-DEATH
|
|
RSTACK
|
|
?ELS5: EQUAL? HERE,JUNGLE \?ELS7
|
|
RETURN SPAWNING-GROUND
|
|
?ELS7: RETURN JUNGLE
|
|
|
|
|
|
.FUNCT FLYTRAP-DEATH
|
|
PRINTI "A little known fact about "
|
|
PRINTD FLYTRAP
|
|
PRINTI "s: they secrete an enzyme which stimulates the pleasure centers of their victim. Hence, you experience "
|
|
ZERO? NAUGHTY-LEVEL \?ELS3
|
|
PRINTI "a feeling similar to eating a really good hot fudge sundae"
|
|
JUMP ?CND1
|
|
?ELS3: PRINTI "multiple orgasms"
|
|
?CND1: CALL JIGS-UP,STR?342
|
|
RSTACK
|
|
|
|
|
|
.FUNCT FLYTRAP-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTI "It looks just like the Terrestrial variety -- except that "
|
|
PRINTD FLYTRAP
|
|
PRINTI "s on Earth"
|
|
PRINT EVOLVED
|
|
PRINTI "n ounce, and Venusian "
|
|
PRINTD FLYTRAP
|
|
PRINTI "s"
|
|
PRINT EVOLVED
|
|
PRINTI " ton. Oh, one other thing. Terrestrial "
|
|
PRINTD FLYTRAP
|
|
PRINTR "s don't usually stalk their prey."
|
|
?ELS5: EQUAL? PRSA,V?FOLLOW \?ELS7
|
|
EQUAL? FOLLOW-FLAG,9 \?ELS12
|
|
CALL DO-WALK,P?WEST
|
|
RSTACK
|
|
?ELS12: EQUAL? FOLLOW-FLAG,10 \?ELS14
|
|
CALL PERFORM,V?DISEMBARK,TREE-HOLE
|
|
RTRUE
|
|
?ELS14: EQUAL? FOLLOW-FLAG,11 \FALSE
|
|
CALL PERFORM,V?ENTER,TREE-HOLE
|
|
RTRUE
|
|
?ELS7: CALL TOUCHING?,FLYTRAP
|
|
ZERO? STACK /FALSE
|
|
PRINTR "You don't want to get that close to the flytrap -- and it has nothing to do with its breath."
|
|
|
|
|
|
.FUNCT I-FLYTRAP
|
|
INC 'FLYTRAP-COUNTER
|
|
PRINTI " "
|
|
IN? FLYTRAP,HERE /?ELS5
|
|
SET 'FLYTRAP-COUNTER,0
|
|
EQUAL? HERE,CLEARING \?ELS10
|
|
ZERO? LEAVES-PLACED /?ELS13
|
|
ZERO? TOO-LATE \?ELS13
|
|
CALL TRAP-FLYTRAP
|
|
PRINTI "You hear a crash from the west"
|
|
JUMP ?CND11
|
|
?ELS13: MOVE FLYTRAP,JUNGLE
|
|
SET 'TOO-LATE,FALSE-VALUE
|
|
CALL DEQUEUE,I-FLYTRAP
|
|
SET 'FOLLOW-FLAG,9
|
|
CALL QUEUE,I-FOLLOW,2
|
|
PRINTI "Holy tropism! The "
|
|
PRINTD FLYTRAP
|
|
PRINTI " loses interest in you and crawls away"
|
|
?CND11: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS10: MOVE FLYTRAP,HERE
|
|
ZERO? LEAVES-PLACED \?CND20
|
|
SET 'TOO-LATE,TRUE-VALUE
|
|
?CND20: PRINTI "As"
|
|
CALL TPRINT,FLYTRAP
|
|
PRINTR " scurries along, you dash to the eastern side of the hole in order to be as far from it as possible."
|
|
?ELS5: IN? PROTAGONIST,TREE-HOLE \?ELS24
|
|
MOVE FLYTRAP,JUNGLE
|
|
SET 'FOLLOW-FLAG,10
|
|
CALL QUEUE,I-FOLLOW,2
|
|
SET 'TOO-LATE,FALSE-VALUE
|
|
SET 'FLYTRAP-COUNTER,0
|
|
CALL DEQUEUE,I-FLYTRAP
|
|
PRINTI "The "
|
|
PRINTD FLYTRAP
|
|
PRINTR " peers down, decides that it's not worth getting trapped for such a measly scrap of meat, and shuffles away."
|
|
?ELS24: EQUAL? FLYTRAP-COUNTER,1 \?ELS26
|
|
FSET? FLYTRAP,TOUCHBIT \?ELS26
|
|
EQUAL? HERE,JUNGLE \?ELS26
|
|
PRINTI "Flies must be in short supply, because the "
|
|
PRINTD FLYTRAP
|
|
PRINTR " nearby expectantly rustles a few stalks and begins creeping in your direction."
|
|
?ELS26: LESS? FLYTRAP-COUNTER,4 \?ELS30
|
|
FSET FLYTRAP,TOUCHBIT
|
|
PRINTI "The "
|
|
PRINTD FLYTRAP
|
|
PRINTI " sidles "
|
|
EQUAL? HERE,FORK-OF-SORTS \?ELS35
|
|
ZERO? LEAVES-PLACED /?THN38
|
|
ZERO? TOO-LATE /?ELS35
|
|
?THN38: PRINTR "around the hole toward you."
|
|
?ELS35: PRINTR "closer."
|
|
?ELS30: EQUAL? HERE,FORK-OF-SORTS \?ELS43
|
|
ZERO? LEAVES-PLACED /?ELS43
|
|
ZERO? TOO-LATE \?ELS43
|
|
CALL TRAP-FLYTRAP
|
|
PRINTR "Never before has splintering wood sounded so sweet or tossed salad looked so lovely. The amazing flying flytrap tumbles into your flytrap trap, covered with leaves and bits of shattered trellis, giving the plant the amusing appearance of a tar-and-feather victim."
|
|
?ELS43: CALL FLYTRAP-DEATH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT TRAP-FLYTRAP
|
|
FSET FLYTRAP,MUNGBIT
|
|
CALL INCREMENT-SCORE,2,15
|
|
MOVE FLYTRAP,TREE-HOLE
|
|
SET 'FOLLOW-FLAG,11
|
|
CALL QUEUE,I-FOLLOW,2
|
|
CALL ROB,TRELLIS,TREE-HOLE
|
|
REMOVE TRELLIS
|
|
FCLEAR FLYTRAP,NDESCBIT
|
|
CALL UNDO-TRAP
|
|
CALL DEQUEUE,I-FLYTRAP
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SPAWNING-GROUND-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "As if this hasn't already been a rough enough day, you have stumbled upon a spawning ground for Venusian slime beasts. "
|
|
PRINT OOZY-WITH-SLIME
|
|
PRINTI " Fortunately, these beasts are still in the earliest (and least deadly) stage. Only one spot is free of slime:"
|
|
CALL TPRINT,HOLE
|
|
PRINTI " near the path to the east."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CREAM-F
|
|
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS5
|
|
CALL EXAMINE-CREAM-AND-STAIN
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?READ \?ELS7
|
|
PRINTI "The jar is marked ""Un"
|
|
FSET? CREAM,UNTEEDBIT /?CND8
|
|
PRINTI "t"
|
|
?CND8: PRINTR "angling cream."""
|
|
?ELS7: EQUAL? PRSA,V?EMPTY \?ELS12
|
|
EQUAL? PRSO,CREAM \?ELS12
|
|
ZERO? PRSI \?CND15
|
|
PUT P-NAMW,1,FALSE-VALUE
|
|
SET 'PRSI,GROUND
|
|
?CND15: FSET? CREAM,MUNGBIT \?ELS22
|
|
PRINT ALREADY-IS
|
|
RTRUE
|
|
?ELS22: PUT P-NAMW,0,W?CREAM
|
|
CALL PERFORM,V?PUT-ON,CREAM,PRSI
|
|
RTRUE
|
|
?ELS12: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS26
|
|
CALL NO-LID
|
|
RSTACK
|
|
?ELS26: EQUAL? PRSA,V?EAT \?ELS28
|
|
PRINT YECHH
|
|
RTRUE
|
|
?ELS28: EQUAL? PRSA,V?RUB,V?PUT-ON,V?POUR \FALSE
|
|
EQUAL? PRSO,CREAM \FALSE
|
|
GET P-NAMW,0
|
|
EQUAL? STACK,W?JAR,FALSE-VALUE /FALSE
|
|
FSET? CREAM,MUNGBIT \?CND33
|
|
CALL EXAMINE-CREAM-AND-STAIN
|
|
RTRUE
|
|
?CND33: MOVE CREAM,PROTAGONIST
|
|
FSET CREAM,MUNGBIT
|
|
PRINTI "As the lotion soaks in,"
|
|
FSET? CREAM,UNTEEDBIT \?ELS40
|
|
EQUAL? PRSI,THETA \?ELS40
|
|
MOVE EIGHTY-TWO-DEGREE-ANGLE,THRONE-ROOM
|
|
FCLEAR THETA,MUNGBIT
|
|
FCLEAR THETA,NDESCBIT
|
|
FSET THETA,ACTORBIT
|
|
FSET THETA,FEMALEBIT
|
|
FSET THETA,NARTICLEBIT
|
|
PUTP THETA,P?SDESC,STR?346
|
|
CALL INCREMENT-SCORE,16,10,TRUE-VALUE
|
|
PRINTI " the angle slowly transforms into a beautiful princess. Mitre, gushing tears of happiness, cries, ""You have restored my beloved Theta to me!"" He reveals a perfect "
|
|
CALL DPRINT,EIGHTY-TWO-DEGREE-ANGLE
|
|
PRINTI ". ""I only brushed against it,"" explains the King. ""Please accept it, along with my thanks."" He reaches out to shake "
|
|
PRINTD HANDS
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS40: EQUAL? PRSI,PILE-OF-ANGLES \?ELS44
|
|
FSET? CREAM,UNTEEDBIT \?ELS44
|
|
CALL JIGS-UP,STR?347
|
|
RSTACK
|
|
?ELS44: EQUAL? PRSI,ME \?ELS48
|
|
PRINTR " your skin tingles a bit."
|
|
?ELS48: CALL TPRINT-PRSI
|
|
PRINTI " seem"
|
|
FSET? PRSI,PLURALBIT /?CND51
|
|
PRINTI "s"
|
|
?CND51: PRINTI " unchanged. "
|
|
EQUAL? PRSI,MITRE \?ELS58
|
|
FSET? CREAM,UNTEEDBIT \?ELS58
|
|
PRINTR "(Like fighting a forest fire with a water pistol.)"
|
|
?ELS58: PRINTI "I guess "
|
|
FSET? PRSI,PLURALBIT \?ELS65
|
|
PRINTI "they were"
|
|
JUMP ?CND63
|
|
?ELS65: FSET? PRSI,FEMALEBIT \?ELS70
|
|
PRINTI "she"
|
|
JUMP ?CND68
|
|
?ELS70: FSET? PRSI,ACTORBIT \?ELS72
|
|
PRINTI "he"
|
|
JUMP ?CND68
|
|
?ELS72: PRINTI "it"
|
|
?CND68: PRINTI " was"
|
|
?CND63: PRINTI "n't very "
|
|
FSET? CREAM,UNTEEDBIT /?CND75
|
|
PRINTI "t"
|
|
?CND75: PRINTR "angled."
|
|
|
|
|
|
.FUNCT FORK-OF-SORTS-F,RARG
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
FSET? HERE,TOUCHBIT /?ELS5
|
|
ZERO? VERBOSITY /?ELS5
|
|
PRINTI "A mighty tree rises before you in the center of the path. Suddenly and without warning (as is the nature of the jungle) it dies. Within seconds, the tree is consumed by Venusian hypertermites, which then move off in search of other dead trees, leaving a massive hole in the ground."
|
|
CRLF
|
|
CRLF
|
|
RTRUE
|
|
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This jungle path once split here, went around a mighty tree, and rejoined off to the east. Now, it splits here, goes around a "
|
|
ZERO? LEAVES-PLACED /?ELS12
|
|
PRINTD LEAVES
|
|
JUMP ?CND10
|
|
?ELS12: PRINTI "mighty hole"
|
|
?CND10: PRINTI ", and rejoins off to the east."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT TREE-HOLE-F
|
|
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
|
|
PRINT HUH
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?DISEMBARK \?ELS7
|
|
IN? PROTAGONIST,TREE-HOLE \?ELS7
|
|
PRINT YOU-CANT
|
|
PRINTR "climb out. You're trapped."
|
|
?ELS7: EQUAL? PRSA,V?REACH-IN \?ELS11
|
|
IN? FLYTRAP,TREE-HOLE \?ELS11
|
|
PRINTI "The "
|
|
PRINTD FLYTRAP
|
|
PRINTI " pulls you in. "
|
|
CALL FLYTRAP-DEATH
|
|
RSTACK
|
|
?ELS11: EQUAL? PRSA,V?BOARD \?ELS15
|
|
FSET? TRELLIS,MUNGBIT \?ELS20
|
|
PRINTR "The hole's covered."
|
|
?ELS20: CALL ULTIMATELY-IN?,TRELLIS
|
|
ZERO? STACK /?ELS22
|
|
PRINT TRELLIS-TOO-WIDE
|
|
RTRUE
|
|
?ELS22: IN? FLYTRAP,TREE-HOLE \FALSE
|
|
PRINTI "Hey! There's a big, hungry, angry "
|
|
PRINTD FLYTRAP
|
|
CALL JIGS-UP,STR?348
|
|
RSTACK
|
|
?ELS15: EQUAL? PRSA,V?MEASURE \?ELS26
|
|
PRINTR "The hole is about six feet across."
|
|
?ELS26: EQUAL? PRSA,V?WALK-AROUND \?ELS28
|
|
IN? FLYTRAP,HERE \?ELS33
|
|
PRINTI "You circle the hole completely, with"
|
|
CALL TPRINT,FLYTRAP
|
|
PRINTR " in hot pursuit."
|
|
?ELS33: CALL WEE
|
|
RSTACK
|
|
?ELS28: EQUAL? PRSA,V?LOOK-INSIDE \?ELS37
|
|
ZERO? LEAVES-PLACED /?ELS37
|
|
CALL PERFORM,V?BOARD,TREE-HOLE
|
|
RTRUE
|
|
?ELS37: EQUAL? PRSA,V?PUT-ON \?ELS41
|
|
EQUAL? PRSO,LEAVES \?ELS41
|
|
FSET? TRELLIS,MUNGBIT \?ELS41
|
|
CALL PERFORM-PRSA,LEAVES,TRELLIS
|
|
RTRUE
|
|
?ELS41: EQUAL? PRSA,V?EXAMINE \?ELS45
|
|
FSET? TRELLIS,MUNGBIT \?ELS45
|
|
CALL DESCRIBE-TRELLIS-ON-HOLE
|
|
CRLF
|
|
RTRUE
|
|
?ELS45: EQUAL? PRSA,V?UNCOVER \?ELS49
|
|
FSET? TRELLIS,MUNGBIT \?ELS49
|
|
CALL PERFORM,V?MOVE,TRELLIS
|
|
RTRUE
|
|
?ELS49: EQUAL? PRSA,V?HIDE \FALSE
|
|
IN? FLYTRAP,HERE \FALSE
|
|
CALL PERFORM,V?WALK-AROUND,TREE-HOLE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CLEARING-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This is a tiny anti-oasis of barrenness amidst the teeming Venusian jungle. Winding paths enter the jungle in most directions."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CLEARING-EXIT-F
|
|
PRINTI "You walk swiftly down the trail! It turns! It twists! It narrows! Vines grab at your ankles and bird-sized insects close in for a kill! Suddenly"
|
|
PRINT ELLIPSIS
|
|
EQUAL? PRSO,P?NE \?ELS5
|
|
RETURN FRONT-DOOR
|
|
?ELS5: EQUAL? PRSO,P?NW \?ELS7
|
|
RETURN BACK-DOOR
|
|
?ELS7: CALL DESCRIBE-ROOM
|
|
IN? SIDEKICK,HERE \FALSE
|
|
CALL NORMAL-SIDEKICK-FOLLOW
|
|
RFALSE
|
|
|
|
|
|
.FUNCT STAIN-F
|
|
FSET? STAIN,UNTEEDBIT /FALSE
|
|
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS7
|
|
CALL EXAMINE-CREAM-AND-STAIN
|
|
RSTACK
|
|
?ELS7: EQUAL? PRSA,V?APPLY \?ELS9
|
|
CALL GLOBAL-IN?,HOLE,HERE
|
|
ZERO? STACK /?ELS9
|
|
CALL APPLY-STAIN,HOLE
|
|
RSTACK
|
|
?ELS9: EQUAL? PRSA,V?EMPTY \?ELS13
|
|
EQUAL? PRSO,STAIN \?ELS13
|
|
FSET? STAIN,MUNGBIT \?ELS20
|
|
CALL EXAMINE-CREAM-AND-STAIN
|
|
RSTACK
|
|
?ELS20: ZERO? PRSI /?THN23
|
|
EQUAL? PRSI,WATER,CANAL-OBJECT,GROUND /?THN23
|
|
EQUAL? PRSI,TREE-HOLE \?ELS22
|
|
?THN23: FSET STAIN,MUNGBIT
|
|
PRINTR "Done. What a waste of good stain!"
|
|
?ELS22: CALL APPLY-STAIN,PRSI
|
|
RSTACK
|
|
?ELS13: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS28
|
|
CALL NO-LID
|
|
RSTACK
|
|
?ELS28: EQUAL? PRSA,V?DRINK \?ELS30
|
|
PRINT YECHH
|
|
RTRUE
|
|
?ELS30: EQUAL? PRSA,V?POUR \?ELS32
|
|
EQUAL? PRSI,WATER,CANAL-OBJECT,GROUND /?THN35
|
|
EQUAL? PRSI,TREE-HOLE \?ELS32
|
|
?THN35: CALL PERFORM,V?EMPTY,STAIN,GROUND
|
|
RTRUE
|
|
?ELS32: EQUAL? PRSA,V?RUB,V?PUT-ON,V?POUR \FALSE
|
|
EQUAL? PRSO,STAIN \FALSE
|
|
CALL NOUN-USED,W?STAIN,STAIN
|
|
ZERO? STACK /FALSE
|
|
CALL APPLY-STAIN,PRSI
|
|
RSTACK
|
|
|
|
|
|
.FUNCT APPLY-STAIN,OBJ
|
|
FSET? STAIN,MUNGBIT \?ELS5
|
|
SET 'PRSO,STAIN
|
|
CALL EXAMINE-CREAM-AND-STAIN
|
|
RSTACK
|
|
?ELS5: EQUAL? OBJ,HOLE \?ELS7
|
|
CALL THIS-IS-IT,HOLE
|
|
PRINTI "The circle is "
|
|
CALL CIRCLE-ISNT-BLACK
|
|
ZERO? STACK /?ELS10
|
|
SET 'CIRCLE-BLACK,TRUE-VALUE
|
|
FSET STAIN,MUNGBIT
|
|
PUT P-ADJW,0,FALSE-VALUE
|
|
PUT P-ADJW,1,FALSE-VALUE
|
|
PUTP HOLE,P?SDESC,STR?132
|
|
PRINTI "once again"
|
|
JUMP ?CND8
|
|
?ELS10: PRINTI "already"
|
|
?CND8: PRINTR " black!"
|
|
?ELS7: EQUAL? OBJ,FLYTRAP \?ELS14
|
|
CALL PERFORM,V?TOUCH,FLYTRAP
|
|
RTRUE
|
|
?ELS14: PRINTI "You apply a tiny dab to"
|
|
CALL TPRINT,OBJ
|
|
PRINTR " but it doesn't stick."
|
|
|
|
|
|
.FUNCT EXAMINE-CREAM-AND-STAIN
|
|
PRINTI "The "
|
|
CALL DPRINT,PRSO
|
|
PRINTI " is "
|
|
FSET? PRSO,MUNGBIT \?ELS3
|
|
PRINTI "empty"
|
|
JUMP ?CND1
|
|
?ELS3: PRINTI "full"
|
|
?CND1: EQUAL? PRSA,V?EXAMINE \?CND6
|
|
PRINTI ", and has some writing on it"
|
|
?CND6: PRINT PERIOD-CR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BACK-DOOR-F,RARG
|
|
EQUAL? RARG,M-ENTER \FALSE
|
|
CALL QUEUE,I-SALESMAN,-1
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SALESMAN-F
|
|
EQUAL? SALESMAN,WINNER \?ELS5
|
|
CALL QUEUE,I-SALESMAN,2
|
|
EQUAL? PRSA,V?WHAT \?ELS14
|
|
EQUAL? PRSO,LGOP /?THN11
|
|
?ELS14: EQUAL? PRSA,V?TELL-ABOUT \?ELS10
|
|
EQUAL? PRSO,ME \?ELS10
|
|
EQUAL? PRSI,LGOP \?ELS10
|
|
?THN11: PRINTR """I know the ones you mean. Made a fortune in interplanetary shoe and briefcase peddling. They really know the territory."""
|
|
?ELS10: PRINTI """Let's cut the gab and cut a deal instead!"""
|
|
CRLF
|
|
CALL STOP
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?GIVE \?ELS20
|
|
EQUAL? PRSI,SALESMAN \?ELS20
|
|
EQUAL? PRSO,FLASHLIGHT \?ELS27
|
|
REMOVE FLASHLIGHT
|
|
MOVE ODD-MACHINE,HERE
|
|
FCLEAR ODD-MACHINE,TRYTAKEBIT
|
|
REMOVE SALESMAN
|
|
SET 'FOLLOW-FLAG,8
|
|
CALL QUEUE,I-FOLLOW,2
|
|
CALL INCREMENT-SCORE,3,7
|
|
CALL EAGERLY-ACCEPTS
|
|
PRINTI ", mentioning that he knows a Plutonian plutocrat who'll trade his life fortune for one, and drops"
|
|
CALL APRINT,ODD-MACHINE
|
|
PRINTI " at your feet. ""It's a TEE remover,"" he explains. You ponder what it removes -- tea stains, hallway T-intersections -- even TV star Mr. T crosses your mind, until you recall that it's only 1936. But before you have a chance to ask the salesman, he "
|
|
FSET? FLASHLIGHT,ONBIT \?ELS30
|
|
PRINTI "points"
|
|
CALL TPRINT,FLASHLIGHT
|
|
PRINTI " upwards"
|
|
JUMP ?CND28
|
|
?ELS30: PRINTI "turns on"
|
|
CALL TPRINT,FLASHLIGHT
|
|
?CND28: PRINTI " and a giant Venusian MegaMoth swoops down and carries him off. The other salesmen scatter like frightened salesmen."
|
|
CRLF
|
|
RETURN 8
|
|
?ELS27: CALL QUEUE,I-SALESMAN,2
|
|
EQUAL? PRSO,ONE-MARSMID-COIN,TEN-MARSMID-COIN \?ELS39
|
|
CALL PERFORM,V?BUY,ODD-MACHINE
|
|
RTRUE
|
|
?ELS39: CALL PICK-ONE,SALESMAN-REFUSALS
|
|
PRINT STACK
|
|
?CND37: PRINTR " Offer me something else."""
|
|
?ELS20: EQUAL? PRSA,V?SHOW \?ELS47
|
|
EQUAL? PRSO,FLASHLIGHT /?THN44
|
|
?ELS47: EQUAL? PRSA,V?ASK-ABOUT \?ELS43
|
|
EQUAL? PRSI,FLASHLIGHT \?ELS43
|
|
?THN44: PRINTR "The salesman tries to look disinterested."
|
|
?ELS43: EQUAL? PRSA,V?FOLLOW \?ELS51
|
|
EQUAL? FOLLOW-FLAG,8 \?ELS51
|
|
PRINT DONT-WANT-TO
|
|
RTRUE
|
|
?ELS51: EQUAL? PRSA,V?BARTER-WITH \?ELS55
|
|
PRINTR "Just give him something!"
|
|
?ELS55: EQUAL? PRSA,V?COUNT \FALSE
|
|
PRINTR "Lots."
|
|
|
|
|
|
.FUNCT I-SALESMAN
|
|
CALL QUEUE,I-SALESMAN,-1
|
|
IN? SALESMAN,HERE /?CND1
|
|
FCLEAR SALESMAN,TOUCHBIT
|
|
CALL DEQUEUE,I-SALESMAN
|
|
RFALSE
|
|
?CND1: PRINTI " "
|
|
FSET? SALESMAN,TOUCHBIT \?ELS8
|
|
CALL PICK-ONE,SALESMANISMS
|
|
PRINT STACK
|
|
CRLF
|
|
RTRUE
|
|
?ELS8: FSET SALESMAN,TOUCHBIT
|
|
FCLEAR ODD-MACHINE,NDESCBIT
|
|
CALL THIS-IS-IT,SALESMAN
|
|
PRINTI "A salesman approaches you. ""You look like a "
|
|
ZERO? MALE /?ELS13
|
|
PRINTI "fella"
|
|
JUMP ?CND11
|
|
?ELS13: PRINTI "doll"
|
|
?CND11: PRINTR " who can spot a good deal. One of my machines could change your life! Let's barter; offer me something as an even-up trade."""
|
|
|
|
|
|
.FUNCT ODD-MACHINE-F,OBJ-IN-MACHINE
|
|
FIRST? ODD-MACHINE >OBJ-IN-MACHINE /?KLU81
|
|
?KLU81: EQUAL? PRSA,V?BUY \?ELS5
|
|
IN? ODD-MACHINE,SALESMAN \?ELS5
|
|
CALL QUEUE,I-SALESMAN,2
|
|
PRINTR """I wouldn't part with this baby for a hundred marsmids!"""
|
|
?ELS5: EQUAL? PRSA,V?PUT \?ELS9
|
|
FSET? ODD-MACHINE,OPENBIT \?ELS9
|
|
EQUAL? PRSI,ODD-MACHINE \?ELS9
|
|
ZERO? OBJ-IN-MACHINE /?ELS16
|
|
EQUAL? PRSO,OBJ-IN-MACHINE /?ELS16
|
|
PRINT ONLY-ONE-THING-IN-COMPARTMENT
|
|
RTRUE
|
|
?ELS16: EQUAL? PRSO,BABY \?ELS20
|
|
PRINTR "The baby cries so ferociously, you reconsider."
|
|
?ELS20: FIRST? PRSO \FALSE
|
|
PRINT YOULL-HAVE-TO
|
|
PRINTI "empty"
|
|
CALL TPRINT-PRSO
|
|
PRINTI " first. "
|
|
PRINT ONLY-ONE-THING-IN-COMPARTMENT
|
|
RTRUE
|
|
?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS24
|
|
PRINTI "The "
|
|
PRINTD ODD-MACHINE
|
|
PRINTI " is off, and has a small, "
|
|
CALL OPEN-CLOSED,ODD-MACHINE
|
|
PRINTI " compartment"
|
|
ZERO? OBJ-IN-MACHINE /?CND25
|
|
FSET? ODD-MACHINE,OPENBIT \?CND25
|
|
PRINTI " containing"
|
|
CALL APRINT,OBJ-IN-MACHINE
|
|
?CND25: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS24: EQUAL? PRSA,V?ON,V?OPEN,V?TAKE \?ELS31
|
|
FSET? ODD-MACHINE,TRYTAKEBIT \?ELS31
|
|
CALL QUEUE,I-SALESMAN,2
|
|
PRINTR """Hey!"" The salesman jumps back. ""No deal, no merchandise."""
|
|
?ELS31: EQUAL? PRSA,V?BARTER-FOR \?ELS35
|
|
EQUAL? PRSI,ODD-MACHINE \?ELS40
|
|
CALL PERFORM,V?GIVE,PRSO,SALESMAN
|
|
RTRUE
|
|
?ELS40: CALL PERFORM,V?BARTER-WITH,SALESMAN
|
|
RTRUE
|
|
?ELS35: EQUAL? PRSA,V?OFF \?ELS44
|
|
PRINT ALREADY-IS
|
|
RTRUE
|
|
?ELS44: EQUAL? PRSA,V?ON \?ELS46
|
|
FSET? ODD-MACHINE,OPENBIT \?ELS51
|
|
PRINT NOTHING-HAPPENS
|
|
RTRUE
|
|
?ELS51: ZERO? OBJ-IN-MACHINE /?ELS56
|
|
GETP OBJ-IN-MACHINE,P?NO-T-DESC
|
|
ZERO? STACK /?ELS56
|
|
EQUAL? OBJ-IN-MACHINE,TUBE,TORCH \?CND59
|
|
FSET OBJ-IN-MACHINE,VOWELBIT
|
|
?CND59: EQUAL? OBJ-IN-MACHINE,TORCH \?CND62
|
|
CALL DEQUEUE,I-TORCH
|
|
?CND62: FCLEAR OBJ-IN-MACHINE,CONTBIT
|
|
FCLEAR OBJ-IN-MACHINE,SEARCHBIT
|
|
FCLEAR OBJ-IN-MACHINE,OPENBIT
|
|
FCLEAR OBJ-IN-MACHINE,READBIT
|
|
FCLEAR OBJ-IN-MACHINE,VEHBIT
|
|
FCLEAR OBJ-IN-MACHINE,WEARBIT
|
|
FCLEAR OBJ-IN-MACHINE,ONBIT
|
|
FCLEAR OBJ-IN-MACHINE,SURFACEBIT
|
|
FSET OBJ-IN-MACHINE,UNTEEDBIT
|
|
JUMP ?CND54
|
|
?ELS56: EQUAL? OBJ-IN-MACHINE,RABBIT \?CND54
|
|
FSET RABBIT,UNTEEDBIT
|
|
?CND54: EQUAL? OBJ-IN-MACHINE,CHOCOLATE \?CND67
|
|
FSET? CHOCOLATE,SMELLEDBIT /?CND67
|
|
FCLEAR CHOCOLATE,UNTEEDBIT
|
|
?CND67: PRINTR "Sparks! Explosions! ""Pockita pockita pockita FEEP!"" exclaims the machine."
|
|
?ELS46: EQUAL? PRSA,V?OPEN \FALSE
|
|
IN? RABBIT,ODD-MACHINE \FALSE
|
|
FSET? RABBIT,UNTEEDBIT \FALSE
|
|
FSET ODD-MACHINE,OPENBIT
|
|
REMOVE RABBIT
|
|
PRINTI "A bearded rabbi wearing a prayer shawl leaps out of the machine, recites a Torah blessing, and "
|
|
EQUAL? HERE,CANAL,IN-SPACE \?ELS78
|
|
PRINTI "swim"
|
|
JUMP ?CND76
|
|
?ELS78: PRINTI "dashe"
|
|
?CND76: PRINTR "s off in search of a minyan."
|
|
|
|
|
|
.FUNCT MAD-SCIENTIST-DOOR-F
|
|
EQUAL? PRSA,V?KNOCK \FALSE
|
|
EQUAL? HERE,LOOKS-CAN-BE-DECEIVING /FALSE
|
|
FSET? CAGE,MUNGBIT /FALSE
|
|
FSET PRSO,OPENBIT
|
|
PRINTI "The door is thrown open by a wild-eyed "
|
|
PRINTD MAD-SCIENTIST
|
|
PRINTI ". """
|
|
FSET? LOOKS-CAN-BE-DECEIVING,TOUCHBIT \?ELS10
|
|
PRINTI "Ach! You haf returned! Ve can continue der experiment!"
|
|
JUMP ?CND8
|
|
?ELS10: PRINTI "Nein! Nein! Nein! I don't need any!"" Then, taking a closer look at you through spectacles thick enough to stop gamma rays, he says, ""Oh! Not ein salesman! In fact, just der type I need for mein experiment."
|
|
?CND8: CALL ULTIMATELY-IN?,FLEXIBLE-HOLE
|
|
ZERO? STACK /?CND13
|
|
PRINTI " But leaf your "
|
|
IN? FLEXIBLE-HOLE,TUBE \?ELS18
|
|
PRINTD TUBE
|
|
MOVE TUBE,HERE
|
|
JUMP ?CND16
|
|
?ELS18: PRINTD FLEXIBLE-HOLE
|
|
MOVE FLEXIBLE-HOLE,HERE
|
|
?CND16: PRINTI " outsite,"" he says, knocking it to the ground, ""I'm allergic."
|
|
?CND13: PRINTI """ He grips your wrist with surprising strength and drags you inside."
|
|
CRLF
|
|
CRLF
|
|
MOVE MAD-SCIENTIST,LOOKS-CAN-BE-DECEIVING
|
|
CALL GOTO,LOOKS-CAN-BE-DECEIVING
|
|
RSTACK
|
|
|
|
|
|
.FUNCT LOOKS-CAN-BE-DECEIVING-F,RARG,OPEN-DOOR=0
|
|
FSET? FRONT-DOOR-OBJECT,OPENBIT \?ELS3
|
|
SET 'OPEN-DOOR,FRONT-DOOR-OBJECT
|
|
JUMP ?CND1
|
|
?ELS3: FSET? BACK-DOOR-OBJECT,OPENBIT \?CND1
|
|
SET 'OPEN-DOOR,BACK-DOOR-OBJECT
|
|
?CND1: EQUAL? RARG,M-LOOK \?ELS10
|
|
PRINTI "From the innocent appearance of this quiet living area, you'd never guess that all sorts of twisted, maniacal, perverted experiments are in progress a short flight of stairs below. There are doors to the north"
|
|
EQUAL? OPEN-DOOR,BACK-DOOR-OBJECT \?CND11
|
|
PRINTI " (open)"
|
|
?CND11: PRINTI " and south"
|
|
EQUAL? OPEN-DOOR,FRONT-DOOR-OBJECT \?CND14
|
|
PRINTI " (open)"
|
|
?CND14: ZERO? OPEN-DOOR \?CND17
|
|
PRINTI ", both closed"
|
|
?CND17: PRINTI "."
|
|
RTRUE
|
|
?ELS10: EQUAL? RARG,M-END \FALSE
|
|
ZERO? OPEN-DOOR /FALSE
|
|
CALL QUEUE,I-MAD-SCIENTIST,2
|
|
FCLEAR OPEN-DOOR,OPENBIT
|
|
PRINTI " You feel uneasy as"
|
|
CALL TPRINT,MAD-SCIENTIST
|
|
PRINTR " locks the door behind you and dissolves the key in a vat of acid."
|
|
|
|
|
|
.FUNCT MAD-SCIENTIST-F,OARG=0
|
|
ZERO? OARG /?ELS5
|
|
ZERO? IMPATIENCE-COUNTER /FALSE
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " The wild-eyed "
|
|
PRINTD MAD-SCIENTIST
|
|
PRINTI " is "
|
|
GET MAD-SCIENTIST-DESCS,MAD-SCIENTIST-COUNTER
|
|
PRINT STACK
|
|
RTRUE
|
|
?ELS5: EQUAL? MAD-SCIENTIST,WINNER \?ELS13
|
|
EQUAL? PRSA,V?WHAT \?ELS22
|
|
EQUAL? PRSO,LGOP /?THN19
|
|
?ELS22: EQUAL? PRSA,V?TELL-ABOUT \?ELS18
|
|
EQUAL? PRSO,ME \?ELS18
|
|
EQUAL? PRSI,LGOP \?ELS18
|
|
?THN19: PRINTI """Eh?"" yells"
|
|
CALL TPRINT,MAD-SCIENTIST
|
|
PRINTR ", cupping his ear. ""Heather bodices of no-doze? Vat in heck are you jabbering about?"""
|
|
?ELS18: PRINTI "The "
|
|
PRINTD MAD-SCIENTIST
|
|
PRINTI " ignores you, cackling with inner glee."
|
|
CRLF
|
|
CALL STOP
|
|
RSTACK
|
|
?ELS13: EQUAL? PRSA,V?FOLLOW \FALSE
|
|
EQUAL? FOLLOW-FLAG,17 \FALSE
|
|
CALL DO-WALK,P?NORTH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-MAD-SCIENTIST
|
|
PRINTI " "
|
|
ZERO? MAD-SCIENTIST-COUNTER \?ELS5
|
|
INC 'IMPATIENCE-COUNTER
|
|
CALL QUEUE,I-MAD-SCIENTIST,2
|
|
EQUAL? IMPATIENCE-COUNTER,1 \?ELS10
|
|
PRINTI """Let us retire to der laboratory,"" suggests"
|
|
CALL TRPRINT,MAD-SCIENTIST
|
|
RSTACK
|
|
?ELS10: EQUAL? IMPATIENCE-COUNTER,2 \?ELS12
|
|
PRINTI """Downstairs, please,"" says"
|
|
CALL TPRINT,MAD-SCIENTIST
|
|
PRINTR ", impatiently."
|
|
?ELS12: EQUAL? IMPATIENCE-COUNTER,3 \?ELS14
|
|
PRINTI "The "
|
|
PRINTD MAD-SCIENTIST
|
|
PRINTR ", fidgeting himself into a frenzy, motions toward the stairs."
|
|
?ELS14: PRINTI "The "
|
|
PRINTD MAD-SCIENTIST
|
|
PRINTI " loses his patience and opens the trapdoor, dumping you"
|
|
CALL AND-SIDEKICK,LABORATORY
|
|
PRINTI " down a chute"
|
|
PRINT ELLIPSIS
|
|
CALL GOTO,LABORATORY
|
|
CALL LABORATORY-F,M-END
|
|
RTRUE
|
|
?ELS5: EQUAL? MAD-SCIENTIST-COUNTER,1 \?ELS18
|
|
MOVE PROTAGONIST,FIRST-SLAB
|
|
CALL QUEUE,I-MAD-SCIENTIST,3
|
|
SET 'MAD-SCIENTIST-COUNTER,2
|
|
SET 'BODY-TIED-TO-SLAB,TRUE-VALUE
|
|
PRINTI "Again exhibiting extraordinary strength,"
|
|
CALL TPRINT,MAD-SCIENTIST
|
|
PRINTI " straps you down on"
|
|
CALL TPRINT,FIRST-SLAB
|
|
CALL VISIBLE?,SIDEKICK
|
|
ZERO? STACK /?CND19
|
|
MOVE SIDEKICK,SECOND-SLAB
|
|
SET 'SIDEKICKS-BODY-TIED-TO-SLAB,TRUE-VALUE
|
|
PRINTI " and "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTI " onto"
|
|
CALL TPRINT,SECOND-SLAB
|
|
?CND19: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS18: EQUAL? MAD-SCIENTIST-COUNTER,2 \?ELS23
|
|
CALL QUEUE,I-MAD-SCIENTIST,6
|
|
SET 'MAD-SCIENTIST-COUNTER,3
|
|
CALL IDENTITY-TRANSFER
|
|
PRINTI "The "
|
|
PRINTD MAD-SCIENTIST
|
|
PRINTI " flips"
|
|
CALL TPRINT,POWER-SWITCH
|
|
PRINTI ", and you suddenly find yourself within the cage. Oddly, you can also see yourself still strapped to"
|
|
CALL TPRINT,FIRST-SLAB
|
|
PRINTR ". As you swing across the cage to get a better look, you realize that you're now inside the body of a gorilla."
|
|
?ELS23: EQUAL? MAD-SCIENTIST-COUNTER,3 \FALSE
|
|
CALL MINE-THEORY
|
|
RSTACK
|
|
|
|
|
|
.FUNCT LABORATORY-F,RARG
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
CALL QUEUED?,I-ION-DEATH
|
|
ZERO? STACK /?ELS5
|
|
FSET POWER-TRANSMITTER,MUNGBIT
|
|
CALL QUEUE,I-ION-DEATH,1
|
|
RSTACK
|
|
?ELS5: EQUAL? RARG,M-LOOK \?ELS9
|
|
PRINTI "The scientist's madness is finally evident by his lab, filled with many expressions of insane genius, such as the "
|
|
FSET? MALE-GORILLA,NDESCBIT \?ELS12
|
|
FSET? FEMALE-GORILLA,NDESCBIT \?ELS12
|
|
PRINTI "two caged gorillas, one male and one female"
|
|
JUMP ?CND10
|
|
?ELS12: PRINTI "cage"
|
|
?CND10: PRINTI ", the two slabs for strapping down human victims, and"
|
|
CALL TPRINT,POWER-SWITCH
|
|
PRINTI ". A closed door leads north; at the foot of the winding stone stairs is"
|
|
CALL APRINT,HOLE
|
|
PRINTI "."
|
|
RTRUE
|
|
?ELS9: EQUAL? RARG,M-END \FALSE
|
|
IN? MAD-SCIENTIST,LOOKS-CAN-BE-DECEIVING \FALSE
|
|
FCLEAR MALE-GORILLA,NDESCBIT
|
|
FCLEAR FEMALE-GORILLA,NDESCBIT
|
|
MOVE MAD-SCIENTIST,HERE
|
|
CALL QUEUE,I-MAD-SCIENTIST,5
|
|
SET 'MAD-SCIENTIST-COUNTER,1
|
|
PRINTI " The "
|
|
PRINTD MAD-SCIENTIST
|
|
PRINTR " bounds down from the first floor, activating a (guaranteed 100% effective) Vaporo-Zap Energy Barrier across the foot of the stairs."
|
|
|
|
|
|
.FUNCT LAB-DOOR-ENTER-F
|
|
CALL DO-FIRST,STR?364
|
|
RFALSE
|
|
|
|
|
|
.FUNCT LAB-DOOR-F
|
|
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
|
|
CALL PERFORM-PRSA,BACK-DOOR-OBJECT
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?KNOCK \FALSE
|
|
CALL PERFORM-PRSA,WIDE-CELL-DOOR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT STRAP-F
|
|
EQUAL? PRSA,V?OPEN,V?UNTIE \FALSE
|
|
CALL PERFORM,V?UNTIE,ME
|
|
RTRUE
|
|
|
|
|
|
.FUNCT POWER-SWITCH-F
|
|
CALL TOUCHING?,POWER-SWITCH
|
|
ZERO? STACK /?ELS5
|
|
IN? PROTAGONIST,HERE /?ELS5
|
|
CALL CANT-REACH,POWER-SWITCH
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?OFF,V?ON,V?SET /?THN12
|
|
EQUAL? PRSA,V?PUSH,V?MOVE,V?THROW /?THN12
|
|
EQUAL? PRSA,V?OPEN,V?LOWER,V?RAISE /?THN12
|
|
EQUAL? PRSA,V?CLOSE \FALSE
|
|
?THN12: EQUAL? PRSO,POWER-SWITCH \FALSE
|
|
IN? MAD-SCIENTIST,HERE \?ELS18
|
|
PRINTI "The "
|
|
PRINTD MAD-SCIENTIST
|
|
PRINTR " stops you."
|
|
?ELS18: CALL IDENTITY-TRANSFER
|
|
PRINTI "Zap! You're back in "
|
|
ZERO? GONE-APE /?ELS23
|
|
PRINTI "the body of the "
|
|
ZERO? MALE \?CND25
|
|
PRINTI "fe"
|
|
?CND25: PRINTD MALE-GORILLA
|
|
PRINTI "."
|
|
JUMP ?CND21
|
|
?ELS23: FSET? RUBBER-HOSE,MUNGBIT /?CND30
|
|
FSET RUBBER-HOSE,MUNGBIT
|
|
CALL INCREMENT-SCORE,19,24,TRUE-VALUE
|
|
?CND30: MOVE MALE-GORILLA,CAGE
|
|
MOVE FEMALE-GORILLA,CAGE
|
|
PRINTI "your own body! The gorilla looks confused and slinks back into the comfortingly familiar environment of the cage."
|
|
?CND21: ZERO? BODY-TIED-TO-SLAB /?CND33
|
|
ZERO? SIDEKICKS-BODY-TIED-TO-SLAB \?CND33
|
|
CALL VISIBLE?,SIDEKICK
|
|
ZERO? STACK /?CND33
|
|
SET 'BODY-TIED-TO-SLAB,FALSE-VALUE
|
|
MOVE SIDEKICK,HERE
|
|
PRINTI " "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTI " rushes over and unties you."
|
|
?CND33: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT IDENTITY-TRANSFER
|
|
CALL OPEN-EYES-AND-REMOVE-HANDS
|
|
ZERO? GONE-APE /?ELS5
|
|
ZERO? MALE /?ELS9
|
|
CALL ROB,PROTAGONIST,MALE-GORILLA
|
|
LOC PROTAGONIST
|
|
MOVE MALE-GORILLA,STACK
|
|
FCLEAR MALE-GORILLA,NDESCBIT
|
|
JUMP ?CND7
|
|
?ELS9: CALL ROB,PROTAGONIST,FEMALE-GORILLA
|
|
LOC PROTAGONIST
|
|
MOVE FEMALE-GORILLA,STACK
|
|
FCLEAR FEMALE-GORILLA,NDESCBIT
|
|
?CND7: CALL VISIBLE?,SIDEKICKS-BODY
|
|
ZERO? STACK /?CND13
|
|
LOC SIDEKICKS-BODY
|
|
MOVE SIDEKICK,STACK
|
|
REMOVE SIDEKICKS-BODY
|
|
?CND13: LOC YOUR-BODY
|
|
MOVE PROTAGONIST,STACK
|
|
CALL ROB,YOUR-BODY,PROTAGONIST
|
|
REMOVE YOUR-BODY
|
|
SET 'GONE-APE,FALSE-VALUE
|
|
RETURN GONE-APE
|
|
?ELS5: SET 'GONE-APE,TRUE-VALUE
|
|
LOC PROTAGONIST
|
|
MOVE YOUR-BODY,STACK
|
|
CALL ROB,PROTAGONIST,YOUR-BODY
|
|
ZERO? MALE /?ELS20
|
|
LOC MALE-GORILLA
|
|
MOVE PROTAGONIST,STACK
|
|
FSET MALE-GORILLA,NDESCBIT
|
|
CALL ROB,MALE-GORILLA,PROTAGONIST
|
|
JUMP ?CND18
|
|
?ELS20: LOC FEMALE-GORILLA
|
|
MOVE PROTAGONIST,STACK
|
|
FSET FEMALE-GORILLA,NDESCBIT
|
|
CALL ROB,FEMALE-GORILLA,PROTAGONIST
|
|
?CND18: CALL VISIBLE?,SIDEKICK
|
|
ZERO? STACK /FALSE
|
|
LOC SIDEKICK
|
|
MOVE SIDEKICKS-BODY,STACK
|
|
REMOVE SIDEKICK
|
|
RTRUE
|
|
|
|
|
|
.FUNCT LABORATORY-EXIT-F
|
|
CALL JIGS-UP,STR?365
|
|
RSTACK
|
|
|
|
|
|
.FUNCT CAGE-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTI "The bars "
|
|
FSET? CAGE,MUNGBIT \?ELS8
|
|
PRINTI "have been"
|
|
PRINT SPREAD-APART
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "seem sturdy"
|
|
?CND6: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?WALK-TO,V?BOARD,V?ENTER /?THN15
|
|
EQUAL? PRSA,V?EXIT,V?LEAVE,V?DISEMBARK \?ELS12
|
|
?THN15: EQUAL? HERE,LABORATORY \?ELS12
|
|
FSET? CAGE,MUNGBIT /?ELS12
|
|
PRINTR "You don't fit between the bars."
|
|
?ELS12: EQUAL? PRSA,V?BEND,V?MUNG,V?OPEN /?THN19
|
|
EQUAL? PRSA,V?MOVE \?ELS18
|
|
CALL NOUN-USED,W?CAGE,CAGE
|
|
ZERO? STACK \?ELS18
|
|
?THN19: FSET? CAGE,MUNGBIT \?ELS27
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?ELS27: ZERO? GONE-APE \?ELS29
|
|
PRINTR "This cage was built to hold an ape! Mere human strength is nothing against these bars!"
|
|
?ELS29: PRINTI "Bellowing madly, you pull at the bars! "
|
|
EQUAL? SUGAR-RUSH,GORILLA-ATE-CHOCOLATE \?ELS36
|
|
FSET CAGE,MUNGBIT
|
|
PRINTI "Slowly, they"
|
|
PRINT SPREAD-APART
|
|
PRINTI "."
|
|
IN? MAD-SCIENTIST,HERE \?ELS41
|
|
PRINTI " The "
|
|
PRINTD MAD-SCIENTIST
|
|
CALL JIGS-UP,STR?366
|
|
RSTACK
|
|
?ELS41: CRLF
|
|
RTRUE
|
|
?ELS36: PRINTR "They almost give, but you haven't got quite enough strength."
|
|
?ELS18: EQUAL? PRSA,V?PUT \?ELS47
|
|
EQUAL? PRSI,CAGE \?ELS47
|
|
LOC PROTAGONIST
|
|
EQUAL? STACK,FIRST-SLAB,SECOND-SLAB \?ELS47
|
|
CALL CANT-REACH,CAGE
|
|
RSTACK
|
|
?ELS47: EQUAL? PRSA,V?REACH-IN \FALSE
|
|
IN? PROTAGONIST,CAGE \?ELS56
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS56: IN? RUBBER-HOSE,CAGE \FALSE
|
|
CALL CANT-REACH,RUBBER-HOSE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT GORILLA-F
|
|
ZERO? GONE-APE /?ELS5
|
|
ZERO? MALE /?ELS5
|
|
EQUAL? PRSO,MALE-GORILLA \?ELS5
|
|
CALL PERFORM-PRSA,ME,PRSI
|
|
RTRUE
|
|
?ELS5: ZERO? GONE-APE /?ELS9
|
|
ZERO? MALE /?ELS9
|
|
EQUAL? PRSI,MALE-GORILLA \?ELS9
|
|
CALL PERFORM-PRSA,PRSO,ME
|
|
RTRUE
|
|
?ELS9: ZERO? GONE-APE /?ELS13
|
|
ZERO? MALE \?ELS13
|
|
EQUAL? PRSO,FEMALE-GORILLA \?ELS13
|
|
CALL PERFORM-PRSA,ME,PRSI
|
|
RTRUE
|
|
?ELS13: ZERO? GONE-APE /?ELS17
|
|
ZERO? MALE \?ELS17
|
|
EQUAL? PRSI,FEMALE-GORILLA \?ELS17
|
|
CALL PERFORM-PRSA,PRSO,ME
|
|
RTRUE
|
|
?ELS17: EQUAL? PRSA,V?TELL \?ELS21
|
|
PRINTI """Ooo oo ee ee ee!"""
|
|
CRLF
|
|
CALL STOP
|
|
RSTACK
|
|
?ELS21: EQUAL? PRSA,V?GIVE \?ELS23
|
|
EQUAL? PRSI,FEMALE-GORILLA,MALE-GORILLA \?ELS23
|
|
LOC PROTAGONIST
|
|
EQUAL? STACK,FIRST-SLAB,SECOND-SLAB \?ELS30
|
|
CALL CANT-REACH,PRSI
|
|
RSTACK
|
|
?ELS30: CALL EAGERLY-ACCEPTS
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS23: EQUAL? PRSA,V?EXAMINE \?ELS34
|
|
ZERO? GONE-APE /?ELS37
|
|
SET 'GORILLA-EXAMINED,TRUE-VALUE
|
|
CALL NOT-BAD-LOOKING
|
|
JUMP ?CND35
|
|
?ELS37: PRINTI "An uglier beast cannot possibly exist."
|
|
?CND35: FIRST? PRSO \?ELS45
|
|
PRINTI " "
|
|
RFALSE
|
|
?ELS45: CRLF
|
|
RTRUE
|
|
?ELS34: EQUAL? PRSA,V?TOUCH,V?KISS,V?FUCK \FALSE
|
|
ZERO? GONE-APE \?ELS54
|
|
PRINTR "What a repulsive, bestial idea!"
|
|
?ELS54: ZERO? NAUGHTY-LEVEL \?ELS59
|
|
PRINTI "Normally, we wouldn't allow this in TAME mode, but it's okay in this case since you're only a gorilla. This sort of thing appears all the time in National Geographic."
|
|
JUMP ?CND57
|
|
?ELS59: ZERO? GORILLA-EXAMINED \?CND62
|
|
SET 'GORILLA-EXAMINED,TRUE-VALUE
|
|
CALL NOT-BAD-LOOKING
|
|
PRINTI " "
|
|
?CND62: PRINTI "You begin nuzzling, and things quickly get hot and heavy."
|
|
EQUAL? NAUGHTY-LEVEL,2 \?CND57
|
|
PRINTI " The "
|
|
PRINTD PRSO
|
|
PRINTI " screams, ""Eee oo oo ah!"" which translates roughly as ""Oh, you animal!"""
|
|
?CND57: IN? MAD-SCIENTIST,HERE \?ELS72
|
|
PRINTI " "
|
|
CALL MINE-THEORY,TRUE-VALUE
|
|
RSTACK
|
|
?ELS72: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT GENERIC-GORILLA-F
|
|
ZERO? GONE-APE /FALSE
|
|
ZERO? MALE /?ELS7
|
|
RETURN FEMALE-GORILLA
|
|
?ELS7: RETURN MALE-GORILLA
|
|
|
|
|
|
.FUNCT NOT-BAD-LOOKING
|
|
PRINTI "Hey! The "
|
|
PRINTD PRSO
|
|
PRINTI " isn't bad-looking!"
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MINE-THEORY,RIGHT=0
|
|
REMOVE MAD-SCIENTIST
|
|
CALL DEQUEUE,I-MAD-SCIENTIST
|
|
SET 'FOLLOW-FLAG,17
|
|
CALL QUEUE,I-FOLLOW,2
|
|
PRINTI """Ach!"" yells"
|
|
CALL TPRINT,MAD-SCIENTIST
|
|
PRINTI ", ""mein theory iss "
|
|
ZERO? RIGHT /?ELS3
|
|
PRINTI "correct"
|
|
JUMP ?CND1
|
|
?ELS3: PRINTI "wronk"
|
|
?CND1: PRINTI "! Der sex drive uf a species resides in der b"
|
|
ZERO? RIGHT /?ELS9
|
|
PRINTI "ody"
|
|
JUMP ?CND7
|
|
?ELS9: PRINTI "rain"
|
|
?CND7: PRINTI ", not in der b"
|
|
ZERO? RIGHT /?ELS15
|
|
PRINTI "rain"
|
|
JUMP ?CND13
|
|
?ELS15: PRINTI "ody"
|
|
?CND13: PRINTI "!"" He dashes off."
|
|
CRLF
|
|
CALL VISIBLE?,SIDEKICKS-BODY
|
|
ZERO? STACK /TRUE
|
|
PRINTI " Through the briefly open door, you see two "
|
|
PRINTD FLYTRAP
|
|
PRINTR "s running madly around the next room. One is chasing, while the other is frantically trying to stay as far away as possible."
|
|
|
|
|
|
.FUNCT RUBBER-HOSE-F
|
|
EQUAL? PRSA,V?MEASURE,V?EXAMINE \?ELS5
|
|
PRINTR "The hose is around six feet long."
|
|
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
PRINT ONLY-BLACKNESS
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FIRST-SLAB-F
|
|
EQUAL? PRSA,V?DISEMBARK \?ELS5
|
|
ZERO? GONE-APE \?ELS5
|
|
ZERO? BODY-TIED-TO-SLAB /?ELS5
|
|
PRINTR "You're strapped down."
|
|
?ELS5: EQUAL? PRSA,V?PUT-ON \FALSE
|
|
EQUAL? PRSI,FIRST-SLAB \FALSE
|
|
IN? PROTAGONIST,CAGE \FALSE
|
|
CALL CANT-REACH,FIRST-SLAB
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SECOND-SLAB-F
|
|
EQUAL? PRSA,V?PUT-ON \FALSE
|
|
EQUAL? PRSI,SECOND-SLAB \FALSE
|
|
IN? PROTAGONIST,CAGE \FALSE
|
|
CALL CANT-REACH,SECOND-SLAB
|
|
RSTACK
|
|
|
|
|
|
.FUNCT GENERIC-SLAB-F
|
|
LOC PROTAGONIST
|
|
EQUAL? STACK,FIRST-SLAB,SECOND-SLAB \FALSE
|
|
LOC PROTAGONIST
|
|
RSTACK
|
|
|
|
|
|
.FUNCT YOUR-BODY-F
|
|
EQUAL? PRSA,V?TELL \?ELS5
|
|
CALL PERFORM-PRSA,MALE-GORILLA
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7
|
|
PRINTI "Your body"
|
|
IN? YOUR-BODY,FIRST-SLAB \?CND8
|
|
PRINTI " on"
|
|
CALL TPRINT,FIRST-SLAB
|
|
?CND8: PRINTR " is grunting, scratching itself with its foot, and looking around the room for a banana."
|
|
?ELS7: EQUAL? PRSA,V?GIVE \?ELS12
|
|
EQUAL? PRSI,YOUR-BODY \?ELS12
|
|
CALL EAGERLY-ACCEPTS
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS12: EQUAL? PRSA,V?TAKE \?ELS16
|
|
EQUAL? PRSO,YOUR-BODY \?ELS16
|
|
PRINTI "Carrying "
|
|
PRINTD YOUR-BODY
|
|
PRINTI " around"
|
|
CALL HO-HUM
|
|
RSTACK
|
|
?ELS16: EQUAL? PRSA,V?TIE \?ELS20
|
|
EQUAL? PRSO,SECOND-SLAB,FIRST-SLAB \?ELS20
|
|
ZERO? BODY-TIED-TO-SLAB \?ELS20
|
|
EQUAL? PRSO,SECOND-SLAB \?CND23
|
|
PRINTI "[the first slab is closer]"
|
|
CRLF
|
|
?CND23: SET 'BODY-TIED-TO-SLAB,TRUE-VALUE
|
|
CALL NOW-TIED,FIRST-SLAB
|
|
RSTACK
|
|
?ELS20: EQUAL? PRSA,V?UNTIE \FALSE
|
|
IN? PROTAGONIST,CAGE \?ELS32
|
|
CALL CANT-REACH,YOUR-BODY
|
|
RSTACK
|
|
?ELS32: ZERO? GONE-APE /?ELS34
|
|
ZERO? BODY-TIED-TO-SLAB /?ELS40
|
|
SET 'BODY-TIED-TO-SLAB,FALSE-VALUE
|
|
PRINTI "Your body leaps for a rafter and lands back on"
|
|
CALL TPRINT,FIRST-SLAB
|
|
PRINTR " with a loud ""whump,"" looking momentarily stunned."
|
|
?ELS40: PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?ELS34: ZERO? BODY-TIED-TO-SLAB /?ELS45
|
|
CALL YUKS
|
|
RSTACK
|
|
?ELS45: PRINTR "Your body isn't tied down!"
|
|
|
|
|
|
.FUNCT SIDEKICKS-BODY-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
CALL HIS-HER,TRUE-VALUE
|
|
PRINTR " eyes are darting around the room, as though following a fly."
|
|
?ELS5: EQUAL? PRSA,V?TIE \?ELS7
|
|
EQUAL? PRSO,SECOND-SLAB \?ELS12
|
|
ZERO? SIDEKICKS-BODY-TIED-TO-SLAB /?ELS12
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTR " already is!"
|
|
?ELS12: EQUAL? PRSO,SECOND-SLAB \?ELS16
|
|
ZERO? GONE-APE /?ELS16
|
|
SET 'SIDEKICKS-BODY-TIED-TO-SLAB,TRUE-VALUE
|
|
CALL NOW-TIED,SECOND-SLAB
|
|
RSTACK
|
|
?ELS16: CALL WASTES
|
|
RSTACK
|
|
?ELS7: EQUAL? PRSA,V?UNTIE \FALSE
|
|
LOC PROTAGONIST
|
|
EQUAL? STACK,CAGE,FIRST-SLAB \?ELS27
|
|
CALL CANT-REACH,SIDEKICKS-BODY
|
|
RSTACK
|
|
?ELS27: ZERO? GONE-APE /?ELS29
|
|
ZERO? SIDEKICKS-BODY-TIED-TO-SLAB /?ELS35
|
|
SET 'SIDEKICKS-BODY-TIED-TO-SLAB,FALSE-VALUE
|
|
PRINTI "As you untie "
|
|
CALL DPRINT,SIDEKICKS-BODY
|
|
PRINTR ", it attempts to wrap its arms around you as though they were tentacles."
|
|
?ELS35: PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?ELS29: CALL DPRINT,SIDEKICKS-BODY
|
|
PRINTR " isn't tied down!"
|
|
|
|
|
|
.FUNCT ROCKY-CLIFFTOP-F,RARG
|
|
EQUAL? RARG,M-LOOK \?ELS5
|
|
PRINTI "Even the most adaptable Venusian flora can't gain a foothold on this outcropping, so the jungle (which can be entered to the north or west) peters out here. To the southeast, your clifftop vantage offers a stunning view of more lush jungle, stretching unbroken to the horizon.
|
|
To the northwest, between the two paths into the jungle, is a vizicomm booth. At the edge of the cliff is"
|
|
CALL APRINT,HOLE
|
|
PRINTI "."
|
|
RTRUE
|
|
?ELS5: EQUAL? RARG,M-END \FALSE
|
|
ZERO? GONE-APE /FALSE
|
|
CALL JIGS-UP,STR?368
|
|
RSTACK
|
|
|
|
|
|
.FUNCT CLIFF-OBJECT-F
|
|
EQUAL? PRSA,V?LEAP-OFF \?ELS5
|
|
SET 'PRSO,FALSE-VALUE
|
|
CALL V-LEAP
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
CALL V-LOOK
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BOOTH-OBJECT-F
|
|
EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5
|
|
EQUAL? HERE,ROCKY-CLIFFTOP \?ELS10
|
|
CALL DO-WALK,P?NW
|
|
RSTACK
|
|
?ELS10: EQUAL? HERE,VIZICOMM-BOOTH \FALSE
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS14
|
|
EQUAL? HERE,ROCKY-CLIFFTOP \?ELS19
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS19: CALL DO-WALK,P?SE
|
|
RSTACK
|
|
?ELS14: EQUAL? PRSA,V?EXAMINE \?ELS23
|
|
EQUAL? HERE,VIZICOMM-BOOTH \?ELS23
|
|
CALL V-LOOK
|
|
RSTACK
|
|
?ELS23: EQUAL? PRSA,V?SEARCH \?ELS27
|
|
PRINT NOTHING-NEW
|
|
RTRUE
|
|
?ELS27: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
EQUAL? HERE,ROCKY-CLIFFTOP \FALSE
|
|
PRINT CANT-FROM-HERE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT VIZICOMM-BOOTH-F,RARG
|
|
EQUAL? RARG,M-LOOK \?ELS5
|
|
PRINTI "This small booth, which opens to the southeast, contains"
|
|
PRINT VIZICOMM-DESC
|
|
PRINTI " A red sign is posted over the vizicomm."
|
|
RTRUE
|
|
?ELS5: EQUAL? RARG,M-END \FALSE
|
|
ZERO? GONE-APE /FALSE
|
|
CALL VISIBLE?,FLEXIBLE-HOLE
|
|
ZERO? STACK /FALSE
|
|
CALL ROCKY-CLIFFTOP-F,M-END
|
|
RSTACK
|
|
|
|
|
|
.FUNCT VIZICOMM-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTI "It's"
|
|
PRINT VIZICOMM-DESC
|
|
CRLF
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?SET \FALSE
|
|
PRINTR "The dial is stuck and won't turn."
|
|
|
|
|
|
.FUNCT DIAL-F
|
|
EQUAL? PRSA,V?MOVE,V?SET \?ELS5
|
|
CALL PERFORM,V?SET,VIZICOMM
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?TAKE \FALSE
|
|
PRINT PART-OF-VIZICOMM
|
|
RTRUE
|
|
|
|
|
|
.FUNCT COIN-SLOT-F
|
|
EQUAL? PRSA,V?TAKE \?ELS5
|
|
PRINT PART-OF-VIZICOMM
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS7
|
|
PRINT ONLY-BLACKNESS
|
|
RTRUE
|
|
?ELS7: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSO,ONE-MARSMID-COIN,TEN-MARSMID-COIN \FALSE
|
|
MOVE PRSO,COIN-RETURN-KNOB
|
|
PRINTR """Clink."""
|
|
|
|
|
|
.FUNCT HANDSET-F
|
|
EQUAL? PRSA,V?RAISE,V?LISTEN,V?PICK-UP /?THN6
|
|
EQUAL? PRSA,V?PICK-UP \?ELS5
|
|
?THN6: PRINTR "There's no dial tone."
|
|
?ELS5: EQUAL? PRSA,V?TAKE \FALSE
|
|
PRINT PART-OF-VIZICOMM
|
|
RTRUE
|
|
|
|
|
|
.FUNCT COIN-RETURN-KNOB-F,COIN=0
|
|
EQUAL? PRSA,V?SET,V?MOVE,V?PUSH \?ELS5
|
|
FIRST? COIN-RETURN-KNOB >COIN \?ELS10
|
|
MOVE COIN,COIN-RETURN-BOX
|
|
PRINTR """Clank."""
|
|
?ELS10: PRINT NOTHING-HAPPENS
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?TAKE \FALSE
|
|
PRINT PART-OF-VIZICOMM
|
|
RTRUE
|
|
|
|
|
|
.FUNCT COIN-RETURN-BOX-F,COIN=0
|
|
EQUAL? PRSA,V?SEARCH,V?REACH-IN,V?LOOK-INSIDE /?THN6
|
|
EQUAL? PRSA,V?OPEN \FALSE
|
|
?THN6: FIRST? COIN-RETURN-BOX >COIN \?ELS12
|
|
MOVE COIN,HERE
|
|
CALL THIS-IS-IT,COIN
|
|
PRINTR "A coin falls to the ground!"
|
|
?ELS12: PRINTR "The box is empty. Upon letting go, it swings shut."
|
|
|
|
|
|
.FUNCT GENERIC-COIN-F
|
|
RETURN ONE-MARSMID-COIN
|
|
|
|
.ENDI
|