Solid-Gold Edition

This commit is contained in:
historicalsource 2019-04-18 22:28:40 -04:00
commit 92f45432e0
24 changed files with 14587 additions and 0 deletions

4179
actions.zil Normal file

File diff suppressed because it is too large Load diff

64
clock.zil Normal file
View file

@ -0,0 +1,64 @@
"GCLOCK for
The Zork Trilogy
(c) Copyright 1983 Infocom, Inc. All Rights Reserved
-- CHEAPO EDITION"
<CONSTANT C-TABLELEN 180>
<GLOBAL C-TABLE <ITABLE NONE 180>>
<GLOBAL C-DEMONS 180>
<GLOBAL C-INTS 180>
<CONSTANT C-INTLEN 6>
<CONSTANT C-ENABLED? 0>
<CONSTANT C-TICK 1>
<CONSTANT C-RTN 2>
<ROUTINE QUEUE (RTN TICK "AUX" CINT)
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
<PUT <SET CINT <INT .RTN>> ,C-TICK .TICK>
;"added per RAGER"
;<PUT .CINT ,C-ENABLED? 1>
.CINT>
<ROUTINE INT (RTN "OPTIONAL" (DEMON <>) E C INT)
#DECL ((RTN) ATOM (DEMON) <OR ATOM FALSE> (E C INT) <PRIMTYPE
VECTOR>)
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<SET C <REST ,C-TABLE ,C-INTS>>
<REPEAT ()
<COND (<==? .C .E>
<SETG C-INTS <- ,C-INTS ,C-INTLEN>>
<AND .DEMON <SETG C-DEMONS <- ,C-DEMONS ,C-INTLEN>>>
<SET INT <REST ,C-TABLE ,C-INTS>>
<PUT .INT ,C-RTN .RTN>
<RETURN .INT>)
(<EQUAL? <GET .C ,C-RTN> .RTN> <RETURN .C>)>
<SET C <REST .C ,C-INTLEN>>>>
<GLOBAL CLOCK-WAIT <>>
<ROUTINE CLOCKER ("AUX" C E TICK (FLG <>))
#DECL ((C E) <PRIMTYPE VECTOR> (TICK) FIX (FLG) <OR FALSE ATOM>)
<COND (,CLOCK-WAIT <SETG CLOCK-WAIT <>> <RFALSE>)>
<SET C <REST ,C-TABLE <COND (,P-WON ,C-INTS) (T ,C-DEMONS)>>>
<SET E <REST ,C-TABLE ,C-TABLELEN>>
<REPEAT ()
<COND (<==? .C .E>
<SETG MOVES <+ ,MOVES 1>>
<RETURN .FLG>)
(<NOT <0? <GET .C ,C-ENABLED?>>>
<SET TICK <GET .C ,C-TICK>>
<COND (<0? .TICK>)
(T
<PUT .C ,C-TICK <- .TICK 1>>
<COND (<AND <NOT <G? .TICK 1>>
<APPLY <GET .C ,C-RTN>>>
<SET FLG T>)>)>)>
<SET C <REST .C ,C-INTLEN>>>>

2730
dungeon.zil Normal file

File diff suppressed because it is too large Load diff

7
file.txt Normal file
View file

@ -0,0 +1,7 @@
<ROUTINE V-$ID ()
<TELL "Interpreter ">
<PRINTN <GETB 0 30>>
<TELL " Version ">
<PRINTC <GETB 0 31>>
<CRLF>
<RTRUE>>

465
globals.zil Normal file
View file

@ -0,0 +1,465 @@
"Generic GLOBALS file for
The ZORK Trilogy
started on 7/28/83 by MARC
-- CHEAPO EDITION"
"SUBTITLE GLOBAL OBJECTS"
<OBJECT GLOBAL-OBJECTS
(SYNONYM ZZMGCK)
(DESC "it")
(FLAGS RMUNGBIT INVISIBLE TOUCHBIT SURFACEBIT TRYTAKEBIT
OPENBIT SEARCHBIT TRANSBIT ONBIT RLANDBIT FIGHTBIT
STAGGERED WEARBIT KLUDGEBIT MAZEBIT READBIT ;NARTICLEBIT)>
<OBJECT LOCAL-GLOBALS
(LOC GLOBAL-OBJECTS)
(SYNONYM ZZMGCK)
(DESCFCN PATH-OBJECT)
(GLOBAL GLOBAL-OBJECTS)
(ADVFCN 0)
(FDESC "F")
(LDESC "F")
;(PSEUDO "FOOBAR" V-WALK)
(CONTFCN 0)
(VTYPE 1)
(SIZE 0)
(CAPACITY 0)>
;"Yes, this synonym for LOCAL-GLOBALS needs to exist... sigh"
<OBJECT ROOMS
(IN TO ROOMS)>
<OBJECT INTNUM
(LOC GLOBAL-OBJECTS)
(SYNONYM INTNUM)
(FLAGS TOOLBIT)
(DESC "number")>
<OBJECT INTDIR
(LOC GLOBAL-OBJECTS)
(SYNONYM DIRECTION)
(FLAGS TOOLBIT)
(DESC "direction")>
;<OBJECT PSEUDO-OBJECT
(LOC LOCAL-GLOBALS)
(DESC "pseudo")
(ACTION CRETIN-FCN)>
<OBJECT IT
(LOC GLOBAL-OBJECTS)
(SYNONYM IT THEM HER HIM)
(DESC "random object")
(FLAGS NDESCBIT TOUCHBIT)>
<OBJECT NOT-HERE-OBJECT
(DESC "such thing" ;"[not here]")
(ACTION NOT-HERE-OBJECT-F)>
<ROUTINE NOT-HERE-OBJECT-F ("AUX" TBL (PRSO? T) OBJ)
;"This COND is game independent (except the TELL)"
<COND (<AND <EQUAL? ,PRSO ,NOT-HERE-OBJECT>
<EQUAL? ,PRSI ,NOT-HERE-OBJECT>>
<TELL "Those things aren't here!" CR>
<RTRUE>)
(<EQUAL? ,PRSO ,NOT-HERE-OBJECT>
<SET TBL ,P-PRSO>)
(T
<SET TBL ,P-PRSI>
<SET PRSO? <>>)>
;"Here is the default 'cant see any' printer"
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<COND (<EQUAL? ,WINNER ,PLAYER>
<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 ">
<NOT-HERE-PRINT .PRSO?>
<TELL " here!\"" CR>)>
<RTRUE>>
;<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
<TELL "[Moby-found " N .M-F " objects" "]" CR>)>
<COND (<AND <G? .M-F 1>
<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 (.PRSO? <SETG PRSO ,P-MOBY-FOUND>)
(T <SETG PRSI ,P-MOBY-FOUND>)>
<RFALSE>)
(<NOT .PRSO?>
<TELL "You wouldn't find any ">
<NOT-HERE-PRINT .PRSO?>
<TELL " there." CR>
<RTRUE>)
(T ,NOT-HERE-OBJECT)>>
;<ROUTINE GLOBAL-NOT-HERE-PRINT (OBJ)
;<COND (,P-MULT <SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>)>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<TELL "You can't see any">
<COND (<EQUAL? .OBJ ,PRSO> <PRSO-PRINT>)
(T <PRSI-PRINT>)>
<TELL " here." CR>>
<ROUTINE NOT-HERE-PRINT (PRSO?)
<COND (,P-OFLAG
<COND (,P-XADJ <PRINTB ,P-XADJ ;N>)>
<COND (,P-XNAM <PRINTB ,P-XNAM>)>)
(.PRSO?
<BUFFER-PRINT <GET ,P-ITBL ,P-NC1> <GET ,P-ITBL ,P-NC1L> <>>)
(T
<BUFFER-PRINT <GET ,P-ITBL ,P-NC2> <GET ,P-ITBL ,P-NC2L> <>>)>>
<ROUTINE NULL-F ("OPTIONAL" A1 A2)
<RFALSE>>
/^L
"Objects shared by all three Zorks go here"
<GLOBAL LOAD-MAX 100>
<GLOBAL LOAD-ALLOWED 100>
<OBJECT BLESSINGS
(LOC GLOBAL-OBJECTS)
(SYNONYM BLESSINGS GRACES)
(DESC "blessings")
(FLAGS NDESCBIT)>
<OBJECT STAIRS
(LOC LOCAL-GLOBALS)
(SYNONYM STAIRS STEPS STAIRCASE STAIRWAY)
(ADJECTIVE STONE DARK MARBLE FORBIDDING STEEP)
(DESC "stairs")
(FLAGS NDESCBIT CLIMBBIT)
(ACTION STAIRS-F)>
<ROUTINE STAIRS-F ()
<COND (<VERB? THROUGH>
<TELL
"You should say whether you want to go up or down." CR>)>>
<OBJECT SAILOR
(LOC GLOBAL-OBJECTS)
(SYNONYM SAILOR FOOTPAD AVIATOR)
(DESC "sailor")
(FLAGS NDESCBIT)
(ACTION SAILOR-FCN)>
<ROUTINE SAILOR-FCN ()
<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>>
<TELL
"The seaman looks up and maneuvers the boat toward shore. He cries out \"I
have waited three ages for someone to say those words and save me from
sailing this endless ocean. Please accept this gift. You may find it
useful!\" He throws something which falls near you in the sand, then sails
off toward the west, singing a lively, but somewhat uncouth, sailor song." CR>
<FSET ,VIKING-SHIP ,INVISIBLE>
<MOVE ,VIAL ,HERE>)
(<==? ,HERE ,FLATHEAD-OCEAN>
<COND (,SHIP-GONE
<TELL "Nothing happens anymore." CR>)
(T
<TELL "Nothing happens yet." CR>)>)
(T <TELL "Nothing happens here." CR>)>)
(T
'<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>)>)>)>>
<OBJECT GROUND
(LOC GLOBAL-OBJECTS)
(SYNONYM GROUND SAND DIRT FLOOR)
(DESC "ground")
(ACTION GROUND-FUNCTION)>
<ROUTINE GROUND-FUNCTION ()
<COND (<AND <VERB? PUT PUT-ON>
<EQUAL? ,PRSI ,GROUND>>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)
%<COND (<==? ,ZORK-NUMBER 1>
'(<EQUAL? ,HERE ,SANDY-CAVE>
<SAND-FUNCTION>))
(T
'(<NULL-F>
<RFALSE>))>
(<VERB? DIG>
<TELL "The ground is too hard for digging here." CR>)>>
<OBJECT GRUE
(LOC GLOBAL-OBJECTS)
(SYNONYM GRUE)
(ADJECTIVE LURKING SINISTER HUNGRY SILENT)
(DESC "lurking grue")
(ACTION GRUE-FUNCTION)>
<ROUTINE GRUE-FUNCTION ()
<COND (<VERB? EXAMINE>
<TELL
"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." CR>)
(<VERB? FIND>
<TELL
"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!" CR>)
(<VERB? LISTEN>
<TELL
"It makes no sound but is always lurking in the darkness nearby." CR>)>>
<OBJECT LUNGS
(LOC GLOBAL-OBJECTS)
(SYNONYM LUNGS AIR MOUTH BREATH)
(DESC "blast of air")
(FLAGS NDESCBIT)>
<OBJECT ME
(LOC GLOBAL-OBJECTS)
(SYNONYM ME MYSELF SELF CRETIN)
(DESC "you")
(FLAGS ACTORBIT ;NARTICLEBIT)
(ACTION CRETIN-FCN)>
<ROUTINE CRETIN-FCN ()
<COND (<VERB? TELL>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<TELL
"Talking to yourself is said to be a sign of impending mental collapse." CR>)
(<AND <VERB? GIVE>
<EQUAL? ,PRSI ,ME>>
<PERFORM ,V?TAKE ,PRSO>
<RTRUE>)
(<VERB? MAKE>
<TELL "Only you can do that." CR>)
(<VERB? DISEMBARK>
<TELL "You'll have to do that on your own." CR>)
(<VERB? EAT>
<TELL "Auto-cannibalism is not the answer." CR>)
(<VERB? ATTACK MUNG>
<COND (<AND ,PRSI <FSET? ,PRSI ,WEAPONBIT>>
<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>
<COND %<COND (<==? ,ZORK-NUMBER 1>
'(<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
%<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)
(DESC "cretin")
(FLAGS NDESCBIT INVISIBLE SACREDBIT ACTORBIT)
(STRENGTH 0)
(ACTION 0)>
<OBJECT PATHOBJ
(LOC GLOBAL-OBJECTS)
(SYNONYM TRAIL PATH)
(ADJECTIVE FOREST NARROW LONG WINDING)
(DESC "passage")
(FLAGS NDESCBIT)
(ACTION PATH-OBJECT)>
<ROUTINE PATH-OBJECT ()
<COND (<VERB? TAKE FOLLOW>
<TELL "You must specify a direction to go." CR>)
(<VERB? FIND>
<TELL "I can't help you there...." CR>)
(<VERB? DIG>
<TELL "Not a chance." CR>)>>
<OBJECT ZORKMID
(LOC GLOBAL-OBJECTS)
(SYNONYM ZORKMID)
(DESC "zorkmid")
(ACTION ZORKMID-FUNCTION)>
<ROUTINE ZORKMID-FUNCTION ()
<COND (<VERB? EXAMINE>
<TELL
"The zorkmid is the unit of currency of the Great Underground Empire." CR>)
(<VERB? FIND>
<TELL
"The best way to find zorkmids is to go out and look for them." CR>)>>
<OBJECT HANDS
(LOC GLOBAL-OBJECTS)
(SYNONYM PAIR HANDS HAND)
(ADJECTIVE BARE)
(DESC "pair of hands")
(FLAGS NDESCBIT TOOLBIT)>
;"status line stuff"
<CONSTANT S-TEXT 0>
<CONSTANT S-WINDOW 1>
<CONSTANT H-NORMAL 0>
<CONSTANT H-INVERSE 1>
<CONSTANT H-BOLD 2>
<CONSTANT H-ITALIC 4>
<CONSTANT D-SCREEN-ON 1>
<CONSTANT D-SCREEN-OFF -1>
<CONSTANT D-PRINTER-ON 2>
<CONSTANT D-PRINTER-OFF -2>
<CONSTANT D-TABLE-ON 3>
<CONSTANT D-TABLE-OFF -3>
<CONSTANT D-RECORD-ON 4>
<CONSTANT D-RECORD-OFF -4>
<GLOBAL HOST:NUMBER 0> "Host machine."
<GLOBAL WIDTH:NUMBER 0> "Width of screen in chars."
;<GLOBAL MIDSCREEN:NUMBER 0> "Center of screen."
;<GLOBAL CWIDTH:NUMBER 0> "Pixel width of characters."
;<GLOBAL CHEIGHT:NUMBER 0> "Pixel height of characters."
<ROUTINE INIT-STATUS-LINE ()
<SETG HOST <LOWCORE INTID>>
;<SETG CWIDTH <LOWCORE (FWRD 0)>>
;<SETG WIDTH </ <LOWCORE HWRD> ,CWIDTH>>
<SETG WIDTH <LOWCORE SCRH>>
<COND (<L? ,WIDTH 38>
<TELL "[Screen too narrow.]" CR>
<QUIT>)>
;<SETG MIDSCREEN <+ </ ,WIDTH 2> 1>>
;<SETG CHEIGHT <LOWCORE (FWRD 1)>>
<SETG OHERE <>>
<SETG OLD-LEN 0>
;<SETG DO-WINDOW <>>
<SPLIT 1>
<SCREEN ,S-WINDOW>
;<BUFOUT <>>
<HLIGHT ,H-INVERSE>
<CURSET 1 1>
;<ERASE 1> ;"This semi by Jeff"
;<PRINT-SPACES <LOWCORE SCRH>>
<PRINT-SPACES ,WIDTH>
<COND (<G? ,WIDTH 75>
<CURSET 1 53>
<TELL "Score:">
<CURSET 1 66>
<TELL "Moves:">)>
;<BUFOUT T>
<HLIGHT ,H-NORMAL>
<SCREEN ,S-TEXT>
<RTRUE>>
<CONSTANT SL-TABLE:TABLE <ITABLE NONE 80>> "status line constructed here"
<GLOBAL OHERE:OBJECT <>>
<GLOBAL OLD-LEN:NUMBER 0>
;<GLOBAL MIDSCREEN:NUMBER 0>
<ROUTINE UPDATE-STATUS-LINE ()
<SCREEN ,S-WINDOW>
;<BUFOUT <>>
<HLIGHT ,H-NORMAL>
<HLIGHT ,H-INVERSE>
<COND (<NOT <EQUAL? ,HERE ,OHERE>>
<SETG OHERE ,HERE>
; <DIROUT ,D-SCREEN-OFF> ; "Screen off."
<DIROUT ,D-TABLE-ON ,SL-TABLE> ; "Table on."
<SAY-HERE>
<DIROUT ,D-TABLE-OFF> ; "Table off."
; <DIROUT ,D-SCREEN-ON> ; "Screen on."
<CURSET 1 2>
<PRINT-SPACES ,OLD-LEN> ; "Erase old HERE desc"
<SETG OLD-LEN <GET ,SL-TABLE 0>> ; "Print new HERE desc."
<CURSET 1 2>
<SAY-HERE>)>
<COND (<G? ,WIDTH 78>
<CURSET 1 ;59 60>
<TELL N ,SCORE " ">
<CURSET 1 73>
<TELL N ,MOVES>)
(T
<DIROUT ,D-TABLE-ON ,SL-TABLE>
<TELL N ,SCORE "/" N ,MOVES>
<DIROUT ,D-TABLE-OFF>
<CURSET 1 <- ,WIDTH <+ <GET ,SL-TABLE 0> 2 ;1>>>
<TELL " " N ,SCORE "/" N ,MOVES>)>
<HLIGHT ,H-NORMAL>
<SCREEN ,S-TEXT> ;"Back to main screen."
<RTRUE>>
<ROUTINE PRINT-SPACES (N)
<REPEAT ()
<COND (<L? <SET N <- .N 1>> 0>
<RTRUE>)
(T
<TELL !\ >)>>
<RTRUE>>
<ROUTINE SAY-HERE ()
<COND (<ZERO? ,LIT?>
<TELL "Darkness">)
(T
<TELL D ,HERE>
<COND (<AND <G? ,WIDTH 75>
<NOT <IN? ,ADVENTURER ,HERE>>>
<TELL ", in the " D <LOC ,ADVENTURER>>)>)>
<RTRUE>>

392
hint-txt.txt Normal file
View file

@ -0,0 +1,392 @@
;"longest hint topic can be 17 chars"
<GLOBAL HINTS
<PLTABLE
<PLTABLE "Above Ground"
<LTABLE 3 "Where do I find a machete?"
"There is none. The game must have SOME limitations. You can't expect to walk to the nearest airport and fly to London to see the British Museum.">
<LTABLE 3 "How do I cross the mountains?"
"Play ZORK II.">
<LTABLE 3 "How do I kill the songbird?"
"What a concept! You need a psychiatrist.">
<LTABLE 3 "Is the nest useful for anything?"
"In China you might make bird's nest soup."
"This is not China."
"In other words, no.">
<LTABLE 3 "How do I safely open the egg?"
"You don't."
"Have you tried saying OPEN EGG?"
"It takes a great deal of manual dexterity and the
proper tools."
"Someone else in the game can do it."
"Only the Thief can open the egg. Give it to him or leave it underground where he will find it.">
<LTABLE 3 "How do I fix the broken canary?"
"It is broken beyond repair."
"No one can fix it. Really!">
<LTABLE 3 "Are the leaves useful for anything?"
"They're great for hiding gratings."
"They can be taken, counted, or burned.">
<LTABLE 3 "I'm lost in the Forest."
"There are actually just four different locations named \"Forest.\" But the connections between them are usually not straight lines. To add to the confusion, there are also two locations named \"Clearing.\""
"From \"Forest Path,\" you can go south to \"North of House\"">
<LTABLE 3 "How do I open the grating?"
"You must unlock it."
"You need the skeleton key."
"It can be unlocked only from below."
"The grating and key can be found in the Maze.">
<LTABLE 3 "How do I get off the house's roof?"
"How did you get up there?"
"Someone from Infocom would love to hear how you did it."
"This is a actually a dummy question. Do not use
the presence or absence of a question on a certain
topic as an indication of what is important.">
<LTABLE 3 "Of what use is the canary?"
"It must be undamaged, of course."
"Something is attracted to its singing."
"It is also a treasure."
"Try winding it in the forest.">
<LTABLE 3 "How do I get the brass bauble?"
"You must open the egg first."
"See the previous question.">
<LTABLE 3 "How do I open the front door?"
"It cannot be knocked down."
"It cannot be destroyed."
"It cannot be opened.">
<LTABLE 3 "How do I get into the house?"
"Have you checked all sides?"
"There's a window in the back which is partly open."
"Open it and climb through.">
<LTABLE 3 "Can I eat the lunch?"
"Try it."
"Try the water, too."
"You can't be afraid to try anything in ZORK I (but it may make sense to SAVE your state first).">
<LTABLE 3 "How do I get into the dungeons?"
"The entrance is in the house."
"Trapdoors can be hidden."
"Move the rug.">
<LTABLE 3 "What is a grue?"
"Type, WHAT IS A GRUE.">>
<PLTABLE "The Cellar Area"
<LTABLE 3 "Can I open the trapdoor from below?"
"No. The only way to keep the trapdoor from closing behind you is to find another exit (other than the chimney, which is very limited).">
<LTABLE 3 "Can I get up the Cellar ramp?"
"The ramp is too slippery to climb."
"Is there a way to make it less slippery?"
"No. You won't ever get up the ramp.">
<LTABLE 3 "How do I negotiate with the Troll?"
"Trolls tend not to be conversational. They require a much more direct approach."
"You won't get past the Troll while he is conscious."
"Kill him with the sword.">
<LTABLE 3 "What do I do with the axe?"
"It can be used as a weapon, but isn't really necessary for anything."
"This space intentionally left blank.">
<LTABLE 3 "What's the studio paint all about?"
"The artist was sloppy.">>
<PLTABLE "The Maze"
<LTABLE 3 "How do I get through the Maze?"
"It is essential that you make a map of the Maze."
"All ten directions are used: N, S, E, W, NE, NW, SE, SW, UP and DOWN."
"Some passages lead back to the same room."
"Rooms can be marked by dropping objects. (However,
the Thief can be a pain.)"
"There are 22 rooms west of the Troll Room.">
<LTABLE 3 "Still, how do I get through the Maze?"
"From the Troll Room to the Grating Room:"
"W. W. W. U. SW. U. D. NE."
"From the Grating Room to the Troll Room:"
"SW. D. E. N. D. N. N. N. E."
"From the Troll Room to the Cyclops Room:"
"W. W. W. U. SW. E. S. SE."
"From the Cyclops Room to the Troll Room:"
"NW. S. W. D. N. N. N. E."
"From the Grating Room to the Cyclops Room:"
"SW. D. E. N. E. S. SE."
"From the Cyclops Room to the Grating Room:"
"NW. S. W. U. D. NE.">
<LTABLE 3 "What do I do with the rusty knife?"
"If you had your sword when you took it, the pulse of blinding light should have served as a warning."
"Try throwing the knife or attacking someone with it.">
<LTABLE 3 "What do I do with the skeleton?"
"Let the dead rest in peace."
"This space intentionally left blank.">
<LTABLE 3 "Can I use the broken lantern?"
"If you think it's useful, there's this bridge you
might be interested in.">
<LTABLE 3 "How do I get past the Cyclops?"
"Fighting isn't always the answer."
"There are two solutions."
"First, the first solution:"
"What happens if you hang around too long, or give something to the Cyclops?"
"He's hungry, isn't he?"
"Feed him the lunch and water."
"Now, the alternative solution:"
"Do you remember your mythology?"
"Take a very close look at the commandment in the black book."
"The Cyclops is scared silly of the name of his father's
nemesis, ODYSSEUS (first letter of each line in commandment -- some computer screens are narrow and make this more difficult to see)."
"The Latin version of the name, ULYSSES, is also accepted."
"For fun, try saying ODYSSEUS elsewhere.">>
<PLTABLE "The Round Room Area"
<LTABLE 3 "How do I get the platinum bar?"
"There are actually two solutions."
"What is causing the loud roar?"
"Is there a way to control the flow of water?"
"Solve the puzzle of the dam."
"Does opening or closing the dam gates affect anything downstream?"
"Open the dam gates."
"Wait until the reservoir is empty, then close the gates."
"Take advantage of the silence in the Loud Room while the reservoir fills."
"Here's the alternative solution:"
"This solution to the Loud Room requires no object or information from elsewhere in the game."
"The solution has something to do with the room's acoustics."
"What happens when you type something ... something
... something?"
"Type ECHO.">
<LTABLE 3 "How do I kill the rock?"
"How silly!"
"The term \"living rock\" is metaphorical, and should not be taken literally.">
<LTABLE 3 "Anything special about the mirror?"
"Breaking it is not a good idea."
"Looking into it can be fun."
"Did you ever try touching or rubbing it?"
"There are two Mirror Rooms."
"Touching the mirror in one transports you to the other.">
<LTABLE 3 "How do I enter Hades?"
"You must exorcise the evil spirits."
"For a hint, turn the page in the black book."
"It requires the bell, book, and candles."
"Ring the bell, light the candles, and read the black book."
"The order in which you perform the ceremony is very important."
"Also, you must be holding the candles when you light them."
"Speed is of the essence, too -- don't waste any more time than is necessary between steps.">
<LTABLE 3 "Can I go down from the Dome Room?"
"Yes."
"It is likely that you have seen the necessary
equipment."
"It is found in the Attic."
"Tie the rope to the railing.">
<LTABLE 3 "Can I go up from the Torch Room?"
"No.">
<LTABLE 3 "How do I get out of the Temple area?"
"You'll never reach the rope."
"You can leave from the altar end by going down, but you \"haven't a prayer\" of getting the coffin down that hole."
"Or solve the puzzle of the granite walls."
"The altar has magical powers."
"What is usually done at altars?"
"Try praying.">>
<PLTABLE "The Dam Area"
<LTABLE 3 "How do I blow up the dam?"
"What a concept!"
"This space intentionally left blank.">
<LTABLE 3 "How is the control panel operated?"
"You can turn the bolt."
"You need the wrench."
"You must activate the panel. (Green bubble lights up).">
<LTABLE 3 "What is the green bubble for?"
"It indicates that the control panel is activated."
"Use the buttons in the Maintenance Room.">
<LTABLE 3 "What do I do with the tube?"
"Read the tube."
"Brushing your teeth with it is not sensible."
"It doesn't oil the bolt well."
"Gooey gunk like this is good for patching leaks in water pipes or boats.">
<LTABLE 3 "What is the screwdriver for?"
"You'll know when the time comes.">
<LTABLE 3 "What about Maintenance Room buttons?"
"Try them all. You should be able to find out."
"The blue button causes a water pipe to burst."
"The red button turns the lights on and off."
"The yellow button activates the control panel at the dam. (The green bubble is now glowing.)"
"The brown bubble deactivates the control panel.">
<LTABLE 3 "Can I stop the leak?"
"Yes, but not with your finger."
"Isn't there some sort of glop you could apply?"
"Use the gunk in the tube.">
<LTABLE 3 "What is the pile of plastic good for?"
"What is the valve for?"
"Did you try blowing into it?"
"You need the air pump, which is north of the Reservoir."
"Solve the dam problem, or figure out the mirror.">>
<PLTABLE "Old Man River"
<LTABLE 3 "Can the river be crossed?"
"Not without a boat.">
<LTABLE 3 "What will placate the River God?"
"What have you tried to throw into the river?"
"There is no River God. Anything thrown in is lost forever.">
<LTABLE 3 "Can I get back across the river?"
"If you launch the boat from Sandy Beach, you can cross the river to the west to White Cliffs South."
"It is also possible to cross the rainbow.">
<LTABLE 3 "How do I control the boat?"
"Read the label."
"You can say BOARD (or GET IN), DISEMBARK (or GET OUT), LAUNCH, and LAND (or a direction towards a landing area). You can also let the current carry you.">
<LTABLE 3 "I popped the boat!"
"Pointy objects can puncture a plastic boat. You should not carry them on. Put them in the boat before boarding or put them into a container, such as the brown sack, first.">
<LTABLE 3 "How do I go over the falls?"
"Just stay in the boat and wait."
"Well, what did you expect?"
"I see no intelligence here."
"By the way, have you ever taken a close look at the word ARAGAIN?">
<LTABLE 3 "Is the rainbow significant?"
"You can cross it and get the pot of gold."
"You do not click your heels together three times while saying \"There's no place like home.\""
"The description of one of the treasures, and the result of manipulating it properly were meant to be subtle hints."
"Raise or wave the sceptre while standing at the end of the rainbow.">
<LTABLE 3 "Can I go through the Damp Cave crack?"
"\"It's too narrow for most insects.\""
"You can't.">
<LTABLE 3 "How do I turn myself into an insect?"
"Build a cocoon?"
"Not bloody likely.">>
<PLTABLE "The Coal Mine Area"
<LTABLE 3 "What do I do about the bat?"
"It's a vampire bat."
"Have you never watched an old horror movie?"
"Use the garlic.">
<LTABLE 3 "How do I get by the Smelly Room?"
"If your lantern battery is dead, forget it.">
<LTABLE 3 "What's the best coal mine route?"
"From the Gas Room to Ladder Top:"
"E. NE. SE. SW. D."
"From Ladder Top to the Gas Room:"
"U. N. E. S. N.">
<LTABLE 3 "Is the basket on the chain useful?"
"Anything in ZORK I is useful.">
<LTABLE 3 "Can I get through the narrow passage?"
"\"You cannot fit through this passage with that load.\""
"Did you try dropping everything?">
<LTABLE 3 "Need a Drafty Room light source?"
"Matches."
"(Well, no one said they would work in a draft.) You can't carry a light source in. There is another way."
"Why might the room be drafty?"
"Did you ever wonder where the shaft with the basket led?"
"Objects, including light sources, can be placed in the basket. The basket can be lowered and raised.">
<LTABLE 3 "What is the timber for?"
"It makes the room more interesting and the adventurer more confused.">
<LTABLE 3 "How do I use the machine?"
"The switch description should remind you of something."
"Try putting something inside and turning the machine on with the screwdriver. Have a dictionary handy."
"You can make a diamond out of coal.">
<LTABLE 3 "What's the Granite Wall about?"
"Evidently the ancient Zorkers did not have strong truth-in-advertising laws. Take nothing for granite.">
<LTABLE 3 "Is the coal good for anything?"
"It is a source of carbon."
"One of the most valuable gems is made of carbon."
"Diamonds are pure carbon in a crystalline form. They are created under tremendous heat and pressure.">
<LTABLE 3 "Is the gas of any use?"
"It's great for blowing up dim-witted adventurers who wander into a coal mine with an open flame.">>
<PLTABLE "The Land Beyond the Chasm"
<LTABLE 3 "How do I cross the chasm?"
"There's no bridge.">
<LTABLE 3 "How do I build a bridge?"
"An interesting idea..."
"The timber might be useful."
"But then again, maybe not."
"A valiant attempt, but this is getting you nowhere.">>
<PLTABLE "General Questions"
<LTABLE 3 "Why does the sword glow?"
"Elvish swords are magical, and glow with a blue light when dangers (particularly dangerous beings) are near.">
<LTABLE 3 "What do I do about the Thief?"
"Discretion is the better part of valor."
"You can almost always avoid a confrontation by walking away. Although you may be robbed, at least you won't be killed.">
<LTABLE 3 "How may total points are there?"
"350. Any time you say QUIT, RESTART, or SCORE, this is pointed out.">
<LTABLE 3 "How do I get out of the dungeons?"
"There are six exits."
"The chimney will allow you to carry one object at a time in addition to your lamp."
"Once you find an exit other than the chimney, the trap door will not close behind you."
"Probably the easiest exit (conceptually) is by way of the grating. You will probably come across the other three exits while solving some of the harder problems, but it is not necessary to find more than one to complete the game.">
<LTABLE 3 "What do the engravings mean?"
"The knowledgeable critic, I.Q. Roundhead, wrote a ten-volume study of the engravings of the ancient Zorkers. To make a long story short, he concluded that the Zorkers were very strange people.">
<LTABLE 3 "How do I kill the Thief?"
"The Thief is a cunning and dangerous opponent, skilled in the martial arts. Novice Zorkers would do well to avoid him."
"It is possible to distract him for one move by giving him something of value."
"The nasty knife is a marginally more effective weapon to use against him."
"As you gain in points, you become a better match.">
<LTABLE 3 "How can I recharge my lamp?"
"What makes you think you can?"
"It is always best to conserve resources. You can prolong its life by turning it off whenever you can and using alternate light sources.">
<LTABLE 3 "What happens when you die?"
"You may appear in the forest with your belongings scattered (valuables below ground, nonvaluables above)."
"You may wander as a spirit until you find a way to resurrect yourself."
"ZORK I is as fair as baseball. Three strikes and you're out."
"You become a spirit if you have visited a certain location before death."
"The location is the altar in the South Temple."
"Try praying at the altar.">
<LTABLE 3 "Who is the \"Other Occupant\"?"
"\"He of the large bag.\""
"The Thief, of course.">
<LTABLE 3 "Where is HELLO SAILOR useful?"
"Are you sure you want to know?"
"Absolutely certain?"
"To quote the black book, Oh ye who go about saying unto each: 'Hello Sailor': Dost thou know the magnitude of thy sin before the gods? ... Surely thou shalt repent of thy cunning."
"Nowhere. (You were warned.)">>
<PLTABLE "More General Questions"
<LTABLE 3 "Objects seem to move or disappear."
"The Thief is constantly moving about."
"There is a high probability that he will take valuable objects (except the gold coffin) which you have seen. There is a much lower probability that he will take a nonvaluable object (again, only if you have seen it), and he may later decide to drop it.">
<LTABLE 3 "Where are my stolen treasures?"
"As the Thief wanders about stealing things, he puts them in his bag. Whenever he stops in his Treasure Room, he drops off the valuables he has collected."
"You can get the contents of the bag by defeating him in a fight."
"The Treasure Room is guarded by the Cyclops.">
<LTABLE 3 "What do I do with the stiletto?"
"Congratulations! Getting the stiletto is rare. If you keep it away from the Thief, he won't attack you."
"It is a weapon, nothing more.">
<LTABLE 3 "Who is the lean and hungry gentleman?"
"The Thief.">
<LTABLE 3 "Where can I use the shovel?"
"It will dig only into very soft soil."
"Try it in the sand."
"The sand in the Sandy Cave is most promising.">
<LTABLE 3 "What's with the granite walls?"
"There are only two true granite walls."
"While next to a real granite wall, you can transport yourself to the location of the other by saying the name of the room."
"The two granite walls are in the Temple and the Treasure Room.">
<LTABLE 3 "What's the best image-caster?"
"What are you talking about?"
"This space intentionally left blank.">
<LTABLE 3 "Can I get into the Strange Passage?"
"This is not necessary to complete the game."
"See the alternative Cyclops answer.">
<LTABLE 3 "How do I get into the Stone Barrow?"
"You'll know when the time comes."
"When you have all 350 points, you'll be able to enter the Barrow.">
<LTABLE 3 "How Points are Scored."
"(Use only as a last resort.)"
"You get 10 points for getting into the house, 25 for getting into the Cellar, 5 for getting past the Troll, 13 for getting to the Drafty Room, and 25 for getting to the Treasure Room."
"These points plus all the treasure points make 350. When you have all 350 points, the twentieth treasure will appear in the case -- a map which leads (indirectly) to 400 more points (ZORK II).">
<LTABLE 3 "Treasures: Their Values, Locations."
"(Use only as a last resort.)"
"(The treasure will be listed, followed by the points for taking it, the points for putting it in the trophy case, then the place it is found.)"
"jewel-encrusted egg - 5 - 5 - in nest in tree"
"clockwork canary - 6 - 4 - in the egg"
"beautiful painting - 4 - 6 - Gallery"
"platinum bar - 10 - 5 - Loud Room"
"ivory torch - 14 - 6 - Torch Room"
"gold coffin - 10 - 15 - Egypt Room"
"Egyptian sceptre - 4 - 6 - in the coffin"
"trunk of jewels - 15 - 5 - Reservoir"
"crystal trident - 4 - 11 - Atlantis Room"
"jade figurine - 5 - 5 - Bat Room"
"sapphire bracelet - 5 - 5 - Gas Room"
"huge diamond - 10 - 10 - you create it"
"bag of coins - 10 - 5 - in the Maze"
"crystal skull - 10 - 10 - Land of Living Dead"
"jeweled scarab - 5 - 5 - buried in Sandy Cave"
"large emerald - 5 - 10 - in the buoy"
"silver chalice - 10 - 5 - Treasure Room"
"pot of gold - 10 - 10 - End of Rainbow"
"brass bauble - 1 - 1 - the songbird has it">
<LTABLE 3 "For Your Amusement"
"(Read only after you've finished the game.)"
"Have you ever:"
"... opened the grating from beneath while the leaves were still on it?"
"... tried swearing at ZORK I?"
"... waved the sceptre while standing on the rainbow?"
"... tried anything nasty with the bodies in Hades?"
"... burned the black book?"
"... damaged the painting?"
"... lit the candles with the torch?"
"... read the matchbook?"
"... tried to take yourself (or the Thief, Troll or Cyclops)?"
"... tried cutting things with the knife or sword?"
"... poured water on something burning?"
"... said WAIT or SCORE while dead (as a spirit)?">>>>

741
hints.zil Normal file
View file

@ -0,0 +1,741 @@
"HINTS for CHEAPO ZORK - (VIA SHERLOCK)
(c) Copyright 1987 Infocom, Inc. All Rights Reserved."
<FILE-FLAGS CLEAN-STACK?>
<GLOBAL HINT-WARNING <>>
<GLOBAL HINTS-OFF <>>
<ROUTINE V-HINT ("AUX" CHR MAXC (C <>) Q WHO)
<COND (,HINTS-OFF
<TELL "Hints have been disabled for this session." CR>
<RFATAL>)
(<NOT ,HINT-WARNING>
<SETG HINT-WARNING T>
<TELL
"[Warning: It is recognized that the temptation for help may at times be so
exceedingly strong that you might fetch hints prematurely. Therefore, you may
at any time during the story type HINTS OFF, and this will disallow the
seeking out of help for the present session of the story. If you still want a
hint now, indicate HINT.]" CR>
<RFATAL>)>
<SET MAXC <GET ,HINTS 0>>
<INIT-HINT-SCREEN>
<CURSET 5 1>
<PUT-UP-CHAPTERS>
<SETG CUR-POS <- ,CHAPT-NUM 1>> ;"ie, 0"
;<SETG CHAPT-NUM 1>
;<CURSET 5 2>
<NEW-CURSOR>
;<PRINTI ">">
<REPEAT ()
<SET CHR <INPUT 1>>
<COND (<EQUAL? .CHR %<ASCII !\Q> %<ASCII !\q>>
<SET Q T>
<RETURN>)
(<EQUAL? .CHR %<ASCII !\N> %<ASCII !\n>>
<COND (<EQUAL? ,CHAPT-NUM .MAXC>
<ERASE-CURSOR>
<SETG CUR-POS 0>
<SETG CHAPT-NUM 1>
<NEW-CURSOR>
<SETG QUEST-NUM 1>)
(T ;<NOT <EQUAL? ,CHAPT-NUM .MAXC>>
<ERASE-CURSOR>
<SETG CUR-POS <+ ,CUR-POS 1>>
<SETG CHAPT-NUM <+ ,CHAPT-NUM 1>>
<NEW-CURSOR>
<SETG QUEST-NUM 1>)>)
(<EQUAL? .CHR %<ASCII !\P> %<ASCII !\p>>
<COND (<EQUAL? ,CHAPT-NUM 1>
<ERASE-CURSOR>
<SETG CHAPT-NUM .MAXC>
<SETG CUR-POS <- ,CHAPT-NUM 1>>
<NEW-CURSOR>
<SETG QUEST-NUM 1>)
(T ;<NOT <EQUAL? ,CHAPT-NUM 1>>
<ERASE-CURSOR>
<SETG CUR-POS <- ,CUR-POS 1>>
<SETG CHAPT-NUM <- ,CHAPT-NUM 1>>
<NEW-CURSOR>
<SETG QUEST-NUM 1>)>)
(<EQUAL? .CHR 13 10>
;<PUTP ,SCENE ,P?SCENE-CUR ,CUR-POS>
<PICK-QUESTION>
<RETURN>)>>
<COND (<NOT .Q>
<AGAIN> ;"AGAIN does whole routine?")>
;<SETG CUR-POS 0>
;<SETG CHAPT-NUM 1>
;<PUTP ,SCENE ,P?SCENE-CUR ,CUR-POS>
<SPLIT 0>
<CLEAR -1>
<INIT-STATUS-LINE>
<RFATAL>>
<ROUTINE PICK-QUESTION ("AUX" CHR MAXQ (Q <>))
<INIT-HINT-SCREEN <>>
<LEFT-LINE 3 " RETURN = see hint" %<LENGTH " RETURN = see hint">>
<RIGHT-LINE 3 "Q = main menu" %<LENGTH "Q = main menu">>
<SET MAXQ <- <GET <GET ,HINTS ,CHAPT-NUM> 0> 1>>
<CURSET 5 1>
<PUT-UP-QUESTIONS>
<SETG CUR-POS <- ,QUEST-NUM 1>>
;<SETG QUEST-NUM 1>
;<CURSET 5 2>
<NEW-CURSOR>
;<PRINTI ">">
<REPEAT ()
<SET CHR <INPUT 1>>
<COND (<EQUAL? .CHR %<ASCII !\Q> %<ASCII !\q>>
<SET Q T>
<RETURN>)
(<EQUAL? .CHR %<ASCII !\N> %<ASCII !\n>>
<COND (<EQUAL? ,QUEST-NUM .MAXQ>
<ERASE-CURSOR>
<SETG CUR-POS 0>
<SETG QUEST-NUM 1>
<NEW-CURSOR>)
(T ;<NOT <EQUAL? ,QUEST-NUM .MAXQ>>
<ERASE-CURSOR>
<SETG CUR-POS <+ ,CUR-POS 1>>
<SETG QUEST-NUM <+ ,QUEST-NUM 1>>
<NEW-CURSOR>)>)
(<EQUAL? .CHR %<ASCII !\P> %<ASCII !\p>>
<COND (<EQUAL? ,QUEST-NUM 1>
<ERASE-CURSOR>
<SETG QUEST-NUM .MAXQ>
<SETG CUR-POS <- ,QUEST-NUM 1>>
<NEW-CURSOR>)
(T
<ERASE-CURSOR>
<SETG CUR-POS <- ,CUR-POS 1>>
<SETG QUEST-NUM <- ,QUEST-NUM 1>>
<NEW-CURSOR>)>)
(<EQUAL? .CHR 13 10>
<DISPLAY-HINT>
<RETURN>)>>
<COND (<NOT .Q>
<AGAIN>)>>
;"zeroth (first) element is 5"
<GLOBAL LINE-TABLE
<PTABLE
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21>>
;"zeroth (first) element is 4"
<GLOBAL COLUMN-TABLE
<PTABLE
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24>>
;"four and nineteen are where the text of questions start"
<GLOBAL CUR-POS 0> ;"determines where to place the highlight cursor
Can go up to 34, that is 17 slots in each row"
<GLOBAL QUEST-NUM 1> ;"shows in HINT-TBL ltable which QUESTION it's on"
<GLOBAL CHAPT-NUM 1> ;"shows in HINT-TBL ltable which CHAPTER it's on"
<ROUTINE ERASE-CURSOR ()
<CURSET <GET ,LINE-TABLE ,CUR-POS>
<- <GET ,COLUMN-TABLE ,CUR-POS> 2 ;1>>
<TELL " "> ;"erase previous highlight cursor">
;"go back 2 spaces from question text, print cursor and flash is between
the cursor and text"
<ROUTINE NEW-CURSOR ()
<CURSET <GET ,LINE-TABLE ,CUR-POS>
<- <GET ,COLUMN-TABLE ,CUR-POS> 2 ;1>>
<TELL ">"> ;"print the new cursor">
<ROUTINE INVERSE-LINE ("AUX" (CENTER-HALF <>))
<HLIGHT ,H-INVERSE>
<PRINT-SPACES <LOWCORE SCRH>>
<HLIGHT ,H-NORMAL>>
;"cnt (3) is where in table answers begin. (2) in table is # of hints-seen"
<ROUTINE DISPLAY-HINT ("AUX" H MX (CNT 3 ;2 ;,HINT-HINTS) CHR (FLG T) N)
<SPLIT 0>
<CLEAR -1>
<SPLIT 3>
<SCREEN ,S-WINDOW>
<CURSET 1 1>
<INVERSE-LINE>
<CENTER-LINE 1 "INVISICLUES (tm)" %<LENGTH "INVISICLUES (tm)">>
<CURSET 3 1>
<INVERSE-LINE>
;<COND (,WIDE
<TELL " ">)>
<LEFT-LINE 3 "RETURN = see new hint">
<RIGHT-LINE 3 "Q = see hint menu" %<LENGTH "Q = see hint menu">>
<CURSET 2 1>
<INVERSE-LINE>
<HLIGHT ,H-BOLD>
<SET H <GET <GET ,HINTS ,CHAPT-NUM> <+ ,QUEST-NUM 1>>>
<CENTER-LINE 2 <GET .H 2 ;1 ;,HINT-QUESTION>>
<HLIGHT ,H-NORMAL>
<SET MX <GET .H 0>>
;<CURSET 5 2> ;"instead of CRLF"
<SCREEN ,S-TEXT>
<CRLF>
<REPEAT ()
<COND (<EQUAL? .CNT <GET .H 1 ;,HINT-SEEN>>
<RETURN>)
(T
<TELL <GET .H .CNT> CR CR>
<SET CNT <+ .CNT 1>>)>>
<REPEAT ()
<COND (<AND .FLG <G? .CNT .MX>>
<SET FLG <>>
<TELL "[That's all.]" CR>)
(.FLG
<SET N <+ <- .MX .CNT> 1>> ;"added +1 - Jeff"
<TELL "[" N .N " hint">
<COND (<NOT <EQUAL? .N 1>>
<TELL "s">)>
<TELL " left.]" CR CR " -> ">
<SET FLG <>>)>
<SET CHR <INPUT 1>>
<COND (<EQUAL? .CHR %<ASCII !\Q> %<ASCII !\q>>
<PUT .H 1 ;,HINT-SEEN .CNT>
;<SETG CUR-POS <GET ,SCENE ,P?SCENE-CUR>>
<RETURN>)
(<EQUAL? .CHR 13 10>
<COND (<NOT <G? .CNT .MX>>
<SET FLG T> ;".cnt starts as 3 ;2"
<TELL <GET .H .CNT>>
<CRLF>
<CRLF>
<SET CNT <+ .CNT 1>>
;<CURSET <+ <* .CNT 2> 1> 2>
;"3rd = line 7, 4th = line 9, ect"
<COND (<G? .CNT .MX>
<SET FLG <>>
<TELL "[That's all.]" CR>
;<CURSET <* .CNT 2> 1>)>)>)>>>
<ROUTINE PUT-UP-QUESTIONS ("AUX" (ST 1) MXQ MXL)
<SET MXQ <- <GET <GET ,HINTS ,CHAPT-NUM> 0> 1>>
<SET MXL <- <LOWCORE SCRV> 1>>
<REPEAT ()
<COND (<G? .ST .MXQ>
;<TELL CR "[Last question]" CR>
<RETURN>)
(T ;"zeroth"
<CURSET <GET ,LINE-TABLE <- .ST 1>>
<- <GET ,COLUMN-TABLE <- .ST 1>> 1>>)
;(<G? .LN .MXL>
<TELL CR "[More questions follow]" CR>
<RETURN <- .ST 1>>)>
<TELL " " <GET <GET <GET ,HINTS ,CHAPT-NUM> <+ .ST 1>> 2 ;1>>
;<CRLF> ;"above curset will do the trick?"
<SET ST <+ .ST 1>>>>
<ROUTINE PUT-UP-CHAPTERS ("AUX" (ST 1) MXC MXL)
<SET MXC <GET ,HINTS 0>>
<SET MXL <- <LOWCORE SCRV> 1>>
<REPEAT ()
<COND (<G? .ST .MXC>
;<TELL CR "[Last chapter]" CR>
<RETURN>)
(T ;"zeroth"
<CURSET <GET ,LINE-TABLE <- .ST 1>>
<- <GET ,COLUMN-TABLE <- .ST 1>> 1>>)
;(<G? .LN .MXL>
<TELL CR "[More chapters follow]" CR>
<RETURN <- .ST 1>>)>
<TELL " " <GET <GET ,HINTS .ST> 1 ;,HINT-QUEST>>
;<CRLF> ;"above curset will do the trick?"
<SET ST <+ .ST 1>>>>
;"longest hint topic can be 17 chars"
<GLOBAL HINTS
<PLTABLE
<PLTABLE "Above Ground"
<LTABLE 3 "Where do I find a machete?"
"There is none. The game must have SOME limitations. You can't expect to walk to the nearest airport and fly to London to see the British Museum.">
<LTABLE 3 "How do I cross the mountains?"
"Play ZORK II.">
<LTABLE 3 "How do I kill the songbird?"
"What a concept! You need a psychiatrist.">
<LTABLE 3 "Is the nest useful for anything?"
"In China you might make bird's nest soup."
"This is not China."
"In other words, no.">
<LTABLE 3 "How do I safely open the egg?"
"You don't."
"Have you tried saying OPEN EGG?"
"It takes a great deal of manual dexterity and the
proper tools."
"Someone else in the game can do it."
"Only the Thief can open the egg. Give it to him or leave it underground where he will find it.">
<LTABLE 3 "How do I fix the broken canary?"
"It is broken beyond repair."
"No one can fix it. Really!">
<LTABLE 3 "Are the leaves useful for anything?"
"They're great for hiding gratings."
"They can be taken, counted, or burned.">
<LTABLE 3 "I'm lost in the Forest."
"There are actually just four different locations named \"Forest.\" But the connections between them are usually not straight lines. To add to the confusion, there are also two locations named \"Clearing.\""
"From \"Forest Path,\" you can go south to \"North of House\"">
<LTABLE 3 "How do I open the grating?"
"You must unlock it."
"You need the skeleton key."
"It can be unlocked only from below."
"The grating and key can be found in the Maze.">
<LTABLE 3 "How do I get off the house's roof?"
"How did you get up there?"
"Someone from Infocom would love to hear how you did it."
"This is a actually a dummy question. Do not use
the presence or absence of a question on a certain
topic as an indication of what is important.">
<LTABLE 3 "Of what use is the canary?"
"It must be undamaged, of course."
"Something is attracted to its singing."
"It is also a treasure."
"Try winding it in the forest.">
<LTABLE 3 "How do I get the brass bauble?"
"You must open the egg first."
"See the previous question.">
<LTABLE 3 "How do I open the front door?"
"It cannot be knocked down."
"It cannot be destroyed."
"It cannot be opened.">
<LTABLE 3 "How do I get into the house?"
"Have you checked all sides?"
"There's a window in the back which is partly open."
"Open it and climb through.">
<LTABLE 3 "Can I eat the lunch?"
"Try it."
"Try the water, too."
"You can't be afraid to try anything in ZORK I (but it may make sense to SAVE your state first).">
<LTABLE 3 "How do I get into the dungeons?"
"The entrance is in the house."
"Trapdoors can be hidden."
"Move the rug.">
<LTABLE 3 "What is a grue?"
"Type, WHAT IS A GRUE.">>
<PLTABLE "The Cellar Area"
<LTABLE 3 "Can I open the trapdoor from below?"
"No. The only way to keep the trapdoor from closing behind you is to find another exit (other than the chimney, which is very limited).">
<LTABLE 3 "Can I get up the Cellar ramp?"
"The ramp is too slippery to climb."
"Is there a way to make it less slippery?"
"No. You won't ever get up the ramp.">
<LTABLE 3 "How do I negotiate with the Troll?"
"Trolls tend not to be conversational. They require a much more direct approach."
"You won't get past the Troll while he is conscious."
"Kill him with the sword.">
<LTABLE 3 "What do I do with the axe?"
"It can be used as a weapon, but isn't really necessary for anything."
"This space intentionally left blank.">
<LTABLE 3 "What's the studio paint all about?"
"The artist was sloppy.">>
<PLTABLE "The Maze"
<LTABLE 3 "How do I get through the Maze?"
"It is essential that you make a map of the Maze."
"All ten directions are used: N, S, E, W, NE, NW, SE, SW, UP and DOWN."
"Some passages lead back to the same room."
"Rooms can be marked by dropping objects. (However,
the Thief can be a pain.)"
"There are 22 rooms west of the Troll Room.">
<LTABLE 3 "Still, how do I get through the Maze?"
"From the Troll Room to the Grating Room:"
"W. W. W. U. SW. U. D. NE."
"From the Grating Room to the Troll Room:"
"SW. D. E. N. D. N. N. N. E."
"From the Troll Room to the Cyclops Room:"
"W. W. W. U. SW. E. S. SE."
"From the Cyclops Room to the Troll Room:"
"NW. S. W. D. N. N. N. E."
"From the Grating Room to the Cyclops Room:"
"SW. D. E. N. E. S. SE."
"From the Cyclops Room to the Grating Room:"
"NW. S. W. U. D. NE.">
<LTABLE 3 "What do I do with the rusty knife?"
"If you had your sword when you took it, the pulse of blinding light should have served as a warning."
"Try throwing the knife or attacking someone with it.">
<LTABLE 3 "What do I do with the skeleton?"
"Let the dead rest in peace."
"This space intentionally left blank.">
<LTABLE 3 "Can I use the broken lantern?"
"If you think it's useful, there's this bridge you
might be interested in.">
<LTABLE 3 "How do I get past the Cyclops?"
"Fighting isn't always the answer."
"There are two solutions."
"First, the first solution:"
"What happens if you hang around too long, or give something to the Cyclops?"
"He's hungry, isn't he?"
"Feed him the lunch and water."
"Now, the alternative solution:"
"Do you remember your mythology?"
"Take a very close look at the commandment in the black book."
"The Cyclops is scared silly of the name of his father's
nemesis, ODYSSEUS (first letter of each line in commandment -- some computer screens are narrow and make this more difficult to see)."
"The Latin version of the name, ULYSSES, is also accepted."
"For fun, try saying ODYSSEUS elsewhere.">>
<PLTABLE "The Round Room Area"
<LTABLE 3 "How do I get the platinum bar?"
"There are actually two solutions."
"What is causing the loud roar?"
"Is there a way to control the flow of water?"
"Solve the puzzle of the dam."
"Does opening or closing the dam gates affect anything downstream?"
"Open the dam gates."
"Wait until the reservoir is empty, then close the gates."
"Take advantage of the silence in the Loud Room while the reservoir fills."
"Here's the alternative solution:"
"This solution to the Loud Room requires no object or information from elsewhere in the game."
"The solution has something to do with the room's acoustics."
"What happens when you type something ... something
... something?"
"Type ECHO.">
<LTABLE 3 "How do I kill the rock?"
"How silly!"
"The term \"living rock\" is metaphorical, and should not be taken literally.">
<LTABLE 3 "Anything special about the mirror?"
"Breaking it is not a good idea."
"Looking into it can be fun."
"Did you ever try touching or rubbing it?"
"There are two Mirror Rooms."
"Touching the mirror in one transports you to the other.">
<LTABLE 3 "How do I enter Hades?"
"You must exorcise the evil spirits."
"For a hint, turn the page in the black book."
"It requires the bell, book, and candles."
"Ring the bell, light the candles, and read the black book."
"The order in which you perform the ceremony is very important."
"Also, you must be holding the candles when you light them."
"Speed is of the essence, too -- don't waste any more time than is necessary between steps.">
<LTABLE 3 "Can I go down from the Dome Room?"
"Yes."
"It is likely that you have seen the necessary
equipment."
"It is found in the Attic."
"Tie the rope to the railing.">
<LTABLE 3 "Can I go up from the Torch Room?"
"No.">
<LTABLE 3 "How do I get out of the Temple area?"
"You'll never reach the rope."
"You can leave from the altar end by going down, but you \"haven't a prayer\" of getting the coffin down that hole."
"Or solve the puzzle of the granite walls."
"The altar has magical powers."
"What is usually done at altars?"
"Try praying.">>
<PLTABLE "The Dam Area"
<LTABLE 3 "How do I blow up the dam?"
"What a concept!"
"This space intentionally left blank.">
<LTABLE 3 "How is the control panel operated?"
"You can turn the bolt."
"You need the wrench."
"You must activate the panel. (Green bubble lights up).">
<LTABLE 3 "What is the green bubble for?"
"It indicates that the control panel is activated."
"Use the buttons in the Maintenance Room.">
<LTABLE 3 "What do I do with the tube?"
"Read the tube."
"Brushing your teeth with it is not sensible."
"It doesn't oil the bolt well."
"Gooey gunk like this is good for patching leaks in water pipes or boats.">
<LTABLE 3 "What is the screwdriver for?"
"You'll know when the time comes.">
<LTABLE 3 "What about Maintenance Room buttons?"
"Try them all. You should be able to find out."
"The blue button causes a water pipe to burst."
"The red button turns the lights on and off."
"The yellow button activates the control panel at the dam. (The green bubble is now glowing.)"
"The brown bubble deactivates the control panel.">
<LTABLE 3 "Can I stop the leak?"
"Yes, but not with your finger."
"Isn't there some sort of glop you could apply?"
"Use the gunk in the tube.">
<LTABLE 3 "What is the pile of plastic good for?"
"What is the valve for?"
"Did you try blowing into it?"
"You need the air pump, which is north of the Reservoir."
"Solve the dam problem, or figure out the mirror.">>
<PLTABLE "Old Man River"
<LTABLE 3 "Can the river be crossed?"
"Not without a boat.">
<LTABLE 3 "What will placate the River God?"
"What have you tried to throw into the river?"
"There is no River God. Anything thrown in is lost forever.">
<LTABLE 3 "Can I get back across the river?"
"If you launch the boat from Sandy Beach, you can cross the river to the west to White Cliffs South."
"It is also possible to cross the rainbow.">
<LTABLE 3 "How do I control the boat?"
"Read the label."
"You can say BOARD (or GET IN), DISEMBARK (or GET OUT), LAUNCH, and LAND (or a direction towards a landing area). You can also let the current carry you.">
<LTABLE 3 "I popped the boat!"
"Pointy objects can puncture a plastic boat. You should not carry them on. Put them in the boat before boarding or put them into a container, such as the brown sack, first.">
<LTABLE 3 "How do I go over the falls?"
"Just stay in the boat and wait."
"Well, what did you expect?"
"I see no intelligence here."
"By the way, have you ever taken a close look at the word ARAGAIN?">
<LTABLE 3 "Is the rainbow significant?"
"You can cross it and get the pot of gold."
"You do not click your heels together three times while saying \"There's no place like home.\""
"The description of one of the treasures, and the result of manipulating it properly were meant to be subtle hints."
"Raise or wave the sceptre while standing at the end of the rainbow.">
<LTABLE 3 "Can I go through the Damp Cave crack?"
"\"It's too narrow for most insects.\""
"You can't.">
<LTABLE 3 "How do I turn myself into an insect?"
"Build a cocoon?"
"Not bloody likely.">>
<PLTABLE "The Coal Mine Area"
<LTABLE 3 "What do I do about the bat?"
"It's a vampire bat."
"Have you never watched an old horror movie?"
"Use the garlic.">
<LTABLE 3 "How do I get by the Smelly Room?"
"If your lantern battery is dead, forget it.">
<LTABLE 3 "What's the best coal mine route?"
"From the Gas Room to Ladder Top:"
"E. NE. SE. SW. D."
"From Ladder Top to the Gas Room:"
"U. N. E. S. N.">
<LTABLE 3 "Is the basket on the chain useful?"
"Anything in ZORK I is useful.">
<LTABLE 3 "Can I get through the narrow passage?"
"\"You cannot fit through this passage with that load.\""
"Did you try dropping everything?">
<LTABLE 3 "Need a Drafty Room light source?"
"Matches."
"(Well, no one said they would work in a draft.) You can't carry a light source in. There is another way."
"Why might the room be drafty?"
"Did you ever wonder where the shaft with the basket led?"
"Objects, including light sources, can be placed in the basket. The basket can be lowered and raised.">
<LTABLE 3 "What is the timber for?"
"It makes the room more interesting and the adventurer more confused.">
<LTABLE 3 "How do I use the machine?"
"The switch description should remind you of something."
"Try putting something inside and turning the machine on with the screwdriver. Have a dictionary handy."
"You can make a diamond out of coal.">
<LTABLE 3 "What's the Granite Wall about?"
"Evidently the ancient Zorkers did not have strong truth-in-advertising laws. Take nothing for granite.">
<LTABLE 3 "Is the coal good for anything?"
"It is a source of carbon."
"One of the most valuable gems is made of carbon."
"Diamonds are pure carbon in a crystalline form. They are created under tremendous heat and pressure.">
<LTABLE 3 "Is the gas of any use?"
"It's great for blowing up dim-witted adventurers who wander into a coal mine with an open flame.">>
<PLTABLE "The Land Beyond the Chasm"
<LTABLE 3 "How do I cross the chasm?"
"There's no bridge.">
<LTABLE 3 "How do I build a bridge?"
"An interesting idea..."
"The timber might be useful."
"But then again, maybe not."
"A valiant attempt, but this is getting you nowhere.">>
<PLTABLE "General Questions"
<LTABLE 3 "Why does the sword glow?"
"Elvish swords are magical, and glow with a blue light when dangers (particularly dangerous beings) are near.">
<LTABLE 3 "What do I do about the Thief?"
"Discretion is the better part of valor."
"You can almost always avoid a confrontation by walking away. Although you may be robbed, at least you won't be killed.">
<LTABLE 3 "How may total points are there?"
"350. Any time you say QUIT, RESTART, or SCORE, this is pointed out.">
<LTABLE 3 "How do I get out of the dungeons?"
"There are six exits."
"The chimney will allow you to carry one object at a time in addition to your lamp."
"Once you find an exit other than the chimney, the trap door will not close behind you."
"Probably the easiest exit (conceptually) is by way of the grating. You will probably come across the other three exits while solving some of the harder problems, but it is not necessary to find more than one to complete the game.">
<LTABLE 3 "What do the engravings mean?"
"The knowledgeable critic, I.Q. Roundhead, wrote a ten-volume study of the engravings of the ancient Zorkers. To make a long story short, he concluded that the Zorkers were very strange people.">
<LTABLE 3 "How do I kill the Thief?"
"The Thief is a cunning and dangerous opponent, skilled in the martial arts. Novice Zorkers would do well to avoid him."
"It is possible to distract him for one move by giving him something of value."
"The nasty knife is a marginally more effective weapon to use against him."
"As you gain in points, you become a better match.">
<LTABLE 3 "How can I recharge my lamp?"
"What makes you think you can?"
"It is always best to conserve resources. You can prolong its life by turning it off whenever you can and using alternate light sources.">
<LTABLE 3 "What happens when you die?"
"You may appear in the forest with your belongings scattered (valuables below ground, nonvaluables above)."
"You may wander as a spirit until you find a way to resurrect yourself."
"ZORK I is as fair as baseball. Three strikes and you're out."
"You become a spirit if you have visited a certain location before death."
"The location is the altar in the South Temple."
"Try praying at the altar.">
<LTABLE 3 "Who is the \"Other Occupant\"?"
"\"He of the large bag.\""
"The Thief, of course.">
<LTABLE 3 "Where is HELLO SAILOR useful?"
"Are you sure you want to know?"
"Absolutely certain?"
"To quote the black book, Oh ye who go about saying unto each: 'Hello Sailor': Dost thou know the magnitude of thy sin before the gods? ... Surely thou shalt repent of thy cunning."
"Nowhere. (You were warned.)">>
<PLTABLE "More General Questions"
<LTABLE 3 "Objects seem to move or disappear."
"The Thief is constantly moving about."
"There is a high probability that he will take valuable objects (except the gold coffin) which you have seen. There is a much lower probability that he will take a nonvaluable object (again, only if you have seen it), and he may later decide to drop it.">
<LTABLE 3 "Where are my stolen treasures?"
"As the Thief wanders about stealing things, he puts them in his bag. Whenever he stops in his Treasure Room, he drops off the valuables he has collected."
"You can get the contents of the bag by defeating him in a fight."
"The Treasure Room is guarded by the Cyclops.">
<LTABLE 3 "What do I do with the stiletto?"
"Congratulations! Getting the stiletto is rare. If you keep it away from the Thief, he won't attack you."
"It is a weapon, nothing more.">
<LTABLE 3 "Who is the lean and hungry gentleman?"
"The Thief.">
<LTABLE 3 "Where can I use the shovel?"
"It will dig only into very soft soil."
"Try it in the sand."
"The sand in the Sandy Cave is most promising.">
<LTABLE 3 "What's with the granite walls?"
"There are only two true granite walls."
"While next to a real granite wall, you can transport yourself to the location of the other by saying the name of the room."
"The two granite walls are in the Temple and the Treasure Room.">
<LTABLE 3 "What's the best image-caster?"
"What are you talking about?"
"This space intentionally left blank.">
<LTABLE 3 "Can I get into the Strange Passage?"
"This is not necessary to complete the game."
"See the alternative Cyclops answer.">
<LTABLE 3 "How do I get into the Stone Barrow?"
"You'll know when the time comes."
"When you have all 350 points, you'll be able to enter the Barrow.">
<LTABLE 3 "How Points are Scored."
"(Use only as a last resort.)"
"You get 10 points for getting into the house, 25 for getting into the Cellar, 5 for getting past the Troll, 13 for getting to the Drafty Room, and 25 for getting to the Treasure Room."
"These points plus all the treasure points make 350. When you have all 350 points, the twentieth treasure will appear in the case -- a map which leads (indirectly) to 400 more points (ZORK II).">
<LTABLE 3 "Treasures: Their Values, Locations."
"(Use only as a last resort.)"
"(The treasure will be listed, followed by the points for taking it, the points for putting it in the trophy case, then the place it is found.)"
"jewel-encrusted egg - 5 - 5 - in nest in tree"
"clockwork canary - 6 - 4 - in the egg"
"beautiful painting - 4 - 6 - Gallery"
"platinum bar - 10 - 5 - Loud Room"
"ivory torch - 14 - 6 - Torch Room"
"gold coffin - 10 - 15 - Egypt Room"
"Egyptian sceptre - 4 - 6 - in the coffin"
"trunk of jewels - 15 - 5 - Reservoir"
"crystal trident - 4 - 11 - Atlantis Room"
"jade figurine - 5 - 5 - Bat Room"
"sapphire bracelet - 5 - 5 - Gas Room"
"huge diamond - 10 - 10 - you create it"
"bag of coins - 10 - 5 - in the Maze"
"crystal skull - 10 - 10 - Land of Living Dead"
"jeweled scarab - 5 - 5 - buried in Sandy Cave"
"large emerald - 5 - 10 - in the buoy"
"silver chalice - 10 - 5 - Treasure Room"
"pot of gold - 10 - 10 - End of Rainbow"
"brass bauble - 1 - 1 - the songbird has it">
<LTABLE 3 "For Your Amusement"
"(Read only after you've finished the game.)"
"Have you ever:"
"... opened the grating from beneath while the leaves were still on it?"
"... tried swearing at ZORK I?"
"... waved the sceptre while standing on the rainbow?"
"... tried anything nasty with the bodies in Hades?"
"... burned the black book?"
"... damaged the painting?"
"... lit the candles with the torch?"
"... read the matchbook?"
"... tried to take yourself (or the Thief, Troll or Cyclops)?"
"... tried cutting things with the knife or sword?"
"... poured water on something burning?"
"... said WAIT or SCORE while dead (as a spirit)?">
;<LTABLE 3 "Words you have not have tried:
HELLO (to Troll, Thief, Cyclops)
ZORK
OIL (lubricate)
XYZZY
WALK AROUND (in forest, outside house, or inside house
PLUGH
FIND (especially with house, hands, teeth, me)
CHOMP
COUNT (candles, leaves, matches)
WIN
MUMBLE (or SIGH)
LISTEN (especially to the Troll, Thief, or Cyclops)
REPENT
WHAT IS (grue, zorkmid,... )
YELL (or SCREAM)
SMELL">>>>
<ROUTINE INIT-HINT-SCREEN ("OPTIONAL" (THIRD T) "AUX" WID LEN)
<SET WID <GETB 0 33>>
<SPLIT 0>
<CLEAR -1>
<SPLIT <- <GETB 0 32> 1>>
<SCREEN ,S-WINDOW>
<CURSET 1 1>
<INVERSE-LINE>
<CURSET 2 1>
<INVERSE-LINE>
<CURSET 3 1>
<INVERSE-LINE>
<CENTER-LINE 1 "INVISICLUES (tm)" 16>
<LEFT-LINE 2 " N = next">
<RIGHT-LINE 2 "P = previous" %<LENGTH "P = previous">>
<COND (<T? .THIRD>
<LEFT-LINE 3 " RETURN = See hint">
<RIGHT-LINE 3 "Q = Resume story" %<LENGTH "Q = Resume story">>)>>
;<CONSTANT HINT-COUNT 0>
;<CONSTANT HINT-QUESTION 1>
;<CONSTANT HINT-SEEN 2>
;<CONSTANT HINT-OFF 3>
;<CONSTANT HINT-HINTS 4>
;<DEFINE NEW-HINT (NAME Q "ARGS" HINTS)
<SETG .NAME 1>
<COND (<G? <LENGTH .Q> 39>
<ERROR QUESTION-TOO-LONG!-ERRORS NEW-HINT .Q>)>
<LTABLE .Q
4
.NAME
!.HINTS>>
;<GLOBAL HINT-FLAG-TBL
<TABLE 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1>>
<ROUTINE CENTER-LINE (LN STR "OPTIONAL" (LEN 0) (INV T))
<COND (<ZERO? .LEN>
<DIROUT ,D-TABLE-ON ,DIROUT-TBL ;,SLINE>
<TELL .STR>
<DIROUT ,D-TABLE-OFF>
<SET LEN <GET ,DIROUT-TBL ;,SLINE 0>>)>
<CURSET .LN <+ </ <- <LOWCORE SCRH> .LEN> 2> 1>>
<COND (.INV
<HLIGHT ,H-INVERSE>)>
<TELL .STR>
<COND (.INV
<HLIGHT ,H-NORMAL>)>>
<ROUTINE LEFT-LINE (LN STR "OPTIONAL" (INV T))
<CURSET .LN 1>
<COND (.INV
<HLIGHT ,H-INVERSE>)>
<TELL .STR>
<COND (.INV
<HLIGHT ,H-NORMAL>)>>
<ROUTINE RIGHT-LINE (LN STR "OPTIONAL" (LEN 0) (INV T))
<COND (<ZERO? .LEN>
<DIROUT 3 ,DIROUT-TBL ;,SLINE>
<TELL .STR>
<DIROUT -3>
<SET LEN <GET ,DIROUT-TBL ;,SLINE 0>>)>
<CURSET .LN <- <LOWCORE SCRH> .LEN>>
<COND (.INV
<HLIGHT ,H-INVERSE>)>
<TELL .STR>
<COND (.INV
<HLIGHT ,H-NORMAL>)>>
<GLOBAL DIROUT-TBL
<TABLE
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>>

316
loop.zil Normal file
View file

@ -0,0 +1,316 @@
"LOOP (formerly generic MAIN) file for
The ZORK Trilogy
started on 7/28/83 by MARC
-- CHEAPO EDITION"
<CONSTANT SERIAL 0>
<GLOBAL PLAYER <>>
<GLOBAL P-WON <>>
<CONSTANT M-FATAL 2>
<CONSTANT M-HANDLED 1>
<CONSTANT M-NOT-HANDLED <>>
<CONSTANT M-OBJECT <>>
<CONSTANT M-BEG 1>
<CONSTANT M-END 6>
<CONSTANT M-ENTER 2>
<CONSTANT M-LOOK 3>
<CONSTANT M-FLASH 4>
<CONSTANT M-OBJDESC 5>
;"GO now lives in SPECIAL.ZIL"
<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? .OCNT> .OCNT)
(<G? .OCNT 1>
<SET TBL ,P-PRSO>
<COND (<0? .ICNT> <SET OBJ <>>)
(T <SET OBJ <GET ,P-PRSI 1>>)>
.OCNT)
(<G? .ICNT 1>
<SET PTBL <>>
<SET TBL ,P-PRSI>
<SET OBJ <GET ,P-PRSO 1>>
.ICNT)
(T 1)>>
<COND (<AND <NOT .OBJ> <1? .ICNT>> <SET OBJ <GET ,P-PRSI 1>>)>
<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>>
<SETG PRSO <>>)
(<NOT ,LIT>
<TELL "It's too dark to see." CR>)
(T
<TELL "It's not clear what you're referring to." CR>
<SET V <>>)>)
(T
<SETG P-NOT-HERE 0>
<SETG P-MULT <>>
<COND (<G? .NUM 1> <SETG P-MULT T>)>
<SET TMP <>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .NUM>
<COND (<G? ,P-NOT-HERE 0>
<TELL "The ">
<COND (<NOT <EQUAL? ,P-NOT-HERE .NUM>>
<TELL "other ">)>
<TELL "object">
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
<TELL "s">)>
<TELL " that you mentioned ">
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
<TELL "are">)
(T <TELL "is">)>
<TELL "n't here." CR>)
(<NOT .TMP>
<TELL
"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>>)>
<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>)>)>>)>
<COND (<NOT <==? .V ,M-FATAL>>
;<COND (<==? <LOC ,WINNER> ,PRSO>
<SETG PRSO <>>)>
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
;<COND (<VERB? ;AGAIN ;"WALK -- why was this here?"
SAVE RESTORE ;SCORE ;VERSION ;WAIT> T)
(T
<SETG L-PRSA ,PRSA>
<SETG L-PRSO ,PRSO>
<SETG L-PRSI ,PRSI>)>
<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 HINT HINTS-OFF VERBOSE
SAVE VERSION
QUIT RESTART SCORE SCRIPT UNSCRIPT RESTORE> T)
(T <SET V <CLOCKER>>)>)>>
<GLOBAL P-MULT <>>
<GLOBAL P-NOT-HERE 0>
%<COND (<GASSIGNED? PREDGEN>
'<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
;<COND (,DEBUG
<TELL "[Perform: ">
%<COND (<GASSIGNED? PREDGEN> '<TELL N .A>)
(T '<PRINC <NTH ,ACTIONS <+ <* .A 2> 1>>>)>
<COND (<AND .O <NOT <==? .A ,V?WALK>>>
<TELL "/" D .O>)>
<COND (.I <TELL "/" D .I>)>
<TELL "]" CR>)>
<SET OA ,PRSA>
<SET OO ,PRSO>
<SET OI ,PRSI>
<COND (<AND <EQUAL? ,IT .I .O>
<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>)>
<COND (<==? .I ,IT> <SET I ,P-IT-OBJECT>)>
<SETG PRSA .A>
<SETG PRSO .O>
<COND (<AND ,PRSO <NOT <EQUAL? ,PRSI ,IT>> <NOT <VERB? WALK>>>
<SETG P-IT-OBJECT ,PRSO>)>
<SETG PRSI .I>
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
<SET V <NOT-HERE-OBJECT-F>>> .V)
(T
<SET O ,PRSO>
<SET I ,PRSI>
<COND
(<SET V <APPLY <GETP ,WINNER ,P?ACTION>>> .V)
(<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-BEG>> .V)
(<SET V <APPLY <GET ,PREACTIONS .A>>> .V)
(<AND .I <SET V <APPLY <GETP .I ,P?ACTION>>>> .V)
(<AND .O
<NOT <==? .A ,V?WALK>>
<LOC .O>
<SET V <APPLY <GETP <LOC .O> ,P?CONTFCN>>>>
.V)
(<AND .O
<NOT <==? .A ,V?WALK>>
<SET V <APPLY <GETP .O ,P?ACTION>>>>
.V)
(<SET V <APPLY <GET ,ACTIONS .A>>> .V)>)>
<SETG PRSA .OA>
<SETG PRSO .OO>
<SETG PRSI .OI>
.V>)
(T
'<PROG ()
<SETG DEBUG <>>
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
#DECL ((A) FIX (O) <OR FALSE OBJECT FIX> (I) <OR FALSE OBJECT> (V) ANY)
<COND (,DEBUG
<TELL "** PERFORM: PRSA = ">
<PRINC <NTH ,ACTIONS <+ <* .A 2> 1>>>
<COND (<AND .O <NOT <==? .A ,V?WALK>>>
<TELL " | PRSO = " D .O>)>
<COND (.I <TELL " | PRSI = " D .I>)>)>
<SET OA ,PRSA>
<SET OO ,PRSO>
<SET OI ,PRSI>
<COND (<AND <EQUAL? ,IT .I .O>
<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>)>
<COND (<==? .I ,IT> <SET I ,P-IT-OBJECT>)>
<SETG PRSA .A>
<SETG PRSO .O>
<COND (<AND ,PRSO <NOT <VERB? WALK>>>
<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)
(T
<SET O ,PRSO>
<SET I ,PRSI>
<COND (<SET V <DD-APPLY "Actor" ,WINNER
<GETP ,WINNER ,P?ACTION>>> .V)
(<SET V <D-APPLY "Room (M-BEG)"
<GETP <LOC ,WINNER> ,P?ACTION>
,M-BEG>> .V)
(<SET V <D-APPLY "Preaction"
<GET ,PREACTIONS .A>>> .V)
(<AND .I <SET V <D-APPLY "PRSI"
<GETP .I ,P?ACTION>>>> .V)
(<AND .O
<NOT <==? .A ,V?WALK>>
<LOC .O>
<GETP <LOC .O> ,P?CONTFCN>
<SET V <DD-APPLY "Container" <LOC .O>
<GETP <LOC .O> ,P?CONTFCN>>>>
.V)
(<AND .O
<NOT <==? .A ,V?WALK>>
<SET V <D-APPLY "PRSO"
<GETP .O ,P?ACTION>>>>
.V)
(<SET V <D-APPLY <>
<GET ,ACTIONS .A>>> .V)>)>
<SETG PRSA .OA>
<SETG PRSO .OO>
<SETG PRSI .OI>
.V>
<DEFINE D-APPLY (STR FCN "OPTIONAL" FOO "AUX" RES)
<COND (<NOT .FCN> <>)
(T
<COND (,DEBUG
<COND (<NOT .STR>
<TELL CR " Default ->" CR>)
(T <TELL CR " " .STR " -> ">)>)>
<SET RES
<COND (<ASSIGNED? FOO>
<APPLY .FCN .FOO>)
(T <APPLY .FCN>)>>
<COND (<AND ,DEBUG .STR>
<COND (<==? .RES 2>
<TELL "Fatal" CR>)
(<NOT .RES>
<TELL "Not handled">)
(T <TELL "Handled" CR>)>)>
.RES)>>
<ROUTINE DD-APPLY (STR OBJ FCN "OPTIONAL" (FOO <>))
<COND (,DEBUG <TELL "[" D .OBJ "=]">)>
<D-APPLY .STR .FCN .FOO>>
>)>

BIN
nzork1.zip Normal file

Binary file not shown.

1474
parser.zil Normal file

File diff suppressed because it is too large Load diff

578
syntax.zil Normal file
View file

@ -0,0 +1,578 @@
"Generic SYNTAX file for
The ZORK Trilogy
started on 7/21/83 by SEM
-- CHEAPO EDITION"
"Buzzwords, Prepositions and Directions"
<BUZZ AGAIN G OOPS>
<BUZZ A AN THE IS AND OF THEN ALL ONE BUT EXCEPT \. \, \" 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>
<SYNONYM ON ONTO>
<SYNONYM UNDER UNDERNEATH BENEATH BELOW>
<SYNONYM NORTH N>
<SYNONYM SOUTH S>
<SYNONYM EAST E>
<SYNONYM WEST W>
<SYNONYM DOWN D>
<SYNONYM UP U>
<SYNONYM NW NORTHWEST>
<SYNONYM NE NORTHEAST>
<SYNONYM SW SOUTHWEST>
<SYNONYM SE SOUTHEAST>
"Game Commands"
<SYNTAX VERBOSE = V-VERBOSE>
<SYNTAX BRIEF = V-BRIEF>
<SYNTAX SUPER = V-SUPER-BRIEF>
<SYNONYM SUPER SUPERBRIEF>
<SYNTAX DIAGNOSE = V-DIAGNOSE>
<SYNTAX INVENTORY = V-INVENTORY>
<SYNONYM INVENTORY I>
<SYNTAX QUIT = V-QUIT>
<SYNONYM QUIT Q>
<SYNTAX RESTART = V-RESTART>
<SYNTAX RESTORE = V-RESTORE>
<SYNTAX SAVE = V-SAVE>
<SYNTAX SCORE = V-SCORE>
<SYNTAX SCRIPT = V-SCRIPT>
<SYNTAX UNSCRIPT = V-UNSCRIPT>
<SYNTAX VERSION = V-VERSION>
<SYNTAX $VERIFY = V-VERIFY>
<SYNTAX \#RANDOM OBJECT = V-RANDOM>
<SYNTAX \#COMMAND = V-COMMAND-FILE>
<SYNTAX \#RECORD = V-RECORD>
<SYNTAX \#UNRECORD = V-UNRECORD>
;<SYNTAX DEBUG = V-DEBUG>
"Real Verbs"
<SYNTAX ACTIVATE OBJECT (FIND LIGHTBIT)
(HELD CARRIED ON-GROUND IN-ROOM) = V-LAMP-ON>
;<SYNTAX AGAIN = V-AGAIN>
;<SYNONYM AGAIN G>
<SYNTAX ANSWER = V-ANSWER>
<SYNTAX ANSWER OBJECT = V-REPLY>
<SYNONYM ANSWER REPLY>
<SYNTAX APPLY OBJECT TO OBJECT = V-PUT PRE-PUT>
<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>
<SYNTAX BACK = V-BACK>
<SYNTAX BLAST = V-BLAST>
<SYNTAX BLOW OUT OBJECT = V-LAMP-OFF>
<SYNTAX BLOW UP OBJECT WITH
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED) = V-INFLATE>
<SYNTAX BLOW UP OBJECT = V-BLAST>
<SYNTAX BLOW IN OBJECT = V-BREATHE>
<SYNTAX BOARD OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
<SYNTAX BRUSH OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-BRUSH>
<SYNTAX BRUSH OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT = V-BRUSH>
<SYNONYM BRUSH CLEAN>
<SYNTAX BUG = V-BUG>
<SYNTAX BURN OBJECT (FIND BURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
= V-BURN PRE-BURN>
<SYNTAX BURN DOWN OBJECT (FIND BURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
= V-BURN PRE-BURN>
<SYNONYM BURN INCINERATE IGNITE>
<SYNTAX CHOMP = V-CHOMP>
<SYNONYM CHOMP LOSE BARF>
<SYNTAX CLIMB UP OBJECT (FIND KLUDGEBIT) = V-CLIMB-UP>
<SYNTAX CLIMB UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX CLIMB DOWN OBJECT (FIND KLUDGEBIT) = 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>
<SYNTAX CLIMB ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX CLIMB WITH OBJECT = V-THROUGH>
<SYNONYM CLIMB SIT>
<SYNTAX CLOSE OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM) = V-CLOSE>
<SYNTAX COMMAND OBJECT (FIND ACTORBIT) = V-COMMAND>
<SYNTAX COUNT OBJECT = V-COUNT>
<SYNTAX CROSS OBJECT = V-CROSS>
<SYNONYM CROSS FORD>
<SYNTAX CUT OBJECT WITH OBJECT (FIND WEAPONBIT) (CARRIED HELD) = V-CUT>
<SYNONYM CUT SLICE PIERCE>
<SYNTAX CURSE = V-CURSES>
<SYNTAX CURSE OBJECT (FIND ACTORBIT) = V-CURSES>
<SYNONYM CURSE SHIT FUCK DAMN>
<SYNTAX DEFLATE OBJECT = V-DEFLATE>
<SYNTAX DESTROY OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
WITH OBJECT (HELD CARRIED TAKE) = V-MUNG PRE-MUNG>
<SYNTAX DESTROY DOWN OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
WITH OBJECT (HELD CARRIED TAKE) = V-MUNG PRE-MUNG>
<SYNTAX DESTROY IN OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-OPEN>
<SYNONYM DESTROY DAMAGE BREAK BLOCK SMASH>
<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>
<SYNTAX DISENCHANT OBJECT = V-DISENCHANT>
<SYNTAX DRINK OBJECT (FIND DRINKBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-DRINK>
<SYNTAX DRINK FROM OBJECT (HELD CARRIED) = V-DRINK-FROM>
<SYNONYM DRINK IMBIBE SWALLOW>
<SYNTAX DROP OBJECT (HELD MANY HAVE) = V-DROP PRE-DROP>
<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>
<SYNTAX EAT OBJECT (FIND FOODBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
= V-EAT>
<SYNONYM EAT CONSUME TASTE BITE>
<SYNTAX ECHO = V-ECHO>
<SYNTAX ENCHANT OBJECT (ON-GROUND IN-ROOM) = V-ENCHANT>
<SYNTAX ENTER = V-ENTER>
<SYNTAX ENTER OBJECT = V-THROUGH>
<SYNTAX EXIT = V-EXIT>
<SYNTAX EXIT OBJECT = V-EXIT>
<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)
= V-LOOK-INSIDE>
<SYNONYM EXAMINE DESCRIBE WHAT WHATS WHAT\'S>
<SYNTAX EXORCISE OBJECT = V-EXORCISE>
<SYNTAX EXORCISE OUT OBJECT (FIND ACTORBIT) = V-EXORCISE>
<SYNTAX EXORCISE AWAY OBJECT (FIND ACTORBIT) = V-EXORCISE>
<SYNONYM EXORCISE BANISH CAST DRIVE BEGONE>
<SYNTAX EXTINGUISH OBJECT (FIND ONBIT)
(HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE) = V-LAMP-OFF>
<SYNONYM EXTINGUISH DOUSE>
<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>
<SYNTAX FIND OBJECT = V-FIND>
<SYNONYM FIND WHERE SEEK SEE>
<SYNTAX FOLLOW = V-FOLLOW>
<SYNTAX FOLLOW OBJECT = V-FOLLOW>
<SYNONYM FOLLOW PURSUE CHASE COME>
<SYNTAX FROBOZZ = V-FROBOZZ>
<SYNTAX GIVE OBJECT (MANY HELD HAVE)
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>
<SYNONYM GIVE DONATE OFFER FEED>
<COND (<N==? ,ZORK-NUMBER 3>
<SYNONYM GIVE HAND>)>
<SYNTAX HATCH OBJECT = V-HATCH>
<SYNTAX HELLO = V-HELLO>
<SYNTAX HELLO OBJECT = V-HELLO>
<SYNONYM HELLO HI>
<SYNTAX HINT = V-HINT>
<SYNTAX HINT OFF OBJECT (FIND KLUDGEBIT) = V-HINTS-OFF>
<VERB-SYNONYM HINT HINTS CLUE>
<SYNTAX INCANT = V-INCANT>
<SYNONYM INCANT CHANT>
<SYNTAX INFLATE 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 JUMP = V-LEAP>
<SYNTAX JUMP OVER OBJECT = V-LEAP>
<SYNTAX JUMP ACROSS OBJECT = V-LEAP>
<SYNTAX JUMP IN OBJECT = V-LEAP>
<SYNTAX JUMP FROM OBJECT = V-LEAP>
<SYNTAX JUMP OFF OBJECT = V-LEAP>
<SYNONYM JUMP LEAP DIVE>
<SYNTAX KICK OBJECT = V-KICK>
<SYNONYM KICK TAUNT>
<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>
<SYNTAX STAB OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-STAB>
<SYNTAX STAB OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-ATTACK>
<SYNTAX KISS OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-KISS>
<SYNTAX KNOCK AT OBJECT = V-KNOCK>
<SYNTAX KNOCK ON OBJECT = V-KNOCK>
<SYNTAX KNOCK DOWN OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
<SYNONYM KNOCK RAP>
<SYNTAX LAUNCH OBJECT (FIND VEHBIT) = V-LAUNCH>
<SYNTAX LEAN ON OBJECT (HELD HAVE) = V-LEAN-ON>
<SYNTAX LEAVE = V-LEAVE>
<SYNTAX LEAVE OBJECT = V-DROP PRE-DROP>
<SYNTAX LIGHT OBJECT (FIND LIGHTBIT)
(HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE) = V-LAMP-ON>
<SYNTAX LIGHT OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (FIND FLAMEBIT) (HELD CARRIED TAKE HAVE) = V-BURN PRE-BURN>
<SYNTAX LISTEN TO OBJECT = V-LISTEN>
<SYNTAX LISTEN FOR OBJECT = V-LISTEN>
<SYNTAX LOCK OBJECT (ON-GROUND IN-ROOM) WITH
OBJECT (FIND TOOLBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE) = V-LOCK>
<SYNTAX LOOK = V-LOOK>
<SYNTAX LOOK AROUND OBJECT (FIND KLUDGEBIT) = V-LOOK>
<SYNTAX LOOK UP OBJECT (FIND KLUDGEBIT) = V-LOOK>
<SYNTAX LOOK DOWN OBJECT (FIND KLUDGEBIT) = V-LOOK>
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-EXAMINE>
<SYNTAX LOOK ON OBJECT = V-LOOK-ON>
<SYNTAX LOOK WITH OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-LOOK-INSIDE>
<SYNTAX LOOK UNDER OBJECT = V-LOOK-UNDER>
<SYNTAX LOOK BEHIND OBJECT = V-LOOK-BEHIND>
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-LOOK-INSIDE>
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT = V-READ PRE-READ>
<SYNTAX LOOK FOR OBJECT = V-FIND>
<SYNONYM LOOK L STARE GAZE>
<SYNTAX LOWER OBJECT = V-LOWER>
<SYNTAX LUBRICATE OBJECT WITH OBJECT (HELD CARRIED) = V-OIL>
<SYNONYM LUBRICATE OIL GREASE>
<SYNTAX MAKE OBJECT = V-MAKE>
<SYNTAX MELT OBJECT
WITH OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM) = V-MELT>
<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>
<SYNTAX NO = V-NO>
<SYNTAX ODYSSEUS = V-ODYSSEUS>
<SYNONYM ODYSSEUS ULYSSES>
<SYNTAX OPEN OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM) = V-OPEN>
<SYNTAX OPEN UP OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-OPEN>
<SYNTAX OPEN OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM) WITH
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE) = V-OPEN>
<SYNTAX PICK OBJECT = V-PICK>
<SYNTAX PICK OBJECT WITH OBJECT = V-PICK>
<SYNTAX PICK UP OBJECT (FIND TAKEBIT) (ON-GROUND MANY) = V-TAKE PRE-TAKE>
<SYNTAX PLAY OBJECT = V-PLAY>
<SYNTAX PLUG OBJECT WITH OBJECT = V-PLUG>
<SYNONYM PLUG GLUE PATCH REPAIR FIX>
<SYNTAX PLUGH = V-ADVENT>
<SYNONYM PLUGH XYZZY>
<SYNTAX POKE OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-MUNG PRE-MUNG>
<SYNTAX PUNCTURE OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-MUNG PRE-MUNG>
<SYNTAX POUR OBJECT (HELD CARRIED) = V-DROP PRE-DROP>
<SYNTAX POUR OBJECT (HELD CARRIED) IN OBJECT = V-DROP PRE-DROP>
<SYNTAX POUR OBJECT (HELD CARRIED) ON OBJECT = V-POUR-ON>
<SYNTAX POUR OBJECT (HELD CARRIED) FROM OBJECT = V-DROP PRE-DROP>
<SYNONYM POUR SPILL>
<SYNTAX PRAY = V-PRAY>
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNTAX PULL ON OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNTAX PULL UP OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNONYM PULL TUG YANK>
<SYNTAX PUMP UP OBJECT = V-PUMP>
<SYNTAX PUMP UP OBJECT WITH OBJECT = V-PUMP>
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND) OBJECT = V-PUSH-TO>
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND) TO OBJECT = V-PUSH-TO>
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND MANY) = V-PUSH>
<SYNTAX PUSH ON OBJECT (IN-ROOM ON-GROUND MANY) = V-PUSH>
<SYNTAX PUSH OBJECT WITH OBJECT (FIND TOOLBIT) = V-TURN PRE-TURN>
<SYNTAX PUSH OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNONYM PUSH PRESS>
<SYNTAX PUT OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX PUT OBJECT (HELD MANY HAVE) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX PUT DOWN OBJECT (HELD MANY) = V-DROP PRE-DROP>
<SYNTAX PUT OBJECT (HELD HAVE) UNDER OBJECT = V-PUT-UNDER>
<SYNTAX PUT OUT OBJECT (FIND ONBIT)
(HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE) = V-LAMP-OFF>
<SYNTAX PUT ON OBJECT (IN-ROOM ON-GROUND CARRIED MANY) = V-WEAR>
<SYNTAX PUT OBJECT (HELD MANY HAVE) BEHIND OBJECT = V-PUT-BEHIND>
<SYNONYM PUT STUFF INSERT PLACE HIDE>
<SYNTAX RAISE OBJECT = V-RAISE>
<SYNTAX RAISE UP OBJECT = V-RAISE>
<SYNONYM RAISE LIFT>
<SYNTAX RAPE OBJECT (FIND ACTORBIT) = V-RAPE>
<SYNONYM RAPE MOLEST>
<SYNTAX READ OBJECT ;(FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
= V-READ PRE-READ>
<SYNTAX READ FROM OBJECT ;(FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
= V-READ PRE-READ>
<SYNTAX READ OBJECT ;(FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
WITH OBJECT = V-READ PRE-READ>
<SYNTAX READ OBJECT ;(FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
OBJECT = V-READ-PAGE>
<SYNONYM READ SKIM>
<SYNTAX REPENT = V-REPENT>
<SYNTAX RING OBJECT (TAKE) = V-RING>
<SYNTAX RING OBJECT (TAKE) WITH OBJECT = V-RING>
<SYNONYM RING PEAL>
<SYNTAX RUB OBJECT = V-RUB>
<SYNTAX RUB OBJECT WITH OBJECT = V-RUB>
<SYNONYM RUB TOUCH FEEL PAT PET>
<SYNTAX TALK TO OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL>
<SYNTAX SAY = V-SAY>
<SYNTAX SEARCH OBJECT = V-SEARCH>
<SYNTAX SEARCH IN OBJECT = V-SEARCH>
<SYNTAX SEARCH FOR OBJECT = V-FIND>
<SYNTAX SEND FOR OBJECT = V-SEND>
<SYNTAX SHAKE OBJECT (HAVE) = V-SHAKE>
<SYNTAX SKIP = V-SKIP>
<SYNONYM SKIP HOP>
;<SYNTAX SLIDE OBJECT = V-PUSH>
<SYNTAX SLIDE OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNTAX SLIDE OBJECT (IN-ROOM ON-GROUND) OBJECT = V-PUSH-TO>
<SYNTAX SLIDE OBJECT (IN-ROOM ON-GROUND) TO OBJECT = V-PUSH-TO>
<SYNTAX SMELL OBJECT = V-SMELL>
<SYNONYM SMELL SNIFF>
<SYNTAX SPIN OBJECT = V-SPIN>
<SYNTAX SPRAY OBJECT ON OBJECT = V-SPRAY>
<SYNTAX SPRAY OBJECT WITH OBJECT = V-SSPRAY>
<SYNTAX SQUEEZE OBJECT = V-SQUEEZE>
<SYNTAX SQUEEZE OBJECT ON OBJECT = V-PUT PRE-PUT>
<SYNTAX STAND = V-STAND>
<SYNTAX STAND UP OBJECT (FIND KLUDGEBIT) = V-STAND>
<SYNTAX STAY = V-STAY>
<SYNTAX STRIKE OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) WITH OBJECT
(FIND WEAPONBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE) = V-ATTACK>
<SYNTAX STRIKE OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-STRIKE>
<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>
<SYNTAX SWING OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
AT OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-SWING>
<SYNONYM SWING THRUST>
<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 KLUDGEBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
<SYNTAX TAKE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX TAKE UP OBJECT (FIND KLUDGEBIT) = V-STAND>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM MANY)
OUT OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM MANY)
OFF OBJECT = V-TAKE PRE-TAKE>
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED MANY)
FROM OBJECT = V-TAKE PRE-TAKE>
<SYNONYM TAKE GET HOLD CARRY REMOVE GRAB CATCH>
<SYNTAX TELL OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL>
<SYNTAX TELL OBJECT (FIND ACTORBIT) (IN-ROOM) ABOUT OBJECT = V-TELL>
<SYNONYM TELL ASK>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE)
AT OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-THROW>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE)
WITH OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-THROW>
<SYNTAX THROW OBJECT OBJECT = V-OVERBOARD>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) IN OBJECT = V-PUT PRE-PUT>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) OFF OBJECT = V-THROW-OFF>
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) OVER OBJECT = V-THROW-OFF>
<SYNONYM THROW HURL CHUCK TOSS>
<SYNTAX TIE OBJECT TO OBJECT = V-TIE>
<SYNTAX TIE UP OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) WITH OBJECT
(FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE) = V-TIE-UP>
<SYNONYM TIE FASTEN SECURE ATTACH>
<SYNTAX TREASURE = V-TREASURE>
<SYNONYM TREASURE TEMPLE>
<SYNTAX TURN OBJECT (FIND TURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (FIND KLUDGEBIT) = 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>
<SYNTAX TURN OFF OBJECT (FIND ONBIT)
(HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE) = V-LAMP-OFF>
<SYNTAX TURN OBJECT (FIND TURNBIT) TO OBJECT = V-TURN PRE-TURN>
<SYNTAX TURN OBJECT (FIND TURNBIT) FOR OBJECT = V-TURN PRE-TURN>
;<SYNTAX TURN OBJECT (FIND TURNBIT) = V-TURN PRE-TURN>
<SYNONYM TURN SET FLIP SHUT>
<SYNTAX UNLOCK OBJECT (ON-GROUND IN-ROOM) WITH OBJECT
(FIND TOOLBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE) = V-UNLOCK>
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-UNTIE>
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
FROM OBJECT = V-UNTIE>
<SYNONYM UNTIE FREE RELEASE UNFASTEN UNATTACH UNHOOK>
<SYNTAX WAIT = V-WAIT>
<SYNONYM WAIT Z>
<SYNTAX WAKE OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-ALARM>
<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>
<SYNTAX WALK WITH OBJECT = V-THROUGH>
<SYNTAX WALK ON OBJECT = V-THROUGH>
<SYNTAX WALK OVER OBJECT = V-LEAP>
<SYNTAX WALK TO OBJECT = V-WALK-TO>
<SYNTAX WALK AROUND OBJECT = V-WALK-AROUND>
<SYNTAX WALK UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX WALK DOWN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNONYM WALK GO RUN PROCEED STEP>
<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>
<SYNTAX WEAR OBJECT = V-WEAR>
<SYNTAX WIN = V-WIN>
<SYNONYM WIN WINNAGE>
<SYNTAX WIND OBJECT = V-WIND>
<SYNTAX WIND UP OBJECT = V-WIND>
<SYNTAX WISH = V-WISH>
<SYNTAX YELL = V-YELL>
<SYNONYM YELL SCREAM SHOUT>
<SYNTAX YES = V-YES>
<SYNONYM YES Y>
<SYNTAX ZORK = V-ZORK>

147
tells.zil Normal file
View file

@ -0,0 +1,147 @@
"TELLS (formerly GMACROS) for
The Zork Trilogy
(c) Copyright 1983 Infocom, Inc. All Rights Reserved
-- CHEAPO EDITION"
<SETG C-ENABLED? 0>
<SETG C-ENABLED 1>
<SETG C-DISABLED 0>
;<ROUTINE DO-CURSET (Y X)
<COND (<EQUAL? 1 ,CWIDTH ,CHEIGHT>
<CURSET .Y .X>
<RFALSE>)
(T
<SET X <* .X ,CWIDTH>>
<CURSET <* .Y ,CHEIGHT> .X>
<RFALSE>)>>
<DEFMAC VERB? ("ARGS" ATMS)
<MULTIFROB PRSA .ATMS>>
<DEFMAC PRSO? ("ARGS" ATMS)
<MULTIFROB PRSO .ATMS>>
<DEFMAC PRSI? ("ARGS" ATMS)
<MULTIFROB PRSI .ATMS>>
<DEFMAC ROOM? ("ARGS" ATMS)
<MULTIFROB HERE .ATMS>>
<DEFINE MULTIFROB (X ATMS "AUX" (OO (OR)) (O .OO) (L ()) ATM)
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .OO 1> <ERROR .X>)
(<LENGTH? .OO 2> <NTH .OO 2>)
(ELSE <CHTYPE .OO FORM>)>>)>
<REPEAT ()
<COND (<EMPTY? .ATMS> <RETURN!->)>
<SET ATM <NTH .ATMS 1>>
<SET L
(<COND (<TYPE? .ATM ATOM>
<FORM GVAL
<COND (<==? .X PRSA>
<PARSE
<STRING "V?"
<SPNAME .ATM>>>)
(ELSE .ATM)>>)
(ELSE .ATM)>
!.L)>
<SET ATMS <REST .ATMS>>
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
<SET O <REST <PUTREST .O (<FORM EQUAL? <FORM GVAL .X> !.L>)>>>
<SET L ()>>>
<DEFMAC BSET ('OBJ "ARGS" BITS)
<MULTIBITS FSET .OBJ .BITS>>
<DEFMAC BCLEAR ('OBJ "ARGS" BITS)
<MULTIBITS FCLEAR .OBJ .BITS>>
<DEFMAC BSET? ('OBJ "ARGS" BITS)
<MULTIBITS FSET? .OBJ .BITS>>
<DEFINE MULTIBITS (X OBJ ATMS "AUX" (O ()) ATM)
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
(<==? .X FSET?> <FORM OR !.O>)
(ELSE <FORM PROG () !.O>)>>)>
<SET ATM <NTH .ATMS 1>>
<SET ATMS <REST .ATMS>>
<SET O
(<FORM .X
.OBJ
<COND (<TYPE? .ATM FORM> .ATM)
(ELSE <FORM GVAL .ATM>)>>
!.O)>>>
<DEFMAC RFATAL ()
'<PROG () <PUSH 2> <RSTACK>>>
<DEFMAC PROB ('BASE? "OPTIONAL" 'LOSER?)
<COND (<ASSIGNED? LOSER?> <FORM ZPROB .BASE?>)
(ELSE <FORM G? .BASE? '<RANDOM 100>>)>>
<ROUTINE ZPROB
(BASE)
<COND (,LUCKY <G? .BASE <RANDOM 100>>)
(ELSE <G? .BASE <RANDOM 300>>)>>
<ROUTINE RANDOM-ELEMENT (FROB)
<GET .FROB <RANDOM <GET .FROB 0>>>>
<ROUTINE PICK-ONE (FROB
"AUX" (L <GET .FROB 0>) (CNT <GET .FROB 1>) RND MSG RFROB)
<SET L <- .L 1>>
<SET FROB <REST .FROB 2>>
<SET RFROB <REST .FROB <* .CNT 2>>>
<SET RND <RANDOM <- .L .CNT>>>
<SET MSG <GET .RFROB .RND>>
<PUT .RFROB .RND <GET .RFROB 1>>
<PUT .RFROB 1 .MSG>
<SET CNT <+ .CNT 1>>
<COND (<==? .CNT .L> <SET CNT 0>)>
<PUT .FROB 0 .CNT>
.MSG>
<DEFMAC ENABLE ('INT) <FORM PUT .INT ,C-ENABLED? 1>>
<DEFMAC DISABLE ('INT) <FORM PUT .INT ,C-ENABLED? 0>>
<DEFMAC FLAMING? ('OBJ)
<FORM AND <FORM FSET? .OBJ ',FLAMEBIT>
<FORM FSET? .OBJ ',ONBIT>>>
<DEFMAC OPENABLE? ('OBJ)
<FORM OR <FORM FSET? .OBJ ',DOORBIT>
<FORM FSET? .OBJ ',CONTBIT>>>
<DEFMAC ABS ('NUM)
<FORM COND (<FORM L? .NUM 0> <FORM - 0 .NUM>)
(T .NUM)>>
<DEFMAC RMGL-SIZE ('TBL)
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
<FORM - <FORM / <FORM PTSIZE .TBL> 2> 1>)
(T <FORM - <FORM PTSIZE .TBL> 1>)>>
;<DEFMAC GET/B ('TBL 'PTR)
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
<FORM GET .TBL .PTR>)
(T <FORM GETB .TBL .PTR>)>>
;<DEFMAC PUT/B ('TBL 'PTR 'OBJ)
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
<FORM PUT .TBL .PTR .OBJ>)
(T <FORM PUTB .TBL .PTR .OBJ>)>>
;<DEFMAC ZMEMQ/B ('OBJ 'TBL "OPT" ('SIZ <>))
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
<COND (<NOT .SIZ>
<FORM ZMEMQ .OBJ .TBL>)
(T <FORM ZMEMQ .OBJ .TBL .SIZ>)>)
(T
<COND (<NOT .SIZ>
<FORM ZMEMQB .OBJ .TBL>)
(T <FORM ZMEMQB .OBJ .TBL .SIZ>)>)>>

2365
verbs.zil Normal file

File diff suppressed because it is too large Load diff

58
zork1.chart Normal file
View file

@ -0,0 +1,58 @@
-date- -rel- -size- -pre- -obj- -glo- -voc-
10/30 1 92942 23492 259 171 688
10/30 2 92950 23524 260 170 689
10/30 3 93090 23554 260 168 689
10/31 4 104640 23554 260 168 689
10/31 5 104756 23554 260 168 689
10/31 6 105424 23554 260 168 689
10/31 7 26117 23554 260 168 689
10/31 8 26117 23554 260 168 689
11/01 9 104096 23554 260 168 689
11/01 10 104144 23554 260 168 689
11/01 11 104144 23554 260 168 689
11/01 12 104144 23554 260 168 689
11/01 13 104096 23554 260 168 689
11/02 14 104108 23559 260 168 690
11/02 15 104104 23559 260 168 690
11/03 16 104136 23559 260 168 690
11/03 17 104132 23559 260 168 690
11/04 18 104120 23559 260 168 690
11/04 19 104124 23559 260 168 690
11/04 20 104124 23559 260 168 690
11/04 21 104124 23559 260 168 690
11/04 22 104124 23559 260 168 690
11/04 23 104124 23559 260 168 690
11/04 24 104124 23559 260 168 690
11/04 25 104148 23559 260 168 690
11/04 26 104152 23559 260 168 690
11/04 27 104148 23559 260 168 690
11/05 28 104140 23559 260 168 690
11/05 29 104136 23559 260 168 690
11/05 30 104124 23559 260 168 690
11/05 31 104144 23579 260 168 692
11/06 32 104164 23579 260 168 692
11/09 33 104152 23579 260 168 692
11/10 34 104180 23579 260 168 692
11/11 35 104240 23581 260 169 692
11/11 36 105064 23581 260 169 692
11/11 35 105068 23581 260 169 692
11/11 35 104392 23579 260 168 692
11/11 35 104392 23579 260 168 692
11/11 36 104400 23579 260 168 692
11/11 36 104364 23579 260 168 692
11/11 37 104360 23579 260 168 692
11/11 38 104360 23579 260 168 692
11/11 39 104360 23579 260 168 692
11/11 40 104484 23579 260 168 692
11/11 41 104388 23579 260 168 692
11/13 42 105032 23579 260 168 692
11/14 43 105204 24669 260 168 692
11/14 44 105204 24669 260 168 692
11/14 45 105204 24669 260 168 692
11/14 46 105204 24669 260 168 692
11/14 47 105268 24669 260 168 692
11/16 48 105276 24669 260 168 692
11/18 49 105216 24665 260 166 692
11/23 50 105260 24665 260 166 692
11/23 51 105264 24665 260 166 692
11/25 52 105264 24665 260 166 692

402
zork1.doc Normal file
View file

@ -0,0 +1,402 @@
<GLOBAL HINTS
<PLTABLE
<PLTABLE "Above Ground"
<PLTABLE "Where do I find a machete?"
"There is none. The game must have SOME limitations. You can't expect to walk to the nearest airport and fly to London to see the British Museum.">
<PLTABLE "How do I cross the mountains?"
"Play ZORK II.">
<PLTABLE "How do I kill the songbird?"
"What a concept! You need a psychiatrist."
"Is the nest useful for anything?"
"In China you might make bird's nest soup."
"This is not China."
"In other words, no.">
<PLTABLE "How do I open the egg without damaging it?"
"You don't."
"Have you tried saying OPEN EGG?"
"It takes a great deal of manual dexterity and the
proper tools."
"Someone else in the game can do it."
"Only the Thief can open the egg. Give it to him or
leave it underground where he will find it.">
<PLTABLE "How do I fix the broken canary?"
"It is broken beyond repair."
"No one can fix it. Really!">
<PLTABLE "Are the leaves useful for anything."
"They're great for hiding gratings."
"They can be taken, counted, or burned.">
<PLTABLE "How do I open the grating?"
"You must unlock it."
"You need the skeleton key."
"It can be unlocked only from below."
"The grating and key can be found in the Maze.">
<PLTABLE "How do I get off the roof of the house?"
"How did you get up there?"
"Someone from Infocom would love to hear how you did it."
"This is a actually a dummy question. Do not use
the presence or absence of a question on a certain
topic as an indication of what is important, and don't
assume that long answers indicate important questions.">
<PLTABLE "Once I have the canary in an undamaged state, what do I do with it?"
"Something is attracted to its singing."
"It is also a treasure."
"Try winding it in the forest.">
<PLTABLE "How do I get the brass bauble?"
"You must open the egg first."
"See the previous question.">
<PLTABLE "How do I open the front door?"
"It cannot be knocked down."
"It cannot be destroyed."
"It cannot be opened.">
<PLTABLE "How do I get into the house?"
"Have you checked all sides?"
"There's a window in the back which is partly open."
"Open it and climb through.">
<PLTABLE "Can I eat the lunch?"
"Try it."
"Try the water, too."
"You can't be afraid to try anything in ZORK I (but it may make sense to SAVE your state first).">
<PLTABLE "How do I get into the dungeons?"
"The entrance is in the house."
"Trapdoors can be hidden."
"Move the rug.">
<PLTABLE "What is a grue?"
"Type, WHAT IS A GRUE.">>
<PLTABLE "The Cellar Area"
<PLTABLE "Can the trapdoor be opened from below?"
"The ramp is too slippery to climb."
"Is there a way to make it less slippery?"
"No. You won't ever get up the ramp.">
<PLTABLE "How do I negotiate with the Troll?"
"Trolls tend not to be conversational. They require a much more direct approach."
"You won't get past the Troll while he is conscious."
"Kill him with the sword.">
<PLTABLE "What do I do with the axe?"
"It can be used as a weapon, but isn't really necessary for anything."
"This space intentionally left blank.">
<PLTABLE "Does the paint in the studio mean anything?"
"The artist was sloppy.">>
<PLTABLE "The Maze"
"How do I get through the Maze?"
"It is essential that you make a map of the Maze."
"All ten directions are used: N, S, E, W, NE, NW, SE, SW, UP and DOWN."
"Some passages lead back to the same room."
"Rooms can be marked by dropping objects. (However,
the Thief can be a pain.)"
"There are 22 rooms west of the Troll Room.">
<PLTABLE "What do I do with the rusty knife?"
"If you had your sword when you took it, the pulse of blinding light should have served as a warning."
"Try throwing the knife or attacking someone with it."
"What do I do with the skeleton?"
"Let the dead rest in peace."
"This space intentionally left blank.">
<PLTABLE "Can I use the broken lantern?"
"If you think it's useful, there's this bridge you
might be interested in.">
<PLTABLE "How do I get past the Cyclops?"
"Fighting isn't always the answer."
"There are two solutions."
"First, the first solution:"
"What happens if you hang around too long, or give some-
thing to the Cyclops?"
"He's hungry, isn't he?"
"Feed him the lunch and water."
"Now, the alternative solution:"
"Do you remember your mythology?"
"Take a very close look at the commandment in the black
book."
"The Cyclops is scared silly of the name of his father's
nemesis, ODYSSEUS (first letter of each line in commandment -- some computer screens are narrow and make this more difficult to see)."
"The Latin version of the name, ULYSSES, is also accepted."
"For fun, try saying ODYSSEUS elsewhere.">
<PLTABLE "The Round Room Area"
<PLTABLE "How do I get the platinum bar?"
"There are actually two solutions."
"What is causing the loud roar?"
"Is there a way to control the flow of water?"
"Solve the puzzle of the dam."
"Does opening or closing the dam gates affect anything downstream?"
"Open the dam gates."
"Wait until the reservoir is empty, then close the gates."
"Take advantage of the silence in the Loud Room while the reservoir fills."
"Here's the alternative solution:"
"This solution to the Loud Room requires no object or information from elsewhere in the game."
"The solution has something to do with the room's acoustics."
"What happens when you type something ... something
... something?"
"Type ECHO.">
<PLTABLE "How do I kill the rock?"
"How silly!"
"The term living rock is metaphorical, and should not be taken literally.">
<PLTABLE "Is there anything special about the mirror?"
"Breaking it is not a good idea."
"Looking into it can be fun."
"Did you ever try touching or rubbing it?"
"There are two Mirror Rooms."
"Touching the mirror in one transports you to the other.">
<PLTABLE "How do I enter Hades?"
"You must exorcise the evil spirits."
"For a hint, turn the page in the black book."
"It requires the bell, book, and candles."
"Ring the bell, light the candles, and read the black book."
"The order in which you perform the ceremony is very important."
"Also, you must be holding the candles when
you light them."
"Speed is fo the essence, too -- don't
waste any more time than is necessary between steps.">
<PLTABLE "Can I get anywhere from the Dome Room?"
"Yes."
"It is likely that you have seen the necessary
equipment."
"It is found in the Attic."
"Tie the rope to the railing.">
<PLTABLE "Can I go up from the Torch Room?"
"No.">
<PLTABLE "How do I get out of the Temple area?"
"You'll never reach the rope."
"You can leave from the altar end by going down, but you haven't a prayer of getting the coffin down that hole."
"Or solve the puzzle of the granite walls."
"The altar has magical powers."
"What is usually done at altars?"
"Try praying.">
<PLTABLE "The Dam Area"
"How do I blow up the dam?"
"What a concept!"
"This space intentionally left blank.">
<PLTABLE "How is the control panel operated?"
"You can turn the bolt."
"You need the wrench."
"You must activate the panel. (Green bubble lights up).">
<PLTABLE "What is the green bubble for?"
"It indicates that the control panel is activated."
"Use the buttons in the Maintenance Room.">
<PLTABLE "What do I do with the object which looks like a tube of toothpaste?"
"Read the tube."
"Brushing you teeth with it is not sensible."
"It doesn't oil the bolt well."
"Gooey gunk like this is good for patching leaks in water pipes or boats.">
<PLTABLE "What is the screwdriver for?"
"You'll know when the time comes.">
<PLTABLE "What do the buttons in the Maintenance Room do?"
"Try them all. You should be able to find out."
"The blue button causes a water pipe to burst."
"The red button turns the lights on and off."
"The yellow button activates the control panel at the dam. (The green bubble is now glowing.)"
"The brown bubble deactivates the control panel.">
<PLTABLE "Can I stop the leak?"
"Yes, but not with your finger?"
"Isn't there some sort of glop you could apply?"
"Use the gunk in the tube.">
<PLTABLE "What is the pile of plastic good for?"
"What is the valve for?"
"Did you try blowing into it?"
"You need the air pump, which is north of the Reservoir."
"Solve the dam problem, or figure out the mirror.">>
<PLTABLE "Old Man River"
<PLTABLE "Can the river be crossed?"
"Not without a boat.">
<PLTABLE "What will placate the River God?"
"What have you tried to throw into the river?"
"There is no River God. Anything thrown in is lost forever.">
<PLTABLE "How do I get back from across the river?"
"If you launch the boat from Sandy Beach, you can cross the river to the west to White Cliffs South."
"It is also possible to cross the rainbow.">
<PLTABLE "How do I control the boat?"
"Read the label."
"You can say BOARD (or GET IN), DISEMBARK (or GET OUT), LAUNCH, and LAND (or a direction towards a landing area). You can also let the current carry you.">
<PLTABLE "How do I carry a pointy object onto the boat?"
"Pointy objects can puncture a plastic boat. You should not carry them on. Put them in the boat before board-ing or put them into a container, such as the brown sack, first.">
<PLTABLE "How do I go over the falls?"
"Just stay in the boat and wait."
"Well, what did you expect?"
"I see no intelligence here."
"By the way, have you ever taken a close look at the word ARAGAIN?">
<PLTABLE "What is the significance of the rainbow?"
"You can cross it and get the pot of gold."
"You do not click you heels together three times while saying \"There's no place like home.\""
"The description of one of the treasures, and the result of manipulating it properly were meant to be subtle hints."
"Raise or wave the sceptre while standing at the end of the rainbow.">
<PLTABLE "How do I get through the crack in the Damp Cave?"
"It is too narrow for most insects."
"You don't.">
<PLTABLE "How do I turn myself into an insect?"
"Build a cocoon?"
"Not bloody likely.">>
<PLTABLE "The Coal Mine Area"
<PLTABLE "What do I do about the bat?"
"It's a vampire bat."
"Have you never watched an old horror movie?"
"Use the garlic.">
<PLTABLE "How do I get beyond the Smelly Room?"
"If your lantern battery is dead, forget it.">
<PLTABLE "How do I find my way through the coal mine?"
"I would think you were an expert maze-mapper by now.">
<PLTABLE "Is the basket on the chain useful?"
"Anything in ZORK I is useful.">
<PLTABLE "How do I get through the narrow passage from the Timber Room?"
"You cannot fit through this passage with that load."
"Did you try dropping everything?">
<PLTABLE "What source of light can I bring into the Drafty Room?"
"Matches."
"(Well, no one said they would work in a draft.) You can't carry a light source in. There is another way."
"Why might the room be drafty?"
"Did you ever wonder where the shaft with the basket led?"
"Objects, including light sources, can be placed in the basket. The basket can be lowered and raised.">
<PLTABLE "What is the timber for?"
"It makes the room more interesting and the adventurer more confused.">
<PLTABLE "How do I use the machine?"
"The switch description should remind you of something."
"Try putting something inside and turning the machine on with the screwdriver. Have a dictionary handy."
"You can make a diamond out of coal.">
<PLTABLE "What is meant by the Granite Wall in the Slide Room?"
"Evidently the ancient Zorkers did not have strong truth-in-advertising laws. Take nothing for granite.">
<PLTABLE "Is the coal good for anything?"
"It is a source of carbon."
"One of the most valuable gems is made of carbon."
"Diamonds are pure carbon in a crystalline form. They are created under tremendous heat and pressure.">
<PLTABLE "Is the gas of any use?"
"It's great for blowing up dim-witted adventurers who wander into a coal mine with an open flame.">>
<PLTABLE "The Land Beyond the Chasm"
<PLTABLE "How do I cross the chasm?"
"There's no bridge.">
<PLTABLE "How do I build a bridge?"
"An interesting idea..."
"The timber might be useful."
"But then again, maybe not."
"A valiant attempt, but this is getting you nowhere.">
<PLTABLE "Why doesn't the magic word plugh work in the land beyond the chasm?"
"A hollow voice says Fool."
"Should nonsense words work anywhere in ZORK I?"
"Do not let the presence or absence of questions, or the lengths of the answers, influence your game.">
<PLTABLE "After the meteor strike activates the long-dormant volcano and destroys the bridge, how do I get back across the chasm?"
"Whew! (That might actually be an interesting addition to the game.)">>
<PLTABLE "General Questions"
<PLTABLE "Why does the sword glow?"
"Elvish swords are magical, and glow with a blue light when dangers (particularly dangerous beings) are near.">
<PLTABLE "What do I do about the Thief?"
"Discretion is the better part of valor."
"You can almost always avoid a confrontation by walking away. Although you may be robbed, at least you won't be killed.">
<PLTABLE "How may points are there in the game?"
"350. Any time you say QUIT, RESTART, or SCORE, this is pointed out.">
<PLTABLE "How do I get out of the dungeons?"
"There are six exits."
"The chimney will allow you to carry one object at a time in addition to your lamp."
"Once you find an exit other than the chimney, the trap door will not close behind you."
"Probably the easiest exit (conceptually) is by way of the grating. You will probably come across the other three exits while solving some of the harder problems, but it is not necessary to find more than one to complete the game.">
<PLTABLE "What is the significance of all the engravings?"
"The knowledgeable critic, I.Q. Roundhead, wrote a ten-volume study of the engravings of the ancient Zorkers. To make a long story short, he concluded that the Zorkers were very strange people.">
<PLTABLE "How do I kill the Thief?"
"The Thief is a cunning and dangerous opponent, skilled in the martial arts. Novice Zorkers would do well to avoid him."
"It is possible to distract him for one move by giving him something of value."
"The nasty knife is a marginally more effective weapon to use against him."
"As you gain in points, you become a better match.">
<PLTABLE "How can I recharge my lamp?"
"What makes you think you can?"
"It is always best to conserve resources. You can prolong its life by turning it off whenever you can and using alternate light sources.">
<PLTABLE "What happens when you die in ZORK I?"
"You may appear in the forest with your belongings scattered (valuables below ground, nonvaluables above)."
"You may wander as a spirit until you find a way to resurrect yourself."
"ZORK I is as fair as baseball. Three strikes and your out."
"You become a spirit if you have visited a certain location before death."
"The location is the altar in the South Temple."
"Try praying at the altar.">
<PLTABLE "Who is the Other Occupant?"
"He of the large bag."
"The Thief, of course.">
<PLTABLE "How do I go over the falls without killing myself?"
"Why not ask, How do I cut off my head without killing myself?">
<PLTABLE "Where is HELLO SAILOR useful?"
"Are you sure you want to know?"
"Absolutely certain?"
"To quote the black book, Oh ye who go about saying unto each: 'Hello Sailor': Dost thou know the magnitude of thy sin before the gods? ... Surely thou shalt repent of thy cunning."
"Nowhere. (You were warned.)">
<PLTABLE "Why do things move and disappear in the dungeon?"
"The Thief is constantly moving about."
"There is a high probability that he will take valuable objects (except the gold coffin) which you have seen. There is a much lower probability that he will take a nonvaluable object (again, only if you have seen it), and he may later decide to drop it.">
<PLTABLE "Where are the treasures the Thief took from me?"
"As he wanders about stealing things, he puts them in his bag. Whenever he stops in his Treasure Room, he drops off the valuables he has collected."
"You can get the contents of the bag by defeating him in a fight."
"The Treasure Room is guarded by the Cyclops.">
<PLTABLE "What do I do with the stiletto?"
"Congratulations! Getting the stiletto is rare. If you keep it away from the Thief, he won't attack you."
"It is a weapon, nothing more.">
<PLTABLE "Who is the lean and hungry gentleman?"
"The Thief.">
<PLTABLE "Where can I use the shovel?"
"It will dig only into very soft soil."
"Try it in the sand."
"The sand in the Sandy Cove is most promising.">
<PLTABLE "Is there any significance to all the granite walls?"
"There are only two true granite walls."
"While next to a real granite wall, you can transport yourself to the location of the other by saying the name of the room."
"The two granite walls ar in the Temple and the Treasure Room.">
<PLTABLE "Which object is best for casting images?"
"What are you talking about?"
"This space intentionally left blank.">
<PLTABLE "How do I get into the Strange Passage?"
"This is not necessary to complete the game."
"See the alternative Cyclops answer.">
<PLTABLE "How do I get into the Stone Barrow?"
"You'll know when the time comes."
"When you have all 350 points, you'll be able to enter the Barrow.">
<PLTABLE "How Points are Scored."
"(Use only as a last resort.)"
"You get 10 points for getting into the house, 25 for getting into the Cellar, 5 for getting past the Troll, 13 for getting to the Drafty Room, and 25 for getting to the Treasure Room."
"These points plus all the treasure points make 350. When you have all 350 points, the twentieth treasure will appear in the case -- a map which leads (indirectly) to 400 more points (ZORK II).">
<PLTABLE "Treasures: Their Values and Locations"
"(Use only as a last resort.)"
"(The treasure will be listed, followed by the points for taking it, the points for putting it in the trophy case, then the place it is found"
"jewel-encrusted egg - 5 - 5 - in nest in tree"
"clockwork canary - 6 - 4 - in the egg"
"beautiful painting - 4 - 6 - Gallery"
"platinum bar - 10 - 5 - Loud Room"
"ivory torch - 14 - 6 - Torch Room"
"gold coffin - 10 - 15 - Egypt Room"
"Egyptian sceptre - 4 - 6 - in the coffin"
"trunk of jewels - 15 - 5 - Reservoir"
"crystal trident - 4 - 11 - Atlantis Room"
"jade figurine - 5 - 5 - Bat Room"
"sapphire bracelet - 5 - 5 - Gas Room"
"huge diamond - 10 - 10 - you create it"
"bag of coins - 10 - 5in the Maze"
"crystal skull - 10 - 10 - Land of Living Dead"
"jeweled scarab - 5 - 5 - buried in Sandy Cave"
"large emerald - 5 - 10 - in the buoy"
"silver chalice - 10 - 5 - Treasure Room"
"pot of gold - 10 - 10 - End of Rainbow"
"brass bauble - 1 - 1 - the songbird has it">
<PLTABLE "For Your Amusement"
"(Read only after you've finished the game.)"
"Have you ever:"
"... opened the grating from beneath while the leaves were still on it?"
"... tried swearing at ZORK I?"
"... waved the sceptre while standing on the rainbow?"
"... tried anything nasty with the bodies in Hades?"
"... burned the black book?"
"... damaged the painting?"
"... lit the candles with the torch?"
"... read the matchbook?"
"... tried to take yourself (or the Thief, Troll or Cyclops)?"
"... tried cutting things with the knife or sword?"
"... poured water on something burning?"
"... said WAIT or SCORE while dead (as a spirit)?">
;<PLTABLE "Words you have not have tried:
HELLO (to Troll, Thief, Cyclops)
ZORK
OIL (lubricate)
XYZZY
WALK AROUND (in forest, outside house, or inside house
PLUGH
FIND (especially with house, hands, teeth, me)
CHOMP
COUNT (candles, leaves, matches)
WIN
MUMBLE (or SIGH)
LISTEN (especially to the Troll, Thief, or Cyclops)
REPENT
WHAT IS (grue, zorkmid,... )
YELL (or SCREAM)
SMELL">>>>

34
zork1.errors Normal file
View file

@ -0,0 +1,34 @@
Assembling ZORK1.ZAP.43 on Wednesday, November 25, 1987 11:58:04
Release: 52
64 Inserting ZORK1FREQ.XZAP.1 (624 bytes)
688 Inserting ZORK1DAT.ZAP.41 (23977 bytes)
24665 Inserting ZORK1PUR.ZAP.41 (1586 bytes)
26251 Inserting TELLS.ZAP.13 (106 bytes)
26357 Inserting DUNGEON.ZAP.17 (230 bytes)
26587 Inserting GLOBALS.ZAP.18 (1419 bytes)
28006 Inserting CLOCK.ZAP.12 (154 bytes)
28160 Inserting LOOP.ZAP.11 (850 bytes)
29010 Inserting PARSER.ZAP.14 (6212 bytes)
35222 Inserting VERBS.ZAP.31 (10773 bytes)
45995 Inserting ACTIONS.ZAP.18 (29673 bytes)
75668 Inserting HINTS.ZAP.19 (1284 bytes)
76952 Inserting ZORK1STR.ZAP.41 (28312 bytes)
Symbols unused:
UNTIE-FROM
BREATHE
CYCLOPS-MELEE
TROLL-MELEE
DEF2A
DEF3C
THIEF-MELEE
260 objects.
166 globals.
692 word vocabulary.
105264 bytes (103K).
24665 bytes of preload.
15166 bytes of impure.
Outputting symbol tables

2
zork1.lowcore Normal file
View file

@ -0,0 +1,2 @@
0

BIN
zork1.pre Normal file

Binary file not shown.

BIN
zork1.pur Normal file

Binary file not shown.

367
zork1.record Normal file
View file

@ -0,0 +1,367 @@
Combined ZIL Compiler Ver 2.0 (MIM)
-----------------------------------
Input file: SS:<ZORK1.CHEAP>ZORK1.ZIL.26
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-$ID
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-HINTS-OFF
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-NO
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-YES
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
Vocabulary: 692
Prepositions: 18
ABOUT AROUND AWAY DOWN FROM OFF OUT TO UP
ACROSS AT BEHIND FOR IN ON OVER UNDER WITH
Real globals: 162
ABOVE-GROUND HINTS P-NCN
AGAIN-DIR HINTS-OFF P-NOT-HERE
AGAIN-LEXV HO-HUM P-NUMBER
ALWAYS-LIT HOST P-OCLAUSE
BASE-SCORE HOUSE-AROUND P-OFLAG
BAT-DROPS HS P-ONEOBJ
BDIGS IN-HOUSE-AROUND P-OTBL
BEACH-DIG INDENTS P-OVTBL
BUOY-FLAG JUMPLOSS P-PRSI
C-DEMONS KITCHEN-WINDOW-FLAG P-PRSO
C-INTS LAMP-TABLE P-SLOCBITS
C-TABLE LIGHT-SHAFT P-SYNTAX
CAGE-TOP LINE-TABLE P-TABLE
CANDLE-TABLE LIT P-VTBL
CHAPT-NUM LLD-FLAG P-WALK-DIR
CLOCK-WAIT LOAD-ALLOWED P-WON
COFFIN-CURE LOAD-MAX P-XADJ
COLUMN-TABLE LOUD-FLAG P-XNAM
CUR-POS LOUD-RUNS PLAYER
CYCLOMAD LOW-TIDE PRSA
CYCLOPS-FLAG LUCKY PRSI
CYCLOPS-MELEE MAGIC-FLAG PRSO
CYCLOWRATH MATCH-COUNT QUEST-NUM
DEAD MIRROR-MUNG QUOTE-FLAG
DEATHS MOVES RAINBOW-FLAG
DEF1 OHERE RESERVE-LEXV
DEF1-RES OLD-LEN RESERVE-PTR
DEF2-RES OOPS-INBUF RIVER-LAUNCH
DEF2A OOPS-TABLE RIVER-NEXT
DEF2B P-AADJ RIVER-SPEEDS
DEF3-RES P-ACLAUSE ROBBER-C-DESC
DEF3A P-ACT ROBBER-U-DESC
DEF3B P-ADJ RUG-MOVED
DEF3C P-ADVERB SCORE
DEFLATE P-ANAM SCORE-MAX
DESC-OBJECT P-AND SING-SONG
DIROUT-TBL P-BUTS SPRAYED?
DOME-FLAG P-CCTBL SUPER-BRIEF
DROWNINGS P-CONT SWIMYUKS
DUMMY P-DIR THIEF-ENGROSSED
EGG-SOLVE P-DIRECTION THIEF-HERE
EMPTY-HANDED P-END-ON-PREP THIEF-MELEE
FALSE-FLAG P-GETFLAGS TROLL-FLAG
FOREST-AROUND P-GWIMBIT TROLL-MELEE
FUMBLE-NUMBER P-INBUF VERBOSE
FUMBLE-PROB P-IT-OBJECT VILLAINS
GATE-FLAG P-ITBL WATER-LEVEL
GATES-OPEN P-LEN WHEEEEE
GRATE-REVEALED P-LEXV WIDTH
GRUNLOCK P-MATCHLEN WINNER
HELLOS P-MERGE WON-FLAG
HERE P-MERGED XB
HERO-MELEE P-MULT XC
HINT-WARNING P-NAM YUKS
Objects: 260
ADVENTURER GAS-ROOM PAINTING
ADVERTISEMENT GATE PATH
ALTAR GHOSTS PATHOBJ
ARAGAIN-FALLS GLOBAL-OBJECTS PEDESTAL
ATLANTIS-ROOM GLOBAL-WATER POT-OF-GOLD
ATTIC GRANITE-WALL PRAYER
ATTIC-TABLE GRATE PUMP
AXE GRATING-CLEARING PUNCTURED-BOAT
BAG-OF-COINS GRATING-ROOM PUTTY
BAR GROUND RAILING
BARROW GRUE RAINBOW
BARROW-DOOR GUIDE RAISED-BASKET
BAT GUNK RED-BUTTON
BAT-ROOM HANDS RESERVOIR
BAUBLE HOT-BELL RESERVOIR-NORTH
BELL IN-STREAM RESERVOIR-SOUTH
BLESSINGS INFLATABLE-BOAT RIVER
BLUE-BUTTON INFLATED-BOAT RIVER-1
BOARD INTDIR RIVER-2
BOARDED-WINDOW INTNUM RIVER-3
BOAT-LABEL IT RIVER-4
BODIES JADE RIVER-5
BOLT KEYS ROOMS
BONES KITCHEN ROPE
BOOK KITCHEN-TABLE ROUND-ROOM
BOTTLE KITCHEN-WINDOW RUG
BRACELET KNIFE RUSTY-KNIFE
BROKEN-CANARY LADDER SAILOR
BROKEN-EGG LADDER-BOTTOM SAND
BROKEN-LAMP LADDER-TOP SANDWICH-BAG
BROWN-BUTTON LAKE SANDY-BEACH
BUBBLE LAMP SANDY-CAVE
BUOY LAND-OF-LIVING-DEAD SCARAB
BURNED-OUT-LANTERN LARGE-BAG SCEPTRE
CANARY LEAK SCREWDRIVER
CANDLES LEAVES SHAFT-ROOM
CANYON-BOTTOM LIVING-ROOM SHORE
CANYON-VIEW LOCAL-GLOBALS SHOVEL
CELLAR LOUD-ROOM SKULL
CHAIN LOWER-SHAFT SLIDE
CHALICE LOWERED-BASKET SLIDE-ROOM
CHASM LUNCH SMALL-CAVE
CHASM-ROOM LUNGS SMELLY-ROOM
CHIMNEY MACHINE SONGBIRD
CLEARING MACHINE-ROOM SOUTH-OF-HOUSE
CLIFF-MIDDLE MACHINE-SWITCH SOUTH-TEMPLE
CLIMBABLE-CLIFF MAILBOX SQUEEKY-ROOM
COAL MAINTENANCE-ROOM STAIRS
COFFIN MAP STILETTO
COLD-PASSAGE MATCH STONE-BARROW
CONTROL-PANEL MAZE-1 STRANGE-PASSAGE
CRACK MAZE-10 STREAM
CYCLOPS MAZE-11 STREAM-VIEW
CYCLOPS-ROOM MAZE-12 STUDIO
DAM MAZE-13 SWORD
DAM-BASE MAZE-14 TEETH
DAM-LOBBY MAZE-15 THIEF
DAM-ROOM MAZE-2 TIMBER-ROOM
DAMP-CAVE MAZE-3 TIMBERS
DEAD-END-1 MAZE-4 TINY-CAVE
DEAD-END-2 MAZE-5 TOOL-CHEST
DEAD-END-3 MAZE-6 TORCH
DEAD-END-4 MAZE-7 TORCH-ROOM
DEAD-END-5 MAZE-8 TRAP-DOOR
DEEP-CANYON MAZE-9 TREASURE-ROOM
DIAMOND ME TREE
DOME MINE-1 TRIDENT
DOME-ROOM MINE-2 TROLL
DOOR-P MINE-3 TROLL-ROOM
EAST-OF-CHASM MINE-4 TROPHY-CASE
EAST-OF-HOUSE MINE-ENTRANCE TRUNK
EGG MIRROR-1 TUBE
EGYPT-ROOM MIRROR-2 TWISTING-PASSAGE
EMERALD MIRROR-ROOM-1 UP-A-TREE
END-OF-RAINBOW MIRROR-ROOM-2 WALL
ENGRAVINGS MOUNTAIN-RANGE WATER
ENGRAVINGS-CAVE MOUNTAINS WEST-OF-HOUSE
ENTRANCE-TO-HADES NAILS WHITE-CLIFF
EW-PASSAGE NARROW-PASSAGE WHITE-CLIFFS-NORTH
FOREST NEST WHITE-CLIFFS-SOUTH
FOREST-1 NORTH-OF-HOUSE WHITE-HOUSE
FOREST-2 NORTH-TEMPLE WINDING-PASSAGE
FOREST-3 NOT-HERE-OBJECT WOODEN-DOOR
FRONT-DOOR NS-PASSAGE WRENCH
GALLERY ON-RAINBOW YELLOW-BUTTON
GARLIC OWNERS-MANUAL ZORKMID
GAS PAINT
Properties: 29
P?ACTION P?DESCFCN P?IN P?NW P?STRENGTH P?UP
P?ADJECTIVE P?DOWN P?LAND P?OUT P?SW P?VALUE
P?ADVFCN P?EAST P?LDESC P?SE P?SYNONYM P?VTYPE
P?CAPACITY P?FDESC P?NE P?SIZE P?TEXT P?WEST
P?CONTFCN P?GLOBAL P?NORTH P?SOUTH P?TVALUE
Flags: 33
ACTORBIT FIGHTBIT MAZEBIT RLANDBIT TAKEBIT VEHBIT
BURNBIT FLAMEBIT NDESCBIT RMUNGBIT TOOLBIT WEAPONBIT
CLIMBBIT FOODBIT NONLANDBIT SACREDBIT TOUCHBIT WEARBIT
CONTBIT INVISIBLE ONBIT SEARCHBIT TRANSBIT
DOORBIT KLUDGEBIT OPENBIT STAGGERED TRYTAKEBIT
DRINKBIT LIGHTBIT READBIT SURFACEBIT TURNBIT

1
zork1.serial Normal file
View file

@ -0,0 +1 @@
60

65
zork1.zil Normal file
View file

@ -0,0 +1,65 @@
"ZORK1 for
Zork I: The Great Underground Empire
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
-- CHEAPO EDITION"
<VERSION XZIP>
<SETG ZORK-NUMBER 1>
<SETG PLUS-MODE T>
<SET REDEFINE T>
<SETG NEW-VOC? T>
<FREQUENT-WORDS?>
<PRINC "Renovated ZORK I: The Great Underground Empire
">
<COND (<GASSIGNED? PREDGEN>
<ID 0>)>
ON!-INITIAL
OFF!-INITIAL ;"makes dubugging possible -pld"
;<PROPDEF DIRECTIONS <>
(DIR TO R:ROOM =
(UEXIT 2) #SEMI "UNCONDITIONAL EXIT"
(REXIT <OBJECT .R>) #SEMI "TO ROOM")
(DIR SORRY S:STRING =
(NEXIT 3) #SEMI "IMPOSSIBLE EXIT"
(NEXITSTR <STRING .S>) #SEMI "FAILURE MESSAGE"
<BYTE 0>)
(DIR S:STRING =
(NEXIT 3) #SEMI "IMPOSSIBLE EXIT"
(NEXITSTR <STRING .S>) #SEMI "FAILURE MESSAGE"
<BYTE 0>)
(DIR PER F:FCN =
(FEXIT 4) #SEMI "CONDITIONAL EXIT"
(FEXITFCN <WORD .F>) #SEMI "PER FUNCTION"
<BYTE 0> <BYTE 0>)
(DIR TO R:ROOM IF F:GLOBAL "OPT" ELSE S:STRING =
(CEXIT 5) #SEMI "CONDITIONAL EXIT"
(REXIT <OBJECT .R>) #SEMI "TO ROOM"
(CEXITFLAG <GLOBAL .F>) #SEMI "IF FLAG IS TRUE"
(CEXITSTR <STRING .S>) #SEMI "FAILURE MESSAGE")
(DIR TO R:ROOM IF O:OBJECT IS OPEN "OPT" ELSE S:STRING =
(DEXIT 6) #SEMI "CONDITIONAL EXIT"
(REXIT <OBJECT .R>) #SEMI "TO ROOM"
(DEXITOBJ <OBJECT .O>) #SEMI "IF DOOR IS OPEN"
(DEXITSTR <STRING .S>) #SEMI "FAILURE MESSAGE")>
<DIRECTIONS NORTH EAST WEST SOUTH NE NW SE SW UP DOWN IN OUT LAND>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 0>
<PROPDEF VALUE 0>
<PROPDEF TVALUE 0>
<INSERT-FILE "TELLS" T>
<INSERT-FILE "SYNTAX" T>
<INSERT-FILE "DUNGEON" T>
<INSERT-FILE "GLOBALS" T>
<INSERT-FILE "CLOCK" T>
<INSERT-FILE "LOOP" T>
<INSERT-FILE "PARSER" T>
<INSERT-FILE "VERBS" T>
<INSERT-FILE "ACTIONS" T>
<INSERT-FILE "HINTS" T>

BIN
zork1.zip Normal file

Binary file not shown.

200
zork1freq.xzap Normal file
View file

@ -0,0 +1,200 @@
.FSTR FSTR?1,"the " ;1572 786
.FSTR FSTR?2,"The " ;1245 415
.FSTR FSTR?3,"You " ;735 245
.FSTR FSTR?4,", " ;529 529
.FSTR FSTR?5,"your " ;474 158
.FSTR FSTR?6,"is " ;466 466
.FSTR FSTR?7,"and " ;456 228
.FSTR FSTR?8,"you " ;412 206
.FSTR FSTR?9,"There " ;395 79
.FSTR FSTR?10,"can't " ;360 72
.FSTR FSTR?11,"of " ;325 325
.FSTR FSTR?12,"to " ;323 323
.FSTR FSTR?13,". " ;299 299
.FSTR FSTR?14,"with " ;294 98
.FSTR FSTR?15,"are " ;272 136
.FSTR FSTR?16,"that " ;258 86
.FSTR FSTR?17,"have " ;231 77
.FSTR FSTR?18,"which " ;224 56
.FSTR FSTR?19,"This " ;216 54
.FSTR FSTR?20,"from " ;204 68
.FSTR FSTR?21,"large " ;204 51
.FSTR FSTR?22,"through " ;180 30
.FSTR FSTR?23,"appears " ;180 30
.FSTR FSTR?24,"in " ;175 175
.FSTR FSTR?25,"here" ;162 81
.FSTR FSTR?26,"water " ;136 34
.FSTR FSTR?27,"room " ;135 45
.FSTR FSTR?28,"Cyclops " ;133 19
.FSTR FSTR?29,"leading " ;132 22
.FSTR FSTR?30,"narrow " ;130 26
.FSTR FSTR?31,"cannot " ;130 26
.FSTR FSTR?32,"small " ;128 32
.FSTR FSTR?33,"into " ;126 42
.FSTR FSTR?34,"cyclops " ;114 19
.FSTR FSTR?35,"his " ;112 56
.FSTR FSTR?36,"thief " ;112 28
.FSTR FSTR?37,"It " ;110 55
.FSTR FSTR?38,"south " ;108 27
.FSTR FSTR?39,"seems " ;108 27
.FSTR FSTR?40,"already " ;108 18
.FSTR FSTR?41,"don't " ;105 21
.FSTR FSTR?42,"be " ;102 102
.FSTR FSTR?43,"but " ;100 50
.FSTR FSTR?44,"would " ;96 24
.FSTR FSTR?45,"Your " ;96 24
.FSTR FSTR?46,"there " ;92 23
.FSTR FSTR?47,"can " ;90 45
.FSTR FSTR?48,"this " ;90 30
.FSTR FSTR?49,"It's " ;90 18
.FSTR FSTR?50,"staircase " ;88 11
.FSTR FSTR?51,"on " ;86 86
.FSTR FSTR?52,"for " ;84 42
.FSTR FSTR?53,"west " ;84 28
.FSTR FSTR?54,"east " ;84 28
.FSTR FSTR?55,"north " ;84 21
.FSTR FSTR?56,"not " ;82 41
.FSTR FSTR?57,"troll " ;80 20
.FSTR FSTR?58,"nothing " ;78 13
.FSTR FSTR?59,"looking " ;78 13
.FSTR FSTR?60,"I " ;72 72
.FSTR FSTR?61,"path " ;72 24
.FSTR FSTR?62,"closed" ;72 18
.FSTR FSTR?63,"candles " ;72 12
.FSTR FSTR?64,"Frigid " ;72 12
.FSTR FSTR?65,"won't " ;70 14
.FSTR FSTR?66,"probably " ;70 10
.FSTR FSTR?67,"here " ;69 23
.FSTR FSTR?68,"Room" ;69 23
.FSTR FSTR?69,"about " ;68 17
.FSTR FSTR?70,"A " ;66 66
.FSTR FSTR?71,"too " ;66 33
.FSTR FSTR?72,"that" ;66 33
.FSTR FSTR?73,"room" ;66 33
.FSTR FSTR?74,"door " ;66 22
.FSTR FSTR?75,"grating " ;66 11
.FSTR FSTR?76,"ground " ;65 13
.FSTR FSTR?77,"out " ;64 32
.FSTR FSTR?78,"other " ;64 16
.FSTR FSTR?79,"wall " ;63 21
.FSTR FSTR?80,"passages " ;63 9
.FSTR FSTR?81,"impossible " ;63 7
.FSTR FSTR?82,"has " ;62 31
.FSTR FSTR?83,"over " ;60 20
.FSTR FSTR?84,"level " ;60 15
.FSTR FSTR?85,"knocks " ;60 12
.FSTR FSTR?86,"before " ;60 12
.FSTR FSTR?87,"passage " ;60 10
.FSTR FSTR?88,"Fortunately" ;60 6
.FSTR FSTR?89,"Unfortunately" ;60 5
.FSTR FSTR?90,"it " ;59 59
.FSTR FSTR?91,"an " ;56 56
.FSTR FSTR?92,"think " ;56 14
.FSTR FSTR?93,"river " ;56 14
.FSTR FSTR?94,"troll's " ;56 8
.FSTR FSTR?95,"doesn't " ;56 8
.FSTR FSTR?96,"You're " ;56 8
;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