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*35973Sbostic2. 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*35973Sbostic3. 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*35973Sbostic4. 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*35973SbosticIf 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*35973Sbostic5. 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*35973Sbostic6. 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*35973SbosticINFO 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*35973SbosticCommand 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*35973Sbostic8. 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