3368 lines
90 KiB
Plaintext
3368 lines
90 KiB
Plaintext
|
|
|
|
.FUNCT NAME-CASTLE
|
|
FSET? HERE,TOUCHBIT /FALSE
|
|
ZERO? CASTLES-SEEN \?ELS6
|
|
PUTP HERE,P?SDESC,STR?233
|
|
JUMP ?CND4
|
|
?ELS6: EQUAL? CASTLES-SEEN,1 \?ELS8
|
|
PUTP HERE,P?SDESC,STR?234
|
|
JUMP ?CND4
|
|
?ELS8: EQUAL? CASTLES-SEEN,2 \?CND4
|
|
PUTP HERE,P?SDESC,STR?235
|
|
?CND4: INC 'CASTLES-SEEN
|
|
RETURN CASTLES-SEEN
|
|
|
|
|
|
.FUNCT CASTLE-NOTE
|
|
EQUAL? CASTLES-SEEN,2 \?ELS5
|
|
PRINTI "(There do seem to be quite a few of them around here, eh?) "
|
|
RTRUE
|
|
?ELS5: EQUAL? CASTLES-SEEN,3 \FALSE
|
|
PRINTI "(It's no wonder this section of Mars is considered the Ruined Castle Capital of the Solar System.) "
|
|
RTRUE
|
|
|
|
|
|
.FUNCT RUINED-CASTLE-1-F,RARG
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
CALL NAME-CASTLE
|
|
RSTACK
|
|
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "You stand amongst the ruins of a mighty castle. "
|
|
CALL CASTLE-NOTE
|
|
PRINTI "The only part of the castle that is more than a pile of rubble is to the north. A path leads out of the ruin to the south."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT THRONE-ROOM-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
REMOVE MITRE
|
|
MOVE MITRE,HERE
|
|
PRINTI "This is the "
|
|
PRINTD HERE
|
|
PRINTI " of the once-potent "
|
|
PRINTD MITRE
|
|
PRINTI ", of legendary fame. Of course, the version you've probably heard is significantly warped from What Really Happened.
|
|
In the diseased version of the legend commonly transmitted on Earth, Mitre is called Midas. The King was granted his wish that everything he touched would turn to gold. His greed caught up with him when he transformed even his own daughter into gold.
|
|
"
|
|
PRINTD MITRE
|
|
PRINTI "'s wish was, in fact, that everything he touched would turn to"
|
|
PRINT 45-DEGREE-ANGLE
|
|
PRINTI "s. "
|
|
ZERO? NAUGHTY-LEVEL \?ELS8
|
|
PRINTI "T"
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "No one has ever explained this strange wish; the most likely hypothesis is a sexual fetish. In any case, t"
|
|
?CND6: PRINTI "he tale has a similar climax, with Mitre turning his own daughter into a"
|
|
PRINT 45-DEGREE-ANGLE
|
|
PRINTI "."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MITRE-CROWN-F
|
|
EQUAL? PRSA,V?TAKE \?ELS5
|
|
PRINT MORE-ROYAL-BLOOD
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "It's not very round for a crown."
|
|
|
|
|
|
.FUNCT GOWN-F
|
|
EQUAL? PRSA,V?TAKE \FALSE
|
|
CALL PERFORM-PRSA,THETA
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MITRE-F,OARG=0
|
|
ZERO? OARG /?ELS5
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " King Mitre sits upon the throne, looking "
|
|
FSET? THETA,MUNGBIT \?ELS12
|
|
PRINTI "dejected and lonely. Next to him is a pile of"
|
|
PRINT 45-DEGREE-ANGLE
|
|
PRINTI "s. One stands out from the others, thanks to its golden hair and flowing white gown"
|
|
JUMP ?CND10
|
|
?ELS12: PRINTI "delirious with joy"
|
|
?CND10: PRINTI ". The main entrance of the throne room is to the south, but a tight opening leads north."
|
|
RTRUE
|
|
?ELS5: EQUAL? MITRE,WINNER \?ELS16
|
|
EQUAL? PRSA,V?WHAT \?ELS25
|
|
EQUAL? PRSO,LGOP /?THN22
|
|
?ELS25: EQUAL? PRSA,V?TELL-ABOUT \?ELS21
|
|
EQUAL? PRSO,ME \?ELS21
|
|
EQUAL? PRSI,LGOP \?ELS21
|
|
?THN22: PRINTR """Leather fetishists, every one of them. Me, I'm not into fetishes."""
|
|
?ELS21: EQUAL? PRSA,V?CHEER \?ELS29
|
|
EQUAL? PRSO,ROOMS \?ELS29
|
|
SET 'WINNER,PROTAGONIST
|
|
CALL PERFORM-PRSA,MITRE
|
|
SET 'WINNER,MITRE
|
|
RTRUE
|
|
?ELS29: EQUAL? PRSA,V?TOUCH \?ELS33
|
|
FSET? PRSO,TAKEBIT \?ELS33
|
|
EQUAL? PRSO,COMIC-BOOK,GARMENT /?ELS33
|
|
SET 'WINNER,PROTAGONIST
|
|
CALL PERFORM,V?GIVE,PRSO,MITRE
|
|
SET 'WINNER,MITRE
|
|
RTRUE
|
|
?ELS33: PRINTI """I don't feel like talking. I'm too "
|
|
FSET? THETA,MUNGBIT \?CND38
|
|
PRINTI "un"
|
|
?CND38: PRINTI "happy."""
|
|
CRLF
|
|
CALL STOP
|
|
RSTACK
|
|
?ELS16: EQUAL? PRSA,V?EXAMINE \?ELS42
|
|
PRINTI "The old king looks very "
|
|
FSET? THETA,MUNGBIT \?ELS45
|
|
PRINTI "down"
|
|
JUMP ?CND43
|
|
?ELS45: PRINTI "up"
|
|
?CND43: PRINTR ". His appearance is rather odd, since his clothes, his jewelry, his crown, even his very throne, all have a rather angular appearance."
|
|
?ELS42: EQUAL? PRSA,V?ASK-ABOUT \?ELS53
|
|
EQUAL? PRSI,THETA /?THN50
|
|
?ELS53: EQUAL? PRSA,V?SHOW \?ELS49
|
|
EQUAL? PRSO,THETA \?ELS49
|
|
?THN50: FSET? THETA,MUNGBIT \?ELS60
|
|
PRINTR "The king weeps pitifully."
|
|
?ELS60: PRINTR "The king beams."
|
|
?ELS49: EQUAL? PRSA,V?GIVE \?ELS64
|
|
EQUAL? PRSI,MITRE \?ELS64
|
|
REMOVE PRSO
|
|
PRINTI "As Mitre touches"
|
|
CALL TPRINT-PRSO
|
|
PRINTI ","
|
|
CALL TPRINT,PILE-OF-ANGLES
|
|
PRINTR " becomes a bit larger."
|
|
?ELS64: EQUAL? PRSA,V?TOUCH \?ELS68
|
|
PRINTR "It only works the other way."
|
|
?ELS68: EQUAL? PRSA,V?SHAKE-WITH \FALSE
|
|
EQUAL? PRSO,HANDS \FALSE
|
|
PRINTI "As you join the other angles in the pile, life becomes very boring. Two centuries later, following Mitre's death, the "
|
|
PRINTD PILE-OF-ANGLES
|
|
PRINTI " is sold to a geometry teacher on Baffin Island, who uses you to demonstrate bisections, trigonometric proofs, and basic picture framing techniques."
|
|
CRLF
|
|
CALL FINISH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT THETA-F
|
|
CALL ADJ-USED,A?NUMBER
|
|
ZERO? STACK /?ELS5
|
|
EQUAL? P-NUMBER,45 /?ELS5
|
|
CALL NO-X-DEGREE-ANGLE
|
|
RSTACK
|
|
?ELS5: EQUAL? THETA,WINNER \?ELS9
|
|
EQUAL? PRSA,V?WHAT \?ELS18
|
|
EQUAL? PRSO,LGOP /?THN15
|
|
?ELS18: EQUAL? PRSA,V?TELL-ABOUT \?ELS14
|
|
EQUAL? PRSO,ME \?ELS14
|
|
EQUAL? PRSI,LGOP \?ELS14
|
|
?THN15: PRINTR """The travelling acrobatic troupe! I saw them while I was mooning on Phobos. Their costumes are made of pure Chomperhide leather."""
|
|
?ELS14: PRINTR "The princess, whose recent experience has made her more obtuse, just looks at you dumbly."
|
|
?ELS9: EQUAL? PRSA,V?MEASURE \?ELS24
|
|
FSET? THETA,MUNGBIT \?ELS24
|
|
CALL PERFORM-PRSA,PILE-OF-ANGLES
|
|
RTRUE
|
|
?ELS24: EQUAL? PRSA,V?EXAMINE \?ELS28
|
|
FSET? THETA,MUNGBIT \?ELS33
|
|
PRINTR "The angle has the sort of golden hair and satiny robes that one normally associates with princesses."
|
|
?ELS33: PRINTR "The princess, once acute, is now cute."
|
|
?ELS28: EQUAL? PRSA,V?FUCK,V?KISS,V?TAKE /?THN38
|
|
EQUAL? PRSA,V?BEND,V?TOUCH \?ELS37
|
|
?THN38: PRINTI "Mitre growls, ""Keep "
|
|
PRINTD HANDS
|
|
PRINTR "s off my daughter."""
|
|
?ELS37: EQUAL? PRSA,V?MARRY \FALSE
|
|
FSET? THETA,MUNGBIT \?ELS46
|
|
CALL WANT-CHILDREN,STR?237
|
|
RSTACK
|
|
?ELS46: PRINTR """Only one of royal blood shall bisect ... er, wed ... my Theta!"" bellows Mitre."
|
|
|
|
|
|
.FUNCT WANT-CHILDREN,STRING
|
|
SET 'AWAITING-REPLY,2
|
|
CALL QUEUE,I-REPLY,2
|
|
PRINTI "Would you really want "
|
|
PRINT STRING
|
|
PRINTR " children?"
|
|
|
|
|
|
.FUNCT EIGHTY-TWO-DEGREE-ANGLE-F
|
|
CALL ADJ-USED,A?NUMBER
|
|
ZERO? STACK /?ELS5
|
|
EQUAL? P-NUMBER,82 /?ELS5
|
|
CALL NO-X-DEGREE-ANGLE
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?MEASURE \FALSE
|
|
FSET? EIGHTY-TWO-DEGREE-ANGLE,UNTEEDBIT /FALSE
|
|
PRINTR "82 degrees."
|
|
|
|
|
|
.FUNCT NO-X-DEGREE-ANGLE
|
|
PRINT YOU-CANT-SEE-ANY
|
|
PRINTN P-NUMBER
|
|
PRINTR " degree angle here!"
|
|
|
|
|
|
.FUNCT GENERIC-ANGLE-F
|
|
FSET? THETA,MUNGBIT /FALSE
|
|
RETURN EIGHTY-TWO-DEGREE-ANGLE
|
|
|
|
|
|
.FUNCT PILE-OF-ANGLES-F
|
|
CALL ADJ-USED,A?NUMBER
|
|
ZERO? STACK /?ELS5
|
|
EQUAL? P-NUMBER,45 /?ELS5
|
|
CALL NO-X-DEGREE-ANGLE
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?COUNT \?ELS9
|
|
PRINTR "Lots."
|
|
?ELS9: EQUAL? PRSA,V?TAKE \?ELS11
|
|
PRINTI "The "
|
|
PRINTD PILE-OF-ANGLES
|
|
PRINTI " is too big to carry."
|
|
FSET? THETA,MUNGBIT \?CND12
|
|
PRINTI " Besides, other than"
|
|
CALL TPRINT,THETA
|
|
PRINTI ", none of them are interesting."
|
|
?CND12: CRLF
|
|
RTRUE
|
|
?ELS11: EQUAL? PRSA,V?MEASURE \FALSE
|
|
PRINTR "45 degrees."
|
|
|
|
|
|
.FUNCT FROG-CROWN-F
|
|
EQUAL? PRSA,V?TAKE \?ELS5
|
|
PRINT MORE-ROYAL-BLOOD
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "It's tiny."
|
|
|
|
|
|
.FUNCT RUINED-CASTLE-2-F,RARG
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
FCLEAR RUINED-CASTLE-2,MUNGBIT
|
|
CALL NAME-CASTLE
|
|
RSTACK
|
|
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This ancient castle now lies in ruins. "
|
|
CALL CASTLE-NOTE
|
|
PRINTI "All that remains of its once-proud ramparts are dust and rubble, and an occasional stone block. A path leads away from the ruin to the west"
|
|
CALL UNCHARTABLE-DESERT,STR?239
|
|
RSTACK
|
|
|
|
|
|
.FUNCT UNCHARTABLE-DESERT,STRING
|
|
PRINTI ". To the "
|
|
PRINT STRING
|
|
PRINTI ": unchartable desert."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FROG-F
|
|
EQUAL? PRSA,V?LISTEN,V?TELL /?THN6
|
|
EQUAL? PRSA,V?GIVE \?ELS5
|
|
EQUAL? PRSI,FROG \?ELS5
|
|
?THN6: PRINTI """Ribit."""
|
|
CRLF
|
|
EQUAL? PRSA,V?TELL \TRUE
|
|
CALL STOP
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?SUCK,V?TASTE,V?EAT /?THN15
|
|
EQUAL? PRSA,V?SMELL \?ELS14
|
|
?THN15: PRINT YECHH
|
|
RTRUE
|
|
?ELS14: EQUAL? PRSA,V?EXAMINE \?ELS18
|
|
PRINTR "You realize what aroused your attention: the tiny gold crown on the frog's head. The frog is otherwise totally ordinary. Ordinary for a frog, that is. By any other measure it is a repulsive creature, with swollen eyes, oozing warts, slimy skin, and a grating croak."
|
|
?ELS18: EQUAL? PRSA,V?TOUCH \?ELS20
|
|
PRINTI "Huge, ugly warts cover every inch of "
|
|
PRINTD YOUR-BODY
|
|
ZERO? NAUGHTY-LEVEL \?ELS23
|
|
PRINTI ", but"
|
|
JUMP ?CND21
|
|
?ELS23: PRINTI ". Fortunately for your sex life,"
|
|
?CND21: PRINTR " they quickly fade away."
|
|
?ELS20: EQUAL? PRSA,V?MARRY \?ELS27
|
|
CALL WANT-CHILDREN,STR?241
|
|
RSTACK
|
|
?ELS27: EQUAL? PRSA,V?KISS \FALSE
|
|
PRINTI "You lean forward"
|
|
FSET? EYES,MUNGBIT \?ELS34
|
|
PRINTI " with "
|
|
PRINTD EYES
|
|
PRINTI " "
|
|
EQUAL? EYES,HAND-COVER \?ELS37
|
|
PRINTI "covered"
|
|
JUMP ?CND35
|
|
?ELS37: PRINTI "closed"
|
|
?CND35: FSET? NOSE,MUNGBIT \?ELS44
|
|
FSET? EARS,MUNGBIT \?ELS47
|
|
PRINTI ","
|
|
JUMP ?CND45
|
|
?ELS47: PRINTI " and"
|
|
?CND45: PRINTI " "
|
|
PRINTD NOSE
|
|
PRINTI " shut"
|
|
FSET? EARS,MUNGBIT \?ELS54
|
|
FSET? MOUTH,MUNGBIT \?ELS57
|
|
PRINTI ","
|
|
JUMP ?CND55
|
|
?ELS57: PRINTI " and"
|
|
?CND55: PRINTI " "
|
|
PRINTD EARS
|
|
PRINTI " "
|
|
EQUAL? EARS,HAND-COVER \?ELS62
|
|
PRINTI "covered"
|
|
JUMP ?CND60
|
|
?ELS62: PRINTI "stuffed up"
|
|
?CND60: FSET? MOUTH,MUNGBIT \?ELS69
|
|
CALL FROG-SEX-SCENE
|
|
RTRUE
|
|
?ELS69: PRINT ABOUT-TO-KISS
|
|
PRINTR "the thought of slimy frog lips pressing against your own makes you shudder away."
|
|
?ELS54: PRINT ABOUT-TO-KISS
|
|
PRINTR "the creature lets loose a loud, croaking ""ribit."" You admit that you are incapable of kissing under such circumstances."
|
|
?ELS44: PRINT ABOUT-TO-KISS
|
|
PRINTR "the stench of old pond scum overwhelms you, and you lurch back, retching."
|
|
?ELS34: PRINT ABOUT-TO-KISS
|
|
PRINTR "the sight of its green warts and slimy skin make it impossible to continue."
|
|
|
|
|
|
.FUNCT FROG-SEX-SCENE
|
|
MOVE FROG,LOCAL-GLOBALS
|
|
MOVE BLENDER,HERE
|
|
CALL INCREMENT-SCORE,17,17,TRUE-VALUE
|
|
CALL OPEN-EYES-AND-REMOVE-HANDS
|
|
PRINTI " and your lips smeared with balm. Planting "
|
|
PRINTD MOUTH
|
|
PRINTI " solidly against the frog's, you kiss deeply. "
|
|
ZERO? NAUGHTY-LEVEL \?ELS3
|
|
PRINTI "The kiss is surprisingly pleasant, until you notice that you're embracing a "
|
|
ZERO? MALE /?ELS6
|
|
PRINTI "beautiful princess. Sh"
|
|
JUMP ?CND4
|
|
?ELS6: PRINTI "handsome prince. H"
|
|
?CND4: PRINTI "e leaps back, blushing deeply. ""We're ... we're not married,"" "
|
|
CALL SHE-HE
|
|
PRINTI " stammers. Then, still reddening, "
|
|
CALL SHE-HE
|
|
PRINTI " vanishes into thin air! Y"
|
|
JUMP ?CND1
|
|
?ELS3: FSET RUINED-CASTLE-2,MUNGBIT
|
|
PRINTI "When you feel a tongue sliding into "
|
|
PRINTD MOUTH
|
|
PRINTI ", revulsion gives way to pleasure, as the no-longer-enchanted but quite enchanting prince"
|
|
ZERO? MALE /?CND12
|
|
PRINTI "ss"
|
|
?CND12: PRINTI " presses against you. "
|
|
EQUAL? NAUGHTY-LEVEL,1 \?ELS18
|
|
PRINTI "Some time later, after the prince"
|
|
ZERO? MALE /?CND19
|
|
PRINTI "ss"
|
|
?CND19: PRINTI " has departed..."
|
|
JUMP ?CND16
|
|
?ELS18: ZERO? MALE /?ELS27
|
|
PRINTI "Rubbing her hot, naked body against yours, s"
|
|
JUMP ?CND25
|
|
?ELS27: PRINTI "As your arms grip his naked, muscular back, "
|
|
?CND25: PRINTI "he effortlessly slips off your "
|
|
CALL DPRINT,GARMENT
|
|
PRINTI ". A warm and wild feeling springs from your loins, spreading like a fiery potion through your veins. Within moments you are joined in passionate love, and just as a quick and lustful orgasm seems inevitable, a force crackles in the air, and you are alone, naked, sweating, and unsatisfied."
|
|
?CND16: CRLF
|
|
PRINTI " As you gather up your garment and put it on, y"
|
|
?CND1: PRINTI "ou notice"
|
|
CALL APRINT,BLENDER
|
|
PRINTI " on the ground. "
|
|
PRINT ITS-ENGRAVED
|
|
IN? SIDEKICK,HERE \?CND31
|
|
PRINTI " "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTI " is at the other end of the ruin, sifting through some rubble, oblivious to your ""experience."""
|
|
?CND31: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BLENDER-F
|
|
EQUAL? PRSA,V?READ \?ELS5
|
|
ZERO? NAUGHTY-LEVEL /?ELS8
|
|
PRINTI """Dearest,"
|
|
CRLF
|
|
EQUAL? NAUGHTY-LEVEL,2 \?ELS11
|
|
PRINTI " Sorry to leave so abruptly; p"
|
|
JUMP ?CND9
|
|
?ELS11: PRINTI " P"
|
|
?CND9: PRINTI "erhaps some day we will meet again"
|
|
EQUAL? NAUGHTY-LEVEL,2 \?CND14
|
|
PRINTI ", and finish what we began"
|
|
?CND14: PRINTI ". "
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI """"
|
|
?CND6: PRINTR "Please accept this token of my gratitude for delivering me from enchantment."""
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS20
|
|
CALL NOUN-USED,W?ENGRAV,BLENDER
|
|
ZERO? STACK /?ELS25
|
|
CALL PERFORM,V?READ,BLENDER
|
|
RTRUE
|
|
?ELS25: PRINT ITS-ENGRAVED
|
|
CRLF
|
|
RTRUE
|
|
?ELS20: EQUAL? PRSA,V?ON \?ELS29
|
|
PRINTR """Whirr."""
|
|
?ELS29: EQUAL? PRSA,V?LOOK-INSIDE \?ELS31
|
|
PRINTR "It's empty."
|
|
?ELS31: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,BLENDER \FALSE
|
|
PRINTI "But"
|
|
CALL TPRINT-PRSO
|
|
PRINTR " doesn't need blending."
|
|
|
|
|
|
.FUNCT RUINED-CASTLE-3-F,RARG
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
CALL NAME-CASTLE
|
|
RSTACK
|
|
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "Wind whistles among the fallen archways, crumbled balustrades, and black circle of this ruined castle. "
|
|
CALL CASTLE-NOTE
|
|
PRINTI "Paths lead east and northwest through the rubble."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MOUSE-F
|
|
EQUAL? PRSA,V?CLICK \?ELS5
|
|
SET 'AWAITING-REPLY,2
|
|
CALL QUEUE,I-REPLY,2
|
|
PRINTR "You expect maybe a window to open?"
|
|
?ELS5: EQUAL? PRSA,V?SHOW \?ELS7
|
|
EQUAL? PRSO,PAINTING \?ELS7
|
|
FSET? PAINTING,UNTEEDBIT /?ELS7
|
|
FCLEAR MOUSE,TRYTAKEBIT
|
|
FSET MOUSE,TOUCHBIT
|
|
CALL QUEUE,I-MOUSE,2
|
|
PRINTR "The mouse freezes with fear."
|
|
?ELS7: EQUAL? PRSA,V?GIVE \?ELS11
|
|
EQUAL? PRSI,MOUSE \?ELS11
|
|
PRINTR "Marsmice, like earthmice, prefer cheese."
|
|
?ELS11: EQUAL? PRSA,V?CATCH \?ELS15
|
|
CALL PERFORM,V?TAKE,MOUSE
|
|
RTRUE
|
|
?ELS15: CALL TOUCHING?,MOUSE
|
|
ZERO? STACK /?ELS17
|
|
IN? MOUSE,HERE \?ELS17
|
|
FSET? MOUSE,TRYTAKEBIT \?ELS17
|
|
PRINTR "The little fellow scurries easily away from you."
|
|
?ELS17: EQUAL? PRSA,V?FOLLOW \?ELS21
|
|
EQUAL? P-PRSA-WORD,W?CHASE \?ELS21
|
|
IN? MOUSE,HERE \?ELS21
|
|
FSET? MOUSE,TRYTAKEBIT \?ELS21
|
|
CALL PERFORM,V?TAKE,MOUSE
|
|
RTRUE
|
|
?ELS21: EQUAL? PRSA,V?TAKE \?ELS25
|
|
FSET? MOUSE,MUNGBIT /?ELS25
|
|
CALL CCOUNT,PROTAGONIST
|
|
LESS? STACK,11 \?ELS25
|
|
FSET MOUSE,MUNGBIT
|
|
CALL INCREMENT-SCORE,14,9,TRUE-VALUE
|
|
RFALSE
|
|
?ELS25: EQUAL? PRSA,V?MEASURE \?ELS29
|
|
PRINTR "Tiny."
|
|
?ELS29: EQUAL? PRSA,V?TOUCH \FALSE
|
|
PRINTR "The mouse squeaks happily."
|
|
|
|
|
|
.FUNCT I-MOUSE
|
|
FSET MOUSE,TRYTAKEBIT
|
|
IN? MOUSE,RUINED-CASTLE-1 \?CND1
|
|
FCLEAR MOUSE,TOUCHBIT
|
|
?CND1: IN? MOUSE,HERE \FALSE
|
|
PRINTR " The mouse relaxes and begins scampering about."
|
|
|
|
|
|
.FUNCT ROYAL-DOCKS-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
ZERO? NAUGHTY-LEVEL \?ELS8
|
|
PRINTI "This dock juts"
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "During the peak of King Mitre's reign, a cruel joke went around the kingdom that Mitre's two greatest loves were his Royal Docks and his Royal Ducks. The joke was never very good and has long since been forgotten, and the ducks perished years ago from a sexually-transmitted disease, but the docks remain, jutting"
|
|
?CND6: PRINTI " into a wide Martian Canal which flows from west to east. Behind you, to the south, is a ruined castle."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BARGE-F,OARG=0
|
|
ZERO? OARG /?ELS5
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " A barge, hand-crafted from fine Martian cedarwood, is "
|
|
EQUAL? HERE,CANAL \?ELS14
|
|
PRINTI "floating nearby."
|
|
RTRUE
|
|
?ELS14: PRINTI "moored at the end of the dock."
|
|
RTRUE
|
|
?ELS5: EQUAL? HERE,CANAL \?ELS18
|
|
IN? PROTAGONIST,RAFT \?ELS18
|
|
EQUAL? RAFT-LOC-NUM,BARGE-LOC-NUM /?ELS18
|
|
CALL CANT-SEE,BARGE
|
|
RSTACK
|
|
?ELS18: EQUAL? PRSA,V?SINK \?ELS22
|
|
PRINTR "The barge is unsinkable. (Then again, so was the Titanic.)"
|
|
?ELS22: EQUAL? PRSA,V?LAUNCH,V?UNTIE \?ELS24
|
|
PRINTI "The barge isn't moored"
|
|
IN? BARGE,CANAL /?CND25
|
|
PRINTI " with ropes"
|
|
?CND25: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS24: EQUAL? PRSA,V?EXAMINE \?ELS29
|
|
CALL NOUN-USED,W?CONTROL,BARGE
|
|
ZERO? STACK /?ELS34
|
|
PRINTI "The controls consist of a "
|
|
PRINTD ORANGE-BUTTON
|
|
PRINTI ", and a "
|
|
PRINTD PURPLE-BUTTON
|
|
PRINTR ". Both buttons have writing on them."
|
|
?ELS34: PRINTI "This large barge could host a host of royal guests."
|
|
EQUAL? HERE,CANAL /?CND37
|
|
PRINTI " The barge rests immobile at the dockside, despite a strong current and no visible mooring lines."
|
|
?CND37: PRINTI " There are some simple controls on the side of the barge"
|
|
EQUAL? HERE,CANAL /?CND40
|
|
PRINTI " nearest the dock"
|
|
?CND40: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS29: EQUAL? PRSA,V?READ \?ELS44
|
|
CALL PERFORM-PRSA,ORANGE-BUTTON
|
|
CALL PERFORM-PRSA,PURPLE-BUTTON
|
|
RTRUE
|
|
?ELS44: EQUAL? PRSA,V?PUSH \?ELS46
|
|
CALL NOUN-USED,W?CONTROL,BARGE
|
|
ZERO? STACK /?ELS46
|
|
CALL PERFORM-PRSA,ORANGE-BUTTON
|
|
PRINTI " "
|
|
CALL PERFORM-PRSA,PURPLE-BUTTON
|
|
RTRUE
|
|
?ELS46: EQUAL? PRSA,V?SET \?ELS50
|
|
PRINT NO-STEERING
|
|
RTRUE
|
|
?ELS50: EQUAL? PRSA,V?TAKE,V?BOARD \?ELS52
|
|
EQUAL? HERE,CANAL \?ELS52
|
|
IN? PROTAGONIST,RAFT \?ELS52
|
|
MOVE PROTAGONIST,BARGE
|
|
PRINTI "Grabbing onto the barge, you"
|
|
CALL AND-SIDEKICK,BARGE
|
|
MOVE RAFT,PROTAGONIST
|
|
SET 'RAFT-HELD,FALSE-VALUE
|
|
PRINTI " climb in"
|
|
PRINT KEEP-IT-FROM-FLOATING-AWAY
|
|
RTRUE
|
|
?ELS52: EQUAL? PRSA,V?PUT-ON \?ELS56
|
|
EQUAL? PRSI,BARGE \?ELS56
|
|
CALL PERFORM,V?PUT,PRSO,BARGE
|
|
RTRUE
|
|
?ELS56: EQUAL? PRSA,V?SMELL \?ELS60
|
|
CALL NO-SCRATCH-N-SNIFF,STR?245
|
|
RSTACK
|
|
?ELS60: EQUAL? PRSA,V?SHAKE \?ELS62
|
|
IN? PROTAGONIST,BARGE \?ELS62
|
|
CALL SHAKE-BOAT
|
|
RSTACK
|
|
?ELS62: EQUAL? PRSA,V?LAND \FALSE
|
|
SET 'AWAITING-REPLY,2
|
|
CALL QUEUE,I-REPLY,2
|
|
PRINTI "Read any "
|
|
PRINTD ORANGE-BUTTON
|
|
PRINTR "s lately?"
|
|
|
|
|
|
.FUNCT SHAKE-BOAT
|
|
PRINTI "You knock yourself overboard."
|
|
CRLF
|
|
CRLF
|
|
CALL PERFORM,V?BOARD,CANAL-OBJECT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ORANGE-BUTTON-F
|
|
EQUAL? PRSA,V?EXAMINE,V?READ \?ELS5
|
|
PRINTI "The "
|
|
PRINTD ORANGE-BUTTON
|
|
PRINTI " reads: MagnetoMoor O"
|
|
ZERO? MOORING-ON /?ELS8
|
|
PRINTI "n"
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "ff"
|
|
?CND6: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?PUSH \FALSE
|
|
ZERO? MOORING-ON /?ELS16
|
|
SET 'MOORING-ON,FALSE-VALUE
|
|
JUMP ?CND14
|
|
?ELS16: SET 'MOORING-ON,TRUE-VALUE
|
|
?CND14: PRINT WRITING-CHANGES
|
|
PRINTI "."
|
|
IN? BARGE,CANAL /?ELS22
|
|
ZERO? MOORING-ON \?ELS22
|
|
EQUAL? HERE,ICY-DOCK /?ELS22
|
|
MOVE BARGE,CANAL
|
|
ZERO? RAFT-HELD /?CND25
|
|
IN? PROTAGONIST,BARGE \?CND25
|
|
MOVE RAFT,CANAL
|
|
SET 'RAFT-LOC-NUM,BARGE-LOC-NUM
|
|
?CND25: FCLEAR BARGE,NDESCBIT
|
|
CALL QUEUE,I-CANAL,-1
|
|
PRINTI " The barge s"
|
|
ZERO? BARGE-UNDER-POWER /?ELS32
|
|
PRINTI "hoot"
|
|
JUMP ?CND30
|
|
?ELS32: PRINTI "lide"
|
|
?CND30: PRINTI "s away from the dock, into the deeper waters of the canal."
|
|
CRLF
|
|
IN? PROTAGONIST,BARGE \TRUE
|
|
CRLF
|
|
CALL GOTO,BARGE
|
|
RTRUE
|
|
?ELS22: CALL BARGE-DOCKS
|
|
ZERO? STACK \TRUE
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PURPLE-BUTTON-F
|
|
EQUAL? PRSA,V?EXAMINE,V?READ \?ELS5
|
|
PRINTI "The "
|
|
PRINTD PURPLE-BUTTON
|
|
PRINTI " reads: "
|
|
ZERO? BARGE-UNDER-POWER /?ELS8
|
|
PRINTI "Full Speed Ahead"
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "Go With The Flow"
|
|
?CND6: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?PUSH \FALSE
|
|
PRINT WRITING-CHANGES
|
|
ZERO? BARGE-UNDER-POWER /?ELS16
|
|
SET 'BARGE-UNDER-POWER,FALSE-VALUE
|
|
JUMP ?CND14
|
|
?ELS16: SET 'BARGE-UNDER-POWER,TRUE-VALUE
|
|
IN? PROTAGONIST,RAFT \?CND14
|
|
EQUAL? HERE,CANAL \?CND14
|
|
CALL BARGE-FORGES-AHEAD
|
|
?CND14: PRINT PERIOD-CR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BARGE-FORGES-AHEAD
|
|
LESS? BARGE-LOC-NUM,16 \?ELS3
|
|
ZERO? MOORING-ON /?ELS3
|
|
SET 'BARGE-LOC-NUM,15
|
|
MOVE BARGE,WATTZ-UPP-DOCK
|
|
JUMP ?CND1
|
|
?ELS3: SET 'BARGE-LOC-NUM,36
|
|
MOVE BARGE,ICY-DOCK
|
|
?CND1: PRINTI ". The barge, under power, forges ahead and disappears from sight"
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CANAL-LOC
|
|
EQUAL? HERE,CANAL \FALSE
|
|
IN? PROTAGONIST,BARGE \?ELS7
|
|
RETURN BARGE-LOC-NUM
|
|
?ELS7: RETURN RAFT-LOC-NUM
|
|
|
|
|
|
.FUNCT SET-RAFT-LOC
|
|
EQUAL? HERE,CANAL \?ELS5
|
|
SET 'RAFT-LOC-NUM,BARGE-LOC-NUM
|
|
RETURN RAFT-LOC-NUM
|
|
?ELS5: EQUAL? HERE,HICKORY-AND-DICKORY-DOCK \?ELS7
|
|
SET 'RAFT-LOC-NUM,-1
|
|
RETURN RAFT-LOC-NUM
|
|
?ELS7: EQUAL? HERE,ROYAL-DOCKS \?ELS9
|
|
SET 'RAFT-LOC-NUM,1
|
|
RETURN RAFT-LOC-NUM
|
|
?ELS9: EQUAL? HERE,BABY-DOCK \?ELS11
|
|
SET 'RAFT-LOC-NUM,6
|
|
RETURN RAFT-LOC-NUM
|
|
?ELS11: EQUAL? HERE,DONALD-DOCK \?ELS13
|
|
SET 'RAFT-LOC-NUM,7
|
|
RETURN RAFT-LOC-NUM
|
|
?ELS13: EQUAL? HERE,WATTZ-UPP-DOCK \?ELS15
|
|
SET 'RAFT-LOC-NUM,15
|
|
RETURN RAFT-LOC-NUM
|
|
?ELS15: SET 'RAFT-LOC-NUM,10
|
|
RETURN RAFT-LOC-NUM
|
|
|
|
|
|
.FUNCT CANAL-OBJECT-F
|
|
CALL ADJ-USED,A?SMALL
|
|
ZERO? STACK /?ELS5
|
|
CALL UNIMPORTANT-THING-F
|
|
RSTACK
|
|
?ELS5: EQUAL? HERE,DUNETOP,MINARET \?ELS7
|
|
CALL TOUCHING?,CANAL-OBJECT
|
|
ZERO? STACK /?ELS7
|
|
CALL CANT-REACH,CANAL-OBJECT
|
|
RSTACK
|
|
?ELS7: EQUAL? PRSA,V?SWIM,V?ENTER,V?BOARD /?THN12
|
|
EQUAL? PRSA,V?CRAWL-UNDER \?ELS11
|
|
?THN12: CALL UNTOUCHABLE?,CANAL-OBJECT
|
|
ZERO? STACK /?ELS16
|
|
CALL CANT-REACH,CANAL-OBJECT
|
|
JUMP ?CND14
|
|
?ELS16: EQUAL? HERE,ICY-DOCK \?ELS18
|
|
PRINTI "The current sucks you under"
|
|
EQUAL? NAUGHTY-LEVEL,2 \?CND19
|
|
PRINTI ", which really sucks"
|
|
?CND19: CALL JIGS-UP,STR?246
|
|
JUMP ?CND14
|
|
?ELS18: PRINTI "In The Canal
|
|
As you swim in the cool waters of the canal, a slimy tentacle touches you, convincing you that it's safer back "
|
|
?CND14: LOC PROTAGONIST
|
|
EQUAL? STACK,RAFT,BARGE \?ELS26
|
|
PRINTI "in"
|
|
LOC PROTAGONIST
|
|
CALL TRPRINT,STACK
|
|
JUMP ?CND24
|
|
?ELS26: PRINTI "on the dock."
|
|
CRLF
|
|
?CND24: CRLF
|
|
CALL DESCRIBE-ROOM
|
|
RSTACK
|
|
?ELS11: EQUAL? PRSA,V?CROSS \?ELS30
|
|
CALL PERFORM,V?ENTER,CANAL-OBJECT
|
|
RTRUE
|
|
?ELS30: EQUAL? PRSA,V?PUT \?ELS32
|
|
EQUAL? P-PRSA-WORD,W?THROW \?ELS32
|
|
EQUAL? PRSO,RAFT \?ELS32
|
|
FSET? RAFT,UNTEEDBIT /?ELS32
|
|
IN? PROTAGONIST,RAFT /?ELS32
|
|
MOVE RAFT,HERE
|
|
SET 'RAFT-HELD,TRUE-VALUE
|
|
CALL PERFORM,V?DROP,RAFT
|
|
RTRUE
|
|
?ELS32: EQUAL? PRSA,V?THROW,V?PUT \?ELS36
|
|
EQUAL? PRSI,CANAL-OBJECT \?ELS36
|
|
EQUAL? PRSO,RAFT \?ELS43
|
|
FSET? RAFT,UNTEEDBIT /?THN49
|
|
FSET? RAFT,MUNGBIT \?ELS48
|
|
?THN49: REMOVE RAFT
|
|
PRINTI "It sinks like a stone."
|
|
FSET? RAFT,UNTEEDBIT \?CND51
|
|
PRINTI " I guess a raf doesn't float nearly as well as a raft."
|
|
?CND51: CRLF
|
|
RTRUE
|
|
?ELS48: ZERO? RAFT-HELD \?THN56
|
|
IN? RAFT,CANAL \?ELS55
|
|
?THN56: PRINT ALREADY-IS
|
|
RTRUE
|
|
?ELS55: PRINTI "The raft is now "
|
|
EQUAL? HERE,ICY-DOCK \?ELS64
|
|
MOVE RAFT,HERE
|
|
PRINTI "in the water"
|
|
PRINT PINNED
|
|
RTRUE
|
|
?ELS64: SET 'RAFT-HELD,TRUE-VALUE
|
|
MOVE RAFT,HERE
|
|
EQUAL? HERE,CANAL \?CND67
|
|
SET 'RAFT-LOC-NUM,BARGE-LOC-NUM
|
|
?CND67: PRINTI "bobbing in the canal."
|
|
EQUAL? HERE,CANAL \?THN73
|
|
ZERO? BARGE-UNDER-POWER /?CND70
|
|
?THN73: PRINTI " If you weren't holding it, it would surely be "
|
|
EQUAL? HERE,CANAL \?ELS77
|
|
PRINTI "left behind."
|
|
JUMP ?CND70
|
|
?ELS77: PRINTI "carried away."
|
|
?CND70: CRLF
|
|
RTRUE
|
|
?ELS43: REMOVE PRSO
|
|
EQUAL? PRSO,TORCH \?ELS84
|
|
FSET? TORCH,ONBIT \?ELS84
|
|
PRINTI """Phfffft!"
|
|
JUMP ?CND82
|
|
?ELS84: PRINTI """Glub."
|
|
?CND82: PRINTI """ "
|
|
FSET? PRSO,PLURALBIT \?ELS91
|
|
PRINTI "They're"
|
|
JUMP ?CND89
|
|
?ELS91: PRINTI "It's"
|
|
?CND89: PRINTI " gone"
|
|
EQUAL? PRSO,BABY /?THN97
|
|
CALL ULTIMATELY-IN?,BABY,PRSO
|
|
ZERO? STACK /?CND94
|
|
?THN97: PRINTI ", you heartless baby murderer, you"
|
|
?CND94: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS36: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
CALL PERFORM-PRSA,WATER
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DOCK-OBJECT-F,NUM,DOCK-ROOM
|
|
CALL CANAL-LOC >NUM
|
|
EQUAL? HERE,CANAL \?CND1
|
|
EQUAL? NUM,-1,1,6 /?CND1
|
|
EQUAL? NUM,7,10,15 /?CND1
|
|
CALL CANT-SEE,DOCK-OBJECT
|
|
RTRUE
|
|
?CND1: EQUAL? HERE,DUNETOP,MINARET \?ELS10
|
|
CALL TOUCHING?,DOCK-OBJECT
|
|
ZERO? STACK /?ELS10
|
|
PRINT CANT-FROM-HERE
|
|
RTRUE
|
|
?ELS10: EQUAL? PRSA,V?BOARD,V?TAKE \?ELS14
|
|
EQUAL? HERE,CANAL \?ELS14
|
|
IN? PROTAGONIST,RAFT \?ELS14
|
|
PRINTI "You lunge for the dock and secure a handhold. An agile clamber places you"
|
|
CALL AND-SIDEKICK
|
|
PRINTI " on the dock"
|
|
PRINT KEEP-IT-FROM-FLOATING-AWAY
|
|
CRLF
|
|
SET 'RAFT-WAIT,FALSE-VALUE
|
|
SET 'DONT-PRINT-VEHICLE,TRUE-VALUE
|
|
CALL SET-DOCK-ROOM,RAFT-LOC-NUM >DOCK-ROOM
|
|
CALL GOTO,DOCK-ROOM
|
|
SET 'DONT-PRINT-VEHICLE,FALSE-VALUE
|
|
IN? SIDEKICK,RAFT \?CND17
|
|
MOVE SIDEKICK,HERE
|
|
?CND17: MOVE RAFT,HERE
|
|
RTRUE
|
|
?ELS14: EQUAL? PRSA,V?BOARD \?ELS21
|
|
EQUAL? HERE,CANAL \?ELS26
|
|
CALL DO-FIRST,STR?247
|
|
RSTACK
|
|
?ELS26: IN? PROTAGONIST,HERE \?ELS28
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS28: LOC PROTAGONIST
|
|
CALL PERFORM,V?DISEMBARK,STACK
|
|
RTRUE
|
|
?ELS21: EQUAL? PRSA,V?TAKE-OFF \?ELS32
|
|
EQUAL? P-PRSA-WORD,W?GET \?ELS32
|
|
CALL PERFORM,V?BOARD,CANAL-OBJECT
|
|
RTRUE
|
|
?ELS32: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS36
|
|
EQUAL? PRSI,DOCK-OBJECT \?ELS36
|
|
EQUAL? HERE,CANAL /?ELS36
|
|
CALL PERFORM,V?PUT-ON,PRSO,GROUND
|
|
RTRUE
|
|
?ELS36: EQUAL? PRSA,V?LEAP-OFF \?ELS40
|
|
EQUAL? HERE,DUNETOP,CANAL \?ELS45
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS45: CALL PERFORM,V?ENTER,CANAL-OBJECT
|
|
RTRUE
|
|
?ELS40: EQUAL? PRSA,V?SEARCH \?ELS49
|
|
PRINT NOTHING-NEW
|
|
RTRUE
|
|
?ELS49: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
EQUAL? HERE,CANAL,MINARET,DUNETOP /FALSE
|
|
CALL V-LOOK
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DUNES-F
|
|
EQUAL? HERE,MINARET \?ELS5
|
|
CALL TOUCHING?,DUNES
|
|
ZERO? STACK /?ELS5
|
|
CALL CANT-REACH,DUNES
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \?ELS9
|
|
EQUAL? HERE,DUNETOP \?ELS14
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS14: EQUAL? HERE,CANALVIEW-MALL,DONALD-DOCK \?ELS16
|
|
CALL DO-WALK,P?UP
|
|
RSTACK
|
|
?ELS16: PRINTR "This dune is too steep."
|
|
?ELS9: EQUAL? PRSA,V?CLIMB-DOWN \FALSE
|
|
EQUAL? HERE,DUNETOP \FALSE
|
|
CALL DO-WALK,P?DOWN
|
|
RSTACK
|
|
|
|
|
|
.FUNCT CANAL-F,RARG,NUM,DOCK-DIR
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
CALL CANAL-LOC >NUM
|
|
CALL SET-DOCK-DIR,NUM >DOCK-DIR
|
|
PRINTI "The "
|
|
LOC PROTAGONIST
|
|
CALL DPRINT,STACK
|
|
PRINTI " rocks gently in the current of a wide canal."
|
|
EQUAL? NUM,1,7,15 /?THN9
|
|
EQUAL? NUM,-1,6 /?THN9
|
|
EQUAL? NUM,10 \?ELS8
|
|
IN? PROTAGONIST,RAFT \?ELS8
|
|
?THN9: PRINTI " A dock is "
|
|
IN? PROTAGONIST,RAFT \?ELS15
|
|
PRINTI "close enough to grab"
|
|
JUMP ?CND13
|
|
?ELS15: PRINTI "visible"
|
|
?CND13: PRINTI " on the "
|
|
PRINT DOCK-DIR
|
|
PRINTI "ern shore."
|
|
JUMP ?CND6
|
|
?ELS8: EQUAL? NUM,10 \?ELS19
|
|
PRINTI " There are docks on both banks."
|
|
JUMP ?CND6
|
|
?ELS19: PRINTI " The banks of the canal are steep and sandy."
|
|
?CND6: CALL BARGE-VISIBLE-AT-DOCK
|
|
ZERO? STACK /?CND22
|
|
PRINTI " A "
|
|
PRINTD BARGE
|
|
PRINTI " is moored to the dock"
|
|
EQUAL? NUM,10 \?CND25
|
|
PRINTI " on the "
|
|
IN? BARGE,ABANDONED-DOCK \?ELS30
|
|
PRINTI "we"
|
|
JUMP ?CND28
|
|
?ELS30: PRINTI "ea"
|
|
?CND28: PRINTI "stern shore"
|
|
?CND25: PRINTI "."
|
|
?CND22: EQUAL? NUM,5,12,29 \?ELS35
|
|
PRINTI " A smaller canal flows diagonally into this one, and the channel widens slightly to accommodate the heavier flow."
|
|
JUMP ?CND33
|
|
?ELS35: EQUAL? NUM,9,10 \?CND33
|
|
PRINTI " Just "
|
|
EQUAL? NUM,9 \?ELS40
|
|
PRINTI "ahead"
|
|
JUMP ?CND38
|
|
?ELS40: PRINTI "behind"
|
|
?CND38: PRINTI ", the canal curves sharply to the "
|
|
EQUAL? NUM,9 \?ELS45
|
|
PRINTI "south."
|
|
JUMP ?CND33
|
|
?ELS45: PRINTI "west."
|
|
?CND33: EQUAL? NUM,4,5,8 \?CND48
|
|
PRINTI " Sculpted reddish "
|
|
PRINTD DUNES
|
|
PRINTI " rise into view beyond the banks of the canal."
|
|
?CND48: RANDOM 100
|
|
LESS? 15,STACK /?CND51
|
|
PRINTI " The dark clouds of a sandstorm are visible on the horizon."
|
|
?CND51: EQUAL? NUM,15 \?CND54
|
|
PRINTI " A red warning buoy is anchored nearby. A sign atop the swaying buoy shows a skull and crossbones."
|
|
?CND54: GRTR? NUM,12 \TRUE
|
|
LESS? NUM,32 \TRUE
|
|
EQUAL? NUM,31 \?ELS64
|
|
CRLF
|
|
PRINTI " "
|
|
CALL DESCRIBE-POWER-TRANSMITTER,31
|
|
FSET? POWER-TRANSMITTER,TOUCHBIT /TRUE
|
|
FSET POWER-TRANSMITTER,TOUCHBIT
|
|
CRLF
|
|
PRINTI " As the "
|
|
LOC PROTAGONIST
|
|
CALL DPRINT,STACK
|
|
PRINTI " passes through the beam, you feel a tingling from every cell in "
|
|
PRINTD YOUR-BODY
|
|
PRINTI "."
|
|
RTRUE
|
|
?ELS64: PRINTI " "
|
|
CALL DESCRIBE-POWER-TRANSMITTER,NUM
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BARGE-VISIBLE-AT-DOCK,NUM
|
|
CALL CANAL-LOC >NUM
|
|
EQUAL? NUM,1 \?ELS9
|
|
IN? BARGE,ROYAL-DOCKS /TRUE
|
|
?ELS9: EQUAL? NUM,6 \?ELS11
|
|
IN? BARGE,BABY-DOCK /TRUE
|
|
?ELS11: EQUAL? NUM,7 \?ELS13
|
|
IN? BARGE,DONALD-DOCK /TRUE
|
|
?ELS13: EQUAL? NUM,10 \?ELS15
|
|
LOC BARGE
|
|
EQUAL? STACK,MY-KIND-OF-DOCK,ABANDONED-DOCK /TRUE
|
|
?ELS15: EQUAL? NUM,15 \FALSE
|
|
IN? BARGE,WATTZ-UPP-DOCK \FALSE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BARGE-FROM-CANAL-F
|
|
CALL BARGE-VISIBLE-AT-DOCK
|
|
ZERO? STACK \?ELS5
|
|
CALL CANT-SEE,PSEUDO-OBJECT
|
|
RSTACK
|
|
?ELS5: CALL TOUCHING?,PSEUDO-OBJECT
|
|
ZERO? STACK /FALSE
|
|
CALL CANT-REACH,PSEUDO-OBJECT
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BUOY-F,NUM
|
|
CALL CANAL-LOC >NUM
|
|
EQUAL? NUM,15 /?ELS5
|
|
EQUAL? HERE,WATTZ-UPP-DOCK /?ELS5
|
|
CALL CANT-SEE,PSEUDO-OBJECT
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE,V?READ \?ELS9
|
|
CALL PERFORM,V?READ,SIGN
|
|
RTRUE
|
|
?ELS9: EQUAL? PRSA,V?OPEN,V?TAKE \?ELS11
|
|
PRINT YOU-CANT
|
|
EQUAL? PRSA,V?TAKE \?ELS14
|
|
PRINTI "take"
|
|
JUMP ?CND12
|
|
?ELS14: PRINTI "open"
|
|
?CND12: PRINTR " a buoy! Where'd you get such a silly idea?"
|
|
?ELS11: CALL TOUCHING?,PSEUDO-OBJECT
|
|
ZERO? STACK /FALSE
|
|
CALL CANT-REACH,PSEUDO-OBJECT
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-CANAL,NUM=0,MOVED=0
|
|
IN? BARGE,CANAL /?CND1
|
|
IN? RAFT,CANAL /?CND1
|
|
CALL DEQUEUE,I-CANAL
|
|
RFALSE
|
|
?CND1: IN? BARGE,CANAL \?CND6
|
|
ZERO? BARGE-UNDER-POWER \?THN12
|
|
ZERO? BARGE-WAIT /?ELS11
|
|
?THN12: IN? PROTAGONIST,BARGE \?CND14
|
|
SET 'MOVED,TRUE-VALUE
|
|
?CND14: SET 'BARGE-WAIT,FALSE-VALUE
|
|
ZERO? RAFT-HELD /?CND17
|
|
IN? RAFT,CANAL \?CND17
|
|
IN? PROTAGONIST,BARGE \?CND17
|
|
INC 'RAFT-LOC-NUM
|
|
?CND17: INC 'BARGE-LOC-NUM
|
|
JUMP ?CND6
|
|
?ELS11: SET 'BARGE-WAIT,TRUE-VALUE
|
|
?CND6: IN? RAFT,CANAL \?CND24
|
|
ZERO? RAFT-HELD \?CND24
|
|
ZERO? RAFT-WAIT /?ELS31
|
|
IN? PROTAGONIST,RAFT \?CND33
|
|
SET 'MOVED,TRUE-VALUE
|
|
?CND33: SET 'RAFT-WAIT,FALSE-VALUE
|
|
INC 'RAFT-LOC-NUM
|
|
JUMP ?CND24
|
|
?ELS31: SET 'RAFT-WAIT,TRUE-VALUE
|
|
?CND24: CALL CANAL-LOC >NUM
|
|
EQUAL? NUM,31 \?CND38
|
|
CALL QUEUED?,I-ION-DEATH
|
|
ZERO? STACK \?CND38
|
|
LOC PROTAGONIST
|
|
IN? SIDEKICK,STACK \?CND43
|
|
SET 'SIDEKICK-IONIZED,TRUE-VALUE
|
|
?CND43: CALL QUEUE,I-ION-DEATH,6
|
|
?CND38: LESS? NUM,17 \?ELS48
|
|
PUTP POWER-TRANSMITTER,P?SDESC,STR?248
|
|
JUMP ?CND46
|
|
?ELS48: GRTR? NUM,30 \?ELS50
|
|
PUTP POWER-TRANSMITTER,P?SDESC,STR?249
|
|
JUMP ?CND46
|
|
?ELS50: PUTP POWER-TRANSMITTER,P?SDESC,STR?250
|
|
?CND46: EQUAL? HERE,CANAL /?ELS55
|
|
GRTR? BARGE-LOC-NUM,36 \?CND56
|
|
MOVE BARGE,ICY-DOCK
|
|
ZERO? RAFT-HELD /?CND56
|
|
MOVE RAFT,ICY-DOCK
|
|
?CND56: GRTR? RAFT-LOC-NUM,36 \?CND63
|
|
MOVE RAFT,ICY-DOCK
|
|
?CND63: CALL BARGE-DOCKS
|
|
RFALSE
|
|
?ELS55: ZERO? MOVED /FALSE
|
|
?CND53: PRINTI " The "
|
|
LOC PROTAGONIST
|
|
CALL DPRINT,STACK
|
|
PRINTI " "
|
|
EQUAL? NUM,10 \?ELS70
|
|
ZERO? BARGE-UNDER-POWER /?ELS73
|
|
IN? PROTAGONIST,BARGE \?ELS73
|
|
SET 'NEARER-DOCK,MY-KIND-OF-DOCK
|
|
PRINTI "chugs quickly"
|
|
JUMP ?CND71
|
|
?ELS73: SET 'NEARER-DOCK,ABANDONED-DOCK
|
|
PRINTI "drifts slowly"
|
|
?CND71: PRINTI " around the bend, ending up near the "
|
|
ZERO? BARGE-UNDER-POWER /?ELS80
|
|
IN? PROTAGONIST,BARGE \?ELS80
|
|
PRINTI "ea"
|
|
JUMP ?CND78
|
|
?ELS80: PRINTI "we"
|
|
?CND78: PRINTI "stern bank of"
|
|
JUMP ?CND68
|
|
?ELS70: ZERO? BARGE-UNDER-POWER /?ELS89
|
|
IN? PROTAGONIST,BARGE \?ELS89
|
|
PRINTI "barges"
|
|
JUMP ?CND87
|
|
?ELS89: PRINTI "drifts"
|
|
?CND87: PRINTI " further down"
|
|
?CND68: PRINTI " the canal."
|
|
EQUAL? NUM,36 \?CND94
|
|
PRINTI " A wide dock spans the canal to the south. The "
|
|
LOC PROTAGONIST
|
|
CALL DPRINT,STACK
|
|
PRINTI " butts up against it"
|
|
PRINT PINNED
|
|
CRLF
|
|
IN? PROTAGONIST,RAFT \?ELS99
|
|
IN? BARGE,CANAL \?ELS99
|
|
EQUAL? BARGE-LOC-NUM,36 \?ELS99
|
|
MOVE BARGE,ICY-DOCK
|
|
JUMP ?CND97
|
|
?ELS99: IN? PROTAGONIST,BARGE \?CND97
|
|
IN? RAFT,CANAL \?CND97
|
|
EQUAL? RAFT-LOC-NUM,36 \?CND97
|
|
MOVE BARGE,ICY-DOCK
|
|
?CND97: LOC PROTAGONIST
|
|
MOVE STACK,ICY-DOCK
|
|
LOC PROTAGONIST
|
|
CALL GOTO,STACK
|
|
RTRUE
|
|
?CND94: EQUAL? HAND-COVER,EYES /?THN109
|
|
FSET? EYES,MUNGBIT \?ELS108
|
|
?THN109: PRINTI " "
|
|
PRINT YOU-CANT
|
|
PRINTI "see a thing, of course."
|
|
CRLF
|
|
JUMP ?CND106
|
|
?ELS108: CRLF
|
|
CRLF
|
|
CALL DESCRIBE-ROOM
|
|
?CND106: EQUAL? BARGE-LOC-NUM,RAFT-LOC-NUM \?CND113
|
|
IN? RAFT,CANAL \?CND113
|
|
IN? BARGE,CANAL \?CND113
|
|
IN? PROTAGONIST,RAFT \?ELS120
|
|
CALL BARGE-F,M-OBJDESC
|
|
CRLF
|
|
JUMP ?CND113
|
|
?ELS120: CALL RAFT-F,M-OBJDESC
|
|
CRLF
|
|
?CND113: CALL BARGE-DOCKS,TRUE-VALUE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT POWER-TRANSMITTER-F,NUM=0
|
|
CALL CANAL-LOC >NUM
|
|
GRTR? NUM,31 /?THN6
|
|
LESS? NUM,13 \?ELS5
|
|
?THN6: CALL CANT-SEE,POWER-TRANSMITTER
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
|
|
CALL DESCRIBE-POWER-TRANSMITTER,NUM
|
|
CRLF
|
|
RTRUE
|
|
?ELS9: CALL TOUCHING?,POWER-TRANSMITTER
|
|
ZERO? STACK /FALSE
|
|
CALL CANT-REACH,POWER-TRANSMITTER
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DESCRIBE-POWER-TRANSMITTER,NUM
|
|
EQUAL? NUM,31 \?ELS5
|
|
PRINTI "The "
|
|
LOC PROTAGONIST
|
|
CALL DPRINT,STACK
|
|
PRINTI " is now passing the metal structure that has been looming closer for the last hour. Its size and power are overwhelming; a relic of Martian technology at its height. Vacuum tubes the size of telephone booths produce power that was once beamed all over Mars. But now, in the twilight of the planet's civilization, the machine's base has rusted away. The massive tower now shoots its ion power beam uselessly across the canal, into the sand of the opposite bank."
|
|
RTRUE
|
|
?ELS5: LESS? NUM,17 \?ELS7
|
|
PRINTI "You spy a metallic glint, far ahead."
|
|
RTRUE
|
|
?ELS7: GRTR? NUM,27 \?ELS9
|
|
PRINTI "A massive machine, unlike anything you've ever seen, rises from the shore, looming closer with each passing minute."
|
|
RTRUE
|
|
?ELS9: PRINTI "A metal structure, glinting in the weak Martian sunlight, is visible at the edge of the canal"
|
|
LESS? NUM,21 \?ELS16
|
|
PRINTI ", but far, far ahead."
|
|
RTRUE
|
|
?ELS16: LESS? NUM,24 \?ELS18
|
|
PRINTI " far ahead of you."
|
|
RTRUE
|
|
?ELS18: PRINTI ", a bit too far to make out any details."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-ION-DEATH
|
|
INC 'ION-DEATH-COUNTER
|
|
PRINTI " "
|
|
GRTR? ION-DEATH-COUNTER,4 \?ELS5
|
|
CALL JIGS-UP,STR?255
|
|
RSTACK
|
|
?ELS5: FSET? POWER-TRANSMITTER,MUNGBIT \?ELS10
|
|
CALL QUEUE,I-ION-DEATH,2
|
|
JUMP ?CND8
|
|
?ELS10: CALL QUEUE,I-ION-DEATH,6
|
|
?CND8: CALL V-DIAGNOSE
|
|
ZERO? SIDEKICK-IONIZED /TRUE
|
|
CALL VISIBLE?,SIDEKICK
|
|
ZERO? STACK /TRUE
|
|
EQUAL? ION-DEATH-COUNTER,3 \TRUE
|
|
PRINTI " "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTR " says, ""My head is pounding! I wish we had some aspirin."""
|
|
|
|
|
|
.FUNCT BARGE-DOCKS,CALLED-BY-INT=0,DOCK-ROOM,DOCK-DIR
|
|
ZERO? MOORING-ON /FALSE
|
|
IN? BARGE,CANAL \FALSE
|
|
EQUAL? BARGE-LOC-NUM,7,10,15 /?THN8
|
|
EQUAL? BARGE-LOC-NUM,1,6 \FALSE
|
|
?THN8: ZERO? CALLED-BY-INT /?CND10
|
|
PRINTI " "
|
|
?CND10: CALL SET-DOCK-ROOM,BARGE-LOC-NUM >DOCK-ROOM
|
|
CALL SET-DOCK-DIR,BARGE-LOC-NUM >DOCK-DIR
|
|
IN? BARGE,HERE \?CND14
|
|
PRINTI " The barge drifts toward the dock on the "
|
|
PRINT DOCK-DIR
|
|
PRINTI "ern shore, butting against it with a loud ""clank."""
|
|
IN? PROTAGONIST,BARGE \?CND17
|
|
CRLF
|
|
?CND17: CRLF
|
|
?CND14: MOVE BARGE,DOCK-ROOM
|
|
IN? PROTAGONIST,BARGE \?CND20
|
|
ZERO? RAFT-HELD /?CND23
|
|
MOVE RAFT,DOCK-ROOM
|
|
?CND23: CALL GOTO,BARGE
|
|
?CND20: SET 'BARGE-WAIT,FALSE-VALUE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SET-DOCK-ROOM,NUM
|
|
EQUAL? NUM,-1 \?ELS5
|
|
RETURN HICKORY-AND-DICKORY-DOCK
|
|
?ELS5: EQUAL? NUM,1 \?ELS7
|
|
RETURN ROYAL-DOCKS
|
|
?ELS7: EQUAL? NUM,6 \?ELS9
|
|
RETURN BABY-DOCK
|
|
?ELS9: EQUAL? NUM,7 \?ELS11
|
|
RETURN DONALD-DOCK
|
|
?ELS11: EQUAL? NUM,15 \?ELS13
|
|
RETURN WATTZ-UPP-DOCK
|
|
?ELS13: EQUAL? NEARER-DOCK,MY-KIND-OF-DOCK \?ELS15
|
|
RETURN MY-KIND-OF-DOCK
|
|
?ELS15: RETURN ABANDONED-DOCK
|
|
|
|
|
|
.FUNCT SET-DOCK-DIR,NUM
|
|
EQUAL? NUM,-1,1,7 \?ELS5
|
|
RETURN STR?256
|
|
?ELS5: EQUAL? NUM,6 \?ELS7
|
|
RETURN STR?257
|
|
?ELS7: EQUAL? NUM,15 \?ELS9
|
|
RETURN STR?258
|
|
?ELS9: EQUAL? NEARER-DOCK,MY-KIND-OF-DOCK \?ELS11
|
|
RETURN STR?239
|
|
?ELS11: RETURN STR?258
|
|
|
|
|
|
.FUNCT AMONG-THE-DUNES-F,RARG
|
|
EQUAL? RARG,M-ENTER \FALSE
|
|
FSET? AMONG-THE-DUNES,TOUCHBIT /FALSE
|
|
?PRG8: RANDOM 8270
|
|
ADD 100,STACK >WIFE-NUMBER
|
|
MOD WIFE-NUMBER,10
|
|
ZERO? STACK /?PRG8
|
|
CALL PALINDROME-NUMBER?,WIFE-NUMBER
|
|
ZERO? STACK \?PRG8
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PALINDROME-NUMBER?,NUM,?TMP1
|
|
GRTR? NUM,999 \?ELS5
|
|
DIV NUM,1000 >?TMP1
|
|
MOD NUM,10
|
|
EQUAL? ?TMP1,STACK \FALSE
|
|
RTRUE
|
|
?ELS5: DIV NUM,100 >?TMP1
|
|
MOD NUM,10
|
|
EQUAL? ?TMP1,STACK \FALSE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT LIP-BALM-F
|
|
FSET? LIP-BALM,UNTEEDBIT /FALSE
|
|
EQUAL? PRSA,V?PUT-ON \?ELS11
|
|
EQUAL? PRSI,MOUTH /?THN8
|
|
?ELS11: EQUAL? PRSA,V?WEAR \?ELS7
|
|
?THN8: FSET? LIP-BALM,WORNBIT \?ELS16
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?ELS16: MOVE LIP-BALM,PROTAGONIST
|
|
FSET LIP-BALM,WORNBIT
|
|
FSET MOUTH,MUNGBIT
|
|
PRINTR "You coat your lips with the glistening balm, using up the whole stick."
|
|
?ELS7: EQUAL? PRSA,V?EXAMINE \?ELS20
|
|
FSET? LIP-BALM,WORNBIT \?ELS20
|
|
CALL PERFORM-PRSA,MOUTH
|
|
RTRUE
|
|
?ELS20: EQUAL? PRSA,V?CLEAN,V?REMOVE \FALSE
|
|
FSET? LIP-BALM,WORNBIT \FALSE
|
|
MOVE LIP-BALM,LOCAL-GLOBALS
|
|
FCLEAR MOUTH,MUNGBIT
|
|
PRINTR "You wipe away the lip balm."
|
|
|
|
|
|
.FUNCT CODED-MESSAGE-F
|
|
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
|
PRINTI "VSDFHHQN UXRB VVLN RW "
|
|
ZERO? MALE /?ELS8
|
|
PRINTI "UH"
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "PL"
|
|
?CND6: PRINTI "K JQLNVD BE "
|
|
ZERO? MALE /?ELS14
|
|
PRINTI "UH"
|
|
JUMP ?CND12
|
|
?ELS14: PRINTI "PL"
|
|
?CND12: PRINTI "K RW IOHVUXRB BILWQHGL -- SDP WHUFHV HKW WHJ GQD "
|
|
ZERO? MALE \?CND18
|
|
PRINTI "VVH"
|
|
?CND18: PRINTI "QDWOXV HKW IR "
|
|
CALL REVERSE-NUMBER,WIFE-NUMBER
|
|
PRINTI " UHEPXQ "
|
|
ZERO? MALE /?ELS23
|
|
PRINTI "HILZ"
|
|
JUMP ?CND21
|
|
?ELS23: PRINTI "GQDEVXK"
|
|
?CND21: PRINTR " WFDWQRF RW VL QRLVVLP UXRB"
|
|
|
|
|
|
.FUNCT REVERSE-NUMBER,NUM
|
|
?PRG1: MOD NUM,10
|
|
PRINTN STACK
|
|
DIV NUM,10 >NUM
|
|
ZERO? NUM \?PRG1
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MESSENGER-F
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTR "It's dead. Very dead."
|
|
?ELS5: EQUAL? PRSA,V?KISS,V?FUCK \?ELS7
|
|
PRINTR "Is there even a word for this sort of perverse behavior? Necro-xeno-philia? Xeno-necro-philia? Grosso-sicko-philia?"
|
|
?ELS7: EQUAL? PRSA,V?PUT-ON \?ELS9
|
|
EQUAL? PRSO,LIP-BALM \?ELS9
|
|
PRINTR "Too late."
|
|
?ELS9: EQUAL? PRSA,V?SEARCH \?ELS13
|
|
PRINT NOTHING-NEW
|
|
RTRUE
|
|
?ELS13: EQUAL? PRSA,V?ALARM \FALSE
|
|
PRINTR "This guy's not resting, he's deceased!"
|
|
|
|
|
|
.FUNCT DUNETOP-F,RARG
|
|
EQUAL? RARG,M-ENTER \FALSE
|
|
ZERO? TITS-COUNTER \FALSE
|
|
CALL QUEUE,I-TITS,-1
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-TITS
|
|
INC 'TITS-COUNTER
|
|
EQUAL? NAUGHTY-LEVEL,2 /?ELS5
|
|
CALL DEQUEUE,I-TITS
|
|
RFALSE
|
|
?ELS5: EQUAL? TITS-COUNTER,4 \?ELS7
|
|
PRINTR " [A warning for any Jerry Falwell groupies who are miraculously still playing: we'll be using the word ""tits"" in five turns or so. Please consult the manual for the proper way to stop playing.]"
|
|
?ELS7: EQUAL? TITS-COUNTER,7 \?ELS9
|
|
PRINTR " [Only a few turns until the ""tits"" reference! Use QUIT now if you might be offended!]"
|
|
?ELS9: EQUAL? TITS-COUNTER,9 \?ELS11
|
|
PRINTR " [Last warning! The word ""tits"" will appear in the very next turn! This is your absolutely last chance to avoid seeing ""tits"" used!!!]"
|
|
?ELS11: EQUAL? TITS-COUNTER,10 \FALSE
|
|
CALL DEQUEUE,I-TITS
|
|
PRINTI " A hyperdimensional traveller suddenly appears out of thin air. ""My sister has tremendous breasts,"" says the traveller and, without further explanation, vanishes"
|
|
FSET? NOSE,MUNGBIT /?CND14
|
|
PRINTI ", leaving only a vague trace of interdimensional ozone"
|
|
?CND14: PRINTR ".
|
|
[Oh, regarding the use of ""tits,"" we changed our mind at the last minute. Everyone agreed it was too risque.]"
|
|
|
|
|
|
.FUNCT OUTSIDE-SHOP-F
|
|
EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5
|
|
CALL DO-WALK,P?SOUTH
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \FALSE
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
|
|
|
|
.FUNCT INSIDE-SHOP-F
|
|
EQUAL? PRSA,V?EXIT,V?LEAVE,V?DISEMBARK \?ELS5
|
|
CALL DO-WALK,P?NORTH
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?ENTER,V?WALK-TO,V?BOARD \?ELS7
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS7: EQUAL? PRSA,V?SEARCH \?ELS9
|
|
CALL PERFORM-PRSA,DUST
|
|
RTRUE
|
|
?ELS9: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
CALL V-LOOK
|
|
RSTACK
|
|
|
|
|
|
.FUNCT EXIT-SHOP-F,RARG
|
|
EQUAL? RARG,M-END \FALSE
|
|
FSET? PROPRIETOR,TOUCHBIT /FALSE
|
|
FSET PROPRIETOR,TOUCHBIT
|
|
PRINTI " "
|
|
PRINT PROPRIETOR-STIRS
|
|
PRINTR "Don't get many customers these days, since they abandoned the dock. In fact, you're only the third in the last hundred and fifty centuries."" He slips back into a drowse."
|
|
|
|
|
|
.FUNCT PROPRIETOR-F
|
|
EQUAL? PROPRIETOR,WINNER \?ELS5
|
|
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 """A bunch of deadbeats! Never pay their bills -- I've had to repossess God knows how many exits!"""
|
|
?ELS10: SET 'WINNER,PROTAGONIST
|
|
CALL PERFORM,V?ALARM,PROPRIETOR
|
|
CALL STOP
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?ALARM \?ELS20
|
|
PRINT PROPRIETOR-STIRS
|
|
PRINTI "E"
|
|
PRINT BOUGHT-AND-SOLD
|
|
PRINTI ","" he mumbles, ""e"
|
|
PRINT BOUGHT-AND-SOLD
|
|
PRINTR "."" A moment later, he nods off."
|
|
?ELS20: EQUAL? PRSA,V?BARTER-WITH /?THN23
|
|
EQUAL? PRSA,V?ASK-FOR \?ELS22
|
|
EQUAL? PRSI,EXIT-OBJECT \?ELS22
|
|
?THN23: CALL PERFORM,V?BUY,EXIT-OBJECT
|
|
RTRUE
|
|
?ELS22: EQUAL? PRSA,V?SHOW,V?GIVE \?ELS28
|
|
EQUAL? PRSO,TEN-MARSMID-COIN \?ELS28
|
|
PRINTR """Humph? Eh, oh, sorry, no change for a ten. And the Mall Merchants Association would have my license if I accepted an overpayment. Try again in a year ... or two ... grunt snore."""
|
|
?ELS28: EQUAL? PRSA,V?SHOW,V?GIVE \?ELS32
|
|
EQUAL? PRSO,ONE-MARSMID-COIN \?ELS32
|
|
REMOVE ONE-MARSMID-COIN
|
|
MOVE TUBE,DUST
|
|
CALL INCREMENT-SCORE,5,12
|
|
PRINTR "The proprietor slowly focuses one eye on the coin. ""Not much in stock these days,"" he explains. ""My supplier went bankrupt ninety thousand years ago."" He takes the coin and starts to hand you a cardboard tube, but his eye drifts out of focus again, and he drops it wearily into the dust."
|
|
?ELS32: EQUAL? PRSA,V?SHOW,V?GIVE \FALSE
|
|
EQUAL? PRSO,FLEXIBLE-HOLE \FALSE
|
|
PRINT PROPRIETOR-STIRS
|
|
PRINTR "Don't think I could sell such an out-of-date model. No one wants exits anymore, anyway. Don't know why I bother ... to stay in business ... zzzz."""
|
|
|
|
|
|
.FUNCT EXIT-OBJECT-F
|
|
EQUAL? PRSA,V?BUY \?ELS5
|
|
EQUAL? HERE,EXIT-SHOP \?ELS10
|
|
PRINTR """One marsmid, please, grunt snore zzz."""
|
|
?ELS10: FSET? EXIT-SHOP,TOUCHBIT \?ELS12
|
|
PRINTI "This isn't an "
|
|
PRINTD EXIT-SHOP
|
|
PRINTR "!"
|
|
?ELS12: PRINTR "Buy an exit?!?!"
|
|
?ELS5: EQUAL? PRSA,V?BUY-WITH \?ELS16
|
|
EQUAL? PRSI,TEN-MARSMID-COIN,ONE-MARSMID-COIN \?ELS16
|
|
CALL PERFORM,V?GIVE,PRSI,PROPRIETOR
|
|
RTRUE
|
|
?ELS16: EQUAL? PRSA,V?TAKE \FALSE
|
|
IN? TUBE,DUST \FALSE
|
|
EQUAL? HERE,EXIT-SHOP \FALSE
|
|
PRINTR "It's lost in the dust."
|
|
|
|
|
|
.FUNCT DUST-F,X=0
|
|
EQUAL? PRSA,V?DIG,V?REACH-IN,V?SEARCH /?THN6
|
|
EQUAL? PRSA,V?RAKE,V?LOOK-INSIDE \?ELS5
|
|
?THN6: FIRST? DUST >X \?ELS12
|
|
MOVE X,PROTAGONIST
|
|
CALL THIS-IS-IT,X
|
|
PRINTI "You grasp"
|
|
CALL APRINT,X
|
|
PRINTR "!"
|
|
?ELS12: PRINTR "You sift through the dust but find nothing."
|
|
?ELS5: EQUAL? PRSA,V?BOARD,V?ENTER \?ELS16
|
|
PRINTR "You're already up to your neck in dust."
|
|
?ELS16: EQUAL? PRSA,V?PUT \?ELS18
|
|
EQUAL? PRSI,DUST \?ELS18
|
|
CALL PERFORM,V?DROP,PRSO
|
|
RTRUE
|
|
?ELS18: EQUAL? PRSA,V?BLOW,V?MOVE,V?CLEAN \FALSE
|
|
PRINTR "You'd need a plow to move this dust."
|
|
|
|
|
|
.FUNCT FLEXIBLE-HOLE-F,SIDEKICK-VISIBLE=0
|
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
|
PRINTI "The "
|
|
PRINTD FLEXIBLE-HOLE
|
|
PRINTR " looks just like a portable version of the ""holes"" you've been encountering all over the solar system."
|
|
?ELS5: EQUAL? PRSA,V?MEASURE \?ELS7
|
|
PRINTI "The "
|
|
CALL DPRINT,HOLE
|
|
PRINTR " is two feet across."
|
|
?ELS7: EQUAL? PRSA,V?LOOK-INSIDE,V?TOUCH,V?REACH-IN \?ELS9
|
|
IN? FLEXIBLE-HOLE,TUBE \?ELS9
|
|
CALL MEANT-OTHER-HOLE
|
|
ZERO? STACK \TRUE
|
|
CALL NOT-ON-GROUND,FLEXIBLE-HOLE
|
|
RSTACK
|
|
?ELS9: EQUAL? PRSA,V?TOUCH,V?REACH-IN \?ELS16
|
|
PRINT HAND-DWINDLES
|
|
RTRUE
|
|
?ELS16: EQUAL? PRSA,V?LOOK-INSIDE \?ELS18
|
|
PRINT STARING-INTO-VOID
|
|
RTRUE
|
|
?ELS18: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS20
|
|
EQUAL? PRSI,FLEXIBLE-HOLE \?ELS20
|
|
LOC FLEXIBLE-HOLE
|
|
EQUAL? STACK,HERE,RAFT,BARGE \?ELS27
|
|
MOVE PRSO,BOUDOIR
|
|
CALL NON-DIMENSIONAL-JOURNEY
|
|
RSTACK
|
|
?ELS27: CALL MEANT-OTHER-HOLE
|
|
ZERO? STACK \TRUE
|
|
CALL NOT-ON-GROUND,FLEXIBLE-HOLE
|
|
RSTACK
|
|
?ELS20: EQUAL? PRSA,V?BOARD,V?ENTER,V?STAND-ON \FALSE
|
|
CALL ULTIMATELY-IN?,FLEXIBLE-HOLE
|
|
ZERO? STACK /?ELS38
|
|
CALL MEANT-OTHER-HOLE
|
|
ZERO? STACK \TRUE
|
|
PRINT HOLDING-IT
|
|
RTRUE
|
|
?ELS38: IN? PROTAGONIST,HERE /?ELS43
|
|
LOC PROTAGONIST
|
|
IN? FLEXIBLE-HOLE,STACK /?ELS43
|
|
CALL NOT-GOING-ANYWHERE
|
|
RSTACK
|
|
?ELS43: LOC FLEXIBLE-HOLE
|
|
EQUAL? STACK,HERE,TREE-HOLE /?ELS47
|
|
LOC FLEXIBLE-HOLE
|
|
EQUAL? STACK,RAFT,BARGE /?ELS47
|
|
CALL MEANT-OTHER-HOLE
|
|
ZERO? STACK \TRUE
|
|
CALL NOT-ON-GROUND,FLEXIBLE-HOLE
|
|
RSTACK
|
|
?ELS47: ZERO? SIDEKICK-TRIP-FLAG /?ELS54
|
|
CALL QUEUED?,I-SIDEKICK-OUT-WINDOW
|
|
ZERO? STACK /?ELS54
|
|
CALL DO-WALK,P?DOWN
|
|
RSTACK
|
|
?ELS54: CALL VISIBLE?,SIDEKICK
|
|
ZERO? STACK /?CND59
|
|
SET 'SIDEKICK-VISIBLE,TRUE-VALUE
|
|
?CND59: CALL FALL-THROUGH-HOLE
|
|
CALL GOTO,BOUDOIR
|
|
CALL QUEUED?,I-ION-DEATH
|
|
ZERO? STACK /?CND62
|
|
FSET POWER-TRANSMITTER,MUNGBIT
|
|
CALL QUEUE,I-ION-DEATH,1
|
|
?CND62: ZERO? SIDEKICK-VISIBLE /TRUE
|
|
SET 'HOLE-MOVE,TRUE-VALUE
|
|
CALL SIDEKICK-FOLLOWS-YOU
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MEANT-OTHER-HOLE
|
|
EQUAL? PRSO,FLEXIBLE-HOLE \?ELS9
|
|
GET P-ADJW,0
|
|
EQUAL? STACK,A?FLEXIBLE,A?PORTABLE /FALSE
|
|
?ELS9: EQUAL? PRSI,FLEXIBLE-HOLE \?ELS5
|
|
GET P-ADJW,1
|
|
EQUAL? STACK,A?FLEXIBLE,A?PORTABLE /FALSE
|
|
?ELS5: CALL GLOBAL-IN?,HOLE,HERE
|
|
ZERO? STACK /FALSE
|
|
EQUAL? PRSO,FLEXIBLE-HOLE \?ELS15
|
|
CALL PERFORM-PRSA,HOLE,PRSI
|
|
RTRUE
|
|
?ELS15: CALL PERFORM-PRSA,PRSO,HOLE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT LAUNDRY-ROOM-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "One of the less pleasant aspects of running a palace is the sheer volume of dirty laundry its occupants produce. Why, the 8379 "
|
|
ZERO? MALE /?ELS8
|
|
PRINTI "wive"
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "husband"
|
|
?CND6: PRINTI "s alone could keep a crew of cleaners sleepless. Add in the servants, cooks, gardeners, stablehands, jesters, visiting nobles, brothers-in-law in virtual permanent residence... Suffice it to say that there's "
|
|
ZERO? NAUGHTY-LEVEL \?ELS14
|
|
PRINTI "quite"
|
|
JUMP ?CND12
|
|
?ELS14: PRINTI "one hell of"
|
|
?CND12: PRINTI " a lot of dirty laundry here. You can barely see the exit to the north through it all."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CLOTHES-PIN-F
|
|
FSET? CLOTHES-PIN,UNTEEDBIT /FALSE
|
|
EQUAL? PRSA,V?PIN,V?PUT-ON \?ELS7
|
|
EQUAL? PRSO,CLOTHES-PIN \?ELS7
|
|
EQUAL? PRSI,NOSE /?ELS14
|
|
CALL WASTES
|
|
RSTACK
|
|
?ELS14: ZERO? GONE-APE /?ELS16
|
|
PRINT DEXTERITY
|
|
RTRUE
|
|
?ELS16: FSET? CLOTHES-PIN,WORNBIT \?ELS19
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?ELS19: MOVE CLOTHES-PIN,PROTAGONIST
|
|
FSET CLOTHES-PIN,WORNBIT
|
|
FSET NOSE,MUNGBIT
|
|
PRINTR "You pin your proboscis."
|
|
?ELS7: EQUAL? PRSA,V?PUT \?ELS23
|
|
EQUAL? PRSO,NOSE \?ELS23
|
|
CALL PERFORM,V?PUT-ON,CLOTHES-PIN,NOSE
|
|
RTRUE
|
|
?ELS23: EQUAL? PRSA,V?TIE \?ELS27
|
|
EQUAL? P-PRSA-WORD,W?ATTACH \?ELS27
|
|
EQUAL? PRSO,CLOTHES-PIN \?ELS27
|
|
ZERO? PRSI /?ELS27
|
|
CALL PERFORM,V?PUT-ON,CLOTHES-PIN,PRSI
|
|
RTRUE
|
|
?ELS27: EQUAL? PRSA,V?TAKE-WITH \?ELS31
|
|
EQUAL? P-PRSA-WORD,W?HOLD \?ELS31
|
|
EQUAL? PRSO,NOSE \?ELS31
|
|
CALL PERFORM,V?PUT-ON,CLOTHES-PIN,NOSE
|
|
RTRUE
|
|
?ELS31: EQUAL? PRSA,V?TAKE-OFF,V?REMOVE \FALSE
|
|
FSET? CLOTHES-PIN,WORNBIT \FALSE
|
|
ZERO? GONE-APE /?CND38
|
|
CALL PERFORM,V?TAKE,CLOTHES-PIN
|
|
RTRUE
|
|
?CND38: CALL OPEN-EYES-AND-REMOVE-HANDS
|
|
FCLEAR CLOTHES-PIN,WORNBIT
|
|
CALL SENSE-AGAIN,NOSE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT WELL-ENTER-F
|
|
PRINTI "You climb down the well for a long distance. Near the bottom the handholds end, so you"
|
|
CALL AND-SIDEKICK,WELL-BOTTOM
|
|
PRINTI " leap the rest of the way, landing on"
|
|
CALL APRINT,HOLE
|
|
PRINTI ". "
|
|
SET 'HERE,WELL-BOTTOM
|
|
MOVE PROTAGONIST,WELL-BOTTOM
|
|
CALL PERFORM,V?STAND-ON,HOLE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT WELL-F
|
|
EQUAL? PRSA,V?REACH-IN,V?LOOK-INSIDE \?ELS5
|
|
PRINTR "Handholds lead downward!"
|
|
?ELS5: EQUAL? PRSA,V?CLIMB-UP,V?CLIMB,V?CLIMB-DOWN /?THN8
|
|
EQUAL? PRSA,V?ENTER,V?BOARD \?ELS7
|
|
?THN8: EQUAL? HERE,WELL-BOTTOM \?ELS12
|
|
CALL DO-WALK,P?UP
|
|
RTRUE
|
|
?ELS12: CALL WELL-ENTER-F
|
|
RTRUE
|
|
?ELS7: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
|
|
EQUAL? HERE,ORIENTAL-GARDEN \FALSE
|
|
MOVE PRSO,BARGE
|
|
EQUAL? PRSO,TORCH \?CND19
|
|
CALL TORCH-OFF
|
|
?CND19: PRINTR "It drops out of sight."
|
|
|
|
|
|
.FUNCT TOWER-F
|
|
EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER /?THN6
|
|
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \?ELS5
|
|
?THN6: EQUAL? HERE,BASE-OF-TOWER \?ELS12
|
|
CALL DO-WALK,P?UP
|
|
RSTACK
|
|
?ELS12: EQUAL? HERE,MINARET \FALSE
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?EXIT,V?LEAVE,V?DISEMBARK \FALSE
|
|
EQUAL? HERE,BASE-OF-TOWER \?ELS21
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS21: CALL DO-WALK,P?DOWN
|
|
RSTACK
|
|
|
|
|
|
.FUNCT AUDIENCE-CHAMBER-F,RARG
|
|
EQUAL? RARG,M-LOOK \?ELS5
|
|
PRINTI "The good news is that this hall is intoxicatingly beautiful, laid with the snow-white fur of the rare Martian Velvetworm and endowed with platinum arches and balustrades. Silky curtains embrace openings to the south, southwest, and west.
|
|
The bad news is that no "
|
|
ZERO? MALE \?CND6
|
|
PRINTI "wo"
|
|
?CND6: PRINTI "man has ever entered the "
|
|
CALL DPRINT,HERE
|
|
PRINTI " of"
|
|
CALL TPRINT,SULTAN
|
|
PRINTI " and departed alive."
|
|
RTRUE
|
|
?ELS5: EQUAL? RARG,M-END \FALSE
|
|
FSET? SULTAN,TOUCHBIT /FALSE
|
|
FSET SULTAN,TOUCHBIT
|
|
CALL QUEUE,I-SULTAN,-1
|
|
RSTACK
|
|
|
|
|
|
.FUNCT AUDIENCE-CHAMBER-EXIT-F
|
|
ZERO? RIDDLE-ANSWERED \?ELS5
|
|
PRINTI """Rule violation! Rule violation!"" "
|
|
CALL RIDDLE-DEATH
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSO,P?SOUTH \?ELS7
|
|
RETURN ORIENTAL-GARDEN
|
|
?ELS7: EQUAL? PRSO,P?SW \?ELS9
|
|
RETURN MAIN-HALL-OF-PALACE
|
|
?ELS9: GRTR? CHOICE-NUMBER,0 /?THN12
|
|
EQUAL? HAREM-GUARD-COUNTER,5 \?ELS11
|
|
?THN12: RETURN HAREM
|
|
?ELS11: CALL RUNNING?,I-HAREM-GUARD
|
|
ZERO? STACK /?ELS15
|
|
CALL QUEUE,I-HAREM-GUARD,2
|
|
PRINTI """Hey!"" The "
|
|
PRINTD HAREM-GUARD
|
|
PRINTI " pushes you back. ""Pick a number first!"
|
|
CRLF
|
|
RFALSE
|
|
?ELS15: CALL QUEUE,I-HAREM-GUARD,2
|
|
MOVE HAREM-GUARD,AUDIENCE-CHAMBER
|
|
SET 'AWAITING-FAKE-ORPHAN,TRUE-VALUE
|
|
PRINTI "A well-armed "
|
|
ZERO? MALE /?CND18
|
|
PRINTI "fe"
|
|
?CND18: PRINTI "male guard blocks you. ""Congratulations on your performance,"" "
|
|
CALL SHE-HE
|
|
PRINTI " says in a bored voice. You wonder how the guard can be so unmoved by your historic feat. As though sensing your thoughts, the guard says, ""The "
|
|
CALL DPRINT,SULTAN
|
|
PRINTI " likes to pretend that no one's ever gotten the riddle, but someone got it last year, the word spread around, and now everyone knows the answer. You're the twelfth winner this week already. "
|
|
CALL HE-SHE,TRUE-VALUE
|
|
PRINTI " sent away to Maude's House of Riddles on Ganymede for a new one, but the mail is so slow..."" The guard shakes "
|
|
CALL HER-HIS
|
|
PRINTI " head. ""Well, pick a "
|
|
ZERO? MALE /?ELS24
|
|
PRINTI "wife"
|
|
JUMP ?CND22
|
|
?ELS24: PRINTI "husband"
|
|
?CND22: PRINTI "; any number from 1 to 8379. Don't waste time thinking; they're all clones anyway."" "
|
|
CALL SHE-HE,TRUE-VALUE
|
|
PRINTI " looks at you expectantly."
|
|
CRLF
|
|
RFALSE
|
|
|
|
|
|
.FUNCT MATE-F
|
|
EQUAL? PRSA,V?PICK \?ELS5
|
|
IN? HAREM-GUARD,HERE \?ELS5
|
|
CALL I-HAREM-GUARD,TRUE-VALUE
|
|
RSTACK
|
|
?ELS5: CALL PRSO-MOBY-VERB?
|
|
ZERO? STACK \FALSE
|
|
CALL PRSI-MOBY-VERB?
|
|
ZERO? STACK \FALSE
|
|
CALL CANT-SEE,PSEUDO-OBJECT
|
|
RSTACK
|
|
|
|
|
|
.FUNCT HAREM-GUARD-F
|
|
EQUAL? HAREM-GUARD,WINNER \?ELS5
|
|
EQUAL? PRSA,V?ANSWER-KLUDGE \?ELS10
|
|
EQUAL? PRSO,INTNUM \?ELS10
|
|
CALL PICK-WIFE,INTNUM
|
|
RSTACK
|
|
?ELS10: CALL I-HAREM-GUARD,TRUE-VALUE
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?FOLLOW \FALSE
|
|
EQUAL? FOLLOW-FLAG,13,14 \FALSE
|
|
CALL DO-WALK,P?WEST
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-HAREM-GUARD,CALLED-BY-HAREM-GUARD-F=0
|
|
INC 'HAREM-GUARD-COUNTER
|
|
ZERO? CALLED-BY-HAREM-GUARD-F /?ELS3
|
|
CALL QUEUE,I-HAREM-GUARD,2
|
|
JUMP ?CND1
|
|
?ELS3: CALL QUEUE,I-HAREM-GUARD,-1
|
|
?CND1: EQUAL? HERE,AUDIENCE-CHAMBER \?THN10
|
|
GRTR? CHOICE-NUMBER,0 \?CND7
|
|
?THN10: SET 'AWAITING-FAKE-ORPHAN,FALSE-VALUE
|
|
CALL DEQUEUE,I-HAREM-GUARD
|
|
REMOVE HAREM-GUARD
|
|
RFALSE
|
|
?CND7: ZERO? CALLED-BY-HAREM-GUARD-F \?CND12
|
|
PRINTI " "
|
|
?CND12: PRINTI """"
|
|
EQUAL? HAREM-GUARD-COUNTER,5 \?ELS19
|
|
REMOVE HAREM-GUARD
|
|
SET 'FOLLOW-FLAG,14
|
|
CALL QUEUE,I-FOLLOW,2
|
|
CALL DEQUEUE,I-HAREM-GUARD
|
|
SET 'AWAITING-FAKE-ORPHAN,FALSE-VALUE
|
|
PRINTR "I'm not waiting around anymore! You blew it, sucker."" The guard storms angrily away."
|
|
?ELS19: PRINTI "Ahem? A number...?"" says"
|
|
CALL TPRINT,HAREM-GUARD
|
|
EQUAL? HAREM-GUARD-COUNTER,4 \?CND22
|
|
PRINTI " with growing impatience"
|
|
?CND22: PRINT PERIOD-CR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PICK-WIFE,OBJ=0,DUPE
|
|
EQUAL? OBJ,INTNUM /?THN4
|
|
CALL NUMBER?,P-CONT
|
|
EQUAL? STACK,W?NUMBER \?ELS3
|
|
?THN4: LESS? P-NUMBER,1 \?ELS8
|
|
PRINT GIMME-TROUBLE
|
|
JUMP ?CND1
|
|
?ELS8: GRTR? P-NUMBER,8379 \?ELS10
|
|
PRINTI """There're only 8379 of 'em."""
|
|
CRLF
|
|
JUMP ?CND1
|
|
?ELS10: CALL ZMEMQ,P-NUMBER,WRONG-ANSWERS,7 >DUPE
|
|
ZERO? DUPE /?ELS12
|
|
PRINTI """You already asked for that one, dodo-brain!"""
|
|
CRLF
|
|
JUMP ?CND1
|
|
?ELS12: EQUAL? P-NUMBER,WIFE-NUMBER /?THN15
|
|
RANDOM 100
|
|
LESS? HAREM-PROB,STACK /?ELS14
|
|
?THN15: SET 'CHOICE-NUMBER,P-NUMBER
|
|
SET 'AWAITING-FAKE-ORPHAN,FALSE-VALUE
|
|
SET 'FOLLOW-FLAG,13
|
|
CALL QUEUE,I-FOLLOW,2
|
|
REMOVE HAREM-GUARD
|
|
CALL QUEUE,I-HAREM,5
|
|
PRINTI "The guard, walking off, says, ""I'll summon that one. You may enter."""
|
|
CRLF
|
|
JUMP ?CND1
|
|
?ELS14: DIV HAREM-PROB,15
|
|
PUT WRONG-ANSWERS,STACK,P-NUMBER
|
|
ADD HAREM-PROB,15 >HAREM-PROB
|
|
PRINTI "The guard consults a list. """
|
|
RANDOM 100
|
|
LESS? 25,STACK /?ELS21
|
|
PRINTI "Traded to the Du"
|
|
ZERO? MALE /?ELS24
|
|
PRINTI "ke"
|
|
JUMP ?CND22
|
|
?ELS24: PRINTI "chess"
|
|
?CND22: PRINTI " of Deimos for two eunuchs and a jester to be named later"
|
|
JUMP ?CND19
|
|
?ELS21: CALL PICK-ONE,EXCUSES
|
|
PRINT STACK
|
|
?CND19: PRINTI ". Pick another number."""
|
|
CRLF
|
|
JUMP ?CND1
|
|
?ELS3: PRINTI "[Please give your selection in numerical form.]"
|
|
CRLF
|
|
?CND1: CALL QUEUE,I-HAREM-GUARD,2
|
|
CALL STOP
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SULTAN-F,OARG=0
|
|
ZERO? OARG /?ELS5
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " The "
|
|
CALL DPRINT,SULTAN
|
|
PRINTI " is here,"
|
|
ZERO? RIDDLE-ANSWERED /?ELS14
|
|
CALL ARGUING-WITH-LEGAL-ADVISOR
|
|
RSTACK
|
|
?ELS14: PRINTI " enthroned."
|
|
RTRUE
|
|
?ELS5: EQUAL? SULTAN,WINNER \?ELS19
|
|
EQUAL? PRSA,V?TELL-ABOUT \?ELS24
|
|
EQUAL? PRSO,ME \?ELS24
|
|
EQUAL? PRSI,LGOP \?ELS24
|
|
PRINTR """They were exiled from Leather Island in the Caribbean, after cheating in the Miss Leather Island beauty pageant; the silicone injectionist spilled the beans. Now they rule all of Phobos. Hmmph! They call that hunk of rock a Sultanate? Those bimbos never told a decent riddle in their lives!"""
|
|
?ELS24: EQUAL? PRSA,V?WHERE,V?WHAT \?ELS28
|
|
PRINTR """I ask the riddles around here!"""
|
|
?ELS28: EQUAL? PRSA,V?YES \?ELS30
|
|
EQUAL? AWAITING-REPLY,1 \?ELS30
|
|
CALL V-YES
|
|
RSTACK
|
|
?ELS30: EQUAL? PRSA,V?NO \?ELS34
|
|
EQUAL? AWAITING-REPLY,1 \?ELS34
|
|
CALL V-NO
|
|
RSTACK
|
|
?ELS34: EQUAL? PRSA,V?USE-QUOTES,V?ANSWER-KLUDGE \?ELS38
|
|
ZERO? AWAITING-FAKE-ORPHAN /?ELS38
|
|
ZERO? RIDDLE-ANSWERED \?ELS38
|
|
EQUAL? PRSO,RIDDLE /?CND41
|
|
CALL RIDDLE-ANSWER
|
|
RTRUE
|
|
?CND41: SET 'RIDDLE-ANSWERED,TRUE-VALUE
|
|
CALL DEQUEUE,I-SNEEZE
|
|
CALL INCREMENT-SCORE,8,11
|
|
PRINTI "The "
|
|
CALL DPRINT,SULTAN
|
|
PRINTI " looks crestfallen. ""Yes, that's right."" The "
|
|
CALL DPRINT,SULTAN
|
|
PRINTI " is struck by a thought. ""Can we kill "
|
|
CALL HIM-HER
|
|
PRINTI " anyway?"" "
|
|
CALL HE-SHE,TRUE-VALUE
|
|
PRINTI " begins"
|
|
CALL ARGUING-WITH-LEGAL-ADVISOR
|
|
PRINTR " This might be a good time to make a beeline for the harem to the west."
|
|
?ELS38: PRINTI "The "
|
|
CALL DPRINT,SULTAN
|
|
PRINTI " ignores you."
|
|
CRLF
|
|
CALL STOP
|
|
RSTACK
|
|
?ELS19: ZERO? RIDDLE-ANSWERED \?ELS47
|
|
CALL TOUCHING?,SULTAN
|
|
ZERO? STACK \?THN50
|
|
EQUAL? PRSA,V?THROW \?ELS47
|
|
EQUAL? PRSI,SULTAN \?ELS47
|
|
?THN50: CALL DO-WALK,P?WEST
|
|
RSTACK
|
|
?ELS47: EQUAL? PRSA,V?SHOW,V?GIVE \?ELS55
|
|
EQUAL? PRSO,CODED-MESSAGE \?ELS55
|
|
PRINTI """A spy! A spy!"" "
|
|
CALL RIDDLE-DEATH
|
|
RSTACK
|
|
?ELS55: EQUAL? PRSA,V?LISTEN \FALSE
|
|
ZERO? RIDDLE-ANSWERED /FALSE
|
|
PRINTI "The "
|
|
CALL DPRINT,SULTAN
|
|
PRINTI " is"
|
|
CALL ARGUING-WITH-LEGAL-ADVISOR
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ARGUING-WITH-LEGAL-ADVISOR
|
|
PRINTI " arguing loudly with one of "
|
|
CALL HIS-HER
|
|
PRINTI " legal advisors."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-SULTAN
|
|
INC 'SULTAN-COUNTER
|
|
PRINTI " "
|
|
GRTR? SULTAN-COUNTER,1 \?ELS3
|
|
EQUAL? SULTAN-COUNTER,4 \?ELS6
|
|
PRINTI """Have this bore devoured."" "
|
|
CALL RIDDLE-DEATH
|
|
JUMP ?CND1
|
|
?ELS6: PRINTI """I grow impatient. "
|
|
JUMP ?CND1
|
|
?ELS3: SET 'AWAITING-REPLY,1
|
|
PRINTI """Ah,"" says"
|
|
CALL TPRINT,SULTAN
|
|
PRINTI ", ""a visitor. This is pleasing; it was turning out to be a very dull morning."" "
|
|
CALL HE-SHE,TRUE-VALUE
|
|
PRINTI " clears "
|
|
CALL HIS-HER
|
|
PRINTI " throat. ""The rules: I will pose a riddle. If you answer it correctly, you may spend one hour with any of my "
|
|
ZERO? MALE /?ELS13
|
|
PRINTI "wive"
|
|
JUMP ?CND11
|
|
?ELS13: PRINTI "husband"
|
|
?CND11: PRINTI "s."
|
|
CALL YOU-WILL-DIE,STR?285
|
|
CALL YOU-WILL-DIE,STR?286
|
|
CALL YOU-WILL-DIE,STR?287
|
|
CALL YOU-WILL-DIE,STR?288
|
|
CALL YOU-WILL-DIE,STR?289
|
|
CALL YOU-WILL-DIE,STR?290
|
|
CALL YOU-WILL-DIE,STR?291
|
|
PRINTI """ "
|
|
CALL HE-SHE,TRUE-VALUE
|
|
SET 'AWAITING-REPLY,1
|
|
PRINTI " motions to one of the palace eunuchs. ""Go tell the animal tenders not to feed the tigers yet."" Pause. """
|
|
?CND1: PRINTR "Are you ready?"""
|
|
|
|
|
|
.FUNCT YOU-WILL-DIE,STRING
|
|
PRINTI " If "
|
|
PRINT STRING
|
|
PRINTI ", you will die."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT RIDDLE-DEATH
|
|
CALL JIGS-UP,STR?292
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-SNEEZE
|
|
CALL QUEUE,I-SNEEZE,-1
|
|
INC 'SULTAN-COUNTER
|
|
PRINTI " The "
|
|
CALL DPRINT,SULTAN
|
|
EQUAL? SULTAN-COUNTER,4 \?ELS5
|
|
PRINTI " convulses. ""Achoooooo!!!!"" "
|
|
CALL RIDDLE-DEATH
|
|
RSTACK
|
|
?ELS5: EQUAL? SULTAN-COUNTER,3 \?ELS7
|
|
PRINTR " is squinting and drawing in quick gasps of air!"
|
|
?ELS7: EQUAL? SULTAN-COUNTER,2 \?ELS9
|
|
PRINTI " is rubbing "
|
|
CALL HIS-HER
|
|
PRINTI " nose with the back of "
|
|
CALL HIS-HER
|
|
PRINTR " hand."
|
|
?ELS9: PRINTI " is twitching "
|
|
CALL HIS-HER
|
|
PRINTR " nose."
|
|
|
|
|
|
.FUNCT RIDDLE-ANSWER
|
|
ZERO? P-CONT \?ELS5
|
|
ZERO? PRSO \?ELS5
|
|
SET 'PRSO,SULTAN
|
|
CALL V-TELL
|
|
RETURN STR?293
|
|
?ELS5: ZERO? P-CONT /?ELS9
|
|
GET P-LEXV,P-CONT
|
|
EQUAL? STACK,W?RIDDLE /?THN12
|
|
ADD P-CONT,2
|
|
GET P-LEXV,STACK
|
|
EQUAL? STACK,W?RIDDLE \?ELS9
|
|
?THN12: SET 'WINNER,SULTAN
|
|
CALL PERFORM,V?ANSWER-KLUDGE,RIDDLE
|
|
SET 'WINNER,PROTAGONIST
|
|
CALL STOP
|
|
RSTACK
|
|
?ELS9: ZERO? P-CONT /?ELS19
|
|
GET P-LEXV,P-CONT
|
|
EQUAL? STACK,W?SEX,W?LOVE /?THN16
|
|
?ELS19: EQUAL? PRSO,LOVE \?ELS15
|
|
?THN16: PRINTI """Good guess! It's wrong, though."" "
|
|
CALL RIDDLE-DEATH
|
|
RSTACK
|
|
?ELS15: PRINTI """Wrongo!"" "
|
|
CALL RIDDLE-DEATH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT HAREM-F,RARG
|
|
EQUAL? RARG,M-LOOK \?ELS5
|
|
PRINTI "This is a sensuous location of silks and satins and furs. A draped exit leads east."
|
|
FSET? NOSE,MUNGBIT /TRUE
|
|
PRINTI " A pleasant odor"
|
|
FSET? HERE,SMELLEDBIT \?CND9
|
|
PRINTI " of "
|
|
GETP HERE,P?ODOR
|
|
PRINT STACK
|
|
?CND9: PRINTI " tickles mischievously at "
|
|
PRINTD NOSE
|
|
PRINTI "."
|
|
RTRUE
|
|
?ELS5: EQUAL? RARG,M-END \?ELS13
|
|
IN? SIDEKICK,HERE \?ELS13
|
|
CALL QUEUED?,I-HAREM
|
|
ZERO? STACK /?ELS13
|
|
PRINTI " A "
|
|
PRINTD HAREM-GUARD
|
|
PRINTI " grabs "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTI ". ""You didn't answer the riddle!"" "
|
|
CALL TIGER-EATS-SIDEKICK
|
|
RSTACK
|
|
?ELS13: EQUAL? RARG,M-SMELL \FALSE
|
|
PRINT IT-SEEMS-THAT
|
|
CALL TPRINT,SULTAN
|
|
PRINTI " likes h"
|
|
ZERO? MALE /?ELS20
|
|
PRINTI "is wives"
|
|
JUMP ?CND18
|
|
?ELS20: PRINTI "er husbands"
|
|
?CND18: PRINTI " to wear fine "
|
|
GETP HERE,P?ODOR
|
|
PRINT STACK
|
|
PRINTI "."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT TIGER-EATS-SIDEKICK
|
|
REMOVE SIDEKICK
|
|
SET 'FOLLOW-FLAG,2
|
|
CALL QUEUE,I-FOLLOW,2
|
|
SET 'SIDEKICK-EATEN,TRUE-VALUE
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTI " is led away. As you hear, from nearby, a fierce roar followed by a blood-curdling scream"
|
|
CALL MEMORIAM
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-HAREM
|
|
EQUAL? HERE,HAREM \FALSE
|
|
PRINTI " A figure, completely cloaked in veils of silk, enters and beckons you deeper into the harem"
|
|
PRINT ELLIPSIS
|
|
CALL GOTO,INNER-HAREM
|
|
CALL THIS-IS-IT,SULTANS-WIFE
|
|
FCLEAR SULTANS-WIFE,NDESCBIT
|
|
CALL QUEUE,I-HOUR,60
|
|
PRINTI " "
|
|
CALL DPRINT,SULTANS-WIFE
|
|
ZERO? NAUGHTY-LEVEL \?ELS10
|
|
PRINTR " sits down at the far end of the room."
|
|
?ELS10: PRINTI " touches a button at the shoulder of "
|
|
CALL HER-HIS
|
|
PRINTI " tunic and it slowly floats to the floor. "
|
|
CALL SHE-HE,TRUE-VALUE
|
|
PRINTR " pulls you down onto the furs, whispering in a husky voice, ""For an hour, I am yours."""
|
|
|
|
|
|
.FUNCT I-HOUR
|
|
EQUAL? HERE,INNER-HAREM \FALSE
|
|
PRINTI " ""The hour is over,"" sighs "
|
|
CALL DPRINT,SULTANS-WIFE
|
|
PRINTI ", reluctantly leading you out of the "
|
|
PRINTD HERE
|
|
PRINT ELLIPSIS
|
|
CALL GOTO,HAREM
|
|
RSTACK
|
|
|
|
|
|
.FUNCT HAREM-OBJECT-F
|
|
EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5
|
|
EQUAL? HERE,AUDIENCE-CHAMBER \?ELS10
|
|
CALL DO-WALK,P?WEST
|
|
RSTACK
|
|
?ELS10: EQUAL? HERE,HAREM,INNER-HAREM \FALSE
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS14
|
|
EQUAL? HERE,AUDIENCE-CHAMBER \?ELS19
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS19: CALL DO-WALK,P?OUT
|
|
RSTACK
|
|
?ELS14: EQUAL? PRSA,V?EXAMINE \?ELS23
|
|
EQUAL? HERE,AUDIENCE-CHAMBER /?ELS23
|
|
CALL V-LOOK
|
|
RSTACK
|
|
?ELS23: EQUAL? PRSA,V?SMELL \?ELS27
|
|
EQUAL? HERE,AUDIENCE-CHAMBER /?ELS27
|
|
CALL PERFORM-PRSA,ODOR
|
|
RTRUE
|
|
?ELS27: EQUAL? PRSA,V?SEARCH \FALSE
|
|
PRINT NOTHING-NEW
|
|
RTRUE
|
|
|
|
|
|
.FUNCT INNER-HAREM-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This luxurious bedroom, presumably one of many throughout the harem, is appointed with a multitude of exotic furs, warm to the touch as though still alive. "
|
|
FSET? NOSE,MUNGBIT /?CND6
|
|
PRINTI "The heady aroma of "
|
|
GETP HAREM,P?ODOR
|
|
PRINT STACK
|
|
PRINTI " and incense mingle in the air. "
|
|
?CND6: PRINTI "There's an exit to the southeast"
|
|
ZERO? CATACOMBS-OPEN /?CND9
|
|
PRINTI " and a secret passage leads downward"
|
|
?CND9: PRINTI "."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT INNER-HAREM-EXIT-F
|
|
CALL ULTIMATELY-IN?,MAP
|
|
ZERO? STACK /?ELS5
|
|
CALL VISIBLE?,MAP
|
|
ZERO? STACK /?ELS5
|
|
PRINTI "As"
|
|
CALL TPRINT,SULTANS-WIFE
|
|
CALL JIGS-UP,STR?294
|
|
RSTACK
|
|
?ELS5: RETURN HAREM
|
|
|
|
|
|
.FUNCT SULTANS-WIFE-F,OARG=0
|
|
ZERO? OARG /?ELS5
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " "
|
|
CALL DPRINT,SULTANS-WIFE
|
|
PRINTI " is here"
|
|
ZERO? NAUGHTY-LEVEL /?CND10
|
|
PRINTI ", lying seductively naked on a bed of furs"
|
|
?CND10: PRINTI "."
|
|
RTRUE
|
|
?ELS5: EQUAL? WINNER,SULTANS-WIFE \?ELS14
|
|
EQUAL? PRSA,V?KISS \?ELS23
|
|
EQUAL? PRSO,KNEECAPS \?ELS23
|
|
ZERO? CATACOMBS-OPEN /?THN20
|
|
?ELS23: EQUAL? PRSA,V?KISS-ON \?ELS19
|
|
EQUAL? PRSO,ME \?ELS19
|
|
EQUAL? PRSI,KNEECAPS \?ELS19
|
|
ZERO? CATACOMBS-OPEN \?ELS19
|
|
?THN20: EQUAL? CHOICE-NUMBER,WIFE-NUMBER \?ELS30
|
|
MOVE MAP,HERE
|
|
MOVE TORCH,HERE
|
|
CALL QUEUE,I-TORCH,23
|
|
CALL DEQUEUE,I-HOUR
|
|
SET 'CATACOMBS-OPEN,TRUE-VALUE
|
|
CALL OPEN-EYES-AND-REMOVE-HANDS
|
|
PRINTI """Oh,"" whispers "
|
|
CALL DPRINT,SULTANS-WIFE
|
|
PRINTI ", ""you're from the rebels! Here's"
|
|
CALL TPRINT,MAP
|
|
PRINTI ","" "
|
|
CALL SHE-HE
|
|
PRINTI " says, laying"
|
|
CALL APRINT,MAP
|
|
PRINTI " at your feet, ""and here's"
|
|
CALL APRINT,TORCH
|
|
PRINTI ","" "
|
|
CALL SHE-HE
|
|
PRINTI " says, lighting"
|
|
CALL APRINT,TORCH
|
|
PRINTI " and placing it next to the map. "
|
|
CALL SHE-HE,TRUE-VALUE
|
|
PRINTI " moves some furs to reveal a secret entrance leading downwards. ""The only way out is through the catacombs -- if you come back this way with"
|
|
CALL TPRINT,MAP
|
|
PRINTI ","
|
|
CALL TPRINT,HAREM-GUARD
|
|
PRINTR "s will..."""
|
|
?ELS30: PRINTR """I'm not into that kinky stuff."""
|
|
?ELS19: EQUAL? PRSA,V?FUCK,V?SUCK,V?KISS /?THN37
|
|
EQUAL? PRSA,V?BLOW,V?LICK,V?EAT /?THN37
|
|
EQUAL? PRSA,V?TOUCH,V?TAKE \?ELS34
|
|
?THN37: ZERO? NAUGHTY-LEVEL \?ELS34
|
|
EQUAL? PRSO,COCK,ME \?ELS34
|
|
SET 'WINNER,PROTAGONIST
|
|
CALL PERFORM,V?FUCK,SULTANS-WIFE
|
|
SET 'WINNER,SULTANS-WIFE
|
|
RTRUE
|
|
?ELS34: EQUAL? PRSA,V?KISS \?ELS40
|
|
EQUAL? PRSO,ME \?ELS40
|
|
SET 'WINNER,PROTAGONIST
|
|
CALL PERFORM-PRSA,SULTANS-WIFE
|
|
SET 'WINNER,SULTANS-WIFE
|
|
RTRUE
|
|
?ELS40: EQUAL? PRSA,V?TAKE,V?FUCK \?ELS44
|
|
EQUAL? PRSO,ME \?ELS44
|
|
SET 'WINNER,PROTAGONIST
|
|
CALL PERFORM,V?FUCK,SULTANS-WIFE
|
|
SET 'WINNER,SULTANS-WIFE
|
|
RTRUE
|
|
?ELS44: EQUAL? PRSA,V?BLOW,V?LICK,V?EAT /?THN51
|
|
EQUAL? PRSA,V?SUCK \?ELS48
|
|
?THN51: EQUAL? PRSO,COCK,ME \?ELS48
|
|
EQUAL? NAUGHTY-LEVEL,1 \?ELS57
|
|
PRINT MISSIONARY-ONLY
|
|
RTRUE
|
|
?ELS57: CALL DPRINT,SULTANS-WIFE
|
|
PRINTI " nods eagerly and slides downward. Skillful tongue-work soon has you squirming on the edge of orgasm... Eventually, spent and satisfied, you take "
|
|
CALL DPRINT,SULTANS-WIFE
|
|
PRINTR " lovingly into your arms."
|
|
?ELS48: EQUAL? PRSA,V?WHAT \?ELS65
|
|
EQUAL? PRSO,LGOP /?THN62
|
|
?ELS65: EQUAL? PRSA,V?TELL-ABOUT \?ELS61
|
|
EQUAL? PRSO,ME \?ELS61
|
|
EQUAL? PRSI,LGOP \?ELS61
|
|
?THN62: PRINTR """That's the code name of the cadre who lead the rebel underground. It is said they have pledged their lives and souls to the revolution!"""
|
|
?ELS61: PRINTI """Shhh... "
|
|
ZERO? NAUGHTY-LEVEL \?ELS74
|
|
PRINTI "It's past bedtime for the children of"
|
|
CALL TPRINT,SULTAN
|
|
PRINTI "! You'll wake them!"""
|
|
CRLF
|
|
CALL STOP
|
|
RSTACK
|
|
?ELS74: PRINTI "Let "
|
|
PRINTD YOUR-BODY
|
|
PRINTI " do the talking,"" says "
|
|
CALL DPRINT,SULTANS-WIFE
|
|
PRINTI ", reaching out toward you."
|
|
CRLF
|
|
CALL STOP
|
|
RSTACK
|
|
?ELS14: CALL WRONG-SEX-WORD,SULTANS-WIFE,W?WIFE,W?HUSBAND
|
|
ZERO? STACK /?ELS78
|
|
CALL STOP
|
|
RSTACK
|
|
?ELS78: EQUAL? PRSA,V?THANK \?ELS80
|
|
ZERO? CATACOMBS-OPEN /?ELS80
|
|
CALL DPRINT,SULTANS-WIFE
|
|
PRINTR " gives you a grand salute. ""For the revolution!"""
|
|
?ELS80: EQUAL? PRSA,V?FUCK,V?TOUCH,V?KISS /?THN87
|
|
EQUAL? PRSA,V?TAKE \?ELS84
|
|
?THN87: ZERO? NAUGHTY-LEVEL \?ELS84
|
|
PRINTI "Instead, you decide to get to know "
|
|
CALL DPRINT,SULTANS-WIFE
|
|
PRINTI " better, so you engage "
|
|
CALL HER-HIM
|
|
PRINTI " in a stimulating discussion about "
|
|
CALL PICK-ONE,DISCUSSION-TOPICS
|
|
PRINT STACK
|
|
CRLF
|
|
RTRUE
|
|
?ELS84: EQUAL? PRSA,V?EAT \?ELS90
|
|
ZERO? NAUGHTY-LEVEL \?ELS95
|
|
CALL V-FUCK
|
|
RSTACK
|
|
?ELS95: EQUAL? NAUGHTY-LEVEL,1 \?ELS97
|
|
PRINT MISSIONARY-ONLY
|
|
RTRUE
|
|
?ELS97: CALL DPRINT,PRSO
|
|
PRINTI " arches "
|
|
CALL HER-HIS
|
|
PRINTR " body to meet you, passionately stroking your neck and shoulders."
|
|
?ELS90: EQUAL? PRSA,V?UNDRESS \?ELS101
|
|
ZERO? NAUGHTY-LEVEL /?ELS101
|
|
CALL SHE-HE,TRUE-VALUE
|
|
PRINTR " is!"
|
|
?ELS101: EQUAL? PRSA,V?DRESS \?ELS105
|
|
PRINTR "You must be from Massachusetts."
|
|
?ELS105: EQUAL? PRSA,V?TAKE,V?TOUCH,V?KISS \?ELS107
|
|
CALL DPRINT,SULTANS-WIFE
|
|
PRINTR " moans softly and draws closer to you."
|
|
?ELS107: EQUAL? PRSA,V?FUCK \?ELS109
|
|
ZERO? WIFE-FUCKED /?CND110
|
|
PRINTR "You shouldn't wear yourself out. [Besides, do you think there's infinite room on this disk for long, lurid descriptions of sex acts?]"
|
|
?CND110: SET 'WIFE-FUCKED,TRUE-VALUE
|
|
CALL DPRINT,SULTANS-WIFE
|
|
PRINTI " draws you into "
|
|
CALL HER-HIS
|
|
PRINTI " arms. "
|
|
EQUAL? NAUGHTY-LEVEL,2 \?CND114
|
|
PRINTI "As "
|
|
PRINTD HANDS
|
|
PRINTI "s explore h"
|
|
ZERO? MALE /?ELS119
|
|
PRINTI "er soft, rounded"
|
|
JUMP ?CND117
|
|
?ELS119: PRINTI "is firm, strong"
|
|
?CND117: PRINTI " body, a faint sweaty, musky odor triggers a passionate fire within you, and you find yourself "
|
|
ZERO? MALE /?ELS125
|
|
PRINTI "ris"
|
|
JUMP ?CND123
|
|
?ELS125: PRINTI "warm"
|
|
?CND123: PRINTI "ing to the occasion. Your lovemaking is slow and gentle, and as you reach a crescendo of pleasure, you cry out softly, passionately, and repeatedly. ""Oh,"" moans "
|
|
CALL DPRINT,SULTANS-WIFE
|
|
PRINTI ", ""say my number again ... say it in French..."""
|
|
CRLF
|
|
?CND114: PRINTI "Much later, you and "
|
|
CALL DPRINT,SULTANS-WIFE
|
|
PRINTR " fall back upon the furs, basking in the aura of postcoital bliss."
|
|
?ELS109: EQUAL? PRSA,V?MARRY \?ELS130
|
|
PRINTI "But "
|
|
CALL DPRINT,PRSO
|
|
PRINTR " is already married!"
|
|
?ELS130: EQUAL? PRSA,V?MEASURE \?ELS132
|
|
ZERO? MALE /?ELS135
|
|
PRINTI "36-24-36"
|
|
JUMP ?CND133
|
|
?ELS135: ZERO? NAUGHTY-LEVEL \?ELS138
|
|
PRINTI "Tall"
|
|
JUMP ?CND133
|
|
?ELS138: EQUAL? NAUGHTY-LEVEL,1 \?ELS140
|
|
PRINTI "Long"
|
|
JUMP ?CND133
|
|
?ELS140: PRINTI "Ten delicious inches"
|
|
?CND133: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS132: EQUAL? PRSA,V?EXAMINE \?ELS144
|
|
ZERO? NAUGHTY-LEVEL /?ELS144
|
|
PRINTI "A mere glance at the succulent, sexy body of "
|
|
CALL DPRINT,SULTANS-WIFE
|
|
PRINTI " is enough to "
|
|
EQUAL? NAUGHTY-LEVEL,1 \?ELS149
|
|
PRINTI "really turn you on"
|
|
JUMP ?CND147
|
|
?ELS149: ZERO? MALE /?ELS151
|
|
PRINTI "give you an instant hard-on"
|
|
JUMP ?CND147
|
|
?ELS151: PRINTI "get you all moist and randy"
|
|
?CND147: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS144: EQUAL? PRSA,V?SMELL \FALSE
|
|
CALL SHE-HE,TRUE-VALUE
|
|
PRINTI " smells of "
|
|
GETP HAREM,P?ODOR
|
|
PRINT STACK
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
|
|
|
|
.FUNCT TORCH-F
|
|
EQUAL? PRSA,V?OFF \?ELS5
|
|
FSET? TORCH,ONBIT \?ELS5
|
|
CALL TORCH-OFF
|
|
PRINT PFFT
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?ON \?ELS9
|
|
FSET? TORCH,ONBIT /?ELS9
|
|
CALL PERFORM,V?BURN,TORCH
|
|
RTRUE
|
|
?ELS9: EQUAL? PRSA,V?BURN \?ELS13
|
|
EQUAL? PRSO,TORCH \?ELS13
|
|
FSET? TORCH,ONBIT \?ELS13
|
|
CALL PERFORM,V?ON,TORCH
|
|
RTRUE
|
|
?ELS13: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS17
|
|
FSET? TORCH,ONBIT \?ELS17
|
|
EQUAL? PRSI,TRELLIS,BARGE \?ELS17
|
|
FSET? PRSI,UNTEEDBIT /?ELS17
|
|
PRINTI "The "
|
|
PRINTD PRSI
|
|
PRINTR " would burn!"
|
|
?ELS17: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,WATER,CANAL \FALSE
|
|
FSET? TORCH,ONBIT \FALSE
|
|
CALL TORCH-OFF
|
|
PRINT PFFT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT TORCH-OFF
|
|
CALL DEQUEUE,I-TORCH
|
|
FCLEAR TORCH,ONBIT
|
|
FCLEAR TORCH,LIGHTBIT
|
|
PUTP TORCH,P?SDESC,STR?302
|
|
FSET TORCH,VOWELBIT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-TORCH
|
|
DEC 'TORCH-LIFE
|
|
ZERO? TORCH-LIFE \?ELS3
|
|
CALL TORCH-OFF
|
|
JUMP ?CND1
|
|
?ELS3: MUL TORCH-LIFE,6
|
|
CALL QUEUE,I-TORCH,STACK
|
|
?CND1: CALL VISIBLE?,TORCH
|
|
ZERO? STACK /FALSE
|
|
FSET? EYES,MUNGBIT /FALSE
|
|
EQUAL? HAND-COVER,EYES /FALSE
|
|
PRINTI " "
|
|
ZERO? TORCH-LIFE \?ELS13
|
|
PRINT PFFT
|
|
CALL NOW-DARK?
|
|
RFALSE
|
|
?ELS13: PRINTI "The torch is noticeably dimmer."
|
|
CRLF
|
|
RFALSE
|
|
|
|
|
|
.FUNCT MAP-F
|
|
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
|
FSET? PRSO,UNTEEDBIT /FALSE
|
|
CALL IN-YOUR-PACKAGE,STR?304
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CATACOMBS-ENTER-F
|
|
ZERO? CATACOMBS-OPEN /?ELS5
|
|
CALL QUEUE,I-BEETLES,6
|
|
CALL QUEUE,I-CRABS,10
|
|
CALL QUEUE,I-GATOR,12
|
|
PRINTI "As you leave, "
|
|
ZERO? NAUGHTY-LEVEL \?ELS9
|
|
CALL PERFORM,V?THANK,SULTANS-WIFE
|
|
CRLF
|
|
RETURN CATACOMBS
|
|
?ELS9: CALL DPRINT,SULTANS-WIFE
|
|
ZERO? MALE /?ELS14
|
|
PRINTI " throws herself into your arms. Her ample bosom presses against your chest as she whispers into your ear, ""Please, oh, please be careful down there!"" Sh"
|
|
JUMP ?CND12
|
|
?ELS14: PRINTI " gathers you into his powerful arms. Nibbling tenderly on your neck, he whispers, ""Be wary -- the catacombs are dangerous."" H"
|
|
?CND12: PRINTI "e kisses you longingly, but eventually you descend, reluctantly, into the gloom of the catacombs"
|
|
PRINT ELLIPSIS
|
|
RETURN CATACOMBS
|
|
?ELS5: PRINT CANT-GO
|
|
RFALSE
|
|
|
|
|
|
.FUNCT CATACOMBS-F,RARG
|
|
EQUAL? RARG,M-LOOK \?ELS5
|
|
PRINTI "You're at a junction within an ancient, crumbling catacomb. Your "
|
|
CALL ULTIMATELY-IN?,TORCH
|
|
ZERO? STACK /?CND6
|
|
FSET? TORCH,ONBIT \?CND6
|
|
PRINTI "torch"
|
|
?CND6: PRINTI "light pierces the gloom for only a few feet in each direction. "
|
|
PRINT CATACOMBS-WATER-DESC
|
|
RTRUE
|
|
?ELS5: EQUAL? RARG,M-END \FALSE
|
|
ZERO? SIDEKICK-EATEN /FALSE
|
|
MOVE SIDEKICK,HERE
|
|
SET 'SIDEKICK-EATEN,FALSE-VALUE
|
|
PRINTI " ""Yo!"" says "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTI ", tapping your shoulder. ""Looked like my number was up that time! Would've been, if those dimension-hopping midgets hadn't come through at the right moment. Good thing the tiger cage leads to the catacombs, eh?"" "
|
|
CALL HE-SHE,TRUE-VALUE
|
|
PRINTI " brushes a stray patch of fur off "
|
|
CALL HIS-HER
|
|
PRINTR " shoulder."
|
|
|
|
|
|
.FUNCT CATACOMBS-MOVEMENT-F,DIR-OFFSET,TABLE-VALUE
|
|
ZERO? LIT \?CND1
|
|
CALL JIGS-UP,STR?305
|
|
?CND1: EQUAL? PRSO,P?NORTH \?ELS8
|
|
PUSH 0
|
|
JUMP ?CND4
|
|
?ELS8: EQUAL? PRSO,P?NE \?ELS10
|
|
PUSH 1
|
|
JUMP ?CND4
|
|
?ELS10: EQUAL? PRSO,P?EAST \?ELS12
|
|
PUSH 2
|
|
JUMP ?CND4
|
|
?ELS12: EQUAL? PRSO,P?SE \?ELS14
|
|
PUSH 3
|
|
JUMP ?CND4
|
|
?ELS14: EQUAL? PRSO,P?SOUTH \?ELS16
|
|
PUSH 4
|
|
JUMP ?CND4
|
|
?ELS16: EQUAL? PRSO,P?SW \?ELS18
|
|
PUSH 5
|
|
JUMP ?CND4
|
|
?ELS18: EQUAL? PRSO,P?WEST \?ELS20
|
|
PUSH 6
|
|
JUMP ?CND4
|
|
?ELS20: EQUAL? PRSO,P?NW \?ELS22
|
|
PUSH 7
|
|
JUMP ?CND4
|
|
?ELS22: EQUAL? PRSO,P?UP \?ELS24
|
|
PUSH 8
|
|
JUMP ?CND4
|
|
?ELS24: PUSH 9
|
|
?CND4: SET 'DIR-OFFSET,STACK
|
|
SUB CATACOMBS-LOC,1
|
|
MUL STACK,10
|
|
ADD STACK,DIR-OFFSET
|
|
GET CATACOMBS-TABLE,STACK >TABLE-VALUE
|
|
PRINTI "You wade into the gloom ... and find "
|
|
ZERO? TABLE-VALUE \?ELS31
|
|
EQUAL? PRSO,P?DOWN,P?UP \?ELS34
|
|
PRINTI "a severe paucity of passages leading "
|
|
EQUAL? PRSO,P?UP \?ELS37
|
|
PRINTI "up"
|
|
JUMP ?CND32
|
|
?ELS37: PRINTI "down"
|
|
JUMP ?CND32
|
|
?ELS34: PRINTI "yourself face to face with a blank wall"
|
|
?CND32: PRINT PERIOD-CR
|
|
RFALSE
|
|
?ELS31: PRINTI "a "
|
|
EQUAL? PRSO,P?DOWN,P?UP \?ELS46
|
|
PRINTI "hidden passage leading "
|
|
EQUAL? PRSO,P?UP \?ELS49
|
|
PRINTI "up"
|
|
JUMP ?CND47
|
|
?ELS49: PRINTI "down"
|
|
?CND47: PRINTI "wards."
|
|
JUMP ?CND44
|
|
?ELS46: PRINTI "dark and winding tunnel."
|
|
?CND44: EQUAL? TABLE-VALUE,99 \?ELS58
|
|
PRINTI " Unfortunately, you soon come to a point where the tunnel has collapsed, hopelessly blocking your way."
|
|
CRLF
|
|
RFALSE
|
|
?ELS58: EQUAL? TABLE-VALUE,80 \?ELS60
|
|
PRINTI " Unfortunately, it's too steep and slippery."
|
|
CRLF
|
|
RFALSE
|
|
?ELS60: CRLF
|
|
CRLF
|
|
EQUAL? TABLE-VALUE,40 \?ELS67
|
|
RETURN FORGOTTEN-STOREHOUSE
|
|
?ELS67: EQUAL? TABLE-VALUE,50 \?ELS69
|
|
RETURN WELL-BOTTOM
|
|
?ELS69: EQUAL? TABLE-VALUE,60 \?ELS71
|
|
RETURN LADDER-ROOM
|
|
?ELS71: EQUAL? TABLE-VALUE,70 \?ELS73
|
|
RETURN BURIAL-CHAMBER
|
|
?ELS73: SET 'CATACOMBS-LOC,TABLE-VALUE
|
|
CALL DESCRIBE-ROOM
|
|
IN? SIDEKICK,HERE \?CND76
|
|
CALL SIDEKICK-FOLLOWS-YOU
|
|
RETURN ROOMS
|
|
?CND76: RETURN ROOMS
|
|
|
|
|
|
.FUNCT PHONE-BOOK-F
|
|
EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?READ \?ELS5
|
|
PRINTR "How useful. Now you know how many Smiths live in Cleveland."
|
|
?ELS5: EQUAL? PRSA,V?CLOSE \?ELS7
|
|
PRINTR "It is."
|
|
?ELS7: EQUAL? PRSA,V?TAKE \FALSE
|
|
FSET? PHONE-BOOK,TOUCHBIT /FALSE
|
|
FSET PHONE-BOOK,TOUCHBIT
|
|
CALL INCREMENT-SCORE,13,26,TRUE-VALUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT WELL-BOTTOM-EXIT-F
|
|
EQUAL? PRSO,P?EAST \?ELS3
|
|
SET 'CATACOMBS-LOC,21
|
|
RETURN CATACOMBS
|
|
?ELS3: SET 'CATACOMBS-LOC,22
|
|
RETURN CATACOMBS
|
|
|
|
|
|
.FUNCT WELL-BOTTOM-LOOP-F
|
|
CALL DESCRIBE-ROOM
|
|
IN? SIDEKICK,HERE \FALSE
|
|
CALL NORMAL-SIDEKICK-FOLLOW
|
|
RFALSE
|
|
|
|
|
|
.FUNCT LADDER-ROOM-EXIT-F
|
|
PRINTI "You climb for a seemingly endless time, with the ladder becoming increasingly rickety. Suddenly a rung snaps, and you tumble into the darkness! You bounce painfully into a slanted ventilation shaft, slide through a wooden grating, and land amidst thousands of silk "
|
|
ZERO? MALE /?ELS3
|
|
PRINTI "brassieres"
|
|
JUMP ?CND1
|
|
?ELS3: PRINTI "jockstraps"
|
|
?CND1: PRINT PERIOD-CR
|
|
CRLF
|
|
RETURN LAUNDRY-ROOM
|
|
|
|
|
|
.FUNCT LADDER-F
|
|
EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \FALSE
|
|
CALL DO-WALK,P?UP
|
|
RSTACK
|
|
|
|
|
|
.FUNCT RAFT-F,OARG=0,NUM=0
|
|
ZERO? OARG /?ELS5
|
|
FSET? RAFT,TOUCHBIT /?ELS11
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " On the other hand, another Sultan had a considerably more modest vision of the afterlife, bringing only a simple rubber life raft."
|
|
RTRUE
|
|
?ELS11: ZERO? RAFT-HELD /?ELS16
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " There is a raft here, which you're keeping a hand on."
|
|
RTRUE
|
|
?ELS16: EQUAL? HERE,CANAL \FALSE
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " A raft is floating nearby."
|
|
RTRUE
|
|
?ELS5: EQUAL? HERE,CANAL \?ELS29
|
|
IN? PROTAGONIST,BARGE \?ELS29
|
|
IN? RAFT,CANAL \?ELS29
|
|
EQUAL? RAFT-LOC-NUM,BARGE-LOC-NUM /?ELS29
|
|
CALL CANT-SEE,RAFT
|
|
RSTACK
|
|
?ELS29: FSET? RAFT,UNTEEDBIT /FALSE
|
|
EQUAL? PRSA,V?SINK \?ELS35
|
|
ZERO? RAFT-HELD \?THN41
|
|
EQUAL? HERE,CANAL \?ELS40
|
|
IN? PROTAGONIST,RAFT \?ELS40
|
|
?THN41: CALL PERFORM,V?DEFLATE,RAFT
|
|
RTRUE
|
|
?ELS40: PRINTR "It's not even in water!"
|
|
?ELS35: EQUAL? PRSA,V?PUT \?ELS48
|
|
CALL IN-CATACOMBS
|
|
ZERO? STACK /?ELS48
|
|
EQUAL? PRSI,WATER \?ELS48
|
|
CALL PERFORM,V?DROP,RAFT
|
|
RTRUE
|
|
?ELS48: EQUAL? PRSA,V?THROW,V?DROP \?ELS52
|
|
EQUAL? PRSO,RAFT \?ELS52
|
|
CALL IN-CATACOMBS
|
|
ZERO? STACK /?ELS52
|
|
REMOVE RAFT
|
|
PRINTR "The raft floats into the darkness. Oh, well, easy come, easy go."
|
|
?ELS52: EQUAL? PRSA,V?DROP \?ELS56
|
|
ZERO? RAFT-HELD /?ELS56
|
|
SET 'RAFT-HELD,FALSE-VALUE
|
|
MOVE RAFT,CANAL
|
|
CALL SET-RAFT-LOC
|
|
CALL QUEUE,I-CANAL,-1
|
|
PRINTI "The raft "
|
|
EQUAL? HERE,CANAL \?ELS63
|
|
ZERO? BARGE-UNDER-POWER /?ELS66
|
|
PRINTI "is left behind in the wake of"
|
|
JUMP ?CND64
|
|
?ELS66: SET 'RAFT-WAIT,BARGE-WAIT
|
|
PRINTI "floats along beside"
|
|
?CND64: PRINTR " the barge."
|
|
?ELS63: PRINTR "is swept away."
|
|
?ELS56: EQUAL? PRSA,V?TAKE \?ELS73
|
|
EQUAL? PRSO,RAFT \?ELS73
|
|
FSET? RAFT,TOUCHBIT /?ELS73
|
|
FSET RAFT,TOUCHBIT
|
|
CALL INCREMENT-SCORE,8,3
|
|
RFALSE
|
|
?ELS73: EQUAL? PRSA,V?TAKE \?ELS77
|
|
IN? YOUR-BODY,RAFT /?THN80
|
|
IN? SIDEKICKS-BODY,RAFT \?ELS77
|
|
?THN80: PRINTR "It's too heavy."
|
|
?ELS77: EQUAL? PRSA,V?BOARD \?ELS83
|
|
IN? RAFT,BARGE \?ELS88
|
|
PRINTI "Hrumph! There's no reason to board the raft inside the barge! "
|
|
CALL PERFORM,V?SINK,BARGE
|
|
RTRUE
|
|
?ELS88: IN? RAFT,ODD-MACHINE \?ELS90
|
|
CALL DO-FIRST,STR?314,ODD-MACHINE
|
|
RSTACK
|
|
?ELS90: CALL ULTIMATELY-IN?,RAFT,MALE-GORILLA
|
|
ZERO? STACK \?THN93
|
|
CALL ULTIMATELY-IN?,RAFT,FEMALE-GORILLA
|
|
ZERO? STACK /?ELS92
|
|
?THN93: CALL NOT-ON-GROUND,RAFT
|
|
RSTACK
|
|
?ELS92: ZERO? RAFT-HELD \?THN99
|
|
IN? RAFT,CANAL \FALSE
|
|
?THN99: IN? PROTAGONIST,RAFT /FALSE
|
|
CALL QUEUE,I-CANAL,-1
|
|
CALL SET-RAFT-LOC
|
|
EQUAL? HERE,MY-KIND-OF-DOCK \?ELS103
|
|
SET 'NEARER-DOCK,MY-KIND-OF-DOCK
|
|
JUMP ?CND101
|
|
?ELS103: SET 'NEARER-DOCK,ABANDONED-DOCK
|
|
?CND101: GRTR? BARGE-LOC-NUM,RAFT-LOC-NUM \?CND106
|
|
IN? BARGE,CANAL \?CND106
|
|
SET 'BARGE-LOC-NUM,36
|
|
MOVE BARGE,ICY-DOCK
|
|
?CND106: PRINTI "As you"
|
|
CALL AND-SIDEKICK,RAFT
|
|
PRINTI " board the raft, "
|
|
EQUAL? HERE,CANAL \?ELS113
|
|
PRINTI "it begins drifting away from the barge"
|
|
ZERO? BARGE-UNDER-POWER /?CND111
|
|
CALL BARGE-FORGES-AHEAD
|
|
JUMP ?CND111
|
|
?ELS113: PRINTI "the current sweeps it away from the dock"
|
|
?CND111: PRINT PERIOD-CR
|
|
ZERO? BARGE-WAIT /?ELS122
|
|
EQUAL? RAFT-LOC-NUM,BARGE-LOC-NUM \?ELS122
|
|
SET 'RAFT-WAIT,TRUE-VALUE
|
|
JUMP ?CND120
|
|
?ELS122: SET 'RAFT-WAIT,FALSE-VALUE
|
|
?CND120: SET 'RAFT-HELD,FALSE-VALUE
|
|
MOVE RAFT,CANAL
|
|
EQUAL? HERE,CANAL \?ELS131
|
|
MOVE PROTAGONIST,RAFT
|
|
RTRUE
|
|
?ELS131: CRLF
|
|
CALL GOTO,RAFT
|
|
RSTACK
|
|
?ELS83: EQUAL? PRSA,V?STAND-ON \?ELS135
|
|
CALL PERFORM,V?BOARD,RAFT
|
|
RTRUE
|
|
?ELS135: EQUAL? PRSA,V?KILL,V?MUNG,V?DEFLATE \?ELS137
|
|
FSET? RAFT,MUNGBIT \?ELS142
|
|
PRINT ALREADY-IS
|
|
RTRUE
|
|
?ELS142: PRINTI """Phssss."""
|
|
ZERO? RAFT-HELD \?THN150
|
|
IN? RAFT,CANAL \?ELS149
|
|
?THN150: PRINTI " The raft sinks"
|
|
IN? PROTAGONIST,RAFT \?ELS156
|
|
CALL JIGS-UP,STR?315
|
|
RSTACK
|
|
?ELS156: SET 'RAFT-HELD,FALSE-VALUE
|
|
REMOVE RAFT
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS149: FSET RAFT,MUNGBIT
|
|
PUTP RAFT,P?SDESC,STR?316
|
|
CRLF
|
|
RTRUE
|
|
?ELS137: EQUAL? PRSA,V?INFLATE \?ELS162
|
|
FSET? RAFT,MUNGBIT \?ELS167
|
|
PRINTR "Without a pump? Forget it."
|
|
?ELS167: PRINT ALREADY-IS
|
|
RTRUE
|
|
?ELS162: EQUAL? PRSA,V?SHAKE \?ELS171
|
|
EQUAL? HERE,CANAL \?ELS171
|
|
IN? PROTAGONIST,RAFT \?ELS171
|
|
CALL SHAKE-BOAT
|
|
RSTACK
|
|
?ELS171: EQUAL? PRSA,V?PUSH-DIR \?ELS175
|
|
EQUAL? PRSI,INTDIR \?ELS175
|
|
IN? PROTAGONIST,RAFT \?ELS182
|
|
EQUAL? P-PRSA-WORD,W?MOVE /?ELS182
|
|
PRINTR "You're in it!"
|
|
?ELS182: IN? RAFT,CANAL \?ELS186
|
|
PRINT NO-STEERING
|
|
RTRUE
|
|
?ELS186: CALL DO-WALK,P-DIRECTION
|
|
MOVE RAFT,HERE
|
|
RTRUE
|
|
?ELS175: EQUAL? PRSA,V?SET \?ELS190
|
|
IN? RAFT,CANAL \?ELS190
|
|
PRINT NO-STEERING
|
|
RTRUE
|
|
?ELS190: EQUAL? PRSA,V?LAND \FALSE
|
|
PRINTR "Try grabbing a dock."
|
|
|
|
|
|
.FUNCT I-BEETLES
|
|
CALL IN-CATACOMBS
|
|
ZERO? STACK /FALSE
|
|
CALL QUEUE,I-BEETLES,6
|
|
IN? PROTAGONIST,HERE \?ELS8
|
|
RANDOM CATACOMBS-LOC >CATACOMBS-LOC
|
|
IN? SIDEKICK,HERE \?CND9
|
|
MOVE SIDEKICK,CATACOMBS
|
|
?CND9: MOVE PROTAGONIST,CATACOMBS
|
|
SET 'HERE,CATACOMBS
|
|
FSET CATACOMBS,MUNGBIT
|
|
CALL OPEN-EYES-AND-REMOVE-HANDS
|
|
PRINTR " Suddenly the water explodes with life! A swarm of the nastiest beetles this side of Pluto starts munching your flesh. You escape by running blindly through the catacombs, completely losing track of your location."
|
|
?ELS8: CALL HARMLESS-SNAP,STR?317
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-CRABS,OBJ
|
|
CALL IN-CATACOMBS
|
|
ZERO? STACK /FALSE
|
|
CALL QUEUE,I-CRABS,10
|
|
IN? PROTAGONIST,HERE \?ELS8
|
|
CALL OPEN-EYES-AND-REMOVE-HANDS
|
|
FSET CATACOMBS,MUNGBIT
|
|
PRINTI " You feel an intense pain, like a tuft of hair being yanked out -- except that it's coming from your feet, and in about a hundred places. As you flail at the pack of Martian sand crabs, the splashing startles them away"
|
|
FIRST? PROTAGONIST >OBJ \?ELS13
|
|
EQUAL? OBJ,GARMENT,COMIC-BOOK /?ELS13
|
|
EQUAL? OBJ,TORCH \?CND16
|
|
NEXT? TORCH \?CND16
|
|
NEXT? TORCH >OBJ /?KLU25
|
|
?KLU25:
|
|
?CND16: PRINTI ", but during the struggle you seem to have lost your "
|
|
CALL DPRINT,OBJ
|
|
PRINT PERIOD-CR
|
|
REMOVE OBJ
|
|
CALL NOW-DARK?
|
|
RSTACK
|
|
?ELS13: PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS8: CALL HARMLESS-SNAP,STR?318
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-GATOR
|
|
CALL IN-CATACOMBS
|
|
ZERO? STACK /FALSE
|
|
IN? PROTAGONIST,HERE \?ELS8
|
|
CALL JIGS-UP,STR?319
|
|
RSTACK
|
|
?ELS8: CALL QUEUE,I-GATOR,12
|
|
CALL HARMLESS-SNAP,STR?320
|
|
RSTACK
|
|
|
|
|
|
.FUNCT HARMLESS-SNAP,STRING
|
|
PRINTI " The calm water is suddenly shattered by the jaws of a huge Martian "
|
|
PRINT STRING
|
|
PRINTR " snapping harmlessly toward you. Good thing you were in the raft."
|
|
|
|
|
|
.FUNCT MARTIAN-DESSERT-EXIT-F
|
|
FSET? MARTIAN-DESSERT,MUNGBIT /?CND1
|
|
FSET MARTIAN-DESSERT,MUNGBIT
|
|
PRINTI "I guess the paths aren't a mirage..."
|
|
CRLF
|
|
CRLF
|
|
?CND1: EQUAL? PRSO,P?NW \?ELS8
|
|
RETURN RUINED-CASTLE-2
|
|
?ELS8: RETURN OASIS
|
|
|
|
|
|
.FUNCT WATTZ-UPP-DOCK-ENTER-F
|
|
PUTP HOLE,P?SDESC,STR?132
|
|
RETURN WATTZ-UPP-DOCK
|
|
|
|
|
|
.FUNCT MARTIAN-DESSERT-ENTER-F
|
|
PUTP HOLE,P?SDESC,STR?132
|
|
RETURN MARTIAN-DESSERT
|
|
|
|
|
|
.FUNCT CIRCLE-ISNT-BLACK
|
|
ZERO? CIRCLE-BLACK \FALSE
|
|
EQUAL? HERE,OASIS \FALSE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT OASIS-F,RARG
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
ZERO? CIRCLE-BLACK \?ELS5
|
|
PUTP HOLE,P?SDESC,STR?323
|
|
RTRUE
|
|
?ELS5: EQUAL? RARG,M-LOOK \?ELS9
|
|
PRINTI "This is a remarkable sight on arid Mars -- subsurface water bubbling up in a fountain, flowing around"
|
|
CALL APRINT,HOLE
|
|
PRINTI ", and soaking into the thirsty sand. A path curves east around the "
|
|
PRINTD DUNES
|
|
CALL UNCHARTABLE-DESERT,STR?258
|
|
RSTACK
|
|
?ELS9: EQUAL? RARG,M-END \FALSE
|
|
ZERO? SIDEKICK-DROWNED /?CND12
|
|
MOVE SIDEKICK,HERE
|
|
SET 'SIDEKICK-DROWNED,FALSE-VALUE
|
|
PRINTI " Like a wet watermelon seed being squirted from between two fingers, "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTI " is ejected from the fountain and lands in a dripping heap at your feet. ""Good thing I'm so good at holding my breath,"" "
|
|
CALL HE-SHE
|
|
PRINTI " says."
|
|
CRLF
|
|
?CND12: ZERO? CIRCLE-FADED \FALSE
|
|
SET 'CIRCLE-FADED,TRUE-VALUE
|
|
SET 'CIRCLE-BLACK,FALSE-VALUE
|
|
PUTP HOLE,P?SDESC,STR?323
|
|
PRINTR " Inexplicably, the circle fades before your very eyes, slowly going from black to white."
|
|
|
|
|
|
.FUNCT ICY-DOCK-F,RARG
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
FSET? ICY-DOCK,TOUCHBIT /?ELS5
|
|
CALL RUNNING?,I-ION-DEATH
|
|
ZERO? STACK \?ELS5
|
|
CALL INCREMENT-SCORE,4,14
|
|
RSTACK
|
|
?ELS5: EQUAL? RARG,M-END \FALSE
|
|
IN? SIDEKICK,HERE \FALSE
|
|
SET 'FOLLOW-FLAG,3
|
|
CALL QUEUE,I-FOLLOW,2
|
|
REMOVE SIDEKICK
|
|
SET 'SIDEKICK-DROWNED,TRUE-VALUE
|
|
PRINTI " With a whoop of surprise, "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTI " loses "
|
|
CALL HIS-HER
|
|
PRINTI " footing on the ice, skids right into the canal, and is immediately dragged under by the strong current produced by the underwater teleporters. You search frantically for any sign of "
|
|
CALL HIM-HER
|
|
PRINTI ", but after several agonizingly long minutes you abandon all hope. As you gaze across "
|
|
CALL DPRINT-SIDEKICK
|
|
PRINTI "'s watery grave"
|
|
CALL MEMORIAM
|
|
RSTACK
|
|
|
|
|
|
.FUNCT TUNDRA-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "This snowy plain is barren of all signs of life. Drifts block travel in all directions but north, south and southeast. It's pretty cold, but nothing a tough g"
|
|
ZERO? MALE /?ELS8
|
|
PRINTI "uy"
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "al"
|
|
?CND6: PRINTI " like yourself can't stand."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PENGUIN-PARK-F,RARG
|
|
EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "Even on Mars, one could hardly expect a polar visit without seeing penguins. Well, here they are! A whole waddling mass of them, "
|
|
ZERO? PENGUINS-PARTED /?ELS8
|
|
PRINTI "standing politely on either side of"
|
|
JUMP ?CND6
|
|
?ELS8: PRINTI "a pack so dense they completely block"
|
|
?CND6: PRINTI " the path to the southeast. Other paths lead west and northwest."
|
|
ZERO? PENGUINS-PARTED \TRUE
|
|
CRLF
|
|
PRINTI " One penguin teasingly waves a sign in your direction, much like a matador waving his cape toward a bull."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PENGUINS-F
|
|
EQUAL? PRSA,V?GIVE \?ELS5
|
|
EQUAL? PRSO,TEN-MARSMID-COIN \?ELS10
|
|
SET 'PENGUINS-PARTED,TRUE-VALUE
|
|
REMOVE TEN-MARSMID-COIN
|
|
MOVE ONE-MARSMID-COIN,PROTAGONIST
|
|
PRINTR "The penguins, satisfied by your donation to the PRF, part ranks for you to pass. The going rate for donations to the fund must be nine marsmids, since one of the penguins hands you a one marsmid coin."
|
|
?ELS10: EQUAL? PRSO,ONE-MARSMID-COIN \FALSE
|
|
PRINTR "Nine marsmids is the minimum contribution to the PRF."
|
|
?ELS5: EQUAL? PRSA,V?SHOW \FALSE
|
|
EQUAL? PRSO,TEN-MARSMID-COIN \FALSE
|
|
PRINTR "The penguins wiggle eagerly."
|
|
|
|
|
|
.FUNCT GYPSY-CAMP-F,RARG
|
|
EQUAL? RARG,M-END \FALSE
|
|
ZERO? PARENTS-KILLED \?CND6
|
|
SET 'PARENTS-KILLED,TRUE-VALUE
|
|
ZERO? VERBOSITY /TRUE
|
|
PRINTI " A male and a female robot emerge from the tent, waving in a gesture of gypsyish greeting. ""Hello, weary traveller"
|
|
IN? SIDEKICK,HERE \?CND12
|
|
PRINTI "s"
|
|
?CND12: PRINTI "! We are but poor gypsies, but we invite you to spend the night in our humble tent and share our simple but delicious oil and silicon stew."" Suddenly, in an event so shocking that even a hardened space opera hero"
|
|
ZERO? MALE \?CND15
|
|
PRINTI "ine"
|
|
?CND15: PRINTI " like yourself is stunned beyond belief, a meteorite shrieks through the atmosphere and completely obliterates the two robots."
|
|
CRLF
|
|
?CND6: IN? BABY,TENT \FALSE
|
|
IN? BLANKET,BABY /FALSE
|
|
PRINTR " You hear the sound of high-pitched crying, slightly muffled, coming from inside the tent."
|
|
|
|
|
|
.FUNCT OUTSIDE-TENT-F
|
|
EQUAL? PRSA,V?WALK-TO,V?BOARD,V?ENTER \?ELS5
|
|
CALL DO-WALK,P?NORTH
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS7
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS7: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
|
PRINT CANT-FROM-HERE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT INSIDE-TENT-F
|
|
EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS5
|
|
CALL DO-WALK,P?SOUTH
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?WALK-TO,V?BOARD,V?ENTER \?ELS7
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS7: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS9
|
|
CALL V-LOOK
|
|
RSTACK
|
|
?ELS9: EQUAL? PRSA,V?SEARCH \FALSE
|
|
PRINT NOTHING-NEW
|
|
RTRUE
|
|
|
|
|
|
.FUNCT TENT-F,RARG
|
|
EQUAL? RARG,M-ENTER \FALSE
|
|
CALL QUEUE,I-CRY,-1
|
|
RSTACK
|
|
|
|
|
|
.FUNCT I-CRY
|
|
IN? BLANKET,BABY \?ELS5
|
|
CALL DEQUEUE,I-CRY
|
|
RFALSE
|
|
?ELS5: CALL VISIBLE?,BABY
|
|
ZERO? STACK /FALSE
|
|
PRINTI " The baby continues to wail at the top of its lungs."
|
|
RANDOM 100
|
|
LESS? 12,STACK /?CND10
|
|
PRINTI " It's amazing that such small lungs have such a high top."
|
|
?CND10: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BABY-F,OARG=0
|
|
ZERO? OARG /?ELS5
|
|
FSET? BABY,TOUCHBIT /FALSE
|
|
EQUAL? OARG,M-OBJDESC? /TRUE
|
|
PRINTI " A little baby robot is shivering in the corner. It stops crying long enough to open a tiny metal eyelid and look at you. """
|
|
ZERO? MALE /?ELS19
|
|
PRINTI "Momm"
|
|
JUMP ?CND17
|
|
?ELS19: PRINTI "Dadd"
|
|
?CND17: PRINTI "y?"" it says, in a quavering, high-pitched, metallic voice."
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?TELL \?ELS24
|
|
IN? BLANKET,BABY \?ELS27
|
|
SET 'WINNER,PROTAGONIST
|
|
CALL PERFORM,V?KISS,BABY
|
|
JUMP ?CND25
|
|
?ELS27: PRINTI """Goo goo ga ga buzz whirr click."""
|
|
CRLF
|
|
?CND25: CALL STOP
|
|
RSTACK
|
|
?ELS24: EQUAL? PRSA,V?PUT \?ELS35
|
|
EQUAL? PRSI,BLANKET /?THN32
|
|
?ELS35: EQUAL? PRSA,V?WRAP,V?PUT-ON \?ELS37
|
|
EQUAL? PRSO,BLANKET /?THN32
|
|
?ELS37: EQUAL? PRSA,V?PUT \?ELS31
|
|
EQUAL? PRSI,BASKET \?ELS31
|
|
IN? BLANKET,BASKET \?ELS31
|
|
?THN32: FSET? BLANKET,UNTEEDBIT /FALSE
|
|
IN? BLANKET,BABY \?CND40
|
|
PRINT SENILITY-STRIKES
|
|
RTRUE
|
|
?CND40: FSET BABY,TOUCHBIT
|
|
FSET BLANKET,NDESCBIT
|
|
MOVE BLANKET,BABY
|
|
EQUAL? PRSI,BASKET \?CND45
|
|
MOVE BABY,BASKET
|
|
?CND45: PUTP BABY,P?SDESC,STR?332
|
|
CALL DEQUEUE,I-CRY
|
|
PRINTR "The baby stops crying and, in the comfy warmth of the blanket, slips into a calm sleep. A peaceful smile creeps over its face."
|
|
?ELS31: EQUAL? PRSA,V?PUT \?ELS53
|
|
EQUAL? PRSI,SHEET /?THN50
|
|
?ELS53: EQUAL? PRSA,V?WRAP,V?PUT-ON \?ELS49
|
|
EQUAL? PRSO,SHEET \?ELS49
|
|
?THN50: IN? BLANKET,BABY /?THN61
|
|
FSET? SHEET,MUNGBIT /?THN61
|
|
FSET? SHEET,PLURALBIT \?ELS60
|
|
?THN61: CALL WASTES
|
|
RSTACK
|
|
?ELS60: PRINTR "The sheet provides little warmth."
|
|
?ELS49: EQUAL? PRSA,V?PUT \?ELS66
|
|
EQUAL? PRSI,BASKET \?ELS66
|
|
IN? BASKET,FRONT-STOOP \?ELS66
|
|
FIRST? BASKET /?ELS66
|
|
IN? BLANKET,BABY \?ELS73
|
|
MOVE BABY,BASKET
|
|
CALL ABANDON-BABY,STR?333
|
|
RSTACK
|
|
?ELS73: CALL CRYING-ALERTS-MATRON
|
|
RSTACK
|
|
?ELS66: EQUAL? PRSA,V?REMOVE \?ELS77
|
|
IN? BLANKET,BABY \?ELS77
|
|
MOVE BLANKET,PROTAGONIST
|
|
FCLEAR BLANKET,NDESCBIT
|
|
PUTP BABY,P?SDESC,STR?331
|
|
CALL QUEUE,I-CRY,-1
|
|
PRINTI "The baby robo"
|
|
PRINT TWICE-AS-LOUD
|
|
CALL ULTIMATELY-IN?,BABY,FRONT-STOOP
|
|
ZERO? STACK /TRUE
|
|
PRINTI " "
|
|
CALL CRYING-ALERTS-MATRON
|
|
RTRUE
|
|
?ELS77: EQUAL? PRSA,V?KISS \?ELS84
|
|
IN? BLANKET,BABY \?ELS89
|
|
CALL PERFORM,V?ALARM,BABY
|
|
RTRUE
|
|
?ELS89: PRINTI "The "
|
|
CALL DPRINT,BABY
|
|
PRINTI " reacts as a human baby would react if kissed by a giant walking metal machine. In other words, i"
|
|
PRINT TWICE-AS-LOUD
|
|
RTRUE
|
|
?ELS84: EQUAL? PRSA,V?LISTEN \?ELS93
|
|
IN? BLANKET,BABY /?ELS93
|
|
PRINTR """Waaaa!"""
|
|
?ELS93: EQUAL? PRSA,V?SHAKE \?ELS97
|
|
IN? BLANKET,BABY \?ELS102
|
|
PRINTR "The baby's asleep!"
|
|
?ELS102: PRINTI "This upsets the "
|
|
CALL DPRINT,BABY
|
|
PRINTI "'s equilibrium mechanism. I"
|
|
PRINT TWICE-AS-LOUD
|
|
RTRUE
|
|
?ELS97: EQUAL? PRSA,V?ALARM \?ELS106
|
|
IN? BLANKET,BABY \?ELS106
|
|
PRINTR "The baby whimpers briefly, but the warm coziness of the blanket soon lulls it back to sleep."
|
|
?ELS106: CALL TAKE-BABY-FROM-STOOP,BABY
|
|
ZERO? STACK \TRUE
|
|
EQUAL? PRSA,V?SUCKLE \?ELS112
|
|
ZERO? MALE /?ELS117
|
|
PRINTR "You're a male, remember? You obviously have a poor mammary."
|
|
?ELS117: PRINTR "How touching that the baby robot has stirred your maternal instinct. Unfortunately, your mammaries won't produce #3 machine oil."
|
|
?ELS112: EQUAL? PRSA,V?PUT-NEAR,V?PUT \?ELS122
|
|
EQUAL? PRSI,ORPHANAGE-DOOR \?ELS122
|
|
CALL PERFORM,V?PUT-ON,BABY,FRONT-STOOP
|
|
RTRUE
|
|
?ELS122: EQUAL? PRSA,V?EXAMINE \?ELS126
|
|
PRINTI "The "
|
|
CALL DPRINT,BABY
|
|
PRINTI " is "
|
|
IN? BLANKET,BABY \?ELS129
|
|
PRINTI "sleep"
|
|
JUMP ?CND127
|
|
?ELS129: PRINTI "cry"
|
|
?CND127: PRINTR "ing."
|
|
?ELS126: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
|
|
PRINT HUH
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CRYING-ALERTS-MATRON
|
|
PRINTI "The baby's crying alerts someone within the igloo. "
|
|
CALL SHOO,STR?334
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SHOO,STRING
|
|
CALL DEQUEUE,I-ORPHANAGE
|
|
PRINT MATRON-DESC
|
|
PRINTI "appears. ""Caught you, you baby-"
|
|
PRINT STRING
|
|
PRINTI "ing gypsy!"" she cries, in a voice that, in a more mountainous region, could probably initiate an avalanche. ""Begone!"" She "
|
|
CALL ULTIMATELY-IN?,BABY,FRONT-STOOP
|
|
ZERO? STACK /?CND1
|
|
PRINTI "thrusts the babe into your arms and "
|
|
?CND1: IN? BASKET,FRONT-STOOP \?CND4
|
|
MOVE BASKET,PROTAGONIST
|
|
?CND4: CALL ULTIMATELY-IN?,BABY,FRONT-STOOP
|
|
ZERO? STACK /?CND7
|
|
MOVE BABY,PROTAGONIST
|
|
?CND7: PRINTI "drives you away with blows that would fell an elephant."
|
|
CRLF
|
|
CRLF
|
|
EQUAL? HERE,ORPHANAGE-FOYER \?ELS14
|
|
CALL GOTO,SOUTH-POLE
|
|
RSTACK
|
|
?ELS14: CALL GOTO,GYPSY-CAMP
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SOUTH-POLE-F,RARG
|
|
EQUAL? RARG,M-ENTER \FALSE
|
|
ZERO? COTTON-BALLS-SEEN /FALSE
|
|
FSET? COTTON-BALLS,TRYTAKEBIT \FALSE
|
|
MOVE COTTON-BALLS,HERE
|
|
FSET COTTON-BALLS,NDESCBIT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ORPHANAGE-DOOR-F
|
|
EQUAL? PRSA,V?KNOCK \FALSE
|
|
EQUAL? HERE,SOUTH-POLE \FALSE
|
|
CALL VISIBLE?,BABY
|
|
ZERO? STACK /?ELS12
|
|
CALL SHOO,STR?334
|
|
RSTACK
|
|
?ELS12: CALL SHOO,STR?339
|
|
RSTACK
|
|
|
|
|
|
.FUNCT FRONT-STOOP-F
|
|
EQUAL? PRSA,V?PUT-NEAR,V?PUT-ON,V?PUT \?ELS5
|
|
EQUAL? PRSO,BABY \?ELS10
|
|
IN? BABY,BASKET /?ELS10
|
|
IN? BLANKET,BABY \?CND13
|
|
CALL COLD-CAUSES-CRYING
|
|
?CND13: MOVE PRSO,FRONT-STOOP
|
|
CALL CRYING-ALERTS-MATRON
|
|
RSTACK
|
|
?ELS10: EQUAL? PRSO,BABY,BASKET \FALSE
|
|
IN? BABY,BASKET \FALSE
|
|
IN? BLANKET,BABY /?ELS24
|
|
CALL CRYING-ALERTS-MATRON
|
|
RSTACK
|
|
?ELS24: MOVE BASKET,FRONT-STOOP
|
|
CALL ABANDON-BABY,STR?340
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?STAND-ON,V?ENTER,V?BOARD \?ELS28
|
|
CALL WASTES
|
|
RSTACK
|
|
?ELS28: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSO,BABY \FALSE
|
|
CALL COLD-CAUSES-CRYING
|
|
CALL CRYING-ALERTS-MATRON
|
|
RSTACK
|
|
|
|
|
|
.FUNCT COLD-CAUSES-CRYING
|
|
PRINTI "As you place the baby on the cold doorstep, i"
|
|
PRINT TWICE-AS-LOUD
|
|
PRINTI " "
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ABANDON-BABY,STRING
|
|
CALL QUEUE,I-ORPHANAGE,5
|
|
MOVE PROTAGONIST,HERE
|
|
PRINTI "You place the baby gently "
|
|
PRINT STRING
|
|
PRINTR " and sneak behind a nearby snowdrift."
|
|
|
|
|
|
.FUNCT I-ORPHANAGE
|
|
REMOVE BABY
|
|
REMOVE BASKET
|
|
FCLEAR ORPHANAGE-DOOR,LOCKEDBIT
|
|
EQUAL? HERE,SOUTH-POLE \FALSE
|
|
SET 'FOLLOW-FLAG,15
|
|
CALL QUEUE,I-FOLLOW,2
|
|
PRINTI " "
|
|
PRINT MATRON-DESC
|
|
PRINTI "opens the "
|
|
PRINTD ORPHANAGE-DOOR
|
|
PRINTR ". She coos over the baby for a moment then carries it inside, closing the door behind her."
|
|
|
|
|
|
.FUNCT ORPHANAGE-FOYER-F,RARG
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
FSET? COTTON-BALLS,TRYTAKEBIT \?CND6
|
|
MOVE COTTON-BALLS,HERE
|
|
FCLEAR COTTON-BALLS,NDESCBIT
|
|
?CND6: CALL QUEUED?,I-ORPHANAGE-BOOT
|
|
ZERO? STACK \FALSE
|
|
CALL QUEUE,I-ORPHANAGE-BOOT,5
|
|
RSTACK
|
|
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
|
PRINTI "The igloo's front hall has rooms to the northeast and northwest. A barred window is next to the "
|
|
CALL OPEN-CLOSED,ORPHANAGE-DOOR
|
|
PRINTI " door to the south."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT IGLOO-ENTER-F
|
|
PRINTI "Nursery"
|
|
CRLF
|
|
CALL I-ORPHANAGE-BOOT
|
|
CALL DEQUEUE,I-ORPHANAGE-BOOT
|
|
RFALSE
|
|
|
|
|
|
.FUNCT I-ORPHANAGE-BOOT
|
|
EQUAL? HERE,ORPHANAGE-FOYER \?ELS5
|
|
PRINTI " "
|
|
CALL SHOO,STR?339
|
|
FCLEAR ORPHANAGE-DOOR,OPENBIT
|
|
FSET ORPHANAGE-DOOR,LOCKEDBIT
|
|
RTRUE
|
|
?ELS5: EQUAL? HERE,SOUTH-POLE \?ELS7
|
|
FSET? ORPHANAGE-DOOR,OPENBIT \?ELS7
|
|
PRINTI " The "
|
|
PRINTD ORPHANAGE-DOOR
|
|
PRINTI " slams shut."
|
|
CRLF
|
|
FCLEAR ORPHANAGE-DOOR,OPENBIT
|
|
FSET ORPHANAGE-DOOR,LOCKEDBIT
|
|
RTRUE
|
|
?ELS7: FCLEAR ORPHANAGE-DOOR,OPENBIT
|
|
FSET ORPHANAGE-DOOR,LOCKEDBIT
|
|
RFALSE
|
|
|
|
|
|
.FUNCT COTTON-BALLS-F
|
|
EQUAL? HERE,SOUTH-POLE \?ELS5
|
|
FSET? COTTON-BALLS,TRYTAKEBIT \?ELS5
|
|
CALL TOUCHING?,COTTON-BALLS
|
|
ZERO? STACK /?ELS5
|
|
CALL CANT-REACH,COTTON-BALLS
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?TAKE \?ELS9
|
|
FSET? COTTON-BALLS,TRYTAKEBIT \?ELS9
|
|
CALL INCREMENT-SCORE,16,29,TRUE-VALUE
|
|
FCLEAR COTTON-BALLS,TRYTAKEBIT
|
|
RFALSE
|
|
?ELS9: FSET? COTTON-BALLS,UNTEEDBIT \?ELS13
|
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
|
PRINTR "Let's just say that some poor male raccoon is speaking in a particularly high-pitched voice."
|
|
?ELS13: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS22
|
|
EQUAL? PRSI,EARS \?ELS22
|
|
ZERO? GONE-APE /?ELS29
|
|
PRINT DEXTERITY
|
|
RTRUE
|
|
?ELS29: FSET COTTON-BALLS,WORNBIT
|
|
FSET EARS,MUNGBIT
|
|
MOVE COTTON-BALLS,PROTAGONIST
|
|
PRINT MUFFLED
|
|
PRINTI " have "
|
|
CALL DPRINT,COTTON-BALLS
|
|
PRINTI " stuffed in "
|
|
PRINTD EARS
|
|
PRINT PERIOD-CR
|
|
RTRUE
|
|
?ELS22: EQUAL? PRSA,V?DISEMBARK,V?REMOVE \?ELS34
|
|
FSET? COTTON-BALLS,WORNBIT \?ELS34
|
|
ZERO? GONE-APE /?CND37
|
|
CALL PERFORM,V?TAKE,COTTON-BALLS
|
|
RTRUE
|
|
?CND37: CALL OPEN-EYES-AND-REMOVE-HANDS
|
|
FCLEAR COTTON-BALLS,WORNBIT
|
|
CALL SENSE-AGAIN,EARS
|
|
RSTACK
|
|
?ELS34: EQUAL? PRSA,V?PUT \FALSE
|
|
EQUAL? PRSI,NOSE \FALSE
|
|
PRINTI "The "
|
|
PRINTD COTTON-BALLS
|
|
PRINTR " is too itchy."
|
|
|
|
|
|
.FUNCT IGLOO-F
|
|
EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5
|
|
EQUAL? HERE,ORPHANAGE-FOYER \?ELS10
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS10: EQUAL? HERE,SOUTH-POLE \FALSE
|
|
CALL DO-WALK,P?IN
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS14
|
|
EQUAL? HERE,SOUTH-POLE \?ELS19
|
|
PRINT LOOK-AROUND
|
|
RTRUE
|
|
?ELS19: CALL DO-WALK,P?OUT
|
|
RSTACK
|
|
?ELS14: EQUAL? PRSA,V?LOOK-INSIDE \?ELS23
|
|
EQUAL? HERE,SOUTH-POLE \?ELS28
|
|
CALL PERFORM-PRSA,WINDOW
|
|
RTRUE
|
|
?ELS28: CALL V-LOOK
|
|
RSTACK
|
|
?ELS23: EQUAL? PRSA,V?SEARCH \FALSE
|
|
PRINT NOTHING-NEW
|
|
RTRUE
|
|
|
|
.ENDI
|