home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol055 / sigmlog.045 < prev    next >
Text File  |  1984-04-29  |  23KB  |  628 lines

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