xref: /csrg-svn/contrib/dungeon/dungeon.doc (revision 35973)
1*35973SbosticTo:	Dungeon Players
2*35973SbosticFrom:	"The Translator"
3*35973SbosticSubj:	Game Information
4*35973SbosticDate:	8-OCT-80, 6-dec-85
5*35973Sbostic
6*35973Sbostic
7*35973SbosticThis is the first (and last) source release of the PDP-11 version of
8*35973SbosticDungeon.
9*35973Sbostic
10*35973SbosticPlease note that Dungeon has been superceded by the game ZORK(tm).
11*35973SbosticThe following is an extract from the new product announcement for
12*35973SbosticZORK in the September, 1980 issue of the RT-11 SIG newsletter:
13*35973Sbostic
14*35973Sbostic  "'ZORK:  The Great Underground Empire - Part I' ...was developed
15*35973Sbostic   by the original authors based on their ZORK (Dungeon) game for
16*35973Sbostic   the PDP-10.  It features a greatly improved parser;  command
17*35973Sbostic   input and transcript output files;  SAVEs to any device and
18*35973Sbostic   file name;  and adaptation to different terminal types,
19*35973Sbostic   including a status line on VT100s.  Note:  this is not the
20*35973Sbostic   FORTRAN version that has been available through DECUS.  This
21*35973Sbostic   version has been completely rewritten to run efficiently on
22*35973Sbostic   small machines - up to 10 times as fast as the DECUS version.
23*35973Sbostic
24*35973Sbostic   ...ZORK runs under RT-ll, HT-ll, or RSTS/E and requires as
25*35973Sbostic   little as 20K words of memory and a single floppy disk drive.
26*35973Sbostic   The game package, consisting of an RX01-format diskette and
27*35973Sbostic   an instruction booklet, is available from Infocom, Inc.,
28*35973Sbostic   P.O. Box 120, Kendall Station, Cambridge, Ma. 02142."
29*35973Sbostic
30*35973SbosticZORK(tm) is a trademark of Infocom, Inc.  It is available for several
31*35973Sbosticpopular personal computers as well as for the PDP-ll.
32*35973Sbostic
33*35973Sbostic
34*35973Sbostic1.  Components
35*35973Sbostic
36*35973SbosticDungeon is a maze-solving game for solitaire play.  It runs on any PDP-11
37*35973Sbostic(with 28KW of memory or more) or VAX-11.
38*35973Sbostic
39*35973SbosticThe following compile and run information does not apply to the
40*35973Sbosticf77/Unix implementation.  See the README file for information on
41*35973Sbosticcompilation.
42*35973Sbostic
43*35973SbosticDungeon consists of the following files:
44*35973Sbostic
45*35973Sbostic
46*35973Sbostic	all operating systems
47*35973Sbostic	---------------------
48*35973Sbostic
49*35973Sbostic	DMAIN.FTN			-program root
50*35973Sbostic	DGAME.FTN			-main routine
51*35973Sbostic	DSUB.FTN			-resident subroutines
52*35973Sbostic	DINIT.FTN			-initialization routine
53*35973Sbostic	NP.FOR				-parser, part 0
54*35973Sbostic	NP1.FOR				-parser, part 1
55*35973Sbostic	NP2.FOR				-parser, part 2
56*35973Sbostic	NP3.FOR				-parser, part 3
57*35973Sbostic	GDT.FTN				-game debugging tool
58*35973Sbostic	VERBS.FTN			-principal verbs
59*35973Sbostic	OBJCTS.FTN			-principal objects
60*35973Sbostic	SVERBS.FTN			-simple verbs
61*35973Sbostic	DVERB1.FTN			-auxiliary verbs, part 1
62*35973Sbostic	DVERB2.FTN			-auxiliary verbs, part 2
63*35973Sbostic	all operating systems (continued)
64*35973Sbostic	---------------------------------
65*35973Sbostic
66*35973Sbostic	ACTORS.FTN			-character processors
67*35973Sbostic	DEMONS.FTN			-demon processors
68*35973Sbostic	CLOCKR.FTN			-clock event processors
69*35973Sbostic	ROOMS.FOR			-room processors
70*35973Sbostic	NROOMS.FOR			-new room processors
71*35973Sbostic	SOBJS.FOR			-simple objects
72*35973Sbostic	NOBJS.FOR			-new objects
73*35973Sbostic	BALLOP.FOR			-balloon processor
74*35973Sbostic	LIGHTP.FOR			-light processors
75*35973Sbostic	VILLNS.FOR			-villain processors
76*35973Sbostic	DSO1.FOR			-overlaid subroutines, part 1
77*35973Sbostic	DSO2.FOR			-overlaid subroutines, part 2
78*35973Sbostic	DSO3.FOR			-overlaid subroutines, part 3
79*35973Sbostic	DSO4.FOR			-overlaid subroutines, part 4
80*35973Sbostic	DSO5.FOR			-overlaid subroutines, part 5
81*35973Sbostic	DSO6.FOR			-overlaid subroutines, part 6
82*35973Sbostic	DSO7.FOR			-overlaid subroutines, part 7
83*35973Sbostic	DINDX.DAT			-initialization data base
84*35973Sbostic	DTEXT.DAT			-main data base [binary file]
85*35973Sbostic	DUNGEO.DOC			-this file
86*35973Sbostic
87*35973Sbostic
88*35973Sbostic	RT11 only
89*35973Sbostic	---------
90*35973Sbostic
91*35973Sbostic	RTTIM.FOR			-time subroutine
92*35973Sbostic	RRND.MAC			-random number generator
93*35973Sbostic	RTCMP.COM			-compile command file
94*35973Sbostic	RTBLD.COM			-link command file
95*35973Sbostic
96*35973Sbostic
97*35973Sbostic	RSTS/E only
98*35973Sbostic	-----------
99*35973Sbostic
100*35973Sbostic	RTTIM.FOR			-time subroutine
101*35973Sbostic	RRND.MAC			-random number generator
102*35973Sbostic	RSTSCB.CTL			-compile/build batch file
103*35973Sbostic
104*35973Sbostic
105*35973Sbostic	RSX11M, RSX11M+ only
106*35973Sbostic	--------------------
107*35973Sbostic
108*35973Sbostic	RSXTIM.MAC			-time subroutine
109*35973Sbostic	RRND.MAC			-random number generator
110*35973Sbostic	RSXCMP.CMD			-compile command file
111*35973Sbostic	RSXBLD.CMD			-task build command file
112*35973Sbostic	D.ODL				-overlay descriptor file
113*35973Sbostic
114*35973Sbostic
115*35973Sbostic	VMS only
116*35973Sbostic	--------
117*35973Sbostic
118*35973Sbostic	VMSTIM.FOR			-time subroutine
119*35973Sbostic	VMSRND.MAC			-random number generator
120*35973Sbostic	VMSCMP.COM			-compile command file
121*35973Sbostic	VMSBLD.COM			-link command file
122*35973Sbostic2.  Installation Instructions, RT11
123*35973Sbostic
124*35973SbosticBefore starting, please note that:
125*35973Sbostic
126*35973Sbostic  - Dungeon requires RT11 V3 or later.
127*35973Sbostic
128*35973Sbostic  - Dungeon requires Fortran-IV V2 or later, threaded code option.
129*35973Sbostic
130*35973Sbostic  - Dungeon requires 26KW of user memory (runs under SJ monitor only).
131*35973Sbostic
132*35973Sbostic  - All files (source and object) must reside on the same disk
133*35973Sbostic    (at least 2500 disk blocks are needed).
134*35973Sbostic
135*35973Sbostic  - Dungeon does not require EIS or floating point.
136*35973Sbostic
137*35973SbosticExcept for DTEXT.DAT, all files in the distribution kit are ASCII.
138*35973SbosticDTEXT.DAT is a binary file consisting of 76-byte fixed length records.
139*35973SbosticIf the distribution kit consists of RT11-compatible media, then PIP
140*35973Sbosticcan be used to transfer the files.  If the distribution kit consists
141*35973Sbosticof DOS-compatible media, then FILEX must be used to transfer the files.
142*35973SbosticThe /I switch (image binary) must be used to transfer DTEXT.DAT;  the
143*35973Sbostic/A (ASCII) switch should be used to transfer the other files.
144*35973Sbostic
145*35973SbosticTo compile Dungeon, issue the following command:
146*35973Sbostic
147*35973Sbostic  .@RTCMP(cr)
148*35973Sbostic
149*35973SbosticSeveral of the compilations will produce warning messages, but none
150*35973Sbosticshould produce a fatal error.
151*35973Sbostic
152*35973SbosticTo link the compiled sources, issue the following command:
153*35973Sbostic
154*35973Sbostic  .@RTBLD(cr)
155*35973Sbostic
156*35973SbosticThe command file assumes that the Fortran-IV object time library has
157*35973Sbosticbeen merged into the system library.  If this is not the case, edit
158*35973SbosticRTBLD.COM and add switch /LINKLIBRARY:FORLIB.OBJ to the first command
159*35973Sbosticline.
160*35973Sbostic
161*35973SbosticIt is now possible to run Dungeon:
162*35973Sbostic
163*35973Sbostic  .R DUNGEO(cr)
164*35973Sbostic
165*35973SbosticWhen invoked, Dungeon takes no more than 5-10 seconds to start up.
166*35973Sbostic
167*35973SbosticNotes on the executable program:
168*35973Sbostic
169*35973Sbostic  - The only files needed to execute Dungeon are DUNGEO.SAV,
170*35973Sbostic    DINDX.DAT, and DTEXT.DAT.  All other files can be deleted.
171*35973Sbostic
172*35973Sbostic  - Files DINDX.DAT and DTEXT.DAT must reside on logical device SY:
173*35973Sbostic    (this can be changed with a source edit, see section 8).
174*35973Sbostic3.  Installation Instructions, RSTS/E
175*35973Sbostic
176*35973SbosticBefore starting, please note that:
177*35973Sbostic
178*35973Sbostic  - Dungeon requires RSTS/E V6C or later.
179*35973Sbostic
180*35973Sbostic  - Dungeon requires Fortran-IV V2 or later, threaded code option
181*35973Sbostic    (operation under Fortran-IV-Plus V2.5 or later will probably
182*35973Sbostic    work but is not supported).
183*35973Sbostic
184*35973Sbostic  - Dungeon requires 28KW of user memory.
185*35973Sbostic
186*35973Sbostic  - All files (source and object) must reside in the same user area
187*35973Sbostic    (at least 2500 disk blocks are needed).
188*35973Sbostic
189*35973Sbostic  - Dungeon does not require EIS or floating point.
190*35973Sbostic
191*35973SbosticExcept for DTEXT.DAT, all files in the distribution kit are ASCII.
192*35973SbosticDTEXT.DAT is a binary file consisting of 76-byte fixed length records.
193*35973SbosticIf the distribution kit consists of RT11- or DOS-compatible disks,
194*35973Sbosticthen FIT can be used to transfer the files.  For example (RT11 disk):
195*35973Sbostic
196*35973Sbostic  RUN $FIT(cr)
197*35973Sbostic  FIT>*.*/RSTS=DK:*.*/RT11(cr)
198*35973Sbostic  FIT>^Z
199*35973Sbostic
200*35973SbosticIf the distribution kit consists of DOS-compatible magtape, then PIP
201*35973Sbosticcan be used to transfer the files, providing that the magtape is
202*35973Sbosticassigned as a DOS-label device.  For example:
203*35973Sbostic
204*35973Sbostic  ASSIGN MM0:.DOS(cr)
205*35973Sbostic  RUN $PIP(cr)
206*35973Sbostic  **.*/AS=MM:*.FTN,*.FOR,*.MAC,*.DOC,*.CTL(cr)
207*35973Sbostic  **.*/AS=MM:*.CMD,*.COM,*.ODL,DINDX.DAT(cr)
208*35973Sbostic  **.*/BL=MM:DTEXT.DAT(cr)
209*35973Sbostic  *^C
210*35973Sbostic  DEASS MM0:(cr)
211*35973Sbostic
212*35973SbosticTo compile and link Dungeon, submit control file RSTSCB.CTL to the
213*35973Sbosticbatch processor:
214*35973Sbostic
215*35973Sbostic  SUBMIT RSTSCB.CTL(cr)
216*35973Sbostic
217*35973SbosticSeveral of the compilations will produce warning messages, but none
218*35973Sbosticshould produce a fatal error.
219*35973Sbostic
220*35973SbosticIt is now possible to run Dungeon:
221*35973Sbostic
222*35973Sbostic  RUN DUNGEO(cr)
223*35973Sbostic
224*35973SbosticWhen invoked, Dungeon takes no more than 5-10 seconds to start up.
225*35973Sbostic
226*35973SbosticNotes on the executable program:
227*35973Sbostic
228*35973Sbostic  - The only files needed to execute Dungeon are DUNGEO.SAV,
229*35973Sbostic    DINDX.DAT, and DTEXT.DAT.  All other files can be deleted.
230*35973Sbostic
231*35973Sbostic  - Files DINDX.DAT and DTEXT.DAT must reside in the user's area on
232*35973Sbostic    logical device SY: (this can be changed with a source edit, see
233*35973Sbostic    section 8).
234*35973Sbostic4.  Installation Instructions, RSX11M and RSX11M+
235*35973Sbostic
236*35973SbosticBefore starting, please note that:
237*35973Sbostic
238*35973Sbostic  - Dungeon requires RSX11M V3 (RSX11M+ V1) or later.
239*35973Sbostic
240*35973Sbostic  - Dungeon requires Fortran-IV-Plus V2.5 or later (operation under
241*35973Sbostic    Fortran-IV V2 or later will probably work but is not supported).
242*35973Sbostic
243*35973Sbostic  - Dungeon requires a 32KW user partition (mapped systems only).
244*35973Sbostic
245*35973Sbostic  - All files (source and object) must reside in the same user area
246*35973Sbostic    (at least 2500 disk blocks are needed).
247*35973Sbostic
248*35973Sbostic  - TKB should invoke BIGTKB.TSK with a large memory increment.
249*35973Sbostic
250*35973Sbostic  - The Fortran-IV-Plus object time library must be merged into
251*35973Sbostic    the system library (SYSLIB.OLB).  Further, the library must
252*35973Sbostic    be set up to invoke the short error text module ($SHORT) as
253*35973Sbostic    the default.  Task building with a separate object time library
254*35973Sbostic    produces numerous errors;  task building with a resident library
255*35973Sbostic    or the normal error text module produces an oversize task image.
256*35973Sbostic
257*35973Sbostic  - Dungeon requires EIS but not floating point.
258*35973Sbostic
259*35973SbosticExcept for DTEXT.DAT, all files in the distribution kit are ASCII.
260*35973SbosticDTEXT.DAT is a binary file consisting of 76-byte fixed length records.
261*35973SbosticIf the distribution kit consists of Files-11 compatible media, then
262*35973SbosticPIP can be used to transfer the files.  For example:
263*35973Sbostic
264*35973Sbostic  >PIP SY:*.*=MM:*.*(cr)            -requires ANSI magtape support
265*35973Sbostic
266*35973SbosticIf the distribution kit consists of DOS- or RT11-compatible media,
267*35973Sbosticthen FLX must be used to transfer the files.  The /IM:76. switch
268*35973Sbostic(image binary fixed length) must be used to transfer DTEXT.DAT;
269*35973Sbosticthe /FA switch (formatted ASCII) should be used to transfer the
270*35973Sbosticother files.  For example (DOS magtape):
271*35973Sbostic
272*35973Sbostic  >FLX(cr)
273*35973Sbostic  FLX>SY:/RS/FA=MM:*.FTN,*.FOR,*.MAC,*.DOC/DO(cr)
274*35973Sbostic  FLX>SY:/RS/FA=MM:*.CMD,*.COM,*.ODL,DINDX.DAT/DO(cr)
275*35973Sbostic  FLX>SY:/RS/IM:76.=MM:DTEXT.DAT/DO(cr)
276*35973Sbostic  FLX>^Z
277*35973Sbostic
278*35973SbosticTo compile Dungeon, issue the following command:
279*35973Sbostic
280*35973Sbostic  >@RSXCMP(cr)
281*35973Sbostic
282*35973SbosticThere should be no error messages.
283*35973Sbostic
284*35973SbosticTo task build the compiled sources, issue the following command:
285*35973Sbostic
286*35973Sbostic  >TKB @RSXBLD(cr)
287*35973Sbostic
288*35973SbosticIt is now possible to run Dungeon:
289*35973Sbostic
290*35973Sbostic  >RUN DUNGEON(cr)
291*35973Sbostic
292*35973SbosticWhen invoked, Dungeon takes no more than 5-10 seconds to start up.
293*35973SbosticIf your system maintains a separate Fortran-IV-Plus object time
294*35973Sbosticlibrary (F4POTS.OLB), then you must create a local copy of the
295*35973Sbosticsystem library with the Fortran-IV-Plus object time library
296*35973Sbosticmerged in and the short error text as the default.  The following
297*35973Sbosticcommands are an example of how such a local copy could be built:
298*35973Sbostic
299*35973Sbostic  >PIP SY:*.*=LB:[1,1]SYSLIB.OLB,F4POTS.OLB(cr)	-copy libraries
300*35973Sbostic  >LBR(cr)					-invoke LBR
301*35973Sbostic  LBR>SHORT.OBJ=F4POTS.OLB/EX:$SHORT(cr)	-extract $SHORT
302*35973Sbostic  LBR>F4POTS.OLB/DE:$SHORT(cr)			-delete $SHORT
303*35973Sbostic  LBR>F4POTS.OBJ=F4POTS.OLB/EX(cr)		-extract other modules
304*35973Sbostic  LBR>SYSLIB.OLB=F4POTS.OBJ(cr)			-insert other modules
305*35973Sbostic  LBR>SYSLIB.OLB/DG:$ERTXT(cr)			-delete dup entry
306*35973Sbostic  LBR>SYSLIB.OLB=SHORT.OBJ/RP(cr)		-insert $SHORT
307*35973Sbostic  LBR>^Z
308*35973Sbostic  >PIP F4POTS.*;*,SHORT.OBJ;*/DE(cr)
309*35973Sbostic
310*35973SbosticThen edit D.ODL to reference the local library instead of the
311*35973Sbosticdefault system library:
312*35973Sbostic
313*35973Sbostic  >TEC D.ODL(cr)
314*35973Sbostic  *FS[1,1]$SY:$EX$$
315*35973Sbostic
316*35973SbosticDungeon can now be task built as described above.
317*35973Sbostic
318*35973SbosticNotes on the executable program:
319*35973Sbostic
320*35973Sbostic  - The only files needed to execute Dungeon are DUNGEON.TSK,
321*35973Sbostic    DINDX.DAT, and DTEXT.DAT.  All other files can be deleted.
322*35973Sbostic
323*35973Sbostic  - Files DINDX.DAT and DTEXT.DAT must reside in the user's area on
324*35973Sbostic    logical device SY: (this can be changed with a source edit, see
325*35973Sbostic    section 8).
326*35973Sbostic
327*35973Sbostic  - Exiting from Dungeon via an MCR ABOrt command instead of the QUIT
328*35973Sbostic    command will leave file DTEXT.DAT open and locked.  The file must
329*35973Sbostic    be manually unlocked before the game is next invoked:
330*35973Sbostic
331*35973Sbostic    >PIP DTEXT.DAT/UN(cr)
332*35973Sbostic5.  Installation Instructions, VMS
333*35973Sbostic
334*35973SbosticBefore starting, please note that:
335*35973Sbostic
336*35973Sbostic  - Dungeon requires VMS V1 or later.
337*35973Sbostic
338*35973Sbostic  - Dungeon requires VAX Fortran-IV V1 or later.
339*35973Sbostic
340*35973Sbostic  - All files (source and object) must reside in the user's area
341*35973Sbostic    (at least 2500 disk blocks are needed).
342*35973Sbostic
343*35973SbosticExcept for DTEXT.DAT, all files in the distribution kit are ASCII.
344*35973SbosticDTEXT.DAT is a binary file consisting of 76-byte fixed length records.
345*35973SbosticIf the distribution kit consists of Files-11 compatible media, then
346*35973SbosticCOPY can be used to transfer the files.  For example:
347*35973Sbostic
348*35973Sbostic  $ COPY MM:*.* *.*(cr)
349*35973Sbostic
350*35973SbosticIf the distribution kit consists of DOS- or RT11-compatible media,
351*35973Sbosticthen FLX must be used to transfer the files.  The /IM:76. switch
352*35973Sbostic(image binary fixed length) must be used to transfer DTEXT.DAT;
353*35973Sbosticthe /FA switch (formatted ASCII) should be used to transfer the
354*35973Sbosticother files.  For example (DOS magtape):
355*35973Sbostic
356*35973Sbostic  $ MCR FLX(cr)
357*35973Sbostic  FLX>SY:/RS/FA=MM:*.FTN,*.FOR,*.MAC,*.DOC/DO(cr)
358*35973Sbostic  FLX>SY:/RS/FA=MM:*.CMD,*.COM,*.ODL,DINDX.DAT/DO(cr)
359*35973Sbostic  FLX>SY:/RS/IM:76.=MM:DTEXT.DAT/DO(cr)
360*35973Sbostic  FLX>^Z
361*35973Sbostic
362*35973SbosticTo compile Dungeon, issue the following command:
363*35973Sbostic
364*35973Sbostic  $ @VMSCMP(cr)
365*35973Sbostic
366*35973SbosticThere should be no error messages.
367*35973Sbostic
368*35973SbosticTo link the compiled sources, issue the following command:
369*35973Sbostic
370*35973Sbostic  $ @VMSBLD(cr)
371*35973Sbostic
372*35973SbosticIt is now possible to run Dungeon:
373*35973Sbostic
374*35973Sbostic  $ RUN DUNGEON(cr)
375*35973Sbostic
376*35973SbosticWhen invoked, Dungeon takes no more than 5-10 seconds to start up.
377*35973Sbostic
378*35973SbosticNotes on the executable program:
379*35973Sbostic
380*35973Sbostic  - The only files needed to execute Dungeon are DUNGEON.EXE,
381*35973Sbostic    DINDX.DAT, and DTEXT.DAT.  All other files can be deleted.
382*35973Sbostic
383*35973Sbostic  - Files DINDX.DAT and DTEXT.DAT must reside in the user's area
384*35973Sbostic    (this can be changed with a source edit, see section 8).
385*35973Sbostic6.  Warnings and Restrictions
386*35973Sbostic
387*35973SbosticFor those familiar with the MDL version of the game on the ARPAnet,
388*35973Sbosticthe following is a list of the major incompatabilties:
389*35973Sbostic
390*35973Sbostic	-The first six letters of a word are considered
391*35973Sbostic	 significant, instead of the first five.
392*35973Sbostic	-The syntax for TELL, ANSWER, and INCANT is different.
393*35973Sbostic	-Compound objects are not recognized.
394*35973Sbostic	-Compound commands can be delimited with comma as well
395*35973Sbostic	 as period.
396*35973Sbostic
397*35973SbosticAlso, the palantir, brochure, and dead man problems are not
398*35973Sbosticimplemented.
399*35973Sbostic
400*35973Sbostic
401*35973Sbostic7.  Abstract of Informational Printouts
402*35973Sbostic
403*35973SbosticSUMMARY
404*35973Sbostic-------
405*35973Sbostic
406*35973Sbostic		    Welcome to Dungeon!
407*35973Sbostic
408*35973Sbostic   Dungeon is a game of adventure, danger, and low cunning.  In it
409*35973Sbosticyou will explore some of the most amazing territory ever seen by mortal
410*35973Sbosticman.  Hardened adventurers have run screaming from the terrors contained
411*35973Sbosticwithin.
412*35973Sbostic
413*35973Sbostic   In Dungeon, the intrepid explorer delves into the forgotten secrets
414*35973Sbosticof a lost labyrinth deep in the bowels of the earth, searching for
415*35973Sbosticvast treasures long hidden from prying eyes, treasures guarded by
416*35973Sbosticfearsome monsters and diabolical traps!
417*35973Sbostic
418*35973Sbostic   No DECsystem should be without one!
419*35973Sbostic
420*35973Sbostic   Dungeon was created at the Programming Technology Division of the MIT
421*35973SbosticLaboratory for Computer Science by Tim Anderson, Marc Blank, Bruce
422*35973SbosticDaniels, and Dave Lebling.  It was inspired by the Adventure game of
423*35973SbosticCrowther and Woods, and the Dungeons and Dragons game of Gygax
424*35973Sbosticand Arneson.  The original version was written in MDL (alias MUDDLE).
425*35973SbosticThe current version was translated from MDL into FORTRAN IV by
426*35973Sbostica somewhat paranoid DEC engineer who prefers to remain anonymous.
427*35973Sbostic
428*35973Sbostic   On-line information may be obtained with the commands HELP and INFO.
429*35973SbosticINFO
430*35973Sbostic----
431*35973Sbostic
432*35973SbosticWelcome to Dungeon!
433*35973Sbostic
434*35973Sbostic   You are near a large dungeon, which is reputed to contain vast
435*35973Sbosticquantities of treasure.   Naturally, you wish to acquire some of it.
436*35973SbosticIn order to do so, you must of course remove it from the dungeon.  To
437*35973Sbosticreceive full credit for it, you must deposit it safely in the trophy
438*35973Sbosticcase in the living room of the house.
439*35973Sbostic
440*35973Sbostic   In addition to valuables, the dungeon contains various objects
441*35973Sbosticwhich may or may not be useful in your attempt to get rich.  You may
442*35973Sbosticneed sources of light, since dungeons are often dark, and weapons,
443*35973Sbosticsince dungeons often have unfriendly things wandering about.  Reading
444*35973Sbosticmaterial is scattered around the dungeon as well;  some of it
445*35973Sbosticis rumored to be useful.
446*35973Sbostic
447*35973Sbostic   To determine how successful you have been, a score is kept.
448*35973SbosticWhen you find a valuable object and pick it up, you receive a
449*35973Sbosticcertain number of points, which depends on the difficulty of finding
450*35973Sbosticthe object.  You receive extra points for transporting the treasure
451*35973Sbosticsafely to the living room and placing it in the trophy case.  In
452*35973Sbosticaddition, some particularly interesting rooms have a value associated
453*35973Sbosticwith visiting them.  The only penalty is for getting yourself killed,
454*35973Sbosticwhich you may do only twice.
455*35973Sbostic
456*35973Sbostic   Of special note is a thief (always carrying a large bag) who
457*35973Sbosticlikes to wander around in the dungeon (he has never been seen by the
458*35973Sbosticlight of day).  He likes to take things.  Since he steals for pleasure
459*35973Sbosticrather than profit and is somewhat sadistic, he only takes things which
460*35973Sbosticyou have seen.  Although he prefers valuables, sometimes in his haste
461*35973Sbostiche may take something which is worthless.  From time to time, he examines
462*35973Sbostichis take and discards objects which he doesn't like.  He may occas-
463*35973Sbosticionally stop in a room you are visiting, but more often he just wanders
464*35973Sbosticthrough and rips you off (he is a skilled pickpocket).
465*35973Sbostic
466*35973SbosticHELP
467*35973Sbostic----
468*35973Sbostic
469*35973SbosticUseful commands:
470*35973Sbostic
471*35973Sbostic   The 'BRIEF' command suppresses printing of long room descriptions
472*35973Sbosticfor rooms which have been visited.  The 'SUPERBRIEF' command suppresses
473*35973Sbosticprinting of long room descriptions for all rooms.  The 'VERBOSE'
474*35973Sbosticcommand restores long descriptions.
475*35973Sbostic   The 'INFO' command prints information which might give some idea
476*35973Sbosticof what the game is about.
477*35973Sbostic   The 'QUIT' command prints your score and asks whether you wish
478*35973Sbosticto continue playing.
479*35973Sbostic   The 'SAVE' command saves the state of the game for later continuation.
480*35973Sbostic   The 'RESTORE' command restores a saved game.
481*35973Sbostic   The 'INVENTORY' command lists the objects in your possession.
482*35973Sbostic   The 'LOOK' command prints a description of your surroundings.
483*35973Sbostic   The 'SCORE' command prints your current score and ranking.
484*35973Sbostic   The 'TIME' command tells you how long you have been playing.
485*35973Sbostic   The 'DIAGNOSE' command reports on your injuries, if any.
486*35973SbosticCommand abbreviations:
487*35973Sbostic
488*35973Sbostic   The 'INVENTORY' command may be abbreviated 'I'.
489*35973Sbostic   The 'LOOK' command may be abbreviated 'L'.
490*35973Sbostic   The 'QUIT' command may be abbreviated 'Q'.
491*35973Sbostic
492*35973SbosticContainment:
493*35973Sbostic
494*35973Sbostic   Some objects can contain other objects.  Many such containers can
495*35973Sbosticbe opened and closed.  The rest are always open.   They may or may
496*35973Sbosticnot be transparent.  For you to access (e.g., take) an object
497*35973Sbosticwhich is in a container, the container must be open.  For you
498*35973Sbosticto see such an object, the container must be either open or
499*35973Sbostictransparent.  Containers have a capacity, and objects have sizes;
500*35973Sbosticthe number of objects which will fit therefore depends on their
501*35973Sbosticsizes.  You may put any object you have access to (it need not be
502*35973Sbosticin your hands) into any other object.  At some point, the program
503*35973Sbosticwill attempt to pick it up if you don't already have it, which
504*35973Sbosticprocess may fail if you're carrying too much.  Although containers
505*35973Sbosticcan contain other containers, the program doesn't access more than
506*35973Sbosticone level down.
507*35973Sbostic
508*35973SbosticFighting:
509*35973Sbostic
510*35973Sbostic   Occupants of the dungeon will, as a rule, fight back when
511*35973Sbosticattacked.  In some cases, they may attack even if unprovoked.
512*35973SbosticUseful verbs here are 'ATTACK <villain> WITH <weapon>', 'KILL',
513*35973Sbosticetc.  Knife-throwing may or may not be useful.  You have a
514*35973Sbosticfighting strength which varies with time.  Being in a fight,
515*35973Sbosticgetting killed, and being injured all lower this strength.
516*35973SbosticStrength is regained with time.  Thus, it is not a good idea to
517*35973Sbosticfight someone immediately after being killed.  Other details
518*35973Sbosticshould become apparent after a few melees or deaths.
519*35973Sbostic
520*35973SbosticCommand parser:
521*35973Sbostic
522*35973Sbostic   A command is one line of text terminated by a carriage return.
523*35973SbosticFor reasons of simplicity, all words are distinguished by their
524*35973Sbosticfirst six letters.  All others are ignored.  For example, typing
525*35973Sbostic'DISASSEMBLE THE ENCYCLOPEDIA' is not only meaningless, it also
526*35973Sbosticcreates excess effort for your fingers.  Note that this trunca-
527*35973Sbostiction may produce ambiguities in the intepretation of longer words.
528*35973Sbostic[Also note that upper and lower case are equivalent.]
529*35973Sbostic
530*35973Sbostic   You are dealing with a fairly stupid parser, which understands
531*35973Sbosticthe following types of things--
532*35973Sbostic
533*35973Sbostic   Actions:
534*35973Sbostic	Among the more obvious of these, such as TAKE, PUT, DROP, etc.
535*35973Sbostic	Fairly general forms of these may be used, such as PICK UP,
536*35973Sbostic	PUT DOWN, etc.
537*35973Sbostic
538*35973Sbostic   Directions:
539*35973Sbostic	NORTH, SOUTH, UP, DOWN, etc. and their various abbreviations.
540*35973Sbostic	Other more obscure directions (LAND, CROSS) are appropriate in
541*35973Sbostic	only certain situations.
542*35973Sbostic   Objects:
543*35973Sbostic	Most objects have names and can be referenced by them.
544*35973Sbostic
545*35973Sbostic   Adjectives:
546*35973Sbostic	Some adjectives are understood and required when there are
547*35973Sbostic	two objects which can be referenced with the same 'name' (e.g.,
548*35973Sbostic	DOORs, BUTTONs).
549*35973Sbostic
550*35973Sbostic   Prepositions:
551*35973Sbostic	It may be necessary in some cases to include prepositions, but
552*35973Sbostic	the parser attempts to handle cases which aren't ambiguous
553*35973Sbostic	without.  Thus 'GIVE CAR TO DEMON' will work, as will 'GIVE DEMON
554*35973Sbostic	CAR'.  'GIVE CAR DEMON' probably won't do anything interesting.
555*35973Sbostic	When a preposition is used, it should be appropriate;  'GIVE CAR
556*35973Sbostic	WITH DEMON' won't parse.
557*35973Sbostic
558*35973Sbostic   Sentences:
559*35973Sbostic	The parser understands a reasonable number of syntactic construc-
560*35973Sbostic	tions.  In particular, multiple commands (separated by commas)
561*35973Sbostic	can be placed on the same line.
562*35973Sbostic
563*35973Sbostic   Ambiguity:
564*35973Sbostic	The parser tries to be clever about what to do in the case of
565*35973Sbostic	actions which require objects that are not explicitly specified.
566*35973Sbostic	If there is only one possible object, the parser will assume
567*35973Sbostic	that it should be used.  Otherwise, the parser will ask.
568*35973Sbostic	Most questions asked by the parser can be answered.
569*35973Sbostic8.  Source Notes
570*35973Sbostic
571*35973SbosticA few notes for source hackers.
572*35973Sbostic
573*35973Sbostic- The initialization module (DINIT.FTN) includes an access protection
574*35973Sbostic  function PROTCT.  If PROTCT returns a value of .TRUE., the game is
575*35973Sbostic  permitted to start;  if PROTCT returns .FALSE., the game is
576*35973Sbostic  terminated with a suitably nasty message.  At present, PROTCT is a
577*35973Sbostic  dummy routine and always returns .TRUE.;  by tailoring PROTCT,
578*35973Sbostic  access to the game can be restricted to certain hours or users.
579*35973Sbostic
580*35973Sbostic- The data base OPEN and READ statements are in the initialization
581*35973Sbostic  module (DINIT.FTN).  The data base file names are simply "DINDX.DAT"
582*35973Sbostic  and "DTEXT.DAT".  These may be freely changed to include logical
583*35973Sbostic  device names, UIC's, etc.  Thus, it is possible to place the data
584*35973Sbostic  base files on different devices, in a fixed UIC, etc.
585*35973Sbostic
586*35973Sbostic- Converting the game to another processor is not a straightforward
587*35973Sbostic  procedure.  The game makes heavy use of extended and/or
588*35973Sbostic  idiosynchratic features of PDP-11 Fortran.  Particular nasties
589*35973Sbostic  include the following:
590*35973Sbostic
591*35973Sbostic  > The game vocabulary is stored in Radix-50 notation.
592*35973Sbostic  > [F77 version has converted these to ints.]
593*35973Sbostic
594*35973Sbostic  > The game uses the extended I/O commands OPEN and CLOSE.
595*35973Sbostic
596*35973Sbostic  > The game uses LOGICAL*1 variables for character strings.
597*35973Sbostic  > [F77 version uses CHARACTER.]
598*35973Sbostic
599*35973Sbostic  > The game uses logical operators on integers for bitwise binary
600*35973Sbostic    operations.
601*35973Sbostic  > [F77 version uses the functions and() and or() and not() where
602*35973Sbostic    necessary, as well as standard fortran .and., .or., etc.]
603*35973Sbostic
604*35973Sbostic  > The game treats certain arrays and variables as unsigned
605*35973Sbostic    16-bit integers (integer overflow may occur).
606*35973Sbostic  > [F77 vax version uses 32-bit ints except in the subroutine
607*35973Sbostic    that reads the text file, where they are declared as 16-bits.
608*35973Sbostic    The F77 pdp version uses the -I2 compile flag force 16-bit
609*35973Sbostic    ints and logicals.]
610*35973Sbostic
611*35973Sbostic  In general, the game was implemented to fit in memory, not to be
612*35973Sbostic  transported.  You're on your own, friend!
613