Annotation of 43BSDReno/games/dungeon/dungeon.doc, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.