zorkzero/oracle.zap
historicalsource 8b3579aab4 Release 296
2019-04-16 09:52:54 -04:00

1802 lines
52 KiB
Plaintext

.SEGMENT "SECRET"
.FUNCT ORACLE-F,RARG
EQUAL? RARG,M-ENTER \?CCL3
GRTR? ORACLE-EXIT-NUMBER,4 \?CCL3
RANDOM 5
SUB STACK,1 >ORACLE-EXIT-NUMBER
CALL QUEUE,I-AMULET,4
RSTACK
?CCL3: EQUAL? RARG,M-LOOK \FALSE
PRINTI "You are in an irregularly shaped chamber, hewn out of bedrock by untold ages of trickling waters. The walls are slimy, and shadows dance in the unlit crevices. A stream of slime drips sluggishly down an uneven tunnel which heads roughly upwards."
CRLF
PRINTI " "
CALL1 D-ORACLE
RSTACK
.ENDSEG
.SEGMENT "SECRET"
.FUNCT ORACLE-OBJECT-F,VARG,TAKER,RM
ZERO? VARG \FALSE
EQUAL? PRSA,V?TELL,V?PRAY,V?ASK-ABOUT \?CCL5
EQUAL? PRSO,ORACLE-OBJECT \?CCL5
PRINTI "The oracle stares at the far wall of the cave, impassive and unresponsive."
ZERO? ORACLE-USED \?CND8
PRINTI " It appears that the ancient claims of the oracle's amazing abilities were just wild fictions."
?CND8: CRLF
CALL1 STOP
RSTACK
?CCL5: EQUAL? PRSA,V?EXAMINE \?CCL11
ICALL1 D-ORACLE
FIRST? ORACLE-OBJECT \?CCL14
PRINTI " Sitting in the mouth of the oracle is"
CALL1 D-NOTHING
RSTACK
?CCL14: CRLF
RTRUE
?CCL11: EQUAL? PRSA,V?LOOK-INSIDE \?CCL16
CALL NOUN-USED?,ORACLE-OBJECT,W?MOUTH
ZERO? STACK /?CCL16
IN? PROTAGONIST,ORACLE-OBJECT /?CCL16
PRINTR "The wide-open mouth is larger than you!"
?CCL16: EQUAL? PRSA,V?THROW,V?PUT \?CCL21
EQUAL? PRSI,ORACLE-OBJECT \?CCL21
PRINTI "You "
EQUAL? PRSA,V?THROW \?CCL26
PRINTI "toss"
JUMP ?CND24
?CCL26: PRINTI "place"
?CND24: ICALL1 TPRINT-PRSO
PRINTI " into the mouth of the oracle"
IN? RUBY,DEPRESSION \?CCL29
GET ORACLE-TABLE,ORACLE-EXIT-NUMBER >RM
MOVE PRSO,RM
PRINTI ", and it instantly vanishes!"
CRLF
CALL FIND-IN,RM,WHITEBIT >TAKER
ZERO? TAKER \?CCL31
CALL FIND-IN,RM,BLACKBIT >TAKER
ZERO? TAKER /?CND30
?CCL31: MOVE PRSO,TAKER
EQUAL? PRSO,PIGEON \?CND30
ICALL2 MOVE-TO-PERCH,TAKER
?CND30: CALL1 NOW-DARK?
RSTACK
?CCL29: MOVE PRSO,ORACLE-OBJECT
PRINT PERIOD-CR
RTRUE
?CCL21: EQUAL? PRSA,V?ENTER \FALSE
ZERO? LIT \?CCL40
PRINT TOO-DARK
CRLF
RTRUE
?CCL40: IN? BEDBUG,HERE \?CCL42
ZERO? TIME-STOPPED \?CCL42
CALL2 DO-WALK,P?UP
RSTACK
?CCL42: IN? RUBY,DEPRESSION \FALSE
ZERO? ORACLE-USED /?CCL49
PRINTC 68
JUMP ?CND47
?CCL49: ICALL SPLIT-BY-PICTURE,TEXT-WINDOW-PIC-LOC,TRUE-VALUE
SCREEN S-TEXT
CRLF
ICALL2 MARGINAL-PIC,TELEPORT-LETTER
DIROUT D-SCREEN-OFF
PRINTC 68
DIROUT D-SCREEN-ON
?CND47: PRINTI "arkness envelopes you"
ZERO? ORACLE-USED \?CCL52
PRINTI " with a giant hand swathed in a glove of black velvet. You feel disembodied; there is no up and down. You are motionless in time and space. A moment drags out for a century -- or is it a century that has flown by in a moment? After an immeasurable time, you notice"
JUMP ?CND50
?CCL52: PRINTI ". You feel"
?CND50: PRINTI " a stabbing pain... swirling lights... dizziness"
PRINT ELLIPSIS
ZERO? BORDER-ON \?CND53
ICALL2 INIT-STATUS-LINE,TRUE-VALUE
?CND53: GET ORACLE-TABLE,ORACLE-EXIT-NUMBER
ICALL2 GOTO,STACK
SET 'ORACLE-USED,TRUE-VALUE
RETURN ORACLE-USED
.FUNCT D-ORACLE
IN? PROTAGONIST,ORACLE-OBJECT \?CCL3
PRINTI "Surrounding you is"
JUMP ?CND1
?CCL3: PRINTI "Before you sits"
?CND1: PRINTI " the legendary Oracle of Bargth. Shaped like an enormous serpent's head, its huge mouth hangs open in an expression of insatiable hunger; its four "
IN? RUBY,DEPRESSION \?CCL6
PRINTI "glowing"
JUMP ?CND4
?CCL6: PRINTI "dark"
?CND4: PRINTI " eyes seem fixed upon you. In the center of the serpent's forehead is a"
IN? RUBY,DEPRESSION \?CCL9
PRINTI "n enormous ruby."
RTRUE
?CCL9: PRINTI " depression."
RTRUE
.FUNCT DEPRESSION-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "The semi-spherical depression is a few inches across."
IN? RUBY,DEPRESSION \?CND4
PRINTR " A huge ruby rests in the depresssion."
?CND4: CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?TAKE \?CCL7
EQUAL? PRSO,RUBY \?CCL7
FSET? RUBY,NDESCBIT \?CCL7
CALL2 ITAKE,TRUE-VALUE
EQUAL? STACK,M-FATAL,FALSE-VALUE /TRUE
FCLEAR RUBY,NDESCBIT
FCLEAR RUBY,NALLBIT
PRINTR "Taken."
?CCL7: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSO,SAPPHIRE \?CCL18
MOVE SAPPHIRE,HERE
PRINTR "The sapphire is a bit smaller than the depression; it stays for a moment but then drops to the ground."
?CCL18: EQUAL? PRSO,RUBY \?CCL20
MOVE RUBY,DEPRESSION
FSET RUBY,NDESCBIT
FSET RUBY,NALLBIT
PRINTI "The moby ruby fits perfectly into the depression. As it sinks into place, the eyes of the oracle begin to glow."
FIRST? ORACLE-OBJECT \?CND21
GET ORACLE-TABLE,ORACLE-EXIT-NUMBER
ICALL ROB,ORACLE-OBJECT,STACK
PRINTI " Everything in the oracle's mouth suddenly vanishes!"
?CND21: CRLF
ICALL2 INC-SCORE,ORACLE-SCORE
SET 'ORACLE-SCORE,0
RTRUE
?CCL20: PRINTR "It doesn't fit the depression."
.ENDSEG
.SEGMENT "0"
.FUNCT AMULET-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "The amulet is in the shape of a serpent's head. "
FSET? HERE,BEYONDBIT \?CCL6
PRINTI "It seems to be glowing slightly"
JUMP ?CND4
?CCL6: GET EYE-TABLE,ORACLE-EXIT-NUMBER
PRINT STACK
PRINTI " of its four eyes "
EQUAL? ORACLE-EXIT-NUMBER,1 \?CCL9
PRINTI "is"
JUMP ?CND7
?CCL9: PRINTI "are"
?CND7: PRINTI " open"
?CND4: PRINT PERIOD-CR
RTRUE
?CCL3: EQUAL? PRSA,V?TOUCH \FALSE
FSET? HERE,BEYONDBIT \?CCL14
ICALL1 CAST-HUNGER-SPELL
PRINTI "A stream of light undulates slowly from the amulet "
FSET? AMULET,WORNBIT \?CCL17
PRINTI "and envelops you like a mist. After a moment, the mist clears"
PRINT ELLIPSIS
CALL2 GOTO,G-U-MOUNTAIN
RSTACK
?CCL17: PRINTR "but then quickly fades."
?CCL14: ZERO? TIME-STOPPED \FALSE
PRINTR "The amulet, for one brief moment, glows from deep within."
.FUNCT I-AMULET
ICALL QUEUE,I-AMULET,4
IGRTR? 'ORACLE-EXIT-NUMBER,4 \?CND1
SET 'ORACLE-EXIT-NUMBER,0
?CND1: EQUAL? HERE,ORACLE \FALSE
IN? RUBY,DEPRESSION \FALSE
ZERO? LIT /FALSE
ICALL1 RETURN-FROM-MAP
PRINTR " The oracle seems to blink for a moment."
.ENDSEG
.SEGMENT "ORACLE"
.FUNCT FLATHEAD-MOUNTAINS-F
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB,V?ENTER /?CCL3
EQUAL? PRSA,V?CLIMB-DOWN \FALSE
?CCL3: CALL1 V-WALK-AROUND
RSTACK
.FUNCT HOLLOW-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is a chamber, open to the sky, formed by cliff-like mountain walls. Strange and frightening runes have been carved into the cliff wall to the south, next to a "
ZERO? IRON-MINE-OPEN /?CCL6
PRINTI "dark cave entrance"
JUMP ?CND4
?CCL6: PRINTI "six-sided hole"
?CND4: PRINTI ". The only "
ZERO? IRON-MINE-OPEN /?CCL9
PRINTI "other"
JUMP ?CND7
?CCL9: PRINTI "apparent"
?CND7: PRINTI " exit is northeast."
RTRUE
.FUNCT HEXAGONAL-HOLE-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTR "The small, six-sided hole has been neatly carved into the cliff wall."
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL5
PRINT ONLY-BLACKNESS
RTRUE
?CCL5: EQUAL? PRSA,V?REACH-IN \?CCL7
PRINTR "Your hand is about the same size as the hole, and since your hand isn't hexagonal, it doesn't fit."
?CCL7: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSO,HEXAGONAL-BLOCK \?CCL12
SET 'IRON-MINE-OPEN,TRUE-VALUE
SET 'COMPASS-CHANGED,TRUE-VALUE
REMOVE HEXAGONAL-BLOCK
REMOVE HEXAGONAL-HOLE
PRINTI "A seam appears in the cliff wall, and a huge slab of rock slides silently aside! A breeze of stale, dusty air caresses you as the dark opening to the south beckons ominously."
CRLF
CALL2 INC-SCORE,14
RSTACK
?CCL12: PRINTR "It doesn't fit."
.FUNCT BIRCH-F,ARG
EQUAL? ARG,M-WINNER \?CCL3
CALL1 PLANT-STUNNED
RSTACK
?CCL3: EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \?CCL5
PRINT POORLY-CONFIGURED
RTRUE
?CCL5: EQUAL? PRSA,V?GET-NEAR \?CCL7
CALL2 PERFORM-PRSA,SMALL-ELM
RSTACK
?CCL7: EQUAL? PRSA,V?LISTEN \FALSE
ZERO? PLANT-TALKER /FALSE
PRINTR "The birch is poignantly bemoaning that none of its seedlings has ever taken root in this barren, rocky place."
.FUNCT IRON-PS
EQUAL? HERE,IRON-MINE \FALSE
PRINTR "There's no iron ore here. The vein is played out; the mine abandoned."
.FUNCT IRON-MINE-PS
EQUAL? PRSA,V?ENTER \?CCL3
EQUAL? HERE,HOLLOW \?CCL3
CALL2 DO-WALK,P?IN
RSTACK
?CCL3: CALL2 PERFORM-PRSA,GLOBAL-HERE
RSTACK
.SEGMENT "CASTLE"
.FUNCT SAPPHIRE-F
EQUAL? PRSA,V?TAKE \FALSE
EQUAL? PRSO,SAPPHIRE \FALSE
FSET? SAPPHIRE,TRYTAKEBIT \FALSE
FCLEAR SAPPHIRE,TRYTAKEBIT
PUTP SAPPHIRE,P?ACTION,FALSE-VALUE
FSET SAPPHIRE,TOUCHBIT
MOVE SAPPHIRE,PROTAGONIST
PRINTR "As you pry loose the sapphire, the skeleton's fingers crumble to dust, and the jewel glows briefly from deep within."
.ENDSEG
.SEGMENT "ORACLE"
.FUNCT NATURAL-ARCH-OBJECT-F
EQUAL? PRSA,V?LOOK-UNDER,V?EXAMINE \FALSE
PRINTR "Under the arch, steps lead down into darkness."
.FUNCT ENCHANTED-CAVE-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Your light sparkles off reflective walls, spilling glittering droplets of illumination across every surface, including the dull gray altar in the very center of the room. The altar is inscribed with the single word ""Zilbeetha."" "
IN? STATUE,HERE \?CND4
PRINT STATUE-DESC
PRINTC 32
?CND4: PRINTI "Strewn about the cave are the bones of many adventurers, amidst dust which might be that of even older bones. An uneven stair leads up toward light."
RTRUE
.FUNCT STATUE-F
EQUAL? PRSA,V?PUT-ON \?CCL3
EQUAL? PRSI,STATUE \?CCL3
FSET? PRSO,WEARBIT \?CCL3
PRINTR "The statue isn't a department store mannequin!"
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL8
PRINT STATUE-DESC
CRLF
RTRUE
?CCL8: EQUAL? PRSA,V?ALARM \FALSE
PRINTR "Apparently, you think breaking an enchantment is as easy as breaking an egg!"
.FUNCT ALTAR-F
EQUAL? PRSA,V?PUT-ON \FALSE
EQUAL? PRSO,GLITTERY-ORB,SMOKY-ORB,MILKY-ORB /?CCL3
EQUAL? PRSO,FIERY-ORB \FALSE
?CCL3: EQUAL? PRSO,ENCHANTED-ORB /?CTR9
EQUAL? ORBS-EXAMINED,3 \?CCL10
FSET? PRSO,ORBBIT /?CCL10
?CTR9: REMOVE PRSO
REMOVE STATUE
MOVE FLOWER,ALTAR
FCLEAR FLOWER,NDESCBIT
FCLEAR FLOWER,TRYTAKEBIT
PRINTI "At first, nothing happens. Then the orb glows deep within, and a gentle chorus of angels begins to swell. As the glow brightens to include the entire cave, the statue and orb are gone, replaced by a young couple in wedding garb, in rapturous embrace. As the singing of the angels reaches a crescendo, Zilbeetha and her lover recede from sight toward planes unknown, leaving a flower of incomparable fragility and beauty sitting on the altar."
CRLF
CALL2 INC-SCORE,25
RSTACK
?CCL10: IN? STATUE,HERE \FALSE
CALL2 JIGS-UP,STR?804
RSTACK
.SEGMENT "0"
.FUNCT FLOWER-F,ARG
EQUAL? ARG,M-WINNER \?CCL3
CALL1 PLANT-STUNNED
RSTACK
?CCL3: EQUAL? PRSA,V?TAKE \?CCL5
FSET? FLOWER,TRYTAKEBIT \?CCL5
EQUAL? PRSO,FLOWER \?CCL5
PRINTR "It's part of a stone statue!"
?CCL5: EQUAL? PRSA,V?LISTEN \?CCL10
ZERO? PLANT-TALKER /?CCL10
PRINTR "The flower is aware that, having been cut, it will shortly wilt. However, it has philosophically decided to accept this sad fate without complaint."
?CCL10: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "The flower"
FSET? FLOWER,TRYTAKEBIT \?CND15
PRINTI ", though made of stone,"
?CND15: PRINTR " is a thing of fragile beauty."
.ENDSEG
.SEGMENT "ORACLE"
.FUNCT LOWER-LEDGE-F,RARG
ZERO? RARG \FALSE
EQUAL? PRSA,V?PUT-ON,V?THROW \?CCL5
EQUAL? PRSI,LOWER-LEDGE \?CCL5
REMOVE PRSO
EQUAL? PRSO,PERCH /?CCL9
CALL ULTIMATELY-IN?,PERCH,PRSO
ZERO? STACK /?CND8
?CCL9: SET 'REMOVED-PERCH-LOC,WATER
?CND8: PRINTI "You toss"
ICALL1 TPRINT-PRSO
PRINTR " carefully, but it skitters across the lower ledge and falls into the fjord."
?CCL5: EQUAL? PRSA,V?EXAMINE \?CCL13
EQUAL? HERE,UPPER-LEDGE \?CCL13
FSET? LOWER-LEDGE,TOUCHBIT /?CCL13
PRINTR "By leaning far out, you can just make out the edge of something on the ledge below. Most of it is hidden by protrusions in the cliff wall, though, so you can't make out what it is."
?CCL13: EQUAL? PRSA,V?CLIMB-ON,V?ENTER \?CCL18
EQUAL? HERE,LOWER-LEDGE \?CCL21
PRINT LOOK-AROUND
RTRUE
?CCL21: CALL2 DO-WALK,P?DOWN
RSTACK
?CCL18: EQUAL? PRSA,V?LEAP \FALSE
SET 'PRSO,FALSE-VALUE
RFALSE
.FUNCT NARROW-CRACK-PS
EQUAL? PRSA,V?LOOK-INSIDE \?CCL3
PRINT ONLY-BLACKNESS
RTRUE
?CCL3: EQUAL? PRSA,V?REACH-IN \FALSE
ZERO? ROPE-PLACED \?CCL8
CALL2 JIGS-UP,STR?810
RSTACK
?CCL8: PRINT NOTHING-IN-REACH
RTRUE
.SEGMENT "0"
.FUNCT LANDSCAPE-F
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "You're not a student of art, but it sure looks like this landscape was done more with a catapult than a brush. "
EQUAL? HERE,LOWER-LEDGE \?CND4
PRINTI "In fact, the artist seems to have gotten more paint on the cliff and ledge than on the canvas. "
?CND4: PRINTR "Despite its flaws, the landscape is obviously of the Flathead Fjord."
.FUNCT G-PAINTING-F,SRES,F
RETURN LANDSCAPE
.ENDSEG
.SEGMENT "ORACLE"
.FUNCT FJORD-F
CALL2 TOUCHING?,FJORD
ZERO? STACK /FALSE
CALL2 CANT-REACH,FJORD
RSTACK
.FUNCT GLACIER-DEATH,RARG
ZERO? RARG \FALSE
CALL2 JIGS-UP,STR?816
RSTACK
.FUNCT MIRROR-LAKE-F,RARG,TMP,DIR
EQUAL? RARG,M-BEG \?CCL3
EQUAL? PRSO,REFLECTION \?CCL3
CALL2 GET-OWNER,PRSO
EQUAL? STACK,MIRROR,REFLECTION \?CCL3
PRINT HUH
RTRUE
?CCL3: EQUAL? RARG,M-BEG \?CCL8
EQUAL? PRSA,V?EXAMINE \?CCL8
EQUAL? PRSO,REFLECTION \?CCL8
CALL2 GET-OWNER,PRSO >TMP
ZERO? TMP /?CCL8
ICALL PERFORM,V?MIRROR-LOOK,TMP,MIRROR
RTRUE
?CCL8: EQUAL? RARG,M-BEG \?CCL14
EQUAL? PRSA,V?THROW /?CTR13
EQUAL? PRSA,V?STHROW \?CCL14
EQUAL? PRSI,INTDIR \?CCL14
?CTR13: CALL1 IDROP
ZERO? STACK \TRUE
EQUAL? PRSA,V?THROW \?CCL25
RANDOM 100
LESS? 25,STACK /?CCL28
SET 'DIR,P?EAST
JUMP ?CND21
?CCL28: RANDOM 100
LESS? 33,STACK /?CCL30
SET 'DIR,P?WEST
JUMP ?CND21
?CCL30: RANDOM 100
LESS? 50,STACK /?CCL32
SET 'DIR,P?NORTH
JUMP ?CND21
?CCL32: SET 'DIR,P?SOUTH
JUMP ?CND21
?CCL25: CALL NOUN-USED?,INTDIR,W?NORTH,W?NE,W?NW
ZERO? STACK /?CCL34
SET 'DIR,P?NORTH
JUMP ?CND21
?CCL34: CALL NOUN-USED?,INTDIR,W?SOUTH,W?SE,W?SW
ZERO? STACK /?CCL36
SET 'DIR,P?SOUTH
JUMP ?CND21
?CCL36: CALL NOUN-USED?,INTDIR,W?EAST
ZERO? STACK /?CCL38
SET 'DIR,P?EAST
JUMP ?CND21
?CCL38: SET 'DIR,P?WEST
?CND21: CALL LEAVE-MIRROR,STR?819,DIR
RSTACK
?CCL14: EQUAL? RARG,M-BEG \FALSE
EQUAL? PRSA,V?PUSH \FALSE
FSET? PRSO,WHITEBIT /?CCL40
FSET? PRSO,BLACKBIT \FALSE
?CCL40: RANDOM 100
LESS? 25,STACK /?CCL48
SET 'DIR,P?EAST
JUMP ?CND46
?CCL48: RANDOM 100
LESS? 33,STACK /?CCL50
SET 'DIR,P?WEST
JUMP ?CND46
?CCL50: RANDOM 100
LESS? 50,STACK /?CCL52
SET 'DIR,P?NORTH
JUMP ?CND46
?CCL52: SET 'DIR,P?SOUTH
?CND46: CALL LEAVE-MIRROR,STR?820,DIR
RSTACK
.FUNCT LEAVE-MIRROR,STRING,DIR,AV,DESTINATION
PRINTI "As you throw"
ICALL1 TPRINT-PRSO
PRINTI ", you slide across the ice in the opposite direction, and plow into a powdery snow bank"
PRINT ELLIPSIS
LOC PROTAGONIST >AV
EQUAL? DIR,P?NORTH \?CCL3
MOVE PRSO,NORTH-OF-MIRROR
SET 'DESTINATION,SOUTH-OF-MIRROR
JUMP ?CND1
?CCL3: EQUAL? DIR,P?SOUTH \?CCL5
MOVE PRSO,SOUTH-OF-MIRROR
SET 'DESTINATION,NORTH-OF-MIRROR
JUMP ?CND1
?CCL5: EQUAL? DIR,P?EAST \?CCL7
MOVE PRSO,EAST-OF-MIRROR
SET 'DESTINATION,WEST-OF-MIRROR
JUMP ?CND1
?CCL7: MOVE PRSO,WEST-OF-MIRROR
SET 'DESTINATION,EAST-OF-MIRROR
?CND1: FSET? AV,VEHBIT \?CCL10
MOVE AV,DESTINATION
ICALL2 GOTO,AV
JUMP ?CND8
?CCL10: ICALL2 GOTO,DESTINATION
?CND8: EQUAL? PRSO,PIT-BOMB \?CND11
REMOVE PIT-BOMB
PRINTI " Some pit-filling agents drift by in a useless cloud, dispersing."
CRLF
?CND11: ICALL2 INC-SCORE,MIRROR-SCORE
SET 'MIRROR-SCORE,0
RTRUE
.FUNCT MIRROR-F,TMP
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL3
PRINTR "As you stare at your reflection in the mirrored surface, you look as you always have; and yet, you see things you've never seen before: youthful exuberance and courage, yet tempered by the wisdom and experience of untold generations of forebears, whose spirits seem to hover over you protectively.
Who knows what secrets might be revealed by looking at the reflection of other things in this magical mirror!?!"
?CCL3: EQUAL? PRSA,V?MIRROR-LOOK \?CCL5
EQUAL? PRSI,MIRROR \?CCL5
EQUAL? PRSO,PROTAGONIST,ME \?CCL10
ICALL PERFORM,V?EXAMINE,MIRROR
RTRUE
?CCL10: EQUAL? PRSO,ENCHANTED-ORB \?CCL12
SET 'ORB-FOUND,TRUE-VALUE
PRINTI "As you gaze at the reflection of"
ICALL1 TPRINT-PRSO
PRINTR ", a different vision takes shape: a beautiful young maiden, in peaceful sleep. Then, the vision fades."
?CCL12: EQUAL? PRSO,WAND \?CCL14
PRINTR "The reflection of the wand is unnaturally still; more frozen than even the arctic landscape that surrounds you."
?CCL14: EQUAL? PRSO,FLASK \?CCL16
PRINTR "You see the shadow of death hanging over the flask."
?CCL16: EQUAL? PRSO,CLOAK \?CCL18
PRINTR "The reflection reveals a checkered pattern in the cloth, not visible when you look at the garment itself."
?CCL18: EQUAL? PRSO,GLOVE \?CCL20
PRINTR "The glove's reflection conveys a feeling of fingers more sensitive and dexterous than the world's greatest surgeon."
?CCL20: EQUAL? PRSO,GOGGLES \?CCL22
PRINTR "The image of the goggles appears surrounded by a brick wall which slowly transforms to glass!"
?CCL22: EQUAL? PRSO,RING \?CCL24
PRINTI "Odd. Although the ring has no face of any kind, as you gaze at its reflection you get the distinct impression that the ring is laughing at you!"
CRLF
CALL2 ULTIMATELY-IN?,RING
ZERO? STACK /TRUE
MOVE RING,HERE
PRINTR " Perhaps in reaction to this impression, it seems that you have dropped the ring."
?CCL24: EQUAL? PRSO,NW-SE-PASSAGE,N-S-PASSAGE \?CCL28
PRINTR "The reflection of the passage reveals a feature which is invisible when you look at the passage itself: the edges dripping with unset glue."
?CCL28: EQUAL? PRSO,PARCHMENT \?CCL30
PRINTR "The paper of the parchment, as seen in the mirror, is suffused with an other-wordly glow."
?CCL30: EQUAL? PRSO,PIGEON \?CCL32
PRINTR "The reflection of the inert pigeon is most startling: it appears soaring majestically through space on widespread wings, bearing a rider regally upon its back!"
?CCL32: EQUAL? PRSO,PERCH \?CCL34
PRINTR "You see not an image of a ceramic perch, but of a proud mountain aerie! A powerful bird is flying toward the nest from a great distance."
?CCL34: EQUAL? PRSO,AMULET \?CCL36
PRINTR "The reflection of the amulet is suffused in a glow of amazing energies! A vague ghost of a serpent's head floats over it. A hand reaches to touch the amulet -- and the mirror goes blank!"
?CCL36: EQUAL? PRSO,CANDLE \?CCL38
PRINTR "A flurry of images surrounds the candle's reflection: an aged wizard weaving spells above a vat of bubbling tallow; the same mage handing a taper to a royal handmaiden; a chambermaid lighting the candle for a young prince; the same candle, never growing shorter, casting shadows on the faces of a succession of kings. The last image is of a servant placing the candle in a dark passageway and closing a concealed doorway behind him."
?CCL38: EQUAL? PRSO,JESTER \?CCL40
ICALL1 REMOVE-J
PRINTR "The jester's reflection is that of a much older man! And there's something else...but the jester notices you studying his reflection, and vanishes hastily!"
?CCL40: EQUAL? PRSO,POTION \?CCL42
PRINTR "The image shows a flowering plant growing from the potion. It seems to be calling to you."
?CCL42: EQUAL? PRSO,SAPPHIRE \?CCL44
PRINTR "As you look at the jewel's reflection, the skeleton's bony hand still seems clamped around it. Then the reflection enlarges, and a chill spreads from your heart as you see that the hand belongs to Death himself! He silently laughs at you from within his dark cowl before vanishing!"
?CCL44: FSET? PRSO,WHITEBIT /?CTR45
FSET? PRSO,BLACKBIT \?CCL46
?CTR45: PRINTI "Behind the image of"
ICALL1 TPRINT-PRSO
PRINTR " you see endless generations of masters, hunched over a small checkered board."
?CCL46: GETP PRSO,P?INANIMATE-DESC
ZERO? STACK /?CCL50
FSET? PRSO,ANIMATEDBIT /?CCL50
PRINTI "You see the image of a "
PRINTD PRSO
PRINTR "!"
?CCL50: EQUAL? PRSO,REFLECTION \?CND53
CALL2 GET-OWNER,PRSO >TMP
ZERO? TMP /?CND53
SET 'PRSO,TMP
?CND53: EQUAL? PRSO,GLITTERY-ORB,SMOKY-ORB,MILKY-ORB /?PRD60
EQUAL? PRSO,FIERY-ORB \?CND57
?PRD60: FSET? PRSO,ORBBIT /?CND57
FSET PRSO,ORBBIT
INC 'ORBS-EXAMINED
?CND57: PRINTI "The reflection of "
FSET? PRSO,NARTICLEBIT /?CND63
PRINTI "the "
?CND63: ICALL2 DPRINT,PRSO
PRINTI " looks just like "
FSET? PRSO,NARTICLEBIT /?CND65
PRINTI "the "
?CND65: ICALL2 DPRINT,PRSO
PRINTR " itself."
?CCL5: EQUAL? PRSA,V?MUNG \FALSE
CALL2 JIGS-UP,STR?822
RSTACK
.FUNCT REFLECTION-F
EQUAL? PRSA,V?EXAMINE \FALSE
ICALL PERFORM,V?EXAMINE,MIRROR
RTRUE
.FUNCT EAST-OF-MIRROR-F,RARG
EQUAL? RARG,M-LOOK \FALSE
CALL MIRRORS-EDGE-DESC,STR?824,STR?825,STR?826
RSTACK
.FUNCT MIRRORS-EDGE-DESC,STR1,STR2,STR3
PRINTI "You are in a snow drift. To the "
PRINT STR1
PRINTI " is a lake with a mirrored surface. You could probably plow around the mirror to the "
PRINT STR2
PRINTI " and "
PRINT STR3
PRINTC 46
RTRUE
.FUNCT WEST-OF-MIRROR-F,RARG
EQUAL? RARG,M-LOOK \FALSE
ICALL MIRRORS-EDGE-DESC,STR?827,STR?828,STR?263
PRINTI " A ski chalet, half-buried in the snow, lies to the west."
RTRUE
.FUNCT NORTH-OF-MIRROR-F,RARG
EQUAL? RARG,M-LOOK \FALSE
CALL MIRRORS-EDGE-DESC,STR?199,STR?263,STR?826
RSTACK
.FUNCT SOUTH-OF-MIRROR-F,RARG
EQUAL? RARG,M-LOOK \FALSE
CALL MIRRORS-EDGE-DESC,STR?198,STR?828,STR?825
RSTACK
.FUNCT LILY-PAD-F,ARG
EQUAL? ARG,M-WINNER \?CCL3
CALL1 PLANT-STUNNED
RSTACK
?CCL3: ZERO? ARG \FALSE
EQUAL? PRSA,V?CLIMB-ON,V?ENTER \?CCL7
CALL2 VISIBLE?,OTTO
ZERO? STACK /?CCL10
PRINTR """For toads only, buster."""
?CCL10: PRINTR "Only a toad could be comfortable there."
?CCL7: EQUAL? PRSA,V?LISTEN \FALSE
ZERO? PLANT-TALKER /FALSE
PRINTI "The lily pad is "
EQUAL? PRSO,LARGE-LILY-PAD \?CCL17
CALL2 VISIBLE?,OTTO
ZERO? STACK /?CCL20
PRINTI "moaning about"
JUMP ?CND18
?CCL20: PRINTI "giddy at the absence of"
?CND18: PRINTR " the weight of the giant toad."
?CCL17: PRINTR "composing an ode to sunlight."
.FUNCT OTTO-F,ARG
EQUAL? ARG,M-WINNER \?CCL3
EQUAL? PRSA,V?GIVE \?PRD8
EQUAL? PRSO,SPYGLASS \?PRD8
EQUAL? PRSI,ME /?CTR5
?PRD8: EQUAL? PRSA,V?SGIVE \?CCL6
EQUAL? PRSO,ME \?CCL6
EQUAL? PRSI,SPYGLASS \?CCL6
?CTR5: SET 'WINNER,PROTAGONIST
ICALL PERFORM,V?ASK-FOR,OTTO,SPYGLASS
SET 'WINNER,OTTO
RTRUE
?CCL6: EQUAL? PRSA,V?YES \?CCL16
EQUAL? AWAITING-REPLY,2 \?CCL16
CALL1 V-YES
RSTACK
?CCL16: EQUAL? PRSA,V?NO \?CCL20
EQUAL? AWAITING-REPLY,2 \?CCL20
CALL1 V-NO
RSTACK
?CCL20: SET 'AWAITING-REPLY,2
ICALL QUEUE,I-REPLY,2
PRINTI """Quiet. I've got a headache. Do you think you own this swamp?"""
CRLF
CALL1 STOP
RSTACK
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL24
PRINTR "The toad is not only ugly, it is bright blue and the size of a small shack. It also looks pretty grumpy."
?CCL24: CALL ADJ-USED?,OTTO,W?UGLY
ZERO? STACK /?CCL26
CALL2 VISIBLE?,OTTO
ZERO? STACK /?CCL26
PRINTI """Who're you calling ugly?!? You're no prize yourself, you know!"""
CRLF
CALL1 STOP
RSTACK
?CCL26: CALL NOUN-USED?,OTTO,W?TOAD
ZERO? STACK /?CCL30
CALL2 VISIBLE?,OTTO
ZERO? STACK /?CCL30
INC 'OTTO-NAME-COUNTER
PRINTI """I have a name, you know"
MOD OTTO-NAME-COUNTER,5
ZERO? STACK \?CND33
PRINTI ", a great name, known throughout many lands. And though I spent many years at sea, few pirates will know my name"
?CND33: PRINTI "."""
CRLF
CALL1 STOP
RSTACK
?CCL30: EQUAL? PRSA,V?ASK-FOR \?CCL36
EQUAL? PRSI,SPYGLASS \?CCL36
EQUAL? FLIES-EATEN,4 \?CCL41
MOVE SPYGLASS,SMALL-LILY-PAD
FCLEAR SPYGLASS,TRYTAKEBIT
ICALL2 THIS-IS-IT,SPYGLASS
PRINTR """Okay, take the stupid thing, but shut up and let me have some peace and quiet."" The toad places the spyglass on the small lily pad."
?CCL41: PRINTI """If you want this spyglass, you must bring me the "
ZERO? FLIES-EATEN \?CCL44
PRINTI "Four "
JUMP ?CND42
?CCL44: PRINTI "remaining "
EQUAL? FLIES-EATEN,1 \?CCL47
PRINTI "three "
JUMP ?CND42
?CCL47: EQUAL? FLIES-EATEN,2 \?CND42
PRINTI "two "
?CND42: PRINTI "Fantastic Fl"
EQUAL? FLIES-EATEN,3 \?CCL51
PRINTC 121
JUMP ?CND49
?CCL51: PRINTI "ies"
?CND49: PRINTR " of Famathria."""
?CCL36: EQUAL? PRSA,V?EAT \FALSE
ZERO? ALLIGATOR /FALSE
PRINTR "Although the toad looks tasty, he's about ten times your size."
.FUNCT I-STONE-TO-OTTO
MOVE OTTO,LARGE-LILY-PAD
EQUAL? HERE,DELTA-6 \FALSE
ICALL1 RETURN-FROM-MAP
PRINTI " Otto emerges from the muck of the swamp, looking quite displeased. Dripping with mud, he plops down on his favorite lily pad"
CALL2 VISIBLE?,WAND
ZERO? STACK /?CND4
REMOVE WAND
PRINTI ". ""Let's just make sure we don't have any repetitions of that, eh?"" He wraps his tongue around the wand and snaps it into a zillion splinters"
?CND4: PRINT PERIOD-CR
RTRUE
.SEGMENT "0"
.FUNCT SPYGLASS-F
EQUAL? PRSA,V?TAKE \?CCL3
FSET? SPYGLASS,TRYTAKEBIT \?CCL3
IN? SPYGLASS,SMALL-LILY-PAD \?CND6
MOVE SPYGLASS,OTTO
PRINTI "The toad snatches the spyglass with its long tongue. "
?CND6: PRINTR """If you want it, you'll have to ask me to give it to you."""
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL9
PRINTR "The spyglass magnifies distant objects."
?CCL9: EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? PRSI,SPYGLASS \FALSE
PRINT YOU-SEE
ICALL1 TPRINT-PRSO
PRINTR ", somewhat enlarged."
.FUNCT FLY-F
EQUAL? PRSA,V?DROP \?CCL3
ICALL2 ORDER-FLIES,HERE
RFALSE
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
PRINTR "This is one juicy delicious-looking hunk of fly... that is, if you're the type who goes for insect meat..."
?CCL5: EQUAL? PRSA,V?GIVE \?CCL7
EQUAL? PRSI,OTTO \?CCL7
REMOVE PRSO
INC 'FLIES-EATEN
PRINTR "The toad wraps its long tongue around the fly, snaps it gluttonously into its mouth, and burps rudely."
?CCL7: EQUAL? PRSA,V?CATCH \?CCL11
ICALL PERFORM,V?TAKE,PRSO
RTRUE
?CCL11: CALL2 TOUCHING?,PRSO
ZERO? STACK /FALSE
EQUAL? PRSA,V?TAKE \?CND14
ICALL2 ORDER-FLIES,PROTAGONIST
?CND14: FSET? PRSO,TRYTAKEBIT \FALSE
FSET? GLOVE,WORNBIT \?CCL21
PRINTR "Your gloved hand strikes with amazing speed, but the fly darts out of the way by a hair's breadth."
?CCL21: PRINTR "The fly buzzes just out of reach."
.ENDSEG
.SEGMENT "ORACLE"
.SEGMENT "SECRET"
.SEGMENT "LAKE"
.FUNCT FLY-ROOM-F,RARG
EQUAL? RARG,M-ENTER \FALSE
FSET? HERE,TOUCHBIT /FALSE
IN? LARGE-FLY,LOCAL-GLOBALS \?CCL8
MOVE LARGE-FLY,HERE
RTRUE
?CCL8: IN? LARGER-FLY,LOCAL-GLOBALS \?CCL10
MOVE LARGER-FLY,HERE
RTRUE
?CCL10: IN? EVEN-LARGER-FLY,LOCAL-GLOBALS \?CCL12
MOVE EVEN-LARGER-FLY,HERE
RTRUE
?CCL12: IN? LARGEST-FLY,LOCAL-GLOBALS \FALSE
MOVE LARGEST-FLY,HERE
RTRUE
.ENDSEG
.SEGMENT "ORACLE"
.FUNCT FOOT-OF-STATUE-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This once verdant valley is now barren. "
PRINT NEAR-STATUE-DESC
PRINTI " A trail approaches a hilltop to the southwest."
RTRUE
.FUNCT DIMWIT-STATUE-F
EQUAL? PRSA,V?EXAMINE \FALSE
EQUAL? HERE,FOOT-OF-STATUE \?CCL6
PRINT NEAR-STATUE-DESC
CRLF
RTRUE
?CCL6: PRINT DISTANT-STATUE-DESC
CRLF
RTRUE
.FUNCT TREE-PS
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \FALSE
PRINTR "There are no trees here suitable for climbing."
.FUNCT VIEW-OF-STATUE-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "You are on a tall hilltop near the center of barren Fublio Valley. A few small trees are beginning the arduous task of refoliating the valley. "
PRINT DISTANT-STATUE-DESC
PRINTI " Trails lead northeast, southeast, west, and south."
RTRUE
.FUNCT MEGABOZ-HUT-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "You are in the unassuming shack where the legendary magician Megaboz once lived. Embroidered wall hangings adorn one side of the hut, and a poem has been scrawled on the opposite wall; oddly, some of the words are missing. The only exit is east. "
PRINT MEGABOZ-CEILING-DESC
RTRUE
.FUNCT ATTIC-ENTER-F,RARG
FSET? MEGABOZ-TRAP-DOOR,OPENBIT /?CCL3
ZERO? RARG \FALSE
ICALL1 RETURN-FROM-MAP
ICALL2 DO-FIRST,STR?845
RFALSE
?CCL3: IN? PROTAGONIST,LADDER /?CCL7
ZERO? RARG \FALSE
ICALL1 RETURN-FROM-MAP
ICALL2 CANT-REACH,MEGABOZ-TRAP-DOOR
RFALSE
?CCL7: RETURN ATTIC
.FUNCT MEGABOZ-TRAP-DOOR-F
EQUAL? HERE,MEGABOZ-HUT \?CCL3
CALL2 TOUCHING?,MEGABOZ-TRAP-DOOR
ZERO? STACK /?CCL3
IN? PROTAGONIST,LADDER /?CCL3
CALL2 CANT-REACH,MEGABOZ-TRAP-DOOR
RSTACK
?CCL3: EQUAL? PRSA,V?ENTER \FALSE
EQUAL? HERE,MEGABOZ-HUT \FALSE
CALL2 DO-WALK,P?UP
RSTACK
.FUNCT TRUNK-F
EQUAL? PRSA,V?OPEN \?CCL3
FSET? TRUNK,LOCKEDBIT /?CCL3
ZERO? FLY-IN-TRUNK /?CCL3
ZERO? PRSI /?CND7
FSET? PRSI,KEYBIT /FALSE
?CND7: SET 'FLY-IN-TRUNK,FALSE-VALUE
IN? LARGE-FLY,LOCAL-GLOBALS \?CCL13
MOVE LARGE-FLY,HERE
JUMP ?CND11
?CCL13: IN? LARGER-FLY,LOCAL-GLOBALS \?CCL15
MOVE LARGER-FLY,HERE
JUMP ?CND11
?CCL15: IN? EVEN-LARGER-FLY,LOCAL-GLOBALS \?CCL17
MOVE EVEN-LARGER-FLY,HERE
JUMP ?CND11
?CCL17: IN? LARGEST-FLY,LOCAL-GLOBALS \?CND11
MOVE LARGEST-FLY,HERE
?CND11: PRINTI "As you raise the lid, a huge fly zooms out and begins buzzing around the room. "
RFALSE
?CCL3: EQUAL? PRSA,V?TAKE \?CCL20
EQUAL? PRSO,TRUNK \?CCL20
PRINTR "The trunk turns out to be too large and heavy to move."
?CCL20: EQUAL? PRSA,V?UNLOCK \?CCL24
FSET? TRUNK,LOCKEDBIT \?CCL24
EQUAL? PRSI,RUSTY-KEY \?CCL24
EQUAL? SACRED-WORD-NUMBER,10 \?CND28
RANDOM 10
SUB STACK,1 >SACRED-WORD-NUMBER
?CND28: FCLEAR TRUNK,LOCKEDBIT
CALL LOCKED-UNLOCKED,TRUNK,TRUE-VALUE
RSTACK
?CCL24: EQUAL? PRSA,V?LOCK \FALSE
FSET? TRUNK,LOCKEDBIT /FALSE
EQUAL? PRSI,RUSTY-KEY \FALSE
FSET TRUNK,LOCKEDBIT
CALL2 LOCKED-UNLOCKED,TRUNK
RSTACK
.SEGMENT "0"
.FUNCT PAN-F
EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
PRINT HUH
RTRUE
.FUNCT NOTEBOOK-F
EQUAL? PRSA,V?EXAMINE,V?OPEN,V?READ \FALSE
PRINTI "The notebook is either gibberish or far in advance of your understanding. It seems to be filled with all kinds of formulas, spells, and shopping lists.
Near the end, you discover what appears to be a list of things to do: ""1) Mail OZMOO scrolls to Gurth. 2) Cast Curse on Flatheads. 3) Pick up milk and bread.""
Below is a sketch of a steaming kettle and a single word, """
GET SACRED-WORDS,SACRED-WORD-NUMBER
PRINT STACK
PRINTR "."""
.FUNCT HARMONICA-F
EQUAL? PRSA,V?INFLATE,V?PLAY \FALSE
PRINTR "The harmonica produces a sound like that of cats being tortured."
.ENDSEG
.SEGMENT "ORACLE"
.FUNCT CAIRN-OBJECT-F
EQUAL? PRSA,V?TAKE \?CCL3
PRINTR "The stones, individually, are uninteresting; the entire pile is much too massive to take."
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
PRINTR "The cairn probably has a magical or religious significance."
?CCL5: EQUAL? PRSA,V?COUNT \FALSE
CALL NOUN-USED?,CAIRN-OBJECT,W?STONES
ZERO? STACK /FALSE
PRINTR "Thousands."
.FUNCT GUMBOZ-SHACK-F,RARG,SPILL
EQUAL? RARG,M-END \FALSE
CALL2 ULTIMATELY-IN?,LARGE-VIAL
ZERO? STACK /?CND4
GRTR? LARGE-VIAL-GLOOPS,0 \?CND4
SET 'LARGE-VIAL-GLOOPS,0
REMOVE LARGE-VIAL-WATER
SET 'SPILL,TRUE-VALUE
?CND4: CALL2 ULTIMATELY-IN?,SMALL-VIAL
ZERO? STACK /?CND8
GRTR? SMALL-VIAL-GLOOPS,0 \?CND8
SET 'SMALL-VIAL-GLOOPS,0
REMOVE SMALL-VIAL-WATER
SET 'SPILL,TRUE-VALUE
?CND8: CALL2 ULTIMATELY-IN?,CUP
ZERO? STACK /?CND12
IN? POTION,CUP \?CND12
REMOVE POTION
SET 'SPILL,TRUE-VALUE
?CND12: ZERO? SPILL \?CCL18
RANDOM 100
LESS? 20,STACK /FALSE
?CCL18: ICALL1 RETURN-FROM-MAP
PRINTI " You trip over something invisible (perhaps some sort of feeble anti-theft device). Fortunately, you manage to keep your footing."
ZERO? SPILL /?CND21
PRINTR " Unfortunately, you seem to have spilled something."
?CND21: CRLF
RTRUE
.FUNCT SHACK-EXIT-F,RARG
ZERO? RARG \?CND1
ICALL1 RETURN-FROM-MAP
ICALL1 CAST-HUNGER-SPELL
?CND1: RETURN OUTSIDE-SHACK
.SEGMENT "0"
.FUNCT CAST-HUNGER-SPELL
EQUAL? HERE,GUMBOZ-SHACK \FALSE
CALL2 ULTIMATELY-IN?,SMALL-VIAL
ZERO? STACK /FALSE
ZERO? HUNGER-SPELL-CAST \FALSE
SET 'HUNGER-SPELL-CAST,TRUE-VALUE
ICALL QUEUE,I-HUNGER,36
SET 'HUNGER-COUNT,1
FCLEAR SMALL-VIAL,TRYTAKEBIT
PRINTI "You hear a cry of ""Stop, thief! My vial!"" and a feeble but very angry wizard begins to appear. Noting that your departure is imminent, he casts his quickest spell on you; fortunately, it doesn't sound very powerful.
You're suddenly very hungry."
CRLF
CRLF
RTRUE
.FUNCT I-HUNGER
INC 'HUNGER-COUNT
ICALL1 RETURN-FROM-MAP
PRINTI " "
EQUAL? HUNGER-COUNT,2 \?CCL3
ICALL QUEUE,I-HUNGER,18
PRINTR "You're really famished now. Odd -- you had quite a huge meal last night."
?CCL3: EQUAL? HUNGER-COUNT,3 \?CCL5
ICALL QUEUE,I-HUNGER,12
PRINTR "You've never felt this hungry in your life!"
?CCL5: EQUAL? HUNGER-COUNT,4 \?CCL7
ICALL QUEUE,I-HUNGER,6
PRINTR "If your stomach could talk, it would be screaming, ""Get some food down here right away, jerk!"""
?CCL7: CALL2 JIGS-UP,STR?863
RSTACK
.ENDSEG
.SEGMENT "ORACLE"
.FUNCT TIRED-PINE-F,ARG
EQUAL? ARG,M-WINNER \?CCL3
CALL1 PLANT-STUNNED
RSTACK
?CCL3: CALL2 TOUCHING?,TIRED-PINE
ZERO? STACK /?CCL5
EQUAL? HERE,QUARRY \?CCL5
CALL2 CANT-REACH,TIRED-PINE
RSTACK
?CCL5: EQUAL? PRSA,V?GET-NEAR \?CCL9
GET PARSE-RESULT,7
EQUAL? STACK,W?UNDER \?CCL9
EQUAL? HERE,QUARRY \?CCL14
PRINT LOOK-AROUND
RTRUE
?CCL14: CALL2 DO-WALK,P?DOWN
RSTACK
?CCL9: EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \?CCL16
PRINT POORLY-CONFIGURED
RTRUE
?CCL16: EQUAL? PRSA,V?GET-NEAR \?CCL18
CALL2 PERFORM-PRSA,SMALL-ELM
RSTACK
?CCL18: EQUAL? PRSA,V?LISTEN \FALSE
ZERO? PLANT-TALKER /FALSE
PRINTR "The tree relates a life-long fantasy about being transplanted in the fertile soil of Gurth."
.FUNCT QUARRY-F,RARG
EQUAL? RARG,M-END \?CCL3
IN? RUSTY-KEY,LOCAL-GLOBALS \?CCL3
CALL2 ULTIMATELY-IN?,SAPPHIRE
ZERO? STACK /?CCL3
FSET? RING,WORNBIT \?CCL3
MOVE RUSTY-KEY,HERE
ICALL1 RETURN-FROM-MAP
PRINTI " A strange drowsiness comes over you, and you fall into a swoon. An unknown number of minutes later, you are roused by a gentle breeze"
PRINT ELLIPSIS
ICALL1 V-LOOK
CALL2 INC-SCORE,14
RSTACK
?CCL3: ZERO? RARG \FALSE
EQUAL? HERE,QUARRYS-EDGE \FALSE
EQUAL? PRSA,V?ENTER \FALSE
EQUAL? P-PRSA-WORD,W?JUMP \FALSE
CALL1 JUMPLOSS
RSTACK
.FUNCT QUARRY-SHADOW-PS
EQUAL? PRSA,V?ENTER \FALSE
EQUAL? HERE,QUARRY \?CCL6
PRINTR "You are; the tree's shadow covers the entire floor of the quarry."
?CCL6: CALL2 DO-WALK,P?DOWN
RSTACK
.SEGMENT "0"
.FUNCT RUSTY-KEY-F
EQUAL? PRSA,V?CLEAN \?CCL3
FSET RUSTY-KEY,READBIT
PRINTR "You clean off some of the rust, revealing words engraved on the key."
?CCL3: EQUAL? PRSA,V?READ \FALSE
FSET? RUSTY-KEY,READBIT \FALSE
PRINTR """Frobozz Magic Trunk Key Company"""
.ENDSEG
.SEGMENT "ORACLE"
.FUNCT TOE-FUNGUS-F,ARG
EQUAL? ARG,M-WINNER \?CCL3
EQUAL? PRSA,V?GIVE,V?FIND \?CCL6
EQUAL? PRSO,LITTLE-FUNGUS \?CCL6
IN? LITTLE-FUNGUS,GLOBAL-OBJECTS \?CCL6
EQUAL? FUNGUS-NUMBER,12 /?CCL6
GET FUNGUS-WORDS,FUNGUS-NUMBER
CALL NOUN-USED?,LITTLE-FUNGUS,STACK
ZERO? STACK /?CCL6
CALL1 GET-LITTLE-FUNGUS
RSTACK
?CCL6: CALL1 PLANT-STUNNED
RSTACK
?CCL3: EQUAL? PRSA,V?LISTEN \?CCL13
ZERO? PLANT-TALKER /?CCL13
PRINTR "You hear a vast murmur of countless little fungi, all discussing spore-care techniques."
?CCL13: EQUAL? PRSA,V?RESEARCH \?CCL17
CALL2 PERFORM-PRSA,EAR-FUNGUS
RSTACK
?CCL17: EQUAL? PRSA,V?ASK-ABOUT \FALSE
ZERO? PLANT-TALKER /FALSE
EQUAL? PRSI,LITTLE-FUNGUS \FALSE
IN? LITTLE-FUNGUS,GLOBAL-OBJECTS \FALSE
EQUAL? FUNGUS-NUMBER,12 /FALSE
GET FUNGUS-WORDS,FUNGUS-NUMBER
CALL NOUN-USED?,LITTLE-FUNGUS,STACK
ZERO? STACK /FALSE
CALL1 GET-LITTLE-FUNGUS
RSTACK
.FUNCT GET-LITTLE-FUNGUS
FSET LITTLE-FUNGUS,TAKEBIT
ICALL2 THIS-IS-IT,LITTLE-FUNGUS
MOVE LITTLE-FUNGUS,HERE
PRINTR "A little fungus trots up and says, ""That's me!"""
.SEGMENT "0"
.FUNCT LITTLE-FUNGUS-F,ARG
EQUAL? ARG,M-WINNER \?CCL3
CALL1 PLANT-STUNNED
RSTACK
?CCL3: IN? PRSO,GLOBAL-OBJECTS \?CCL5
EQUAL? PRSA,V?SAY,V?YELL,V?CALL /?PRD10
EQUAL? PRSA,V?FIND \?CCL8
?PRD10: EQUAL? HERE,ON-TOP-OF-THE-WORLD \?CCL8
ZERO? PLANT-TALKER /?CCL8
EQUAL? FUNGUS-NUMBER,12 /?CCL8
GET FUNGUS-WORDS,FUNGUS-NUMBER
CALL NOUN-USED?,LITTLE-FUNGUS,STACK
ZERO? STACK /?CCL8
CALL1 GET-LITTLE-FUNGUS
RSTACK
?CCL8: EQUAL? PRSA,V?SAY,V?YELL,V?CALL \?CCL17
PRINT NOTHING-HAPPENS
RTRUE
?CCL17: CALL2 HANDLE,LITTLE-FUNGUS
ZERO? STACK /?CCL19
CALL2 CANT-SEE,LITTLE-FUNGUS
RSTACK
?CCL19: PRINT BY-THAT-NAME
RTRUE
?CCL5: CALL NOUN-USED?,LITTLE-FUNGUS,W?SEYMOUR,W?SHERMAN,W?IRVING
ZERO? STACK \?PRD23
CALL NOUN-USED?,LITTLE-FUNGUS,W?SAMMY,W?MYRON,W?BORIS
ZERO? STACK \?PRD23
CALL NOUN-USED?,LITTLE-FUNGUS,W?MELVIN,W?LESTER,W?JULIUS
ZERO? STACK \?PRD23
CALL NOUN-USED?,LITTLE-FUNGUS,W?RICARDO,W?OMAR,W?BARNABY
ZERO? STACK /?CCL21
?PRD23: GET FUNGUS-WORDS,FUNGUS-NUMBER
CALL NOUN-USED?,LITTLE-FUNGUS,STACK
ZERO? STACK \?CCL21
CALL2 HANDLE,LITTLE-FUNGUS
ZERO? STACK \?CTR20
EQUAL? PRSA,V?FOLLOW \?CCL21
?CTR20: PRINT BY-THAT-NAME
CALL1 STOP
RSTACK
?CCL21: EQUAL? PRSA,V?DROP \?PRD34
EQUAL? HERE,EAR /?CCL32
?PRD34: EQUAL? PRSA,V?PUT,V?SHOW,V?GIVE /?PRD39
EQUAL? PRSA,V?PUT-ON \?PRD37
?PRD39: EQUAL? PRSI,EAR-FUNGUS /?CCL32
?PRD37: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE
EQUAL? PRSI,BROGMOID \FALSE
CALL NOUN-USED?,BROGMOID,W?EAR
ZERO? STACK /FALSE
?CCL32: SET 'EAR-PASSAGE-OPEN,TRUE-VALUE
REMOVE LITTLE-FUNGUS
PRINTI "There follows a joyful reunion between the little fungus and his long-lost cousins. Grateful, the ear fungi part, forming a passageway leading deeper into the ear."
CRLF
CALL2 INC-SCORE,18
RSTACK
.ENDSEG
.SEGMENT "0"
.SEGMENT "ORACLE"
.FUNCT BAT-F
CALL2 TOUCHING?,BAT
ZERO? STACK /?CCL3
FSET? BAT,TRYTAKEBIT \?CCL3
PRINTR "An invisible force prevents you from approaching the wooden club."
?CCL3: EQUAL? PRSA,V?SWING \FALSE
INC 'BAT-SWINGS
PRINTI """Strike "
PRINTN BAT-SWINGS
PRINTC 33
EQUAL? BAT-SWINGS,3 \?CCL10
CALL2 JIGS-UP,STR?883
RSTACK
?CCL10: PRINTR """"
.ENDSEG
.SEGMENT "ORACLE"
.FUNCT FENCE-PS
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB,V?CROSS /?CTR2
EQUAL? PRSA,V?CLIMB-OVER \?CCL3
?CTR2: CALL2 DO-WALK,P?SOUTH
RSTACK
?CCL3: EQUAL? PRSA,V?THROW-OVER \FALSE
EQUAL? PRSO,PERCH \?CND8
SET 'REMOVED-PERCH-LOC,PSEUDO-OBJECT
?CND8: REMOVE PRSO
PRINTI "A good throw --"
ICALL1 TPRINT-PRSO
PRINTR " sails over the fence and disappears into a tangle of barbed wire beyond."
.FUNCT AERIE-F,RARG,OBJ,OWINNER
EQUAL? RARG,M-END \?CCL3
CALL FIND-IN,PROTAGONIST,ONBIT >OBJ
ZERO? OBJ \?PRG8
CALL1 FIND-LANTERN >OBJ
ZERO? OBJ /?CCL3
?PRG8: SET 'OWINNER,WINNER
SET 'WINNER,NEST
CALL2 VISIBLE?,OBJ
ZERO? STACK /?CND10
MOVE OBJ,CLIFF-BOTTOM
ICALL1 RETURN-FROM-MAP
PRINTI " ""Caw! Caw!"" A huge black bird swoops down and snatches your "
ICALL2 DPRINT,OBJ
PRINTI " in its mighty talons. It flies westward, drops"
ICALL2 TPRINT,OBJ
PRINTR " over the precipice, and flutters into the clouds."
?CND10: LOC OBJ >OBJ
SET 'WINNER,OWINNER
JUMP ?PRG8
?CCL3: EQUAL? RARG,M-END \FALSE
RANDOM 100
LESS? 40,STACK /FALSE
PRINTR " A gust of wind sends a whirl of dust dancing in a circle around the bird's nest."
.FUNCT FIND-LANTERN
CALL2 ULTIMATELY-IN?,LANTERN
ZERO? STACK /FALSE
RETURN LANTERN
.FUNCT NEST-F,VARG
ZERO? VARG \FALSE
EQUAL? PRSA,V?SEARCH,V?EXAMINE \?CCL5
IN? SILK-TIE,LOCAL-GLOBALS \?CCL5
MOVE SILK-TIE,NEST
PRINTR "Among the items woven into the nest is a faded silk tie!"
?CCL5: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
IN? SILK-TIE,LOCAL-GLOBALS \?CCL12
ICALL PERFORM,V?EXAMINE,NEST
RTRUE
?CCL12: PRINTR "The nest is, at the moment, birdless."
.FUNCT ICKY-CAVE-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "The walls of this small cavern are covered with thick, black slime. It drips from the stalactites and puddles up on the floor."
IN? SICKLY-WITCH,HERE /?CND4
PRINTI " Considering the furnishings and relics, this cave must be the home of several witches. However, the witches are either out or hiding."
?CND4: PRINTI " The only exit from this tiny cavern is northwest."
RTRUE
.FUNCT WITCH-F,ARG
EQUAL? ARG,M-WINNER \?CCL3
FSET? BAT,TRYTAKEBIT \?CCL6
PRINTI """Bring us "
ZERO? VIAL-GIVEN /?CCL9
PRINTI "earwax of brogmoid"
JUMP ?CND7
?CCL9: PRINTI "exactly six gloops of water from the Great Underground Oasis"
?CND7: PRINTI ", and we shall remove the enchantment on that which you seek."""
IN? LARGE-VIAL,LOCAL-GLOBALS \?CND10
MOVE LARGE-VIAL,HERE
PRINTR " A vial appears in front of you."
?CND10: CRLF
RTRUE
?CCL6: PRINTR """Stop pestering us, or we'll restore the enchantment... and worse!"""
?CCL3: EQUAL? PRSA,V?GIVE \?CCL13
EQUAL? PRSI,SICKLY-WITCH,PRICKLY-WITCH \?CCL13
ZERO? LIT \?CCL13
PRINT TOO-DARK
CRLF
RTRUE
?CCL13: EQUAL? PRSA,V?GIVE \FALSE
EQUAL? PRSO,EARWAX \FALSE
REMOVE EARWAX
SET 'EARWAX-GIVEN,TRUE-VALUE
ZERO? VIAL-GIVEN /?CCL23
FCLEAR BAT,TRYTAKEBIT
PRINTI """A fine specimen!"" cackles the witch. ""Now, where were we? Ah, yes... "
PRINTI "Brogmoid earwax!"
PRINT FINISH-ENCHANTMENT
RTRUE
?CCL23: PRINTR """Ah, brogmoid ear wax! A goodly portion, too! Always handy to have around."" She squirrels it away."
.SEGMENT "0"
.FUNCT G-VIAL-F,SRES,F
GET F,5
ADD STACK,10
GET STACK,0
EQUAL? STACK,W?INT.NUM \FALSE
GET F,10
EQUAL? STACK,4 \?CCL6
RETURN SMALL-VIAL
?CCL6: GET F,10
EQUAL? STACK,9 \?CCL8
RETURN LARGE-VIAL
?CCL8: RETURN NOT-HERE-OBJECT
.FUNCT CONVERT-NUMBER,ADJS,ADJ
ADD ADJS,8
GET STACK,1 >ADJ
EQUAL? ADJ,W?INT.NUM \?CCL3
RETURN P-NUMBER
?CCL3: GET INTEGERS,0
INTBL? ADJ,INTEGERS,STACK >ADJ \FALSE
SUB ADJ,INTEGERS
DIV STACK,2
RSTACK
.FUNCT VIAL-F,NUM,PRSO-VIAL-GLOOPS,PRSI-VIAL-GLOOPS,ADJ
EQUAL? PRSO,SMALL-VIAL \?CCL3
SET 'PRSO-VIAL-GLOOPS,SMALL-VIAL-GLOOPS
JUMP ?CND1
?CCL3: SET 'PRSO-VIAL-GLOOPS,LARGE-VIAL-GLOOPS
?CND1: ZERO? PRSI /?CND4
EQUAL? PRSI,SMALL-VIAL \?CCL8
SET 'PRSI-VIAL-GLOOPS,SMALL-VIAL-GLOOPS
JUMP ?CND4
?CCL8: SET 'PRSI-VIAL-GLOOPS,LARGE-VIAL-GLOOPS
?CND4: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL11
PRINTI "The vial "
ZERO? PRSO-VIAL-GLOOPS \?CCL14
PRINTI "is empty"
JUMP ?CND12
?CCL14: PRINTI "contains "
EQUAL? PRSO,LARGE-VIAL \?PRD18
ZERO? LARGE-VIAL-IMPRECISE \?CCL16
?PRD18: EQUAL? PRSO,SMALL-VIAL \?CND15
ZERO? SMALL-VIAL-IMPRECISE /?CND15
?CCL16: PRINTI "approximately "
?CND15: PRINTN PRSO-VIAL-GLOOPS
PRINTI " gloop"
EQUAL? PRSO-VIAL-GLOOPS,1 /?CND23
PRINTC 115
?CND23: PRINTI " of water"
?CND12: PRINTC 46
EQUAL? PRSA,V?EXAMINE \?CND25
PRINTR " There is some writing etched onto it."
?CND25: CRLF
RTRUE
?CCL11: EQUAL? PRSA,V?READ \?CCL28
PRINTI """Frobozz Magic Vial Company. Capacity (to the brim): "
EQUAL? PRSO,LARGE-VIAL \?CCL31
PRINTC 57
JUMP ?CND29
?CCL31: PRINTC 52
?CND29: PRINTR " gloops."""
?CCL28: EQUAL? PRSA,V?GIVE \?CCL33
EQUAL? PRSO,LARGE-VIAL \?CCL33
EQUAL? PRSI,PRICKLY-WITCH,SICKLY-WITCH \?CCL33
EQUAL? LARGE-VIAL-GLOOPS,6 \?CCL39
ZERO? LARGE-VIAL-TAINTED \?CTR41
ZERO? LARGE-VIAL-IMPRECISE /?CCL42
?CTR41: PRINTI "The witch examines the water, grows angry, and flings it out of the vial. ""This is not "
ZERO? LARGE-VIAL-TAINTED /?CCL47
PRINTI "pure Oasis water"
JUMP ?CND45
?CCL47: PRINTI "precisely 6 gloops"
?CND45: SET 'LARGE-VIAL-TAINTED,FALSE-VALUE
SET 'LARGE-VIAL-GLOOPS,0
REMOVE LARGE-VIAL-WATER
PRINTR "! You thought we would not know, fool?"" She throws the vial back at you. ""Do not return until you have done EXACTLY as we ask."""
?CCL42: REMOVE LARGE-VIAL
SET 'VIAL-GIVEN,TRUE-VALUE
PRINTI """You have done well,"" croak the witches. ""We shall do as we promised.""
""Hair of hellhound!"" calls the sickly witch. The prickly witch rummages around and hands her a clump of coarse black fur.
""Toenail of tarantula!"" The prickly witch produces half a handful of clippings.
""Spleen of troll!"" The prickly witch hands over a wrinkled organ, caked with dried blood.
""Earwax of brogmoid!"
ZERO? EARWAX-GIVEN /?CCL50
FCLEAR BAT,TRYTAKEBIT
PRINT FINISH-ENCHANTMENT
RTRUE
?CCL50: PRINTR """ The prickly witch rummages around the cave, mumbling with increasing irritation. ""Earwax of yipple. Earwax of sea slug. Earwax of adventurer. Carbuncle of brogmoid. Belly-button lint of brogmoid."" She shakes her head sadly. ""No earwax of brogmoid. I think we used it up last month... you remember... when we conjured up that male stripper...""
The sickly witch turns to you. ""Sorry, we cannot remove the enchantment until you bring us some brogmoid earwax."""
?CCL39: PRINTI """We asked you for 6 gloops!"" screams the witch. ""No less, no more! Begone, and return not until you do what we ask!"" A fiery bolt shoots from the witches fingers, missing your rump by inches as you scurry from the cave."
CRLF
CRLF
CALL2 GOTO,AERIE
RSTACK
?CCL33: EQUAL? PRSA,V?PUT \?CCL52
EQUAL? PRSI,LARGE-VIAL,SMALL-VIAL \?CCL52
FSET? PRSO,TAKEBIT \FALSE
GETP PRSO,P?SIZE
GRTR? STACK,2 \?CCL60
PRINTR "The mouth of the vial is too narrow."
?CCL60: CALL1 WASTES
RSTACK
?CCL52: EQUAL? PRSA,V?PUT \?CCL62
EQUAL? PRSI,WATER \?CCL62
ICALL PERFORM,V?FILL,PRSO,WATER
RTRUE
?CCL62: EQUAL? PRSA,V?FILL \?CCL66
EQUAL? PRSI,LAKE-FLATHEAD,OASIS-OBJECT \?CND67
SET 'PRSI,WATER
?CND67: EQUAL? PRSI,WATER \?CCL71
EQUAL? PRSO,SMALL-VIAL \?PRD76
EQUAL? SMALL-VIAL-GLOOPS,4 /?CTR73
?PRD76: EQUAL? PRSO,LARGE-VIAL \?CCL74
EQUAL? LARGE-VIAL-GLOOPS,9 \?CCL74
?CTR73: PRINTI "The "
ICALL2 DPRINT,PRSO
PRINTR " is already filled to the brim!"
?CCL74: IN? PROTAGONIST,HERE /?CCL82
CALL2 CANT-REACH,WATER
RSTACK
?CCL82: EQUAL? PRSO,SMALL-VIAL \?CCL84
EQUAL? HERE,OASIS /?CND85
SET 'SMALL-VIAL-TAINTED,TRUE-VALUE
?CND85: CALL NOUN-USED?,WATER,W?GLOOP,W?GLOOPS
ZERO? STACK /?CCL89
CALL ADJ-USED?,WATER,FALSE-VALUE
ZERO? STACK \?CCL89
GET FINDER,5 >ADJ
ZERO? ADJ /?CCL89
CALL2 CONVERT-NUMBER,ADJ >P-NUMBER
ZERO? P-NUMBER /?CCL89
LESS? P-NUMBER,4 \?CCL89
GRTR? P-NUMBER,0 \?CCL89
SET 'SMALL-VIAL-GLOOPS,P-NUMBER
SET 'SMALL-VIAL-IMPRECISE,TRUE-VALUE
PRINTI "You fill"
CALL2 NO-GRADATIONS,P-NUMBER
RSTACK
?CCL89: SET 'SMALL-VIAL-IMPRECISE,FALSE-VALUE
SET 'SMALL-VIAL-GLOOPS,4
MOVE SMALL-VIAL-WATER,SMALL-VIAL
PRINTR "You fill the vial to the brim."
?CCL84: EQUAL? HERE,OASIS /?CND96
SET 'LARGE-VIAL-TAINTED,TRUE-VALUE
?CND96: CALL NOUN-USED?,WATER,W?GLOOP,W?GLOOPS
ZERO? STACK /?CCL100
CALL ADJ-USED?,WATER,FALSE-VALUE
ZERO? STACK \?CCL100
GET FINDER,5 >ADJ
ZERO? ADJ /?CCL100
CALL2 CONVERT-NUMBER,ADJ >P-NUMBER
ZERO? P-NUMBER /?CCL100
LESS? P-NUMBER,9 \?CCL100
GRTR? P-NUMBER,0 \?CCL100
SET 'LARGE-VIAL-GLOOPS,P-NUMBER
SET 'LARGE-VIAL-IMPRECISE,TRUE-VALUE
PRINTI "You fill"
CALL2 NO-GRADATIONS,P-NUMBER
RSTACK
?CCL100: SET 'LARGE-VIAL-IMPRECISE,FALSE-VALUE
SET 'LARGE-VIAL-GLOOPS,9
MOVE LARGE-VIAL-WATER,LARGE-VIAL
PRINTR "You fill the vial to the brim."
?CCL71: EQUAL? PRSO,SMALL-VIAL \?CCL108
EQUAL? PRSI,LARGE-VIAL \?CCL108
CALL POUR-VIALS,LARGE-VIAL,SMALL-VIAL
RSTACK
?CCL108: EQUAL? PRSO,LARGE-VIAL \FALSE
EQUAL? PRSI,SMALL-VIAL \FALSE
CALL POUR-VIALS,SMALL-VIAL,LARGE-VIAL
RSTACK
?CCL66: EQUAL? PRSA,V?POUR \?CCL116
EQUAL? PRSO,LARGE-VIAL,SMALL-VIAL \?CCL116
ICALL PERFORM,V?EMPTY,PRSO,PRSI
RTRUE
?CCL116: EQUAL? PRSA,V?EMPTY \?CCL120
ZERO? PRSO-VIAL-GLOOPS \?CCL123
PRINTR "The vial is already empty!"
?CCL123: EQUAL? PRSO,SMALL-VIAL \?CCL125
EQUAL? PRSI,LARGE-VIAL \?CCL125
CALL POUR-VIALS,SMALL-VIAL,LARGE-VIAL
RSTACK
?CCL125: EQUAL? PRSI,SMALL-VIAL \?CCL129
EQUAL? PRSO,LARGE-VIAL \?CCL129
CALL POUR-VIALS,LARGE-VIAL,SMALL-VIAL
RSTACK
?CCL129: ZERO? PRSI \?CND132
ICALL1 SET-GROUND-DESC
SET 'PRSI,GROUND
?CND132: EQUAL? PRSO,SMALL-VIAL \?CCL136
ICALL2 PRINT-GLOOP,SMALL-VIAL-GLOOPS
SET 'SMALL-VIAL-TAINTED,FALSE-VALUE
SET 'SMALL-VIAL-IMPRECISE,FALSE-VALUE
SET 'SMALL-VIAL-GLOOPS,0
REMOVE SMALL-VIAL-WATER
JUMP ?CND134
?CCL136: ICALL2 PRINT-GLOOP,LARGE-VIAL-GLOOPS
SET 'LARGE-VIAL-TAINTED,FALSE-VALUE
SET 'LARGE-VIAL-IMPRECISE,FALSE-VALUE
SET 'LARGE-VIAL-GLOOPS,0
REMOVE LARGE-VIAL-WATER
?CND134: EQUAL? PRSI,ELIXIR,BOWL \?CCL139
IN? ELIXIR,BOWL \?CCL139
REMOVE ELIXIR
PRINTR " The water and elixir undergo a reaction, and both disappear in a cloud of smoke!"
?CCL139: EQUAL? PRSI,CUP \?CCL143
ICALL PERFORM,V?FILL,CUP,WATER
RTRUE
?CCL143: PRINTI " The water spills all over"
ICALL1 TPRINT-PRSI
PRINTI " and then evaporates. The "
ICALL2 DPRINT,PRSO
PRINTR " is now empty."
?CCL120: EQUAL? PRSA,V?TAKE,V?EMPTY-FROM \FALSE
EQUAL? PRSO,WATER \FALSE
CALL2 GET-NP,PRSO >NUM
ZERO? NUM /?CND148
CALL2 NUMERIC-ADJ?,NUM >NUM
?CND148: ZERO? NUM \?CND150
CALL2 GET-NP,PRSO
GET STACK,1 >NUM
ZERO? NUM /?CND150
CALL2 CONVERT-NUMBER,NUM >NUM
?CND150: ZERO? NUM \?CND154
SET 'NUM,PRSI-VIAL-GLOOPS
?CND154: ZERO? PRSI-VIAL-GLOOPS \?CCL158
PRINTR "The vial is empty!"
?CCL158: GRTR? NUM,PRSI-VIAL-GLOOPS \?CCL160
PRINTI "There "
EQUAL? PRSI-VIAL-GLOOPS,1 /?CCL163
PRINTI "are"
JUMP ?CND161
?CCL163: PRINTI "is"
?CND161: PRINTI " only "
PRINTN PRSI-VIAL-GLOOPS
PRINTI " gloop"
EQUAL? PRSI-VIAL-GLOOPS,1 /?CND164
PRINTC 115
?CND164: PRINTI " in"
CALL2 TRPRINT,PRSI
RSTACK
?CCL160: ICALL2 PRINT-GLOOP,NUM
SUB PRSI-VIAL-GLOOPS,NUM >PRSI-VIAL-GLOOPS
ZERO? PRSI-VIAL-GLOOPS \?CCL168
EQUAL? PRSI,LARGE-VIAL \?CCL171
SET 'LARGE-VIAL-GLOOPS,0
SET 'LARGE-VIAL-IMPRECISE,FALSE-VALUE
SET 'LARGE-VIAL-TAINTED,FALSE-VALUE
REMOVE LARGE-VIAL-WATER
JUMP ?CND169
?CCL171: SET 'SMALL-VIAL-GLOOPS,0
REMOVE SMALL-VIAL-WATER
SET 'SMALL-VIAL-IMPRECISE,FALSE-VALUE
SET 'SMALL-VIAL-TAINTED,FALSE-VALUE
?CND169: PRINTI " You completely empty"
CALL2 TRPRINT,PRSI
RSTACK
?CCL168: EQUAL? PRSI,LARGE-VIAL \?CCL174
SUB LARGE-VIAL-GLOOPS,NUM >LARGE-VIAL-GLOOPS
MOVE LARGE-VIAL-WATER,LARGE-VIAL
SET 'LARGE-VIAL-IMPRECISE,TRUE-VALUE
JUMP ?CND172
?CCL174: SUB SMALL-VIAL-GLOOPS,NUM >SMALL-VIAL-GLOOPS
MOVE SMALL-VIAL-WATER,SMALL-VIAL
SET 'SMALL-VIAL-IMPRECISE,TRUE-VALUE
?CND172: PRINTI " You pour"
CALL2 NO-GRADATIONS,PRSI-VIAL-GLOOPS
RSTACK
.FUNCT NO-GRADATIONS,VIAL-GLOOPS
PRINTI " as carefully as you can, and it appears to the naked eye that there "
EQUAL? VIAL-GLOOPS,1 /?CCL3
PRINTI "are"
JUMP ?CND1
?CCL3: PRINTI "is"
?CND1: PRINTI " now "
PRINTN VIAL-GLOOPS
PRINTI " gloop"
EQUAL? VIAL-GLOOPS,1 /?CND4
PRINTC 115
?CND4: PRINTR " in the vial. However, since there are no gradations on the vial, it's impossible to be certain."
.FUNCT PRINT-GLOOP,NUM
PRINTC 34
?PRG1: PRINTI "Gloop!"
DLESS? 'NUM,1 /?REP2
PRINTC 32
JUMP ?PRG1
?REP2: PRINTC 34
RTRUE
.FUNCT POUR-VIALS,FROM-VIAL,TO-VIAL,SPARE-ROOM
EQUAL? TO-VIAL,LARGE-VIAL \?CCL3
SUB 9,LARGE-VIAL-GLOOPS >SPARE-ROOM
JUMP ?CND1
?CCL3: SUB 4,SMALL-VIAL-GLOOPS >SPARE-ROOM
?CND1: ZERO? SPARE-ROOM \?CCL6
PRINTI "But"
ICALL2 TPRINT,TO-VIAL
PRINTR " is already filled to the brim!"
?CCL6: EQUAL? FROM-VIAL,LARGE-VIAL \?CCL8
GRTR? LARGE-VIAL-GLOOPS,SPARE-ROOM \?CCL11
ZERO? LARGE-VIAL-TAINTED /?CND12
SET 'SMALL-VIAL-TAINTED,TRUE-VALUE
?CND12: ICALL2 PRINT-GLOOP,SPARE-ROOM
SUB LARGE-VIAL-GLOOPS,SPARE-ROOM >LARGE-VIAL-GLOOPS
MOVE LARGE-VIAL-WATER,LARGE-VIAL
ZERO? SMALL-VIAL-IMPRECISE /?CND14
SET 'LARGE-VIAL-IMPRECISE,TRUE-VALUE
?CND14: SET 'SMALL-VIAL-IMPRECISE,FALSE-VALUE
SET 'SMALL-VIAL-GLOOPS,4
MOVE SMALL-VIAL-WATER,SMALL-VIAL
PRINTI " The "
ICALL2 DPRINT,TO-VIAL
PRINTR " is now filled to the brim."
?CCL11: ICALL2 PRINT-GLOOP,LARGE-VIAL-GLOOPS
ZERO? LARGE-VIAL-TAINTED /?CND16
SET 'SMALL-VIAL-TAINTED,TRUE-VALUE
?CND16: ADD SMALL-VIAL-GLOOPS,LARGE-VIAL-GLOOPS >SMALL-VIAL-GLOOPS
MOVE SMALL-VIAL-WATER,SMALL-VIAL
SET 'LARGE-VIAL-GLOOPS,0
SET 'LARGE-VIAL-TAINTED,FALSE-VALUE
REMOVE LARGE-VIAL-WATER
ZERO? LARGE-VIAL-IMPRECISE /?CND18
SET 'LARGE-VIAL-IMPRECISE,FALSE-VALUE
SET 'SMALL-VIAL-IMPRECISE,TRUE-VALUE
?CND18: PRINTI " The "
ICALL2 DPRINT,LARGE-VIAL
PRINTI " has been completely emptied into"
CALL2 TRPRINT,SMALL-VIAL
RSTACK
?CCL8: GRTR? SMALL-VIAL-GLOOPS,SPARE-ROOM \?CCL21
ZERO? SMALL-VIAL-TAINTED /?CND22
SET 'LARGE-VIAL-TAINTED,TRUE-VALUE
?CND22: ICALL2 PRINT-GLOOP,SPARE-ROOM
SUB SMALL-VIAL-GLOOPS,SPARE-ROOM >SMALL-VIAL-GLOOPS
MOVE SMALL-VIAL-WATER,SMALL-VIAL
SET 'LARGE-VIAL-GLOOPS,9
MOVE LARGE-VIAL-WATER,LARGE-VIAL
ZERO? LARGE-VIAL-IMPRECISE /?CND24
SET 'SMALL-VIAL-IMPRECISE,TRUE-VALUE
?CND24: SET 'LARGE-VIAL-IMPRECISE,FALSE-VALUE
PRINTI " The "
ICALL2 DPRINT,LARGE-VIAL
PRINTR " is now filled to the brim."
?CCL21: ZERO? SMALL-VIAL-TAINTED /?CND26
SET 'LARGE-VIAL-TAINTED,TRUE-VALUE
?CND26: ICALL2 PRINT-GLOOP,SMALL-VIAL-GLOOPS
ADD LARGE-VIAL-GLOOPS,SMALL-VIAL-GLOOPS >LARGE-VIAL-GLOOPS
MOVE LARGE-VIAL-WATER,LARGE-VIAL
SET 'SMALL-VIAL-GLOOPS,0
REMOVE SMALL-VIAL-WATER
ZERO? SMALL-VIAL-IMPRECISE /?CND28
SET 'LARGE-VIAL-IMPRECISE,TRUE-VALUE
?CND28: SET 'SMALL-VIAL-IMPRECISE,FALSE-VALUE
PRINTI " The "
ICALL2 DPRINT,SMALL-VIAL
PRINTI " has been completely emptied into"
CALL2 TRPRINT,LARGE-VIAL
RSTACK
.ENDSEG
.SEGMENT "ORACLE"
.FUNCT RUBBLE-ROOM-F,RARG
EQUAL? RARG,M-END \FALSE
ICALL1 RETURN-FROM-MAP
PRINTI " "
FSET? HARDHAT,WORNBIT \?CCL6
PRINTI "Clunk! A bit of rubble bounces off your hardhat."
CRLF
ICALL2 INC-SCORE,RUBBLE-SCORE
SET 'RUBBLE-SCORE,0
RTRUE
?CCL6: CALL2 JIGS-UP,STR?894
RSTACK
.FUNCT GRANOLA-MINE-F
EQUAL? PRSA,V?ENTER \?CCL3
EQUAL? HERE,MINE-ENTRANCE \?CCL6
CALL2 DO-WALK,P?IN
RSTACK
?CCL6: PRINT LOOK-AROUND
RTRUE
?CCL3: EQUAL? HERE,MINE-ENTRANCE /FALSE
CALL2 PERFORM-PRSA,GLOBAL-HERE
RSTACK
.FUNCT GRANOLA-F
EQUAL? PRSA,V?EXAMINE \?CCL3
CALL2 STEP-IN-IT,STR?898
RSTACK
?CCL3: EQUAL? PRSA,V?TASTE,V?EAT \?CCL5
CALL2 STEP-IN-IT,STR?899
RSTACK
?CCL5: EQUAL? PRSA,V?SMELL \?CCL7
CALL2 STEP-IN-IT,STR?900
RSTACK
?CCL7: EQUAL? PRSA,V?ENTER,V?STAND-ON \?CCL9
PRINTR "Oh, yechh!"
?CCL9: CALL2 TOUCHING?,GRANOLA
ZERO? STACK /FALSE
CALL2 STEP-IN-IT,STR?901
RSTACK
.FUNCT STEP-IN-IT,STRING
PRINTI "It "
PRINT STRING
PRINTR " just like granola. Good thing you didn't step in it."
.ENDSEG
.ENDI