1220 lines
36 KiB
Plaintext
1220 lines
36 KiB
Plaintext
|
|
||
|
|
||
|
.FUNCT PICK-DIRECTION,RM,NXT=0,CNT=0,OFFS=0
|
||
|
?PRG1: NEXTP RM,NXT >NXT
|
||
|
ZERO? NXT \?ELS5
|
||
|
JUMP ?REP2
|
||
|
?ELS5: LESS? NXT,LOW-DIRECTION /?PRG1
|
||
|
EQUAL? NXT,P?UP,P?DOWN /?PRG1
|
||
|
INC 'OFFS
|
||
|
PUT DIR-TBL,OFFS,NXT
|
||
|
INC 'CNT
|
||
|
JUMP ?PRG1
|
||
|
?REP2: RANDOM CNT
|
||
|
GET DIR-TBL,STACK
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT SHADOW-F,RARG=0
|
||
|
EQUAL? RARG,M-OBJDESC \?ELS5
|
||
|
ZERO? BLOCKED-DIR \?CND6
|
||
|
CALL PICK-DIRECTION,HERE >BLOCKED-DIR
|
||
|
?CND6: PRINTI "A cloaked and hooded person, carrying a sword not unlike your own,"
|
||
|
GRTR? S-STRENGTH,3 \?ELS13
|
||
|
PRINTI " is standing blocking the way to the "
|
||
|
CALL LKP,BLOCKED-DIR,DIRS
|
||
|
PRINT STACK
|
||
|
PRINTI "."
|
||
|
CRLF
|
||
|
JUMP ?CND11
|
||
|
?ELS13: PRINTI " is here."
|
||
|
CRLF
|
||
|
?CND11: PRINTI "The hooded figure"
|
||
|
GET SHADOW-DIAG,S-STRENGTH
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
?ELS5: EQUAL? PRSA,V?GIVE \?ELS25
|
||
|
EQUAL? PRSI,SHADOW \?ELS25
|
||
|
PRINTR "The hooded figure isn't interested in your gifts."
|
||
|
?ELS25: CALL HELLO?,SHADOW
|
||
|
ZERO? STACK /?ELS31
|
||
|
PRINTR "The hooded figure does not respond to your words."
|
||
|
?ELS31: EQUAL? PRSA,V?KILL,V?ATTACK \?ELS35
|
||
|
EQUAL? PRSI,SWORD \?ELS35
|
||
|
ZERO? SHADOW-POINT-2 \?CND38
|
||
|
INC 'SCORE
|
||
|
SET 'SHADOW-POINT-2,TRUE-VALUE
|
||
|
?CND38: CALL SHADOW-ATTACK
|
||
|
RSTACK
|
||
|
?ELS35: EQUAL? PRSA,V?KILL,V?ATTACK \FALSE
|
||
|
PRINTI "The hooded figure ignores your feeble attack."
|
||
|
CRLF
|
||
|
SET 'ATTACK-MODE,TRUE-VALUE
|
||
|
CALL QUEUE,I-CURE,10
|
||
|
PUT STACK,0,1
|
||
|
CALL QUEUE,I-SHADOW-REPLY,-1
|
||
|
PUT STACK,0,1
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT I-CURE
|
||
|
EQUAL? P-STRENGTH,5 /?CND1
|
||
|
INC 'P-STRENGTH
|
||
|
?CND1: EQUAL? S-STRENGTH,5 /?CND4
|
||
|
INC 'S-STRENGTH
|
||
|
?CND4: ADD P-STRENGTH,S-STRENGTH
|
||
|
EQUAL? STACK,10 /FALSE
|
||
|
CALL QUEUE,I-CURE,10
|
||
|
RFALSE
|
||
|
|
||
|
|
||
|
.FUNCT SHADOW-ATTACK,?TMP1
|
||
|
ZERO? ATTACK-MODE \?CND1
|
||
|
CALL QUEUE,I-CURE,10
|
||
|
PUT STACK,0,1
|
||
|
SET 'ATTACK-MODE,TRUE-VALUE
|
||
|
CALL QUEUE,I-SHADOW-REPLY,-1
|
||
|
PUT STACK,0,1
|
||
|
?CND1: MUL P-STRENGTH,10
|
||
|
ADD STACK,10 >?TMP1
|
||
|
RANDOM 100
|
||
|
GRTR? ?TMP1,STACK \?ELS8
|
||
|
RANDOM 100
|
||
|
GRTR? 85,STACK \?ELS13
|
||
|
DEC 'S-STRENGTH
|
||
|
ZERO? S-STRENGTH \?CND14
|
||
|
CALL SHADOW-DIES
|
||
|
RTRUE
|
||
|
?CND14: CALL PICK-ONE,P-HITS
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
PRINTI "The figure"
|
||
|
GET SHADOW-DIAG,S-STRENGTH
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
?ELS13: SUB S-STRENGTH,2 >S-STRENGTH
|
||
|
ZERO? S-STRENGTH \?ELS25
|
||
|
SET 'S-STRENGTH,1
|
||
|
JUMP ?CND23
|
||
|
?ELS25: LESS? S-STRENGTH,1 \?CND23
|
||
|
CALL SHADOW-DIES
|
||
|
RTRUE
|
||
|
?CND23: PRINTI "A sharp thrust and the hooded figure is badly wounded!"
|
||
|
CRLF
|
||
|
PRINTI "The figure"
|
||
|
GET SHADOW-DIAG,S-STRENGTH
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
?ELS8: LESS? S-STRENGTH,2 \?ELS38
|
||
|
PRINTR "Your opponent blocks your attack with its sword."
|
||
|
?ELS38: CALL PICK-ONE,P-MISSES
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT I-SHADOW-REPLY,?TMP1
|
||
|
ZERO? ATTACK-MODE /?THN4
|
||
|
IN? SHADOW,HERE /?CND1
|
||
|
?THN4: CALL QUEUE,I-SHADOW-REPLY,0
|
||
|
SET 'ATTACK-MODE,FALSE-VALUE
|
||
|
RFALSE
|
||
|
?CND1: MUL S-STRENGTH,10
|
||
|
ADD STACK,10 >?TMP1
|
||
|
RANDOM 100
|
||
|
GRTR? ?TMP1,STACK \?ELS10
|
||
|
GRTR? S-STRENGTH,1 \?ELS10
|
||
|
RANDOM 100
|
||
|
GRTR? 90,STACK \?ELS17
|
||
|
DLESS? 'P-STRENGTH,1 \?ELS22
|
||
|
SET 'P-STRENGTH,1
|
||
|
PRINTR "The hooded figure swings its sword and sends yours flying to the ground. Although you are defenseless, the figure reaches for your sword and hands it back to you, nodding grimly."
|
||
|
?ELS22: CALL PICK-ONE,S-HITS
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
?ELS17: SUB P-STRENGTH,2 >P-STRENGTH
|
||
|
LESS? P-STRENGTH,1 \?ELS35
|
||
|
CALL JIGS-UP,STR?160
|
||
|
RSTACK
|
||
|
?ELS35: PRINTR "A brilliant feint puts you off guard, and the hooded figure slips its sword between your ribs. You are hurt very badly."
|
||
|
?ELS10: LESS? S-STRENGTH,3 \?ELS41
|
||
|
PRINTR "The hooded figure attempts a thrust, but its weakened state prevents hitting you."
|
||
|
?ELS41: CALL PICK-ONE,S-MISSES
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT SHADOW-DIES
|
||
|
PRINTI "The hooded figure, fatally wounded, slumps to the ground. It gazes up at you once, and you catch a brief glimpse of deep and sorrowful eyes. Before you can react, the figure vanishes in a cloud of fetid vapor."
|
||
|
CRLF
|
||
|
REMOVE SHADOW
|
||
|
SET 'SHADOW-GONE,TRUE-VALUE
|
||
|
SET 'BLOCKED-DIR,FALSE-VALUE
|
||
|
RETURN BLOCKED-DIR
|
||
|
|
||
|
|
||
|
.FUNCT HOOD-F
|
||
|
EQUAL? PRSA,V?LOOK-UNDER \?ELS5
|
||
|
IN? HOOD,SHADOW \?ELS5
|
||
|
PRINTR "The figure's hood casts a dark shadow over its face. There is no way from where you stand to look beneath it."
|
||
|
?ELS5: EQUAL? PRSA,V?TAKE \FALSE
|
||
|
IN? HOOD,SHADOW \FALSE
|
||
|
EQUAL? S-STRENGTH,1 \?ELS18
|
||
|
PRINTI "You slowly remove the hood from your badly wounded opponent and recoil in horror at the sight of your own face, weary and wounded. A faint smile comes to the lips and then the face starts to change, very slowly, into that of an old, wizened person. The image fades and with it the body of your hooded opponent. The cloak remains on the ground."
|
||
|
CRLF
|
||
|
REMOVE SHADOW
|
||
|
SET 'SHADOW-GONE,TRUE-VALUE
|
||
|
MOVE HOOD,WINNER
|
||
|
FCLEAR HOOD,NDESCBIT
|
||
|
MOVE CLOAK,HERE
|
||
|
FCLEAR CLOAK,NDESCBIT
|
||
|
RTRUE
|
||
|
?ELS18: EQUAL? S-STRENGTH,2 \?ELS22
|
||
|
PRINTR "The hooded figure, though recovering from wounds, is strong enough to force you back."
|
||
|
?ELS22: PRINTR "You cannot get close enough to the hooded figure to remove the hood."
|
||
|
|
||
|
|
||
|
.FUNCT CLOAK-F
|
||
|
EQUAL? PRSA,V?LOOK-UNDER \?ELS5
|
||
|
IN? CLOAK,SHADOW \?ELS5
|
||
|
PRINTR "You cannot get close enough to look underneath the cloak."
|
||
|
?ELS5: EQUAL? PRSA,V?TAKE \FALSE
|
||
|
IN? CLOAK,SHADOW \FALSE
|
||
|
PRINTR "The cloak is fastened around the neck of the hooded figure. It would be difficult to remove."
|
||
|
|
||
|
|
||
|
.FUNCT V-DIAGNOSE
|
||
|
GET DIAG,P-STRENGTH
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT SHADOW-ROOMS,RARG
|
||
|
EQUAL? RARG,M-BEG \?ELS5
|
||
|
EQUAL? PRSA,V?WALK \?ELS5
|
||
|
EQUAL? PRSO,BLOCKED-DIR \?ELS5
|
||
|
PRINTR "Your way is blocked by the hooded figure."
|
||
|
?ELS5: EQUAL? RARG,M-END \FALSE
|
||
|
IN? SHADOW,HERE /?CND12
|
||
|
SET 'BLOCKED-DIR,FALSE-VALUE
|
||
|
REMOVE SHADOW
|
||
|
?CND12: ZERO? SHADOW-GONE \FALSE
|
||
|
IN? SHADOW,HERE \?ELS22
|
||
|
RANDOM 100
|
||
|
GRTR? 30,STACK \FALSE
|
||
|
ZERO? ATTACK-MODE \FALSE
|
||
|
SET 'ATTACK-MODE,TRUE-VALUE
|
||
|
CALL QUEUE,I-CURE,10
|
||
|
PUT STACK,0,1
|
||
|
CALL QUEUE,I-SHADOW-REPLY,-1
|
||
|
PUT STACK,0,1
|
||
|
RTRUE
|
||
|
?ELS22: RANDOM 100
|
||
|
GRTR? 30,STACK \?ELS31
|
||
|
PRINTR "You can hear quiet footsteps nearby."
|
||
|
?ELS31: RANDOM 100
|
||
|
GRTR? 30,STACK \FALSE
|
||
|
ZERO? LIT /FALSE
|
||
|
GRTR? S-STRENGTH,3 \FALSE
|
||
|
CALL PICK-DIRECTION,HERE >BLOCKED-DIR
|
||
|
PRINTI "Through the shadows, a cloaked and hooded figure appears before you, blocking the "
|
||
|
CALL LKP,BLOCKED-DIR,DIRS
|
||
|
PRINT STACK
|
||
|
PRINTI "ern exit from the room and carrying a brightly glowing sword."
|
||
|
CRLF
|
||
|
CALL SHADOW-ARRIVAL
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT SHADOW-ARRIVAL
|
||
|
MOVE SHADOW,HERE
|
||
|
ZERO? SHADOW-POINT-1 \?CND1
|
||
|
INC 'SCORE
|
||
|
SET 'SHADOW-POINT-1,TRUE-VALUE
|
||
|
?CND1: IN? SWORD,WINNER /FALSE
|
||
|
MOVE SWORD,WINNER
|
||
|
ZERO? SWORD-IN-STONE? /?ELS11
|
||
|
PRINTI "From nowhere, the sword from the junction appears in your hand, wildly glowing!"
|
||
|
CRLF
|
||
|
JUMP ?CND9
|
||
|
?ELS11: PRINTI "Your sword, glowing wildly, appears in your hand!"
|
||
|
CRLF
|
||
|
?CND9: SET 'SWORD-IN-STONE?,FALSE-VALUE
|
||
|
RETURN SWORD-IN-STONE?
|
||
|
|
||
|
|
||
|
.FUNCT CREEPY-CRAWL-F,RARG
|
||
|
EQUAL? RARG,M-END \FALSE
|
||
|
SET 'BLOCKED-DIR,FALSE-VALUE
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT LEDGE-F
|
||
|
EQUAL? HERE,CLIFF-LEDGE \FALSE
|
||
|
EQUAL? PRSA,V?THROW-OFF \FALSE
|
||
|
EQUAL? PRSI,LEDGE \FALSE
|
||
|
IN? PRSO,WINNER /?CND8
|
||
|
PRINTR "You're not holding that!"
|
||
|
?CND8: MOVE PRSO,CLIFF-BASE
|
||
|
PRINTI "The "
|
||
|
PRINTD PRSO
|
||
|
PRINTR " falls to the base of the cliff below."
|
||
|
|
||
|
|
||
|
.FUNCT WAYBREAD-F
|
||
|
EQUAL? PRSA,V?CUT \FALSE
|
||
|
EQUAL? PRSI,SWORD \FALSE
|
||
|
PRINTI "The bread is crushed rather than cut by your sword, and the crumbs scatter to the wind."
|
||
|
CRLF
|
||
|
REMOVE WAYBREAD
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT STAFF-F
|
||
|
EQUAL? PRSA,V?BURN \FALSE
|
||
|
EQUAL? PRSI,TORCH \FALSE
|
||
|
REMOVE PRSO
|
||
|
CALL JIGS-UP,STR?197
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT I-MAN-APPEARS
|
||
|
EQUAL? HERE,CLIFF-LEDGE \FALSE
|
||
|
LOC CHEST
|
||
|
EQUAL? STACK,CLIFF-LEDGE,WINNER \FALSE
|
||
|
ZERO? CHEST-TIED /?ELS9
|
||
|
SET 'MAN-SEEN,TRUE-VALUE
|
||
|
PRINTI "All at once, the chest is lifted from you. Looking up, you see a man at the top of the cliff, pulling intently at the rope. ""That is uncommonly good of you, I do say!"" He chuckles unpleasantly. ""Oh, you are stuck, aren't you. Well, I'll be right back to get you!"" He leaves your sight."
|
||
|
CRLF
|
||
|
SET 'CHEST-LIFTED,TRUE-VALUE
|
||
|
MOVE CHEST,MAN
|
||
|
FSET CHEST,TOUCHBIT
|
||
|
SET 'ROPE-FLAG,FALSE-VALUE
|
||
|
SET 'CHEST-TIED,FALSE-VALUE
|
||
|
CALL QUEUE,I-MAN-RETURNS,10
|
||
|
PUT STACK,0,1
|
||
|
RTRUE
|
||
|
?ELS9: PRINTI "At the edge of the cliff above you, a man appears. He looks down at you and speaks. ""Hello, down there! You seem to have a problem. Maybe I can help you."" He chuckles in an unsettling sort of way. ""Perhaps if you tied that chest to the end of the rope I might be able to drag it up for you. Then, I'll be more than happy to help you up!"" He laughs again."
|
||
|
CRLF
|
||
|
SET 'MAN-FLAG,TRUE-VALUE
|
||
|
SET 'MAN-SEEN,TRUE-VALUE
|
||
|
CALL QUEUE,I-MAN-PRESENT,-1
|
||
|
PUT STACK,0,1
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT I-MAN-PRESENT
|
||
|
EQUAL? HERE,CLIFF-LEDGE \?THN6
|
||
|
ZERO? MAN-FLAG /?THN6
|
||
|
IN? CHEST,MAN \?ELS5
|
||
|
?THN6: CALL QUEUE,I-MAN-PRESENT,0
|
||
|
SET 'MAN-FLAG,FALSE-VALUE
|
||
|
RFALSE
|
||
|
?ELS5: IGRTR? 'MAN-WAITING,10 \?ELS9
|
||
|
PRINTI "The man looks quite displeased. ""All right, then. I guess someone else can always help me! See you around, sport!"" He disappears."
|
||
|
CRLF
|
||
|
CALL QUEUE,I-MAN-PRESENT,0
|
||
|
SET 'MAN-FLAG,FALSE-VALUE
|
||
|
RTRUE
|
||
|
?ELS9: CALL PICK-ONE,MAN-WAITS
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT CLIFF-BASE-F,RARG
|
||
|
EQUAL? RARG,M-ENTER \FALSE
|
||
|
ZERO? CHEST-TIED /FALSE
|
||
|
SET 'CHEST-TIED,FALSE-VALUE
|
||
|
SET 'ROPE-FLAG,FALSE-VALUE
|
||
|
CALL QUEUE,I-MAN-APPEARS,0
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT CLIFF-LEDGE-F,RARG
|
||
|
EQUAL? RARG,M-BEG \?ELS5
|
||
|
EQUAL? PRSA,V?WALK \?ELS5
|
||
|
IN? CHEST,WINNER \?ELS5
|
||
|
ZERO? CHEST-TIED /?ELS5
|
||
|
PRINTR "You can't go anywhere holding that chest. The rope is tied around it!"
|
||
|
?ELS5: EQUAL? RARG,M-ENTER \?ELS11
|
||
|
ZERO? MAN-SEEN \?ELS11
|
||
|
ZERO? MAN-FLAG \?ELS11
|
||
|
ZERO? MAN-GONE \?ELS11
|
||
|
ZERO? MAN-POINT \?CND14
|
||
|
INC 'SCORE
|
||
|
SET 'MAN-POINT,TRUE-VALUE
|
||
|
?CND14: CALL QUEUE,I-MAN-APPEARS,5
|
||
|
PUT STACK,0,1
|
||
|
RTRUE
|
||
|
?ELS11: EQUAL? RARG,M-LOOK \FALSE
|
||
|
PRINTI "This is a rock-strewn ledge near the base of a tall cliff. The bottom of the cliff is another fifteen feet below. You have little hope of climbing up the cliff face, but you might be able to scramble down from here (though it's doubtful you could return)."
|
||
|
CRLF
|
||
|
ZERO? ROPE-FLAG /TRUE
|
||
|
PRINTR "A long piece of rope is dangling down from the top of the cliff and is within your reach."
|
||
|
|
||
|
|
||
|
.FUNCT CLIFF-F,RARG
|
||
|
EQUAL? RARG,M-ENTER \?ELS5
|
||
|
IN? CHEST,MAN \?ELS5
|
||
|
CALL QUEUE,I-MAN-RETURNS,0
|
||
|
MOVE CHEST,HERE
|
||
|
FSET CHEST,OPENBIT
|
||
|
SET 'ROPE-FLAG,TRUE-VALUE
|
||
|
SET 'CHEST-TIED,FALSE-VALUE
|
||
|
SET 'CHEST-OPENED,TRUE-VALUE
|
||
|
RFALSE
|
||
|
?ELS5: EQUAL? RARG,M-LOOK \?ELS9
|
||
|
PRINTI "This is a remarkable spot in the dungeon. Perhaps two hundred feet above you is a gaping hole in the earth's surface through which pours bright sunshine! A few seedlings from the world above, nurtured by the sunlight and occasional rains, have grown into giant trees, making this a virtual oasis in the desert of the Underground Empire. To the west is a sheer precipice, dropping nearly fifty feet to jagged rocks below. The way south is barred by a forbidding stone wall, crumbling from age. There is a jagged opening in the wall to the southwest, through which leaks a fine mist. The land to the east looks lifeless and barren."
|
||
|
CRLF
|
||
|
ZERO? ROPE-FLAG /TRUE
|
||
|
PRINTR "A rope is tied to one of the large trees here and is dangling over the side of the cliff, reaching down to the shelf below."
|
||
|
?ELS9: EQUAL? RARG,M-END \?ELS19
|
||
|
RANDOM 100
|
||
|
GRTR? 15,STACK \?ELS19
|
||
|
FSET? CLIFF-LEDGE,TOUCHBIT /?ELS19
|
||
|
PRINTR "You catch, out of the corner of your eye, some movement among the trees."
|
||
|
?ELS19: EQUAL? RARG,M-END \FALSE
|
||
|
RANDOM 100
|
||
|
GRTR? 20,STACK \FALSE
|
||
|
PRINTR "You seem to hear, from the southwest, the sounds of the sea."
|
||
|
|
||
|
|
||
|
.FUNCT GLOBAL-ROPE-F
|
||
|
ZERO? ROPE-FLAG \?ELS5
|
||
|
PRINTR "You can't see any rope here."
|
||
|
?ELS5: EQUAL? PRSA,V?CLIMB-ON,V?MOVE,V?TAKE \?ELS9
|
||
|
ZERO? MAN-FLAG \?ELS14
|
||
|
PRINTR "A short tug on the rope convinces you that it is securely fastened from above."
|
||
|
?ELS14: IN? CHEST,MAN \?ELS18
|
||
|
SET 'HOLDING-ROPE,TRUE-VALUE
|
||
|
PRINTR "You grab securely on to the rope."
|
||
|
?ELS18: PRINTR "The man scowls. ""I may help you up, but not before I have that chest."" He points to the chest near you on the ledge."
|
||
|
?ELS9: EQUAL? PRSA,V?CLIMB-UP \?ELS26
|
||
|
PRINTR "You try to climb the rope, but you cannot reach the top even with your best effort."
|
||
|
?ELS26: EQUAL? PRSA,V?TIE \?ELS30
|
||
|
EQUAL? CHEST,PRSO,PRSI \?ELS35
|
||
|
PRINTI "The chest is now tied to the rope."
|
||
|
CRLF
|
||
|
SET 'CHEST-TIED,TRUE-VALUE
|
||
|
ZERO? MAN-FLAG /TRUE
|
||
|
ZERO? MAN-GONE \TRUE
|
||
|
PRINTI "The man above you looks pleased. ""Now there's a good friend! Thank you very much, indeed!"" He pulls on the rope and the chest is lifted to the top of the cliff and out of sight. With a short laugh, he disappears. ""I'll be back in a short while!"" are his last words."
|
||
|
CRLF
|
||
|
MOVE CHEST,MAN
|
||
|
FSET CHEST,TOUCHBIT
|
||
|
SET 'CHEST-TIED,FALSE-VALUE
|
||
|
SET 'ROPE-FLAG,FALSE-VALUE
|
||
|
CALL QUEUE,I-MAN-RETURNS,10
|
||
|
PUT STACK,0,1
|
||
|
SET 'MAN-FLAG,FALSE-VALUE
|
||
|
RTRUE
|
||
|
?ELS35: EQUAL? ME,PRSI,PRSO \?ELS46
|
||
|
ZERO? MAN-FLAG /?ELS51
|
||
|
IN? CHEST,MAN \?ELS51
|
||
|
PRINTR """Just grab onto it!"", the man bellows."
|
||
|
?ELS51: ZERO? MAN-FLAG /?ELS57
|
||
|
PRINTR "The man looks cross. ""I want the chest, not you!"" he snaps. ""Now stop fooling around and pass it up!"""
|
||
|
?ELS57: PRINTR "You're unable to tie the rope around yourself."
|
||
|
?ELS46: PRINTR "You're unable to tie the rope to that."
|
||
|
?ELS30: EQUAL? PRSA,V?UNTIE \FALSE
|
||
|
ZERO? CHEST-TIED /?ELS75
|
||
|
SET 'CHEST-TIED,FALSE-VALUE
|
||
|
PRINTR "The chest is now disconnected from the rope."
|
||
|
?ELS75: PRINTR "The rope isn't tied to anything."
|
||
|
|
||
|
|
||
|
.FUNCT I-MAN-RETURNS
|
||
|
SET 'ROPE-FLAG,TRUE-VALUE
|
||
|
EQUAL? HERE,CLIFF-LEDGE \FALSE
|
||
|
PRINTI "A familiar voice calls down to you. ""Are you still there?"" he bellows with a coarse laugh. ""Well, then, grab onto the rope and we'll see what we can do."" The rope drops to within your reach."
|
||
|
CRLF
|
||
|
SET 'MAN-FLAG,TRUE-VALUE
|
||
|
CALL QUEUE,I-MAN-LIFT,-1
|
||
|
PUT STACK,0,1
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT I-MAN-LIFT
|
||
|
EQUAL? HERE,CLIFF-LEDGE /?ELS5
|
||
|
CALL QUEUE,I-MAN-LIFT,0
|
||
|
MOVE CHEST,CLIFF
|
||
|
FSET CHEST,OPENBIT
|
||
|
SET 'CHEST-OPENED,TRUE-VALUE
|
||
|
REMOVE MAN
|
||
|
RFALSE
|
||
|
?ELS5: ZERO? HOLDING-ROPE /?ELS7
|
||
|
PRINTI "The man starts to heave on the rope and within a few moments you arrive at the top of the cliff. The man removes the last few valuables from the chest and prepares to leave. ""You've been a good sport! Here, take this, for whatever good it is! I can't see that I'll be needing one!"" He hands you a plain wooden staff from the bottom of the chest and begins examining his valuables."
|
||
|
CRLF
|
||
|
CALL QUEUE,I-MAN-LIFT,0
|
||
|
MOVE STAFF,WINNER
|
||
|
SET 'HOLDING-ROPE,FALSE-VALUE
|
||
|
SET 'ROPE-FLAG,TRUE-VALUE
|
||
|
MOVE WINNER,CLIFF
|
||
|
MOVE CHEST,CLIFF
|
||
|
FSET CHEST,OPENBIT
|
||
|
PRINTI "The chest, open and empty, is at your feet."
|
||
|
CRLF
|
||
|
SET 'CHEST-OPENED,TRUE-VALUE
|
||
|
MOVE MAN,CLIFF
|
||
|
CALL QUEUE,I-MAN-LEAVES,-1
|
||
|
PUT STACK,0,1
|
||
|
RTRUE
|
||
|
?ELS7: IGRTR? 'LIFT-WAIT,4 \?ELS14
|
||
|
PRINTI """Well, I don't have all day. See you around sometime."" Showering you with gravel, he disappears from sight."
|
||
|
CRLF
|
||
|
SET 'MAN-FLAG,FALSE-VALUE
|
||
|
MOVE CHEST,CLIFF
|
||
|
FSET CHEST,OPENBIT
|
||
|
SET 'CHEST-OPENED,TRUE-VALUE
|
||
|
CALL QUEUE,I-MAN-LIFT,0
|
||
|
RSTACK
|
||
|
?ELS14: PRINTR "The man appears impatient. ""Are you coming up then, or not?"""
|
||
|
|
||
|
|
||
|
.FUNCT CHEST-F
|
||
|
ZERO? CHEST-OPENED /?ELS5
|
||
|
EQUAL? PRSA,V?TIE \?ELS11
|
||
|
EQUAL? ROPE,PRSO,PRSI \?ELS11
|
||
|
PRINTR "What's the point?"
|
||
|
?ELS11: EQUAL? PRSA,V?PUT \FALSE
|
||
|
EQUAL? PRSO,STAFF,LAMP,TORCH \FALSE
|
||
|
PRINTR "It doesn't fit."
|
||
|
?ELS5: EQUAL? PRSA,V?UNLOCK,V?OPEN \FALSE
|
||
|
ZERO? MAN-FLAG /?ELS30
|
||
|
PRINTR "The man calls down to you. ""Is this what you're looking for?"" he cackles, waving a small key over his head. You try to open the chest, but it is locked."
|
||
|
?ELS30: PRINTR "The chest is locked and cannot be opened."
|
||
|
|
||
|
|
||
|
.FUNCT I-MAN-LEAVES
|
||
|
EQUAL? HERE,CLIFF /?ELS5
|
||
|
REMOVE MAN
|
||
|
SET 'MAN-GONE,TRUE-VALUE
|
||
|
SET 'MAN-FLAG,FALSE-VALUE
|
||
|
SET 'ROPE-FLAG,TRUE-VALUE
|
||
|
CALL QUEUE,I-MAN-LEAVES,0
|
||
|
RFALSE
|
||
|
?ELS5: RANDOM 100
|
||
|
GRTR? 40,STACK \?ELS7
|
||
|
PRINTI "Your ""friend"", moving quickly, dodges behind some trees and is lost from sight."
|
||
|
CRLF
|
||
|
REMOVE MAN
|
||
|
SET 'MAN-FLAG,FALSE-VALUE
|
||
|
SET 'MAN-GONE,TRUE-VALUE
|
||
|
SET 'ROPE-FLAG,TRUE-VALUE
|
||
|
CALL QUEUE,I-MAN-LEAVES,0
|
||
|
RTRUE
|
||
|
?ELS7: PRINTR "Your ""friend"" examines his valuables with great pride."
|
||
|
|
||
|
|
||
|
.FUNCT MAN-F
|
||
|
EQUAL? PRSA,V?HELLO \?ELS5
|
||
|
PRINTR "He responds cheerfully. ""It is a wonderful day, isn't it?"""
|
||
|
?ELS5: CALL HELLO?,MAN
|
||
|
ZERO? STACK /?ELS9
|
||
|
PRINTR "The man is thoroughly engrossed in the examination of his booty and doesn't seem to hear you."
|
||
|
?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS13
|
||
|
PRINTR "The man is stocky and of medium height, with several days' growth of stubble on his face. He is carrying a number of valuables under his arm, presumably from the now-open chest."
|
||
|
?ELS13: EQUAL? PRSA,V?KILL,V?ATTACK \FALSE
|
||
|
EQUAL? PRSI,SWORD \?ELS22
|
||
|
PRINTI "The man is taken by surprise and is hit with the sword. He grabs you and throws you to the ground"
|
||
|
LOC STAFF
|
||
|
EQUAL? STACK,WINNER,HERE \?CND25
|
||
|
PRINTI ", breaking the staff in the process"
|
||
|
REMOVE STAFF
|
||
|
MOVE BROKEN-STAFF,HERE
|
||
|
?CND25: PRINTI ", but you finish him off with a quick thrust to the chest. He dies, and disappears without ceremony in the usual style of the Great Underground Empire. His assorted valuables remain behind."
|
||
|
CRLF
|
||
|
REMOVE MAN
|
||
|
MOVE VALUABLES,HERE
|
||
|
FCLEAR VALUABLES,NDESCBIT
|
||
|
CALL QUEUE,I-MAN-LEAVES,0
|
||
|
SET 'MAN-GONE,TRUE-VALUE
|
||
|
RETURN MAN-GONE
|
||
|
?ELS22: PRINTR "You wouldn't hurt him with that!"
|
||
|
|
||
|
|
||
|
.FUNCT VALUABLES-F
|
||
|
EQUAL? PRSA,V?MOVE,V?TAKE \FALSE
|
||
|
IN? MAN,CLIFF \FALSE
|
||
|
PRINTR "The man recoils sharply. ""These here things are mine. It's my chest and they're my valuables. You've a lot of nerve trying to take them from me after me saving you like that!"""
|
||
|
|
||
|
|
||
|
.FUNCT ROPE-F
|
||
|
EQUAL? PRSA,V?MOVE,V?TAKE \?ELS5
|
||
|
ZERO? ROPE-FLAG /FALSE
|
||
|
PRINTR "The rope is tied to a tree."
|
||
|
?ELS5: EQUAL? PRSA,V?BURN \?ELS15
|
||
|
PRINTR "The rope won't catch fire."
|
||
|
?ELS15: EQUAL? PRSA,V?UNTIE \?ELS19
|
||
|
PRINTR "The rope is very securely tied and cannot be undone."
|
||
|
?ELS19: EQUAL? PRSA,V?CUT \FALSE
|
||
|
EQUAL? PRSI,SWORD \FALSE
|
||
|
PRINTR "The rope is made of pretty tough stuff and won't cut."
|
||
|
|
||
|
|
||
|
.FUNCT GLOBAL-MAN-F
|
||
|
EQUAL? HERE,CLIFF \?ELS5
|
||
|
ZERO? MAN-GONE /?ELS10
|
||
|
PRINTR "You've lost him among the trees."
|
||
|
?ELS10: PRINTR "You can't see any man here."
|
||
|
?ELS5: ZERO? MAN-FLAG \?ELS19
|
||
|
PRINTR "You can't see any man here."
|
||
|
?ELS19: EQUAL? PRSA,V?GIVE \?ELS23
|
||
|
PRINTR "You aren't even close to him!"
|
||
|
?ELS23: EQUAL? PRSA,V?HELLO \?ELS27
|
||
|
PRINTR "The man waves back in a friendly way."
|
||
|
?ELS27: CALL HELLO?,GLOBAL-MAN
|
||
|
ZERO? STACK /?ELS31
|
||
|
PRINTI "He yells back, ""What's that you say? I can't hear you very well."
|
||
|
ZERO? CHEST-LIFTED \?ELS36
|
||
|
PRINTI " Just tie the rope to the chest and we can chat afterwards!"" He smiles broadly."
|
||
|
JUMP ?CND34
|
||
|
?ELS36: PRINTI """"
|
||
|
?CND34: CRLF
|
||
|
RTRUE
|
||
|
?ELS31: EQUAL? PRSA,V?MUNG,V?ATTACK,V?KILL \?ELS44
|
||
|
PRINTR "I don't think you'll succeed at this distance."
|
||
|
?ELS44: EQUAL? PRSA,V?THROW \FALSE
|
||
|
EQUAL? PRSI,GLOBAL-MAN \FALSE
|
||
|
IN? PRSO,WINNER \FALSE
|
||
|
PRINTI "The "
|
||
|
PRINTD PRSO
|
||
|
PRINTI " flies upward, but not nearly far enough to hit the man. It does seem to amuse him, however, especially as it passes within inches of your head. ""We're wasting time now. Be a good fellow and tie the rope!"""
|
||
|
CRLF
|
||
|
MOVE PRSO,HERE
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT LAKE-F
|
||
|
EQUAL? PRSA,V?LEAP,V?THROUGH \?ELS5
|
||
|
EQUAL? HERE,LAKE-SHORE,FAR-SHORE,SOUTH-SHORE \?ELS10
|
||
|
CALL GO-ON-LAKE
|
||
|
RSTACK
|
||
|
?ELS10: EQUAL? HERE,ON-LAKE \?ELS12
|
||
|
CALL GOTO,IN-LAKE
|
||
|
RSTACK
|
||
|
?ELS12: PRINTR "Just where do you think you are?"
|
||
|
?ELS5: EQUAL? PRSA,V?LOOK-UNDER \FALSE
|
||
|
EQUAL? HERE,ON-LAKE \?ELS23
|
||
|
PRINTR "You can't quite make out the bottom of the lake from here..."
|
||
|
?ELS23: PRINTR "You can't see under the surface from here."
|
||
|
|
||
|
|
||
|
.FUNCT IN-LAKE-F,RARG
|
||
|
EQUAL? RARG,M-ENTER \?ELS5
|
||
|
CALL QUEUE,I-IN-LAKE,3
|
||
|
PUT STACK,0,1
|
||
|
RTRUE
|
||
|
?ELS5: EQUAL? RARG,M-BEG \?ELS7
|
||
|
EQUAL? PRSA,V?TAKE \?ELS7
|
||
|
EQUAL? PRSO,SHINY-OBJECT /?ELS7
|
||
|
CALL WEIGHT,WINNER
|
||
|
GRTR? STACK,25 \?ELS14
|
||
|
PRINTR "You can't carry that much underwater."
|
||
|
?ELS14: FSET? PRSO,TAKEBIT /?ELS18
|
||
|
PRINTR "You can't take that!"
|
||
|
?ELS18: RANDOM 100
|
||
|
GRTR? 30,STACK \FALSE
|
||
|
PRINTI "The "
|
||
|
PRINTD PRSO
|
||
|
PRINTR " is yours for a moment, but drops from your grasp."
|
||
|
?ELS7: EQUAL? RARG,M-END \FALSE
|
||
|
RANDOM 100
|
||
|
GRTR? 10,STACK \?ELS31
|
||
|
PRINTR "A large and hungry-looking fish is swimming in the neighborhood."
|
||
|
?ELS31: RANDOM 100
|
||
|
GRTR? 4,STACK \?ELS35
|
||
|
ZERO? INVIS \?ELS35
|
||
|
CALL QUEUE,I-ROC,0
|
||
|
CALL QUEUE,I-ON-LAKE,0
|
||
|
CALL JIGS-UP,STR?205
|
||
|
RSTACK
|
||
|
?ELS35: IN? SHINY-OBJECT,HERE \FALSE
|
||
|
EQUAL? MOVES,LAST-MOVES /TRUE
|
||
|
RANDOM 100
|
||
|
GRTR? 40,STACK \?ELS44
|
||
|
PRINTI "Out of the corner of your eye, a small, shiny object appears in the sand. A moment later, it is gone!"
|
||
|
CRLF
|
||
|
JUMP ?CND40
|
||
|
?ELS44: RANDOM 100
|
||
|
GRTR? 70,STACK \?ELS48
|
||
|
PRINTI "You catch a brief glimpse of something shiny in the sand."
|
||
|
CRLF
|
||
|
JUMP ?CND40
|
||
|
?ELS48: PRINTI "Something sparkling in the sand catches your eye for a moment."
|
||
|
CRLF
|
||
|
?CND40: SET 'LAST-MOVES,MOVES
|
||
|
RETURN LAST-MOVES
|
||
|
|
||
|
|
||
|
.FUNCT I-IN-LAKE
|
||
|
EQUAL? HERE,IN-LAKE \FALSE
|
||
|
PRINTI "You run out of air and return to the surface."
|
||
|
CRLF
|
||
|
CALL GOTO,ON-LAKE
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT ON-LAKE-F,RARG
|
||
|
EQUAL? RARG,M-ENTER \?ELS5
|
||
|
CALL QUEUE,I-IN-LAKE,0
|
||
|
ZERO? LAKE-POINT \FALSE
|
||
|
INC 'SCORE
|
||
|
SET 'LAKE-POINT,TRUE-VALUE
|
||
|
RETURN LAKE-POINT
|
||
|
?ELS5: EQUAL? RARG,M-BEG \FALSE
|
||
|
EQUAL? PRSA,V?LEAP \FALSE
|
||
|
ZERO? PRSO \FALSE
|
||
|
CALL DO-WALK,P?DOWN
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT GO-ON-LAKE,F,N,TOLD=0
|
||
|
FIRST? WINNER >F \?CND1
|
||
|
?PRG4: NEXT? F >N /?KLU31
|
||
|
?KLU31: FSET? F,WEARBIT /?CND6
|
||
|
MOVE F,IN-LAKE
|
||
|
EQUAL? F,TORCH \?ELS11
|
||
|
REMOVE TORCH
|
||
|
MOVE FRIED-TORCH,IN-LAKE
|
||
|
JUMP ?CND9
|
||
|
?ELS11: EQUAL? F,LAMP \?ELS13
|
||
|
MOVE LAMP,LOCAL-GLOBALS
|
||
|
MOVE FRIED-LAMP,IN-LAKE
|
||
|
SET 'CURRENT-LAMP,FRIED-LAMP
|
||
|
JUMP ?CND9
|
||
|
?ELS13: EQUAL? F,WAYBREAD \?CND9
|
||
|
REMOVE WAYBREAD
|
||
|
?CND9: ZERO? TOLD \?CND6
|
||
|
SET 'TOLD,TRUE-VALUE
|
||
|
PRINTI "The shock of entering the frigid water has made you drop all your possessions into the lake!"
|
||
|
CRLF
|
||
|
?CND6: ZERO? N \?ELS23
|
||
|
JUMP ?CND1
|
||
|
?ELS23: SET 'F,N
|
||
|
JUMP ?PRG4
|
||
|
?CND1: ZERO? TOLD \?CND26
|
||
|
PRINTI "You are nearly paralyzed by the icy waters as you swim into the center of the lake."
|
||
|
CRLF
|
||
|
?CND26: CRLF
|
||
|
CALL GOTO,ON-LAKE
|
||
|
SET 'LAKE-TIME,0
|
||
|
CALL QUEUE,I-ON-LAKE,-1
|
||
|
PUT STACK,0,1
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT I-ON-LAKE
|
||
|
INC 'LAKE-TIME
|
||
|
RANDOM 100
|
||
|
GRTR? 10,STACK \?ELS5
|
||
|
EQUAL? HERE,ON-LAKE \?ELS5
|
||
|
ZERO? INVIS \?ELS5
|
||
|
PRINTI "A giant roc, previously hidden among the rocks, is heading right toward you, its mouth gaping wide!"
|
||
|
CRLF
|
||
|
CALL QUEUE,I-ROC,2
|
||
|
PUT STACK,0,1
|
||
|
RTRUE
|
||
|
?ELS5: EQUAL? HERE,ON-LAKE,IN-LAKE /?ELS11
|
||
|
CALL QUEUE,I-ON-LAKE,0
|
||
|
CALL QUEUE,I-IN-LAKE,0
|
||
|
CALL QUEUE,I-ROC,0
|
||
|
RFALSE
|
||
|
?ELS11: EQUAL? LAKE-TIME,4 \?ELS13
|
||
|
PRINTR "The icy waters are taking their toll. You will not be able to hold out much longer."
|
||
|
?ELS13: EQUAL? LAKE-TIME,6 \?ELS17
|
||
|
PRINTR "You are becoming very weak. You had better leave the water before you drown!"
|
||
|
?ELS17: EQUAL? LAKE-TIME,8 \FALSE
|
||
|
CALL QUEUE,I-ON-LAKE,0
|
||
|
CALL QUEUE,I-IN-LAKE,0
|
||
|
CALL QUEUE,I-ROC,0
|
||
|
CALL JIGS-UP,STR?206
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT I-ROC
|
||
|
EQUAL? HERE,ON-LAKE \FALSE
|
||
|
ZERO? INVIS \FALSE
|
||
|
CALL QUEUE,I-ON-LAKE,0
|
||
|
CALL QUEUE,I-IN-LAKE,0
|
||
|
CALL JIGS-UP,STR?207
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT SHINY-OBJECT-F
|
||
|
EQUAL? PRSA,V?FIND,V?TAKE \FALSE
|
||
|
IN? AMULET,WINNER /FALSE
|
||
|
RANDOM 100
|
||
|
GRTR? 50,STACK \?ELS12
|
||
|
REMOVE SHINY-OBJECT
|
||
|
MOVE AMULET,WINNER
|
||
|
SET 'P-IT-OBJECT,AMULET
|
||
|
SET 'P-IT-LOC,HERE
|
||
|
FCLEAR AMULET,NDESCBIT
|
||
|
PRINTR "You reach the shiny object. It is a simple golden amulet!"
|
||
|
?ELS12: PRINTR "The shiny object slips from your grasp and back onto the floor of the lake, where it is covered in sand."
|
||
|
|
||
|
|
||
|
.FUNCT SAND-F
|
||
|
EQUAL? PRSA,V?DIG \?ELS5
|
||
|
PRINTR "You don't come across anything unusual."
|
||
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
|
||
|
PRINTR "There is nothing notable on the floor of the lake, except some plants and algae."
|
||
|
?ELS9: EQUAL? PRSA,V?TAKE \FALSE
|
||
|
PRINTR "It slips through your fingers."
|
||
|
|
||
|
|
||
|
.FUNCT ALGAE-F
|
||
|
EQUAL? PRSA,V?EAT \FALSE
|
||
|
PRINTR "Yeecchhhh!"
|
||
|
|
||
|
|
||
|
.FUNCT FRIED-LAMP-F
|
||
|
EQUAL? PRSA,V?LAMP-ON \FALSE
|
||
|
PRINTR "The lamp isn't functioning (probably from having gotten wet)."
|
||
|
|
||
|
|
||
|
.FUNCT I-VIEW-SNAP
|
||
|
PRINTI "You suddenly find yourself back in the viewing room!"
|
||
|
CRLF
|
||
|
CALL GOTO,VIEW-ROOM,FALSE-VALUE
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT VIEWING-TABLE-F,L
|
||
|
EQUAL? PRSA,V?RUB \?ELS5
|
||
|
ADD SCORE,VIEW-POINT >SCORE
|
||
|
SET 'VIEW-POINT,0
|
||
|
PRINTI "You touch the table and are instantly transported to another place!"
|
||
|
CRLF
|
||
|
CRLF
|
||
|
CALL QUEUE,I-VIEW-SNAP,3
|
||
|
PUT STACK,0,1
|
||
|
GET VIEW-ROOMS,ACTIVE-VIEW
|
||
|
CALL GOTO,STACK
|
||
|
RTRUE
|
||
|
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \FALSE
|
||
|
PRINTI "The surface is pale and featureless, but slowly, an image takes shape!"
|
||
|
CRLF
|
||
|
GET VIEWS,ACTIVE-VIEW
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
PRINTR "The image slowly fades."
|
||
|
|
||
|
|
||
|
.FUNCT I-VIEW-CHANGE
|
||
|
INC 'ACTIVE-VIEW
|
||
|
EQUAL? ACTIVE-VIEW,5 \?CND1
|
||
|
SET 'ACTIVE-VIEW,1
|
||
|
?CND1: CALL QUEUE,I-VIEW-CHANGE,4
|
||
|
EQUAL? HERE,VIEW-ROOM \FALSE
|
||
|
PRINTI "The indicator above the table flickers briefly, then changes to """
|
||
|
GET VIEW-ROMANS,ACTIVE-VIEW
|
||
|
PRINT STACK
|
||
|
PRINTR """."
|
||
|
|
||
|
|
||
|
.FUNCT VIEW-ROOM-F,RARG
|
||
|
EQUAL? RARG,M-LOOK \FALSE
|
||
|
PRINTI "You are in a small chamber carved in the rock, with the sole exit to the north. Mounted on one wall is a table labelled ""Scenic Vista,"" whose featureless surface is angled toward you. One might believe that the table was used to indicate points of interest in the view from this spot, like those found in many parks. On the other hand, your surroundings are far from spacious and by no stretch of the imagination could this spot be considered scenic. An indicator above the table reads """
|
||
|
GET VIEW-ROMANS,ACTIVE-VIEW
|
||
|
PRINT STACK
|
||
|
PRINTR """."
|
||
|
|
||
|
|
||
|
.FUNCT CLIFF-OBJECT-F
|
||
|
EQUAL? HERE,CLIFF \?ELS5
|
||
|
EQUAL? PRSA,V?LEAP \?ELS10
|
||
|
CALL JIGS-UP,STR?41
|
||
|
RSTACK
|
||
|
?ELS10: EQUAL? PRSA,V?CLIMB-DOWN \?ELS12
|
||
|
ZERO? ROPE-FLAG /?ELS17
|
||
|
CALL GOTO,CLIFF-LEDGE
|
||
|
RTRUE
|
||
|
?ELS17: PRINTR "The fall would kill you."
|
||
|
?ELS12: EQUAL? PRSA,V?THROW-OFF \FALSE
|
||
|
EQUAL? PRSI,CLIFF-OBJECT \FALSE
|
||
|
EQUAL? PRSO,ROPE \?ELS29
|
||
|
PRINTR "The rope is dangling over the side of the cliff already."
|
||
|
?ELS29: IN? PRSO,WINNER /?CND27
|
||
|
PRINTI "You aren't holding the "
|
||
|
PRINTD PRSO
|
||
|
PRINTR "."
|
||
|
?CND27: MOVE PRSO,CLIFF-LEDGE
|
||
|
PRINTI "The "
|
||
|
PRINTD PRSO
|
||
|
PRINTI " goes over the cliff and lands among the rocks below."
|
||
|
CRLF
|
||
|
EQUAL? PRSO,LAMP \?ELS40
|
||
|
REMOVE PRSO
|
||
|
MOVE BROKEN-LAMP,CLIFF-LEDGE
|
||
|
SET 'CURRENT-LAMP,BROKEN-LAMP
|
||
|
RTRUE
|
||
|
?ELS40: EQUAL? PRSO,STAFF \TRUE
|
||
|
REMOVE PRSO
|
||
|
MOVE BROKEN-STAFF,CLIFF-LEDGE
|
||
|
RTRUE
|
||
|
?ELS5: EQUAL? PRSA,V?CLIMB-UP \?ELS44
|
||
|
PRINTR "You haven't enough strength to climb the cliff."
|
||
|
?ELS44: PRINTR "The cliff is above you!"
|
||
|
|
||
|
|
||
|
.FUNCT TREE-F
|
||
|
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \?ELS5
|
||
|
PRINTR "The trunks are too large for you to climb them."
|
||
|
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS9
|
||
|
ZERO? MAN-SEEN \?ELS9
|
||
|
PRINTR "There seems to be nobody there, but it's hard to tell."
|
||
|
?ELS9: EQUAL? PRSA,V?BURN \FALSE
|
||
|
CALL JIGS-UP,STR?216
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT FRIED-TORCH-F
|
||
|
EQUAL? PRSA,V?LAMP-ON \FALSE
|
||
|
PRINTR "It's hopeless. The torch is wet."
|
||
|
|
||
|
|
||
|
.FUNCT TORCH-F
|
||
|
EQUAL? PRSA,V?LAMP-ON \?ELS5
|
||
|
FSET? TORCH,ONBIT \?ELS10
|
||
|
PRINTR "It's already lit."
|
||
|
?ELS10: PRINTR "You have nothing to light it with."
|
||
|
?ELS5: EQUAL? PRSA,V?LAMP-OFF \FALSE
|
||
|
FSET? TORCH,ONBIT \?ELS23
|
||
|
PRINTI "You manage to extinguish the flame."
|
||
|
CRLF
|
||
|
FCLEAR TORCH,ONBIT
|
||
|
RTRUE
|
||
|
?ELS23: PRINTR "It has already been extinguished."
|
||
|
|
||
|
|
||
|
.FUNCT NO-OBJS,RARG,F
|
||
|
EQUAL? RARG,M-BEG \FALSE
|
||
|
FIRST? WINNER >F /?KLU13
|
||
|
?KLU13: SET 'EMPTY-HANDED,TRUE-VALUE
|
||
|
?PRG6: ZERO? F /FALSE
|
||
|
CALL WEIGHT,F
|
||
|
GRTR? STACK,4 \?CND8
|
||
|
SET 'EMPTY-HANDED,FALSE-VALUE
|
||
|
RFALSE
|
||
|
?CND8: NEXT? F >F /?KLU14
|
||
|
?KLU14: JUMP ?PRG6
|
||
|
|
||
|
|
||
|
.FUNCT REPELLENT-FCN
|
||
|
EQUAL? PRSA,V?SHAKE \?ELS5
|
||
|
ZERO? SPRAY-USED? /?ELS10
|
||
|
PRINTR "The can seems empty."
|
||
|
?ELS10: PRINTR "There is a sloshing sound from inside."
|
||
|
?ELS5: EQUAL? PRSA,V?BURN \?ELS19
|
||
|
CALL JIGS-UP,STR?226
|
||
|
RSTACK
|
||
|
?ELS19: EQUAL? PRSA,V?PUT,V?SPRAY \FALSE
|
||
|
EQUAL? PRSO,REPELLENT \FALSE
|
||
|
ZERO? SPRAY-USED? /?ELS28
|
||
|
PRINTR "The repellent is all gone."
|
||
|
?ELS28: ZERO? PRSI \?ELS33
|
||
|
SET 'SPRAY-USED?,TRUE-VALUE
|
||
|
PRINTR "The spray stinks amazingly for a few moments, then drifts away."
|
||
|
?ELS33: EQUAL? PRSI,ME \?CND38
|
||
|
CALL QUEUE,I-SPRAY,5
|
||
|
PUT STACK,0,1
|
||
|
SET 'SPRAYED?,TRUE-VALUE
|
||
|
?CND38: SET 'SPRAY-USED?,TRUE-VALUE
|
||
|
PRINTR "The spray smells like a mixture of old socks and burning rubber. If I were a grue I'd sure stay clear!"
|
||
|
|
||
|
|
||
|
.FUNCT I-SPRAY
|
||
|
SET 'SPRAYED?,FALSE-VALUE
|
||
|
PRINTR "That horrible smell is much less pungent now."
|
||
|
|
||
|
|
||
|
.FUNCT ZORK-IV-F,RARG
|
||
|
EQUAL? RARG,M-ENTER \FALSE
|
||
|
CALL JIGS-UP,STR?227
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT AQUEDUCT-F
|
||
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||
|
PRINTR "The aqueduct is large and impressive. It was probably the major method of water transport in the Empire."
|
||
|
?ELS5: EQUAL? PRSA,V?LEAP \FALSE
|
||
|
CALL JIGS-UP,STR?238
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT WATER-CHANNEL-F
|
||
|
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||
|
PRINTR "The channel is a few feet deep and ten feet wide, rounded on the bottom."
|
||
|
?ELS5: EQUAL? PRSA,V?BOARD \FALSE
|
||
|
EQUAL? HERE,DAMP-PASSAGE \?ELS14
|
||
|
PRINTR "Getting into the channel wouldn't be of much use."
|
||
|
?ELS14: PRINTR "You're standing in it. Otherwise, you would be floating in midair above some very nasty rocks."
|
||
|
|
||
|
|
||
|
.FUNCT MOSS-F
|
||
|
EQUAL? PRSA,V?MOVE,V?TAKE \FALSE
|
||
|
PRINTR "Don't be silly."
|
||
|
|
||
|
|
||
|
.FUNCT AQ-2-F,RARG
|
||
|
EQUAL? RARG,M-LOOK \FALSE
|
||
|
PRINTI "You are now on one of the tallest arches of the aqueduct, hundreds of feet above a rocky chasm. The immensity of the aqueduct project is apparent from here. Stone supports rise from the rock floor to form massive arches, which traverse the region from north to south. The water-carrying channel here is wide and deep. To the west and far below, you can make out a balcony which must command a wide view of the aqueduct."
|
||
|
CRLF
|
||
|
ZERO? AQ-FLAG \FALSE
|
||
|
PRINTR "The channel ends abruptly to your north where a supporting pillar has crumbled, casting the arch into the chasm."
|
||
|
|
||
|
|
||
|
.FUNCT AQ-3-F,RARG
|
||
|
EQUAL? RARG,M-LOOK \FALSE
|
||
|
PRINTI "You are near the northern end of this segment of the aqueduct system. To the south and slightly uphill, the bulk of the aqueduct looms ominously, towering above a gorge. To the north, the water channel drops precipitously and enters a rocky hole. The damp moss and lichen would certainly make that a one-way trip."
|
||
|
CRLF
|
||
|
ZERO? AQ-FLAG \FALSE
|
||
|
PRINTR "The southern part of the aqueduct system is inaccessable due to the collapse of one of the water-bearing arches."
|
||
|
|
||
|
|
||
|
.FUNCT COVER-F
|
||
|
EQUAL? PRSA,V?OPEN,V?RAISE,V?MOVE \?ELS5
|
||
|
PRINTI "The cover is moved a bit to one side, revealing a small hole leading into darkness."
|
||
|
CRLF
|
||
|
SET 'COVER-MOVED,TRUE-VALUE
|
||
|
RETURN COVER-MOVED
|
||
|
?ELS5: EQUAL? PRSA,V?TAKE \FALSE
|
||
|
PRINTR "The cover is far too heavy to take."
|
||
|
|
||
|
|
||
|
.FUNCT KEY-ROOM-F,RARG
|
||
|
EQUAL? RARG,M-LOOK \FALSE
|
||
|
PRINTI "You are between some rock and a dark place, The room is lit dimly from above, revealing a lone, dark path sloping down to the west."
|
||
|
CRLF
|
||
|
ZERO? COVER-MOVED /?ELS12
|
||
|
PRINTR "A heavy manhole cover has been moved to reveal a dark passage below."
|
||
|
?ELS12: PRINTR "To one side of the room is a large manhole cover."
|
||
|
|
||
|
|
||
|
.FUNCT KEY-F
|
||
|
EQUAL? PRSA,V?UNLOCK \?ELS5
|
||
|
EQUAL? PRSI,KEY \?ELS5
|
||
|
EQUAL? PRSO,BRONZE-DOOR \?ELS12
|
||
|
EQUAL? HERE,GOOD-CELL \?ELS12
|
||
|
ZERO? BRONZE-DOOR-LOCKED /?ELS17
|
||
|
PRINTI "The key seems to mold itself to the shape of the lock. With a mere twist of your hand, the massive bolt gives way."
|
||
|
CRLF
|
||
|
JUMP ?CND15
|
||
|
?ELS17: PRINTI "It already is."
|
||
|
CRLF
|
||
|
?CND15: SET 'BRONZE-DOOR-LOCKED,FALSE-VALUE
|
||
|
RTRUE
|
||
|
?ELS12: EQUAL? PRSO,BRONZE-DOOR \?ELS26
|
||
|
PRINTR "The key molds itself to the lock but will not turn."
|
||
|
?ELS26: EQUAL? PRSO,CHEST /?THN31
|
||
|
FSET? PRSO,DOORBIT \FALSE
|
||
|
?THN31: PRINTR "The key, which initially seemed certain to fit the lock, seems to change shape and will not enter the keyhole."
|
||
|
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
|
||
|
CALL PICK-ONE,KEY-DESCS
|
||
|
PRINT STACK
|
||
|
CRLF
|
||
|
PRINTR "Strange, though. The key seems to change shape constantly."
|
||
|
|
||
|
|
||
|
.FUNCT VIEW-INDICATOR-F
|
||
|
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
||
|
PRINTI "The indicator reads """
|
||
|
GET VIEW-ROMANS,ACTIVE-VIEW
|
||
|
PRINT STACK
|
||
|
PRINTR """."
|
||
|
|
||
|
|
||
|
.FUNCT FLATHEAD-OCEAN-F,RARG
|
||
|
EQUAL? RARG,M-LOOK \?ELS5
|
||
|
PRINTI "You are at the shore of an amazing underground sea, the topic of many a legend among adventurers. Few were known to have arrived at this spot, and fewer to return. There is a heavy surf and a breeze is blowing on-shore. The land rises steeply to the east and quicksand prevents movement to the south. A thick mist covers the ocean and extends over the hills to the east. A path heads north along the beach."
|
||
|
CRLF
|
||
|
FSET? VIKING-SHIP,INVISIBLE /TRUE
|
||
|
PRINTR "An ancient Viking ship is passing along the shore, an old and crusty sailor at the helm."
|
||
|
?ELS5: EQUAL? RARG,M-END \FALSE
|
||
|
RANDOM 100
|
||
|
GRTR? 20,STACK \FALSE
|
||
|
ZERO? BOAT-SEEN \FALSE
|
||
|
ZERO? LIT /FALSE
|
||
|
SET 'BOAT-SEEN,TRUE-VALUE
|
||
|
CALL QUEUE,I-BOAT-DISAPPEAR,2
|
||
|
PUT STACK,0,1
|
||
|
PRINTI "Passing alongside the shore now is an old boat, reminiscent of an ancient Viking ship. Standing on the prow of the ship is an old and crusty sailor, peering out over the misty ocean."
|
||
|
CRLF
|
||
|
FCLEAR VIKING-SHIP,INVISIBLE
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT SAILOR-F
|
||
|
EQUAL? PRSA,V?HELLO \FALSE
|
||
|
FSET? VIKING-SHIP,INVISIBLE /?ELS10
|
||
|
PRINTI "The seaman looks up and maneuvers the boat toward shore. He cries out ""I have waited three ages for someone to say those words and save me from sailing this endless ocean. Please accept this gift. You may find it useful!"" He throws something which falls near you in the sand, then sails off toward the west, singing a lively, but somewhat uncouth, sailor song."
|
||
|
CRLF
|
||
|
FSET VIKING-SHIP,INVISIBLE
|
||
|
MOVE VIAL,HERE
|
||
|
RTRUE
|
||
|
?ELS10: EQUAL? HERE,FLATHEAD-OCEAN \?ELS14
|
||
|
ZERO? SHIP-GONE /?ELS19
|
||
|
PRINTR "Nothing happens anymore."
|
||
|
?ELS19: PRINTR "Nothing happens yet."
|
||
|
?ELS14: PRINTR "Nothing happens here."
|
||
|
|
||
|
|
||
|
.FUNCT I-BOAT-DISAPPEAR
|
||
|
FSET VIKING-SHIP,INVISIBLE
|
||
|
SET 'SHIP-GONE,TRUE-VALUE
|
||
|
EQUAL? HERE,FLATHEAD-OCEAN \FALSE
|
||
|
PRINTR "The boat sails silently through the mist and out of sight."
|
||
|
|
||
|
|
||
|
.FUNCT I-VISIBLE
|
||
|
SET 'INVIS,FALSE-VALUE
|
||
|
EQUAL? HERE,MRG,MRGE,MRGW \FALSE
|
||
|
CALL JIGS-UP,STR?245
|
||
|
RFALSE
|
||
|
|
||
|
|
||
|
.FUNCT POTION-F
|
||
|
EQUAL? PRSA,V?DRINK \?ELS5
|
||
|
REMOVE POTION
|
||
|
SET 'INVIS,TRUE-VALUE
|
||
|
CALL QUEUE,I-VISIBLE,3
|
||
|
PUT STACK,0,1
|
||
|
PRINTR "You ""drink"" the contents in one gulp, but nothing unusual seems to have happened as a result."
|
||
|
?ELS5: EQUAL? PRSA,V?POUR-ON \?ELS9
|
||
|
EQUAL? PRSO,POTION \?ELS9
|
||
|
REMOVE POTION
|
||
|
PRINTI "It spills onto the "
|
||
|
PRINTD PRSI
|
||
|
PRINTR " and vanishes."
|
||
|
?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS15
|
||
|
PRINTR "It feels like there's something inside, but you can't see anything even though the vial is transparent."
|
||
|
?ELS15: EQUAL? PRSA,V?SMELL \?ELS19
|
||
|
PRINTR "The vial (or something in it) smells sweet."
|
||
|
?ELS19: EQUAL? PRSA,V?TAKE,V?DROP \FALSE
|
||
|
PRINTI "Nothing seems to come out, although the sweet smell disappears from the vial, seeming to permeate the air briefly before fading entirely."
|
||
|
CRLF
|
||
|
REMOVE POTION
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT VIAL-F
|
||
|
EQUAL? PRSA,V?FILL \?ELS5
|
||
|
PRINTR "You can't seem to put anything in it."
|
||
|
?ELS5: EQUAL? PRSA,V?DRINK-FROM \?ELS9
|
||
|
IN? POTION,VIAL \?ELS9
|
||
|
CALL PERFORM,V?DRINK,POTION
|
||
|
RTRUE
|
||
|
?ELS9: EQUAL? PRSA,V?SMELL \?ELS13
|
||
|
IN? POTION,VIAL \?ELS13
|
||
|
CALL PERFORM,V?SMELL,POTION
|
||
|
RTRUE
|
||
|
?ELS13: EQUAL? PRSA,V?SHAKE \?ELS17
|
||
|
IN? POTION,VIAL \?ELS17
|
||
|
FSET? VIAL,OPENBIT \?ELS17
|
||
|
PRINTI "Nothing seems to come out, although the vial is lighter now."
|
||
|
CRLF
|
||
|
REMOVE POTION
|
||
|
RTRUE
|
||
|
?ELS17: EQUAL? PRSA,V?OPEN \?ELS23
|
||
|
FSET VIAL,OPENBIT
|
||
|
PRINTI "The vial is open."
|
||
|
IN? POTION,VIAL \?CND26
|
||
|
PRINTI " There is a sweet odor from within the vial, apparently coming from a heavy but invisible liquid."
|
||
|
?CND26: CRLF
|
||
|
RTRUE
|
||
|
?ELS23: EQUAL? PRSA,V?EXAMINE \FALSE
|
||
|
PRINTI "It is a small, transparent vial "
|
||
|
IN? POTION,VIAL \?ELS39
|
||
|
PRINTR "which looks empty but is strangely heavy."
|
||
|
?ELS39: PRINTR "which is light and empty."
|
||
|
|
||
|
|
||
|
.FUNCT OCEAN-F
|
||
|
EQUAL? HERE,FLATHEAD-OCEAN /?ELS5
|
||
|
PRINTR "There is no ocean here."
|
||
|
?ELS5: EQUAL? PRSA,V?BOARD,V?THROUGH \?ELS9
|
||
|
PRINTR "You would be killed by the pounding surf!"
|
||
|
?ELS9: EQUAL? PRSA,V?THROW,V?PUT \FALSE
|
||
|
EQUAL? PRSI,OCEAN \FALSE
|
||
|
PRINTI "The "
|
||
|
PRINTD PRSO
|
||
|
PRINTI " falls into the ocean and is lost forever."
|
||
|
CRLF
|
||
|
REMOVE PRSO
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT STONE-DESC,FOO
|
||
|
PRINTI "Standing before you is a great rock."
|
||
|
ZERO? SWORD-IN-STONE? /?CND3
|
||
|
PRINTI " Imbedded within it is an Elvish sword."
|
||
|
?CND3: CRLF
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT STONE-F
|
||
|
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
|
||
|
PRINTR "You can't be serious."
|
||
|
?ELS5: EQUAL? PRSA,V?PUT \?ELS9
|
||
|
EQUAL? PRSI,STONE \?ELS9
|
||
|
PRINTR "You can't force anything into the stone."
|
||
|
?ELS9: EQUAL? PRSA,V?PUSH,V?TAKE,V?MOVE \?ELS15
|
||
|
EQUAL? PRSO,STONE \?ELS15
|
||
|
PRINTR "The stone is far too massive to be moved."
|
||
|
?ELS15: EQUAL? PRSA,V?LOOK-UNDER \FALSE
|
||
|
PRINTR "Since it can't be moved, it's hard to know what's there."
|
||
|
|
||
|
|
||
|
.FUNCT FISH-F
|
||
|
PRINTR "There is no fish visible now."
|
||
|
|
||
|
|
||
|
.FUNCT QUICKSAND-PSEUDO
|
||
|
EQUAL? PRSA,V?LEAP,V?THROUGH \?ELS5
|
||
|
CALL JIGS-UP,STR?246
|
||
|
RSTACK
|
||
|
?ELS5: EQUAL? PRSA,V?RUB \?ELS7
|
||
|
PRINTR "It's quicksand alright!"
|
||
|
?ELS7: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
||
|
PRINTR "It's hard to tell what's in there."
|
||
|
|
||
|
|
||
|
.FUNCT SWAMP-PSEUDO
|
||
|
EQUAL? PRSA,V?THROUGH \FALSE
|
||
|
PRINTR "Yucko."
|
||
|
|
||
|
|
||
|
.FUNCT MIST-PSEUDO
|
||
|
EQUAL? PRSA,V?LOOK-INSIDE \?ELS5
|
||
|
PRINTR "You can't make anything out through the mist."
|
||
|
?ELS5: EQUAL? PRSA,V?SMELL \FALSE
|
||
|
PRINTR "It smells vaguely salty."
|
||
|
|
||
|
|
||
|
.FUNCT SHORE-PSEUDO
|
||
|
EQUAL? PRSA,V?DIG \FALSE
|
||
|
PRINTR "There's nothing there."
|
||
|
|
||
|
|
||
|
.FUNCT WATERFALL-PSEUDO
|
||
|
EQUAL? PRSA,V?CLIMB-UP \FALSE
|
||
|
PRINTR "It's much too slippery."
|
||
|
|
||
|
|
||
|
.FUNCT ARCH-PSEUDO
|
||
|
EQUAL? PRSA,V?EXAMINE \FALSE
|
||
|
ZERO? AQ-FLAG /?ELS10
|
||
|
PRINTR "The arches all show some signs of decay."
|
||
|
?ELS10: PRINTR "The arch before you is broken. The others show signs of decay."
|
||
|
|
||
|
.ENDI
|