minizork2-1988/dungeon.zap
historicalsource a24d33a0ad Final Revision
2019-04-13 21:54:32 -04:00

368 lines
9.4 KiB
Plaintext

.FUNCT LAMP-F
EQUAL? PRSA,V?THROW \?CCL3
EQUAL? PRSO,LAMP \?CCL3
PRINTR "You'd break it!"
?CCL3: EQUAL? PRSA,V?LAMP-OFF,V?LAMP-ON,V?EXAMINE \?CCL9
ZERO? LAMP-BURNED-OUT /?CCL9
PRINTR "The lamp has burned out."
?CCL9: EQUAL? PRSA,V?LAMP-ON \?CCL15
CALL INT,I-LANTERN
PUT STACK,0,1
RFALSE
?CCL15: EQUAL? PRSA,V?LAMP-OFF \?CCL17
CALL INT,I-LANTERN
PUT STACK,0,0
RFALSE
?CCL17: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "The lamp is o"
FSET? LAMP,ONBIT \?PRG27
PRINTC 110
JUMP ?PRG29
?PRG27: PRINTI "ff"
?PRG29: PRINT PERIOD-CR
RTRUE
.FUNCT I-LANTERN,TICK,TBL
VALUE 'LAMP-TABLE >TBL
GET TBL,0 >TICK
CALL QUEUE,I-LANTERN,TICK
PUT STACK,0,1
ZERO? TICK \?CND1
FCLEAR LAMP,ONBIT
SET 'LAMP-BURNED-OUT,TRUE-VALUE
?CND1: CALL ACCESSIBLE?,LAMP
ZERO? STACK /?CND3
ZERO? TICK \?PRG10
PRINTI "You'd better have more light than from the "
PRINTD LAMP
PRINT PERIOD-CR
JUMP ?CND3
?PRG10: GET TBL,1
PRINT STACK
CRLF
?CND3: ZERO? TICK /FALSE
ADD TBL,4 >LAMP-TABLE
RETURN LAMP-TABLE
.FUNCT CAROUSEL-ROOM-F,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "Eight identical passages leave this large circular room. The ceiling is lost in gloom."
ZERO? CAROUSEL-ON /?CND6
PRINTR " A loud whirring sound comes from all around, and you feel disoriented."
?CND6: CRLF
RTRUE
?CCL3: ZERO? CAROUSEL-ON /FALSE
EQUAL? RARG,M-BEG \FALSE
EQUAL? PRSA,V?WALK \FALSE
EQUAL? PRSO,P?DOWN,P?UP /FALSE
PRINTI "You're not sure which direction is which..."
CRLF
CRLF
EQUAL? PRSO,P?WEST /?CTR19
RANDOM 100
GRTR? 80,STACK \FALSE
?CTR19: CALL PICK-ONE,CAROUSEL-EXITS
CALL GOTO,STACK
RSTACK
.FUNCT VIOLIN-F
EQUAL? PRSA,V?PLAY \FALSE
EQUAL? PRSO,VIOLIN \FALSE
PRINTR "An offensive noise issues from the violin."
.FUNCT BILLS-F
EQUAL? PRSA,V?BURN \FALSE
PRINTI "Nothing like having money to burn! "
RFALSE
.FUNCT MENHIR-ROOM-F,RARG
EQUAL? RARG,M-FLASH \?CCL3
ZERO? MENHIR-POSITION /?CCL3
CALL DESCRIBE-MENHIR
RSTACK
?CCL3: EQUAL? RARG,M-LOOK \FALSE
PRINTI "Large limestone chunks lie about this former quarry, which appears to have produced menhirs (standing stones). Obvious passages lead north and south."
CRLF
IN? MENHIR,LOCAL-GLOBALS \TRUE
CALL DESCRIBE-MENHIR
RTRUE
.FUNCT DESCRIBE-MENHIR
EQUAL? HERE,MENHIR-ROOM \?PRG23
EQUAL? MENHIR-POSITION,FALSE-VALUE \?CCL6
PRINTR "One large menhir blocks a dark opening leading southwest."
?CCL6: EQUAL? MENHIR-POSITION,1 \?CCL10
PRINTR "A menhir lies near a southwest passage."
?CCL10: EQUAL? MENHIR-POSITION,2 \?CCL14
PRINTR "A dark opening leads southwest."
?CCL14: EQUAL? MENHIR-POSITION,3 \?PRG21
PRINTR "There is a huge menhir here."
?PRG21: PRINTR "A huge menhir is floating in midair above a southwest passage."
?PRG23: PRINTR "A dark opening leads southwest."
.FUNCT GLOBAL-MENHIR-F
PRINTR "It's not here."
.FUNCT MENHIR-F
EQUAL? PRSA,V?LOOK-BEHIND,V?LOOK-UNDER \?CCL3
ZERO? MENHIR-POSITION \?CCL3
PRINTR "There's a dark passage beyond the menhir."
?CCL3: EQUAL? PRSA,V?TURN,V?MOVE,V?TAKE \?CCL9
PRINTR "The menhir weighs many tons!"
?CCL9: EQUAL? PRSA,V?READ \?CCL13
PRINTR """F"""
?CCL13: EQUAL? PRSA,V?EXAMINE \?CCL17
PRINTR "The menhir is carved with an ornate letter ""F""."
?CCL17: EQUAL? PRSA,V?ENCHANT \?CCL21
EQUAL? SPELL-USED,W?FLOAT \?CCL21
SET 'MENHIR-POSITION,3
PRINTR "The menhir floats majestically into the air. The passage beyond beckons invitingly."
?CCL21: EQUAL? PRSA,V?DISENCHANT \FALSE
EQUAL? SPELL-USED,W?FLOAT \FALSE
SET 'MENHIR-POSITION,FALSE-VALUE
EQUAL? HERE,MENHIR-ROOM,KENNEL \FALSE
PRINTR "The menhir sinks to the ground."
.FUNCT COLLAR-F
EQUAL? PRSA,V?TAKE \?CCL3
ZERO? CERBERUS-LEASHED /?CCL3
CALL JIGS-UP,STR?127
RSTACK
?CCL3: EQUAL? PRSA,V?ENCHANT \FALSE
EQUAL? SPELL-USED,W?FLOAT \FALSE
CALL PERFORM,V?ENCHANT,CERBERUS
RTRUE
.FUNCT TOMB-PSEUDO
EQUAL? PRSA,V?ENTER \FALSE
CALL DO-WALK,P?SOUTH
RSTACK
.FUNCT GLOBAL-CERBERUS-F
PRINTR "He's not here."
.FUNCT CERBERUS-F
EQUAL? PRSA,V?RAISE,V?RUB,V?WAVE \?CCL3
EQUAL? PRSO,WAND \?CCL3
PRINTI "The dog looks puzzled."
CRLF
RFALSE
?CCL3: ZERO? WAND-ON /?CCL9
EQUAL? PRSA,V?INCANT,V?SAY /FALSE
?CCL9: CALL HELLO?,CERBERUS
ZERO? STACK /?CCL13
ZERO? CERBERUS-LEASHED /?PRG19
PRINTR """Arf! Arf!"""
?PRG19: PRINTR """Grrrr!"""
?CCL13: EQUAL? PRSA,V?MUNG,V?ATTACK \?CCL22
ZERO? CERBERUS-LEASHED /?PRG28
REMOVE CERBERUS
PRINTR "With a quiet bark of disappointment, the creature expires into a small pile of dust which blows away into nothing."
?PRG28: PRINTR "The maddened dog-thing snaps at you viciously."
?CCL22: EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL31
EQUAL? PRSO,COLLAR \?CCL31
SET 'CERBERUS-LEASHED,TRUE-VALUE
MOVE COLLAR,CERBERUS
FSET COLLAR,NDESCBIT
FSET COLLAR,TRYTAKEBIT
PUTP CERBERUS,P?LDESC,STR?131
PRINTR "All three heads begin licking your face, and its huge tail wags enthusiastically, almost blowing you over from the breeze it creates."
?CCL31: EQUAL? PRSA,V?ENCHANT \?CCL37
EQUAL? SPELL-USED,W?FLOAT \?CCL40
SET 'SPELL-HANDLED?,TRUE-VALUE
PRINTR "The huge dog rises an inch off the ground, for a moment."
?CCL40: EQUAL? SPELL-USED,W?FEEBLE \FALSE
PRINTR "What an effect! He now has the strength of just one elephant, rather than ten!"
?CCL37: ZERO? CERBERUS-LEASHED \?CCL48
PRINTR "The three-headed dog snaps at you viciously!"
?CCL48: ZERO? CERBERUS-LEASHED /FALSE
EQUAL? PRSA,V?RUB \FALSE
PRINTR "The dog slobbers and whines with uncontained joy."
.FUNCT HEADS-F
EQUAL? PRSA,V?TELL,V?HELLO \?CCL3
PRINTR "Dead Flatheads tell no tales."
?CCL3: EQUAL? PRSA,V?RUB,V?ATTACK,V?KICK /?CCL7
EQUAL? PRSA,V?BURN,V?TAKE,V?OPEN \FALSE
?CCL7: CALL JIGS-UP,STR?133
RSTACK
.FUNCT CRYPT-OBJECT-F
EQUAL? PRSA,V?OPEN \FALSE
PRINTR "The crypt is sealed for all time."
.FUNCT ZORK3-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "A rough-hewn stair leads down into darkness. "
IN? WAND,WINNER \?CCL8
PRINTI "The wand vibrates and are compelled downward. There is a burst of light, and you tumble down the staircase! At the bottom, a vast red-lit hall, guarded by sinister statues, is visible far ahead.
You have conquered the Wizard of Frobozz and become master of his domain, but the final challenge awaits! (The Zork Trilogy concludes with ""Zork III: The Dungeon Master"".)"
CRLF
CRLF
CALL FINISH
RSTACK
?CCL8: CALL JIGS-UP,STR?135
RSTACK
.FUNCT LEDGE-IN-RAVINE-F,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "To the south, a stream runs through a narrow ravine. It looks as if you could scramble down to the stream. A smokey odor drifts in from the west. "
CALL P-DOOR,STR?136
RSTACK
?CCL3: EQUAL? PRSA,V?LOOK /FALSE
CALL PCHECK
RFALSE
.FUNCT P-DOOR,STR
ZERO? PLOOK-FLAG /?PRG3
SET 'PLOOK-FLAG,FALSE-VALUE
RFALSE
?PRG3: PRINTI "On the "
PRINT STR
PRINTI " side of the room is an oak door with a small barred window and a formidable lock (with keyhole)."
ZERO? MUD-FLAG /?CND5
PRINTC 32
PRINT PLACE-MAT-VISIBLE
ZERO? MATOBJ /?CND5
PRINTI " Lying on the place mat is a "
PRINTD MATOBJ
PRINTR "."
?CND5: CRLF
RTRUE
.FUNCT PCHECK
SET 'PLOOK-FLAG,FALSE-VALUE
IN? KEY,KEYHOLE-2 \?CCL3
FSET KEY,NDESCBIT
JUMP ?CND1
?CCL3: FCLEAR KEY,NDESCBIT
?CND1: CALL HELD?,PLACE-MAT
ZERO? STACK /?CND4
SET 'MUD-FLAG,FALSE-VALUE
?CND4: ZERO? MUD-FLAG /?CCL8
MOVE PLACE-MAT,HERE
FSET PLACE-MAT,NDESCBIT
RTRUE
?CCL8: FCLEAR PLACE-MAT,NDESCBIT
RTRUE
.FUNCT DREARY-ROOM-F,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "The room is eerily lit by a red glow emanating from a crack in one wall. The light falls upon a dusty wooden table. "
CALL P-DOOR,STR?137
RSTACK
?CCL3: CALL PCHECK
RFALSE
.FUNCT PDOOR-F,K
EQUAL? PRSA,V?LOOK-UNDER \?CCL3
ZERO? MUD-FLAG /?CCL3
PRINT PLACE-MAT-VISIBLE
CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?UNLOCK \?CCL9
EQUAL? PRSI,KEY \?CCL12
SET 'PUNLOCK-FLAG,TRUE-VALUE
PRINTR "The door is now unlocked."
?CCL12: EQUAL? PRSI,GOLD-KEY \?PRG19
PRINT DOESNT-FIT-LOCK
RTRUE
?PRG19: CALL PICK-ONE,YUKS
PRINT STACK
CRLF
RTRUE
?CCL9: EQUAL? PRSA,V?LOCK \?CCL22
EQUAL? PRSI,KEY \?CCL25
SET 'PUNLOCK-FLAG,FALSE-VALUE
PRINTR "The door is locked."
?CCL25: EQUAL? PRSI,GOLD-KEY \?PRG32
PRINT DOESNT-FIT-LOCK
RTRUE
?PRG32: CALL PICK-ONE,YUKS
PRINT STACK
CRLF
RTRUE
?CCL22: EQUAL? PRSA,V?PUT-UNDER \?CCL35
EQUAL? PRSO,ROBOT-LABEL \?CCL38
PRINTI "The tiny paper vanishes under the door."
CRLF
EQUAL? HERE,LEDGE-IN-RAVINE \?CCL43
PUSH DREARY-ROOM
JUMP ?CND41
?CCL43: PUSH LEDGE-IN-RAVINE
?CND41: MOVE PRSO,STACK
RTRUE
?CCL38: EQUAL? PRSO,NEWSPAPER \FALSE
PRINTR "The newspaper crumples up and won't go under the door."
?CCL35: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
ZERO? PUNLOCK-FLAG /?PRG53
CALL OPEN-CLOSE
RSTACK
?PRG53: PRINTR "The door is locked."
.FUNCT PWINDOW-F
EQUAL? PRSA,V?LOOK-INSIDE \?CCL3
SET 'PLOOK-FLAG,TRUE-VALUE
FSET? PDOOR,OPENBIT \?CCL6
PRINTR "The door is open!"
?CCL6: EQUAL? HERE,DREARY-ROOM \?CCL11
PUSH LEDGE-IN-RAVINE
JUMP ?CND9
?CCL11: PUSH DREARY-ROOM
?CND9: CALL GO&LOOK,STACK
RSTACK
?CCL3: EQUAL? PRSA,V?ENTER \FALSE
PRINTR "Perhaps if you were diced...."
.FUNCT PKEYHOLE-F
EQUAL? PRSA,V?LOOK-INSIDE \?CCL3
PRINTI "You can"
IN? KEY,KEYHOLE-2 /?PRG13
EQUAL? HERE,DREARY-ROOM \?CCL12
PUSH LEDGE-IN-RAVINE
JUMP ?CND10
?CCL12: PUSH DREARY-ROOM
?CND10: CALL LIT?,STACK
ZERO? STACK \?PRG15
?PRG13: PRINTI "'t"
?PRG15: PRINTR " see light through the keyhole."
?CCL3: EQUAL? PRSA,V?PUT \FALSE
IN? KEY,KEYHOLE-2 \?CCL21
EQUAL? PRSO,LETTER-OPENER \?PRG29
ZERO? MUD-FLAG /?CND25
SET 'MATOBJ,KEY
?CND25: MOVE KEY,DREARY-ROOM
PRINTR "There is a faint thud behind the door."
?PRG29: PRINTI "The "
PRINTD PRSO
PRINTR " doesn't fit."
?CCL21: CALL PERFORM,V?UNLOCK,PDOOR,PRSO
RTRUE
.ENDI