Final Revision

This commit is contained in:
historicalsource 2019-04-13 21:51:43 -04:00
parent d26f157357
commit e57804a453
30 changed files with 24830 additions and 816 deletions

3957
2actions.zap Normal file

File diff suppressed because it is too large Load Diff

View File

@ -395,7 +395,7 @@ damaged, since an oblong hole has been chipped out of the front of it." CR>)
"On the far wall is a rusty box, whose door has been blown off." CR>)>)>>
<ROUTINE SAFE-FCN ()
<COND (<VERB? TAKE>
<COND (<AND <VERB? TAKE> <EQUAL? ,PRSO ,SAFE>>
<TELL "The box is imbedded in the wall." CR>)
(<VERB? OPEN>
<COND (,SAFE-FLAG <TELL "The box has no door!" CR>)
@ -506,7 +506,7 @@ about 200 feet above and there is a precipitous drop to the bottom.">
<TELL " The way to the south is blocked by rubble." CR>)
(T <TELL " There is a small door to the south." CR>)>)>>
<ROUTINE BLAST ()
;<ROUTINE BLAST () ;"APPARENTLY UNUSED?"
<COND (<EQUAL? ,HERE ,SAFE-ROOM>)
(T
<TELL "You must explain how to do that." CR>)>>
@ -532,7 +532,15 @@ notice the gnome nervously glancing at his watch." CR>
<GLOBAL GNOME-FLAG <>>
<ROUTINE GNOME-FCN ()
<COND (<AND <VERB? GIVE THROW> <EQUAL? ,PRSI ,GNOME>>
<COND (<VERB? TELL>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<COND (<NOT ,GNOME-FLAG>
<ENABLE <QUEUE I-NERVOUS 5>>)>
<SETG GNOME-FLAG T>
<TELL
"The gnome appears increasingly nervous." CR>)
(<AND <VERB? GIVE THROW> <EQUAL? ,PRSI ,GNOME>>
<COND (<GETPT ,PRSO ,P?VALUE>
<TELL
"\"Thank you very much for the " D ,PRSO ". I don't believe
@ -731,9 +739,9 @@ become the master of his domain, but the final challenge awaits!|
<FINISH>)
(T
<JIGS-UP
"The green curves begin to vibrate toward you, as if searching for something.
One by one your possessions glow bright green. Finally, you are attacked by
these magical wardens, and destroyed!">)>)>>
"The green curves begin to vibrate toward you, as if searching for
something. One by one your possessions glow bright green. Finally, you
are attacked by these magical wardens, and destroyed!">)>)>>
\
@ -1156,7 +1164,8 @@ for movement.">
(<EQUAL? ,PRSO ,SQUARE-BUTTON>
<COND (,CAROUSEL-ZOOM-FLAG
<TELL "Nothing seems to happen." CR>)
(<SETG CAROUSEL-ZOOM-FLAG T>
(ELSE
<SETG CAROUSEL-ZOOM-FLAG T>
<TELL "The whirring increases in intensity." CR>)>)
(<EQUAL? ,PRSO ,ROUND-BUTTON>
<COND (,CAROUSEL-ZOOM-FLAG
@ -1250,16 +1259,16 @@ say, but the robot appears to be smiling." CR CR>
"\"I am sorry but that is difficult for a being with no mouth.\"" CR>)>
<RTRUE>)
(<AND <PROB 2>
<IN? ,ADVENTURER ,HERE>>
<EQUAL? <META-LOC ,ADVENTURER> ,HERE>>
<TELL
"\"Buzz! Buzz! Buzz! My circuits are getting rusty. Try again.\"" CR>)
(<VERB? READ EXAMINE>
<COND (<IN? ,ADVENTURER ,HERE>
<COND (<EQUAL? <META-LOC ,ADVENTURER> ,HERE>
<TELL
"\"My vision is not sufficiently acute to do that.\"" CR>)>
<RTRUE>)
(<VERB? DROP PUT THROW>
<COND (<NOT <IN? ,ADVENTURER ,HERE>>
<COND (<NOT <EQUAL? <META-LOC ,ADVENTURER> ,HERE>>
<RFALSE>)
(<IN? ,PRSO ,ROBOT>
<TELL "\"Whirr, buzz, click!\"" CR>
@ -1267,8 +1276,10 @@ say, but the robot appears to be smiling." CR CR>
(T
<TELL
"\"Click! I don't have that. Buzz! Whirr!\"" CR>)>)
(<VERB? WALK TAKE PUSH TURN>
<COND (<NOT <IN? ,ADVENTURER ,HERE>>
(<OR <VERB? WALK>
<AND <VERB? TAKE PUSH TURN>
<NOT <FSET? ,PRSO ,ACTORBIT>>>>
<COND (<NOT <EQUAL? <META-LOC ,ADVENTURER> ,HERE>>
<RFALSE>)
(<PROB 80>
<TELL "\"Whirr, buzz, click!\"" CR>)
@ -1276,7 +1287,7 @@ say, but the robot appears to be smiling." CR CR>
<TELL "\"Buzz, click, whirr!\"" CR>)>
<RFALSE>)
(T
<COND (<IN? ,ADVENTURER ,HERE>
<COND (<EQUAL? <META-LOC ,ADVENTURER> ,HERE>
<TELL
"\"My programming is insufficient to allow me to perform that task.\"" CR>)>
<RTRUE>)>)
@ -1357,9 +1368,9 @@ safety deposit boxes for the customer. On the north side of the room is a
sign which reads \"Viewing Room\". On the ">
<COND (<EQUAL? ,HERE ,TELLER-WEST> <TELL "west">)
(T <TELL "east">)>
<TELL " side of the room, above an open door, is a sign reading||
BANK PERSONNEL ONLY|
<TELL " side of the room, above an open door, is a sign reading:|
|
BANK PERSONNEL ONLY|
" CR>)>>
<ROUTINE SCOL-OBJECT ("OPTIONAL" (OBJ <>))
@ -1448,8 +1459,16 @@ here, but we can make this ONE exception, I suppose...\" He looks
askance at you over his wire-rimmed bifocals." CR>
<MOVE ,GNOME-OF-ZURICH ,HERE>)>)>>
<ROUTINE BOX-F ()
<TELL "The gnome clutches it possessively." CR>>
<ROUTINE ZGNOME-FCN ()
<COND (<AND <VERB? GIVE THROW> <EQUAL? ,PRSI ,GNOME-OF-ZURICH>>
<COND (<VERB? TELL>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<TELL
"The gnome appears increasingly impatient." CR>)
(<AND <VERB? GIVE THROW> <EQUAL? ,PRSI ,GNOME-OF-ZURICH>>
<COND (<GETPT ,PRSO ,P?VALUE>
<TELL
"The gnome carefully places the " D ,PRSO " in the
@ -1949,7 +1968,24 @@ Unfortunately, wishing makes the coin go...." CR>
<TELL "The lamp is turned off.">)>
<CRLF>)>>
<ROUTINE LIGHT-INT (OBJ INTNAM TBLNAM "AUX" (TBL <VALUE .TBLNAM>) TICK)
<ROUTINE I-LANTERN ("AUX" TICK (TBL <VALUE LAMP-TABLE>))
<ENABLE <QUEUE I-LANTERN <SET TICK <GET .TBL 0>>>>
<LIGHT-INT ,LAMP .TBL .TICK>
<COND (<NOT <0? .TICK>>
<SETG LAMP-TABLE <REST .TBL 4>>)>>
<ROUTINE LIGHT-INT (OBJ TBL TICK)
<COND (<0? .TICK>
<FCLEAR .OBJ ,ONBIT>
<FSET .OBJ ,RMUNGBIT>)>
<COND (<OR <HELD? .OBJ> <IN? .OBJ ,HERE>>
<COND (<0? .TICK>
<TELL
"You'd better have more light than from the " D .OBJ "." CR>)
(T
<TELL <GET .TBL 1> CR>)>)>>
;<ROUTINE LIGHT-INT (OBJ INTNAM TBLNAM "AUX" (TBL <VALUE .TBLNAM>) TICK)
#DECL ((OBJ) OBJECT (TBLNAM INTNAM) ATOM (TBL) <PRIMTYPE VECTOR>
(TICK) FIX)
<ENABLE <QUEUE .INTNAM <SET TICK <GET .TBL 0>>>>
@ -2521,9 +2557,10 @@ leading west." CR>
T>
<ROUTINE DRAGON-LEAVES ()
<MOVE ,DRAGON ,DRAGON-ROOM>
<SETG DRAGON-ANGER 0>
<DISABLE <INT I-DRAGON>>>
<COND (<NOT <LOC ,DEAD-DRAGON>>
<MOVE ,DRAGON ,DRAGON-ROOM>
<SETG DRAGON-ANGER 0>
<DISABLE <INT I-DRAGON>>)>>
<ROUTINE I-GARDEN ()
<COND (<OR <EQUAL? ,HERE ,GARDEN-NORTH ,GAZEBO-ROOM>
@ -2673,12 +2710,19 @@ the young woman.">)>
<TELL "There is no princess here." CR>)
(<VERB? ATTACK MUNG RAPE>
<REMOVE ,PRINCESS>
<JIGS-UP
<TELL
"The princess screams as you approach. \"Won't someone deliver
me from this awful fate?\" she cries. Just in time, the Wizard of Frobozz
appears, seeming to unroll himself out of nothing like a window shade.
\"Fry!\" he intones, and a massive bolt of lightning reduces you to a pile
of smoking ashes. (Serves you right, too, if you ask me.)">)
me from this awful fate?\" she cries. ">
<COND (<IN? ,WIZARD ,HERE>
<TELL
"Shocked, the Wizard of Frobozz turns toward you.">)
(ELSE
<TELL "Just in time, the Wizard of Frobozz
appears, seeming to unroll himself out of nothing like a window shade.">)>
<TELL
" \"Fry!\" he intones, and a massive bolt of lightning reduces you to a pile
of smoking ashes. (Serves you right, too, if you ask me.)">
<JIGS-UP>)
(<OR <HELLO? ,PRINCESS> <VERB? ALARM KISS EXAMINE RUB>>
<COND (<AND <IN? ,PRINCESS ,DRAGON-LAIR>
<EQUAL? <GET .DEM ,C-ENABLED?> 0>>
@ -2834,7 +2878,7 @@ southwest. On this side of the menhir is carved an ornate letter \"F\"." CR>)
<TELL "There is a huge menhir here." CR>)
(T
<TELL
"There is a huge menhir floating like a feather in mid-air here. A
"There is a huge menhir floating like a feather in midair here. A
passage to the southwest opens beneath it." CR>)>
<COND (<EQUAL? ,HERE ,MUNGED-ROOM>
<TELL
@ -3110,7 +3154,10 @@ aquarium." CR>)>)
"The " D .OBJ " bounces harmlessly off the glass." CR>)>)>>
<ROUTINE SERPENT-FCN ()
<COND (<VERB? ATTACK MUNG>
<COND (<EQUAL? ,SERPENT ,WINNER>
<TELL
"The serpent only stares hungrily at you." CR>)
(<VERB? ATTACK MUNG>
<TELL
"He swims towards you with a powerful stroke of his flippers, dagger-like
teeth dripping. Fortunately, he doesn't want to crash into the aquarium
@ -3252,11 +3299,17 @@ He seems somewhat chagrined to have to admit this." CR>
<TELL
"The demon laughs uproariously." CR>)
(<AND <VERB? GIVE> <EQUAL? ,PRSI ,GENIE>>
<COND (<AND <EQUAL? ,PRSO ,IRON-BOX> <IN? ,VIOLIN ,PRSO>>
<COND (<AND <EQUAL? ,PRSO ,IRON-BOX>
<IN? ,VIOLIN ,PRSO>>
<TELL
"The genie frowns briefly, then opens the box. He smiles horribly." CR>
"The genie frowns briefly, then ">
<COND (<FSET? ,PRSO ,OPENBIT> <TELL "looks inside">)
(ELSE <TELL "opens">)>
<TELL " the box. He smiles horribly." CR>
<REMOVE-CAREFULLY ,IRON-BOX>
<SETG PRSO ,VIOLIN>)>
<COND (<GETPT ,PRSO ,P?VALUE>
<COND (<AND <GETPT ,PRSO ,P?VALUE>
<NOT <EQUAL? ,PRSO ,SWORD>>>
<REMOVE-CAREFULLY ,PRSO>
<SETG GENIE-HOARD <+ ,GENIE-HOARD 1>>
<SCORE-UPD 2>
@ -3327,6 +3380,7 @@ and are not great services bought at great price?"
power." CR>)
(<AND <VERB? PUT PUT-ON> <EQUAL? ,PRSO ,PALANTIR-4>>
<REMOVE ,PALANTIR-4>
<FCLEAR ,GENIE ,INVISIBLE>
<MOVE ,GENIE ,PENTAGRAM-ROOM>
<TELL
"A cold wind blows outward from the sphere. The candles flicker, and a
@ -3451,12 +3505,15 @@ to have gotten into quite a pickle.\" He chuckles. \"Fluoresce!\" he
incants. It is no longer dark." CR>
<RTRUE>)>
<COND (<AND <LOC ,WIZARD> <PROB 80>>
<COND (<IN? ,WIZARD ,HERE>
<COND (<AND ,LIT <IN? ,WIZARD ,HERE>>
<TELL "The Wizard vanishes." CR>)>
<REMOVE ,WIZARD>
<RTRUE>)>
<COND (<PROB 10>
<COND (<EQUAL? ,HERE ,POSTS-ROOM ,POOL-ROOM>
<COND (<NOT ,LIT>
<TELL
"You feel a slight outrush of air as something moves nearby." CR>)
(<EQUAL? ,HERE ,POSTS-ROOM ,POOL-ROOM>
<TELL
"A huge and terrible wizard appears before you, as large as the largest
tree! He looks down on you as you would look upon a gnat!" CR>)
@ -3470,15 +3527,23 @@ grins sideways at you." CR>)
He is wearing a high pointed hat embroidered with astrological signs.
He has a long, stringy, and unkempt beard." CR>)>
<COND (<IN? ,PALANTIR-4 ,ADVENTURER>
<TELL
<COND (,LIT
<TELL
"The Wizard notices that you carry the Black Crystal, and with an
unseemly haste, he disappears." CR>
unseemly haste, he disappears." CR>)
(ELSE
<TELL
"You feel a sudden inrush of air as though something disappeared." CR>)>
<REMOVE ,WIZARD>
<RTRUE>)
(<PROB 20>
<TELL
<COND (,LIT
<TELL
"He mutters something (muffled by his beard) and disappears as suddenly
as he came." CR>
as he came." CR>)
(ELSE
<TELL
"You hear low, confused muttering." CR>)>
<REMOVE ,WIZARD>
<RTRUE>)>
<COND (<IN? ,PALANTIR-1 ,ADVENTURER>
@ -3488,9 +3553,14 @@ as he came." CR>
<COND (<IN? ,PALANTIR-3 ,ADVENTURER>
<SET PCNT <+ .PCNT 1>>)>
<SET CAST-PROB <- 80 <* .PCNT 20>>>
<TELL
<COND (,LIT
<TELL
"The Wizard draws forth his wand and waves it in your direction. It
begins to glow with a faint blue glow." CR>
begins to glow with a faint blue glow." CR>)
(ELSE
<TELL
"Suddenly, illuminated by the faint blue glow of a magic wand pointed
in your direction, you see the Wizard!" CR>)>
<COND (<PROB .CAST-PROB>
<MOVE ,WIZARD ,HERE>
<SETG SPELL? <RANDOM ,SPELLS>>
@ -3501,7 +3571,7 @@ begins to glow with a faint blue glow." CR>
<COND (<PROB 75>
<TELL
"The Wizard, in a deep and resonant voice, speaks the word \""
<GET ,SPELL-NAMES ,SPELL?> "!\" He cackles gleefully." CR>)
<GET ,SPELL-NAMES ,SPELL?> "!\" He then vanishes, cackling gleefully." CR>)
(T
<TELL
"The Wizard, almost inaudibly, whispers a word beginning with \"F,\"
@ -3640,7 +3710,7 @@ again."
<REPEAT ()
<COND (<NOT .X> <RETURN .ROBBED?>)>
<SET N <NEXT? .X>>
<COND (<RIPOFF .N .WHERE> <SET ROBBED? T>)>
<COND (<RIPOFF .X .WHERE> <SET ROBBED? T>)>
<SET X .N>>>
<ROUTINE RIPOFF (X WHERE)
@ -3886,9 +3956,9 @@ The rose almost seemed to move its thorns into your path." CR>)>>
<TELL "." CR>
,SCORE>
<ROUTINE JIGS-UP (DESC "OPTIONAL" (PLAYER? <>))
#DECL ((DESC) STRING (PLAYER?) <OR ATOM FALSE>)
<TELL .DESC CR>
<ROUTINE JIGS-UP ("OPTIONAL" (DESC <>) (PLAYER? <>))
#DECL ((PLAYER?) <OR ATOM FALSE>)
<COND (.DESC <TELL .DESC CR>)>
<COND (<NOT <EQUAL? ,ADVENTURER ,WINNER>>
<TELL "
| **** The " D ,WINNER " has died ****
@ -3925,7 +3995,6 @@ up completely, but you can't have everything." CR CR>
<ROUTINE RANDOMIZE-OBJECTS ("AUX" (R <>) F N L)
<COND (<IN? ,LAMP ,WINNER>
<MOVE ,LAMP ,INSIDE-BARROW>)>
<PUTP ,SWORD ,P?VALUE 0>
<SET N <FIRST? ,WINNER>>
<REPEAT ()
<SET F .N>

109
2dungeon.zap Normal file
View File

@ -0,0 +1,109 @@
.FUNCT GO
START::
?FCN: PUTB P-LEXV,0,59
CALL QUEUE,I-WIZARD,4
PUT STACK,0,1
CALL QUEUE,I-LANTERN,200
PUTP BALLOON,P?VTYPE,NONLANDBIT
PUTP BUCKET,P?VTYPE,NONLANDBIT
PUTP SEWL,P?SIZE,P?EAST
PUTP SWWL,P?SIZE,P?WEST
PUTP SSWL,P?SIZE,P?SOUTH
PUTP SNWL,P?SIZE,P?NORTH
SET 'LIT,TRUE-VALUE
SET 'WINNER,ADVENTURER
SET 'PLAYER,ADVENTURER
SET 'HERE,INSIDE-BARROW
SET 'P-IT-OBJECT,FALSE-VALUE
FSET? HERE,TOUCHBIT /?CND1
CALL V-VERSION
CRLF
?CND1: MOVE WINNER,HERE
CALL V-LOOK
CALL MAIN-LOOP
JUMP ?FCN
.FUNCT HEDGES-F
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "The hedges are shaped like various animals: dogs, serpents, dragons, and the like, and they are vaguely troubling to look at."
.FUNCT LT-CRACK-PSEUDO
EQUAL? PRSA,V?THROUGH,V?BOARD \?ELS5
CALL DO-WALK,P?SOUTH
RTRUE
?ELS5: CALL CC-CRACK-PSEUDO
RSTACK
.FUNCT CC-CRACK-PSEUDO
EQUAL? PRSA,V?BOARD,V?THROUGH \?ELS5
CALL DO-WALK,P?NORTH
RTRUE
?ELS5: PRINTR "The crack is fairly wide. You should be able to get into it."
.FUNCT GLOBAL-MENHIR-F
PRINTR "It's not here."
.FUNCT GLOBAL-CERBERUS-F
PRINTR "He's not here."
.FUNCT CRACK-PSEUDO
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "It is a small crack (as advertised) with no redeeming value."
.FUNCT ALICE-HOLE
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTR "The hole is very small. You could never enter it."
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS9
PRINTR "You can't see what's beyond the hole from here."
?ELS9: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
PRINTR "It doesn't fit through the hole."
.FUNCT SLOT-F
EQUAL? PRSA,V?LOOK-INSIDE \?ELS5
FIRST? SLOT /?ELS5
PRINTR "There's nothing in the hole."
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "The oblong hole has been chipped out of the box, probably by someone wanting whatever is inside the box. The attempt was a pathetic failure, however."
.FUNCT TEAPOT-F
EQUAL? PRSA,V?CLOSE \FALSE
PRINTR "The teapot has no lid."
.FUNCT ROSE-F
EQUAL? PRSA,V?SMELL \?ELS5
PRINTR "Unlike your efforts here, it comes out smelling like a rose."
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "A rose is a rose is a rose...."
.FUNCT FOOTPAD-F
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "A footpad is a thief."
.FUNCT COMPASS-F
EQUAL? PRSA,V?FIND \?ELS5
PRINTR "It's on your person. And lucky for you, or you would become hopelessly lost."
?ELS5: EQUAL? PRSA,V?OVERBOARD,V?THROW,V?DROP \?ELS9
PRINTR "You can't get rid of it. It is an extension of yourself."
?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS13
PRINTR "It's one of those gizmos with a needle and a card with the eight major compass directions. Simple, but effective."
?ELS13: EQUAL? PRSA,V?READ \?ELS17
PRINTR "It doesn't make very interesting reading - just the compass directions."
?ELS17: PRINTR "You can't do that. And don't bother to ask why."
.ENDI

View File

@ -5,6 +5,7 @@
<DIRECTIONS NORTH EAST WEST SOUTH NE NW SE SW UP DOWN IN OUT LAND CROSS>
<ROUTINE GO ()
<PUTB ,P-LEXV 0 59>
;"put interrupts on clock chain"
<ENABLE <QUEUE I-WIZARD 4>>
<QUEUE I-LANTERN 200>
@ -20,7 +21,6 @@
<SETG WINNER ,ADVENTURER>
<SETG PLAYER ,ADVENTURER>
<SETG HERE ,INSIDE-BARROW>
<SETG P-IT-LOC ,HERE>
<SETG P-IT-OBJECT <>>
<COND (<NOT <FSET? ,HERE ,TOUCHBIT>>
<V-VERSION>
@ -656,11 +656,15 @@ On the wall is crudely chiseled the number \"8\".")
(SYNONYM MENHIR ROCK STONE)
(ADJECTIVE HUGE HEAVY ENORMOUS)
(FLAGS NDESCBIT READBIT)
(ACTION GLOBAL-MENHIR-F)
(DESC "enormous menhir")>
<ROUTINE GLOBAL-MENHIR-F ()
<TELL "It's not here." CR>>
<OBJECT MENHIR
(IN LOCAL-GLOBALS)
(SYNONYM MENHIR ROCK STONE)
(SYNONYM MENHIR ROCK STONE F)
(ADJECTIVE HUGE HEAVY ENORMOUS)
(FLAGS NDESCBIT READBIT TURNBIT)
(DESC "enormous menhir")
@ -864,8 +868,12 @@ up from a gateway arch.")
(IN LOCAL-GLOBALS)
(SYNONYM CERBERUS DOG HOUND MONSTER)
(ADJECTIVE HUGE GIANT THREE HEADED)
(ACTION GLOBAL-CERBERUS-F)
(DESC "three-headed dog")>
<ROUTINE GLOBAL-CERBERUS-F ()
<TELL "He's not here." CR>>
<OBJECT CERBERUS
(IN CERBERUS-ROOM)
(SYNONYM CERBERUS DOG HOUND MONSTER)
@ -1559,7 +1567,7 @@ less objective) may be found in Flathead's outrageous autobiography
\"I'm Rich and You Aren't - So There!\".
Most of the furniture has been ravaged by passing scavengers. All
that remains are two signs at the northwest and northeast corners of
the room, which say|
the room, which say:|
|
<-- VIEWING ROOMS -->|
|
@ -1595,7 +1603,7 @@ The way out (ornate but tasteful) is to the east.
(IN ROOMS)
(LDESC
"This room was used by holders of safety deposit boxes to view
their contents. On the north side of the room is a sign which says|
their contents. On the north side of the room is a sign which says:|
|
\"Remain here while the teller retrieves your safety deposit box.
When you are finished, leave the box, and exit to the south.
@ -1752,13 +1760,12 @@ Hello, Aviator!|
To land your balloon, say LAND|
Otherwise, you're on your own!|
|
No warranty expressed or implied.
|")>
No warranty expressed or implied.")>
<OBJECT SAFE
(IN SAFE-ROOM)
(SYNONYM SAFE BOX)
(ADJECTIVE STEEL)
(ADJECTIVE STEEL RUSTY)
(DESC "box")
(FLAGS CONTBIT NDESCBIT)
(ACTION SAFE-FCN)
@ -1852,7 +1859,8 @@ of explosives in this room is strictly prohibited!|
(ADJECTIVE GAUDY)
(DESC "gaudy crown")
(FLAGS STAGGERED TAKEBIT WEARBIT)
(FDESC "The excessively gaudy crown of Lord Dimwit Flathead is here.")
(FDESC
"The excessively gaudy crown of Lord Dimwit Flathead sits in the safe.")
(LDESC "Lord Dimwit's crown is here.")
(SIZE 10)
(VALUE 20)>
@ -1921,8 +1929,7 @@ simple household functions.|
|
>ROBOT, <things to do>|
|
At your service!
") >
At your service!") >
<OBJECT SLOT
(IN SAFE-ROOM)
@ -2167,7 +2174,7 @@ these ancients were, isn't it?)")
(SYNONYM BOOK BOOKS)
(ADJECTIVE PURPLE)
(DESC "purple book")
(FLAGS READBIT TAKEBIT CONTBIT BURNBIT)
(FLAGS READBIT TAKEBIT CONTBIT SEARCHBIT BURNBIT)
(LDESC
"Lying in the dust, and covered with mold, is a purple book.")
(CAPACITY 2)
@ -2383,10 +2390,18 @@ seems to walk through ... walls ...\"")>
(SYNONYM GNOME ZURICH)
(ADJECTIVE ZURICH)
(DESC "Gnome of Zurich")
(FLAGS ACTORBIT)
(FLAGS ACTORBIT CONTBIT OPENBIT)
(ACTION ZGNOME-FCN)
(LDESC "There is a Gnome of Zurich here.")>
<OBJECT DEPOSIT-BOX
(IN GNOME-OF-ZURICH)
(SYNONYM BOX)
(ADJECTIVE DEPOSIT SAFETY)
(DESC "safety deposit box")
(FLAGS NDESCBIT TAKEBIT TRYTAKEBIT)
(ACTION BOX-F)>
;"PALANTIR SECTION"
<OBJECT PDOOR
@ -2512,8 +2527,7 @@ Empire. Local grues have been reported sharpening their (slavering)
fangs....|
|
\"Zork II: The Wizard of Frobozz\" was written by Dave Lebling and Marc
Blank, and is (c) Copyright 1981, 1982, 1983 by Infocom, Inc.|
|")>
Blank, and is (c) Copyright 1981, 1982, 1983 by Infocom, Inc.")>
<OBJECT PLACE-MAT
(IN GAZEBO-TABLE)
@ -2590,9 +2604,9 @@ Blank, and is (c) Copyright 1981, 1982, 1983 by Infocom, Inc.|
<OBJECT GENIE
(SYNONYM DEVIL DEMON GENIE DJINN)
(DESC "demon")
(FLAGS ACTORBIT)
(FLAGS ACTORBIT INVISIBLE)
(ACTION GENIE-FCN)
(LDESC "There is a demon floating in mid-air here.")>
(LDESC "There is a demon floating in midair here.")>
<OBJECT WIZARD
(SYNONYM WIZARD MAGICIAN SORCEROR MAN)
@ -2616,13 +2630,12 @@ Blank, and is (c) Copyright 1981, 1982, 1983 by Infocom, Inc.|
(IN INSIDE-BARROW)
(SYNONYM SWORD ORCRIST GLAMDRING BLADE)
(ADJECTIVE ELVISH OLD ANTIQUE)
(DESC "sword")
(DESC "elvish sword")
(FLAGS TAKEBIT WEAPONBIT TRYTAKEBIT)
(ACTION SWORD-FCN)
(LDESC "An Elvish sword of great antiquity is here.")
(FDESC "A sword of Elvish workmanship is on the ground.")
(SIZE 30)
(VALUE 0)>
(SIZE 30)>
<OBJECT REPELLENT
(IN ROOM-8)

55
gclock.zap Normal file
View File

@ -0,0 +1,55 @@
.FUNCT QUEUE,RTN,TICK,CINT
CALL INT,RTN >CINT
PUT CINT,C-TICK,TICK
RETURN CINT
.FUNCT INT,RTN,DEMON=0,E,C,INT
ADD C-TABLE,C-TABLELEN >E
ADD C-TABLE,C-INTS >C
?PRG1: EQUAL? C,E \?ELS5
SUB C-INTS,C-INTLEN >C-INTS
ZERO? DEMON /?ELS7
SUB C-DEMONS,C-INTLEN >C-DEMONS
?ELS7: ADD C-TABLE,C-INTS >INT
PUT INT,C-RTN,RTN
RETURN INT
?ELS5: GET C,C-RTN
EQUAL? STACK,RTN \?CND3
RETURN C
?CND3: ADD C,C-INTLEN >C
JUMP ?PRG1
.FUNCT CLOCKER,C,E,TICK,FLG=0
ZERO? CLOCK-WAIT /?CND1
SET 'CLOCK-WAIT,FALSE-VALUE
RFALSE
?CND1: ZERO? P-WON /?ELS9
PUSH C-INTS
JUMP ?CND5
?ELS9: PUSH C-DEMONS
?CND5: ADD C-TABLE,STACK >C
ADD C-TABLE,C-TABLELEN >E
?PRG13: EQUAL? C,E \?ELS17
INC 'MOVES
RETURN FLG
?ELS17: GET C,C-ENABLED?
ZERO? STACK /?CND15
GET C,C-TICK >TICK
ZERO? TICK \?ELS22
JUMP ?CND15
?ELS22: SUB TICK,1
PUT C,C-TICK,STACK
GRTR? TICK,1 /?CND20
GET C,C-RTN
CALL STACK
ZERO? STACK /?CND20
SET 'FLG,TRUE-VALUE
?CND20:
?CND15: ADD C,C-INTLEN >C
JUMP ?PRG13
.ENDI

View File

@ -18,11 +18,6 @@
<CONSTANT C-RTN 2>
<ROUTINE DEMON (RTN TICK "AUX" CINT)
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
<PUT <SET CINT <INT .RTN T>> ,C-TICK .TICK>
.CINT>
<ROUTINE QUEUE (RTN TICK "AUX" CINT)
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
<PUT <SET CINT <INT .RTN>> ,C-TICK .TICK>
@ -52,8 +47,7 @@
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<REPEAT ()
<COND (<==? .C .E>
<COND (<G? <SETG MOVES <+ ,MOVES 1>> 999>
<SETG MOVES 0>)>
<SETG MOVES <+ ,MOVES 1>>
<RETURN .FLG>)
(<NOT <0? <GET .C ,C-ENABLED?>>>
<SET TICK <GET .C ,C-TICK>>

137
gglobals.zap Normal file
View File

@ -0,0 +1,137 @@
.FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ
EQUAL? PRSO,NOT-HERE-OBJECT \?ELS3
EQUAL? PRSI,NOT-HERE-OBJECT \?ELS3
PRINTR "Those things aren't here!"
?ELS3: EQUAL? PRSO,NOT-HERE-OBJECT \?ELS9
SET 'TBL,P-PRSO
JUMP ?CND1
?ELS9: SET 'TBL,P-PRSI
SET 'PRSO?,FALSE-VALUE
?CND1: SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
EQUAL? WINNER,PLAYER \?ELS14
PRINTI "You can't see any "
CALL NOT-HERE-PRINT,PRSO?
PRINTR " here!"
?ELS14: PRINTI "The "
PRINTD WINNER
PRINTI " seems confused. ""I don't see any "
CALL NOT-HERE-PRINT,PRSO?
PRINTR " here!"""
.FUNCT NOT-HERE-PRINT,PRSO?,?TMP1
ZERO? P-OFLAG /?ELS5
ZERO? P-XADJ /?CND7
PRINTB P-XADJN
?CND7: ZERO? P-XNAM /FALSE
PRINTB P-XNAM
RTRUE
?ELS5: ZERO? PRSO? /?ELS18
GET P-ITBL,P-NC1 >?TMP1
GET P-ITBL,P-NC1L
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
RSTACK
?ELS18: GET P-ITBL,P-NC2 >?TMP1
GET P-ITBL,P-NC2L
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
RSTACK
.FUNCT NULL-F,A1,A2
RFALSE
.FUNCT STAIRS-F
EQUAL? PRSA,V?THROUGH \FALSE
PRINTR "You should say whether you want to go up or down."
.FUNCT SAILOR-FCN
EQUAL? PRSA,V?TELL \?ELS5
SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
PRINTR "You can't talk to the sailor that way."
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
PRINTR "There is no sailor to be seen."
?ELS9: EQUAL? PRSA,V?HELLO \FALSE
INC 'HS
MOD HS,20
ZERO? STACK \?ELS18
PRINTR "You seem to be repeating yourself."
?ELS18: MOD HS,10
ZERO? STACK \?ELS22
PRINTR "I think that phrase is getting a bit worn out."
?ELS22: PRINTR "Nothing happens here."
.FUNCT GROUND-FUNCTION
EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS5
EQUAL? PRSI,GROUND \?ELS5
CALL PERFORM,V?DROP,PRSO
RTRUE
?ELS5: CALL NULL-F
ZERO? STACK \FALSE
EQUAL? PRSA,V?DIG \FALSE
PRINTR "The ground is too hard for digging here."
.FUNCT GRUE-FUNCTION
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTR "The grue is a sinister, lurking presence in the dark places of the earth. Its favorite diet is adventurers, but its insatiable appetite is tempered by its fear of light. No grue has ever been seen by the light of day, and few have survived its fearsome jaws to tell the tale."
?ELS5: EQUAL? PRSA,V?FIND \?ELS9
PRINTR "There is no grue here, but I'm sure there is at least one lurking in the darkness nearby. I wouldn't let my light go out if I were you!"
?ELS9: EQUAL? PRSA,V?LISTEN \FALSE
PRINTR "It makes no sound but is always lurking in the darkness nearby."
.FUNCT CRETIN-FCN
EQUAL? PRSA,V?TELL \?ELS5
SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
PRINTR "Talking to yourself is said to be a sign of impending mental collapse."
?ELS5: EQUAL? PRSA,V?GIVE \?ELS9
EQUAL? PRSI,ME \?ELS9
CALL PERFORM,V?TAKE,PRSO
RTRUE
?ELS9: EQUAL? PRSA,V?MAKE \?ELS13
PRINTR "Only you can do that."
?ELS13: EQUAL? PRSA,V?DISEMBARK \?ELS17
PRINTR "You'll have to do that on your own."
?ELS17: EQUAL? PRSA,V?EAT \?ELS21
PRINTR "Auto-cannibalism is not the answer."
?ELS21: EQUAL? PRSA,V?MUNG,V?ATTACK \?ELS25
ZERO? PRSI /?ELS30
FSET? PRSI,WEAPONBIT \?ELS30
CALL JIGS-UP,STR?167
RSTACK
?ELS30: PRINTR "Suicide is not the answer."
?ELS25: EQUAL? PRSA,V?THROW \?ELS38
EQUAL? PRSO,ME \FALSE
PRINTR "Why don't you just walk like normal people?"
?ELS38: EQUAL? PRSA,V?TAKE \?ELS47
PRINTR "How romantic!"
?ELS47: EQUAL? PRSA,V?EXAMINE \FALSE
CALL NULL-F
ZERO? STACK \TRUE
PRINTR "That's difficult unless your eyes are prehensile."
.FUNCT PATH-OBJECT
EQUAL? PRSA,V?FOLLOW,V?TAKE \?ELS5
PRINTR "You must specify a direction to go."
?ELS5: EQUAL? PRSA,V?FIND \?ELS9
PRINTR "I can't help you there...."
?ELS9: EQUAL? PRSA,V?DIG \FALSE
PRINTR "Not a chance."
.FUNCT ZORKMID-FUNCTION
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTR "The zorkmid is the unit of currency of the Great Underground Empire."
?ELS5: EQUAL? PRSA,V?FIND \FALSE
PRINTR "The best way to find zorkmids is to go out and look for them."
.ENDI

View File

@ -64,40 +64,40 @@
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<COND (<EQUAL? ,WINNER ,PLAYER>
<TELL "You can't see any">
<TELL "You can't see any ">
<NOT-HERE-PRINT .PRSO?>
<TELL " here!" CR>)
(T
<TELL "The " D ,WINNER " seems confused. \"I don't see any">
<TELL "The " D ,WINNER " seems confused. \"I don't see any ">
<NOT-HERE-PRINT .PRSO?>
<TELL " here!\"" CR>)>
<RTRUE>>
<ROUTINE FIND-NOT-HERE (TBL PRSO? "AUX" M-F OBJ)
;<ROUTINE FIND-NOT-HERE (TBL PRSO? "AUX" M-F OBJ)
;"Here is where special-case code goes. <MOBY-FIND .TBL> returns
number of matches. If 1, then P-MOBY-FOUND is it. One may treat
the 0 and >1 cases alike or different. It doesn't matter. Always
return RFALSE (not handled) if you have resolved the problem."
<SET M-F <MOBY-FIND .TBL>>
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[Moby-found " N .M-F " objects" "]" CR>)>
<COND (<AND <G? .M-F 1>
<SET OBJ <GETP <1 .TBL> ,P?GLOBAL>>>
<SET OBJ <GETP <GET .TBL 1> ,P?GLOBAL>>>
<SET M-F 1>
<SETG P-MOBY-FOUND .OBJ>)>
<COND (<==? 1 .M-F>
<COND (,DEBUG <TELL "[Namely: " D ,P-MOBY-FOUND "]" CR>)>
;<COND (,DEBUG <TELL "[Namely: " D ,P-MOBY-FOUND "]" CR>)>
<COND (.PRSO? <SETG PRSO ,P-MOBY-FOUND>)
(T <SETG PRSI ,P-MOBY-FOUND>)>
<RFALSE>)
(<NOT .PRSO?>
<TELL "You wouldn't find any">
<TELL "You wouldn't find any ">
<NOT-HERE-PRINT .PRSO?>
<TELL " there." CR>
<RTRUE>)
(T ,NOT-HERE-OBJECT)>>
<ROUTINE GLOBAL-NOT-HERE-PRINT (OBJ)
;<ROUTINE GLOBAL-NOT-HERE-PRINT (OBJ)
;<COND (,P-MULT <SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>)>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
@ -108,8 +108,8 @@
<ROUTINE NOT-HERE-PRINT (PRSO?)
<COND (,P-OFLAG
<COND (,P-XADJ <TELL " "> <PRINTB ,P-XADJN>)>
<COND (,P-XNAM <TELL " "> <PRINTB ,P-XNAM>)>)
<COND (,P-XADJ <PRINTB ,P-XADJN>)>
<COND (,P-XNAM <PRINTB ,P-XNAM>)>)
(.PRSO?
<BUFFER-PRINT <GET ,P-ITBL ,P-NC1> <GET ,P-ITBL ,P-NC1L> <>>)
(T
@ -147,13 +147,26 @@
<OBJECT SAILOR
(IN GLOBAL-OBJECTS)
(SYNONYM SAILOR)
(SYNONYM SAILOR FOOTPAD AVIATOR)
(DESC "sailor")
(FLAGS NDESCBIT)
(ACTION SAILOR-FCN)>
<ROUTINE SAILOR-FCN ()
<COND (<VERB? HELLO>
<COND (<VERB? TELL>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<TELL "You can't talk to the sailor that way." CR>)
(<VERB? EXAMINE>
%<COND (<==? ,ZORK-NUMBER 3>
'<COND (<NOT <FSET? ,VIKING-SHIP ,INVISIBLE>>
<TELL
"He looks like a sailor." CR>
<RTRUE>)>)
(ELSE T)>
<TELL
"There is no sailor to be seen." CR>)
(<VERB? HELLO>
<SETG HS <+ ,HS 1>>
%<COND (<==? ,ZORK-NUMBER 3>
'<COND (<NOT <FSET? ,VIKING-SHIP ,INVISIBLE>>
@ -169,16 +182,17 @@ off toward the west, singing a lively, but somewhat uncouth, sailor song." CR>
<COND (,SHIP-GONE
<TELL "Nothing happens anymore." CR>)
(T
<TELL "Nothing happens yet." CR>)>)>)
<TELL "Nothing happens yet." CR>)>)
(T <TELL "Nothing happens here." CR>)>)
(T
'<NULL-F>)>
<COND (<0? <MOD ,HS 20>>
<TELL "You seem to be repeating yourself." CR>)
(<0? <MOD ,HS 10>>
<TELL
'<COND (<0? <MOD ,HS 20>>
<TELL
"You seem to be repeating yourself." CR>)
(<0? <MOD ,HS 10>>
<TELL
"I think that phrase is getting a bit worn out." CR>)
(T
<TELL "Nothing happens here." CR>)>)>>
(T
<TELL "Nothing happens here." CR>)>)>)>>
<OBJECT GROUND
(IN GLOBAL-OBJECTS)
@ -258,6 +272,10 @@ you!" CR>)
<JIGS-UP "If you insist.... Poof, you're dead!">)
(T
<TELL "Suicide is not the answer." CR>)>)
(<VERB? THROW>
<COND (<==? ,PRSO ,ME>
<TELL
"Why don't you just walk like normal people?" CR>)>)
(<VERB? TAKE>
<TELL "How romantic!" CR>)
(<VERB? EXAMINE>
@ -265,11 +283,19 @@ you!" CR>)
'(<EQUAL? ,HERE <LOC ,MIRROR-1> <LOC ,MIRROR-2>>
<TELL
"Your image in the mirror looks tired." CR>))
(<==? ,ZORK-NUMBER 3>
'(,INVIS
<TELL
"A good trick, as you are currently invisible." CR>))
(T
'(<NULL-F> <RTRUE>))>
(T
<TELL
"That's difficult unless your eyes are prehensile." CR>)>)>>
%<COND (<==? ,ZORK-NUMBER 3>
'<TELL
"What you can see looks pretty much as usual, sorry to say." CR>)
(ELSE
'<TELL
"That's difficult unless your eyes are prehensile." CR>)>)>)>>
<OBJECT ADVENTURER
(SYNONYM ADVENTURER)
@ -280,9 +306,9 @@ you!" CR>)
<OBJECT PATHOBJ
(IN GLOBAL-OBJECTS)
(SYNONYM PASSAGE CRAWLWAY TRAIL PATH)
(SYNONYM TRAIL PATH)
(ADJECTIVE FOREST NARROW LONG WINDING)
(DESC "way")
(DESC "passage")
(FLAGS NDESCBIT)
(ACTION PATH-OBJECT)>

39
gmacros.zap Normal file
View File

@ -0,0 +1,39 @@
.FUNCT ZPROB,BASE
ZERO? LUCKY /?ELS5
RANDOM 100
GRTR? BASE,STACK /TRUE
RFALSE
?ELS5: RANDOM 300
GRTR? BASE,STACK /TRUE
RFALSE
.FUNCT RANDOM-ELEMENT,FROB
GET FROB,0
RANDOM STACK
GET FROB,STACK
RSTACK
.FUNCT PICK-ONE,FROB,L,CNT,RND,MSG,RFROB
GET FROB,0 >L
GET FROB,1 >CNT
DEC 'L
ADD FROB,2 >FROB
MUL CNT,2
ADD FROB,STACK >RFROB
SUB L,CNT
RANDOM STACK >RND
GET RFROB,RND >MSG
GET RFROB,1
PUT RFROB,RND,STACK
PUT RFROB,1,MSG
INC 'CNT
EQUAL? CNT,L \?CND1
SET 'CNT,0
?CND1: PUT FROB,0,CNT
RETURN MSG
.ENDI

View File

@ -45,11 +45,11 @@
<FORM GETP .O .E>>>)>)>)
(<TYPE? .E STRING ZSTRING>
<MAPRET <FORM PRINTI .E>>)
(<TYPE? .E FORM>
(<TYPE? .E FORM LVAL GVAL>
<MAPRET <FORM PRINT .E>>)
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>>
<ROUTINE PRINTA (O)
;<ROUTINE PRINTA (O)
<TELL "a " D .O>>
<DEFMAC VERB? ("ARGS" ATMS)

238
gmain.zap Normal file
View File

@ -0,0 +1,238 @@
.FUNCT MAIN-LOOP,TRASH
?PRG1: CALL MAIN-LOOP-1 >TRASH
JUMP ?PRG1
.FUNCT MAIN-LOOP-1,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,O,I
SET 'CNT,0
SET 'OBJ,FALSE-VALUE
SET 'PTBL,TRUE-VALUE
CALL PARSER >P-WON
ZERO? P-WON /?ELS3
GET P-PRSI,P-MATCHLEN >ICNT
GET P-PRSO,P-MATCHLEN >OCNT
ZERO? P-IT-OBJECT /?CND4
CALL ACCESSIBLE?,P-IT-OBJECT
ZERO? STACK /?CND4
SET 'TMP,FALSE-VALUE
?PRG9: IGRTR? 'CNT,ICNT \?ELS13
JUMP ?REP10
?ELS13: GET P-PRSI,CNT
EQUAL? STACK,IT \?PRG9
PUT P-PRSI,CNT,P-IT-OBJECT
SET 'TMP,TRUE-VALUE
?REP10: ZERO? TMP \?CND19
SET 'CNT,0
?PRG22: IGRTR? 'CNT,OCNT \?ELS26
JUMP ?CND19
?ELS26: GET P-PRSO,CNT
EQUAL? STACK,IT \?PRG22
PUT P-PRSO,CNT,P-IT-OBJECT
?CND19: SET 'CNT,0
?CND4: ZERO? OCNT \?ELS36
PUSH OCNT
JUMP ?CND32
?ELS36: GRTR? OCNT,1 \?ELS38
SET 'TBL,P-PRSO
ZERO? ICNT \?ELS41
SET 'OBJ,FALSE-VALUE
JUMP ?CND39
?ELS41: GET P-PRSI,1 >OBJ
?CND39: PUSH OCNT
JUMP ?CND32
?ELS38: GRTR? ICNT,1 \?ELS45
SET 'PTBL,FALSE-VALUE
SET 'TBL,P-PRSI
GET P-PRSO,1 >OBJ
PUSH ICNT
JUMP ?CND32
?ELS45: PUSH 1
?CND32: SET 'NUM,STACK
ZERO? OBJ \?CND48
EQUAL? ICNT,1 \?CND48
GET P-PRSI,1 >OBJ
?CND48: EQUAL? PRSA,V?WALK \?ELS55
ZERO? P-WALK-DIR /?ELS55
CALL PERFORM,PRSA,PRSO >V
JUMP ?CND53
?ELS55: ZERO? NUM \?ELS59
GETB P-SYNTAX,P-SBITS
BAND STACK,P-SONUMS
ZERO? STACK \?ELS62
CALL PERFORM,PRSA >V
SET 'PRSO,FALSE-VALUE
JUMP ?CND53
?ELS62: ZERO? LIT \?ELS64
PRINTI "It's too dark to see."
CRLF
JUMP ?CND53
?ELS64: PRINTI "It's not clear what you're referring to."
CRLF
SET 'V,FALSE-VALUE
JUMP ?CND53
?ELS59: SET 'P-NOT-HERE,0
SET 'P-MULT,FALSE-VALUE
GRTR? NUM,1 \?CND73
SET 'P-MULT,TRUE-VALUE
?CND73: SET 'TMP,FALSE-VALUE
?PRG76: IGRTR? 'CNT,NUM \?ELS80
GRTR? P-NOT-HERE,0 \?ELS83
PRINTI "The "
EQUAL? P-NOT-HERE,NUM /?CND86
PRINTI "other "
?CND86: PRINTI "object"
EQUAL? P-NOT-HERE,1 /?CND93
PRINTI "s"
?CND93: PRINTI " that you mentioned "
EQUAL? P-NOT-HERE,1 /?ELS102
PRINTI "are"
JUMP ?CND100
?ELS102: PRINTI "is"
?CND100: PRINTI "n't here."
CRLF
JUMP ?REP77
?ELS83: ZERO? TMP \?REP77
PRINTI "There's nothing here you can take."
CRLF
JUMP ?REP77
?ELS80: ZERO? PTBL /?ELS119
GET P-PRSO,CNT >OBJ1
JUMP ?CND117
?ELS119: GET P-PRSI,CNT >OBJ1
?CND117: ZERO? PTBL /?ELS127
PUSH OBJ1
JUMP ?CND123
?ELS127: PUSH OBJ
?CND123: SET 'O,STACK
ZERO? PTBL /?ELS135
PUSH OBJ
JUMP ?CND131
?ELS135: PUSH OBJ1
?CND131: SET 'I,STACK
GRTR? NUM,1 /?THN142
GET P-ITBL,P-NC1
GET STACK,0
EQUAL? STACK,W?ALL \?CND139
?THN142: LOC WINNER >V
EQUAL? O,NOT-HERE-OBJECT \?ELS146
INC 'P-NOT-HERE
JUMP ?PRG76
?ELS146: EQUAL? PRSA,V?TAKE \?ELS148
ZERO? I /?ELS148
GET P-ITBL,P-NC1
GET STACK,0
EQUAL? STACK,W?ALL \?ELS148
IN? O,I /?ELS148
JUMP ?PRG76
?ELS148: EQUAL? P-GETFLAGS,P-ALL \?ELS152
EQUAL? PRSA,V?TAKE \?ELS152
LOC O
EQUAL? STACK,WINNER,HERE,V /?ELS158
LOC O
EQUAL? STACK,I /?ELS158
LOC O
FSET? STACK,SURFACEBIT \?PRG76
?ELS158: FSET? O,TAKEBIT /?ELS152
FSET? O,TRYTAKEBIT /?ELS152
JUMP ?PRG76
?ELS152: EQUAL? OBJ1,IT \?ELS165
PRINTD P-IT-OBJECT
JUMP ?CND163
?ELS165: PRINTD OBJ1
?CND163: PRINTI ": "
?CND139: SET 'PRSO,O
SET 'PRSI,I
SET 'TMP,TRUE-VALUE
CALL PERFORM,PRSA,PRSO,PRSI >V
EQUAL? V,M-FATAL \?PRG76
JUMP ?CND53
?REP77:
?CND53: EQUAL? V,M-FATAL /?CND173
LOC WINNER
GETP STACK,P?ACTION
CALL STACK,M-END >V
?CND173: EQUAL? V,M-FATAL \?CND1
SET 'P-CONT,FALSE-VALUE
JUMP ?CND1
?ELS3: SET 'P-CONT,FALSE-VALUE
?CND1: CALL NULL-F
ZERO? P-WON /FALSE
EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?TELL /TRUE
EQUAL? PRSA,V?VERSION,V?SAVE,V?VERBOSE /TRUE
EQUAL? PRSA,V?SCORE,V?RESTART,V?QUIT /TRUE
EQUAL? PRSA,V?RESTORE,V?UNSCRIPT,V?SCRIPT /TRUE
CALL CLOCKER >V
RETURN V
.FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI
SET 'OA,PRSA
SET 'OO,PRSO
SET 'OI,PRSI
EQUAL? IT,I,O \?CND1
CALL ACCESSIBLE?,P-IT-OBJECT
ZERO? STACK \?CND1
PRINTI "I don't see what you are referring to."
CRLF
RETURN 2
?CND1: EQUAL? O,IT \?CND10
SET 'O,P-IT-OBJECT
?CND10: EQUAL? I,IT \?CND13
SET 'I,P-IT-OBJECT
?CND13: SET 'PRSA,A
SET 'PRSO,O
ZERO? PRSO /?CND16
EQUAL? PRSI,IT /?CND16
EQUAL? PRSA,V?WALK /?CND16
SET 'P-IT-OBJECT,PRSO
?CND16: SET 'PRSI,I
EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?ELS23
CALL NOT-HERE-OBJECT-F >V
ZERO? V /?ELS23
JUMP ?CND21
?ELS23: SET 'O,PRSO
SET 'I,PRSI
GETP WINNER,P?ACTION
CALL STACK >V
ZERO? V /?ELS30
JUMP ?CND21
?ELS30: LOC WINNER
GETP STACK,P?ACTION
CALL STACK,M-BEG >V
ZERO? V /?ELS32
JUMP ?CND21
?ELS32: GET PREACTIONS,A
CALL STACK >V
ZERO? V /?ELS34
JUMP ?CND21
?ELS34: ZERO? I /?ELS36
GETP I,P?ACTION
CALL STACK >V
ZERO? V /?ELS36
JUMP ?CND21
?ELS36: ZERO? O /?ELS40
EQUAL? A,V?WALK /?ELS40
LOC O
ZERO? STACK /?ELS40
LOC O
GETP STACK,P?CONTFCN
CALL STACK >V
ZERO? V /?ELS40
JUMP ?CND21
?ELS40: ZERO? O /?ELS44
EQUAL? A,V?WALK /?ELS44
GETP O,P?ACTION
CALL STACK >V
ZERO? V /?ELS44
JUMP ?CND21
?ELS44: GET ACTIONS,A
CALL STACK >V
ZERO? V /?CND21
?CND21: SET 'PRSA,OA
SET 'PRSO,OO
SET 'PRSI,OI
RETURN V
.ENDI

139
gmain.zil
View File

@ -2,6 +2,8 @@
The ZORK Trilogy
started on 7/28/83 by MARC"
<CONSTANT SERIAL 0>
<GLOBAL PLAYER <>>
<GLOBAL P-WON <>>
@ -26,20 +28,42 @@
<CONSTANT M-OBJDESC 5>
<GLOBAL DEBUG <>>
;"GO now lives in SPECIAL.ZIL"
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
<REPEAT ()
<ROUTINE MAIN-LOOP ("AUX" TRASH)
<REPEAT ()
<SET TRASH <MAIN-LOOP-1>>>>
<ROUTINE MAIN-LOOP-1 ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP O I)
<SET CNT 0>
<SET OBJ <>>
<SET PTBL T>
<COND (<SETG P-WON <PARSER>>
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
<SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>
<COND (<AND ,P-IT-OBJECT <ACCESSIBLE? ,P-IT-OBJECT>>
<SET TMP <>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .ICNT>
<RETURN>)
(T
<COND (<EQUAL? <GET ,P-PRSI .CNT> ,IT>
<PUT ,P-PRSI .CNT ,P-IT-OBJECT>
<SET TMP T>
<RETURN>)>)>>
<COND (<NOT .TMP>
<SET CNT 0>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .OCNT>
<RETURN>)
(T
<COND (<EQUAL? <GET ,P-PRSO .CNT> ,IT>
<PUT ,P-PRSO .CNT ,P-IT-OBJECT>
<RETURN>)>)>>)>
<SET CNT 0>)>
<SET NUM
<COND (<0? <SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>> .OCNT)
<COND (<0? .OCNT> .OCNT)
(<G? .OCNT 1>
<SET TBL ,P-PRSO>
<COND (<0? .ICNT> <SET OBJ <>>)
@ -52,7 +76,9 @@
.ICNT)
(T 1)>>
<COND (<AND <NOT .OBJ> <1? .ICNT>> <SET OBJ <GET ,P-PRSI 1>>)>
<COND (<==? ,PRSA ,V?WALK> <SET V <PERFORM ,PRSA ,PRSO>>)
<COND (<AND <==? ,PRSA ,V?WALK>
<NOT <ZERO? ,P-WALK-DIR>>>
<SET V <PERFORM ,PRSA ,PRSO>>)
(<0? .NUM>
<COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
<SET V <PERFORM ,PRSA>>
@ -83,51 +109,42 @@
<TELL "n't here." CR>)
(<NOT .TMP>
<TELL
"There's nothing here to take." CR>)>
"There's nothing here you can take." CR>)>
<RETURN>)
(T
<COND (.PTBL <SET OBJ1 <GET ,P-PRSO .CNT>>)
(T <SET OBJ1 <GET ,P-PRSI .CNT>>)>
<SETG PRSO <COND (.PTBL .OBJ1) (T .OBJ)>>
<SETG PRSI <COND (.PTBL .OBJ) (T .OBJ1)>>
<COND (<OR <G? .NUM 1>
<EQUAL? <GET <GET ,P-ITBL ,P-NC1>
0>
,W?ALL>>
<SET V <LOC ,WINNER>>
<COND (<EQUAL? .OBJ1
,NOT-HERE-OBJECT>
<SETG P-NOT-HERE
<+ ,P-NOT-HERE 1>>
<AGAIN>)
(<AND <VERB? TAKE>
,PRSI
<EQUAL? <GET <GET ,P-ITBL
,P-NC1>
0>
,W?ALL>
<NOT <IN? ,PRSO ,PRSI>>>
<AGAIN>)
(<AND <EQUAL? ,P-GETFLAGS
,P-ALL>
<VERB? TAKE>
<OR <AND <NOT <EQUAL?
<LOC .OBJ1>
,WINNER
.V>>
<NOT <FSET?
<LOC .OBJ1>
,SURFACEBIT>>>
<NOT <OR <FSET? .OBJ1
,TAKEBIT>
<FSET? .OBJ1
,TRYTAKEBIT>>>>>
<AGAIN>)
(T
<COND (<EQUAL? .OBJ1 ,IT>
<PRINTD ,P-IT-OBJECT>)
(T <PRINTD .OBJ1>)>
<TELL ": ">)>)>
<SET O <COND (.PTBL .OBJ1) (T .OBJ)>>
<SET I <COND (.PTBL .OBJ) (T .OBJ1)>>
;"multiple exceptions"
<COND (<OR <G? .NUM 1>
<EQUAL? <GET <GET ,P-ITBL ,P-NC1> 0> ,W?ALL>>
<SET V <LOC ,WINNER>>
<COND (<EQUAL? .O ,NOT-HERE-OBJECT>
<SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>
<AGAIN>)
(<AND <VERB? TAKE>
.I
<EQUAL? <GET <GET ,P-ITBL ,P-NC1> 0> ,W?ALL>
<NOT <IN? .O .I>>>
<AGAIN>)
(<AND <EQUAL? ,P-GETFLAGS ,P-ALL>
<VERB? TAKE>
<OR <AND <NOT <EQUAL? <LOC .O> ,WINNER ,HERE .V>>
<NOT <EQUAL? <LOC .O> .I>>
<NOT <FSET? <LOC .O> ,SURFACEBIT>>>
<NOT <OR <FSET? .O ,TAKEBIT>
<FSET? .O ,TRYTAKEBIT>>>>>
<AGAIN>)
(ELSE
<COND (<EQUAL? .OBJ1 ,IT>
<PRINTD ,P-IT-OBJECT>)
(T <PRINTD .OBJ1>)>
<TELL ": ">)>)>
;"end multiple exceptions"
<SETG PRSO .O>
<SETG PRSI .I>
<SET TMP T>
<SET V <PERFORM ,PRSA ,PRSO ,PRSI>>
<COND (<==? .V ,M-FATAL> <RETURN>)>)>>)>
@ -135,7 +152,8 @@
;<COND (<==? <LOC ,WINNER> ,PRSO>
<SETG PRSO <>>)>
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
<COND (<VERB? AGAIN WALK SAVE RESTORE SCORE VERSION ;WAIT> T)
;<COND (<VERB? ;AGAIN ;"WALK -- why was this here?"
SAVE RESTORE ;SCORE ;VERSION ;WAIT> T)
(T
<SETG L-PRSA ,PRSA>
<SETG L-PRSO ,PRSO>
@ -143,17 +161,16 @@
<COND (<==? .V ,M-FATAL> <SETG P-CONT <>>)>)
(T
<SETG P-CONT <>>)>
%<COND (<==? ,ZORK-NUMBER 3>
'<COND (<NOT ,CLEFT-QUEUED?>
<ENABLE <QUEUE I-CLEFT <+ 70 <RANDOM 70>>>>
<SETG CLEFT-QUEUED? T>)>)
(ELSE '<NULL-F>)>
<COND (,P-WON
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE VERSION
QUIT RESTART SCORE SCRIPT UNSCRIPT RESTORE> T)
(T <SET V <CLOCKER>>)>)>>>
(T <SET V <CLOCKER>>)>)>>
<GLOBAL L-PRSA <>>
<GLOBAL L-PRSO <>>
<GLOBAL L-PRSI <>>
<GLOBAL P-MULT <>>
<GLOBAL P-NOT-HERE 0>
@ -163,7 +180,7 @@
%<COND (<GASSIGNED? PREDGEN>
'<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
<COND (,DEBUG
;<COND (,DEBUG
<TELL "[Perform: ">
%<COND (<GASSIGNED? PREDGEN> '<TELL N .A>)
(T '<PRINC <NTH ,ACTIONS <+ <* .A 2> 1>>>)>
@ -175,7 +192,7 @@
<SET OO ,PRSO>
<SET OI ,PRSI>
<COND (<AND <EQUAL? ,IT .I .O>
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
<NOT <ACCESSIBLE? ,P-IT-OBJECT>>>
<TELL "I don't see what you are referring to." CR>
<RFATAL>)>
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
@ -183,8 +200,7 @@
<SETG PRSA .A>
<SETG PRSO .O>
<COND (<AND ,PRSO <NOT <EQUAL? ,PRSI ,IT>> <NOT <VERB? WALK>>>
<SETG P-IT-OBJECT ,PRSO>
<SETG P-IT-LOC ,HERE>)>
<SETG P-IT-OBJECT ,PRSO>)>
<SETG PRSI .I>
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
<SET V <NOT-HERE-OBJECT-F>>> .V)
@ -228,7 +244,7 @@
<SET OO ,PRSO>
<SET OI ,PRSI>
<COND (<AND <EQUAL? ,IT .I .O>
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
<NOT <ACCESSIBLE? ,P-IT-OBJECT>>>
<TELL "I don't see what you are referring to." CR>
<RFATAL>)>
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
@ -236,8 +252,7 @@
<SETG PRSA .A>
<SETG PRSO .O>
<COND (<AND ,PRSO <NOT <VERB? WALK>>>
<SETG P-IT-OBJECT ,PRSO>
<SETG P-IT-LOC ,HERE>)>
<SETG P-IT-OBJECT ,PRSO>)>
<SETG PRSI .I>
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
<SET V <D-APPLY "Not Here" ,NOT-HERE-OBJECT-F>>> .V)

1612
gparser.zap Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

117
gsyntax.diffs Normal file
View File

@ -0,0 +1,117 @@
;COMPARISON OF SS:<ZORK2>GSYNTAX.ZIL.140 AND SS:<ZORK1>GSYNTAX.ZIL.141
;OPTIONS ARE /3
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-9 (143)
<BUZZ A AN THE IS AND OF THEN ALL ONE BUT EXCEPT \. \, \" YES NO Y HERE
FEEBLE FUMBLE FEAR FILCH FREEZE FALL FRY FLUORESCE
FERMENT FIERCE FLOAT FIREPROOF FENCE FUDGE FANTASIZE
FROTZ OZMOO>
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-9 (143)
<BUZZ A AN THE IS AND OF THEN ALL ONE BUT EXCEPT \. \, \" YES NO Y HERE>
<COND (<==? ,ZORK-NUMBER 2>
<BUZZ FEEBLE FUMBLE FEAR FILCH FREEZE FALL FRY FLUORESCE
FERMENT FIERCE FLOAT FIREPROOF FENCE FUDGE FANTASIZE
FROTZ OZMOO>)>
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-65 (1209)
<SYNTAX DEBUG = V-DEBUG>
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-67 (1250)
<SYNTAX \#RANDOM OBJECT = V-RANDOM>
<SYNTAX \#COMMAND = V-COMMAND-FILE>
<SYNTAX \#RECORD = V-RECORD>
<SYNTAX \#UNRECORD = V-UNRECORD>
;<SYNTAX DEBUG = V-DEBUG>
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-83 (1536)
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-93 (1724)
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-118 (2723)
<SYNTAX CLIMB UP OBJECT (FIND RMUNGBIT) = V-CLIMB-UP>
<SYNTAX CLIMB UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX CLIMB DOWN (FIND RMUNGBIT) = V-CLIMB-DOWN>
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-127 (2840)
<SYNTAX CLIMB UP = V-CLIMB-UP>
<SYNTAX CLIMB UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX CLIMB DOWN = V-CLIMB-DOWN>
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-153 (4098)
<SYNTAX DIG IN OBJECT = V-DIG>
<SYNTAX DIG OBJECT (ON-GROUND IN-ROOM)
WITH OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE) = V-DIG>
<SYNTAX DIG IN OBJECT (ON-GROUND IN-ROOM)
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-162 (4176)
<SYNTAX DIG IN OBJECT (ON-GROUND IN-ROOM)
WITH OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE) = V-DIG>
<SYNTAX DIG OBJECT (ON-GROUND IN-ROOM)
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-188 (5237)
<SYNTAX EXAMINE OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-EXAMINE>
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-196 (5283)
<SYNTAX EXAMINE OBJECT (MANY) = V-EXAMINE>
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-204 (5855)
<SYNTAX FILL OBJECT (FIND CONTBIT) (TAKE HAVE HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT = V-FILL PRE-FILL>
<SYNTAX FILL OBJECT (FIND CONTBIT)
(TAKE HAVE HELD CARRIED ON-GROUND IN-ROOM) = V-FILL PRE-FILL>
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-212 (5870)
<SYNTAX FILL OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT = V-FILL PRE-FILL>
<SYNTAX FILL OBJECT (FIND CONTBIT)
(HELD CARRIED ON-GROUND IN-ROOM) = V-FILL PRE-FILL>
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-254 (7326)
<SYNTAX KILL OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-262 (7321)
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-319 (9832)
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-325 (9756)
<SYNTAX ROLL OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-418 (13394)
<SYNTAX SHAKE OBJECT = V-SHAKE>
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-426 (13380)
<SYNTAX SHAKE OBJECT (HAVE) = V-SHAKE>
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-450 (14333)
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-458 (14326)
<SYNTAX SWIM ACROSS OBJECT = V-SWIM>
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-471 (15314)
<SYNTAX TELL OBJECT (FIND ACTORBIT) (IN-ROOM) ABOUT OBJECT = V-TELL>
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-480 (15345)
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-494 (16312)
WITH OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE)
= V-TURN PRE-TURN>
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-502 (16273)
WITH OBJECT (FIND RMUNGBIT) = V-TURN PRE-TURN>
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-512 (17130)
<SYNONYM UNTIE FREE RELEASE UNFASTEN UNATTACH UNHOOK>
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-519 (17052)
<SYNONYM UNTIE FREE UNFASTEN UNATTACH UNHOOK>
***************
**** FILE SS:<ZORK2>GSYNTAX.ZIL.140, 1-535 (18021)
<SYNTAX WAVE AT OBJECT = V-WAVE>
<SYNONYM WAVE BRANDISH POINT AIM>
**** FILE SS:<ZORK1>GSYNTAX.ZIL.141, 1-542 (17935)
<SYNONYM WAVE BRANDISH>
***************

2
gsyntax.zap Normal file
View File

@ -0,0 +1,2 @@
.ENDI

View File

@ -6,10 +6,16 @@
"Buzzwords, Prepositions and Directions"
<BUZZ A AN THE IS AND OF THEN ALL ONE BUT EXCEPT \. \, \" YES NO Y HERE
FEEBLE FUMBLE FEAR FILCH FREEZE FALL FRY FLUORESCE
FERMENT FIERCE FLOAT FIREPROOF FENCE FUDGE FANTASIZE
FROTZ OZMOO>
<BUZZ AGAIN G OOPS>
<BUZZ A AN THE IS AND OF THEN ALL ONE BUT EXCEPT \. \, \" YES NO Y HERE>
<COND (<==? ,ZORK-NUMBER 2>
<BUZZ FEEBLE FUMBLE FEAR FILCH FREEZE FALL FRY FLUORESCE
FERMENT FIERCE FLOAT FIREPROOF FENCE FUDGE FANTASIZE
FROTZ OZMOO>)
(<==? ,ZORK-NUMBER 3>
<BUZZ FROTZ OZMOO>)>
<SYNONYM WITH USING THROUGH THRU>
<SYNONYM IN INSIDE INTO>
@ -62,7 +68,15 @@
<SYNTAX $VERIFY = V-VERIFY>
<SYNTAX DEBUG = V-DEBUG>
<SYNTAX \#RANDOM OBJECT = V-RANDOM>
<SYNTAX \#COMMAND = V-COMMAND-FILE>
<SYNTAX \#RECORD = V-RECORD>
<SYNTAX \#UNRECORD = V-UNRECORD>
;<SYNTAX DEBUG = V-DEBUG>
^L
@ -71,8 +85,8 @@
<SYNTAX ACTIVATE OBJECT (FIND LIGHTBIT)
(HELD CARRIED ON-GROUND IN-ROOM) = V-LAMP-ON>
<SYNTAX AGAIN = V-AGAIN>
<SYNONYM AGAIN G>
;<SYNTAX AGAIN = V-AGAIN>
;<SYNONYM AGAIN G>
<SYNTAX ANSWER = V-ANSWER>
<SYNTAX ANSWER OBJECT = V-REPLY>
@ -80,7 +94,10 @@
<SYNTAX APPLY OBJECT TO OBJECT = V-PUT PRE-PUT>
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
<COND (<==? ,ZORK-NUMBER 2>
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
= V-ATTACK>)>
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-ATTACK>
<SYNONYM ATTACK FIGHT HURT INJURE HIT>
@ -117,7 +134,7 @@
<SYNTAX CLIMB UP OBJECT (FIND RMUNGBIT) = V-CLIMB-UP>
<SYNTAX CLIMB UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX CLIMB DOWN (FIND RMUNGBIT) = V-CLIMB-DOWN>
<SYNTAX CLIMB DOWN OBJECT (FIND RMUNGBIT) = V-CLIMB-DOWN>
<SYNTAX CLIMB DOWN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX CLIMB OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-FOO>
<SYNTAX CLIMB IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
@ -150,11 +167,11 @@
<SYNTAX DESTROY IN OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-OPEN>
<SYNONYM DESTROY DAMAGE BREAK BLOCK SMASH>
<SYNTAX DIG IN OBJECT = V-DIG>
<SYNTAX DIG OBJECT (ON-GROUND IN-ROOM)
WITH OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE) = V-DIG>
<SYNTAX DIG IN OBJECT (ON-GROUND IN-ROOM) = V-DIG>
<SYNTAX DIG IN OBJECT (ON-GROUND IN-ROOM)
WITH OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE) = V-DIG>
<SYNTAX DIG OBJECT (ON-GROUND IN-ROOM)
WITH OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE) = V-DIG>
<SYNTAX DISEMBARK OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM)
= V-DISEMBARK>
@ -170,7 +187,7 @@
<SYNTAX DROP OBJECT (HELD MANY HAVE) DOWN OBJECT = V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX DROP OBJECT (HELD MANY HAVE) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNONYM DROP RELEASE>
;<SYNONYM DROP RELEASE>
<SYNTAX EAT OBJECT (FIND FOODBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
= V-EAT>
@ -185,7 +202,7 @@
<SYNTAX EXIT = V-EXIT>
<SYNTAX EXIT OBJECT = V-EXIT>
<SYNTAX EXAMINE OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-EXAMINE>
<SYNTAX EXAMINE OBJECT (MANY) = V-EXAMINE>
<SYNTAX EXAMINE IN OBJECT (HELD CARRIED IN-ROOM ON-GROUND MANY)
= V-LOOK-INSIDE>
<SYNTAX EXAMINE ON OBJECT (HELD CARRIED IN-ROOM ON-GROUND MANY)
@ -201,10 +218,10 @@
(HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE) = V-LAMP-OFF>
<SYNONYM EXTINGUISH DOUSE>
<SYNTAX FILL OBJECT (FIND CONTBIT) (TAKE HAVE HELD CARRIED ON-GROUND IN-ROOM)
<SYNTAX FILL OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT = V-FILL PRE-FILL>
<SYNTAX FILL OBJECT (FIND CONTBIT)
(TAKE HAVE HELD CARRIED ON-GROUND IN-ROOM) = V-FILL PRE-FILL>
(HELD CARRIED ON-GROUND IN-ROOM) = V-FILL PRE-FILL>
<SYNTAX FIND OBJECT = V-FIND>
<SYNONYM FIND WHERE SEEK SEE>
@ -219,11 +236,9 @@
TO OBJECT (FIND ACTORBIT) (ON-GROUND) = V-GIVE PRE-GIVE>
<SYNTAX GIVE OBJECT (FIND ACTORBIT) (ON-GROUND)
OBJECT (MANY HELD HAVE) = V-SGIVE PRE-SGIVE>
<SYNTAX HAND OBJECT (MANY HELD HAVE)
TO OBJECT (FIND ACTORBIT) (ON-GROUND) = V-GIVE PRE-GIVE>
<SYNTAX HAND OBJECT (FIND ACTORBIT) (ON-GROUND)
OBJECT (MANY HELD HAVE) = V-SGIVE PRE-SGIVE>
<SYNONYM GIVE DONATE OFFER FEED>
<COND (<N==? ,ZORK-NUMBER 3>
<SYNONYM GIVE HAND>)>
<SYNTAX HATCH OBJECT = V-HATCH>
@ -237,8 +252,8 @@
<SYNTAX INFLAT OBJECT WITH
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED) = V-INFLATE>
<SYNTAX IS OBJECT IN OBJECT = V-IS-IN>
<SYNTAX IS OBJECT ON OBJECT = V-IS-IN>
;<SYNTAX IS OBJECT IN OBJECT = V-IS-IN>
;<SYNTAX IS OBJECT ON OBJECT = V-IS-IN>
<SYNTAX JUMP = V-LEAP>
<SYNTAX JUMP OVER OBJECT = V-LEAP>
@ -251,7 +266,10 @@
<SYNTAX KICK OBJECT = V-KICK>
<SYNONYM KICK TAUNT>
<SYNTAX KILL OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
<COND (<==? ,ZORK-NUMBER 2>
<SYNTAX KILL OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
= V-ATTACK>)>
<SYNTAX KILL OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-ATTACK>
<SYNONYM KILL MURDER SLAY DISPATCH>
@ -312,9 +330,12 @@
<SYNONYM MELT LIQUIFY>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) OBJECT = V-PUSH-TO>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) TO OBJECT = V-PUSH-TO>
<SYNTAX MOVE OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX MOVE OBJECT WITH OBJECT (FIND TOOLBIT) = V-TURN PRE-TURN>
<SYNTAX ROLL UP OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNTAX ROLL OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNTAX MUMBLE = V-MUMBLE>
<SYNONYM MUMBLE SIGH>
@ -415,7 +436,7 @@
<SYNTAX SEND FOR OBJECT = V-SEND>
<SYNTAX SHAKE OBJECT = V-SHAKE>
<SYNTAX SHAKE OBJECT (HAVE) = V-SHAKE>
<SYNTAX SKIP = V-SKIP>
<SYNONYM SKIP HOP>
@ -447,6 +468,7 @@
<SYNTAX SWIM = V-SWIM>
<SYNTAX SWIM IN OBJECT = V-SWIM>
<SYNTAX SWIM ACROSS OBJECT = V-SWIM>
<SYNONYM SWIM BATHE WADE>
<SYNTAX SWING OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-SWING>
@ -456,7 +478,7 @@
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY) = V-TAKE PRE-TAKE>
<SYNTAX TAKE IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNTAX TAKE OUT OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX TAKE OUT OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX TAKE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX TAKE UP OBJECT (FIND RMUNGBIT) = V-STAND>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM MANY)
@ -491,8 +513,7 @@
<SYNONYM TREASURE TEMPLE>
<SYNTAX TURN OBJECT (FIND TURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE)
= V-TURN PRE-TURN>
WITH OBJECT (FIND RMUNGBIT) = V-TURN PRE-TURN>
<SYNTAX TURN ON OBJECT (FIND LIGHTBIT)
(HELD CARRIED ON-GROUND IN-ROOM) = V-LAMP-ON>
<SYNTAX TURN ON OBJECT WITH OBJECT (HAVE) = V-LAMP-ON>
@ -518,6 +539,7 @@
<SYNTAX WAKE UP OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-ALARM>
<SYNONYM WAKE AWAKE SURPRISE STARTLE>
<SYNTAX WALK = V-WALK-AROUND>
<SYNTAX WALK OBJECT = V-WALK>
<SYNTAX WALK AWAY OBJECT = V-WALK>
<SYNTAX WALK IN OBJECT = V-THROUGH>
@ -533,7 +555,7 @@
<SYNTAX WAVE OBJECT (HELD CARRIED TAKE HAVE) = V-WAVE>
<SYNTAX WAVE OBJECT (HELD CARRIED TAKE HAVE) AT OBJECT = V-WAVE>
<SYNTAX WAVE AT OBJECT = V-WAVE>
<SYNONYM WAVE BRANDISH POINT AIM>
<SYNONYM WAVE BRANDISH>
<SYNTAX WEAR OBJECT = V-WEAR>

392
gverbs.diffs Normal file
View File

@ -0,0 +1,392 @@
;COMPARISON OF SS:<ZORK2>GVERBS.ZIL.407 AND SS:<ZORK1>GVERBS.ZIL.391
;OPTIONS ARE /3
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-82 (1812)
Copyright (c) 1981, 1982, 1983 Infocom, Inc. ">)
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-82 (1812)
Copyright (c) 1981, 1982, 1983, 1984, 1985 Infocom, Inc. ">)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-86 (1984)
Copyright (c) 1981, 1982, 1983, 1984 Infocom, Inc. ">)
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-86 (1996)
Copyright (c) 1981, 1982, 1983 Infocom, Inc. ">)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-112 (2750)
<ROUTINE V-DEBUG ()
<TELL "Turning debugging feature ">
<COND (,DEBUG
<SETG DEBUG <>>
<TELL "off">)
(T
<SETG DEBUG T>
<TELL "on">)>
<TELL "." CR>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-112 (2756)
<ROUTINE V-COMMAND-FILE ()
<DIRIN 1>
<RTRUE>>
<ROUTINE V-RANDOM ()
<COND (<NOT <EQUAL? ,PRSO ,INTNUM>>
<TELL "Illegal call to #RND." CR>)
(T
<RANDOM <- 0 ,P-NUMBER>>
<RTRUE>)>>
<ROUTINE V-RECORD ()
<DIROUT 4>
<RTRUE>>
<ROUTINE V-UNRECORD ()
<DIROUT -4>
<RTRUE>>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-229 (5915)
<ROUTINE PRE-BURN ()
<COND (<NOT ,PRSI>
<TELL "You should say what you want to burn it with." CR>)
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-238 (6054)
<ROUTINE TELL-NO-PRSI ()
<TELL "You didn't say with what!" CR>>
<ROUTINE PRE-BURN ()
<COND (<NOT ,PRSI>
<TELL-NO-PRSI>)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-245 (6360)
<COND (<IN? ,PRSO ,WINNER>
<REMOVE-CAREFULLY ,PRSO>
<TELL "The " D ,PRSO>
<JIGS-UP
" catches fire. Unfortunately, you were holding it at the time.">)
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-257 (6526)
<COND (<OR <IN? ,PRSO ,WINNER>
<IN? ,WINNER ,PRSO>>
<REMOVE-CAREFULLY ,PRSO>
<TELL "The " D ,PRSO>
<TELL
" catches fire. Unfortunately, you were ">
<COND (<IN? ,WINNER ,PRSO>
<TELL "in">)
(T <TELL "holding">)>
<JIGS-UP " it at the time.">)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-266 (6914)
<COND %<COND (<==? ,ZORK-NUMBER 1>
'(<FSET? ,PRSO ,VEHBIT>
<V-CLIMB-UP ,P?UP ,PRSO>))
(T
'(<FSET? ,PRSO ,VEHBIT>
<PERFORM ,V?BOARD ,PRSO>
<RTRUE>))>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-283 (7216)
<COND (<FSET? ,PRSO ,VEHBIT>
<PERFORM ,V?BOARD ,PRSO>
<RTRUE>)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-358 (9735)
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-371 (9913)
<COND (<IN? ,WINNER ,PRSO>
<TELL
"Not a bright idea, especially since you're in it." CR>
<RTRUE>)>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-373 (10192)
<COND (<FSET? ,PRSI ,TOOLBIT>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-390 (10493)
<COND (<EQUAL? ,PRSI ,SHOVEL>
<TELL "There's no reason to be digging here." CR>)
(<FSET? ,PRSI ,TOOLBIT>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-440 (12400)
<COND (<AND <SET EAT? <FSET? ,PRSO ,FOODBIT>> <IN? ,PRSO ,WINNER>>
<COND (<VERB? DRINK>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-459 (12788)
<COND (<SET EAT? <FSET? ,PRSO ,FOODBIT>>
<COND (<AND <NOT <IN? ,PRSO ,WINNER>>
<NOT <IN? <LOC ,PRSO> ,WINNER>>>
<TELL "You're not holding that." CR>)
(<VERB? DRINK>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-452 (12816)
<GLOBAL-IN? ,GLOBAL-WATER ,HERE>
<EQUAL? ,PRSO ,PSEUDO-OBJECT>>
<HIT-SPOT>)
(<NOT .NOBJ>
<TELL
"There isn't any water here." CR>)
(<NOT <IN? .NOBJ ,WINNER>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-474 (13308)
<EQUAL? ,PRSO ,PSEUDO-OBJECT>>
<HIT-SPOT>)
(<OR <NOT .NOBJ>
<NOT <ACCESSIBLE? .NOBJ>>>
<TELL
"You don't have any to drink." CR>)
(<ACCESSIBLE? .NOBJ> ;<NOT <IN? .NOBJ ,WINNER>>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-474 (13467)
<COND (<AND <EQUAL? ,PRSO ,WATER>
<NOT <GLOBAL-IN? ,GLOBAL-WATER ,HERE>>>
<REMOVE-CAREFULLY ,PRSO>)>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-496 (13979)
<REMOVE-CAREFULLY ,PRSO>>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-564 (16542)
<SETG P-IT-OBJECT <>>
<SETG P-IT-LOC <>>)>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-584 (16967)
<SETG P-IT-OBJECT <>>)>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-586 (17073)
<COND (<IN? ,WINNER ,PRSO>
<PERFORM ,V?DISEMBARK ,PRSO>
<RTRUE>)
(T <DO-WALK ,P?OUT>)>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-605 (17476)
<DO-WALK ,P?OUT>>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-596 (17299)
<SET TX <GETPT ,HERE ,P?GLOBAL>>
<COND (<AND .TX <ZMEMQB ,GLOBAL-WATER .TX <- <PTSIZE .TX> 1>>>
<PERFORM ,V?FILL ,PRSO ,GLOBAL-WATER>
<RTRUE>)
(<IN? ,WATER <LOC ,WINNER>>
<PERFORM ,V?FILL ,PRSO ,WATER>
<RTRUE>)
(T
<TELL "There is nothing to fill it with." CR>
<RTRUE>)>)>
<COND (<EQUAL? ,PRSI ,WATER>
<RFALSE>)
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-612 (17617)
<COND (<AND <SET TX <GETPT ,HERE ,P?GLOBAL>>
<ZMEMQB ,GLOBAL-WATER .TX <- <PTSIZE .TX> 1>>>
<SETG PRSI ,GLOBAL-WATER>
<RFALSE>)
(T
<TELL "There is nothing to fill it with." CR>
<RTRUE>)>)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-756 (21795)
(<FSET? ,PRSO ,BURNBIT>
<TELL
"If you wish to burn the " D ,PRSO ", you should say so." CR>)
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-767 (21960)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-960 (27706)
<PERFORM ,V?THROW ,PRSO>
<RTRUE>)>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-968 (27765)
<TELL "Huh?" CR>)>>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1313 (37385)
%<COND (<==? ,ZORK-NUMBER 2>
'(<EQUAL? ,PRSO ,DOOR-KEEPER>
<SETG PRSI <>>
<RFALSE>))
(T
'(<NULL-F> T))>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1320 (37425)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1351 (38471)
<COND (<FSET? ,PRSO ,DOORBIT>
<DO-WALK <OTHER-SIDE ,PRSO>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1352 (38359)
<COND (<AND <FSET? ,PRSO ,DOORBIT>
<SET M <OTHER-SIDE ,PRSO>>>
<DO-WALK .M>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1357 (38659)
(<OR .OBJ <NOT <FSET? ,PRSO ,TAKEBIT>>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1359 (38571)
(<AND <NOT .OBJ> <NOT <FSET? ,PRSO ,TAKEBIT>>>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1395 (40068)
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1397 (39987)
(.OBJ
<TELL "You can't do that!" CR>)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1409 (40583)
(<AND ,PRSI <FSET? ,PRSI ,ACTORBIT>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1413 (40557)
(<FSET? ,PRSI ,ACTORBIT>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1413 (40731)
(T <TELL "Thrown." CR>)>)
(T <TELL "Huh?" CR>)>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1417 (40693)
(T <TELL "Thrown." CR>)>)>>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1443 (41553)
<COND (<NOT <FSET? ,PRSO ,TURNBIT>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1446 (41485)
<COND (<AND <NOT ,PRSI>
<NOT <EQUAL? ,PRSO ,BOOK>>>
<TELL "Your bare hands don't appear to be enough." CR>)
(<NOT <FSET? ,PRSO ,TURNBIT>>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1503 (43288)
<EQUAL? ,WINNER ,ADVENTURER>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1509 (43342)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1604 (45864)
<COND (<OR .LOOK? <NOT ,SUPER-BRIEF> <EQUAL? ,HERE ,ZORK3>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1609 (45881)
<COND (<OR .LOOK? <NOT ,SUPER-BRIEF>>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1650 (47403)
(<AND <FSET? .OBJ ,WEARBIT>
<IN? .OBJ ,WINNER>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1655 (47398)
(<FSET? .OBJ ,WEARBIT>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1688 (48515)
"AUX" Y 1ST? AV STR (PV? <>) (INV? <>))
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1692 (48477)
"AUX" Y 1ST? SHIT AV STR (PV? <>) (INV? <>))
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1694 (48721)
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1698 (48688)
<SET SHIT T>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1698 (48810)
<COND %<COND (<==? ,ZORK-NUMBER 2>
'(<NOT .Y>
<COND (<AND <0? .LEVEL>
<==? ,SPELL? ,S-FANTASIZE>
<PROB 20>>
<TELL "There is a "
<PICK-ONE ,FANTASIES>
" here." CR>
<SET 1ST? <>>)>
<RETURN <NOT .1ST?>>))
(ELSE
'(<NOT .Y>
<RETURN <NOT .1ST?>>))>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1703 (48793)
<COND (<NOT .Y>
<RETURN>)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1718 (49441)
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1712 (49096)
<SET SHIT <>>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1731 (49864)
<RETURN <NOT .1ST?>>)
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1726 (49544)
<RETURN>)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1749 (50514)
<SET Y <NEXT? .Y>>>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1744 (50182)
<SET Y <NEXT? .Y>>>
<COND (<AND .1ST? .SHIT> <RFALSE>) (T <RTRUE>)>>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1882 (53926)
"You try to pick it up, but with everything else you have, you can't manage
to hold onto it!" CR>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1878 (53645)
"You're holding too many things already!" CR>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1887 (54075)
<FCLEAR ,PRSO ,NDESCBIT>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1882 (53741)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-1984 (56471)
(AV <>) OLIT OHERE)
<SET OLIT ,LIT>
<SET OHERE ,HERE>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-1978 (56109)
(AV <>) OLIT)
<SET OLIT ,LIT>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-2008 (57052)
<COND (<AND .LB <NOT <FSET? ,HERE ,RLANDBIT>> <NOT ,DEAD>>
%<COND (<==? ,ZORK-NUMBER 1>
'<TELL
"The " D .WLOC " comes to a rest on the shore." CR CR>)
(T
'<COND (<EQUAL? .AV ,BALLOON>
<TELL
"The balloon lands." CR>)
(<FSET? .WLOC ,VEHBIT>
<TELL
"The " D .WLOC " comes to a stop." CR CR>)>)>)>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-2001 (56663)
<COND (<AND .LB
<NOT <FSET? ,HERE ,RLANDBIT>>
<NOT ,DEAD>
<FSET? .WLOC ,VEHBIT>>
<TELL
"The " D .WLOC " comes to a rest on the shore." CR CR>)>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-2054 (58530)
(<AND <NOT <EQUAL? ,ADVENTURER ,WINNER>>
<IN? ,ADVENTURER .OHERE>>
<TELL "The " D ,WINNER " leaves the room." CR>)
(<AND .V?
<EQUAL? ,WINNER ,ADVENTURER>>
<V-FIRST-LOOK>)>
<RTRUE>)>>
<ROUTINE GO-NEXT (TBL "AUX" VAL)
<COND (<SET VAL <LKP ,HERE .TBL>>
<GOTO .VAL>)>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-2042 (57947)
(<NOT <EQUAL? ,ADVENTURER ,WINNER>>
<TELL "The " D ,WINNER " leaves the room." CR>)
(.V? <V-FIRST-LOOK>)>
<RTRUE>)>>
;"0 -> no next, 1 -> success, 2 -> failed move"
<ROUTINE GO-NEXT (TBL "AUX" VAL)
<COND (<SET VAL <LKP ,HERE .TBL>>
<COND (<NOT <GOTO .VAL>> 2)
(T 1)>)>>
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-2121 (60321)
<COND (<EQUAL? .RM ,INSIDE-BARROW>
<RFALSE>)>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-2109 (59729)
***************
**** FILE SS:<ZORK2>GVERBS.ZIL.407, 1-2127 (60455)
<SETG P-IT-OBJECT .OBJ>
<SETG P-IT-LOC ,HERE>>
**** FILE SS:<ZORK1>GVERBS.ZIL.391, 1-2113 (59811)
<SETG P-IT-OBJECT .OBJ>>
***************

2397
gverbs.zap Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
"Generic VERBS file for
"Generic VERBS file for
The ZORK Trilogy
started on 7/25/83 by SEM"
@ -22,7 +22,7 @@
<ROUTINE V-SUPER-BRIEF ()
<SETG SUPER-BRIEF T>
<TELL "Super-brief descriptions." CR>>
<TELL "Superbrief descriptions." CR>>
;"V-DIAGNOSE is in ACTIONS.ZIL"
@ -30,13 +30,33 @@
<COND (<FIRST? ,WINNER> <PRINT-CONT ,WINNER>)
(T <TELL "You are empty-handed." CR>)>>
<ROUTINE V-QUIT ("OPTIONAL" (ASK? T) "AUX" SCOR)
<ROUTINE FINISH ("AUX" WRD)
<V-SCORE>
<COND (<OR <AND .ASK?
<TELL
<REPEAT ()
<CRLF>
<TELL
"Would you like to restart the game from the beginning, restore a saved
game position, or end this session of the game?|
(Type RESTART, RESTORE, or QUIT):|
>">
<READ ,P-INBUF ,P-LEXV>
<SET WRD <GET ,P-LEXV 1>>
<COND (<EQUAL? .WRD ,W?RESTART>
<RESTART>
<TELL "Failed." CR>)
(<EQUAL? .WRD ,W?RESTORE>
<COND (<RESTORE>
<TELL "Ok." CR>)
(T
<TELL "Failed." CR>)>)
(<EQUAL? .WRD ,W?QUIT ,W?Q>
<QUIT>)>>>
<ROUTINE V-QUIT ("AUX" SCOR)
<V-SCORE>
<TELL
"Do you wish to leave the game? (Y is affirmative): ">
<YES?>>
<NOT .ASK?>>
<COND (<YES?>
<QUIT>)
(ELSE <TELL "Ok." CR>)>>
@ -78,18 +98,19 @@
<ROUTINE V-VERSION ("AUX" (CNT 17))
%<COND (<==? ,ZORK-NUMBER 1>
'<TELL "ZORK I: The Great Underground Empire|
Copyright (c) 1981, 1982, 1983 Infocom, Inc. ">)
Infocom interactive fiction - a fantasy story|
Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986">)
(<==? ,ZORK-NUMBER 2>
'<TELL "ZORK II: The Wizard of Frobozz|
Copyright (c) 1981, 1982, 1983 Infocom, Inc. ">)
(T
Infocom interactive fiction - a fantasy story|
Copyright (c) 1981, 1982, 1983, 1986">)
(<==? ,ZORK-NUMBER 3>
'<TELL "ZORK III: The Dungeon Master|
Copyright (c) 1982, 1983 Infocom, Inc. ">)>
<TELL "All rights reserved." CR>
<COND (<NOT <==? <BAND <GETB 0 1> 8> 0>>
<TELL "Licensed to Tandy Corporation." CR>)>
Infocom interactive fiction - a fantasy story|
Copyright 1982, 1983, 1984, 1986">)>
<TELL " Infocom, Inc. All rights reserved." CR>
<TELL "ZORK is a registered trademark of Infocom, Inc.|
Version ">
Release ">
<PRINTN <BAND <GET 0 1> *3777*>>
<TELL " / Serial number ">
<REPEAT ()
@ -106,15 +127,24 @@ Version ">
(T
<TELL CR "** Disk Failure **" CR>)>>
<ROUTINE V-DEBUG ()
<TELL "Turning debugging feature ">
<COND (,DEBUG
<SETG DEBUG <>>
<TELL "off">)
<ROUTINE V-COMMAND-FILE ()
<DIRIN 1>
<RTRUE>>
<ROUTINE V-RANDOM ()
<COND (<NOT <EQUAL? ,PRSO ,INTNUM>>
<TELL "Illegal call to #RND." CR>)
(T
<SETG DEBUG T>
<TELL "on">)>
<TELL "." CR>>
<RANDOM <- 0 ,P-NUMBER>>
<RTRUE>)>>
<ROUTINE V-RECORD ()
<DIROUT 4>
<RTRUE>>
<ROUTINE V-UNRECORD ()
<DIROUT -4>
<RTRUE>>
^L
@ -123,9 +153,9 @@ Version ">
<ROUTINE V-ADVENT ()
<TELL "A hollow voice says \"Fool.\"" CR>>
<ROUTINE V-AGAIN ("AUX" (OBJ <>))
;<ROUTINE V-AGAIN ("AUX" (OBJ <>))
<COND (<EQUAL? ,L-PRSA ,V?WALK>
<PERFORM ,L-PRSA ,L-PRSO>)
<DO-WALK ,L-PRSO>)
(T
<COND (,L-PRSO
<COND (<OR <NOT <LOC ,L-PRSO>>
@ -190,7 +220,7 @@ Version ">
<ROUTINE PRE-BOARD ("AUX" AV)
<SET AV <LOC ,WINNER>>
<COND %<COND (<==? ,ZORK-NUMBER 3>
'(<EQUAL? ,PRSO ,WATER-CHANNEL>
'(<EQUAL? ,PRSO ,WATER-CHANNEL ,TM-SEAT ,LAKE>
<RFALSE>))
(T
'(<NULL-F> <RTRUE>))>
@ -202,6 +232,9 @@ Version ">
<TELL "You are already in the " D .AV "!" CR>)
(T
<RFALSE>)>)
(<EQUAL? ,PRSO ,WATER ,GLOBAL-WATER>
<PERFORM ,V?SWIM ,PRSO>
<RTRUE>)
(T
<TELL
"You have a theory on how to board a " D ,PRSO ", perhaps?" CR>)>
@ -223,9 +256,12 @@ Version ">
<TELL
"Bug? Not in a flawless program like this! (Cough, cough)." CR>>
<ROUTINE TELL-NO-PRSI ()
<TELL "You didn't say with what!" CR>>
<ROUTINE PRE-BURN ()
<COND (<NOT ,PRSI>
<TELL "You should say what you want to burn it with." CR>)
<TELL-NO-PRSI>)
(<FLAMING? ,PRSI>
<RFALSE>)
(T
@ -239,11 +275,16 @@ Version ">
(T
'(<NULL-F> <RFALSE>))>
(<FSET? ,PRSO ,BURNBIT>
<COND (<IN? ,PRSO ,WINNER>
<COND (<OR <IN? ,PRSO ,WINNER>
<IN? ,WINNER ,PRSO>>
<REMOVE-CAREFULLY ,PRSO>
<TELL "The " D ,PRSO>
<JIGS-UP
" catches fire. Unfortunately, you were holding it at the time.">)
<TELL
" catches fire. Unfortunately, you were ">
<COND (<IN? ,WINNER ,PRSO>
<TELL "in">)
(T <TELL "holding">)>
<JIGS-UP " it at the time.">)
(T
<REMOVE-CAREFULLY ,PRSO>
<TELL
@ -257,21 +298,26 @@ Version ">
<ROUTINE V-CLIMB-DOWN () <V-CLIMB-UP ,P?DOWN ,PRSO>>
<ROUTINE V-CLIMB-FOO ()
<V-CLIMB-UP ,P?UP ,PRSO>>
%<COND (<==? ,ZORK-NUMBER 3>
'<V-CLIMB-UP <COND (<EQUAL? ,PRSO ,ROPE ,GLOBAL-ROPE>
,P?DOWN)
(T ,P?UP)>
T>)
(ELSE
'<V-CLIMB-UP ,P?UP ,PRSO>)>>
<ROUTINE V-CLIMB-ON ()
<COND %<COND (<==? ,ZORK-NUMBER 1>
'(<FSET? ,PRSO ,VEHBIT>
<V-CLIMB-UP ,P?UP ,PRSO>))
(T
'(<FSET? ,PRSO ,VEHBIT>
<PERFORM ,V?BOARD ,PRSO>
<RTRUE>))>
<COND (<FSET? ,PRSO ,VEHBIT>
%<COND (<==? ,ZORK-NUMBER 3>
'<V-CLIMB-UP ,P?UP T>)
(ELSE
'<PERFORM ,V?BOARD ,PRSO>)>
<RTRUE>)
(T
<TELL "You can't climb onto the " D ,PRSO "." CR>)>>
<ROUTINE V-CLIMB-UP ("OPTIONAL" (DIR ,P?UP) (OBJ <>) "AUX" X TX)
<COND (<AND <NOT .OBJ> ,PRSO>
<COND (<AND .OBJ <NOT <EQUAL? ,PRSO ,ROOMS>>>
<SET OBJ ,PRSO>)>
<COND (<SET TX <GETPT ,HERE .DIR>>
<COND (.OBJ
@ -290,12 +336,19 @@ Version ">
<RTRUE>)>)>
<DO-WALK .DIR>
<RTRUE>)
(<NOT .OBJ>
<TELL "You can't go that way." CR>)
(<AND .OBJ
<ZMEMQ ,W?WALL
<SET X <GETPT ,PRSO ,P?SYNONYM>> <PTSIZE .X>>>
<TELL "Climbing the walls is to no avail." CR>)
(%<COND (<==? ,ZORK-NUMBER 1>
'<AND <NOT <EQUAL? ,HERE ,PATH>>
<EQUAL? .OBJ <> ,TREE>
<GLOBAL-IN? ,TREE ,HERE>>)
(ELSE '<NULL-F>)>
<TELL "There are no climbable trees here." CR>
<RTRUE>)
(<EQUAL? .OBJ <> ,ROOMS>
<TELL "You can't go that way." CR>)
(T
<TELL "You can't do that!" CR>)>>
@ -352,6 +405,10 @@ Version ">
<PERFORM ,V?ATTACK ,PRSO ,PRSI>)
(<AND <FSET? ,PRSO ,BURNBIT>
<FSET? ,PRSI ,WEAPONBIT>>
<COND (<IN? ,WINNER ,PRSO>
<TELL
"Not a bright idea, especially since you're in it." CR>
<RTRUE>)>
<REMOVE-CAREFULLY ,PRSO>
<TELL "Your skillful " D ,PRSI "smanship slices the " D ,PRSO
" into innumerable slivers which blow away." CR>)
@ -367,13 +424,22 @@ Version ">
<ROUTINE V-DIG ()
<COND (<NOT ,PRSI>
<SETG PRSI ,HANDS>)>
%<COND (<==? ,ZORK-NUMBER 1>
'<COND (<EQUAL? ,PRSI ,SHOVEL>
<TELL "There's no reason to be digging here." CR>
<RTRUE>)>)
(ELSE T)>
<COND (<FSET? ,PRSI ,TOOLBIT>
<TELL "Digging with the " D ,PRSI " is slow and tedious." CR>)
(T
<TELL "Digging with a " D ,PRSI " is silly." CR>)>>
<ROUTINE V-DISEMBARK ()
<COND (<NOT <EQUAL? <LOC ,WINNER> ,PRSO>>
<COND (<AND <EQUAL? ,PRSO ,ROOMS>
<FSET? <LOC ,WINNER> ,VEHBIT>>
<PERFORM ,V?DISEMBARK <LOC ,WINNER>>
<RTRUE>)
(<NOT <EQUAL? <LOC ,WINNER> ,PRSO>>
<TELL "You're not in that!" CR>
<RFATAL>)
(<FSET? ,HERE ,RLANDBIT>
@ -434,8 +500,11 @@ Version ">
<TELL "Dropped." CR>)>>
<ROUTINE V-EAT ("AUX" (EAT? <>) (DRINK? <>) (NOBJ <>))
<COND (<AND <SET EAT? <FSET? ,PRSO ,FOODBIT>> <IN? ,PRSO ,WINNER>>
<COND (<VERB? DRINK>
<COND (<SET EAT? <FSET? ,PRSO ,FOODBIT>>
<COND (<AND <NOT <IN? ,PRSO ,WINNER>>
<NOT <IN? <LOC ,PRSO> ,WINNER>>>
<TELL "You're not holding that." CR>)
(<VERB? DRINK>
<TELL "How can you drink that?">)
(T
<TELL "Thank you very much. It really hit the spot.">
@ -445,14 +514,15 @@ Version ">
<SET DRINK? T>
<SET NOBJ <LOC ,PRSO>>
<COND (<OR <IN? ,PRSO ,GLOBAL-OBJECTS>
<IN? ,PRSO ,LOCAL-GLOBALS>
<GLOBAL-IN? ,GLOBAL-WATER ,HERE>
<EQUAL? ,PRSO ,PSEUDO-OBJECT>>
<HIT-SPOT>)
(<NOT .NOBJ>
(<OR <NOT .NOBJ>
<NOT <ACCESSIBLE? .NOBJ>>>
<TELL
"There isn't any water here." CR>)
(<NOT <IN? .NOBJ ,WINNER>>
(<AND <ACCESSIBLE? .NOBJ>
<NOT <IN? .NOBJ ,WINNER>>>
<TELL
"You have to be holding the " D .NOBJ " first." CR>)
(<NOT <FSET? .NOBJ ,OPENBIT>>
@ -465,12 +535,12 @@ Version ">
"I don't think that the " D ,PRSO " would agree with you." CR>)>>
<ROUTINE HIT-SPOT ()
<COND (<AND <EQUAL? ,PRSO ,WATER>
<NOT <GLOBAL-IN? ,GLOBAL-WATER ,HERE>>>
<REMOVE-CAREFULLY ,PRSO>)>
<TELL
"Thank you very much. I was rather thirsty (from all this talking,
probably)." CR>
<COND (<AND <EQUAL? ,PRSO ,WATER>
<NOT <GLOBAL-IN? ,GLOBAL-WATER ,HERE>>>
<REMOVE-CAREFULLY ,PRSO>)>>
probably)." CR>>
<ROUTINE V-ECHO ("AUX" LST MAX (ECH 0) CNT)
#DECL ((LST) <PRIMTYPE VECTOR> (MAX CNT ECH) FIX)
@ -540,7 +610,7 @@ probably)." CR>
<IN? ,COLLAR ,CERBERUS>>
<SETG SPELL-VICTIM ,CERBERUS>)>
<TELL
"The " D ,PRSO " floats serenely in mid-air." CR>)
"The " D ,PRSO " floats serenely in midair." CR>)
(<AND <EQUAL? ,SPELL-USED ,W?FRY>
<FSET? ,PRSO ,TAKEBIT>>
<SETG SPELL-HANDLED? T>
@ -558,8 +628,7 @@ probably)." CR>
<ROUTINE REMOVE-CAREFULLY (OBJ "AUX" OLIT)
<COND (<EQUAL? .OBJ ,P-IT-OBJECT>
<SETG P-IT-OBJECT <>>
<SETG P-IT-LOC <>>)>
<SETG P-IT-OBJECT <>>)>
<SET OLIT ,LIT>
<REMOVE .OBJ>
<SETG LIT <LIT? ,HERE>>
@ -580,10 +649,15 @@ probably)." CR>
<TELL "There's nothing special about the " D ,PRSO "." CR>)>>
<ROUTINE V-EXIT ()
<COND (<IN? ,WINNER ,PRSO>
<COND (<AND <EQUAL? ,PRSO <> ,ROOMS>
<FSET? <LOC ,WINNER> ,VEHBIT>>
<PERFORM ,V?DISEMBARK <LOC ,WINNER>>
<RTRUE>)
(<AND ,PRSO <IN? ,WINNER ,PRSO>>
<PERFORM ,V?DISEMBARK ,PRSO>
<RTRUE>)
(T <DO-WALK ,P?OUT>)>>
(ELSE
<DO-WALK ,P?OUT>)>>
<ROUTINE V-EXORCISE ()
<TELL "What a bizarre concept!" CR>>
@ -606,6 +680,20 @@ probably)." CR>
<PERFORM ,V?PUT ,PRSI ,PRSO>
<RTRUE>)>>
;"OLD ZORK1 PRE-FILL"
;<ROUTINE PRE-FILL ("AUX" TX)
<COND (<NOT ,PRSI>
<COND (<AND <SET TX <GETPT ,HERE ,P?GLOBAL>>
<ZMEMQB ,GLOBAL-WATER .TX <- <PTSIZE .TX> 1>>>
<SETG PRSI ,GLOBAL-WATER>
<RFALSE>)
(T
<TELL "There is nothing to fill it with." CR>
<RTRUE>)>)
(<NOT <EQUAL? ,PRSI ,GLOBAL-WATER>>
<PERFORM ,V?PUT ,PRSI ,PRSO>
<RTRUE>)>>
<ROUTINE V-FILL ()
<COND (<NOT ,PRSI>
<COND (<GLOBAL-IN? ,GLOBAL-WATER ,HERE>
@ -702,7 +790,7 @@ D ,PRSO "." CR>)>)
<ROUTINE V-INFLATE ()
<TELL "How can you inflate that?" CR>>
<ROUTINE V-IS-IN ()
;<ROUTINE V-IS-IN ()
<COND (<IN? ,PRSO ,PRSI>
<TELL "Yes, it is ">
<COND (<FSET? ,PRSI ,SURFACEBIT>
@ -833,6 +921,11 @@ killing yourself." CR CR>
<COND (<AND <FIRST? ,PRSO>
<PRINT-CONT ,PRSO>>
<RTRUE>)
%<COND (<==? ,ZORK-NUMBER 3>
'(<FSET? ,PRSO ,SURFACEBIT>
<TELL
"There is nothing on the " D ,PRSO "." CR>))
(ELSE '(<NULL-F> <RTRUE>))>
(T
<TELL "The " D ,PRSO " is empty." CR>)>)
(T
@ -953,14 +1046,21 @@ by knocking down the wall on the east of the room." CR>
(T
<TELL "You're not in anything!" CR>)>))
(T '(<NULL-F> T))>
(T
(<FSET? <LOC ,WINNER> ,VEHBIT>
<PERFORM ,V?THROW ,PRSO>
<RTRUE>)>>
<RTRUE>)
(T
<TELL "Huh?" CR>)>>
<ROUTINE V-PICK () <TELL "You can't pick that." CR>>
<ROUTINE V-PLAY ()
<TELL "That's silly!" CR>>
<COND (<FSET? ,PRSO ,ACTORBIT>
<TELL
"You become so engrossed in the role of the " D ,PRSO " that
you kill yourself, just as he might have done!" CR>
<JIGS-UP "">)
(ELSE <TELL "That's silly!" CR>)>>
<ROUTINE V-PLUG ()
<TELL "This has no effect." CR>>
@ -970,6 +1070,10 @@ by knocking down the wall on the east of the room." CR>
<REMOVE-CAREFULLY ,PRSO>
<COND (<FLAMING? ,PRSI>
<TELL "The " D ,PRSI " is extinguished." CR>
%<COND (<==? ,ZORK-NUMBER 2>
'<COND (<EQUAL? ,PRSI ,BINF-FLAG>
<SETG BINF-FLAG <>>)>)
(ELSE '<NULL-F>)>
<FCLEAR ,PRSI ,ONBIT>
<FCLEAR ,PRSI ,FLAMEBIT>)
(T
@ -1121,23 +1225,18 @@ by knocking down the wall on the east of the room." CR>
<TELL "Nothing happens." CR>)>
<RTRUE>)>)
(T
'<PROG ()
<COND (<NOT ,P-CONT>
<TELL "Say what?" CR>
<RTRUE>)
(T <SETG QUOTE-FLAG <>> <RTRUE>)>>)>
'<COND (<NOT ,P-CONT>
<TELL "Say what?" CR>
<RTRUE>)>)>
<SETG QUOTE-FLAG <>>
<COND (<SET V <FIND-IN ,HERE ,ACTORBIT>>
<TELL "You must address the " D .V " directly." CR>
<SETG QUOTE-FLAG <>>
<SETG P-CONT <>>)
(<EQUAL? <GET ,P-LEXV ,P-CONT> ,W?HELLO>
<SETG QUOTE-FLAG <>>
<RTRUE>)
(T
<SETG QUOTE-FLAG <>>
<SETG P-CONT <>>
(<NOT <EQUAL? <GET ,P-LEXV ,P-CONT> ,W?HELLO>>
<SETG P-CONT <>>
<TELL
"Talking to yourself is a sign of impending mental collapse." CR>)>>
"Talking to yourself is a sign of impending mental collapse." CR>)>
<RTRUE>>
<ROUTINE V-SEARCH ()
<TELL "You find nothing unusual." CR>>
@ -1164,8 +1263,11 @@ by knocking down the wall on the east of the room." CR>
<COND (<FSET? ,PRSO ,OPENBIT>
<COND (<FIRST? ,PRSO>
<SHAKE-LOOP>
<TELL "The contents of the " D, PRSO " spills ">
<COND (<NOT <FSET? ,HERE ,RLANDBIT>>
<TELL "The contents of the " D, PRSO " spill ">
<COND (%<COND (<==? ,ZORK-NUMBER 3>
'<FSET? ,HERE ,NONLANDBIT>)
(ELSE
'<NOT <FSET? ,HERE ,RLANDBIT>>)>
<TELL "out and disappears">)
(T
<TELL "to the ground">)>
@ -1268,7 +1370,7 @@ D ,PRSO " with a weapon." CR>)
<==? ,ZORK-NUMBER 2>>
'(<GLOBAL-IN? ,GLOBAL-WATER ,HERE>
<TELL "Swimming isn't usually allowed in the ">
<COND (,PRSO
<COND (<NOT <EQUAL? ,PRSO ,WATER ,GLOBAL-WATER>>
<TELL D ,PRSO ".">)
(T
<TELL "dungeon.">)>
@ -1306,14 +1408,14 @@ D ,PRSO " with a weapon." CR>)
(,PRSI
<COND (<EQUAL? ,PRSI ,GROUND>
<SETG PRSI <>>
<RFALSE>)
%<COND (<==? ,ZORK-NUMBER 2>
'(<EQUAL? ,PRSO ,DOOR-KEEPER>
<RFALSE>)>
%<COND (<==? ,ZORK-NUMBER 2>
'<COND (<EQUAL? ,PRSO ,DOOR-KEEPER>
<SETG PRSI <>>
<RFALSE>))
(T
'(<NULL-F> T))>
(<NOT <EQUAL? ,PRSI <LOC ,PRSO>>>
<RFALSE>)>)
(ELSE
'<NULL-F>)>
<COND (<NOT <EQUAL? ,PRSI <LOC ,PRSO>>>
<TELL "The " D ,PRSO " isn't in the " D ,PRSI "." CR>)
(T
<SETG PRSI <>>
@ -1335,7 +1437,7 @@ D ,PRSO " with a weapon." CR>)
<SETG HERE <LOC ,WINNER>>)
(T
<TELL "The " D ,PRSO
" pauses for a moment, perhaps thinking that you should re-read
" pauses for a moment, perhaps thinking that you should reread
the manual." CR>)>)
(T
<TELL "You can't talk to the " D ,PRSO "!" CR>
@ -1345,50 +1447,40 @@ the manual." CR>)>)
<ROUTINE V-THROUGH ("OPTIONAL" (OBJ <>) "AUX" M)
#DECL ((OBJ) <OR OBJECT FALSE> (M) <PRIMTYPE VECTOR>)
<COND (<FSET? ,PRSO ,DOORBIT>
<DO-WALK <OTHER-SIDE ,PRSO>>
<COND (<AND <FSET? ,PRSO ,DOORBIT>
<SET M <OTHER-SIDE ,PRSO>>>
<DO-WALK .M>
<RTRUE>)
(<AND <NOT .OBJ> <FSET? ,PRSO ,VEHBIT>>
<PERFORM ,V?BOARD ,PRSO>
<RTRUE>)
(<OR .OBJ <NOT <FSET? ,PRSO ,TAKEBIT>>>
<COND %<COND (<==? ,ZORK-NUMBER 2>
'(<AND ,SCOL-ROOM
<OR .OBJ <EQUAL? ,PRSO ,CURTAIN>>>
<SCOL-GO .OBJ>
<RTRUE>))
(T
'(<NULL-F> <RTRUE>))>
%<COND (<==? ,ZORK-NUMBER 2>
'(<AND <EQUAL? ,HERE ,DEPOSITORY>
<EQUAL? ,PRSO ,SNWL>
,SCOL-ROOM>
<SCOL-GO .OBJ>
<RTRUE>))
(T
'(<NULL-F> <RTRUE>))>
%<COND (<==? ,ZORK-NUMBER 2>
'(<AND <EQUAL? ,HERE ,SCOL-ACTIVE>
<EQUAL? ,PRSO
<GET <SET M <GET-WALL ,HERE>> 1>>>
<SETG SCOL-ROOM <GET .M 2>>
<SETG PRSO <GETP ,PRSO ,P?SIZE>>
<COND (.OBJ <SCOL-OBJ .OBJ 0 ,DEPOSITORY>)
(T
<SCOL-THROUGH 0 ,DEPOSITORY>)>
<RTRUE>))
(T
'(<NULL-F> <RTRUE>))>
%<COND (<==? ,ZORK-NUMBER 2>
'(<EQUAL? ,PRSO ,CURTAIN>
<TELL
%<COND (<==? ,ZORK-NUMBER 2>
'<COND (<AND ,SCOL-ROOM
<OR .OBJ <EQUAL? ,PRSO ,CURTAIN>>>
<SCOL-GO .OBJ>
<RTRUE>)
(<AND <EQUAL? ,HERE ,DEPOSITORY>
<EQUAL? ,PRSO ,SNWL>
,SCOL-ROOM>
<SCOL-GO .OBJ>
<RTRUE>)
(<AND <EQUAL? ,HERE ,SCOL-ACTIVE>
<EQUAL? ,PRSO
<GET <SET M <GET-WALL ,HERE>> 1>>>
<SETG SCOL-ROOM <GET .M 2>>
<SETG PRSO <GETP ,PRSO ,P?SIZE>>
<COND (.OBJ <SCOL-OBJ .OBJ 0 ,DEPOSITORY>)
(T
<SCOL-THROUGH 0 ,DEPOSITORY>)>
<RTRUE>)
(<EQUAL? ,PRSO ,CURTAIN>
<TELL
"You can't go more than part way through the curtain." CR>
<RTRUE>))
(T
'(<NULL-F> <RTRUE>))>
(T
<TELL
"You hit your head against the " D ,PRSO " as you attempt this feat." CR>)>)
<RTRUE>)>)
(ELSE '<NULL-F>)>
<TELL
"You hit your head against the " D ,PRSO " as you attempt this feat." CR>)
(<IN? ,PRSO ,WINNER>
<TELL "That would involve quite a contortion!" CR>)
(T
@ -1399,6 +1491,7 @@ the manual." CR>)>)
<COND (<EQUAL? ,PRSI ,ME>
<TELL
"A terrific throw! The " D ,PRSO>
<SETG WINNER ,PLAYER>
<JIGS-UP " hits you squarely in the head. Normally,
this wouldn't do much damage, but by incredible mischance, you fall over
backwards trying to duck, and break your neck, justice being swift and
@ -1408,7 +1501,7 @@ merciful in the Great Underground Empire.">)
"The " D ,PRSI " ducks as the " D ,PRSO " flies by and crashes to the ground."
CR>)
(T <TELL "Thrown." CR>)>)
(T <TELL "Huh?" CR>)>>
(ELSE <TELL "Huh?" CR>)>>
<ROUTINE V-THROW-OFF ()
<TELL "You can't throw anything off of that!" CR>>
@ -1437,7 +1530,20 @@ CR>)
<TELL "Nothing happens." CR>)>>
<ROUTINE PRE-TURN ()
<COND (<NOT <FSET? ,PRSO ,TURNBIT>>
%<COND (<==? ,ZORK-NUMBER 3>
'<COND (<AND <EQUAL? ,PRSI <> ,ROOMS>
<EQUAL? ,PRSO ,DIAL ,TM-DIAL ,T-BAR>>
<TELL
"You should turn the " D ,PRSO " to something." CR>
<RTRUE>)>)
(ELSE T)>
<COND (%<COND (<==? ,ZORK-NUMBER 1>
'<AND <EQUAL? ,PRSI <> ,ROOMS>
<NOT <EQUAL? ,PRSO ,BOOK>>>)
(ELSE
'<EQUAL? ,PRSI <> ,ROOMS>)>
<TELL "Your bare hands don't appear to be enough." CR>)
(<NOT <FSET? ,PRSO ,TURNBIT>>
<TELL "You can't turn that!" CR>)>>
<ROUTINE V-TURN ()
@ -1522,8 +1628,9 @@ direction." CR>
<TELL "Use compass directions for movement." CR>>
<ROUTINE V-WALK-TO ()
<COND (<OR <IN? ,PRSO ,HERE>
<GLOBAL-IN? ,PRSO ,HERE>>
<COND (<AND ,PRSO
<OR <IN? ,PRSO ,HERE>
<GLOBAL-IN? ,PRSO ,HERE>>>
<TELL "It's here!" CR>)
(T
<TELL "You should supply a direction!" CR>)>>
@ -1583,7 +1690,7 @@ direction." CR>
detect a dim light from the east." CR>)>)
(T
'<NULL-F>)>
<RETURN <>>)>
<RFALSE>)>
<COND (<NOT <FSET? ,HERE ,TOUCHBIT>>
<FSET ,HERE ,TOUCHBIT>
<SET V? T>)>
@ -1598,7 +1705,10 @@ detect a dim light from the east." CR>)>)
<COND (<FSET? <SET AV <LOC ,WINNER>> ,VEHBIT>
<TELL ", in the " D .AV>)>
<CRLF>)>
<COND (<OR .LOOK? <NOT ,SUPER-BRIEF>>
<COND (%<COND (<==? ,ZORK-NUMBER 2>
'<OR .LOOK? <NOT ,SUPER-BRIEF> <EQUAL? ,HERE ,ZORK3>>)
(ELSE
'<OR .LOOK? <NOT ,SUPER-BRIEF>>)>
<SET AV <LOC ,WINNER>>
;<COND (<FSET? .AV ,VEHBIT>
<TELL "(You are in the " D .AV ".)" CR>)>
@ -1682,17 +1792,30 @@ long description (fdesc or ldesc), otherwise will print short."
<RTRUE>)>>)>>
<ROUTINE PRINT-CONT (OBJ "OPTIONAL" (V? <>) (LEVEL 0)
"AUX" Y 1ST? AV STR (PV? <>) (INV? <>))
"AUX" Y 1ST? SHIT AV STR (PV? <>) (INV? <>))
<COND (<NOT <SET Y <FIRST? .OBJ>>> <RTRUE>)>
<COND (<AND <SET AV <LOC ,WINNER>> <FSET? .AV ,VEHBIT>>
T)
(ELSE <SET AV <>>)>
<SET 1ST? T>
<SET SHIT T>
<COND (<EQUAL? ,WINNER .OBJ <LOC .OBJ>>
<SET INV? T>)
(ELSE
<REPEAT ()
<COND (<NOT .Y> <RETURN <NOT .1ST?>>)
<COND %<COND (<==? ,ZORK-NUMBER 2>
'(<NOT .Y>
<COND (<AND <0? .LEVEL>
<==? ,SPELL? ,S-FANTASIZE>
<PROB 20>>
<TELL "There is a "
<PICK-ONE ,FANTASIES>
" here." CR>
<SET 1ST? <>>)>
<RETURN>))
(ELSE
'(<NOT .Y>
<RETURN>))>
(<EQUAL? .Y .AV> <SET PV? T>)
(<EQUAL? .Y ,WINNER>)
(<AND <NOT <FSET? .Y ,INVISIBLE>>
@ -1700,6 +1823,7 @@ long description (fdesc or ldesc), otherwise will print short."
<SET STR <GETP .Y ,P?FDESC>>>
<COND (<NOT <FSET? .Y ,NDESCBIT>>
<TELL .STR CR>
<SET SHIT <>>
;<SET 1ST? <>>)>
<COND (<AND <SEE-INSIDE? .Y>
<NOT <GETP <LOC .Y> ,P?DESCFCN>>
@ -1713,7 +1837,7 @@ long description (fdesc or ldesc), otherwise will print short."
<COND (<AND .PV? .AV <FIRST? .AV>>
<SET LEVEL <+ .LEVEL 1>> ;"not in Zork III"
<PRINT-CONT .AV .V? .LEVEL>)>
<RETURN <NOT .1ST?>>)
<RETURN>)
(<EQUAL? .Y .AV ,ADVENTURER>)
(<AND <NOT <FSET? .Y ,INVISIBLE>>
<OR .INV?
@ -1730,8 +1854,10 @@ long description (fdesc or ldesc), otherwise will print short."
<DESCRIBE-OBJECT .Y .V? .LEVEL>)
(<AND <FIRST? .Y> <SEE-INSIDE? .Y>>
<SET LEVEL <+ .LEVEL 1>> ;"not in Zork III"
<PRINT-CONT .Y .V? .LEVEL>)>)>
<SET Y <NEXT? .Y>>>>
<PRINT-CONT .Y .V? .LEVEL>
<SET LEVEL <- .LEVEL 1>> ;"not in Zork III")>)>
<SET Y <NEXT? .Y>>>
<COND (<AND .1ST? .SHIT> <RFALSE>) (T <RTRUE>)>>
<ROUTINE FIRSTER (OBJ LEVEL)
<COND %<COND (<==? ,ZORK-NUMBER 1>
@ -1787,10 +1913,6 @@ for the final secret.\"" CR>)>)
<SCORE-UPD .TEMP>
<PUTP .OBJ ,P?VALUE 0>)>>
<ROUTINE FINISH ()
<V-SCORE>
<QUIT>>
<ROUTINE YES? ()
<PRINTI ">">
<READ ,P-INBUF ,P-LEXV>
@ -1864,8 +1986,7 @@ for the final secret.\"" CR>)>)
<G? <SET CNT <CCOUNT ,WINNER>> ,FUMBLE-NUMBER>
<PROB <* .CNT ,FUMBLE-PROB>>>
<TELL
"You try to pick it up, but with everything else you have, you can't manage
to hold onto it!" CR>
"You're holding too many things already!" CR>
<RFALSE>)
(T
<MOVE ,PRSO ,WINNER>
@ -1936,7 +2057,8 @@ to hold onto it!" CR>
<CONSTANT DEXITSTR 1>
<GLOBAL INDENTS
<TABLE ""
<TABLE (PURE)
""
" "
" "
" "
@ -1990,16 +2112,23 @@ to hold onto it!" CR>
<TELL <GETP .RM ,P?LDESC> CR>
<RFALSE>)
(T
<COND (<AND .LB <NOT <FSET? ,HERE ,RLANDBIT>> <NOT ,DEAD>>
<COND (<AND .LB
<NOT <FSET? ,HERE ,RLANDBIT>>
<NOT ,DEAD>
<FSET? .WLOC ,VEHBIT>>
%<COND (<==? ,ZORK-NUMBER 1>
'<TELL
"The " D .WLOC " comes to a rest on the shore." CR CR>)
(T
'<COND (<EQUAL? .AV ,BALLOON>
(<==? ,ZORK-NUMBER 2>
'<COND (<EQUAL? .WLOC ,BALLOON>
<TELL
"The balloon lands." CR>)
(<FSET? .WLOC ,VEHBIT>
<TELL
"The " D .WLOC " comes to a stop." CR CR>)>)
(<==? ,ZORK-NUMBER 3>
'<COND (<FSET? .WLOC ,VEHBIT>
<TELL
"The " D .WLOC " comes to a stop." CR CR>)>)>)>
<COND (.AV
<MOVE .WLOC .RM>)
@ -2039,15 +2168,18 @@ stumbled into an authentic grue lair!">))
(<AND <NOT <EQUAL? ,ADVENTURER ,WINNER>>
<IN? ,ADVENTURER .OHERE>>
<TELL "The " D ,WINNER " leaves the room." CR>)
%<COND (<==? ,ZORK-NUMBER 1>
'(<AND <EQUAL? ,HERE .OHERE>
;"no double description"
<EQUAL? ,HERE ,ENTRANCE-TO-HADES>>
<RTRUE>))
(ELSE
'(<NULL-F> <RTRUE>))>
(<AND .V?
<EQUAL? ,WINNER ,ADVENTURER>>
<V-FIRST-LOOK>)>
<RTRUE>)>>
<ROUTINE GO-NEXT (TBL "AUX" VAL)
<COND (<SET VAL <LKP ,HERE .TBL>>
<GOTO .VAL>)>>
<ROUTINE LKP (ITM TBL "AUX" (CNT 0) (LEN <GET .TBL 0>))
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .LEN>
@ -2061,7 +2193,7 @@ stumbled into an authentic grue lair!">))
<SETG P-WALK-DIR .DIR>
<PERFORM ,V?WALK .DIR>>
<ROUTINE WORD-TYPE (OBJ WORD "AUX" SYNS)
;<ROUTINE WORD-TYPE (OBJ WORD "AUX" SYNS)
<ZMEMQ .WORD
<SET SYNS <GETPT .OBJ ,P?SYNONYM>>
<- </ <PTSIZE .SYNS> 2> 1>>>
@ -2082,7 +2214,7 @@ stumbled into an authentic grue lair!">))
<RETURN <>>)>>>
<ROUTINE IN-HERE? (OBJ)
;<ROUTINE IN-HERE? (OBJ)
<OR <IN? .OBJ ,HERE>
<GLOBAL-IN? .OBJ ,HERE>>>
@ -2103,17 +2235,19 @@ stumbled into an authentic grue lair!">))
<RETURN .P>)>)>>>
<ROUTINE MUNG-ROOM (RM STR)
<COND (<EQUAL? .RM ,INSIDE-BARROW>
<RFALSE>)>
%<COND (<==? ,ZORK-NUMBER 2>
'<COND (<EQUAL? .RM ,INSIDE-BARROW>
<RFALSE>)>)
(ELSE T)>
<FSET .RM ,RMUNGBIT>
<PUTP .RM ,P?LDESC .STR>>
<ROUTINE THIS-IS-IT (OBJ)
<SETG P-IT-OBJECT .OBJ>
<SETG P-IT-LOC ,HERE>>
<SETG P-IT-OBJECT .OBJ>>
<GLOBAL SWIMYUKS
<LTABLE 0 "You can't swim in the dungeon.">>
<COND (<N==? ,ZORK-NUMBER 3>
<GLOBAL SWIMYUKS
<LTABLE 0 "You can't swim in the dungeon.">>)>
<GLOBAL HELLOS
<LTABLE 0 "Hello."

16
zork2.chart Normal file
View File

@ -0,0 +1,16 @@
-date- -rel- -size- -pre- -obj- -glo- -voc-
7/29 49 90124 19181 250 168 686
7/29 50 90122 19179 250 167 686
7/29 51 90080 19168 250 167 686
7/30 52 90300 19170 250 167 686
8/01 53 90518 19170 250 167 686
8/01 54 90798 19223 252 167 688
8/06 55 90566 19200 252 165 688
8/06 56 90386 19198 252 164 688
8/06 57 90458 19201 251 163 688
8/07 58 90550 19201 251 163 688
8/08 59 90550 19201 251 163 688
8/08 60 90550 19201 251 163 688
8/11 61 92530 19820 251 168 689
8/11 62 92530 19820 251 168 689
8/11 63 92524 19820 251 168 689

31
zork2.errors Normal file
View File

@ -0,0 +1,31 @@
Assembling ZORK2.XZAP.10 on Monday, August 11, 1986 18:40:51
Release: 63
64 Inserting ZORK2FREQ.XZAP.5 (616 bytes)
680 Inserting ZORK2DAT.ZAP.10 (19140 bytes)
19820 Inserting GMACROS.ZAP.11 (119 bytes)
19939 Inserting GSYNTAX.ZAP.11 (0 bytes)
19939 Inserting 2DUNGEON.ZAP.11 (859 bytes)
20798 Inserting GGLOBALS.ZAP.11 (1127 bytes)
21925 Inserting GCLOCK.ZAP.11 (178 bytes)
22103 Inserting GMAIN.ZAP.11 (938 bytes)
23041 Inserting GPARSER.ZAP.11 (6647 bytes)
29688 Inserting GVERBS.ZAP.11 (11102 bytes)
40790 Inserting 2ACTIONS.ZAP.11 (34274 bytes)
75064 Inserting ZORK2STR.ZAP.10 (17460 bytes)
Symbols unused:
ROOM?
ZPROB
P-DIRECTION
SWIMYUKS
251 objects.
168 globals.
689 word vocabulary.
92524 bytes (91K).
19820 bytes of preload.
11767 bytes of impure.
Outputting symbol tables

923
zork2.record Normal file
View File

@ -0,0 +1,923 @@
Combined ZIL Compiler Ver 2.0 (MIM)
-----------------------------------
Input file: SS:<ZORK2>ZORK2.ZIL.18
Input file: SS:<ZORK2>GMACROS.ZIL.7
Compiling routine: ZPROB
Compiling routine: RANDOM-ELEMENT
Compiling routine: PICK-ONE
Input file: SS:<ZORK2>GSYNTAX.ZIL.154
Input file: SS:<ZORK2>2DUNGEON.ZIL.79
Compiling routine: GO
Compiling routine: HEDGES-F
Compiling routine: LT-CRACK-PSEUDO
Compiling routine: CC-CRACK-PSEUDO
Compiling routine: GLOBAL-MENHIR-F
Compiling routine: GLOBAL-CERBERUS-F
Compiling routine: CRACK-PSEUDO
Compiling routine: ALICE-HOLE
Compiling routine: SLOT-F
Compiling routine: TEAPOT-F
Compiling routine: ROSE-F
Compiling routine: FOOTPAD-F
Compiling routine: COMPASS-F
Input file: SS:<ZORK2>GGLOBALS.ZIL.67
Compiling routine: NOT-HERE-OBJECT-F
Compiling routine: NOT-HERE-PRINT
Compiling routine: NULL-F
Compiling routine: STAIRS-F
Compiling routine: SAILOR-FCN
Compiling routine: GROUND-FUNCTION
Compiling routine: GRUE-FUNCTION
Compiling routine: CRETIN-FCN
Compiling routine: PATH-OBJECT
Compiling routine: ZORKMID-FUNCTION
Input file: SS:<ZORK2>GCLOCK.ZIL.7
Compiling routine: QUEUE
Compiling routine: INT
Compiling routine: CLOCKER
Input file: SS:<ZORK2>GMAIN.ZIL.41
Compiling routine: MAIN-LOOP
Compiling routine: MAIN-LOOP-1
Compiling routine: PERFORM
Input file: SS:<ZORK2>GPARSER.ZIL.41
Compiling routine: PARSER
Compiling routine: STUFF
Compiling routine: INBUF-STUFF
Compiling routine: INBUF-ADD
Compiling routine: WT?
Compiling routine: CLAUSE
Compiling routine: NUMBER?
Compiling routine: ORPHAN-MERGE
Compiling routine: ACLAUSE-WIN
Compiling routine: NCLAUSE-WIN
Compiling routine: WORD-PRINT
Compiling routine: UNKNOWN-WORD
Compiling routine: CANT-USE
Compiling routine: SYNTAX-CHECK
Compiling routine: CANT-ORPHAN
Compiling routine: ORPHAN
Compiling routine: THING-PRINT
Compiling routine: BUFFER-PRINT
Compiling routine: PREP-PRINT
Compiling routine: CLAUSE-COPY
Compiling routine: CLAUSE-ADD
Compiling routine: PREP-FIND
Compiling routine: SYNTAX-FOUND
Compiling routine: GWIM
Compiling routine: SNARF-OBJECTS
Compiling routine: BUT-MERGE
Compiling routine: SNARFEM
Compiling routine: GET-OBJECT
Compiling routine: WHICH-PRINT
Compiling routine: GLOBAL-CHECK
Compiling routine: DO-SL
Compiling routine: SEARCH-LIST
Compiling routine: OBJ-FOUND
Compiling routine: TAKE-CHECK
Compiling routine: ITAKE-CHECK
Compiling routine: MANY-CHECK
Compiling routine: ZMEMQ
Compiling routine: ZMEMQB
Compiling routine: LIT?
Compiling routine: THIS-IT?
Compiling routine: ACCESSIBLE?
Compiling routine: META-LOC
Input file: SS:<ZORK2>GVERBS.ZIL.440
Compiling routine: V-VERBOSE
Compiling routine: V-BRIEF
Compiling routine: V-SUPER-BRIEF
Compiling routine: V-INVENTORY
Compiling routine: FINISH
Compiling routine: V-QUIT
Compiling routine: V-RESTART
Compiling routine: V-RESTORE
Compiling routine: V-SAVE
Compiling routine: V-SCRIPT
Compiling routine: V-UNSCRIPT
Compiling routine: V-VERSION
Compiling routine: V-VERIFY
Compiling routine: V-COMMAND-FILE
Compiling routine: V-RANDOM
Compiling routine: V-RECORD
Compiling routine: V-UNRECORD
Compiling routine: V-ADVENT
Compiling routine: V-ALARM
Compiling routine: V-ANSWER
Compiling routine: V-ATTACK
Compiling routine: V-BACK
Compiling routine: V-BLAST
Compiling routine: PRE-BOARD
Compiling routine: V-BOARD
Compiling routine: V-BREATHE
Compiling routine: V-BRUSH
Compiling routine: V-BUG
Compiling routine: TELL-NO-PRSI
Compiling routine: PRE-BURN
Compiling routine: V-BURN
Compiling routine: V-CHOMP
Compiling routine: V-CLIMB-DOWN
Compiling routine: V-CLIMB-FOO
Compiling routine: V-CLIMB-ON
Compiling routine: V-CLIMB-UP
Compiling routine: V-CLOSE
Compiling routine: V-COMMAND
Compiling routine: V-COUNT
Compiling routine: V-CROSS
Compiling routine: V-CURSES
Compiling routine: V-CUT
Compiling routine: V-DEFLATE
Compiling routine: V-DIG
Compiling routine: V-DISEMBARK
Compiling routine: V-DISENCHANT
Compiling routine: V-DRINK
Compiling routine: V-DRINK-FROM
Compiling routine: PRE-DROP
Compiling routine: V-DROP
Compiling routine: V-EAT
Compiling routine: HIT-SPOT
Compiling routine: V-ECHO
Compiling routine: V-ENCHANT
Compiling routine: REMOVE-CAREFULLY
Compiling routine: V-ENTER
Compiling routine: V-EXAMINE
Compiling routine: V-EXIT
Compiling routine: V-EXORCISE
Compiling routine: PRE-FILL
Compiling routine: V-FILL
Compiling routine: V-FIND
Compiling routine: V-FOLLOW
Compiling routine: V-FROBOZZ
Compiling routine: PRE-GIVE
Compiling routine: V-GIVE
Compiling routine: V-HATCH
Compiling routine: V-HELLO
Compiling routine: V-INCANT
Compiling routine: V-INFLATE
Compiling routine: V-KICK
Compiling routine: V-KISS
Compiling routine: V-KNOCK
Compiling routine: V-LAMP-OFF
Compiling routine: V-LAMP-ON
Compiling routine: V-LAUNCH
Compiling routine: V-LEAN-ON
Compiling routine: V-LEAP
Compiling routine: V-LEAVE
Compiling routine: V-LISTEN
Compiling routine: V-LOCK
Compiling routine: V-LOOK
Compiling routine: V-LOOK-BEHIND
Compiling routine: V-LOOK-INSIDE
Compiling routine: V-LOOK-ON
Compiling routine: V-LOOK-UNDER
Compiling routine: V-LOWER
Compiling routine: V-MAKE
Compiling routine: V-MELT
Compiling routine: PRE-MOVE
Compiling routine: V-MOVE
Compiling routine: V-MUMBLE
Compiling routine: PRE-MUNG
Compiling routine: V-MUNG
Compiling routine: V-ODYSSEUS
Compiling routine: V-OIL
Compiling routine: V-OPEN
Compiling routine: V-OVERBOARD
Compiling routine: V-PICK
Compiling routine: V-PLAY
Compiling routine: V-PLUG
Compiling routine: V-POUR-ON
Compiling routine: V-PRAY
Compiling routine: V-PUMP
Compiling routine: V-PUSH
Compiling routine: V-PUSH-TO
Compiling routine: PRE-PUT
Compiling routine: V-PUT
Compiling routine: V-PUT-BEHIND
Compiling routine: V-PUT-ON
Compiling routine: V-PUT-UNDER
Compiling routine: V-RAISE
Compiling routine: V-RAPE
Compiling routine: PRE-READ
Compiling routine: V-READ
Compiling routine: V-READ-PAGE
Compiling routine: V-REPENT
Compiling routine: V-REPLY
Compiling routine: V-RING
Compiling routine: V-RUB
Compiling routine: V-SAY
Compiling routine: V-SEARCH
Compiling routine: V-SEND
Compiling routine: PRE-SGIVE
Compiling routine: V-SGIVE
Compiling routine: V-SHAKE
Compiling routine: SHAKE-LOOP
Compiling routine: V-SKIP
Compiling routine: V-SMELL
Compiling routine: V-SPIN
Compiling routine: V-SPRAY
Compiling routine: V-SQUEEZE
Compiling routine: V-SSPRAY
Compiling routine: V-STAB
Compiling routine: V-STAND
Compiling routine: V-STAY
Compiling routine: V-STRIKE
Compiling routine: V-SWIM
Compiling routine: V-SWING
Compiling routine: PRE-TAKE
Compiling routine: V-TAKE
Compiling routine: V-TELL
Compiling routine: V-THROUGH
Compiling routine: V-THROW
Compiling routine: V-THROW-OFF
Compiling routine: V-TIE
Compiling routine: V-TIE-UP
Compiling routine: V-TREASURE
Compiling routine: PRE-TURN
Compiling routine: V-TURN
Compiling routine: V-UNLOCK
Compiling routine: V-UNTIE
Compiling routine: V-WAIT
Compiling routine: V-WALK
Compiling routine: V-WALK-AROUND
Compiling routine: V-WALK-TO
Compiling routine: V-WAVE
Compiling routine: V-WEAR
Compiling routine: V-WIN
Compiling routine: V-WIND
Compiling routine: V-WISH
Compiling routine: V-YELL
Compiling routine: V-ZORK
Compiling routine: V-FIRST-LOOK
Compiling routine: DESCRIBE-ROOM
Compiling routine: DESCRIBE-OBJECTS
Compiling routine: DESCRIBE-OBJECT
Compiling routine: PRINT-CONTENTS
Compiling routine: PRINT-CONT
Compiling routine: FIRSTER
Compiling routine: SEE-INSIDE?
Compiling routine: SCORE-UPD
Compiling routine: SCORE-OBJ
Compiling routine: YES?
Compiling routine: ITAKE
Compiling routine: IDROP
Compiling routine: CCOUNT
Compiling routine: WEIGHT
Compiling routine: HACK-HACK
Compiling routine: NO-GO-TELL
Compiling routine: GOTO
Compiling routine: LKP
Compiling routine: DO-WALK
Compiling routine: GLOBAL-IN?
Compiling routine: FIND-IN
Compiling routine: HELD?
Compiling routine: OTHER-SIDE
Compiling routine: MUNG-ROOM
Compiling routine: THIS-IS-IT
Input file: SS:<ZORK2>2ACTIONS.ZIL.107
Compiling routine: SWORD-FCN
Compiling routine: I-SWORD
Compiling routine: INFESTED?
Compiling routine: CAROUSEL-ROOM-FCN
Compiling routine: VIOLIN-FCN
Compiling routine: OPEN-CLOSE
Compiling routine: BALLOON-FCN
Compiling routine: I-BALLOON
Compiling routine: BALLOON-BURN
Compiling routine: PUT-BALLOON
Compiling routine: RISE-AND-SHINE
Compiling routine: DECLINE-AND-FALL
Compiling routine: BCONTENTS
Compiling routine: WIRE-FCN
Compiling routine: I-BURNUP
Compiling routine: SAFE-ROOM-FCN
Compiling routine: SAFE-FCN
Compiling routine: BRICK-FCN
Compiling routine: FUSE-FCN
Compiling routine: I-FUSE
Compiling routine: I-SAFE
Compiling routine: I-LEDGE
Compiling routine: LEDGE-FCN
Compiling routine: I-GNOME
Compiling routine: GNOME-FCN
Compiling routine: I-NERVOUS
Compiling routine: PURPLE-BOOK-FCN
Compiling routine: RANDOM-BOOK
Compiling routine: HEAD-FCN
Compiling routine: CRYPT-ANTEROOM-FCN
Compiling routine: CRYPT-ROOM-FCN
Compiling routine: DIM-DOOR-APPEARS
Compiling routine: CRYPT-OBJECT
Compiling routine: CRYPT-DOOR-FCN
Compiling routine: TOMB-PSEUDO
Compiling routine: DIM-DOOR-FCN
Compiling routine: REPELLENT-FCN
Compiling routine: I-SPRAY
Compiling routine: ZORK3-FCN
Compiling routine: I-BUCKET
Compiling routine: WATER-FCN
Compiling routine: PUDDLE
Compiling routine: BUCKET-FCN
Compiling routine: PASS-THE-BUCKET
Compiling routine: POSTS-ROOM-FCN
Compiling routine: EATME-FCN
Compiling routine: CAKE-CRUMBLE
Compiling routine: CAKE-FCN
Compiling routine: CANDY-FCN
Compiling routine: TOP-ETCHINGS-F
Compiling routine: BOTTOM-ETCHINGS-F
Compiling routine: CUBE-F
Compiling routine: FIXED-FONT-ON
Compiling routine: FIXED-FONT-OFF
Compiling routine: POOL-FCN
Compiling routine: FLASK-FCN
Compiling routine: PLEAK
Compiling routine: ICEBOOM
Compiling routine: MAGNET-ROOM-FCN
Compiling routine: MAGNET-ROOM-EXIT
Compiling routine: BUTTONS
Compiling routine: SPHERE-FCN
Compiling routine: I-SPHERE
Compiling routine: IN-CAGE-FCN
Compiling routine: ROBOT-FCN
Compiling routine: BILLS-OBJECT
Compiling routine: BKLEAVEE
Compiling routine: BKLEAVEW
Compiling routine: DEPOSITORY-FCN
Compiling routine: TELLER-ROOM
Compiling routine: SCOL-OBJECT
Compiling routine: GET-WALL
Compiling routine: SCOLWALL
Compiling routine: SCOL-GO
Compiling routine: SCOL-OBJ
Compiling routine: SCOL-THROUGH
Compiling routine: I-CURTAIN
Compiling routine: I-ZGNOME
Compiling routine: BOX-F
Compiling routine: ZGNOME-FCN
Compiling routine: I-ZGNOME-OUT
Compiling routine: BOMB?
Compiling routine: GO&LOOK
Compiling routine: TINY-ROOM-FCN
Compiling routine: DREARY-ROOM-FCN
Compiling routine: PCHECK
Compiling routine: P-DOOR
Compiling routine: PLID
Compiling routine: PKH
Compiling routine: PKH-FCN
Compiling routine: PLID-FCN
Compiling routine: ROOM?
Compiling routine: PALANTIR
Compiling routine: DEAD-PALANTIR
Compiling routine: GLOBAL-PALANTIRS
Compiling routine: PALANTIR-LOOK
Compiling routine: PWINDOW-FCN
Compiling routine: PDOOR-FCN
Compiling routine: PKEY-FCN
Compiling routine: PLACE-MAT-FCN
Compiling routine: WISH-FCN
Compiling routine: WELL-FCN
Compiling routine: MATCH-FCN
Compiling routine: I-MATCH
Compiling routine: LANTERN
Compiling routine: I-LANTERN
Compiling routine: LIGHT-INT
Compiling routine: RIDDLE-ROOM-FCN
Compiling routine: RIDDLE-DOOR-FCN
Compiling routine: RIDDLE-PSEUDO
Compiling routine: MAGIC-ACTOR
Compiling routine: RANDOM-WALK
Compiling routine: FORCE-FIGHT
Compiling routine: DWINDOW-DESC
Compiling routine: DWINDOW-FCN
Compiling routine: DIAMOND-MOTION
Compiling routine: DIAMOND-LOSS
Compiling routine: CERBERUS-FCN
Compiling routine: COLLAR-FCN
Compiling routine: GLACIER-FCN
Compiling routine: GLACIER-ROOM-FCN
Compiling routine: DRAGON-FCN
Compiling routine: HELLO?
Compiling routine: FIND-TARGET
Compiling routine: I-DRAGON
Compiling routine: DRAGON-LEAVES
Compiling routine: I-GARDEN
Compiling routine: GARDEN-ROOM-FCN
Compiling routine: GLOBAL-UNICORN-FCN
Compiling routine: UNICORN-FCN
Compiling routine: GAZEBO-FCN
Compiling routine: CHEST-FCN
Compiling routine: PRINCESS-FCN
Compiling routine: I-PRINCESS
Compiling routine: I-UNICORN
Compiling routine: MENHIR-ROOM-FCN
Compiling routine: DESCRIBE-MENHIR
Compiling routine: MENHIR-FCN
Compiling routine: DOOR-KEEPER-FCN
Compiling routine: WIZ-DOOR-FCN
Compiling routine: GUARDIAN-ROOM-FCN
Compiling routine: WORKSHOP-FCN
Compiling routine: ARCANA-PSEUDO
Compiling routine: TROPHY-PSEUDO
Compiling routine: STAND-FCN
Compiling routine: IN-AQUARIUM-FCN
Compiling routine: AQUARIUM-FCN
Compiling routine: SERPENT-FCN
Compiling routine: DEAD-SERPENT-FCN
Compiling routine: GENIE-FCN
Compiling routine: GENIE-LEAVES
Compiling routine: CASE-WORTH
Compiling routine: PENTAGRAM-FCN
Compiling routine: WIZARD-FCN
** Note: Atomic argument to routine assumed constant - MAGIC-ACTOR
Compiling routine: I-WIZARD
** Note: Atomic argument to routine assumed constant - MAGIC-ACTOR
Compiling routine: ROB
Compiling routine: RIPOFF
Compiling routine: WIZARD-CASE-FCN
Compiling routine: WAND-FCN
Compiling routine: I-WAND
Compiling routine: WIZARD-QUARTERS-FCN
Compiling routine: BRIDGE-FCN
Compiling routine: STREAM-FCN
Compiling routine: CHASM-FCN
Compiling routine: TUNNEL-OBJECT
Compiling routine: STALA-PSEUDO
Compiling routine: MOSS-FCN
Compiling routine: ROSE-BUSH-FCN
Compiling routine: I-SPELL
Compiling routine: V-DIAGNOSE
Compiling routine: V-SCORE
Compiling routine: JIGS-UP
Compiling routine: RANDOMIZE-OBJECTS
Compiling routine: KILL-INTERRUPTS
Compiling routine: FIND-WEAPON
Compiling routine: BUCKET-CONT
** Warning: Undefined Routine: T
Warnings: 1
** Note: OBJECT has no properties: GLOBAL-OBJECTS
Vocabulary: 689
Prepositions: 18
IN
TO
WITH
ON
UNDER
DOWN
UP
BEHIND
AROUND
FOR
AT
OFF
ACROSS
OVER
AWAY
FROM
OUT
Objects: 251
PTABLE
AQUARIUM
PSEUDO-OBJECT
DRAGON-ROOM
LETTER-OPENER
COIN
CRYPT-DOOR
ROBOT-LABEL
TELLER-EAST
DIAMOND-4
MANGLED-CAGE
STAIRWAY-TOP
GNOME
RIDDLE-ROOM
IN-AQUARIUM
WARNING-LABEL
GAZEBO
GARDEN-NORTH
AQUARIUM-ROOM
WHITE-BOOK
DEEP-FORD
ZORK3
GENIE
DEAD-PALANTIR-3
DEAD-PALANTIR-2
DIAMOND-7
BRICK
DEAD-PALANTIR-1
SWORD
GLOBAL-WIZARD-CASE
TUNNEL
BANK-BROCHURE
STAND-2
TOPIARY-ROOM
MOSS
DWINDOW
SALTY-WATER
REPELLENT
FUSE
STREAM-PATH
SWWL
DEAD-PALANTIR-4
PENTAGRAM
GLOBAL-CERBERUS
ROOM-8
COBWEBBY-CORRIDOR
FOOTPAD
VIEWING-WEST
ARCANA
DIAMOND-6
DRAGON-LAIR
DEPOSITORY
SSWL
PURPLE-BOOK
STAND-4
INTNUM
POSTS
CRYPT-ANTEROOM
NOT-HERE-OBJECT
DRAGON
TOP-ETCHINGS
TEA-ROOM
GROUND
GLOBAL-PALANTIR
MAGNET-ROOM
WATER
DIAMOND-1
LAVA-TUBE
GREAT-CAVERN
SAFE-ROOM
NEWSPAPER
STAIRS
BILLS
GAZEBO-TABLE
VAIR-4
VOLCANO-BOTTOM
DEGREE
GRUE
PWINDOW
COOL-ROOM
LEDGE-TUNNEL
BRAIDED-WIRE
BALLOON
NARROW-TUNNEL
BROKEN-LAMP
GLOBAL-MENHIR
WEST-WALL
LUNGS
SLOT
CERBERUS-ROOM
GLACIER-ROOM
CUBE
MENHIR-ROOM
DARK-TUNNEL
FORMAL-GARDEN
EAST-WALL
ALICE-TABLE
GLOBAL-UNICORN
BLESSINGS
TELLER-WEST
DIM-DOOR
PRINCESS
LAMP
NORTH-WALL
RED-ICING
CROWN
SEWL
CAROUSEL-ROOM
LEDGE-2
DIAMOND-3
FRESCO-ROOM
VIOLIN
WISH
BALLOON-LABEL
PDOOR
LIBRARY
COMPASS
PEARL
GNOME-OF-ZURICH
SAFE
CANDY
KEYHOLE-1
WIZARD-CASE
KENNEL
GOLD-KEY
RECEPTACLE
CRYPT-ROOM
RAVINE-LEDGE
SAILOR
POSTS-ROOM
DIAMOND-2
HEDGES
WELL-BOTTOM
HEADS
VOLCANO-VIEW
CRYPT
DEPOSIT-BOX
ZORKMID
VAIR-2
LID-1
ICE
ROSE
LID-2
KEYHOLE-2
TEAPOT
IN-CAGE
CHASM
STREAM
BLUE-ICING
VIEWING-EAST
EXPLOSION
PLACE-MAT
STAND-3
ROBOT
RUBY
WANDS
DIAMOND-9
WORKBENCH-ROOM
CLOTH-BAG
BANK-ENTRANCE
PENTAGRAM-ROOM
SOUTH-WALL
STAND-1
HOOK-1
MACHINE-ROOM
VAIR-3
TROPHY-BOTTLES
MENHIR
EAT-ME-CAKE
POOL-ROOM
CHEST
STONE-BRIDGE
DOOR-KEEPER
STAMP
PCRACK
WORKBENCH
DIAMOND-8
BRIDGE
RIBBON
COLLAR
PATHOBJ
GLOBAL-PRINCESS
WIZARDS-QUARTERS
BAT
BROKEN-CASE
IT
HOOK-2
SMALL-ROOM
TROPHY-ROOM
GLOBAL-OBJECTS
BLUE-BOOK
DEAD-BALLOON
DREARY-ROOM
CERBERUS
DEAD-DRAGON
PORTRAIT
CARD
CAGE-ROOM
SHALLOW-FORD
BUCKET
INSIDE-BARROW
SNWL
OFFICE
ROSE-BUSH
LEAK
TINY-ROOM
WIZARDS-WORKSHOP
LOCAL-GLOBALS
WIZ-DOOR
FLASK
GREEN-BOOK
ADVENTURER
POOL
PEARL-ROOM
ROOMS
PALANTIR-4
ORANGE-ICING
VAIR-1
PALANTIR-2
SERPENT
PALANTIR-3
MARBLE-HALL
PALANTIR-1
GUARDIAN-ROOM
SQUARE-BUTTON
UNICORN
ME
WAND
MATCH
IRON-BOX
FOOT-BRIDGE
CURTAIN
DIAMOND-5
WIZARD
DEAD-SERPENT
GAZEBO-ROOM
LAVA-ROOM
KEY
LEDGE-1
HANDS
CAGE
TROPHY-SWORD
BOTTOM-ETCHINGS
WELL-TOP
RIDDLE-DOOR
WELL
GLOBAL-WATER
TRIANGULAR-BUTTON
STATUETTE
VAULT
ROUND-BUTTON
Properties: 30
P?NW
P?SW
P?SE
P?NE
P?SOUTH
P?EAST
P?NORTH
P?ADVFCN
P?CONTFCN
P?VTYPE
P?DESCFCN
P?TEXT
P?VALUE
P?CAPACITY
P?FDESC
P?PSEUDO
P?GLOBAL
P?LDESC
P?SIZE
P?ACTION
P?ADJECTIVE
P?SYNONYM
P?CROSS
P?LAND
P?OUT
P?IN
P?DOWN
P?UP
P?WEST
Globals: 161
MATCH-COUNT
LAMP-TABLE
DIAMOND-SOLVE
DIAMOND-COUNT
DIAMOND-MOVES
DIAMOND-BASE
DWDESCS
BASES
DIAMOND-ROOMS
DIDIRS
CERBERUS-LEASHED
ICE-MELTED
DRAGON-ANGER
DRAGON-ATTACKS
OLD-HERE
TOPIARY-MOVED
TOPIARY-NEAR
UNICORN-MSGS
UNICORN-FRIGHTENED
PRINCESS-AWAKE
PRCOUNT
PRFOLLOW
PRDIRS
MENHIR-POSITION
GUARDIAN-FED
WIZ-DOOR-FLAG
GENIE-READY?
GENIE-HOARD
GENIE-THANKS
SPELL?
SPELL-NAMES
SPELL-HINTS
SPELL-STOPS
SPELL-HANDLED?
WAND-ON
SPELL-USED
SPELL-VICTIM
WAND-ON-LOC
WIZQLAST
WIZQDESCS
FANTASIES
SECRET-DOOR
CRYPT-LIT?
P-NCN
P-NOT-HERE
HELLOS
P-OVTBL
P-VTBL
P-OTBL
P-BUTS
P-PRSI
P-PRSO
P-MERGE
P-OCLAUSE
JUMPLOSS
RESERVE-LEXV
INDENTS
WHEEEEE
P-CCTBL
EIGHT-DIRECTIONS
DUMMY
YUKS
SWIMYUKS
HO-HUM
BALLOON-UPS
BALLOON-FLOATS
BALLOON-DOWNS
OTHER-PROPERTIES
FATAL-VAPORS
C-TABLE
P-LEXV
AGAIN-LEXV
P-INBUF
OOPS-INBUF
OOPS-TABLE
P-ITBL
COMPASS-KLUDGE
RESERVE-PTR
PRSI
CAROUSEL-ZOOM-FLAG
BLOC
P-IT-OBJECT
HS
CAGE-SOLVE-FLAG
AGAIN-DIR
P-ADJN
WINNER
BLAB-FLAG
P-OFLAG
P-NUMBER
FUMBLE-PROB
BINF-FLAG
GNOME-FLAG
DIM-DOOR-FLAG
P-GETFLAGS
LOAD-MAX
P-TABLE
QUOTE-FLAG
WON-FLAG
P-WON
DEATHS
SPRAY-USED?
DEAD
P-ONEOBJ
P-AND
PRSA
P-AADJ
P-XADJ
P-SYNTAX
C-DEMONS
P-GWIMBIT
P-MERGED
GNOME-DOOR-FLAG
BUCKET-TOP-FLAG
PRSO
SPRAYED?
LOAD-ALLOWED
C-INTS
P-LEN
P-ADJ
P-ACT
P-XADJN
LIT
BTIE-FLAG
MUNGED-ROOM
DESC-OBJECT
FUMBLE-NUMBER
P-DIRECTION
P-CONT
PLAYER
P-ANAM
P-WALK-DIR
SWORD-GLOW
P-XNAM
LUCKY
ALWAYS-LIT
P-NAM
P-MULT
CLOCK-WAIT
BASE-SCORE
P-ADVERB
P-MATCHLEN
P-SLOCBITS
P-ACLAUSE
P-DIR
EVAPORATED
VERBOSE
CAROUSEL-FLIP-FLAG
SAFE-FLAG
SUPER-BRIEF
P-END-ON-PREP
BANK-SOLVE-FLAG
SCOL-ROOMS
SCOL-WALLS
SCOL-ROOM
SCOL-ACTIVE
ZGNOME-FLAG
MUD-FLAG
MATOBJ
PUNLOCK-FLAG
PLOOK-FLAG

1
zork2.serial Normal file
View File

@ -0,0 +1 @@
15

13
zork2.zap Normal file
View File

@ -0,0 +1,13 @@
.INSERT "ZORK2FREQ"
.INSERT "ZORK2DAT" ; DATA IS IN THIS FILE
.INSERT "GMACROS"
.INSERT "GSYNTAX"
.INSERT "2DUNGEON"
.INSERT "GGLOBALS"
.INSERT "GCLOCK"
.INSERT "GMAIN"
.INSERT "GPARSER"
.INSERT "GVERBS"
.INSERT "2ACTIONS"
.INSERT "ZORK2STR"
.END

View File

@ -2,55 +2,35 @@
Zork II: The Wizard of Frobozz
(c) Copyright 1983 Infocom, Inc. All Rights Reserved."
ON!-INITIAL
OFF!-INITIAL
<SETG ZORK-NUMBER 2>
<GC 0 T 5>
<BLOAT 70000 0 0 2700 0 0 0 0 0 256>
<SET REDEFINE T>
<GLOBAL BIGFIX 10000>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
<INSERT-FILE .STR .FLOAD?>>
<PRINC "Renovated ZORK II: The Wizard of Frobozz
">
<OR <GASSIGNED? INSERT-CRUFTY>
<DEFINE INSERT-CRUFTY (STR) <INSERT-FILE .STR T>>>
<COND (<GASSIGNED? PREDGEN>
<ID 0>)>
<IFILE "GMACROS" T>
<FREQUENT-WORDS?>
<IFILE "GSYNTAX" T>
<IFILE "2DUNGEON" T>
<IFILE "GGLOBALS" T>
<INSERT-FILE "GMACROS" T>
<INSERT-FILE "GSYNTAX" T>
<INSERT-FILE "2DUNGEON" T>
<INSERT-FILE "GGLOBALS" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 0>
<PROPDEF VALUE 0>
;<PROPDEF TVALUE 0>
<IFILE "GCLOCK" T>
<IFILE "GMAIN" T>
<IFILE "GPARSER" T>
<IFILE "GVERBS" T>
<IFILE "2ACTIONS" T>
<GC 0 T>
<DEFINE CNT (STR OBL)
<PRINC .STR>
<PRIN1 <MAPF ,+ ,LENGTH .OBL>>
<CRLF>>
<COND (<NOT <GASSIGNED? PREDGEN>>
<GC-MON T>)>
<INSERT-FILE "GCLOCK" T>
<INSERT-FILE "GMAIN" T>
<INSERT-FILE "GPARSER" T>
<INSERT-FILE "GVERBS" T>
<INSERT-FILE "2ACTIONS" T>

BIN
zork2.zip

Binary file not shown.

12851
zork2dat.zap Normal file

File diff suppressed because it is too large Load Diff

200
zork2freq.xzap Normal file
View File

@ -0,0 +1,200 @@
.FSTR FSTR?1,"the " ;1642 821
.FSTR FSTR?2,"The " ;1122 374
.FSTR FSTR?3,"You " ;573 191
.FSTR FSTR?4,"and " ;548 274
.FSTR FSTR?5,"There " ;545 109
.FSTR FSTR?6,", " ;498 498
.FSTR FSTR?7,"is " ;477 477
.FSTR FSTR?8,". " ;455 455
.FSTR FSTR?9,"you " ;432 216
.FSTR FSTR?10,"of " ;372 372
.FSTR FSTR?11,"to " ;328 328
.FSTR FSTR?12,"can't " ;280 56
.FSTR FSTR?13,"with " ;267 89
.FSTR FSTR?14,"are " ;252 126
.FSTR FSTR?15,"This " ;236 59
.FSTR FSTR?16,"your " ;228 76
.FSTR FSTR?17,"from " ;222 74
.FSTR FSTR?18,"room " ;219 73
.FSTR FSTR?19,"Wizard " ;204 34
.FSTR FSTR?20,"in " ;189 189
.FSTR FSTR?21,"that " ;189 63
.FSTR FSTR?22,"which " ;184 46
.FSTR FSTR?23,"have " ;177 59
.FSTR FSTR?24,"into " ;165 55
.FSTR FSTR?25,"large " ;164 41
.FSTR FSTR?26,"this " ;153 51
.FSTR FSTR?27,"seems " ;148 37
.FSTR FSTR?28,"here" ;144 72
.FSTR FSTR?29,"small " ;144 36
.FSTR FSTR?30,"but " ;142 71
.FSTR FSTR?31,"appears " ;138 23
.FSTR FSTR?32,"dragon " ;135 27
.FSTR FSTR?33,"through " ;132 22
.FSTR FSTR?34,"It " ;124 62
.FSTR FSTR?35,"something " ;120 15
.FSTR FSTR?36,"Room" ;117 39
.FSTR FSTR?37,"Wizard's " ;117 13
.FSTR FSTR?38,"don't " ;115 23
.FSTR FSTR?39,"door " ;114 38
.FSTR FSTR?40,"for " ;112 56
.FSTR FSTR?41,"his " ;110 55
.FSTR FSTR?42,"out " ;106 53
.FSTR FSTR?43,"princess " ;105 15
.FSTR FSTR?44,"A " ;97 97
.FSTR FSTR?45,"He " ;96 48
.FSTR FSTR?46,"huge " ;93 31
.FSTR FSTR?47,"about " ;92 23
.FSTR FSTR?48,"on " ;90 90
.FSTR FSTR?49,"room" ;90 45
.FSTR FSTR?50,"very " ;90 30
.FSTR FSTR?51,"balloon " ;84 14
.FSTR FSTR?52,"Frobozz " ;84 12
.FSTR FSTR?53,"I " ;83 83
.FSTR FSTR?54,"it " ;80 80
.FSTR FSTR?55,"has " ;80 40
.FSTR FSTR?56,"looks " ;80 20
.FSTR FSTR?57,"around " ;80 16
.FSTR FSTR?58,"doesn't " ;77 11
.FSTR FSTR?59,"be " ;76 76
.FSTR FSTR?60,"would " ;76 19
.FSTR FSTR?61,"walls " ;76 19
.FSTR FSTR?62,"there " ;76 19
.FSTR FSTR?63,"center " ;75 15
.FSTR FSTR?64,"cannot " ;75 15
.FSTR FSTR?65,"not " ;74 37
.FSTR FSTR?66,"unicorn " ;72 12
.FSTR FSTR?67,"nothing " ;72 12
.FSTR FSTR?68,"disappears" ;72 9
.FSTR FSTR?69,"at " ;71 71
.FSTR FSTR?70,"volcano" ;70 14
.FSTR FSTR?71,"enormous " ;70 10
.FSTR FSTR?72,"some " ;69 23
.FSTR FSTR?73,"can " ;68 34
.FSTR FSTR?74,"sphere" ;68 17
.FSTR FSTR?75,"leads " ;68 17
.FSTR FSTR?76,"floor " ;68 17
.FSTR FSTR?77,"Your " ;68 17
.FSTR FSTR?78,"wall " ;66 22
.FSTR FSTR?79,"like " ;66 22
.FSTR FSTR?80,"crystal " ;66 11
.FSTR FSTR?81,"already " ;66 11
.FSTR FSTR?82,"almost " ;65 13
.FSTR FSTR?83,"that" ;64 32
.FSTR FSTR?84,"north " ;64 16
.FSTR FSTR?85,"light " ;64 16
.FSTR FSTR?86,"ledge " ;64 16
.FSTR FSTR?87,"demon " ;64 16
.FSTR FSTR?88,"above " ;64 16
.FSTR FSTR?89,"beautiful " ;64 8
.FSTR FSTR?90,"been " ;63 21
.FSTR FSTR?91,"probably " ;63 9
.FSTR FSTR?92,"Nothing " ;63 9
.FSTR FSTR?93,"as " ;60 60
.FSTR FSTR?94,"south " ;60 15
.FSTR FSTR?95,"wooden " ;60 12
.FSTR FSTR?96,"narrow " ;60 12
;word frequency table of 96 most common words
WORDS:: .TABLE
FSTR?1
FSTR?2
FSTR?3
FSTR?4
FSTR?5
FSTR?6
FSTR?7
FSTR?8
FSTR?9
FSTR?10
FSTR?11
FSTR?12
FSTR?13
FSTR?14
FSTR?15
FSTR?16
FSTR?17
FSTR?18
FSTR?19
FSTR?20
FSTR?21
FSTR?22
FSTR?23
FSTR?24
FSTR?25
FSTR?26
FSTR?27
FSTR?28
FSTR?29
FSTR?30
FSTR?31
FSTR?32
FSTR?33
FSTR?34
FSTR?35
FSTR?36
FSTR?37
FSTR?38
FSTR?39
FSTR?40
FSTR?41
FSTR?42
FSTR?43
FSTR?44
FSTR?45
FSTR?46
FSTR?47
FSTR?48
FSTR?49
FSTR?50
FSTR?51
FSTR?52
FSTR?53
FSTR?54
FSTR?55
FSTR?56
FSTR?57
FSTR?58
FSTR?59
FSTR?60
FSTR?61
FSTR?62
FSTR?63
FSTR?64
FSTR?65
FSTR?66
FSTR?67
FSTR?68
FSTR?69
FSTR?70
FSTR?71
FSTR?72
FSTR?73
FSTR?74
FSTR?75
FSTR?76
FSTR?77
FSTR?78
FSTR?79
FSTR?80
FSTR?81
FSTR?82
FSTR?83
FSTR?84
FSTR?85
FSTR?86
FSTR?87
FSTR?88
FSTR?89
FSTR?90
FSTR?91
FSTR?92
FSTR?93
FSTR?94
FSTR?95
FSTR?96
.ENDT
.ENDI

419
zork2str.zap Normal file
View File

@ -0,0 +1,419 @@
; STRINGS ARE DEFINED HERE
STRBEG::
.GSTR STR?1,"You are inside an ancient barrow hidden deep within a dark forest. The barrow opens into a narrow tunnel at its southern end. You can see a faint glow at the far end."
.GSTR STR?2,"You may not recall, but when you entered, the door of the barrow shut behind you. There is no way out."
.GSTR STR?3,"You are standing at the southern end of a narrow tunnel where it opens into a wide cavern. The cavern is dimly illuminated by phosphorescent mosses clinging to its high ceiling. A deep ravine winds through the cavern, with a small stream at the bottom. The walls of the ravine are steep and crumbly. A foot bridge crosses the ravine to the south."
.GSTR STR?4,"As you start down, you slip on the crumbling rocks and pull back, narrowly averting a fatal fall."
.GSTR STR?5,"You are standing on a crude but sturdy wooden foot bridge crossing a deep ravine. The path runs north and south from here."
.GSTR STR?6,"The drop would be fatal."
.GSTR STR?7,"You'll have to specify a direction."
.GSTR STR?8,"This is the center of the great cavern, carved out of the limestone. Stalactites and stalagmites of many sizes are everywhere. The room glows with dim light provided by phosphorescent moss, and weird shadows move all around you. A narrow path winds southwest among the stalagmites, and another leads northeast."
.GSTR STR?9,"You are at the southern edge of a great cavern. To the south across a shallow ford is a dark tunnel which looks like it was once enlarged and smoothed. To the north a narrow path winds among stalagmites. Dim light illuminates the cavern."
.GSTR STR?10,"This is a dark tunnel with dim light to the northeast. The tunnel is smooth but dusty and filled with twigs and leaves, debris which becomes deeper as the tunnel branches into a wide corridor leading southwest and a narrower one leading southeast."
.GSTR STR?11,"There is a beautiful unicorn here cropping grass."
.GSTR STR?12,"This is the northern end of a formal garden. Hedges hide the cavern walls, and if you don't look up, the illusion is of a cloudy day outside. The light comes from a large growth of glowing mosses on the roof of the cave. A break in the hedge is almost overgrown to the north. A carefully manicured path leads south. In the center of a rosebed is a small open structure, painted white. It appears to be a gazebo."
.GSTR STR?13,"This is a gazebo in the midst of a formal garden. It is cool and restful here. A tea table adorns the center of the gazebo."
.GSTR STR?14,"This is the middle part of a formal garden. Hedges hide the cavern walls and a dim illumination comes from mosses far above. The path is of small crushed white stones. It winds among bushes and flower beds from south to north. To the north a small structure can be seen. To the south are peculiarly shaped bushes. There is a small gap in the hedges to the west."
.GSTR STR?15,"This is the southern end of a formal garden. Hedges hide the cavern walls and mosses provide dim illumination. Fantastically shaped hedges and bushes are arrayed with geometric precision. They have not recently been clipped, but you can discern creatures in the shapes of the bushes: There is a dragon, a unicorn, a great serpent, a huge misshapen dog, and several human figures. On the west side of the garden the path leads through a rose arbor into a tunnel."
.GSTR STR?16,"The path follows the south edge of a deep ravine and heads northeast. A tunnel heads southwest, narrowing to a rather tight crawl. A faint whirring sound can be heard in that direction. On the east is a ruined archway choked with vegetation."
.GSTR STR?17,"The ravine is extremely deep. You would never make it."
.GSTR STR?18,"This is an arched hall of fine marble. The hall stops abruptly to the north at a ford across a stream, where the marble is cracked and broken. Perhaps a flood or collapse of the cave was responsible. To the south the hall opens into a large room. There is rather annoying whirring sound coming from that room."
.GSTR STR?19,"That's a wall there."
.GSTR STR?20,"You are fording the stream at a deep but not impossible spot. The water is very cold. The walls of the ravine rise to east and west. There is a small ledge along the north wall of the ravine. To the south is the entrance to a well-constructed but somewhat ruined hall."
.GSTR STR?21,"The stream deepens rapidly, and you wisely return before drowning."
.GSTR STR?22,"You notice that the ledge above would be a drier route west."
.GSTR STR?23,"You are on a narrow ledge near the bottom of a deep ravine. The ledge continues to the west. A precarious climb up to another tiny ledge is possible. A short scramble down the rock face leads to a stream."
.GSTR STR?24,"A ledge from the east ends here, and a tunnel leads north into the wall. There is a rather odd smokey odor in the warm air of the tunnel."
.GSTR STR?25,"There are a lot of sharp rocks down there."
.GSTR STR?26,"The room is a large cavern full of broken stone. The walls are scorched and there are deep scratches on the floor. A sooty dry smell is very strong here. A paved path winds from a large passage to the west, through the room, and across a huge stone bridge to the south. To the east a small crack is visible. A dark and smokey tunnel leads north."
.GSTR STR?27,"The dragon hisses at you and blocks your way."
.GSTR STR?28,"You are in the dragon's lair, where the rock walls are scarred by flame. A blackened doorway leads to the south."
.GSTR STR?29,"A rotten old wooden chest is in one corner among the debris."
.GSTR STR?30,"Nestled in the chest is a wrought gold statuette of a dragon."
.GSTR STR?31,"A huge red dragon is lying on the rocks here, watching."
.GSTR STR?32,"A huge red dragon is lying here, blocking the entrance to a tunnel leading north. Smoke curls from his nostrils and out between his teeth."
.GSTR STR?33,"A huge dead dragon is lying half blocking the stream."
.GSTR STR?34,"A beautiful young woman, wearing a dirty and bedraggled gown, sits on a rock in the corner. Her hair is unkempt and she is oblivious to your presence, almost in a trance."
.GSTR STR?35,"A path leads east-west through a room decorated with beautiful frescoes of someone battling dragons and rescuing fair maidens. It is hard to tell who is doing this as those parts of the frescoes have been blackened and cracked by intense heat."
.GSTR STR?36,"This is the middle of a ruined but still impressive stone bridge spanning a deep chasm. Water flows far beneath. A paved path leads north into a large open space. To the south, the path leads into a misty tunnel."
.GSTR STR?37,"It's a long way down."
.GSTR STR?38,"The room is cool and damp. The air is misty. A twisty path from the southeast splits here toward a wide northerly stone bridge, and a narrow westerly tunnel. It is from the latter that the mist and chill seem to originate."
.GSTR STR?39," "
.GSTR STR?40,"You don't even have an ice-pick."
.GSTR STR?41,"You are in a tight chimney of solidified lava. It extends up at least another hundred feet and down to a large room far below. A large crack opens to the south, probably the result of a shift in the rock strata."
.GSTR STR?42,"A winding corridor is filled with cobwebs. Some are broken and the dust on the floor is disturbed. The trend of the twists and turns is northeast to southwest. On the north side of one twist, high up, is a narrow crack."
.GSTR STR?43,"This is a small chamber carved out of the rock at the end of a short crawl. On the wall is crudely chiseled the number ""8""."
.GSTR STR?44,"You are trying to walk through an enormous rock."
.GSTR STR?45,"This room looks like it was once a kennel for a very large dog (some of the bones would fit a dinosaur). It apparently hasn't been used for a long time, as the dust is fairly thick all over. The only exit is northeast."
.GSTR STR?46,"A gigantic dog collar, large enough for three rhinoceros-sized dogs, is lying amidst the debris."
.GSTR STR?47,"A long wooden club lies on the ground near the diamond-shaped window. The club is curiously burned at the thick end."
.GSTR STR?48,"The words ""Babe Flathead"" are burned into the wood."
.GSTR STR?49,"A marble stairway leads down into the gloom and a passage leads north."
.GSTR STR?50,"A small room with oddly angled walls and passages in all directions."
.GSTR STR?51,"This is the entrance to a huge crypt or tomb. A marble stairway leads up from a gateway arch."
.GSTR STR?52,"The huge dog snaps nastily at you."
.GSTR STR?53,"There is a vicious-looking dog guarding the entrance. It is more or less your usual dog, except that it has three heads and is the size of an elephant."
.GSTR STR?54,"""Here lie the Flatheads, whose heads were placed on poles by the Keeper of the Dungeon for amazing untastefulness."""
.GSTR STR?55,"This is the workshop of the Wizard of Frobozz."
.GSTR STR?56,"This room is the Wizard's workroom. A hall continues east and west, and a larger room lies to the south. There are many shelves and racks on the walls, but the Wizard's workbench dominates the room. It is made of dark, heavy wood bound with iron. The workbench is stained from many years of use, and is deeply gouged as though some huge clawed animal was imprisoned on it. There are burn marks and even notes written in a crabbed hand. Many arcane items are scattered about the bench; alembics, mortar and pestle, small knives of various sizes, odd scraps of vellum, wax candles, and much more. In the center of a relatively clear area of the bench are affixed three stands - ruby, sapphire, and diamond - which form a triangle."
.GSTR STR?57,"There is a strange black sphere here."
.GSTR STR?58,"This is the Wizard's trophy room, filled with memorabilia of various sorts. On one wall is the Wizard's D. T. (Doctor of Thaumaturgy) degree from GUE Tech. Several old magic wands are mounted on a wand rack. A collection of dull and nicked swords testify to the fate of many foolhardy adventurers. Small bottles contain discarded homunculi (a few preserved in alcohol). There is a stuffed owl on a perch."
.GSTR STR?59,"The text is in some obscure tongue. All that can be made out is a reference to ""sending in a matchbook cover."""
.GSTR STR?60,"A hand-lettered label is affixed to the wall."
.GSTR STR?61,"Warning!
The exhibits in this room are the property of the mighty Wizard of Frobozz (me), and are the fruits of diligent labor and study over many years. He who touches anything will regret it.
(signed)
Frobozz
"
.GSTR STR?62,"Imbedded in the wall is an ornate trophy cabinet."
.GSTR STR?63,"Shards of a smashed trophy case litter the room."
.GSTR STR?64,"In this room, inscribed on the floor, is a great pentagram drawn with black chalk. In its center is a black circle."
.GSTR STR?65,"Here a dark hallway turns a corner. To the south is a dark room, to the east is fitful light."
.GSTR STR?66,"Filling the northern half of the room is a huge aquarium."
.GSTR STR?67,"There is a clear crystal sphere lying in the sand."
.GSTR STR?68,"There is a baby sea serpent swimming in the aquarium."
.GSTR STR?69,"There is a dead sea serpent in a heap here."
.GSTR STR?70,"The floor here seems to be made of sand, but it is hard to see anything else."
.GSTR STR?71,"This is a former broom closet. The exits are to the east and west."
.GSTR STR?72,"You are at the bottom of a large dormant volcano. High above you light enters from the cone of the volcano. The only exit is to the north."
.GSTR STR?73,"You are about one hundred feet above the bottom of the volcano. The top of the volcano is clearly visible here."
.GSTR STR?74,"You are about two hundred feet above the volcano floor. Looming above is the rim of the volcano. There is a small ledge on the west side."
.GSTR STR?75,"You are high above the floor of the volcano. The rim of the volcano looks very narrow and you are very near it. To the east is what appears to be a viewing ledge, too thin to land on."
.GSTR STR?76,"You are near the rim of the volcano. Above you it is open to the sky. To the west, there is a place to land on a wide ledge."
.GSTR STR?77,"You are on a narrow ledge within an old dormant volcano. This ledge is about halfway between the floor below and the rim above. There is an exit to the south."
.GSTR STR?78,"I wouldn't jump from here."
.GSTR STR?79,"This must have been a large library, probably for the royal family. All of the shelves have been gnawed to pieces by unfriendly gnomes. To the north is an exit."
.GSTR STR?80,"You are on a ledge in the middle of a large volcano. Below you the volcano bottom can be seen and above is the rim of the volcano. A couple of ledges can be seen on the other side of the volcano; it appears that this ledge is intermediate in elevation between those on the other side. The exit from this room is to the east."
.GSTR STR?81,"I wouldn't try that."
.GSTR STR?82,"It is impossible to cross this distance."
.GSTR STR?83,"This is a small room, whose walls are formed by an old lava flow. There are exits here to the east and the south."
.GSTR STR?84,"This is a large room full of assorted heavy machinery, whirring noisily. The room smells of burned resistors. Along one wall are three buttons which are, respectively, round, triangular, and square. Naturally, above these buttons are instructions written in EBCDIC. A large sign in English above all the buttons says
""DANGER -- HIGH VOLTAGE""
There are exits to the west and the south."
.GSTR STR?85,"This is a dingy closet adjacent to a larger room to the north. Chiselled into a wall are these words:
Protected by
FROBOZZ
Magic Alarm Company
(Hello, footpad!)
There doesn't seem to be any footpad here, however."
.GSTR STR?86,"You are trapped inside a solid steel cage."
.GSTR STR?87,"You are at the top of the well. Well done. There are etchings on the side of the well. There is a small crack across the floor at the entrance to a room on the east, but it can be crossed easily."
.GSTR STR?88,"It's a long way down!"
.GSTR STR?89,"This is a damp circular room, whose walls are made of brick and mortar. The roof of this room is not visible, but there appear to be some etchings on the walls. There is a passageway to the west."
.GSTR STR?90,"The walls cannot be climbed."
.GSTR STR?91,"This is a small room containing a large oblong table, no doubt set for afternoon tea. It is clear from the objects on the table that the users were indeed mad. In the eastern corner of the room is a small hole (no more than four inches high). There are passageways leading away to the west and the northwest."
.GSTR STR?92,"Only a mouse could get in there."
.GSTR STR?93,"This is an enormous room, in the center of which are four wooden posts delineating a rectangular area, above which is what appears to be a wooden roof. In fact, all objects in this room appear to be abnormally large. To the east is a passageway. There are large gaping chasms to the west and northwest."
.GSTR STR?94,"A great chasm blocks your way."
.GSTR STR?95,"This is a large room, one half of which is depressed. Salty water flows from a large leak in the ceiling. The only exit is to the west."
.GSTR STR?96,"This is the entrance hall of the Bank of Zork, the largest banking institution of the Great Underground Empire. A partial account of its history is in ""The Lives of the Twelve Flatheads,"" in the chapter on J. Pierpont Flathead. A more detailed history (albeit less objective) may be found in Flathead's outrageous autobiography ""I'm Rich and You Aren't - So There!"". Most of the furniture has been ravaged by passing scavengers. All that remains are two signs at the northwest and northeast corners of the room, which say:
<-- VIEWING ROOMS -->
The way out (ornate but tasteful) is to the east. "
.GSTR STR?97,"This room was used by holders of safety deposit boxes to view their contents. On the north side of the room is a sign which says:
""Remain here while the teller retrieves your safety deposit box. When you are finished, leave the box, and exit to the south. Safety deposit boxes cannot be removed from this room!
Thank You for Banking at the Zork!"" "
.GSTR STR?98,"This room was used by holders of safety deposit boxes to view their contents. On the north side of the room is a sign which says
""Remain here while the teller retrieves your safety deposit box. When you are finished, leave the box, and exit to the south. Safety deposit boxes cannot be removed from this room!
Thank You for Banking at the Zork!"" "
.GSTR STR?99,"This is a small, bare room with no distinguishing features. There are no exits from this room."
.GSTR STR?100,"This is the Vault of the Bank of Zork, in which there are no doors."
.GSTR STR?101,"This is a large rectangular room. The east and west walls were used for storing safety deposit boxes, but all have been carefully removed by evil persons. To the east, west, and south of the room are large doorways. The northern ""wall"" of the room is a shimmering curtain of light. In the center of the room is a large stone cube, about 10 feet on a side. Engraved on the side of the cube is some lettering."
.GSTR STR?102,"There is a curtain of light there."
.GSTR STR?103,"This room was the office of the Chairman of the Bank of Zork. Like the other rooms here, it has been extensively vandalized. The lone exit is to the north."
.GSTR STR?104,"There is a matchbook saying ""Visit ZORK I"" here."
.GSTR STR?105,""">> Visit Exotic ZORK I <<
Consult the Frobozz Magic Travel Agency, or visit your local computer store for more details."""
.GSTR STR?106,"There is a nervous Volcano Gnome here."
.GSTR STR?107,"There is a blue label here."
.GSTR STR?108," !! FROBOZZ MAGIC BALLOON COMPANY !!
Hello, Aviator!
To land your balloon, say LAND
Otherwise, you're on your own!
No warranty expressed or implied."
.GSTR STR?109,"There is a square brick here which feels like clay."
.GSTR STR?110,"The room is cluttered with debris from an explosion. The walls seem ready to collapse."
.GSTR STR?111,"There is a balloon here, broken into pieces."
.GSTR STR?112,"There is a card with writing on it here."
.GSTR STR?113," Warning:
This room was constructed over very weak rock strata. Detonation of explosives in this room is strictly prohibited!
Frobozz Magic Cave Company
per M. Agrippa, foreman
"
.GSTR STR?114,"The excessively gaudy crown of Lord Dimwit Flathead sits in the safe."
.GSTR STR?115,"Lord Dimwit's crown is here."
.GSTR STR?116,"There is a beautiful red crystal sphere here."
.GSTR STR?117,"There is a Stradivarius here."
.GSTR STR?118,"A mass of ice fills the western half of the room."
.GSTR STR?119,"A stoppered glass flask with a skull-and-crossbones marking is here. The flask is filled with some clear liquid."
.GSTR STR?120,"There is a skull-and-crossbones engraved on the glass."
.GSTR STR?121,"There is a green piece of paper here."
.GSTR STR?122,"!! FROBOZZ MAGIC ROBOT COMPANY !!
Hello, Master!
I am a late-model robot, trained at GUE Tech to perform various simple household functions.
To activate me, say the following:
>ROBOT, <things to do>
At your service!"
.GSTR STR?123,"There is a small hook attached to the rock here."
.GSTR STR?124,"A strangely familiar brass lantern is lying on the ground."
.GSTR STR?125,"There is a mangled steel cage here."
.GSTR STR?126,"There is a pearl necklace here with hundreds of large pearls."
.GSTR STR?127,"The icing spells out ""Eat Me."""
.GSTR STR?128,"The leak has submerged the depressed area in a pool of tears. There is a hazy something at the deepest part of the pool."
.GSTR STR?129,"On the floor is a priceless gold zorkmid (a valuable collector's item)."
.GSTR STR?130,"There is an engraved zorkmid here."
.GSTR STR?131,"This is a beautiful octagonal coin bearing the legends ""Ten Thousand Zorkmids"" and ""In Frobs We Trust""."
.GSTR STR?132,"There is a Flathead stamp here."
.GSTR STR?133,"This three zorkmid stamp bears a portrait of Lord Dimwit Flathead, ""Our Excessive Leader""."
.GSTR STR?134,"A handsome book, bound in green leather, sits in the center of the room."
.GSTR STR?135,"This book is written in a tongue with which I am unfamiliar."
.GSTR STR?136,"Worn and battered in one corner of the room is a blue book."
.GSTR STR?137,"Right beside the purple book sits a white one."
.GSTR STR?138,"It is written in an unfamiliar tongue and details the use of various magical objects, chiefly the so-called ""magic wand"". Apparently these devices work by pointing them at the object to be ensorcelled, and then chanting the appropriate magic words. (It's truly amazing how credulous these ancients were, isn't it?)"
.GSTR STR?139,"Lying in the dust, and covered with mold, is a purple book."
.GSTR STR?140,"This book is written in a tongue with which I am unfamiliar. Assuming that one can indeed tell a book by its cover, it is likely filled with purple prose, the like of which is rarely seen outside the Great Underground Empire."
.GSTR STR?141,"There is a robot here."
.GSTR STR?142,"On the floor lies a moby ruby."
.GSTR STR?143,"There is a moby ruby lying here."
.GSTR STR?144,"There is a dented steel box here."
.GSTR STR?145,"There is a solid steel cage in the middle of the room."
.GSTR STR?146,"There is a package of candied goodies here."
.GSTR STR?147,"There is a coil of black, braided string here."
.GSTR STR?148,"There is a wooden bucket here, 3 feet in diameter and 3 feet high."
.GSTR STR?149,"200 neatly stacked zorkmid bills are here."
.GSTR STR?150,"On the floor sit 200 neatly stacked zorkmid bills."
.GSTR STR?151,"Each bill is worth 100 zorkmids, and bears the legend ""In Frobs We Trust""."
.GSTR STR?152,"The portrait of J. Pierpont Flathead is here."
.GSTR STR?153,"A portrait of J. Pierpont Flathead hangs on the wall."
.GSTR STR?154,"On the ground is a small, worn piece of paper."
.GSTR STR?155,"The paper is barely readable. You can only make out ""... valuables are completely safe ... advanced magic technology ... impossible to take valuables from the depository ... either teller's ... Many customers faint ... teller pops in ... seems to walk through ... walls ..."""
.GSTR STR?156,"There is a Gnome of Zurich here."
.GSTR STR?157,"In the center of the table sits a blue crystal sphere."
.GSTR STR?158,"** U.S. News and Dungeon Report **
FAMED ADVENTURER TO EXPLORE GREAT UNDERGROUND EMPIRE
Our correspondents report that a world-famous and battle-hardened adventurer has been seen in the vicinity of the Great Underground Empire. Local grues have been reported sharpening their (slavering) fangs....
""Zork II: The Wizard of Frobozz"" was written by Dave Lebling and Marc Blank, and is (c) Copyright 1981, 1982, 1983 by Infocom, Inc."
.GSTR STR?159,"There is some water here."
.GSTR STR?160,"There is a demon floating in midair here."
.GSTR STR?161,"The Wizard of Frobozz is here, eyeing you warily."
.GSTR STR?162,"An Elvish sword of great antiquity is here."
.GSTR STR?163,"A sword of Elvish workmanship is on the ground."
.GSTR STR?164,"A spray can is in the corner. In large type is the legend ""Frobozz Magic Grue Repellent""."
.GSTR STR?165,"!!! FROBOZZ MAGIC GRUE REPELLENT !!!
Instructions for use: Apply liberally to creature to be protected. Duration of effect is unpredictable. Use only in place of death!
(No warranty expressed or implied)"
.GSTR STR?166,"F"
.GSTR STR?167,"If you insist.... Poof, you're dead!"
.GSTR STR?168," it at the time."
.GSTR STR?169,"Kicking the "
.GSTR STR?170,"You should have looked before you leaped."
.GSTR STR?171,"In the movies, your life would be passing before your eyes."
.GSTR STR?172,"Geronimo..."
.GSTR STR?173,"Playing in this way with the "
.GSTR STR?174,"Pushing the "
.GSTR STR?175,"Fiddling with the "
.GSTR STR?176,"Very good. Now you can go to the second grade."
.GSTR STR?177,"Are you enjoying yourself?"
.GSTR STR?178,"Wheeeeeeeeee!!!!!"
.GSTR STR?179,"Do you expect me to applaud?"
.GSTR STR?180," hits you squarely in the head. Normally, this wouldn't do much damage, but by incredible mischance, you fall over backwards trying to duck, and break your neck, justice being swift and merciful in the Great Underground Empire."
.GSTR STR?181,"Oh, no! You have walked into the slavering fangs of a lurking grue!"
.GSTR STR?182,"Waving the "
.GSTR STR?183," "
.GSTR STR?184," "
.GSTR STR?185," "
.GSTR STR?186," "
.GSTR STR?187," "
.GSTR STR?188," doesn't seem to work."
.GSTR STR?189," isn't notably helpful."
.GSTR STR?190," has no effect."
.GSTR STR?191," and devoured you!"
.GSTR STR?192,"You can't swim in the dungeon."
.GSTR STR?193,"Hello."
.GSTR STR?194,"Good day."
.GSTR STR?195,"Nice weather we've been having lately."
.GSTR STR?196,"Goodbye."
.GSTR STR?197,"A valiant attempt."
.GSTR STR?198,"You can't be serious."
.GSTR STR?199,"An interesting idea..."
.GSTR STR?200,"What a concept!"
.GSTR STR?201,"Look around."
.GSTR STR?202,"Too late for that."
.GSTR STR?203,"Have your eyes checked."
.GSTR STR?204,"burning"
.GSTR STR?205,"nestled"
.GSTR STR?206,"The balloon floats majestically out of the volcano, revealing a breathtaking view of a wooded river valley surrounded by impassable mountains. In a clearing stands a white house. You drift into high winds, which carry you towards the snow-capped peaks. Oh, no! You crash into the jagged cliffs of the Flathead Mountains!"
.GSTR STR?207,"ascends."
.GSTR STR?208,"floats away. It seems to be ascending, due to its light load."
.GSTR STR?209,"lifts off."
.GSTR STR?210,"lands."
.GSTR STR?211,"descends."
.GSTR STR?212,"Now you've done it. It seems that the brick has other properties than weight, namely the ability to blow you to smithereens."
.GSTR STR?213,"The way is blocked by debris from an explosion."
.GSTR STR?214,"The room trembles and 5000 tons of rock fall on you, turning you into a pancake."
.GSTR STR?215,"The ledge collapses, probably as a result of the explosion, and plummets to the ground far below. Sadly, you were still attached to the ledge."
.GSTR STR?216,"The force of the recent explosion has caused the ledge to collapse."
.GSTR STR?217,"The ledge has collapsed and cannot be landed on."
.GSTR STR?218,"Although the Flatheads are dead, they foresaw that some cretin might tamper with their remains. Therefore, they took steps to punish such actions."
.GSTR STR?219,"The crypt door squeaks open."
.GSTR STR?220,"The crypt door squeaks closed."
.GSTR STR?221,"The secret door opens noiselessly."
.GSTR STR?222,"The secret door closes noiselessly."
.GSTR STR?223,"The green curves begin to vibrate toward you, as if searching for something. One by one your possessions glow bright green. Finally, you are attacked by these magical wardens, and destroyed!"
.GSTR STR?224,"If you insist."
.GSTR STR?225,"That was delicious, but your dying memory is of feeling horribly dehydrated and thirsty."
.GSTR STR?226,"The room seems to have become too small to hold you. The walls are not as compressible as your body, which is demolished."
.GSTR STR?227,"You enter the pool, thrash around for a good while, and then drown. Sad, but true."
.GSTR STR?228,"Noxious vapors prevent your entry."
.GSTR STR?229,"As you pass out, you realize that the vapors from the flask's contents are fatal."
.GSTR STR?230,"The entrance is blocked by sticky orange rubble. Probably some careless adventurer was playing with blasting cakes."
.GSTR STR?231,"You have been blasted to smithereens (wherever they are)."
.GSTR STR?232,"According to Prof. TAA of GUE Tech, the rapidly changing magnetic fields in the room are intense enough to electrocute you. I really don't know, but in any event, something just killed you."
.GSTR STR?233,"According to Prof. TAA of GUE Tech, the magnetic fields in the room are intense enough to fry the delicate innards of the robot. I really don't know, but in any event, smoke pours from its ears and it has stopped moving."
.GSTR STR?234,"There is a giant spark and you are fried to a crisp."
.GSTR STR?235,"As the robot reaches for the sphere, a solid steel cage falls from the ceiling, trapping him. You can faintly hear his last words: ""Whirr, buzz, click!"" A cloud of smoke rising from beneath the cage confirms your fears about the fate of your brave mechanical friend."
.GSTR STR?236,"You are stopped by a cloud of poisonous gas."
.GSTR STR?237,"Time passes...and you die from some obscure poisoning."
.GSTR STR?238,"A metallic voice says ""Hello, Intruder! Your unauthorized presence in the vault of the Bank of Zork has set off all sorts of nasty surprises, most of which are fatal. This message brought to you by the Frobozz Magic Vault Company."""
.GSTR STR?239,"north"
.GSTR STR?240,"south"
.GSTR STR?241,"red"
.GSTR STR?242,"blue"
.GSTR STR?243,"white"
.GSTR STR?244,"black"
.GSTR STR?245,"The door is now open."
.GSTR STR?246,"The door is now closed."
.GSTR STR?247,"The lamp appears a bit dimmer."
.GSTR STR?248,"The lamp is definitely dimmer now."
.GSTR STR?249,"The lamp is nearly out."
.GSTR STR?250,"You think it isn't?"
.GSTR STR?251,"I think you've already done that."
.GSTR STR?252,"You find yourself drawn toward the edge of the bridge. You peer over the side. Oops, that was clumsy of you! You tripped on something and fell in. Too bad."
.GSTR STR?253,"For some odd reason you have tripped on your own feet, or perhaps an invisible cord stretched across the path. The resulting fall seems to have done you in."
.GSTR STR?254,"dark"
.GSTR STR?255,"flickering dimly"
.GSTR STR?256,"dimly glowing"
.GSTR STR?257,"glowing"
.GSTR STR?258,"glowing brightly"
.GSTR STR?259,"first"
.GSTR STR?260,"second"
.GSTR STR?261,"third"
.GSTR STR?262,"home"
.GSTR STR?263,"The dog-thing snaps at you viciously, and succeeds. Your head, it seems, is only a small mouthful for the poor animal, who is just as hungry afterward."
.GSTR STR?264,"An insipidly grinning three-headed dog is wagging its tail here. It is wearing a huge dog collar."
.GSTR STR?265,"Cerberus tears you limb from limb! What ferocity!"
.GSTR STR?266,"That wasn't such a good idea. The creature was enjoying being your pet. As you unfasten the collar, the disappointed monster hound begins to growl, and then its three fang-crammed mouths rend you into little doggy biscuits."
.GSTR STR?267,"Dragon hide is tough as steel, but you have succeeded in annoying him a bit. He looks at you as if deciding whether or not to eat you."
.GSTR STR?268,"That captured his interest. He stares at you balefully."
.GSTR STR?269,"The dragon is surprised and interested (for the moment)."
.GSTR STR?270,"You've made him rather angry. You had better be very careful now."
.GSTR STR?271,"That did no damage, but he turns his smoky yellow eyes in your direction and sighs."
.GSTR STR?272,"incinerates you in a blast of white-hot dragon fire."
.GSTR STR?273,"A huge ball of flame envelops you, but you don't even feel the heat. The dragon is puzzled, but not too puzzled to crush you in his jaws."
.GSTR STR?274,"Worse for you, his mouth opens and a great gout of flame puffs out and consumes you on the spot."
.GSTR STR?275,"The topiary animals attack! You are crushed by their branches and clawed by their thorns."
.GSTR STR?276,"There is a large, white animal partly hidden behind some trees."
.GSTR STR?277,"You catch a glimpse of something white between two hedges."
.GSTR STR?278,"A unicorn is cropping grass on the other side of the room. A gold key hangs from a ribbon around its neck."
.GSTR STR?279,"There is a beautiful unicorn eating roses here. Around his neck is a red satin ribbon on which is strung a tiny key."
.GSTR STR?280,"There is a dishevelled and slightly unkempt princess here."
.GSTR STR?281,"east"
.GSTR STR?282,"west"
.GSTR STR?283,"down"
.GSTR STR?284,"up"
.GSTR STR?285,"in"
.GSTR STR?286,"out"
.GSTR STR?287,"The door creaks open."
.GSTR STR?288,"The door reluctantly closes."
.GSTR STR?289,"You drop into the aquarium with a splash (which attracts the serpent). He greedily eats you. He's just a baby, after all, and needs all the food he can get."
.GSTR STR?290,"Oh dear, you have cut yourself severely on the broken glass. I'm afraid you've bled to death."
.GSTR STR?291,"The flask shatters, and poison gas fills the room!"
.GSTR STR?292,"A shattered aquarium fills the northern half of the room."
.GSTR STR?293,"I guess you were too careless."
.GSTR STR?294,"He takes you instead. *Uurrp!*"
.GSTR STR?295,"""Foolish mortal, if you insist..."" The demon crushes you with one blow of his enormous hand."
.GSTR STR?296,"A dejected and fearful Wizard watches from the corner."
.GSTR STR?297,"Most fine, master! But 'tis not enough. I will do a great service, and are not great services bought at great price?"
.GSTR STR?298,"Very nice, but not enough!"
.GSTR STR?299,"Ah, truly magnificent! Keep them coming."
.GSTR STR?300,"Almost halfway there, oh worthy one!"
.GSTR STR?301,"Oh, such beauty! Your generosity almost overwhelms me!"
.GSTR STR?302,"Truly I shall do thee a wonderful service when thou hast finished!"
.GSTR STR?303,"Truly you are most generous! But still, this is yet not enough."
.GSTR STR?304,"A fine gift, mighty one, you have almost reached my fee."
.GSTR STR?305,"Wondrous fine, master! But one treasure is yet to be given!"
.GSTR STR?306,"You plunge to the bottom of the shaft as the spell wears off."
.GSTR STR?307,"As the spell wears off, you find yourself making a half-gainer towards the bottom of the volcano."
.GSTR STR?308,"You plummet to the bottom of the shaft."
.GSTR STR?309,"You make a rather messy swan dive to the bottom of the volcano."
.GSTR STR?310,"Feeble"
.GSTR STR?311,"Fumble"
.GSTR STR?312,"Fear"
.GSTR STR?313,"Filch"
.GSTR STR?314,"Freeze"
.GSTR STR?315,"Fall"
.GSTR STR?316,"Ferment"
.GSTR STR?317,"Fierce"
.GSTR STR?318,"Float"
.GSTR STR?319,"Fireproof"
.GSTR STR?320,"Fence"
.GSTR STR?321,"Fantasize"
.GSTR STR?322,"All at once you feel very tired."
.GSTR STR?323,"You look at the Wizard in terror. You scramble away, trying to get as far as possible from him."
.GSTR STR?324,"Your limbs suddenly feel like they have turned to stone. You can't move a muscle."
.GSTR STR?325,"You begin to feel lightheaded."
.GSTR STR?326,"You rush at the Wizard, intending to tear him limb from limb."
.GSTR STR?327,"You feel more energetic now."
.GSTR STR?328,"You suddenly decide that the Wizard isn't that terrifying..."
.GSTR STR?329,"Your little finger begins to twitch, and then your whole body is free again."
.GSTR STR?330,"Your head is clearer now."
.GSTR STR?331,"You feel cooler and less angry now."
.GSTR STR?332,"You sink quietly down again."
.GSTR STR?333,"The Wizard snatches the wand away, muttering the word ""Float"" at the robot. Unfortunately he has no floating-point processor and dies in a vain attempt to divide 4.85 by 3.62."
.GSTR STR?334,"The wand was still recharging from its last use. It discharges magic all over everything. You turn into a toad, the room fills with a fetid smell, and all sorts of other grubby things happen. Then the wand explodes!"
.GSTR STR?335,"sparsely furnished and almost monkish in its austerity."
.GSTR STR?336,"an opulently furnished seraglio out of an Arabian folktale."
.GSTR STR?337,"decorated in the Louis XIV style."
.GSTR STR?338,"overhung with palm-trees and lianas. The only furniture is a hammock."
.GSTR STR?339,"constructed of delicate and wispy cloud-stuffs."
.GSTR STR?340,"furnished in plastic and metal and looks like the control deck of a spaceship."
.GSTR STR?341,"a suburban bedroom out of the 1950's, complete with bunk beds."
.GSTR STR?342,"a dank and dimly lighted cave, its floor piled with furs and old bones."
.GSTR STR?343,"You execute a perfect swan-dive into the depths below."
.GSTR STR?344,"pile of jewels"
.GSTR STR?345,"gold ingot"
.GSTR STR?346,"basilisk"
.GSTR STR?347,"bulging chest"
.GSTR STR?348,"yellow sphere"
.GSTR STR?349,"grue"
.GSTR STR?350,"convention of wizards"
.GSTR STR?351,"copy of ZORK I"
.ENDI