leathergoddesses/venus.zap

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