home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / citadel / ctdl338b.zip / OPER3.MAN < prev    next >
Text File  |  1990-07-01  |  150KB  |  3,635 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                           OPERATIONS MANUAL
  16.  
  17.                           CITADEL-86 V3.32
  18.  
  19.                         Copyright 1989, 1990
  20.  
  21.                              by Hue, Jr.
  22.  
  23.                        C-86 Test System Sysop
  24.  
  25.                                90Jul01
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.                       TABLE OF CONTENTS
  75.  
  76.      I.  Introduction   . . . . . . . . . . . . . . . . . . 1
  77.      II. Help Files . . . . . . . . . . . . . . . . . . . . 1
  78.           II.1. Location  . . . . . . . . . . . . . . . . . 1
  79.           II.2. File Types  . . . . . . . . . . . . . . . . 1
  80.           II.3. Optional Customization  . . . . . . . . . . 1
  81.           II.4. Customizable Structure  . . . . . . . . . . 2
  82.           II.5. Help File Variables . . . . . . . . . . . . 3
  83.           II.6. Required Customization  . . . . . . . . . . 4
  84.           II.7. Optional Help Files . . . . . . . . . . . . 4
  85.           II.8. Adding Help Files . . . . . . . . . . . . . 5
  86.           II.9. New Users . . . . . . . . . . . . . . . . . 5
  87.           II.10. Delivered  . . . . . . . . . . . . . . . . 5
  88.      III. Sysop Privileged Functions  . . . . . . . . . . . 7
  89.           III.1. Introduction . . . . . . . . . . . . . . . 7
  90.           III.2. Access . . . . . . . . . . . . . . . . . . 7
  91.           III.3. Access Restrictions  . . . . . . . . . . . 7
  92.           III.4. Sysop Capabilities . . . . . . . . . . . . 7
  93.           III.4.a <A>bort . . . . . . . . . . . . . . . . . 8
  94.           III.4.b <B>aud Rate Selection . . . . . . . . . . 8
  95.           III.4.c <C>hat Enable/Disable . . . . . . . . . . 8
  96.           III.4.d <D>ebug Switch  . . . . . . . . . . . . . 8
  97.           III.4.e <E>cho To Screen  . . . . . . . . . . . . 8
  98.           III.4.f <F>ile Grab . . . . . . . . . . . . . . . 9
  99.           III.4.g <I>nformation . . . . . . . . . . . . . . 9
  100.           III.4.h <M>odem Mode  . . . . . . . . . . . . . .10
  101.           III.4.i <N>etworking Commands . . . . . . . . . .10
  102.           III.4.j <O>ther Commands  . . . . . . . . . . . .10
  103.           III.4.k <R>einitialize Modem  . . . . . . . . . .10
  104.           III.4.l <S>et Date  . . . . . . . . . . . . . . .10
  105.           III.4.m e<X>it To MS-DOS  . . . . . . . . . . . .10
  106.           III.5. Undocumented Sysop Menu Commands . . . . .11
  107.           III.6 User Administration . . . . . . . . . . . .11
  108.           III.6.a <A>dd User  . . . . . . . . . . . . . . .11
  109.           III.6.b <D>oor Privileges . . . . . . . . . . . .11
  110.           III.6.c <E>ndless User (permanent account). . . .11
  111.           III.6.d <K>ill Account  . . . . . . . . . . . . .12
  112.           III.6.e <N>etwork Privileges  . . . . . . . . . .12
  113.           III.6.f <P>rivileged Switch . . . . . . . . . . .12
  114.           III.6.g <T>wit Status . . . . . . . . . . . . . .12
  115.           III.6.h e<X>it  . . . . . . . . . . . . . . . . .12
  116.      IV. User Levels  . . . . . . . . . . . . . . . . . . .12
  117.           IV.1. Introduction  . . . . . . . . . . . . . . .12
  118.           IV.2. Normal Users  . . . . . . . . . . . . . . .12
  119.           IV.3. Aides . . . . . . . . . . . . . . . . . . .12
  120.           IV.3.a Message Deletion . . . . . . . . . . . . .13
  121.           IV.3.b Moving Messages  . . . . . . . . . . . . .13
  122.           IV.3.c Message Route Identification . . . . . . .13
  123.           IV.3.d Room Elimination . . . . . . . . . . . . .13
  124.           IV.3.e Empty Room Deletion  . . . . . . . . . . .14
  125.           IV.3.f Room Editing . . . . . . . . . . . . . . .14
  126.           IV.3.g Message Insertion  . . . . . . . . . . . .14
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.           IV.3.h Floor Creation   . . . . . . . . . . . . .14
  140.           IV.3.i Room Moving  . . . . . . . . . . . . . . .14
  141.           IV.3.j Floor Renaming   . . . . . . . . . . . . .14
  142.           IV.3.k Floor Killing  . . . . . . . . . . . . . .14
  143.           IV.3.m Aide Command Summary   . . . . . . . . . .14
  144.           IV.3.n Possible Extra Privileges  . . . . . . . .15
  145.           IV.4 Sysops . . . . . . . . . . . . . . . . . . .15
  146.           IV.4.a Message Journaling   . . . . . . . . . . .15
  147.           IV.4.b Directory Journaling   . . . . . . . . . .15
  148.      V.  Rooms  . . . . . . . . . . . . . . . . . . . . . .15
  149.           V.I Room Attributes   . . . . . . . . . . . . . .15
  150.           V.I.1. Room Archival   . . . . . . . . . . . . . 16
  151.           V.I.1.a Room Archival: Advanced Usage  . . . . . 16
  152.           V.I.2. Backbones   . . . . . . . . . . . . . . . 16
  153.           V.I.3. Directory Status  . . . . . . . . . . . . 16
  154.           V.I.4. Information Editing . . . . . . . . . . . 17
  155.           V.I.5. Innominate Status   . . . . . . . . . . . 17
  156.           V.I.6. Lure Users  . . . . . . . . . . . . . . . 17
  157.           V.I.7. Moderator   . . . . . . . . . . . . . . . 17
  158.           V.I.8. Name Change   . . . . . . . . . . . . . . 17
  159.           V.I.9. Only Invitational   . . . . . . . . . . . 18
  160.           V.I.10. Privacy Status . . . . . . . . . . . . . 18
  161.           V.I.11. Temporary Status  . . . . . . . . . . . .18
  162.           V.I.12. Shared Status   . . . . . . . . . . . . .18
  163.           V.I.13. Upload/Download Status  . . . . . . . . .19
  164.           V.I.14. Withdraw Invitations  . . . . . . . . . .19
  165.           V.I.15. Network Downloadable  . . . . . . . . . .19
  166.           V.II. Other Room Editing Commands . . . . . . . .19
  167.           V.III. Three Exceptions . . . . . . . . . . . . .19
  168.      VI. Files - Upload/Download Capabilities . . . . . . .19
  169.           VI.1. Origin  . . . . . . . . . . . . . . . . . .19
  170.           VI.2. Creation  . . . . . . . . . . . . . . . . .20
  171.           VI.3. User Commands   . . . . . . . . . . . . . .20
  172.           VI.3.i. Content Listing . . . . . . . . . . . . .20
  173.           VI.3.ii. File Transfers . . . . . . . . . . . . .22
  174.           VI.3.ii.a Upload Protocols  . . . . . . . . . . .22
  175.           VI.3.ii.b Download Protocols  . . . . . . . . . .23
  176.           VI.4. Advanced Directory Options  . . . . . . . .23
  177.      VII.<O>ther Commands . . . . . . . . . . . . . . . . .24
  178.           VII.1. General Purpose  . . . . . . . . . . . . .24
  179.           VII.2. Other Commands   . . . . . . . . . . . . .24
  180.           VII.2.a. Deletion . . . . . . . . . . . . . . . .24
  181.           VII.2.b. Outside Commands . . . . . . . . . . . .24
  182.           VII.2.b.i. Restrictions . . . . . . . . . . . . .24
  183.      VIII.Miscellaneous . . . . . . . . . . . . . . . . . .25
  184.           VIII.1. Wha...?   . . . . . . . . . . . . . . . .25
  185.           VIII.2. Chatty Questions  . . . . . . . . . . . .25
  186.           VIII.3. Chat Capture   . .  . . . . . . . . . . .26
  187.           VIII.4. File Transfers while in Chat Mode . . . .26
  188.           VIII.5. ESCaping  . . . . . . . . . . . . . . . .27
  189.           VIII.6  Typing at Keyboard W/User is in Control .27
  190.              VIII.6.a Sysop Autodial  . . . . . . . . . . .27
  191.              VIII.6.b Chat Mode . . . . . . . . . . . . . .28
  192.              VIII.6.c Echo Mode . . . . . . . . . . . . . .28
  193.           VIII.7. Denizens Of The Status Bar  . . . . . . .28
  194.           VIII.8. Modem Disabling . . . . . . . . . . . . .28
  195.           VIII.9. BADWORDS.SYS  . . . . . . . . . . . . . .29
  196.           VIII.10. Massive Privileges . . . . . . . . . . .29
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.      IX.  SEA's ARC files . . . . . . . . . . . . . . . . .29
  208.           IX.1 DeArcing   . . . . . . . . . . . . . . . . .30
  209.           IX.2 ARC Integrity Checks   . . . . . . . . . . .31
  210.      X.   PKWARE's ZIP Files  . . . . . . . . . . . . . . .32
  211.           X.1 DeZIP   . . . . . . . . . . . . . . . . . . .32
  212.           X.2 ZIP Integrity Checks  . . . . . . . . . . . .32
  213.      XI.  ZOO Files . . . . . . . . . . . . . . . . . . . .32
  214.           XI.1 DeZOO  . . . . . . . . . . . . . . . . . . .32
  215.           XI.2 ZOO Integrity Checks . . . . . . . . . . . .32
  216.      XII. LZH Files   . . . . . . . . . . . . . . . . . . .32
  217.           XII.1 DeLZH . . . . . . . . . . . . . . . . . . .32
  218.           XII.2 LZH Integrity Checks  . . . . . . . . . . .33
  219.      XIII. GIF Files  . . . . . . . . . . . . . . . . . . .33
  220.      XIV. Sysop's Editor  . . . . . . . . . . . . . . . . .33
  221.           XIV.1 Sysop Editor Notes  . . . . . . . . . . . .34
  222.      XV. Door Support . . . . . . . . . . . . . . . . . . .35
  223.           XV.1. Administration  . . . . . . . . . . . . . .35
  224.           XV.1.a. User Administration . . . . . . . . . . .35
  225.           XV.1.b. Door Administration . . . . . . . . . . .35
  226.           XV.2 BAT File Support . . . . . . . . . . . . . .37
  227.           XV.3 Compatability  . . . . . . . . . . . . . . .37
  228.           XV.4 Automatic Doors  . . . . . . . . . . . . . .38
  229.           XV.5 New User Doors . . . . . . . . . . . . . . .38
  230.      XVI. Citadel-86 As A Door  . . . . . . . . . . . . . .39
  231.      XVII. External Protocol Drivers  . . . . . . . . . . .39
  232.           XVII.1 Adding drivers . . . . . . . . . . . . . .40
  233.           XVII.2 Number of drivers  . . . . . . . . . . . .41
  234.           XVII.3 USR HST 9600 notes . . . . . . . . . . . .41
  235.      XVIII. Questions & Answers . . . . . . . . . . . . . .42
  236.      XIX. #event Examples!  . . . . . . . . . . . . . . . .42
  237.           XIX.1 Automating Backups  . . . . . . . . . . . .43
  238.           XIX.2 Scheduled Network Sessions  . . . . . . . .45
  239.           XIX.3 Anytime Network Sessions  . . . . . . . . .46
  240.           XIX.4 Download Time Limits  . . . . . . . . . . .47
  241.           XIX.5 Door Time Limits  . . . . . . . . . . . . .47
  242.           XIX.6 Automatic Doors   . . . . . . . . . . . . .48
  243.      XX. External Message Editors   . . . . . . . . . . . .48
  244.      Appendix A: Contributors . . . . . . . . . . . . . . .50
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.      I. INTRODUCTION
  273.         Hello, this is the Operations Manual for Citadel-86.  In this manual
  274.      we will attempt to explain the daily machinations of Citadel-86 that you,
  275.      the sysop, will encounter.  We've tried to cover as much as we can,
  276.      particularly concentrating on areas in which we've encountered numerous
  277.      questions, as well as other areas where we've noted sysops are not aware
  278.      of useful options.
  279.  
  280.         There is something of a fuzzy line between this manual, OPER3.MAN, and
  281.      the Citadel-86 Installation Manual, INSTALL3.MAN.  Some folk may think
  282.      that some subjects belong in the Installation Manual rather than here,
  283.      and vice-versa.  If you don't find something in here, it wouldn't hurt
  284.      to peruse the Installation Manual.
  285.  
  286.         Finally, and for the record, Citadel-86 is a direct port of Cynbe ru
  287.      Taren's CP/M Citadel 2.10 code, as obtained from the C Users Group (CUG).
  288.      Without Cynbe's genius, Citadel-86 would not exist.
  289.  
  290.  
  291.      II. Help Files
  292.  
  293.      II.1. Location
  294.         The supporting help files of Citadel-86, which are simple text files,
  295.      should be located in the #HELPAREA drive and directory.  As explained in
  296.      the Installation Manual, you should copy these files to that directory
  297.      before operating your system, unless you do not plan to provide help to
  298.      the users of the system.
  299.  
  300.      II.2. File types
  301.         There are three types of Help files, identifiable by their extensions,
  302.      plus some miscellaneous types.
  303.  
  304.         .BLB: These files contain miscellaneous messages and warnings for use
  305.                in certain set locations of Citadel-86.
  306.  
  307.         .MNU: These files contain menus that are normally printed out when the
  308.               user touches '?' while using Citadel-86.  Usually, these are just
  309.               lists of options.
  310.  
  311.         .HLP: These are general help files that are accessible through the
  312.               .Help <filename> command.  Generally, these files contain terse
  313.               instructions on the use of the system, including references to
  314.               other files that may be of help to the user.
  315.  
  316.      II.3. Optional Customization
  317.         The Help files as delivered are of a generic nature, and any of them
  318.      may be modified using a text editor at the Sysop's option.  The .BLB
  319.      files are generally English descriptions of operations, and can be
  320.      modified for greater readability/useability with little danger of any
  321.      problems.
  322.  
  323.         On the other hand, the .MNU files should not be modified impulsively,
  324.      since they consist mostly of menu lists.
  325.  
  326.  
  327.  
  328.                                     -1-
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.         The .HLP files are the best candidates for customization, since they
  336.      are English descriptions, and, for the most part, are not "hard-coded"
  337.      into Citadel-86; rather, they are usually referenced by the user after 
  338.      s/he finds a reference to them.  See section II.3 below, too.
  339.  
  340.         All help files are formatted just like messages when they are
  341.      displayed to the user; therefore, you should be sure to follow the normal
  342.      Citadel formatting rules when rewriting Help files, except that you
  343.      needn't place a lone space on a blank line to enforce that blank line (a
  344.      difficult thing to do with many editors).
  345.  
  346.      II.4. Customizable structure
  347.         Beginning with Version 3.10 of Citadel-86, the help file system has
  348.      some capabilities not previously found in Citadel.  Originally designed
  349.      and implemented by Paul Gauthier of Nova Scotia, Canada, the help system
  350.      of Citadel can now be menu driven at the option of the System Operator.
  351.  
  352.         Access to the help system has not changed; both <H>elp and <.H>elp are
  353.      used to access help files.
  354.  
  355.         In appearance, a help file using the enhanced capabilities will display
  356.      in this general format:
  357.  
  358.         <text text text ...
  359.                    ... end text>
  360.  
  361.       [a] <help file 1> <description for help file 1.>
  362.       [b] <help file 2> <description for help file 2.>
  363.          ...
  364.       [x] <help file n> <description for help file n.>
  365.  
  366.       Press RETURN to exit Help, or select an option [a-x]:
  367.  
  368.         Essentially, when a user selects a help file to read, Citadel-86 will
  369.      display the text of the help file for the user, and then a list of help
  370.      files that the user may select from.  Both the description, as before,
  371.      and the list of options is completely under the System Operator's control.
  372.      The ambitious System Operator with an ambitious, coherent view of what a
  373.      Citadel Help System should be can use this to construct what he wants.
  374.  
  375.         So how do you make the list of options appear at the end of your
  376.      favorite help file?  By specifying the names at the end of the help file
  377.      in question, prefixing each name with a "%" and suffixing each file name
  378.      with its description.  For the above generic example, you would have
  379.  
  380.        <text text text ...
  381.                       ... end text>
  382.  
  383.        %<help file 1> <description for help file 1.>
  384.        %<help file 2> <description for help file 2.>
  385.          ...
  386.        %<help file n> <description for help file n.>
  387.  
  388.      and a concrete example would be
  389.  
  390.  
  391.  
  392.  
  393.  
  394.                                     -2-
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.         Hi, I'm a meaningless help file, and here are my options:
  402.  
  403.       %SNEEZING How to sneeze while using Citadel.
  404.       %EATING How to eat at Utica College.
  405.       %SLEEPING How to sleep while baking in the heat of Minnesota.
  406.  
  407.         Finally, this Help System applies only to the .HLP files (explained in
  408.      II.2), not to any other types of help.  The .HLP files delivered with
  409.      Citadel-86 use this feature to some extent, but as of this writing have
  410.      not been customized to take advantage of this feature to the fullest
  411.      extent possible.  You should at least review the current help system, and
  412.      if you feel the urge, modify it to better suit the new user.
  413.  
  414.      II.5 Help File Variables
  415.         The Hot Help system can display the values of certain CTDLCNFG.SYS
  416.      parameters at the option of the sysop.  The procedure resembles the manner
  417.      in which help files may be 'linked' together to make menus: a special
  418.      character followed by a string of characters naming the requested variable.
  419.      Assuming the request is valid, the request is replaced by the actual
  420.      value of the installation.
  421.  
  422.         The special character is the up arrow, '^'.
  423.  
  424.         Not all of the CTDLCNFG.SYS parameters are available for display.
  425.      In fact, only a few are available.  This is the currently supported list:
  426.  
  427.        Variable Name  |  CTDLCNFG.SYS counterpart (or whatever)
  428.        -----------------------------------------------------------
  429.         ^nodetitle    |  #nodeTitle
  430.        -----------------------------------------------------------
  431.         ^nodeid       |  #nodeId
  432.        -----------------------------------------------------------
  433.         ^nodename     |  #nodeName
  434.        -----------------------------------------------------------
  435.         ^nodedomain   |  #nodeDomain
  436.        -----------------------------------------------------------
  437.         ^baseroom     |  #baseRoom
  438.        -----------------------------------------------------------
  439.         ^mainfloor    |  #MainFloor
  440.        -----------------------------------------------------------
  441.         ^sysopname    |  #sysopName
  442.        -----------------------------------------------------------
  443.         ^variantname  |  The software name
  444.        -----------------------------------------------------------
  445.         ^ulprotocols  |  List of available upload protocols
  446.        -----------------------------------------------------------
  447.         ^dlprotocols  |  List of available download protocols
  448.        -----------------------------------------------------------
  449.  
  450.         The last two are constructed from your CTDLPROT.SYS file described
  451.      in the section concerning external protocol drivers in this manual.
  452.  
  453.      EXAMPLE
  454.         Suppose you wished to display the name of the sysop somewhere in your
  455.      help system to the users.  You would then have something like this in the
  456.      help file(s):
  457.  
  458.  
  459.  
  460.                                     -3-
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      
  467.         " ... And, of course, the sysop bringing this wealth of information to
  468.      you today is ^sysopname.  And now on to the next contestant on the
  469.      ^nodename BBS!"
  470.  
  471.      II.6. Required Customization
  472.         There are four files that you should customize for your installation
  473.      as soon as you feel you are prepared to.  They are
  474.  
  475.         HOURS.HLP: This file should contain the hours that your system is
  476.      available to users.
  477.  
  478.         POLICY.HLP: This file should contain your general policy statement
  479.      regarding your system and its purpose.  The rules of your system could
  480.      also possibly appear here.
  481.  
  482.         NOCHAT.BLB: When you have Chat mode turned off on your system, this
  483.      file is printed to the users when they attempt to use the Chat command.
  484.  
  485.         UNLOG.BLB: This file must be customized by Sysops running closed 
  486.      systems only.  When a user without a password attempts to log into
  487.      such a system, the system will print this file to the would-be user
  488.      if it exists.  If the file doesn't exist, then a hard-coded message
  489.      instructing the user to proceed to Mail> and leave a message for
  490.      Sysop will appear.
  491.  
  492.      II.7. Optional Help Files
  493.         There are 190 (!) Help files that do not need to be present
  494.      during Citadel-86's operation, but if they are will cause Citadel-86 to
  495.      alter its behavior slightly when a user is on the system.
  496.  
  497.         The first three files are BANNER.PRE, NOTICE.PRE, and LONOTICE.PRE.
  498.      These files, if present in your #HELPAREA directory, will be printed
  499.      when carrier is detected and baud detected (BANNER.PRE) and before
  500.      BANNER.BLB (see below), after a successful login and before NOTICE.BLB
  501.      (NOTICE.PRE) (see below), and on logout before carrier is lost, before
  502.      LONOTICE.BLB is printed (LONOTICE.PRE) (see below).
  503.  
  504.         The next file is BANNER.BLB.  If this file is present in the #HELPAREA
  505.      directory when a user gains carrier, this file will be sent to the user.
  506.      This allows large beginning banners to be used. If the BANNER.BLB file is
  507.      not present, then the #nodeTitle parameter of CTDLCNFG.SYS will be sent
  508.      to the user in its place.  However, BANNER.BLB can be overridden even
  509.      if present; see below.
  510.  
  511.         The next file is NOTICE.BLB.  If this file is present in #HELPAREA,
  512.      Citadel-86 will send it to the user upon a successful login.  However,
  513.      NOTICE.BLB can be overridden even if present; see below.
  514.  
  515.         The next file is LONOTICE.BLB.  If this file is present in #HELPAREA,
  516.      Citadel-86 will send it to the user when the user executes any of the
  517.      Terminate commands before logging them out.  However, LONOTICE.BLB can be
  518.      overridden even if present; see below.
  519.  
  520.         Then there is NEWUSER.BLB.  If this file is present, it will be
  521.      displayed to a prospective new user before* they are allowed to proceed
  522.      into initial account creation.
  523.  
  524.  
  525.  
  526.                                     -4-
  527.  
  528.  
  529.  
  530.         The next sixty (!) files, unlike the balance of the help files, do not
  531.      reside in #HELPAREA, but instead in the directory BANNERS, and they are
  532.      named BANNER.0, BANNER.1, ... BANNER.59.  If these files are present, when
  533.      Citadel-86 recognizes the baud rate of the caller it will select one of
  534.      these banners, depending on the second of the minute, and display it to
  535.      the user.
  536.  
  537.         The next sixty files, like BANNER.0, BANNER.1, etc., also reside
  538.      in the BANNERS directory.  These are named LONOTICE.0, LONOTICE.1, etc.  If
  539.      these files are available when a user logs off, one will be selected
  540.      randomly (by reading the system clock) and presented to the user before
  541.      carrier is dropped.  If they are not available, then LONOTICE.BLB in
  542.      the #HELPAREA directory will be presented.
  543.  
  544.         The next sixty files are also analogous to the BANNER.0, etc., files,
  545.      but they are named NOTICE.0, NOTICE.1, etc., and will take the place
  546.      of NOTICE.BLB if they are present in BANNERS.
  547.  
  548.         The last three files are BANNER.SFX, NOTICE.SFX, and LONOTICE.SFX.
  549.      These files, if present, are printed after BANNER.BLB (or BANNER.xx),
  550.      NOTICE.BLB (or NOTICE.xx), and LONOTICE.BLB (or LONOTICE.xx),
  551.      respectively.  Used in combination with the BANNERS directory, this lets
  552.      you put a standard prefix or suffix on your variable carrier banners, login
  553.      notices, and logout notices without forcing you to edit all of those
  554.      variable things.
  555.  
  556.      II.8. Adding Help Files
  557.         Through the use of the .Help command, users may access any file that
  558.      you place in the #HELPAREA that has a .HLP extension.  Therefore, if you
  559.      wish to extensively customize and extend the Citadel-86 Help system, you
  560.      should encounter few problems.
  561.  
  562.         When a user enters ".Help ?", however, the file HELPOPT.HLP will be
  563.      printed to them.  Therefore, you should take care to keep that file up
  564.      to date if you begin adding Help files.
  565.  
  566.      II.9. New Users
  567.         You may configure Citadel-86 to automatically generate and deliver a
  568.      message in Mail> to a user on his or her initial login via two files
  569.      placed in the #HELPAREA directory.  When the user has finished the initial
  570.      login process, he or she will discover the Mail> room has a message
  571.      in it, and Goto will take them to Mail.  The message will have as the
  572.      author either Citadel, if there is no sysop designated in your
  573.      installation, or the name of the sysop (#sysopName in CtdlCnfg.Sys).
  574.  
  575.         The two files are used for two different situation: new users who
  576.      designate themselves as novices, and new users who claim to be experts.
  577.      The names of the files are NOVMAIL.BLB for the Mail to the novices, and
  578.      EXPMAIL.BLB for the Mail to the experts.
  579.  
  580.         You may write these files just like any other Help file; Citadel-86
  581.      will format them appropriately when delivering them to the new user.
  582.  
  583.         This option is also in effect if you are adding new users via the
  584.      Add User command of the User Admin Menu (Section III.6).
  585.  
  586.      II.10. Delivered
  587.         These are the Help files currently contained in RUNTIME.ARC, which
  588.      you should have.  While we always try to keep these files up to
  589.      date, we cannot guarantee that they are in keeping with the release
  590.      version of Citadel-86 that is in RUNTIME.ARC.
  591.  
  592.                                     -5-
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.      .BLB files
  601.      BANNER.BLB   | Placeholder, printed to user on carrier detect.
  602.      ENTRY.BLB    | Printed to novice users entering a message.
  603.      NEWROOM.BLB  | Printed to novice users creating a new room.
  604.      NOCHAT.BLB   | Printed to users using the Chat command when inactive.
  605.      PASSWORD.BLB | Printed to novice users during new login process.
  606.      READDATE.BLB | Printed on entry of ".Read New ?" or Old or Reverse or ...
  607.      UNLOG.BLB    | Placeholder, for closed systems only (see X.4).
  608.      WCDOWN.BLB   | Printed to novice users using .RX command.
  609.      WCUPLOAD.BLB | Printed to novice users using .EF or .EXF or .EF
  610.                   | command.
  611.      WXDOWN.BLB   | Printed to novice users using .RW command.
  612.      WXUP.BLB     | Printed to novice users using .EWF command.
  613.      YMUPLOAD.BLB | Printed to novice users using .EYF command.
  614.      YMDOWN.BLB   | Printed to novice users using .RY command.
  615.      ZMDOWN.BLB   | Printed to novice users using .RZ command.
  616.      ZMUP.BLB     | Printed to novice users using .EZF command.
  617.  
  618.      .MNU files
  619.      AIDE.MNU     | Printed when an Aide enters .Aide ?.
  620.      AIDEFLR.MNU  | Printed when an Aide enters ;Aide ?.
  621.      CONFG.MNU    | Printed when a user enters .Enter Configuration ?.
  622.      CTDLOPT.MNU  | Printed when a Sysop enters ? at the Privileged fn: prompt.
  623.      EDIT.MNU     | Printed when a user enters ? at the entry cmd: prompt.
  624.      ENTOPT.MNU   | Printed when a user enters .Enter ?.
  625.      FLOOR.MNU    | Printed when a user enters ;?.
  626.      MAINOPT.MNU  | Printed when a user enters ? or .? at a room prompt.
  627.      NETEDIT.MNU  | Printed when the Sysop enters ? at the Net Edit: prompt.
  628.      NETOPT.MNU   | Printed when the Sysop enters ? at the Net Cmd: prompt.
  629.      READOPT.MNU  | Printed when a user enters .Read ?.
  630.      ROOMA.MNU    | Printed when a remote Aide enters ? at the room edit:
  631.                   | prompt.
  632.      ROOMS.MNU    | Printed when a Sysop enters ? at the room edit: prompt.
  633.      SYSOPT.MNU   | Printed when a Sysop enters ? at the Other commands:
  634.                   | prompt.
  635.      USEROPT.MNU  | Printed when a Sysop enters ? at the User Admin: prompt.
  636.  
  637.      .HLP files
  638.      AIDE.HLP     | Aide help file.
  639.      AIDEFLR.HLP  | Aide help file for floor commands.
  640.      BASICS.HLP   | Some basic hints for the novice.
  641.      ENTER.HLP    | Help for the Enter commands.
  642.      EXTENDED.HLP | Explains usage of the "." commands.
  643.      FILES.HLP    | Upload/Download help.
  644.      FLOORS.HLP   | Floor help for the normal user.
  645.      FORGET.HLP   | Help on the ZForget room command.
  646.      GOTO.HLP     | Help on the Goto command.
  647.      HELD.HLP     | Help on Holding messages.
  648.      HELPOPT.HLP  | A directory of Help files.
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.                                     -6-
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.      HIDDEN.HLP   | Help on Hidden rooms.
  666.      HOURS.HLP    | Place holder, should contain your hours.
  667.      LOGINOUT.HLP | Help on Logging in and out of the system.
  668.      MAIL.HLP     | Help on Citadel-86's Mail system.
  669.      MAINHELP.HLP | Printed when user enters the Help command.
  670.      NET.HLP      | Help on C86Net.  This can be killed if you are not
  671.                   | networking.
  672.      POLICY.HLP   | Place holder, should contain your policy.
  673.      READ.HLP     | Help on using the Read commands.
  674.      SKIP.HLP     | Help on using the Skip command.
  675.      SUMMARY.HLP  | Complete summary of the "." and ";" commands.
  676.      YMODEM.HLP   | Help on YMODEM.
  677.  
  678.  
  679.      III. SYSOP PRIVILEGED FUNCTIONS
  680.  
  681.      III.1. Introduction
  682.         In any system, there must be someone in charge if the system is to be
  683.      successful, and that person must have special abilities.  In Citadel-86,
  684.      anyone who has access to the system console may execute many of the Sysop
  685.      capabilities, and the root of all these evils (for necessary as Sysop
  686.      powers are, they often lead to evil) is the Privileged Fn: menu (aka
  687.      the Sysop Menu).
  688.  
  689.      III.2. Access
  690.         The Sysop Menu is accessed by typing a ^L (Control-L) at any room
  691.      prompt.
  692.  
  693.      III.3. Access Restrictions
  694.         Access to the Sysop Menu is dependent on the location of the user at
  695.      the time of attempted use.
  696.  
  697.         If the user is at the System Console, then the user does not even have
  698.      to log in to use the Privileged Functions, once the System is in Console
  699.      mode.  While this may seem somewhat precarious to the prospective Sysop,
  700.      keep in mind that most installations do not normally run in public
  701.      locations.
  702.  
  703.         If the user is a remote user, then access is very restricted.  First,
  704.      the system must be using the #sysPassword feature (see Section II.5.C of
  705.      INSTALL3.MAN) of Citadel-86.  Second, the user in question must be an
  706.      Aide of the system.  Finally, the user must possess the password
  707.      specified in the #sysPassword file, because the system will query the
  708.      Aide for the password when the ^L is pressed.
  709.  
  710.      III.4. Sysop Capabilities
  711.         Due to the prejudices of the implementor, Citadel-86's Sysop
  712.      capabilities are neither variegated, overly powerful, or pretty; the
  713.      users of the system come before the Sysop.
  714.  
  715.         Be that as it may, the Sysop Menu is exactly what it sounds like: a
  716.      menu of choices which the Sysop may select from.  After each command
  717.      is executed, the Sysop is queried for another.
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.                                     -7-
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.         This is the current official Sysop Menu.
  732.  
  733.      (CTDLOPT.MNU)
  734.  
  735.        <A>bort to main menu
  736.        <B>aud rate selection
  737.        <C>hat enable/suppress switch
  738.        <D>ebug switch
  739.        <E>cho to screen switch
  740.        <F>ile grab
  741.        <I>nformation
  742.        <M>odem mode
  743.        <N>etworking commands
  744.        <O>ther commands
  745.        <R>einitialize modem
  746.        <S>et date
  747.        <U>ser Administration
  748.       e<X>it to MS-DOS
  749.  
  750.         And here it is in detail.
  751.  
  752.      III.4.a <A>bort
  753.         This command exits from the Sysop Menu, leaving you at the current
  754.      room prompt in CONSOLE mode.  This command is equivalent to the
  755.      <M>odem mode command (III.4.i) if the user is a remote caller.
  756.  
  757.      III.4.b <B>aud rate selection
  758.         This antiquated command allows you to set the baud rate
  759.      of the serial port to the value that you indicate.  This command has some
  760.      occasional usefulness in certain debug situations, so it still exists.
  761.  
  762.      III.4.c <C>hat enable/disable
  763.         This command acts as a toggle for Chat enabled/disabled.  When Chat is
  764.      enabled, the System will display a 'C' somewhere on your Status bar, and
  765.      users using the <C>hat command will be able to page you.  When the toggle
  766.      is off, users using <C>hat will be greeted by your NOCHAT.BLB file (see
  767.      Section I, HELP FILES).  Aides using the .Aide Chat command can, however,
  768.      override this toggle.  A Sysop who really, truly wants privacy can use
  769.      the +nochat option on the command line to shut Aides out (see Section
  770.      II.9.a of INSTALL3.MAN).
  771.  
  772.      III.4.d <D>ebug switch
  773.         This toggle command alternately turns debug code off and on.  Under
  774.      normal circumstances, this toggle should always be off.  There is no
  775.      telling what it will do from version to version, and in general will be of
  776.      little, if any, help in isolating problems with your installation; it is
  777.      more of a programming aide.
  778.  
  779.      III.4.e <E>cho to screen
  780.         This toggle controls whether any output goes to the screen when the
  781.      system is in MODEM mode.  This option is, of course, inoperative while
  782.      the system is in CONSOLE mode.
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.                                     -8-
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.      III.4.f <F>ile grab
  798.         This command allows the Sysop to "grab" text files that are anywhere
  799.      on his disk system into his Held Message buffer.  In essence, this gives
  800.      the Sysop an equivalent ability to a normal user's composing a message
  801.      offline and then uploading it.  The Sysop may compose a message using
  802.      his or her favorite editor, and then <F>ile grab it into the Held
  803.      Message Buffer.  However, there are more flexible and convenient ways of
  804.      doing this; see Section XII, Sysop Editor.
  805.  
  806.         To be more precise, the <F>ile grab command appends the text file
  807.      (or as much as it can digest) to the Held Message Buffer, thus allowing
  808.      construction of messages from several sources.  Furthermore, none of the
  809.      other contents of the Held Message are disturbed.  Therefore, you can
  810.      begin writing a message using Citadel-86, hold the message, <F>ile grab
  811.      something, and continue onwards.
  812.  
  813.      III.4.g <I>nformation
  814.         This command provides information on the current version of Citadel-86
  815.      that you are running. The information is provided in the following format:
  816.  
  817.              Citadel-86 VM.mm
  818.              Net Version N.n
  819.              Commands version O.ooo
  820.              Ctdlcnfg.sys version Q
  821.  
  822.         "Citadel-86 VM.mm" is the same version that is printed on Carrier Detect
  823.      to users.  The "M" digit indicates the Major Change that Citadel-86 is at
  824.      ("1" was simply a version that worked under MS-DOS, "2" was the addition
  825.      of C86Net, "3" the addition of Floors).  The "mm" digits indicates changes
  826.      made to Citadel-86 that provides normal users with substantial new
  827.      capabilities.  Typically, "mm" does not change for new Sysop capabilities,
  828.      cosmetic changes, or the like; it's really nothing more than a gross
  829.      indicator of the version.
  830.  
  831.         "Net Version N.n" indicates the network capability of Citadel-86.  "N"
  832.      indicates any Major changes to the network (the first version of C86Net
  833.      did not have a number [boy, was it bad!], the second version was "0", and
  834.      the current is "1").  Due to the expandable nature of C86Net, "N" will
  835.      probably never change again.  "n" indicates Facility additions.  The
  836.      association of "n" to Facility addition is documented in the INCREM.* files
  837.      (which will be described shortly), and detailed in NETWORK3.MAN.
  838.  
  839.         "Commands version O.ooo" tells the real story behind what version you
  840.      are running.  "O" is the Enhancement version, and is incremented whenever
  841.      Citadel-86 is enhanced with a new command or appearance which does not
  842.      require a change to the "Citadel-86 VM.mm" version.  "ooo" is the Fix
  843.      version, and is incremented whenever a bug is fixed or another internal
  844.      change takes place.  "O.ooo" values are, again, documented in the INCREM.*
  845.      files.
  846.  
  847.  
  848.         "Ctdlcnfg.sys version Q" tells what version of CTDLCNFG.SYS the system
  849.      is at.  Typically, this value is only incremented for Major Releases.
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.                                     -9-
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.         So what are these INCREM.* files?  These files, available on Test
  864.      System (ask the Sysop for access to them), and possibly other systems,
  865.      document the changes made to Citadel-86, albeit very tersely.  The format
  866.      of the documentation is:
  867.  
  868.      <version change>        <date>          <description>
  869.  
  870.         <version change> usually refers to the Commands version, although it
  871.      can refer to any of the version information in the Sysop's <I>nformation
  872.      command.  <date> is when the version change was written/released.
  873.      Description is the terse description of what occurred to force the change
  874.      in version; when it is "???", it means that the Sysop was programming in
  875.      his sleep again and forgot what he did (here we take a deep breath ...).  
  876.      Occasionally you will be referred to other files documenting changes in
  877.      detail.
  878.  
  879.         The INCREM.* files constitute the most reliable information on
  880.      upgrades to Citadel-86, short of asking Test System's Sysop himself.
  881.      Since he is a very grumpy person (born that way, you see), and is not
  882.      adverse to biting off the heads of anyone who comes near, it is better
  883.      to peruse these files once you have access to them.
  884.  
  885.      III.4.h <M>odem mode
  886.         This command returns the system to MODEM mode.  If you have logged in
  887.      at the CONSOLE, it is NOT a good idea to use this command until you have 
  888.      logged out.
  889.  
  890.      III.4.i <N>etworking commands
  891.         This option takes you to a submenu that is only available on systems
  892.      that are using the Network facilities (see II.5.d of INSTALL3.MAN and all
  893.      of NETWORK3.MAN).  Since NETWORK3.MAN should explain this menu in detail
  894.      (although perhaps not with the level of organization desired), we shan't
  895.      go any farther here.
  896.  
  897.      III.4.j <O>ther commands
  898.         This option will deliver you to another submenu that is covered in
  899.      Section VII, OTHER COMMANDS MENU.
  900.  
  901.      III.4.k <R>einitialize modem
  902.         This option allows you to reinitialize the modem.
  903.  
  904.      III.4.l <S>et date
  905.         This function lets you set the date of the system.  This is currently
  906.      disabled.
  907.  
  908.      III.4.m <U>ser Administration
  909.         This option leads to another menu system, which is concerned with User
  910.      Administration duties.  See Section III.6.
  911.  
  912.      III.4.n e<X>it to MS-DOS
  913.         Finally, this command should be used to take Citadel-86 down
  914.      gracefully. The current user is logged out if present, and the system 
  915.      will then attempt to deactivate itself.
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.                                     -10-
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.      III.5 Undocumented Sysop Menu Commands
  930.         There are always one or more undocumented commands floating around in
  931.      the Sysop Menu.  These are, without exception, debug commands for use by
  932.      the programmer(s) of Citadel-86, and are not guaranteed to exist from one
  933.      version to another of Citadel-86.  To expand even more upon this
  934.      frightening thought, the safety and integrity of your systems are not
  935.      guaranteed if you start screwing around with these options.
  936.  
  937.         So don't.
  938.  
  939.      III.6 User Administration
  940.         Starting with Citadel-86 V3.14, those Sysop level commands dealing
  941.      with various user privileges have been moved to their own menu, due to
  942.      overcrowding of the main Sysop Menu.  These options, as noted above, are
  943.      reached from the Main Sysop Menu via the <U>ser Administration command.
  944.  
  945.         (USEROPT.MNU)
  946.  
  947.            <A>dd new user
  948.            <D>oor privileges switch
  949.            <E>ndless User (permanent account)
  950.            <K>ill account
  951.            <N>et privileges switch
  952.            <P>rivilege switch (aide set/clear)
  953.            <T>wit switch
  954.           e<X>it to main sysop menu
  955.  
  956.      III.6.a <A>dd user
  957.         This option lets you add new users to your system without logging out 
  958.      of the system yourself.  This is particularly useful for closed systems, 
  959.      especially when the sysop is performing maintenance from remote and is 
  960.      utilizing the remote sysop functionality.  The process is as if a new 
  961.      user were actually logging in, but after the normal questions are asked, 
  962.      the sysop is asked if the new user should be given door and, if 
  963.      appropriate, network privileges.
  964.  
  965.      III.6.b <D>oor Privileges
  966.         Each account on your system may be set to have, or not have, Door
  967.      privileges.  A Door is a program, typically run from a BBS, which allows
  968.      the user to do something.  Citadel-86 Doors capability is detailed in
  969.      Section XIII of this manual.  A user must have Door Privileges, assigned
  970.      using this option, in order to use Doors on your system.
  971.  
  972.      III.6.c <E>ndless User (permanent account)
  973.         You may set any account on your system to be permanent.  This means
  974.      that it will not be automatically reused when new users log in and old
  975.      users don't log in for a long period of time (normally, old accounts,
  976.      if not used for a long time, will be recycled).  The only problem is
  977.      if you should set every account to being permanent, then old accounts,
  978.      even though permanent, will be recycled.
  979.  
  980.         An important implication is if you set a significant amount of accounts
  981.      to be permanent, the scroll time on the other (temporary) accounts will
  982.      become noticeably faster.
  983.  
  984.  
  985.  
  986.  
  987.  
  988.                                     -11-
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.      III.6.d <K>ill Account
  996.         The time-honored function, Kill account, is accessed by typing K at
  997.      the Sysop Menu.  Please don't kill the account of the person currently
  998.      logged in.  Besides being rude, it won't work.
  999.  
  1000.      III.6.e <N>etwork Privileges
  1001.         If you are running a network Citadel-86, you may use this option or
  1002.      the option in the Network Menu (see NETWORK3.MAN) to assign Network
  1003.      privileges to your users.  See NETWORK3.MAN for full details.
  1004.  
  1005.      III.6.f <P>rivileged switch
  1006.         The creation of those drudges, Aides, takes place through this
  1007.      command.  Anyone who is forced to become an Aide should also be forced
  1008.      to read AIDE.HLP (conveniently written in pidgin Swahili), which details
  1009.      most of the Aide capabilities.  As noted, Aides given the system password
  1010.      will gain access to this menu.
  1011.  
  1012.      III.6.g <T>wit Status
  1013.         First, a caveat: this was added reluctantly and may go away some day.
  1014.      Anyone who has been given Twit status no longer may save messages -- but
  1015.      they won't know it.
  1016.  
  1017.      III.6.h e<X>it
  1018.         This option returns you to the Main Sysop Menu.
  1019.  
  1020.      IV. USER LEVELS
  1021.  
  1022.      IV.1 Intro to User Levels
  1023.         Citadel-86 (and related systems) are often popular with users because
  1024.      they do not have the superfluous user levels that many other types of BBS
  1025.      software have.  We believe that this lets the user feel a little more free
  1026.      with the system; the lack of direct control makes them willing to partici-
  1027.      pate in the system earlier.
  1028.  
  1029.         However, this does not mean that Citadel-86 completely lacks in user
  1030.      levels.  Citadel-86 uses the same 3-level hierarchy that came with the
  1031.      original CP/M Citadel.  At the bottom is the normal users, with the usual
  1032.      privileges of reading and writing.  Next comes the Aides, who are users
  1033.      with certain caretaker powers.  Finally, the Sysops and remote sysops,
  1034.      who can do a little more.
  1035.  
  1036.      IV.2 Normal Users
  1037.         Normal users are created, as you might guess, by simply logging in.
  1038.      They may read, write, and upload to all rooms they have access to.
  1039.  
  1040.      IV.3 Aides
  1041.         Aides are created using the <P>rivilege switch on the User
  1042.      Administration Menu (see Section III.4.l).  Aides are users who act as
  1043.      caretakers for the Sysop.  Their abilities and methods are summarized in
  1044.      AIDE.HLP and AIDEFLR.HLP as well as here.  They have access to the
  1045.      private Aide> room.
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.                                     -12-
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.      IV.3.a Message Deletion
  1062.         Aides may delete any message in the system with the exception of
  1063.      messages in Mail>.  Messages which are deleted will be moved to the Aide
  1064.      room, and will be preceded by a message from Citadel noting the name of
  1065.      the Aide who performed the deletion.
  1066.  
  1067.         Messages in Mail> which are deleted by Aides (Aides only have access
  1068.      to their own Mail> room) remain in Mail> and show up in the Aide> room.
  1069.  
  1070.         A message is deleted by <P>ausing the target message during printout,
  1071.      and restarting message output by pressing 'D'.  The message will repeat,
  1072.      and then the system will ask if you wish to Delete the message, Move the
  1073.      message, possibly check the route of the Message (if the message came from
  1074.      the network), Copy the message to another room, or Abort the operation.
  1075.      Selecting D will cause the message to be deleted.
  1076.  
  1077.      IV.3.b Moving Messages
  1078.         Aides may move any message from its current room to another room.  The
  1079.      moved message will also appear in the Aide> room, along with a message
  1080.      regarding who moved the message.  Messages in Mail> may not be moved
  1081.      successfully.
  1082.  
  1083.         A message is moved just like a message is deleted, by selecting 'M'
  1084.      when the system asks if you wish to Delete, Move, or Abort the operation.
  1085.      The Aide is then asked which room to move the message to.  If one or more
  1086.      messages have been moved since the system was brought up, an empty
  1087.      Carriage Return will put the message in the last room a message was moved
  1088.      to.  The Aide does not need to type the entire name of the room to move
  1089.      the message to; a partial name is sufficient, so long as it is unique
  1090.      within the system.
  1091.  
  1092.         Moving a message to an auto-net room does not cause that message to
  1093.      become a net message. Moving a message to an archived room does not cause
  1094.      that message to be archived.  Moving a message to an anonymous room does
  1095.      not cause that message to become anonymous.
  1096.  
  1097.      IV.3.c Message Route Identification
  1098.         The route of a net message from another system can be discovered by
  1099.      Aides, again by using the <P>ause-D sequence.  When this is executed on
  1100.      a net message, the Aide will be faced with the additional option of
  1101.      'R'.  Selecting R will cause Citadel-86 to discover what system passed
  1102.      this message on to you.  This can be useful for attempting to detect
  1103.      network vortices (see NETWORK3.MAN for a thorough explanation of C86Net
  1104.      and Vortices).
  1105.  
  1106.      IV.3.d Room Elimination
  1107.         Aides may kill any room in the system, with the exception of the
  1108.      Mail>, Aide>, and #baseRoom rooms.  A message recording this fact will be
  1109.      placed in the Aide> room.
  1110.  
  1111.         A room is killed by an Aide by being present in that room and execut-
  1112.      ing the .Aide Kill command.
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.                                     -13-
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.      IV.3.e Empty Room Deletion
  1128.         Aides may execute a command that deletes empty, temporary rooms from
  1129.      the system.  A message will be left in the Aide> room listing the rooms
  1130.      deleted by the command.
  1131.  
  1132.         The .Aide Delete command is used for this purpose.
  1133.  
  1134.      IV.3.f Room Editing
  1135.         Aides may edit the rooms of a system, with the exception of the Mail>,
  1136.      Aide>, and #baseRoom rooms.  See Section V. ROOMS for more on these
  1137.      actions.  To edit a room, either <A>ide or .Aide Edit room will allow you
  1138.      to edit the room.  However, Aides may not set the full range of attributes
  1139.      associated with a room; Section V should cover this in full.
  1140.  
  1141.      IV.3.g Message Insertion
  1142.         An Aide may insert the last message deleted into a room.  The .Aide
  1143.      Insert message command allows this.
  1144.  
  1145.      IV.3.h Floor Creation
  1146.         Aides may create floors at will.  New floors are placed in the first
  1147.      empty floor slot, and there is no arbitrary limit on the number of floors
  1148.      in a system.  Floor names may only be 19 characters in length, and each
  1149.      must be unique within the system of floor names.  Floors may not be
  1150.      created while in the Aide>, Mail>, or #baseRoom rooms, because the room
  1151.      that a floor is created in will automatically become a room on that floor.
  1152.  
  1153.         ;Aide Create-floor creates a floor.
  1154.  
  1155.      IV.3.i Room Moving
  1156.         Aides may move rooms from one floor to another, with the exception of
  1157.      the Aide>, Mail>, and #baseRoom rooms.  The Aide should be in a room that
  1158.      is on the floor that the rooms should be moved to.  Once the command is
  1159.      completed, a message will be placed in the Aide> room detailing what rooms
  1160.      have been moved where.
  1161.  
  1162.         The command is ;Aide Move-rooms.  The system will prompt for the names
  1163.      of rooms to be moved to the current floor.  Room names must be specified
  1164.      in full.
  1165.  
  1166.      IV.3.j Floor renaming
  1167.         The ;Aide Rename-floor allows an Aide to rename a Floor.  The name must
  1168.      be unique amongst the floors.
  1169.  
  1170.      IV.3.k Floor Killing
  1171.         Aides may delete Floors.  When this command is executed, the current
  1172.      floor is assumed to be the target; the #baseFloor floor may not be killed.
  1173.      The Aide will be asked if the rooms on the floor should be killed outright,
  1174.      or placed on the #baseFloor.
  1175.  
  1176.         The command is ;Aide Kill-floor.
  1177.  
  1178.      IV.3.m Aide Command Summary
  1179.  
  1180.       .Aide Delete empty rooms
  1181.       .Aide Edit current room
  1182.       .Aide Insert pulled message
  1183.       .Aide Kill current room
  1184.  
  1185.  
  1186.                                     -14-
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.       ;Aide Create floor
  1194.       ;Aide Delete empty floors
  1195.       ;Aide Kill floor
  1196.       ;Aide Move rooms to floor
  1197.       ;Aide Rename floor
  1198.  
  1199.      IV.3.n Possible extra privileges
  1200.         Depending on the configuration of the system, Aides may have additional
  1201.      privileges that the users do not.
  1202.  
  1203.         First, Aides may be the only users able to create new rooms.
  1204.  
  1205.         Second, Aides may be the only users able to use the Mail> room.
  1206.  
  1207.      IV.4 Sysops
  1208.         There are potentially two different Sysops.
  1209.  
  1210.         First, and always, there is the person at the system console.  Certain
  1211.      Sysop abilities can be executed without being logged in, notably the
  1212.      Sysop Menu functions (Section III: SYSOP PRIVILEGED FUNCTIONS); the rest,
  1213.      what few there are, require that the Sysop be logged in.
  1214.  
  1215.         Second, when the #sysPassword parameter is in use, an Aide in
  1216.      possession of the system password may use it to become a remote Sysop.
  1217.      A Remote Sysop has most of the capabilities of an Aide at the System
  1218.      Console, including access to the entire Sysop Menu, and complete control
  1219.      of room editing (see Section V: ROOMS).
  1220.  
  1221.         The only other options available to a Sysop that are not available to
  1222.      Aides, outside of the Sysop Menu, follow.
  1223.  
  1224.      IV.4.a Message Journaling
  1225.         Sysops may select individual messages to be placed in normal MS-DOS
  1226.      text files for future reference; this is called Journaling. This command
  1227.      is executed by <P>ausing the target message during output, and restarting
  1228.      it with a 'J'.  The system will then ask for the name of a file to place
  1229.      the text of the message in.  If the Journaling command has been used
  1230.      before, then an empty Carriage Return will cause the message to be
  1231.      appended to the last file specified.
  1232.  
  1233.      IV.4.b Directory Journaling
  1234.         Sysops may Journal the directories of directory rooms.  The process is
  1235.      the same as Message Journaling.
  1236.                                              
  1237.  
  1238.      V. ROOMS
  1239.  
  1240.      V.I Room Attributes
  1241.         Rooms are the basic foundation of the Citadel-86 system, acting as the
  1242.      main organizer and container of the messages of the system; the collection
  1243.      of rooms of a Citadel-86 essentially constitutes the character of the
  1244.      system.
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.                                     -15-
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.         Rooms on a Citadel-86 can have a number of attributes associated with
  1260.      them, each working independently, and most do not interfere with each
  1261.      other's usefulness.  With the exception of the first three rooms of a
  1262.      system, there should not be any restriction on what rooms can have what
  1263.      attributes.  So let's discuss what a room can do, besides contain messages.
  1264.  
  1265.         In order to set any of these attributes, the room must be edited by
  1266.      an Aide.  If the Aide is accessing the system remotely and has not used
  1267.      the Remote Sysop Password, then the Aide's powers are restricted, while
  1268.      an Aide at the system console or a Remote Sysop's powers are not
  1269.      restricted.  In the following discussion, the option letter used to
  1270.      activate or deactivate an attribute is given along with the explanation
  1271.      of the feature.
  1272.  
  1273.      V.I.1 Room Archival
  1274.         <A>rchive status, a Sysop-only option, allows the Sysop to save all the
  1275.      messages that are entered into a room, whether locally or via the network,
  1276.      to a normal MS-DOS text file (formatted for a 80 column user).  When this
  1277.      option is activated, the Sysop is asked for a filename that will contain
  1278.      the saved messages.  This file may reside anywhere on the system.  An
  1279.      initial archive of the room will take place, and thereafter all messages
  1280.      entered into this room will be saved to the file upon entry.  This includes
  1281.      messages received over C86Net.
  1282.  
  1283.         Messages that are deleted from the room will NOT be deleted from the
  1284.      archive file, and, similarly, messages that were entered in another room
  1285.      and subsequently moved to the archive room will not be saved to the
  1286.      archive file, except on initial archive.
  1287.  
  1288.      V.I.1.a Room Archival: Advanced Usage
  1289.         Typically, the name (and/or location) of the archive file should be
  1290.      changed by editing the room.  However, the impatient or secretive Sysop
  1291.      can change the name of the archive file in another way.  The names of the
  1292.      files used for room archival are kept in the text file CTDLARCH.SYS, which
  1293.      resides in the #ROOMAREA directory.  CTDLARCH.SYS is generated and
  1294.      maintained by CTDL.EXE, and should not be disturbed while CTDL.EXE is in
  1295.      operation (i.e., through <O>utside commands).  When CTDL.EXE is down,
  1296.      however, the Sysop may edit CTDLARCH.SYS to his liking.  Adding entries
  1297.      will be ineffective; changing entries works.  The format is
  1298.  
  1299.         <room slot number> <file name>
  1300.  
  1301.      The room slot number should not be changed.  The filename, of course, may
  1302.      be changed.
  1303.  
  1304.         Do not delete entries from this file, either.
  1305.  
  1306.      V.I.2 Backbones
  1307.         Please see NETWORK3.MAN for the use of the <B>ackbone status option.
  1308.      This is a Sysop only option.
  1309.  
  1310.      V.I.3 Directory status
  1311.         Please see Section VI.y for details on the upload/download capabilities
  1312.      of Citadel-86 that are made available through the <D>irectory status
  1313.      option of room editing, a Sysop only option.
  1314.  
  1315.  
  1316.  
  1317.  
  1318.                                     -16-
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.      V.I.4 Information Editing
  1326.         The <E>dit Information option allows any aide to edit the information
  1327.      associated with this room.  If Information already exists for this room,
  1328.      the aide is asked if he or she wishes to edit the already existing
  1329.      Information.  In any case, the Aide is placed in the Citadel-86 message
  1330.      editor and allowed to create new Information for the current room.  If
  1331.      the Aide should <A>bort the entry, then any prior Information on the room
  1332.      is not disturbed; a <S>ave will replace prior Information with the
  1333.      Current Information, including updating the CTDLINFO.SYS file resident
  1334.      in your #ROOMAREA directory.
  1335.  
  1336.         Since the first three rooms of a system (#baseRoom, Aide>, and Mail>)
  1337.      cannot be edited, the sysop may manually place appropriate entries in
  1338.      CTDLINFO.SYS if needed.  CTDLINFO.SYS is a text file of entries.  Each
  1339.      entry begins with the line "#room <roomname>" and ends with a blank line,
  1340.      with all information between the first and last line being the Information
  1341.      for the named room.  So, for instance
  1342.  
  1343.      #room Mail
  1344.      This is the Mail room, gentleuser.
  1345.  
  1346.      would be a perfectly adequate entry, remembering to keep blank lines
  1347.      present in the file.
  1348.  
  1349.      V.I.5 Innominate status
  1350.         The <I>nnominate option allows any aide to designate a room to be an
  1351.      Anonymous room.  A room which has been designated Innominate behaves
  1352.      differently from a normal room in the following ways:
  1353.  
  1354.        o All messages entered in it locally are saved with the author's name
  1355.      being "****".  Editing a room back to normal ("authored") status does NOT
  1356.      restore those messages' authors.
  1357.  
  1358.        o Echo to screen is suppressed during message entry in Innominate rooms.
  1359.  
  1360.      V.I.6 Lure users
  1361.         Any aide may use the <L>ure users option to, in effect, invite any
  1362.      user into any room except the Aide room.  The user(s) specified are given
  1363.      access to the room being edited.  If they already had access, no change
  1364.      is made to their status.
  1365.  
  1366.      V.I.7 Moderator
  1367.         Any room may have one moderator attached to it.  A moderator is
  1368.      effectively an Aide for that single room, able to edit the room and delete
  1369.      messages.  The user specified does not need any special privileges.  Any
  1370.      Aide may change the moderator setting for a room via the <M>oderator
  1371.      command.
  1372.  
  1373.      V.I.8 Name Change
  1374.         Any Aide may change the name of a room via the <N>ame change command
  1375.      while editing a room.  There are a couple of constraints on the name of a
  1376.      room.
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.                                     -17-
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.        o It must be 19 characters or less long.  A zero length name IS viable,
  1392.      but be aware that if the room ever becomes empty, there is no way to
  1393.      access that room.
  1394.  
  1395.        o It must be unique within the system.
  1396.  
  1397.      V.I.9 Only Invitational
  1398.         A room can be set to one of three status settings insofar that users
  1399.      are allowed access to it.  A room may be Public, in which case all users
  1400.      have access to the room.  If a room is Private, then all users that know
  1401.      the name of the room may gain access to the room simply by typing ".Goto
  1402.      FULLROOMNAME". (See Section V.I.9 for the Public/Private settings.)
  1403.      Or a room may be Invitational.  Users can only gain access to such a room
  1404.      by being invited (i.e., <L>ured -- see Section V.I.5).  Even if they know
  1405.      what the name of the room is, they cannot successfully .Goto it.
  1406.  
  1407.         A room can be either Public, Private, or Invitational, but not any
  1408.      combination.  It would perhaps be more logical to combine the <O>nly
  1409.      Invitational command (this one), with the following command, <P>rivacy
  1410.      status.
  1411.  
  1412.      V.I.10 Privacy Status
  1413.         Any Aide may set the <P>rivacy status of a room.  Section V.I.8
  1414.      provides an adequate explanation of privacy and rooms.
  1415.  
  1416.      V.I.11 Temporary Status
  1417.         Any Aide may set the <T>emporary status of a room.  Any room may be
  1418.      either Temporary or Permanent.  A Temporary room is a room that may be
  1419.      deleted by any of three events when it becomes empty (i.e., no messages
  1420.      in the room):
  1421.  
  1422.        o An Aide executes a .Aide Delete empty rooms command;
  1423.  
  1424.        o The number of rooms in use in the system reaches #MAXROOMS and another
  1425.      room is created;
  1426.  
  1427.        o The system is reconfigured (see Section ??? [installation manual] on
  1428.      the CONFG program).
  1429.  
  1430.         A Permanent room may only be deleted by a specific .Aide Kill Room
  1431.      command.
  1432.  
  1433.         All Directory rooms are Permanent.  Otherwise, if Permanent status is
  1434.      desired for any room, it must be explicitly set by use of the <T>emporary
  1435.      status command.
  1436.  
  1437.      V.I.12 Shared status
  1438.  
  1439.         The Sysop may use the <S>hared status command to affect the current
  1440.      room's Network status, including which systems to network with and which
  1441.      should not be networked with.  Please consult NETWORK3.MAN for more
  1442.      details.
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.                                     -18-
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.      V.I.13 Upload/Download status
  1458.         The Sysop may use the <U>/D status command to change the upload/down-
  1459.      load status of a directory room.  See Section VI.y for more details on 
  1460.      this command.
  1461.  
  1462.      V.I.14 Withdraw Invitations
  1463.         On occasion, users need to be evicted from a room.  The <W>ithdraw
  1464.      Invitations command allows any Aide to evict users from a room.  This
  1465.      command is certainly not useful for Public rooms, and not entirely
  1466.      effective for private rooms, but can be very useful for Invitational
  1467.      rooms.
  1468.  
  1469.      V.I.15 Network Downloadable
  1470.         The Sysop may use the <Z> command to designate whether or not a
  1471.      directory room may be accessed via the network for download purposes.
  1472.      See Section VI.y for more details on this command.
  1473.  
  1474.      V.II Other room editing commands
  1475.         There are two other commands that an Aide may use while editing rooms.
  1476.      The first is <V>alues, which gives the current positive attributes of the
  1477.      room.  The second is e<X>it editing, for exiting from the editing process.
  1478.      When substantive changes have been made to a room, a message is left in
  1479.      the Aide> room detailing the changes made.
  1480.  
  1481.      V.III Three exceptions
  1482.         Three rooms cannot be modified through editing (or any other process),
  1483.      and these rooms are
  1484.  
  1485.        o #baseRoom>.  This room is always a Public, Permanent room.
  1486.  
  1487.        o Mail>.  This room is a very special room, but essentially boils down
  1488.      to Public, Permanent, with some Shared capabilities.
  1489.  
  1490.        o Aide>.  This room is a Permanent, Invitational room, with Invitations
  1491.      automatically issued to Aides.
  1492.  
  1493.      VI.UPLOAD/DOWNLOAD CAPABILITIES
  1494.  
  1495.      VI.I Origin
  1496.         According to what rumors we have gathered from Seattle, the origin of
  1497.      Citadel, the original Citadel installations did not have any upload/down-
  1498.      load facilities; they were pure message systems.  Reportedly, "directory
  1499.      rooms" were kludged in at a later time as an afterthought by an early
  1500.      author.
  1501.  
  1502.         They must be one of the more successful kludges in history.  Directory
  1503.      rooms, which serve as "windows" to the host operating system's file system
  1504.      in Citadel-86, have proven to be extremely useful constructs, allowing
  1505.      access to specified parts of MS-DOS's file system while not disrupting
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.                                     -19-
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.      Citadel's structure with such excess baggage as "file sections".  The room
  1524.      structure allows easy division of files into their subject areas, and this
  1525.      integration into the room structure offers the additional, and very
  1526.      useful plus, of allowing conversation relevant to those files to coexist
  1527.      within easy reach of the user.  Compare this to, say, Fido or RBBS, which
  1528.      force you to go from a file section to a message section in order to
  1529.      discuss a file, and the advantages of Citadel (at least to this author)
  1530.      become obvious.
  1531.  
  1532.      VI.2 Creation
  1533.         A directory room is created by editing an existing room to directory
  1534.      status.  This is an operation that only a Sysop can do, using the .Aide
  1535.      Edit command.  Once at the room edit prompt, the Sysop should select the
  1536.      <D>irectory option.
  1537.  
  1538.         Citadel-86 will ask if you wish to activate a directory for this room,
  1539.      and you should of course answer yes.  It will then ask for the name of a
  1540.      directory to associate with this directory room.  You should answer with
  1541.      the name of a normal MS-DOS directory.  You may specify a drive, and the
  1542.      directory may be a subdirectory of the current directory, or it may be
  1543.      an absolute specification; there is no limit.  If you simply hit a
  1544.      Carriage Return, Citadel-86 will assume that you mean the current
  1545.      directory on the current drive.
  1546.  
  1547.         If you specify a directory that does not exist, Citadel-86 will ask
  1548.      you if it should be created, and if you answer affirmatively, it will
  1549.      be created.  Otherwise, you will be asked again.
  1550.  
  1551.         Finally, the system will ask if the room will accept uploads and allow
  1552.      downloads (these options can be accessed while editing rooms separately
  1553.      by selecting the <U>/D option).  This gives you some control over the
  1554.      behavior of the directory room.  When either of these options are "off",
  1555.      only a sysop can upload or download or read the directory, depending on
  1556.      the option.
  1557.  
  1558.         A file room is identified by the character at the end of the room name.
  1559.      Normal rooms have a ">".  Normal directory rooms have a "]", while
  1560.      directory rooms which are also shared with other systems (which has no
  1561.      meaning insofar as the directory goes) have a ":".
  1562.  
  1563.      VI.3 User commands
  1564.         The user is provided with two sets of commands for accessing the
  1565.      directory of a room.
  1566.  
  1567.      VI.3.i Content listing
  1568.         When a listing of the files in a room is requested, only the visible
  1569.      files are listed.  Hidden files and subdirectories in the directory are
  1570.      not listed.
  1571.  
  1572.         There are two commands for displaying a listing of the files accessible
  1573.      in a room.  The first command is
  1574.  
  1575.          .Read Directory <file-spec> <date-spec>
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.                                     -20-
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.         If <file-spec> is empty, then all files are listed; otherwise, only 
  1590.      those files matching <file-spec> are listed.  For a full explanation of
  1591.      <file-spec>, see X.3.c.
  1592.  
  1593.         <date-spec> allows the user to specify files matching <file-spec> to
  1594.      also meet a date requirement.  "<" is used to specify files dated before
  1595.      a given date, while ">" is to specify after the given date (inclusive).
  1596.      If the user does not specify a date after the ">" or "<", then the date
  1597.      of their last logon is used.
  1598.  
  1599.         Files are listed for the user as <name>
  1600.      <block size>, where block size is the size of the file in 128 byte blocks,
  1601.      which, not coincidentally, is the size of blocks used by XMODEM for file
  1602.      download.
  1603.  
  1604.         The second command is
  1605.  
  1606.          .Read Extended-directory <file-spec> <date-spec>
  1607.  
  1608.         which allows the user to see file descriptions "attached" to files.
  1609.      Files are listed in this format
  1610.  
  1611.      <name>  <size> | <description> <file date>
  1612.  
  1613.         which is formatted to the user's display.  Each file starts on a new
  1614.      line, thus providing a readable format.
  1615.  
  1616.         The descriptions for the files in a room are kept in a normal text file
  1617.      named FILEDIR.TXT, which must reside in that directory.  If the sysop
  1618.      wishes to create file descriptions for a set of files, the format of
  1619.      FILEDIR.TXT is simple, and it is
  1620.  
  1621.              <name><one or more spaces><description on one line>
  1622.              . . .
  1623.  
  1624.         FILEDIR.TXT must be in alphabetical order (case-insensitive) in order
  1625.      to function correctly.  Each description may be no more than 7K long, and
  1626.      must reside on the same line as the name.
  1627.  
  1628.         The FILEDIR.TXT for any given directory room is updated by Citadel-86
  1629.      whenever a file is uploaded to that directory room, thus minimizing the
  1630.      maintenance chores of a Sysop with numerous directory rooms.
  1631.  
  1632.         You may place comments in a FILEDIR.TXT simply by placing before each
  1633.      comment line a ';'.  Since these comments are displayed to the user during
  1634.      the use of .Read Extended, this lets the sysop embed informative messages
  1635.      within the file directory, such as "These files are for Amigas only."
  1636.      In FILEDIR.TXT, the above would be ";These files are for Amigas only."
  1637.      You may scatter these comments about wherever you wish in FILEDIR.TXT.
  1638.      Comments are the only exception to the sorting rule mentioned above,
  1639.      Citadel-86 only prints such lines during processing and does nothing else
  1640.      with them.
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.                                     -21-
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.         Finally, if there is a file missing from FILEDIR.TXT (or if
  1656.      FILEDIR.TXT itself is missing), there is NOTHING to worry about.  There
  1657.      will simply be no file description displayed for the affected files.
  1658.      Further, excess entries in a FILEDIR.TXT do no harm to the listing
  1659.      (however, if you are fastidious you should research the Citadel-86 utility
  1660.      CULLDIR.EXE).
  1661.  
  1662.         The only weakpoint in FILEDIR.TXT is the fact that the entries must be
  1663.      in alphabetical order.  If they are not, file descriptions will not
  1664.      display at all.
  1665.  
  1666.      VI.3.ii File transfers
  1667.         The second set of commands for accessing the directory of a room are
  1668.      those concerned with uploads and downloads.
  1669.  
  1670.      VI.3.ii.a Upload Protocols
  1671.         There are three protocols supported for the upload of files, XMODEM,
  1672.      YMODEM, and WXMODEM.  While this subject is covered in the FILES.HLP
  1673.      help file, we'll go over it here, too.  (External drivers for uploads are
  1674.      covered in section XV of this manual.)
  1675.  
  1676.         The command format for uploading a file via XMODEM is
  1677.  
  1678.              .Enter File     or .Enter Xmodem File
  1679.  
  1680.         The command format for uploading a file via YMODEM is
  1681.  
  1682.              .Enter Ymodem File
  1683.  
  1684.         The command format for uploading a file via WXMODEM is
  1685.              .Enter Wxmodem File
  1686.  
  1687.         After typing in any of these commands, Citadel-86 will prompt the user
  1688.      for the name of the new file.  If a file already exists by that name in
  1689.      the directory, the upload is aborted at this point; if the file name is
  1690.      not acceptable for any other reason (for instance, the name is special to
  1691.      DOS, such as CON:, or the user has attempted to specify a drive name),
  1692.      the upload is aborted.
  1693.  
  1694.         Once the filename is accepted, Citadel-86 will prompt for a description
  1695.      of the file.  If the subsequent upload is a success, the directory's
  1696.      FILEDIR.TXT is updated with the name and description of the new file.
  1697.      Citadel-86 will then ask if the user is ready to start the upload.  If the
  1698.      user responds negatively, the upload is aborted; otherwise, the chosen
  1699.      protocol starts in receive mode.
  1700.  
  1701.         YMODEM's BATCH mode is NOT supported for uploads by Citadel-86, for the
  1702.      reason that it would be very easy for a malicious user to abuse the system
  1703.      through the upload of numerous files.
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.                                     -22-
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.      VI.3.ii.b Download Protocols
  1722.         Four protocols are supported for downloads, XMODEM, YMODEM, WXMODEM,
  1723.      and straight text transfers, which is the default transfer protocol
  1724.      if neither of the other three are specified (unlike the upload command, 
  1725.      where XMODEM is the default).  External protocol drivers for file
  1726.      downloads are covered in Section XV of this manual.
  1727.  
  1728.         Command format is
  1729.  
  1730.              .Read [protocol] <Binaryfile|Textfile> [Formatted]
  1731.  
  1732.         XMODEM is specified using <X>modem.
  1733.  
  1734.         YMODEM is specified, of course, using <Y>modem.  When downloading
  1735.      files via YMODEM, only BATCH mode is available, even if only a single
  1736.      file is to be downloaded.
  1737.  
  1738.         WXMODEM is specified using <W>xmodem.
  1739.  
  1740.         The Binaryfile and Textfile specifications are synonyms, being a
  1741.      holdover from the CP/M days of Citadel.  However, the Formatted option
  1742.      can only be used with the Textfile option.  If a file is requested using
  1743.      the Formatted option, the file(s) requested (which Citadel-86 assumes to
  1744.      be normal MSDOS text files) will be formatted to the user's screen.
  1745.      Otherwise, the file is simply sent on a byte-by-byte basis to the user.
  1746.  
  1747.         When an acceptable download command is entered, Citadel-86 will prompt
  1748.      for a filename from the user, which can be a <file-spec> (see VI.3.iii).
  1749.      If more than one file matches <file-spec>, then all those files will be
  1750.      sent using the specified protocol.  In the case of XMODEM, this will
  1751.      probably be less than successful.  A <date-spec> may also be entered
  1752.      at the same time as a file spec, thus allowing the use of BATCH protocols
  1753.      in combinations with file specs.
  1754.  
  1755.      VI.3.iii <file-spec>
  1756.         A <file-spec> for Citadel-86 can range from being a single file (like
  1757.      "HELLO.TXT") to an ambiguous file specification in MSDOS format ("*.TXT"),
  1758.      to a list of files mixing both single file specifications and ambiguous
  1759.      file specifications.  For example,
  1760.  
  1761.              .Read Extended-directory *.MAN HELP.ME C*.HLP
  1762.  
  1763.      would display all the files that match any of those specifications.  Each
  1764.      part of the specification should be separated from the next by one or more
  1765.      spaces.
  1766.  
  1767.      VI.4 Advanced Directory Options
  1768.         The listing of directory rooms and their associated MS-DOS
  1769.      specifications is kept in a normal MS-DOS text file named CTDLDIR.SYS,
  1770.      which resides in the #ROOMAREA directory.  While Citadel-86 automatically
  1771.      maintains this file at all times, not requiring any Sysop interference,
  1772.      the inquisitive Sysop can manipulate this file.
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.                                     -23-
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.         The contents of this file is in this format
  1788.  
  1789.         <room #> <directory specification>
  1790.  
  1791.         The room # field should never be touched.  However, the second field
  1792.      can be changed when Citadel-86 is not up, thus changing the directory
  1793.      associated with the room specified by the room number.
  1794.  
  1795.         Really, though, there's not much reason to change this file manually.
  1796.  
  1797.      VII. OTHER COMMANDS MENU
  1798.  
  1799.      VII.1 General Purpose
  1800.         The purpose of the Other Commands submenu of the Privileged Functions
  1801.      Sysop menu is to allow the Sysop access to commands that may be unique to
  1802.      the installation of Citadel in operation.
  1803.  
  1804.      VII.2 Citadel-86 Other Commands
  1805.         Citadel-86 supports only two commands from this sub-menu -- a haphazard
  1806.      effort, indeed.
  1807.  
  1808.      VII.2.a Deletion
  1809.         The <D>elete File option allows the sysop to delete any file in the
  1810.      MS-DOS file system.  Only a single file at a time may be deleted;
  1811.      ambiguous file names are not supported.
  1812.  
  1813.      VII.2.b Outside Commands
  1814.         The <O>utside Commands option allows the sysop to run programs from
  1815.      within Citadel-86 (but not concurrently).  Since it is sometimes
  1816.      inconvenient to take down Citadel-86 (e.g., from remote) in order to
  1817.      execute some utility or program, this option is useful.
  1818.  
  1819.         When this option is selected, Citadel-86 will write a temporary
  1820.      CTDLTABL.SYS file (see INSTALL3.MAN, Section II.3.a) to disk, and then
  1821.      prompt you for a command line.  You may then attempt to run any program
  1822.      that you wish from the command line, simply as if you were running from
  1823.      the MS-DOS command level.
  1824.  
  1825.         The DOS shell is accessible at this point by simply typing a carriage
  1826.      return.  If you should try to bring this installation up while Citadel-86
  1827.      is up, you will (or should) find that the system won't come up.  This
  1828.      is because Citadel-86 generates a "lock file" during <O>utside command
  1829.      execution.  When you try to bring Citadel-86 up, it will check for the
  1830.      existence of the file CTDLLOCK.SYS, and if found, the system will print
  1831.      an error message and refuse to come up.  In the rare instances that a
  1832.      CTDLLOCK.SYS file exists when it shouldn't (for instance, losing power
  1833.      while executing an <O>utside command), simply delete it and try to
  1834.      bring Citadel-86 up.
  1835.  
  1836.      VII.2.b.i Restrictions
  1837.         There are two actions that you should avoid taking while using the DOS
  1838.      shell from within Citadel-86.
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.                                     -24-
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.         First, do not delete any of the Citadel-86 data files.  These are the
  1854.      *.SYS files, such as CTDLMSG.SYS, CTDLLOG.SYS, CTDLROOM.SYS, etc.
  1855.      However, you may delete or change the CALLLOG.SYS file (this was not true
  1856.      in earlier versions of Citadel-86).
  1857.  
  1858.         Second, do not run any of the Citadel-86 utilities which change the
  1859.      nature of the Citadel-86 data files.  These utilities include DATACHNG,
  1860.      RECOVER1, EXPAND, RECOVER2, etc.  You may run without fear those utilities
  1861.      which only show various things, like CLOG, CLRAY, etc.  In general, if you
  1862.      are not sure, either take your Citadel-86 down or experiment on a small
  1863.      test system.
  1864.  
  1865.      VIII. MISCELLANEOUS SUBJECTS
  1866.  
  1867.      VIII.1 Wha....?
  1868.         Like anything that grows through accretion rather than planning,
  1869.      Citadel-86 has accumulated a clutch of features that don't really fit
  1870.      into any category.  So, rather than trying to create some categories
  1871.      that don't really fit into the great plan of Someone Out There, we
  1872.      decided to write a chapter with a central theme of mishmash that would
  1873.      contain all those features that don't really fit anywhere in particular.
  1874.      So, with no further shampoo ...
  1875.  
  1876.      VIII.2 Chatty Questions
  1877.         When you drop into <C>hat mode to talk to a user, you will be faced
  1878.      with one question before you're actually allowed to communicate with
  1879.      your victim.  The question is:
  1880.  
  1881.         Treat modem as dumb caller (if answering chat type 'Y')?
  1882.  
  1883.         Denigrating as this may seem, it is an accurate question.  There are
  1884.      two ways in which you may find yourself in Chat Mode.  The first is by
  1885.      answering a Chat request by a user.  Since the user has called your
  1886.      board and is using it, it is very safe to assume the user's terminal
  1887.      program is not echoing the characters coming from your BBS back to it;
  1888.      i.e., the user is 'dumb'.
  1889.  
  1890.         The second way you may find yourself is when you are using Citadel-86
  1891.      as a terminal program via the <D>ialout command on the Sysop's Net Menu.
  1892.      When you achieve a connection this way, you will automatically be dropped
  1893.      into Chat Mode with the implicit answer to that question being 'N' -- that
  1894.      is, Citadel-86 is to assume the system on the other end will take care of
  1895.      echoing characters as necessary.
  1896.  
  1897.         So why the question, you ask?  Because occasionally you will call a
  1898.      system and then find a reason to get out of chat while the other system
  1899.      is still on-line, do something, and then get back into Chat to continue
  1900.      your session.  Though it is certainly true you can return to the Net
  1901.      Menu, type <D>ialout again and be automatically dropped into Chat,
  1902.      it's easier to just hit <C>hat at any room prompt, answer 'N', and
  1903.      continue on your merry way.
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.                                     -25-
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.      VIII.3 Chat Capture
  1920.         You, Chief High Sysop, have the ability to capture chats to disk if
  1921.      you choose to do so.  When you capture a chat, a warning will be printed
  1922.      to both you and the chattee saying that the chat is being captured; when
  1923.      you choose to stop capturing chat, another warning will be printed
  1924.      indicating that the session is no longer being captured.  In this way,
  1925.      you cannot successfully be accused of capturing chat sessions without
  1926.      warning.
  1927.  
  1928.         You turn on chat session during a chat by typing ^R (Control-R).  The
  1929.      system will then attempt to open a file named CHAT.TXT, and if it exists,
  1930.      the chat session should be appended to the end of that file.  If the file
  1931.      does not exist, it is created, and the resulting chat placed within.
  1932.  
  1933.         Typing a second ^R will result in the file being closed and the chat
  1934.      capture being turned off.  If you leave the chat session, the capture is
  1935.      automatically turned off at that point, and if you wish to continue
  1936.      capturing the chat (say, if you had to pop out for a moment and then
  1937.      returned), you must turn the capture back on again.
  1938.  
  1939.         By a chat session, we mean both a normal <C>hat, initiated by either
  1940.      you or a caller, and the chat sessions which are initiated by the <D>ial
  1941.      System command of the Network Menu, on which there should be more details
  1942.      in NETWORK3.MAN.
  1943.  
  1944.      VIII.4 File Transfers while in Chat Mode
  1945.         When calling other systems it's not uncommon to discover you wish to
  1946.      grab a file from the other system, or send one of your's to it.  Doing
  1947.      so is quite easy in Citadel-86.
  1948.  
  1949.         For either type of file transfer, however, you must make sure you
  1950.      are in (on your own system) a directory room (see Section V if you aren't
  1951.      sure what a directory room is).  This only makes sense, of course,
  1952.      particularly if you're sending a file to the other system.  If you are
  1953.      not currently in a directory room when you discover your need to transfer
  1954.      a file either way, simply touch ESC, get to a room prompt (if you're not
  1955.      at one already), and .Goto the file.  If you have public directory rooms
  1956.      available, you need not even be logged in.  To get back into Chat mode,
  1957.      you may either go back to the Network Menu (^L-N) and type <D>ialout,
  1958.      or simply at the room prompt type <C>hat and answer 'N' to the question.
  1959.  
  1960.         In order to download a file from the other system into your system,
  1961.      first set up the other system to send you the file(s) you want.  Then
  1962.      touch the PG DN key on the keypad (NUM LOCK OFF!).  The system should
  1963.      prompt for a protocol to use, to which you answer with the correct
  1964.      letter.  If you have any external protocols installed you may select one
  1965.      of those rather than Citadel-86's XMODEM, YMODEM, or WXMODEM.  You
  1966.      should then be prompted for a filename, and then the transfer will
  1967.      commence.  When finished, you'll be asked for a file description, and
  1968.      then you'll be dumped back into Chat mode.  NOTE: Do NOT try to use
  1969.      YMODEM BATCH when grabbing files from another system!  (Z-100s: Control-F
  1970.      is equivalent.)
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.                                     -26-
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.         To upload a file from your own system to another, first make sure you
  1986.      are in the appropriate directory room (i.e., the directory room which
  1987.      holds the file to send).  Set up the other system to receive your file,
  1988.      and then touch the PG UP key.  Citadel-86 will, as it did for downloads,
  1989.      prompt for a protocol and then the file(s) to be sent.  When the download
  1990.      is accomplished you will be dumped into Chat mode.  (Z-100s: Control-E
  1991.      is equivalent.)
  1992.  
  1993.      VIII.5 ESCaping Details of Chat Mode
  1994.         On rare, rare occasion it is necessary to send an ESC while in Chat
  1995.      mode.  Yet, Citadel-86 specifically tells you that an ESC let's you out
  1996.      of Chat!  How do you get around this problem?
  1997.  
  1998.         By using the '\' key first.  When you do so, the system will pass the
  1999.      next key you press through without any interpretation, including the ESC
  2000.      key.  (If you need to send a '\', send two of them.)
  2001.  
  2002.         And one more detail: when <C>hat is used, an ESC from either the
  2003.      caller or from the Sysop will cause the Chat session to end.  When
  2004.      <D>ialout is used, only the ESC from the system console will cause the
  2005.      system to end the Chat session.
  2006.  
  2007.      VIII.6 Typing at the Keyboard When the User is in Control
  2008.  
  2009.      VIII.6.a Sysop Autodial
  2010.         If your system becomes at all popular amongst the locals, you will
  2011.      rapidly find yourself in the position where you cannot get onto your
  2012.      machine whenever you like without committing foul and evil acts such as
  2013.      pulling the plugs out of modems and that sort of thing.  Since that tends
  2014.      to lead to bad reputations and negative karma, Citadel-86 gives the Sysop
  2015.      the ability to auto-dial him(or her)self; that is, you can tell the
  2016.      system, while someone else is on, that you are next in line to use the
  2017.      system. (aka "pulling rank".)
  2018.  
  2019.         To do so, simply type ^T (Control-T) while the person using the system
  2020.      is on.  The next time that the system looks at the keyboard (which is
  2021.      during <P>auses of output and other moments of the system waiting for
  2022.      input from the user) it will note that the ^T has been pressed and
  2023.      (usually) print out an acknowledgement to the system console only (the
  2024.      user will not be aware that you are anywhere near ground zero).  The
  2025.      status bar, which we'll discuss sometime along the way here, if you
  2026.      are using it, will also show that your ^T has been pushed.
  2027.  
  2028.         When the foul user logs out of the system, the system should
  2029.      immediately start beeping at you, once every ten seconds.  If you then
  2030.      hit anything on the keyboard, you get control of the system.  After
  2031.      2 minutes of beeping, the system will return its attention to the modem.
  2032.  
  2033.         If you type ^T twice while the user is on, this feature will be
  2034.      cancelled.
  2035.  
  2036.         If you type ^T when no one is on the system, the system will go into
  2037.      CONSOLE mode.
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.                                     -27-
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.      VIII.6.b Chat Mode
  2052.         You can toggle Chat Mode while a user is on and in control simply
  2053.      by typing ^Z at the SysConsole.  Your status bar (see VIII.7) should
  2054.      reflect the change.  Please note typing ^Z during downloads and uploads
  2055.      won't take effect until the operation is finished.
  2056.  
  2057.      VIII.6.c Echo Mode
  2058.         You can toggle the Echo Mode (see the <E>cho toggle of the Sysop's
  2059.      Menu) by typing ^E while the user is on.  You'll be able to tell if
  2060.      this has taken effect because the display will stop or start when you
  2061.      type the ^E.
  2062.  
  2063.      VIII.7 Denizens of the Status Bar
  2064.         Citadel-86 has a status bar.  This status bar gives you a vague idea
  2065.      of what's going on with the system, using various special messages during
  2066.      system initialization, and then a hint now and then about who's on.  The
  2067.      location of the status bar depends on the machine that Citadel-86 is
  2068.      running on.  If it is a PC Clone, it occupies the second line from the
  2069.      top of the screen.  If it is a Zenith Z-100, it occupies the 25th line of
  2070.      the screen.
  2071.  
  2072.         The status bar should always have
  2073.  
  2074.         "Citadel-86 Vx.xx: "
  2075.  
  2076.      showing.  What shows up after that depends on the state of the system.
  2077.      Special messages appear right after it, but they only show up when the
  2078.      system is coming up.  Here's a generic representation of the status bar
  2079.      when the system is in normal mode:
  2080.  
  2081.      "Citadel-86 Vx.xx:<name of user><time of carrier>[<Chat sig>][<^T sig>]"
  2082.  
  2083.         "Chat sig" is a capital "C", and only shows up when you have Chat mode
  2084.      on.  ^T sig is a "^T", and only shows up when you are next in line to use
  2085.      the system.
  2086.  
  2087.         Additionally, you may also have a clock on your status bar.  This
  2088.      clock, maintained once a minute (except during long reads, downloads, or
  2089.      network sessions), is displayed only if you have the status bar active,
  2090.      and will appear on the far right hand side.  You may disable this clock
  2091.      by adding "#CLOCK none" to your ctdlcnfg.sys (see INSTALL3.MAN).
  2092.  
  2093.      VIII.8 Modem disabling
  2094.         You may have noticed that when you took control of the system by
  2095.      pressing ESC, the DTR light on your modem went out.  Or you may not have
  2096.      noticed.  But it did, or should have.  This leads to that age-old
  2097.      philosophical question, "When does this happen?"  Well, DTR comes down
  2098.      (or, more generally, the modem is disabled) when the Sysop takes control
  2099.      of the system and there is no carrier.  If there is carrier, then
  2100.      connection is maintained, even when coming out of the Chat mode initiated
  2101.      by the <D>ialout.
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.                                     -28-
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.      VIII.9 BADWORDS.SYS
  2118.         Usually, there is little need to actively censor Citadel users.
  2119.      However, on rare occasion you will run into local ruggies (twits, jerks,
  2120.      etc) who are expressly intent on destroying your system.  Although
  2121.      it is usually more effective to deal with the parents of such village
  2122.      idiots, or with the law when they are friendly to the local BBS
  2123.      community, Citadel-86 does provide a tool for censoring and (we hope)
  2124.      discouraging such children.
  2125.  
  2126.         If the file BADWORDS.SYS exists in your #ROOMAREA directory,
  2127.      Citadel-86 will attempt to read it to form a list of forbidden words.
  2128.      Any message entered by a non-aide will not be saved in the message
  2129.      base when it contains one of these bad words.  BADWORDS.SYS should
  2130.      be a simple text file.  All but the first two lines will contain one of the
  2131.      forbidden words (or phrases, if you like).  Please note: odd results can
  2132.      happen with small words, because this works just like the message editor's
  2133.      Replace function.  For instance, if "frog" were listed in that file,
  2134.      any message containing the word "froggie" would also not be saved.
  2135.  
  2136.         The first line of BADWORDS.SYS is reserved for an "icky" level.  This
  2137.      level indicates how many times a user may use one of the forbidden words
  2138.      before the system will drop carrier on them.  You indicate this icky
  2139.      level by simply putting the number there, like "5".  If you were to
  2140.      put "0" at the top of the file Ctdl would kick the offender off on the
  2141.      first offense.
  2142.  
  2143.         The second line of BADWORDS.SYS, if non-blank, is the name of the file
  2144.      all sub-standard messages will be written to.  If you don't want
  2145.      sub-standard messages saved anywhere, then just leave it blank.
  2146.  
  2147.         Any user kicked off the system for offending against BADWORDS.SYS
  2148.      will also be marked in CALLLOG.SYS by the letter 'B' following their
  2149.      name.
  2150.  
  2151.      VIII.10. Massive Privileges
  2152.         Sometimes you wish you could give everyone one of the privileges -- or
  2153.      take it away from everyone.  You can do this now in certain circumstances.
  2154.      When you are prompted for a user name, you can reply with either "Citadel"
  2155.      or "*".  Either means you want to apply the privilege to all of the
  2156.      accounts.  You'll then be asked if you want to give the privilege to
  2157.      everyone.  If you demur, then you'll be asked if you want to take it away
  2158.      from everyone.  If you again demur, you've effectively aborted the
  2159.      operation.  Otherwise Citadel-86 will apply or take away the privilege
  2160.      from everyone.
  2161.  
  2162.         This works for the following privileges:
  2163.  
  2164.          (User Menu -- ^L-U)
  2165.  
  2166.          <D>oor Privileges
  2167.  
  2168.  
  2169.      IX. SEA'S ARC files
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.                                     -29-
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.      IX.1 DeArcing
  2184.         Citadel-86 allows users to selectively deARC and download files from
  2185.      ARC-generated files if the Sysop so desires.
  2186.  
  2187.         There are several considerations for the Sysop to keep in mind as s/he
  2188.      decides whether or not to enable these commands, including
  2189.  
  2190.       a) DeARCing files takes valuable system time;
  2191.       b) DeARCing files takes space which the system may not have available;
  2192.       c) Damaged ARC files can sometimes hang a deARCing program; occasionally,
  2193.          they can even damage disk systems (it's happened to me!);
  2194.       d) This ability may be vulnerable to system crashers in unforeseen ways;
  2195.       e) <myriad other disasters for the unprepared> ...
  2196.  
  2197.         Citadel-86 has implemented this ability by executing a deARCing program
  2198.      of the Sysop's choice on the file specified by the user.  The files are
  2199.      deARCed into a temporary directory that Citadel-86 creates and deletes as
  2200.      needed.  When deARCing and downloading is finished, Citadel-86 will delete
  2201.      all files that were deARCed, thus not taking up any permanent storage on
  2202.      the system.  However, the Sysop must keep in mind that if there is not
  2203.      enough temporary storage available, the system could still be hung,
  2204.      depending on what the deARCing program does when it hits a disk out of
  2205.      space limit; further, Citadel-86 does not detect when a failure occurs
  2206.      (except for no files matching the deARC mask).
  2207.  
  2208.         To enable the command, create a normal DOS text file named DEARC.SYS in
  2209.      your #ROOMAREA directory.  Citadel-86 expects that the contents of this
  2210.      file will be a single line that will name the program that you wish to use
  2211.      for deARCing.  If the program is on your PATH, then you need not specify
  2212.      the path to the program.
  2213.  
  2214.         Citadel-86 makes the assumption that your deARC program's final two
  2215.      arguments will be, respectively, the name of the file to be deARCed
  2216.      (including the path, if any) and the "mask" (i.e., "*.*", "*.doc", etc.).
  2217.      This is the standard format for SEA's ARC, and so I hope that it will
  2218.      remain more or less a standard.
  2219.  
  2220.         During testing, I have noted that
  2221.  
  2222.             pkxarc
  2223.  
  2224.      works just fine, as does
  2225.  
  2226.             unpack
  2227.  
  2228.      Unpack is Borland International's deARC program, which is distributed
  2229.      with Turbo Pascal 4.0 and Turbo C 2.0.
  2230.  
  2231.         Oh, the Citadel commands to do this sort of thing?  (Read the help
  2232.      files.)  There is one.
  2233.  
  2234.             .Read Archive Binary-files
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.                                     -30-
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.      This will prompt for the name of one ARC file (with or without the ARC
  2250.      extension), and then will prompt for the deARC mask.  A Carriage Return
  2251.      for the deARC mask will result in "*.*".  The system will then ask the
  2252.      user to wait for a moment, and then (attempt to) deARC the file using
  2253.      the mask.  Once finished, it will send all files to the user via ASCII.
  2254.      If the user wishes to use a protocol, they may.  For example, YMODEM
  2255.      BATCH could be used this way:
  2256.  
  2257.             .Read Ymodem Archive Binary-files
  2258.  
  2259.         Downloading files this way via YMODEM or XMODEM will be tracked by the
  2260.      Download time limits, if you are using them (or at least so I hope).
  2261.  
  2262.         'T' and 'F' are synonyms for 'B' in the above.
  2263.  
  2264.      IX.2 ARC Integrity Checks
  2265.         Citadel-86 is also capable of integrity checks on newly uploaded ARC
  2266.      files.  In order to enable this capability, the sysop must modify the
  2267.      DEARC.SYS file described in IX.1 by adding a second line.  Much like
  2268.      deARCing files, the second line also specifies a command line to be used
  2269.      for performing a file integrity check.
  2270.  
  2271.         However, the sysop MUST specify a program which returns an ERRORLEVEL
  2272.      of 0 when the integrity check succeeds, and non-0 when the check fails,
  2273.      or this feature will fail.  Fortunately, ARC V6 does precisely that, so
  2274.      if you choose to use ARC for file integrity checks, you shouldn't have a
  2275.      problem.  So, as an example, to use ARC as the file integrity check
  2276.      utility, you'd simply have the line
  2277.  
  2278.      ARC t
  2279.  
  2280.      since 't' is the file test command.
  2281.  
  2282.         Do NOT* specify a BAT file as the file check utility!
  2283.  
  2284.         The integrity check takes place after the upload has been completed.
  2285.      The name of the file is checked, and if the extension is .ARC, your
  2286.      Citadel-86 will, if enabled, ask the user if the upload should be checked.
  2287.      If the user agrees, the check is performed.  If it succeeds, the user
  2288.      is prompted for a description.  If it fails, the user is asked if the
  2289.      upload should be aborted.  If the user assents, the file is deleted; if
  2290.      they wish to continue, they are then prompted for a description.
  2291.  
  2292.         The sysop should bear in mind that some flawed ARC files can
  2293.      cause their computer to hang during a file integrity check if they are
  2294.      using ARC V5.  ARC V6's stability in this regard is not known by this
  2295.      author.
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.                                      -31-
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.         If you wish to use a test utility which requires command line arguments
  2316.      AFTER the name of the file to be tested, this can be accomplished.  Much
  2317.      like the External Protocol (Section XV), if you place "%g" somewhere in
  2318.      your integrity check command line, it will be replaced with the filename
  2319.      to be tested.  For instance, ARCE's format for testing files is "ARCE
  2320.      <filename> /T".  So a good integrity check command line (i.e., second line
  2321.      in DEARC.SYS) would be
  2322.  
  2323.         arce %g /T
  2324.  
  2325.         If you do not use '%g' in your integrity command line, then the filename
  2326.      to be test will simply be appended to the end of the command line, just as
  2327.      it is for deARCing.
  2328.  
  2329.      X.  PKWARE's ZIP files
  2330.  
  2331.      X.1 DeZIP
  2332.         Citadel-86 is also capable of handling the ZIP files generated by
  2333.      PKWARE's PKZIP utility.  Procedures for handling ZIP files are nearly
  2334.      exactly the same as for SEA's ARC files, as are the warnings.  In fact,
  2335.      the only difference is that you must create a new file named DEZIP.SYS,
  2336.      rather than DEARC.SYS, in your #ROOMAREA directory, containing the command
  2337.      to DeZip files.
  2338.  
  2339.      pkunzip -x
  2340.  
  2341.      seems to work just fine, if, of course, you have PKUNZIP.EXE available
  2342.      somewhere.
  2343.  
  2344.      X.2. ZIP Integrity Checks
  2345.         Again, as with SEA ARC files, you may optionally enable integrity checks
  2346.      on uploaded files by modifying DEZIP.SYS with a second line specifying the
  2347.      file check.  PKUNZIP -t seems to work just fine.  This check, if enabled,
  2348.      will be performed on files uploaded with a .ZIP extension.  Again, you may
  2349.      use '%g' to cause the filename to appear in a place other than the end
  2350.      of the resulting command line, although we are not aware of any test
  2351.      utility for ZIP files which uses this sort of command line.
  2352.  
  2353.  
  2354.      XI. ZOO Files
  2355.  
  2356.      XI.1 DeZOO
  2357.         Like ARC and ZIP files, the presence of a DEZOO.SYS will let users
  2358.      de-ZOO files online.  Instructions are the same as for ARC and ZIP.
  2359.  
  2360.      XI.2. ZOO Integrity Checks
  2361.         Just like ARC and ZIP files, you can have the integrity of newly
  2362.      uploaded ZOO files checked automatically.  Instructions are the same.
  2363.  
  2364.  
  2365.      XII. LHARC Files
  2366.  
  2367.      XII.1 DeLZH
  2368.         Like ARC and ZIP files, the presence of a DELZH.SYS will let users
  2369.      de-LZH files online.  Instructions are the same as for ARC and ZIP.
  2370.  
  2371.  
  2372.  
  2373.  
  2374.                                     -32-
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.      XII.2. LZH Integrity Checks
  2382.         Just like ARC and ZIP files, you can have the integrity of newly
  2383.      uploaded LZH files checked automatically.  Instructions are the same.
  2384.  
  2385.      XIII. GIF & FRA Files
  2386.         Citadel-86's support of GIF & FRA files resides in the commands .Read
  2387.      Extended (.RE) and .Read Archive Directory (.RAD).  When .RE is used
  2388.      on .GIF and .FRA files, Citadel-86 will extract information concerning
  2389.      the pixel dimensions of the picture and the number of colors used and
  2390.      display those values as part of the file description.  When .RAD is used
  2391.      on .GIF and .FRA files, Citadel-86 will display the GIF version of the
  2392.      file, along with the dimensional and color data mentioned above.
  2393.  
  2394.         This section is purely informational for the benefit of the sysop.
  2395.      GIF & FRA file support requires no action from the sysop.
  2396.  
  2397.      XIV. Sysop's Editor
  2398.         The sysConsole Sysop has a special message composition ability not
  2399.      available to the general users, and this is called the Sysop Editor.
  2400.      This is the ability of the sysop (i.e., any user at the sysConsole) to
  2401.      enter and edit a message using an editor other than the Citadel entry
  2402.      system.
  2403.  
  2404.         In many ways this is similar to simply preparing a message offline
  2405.      using an editor and then using the <F>ile grab option of the Sysop Menu.
  2406.      However, this option is far superior, for several reasons.
  2407.  
  2408.         First, it's somewhat faster.  When using an editor to prepare a
  2409.      response for processing by File Grab, in order to get to your editor you
  2410.      must go through Outside Commands, which causes CTDLTABL.SYS to be
  2411.      written, etc. etc.  When using this option, CTDLTABL.SYS is not written
  2412.      (think of this as a warning, too), and further the process of bringing
  2413.      your editor should be thoroughly automated.
  2414.  
  2415.         Second, you have far more flexibility.  The option is accessed via an
  2416.      option off of the 'entry cmd: ' prompt.  Thus, you can begin preparing a
  2417.      message using Citadel, switch off to your editor half-way through, return
  2418.      to Citadel for more work or simply a formatted viewing, etc. as much as 
  2419.      your heart desires.
  2420.  
  2421.         In order to activate this option, you must add at least one parameter to
  2422.      your CTDLCNFG.SYS.  This one is called '#EDITOR'.  It is followed by a 
  2423.      string naming the editor of your choice.  Your PATH is used to search for
  2424.      the editor, so you need not specify where it is located (although you may
  2425.      wish to if you store your editor in a RAM drive). The editor you use must
  2426.      output a "normal" DOS text file; no attempt is made to filter the text for
  2427.      WordStar, WordPerfect, or other proprietary formats (although I haven't
  2428.      tested any of those to see if, by happenstance, they might work.  Who
  2429.      knows, you might luck out!).  An example might be
  2430.  
  2431.         #EDITOR "q"             -- use qedit
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.                                     -33-
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.         If your editor needs any options set on the command line, this is the 
  2448.      place to put them.  Suppose your editor, which in this example will be 
  2449.      'wumpus', needs the option "-r" on the command line.  A good parameter
  2450.      entry would then be
  2451.  
  2452.         #EDITOR "wumpus -r"
  2453.  
  2454.         You might also want to consider using BAT files (specified in the 
  2455.      #EDITOR entry) which will clean up unwanted BAK files, etc...
  2456.  
  2457.         You may optionally add a second parameter to your CTDLCNFG.SYS called 
  2458.      "#EDIT-AREA".  If this is present, Citadel-86 will use the area (drive 
  2459.      and directory) you specify for the temporary editing space, instead the 
  2460.      current drive and directory.  This makes it easy to use a fast RAM disk 
  2461.      for Outside editing.  For instance:
  2462.  
  2463.         #EDIT-AREA "d:\"
  2464.  
  2465.      If you do plan to use a RAM drive, remember that messages can be up to 
  2466.      7.5K long, so plan your RAM drive accordingly, keeping in mind possible 
  2467.      .BAK files generated by your editor, etc.
  2468.  
  2469.         Citadel-86 attempts to run your editor by issuing the command line
  2470.  
  2471.          "<editor> <editing space>tempmsg.sys"
  2472.  
  2473.         When returning from your editor, Citadel-86 will automatically delete
  2474.      the tempmsg.sys file; however, if your editor (like many) leaves .BAK
  2475.      files behind, Citadel-86 will not try to delete it.
  2476.  
  2477.         And how do you access it?  By typing an 'O' at the 'entry cmd: ' prompt
  2478.      of the message editor.
  2479.  
  2480.         Finally, you may use the EASE utility to make these modifications,
  2481.      rather than directly changing your CTDLCNFG.SYS file.
  2482.  
  2483.      XIV.1 Sysop Editor Notes
  2484.         o Editors which must* run from their own directories may be difficult
  2485.      to support.  You might want to try using a BAT file if you really insist
  2486.      on using such editors.
  2487.  
  2488.         o Making a small RAM drive and specifying it as the editing space may
  2489.      make this feature faster.  Placing your editor in the RAM drive may make
  2490.      things really fly, if you have the extra RAM to do it.  Remember to 
  2491.      specify the RAM drive in your #EDITOR parameter, though, if you do place 
  2492.      your editor in the RAM drive.
  2493.  
  2494.         o When you are ready to return to C-86, simply save the file back out
  2495.      to TEMPMSG.SYS (most editors will do this in some automatic style for you)
  2496.      and exit the editor.  C-86 will then retake control of the system and
  2497.      leave you at the 'entry cmd: ' prompt with your newly modified message,
  2498.      ready for more action.
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.                                     -34-
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.      XV. Doors Support
  2514.         (Parts of Citadel-86 doors courtesy Gary Meadows of Asgard-86.)
  2515.  
  2516.         A "door" is a program which may be run from a host BBS program.  There
  2517.      are currently many special door programs available, including door
  2518.      monitors such as DOORWAY, games and utilities, most of which you should
  2519.      be able to run from Citadel-86 (if you find one that can't, let us know).
  2520.      When used correctly, it is intended that Citadel-86 Doors be
  2521.      QBBS-compatible,
  2522.  
  2523.  
  2524.      XV.1 Administration
  2525.  
  2526.      XV.1.a User administration
  2527.         Naturally, a sysop does not want just any old person to use doors.
  2528.      Therefore you may assign and take away door privileges from anyone you
  2529.      please.  You do this via the User Administration menu, using the <D>oors
  2530.      privilege.
  2531.  
  2532.      XV.1.b Door administration
  2533.         Doors are created using CTDLCNFG.SYS.  Theoretically, you may assign
  2534.      as many doors as you wish; practically, you may be limited by disk space
  2535.      as well as user patience.
  2536.  
  2537.         Door parameters in CTDLCNFG.SYS are a little different from any other
  2538.      parameter in that they do not occupy only one line of the file.  Rather,
  2539.      they occupy three lines.  Here is the generic format of door parameters.
  2540.  
  2541.      #door <entry code> <program> <location> <who> <type> <time limit> [room]
  2542.      <description>
  2543.      <command line parameters>
  2544.  
  2545.      We'll go through these one at a time.
  2546.  
  2547.      "entry code" - An entry code is what the user types to request this door.
  2548.      This parameter may not contain more than four letters, and it is your
  2549.      responsibility to ensure that no duplicates occur amongst your entry
  2550.      codes.
  2551.  
  2552.      "program" - This is the name of the program or BAT file which
  2553.      constitutes the door.  You need not specify the suffix of the file,
  2554.      although it is legal to do so.
  2555.  
  2556.      "location" - This field should contain the location in your disk system
  2557.      to move to before executing "program name".  If your specification
  2558.      contains a drive designation, the system will make that drive the default
  2559.      drive before executing attempting to change directories to the given
  2560.      directory. If you do not wish the system to change to another directory
  2561.      before executing the program, this field should contain ".", which is the
  2562.      DOS jargon for "current directory".  When the door has finished, the
  2563.      system will return to the directory it was in when Citadel-86 came down
  2564.      to execute the Door.
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.                                     -35-
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.      "who" - This field is a primitive security mechanism.  You may fill in
  2580.      this field with one of four values: "anyone", which indicates that anyone
  2581.      with Door privileges may execute this door, "aide" which allows only
  2582.      aides may use this door, "sysop", allowing only sysops, remote and at
  2583.      the system console, to use this door, "autodoor" (explained in 
  2584.      Section XIII.4), and "newusers" (described in Section XIII.5).
  2585.  
  2586.      "type" - this describes the type of door.  Currently, this is limited to
  2587.      one of three values, these being
  2588.  
  2589.       o "modem"    - User must be remote (modem) in order to use door.
  2590.       o "console"  - User must be at the system console in order to use door.
  2591.       o "anywhere" - User location does not matter.
  2592.  
  2593.      "time limit" - This field lets you specify how long (aggregate) a user may
  2594.      use any given door during a single login period.  You should specify the
  2595.      time in minutes; if you do not wish to place a time limit on a given door,
  2596.      you may instead specify "unlimited".
  2597.  
  2598.      "room" - This is an optional parameter.  If it is present, it specifies
  2599.      the name of the room from which this door may be run; the door may not be
  2600.      run from any other room.  So, this provides another security arrangement.
  2601.      If this parameter is not present, then this door may be run from any room,
  2602.      subject to other restraints.
  2603.  
  2604.      "description" - This field, which occupies a line of its own, should
  2605.      contain your description of the door.  These descriptions are displayed 
  2606.      to users.  The description should not be more than 79 characters in
  2607.      length.
  2608.  
  2609.      "command line parameters" - This important field is used to build a
  2610.      command line for the program.  The format here should be simple to use:
  2611.      type in the command line, minus the program name, as if you were typing
  2612.      it at the command line.  This sounds simple until you realize that some
  2613.      doors need data from the command line which you simply cannot provide
  2614.      from here.  This includes such data as the Com port, the baud rate, etc.
  2615.      Therefore, we have provided to you a simple way to add these sorts of
  2616.      things in.  Wherever in the command line you need to add these things in,
  2617.      you will instead type a percentage sign ('%') followed by a letter.  This
  2618.      %letter will be replaced at runtime by the value associated with that
  2619.      combination.  The following is a list of all such combinations currently
  2620.      supported.
  2621.  
  2622.      %a - This is replaced with the current baud rate of the user, or 0 if
  2623.           sysConsole.
  2624.      %b - This is replaced with the current bps rate of the user, or 0 if
  2625.           sysConsole.
  2626.      %c - This is replaced with the port number of the user, or "LOCAL" if
  2627.           sysConsole.
  2628.      %d - This is replaced with the name of the user.
  2629.      %e - This is replaced with the log number of the user.  Unlikely that
  2630.           you'll need it, but just in case ...
  2631.      %f - This is replaced with the ANSI code of the user.  This is not part of
  2632.           the user record, unlike Asgard-86, but provision may be made in a
  2633.           later release for the user to indicate what level of ANSI they can
  2634.           handle.  At the moment, it is set to 0.
  2635.  
  2636.  
  2637.  
  2638.                                     -36-
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.         Identification of more useful parameters which Citadel-86 might supply
  2646.      is welcome (and probably easy to add).
  2647.  
  2648.         Even if there is no need for information to be on the Description and
  2649.      Parameters, blank lines must exist in their positions.
  2650.  
  2651.         So, let's move on to an example.  Suppose we have a door program named
  2652.      MOO. It must be run from the directory C:\MOOING, and the command line must
  2653.      look like
  2654.  
  2655.      MOO COMx SPEED=y
  2656.  
  2657.      where x is the Com port and y is the baud rate of the user.  Further, you
  2658.      want the users to type .Door COWS in order to run the program, and
  2659.      everyone may use it, but only from remote, but they may use it as much as
  2660.      they like. Your entry in ctdlcnfg.sys would then look like
  2661.  
  2662.      #door COWS MOO c:\mooing anyone modem unlimited
  2663.      This program is a must for beefeaters!
  2664.      COM%c SPEED=%a
  2665.  
  2666.      Suppose you wanted to add the further restriction that it only can be run
  2667.      from a room named Door Talk>.  Then the entry would read
  2668.  
  2669.      #door COWS MOO c:\mooing anyone modem unlimited Door Talk
  2670.      This program is a must for beefeaters!
  2671.      COM%c SPEED=%a
  2672.  
  2673.      XV.2 BAT file support
  2674.         Once a user has selected a door (the next section discusses the user
  2675.      interface), Citadel-86 will bring itself down.  THIS IS VERY IMPORTANT:
  2676.      the system will EXIT with an ERRORLEVEL of 4, which is a reserved
  2677.      ERRORLEVEL of Citadel-86.  Therefore, your BAT MUST be prepared to handle
  2678.      exits of ERRORLEVEL 4 by running the C-86 utility C86Door.Exe if you wish
  2679.      to run doors.  For instance,
  2680.  
  2681.      :loop
  2682.      ctdl ...
  2683.      ...
  2684.      if errorlevel 4 goto door
  2685.      ...
  2686.      :door
  2687.      c86door
  2688.      goto loop
  2689.  
  2690.      C86DOOR does not require any command line arguments.
  2691.  
  2692.      User interface is via the <D>oor and <.D>oor <entrycode> commands.
  2693.  
  2694.      XV.3 Door compatability
  2695.         Citadel-86 door support is designed to be compatible with the QBBS
  2696.      standard; in other words, C86Door will generate DORINFO1.DEF before the
  2697.      door is activated.  Citadel-86 also contains support for WILDCAT! and
  2698.      Marshall Dudley's DOORWAY.SYS file (so you can run DOORWAY using the SYS
  2699.      parameter).
  2700.  
  2701.  
  2702.  
  2703.  
  2704.                                     -37-
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.      XV.4 Automatic doors
  2712.         An 'automatic door' in Citadel-86 parlance is a door which is auto-
  2713.      matically run when a specified user logs in.  This can be useful in 
  2714.      several situations, such as with non-C86Net sites which can poll you by
  2715.      calling your system and doing a manual login.  By setting an automatic
  2716.      door to run when that account is used, you may immediately drop the
  2717.      caller into an appropriate network program.  And then, of course,
  2718.      there's your imagination.
  2719.  
  2720.         Automatic door administration is somewhat more complicated than normal
  2721.      door administration.  The system operator must insert two (or more
  2722.      entries) into his CTDLCNFG.SYS file.  Naturally, one is the #door entry.
  2723.      As noted above,`you may, or may not use, a fourth value for the 'who'
  2724.      field of a #door entry, and that is 'autodoor'.  If you use that for the
  2725.      'who' value, then the door is completely unavailable to everyone except
  2726.      the account(s) assigned to this door, and then only on login.  So, for
  2727.      instance,
  2728.  
  2729.      #door mooing cows \pasture autodoor anywhere unlimited
  2730.      <blank line unless you want a description>
  2731.      <whatever parameters are needed>
  2732.  
  2733.         So, how do you assign one or more users to an automatic door?  By using
  2734.      #events (you had better be familiar with events).  The format for an event
  2735.      which will do this is
  2736.  
  2737.      #event <days> <time> autdoor quiet <duration> "" "<username>" <entrycode>
  2738.  
  2739.         The fields <days>, <time>, and <duration> function as usual, allowing
  2740.      you to control when automatic doors are active on an individual basis.
  2741.      The <class> autodoor tells Citadel-86 that this is an automatic door
  2742.      event. "<username>" is the name of the user which will trigger this
  2743.      automatic door in quotes.  <entrycode> is the entrycode of the door to
  2744.      execute.  So, continuing with the above example,
  2745.  
  2746.      #event all 2:00 autodoor quiet 180 "" "Bossy" mooing
  2747.  
  2748.      would cause Citadel-86, on all days, but only between 2am and 5am, to
  2749.      execute the door identified as 'mooing' whenever the user Bossy logs in.
  2750.  
  2751.         Note that when the door is finished, the user is not disconnected from
  2752.      the system.
  2753.  
  2754.      XV.5 New User Doors
  2755.         You may configure Citadel-86 to run a door when a user tries to login
  2756.      as a new user.  To do so, you set up a door entry in your CTDLCNFG.SYS
  2757.      file just as normal, except for the "who" field.  This should contain
  2758.      the value "newusers".  For example,
  2759.  
  2760.         #door s valid . newusers anywhere -1
  2761.         New user door
  2762.         ...
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.                                     -38-
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.         This entry defines a door named "s", running a program named VALID
  2778.      in the current directory ("."), of type newusers which can be run
  2779.      from both remote and local.  In reality, the door name is irrelevant,
  2780.      as is the door description.  The parameters field will, of course, be
  2781.      crucial.
  2782.  
  2783.         There is one critical difference between newuser doors and other
  2784.      types of doors -- newuser doors are NOT run by taking Citadel-86 down
  2785.      and letting the batch file take over.  Instead, Citadel-86 will
  2786.      directly execute the program.  This is done both for internal technical
  2787.      reasons and for performance reasons.  Very large systems may have
  2788.      difficulties running new user doors for this reason.
  2789.  
  2790.         This is a rather advanced option, and may require some work to get
  2791.      working correctly, especially if you are trying to use the DOORWAY
  2792.      driver program.  If you are, please bear in mind that since Citadel-86
  2793.      is directly executing the program rather than letting the C86Door.Exe
  2794.      program do the work, the DOOR.SYS file will NOT be generated.  Since
  2795.      this file is only an option for DOORWAY, this does not cripple you,
  2796.      only makes things more difficult.
  2797.  
  2798.      XVI. Citadel-86 as a Door
  2799.         Citadel-86 may be used as a door itself if you wish.  The procedure
  2800.      for setting up a Citadel-86 as a door is
  2801.  
  2802.       a) Add the parameter '#ISDOOR' to your CTDLCNFG.SYS file and reconfigure
  2803.       b) Citadel-86 will expect the string "bps=xxx" on its command line when
  2804.      coming up.  If it is not present, the installation will gracefully abort.
  2805.      The "xxx" is the bps of the modem (i.e., "30", "120", etc.), or "0" if
  2806.      the user is at the sysConsole ("LOCAL" is a synonym for "0" in this case).
  2807.      A BAT file containing "ctdl bps=%1" might be a good idea if you can get
  2808.      whatever BBS you're using to put the correct data on the command line of 
  2809.      the BAT file.
  2810.  
  2811.         If you're running Citadel-86 as a door from within another Citadel-86
  2812.      (!) a good #door entry might be
  2813.  
  2814.        #door xxxx ctdl xxxxx xxxxxx xxxxxxxx xxxxxxxxx [xxxxxx]
  2815.        Another C-86
  2816.        bps=%b ...
  2817.  
  2818.         since "%b" will put out the bps of the user (see Section XIII).
  2819.  
  2820.      XVII. External Protocol Drivers
  2821.         In addition to the three file transfer protocols supported internally
  2822.      by Citadel-86 (XMODEM, WXMODEM, and YMODEM BATCH), you may also configure
  2823.      your system to support external protocols, such as DSZ, etc.  These
  2824.      external protocols can be used for both file and message transfers,
  2825.      almost appearing to be built-in protocols, differing only in that slight
  2826.      pauses may occur while starting the external driver and an additional pause
  2827.      for message transfers (messages must be saved to disk in a file before
  2828.      transferring them to the user).
  2829.  
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.                                     -39-
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.      XVII.1 Adding drivers
  2844.         You may add one or more protocols to your system by creating a file
  2845.      named CTDLPROT.SYS in your #ROOMAREA directory.  This file is a textfile.
  2846.      Each line of the textfile contains an entry for an external protocol
  2847.      you wish to support for uploading and/or downloading.  The generic format
  2848.      of each entry is:
  2849.  
  2850.         [selector] [1/M] [name] [u/d] [command line]
  2851.  
  2852.         The 'selector' is the key the user must press in order to access this
  2853.      particular protocol.  For instance, if you want to make ZMODEM available
  2854.      to your users, and you wish them to access ZMODEM via the letter 'Z',
  2855.      then the entry would read "Z ...".
  2856.  
  2857.         If you should accidentally select a letter already in use for that
  2858.      particular command (i.e., .Read or .Enter), then your user cannot access
  2859.      the protocol even though you've made it available.  Therefore, you may
  2860.      have to select a different letter as a selector.  You may use any capital
  2861.      letter (small letters are not valid) or a digit.  Please consult your help
  2862.      files to discover what letters are already reserved (SUMMARY.HLP).
  2863.  
  2864.         The '1/M' field tells Citadel-86 if this protocol is capable of batch
  2865.      downloads or not (and, therefore, this entry is meaningless but required
  2866.      for upload specifications).  '1' means this protocol can only send one
  2867.      file, while 'M' means it can send 'M'any.  Since ZMODEM is capable of
  2868.      batch transfers, your entry for ZMODEM, to continue our example, would now
  2869.      look like "Z M ..."
  2870.  
  2871.         The 'name' of the entry is the name you wish echoed to the user when
  2872.      the user selects a protocol.  If the first letter of the name does not
  2873.      match the Selector of this entry, Citadel-86 will backspace over the
  2874.      Selector and replace it with the name.  This field can NOT consist of
  2875.      two words separated by a space!  In other words, "MooModem Protocol" will
  2876.      NOT work.  If we might continue our example, Zmodem's entry would now
  2877.      look like "Z M Zmodem ..."
  2878.  
  2879.         The 'u/d' part specifies if this particular entry is for uploading or
  2880.      downloading a file.  There is absolutely nothing wrong with having double
  2881.      entries for the same protocol, one covering how to upload a file using
  2882.      the protocol and the other downloading, and in fact that is very much the
  2883.      rule.  So, for Zmodem, uploading would look like "Z M Zmodem U ..." and
  2884.      downloading would look like "Z M Zmodem D ...".
  2885.  
  2886.         Finally, the 'command line' part of the entry is the actual command
  2887.      sent to DOS in order to receive or send a file.  Obviously, just a simple
  2888.      text line may not be enough, so you, the sysop, are provided with a way
  2889.      to tell the external protocol a number of things.  To specify one of these
  2890.      parameters to a driver, you use the following 'macros':
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.                                     -40-
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.                 %a - The baud rate of the caller
  2910.                 %b - The bps (bytes per second) of the caller
  2911.                 %c - The port the your system is configured for (#COM)
  2912.                 %d - The name of the current user
  2913.                 %g - The list of files for transfer
  2914.                 %h - Identical to %c except it will be replaced with
  2915.                      "COMx" where x will be your com value, unless the user
  2916.                      is at the system console, in which case "LOCAL" will
  2917.                      be generated.  Eases use with DOORWAY in conjunction
  2918.                      with External Message Editors (Section XVIII), not real
  2919.                      useful for External Protocols.
  2920.                 %i - The name of the current room.
  2921.                 %j - The name of the directory if this is a directory room.
  2922.                      C-86 automatically moves to the correct directory within
  2923.                      DOS before executing a protocol; this parameter is of
  2924.                      more use with External Message Editors.
  2925.                 %k - The column width of the current user (more useful for
  2926.                      External Message Editors).
  2927.  
  2928.         For instance, when using DSZ to for Zmodem, DSZ expects a command
  2929.      line basically like this:
  2930.  
  2931.         "dsz port <port num> sz <filenames>"   for downloading and
  2932.         "dsz port <port num> restrict rz <filenames>"   for uploading.
  2933.  
  2934.         Therefore, your ctdlprot.sys file will contain the following two lines:
  2935.  
  2936.         Z M Zmodem U dsz port %c restrict rz %g
  2937.         Z M Zmodem D dsz port %c sz %g
  2938.  
  2939.         DSZ automatically senses the baud rate, so you do not have to tell
  2940.      it that in this example.
  2941.  
  2942.         If you do not like creating text files, you may also use the utility
  2943.      EASE to create, edit, and delete your external protocol entries.
  2944.  
  2945.      XVII.2 Number of drivers
  2946.         You may only add 15 drivers to your system.  That should be more
  2947.      than enough.
  2948.  
  2949.      XVII.3 USR HST 9600 notes
  2950.         Citadel-86 handles the USR HST modem by 'locking' the COM port at
  2951.      9600 and letting the modem handle buffering between the 9600 of the COM
  2952.      port and the speed of the caller.  It does this by using the CTS/RTS
  2953.      lines to throttle your computer when needed.  Some external protocol
  2954.      drivers may not realize this is happening when used on a Citadel-86
  2955.      system with a USR HST 9600, and thus become confused.  This is known to
  2956.      be true with Chuck Forsberg's DSZ program.  It is recommended that USR
  2957.      HST 9600 systems use the following entries for ZMODEM in their
  2958.      CTDLPROT.SYS files:
  2959.  
  2960.         Z M Zmodem U dsz port %c handshake both restrict rz %g
  2961.         Z M Zmodem D dsz port %c handshake both sz %g
  2962.  
  2963.         If you use a USR HST modem and experience problems with external
  2964.      drivers, keep the above solution in mind when researching your problem.
  2965.  
  2966.  
  2967.  
  2968.                                     -41-
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.      XVIII. QUESTIONS & ANSWERS
  2976.  
  2977.  
  2978.      ---
  2979.       Q. I'm completely lost, even after going through all of the below; what
  2980.      do I do next?
  2981.  
  2982.       A. Call your local (hopefully!) friendly C-86 Sysop.  For the most part,
  2983.      they're helpful, friendly people who are more than happy to help a new
  2984.      system get its feet under itself.
  2985.  
  2986.      ---
  2987.       Q. How do I create a "directory" room?
  2988.  
  2989.       A. Edit the room.
  2990.  
  2991.      ---
  2992.       Q. When I try to bring the system up, it will come up momentarily but
  2993.      will then immediately give a crash message.  What happened?
  2994.  
  2995.       A. The first step is to look at the files on disk.  If there is a file
  2996.      called CRASH, it was created by Citadel-86, so look at it (this is a good
  2997.      General first step for most problems, too).  Within, there will be a
  2998.      fairly cryptic message which is more for debugging purposes, but can be 
  2999.      useful to the new sysop, too.  If it indicates some sort of displeasure
  3000.      with the CALLLOG.SYS file, this is usually a good pointer to the
  3001.      possibility that you haven't configured MSDOS correctly in the FILES=area.
  3002.      Check to make sure that your CONFIG.SYS file has the required FILES=20
  3003.      line in it, and, if you had to put it in for Citadel, make sure that you 
  3004.      have rebooted your system after adding it to the file.
  3005.  
  3006.       If there are still problems, then another observation is that an
  3007.      abnormally high BUFFERS= setting in CONFIG.SYS on systems that don't have
  3008.      a great deal of extra free RAM available will sometimes "steal" from the
  3009.      FILES= setting.  So, it's worth trying setting your BUFFERS= a little
  3010.      lower.
  3011.  
  3012.      ---
  3013.       Q. I try to use the <O>utside command in the <O>ther commands section of
  3014.      the Sysop Menu, but Citadel just says "Bad Return value".  What's wrong?
  3015.  
  3016.       A. In all probability, you don't have enough free RAM.  Use CHKDSK or
  3017.      some other utility to find out how much free RAM you have.
  3018.  
  3019.  
  3020.         Please submit other pertinent questions to Hue, Jr. at C-86 Test
  3021.      System for inclusion in this manual.
  3022.  
  3023.      XIX. #event examples!
  3024.         The #event facility of Citadel-86 is a powerful tool for the sysop,
  3025.      but like many powerful tools, it is rather obtuse and arcane.  The
  3026.      purpose of this section is to illuminate some of the potential uses of
  3027.      the #event facility. What we show here is NOT the limit of what you can
  3028.      do!  This is just some hints of what we have found useful ...
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.                                     -42-
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  
  3041.         Before jumping into any examples, let's briefly go over the general
  3042.      format of a #event again:
  3043.  
  3044.      #event <days> <time> <class> <type> <duration> <warning string> <depends>
  3045.  
  3046.         <days> indicates what days this event is effective for.
  3047.         <time> indicates what time of the day (limited to valid days)
  3048.      the event should start (military time).
  3049.         <class> is roughly an indicator of what this #event does.
  3050.         <type> describes, roughly, how Citadel-86 reacts when this event
  3051.      occurs and a user is online.
  3052.         <duration> describes how long this event is in effect.
  3053.         <depends> is a field dependent on the class of the event.
  3054.  
  3055.         In general, when you are planning events, you must know when you want
  3056.      it to occur (in terms of both what days and at what time), how long it
  3057.      should last, what it will do during the event (its class), and what it
  3058.      will do when the event occurs if a user is on (its type).  If you want
  3059.      a certain event to happen more than once during a day, then you almost
  3060.      certainly will have to use multiple #event entries, but this hurts
  3061.      nothing.
  3062.  
  3063.         So let's plunge into the examples!
  3064.  
  3065.      XIX.1 Automating backups
  3066.         This is one of the most basic uses of #events, and can make system
  3067.      backups a process you may completely forget about.  This example will 
  3068.      illustrate how to use #events and BAT files working together to auto-
  3069.      matically backup your system.
  3070.  
  3071.         The first step is to bring Citadel-86 down prior to backing up the
  3072.      system. There are two different classes which will bring Citadel-86
  3073.      down, "external" and "relative".  "external" is more common, so we'll
  3074.      start with this one.  An event who's class is "external" will cause
  3075.      Citadel-86 to terminate (exit/come down) at the days and time you
  3076.      designate using the <days> and <time> fields.
  3077.  
  3078.         When you are using an event of this class, you have two choices as to
  3079.      Citadel-86's behavior when a user is on, and you select your choice using
  3080.      the <type> field of the event.  If you select type "preempt" then the
  3081.      user will be kicked off the system when at the days and times selected.
  3082.      If you select type "non-preempt", then the system will wait until the
  3083.      user is finished with the system and then come down.
  3084.  
  3085.         So let's start a partial example.  Suppose you want your system to
  3086.      come down twice a day, once at 6am and once at 6pm, to do an automated
  3087.      backup, but to wait politely until any user who may be on has logged off.
  3088.      Your CTDLCNFG.SYS would contain the following two #event lines:
  3089.  
  3090.      #event all 6:00 external non-preempt 0 "" ?????
  3091.      #event all 18:00 external non-preempt 0 "" ?????
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.                                     -43-
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.         OK, so now you're probably asking "Why is duration 0?"  The reason for
  3108.      this is because backing up the system may easily take less than a minute.
  3109.      When Citadel-86 comes up, it always checks the event list to see if it
  3110.      came up "during" an event, so by making this event's duration "0", we
  3111.      ensure the system won't try to back itself up more than once.
  3112.  
  3113.         You will also have noticed the "?????" occupying the <depends> field,
  3114.      so let's discuss the depends field value.  An event of class "external"
  3115.      (or "relative") will always have a <depends> field which consists of a
  3116.      single number.  This number is the ERRORLEVEL of your choice which you
  3117.      want Citadel-86 to return to the operating system.  This lets you differ-
  3118.      entiate between differing external events, allowing you to go to 
  3119.      different backup routines at different times.  (Remember, ERRORLEVELs
  3120.      1 - 4 are reserved by Citadel-86.) So, for example, you might have
  3121.  
  3122.      #event all 6:00 external non-preempt 0 "" 10
  3123.      #event all 18:00 external non-preempt 0 "" 11
  3124.  
  3125.         This should give you a good idea of how to use #events for bringing
  3126.      Citadel-86 down for backups, but doesn't hint about your BAT file, so
  3127.      let's move on to that.  This is a bit tricky, because everyone who uses
  3128.      a BAT file with Citadel-86 (and that should include just about everyone)
  3129.      does their's differently.
  3130.  
  3131.         Still, most BAT files should look the same at some point, and that
  3132.      is where it calls the actual CTDL program and where it tests the
  3133.      ERRORLEVEL.  Let's continue with the example above.  That example would
  3134.      lead to this partial BAT file fragment:
  3135.  
  3136.      :loop
  3137.      ...               [ whatever ]
  3138.      CTDL ....         [ the ellipsis are simply any arguments you might use ]
  3139.      if ERRORLEVEL 11 goto backup1
  3140.      if ERRORLEVEL 10 goto backup2
  3141.      ...              [ this is other ERRORLEVEL handling and goto labels ]
  3142.      :backup1
  3143.      ...              [ whatever is necessary to do this backup of the system ]
  3144.      goto loop
  3145.      :backup2
  3146.      ...              [ whatever is necessary to do this backup of the system ]
  3147.      goto loop
  3148.      ...              [ rest of file ]
  3149.  
  3150.         The reason we show two different backup labels in this example, rather
  3151.      than one, is to illustrate that you can keep multiple backups of the
  3152.      system by using different ERRORLEVELs in your #event entries.  The 
  3153.      precise backups you might want to perform are, of course, dependent on
  3154.      your situation, and therefore we didn't illustrate those mechanics at all.
  3155.  
  3156.         So that's how to backup your system at set times and days.  There is a
  3157.      second method available which will allow you to backup your system
  3158.      relative to the time the system came up, i.e., every X minutes.
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.                                     -44-
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.         This type of event is something of an oddball amongst Citadel-86 events
  3174.      because it doesn't follow the rules the other events follow.  This event's
  3175.      class is "relative", and you may select either of the types "preempt" or
  3176.      "non-preempt", but some of the other fields of the event do not act in the
  3177.      same way they do for any other class of events.
  3178.  
  3179.         To wit, the <days> field is not used, although it must be present, and
  3180.      the <time> field does not indicate when the event comes into effect, but
  3181.      instead specifies how long before the system is supposed to come down
  3182.      (hours:minutes).
  3183.  
  3184.         Otherwise, events of class "relative" are much like events of class
  3185.      "external".  The <depends> field indicates the ERRORLEVEL to exit with,
  3186.      etc.
  3187.  
  3188.      XIX.2 Scheduled NETWORK sessions
  3189.         As we noted in Network3.Man, there are two ways Network Sessions can
  3190.      occur: through normal network sessions and through the anytime net.  A
  3191.      normal network session is a session which has been scheduled to begin at
  3192.      a given period of time, last for so long, and then end, involving given
  3193.      systems.  During this time period, users may not access the system. 
  3194.      Anytime net sessions, on the other hand, can be scheduled to have the
  3195.      potential to occur during given time periods, but they may not
  3196.      necessarily occur, depending on the activity level of your system.  This
  3197.      subsection covers normal network sessions.
  3198.  
  3199.         The class of this type of event is "network".  The type is usually
  3200.      "preempt", although it is legal to specify "non-preempt" for the type.
  3201.      The days and time fields act as usual, specifying on what days and at
  3202.      what time a network session is to occur, and the duration field specifies
  3203.      how long the session is to last.  The "warning string" field (it follows
  3204.      the duration field) is used in this event to warn any users that the
  3205.      system will kick him or her off 5 minutes prior to the network session
  3206.      beginning if the type is "preempt".
  3207.  
  3208.         Finally, the depends field for a network event is special and
  3209.      essential, because it tells Citadel-86 which systems are eligible to be
  3210.      called at this time.  It does this using the networks Member Net
  3211.      capability.  Member Nets are explained in Network3.Man.  Here is a
  3212.      summary:
  3213.  
  3214.       o A system may be assigned to any or all of 32 nets (use node editing)
  3215.       o A system not assigned to any is 'disabled'
  3216.       o New systems are automatically assigned to net 1
  3217.  
  3218.         When you are constructing an event of class network, your depends
  3219.      field lists which net, or nets, may be called during this network
  3220.      session.  When we say "nets", we mean all systems which are assigned to
  3221.      this net.  This lets you assign different systems to be called at
  3222.      different times, participate in different C86Nets, etc.
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.                                     -45-
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.         When filling in the depends field, you simply type in the #s of the
  3240.      nets you wish this network session to call, separating them by commas.
  3241.      So, for example, if you want a net session to run from 3am to 3:15am
  3242.      everyday of the week, but to only call net 1, you would have
  3243.  
  3244.      #event all 3:00 network preempt 15 "network session" 1
  3245.  
  3246.         If you wanted that net session to call all systems on nets 1, 10, and
  3247.      15, you'd have
  3248.  
  3249.      #event all 3:00 network preempt 15 "network session" 1,10,15
  3250.  
  3251.         (NOTE THE LACK OF SPACES BETWEEN NETS!)
  3252.  
  3253.         It's generally not a good idea to have network sessions overlap.
  3254.  
  3255.      XIX.3 Anytime Network Sessions
  3256.         An event of class "anytime-net" differs from "network" events in that
  3257.      it does not schedule when a network event is to occur, but only when
  3258.      there is a potential for a network session to occur (note there is a
  3259.      difference between "network event" and "network session").
  3260.  
  3261.         This "potential" is the possibility that your system will attempt to
  3262.      contact other systems for network ("and immoral") purposes while an event
  3263.      of this class is in effect.  The possibility will be fulfilled if several
  3264.      conditions are met: the specified systems need to be called, and enough
  3265.      dead time has occurred on your system to cause a callout.  This must
  3266.      sound darned abstract, so let's look at an example:
  3267.  
  3268.      #event All 1:00 anytime-net quiet 240 "" 10 3 1,4,9
  3269.  
  3270.         Translated to English, this reads "On all days of the week, beginning
  3271.      at 1:00 in the morning and ending at 5:00, an event of class anytime-net
  3272.      will be in effect.  During this time, if the system is idle for more than
  3273.      10 minutes (i.e., no remote callers and no sysConsole users) at any one
  3274.      time, the system will commence a net session IF any systems on nets 1, 4,
  3275.      and 9 need to be called, and this net session should last a maximum of 3
  3276.      minutes, unless of course during one of the calls the time is exceeded,
  3277.      in which case the net session will extend until the call is completed."
  3278.      In other words, the generic format of an event of this class is
  3279.  
  3280.      #event <days> <time> anytime-net quiet <duration> "" <dead time>
  3281.      <net time> <nets>      (all one line)
  3282.  
  3283.         An event of type "quiet" is an event which does not cause a fuss when
  3284.      it occurs.  Citadel-86 simply notes that it occurs, usually with no sign 
  3285.      to the current user, if any.
  3286.  
  3287.         The field duration specifies how long the event is in effect; it does
  3288.      NOT specify how long any net session which occurs during this event
  3289.      should last.
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.                                     -46-
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.         Dead time and net time is the amount of time the system is inactive
  3306.      before a net session is triggered and how long to stay in the net
  3307.      session, respectively.  Both are specified in minutes.  We do not have
  3308.      any recommendations at this time for these events.
  3309.  
  3310.         The nets field is precisely the same as used in events of class 
  3311.      "network" (Section XVII.2).
  3312.  
  3313.      XIX.4 Download Time Limits
  3314.         Download time limits can be set in Citadel-86 via the #event facility.
  3315.      When a #event of the class "dl-time" is in effect, a user may not
  3316.      download for more than X minutes during any given login session.
  3317.  
  3318.         The limit is specified in the depends field, not the duration field.
  3319.      The duration field, as usual, indicates how long the event is in effect.
  3320.      The limit is specified in minutes.  So, if you wanted to limit your users
  3321.      to 10 minutes of downloading from 7PM to midnight every day of the week
  3322.      except Saturdays and Sundays, you'd have
  3323.  
  3324.      #event Mon,Tue,Wed,Thu,Fri 19:00 dl-time quiet 300 "" 10
  3325.  
  3326.         The reason the type is "quiet" is because there's no need to bring the
  3327.      system down or kick the user off.  Citadel-86 simply notes the new event
  3328.      and the limit, while the user never notices a thing.
  3329.  
  3330.         Download time limits do not apply to Aides & Sysops.
  3331.  
  3332.      XIX.5 Door Time Limits
  3333.         The #event facility may be used to place limits on the total amount of
  3334.      time a user may use doors during a single login session.  As usual, the
  3335.      key to specifying this ability lies in the value of the class field of
  3336.      the event.  An event which controls how long users may use a door looks
  3337.      like this:
  3338.  
  3339.      #event <days> <time> door-limit quiet <duration> "" <limit>
  3340.  
  3341.         The days, time, and duration fields allow you to specify on what days,
  3342.      starting at what times, and how long an event of this class should last. 
  3343.      You specify the door time limitin the depends field, in minutes.  Simple
  3344.      as that. Suppose you don't want users to accumulate more than 5 minutes
  3345.      of door time between 7 and midnite of any day.
  3346.  
  3347.      #event all 19:00 door-limit quiet 300 "" 5
  3348.  
  3349.      would do this.  Please note that this is not an infallible event.  If the
  3350.      user decides to run a door which allows more usage when it is up than is
  3351.      allowed here, the door-limit will be exceeded.  If the user does exceed
  3352.      the limit, Citadel-86 will stop the user from running any more doors.
  3353.      But this is not by any means a super-duper overseer.
  3354.  
  3355.  
  3356.  
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362.  
  3363.  
  3364.                                     -47-
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  
  3371.      XIX.6 Automatic Doors
  3372.         An 'automatic' door in Citadel-86 is a door which is automatically
  3373.      executed when a specified user logs in.  This is a highly specialized
  3374.      capability, and so if you're not sure that you need it, don't worry about
  3375.      it.  Basically, this will be of use to sysops who's systems may be
  3376.      subject to periodic polls from automated callers.
  3377.  
  3378.         A #event to implement an automatic door is of the form
  3379.  
  3380.      #event <days> <time> autodoor quiet <duration> "" "username" doorcode
  3381.  
  3382.         As usual, days, time, and duration lets you specify when this autodoor
  3383.      is active.  While we agree such ability might be of little use, it is
  3384.      there and feel confident someone somewhere will find a use for it.  This
  3385.      sort of event uses class "autodoor" and type "quiet".
  3386.  
  3387.         Finally, the depends field for this class of event has two values.  The
  3388.      first value is the name of the user which will trigger an automatic door,
  3389.      while the second value specifies which door is to be triggered.
  3390.  
  3391.         Example 1: Suppose everytime the user named "Local UseNet" logs in you
  3392.      want to execute the door named "usenet".  You would then require two
  3393.      separate entries in your CTDLCNFG.SYS.  The first one (although they may
  3394.      physically be in any order you wish) is the #door parameter, which would 
  3395.      read something like this:
  3396.  
  3397.      #door usenet xxxx xxxxx autodoor modem unlimited
  3398.  
  3399.      <whatever necessary options>
  3400.  
  3401.      If you are already familiar with doors, you will note the new 'who' type
  3402.      of door mentioned above: "autodoor".  A door entry with such a who value
  3403.      will not be shown in the doors listings shown to users, and cannot be run
  3404.      manually. However, it is not mandatory that a door to be run as an
  3405.      autodoor be so marked.
  3406.  
  3407.         The second entry is the #event which will activate the autodoor.  This
  3408.      would be
  3409.  
  3410.      #event all 1:00 autodoor quiet 1440 "" "Local Usenet" usenet
  3411.  
  3412.         This event is always active (note the duration of 1440), so whoever,
  3413.      or more accurately whatever, logs in using this account will always be
  3414.      thrust into the door named 'usenet'.  Note the use of double quotes
  3415.      around the name of the user who triggers this autodoor: they are
  3416.      MANDATORY.  They are there so  we may distinguish between the name of the
  3417.      user, which may have more than one word, and the name of the door entry,
  3418.      which is always one word.
  3419.  
  3420.      XX. External Message Editors
  3421.         Ambitious sysops may provide "external message editors" to their
  3422.      users.  An external message editor is just like the Sysop's Editor
  3423.      (Section XII), except they can be made available to the remote users,
  3424.      if the sysop is ready to do the legwork.  When Citadel-86 executes
  3425.      an external editor, it makes no attempt at redirecting the input from
  3426.      the keyboard to the modem, or the output from the screen to the modem.
  3427.  
  3428.  
  3429.  
  3430.                                     -48-
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.      Instead, the sysop must either find an editor which will do such things,
  3438.      or find some program which will do so for them, such as Marshall Dudley's
  3439.      fine DOORWAY program (which, unfortunately, is shareware).
  3440.  
  3441.         Anyways, on to the gritty details.  The user interface to the external
  3442.      editors is analogous to that provided for the External Protocols of
  3443.      Section XV & XVII.  When faced with the "entry cmd: " prompt of the message
  3444.      editor, the users may select any external message editor simply by
  3445.      pressing the key assigned by the sysop.  For instance, if the Sysop
  3446.      has decided an external full screen editor should be accessed via the
  3447.      'F' key, the user need only type 'F' at the entry cmd: prompt in order
  3448.      to enter text via the full screen editor.  When the sysop adds external
  3449.      editors to the installation, they should remember to modify the help
  3450.      file EDIT.MNU to reflect the change.
  3451.  
  3452.         But how are external editors installed?  Again, analogous to the
  3453.      External Protocols, all external editors are listed in a separate file.
  3454.      The file is called EDITORS.SYS and should reside in your #ROOMAREA
  3455.      directory.  Each line in the file specifies an external editor.  The
  3456.      format of each line is
  3457.  
  3458.         <editor name> <command line>
  3459.  
  3460.         "Editor name" is the name to be echoed to the user when they select
  3461.      this editor, AND the first letter of this name is the selector letter.
  3462.      Additionally, this can only be one (1) word, unless you surround the
  3463.      name with quotes (").  So if you want your full screen external editor
  3464.      to just be FullScreen, then you could just have
  3465.  
  3466.         FullScreen ...
  3467.  
  3468.      but if you want it to be two words, you'd have to have
  3469.  
  3470.         "Full Screen" ...
  3471.  
  3472.      In both cases, the user would type 'F' to gain access to it.
  3473.  
  3474.         "Command line" is the command line to be used to run the editor.
  3475.      You may use the macros defined in the External Protocols section
  3476.      (XV & XVII) in order to convey important information to the editor, except
  3477.      for %g.  This includes the new %h parameter.  For instance, if you have
  3478.      found an editor (call it "outside") which will run off your COM port,
  3479.      with the arguments being the Com port, the baud, and the name of the file
  3480.      to edit, you might have
  3481.  
  3482.         "Full Screen" outside %c %a
  3483.  
  3484.         The name of the file to edit is automatically appended to the end of
  3485.      command line.
  3486.  
  3487.         You can NOT override any of the already existing message editor
  3488.      commands.  As of this writing, those are <A>bort, <C>ontinue, <R>eplace,
  3489.      <P>rint, <S>ave, <H>old, <I>nsert, <N>et, <W>ho else, and <O>utside Editor.
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.                                     -49-
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.         This is definitely an advanced option, particularly if you are
  3504.      trying to run an editor using DOORWAY or similar program.  Approach
  3505.      with caution.
  3506.  
  3507.         Ease v1.5 will let you build the EDITORS.SYS file if you prefer to
  3508.      do things the easy way.
  3509.  
  3510.      Appendix A: Contributors
  3511.         There have been a number of contributors to Citadel-86 over the years,
  3512.      and it's only appropriate to acknowledge such people.
  3513.  
  3514.         It's natural to begin by remembering the original author of Citadel-86,
  3515.      Cynbe ru Taren of Seattle, and the early contributors, such as David V.
  3516.      Mitchell and others we are not aware of.  They are the reason Citadel-86
  3517.      and its many children exist today.
  3518.  
  3519.         A partial list of others include the following:
  3520.  
  3521.         Hue, Sr. of SuperComp III: for general support, testing, suggestions,
  3522.      and motivation, not to mention providing access to the code!
  3523.  
  3524.         John L. Stanley: A great deal of early work with Hue, Jr., to get the
  3525.      bugs out of the early CP/M Citadel 2.10 code, and then the later
  3526.      development of most of the core concepts of C86Net.
  3527.  
  3528.         Jay Johnson, for Insert Paragraph and a great deal of general work
  3529.      and ideas, not to mentioned Citadel-68k.
  3530.  
  3531.         Dale Schumacher (Dalnefre') of Syntel for additions to the Configure
  3532.      program and fighting with me a lot.
  3533.  
  3534.         Paul Gontier of Kat's Alley for the video support code.
  3535.  
  3536.         Eric Brown of Primordial Ooze for the Zenith Z-100 modem code.
  3537.  
  3538.         Paul Gauthier of Cerebral Cortex for the Hot Helps code, USENET access
  3539.      gateway, OtherNet concept, and pushing Citadel-86 into implementing Anytime
  3540.      Netting, plus a host of minor suggestions.
  3541.  
  3542.         Gary Meadows of Asgard-86 for his Door Support code and other
  3543.      suggestions.
  3544.  
  3545.         Kip DeGraaf for taking care of the netmaps.
  3546.  
  3547.         SSR of Chaos II for forcing USR HST 9600 support into Citadel-86.
  3548.  
  3549.         Royce Howland of Edmonton for his CALLSTAT utility.
  3550.  
  3551.         BKB of Novu for several useful utilities.
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.                                     -50-
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.         Fred Rose of House of Fred for another utility.
  3570.  
  3571.         Phluffy for general ideas and STROLL.
  3572.  
  3573.         Andy Rubin of Spies in the Wire for being the first network node
  3574.      outside of Minnesota.
  3575.  
  3576.         mary mary for her many ideas, unfailing support and editing these damn
  3577.      manuals!
  3578.  
  3579.         And, of course, the cast of thousands responsible for the ideas
  3580.      which have made Citadel-86 into what it is today.
  3581.  
  3582.  
  3583.                                 -- Hue, Jr.
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.                                     -51-
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  
  3635.