mirror of
https://github.com/historicalsource/minizork2-1988
synced 2024-04-25 21:49:47 +03:00
368 lines
9.4 KiB
Plaintext
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
|