













                        C I T A D E L  -  8 6

                                V3.39

                          OPERATIONS MANUAL

                        Copyright 1989 - 1991

                             by Hue, Jr.

                       C-86 Test System Sysop

                               91Jul26











































                      TABLE OF CONTENTS

     I.  Introduction   . . . . . . . . . . . . . . . . . . 1
     II. Help Files . . . . . . . . . . . . . . . . . . . . 1
          II.1. Location  . . . . . . . . . . . . . . . . . 1
          II.2. File Types  . . . . . . . . . . . . . . . . 1
          II.3. Optional Customization  . . . . . . . . . . 1
          II.4. Customizable Structure  . . . . . . . . . . 2
          II.5. Help File Variables . . . . . . . . . . . . 3
          II.6. Required Customization  . . . . . . . . . . 4
          II.7. Optional Help Files . . . . . . . . . . . . 4
          II.8. Adding Help Files . . . . . . . . . . . . . 5
          II.9. New Users . . . . . . . . . . . . . . . . . 5
          II.10. Delivered  . . . . . . . . . . . . . . . . 6
     III. Sysop Privileged Functions  . . . . . . . . . . . 7
          III.1. Introduction . . . . . . . . . . . . . . . 7
          III.2. Access . . . . . . . . . . . . . . . . . . 8
          III.3. Access Restrictions  . . . . . . . . . . . 8
          III.4. Sysop Capabilities . . . . . . . . . . . . 8
          III.4.a <A>bort . . . . . . . . . . . . . . . . . 9
          III.4.b <B>aud Rate Selection . . . . . . . . . . 9
          III.4.c <C>hat Enable/Disable . . . . . . . . . . 9
          III.4.d <D>ebug Switch  . . . . . . . . . . . . . 9
          III.4.e <E>cho To Screen  . . . . . . . . . . . . 9
          III.4.f <F>ile Grab . . . . . . . . . . . . . . . 9
          III.4.g <I>nformation . . . . . . . . . . . . . . 9
          III.4.h <M>odem Mode  . . . . . . . . . . . . . .10
          III.4.i <N>etworking Commands . . . . . . . . . .11
          III.4.j <O>ther Commands  . . . . . . . . . . . .11
          III.4.k <R>einitialize Modem  . . . . . . . . . .11
          III.4.l <S>et Date  . . . . . . . . . . . . . . .11
          III.4.m e<X>it To MS-DOS  . . . . . . . . . . . .11
          III.5. Undocumented Sysop Menu Commands . . . . .11
          III.6 User Administration . . . . . . . . . . . .11
          III.6.a <A>dd User  . . . . . . . . . . . . . . .12
          III.6.b <D>oor Privileges . . . . . . . . . . . .12
          III.6.c <E>ndless User (permanent account). . . .12
          III.6.d <K>ill Account  . . . . . . . . . . . . .12
          III.6.e <N>etwork Privileges  . . . . . . . . . .12
          III.6.f <P>rivileged Switch . . . . . . . . . . .12
          III.6.g <T>wit Status . . . . . . . . . . . . . .12
          III.6.h e<X>it  . . . . . . . . . . . . . . . . .12
     IV. User Levels & Aide stuff . . . . . . . . . . . . .13
          IV.1. Introto User Levels . . . . . . . . . . . .13
          IV.2. Normal Users  . . . . . . . . . . . . . . .13
          IV.3. Aides . . . . . . . . . . . . . . . . . . .13
             IV.3.a Message Manipulations . . . . . . . . .13
                  IV.3.a.1 Message Deletion . . . . . . . .13
                  IV.3.a.2 Moving Messages  . . . . . . . .13
                  IV.3.a.3 Copying Messages . . . . . . . .14
                  IV.3.a.4 Conversions  . . . . . . . . . .14















             IV.3.b General Aide Commands . . . . . . . . .14
                  IV.3.b.1 Room Elimination . . . . . . . .14
                  IV.3.b.2 Empty Room Deletion  . . . . . .14
                  IV.3.b.3 Room Editing . . . . . . . . . .14
                  IV.3.b.4 Message Insertion  . . . . . . .15
             IV.3.d Floors  . . . . . . . . . . . . . . . .15
                  IV.3.d.1 Floor Creation . . . . . . . . .15
                  IV.3.d.2 Room Moving  . . . . . . . . . .15
                  IV.3.d.3 Floor renaming . . . . . . . . .15
                  IV.3.d.4 Floor Killing  . . . . . . . . .15
             IV.3.e Aide Command Summary  . . . . . . . . .15
             IV.3.f Possible extra privileges . . . . . . .15
         IV.4 Sysops  . . . . . . . . . . . . . . . . . . .15
             IV.4.a Message Journaling  . . . . . . . . . .15
             IV.4.b Directory Journaling  . . . . . . . . .15
             IV.4.c Copying Files   . . . . . . . . . . . .16
     V.  Rooms  . . . . . . . . . . . . . . . . . . . . . .17
          V.I Room Attributes   . . . . . . . . . . . . . .17
          V.I.1. Room Archival   . . . . . . . . . . . . . 17
          V.I.2. Backbones   . . . . . . . . . . . . . . . 18
          V.I.3. Directory Status  . . . . . . . . . . . . 18
          V.I.4. Information Editing . . . . . . . . . . . 18
          V.I.5. Innominate Status   . . . . . . . . . . . 18
          V.I.6. Lure Users  . . . . . . . . . . . . . . . 18
          V.I.7. Moderator   . . . . . . . . . . . . . . . 19
          V.I.8. Name Change   . . . . . . . . . . . . . . 19
          V.I.9. Only Invitational   . . . . . . . . . . . 19
          V.I.10. Privacy Status . . . . . . . . . . . . . 19
          V.I.11. Temporary Status  . . . . . . . . . . . .19
          V.I.12. Shared Status   . . . . . . . . . . . . .20
          V.I.13. Upload/Download Status  . . . . . . . . .20
          V.I.14. Withdraw Invitations  . . . . . . . . . .20
          V.I.15. Network Downloadable  . . . . . . . . . .20
          V.II. Other Room Editing Commands . . . . . . . .20
          V.III. Three Exceptions . . . . . . . . . . . . .20
     VI. Files - Upload/Download Capabilities . . . . . . .20
          VI.1. Origin  . . . . . . . . . . . . . . . . . .20
          VI.2. Creation  . . . . . . . . . . . . . . . . .21
          VI.3. User Commands   . . . . . . . . . . . . . .21
          VI.3.i. Content Listing . . . . . . . . . . . . .21
          VI.3.ii. File Transfers . . . . . . . . . . . . .23
          VI.3.ii.a Upload Protocols  . . . . . . . . . . .23
          VI.3.ii.b Download Protocols  . . . . . . . . . .24
     VII.<O>ther Commands . . . . . . . . . . . . . . . . .24
          VII.1. General Purpose  . . . . . . . . . . . . .24
          VII.2. Other Commands   . . . . . . . . . . . . .25
          VII.2.a. Deletion . . . . . . . . . . . . . . . .25
          VII.2.b. Outside Commands . . . . . . . . . . . .25
          VII.2.b.i. Restrictions . . . . . . . . . . . . .25
     VIII.Miscellaneous . . . . . . . . . . . . . . . . . .26
          VIII.1. Wha...?   . . . . . . . . . . . . . . . .26
          VIII.2. Chatty Questions  . . . . . . . . . . . .26
          VIII.3. Chat Capture   . .  . . . . . . . . . . .26
          VIII.4. File Transfers while in Chat Mode . . . .27
          VIII.5. ESCaping  . . . . . . . . . . . . . . . .27
          VIII.6  Typing at Keyboard W/User is in Control .28
             VIII.6.a Sysop Autodial  . . . . . . . . . . .28
             VIII.6.b Chat Mode . . . . . . . . . . . . . .28
             VIII.6.c Echo Mode . . . . . . . . . . . . . .28







          VIII.7. Denizens Of The Status Bar  . . . . . . .28
          VIII.8. Modem Disabling . . . . . . . . . . . . .29
          VIII.9. BADWORDS.SYS  . . . . . . . . . . . . . .29
          VIII.10. Massive Privileges . . . . . . . . . . .30
     IX.  SEA's ARC files . . . . . . . . . . . . . . . . .31
          IX.1 DeArcing   . . . . . . . . . . . . . . . . .31
          IX.2 ARC Integrity Checks   . . . . . . . . . . .31
     X.   PKWARE's ZIP Files  . . . . . . . . . . . . . . .32
          X.1 DeZIP   . . . . . . . . . . . . . . . . . . .32
          X.2 ZIP Integrity Checks  . . . . . . . . . . . .32
     XI.  ZOO Files . . . . . . . . . . . . . . . . . . . .32
          XI.1 DeZOO  . . . . . . . . . . . . . . . . . . .32
          XI.2 ZOO Integrity Checks . . . . . . . . . . . .32
     XII. LHARC Files . . . . . . . . . . . . . . . . . . .32
          XII.1 DeLZH . . . . . . . . . . . . . . . . . . .32
          XII.2 LZH Integrity Checks  . . . . . . . . . . .32
     XIII. GIF Files  . . . . . . . . . . . . . . . . . . .32
     XIV. Sysop's Editor  . . . . . . . . . . . . . . . . .32
          XIV.1 Sysop Editor Notes  . . . . . . . . . . . .34
     XV. Door Support . . . . . . . . . . . . . . . . . . .35
          XV.1. Administration  . . . . . . . . . . . . . .35
          XV.1.a. User Administration . . . . . . . . . . .35
          XV.1.b. Door Administration . . . . . . . . . . .35
          XV.2 BAT File Support . . . . . . . . . . . . . .37
          XV.3 Compatability  . . . . . . . . . . . . . . .38
          XV.4 Automatic Doors  . . . . . . . . . . . . . .38
          XV.5 New User Doors . . . . . . . . . . . . . . .39
     XVI. Citadel-86 As A Door  . . . . . . . . . . . . . .39
     XVII. External Protocol Drivers  . . . . . . . . . . .40
          XVII.1 Adding drivers . . . . . . . . . . . . . .40
          XVII.2 Number of drivers  . . . . . . . . . . . .41
          XVII.3 USR HST 9600 notes . . . . . . . . . . . .42
     XVIII. Questions & Answers . . . . . . . . . . . . . .42
     XIX. #event Examples!  . . . . . . . . . . . . . . . .43
          XIX.1 Automating Backups  . . . . . . . . . . . .43
          XIX.2 Scheduled Network Sessions  . . . . . . . .45
          XIX.3 Anytime Network Sessions  . . . . . . . . .46
          XIX.4 Download Time Limits  . . . . . . . . . . .47
          XIX.5 Door Time Limits  . . . . . . . . . . . . .48
          XIX.6 Automatic Doors   . . . . . . . . . . . . .48
     XX. External Message Editors   . . . . . . . . . . . .49
     Appendix A: File Formats   . . . . . . . . . . . . . .50
     Appendix B: Contributors . . . . . . . . . . . . . . .52























     I. INTRODUCTION
        Hello, this is the Operations Manual for Citadel-86.  In this manual
     we will attempt to explain the daily machinations of Citadel-86 that you,
     the sysop, will encounter.  We've tried to cover as much as we can,
     particularly concentrating on areas in which we've encountered numerous
     questions, as well as other areas where we've noted sysops are not aware
     of useful options.

        There is something of a fuzzy line between this manual, OPER3.MAN, and
     the Citadel-86 Installation Manual, INSTALL3.MAN.  Some folk may think
     that some subjects belong in the Installation Manual rather than here,
     and vice-versa.  If you don't find something in here, it wouldn't hurt
     to peruse the Installation Manual.

        Finally, and for the record, Citadel-86 is a direct port of Cynbe ru
     Taren's CP/M Citadel 2.10 code, as obtained from the C Users Group (CUG).
     Without Cynbe's genius, Citadel-86 would not exist.
 
     II. Help Files

     II.1. Location
        The supporting help files of Citadel-86, which are simple text files,
     should be located in the #HELPAREA drive and directory.  As explained in
     the Installation Manual, you should copy these files to that directory
     before operating your system, unless you do not plan to provide help to
     the users of the system.

     II.2. File types
        There are three types of Help files, identifiable by their extensions,
     plus some miscellaneous types.

        .BLB: These files contain miscellaneous messages and warnings for use
               in certain set locations of Citadel-86.

        .MNU: These files contain menus that are normally printed out when the
              user touches '?' while using Citadel-86.  Usually, these are just
              lists of options.

        .HLP: These are general help files that are accessible through the
              .Help <filename> command.  Generally, these files contain terse
              instructions on the use of the system, including references to
              other files that may be of help to the user.

     II.3. Optional Customization
        The Help files as delivered are of a generic nature, and any of them
     may be modified using a text editor at the Sysop's option.  The .BLB
     files are generally English descriptions of operations, and can be
     modified for greater readability/useability with little danger of any
     problems.

        On the other hand, the .MNU files should not be modified impulsively,
     since they consist mostly of menu lists.







                                  -1-






        The .HLP files are the best candidates for customization, since they
     are English descriptions, and, for the most part, are not "hard-coded"
     into Citadel-86; rather, they are usually referenced by the user after 
     s/he finds a reference to them.  See section II.3 below, too.

        All help files are formatted just like messages when they are
     displayed to the user; therefore, you should be sure to follow the normal
     Citadel formatting rules when rewriting Help files, except that you
     needn't place a lone space on a blank line to enforce that blank line (a
     difficult thing to do with many editors).

     II.4. Customizable structure
        Beginning with Version 3.10 of Citadel-86, the help file system has
     some capabilities not previously found in Citadel.  Originally designed
     and implemented by Paul Gauthier of Nova Scotia, Canada, the help system
     of Citadel can now be menu driven at the option of the System Operator.

        Access to the help system has not changed; both <H>elp and <.H>elp are
     used to access help files.

        In appearance, a help file using the enhanced capabilities will display
     in this general format:

        <text text text ...
                   ... end text>

      [a] <help file 1> <description for help file 1.>
      [b] <help file 2> <description for help file 2.>
         ...
      [x] <help file n> <description for help file n.>

      Press RETURN to exit Help, or select an option [a-x]:

        Essentially, when a user selects a help file to read, Citadel-86 will
     display the text of the help file for the user, and then a list of help
     files that the user may select from.  Both the description, as before,
     and the list of options is completely under the System Operator's control.
     The ambitious System Operator with an ambitious, coherent view of what a
     Citadel Help System should be can use this to construct what he wants.

        So how do you make the list of options appear at the end of your
     favorite help file?  By specifying the names at the end of the help file
     in question, prefixing each name with a "%" and suffixing each file name
     with its description.  For the above generic example, you would have

       <text text text ...
                      ... end text>

       %<help file 1> <description for help file 1.>
       %<help file 2> <description for help file 2.>
         ...
       %<help file n> <description for help file n.>







                                  -2-






     and a concrete example would be

        Hi, I'm a meaningless help file, and here are my options:

      %SNEEZING How to sneeze while using Citadel.
      %EATING How to eat at Utica College.
      %SLEEPING How to sleep while baking in the heat of Minnesota.

        Finally, this Help System applies only to the .HLP files (explained in
     II.2), not to any other types of help.

     II.5 Help File Variables
        The Hot Help system can display the values of certain CTDLCNFG.SYS
     parameters at the option of the sysop.  The procedure resembles the manner
     in which help files may be 'linked' together to make menus: a special
     character followed by a string of characters naming the requested
     variable.  Assuming the request is valid, the request is replaced by the
     actual value of the installation.

        The special character is the up arrow, '^'.

        Not all of the CTDLCNFG.SYS parameters are available for display.
     In fact, only a few are available.  This is the currently supported list:

       Variable Name  |  CTDLCNFG.SYS counterpart (or whatever)
       -----------------------------------------------------------
        ^nodetitle    |  #nodeTitle
       -----------------------------------------------------------
        ^nodeid       |  #nodeId
       -----------------------------------------------------------
        ^nodename     |  #nodeName
       -----------------------------------------------------------
        ^nodedomain   |  #nodeDomain
       -----------------------------------------------------------
        ^baseroom     |  #baseRoom
       -----------------------------------------------------------
        ^mainfloor    |  #MainFloor
       -----------------------------------------------------------
        ^sysopname    |  #sysopName
       -----------------------------------------------------------
        ^variantname  |  The software name (i.e., "Citadel-86")
       -----------------------------------------------------------
        ^sysopname    |  System Operator's account (if specified)
       -----------------------------------------------------------
        ^doorlist     |  List of available doors.
       -----------------------------------------------------------
        ^ulprotocols  |  List of available upload protocols
       -----------------------------------------------------------
        ^dlprotocols  |  List of available download protocols
       -----------------------------------------------------------

        The last two are constructed from your CTDLPROT.SYS file described
     in the section concerning external protocol drivers in this manual.






                                  -3-






     EXAMPLE
        Suppose you wished to display the name of the sysop somewhere in your
     help system to the users.  You would then have something like this in the
     help file(s):
     
        " ... And, of course, the sysop bringing this wealth of information to
     you today is ^sysopname.  And now on to the next contestant on the
     ^nodename BBS!"

     II.6. Required Customization
        There are four files that you should customize for your installation
     as soon as you feel you are prepared to.  They are

        HOURS.HLP: This file should contain the hours that your system is
     available to users.

        POLICY.HLP: This file should contain your general policy statement
     regarding your system and its purpose.  The rules of your system could
     also possibly appear here.

        NOCHAT.BLB: When you have Chat mode turned off on your system, this
     file is printed to the users when they attempt to use the Chat command.

        UNLOG.BLB: This file must be customized by Sysops running closed 
     systems only.  When a user without a password attempts to log into
     such a system, the system will print this file to the would-be user
     if it exists.  If the file doesn't exist, then a hard-coded message
     instructing the user to proceed to Mail> and leave a message for
     Sysop will appear.

     II.7. Optional Help Files
        There are 190 (!) Help files that do not need to be present
     during Citadel-86's operation, but if they are will cause Citadel-86 to
     alter its behavior slightly when a user is on the system.

        The first three files are BANNER.PRE, NOTICE.PRE, and LONOTICE.PRE.
     These files, if present in your #HELPAREA directory, will be printed
     when carrier is detected and baud detected (BANNER.PRE) and before
     BANNER.BLB (see below), after a successful login and before NOTICE.BLB
     (NOTICE.PRE) (see below), and on logout before carrier is lost, before
     LONOTICE.BLB is printed (LONOTICE.PRE) (see below).  These files allow
     the sysop to have a standard beginning of BANNER/NOTICE/LONOTICE.

        The next file is BANNER.BLB.  If this file is present in the #HELPAREA
     directory when a user gains carrier, this file will be sent to the user.
     This allows large beginning banners to be used. If the BANNER.BLB file is
     not present, then the #nodeTitle parameter of CTDLCNFG.SYS will be sent
     to the user in its place.  However, BANNER.BLB can be overridden even
     if present; see below.

        The next file is NOTICE.BLB.  If this file is present in #HELPAREA,
     Citadel-86 will send it to the user upon a successful login.  However,
     NOTICE.BLB can be overridden even if present; see below.






                                  -4-






        The next file is LONOTICE.BLB.  If this file is present in #HELPAREA,
     Citadel-86 will send it to the user when the user executes any of the
     Terminate commands before logging them out.  However, LONOTICE.BLB can be
     overridden even if present; see below.

        Then there is NEWUSER.BLB.  If this file is present, it will be
     displayed to a prospective new user before* they are allowed to proceed
     into initial account creation.

        The next sixty (!) files, unlike the balance of the help files, do not
     reside in #HELPAREA, but instead in the directory BANNERS, and they are
     named BANNER.0, BANNER.1, ... BANNER.59.  If these files are present, when
     Citadel-86 recognizes the baud rate of the caller it will select one of
     these banners, depending on the second of the minute, and display it to
     the user.

        The next sixty files, like BANNER.0, BANNER.1, etc., also reside
     in the BANNERS directory.  These are named LONOTICE.0, LONOTICE.1, etc. If
     these files are available when a user logs off, one will be selected
     randomly (by reading the system clock) and presented to the user before
     carrier is dropped.  If they are not available, then LONOTICE.BLB in
     the #HELPAREA directory will be presented.

        The next sixty files are also analogous to the BANNER.0, etc., files,
     but they are named NOTICE.0, NOTICE.1, etc., and will take the place
     of NOTICE.BLB if they are present in BANNERS.

        The last three files are BANNER.SFX, NOTICE.SFX, and LONOTICE.SFX.
     These files, if present, are printed after BANNER.BLB (or BANNER.xx),
     NOTICE.BLB (or NOTICE.xx), and LONOTICE.BLB (or LONOTICE.xx),
     respectively.  Used in combination with the BANNERS directory, this lets
     you put a standard suffix on your variable carrier banners, login
     notices, and logout notices without forcing you to edit all of those
     variable things.

     II.8. Adding Help Files
        Through the use of the .Help command, users may access any file that
     you place in the #HELPAREA that has a .HLP extension.  Therefore, if you
     wish to extensively customize and extend the Citadel-86 Help system, you
     should encounter few problems.

        When a user enters ".Help ?", however, the file HELPOPT.HLP will be
     printed to them.  Therefore, you should take care to keep that file up
     to date if you begin adding Help files.

     II.9. New Users
        You may configure Citadel-86 to automatically generate and deliver a
     message in Mail> to a user on his or her initial login via two files
     placed in the #HELPAREA directory.  When the user has finished the initial
     login process, he or she will discover the Mail> room has a message
     in it, and Goto will take them to Mail.  The message will have as the
     author either Citadel, if there is no sysop designated in your
     installation, or the name of the sysop (#sysopName in CtdlCnfg.Sys).






                                  -5-






        The two files are used for two different situations: new users who
     designate themselves as novices, and new users who claim to be experts.
     The names of the files are NOVMAIL.BLB for the Mail to the novices, and
     EXPMAIL.BLB for the Mail to the experts.

        You may write these files just like any other Help file (except for
     using special directives); Citadel-86 will format them appropriately when
     delivering them to the new user.

        This option is also in effect if you are adding new users via the
     Add User command of the User Admin Menu (Section III.6).

     II.10. Delivered
        These are the Help files currently contained in RUNTIME.ARC, which
     you should have.  While we always try to keep these files up to
     date, we cannot guarantee that they are in keeping with the release
     version of Citadel-86 that is in RUNTIME.ARC.

     .BLB files
     BANNER.BLB   | Placeholder, printed to user on carrier detect.
     BIONOV.BLB   | Printed to novice users entering a biography.
     ENTRY.BLB    | Printed to novice users entering a message.
     LONOTICE.BLB | Placeholder, printed to user on logout.
     NEWROOM.BLB  | Printed to novice users creating a new room.
     NOCHAT.BLB   | Printed to users using the Chat command when inactive.
     NOTICE.BLB   | Placeholder, printed to user on login.
     PASSWORD.BLB | Printed to novice users during new login process.
     READDATE.BLB | Printed on entry of ".Read New ?" or Old or Reverse or ...
     UNLOG.BLB    | Placeholder, for closed systems only (see X.4).
     WCDOWN.BLB   | Printed to novice users using .RX command.
     WCUPLOAD.BLB | Printed to novice users using .EF or .EXF or .EF command
     WXDOWN.BLB   | Printed to novice users using .RW command.
     WXUP.BLB     | Printed to novice users using .EWF command.
     YMDOWN.BLB   | Printed to novice users using .RY command.
     YMODEMUP.BLB | Printed to novice users using .EYF command.
     YMUPLOAD.BLB | Printed to indicate the Ymodem upload is in SINGLE mode.

     .MNU files
     AIDE.MNU     | Printed when an Aide enters .Aide ?.
     AIDEFLR.MNU  | Printed when an Aide enters ;Aide ?.
     CONFG.MNU    | Printed when a user enters .Enter Configuration ?.
     CTDLOPT.MNU  | Printed when a Sysop enters ? at the Privileged fn: prompt.
     EDIT.MNU     | Printed when a user enters ? at the entry cmd: prompt.
     ENTOPT.MNU   | Printed when a user enters .Enter ?.
     FLOOR.MNU    | Printed when a user enters ;?.
     INFOEDIT.MNU | Printed when a user enters ? at the Info Edit prompt.
     KNOWN.MNU    | List of .Known Rooms options.
     MAINOPT.MNU  | Printed when a user enters ? or .? at a room prompt.
     NETEDIT.MNU  | Printed when the Sysop enters ? at the Net Edit: prompt.
     NETOPT.MNU   | Printed when the Sysop enters ? at the Net Cmd: prompt.
     READOPT.MNU  | Printed when a user enters .Read ?.
     ROOMA.MNU    | Printed when a remote Aide enters ? at the room edit:
                  | prompt.
     ROOMS.MNU    | Printed when a Sysop enters ? at the room edit: prompt.
     SYSOPT.MNU   | Printed when a Sysop enters ? at the Other commands:
                  | prompt.
     USEROPT.MNU  | Printed when a Sysop enters ? at the User Admin: prompt.


                                  -6-






     .HLP files
     ADVANCED.HLP | List of advanced user Help Files and some text.
     AIDE.HLP     | Aide help file.
     AIDEFLR.HLP  | Aide help file for floor commands.
     BIO.HLP      | Help on Biographies.
     BOARD.HLP    | A menu of board-specific help files.
     COMMANDS.HLP | List of help files for novices.
     COMPCOMM.HLP | Help on Compressed files (ARC, ZIP, etc).
     DOMAINS.HLP  | Help on Citadel-86 domains.
     DOORS.HLP    | Help on Citadel-86 doors.
     DOT.HLP      | Help on the dot ('.') commands.
     DOWNLOAD.HLP | Help on downloading from Citadel-86.
     EDIT.HLP     | Help with editing messages on Citadel-86.
     ENTER.HLP    | Help for the Enter commands.
     FILES.HLP    | Upload/Download help.
     FLOORS.HLP   | Floor help for the normal user.
     FLOW.HLP     | How to handle message flow.
     FORGET.HLP   | Help on the ZForget room command.
     FORWARD.HLP  | Mail forwarding (network).
     GENERAL.HLP  | General help listing.
     GOTO.HLP     | Help on the Goto command.
     HELD.HLP     | Help on Holding messages.
     HELPOPT.HLP  | A directory of Help files.
     HIDDEN.HLP   | Help on Hidden rooms.
     HOURS.HLP    | Place holder, should contain your hours.
     LOGINOUT.HLP | Help on Logging in and out of the system.
     MAIL.HLP     | Help on Citadel-86's Mail system.
     MAINHELP.HLP | Printed when user enters the Help command.
     NET-MAIL.HLP | Help on C86Net mail.
     NETROOMS.HLP | Help on shared rooms.
     NOVFLOW.HLP  | Help on message flow for novices.
     NOVICE.HLP   | General novice help.
     POLICY.HLP   | Place holder, should contain your policy.
     PROTOCOL.HLP | Help on the available protocols.
     READ.HLP     | Help on using the Read commands.
     RECONFIG.HLP | Information on reconfiguration.
     SINGLE.HLP   | Help on single-stroke commands.
     SKIP.HLP     | Help on using the Skip command.
     SUMMARY.HLP  | Complete summary of the "." and ";" commands.
     TOC.HLP      | Help on directory listings.
     UPLOAD.HLP   | Help on uploads.
     WHATCOMP.HLP | What is a compressed file, anyways?

     III. SYSOP PRIVILEGED FUNCTIONS
 
     III.1. Introduction
        In any system, there must be someone in charge if the system is to be
     successful, and that person must have special abilities.  In Citadel-86,
     anyone who has access to the system console may execute many of the Sysop
     capabilities, and the root of all these evils (for necessary as Sysop
     powers are, they often lead to evil) is the Privileged Fn: menu (aka
     the Sysop Menu).







                                  -7-






     III.2. Access
        The Sysop Menu is accessed by typing a ^L (Control-L) at any room
     prompt.  When accessing them from the console, all of the Sysop menus
     appear as a collection of options which can be selected either by their
     first letter (mnemonic) or by moving the double arrow (using the arrow
     keys) to the desired option and touching the return key ("ENTER").

	Remote sysops can get the list of options available at a Sysop Menu
     prompt by touching the '?'.

     III.3. Access Restrictions
        Access to the Sysop Menu is dependent on the location of the user at
     the time of attempted use.

        If the user is at the System Console, then the user does not even have
     to log in to use the Privileged Functions, once the System is in Console
     mode.  While this may seem somewhat precarious to the prospective Sysop,
     keep in mind that most installations do not normally run in public
     locations.

        If the user is a remote user, then access is very restricted.  First,
     the system must be using the #sysPassword feature (see Section II.5.C of
     INSTALL3.MAN) of Citadel-86.  Second, the user in question must be an
     Aide of the system.  Finally, the user must possess the password
     specified in the #sysPassword file, because the system will query the
     Aide for the password when the ^L is pressed.

     III.4. Sysop Capabilities
        Due to the prejudices of the implementor, Citadel-86's Sysop
     capabilities are neither variegated, overly powerful, or pretty; the
     users of the system come before the Sysop.

        Be that as it may, the Sysop Menu is exactly what it sounds like: a
     menu of choices which the Sysop may select from.  After each command
     is executed, the Sysop is queried for another.

        This is the current official Sysop Menu.

     (CTDLOPT.MNU)

       <A>bort to main menu
       <B>aud rate selection
       <C>hat enable/suppress switch
       <D>ebug switch
       <E>cho to screen switch
       <F>ile grab
       <I>nformation
       <M>odem mode
       <N>etworking commands
       <O>ther commands
       <R>einitialize modem
       <S>et date
       <U>ser Administration
      e<X>it to MS-DOS

        And here it is in detail.



                                  -8-






     III.4.a <A>bort
        This command exits from the Sysop Menu, leaving you at the current
     room prompt in CONSOLE mode.  This command is equivalent to the
     <M>odem mode command (III.4.i) if the user is a remote caller.

     III.4.b <B>aud rate selection
        This antiquated command allows you to set the baud rate of the serial
     port to the value that you indicate.  This command has some occasional
     usefulness in certain debug situations, so it still exists, but the
     typical System Operator should never have a use for this option.

     III.4.c <C>hat enable/disable
        This command acts as a toggle for Chat enabled/disabled.  When Chat is
     enabled, the System will display a 'C' somewhere on your Status bar, and
     users using the <C>hat command will be able to page you.  When the toggle
     is off, users using <C>hat will be greeted by your NOCHAT.BLB file (see
     Section I, HELP FILES).  Aides using the .Aide Chat command can, however,
     override this toggle.  A Sysop who really, truly wants privacy can use
     the +nochat option on the command line to shut Aides out (see Section
     II.9.a of INSTALL3.MAN).

     III.4.d <D>ebug switch
        This toggle command alternately turns debug code off and on.  Under
     normal circumstances, this toggle should always be off.  There is no
     telling what it will do from version to version, and in general will be of
     little, if any, help in isolating problems with your installation; it is
     more of a programming aide.

     III.4.e <E>cho to screen
        This toggle controls whether any output goes to the screen when the
     system is in MODEM mode.  This option is, of course, inoperative while
     the system is in CONSOLE mode.

     III.4.f <F>ile grab
        This command allows the Sysop to "grab" text files that are anywhere
     on his disk system into his Held Message buffer.  In essence, this gives
     the Sysop an equivalent ability to a normal user's composing a message
     offline and then uploading it.  The Sysop may compose a message using
     his or her favorite editor, and then <F>ile grab it into the Held
     Message Buffer.  However, there are more flexible and convenient ways of
     doing this; see Section XII, Sysop Editor.

        To be more precise, the <F>ile grab command appends the text file
     (or as much as it can digest) to the Held Message Buffer, thus allowing
     construction of messages from several sources.  Furthermore, none of the
     other contents of the Held Message are disturbed.  Therefore, you can
     begin writing a message using Citadel-86, hold the message, <F>ile grab
     something, and continue onwards.

     III.4.g <I>nformation
        This command provides information on the current version of Citadel-86
     that you are running. The information is provided in the following format:

             Citadel-86 VM.mm
             Net Version N.n
             Commands version O.ooo
             Ctdlcnfg.sys version Q


                                  -9-






        "Citadel-86 VM.mm" is the same version that is printed on Carrier Detect
     to users.  The "M" digit indicates the Major Change that Citadel-86 is at
     ("1" was simply a version that worked under MS-DOS, "2" was the addition
     of C86Net, "3" the addition of Floors).  The "mm" digits indicates changes
     made to Citadel-86 that provides normal users with substantial new
     capabilities.  Typically, "mm" does not change for new Sysop capabilities,
     cosmetic changes, or the like; it's really nothing more than a gross
     indicator of the version.

        "Net Version N.n" indicates the network capability of Citadel-86.  "N"
     indicates any Major changes to the network (the first version of C86Net
     did not have a number [boy, was it bad!], the second version was "0", and
     the current is "1").  Due to the expandable nature of C86Net, "N" will
     probably never change again.  "n" indicates Facility additions.  The
     association of "n" to Facility addition is documented in the INCREM.* files
     (which will be described shortly), and detailed in NETWORK3.MAN.

        "Commands version O.ooo" tells the real story behind what version you
     are running.  "O" is the Enhancement version, and is incremented whenever
     Citadel-86 is enhanced with a new command or appearance which does not
     require a change to the "Citadel-86 VM.mm" version.  "ooo" is the Fix
     version, and is incremented whenever a bug is fixed or another internal
     change takes place.  "O.ooo" values are, again, documented in the INCREM.*
     files.

        "Ctdlcnfg.sys version Q" tells what version of CTDLCNFG.SYS the system
     is at.  Typically, this value is only incremented for Major Releases.

        So what are these INCREM.* files?  These files, available on Test
     System (ask the Sysop for access to them), and possibly other systems,
     document the changes made to Citadel-86, albeit very tersely.  The format
     of the documentation is:

     <version change>        <date>          <description>

        <version change> usually refers to the Commands version, although it
     can refer to any of the version information in the Sysop's <I>nformation
     command.  <date> is when the version change was written/released.
     Description is the terse description of what occurred to force the change
     in version; when it is "???", it means that the Sysop was programming in
     his sleep again and forgot what he did (here we take a deep breath ...).  
     Occasionally you will be referred to other files documenting changes in
     detail.

        The INCREM.* files constitute the most reliable information on
     upgrades to Citadel-86, short of asking Test System's Sysop himself.
     Since he is a very grumpy person (born that way, you see), and is not
     adverse to biting off the heads of anyone who comes near, it is better
     to peruse these files once you have access to them.

     III.4.h <M>odem mode
        This command returns the system to MODEM mode.  If you have logged in
     at the CONSOLE, it is NOT a good idea to use this command until you have 
     logged out, and since a normal Termination at the console will cause
     the system to go into Modem mode, this is only useful when not logged
     in.



                                  -10-






     III.4.i <N>etworking commands
        This option takes you to a submenu that is only available on systems
     that are using the Network facilities (see II.5.d of INSTALL3.MAN and all
     of NETWORK3.MAN).  Since NETWORK3.MAN should explain this menu in detail
     (although perhaps not with the level of organization desired), we shan't
     go any farther here.

     III.4.j <O>ther commands
        This option will deliver you to another submenu that is covered in
     Section VII, OTHER COMMANDS MENU.

     III.4.k <R>einitialize modem
        This option allows you to reinitialize the modem.

     III.4.l <S>et date
        This function lets you set the date of the system.  This is currently
     disabled.

     III.4.m <U>ser Administration
        This option leads to another menu system, which is concerned with User
     Administration duties.  See Section III.6.

     III.4.n e<X>it to MS-DOS
        Finally, this command should be used to take Citadel-86 down
     gracefully. The current user is logged out if present, and the system 
     will then attempt to deactivate itself.

     III.5 Undocumented Sysop Menu Commands
        There are always one or more undocumented commands floating around in
     the Sysop Menu.  These are, without exception, debug commands for use by
     the programmer(s) of Citadel-86, and are not guaranteed to exist from one
     version to another of Citadel-86.  To expand even more upon this
     frightening thought, the safety and integrity of your systems are not
     guaranteed if you start screwing around with these options.

        So don't.

     III.6 User Administration
        Starting with Citadel-86 V3.14, those Sysop level commands dealing
     with various user privileges have been moved to their own menu, due to
     overcrowding of the main Sysop Menu.  These options, as noted above, are
     reached from the Main Sysop Menu via the <U>ser Administration command.

        (USEROPT.MNU)

           <A>dd new user
           <D>oor privileges switch
           <E>ndless User (permanent account)
           <F>ile privileges
           <K>ill account
           <N>et privileges switch
           <P>rivilege switch (aide set/clear)
           <T>wit switch
          e<X>it to main sysop menu





                                  -11-






     III.6.a <A>dd user
        This option lets you add new users to your system without logging out 
     of the system yourself.  This is particularly useful for closed systems, 
     especially when the sysop is performing maintenance from remote and is 
     utilizing the remote sysop functionality.  The process is as if a new 
     user were actually logging in, but after the normal questions are asked, 
     the sysop is asked if the new user should be given door and, if 
     appropriate, network privileges.

     III.6.b <D>oor Privileges
        Each account on your system may be set to have, or not have, Door
     privileges.  A Door is a program, typically run from a BBS, which allows
     the user to do something.  Citadel-86 Doors capability is detailed in
     Section XIII of this manual.  A user must have Door Privileges, assigned
     using this option or via the Configuration file default (CTDLCNFG.SYS),
     in order to use Doors on your system.

     III.6.c <E>ndless User (permanent account)
        You may set any account on your system to be permanent.  This means
     that it will not be automatically reused when new users log in and old
     users don't log in for a long period of time (normally, old accounts,
     if not used for a long time, will be recycled).  The only problem is
     if you should set every account to being permanent, then old accounts,
     even though permanent, will be recycled.

        An important implication is if you set a significant amount of accounts
     to be permanent, the scroll time on the other (temporary) accounts will
     become noticeably faster.

     III.6.d <F>ile Privileges
        File privileges (permission to download files) may be set using this
     switch.

     III.6.e <K>ill Account
        The time-honored function, Kill account, is accessed by typing K at
     the Sysop Menu.  Please don't kill the account of the person currently
     logged in.  Besides being rude, it won't work.

     III.6.f <N>etwork Privileges
        If you are running a network Citadel-86, you may use this option or
     the option in the Network Menu (see NETWORK3.MAN) to assign Network
     privileges to your users.  See NETWORK3.MAN for full details.

     III.6.g <P>rivileged switch
        The creation of those drudges, Aides, takes place through this
     command.  Anyone who is forced to become an Aide should also be forced
     to read AIDE.HLP (conveniently written in pidgin Swahili), which details
     most of the Aide capabilities.  As noted, Aides given the system password
     will gain access to this menu.

     III.6.h <T>wit Status
        First, a caveat: this was added reluctantly and may go away some day.
     Anyone who has been given Twit status no longer may save messages -- but
     they won't know it.

     III.6.i e<X>it
        This option returns you to the Main Sysop Menu.


                                  -12-






     IV. USER LEVELS
 
     IV.1 Intro to User Levels
        Citadel-86 (and related systems) are often popular with users because
     they do not have the superfluous user levels that many other types of BBS
     software have.  We believe that this lets the user feel a little more free
     with the system; the lack of direct control makes them willing to partici-
     pate in the system earlier.

        However, this does not mean that Citadel-86 completely lacks in user
     levels.  Citadel-86 uses the same 3-level hierarchy that came with the
     original CP/M Citadel.  At the bottom is the normal users, with the usual
     privileges of reading and writing.  Next comes the Aides, who are users
     with certain caretaker powers.  Finally, the Sysops and remote sysops,
     who can do a little more.

     IV.2 Normal Users
        Normal users are created, as you might guess, by simply logging in.
     They may read, write, and upload to all rooms they have access to.

     IV.3 Aides
        Aides are created using the <P>rivilege switch on the User
     Administration Menu (see Section III.6.g).  Aides are users who act as
     caretakers for the Sysop.  Their abilities and methods are summarized in
     AIDE.HLP and AIDEFLR.HLP as well as here.  They have access to the
     private Aide> room.

     IV.3.a Message Manipulations
	This section covers the capabilities of aides in relationship to
     message management.

     IV.3.a.1 Message Deletion
        Aides may delete any message in the system with the exception of
     messages in Mail>.  Messages which are deleted will be moved to the Aide
     room, and will be preceded by a message from Citadel noting the name of
     the Aide who performed the deletion.

        Messages in Mail> which are deleted by Aides (Aides only have access
     to their own Mail> room) remain in Mail> and show up in the Aide> room.

        A message is deleted by <P>ausing the target message during printout,
     and restarting message output by pressing 'D'.  The message will repeat,
     and then the system will ask if you wish to Delete the message, Move the
     message, make the message into a network message (if this is a shared
     room and the message is not a network message), Copy the message to
     another room, or Abort the operation.  Selecting D will cause the message
     to be deleted.

     IV.3.a.2 Moving Messages
        Aides may move any message from its current room to another room.  The
     moved message will also appear in the Aide> room, along with a message
     regarding who moved the message.  Messages in Mail> may not be moved
     successfully.






                                  -13-






        A message is moved just like a message is deleted, by selecting 'M'
     when the system asks if you wish to Delete, Move, or Abort the operation.
     The Aide is then asked which room to move the message to.  If one or more
     messages have been moved since the system was brought up, an empty
     Carriage Return will put the message in the last room a message was moved
     to.  The Aide does not need to type the entire name of the room to move
     the message to; a partial name is sufficient, so long as it is unique
     within the system.

        Moving a message to a net room from a non-net room will cause the system
     to ask the Aide if the message should be netted.  Moving a message to an
     archived room does not cause that message to be archived.  Moving a
     message to an anonymous room does not cause that message to become
     anonymous.

     IV.3.a.3 Copying Messages
	A message may also be Copied using the same command sequence as above.
     A copied message is created by simply allowing both rooms to reference
     the message, unless the target room is a shared room while the originating
     room is not, and the message is to be netted.

     IV.3.a.4 Making a message into a Network message.
        A non-shared message may be made into a shared (network) message by
     selecting the 'N' option after using the <P>ause-D sequence.  When the
     Aide selects this, the system reads the message in and then saves the
     copy as a shared message.  The original is silently deleted.  This
     process, while eating a little extra space, will ensure the message is
     netted to all sharing systems.

     IV.3.b General Aide Commands
	This section covers various general Aide commands.  All of these
     commands are exercised via .Aide <command>.

     IV.3.b.1 Room Elimination
        Aides may kill any room in the system, with the exception of the
     Mail>, Aide>, and #baseRoom rooms.  A message recording this fact will be
     placed in the Aide> room.

        A room is killed by an Aide by being present in that room and execut-
     ing the .Aide Kill command.

     IV.3.b.2 Empty Room Deletion
        Aides may execute a command that deletes empty, temporary rooms from
     the system.  A message will be left in the Aide> room listing the rooms
     deleted by the command.  (All directory and shared rooms are permanent
     rooms and therefore not subject to the effects of this command.)

        The .Aide Delete command is used for this purpose.

     IV.3.b.3 Room Editing
        Aides may edit the rooms of a system, with the exception of the Mail>,
     Aide>, and #baseRoom rooms.  See Section V. ROOMS for more on these
     actions.  To edit a room, either <A>ide or .Aide Edit room will allow you
     to edit the room.  However, Aides may not set the full range of attributes
     associated with a room; Section V should cover this in full.




                                  -14-






     IV.3.b.4 Message Insertion
        An Aide may insert the last message deleted into a room.  The .Aide
     Insert message command allows this.

     IV.3.d Floors
	This section covers Aide capabilities as related to floors.  All of
     these commands are accessed through the command sequence ;Aide <command>.

     IV.3.d.1 Floor Creation
        Aides may create floors at will.  New floors are placed in the first
     empty floor slot, and there is no arbitrary limit on the number of floors
     in a system.  Floor names may only be 19 characters in length, and each
     must be unique within the system of floor names.  Floors may not be
     created while in the Aide>, Mail>, or #baseRoom rooms, because the room
     that a floor is created in will automatically become a room on that floor.

        ;Aide Create-floor creates a floor.

     IV.3.d.2 Room Moving
        Aides may move rooms from one floor to another, with the exception of
     the Aide>, Mail>, and #baseRoom rooms.  The Aide should be in a room that
     is on the floor that the rooms should be moved to.  Once the command is
     completed, a message will be placed in the Aide> room detailing what rooms
     have been moved where.

        The command is ;Aide Move-rooms.  The system will prompt for the names
     of rooms to be moved to the current floor.  Room names must be specified
     in full.

     IV.3.d.3 Floor renaming
        The ;Aide Rename-floor allows an Aide to rename a Floor.  The name must
     be unique amongst the floors.

     IV.3.d.4 Floor Killing
        Aides may delete Floors.  When this command is executed, the current
     floor is assumed to be the target; the #baseFloor floor may not be killed.
     The Aide will be asked if the rooms on the floor should be killed outright,
     or placed on the #baseFloor.

        The command is ;Aide Kill-floor.

     IV.3.e Aide Command Summary

      .Aide Delete empty rooms
      .Aide Edit current room
      .Aide Insert pulled message
      .Aide Kill current room
      ;Aide Create floor
      ;Aide Delete empty floors
      ;Aide Kill floor
      ;Aide Move rooms to floor
      ;Aide Rename floor







                                  -15-






     IV.3.f Possible extra privileges
        Depending on the configuration of the system, Aides may have additional
     privileges that the users do not.

        First, Aides may be the only users able to create new rooms.

        Second, Aides may be the only users able to use the Mail> room.

     IV.4 Sysops
        There are potentially two different Sysops.

        First, and always, there is the person at the system console.  Certain
     Sysop abilities can be executed without being logged in, notably the
     Sysop Menu functions (Section III: SYSOP PRIVILEGED FUNCTIONS); the rest,
     what few there are, require that the Sysop be logged in.

        Second, when the #sysPassword parameter is in use, an Aide in
     possession of the system password may use it to become a remote Sysop.
     A Remote Sysop has most of the capabilities of an Aide at the System
     Console, including access to the entire Sysop Menu, and complete control
     of room editing (see Section V: ROOMS).

        The only other options available to a Sysop that are not available to
     Aides, outside of the Sysop Menu, follow.

     IV.4.a Message Journaling
        Sysops may select individual messages to be placed in normal MS-DOS
     text files for future reference; this is called Journaling. This command
     is executed by <P>ausing the target message during output, and restarting
     it with a 'J'.  The system will then ask for the name of a file to place
     the text of the message in.  If the Journaling command has been used
     before, then an empty Carriage Return will cause the message to be
     appended to the last file specified.

     IV.4.b Directory Journaling
        Sysops may Journal the directories of directory rooms.  The process is
     the same as Message Journaling.
                                        
     IV.4.c Copying Files
	Sysops may copy files into directory rooms from the room prompt.  The
     Sysop should be in the directory room where the file is desired to reside.
     The command sequence is .Aide Addfile.  The sysop will be prompted for a
     full pathname.  If the file is found, it will be copied into the directory
     associated with this room, and then the sysop will be prompted for a
     description of the file.  If no description is entered then no changes
     will be made to FILEDIR.TXT (which makes this convenient for updating
     files).  If a description is entered, FILEDIR.TXT is updated and a message
     will be left in the room in just the same style as a normal file upload
     would leave a message.

	Since DOS's COPY command is used to execute this command, very large
     systems and systems with a limited amount of RAM may have difficulty
     running this command.






                                  -16-




     V. Rooms

     V.I Room Attributes
        Rooms are the basic foundation of the Citadel-86 system, acting as the
     main organizer and container of the messages of the system; the collection
     of rooms of a Citadel-86 essentially constitutes the character of the
     system.

        Rooms on a Citadel-86 can have a number of attributes associated with
     them, each working independently, and most do not interfere with each
     other's usefulness.  With the exception of the first three rooms of a
     system, there should not be any restriction on what rooms can have what
     attributes.  So let's discuss what a room can do, besides contain messages.

        In order to set any of these attributes, the room must be edited by
     an Aide.  If the Aide is accessing the system remotely and has not used
     the Remote Sysop Password, then the Aide's powers are restricted, while
     an Aide at the system console or a Remote Sysop's powers are not
     restricted.  In the following discussion, the option letter used to
     activate or deactivate an attribute is given along with the explanation
     of the feature.

     V.I.1 Room Archival
        <A>rchive status, a Sysop-only option, allows the Sysop to save all the
     messages that are entered into a room, whether locally or via the network,
     to a normal MS-DOS text file (formatted for a 80 column user).  When this
     option is activated, the Sysop is asked for a filename that will contain
     the saved messages.  This file may reside anywhere on the system.  An
     initial archive of the room will take place, and thereafter all messages
     entered into this room will be saved to the file upon entry.  This includes
     messages received over C86Net.

        Messages that are deleted from the room will NOT be deleted from the
     archive file, and, similarly, messages that were entered in another room
     and subsequently moved to the archive room will not be saved to the
     archive file, except on initial archive.

     V.I.1.a File Limits
	During the sequence of making a room into an Archived room the sysop
     will be asked if they want to set a size limit on the resulting archive
     file.  If you answer with a non-zero answer, then the system will attempt
     to enforce a limit on how large the archive file will grow, using your
     answer and multiplying it by 1000.  When the resultant file exceeds the
     limit specified, Citadel-86 will change the file's name to
     "filename.<digits>" and then continue archiving to the original file name.
     "digits" is selected by starting with 0 and incrementing until a filename
     is found that does not exist yet on disk.  In this manner a sequence of
     files of roughly the same size will come into existence, mirroring the
     room but in manageable chunks.

	Since DOS cannot handle files with more than one period in their
     name, sysops should select names without suffixes when using this feature.

	This limit does not apply during initial room archival.







                                  -17-






     V.I.1.b File Names
	Room archive filenames can be slightly more abstract than has been
     indicated thus far.  Filenames may carry embedded indicators of the
     current month and year which will change as the months and years pass.
     In other words, you can use a couple of macros in the name of room
     archive files if you wish.  The supported macros are currently

         %y : This is the last two digits of the current year
         %m : This is the first three letters of the current month

	So, for instance, you could have a room archive name of
     "poetry\poems%y.%m".  Messages left in the room during March of 1990
     would then be written to the file "poetry\poems90.mar", while those left
     in August of 1991 would be written to the file "poetry\poems91.aug".
     This ability should make management of room archive files a bit easier to
     deal with.

     V.I.2 Backbones
        Please see NETWORK3.MAN for the use of the <B>ackbone status option.
     This is a Sysop only option.

     V.I.3 Directory status
        Please see Section VI.y for details on the upload/download capabilities
     of Citadel-86 that are made available through the <D>irectory status
     option of room editing, a Sysop only option.

     V.I.4 Information Editing
        The <E>dit Information option allows any aide to edit the information
     associated with this room.  If Information already exists for this room,
     the aide is asked if he or she wishes to edit the already existing
     Information.  In any case, the Aide is placed in the Citadel-86 message
     editor and allowed to create new Information for the current room.  If
     the Aide should <A>bort the entry, then any prior Information on the room
     is not disturbed; a <S>ave will replace prior Information with the
     Current Information, including updating the CTDLINFO.SYS file resident
     in your #ROOMAREA directory.

     V.I.5 Innominate status
        The <I>nnominate option allows any aide to designate a room to be an
     Anonymous room.  A room which has been designated Innominate behaves
     differently from a normal room in the following ways:

       o All messages entered in it locally are saved with the author's name
     being "****".  Editing a room back to normal ("authored") status does NOT
     restore those messages' authors.

       o Echo to screen is suppressed during message entry in Innominate rooms.

     V.I.6 Lure users
        Any aide may use the <L>ure users option to, in effect, invite any
     user into any room except the Aide room.  The user(s) specified are given
     access to the room being edited.  If they already had access, no change
     is made to their status.






                                  -18-






     V.I.7 Moderator
        Any room may have one moderator attached to it.  A moderator is
     effectively an Aide for that single room, able to edit the room and delete
     messages.  The user specified does not need any special privileges.  Any
     Aide may change the moderator setting for a room via the <M>oderator
     command.

     V.I.8 Name Change
        Any Aide may change the name of a room via the <N>ame change command
     while editing a room.  There are a couple of constraints on the name of a
     room.

       o It must be 19 characters or less long.  A zero length name IS viable,
     but be aware that if the room ever becomes empty, there is no way to
     access that room.

       o It must be unique within the system.

     V.I.9 Only Invitational
        A room can be set to one of three status settings insofar that users
     are allowed access to it.  A room may be Public, in which case all users
     have access to the room.  If a room is Private, then all users that know
     the name of the room may gain access to the room simply by typing ".Goto
     FULLROOMNAME". (See Section V.I.9 for the Public/Private settings.)
     Or a room may be Invitational.  Users can only gain access to such a room
     by being invited (i.e., <L>ured -- see Section V.I.5).  Even if they know
     what the name of the room is, they cannot successfully .Goto it.

        A room can be either Public, Private, or Invitational, but not any
     combination.  It would perhaps be more logical to combine the <O>nly
     Invitational command (this one), with the following command, <P>rivacy
     status.

     V.I.10 Privacy Status
        Any Aide may set the <P>rivacy status of a room.  Section V.I.8
     provides an adequate explanation of privacy and rooms.

     V.I.11 Temporary Status
        Any Aide may set the <T>emporary status of a room.  Any room may be
     either Temporary or Permanent.  A Temporary room is a room that may be
     deleted by any of three events when it becomes empty (i.e., no messages
     in the room):

       o An Aide executes a .Aide Delete empty rooms command;

       o The number of rooms in use in the system reaches #MAXROOMS and another
     room is created;

       o The system is reconfigured (see Section ??? [installation manual] on
     the CONFG program).

        A Permanent room may only be deleted by a specific .Aide Kill Room
     command.

        All Directory and Shared rooms are Permanent.  Otherwise, if Permanent
     status is desired for any room, it must be explicitly set by use of the
     <T>emporary status command.


                                  -19-






     V.I.12 Shared status

        The Sysop may use the <S>hared status command to affect the current
     room's Network status, including which systems to network with and which
     should not be networked with.  Please consult NETWORK3.MAN for more
     details.  A Shared room is Permanent.

     V.I.13 Upload/Download status
        The Sysop may use the <U>/D status command to change the upload/down-
     load status of a directory room.  See Section VI.y for more details on 
     this command.

     V.I.14 Withdraw Invitations
        On occasion, users need to be evicted from a room.  The <W>ithdraw
     Invitations command allows any Aide to evict users from a room.  This
     command is certainly not useful for Public rooms, and not entirely
     effective for private rooms, but can be very useful for Invitational
     rooms.

     V.I.15 Network Downloadable
        The Sysop may use the <Z> command to designate whether or not a
     directory room may be accessed via the network for download purposes.
     See Section VI.y for more details on this command.

     V.II Other room editing commands
        There are two other commands that an Aide may use while editing rooms.
     The first is <V>alues, which gives the current positive attributes of the
     room.  The second is e<X>it editing, for exiting from the editing process.
     When substantive changes have been made to a room, a message is left in
     the Aide> room detailing the changes made.

     V.III Three exceptions
        Three rooms cannot be modified through editing (or any other process),
     and these rooms are

       o #baseRoom>.  This room is always a Public, Permanent room.

       o Mail>.  This room is a very special room, but essentially boils down
     to Public, Permanent, with some Shared capabilities.

       o Aide>.  This room is a Permanent, Invitational room, with Invitations
     automatically issued to Aides.

     VI.UPLOAD/DOWNLOAD CAPABILITIES

     VI.I Origin
        According to what rumors we have gathered from Seattle, the origin of
     Citadel, the original Citadel installations did not have any upload/down-
     load facilities; they were pure message systems.  Reportedly, "directory
     rooms" were kludged in at a later time as an afterthought by an early
     author.








                                  -20-






        They must be one of the more successful kludges in history.  Directory
     rooms, which serve as "windows" to the host operating system's file system
     in Citadel-86, have proven to be extremely useful constructs, allowing
     access to specified parts of MS-DOS's file system while not disrupting
     Citadel's structure with such excess baggage as "file sections".  The room
     structure allows easy division of files into their subject areas, and this
     integration into the room structure offers the additional, and very
     useful plus, of allowing conversation relevant to those files to coexist
     within easy reach of the user.  Compare this to, say, Fido or RBBS, which
     force you to go from a file section to a message section in order to
     discuss a file, and the advantages of Citadel (at least to this author)
     become obvious.

     VI.2 Creation
        A directory room is created by editing an existing room to directory
     status.  This is an operation that only a Sysop can do, using the .Aide
     Edit command.  Once at the room edit prompt, the Sysop should select the
     <D>irectory option.

        Citadel-86 will ask if you wish to activate a directory for this room,
     and you should of course answer yes.  It will then ask for the name of a
     directory to associate with this directory room.  You should answer with
     the name of a normal MS-DOS directory.  You may specify a drive, and the
     directory may be a subdirectory of the current directory, or it may be
     an absolute specification; there is no limit.  If you simply hit a
     Carriage Return, Citadel-86 will assume that you mean the current
     directory on the current drive.

        If you specify a directory that does not exist, Citadel-86 will ask
     you if it should be created, and if you answer affirmatively, it will
     be created.  Otherwise, you will be asked again.

        Finally, the system will ask if the room will accept uploads and allow
     downloads (these options can be accessed while editing rooms separately
     by selecting the <U>/D option).  This gives you some control over the
     behavior of the directory room.  When either of these options are "off",
     only a sysop can upload or download or read the directory, depending on
     the option.

        A file room is identified by the character at the end of the room name.
     Normal rooms have a ">".  Normal directory rooms have a "]", while
     directory rooms which are also shared with other systems (which has no
     meaning insofar as the directory goes) have a ":".

     VI.3 User commands
        The user is provided with two sets of commands for accessing the
     directory of a room.

     VI.3.i Content listing
        When a listing of the files in a room is requested, only the visible
     files are listed.  Hidden files and subdirectories in the directory are
     not listed.







                                  -21-






        There are two commands for displaying a listing of the files accessible
     in a room.  The first command is

         .Read Directory <file-spec> <date-spec>

        If <file-spec> is empty, then all files are listed; otherwise, only 
     those files matching <file-spec> are listed.  For a full explanation of
     <file-spec>, see X.3.c.

        <date-spec> allows the user to specify files matching <file-spec> to
     also meet a date requirement.  "<" is used to specify files dated before
     a given date, while ">" is to specify after the given date (inclusive).
     If the user does not specify a date after the ">" or "<", then the date
     of their last logon is used.

        Files are listed for the user as

	<name> <block size>

     where block size is the size of the file in 128 byte blocks, which, not
     coincidentally, is the size of blocks used by XMODEM for file download.

        The second command is

         .Read Extended-directory <file-spec> <date-spec>

        which allows the user to see file descriptions "attached" to files.
     Files are listed in one of two formats.  The first (and original) format
     is

     <name>  <size> | <description> <file date>

     while the second (and more recent) format is

     <name>  <size>  <file date>  <uploader identification>
        | <description>

        Either display is formatted to the user's display.  Each file starts
     on a new line, thus providing a readable format.  (Users can select which
     display they want via .ECZ.)

        The descriptions for the files in a room are kept in a normal text file
     named FILEDIR.TXT, which must reside in that directory.  If the sysop
     wishes to create file descriptions for a set of files, the format of
     FILEDIR.TXT is simple, and it is

             <name><one or more spaces><description on one line>
             . . .

        FILEDIR.TXT must be in alphabetical order (case-insensitive) in order
     to function correctly.  Each description may be no more than 7K long, and
     must reside on the same line as the name.

        The FILEDIR.TXT for any given directory room is updated by Citadel-86
     whenever a file is uploaded to that directory room, thus minimizing the
     maintenance chores of a Sysop with numerous directory rooms.



                                  -22-






        You may place comments in a FILEDIR.TXT simply by placing before each
     comment line a ';'.  Since these comments are displayed to the user during
     the use of .Read Extended, this lets the sysop embed informative messages
     within the file directory, such as "These files are for Amigas only."
     In FILEDIR.TXT, the above would be ";These files are for Amigas only."
     You may scatter these comments about wherever you wish in FILEDIR.TXT.
     Comments are the only exception to the sorting rule mentioned above,
     Citadel-86 only prints such lines during processing and does nothing else
     with them.

        Finally, if there is a file missing from FILEDIR.TXT (or if
     FILEDIR.TXT itself is missing), there is NOTHING to worry about.  There
     will simply be no file description displayed for the affected files.
     Further, excess entries in a FILEDIR.TXT do no harm to the listing
     (however, if you are fastidious you should research the Citadel-86 utility
     CULLDIR.EXE).

        The only weakpoint in FILEDIR.TXT is the fact that the entries must be
     in alphabetical order.  If they are not, file descriptions will not
     display at all.

     VI.3.ii File transfers
        The second set of commands for accessing the directory of a room are
     those concerned with uploads and downloads.

     VI.3.ii.a Upload Protocols
        There are three protocols supported for the upload of files, XMODEM,
     YMODEM, and WXMODEM.  While this subject is covered in the FILES.HLP
     help file, we'll go over it here, too.  (External drivers for uploads are
     covered in section XV of this manual.)

        The command format for uploading a file via XMODEM is

             .Enter File     or .Enter Xmodem File

        The command format for uploading a file via YMODEM is

             .Enter Ymodem File

        The command format for uploading a file via WXMODEM is
             .Enter Wxmodem File

        After typing in any of these commands, Citadel-86 will prompt the user
     for the name of the new file.  If a file already exists by that name in
     the directory, the upload is aborted at this point; if the file name is
     not acceptable for any other reason (for instance, the name is special to
     DOS, such as CON:, or the user has attempted to specify a drive name),
     the upload is aborted.

        Once the filename is accepted, Citadel-86 will prompt for a description
     of the file.  If the subsequent upload is a success, the directory's
     FILEDIR.TXT is updated with the name and description of the new file.
     Citadel-86 will then ask if the user is ready to start the upload.  If the
     user responds negatively, the upload is aborted; otherwise, the chosen
     protocol starts in receive mode.




                                  -23-






        YMODEM's BATCH mode is NOT supported for uploads by Citadel-86, for the
     reason that it would be very easy for a malicious user to abuse the system
     through the upload of numerous files.

     VI.3.ii.b Download Protocols
        Four protocols are supported for downloads, XMODEM, YMODEM, WXMODEM,
     and straight text transfers, which is the default transfer protocol
     if neither of the other three are specified (unlike the upload command, 
     where XMODEM is the default).  External protocol drivers for file
     downloads are covered in Section XV of this manual.

        Command format is

             .Read [protocol] <Binaryfile|Textfile> [Formatted]

        XMODEM is specified using <X>modem.

        YMODEM is specified, of course, using <Y>modem.  When downloading
     files via YMODEM, only BATCH mode is available, even if only a single
     file is to be downloaded.

        WXMODEM is specified using <W>xmodem.

        The Binaryfile and Textfile specifications are synonyms, being a
     holdover from the CP/M days of Citadel.  However, the Formatted option
     can only be used with the Textfile option.  If a file is requested using
     the Formatted option, the file(s) requested (which Citadel-86 assumes to
     be normal MSDOS text files) will be formatted to the user's screen.
     Otherwise, the file is simply sent on a byte-by-byte basis to the user.

        When an acceptable download command is entered, Citadel-86 will prompt
     for a filename from the user, which can be a <file-spec> (see VI.3.iii).
     If more than one file matches <file-spec>, then all those files will be
     sent using the specified protocol.  In the case of XMODEM, this will
     probably be less than successful.  A <date-spec> may also be entered
     at the same time as a file spec, thus allowing the use of BATCH protocols
     in combinations with file specs.

     VI.3.iii <file-spec>
        A <file-spec> for Citadel-86 can range from being a single file (like
     "HELLO.TXT") to an ambiguous file specification in MSDOS format ("*.TXT"),
     to a list of files mixing both single file specifications and ambiguous
     file specifications.  For example,

             .Read Extended-directory *.MAN HELP.ME C*.HLP

     would display all the files that match any of those specifications.  Each
     part of the specification should be separated from the next by one or more
     spaces.

     VII. OTHER COMMANDS MENU
 
     VII.1 General Purpose
        The purpose of the Other Commands submenu of the Privileged Functions
     Sysop menu is to allow the Sysop access to commands that may be unique to
     the installation of Citadel in operation.



                                  -24-






     VII.2 Citadel-86 Other Commands
        Citadel-86 supports only three commands from this sub-menu -- a
     haphazard effort, indeed.

     VII.2.a Deletion
        The <D>elete File option allows the sysop to delete any file in the
     MS-DOS file system.  Only a single file at a time may be deleted;
     ambiguous file names are not supported.

     VII.2.b Outside Commands
        The <O>utside Commands option allows the sysop to run programs from
     within Citadel-86 (but not concurrently).  Since it is sometimes
     inconvenient to take down Citadel-86 (e.g., from remote) in order to
     execute some utility or program, this option is useful.

        When this option is selected, Citadel-86 will write a temporary
     CTDLTABL.SYS file (see INSTALL3.MAN, Section II.3.a) to disk, and then
     prompt you for a command line.  You may then attempt to run any program
     that you wish from the command line, simply as if you were running from
     the MS-DOS command level.

        The DOS shell is accessible at this point by simply typing a carriage
     return if you are the console; if you are running from remote, Citadel-86
     will refuse to do anything, since just running the shell at this point
     would disable the system.

	If you should try to bring this installation up while Citadel-86
     is up, you will (or should) find that the system won't come up.  This
     is because Citadel-86 generates a "lock file" during <O>utside command
     execution.  When you try to bring Citadel-86 up, it will check for the
     existence of the file CTDLLOCK.SYS, and if found, the system will print
     an error message and refuse to come up.  In the rare instances that a
     CTDLLOCK.SYS file exists when it shouldn't (for instance, losing power
     while executing an <O>utside command), simply delete it and try to
     bring Citadel-86 up.

     VII.2.b.i Restrictions
        There are two actions that you should avoid taking while using the DOS
     shell from within Citadel-86.

        First, do not delete any of the Citadel-86 data files.  These are the
     *.SYS files, such as CTDLMSG.SYS, CTDLLOG.SYS, CTDLROOM.SYS, etc.
     However, you may delete or change the CALLLOG.SYS file (this was not true
     in earlier versions of Citadel-86).

        Second, do not run any of the Citadel-86 utilities which change the
     nature of the Citadel-86 data files.  These utilities include DATACHNG,
     RECOVER1, EXPAND, RECOVER2, etc.  You may run without fear those utilities
     which only show various things, like CLOG, CLRAY, etc.  In general, if you
     are not sure, either take your Citadel-86 down or experiment on a small
     test system.

     VII.2.c View Calllog.sys
	This option is only available if you have the Outside Editor parameter
     defined (see INSTALL3.MAN).  When this option is selected, the Outside
     Editor is run using the full pathname of CALLLOG.SYS.



                                  -25-


 

     VIII. MISCELLANEOUS SUBJECTS

     VIII.1 Wha....?
        Like anything that grows through accretion rather than planning,
     Citadel-86 has accumulated a clutch of features that don't really fit
     into any category.  So, rather than trying to create some categories
     that don't really fit into the great plan of Someone Out There, we
     decided to write a chapter with a central theme of mishmash that would
     contain all those features that don't really fit anywhere in particular.
     So, with no further shampoo ...

     VIII.2 Chatty Questions
        When you drop into <C>hat mode to talk to a user, you will be faced
     with one question before you're actually allowed to communicate with
     your victim.  The question is:

        Treat modem as dumb caller (if answering chat type 'Y')?

        Denigrating as this may seem, it is an accurate question.  There are
     two ways in which you may find yourself in Chat Mode.  The first is by
     answering a Chat request by a user.  Since the user has called your
     board and is using it, it is very safe to assume the user's terminal
     program is not echoing the characters coming from your BBS back to it;
     i.e., the user is 'dumb'.

        The second way you may find yourself is when you are using Citadel-86
     as a terminal program via the <D>ialout command on the Sysop's Net Menu.
     When you achieve a connection this way, you will automatically be dropped
     into Chat Mode with the implicit answer to that question being 'N' -- that
     is, Citadel-86 is to assume the system on the other end will take care of
     echoing characters as necessary.

        So why the question, you ask?  Because occasionally you will call a
     system and then find a reason to get out of chat while the other system
     is still on-line, do something, and then get back into Chat to continue
     your session.  Though it is certainly true you can return to the Net
     Menu, type <D>ialout again and be automatically dropped into Chat,
     it's easier to just hit <C>hat at any room prompt, answer 'N', and
     continue on your merry way.

     VIII.3 Chat Capture
        You, Chief High Sysop, have the ability to capture chats to disk if
     you choose to do so.  When you capture a chat, a warning will be printed
     to both you and the chattee saying that the chat is being captured; when
     you choose to stop capturing chat, another warning will be printed
     indicating that the session is no longer being captured.  In this way,
     you cannot successfully be accused of capturing chat sessions without
     warning.

        You turn on chat session during a chat by typing ^R (Control-R).  The
     system will then attempt to open a file named CHAT.TXT, and if it exists,
     the chat session should be appended to the end of that file.  If the file
     does not exist, it is created, and the resulting chat placed within.

        Typing a second ^R will result in the file being closed and the chat
     capture being turned off.  If you leave the chat session, the capture is
     automatically turned off at that point, and if you wish to continue
     capturing the chat (say, if you had to pop out for a moment and then
     returned), you must turn the capture back on again.


                                  -26-






        By a chat session, we mean both a normal <C>hat, initiated by either
     you or a caller, and the chat sessions which are initiated by the <D>ial
     System command of the Network Menu, on which there should be more details
     in NETWORK3.MAN.

     VIII.4 File Transfers while in Chat Mode
        When calling other systems it's not uncommon to discover you wish to
     grab a file from the other system, or send one of your's to it.  Doing
     so is quite easy in Citadel-86.

        For either type of file transfer, however, you must make sure you
     are in (on your own system) a directory room (see Section V if you aren't
     sure what a directory room is).  This only makes sense, of course,
     particularly if you're sending a file to the other system.  If you are
     not currently in a directory room when you discover your need to transfer
     a file either way, simply touch ESC, get to a room prompt (if you're not
     at one already), and .Goto the file.  If you have public directory rooms
     available, you need not even be logged in.  To get back into Chat mode,
     you may either go back to the Network Menu (^L-N) and type <D>ialout,
     or simply at the room prompt type <C>hat and answer 'N' to the question.

        In order to download a file from the other system into your system,
     first set up the other system to send you the file(s) you want.  Then
     touch the PG DN key on the keypad (NUM LOCK OFF!).  The system should
     prompt for a protocol to use, to which you answer with the correct
     letter.  If you have any external protocols installed you may select one
     of those rather than Citadel-86's XMODEM, YMODEM, or WXMODEM.  You
     should then be prompted for a filename, and then the transfer will
     commence.  When finished, you'll be asked for a file description, and
     then you'll be dumped back into Chat mode.  NOTE: Do NOT try to use
     YMODEM BATCH when grabbing files from another system!  (Z-100s: Control-F
     is equivalent.)

        To upload a file from your own system to another, first make sure you
     are in the appropriate directory room (i.e., the directory room which
     holds the file to send).  Set up the other system to receive your file,
     and then touch the PG UP key.  Citadel-86 will, as it did for downloads,
     prompt for a protocol and then the file(s) to be sent.  When the download
     is accomplished you will be dumped into Chat mode.  (Z-100s: Control-E
     is equivalent.)

     VIII.5 ESCaping Details of Chat Mode
        On rare, rare occasion it is necessary to send an ESC while in Chat
     mode.  Yet, Citadel-86 specifically tells you that an ESC let's you out
     of Chat!  How do you get around this problem?

        By using the '\' key first.  When you do so, the system will pass the
     next key you press through without any interpretation, including the ESC
     key.  (If you need to send a '\', send two of them.)

        And one more detail: when <C>hat is used, an ESC from either the
     caller or from the Sysop will cause the Chat session to end.  When
     <D>ialout is used, only the ESC from the system console will cause the
     system to end the Chat session.





                                  -27-




     VIII.6 Typing at the Keyboard When the User is in Control

     VIII.6.a Sysop Autodial
        If your system becomes at all popular amongst the locals, you will
     rapidly find yourself in the position where you cannot get onto your
     machine whenever you like without committing foul and evil acts such as
     pulling the plugs out of modems and that sort of thing.  Since that tends
     to lead to bad reputations and negative karma, Citadel-86 gives the Sysop
     the ability to auto-dial him(or her)self; that is, you can tell the
     system, while someone else is on, that you are next in line to use the
     system. (aka "pulling rank".)

        To do so, simply type ^T (Control-T) while the person using the system
     is on.  The next time that the system looks at the keyboard (which is
     during <P>auses of output and other moments of the system waiting for
     input from the user) it will note that the ^T has been pressed and
     (usually) print out an acknowledgement to the system console only (the
     user will not be aware that you are anywhere near ground zero).  The
     status bar, which we'll discuss sometime along the way here, if you
     are using it, will also show that your ^T has been pushed.

        When the foul user logs out of the system, the system should
     immediately start beeping at you, once every ten seconds.  If you then
     hit anything on the keyboard, you get control of the system.  After
     2 minutes of beeping, the system will return its attention to the modem.

        If you type ^T twice while the user is on, this feature will be
     cancelled.

        If you type ^T when no one is on the system, the system will go into
     CONSOLE mode.

     VIII.6.b Chat Mode
        You can toggle Chat Mode while a user is on and in control simply
     by typing ^Z at the SysConsole.  Your status bar (see VIII.7) should
     reflect the change.  Please note typing ^Z during downloads and uploads
     won't take effect until the operation is finished.

     VIII.6.c Echo Mode
        You can toggle the Echo Mode (see the <E>cho toggle of the Sysop's
     Menu) by typing ^E while the user is on.  You'll be able to tell if
     this has taken effect because the display will stop or start when you
     type the ^E.

     VIII.7 Denizens of the Status Bar
        Citadel-86 has a status bar.  This status bar gives you a vague idea
     of what's going on with the system, using various special messages during
     system initialization, and then a hint now and then about who's on.  The
     location of the status bar depends on the machine that Citadel-86 is
     running on.  If it is a PC Clone, it occupies the second line from the
     top of the screen.  If it is a Zenith Z-100, it occupies the 25th line of
     the screen.









                                  -28-




        The status bar should always have

        "Citadel-86 Vx.xx: "

     showing.  What shows up after that depends on the state of the system.
     Special messages appear right after it, but they only show up when the
     system is coming up.  Here's a generic representation of the status bar
     when the system is in normal mode:

     "Citadel-86 Vx.xx:<name of user><time of carrier>[<Chat sig>][<^T sig>]"

        "Chat sig" is a capital "C", and only shows up when you have Chat mode
     on.  ^T sig is a "^T", and only shows up when you are next in line to use
     the system.  An 'E' may also show up, indicating Echo is OFF (rather than
     the more intuitive ON).

        Additionally, you may also have a clock on your status bar.  This
     clock, maintained once a minute (except during long reads, downloads, or
     network sessions), is displayed only if you have the status bar active,
     and will appear on the far right hand side.  You may disable this clock
     by adding "#CLOCK none" to your ctdlcnfg.sys (see INSTALL3.MAN).

     VIII.8 Modem disabling
        You may have noticed that when you took control of the system by
     pressing ESC, the DTR light on your modem went out.  Or you may not have
     noticed.  But it did, or should have.  This leads to that age-old
     philosophical question, "When does this happen?"  Well, DTR comes down
     (or, more generally, the modem is disabled) when the Sysop takes control
     of the system and there is no carrier.  If there is carrier, then
     connection is maintained, even when coming out of the Chat mode initiated
     by the <D>ialout.

     VIII.9 BADWORDS.SYS
        Usually, there is little need to actively censor Citadel users.
     However, on rare occasion you will run into local ruggies (twits, jerks,
     etc) who are expressly intent on destroying your system.  Although
     it is usually more effective to deal with the parents of such village
     idiots, or with the law when they are friendly to the local BBS
     community, Citadel-86 does provide a tool for censoring and (we hope)
     discouraging such children.

        If the file BADWORDS.SYS exists in your #ROOMAREA directory,
     Citadel-86 will attempt to read it to form a list of forbidden words.
     Any message entered by a non-aide will not be saved in the message
     base when it contains one of these bad words.  BADWORDS.SYS should
     be a simple text file.  All but the first two lines will contain one of the
     forbidden words (or phrases, if you like).  Please note: odd results can
     happen with small words, because this works just like the message editor's
     Replace function.  For instance, if "frog" were listed in that file,
     any message containing the word "froggie" would also not be saved.

        The first line of BADWORDS.SYS is reserved for an "icky" level.  This
     level indicates how many times a user may use one of the forbidden words
     before the system will drop carrier on them.  You indicate this icky
     level by simply putting the number there, like "5".  If you were to
     put "0" at the top of the file Ctdl would kick the offender off on the
     first offense.




                                  -29-






        The second line of BADWORDS.SYS, if non-blank, is the name of the file
     all sub-standard messages will be written to.  If you don't want
     sub-standard messages saved anywhere, then just leave it blank.

        Any user kicked off the system for offending against BADWORDS.SYS
     will also be marked in CALLLOG.SYS by the letter 'B' following their
     name.

     VIII.10. Massive Privileges
        Sometimes you wish you could give everyone one of the privileges -- or
     take it away from everyone.  You can do this now in certain circumstances.
     When you are prompted for a user name, you can reply with either "Citadel"
     or "*".  Either means you want to apply the privilege to all of the
     accounts.  You'll then be asked if you want to give the privilege to
     everyone.  If you demur, then you'll be asked if you want to take it away
     from everyone.  If you again demur, you've effectively aborted the
     operation.  Otherwise Citadel-86 will apply or take away the privilege
     from everyone.

        This works for the following privileges:

         (User Menu -- ^L-U)

         <D>oor Privileges

     IX. SEA'S ARC files

     IX.1 DeArcing
        Citadel-86 allows users to selectively deARC and download files from
     ARC-generated files if the Sysop so desires.

        There are several considerations for the Sysop to keep in mind as s/he
     decides whether or not to enable these commands, including

      a) DeARCing files takes valuable system time;
      b) DeARCing files takes space which the system may not have available;
      c) Damaged ARC files can sometimes hang a deARCing program; occasionally,
         they can even damage disk systems (it's happened to me!);
      d) This ability may be vulnerable to system crashers in unforeseen ways;
      e) <myriad other disasters for the unprepared> ...

        Citadel-86 has implemented this ability by executing a deARCing program
     of the Sysop's choice on the file specified by the user.  The files are
     deARCed into a temporary directory that Citadel-86 creates and deletes as
     needed.  When deARCing and downloading is finished, Citadel-86 will delete
     all files that were deARCed, thus not taking up any permanent storage on
     the system.  However, the Sysop must keep in mind that if there is not
     enough temporary storage available, the system could still be hung,
     depending on what the deARCing program does when it hits a disk out of
     space limit; further, Citadel-86 does not detect when a failure occurs
     (except for no files matching the deARC mask).

        To enable the command, create a normal DOS text file named DEARC.SYS in
     your #ROOMAREA directory.  Citadel-86 expects that the contents of this
     file will be a single line that will name the program that you wish to use
     for deARCing.  If the program is on your PATH, then you need not specify
     the path to the program.


                                  -30-






        Citadel-86 makes the assumption that your deARC program's final two
     arguments will be, respectively, the name of the file to be deARCed
     (including the path, if any) and the "mask" (i.e., "*.*", "*.doc", etc.).
     This is the standard format for SEA's ARC, and so I hope that it will
     remain more or less a standard.

        During testing, I have noted that

            pkxarc

     works just fine, as does

            unpack

     Unpack is Borland International's deARC program, which is distributed
     with Turbo Pascal 4.0 and Turbo C 2.0.

        Oh, the Citadel commands to do this sort of thing?  (Read the help
     files.)  There is one.

            .Read Archive Binary-files

     This will prompt for the name of one ARC file (with or without the ARC
     extension), and then will prompt for the deARC mask.  A Carriage Return
     for the deARC mask will result in "*.*".  The system will then ask the
     user to wait for a moment, and then (attempt to) deARC the file using
     the mask.  Once finished, it will send all files to the user via ASCII.
     If the user wishes to use a protocol, they may.  For example, YMODEM
     BATCH could be used this way:

            .Read Ymodem Archive Binary-files

        Downloading files this way via YMODEM or XMODEM will be tracked by the
     Download time limits, if you are using them (or at least so I hope).

        'T' and 'F' are synonyms for 'B' in the above.

     IX.2 ARC Integrity Checks
        Citadel-86 is also capable of integrity checks on newly uploaded ARC
     files.  In order to enable this capability, the sysop must modify the
     DEARC.SYS file described in IX.1 by adding a second line.  Much like
     deARCing files, the second line also specifies a command line to be used
     for performing a file integrity check.

        However, the sysop MUST specify a program which returns an ERRORLEVEL
     of 0 when the integrity check succeeds, and non-0 when the check fails,
     or this feature will fail.  Fortunately, ARC V6 does precisely that, so
     if you choose to use ARC for file integrity checks, you shouldn't have a
     problem.  So, as an example, to use ARC as the file integrity check
     utility, you'd simply have the line

     ARC t

     since 't' is the file test command.

        Do NOT* specify a BAT file as the file check utility!



                                  -31-






        The integrity check takes place after the upload has been completed.
     The name of the file is checked, and if the extension is .ARC, your
     Citadel-86 will, if enabled, ask the user if the upload should be checked.
     If the user agrees, the check is performed.  If it succeeds, the user
     is prompted for a description.  If it fails, the user is asked if the
     upload should be aborted.  If the user assents, the file is deleted; if
     they wish to continue, they are then prompted for a description.

        The sysop should bear in mind that some flawed ARC files can
     cause their computer to hang during a file integrity check if they are
     using ARC V5.  ARC V6's stability in this regard is not known by this
     author.

        If you wish to use a test utility which requires command line arguments
     AFTER the name of the file to be tested, this can be accomplished.  Much
     like the External Protocol (Section XV), if you place "%g" somewhere in
     your integrity check command line, it will be replaced with the filename
     to be tested.  For instance, ARCE's format for testing files is "ARCE
     <filename> /T".  So a good integrity check command line (i.e., second line
     in DEARC.SYS) would be

        arce %g /T

        If you do not use '%g' in your integrity command line, then the filename
     to be test will simply be appended to the end of the command line, just as
     it is for deARCing.

     X.  PKWARE's ZIP files

     X.1 DeZIP
        Citadel-86 is also capable of handling the ZIP files generated by
     PKWARE's PKZIP utility.  Procedures for handling ZIP files are nearly
     exactly the same as for SEA's ARC files, as are the warnings.  In fact,
     the only difference is that you must create a new file named DEZIP.SYS,
     rather than DEARC.SYS, in your #ROOMAREA directory, containing the command
     to DeZip files.

     pkunzip -x

     seems to work just fine, if, of course, you have PKUNZIP.EXE available
     somewhere.

     X.2. ZIP Integrity Checks
        Again, as with SEA ARC files, you may optionally enable integrity checks
     on uploaded files by modifying DEZIP.SYS with a second line specifying the
     file check.  PKUNZIP -t seems to work just fine.  This check, if enabled,
     will be performed on files uploaded with a .ZIP extension.  Again, you may
     use '%g' to cause the filename to appear in a place other than the end
     of the resulting command line, although we are not aware of any test
     utility for ZIP files which uses this sort of command line.

     XI. ZOO Files

     XI.1 DeZOO
        Like ARC and ZIP files, the presence of a DEZOO.SYS will let users
     de-ZOO files online.  Instructions are the same as for ARC and ZIP.



                                  -32-






     XI.2. ZOO Integrity Checks
        Just like ARC and ZIP files, you can have the integrity of newly
     uploaded ZOO files checked automatically.  Instructions are the same.

     XII. LHARC Files

     XII.1 DeLZH
        Like ARC and ZIP files, the presence of a DELZH.SYS will let users
     de-LZH files online.  Instructions are the same as for ARC and ZIP.

     XII.2. LZH Integrity Checks
        Just like ARC and ZIP files, you can have the integrity of newly
     uploaded LZH files checked automatically.  Instructions are the same.

     XIII. GIF & FRA Files
        Citadel-86's support of GIF & FRA files resides in the commands .Read
     Extended (.RE) and .Read Archive Directory (.RAD).  When .RE is used
     on .GIF and .FRA files, Citadel-86 will extract information concerning
     the pixel dimensions of the picture and the number of colors used and
     display those values as part of the file description.  When .RAD is used
     on .GIF and .FRA files, Citadel-86 will display the GIF version of the
     file, along with the dimensional and color data mentioned above.

        This section is purely informational for the benefit of the sysop.
     GIF & FRA file support requires no action from the sysop.

     XIV. Sysop's Editor
        The sysConsole Sysop has a special message composition ability not
     available to the general users, and this is called the Sysop Editor.
     This is the ability of the sysop (i.e., any user at the sysConsole) to
     enter and edit a message using an editor other than the Citadel entry
     system.

        In many ways this is similar to simply preparing a message offline
     using an editor and then using the <F>ile grab option of the Sysop Menu.
     However, this option is far superior, for several reasons.

        First, it's somewhat faster.  When using an editor to prepare a
     response for processing by File Grab, in order to get to your editor you
     must go through Outside Commands, which causes CTDLTABL.SYS to be
     written, etc. etc.  When using this option, CTDLTABL.SYS is not written
     (think of this as a warning, too), and further the process of bringing
     your editor should be thoroughly automated.

        Second, you have far more flexibility.  The option is accessed via an
     option off of the 'entry cmd: ' prompt.  Thus, you can begin preparing a
     message using Citadel, switch off to your editor half-way through, return
     to Citadel for more work or simply a formatted viewing, etc. as much as 
     your heart desires.

        In order to activate this option, you must add at least one parameter to
     your CTDLCNFG.SYS.  This one is called '#EDITOR'.  It is followed by a 
     string naming the editor of your choice.  Your PATH is used to search for
     the editor, so you need not specify where it is located (although you may





                                  -33-






     wish to if you store your editor in a RAM drive). The editor you use must
     output a "normal" DOS text file; no attempt is made to filter the text for
     WordStar, WordPerfect, or other proprietary formats (although I haven't
     tested any of those to see if, by happenstance, they might work.  Who
     knows, you might luck out!).  An example might be

        #EDITOR "q"             -- use qedit

        If your editor needs any options set on the command line, this is the 
     place to put them.  Suppose your editor, which in this example will be 
     'wumpus', needs the option "-r" on the command line.  A good parameter
     entry would then be

        #EDITOR "wumpus -r"

        You might also want to consider using BAT files (specified in the 
     #EDITOR entry) which will clean up unwanted BAK files, etc...

        You may optionally add a second parameter to your CTDLCNFG.SYS called 
     "#EDIT-AREA".  If this is present, Citadel-86 will use the area (drive 
     and directory) you specify for the temporary editing space, instead the 
     current drive and directory.  This makes it easy to use a fast RAM disk 
     for Outside editing.  For instance:

        #EDIT-AREA "d:\"

     If you do plan to use a RAM drive, remember that messages can be up to 
     7.5K long, so plan your RAM drive accordingly, keeping in mind possible 
     .BAK files generated by your editor, etc.

        Citadel-86 attempts to run your editor by issuing the command line

         "<editor> <editing space>tempmsg.sys"

        When returning from your editor, Citadel-86 will automatically delete
     the tempmsg.sys file; however, if your editor (like many) leaves .BAK
     files behind, Citadel-86 will not try to delete it.

        And how do you access it?  By typing an 'O' at the 'entry cmd: ' prompt
     of the message editor.

        Finally, you may use the EASE utility to make these modifications,
     rather than directly changing your CTDLCNFG.SYS file.

     XIV.1 Sysop Editor Notes
        o Editors which must* run from their own directories may be difficult
     to support.  You might want to try using a BAT file if you really insist
     on using such editors.

        o Making a small RAM drive and specifying it as the editing space may
     make this feature faster.  Placing your editor in the RAM drive may make
     things really fly, if you have the extra RAM to do it.  Remember to 
     specify the RAM drive in your #EDITOR parameter, though, if you do place 
     your editor in the RAM drive.





                                  -34-






        o When you are ready to return to C-86, simply save the file back out
     to TEMPMSG.SYS (most editors will do this in some automatic style for you)
     and exit the editor.  C-86 will then retake control of the system and
     leave you at the 'entry cmd: ' prompt with your newly modified message,
     ready for more action.

     XV. Doors Support
        (Parts of Citadel-86 doors courtesy Gary Meadows of Asgard-86.)

        A "door" is a program which may be run from a host BBS program.  There
     are currently many special door programs available, including door
     monitors such as DOORWAY, games and utilities, most of which you should
     be able to run from Citadel-86 (if you find one that can't, let us know).
     When used correctly, it is intended that Citadel-86 Doors be
     QBBS-compatible.

     XV.1 Administration

     XV.1.a User administration
        Naturally, a sysop does not want just any old person to use doors.
     Therefore you may assign and take away door privileges from anyone you
     please.  You do this via the User Administration menu, using the <D>oors
     privilege.

     XV.1.b Door administration
        Doors are created using CTDLCNFG.SYS.  Theoretically, you may assign
     as many doors as you wish; practically, you may be limited by disk space
     as well as user patience.

        Door parameters in CTDLCNFG.SYS are a little different from any other
     parameter in that they do not occupy only one line of the file.  Rather,
     they occupy three lines.  Here is the generic format of door parameters.

     #door <entry code> <program> <location> <who> <type> <time limit> [room]
     <description>
     <command line parameters>

     We'll go through these one at a time.

     "entry code" - An entry code is what the user types to request this door.
     This parameter may not contain more than four letters, and it is your
     responsibility to ensure that no duplicates occur amongst your entry
     codes.

     "program" - This is the name of the program or BAT file which
     constitutes the door.  You need not specify the suffix of the file,
     although it is legal to do so.

     "location" - This field should contain the location in your disk system
     to move to before executing "program name".  If your specification
     contains a drive designation, the system will make that drive the default
     drive before executing attempting to change directories to the given
     directory. If you do not wish the system to change to another directory
     before executing the program, this field should contain ".", which is the





                                  -35-






     DOS jargon for "current directory".  When the door has finished, the
     system will return to the directory it was in when Citadel-86 came down
     to execute the Door.

     "who" - This field is a primitive security mechanism.  You may fill in
     this field with one of four values: "anyone", which indicates that anyone
     with Door privileges may execute this door, "aide" which allows only
     aides may use this door, "sysop", allowing only sysops, remote and at
     the system console, to use this door, "autodoor" (explained in 
     Section XIII.4), and "newusers" (described in Section XIII.5).

     "type" - this describes the type of door.  Currently, this is limited to
     one of three values, these being

      o "modem"    - User must be remote (modem) in order to use door.
      o "console"  - User must be at the system console in order to use door.
      o "anywhere" - User location does not matter.

     "time limit" - This field lets you specify how long (aggregate) a user may
     use any given door during a single login period.  You should specify the
     time in minutes; if you do not wish to place a time limit on a given door,
     you may instead specify "unlimited".

     "room" - This is an optional parameter.  If it is present, it specifies
     the name of the room from which this door may be run; the door may not be
     run from any other room.  So, this provides another security arrangement.
     If this parameter is not present, then this door may be run from any room,
     subject to other restraints.

     "description" - This field, which occupies a line of its own, should
     contain your description of the door.  These descriptions are displayed 
     to users.  The description should not be more than 79 characters in
     length.

     "command line parameters" - This important field is used to build a
     command line for the program.  The format here should be simple to use:
     type in the command line, minus the program name, as if you were typing
     it at the command line.  This sounds simple until you realize that some
     doors need data from the command line which you simply cannot provide
     from here.  This includes such data as the Com port, the baud rate, etc.
     Therefore, we have provided to you a simple way to add these sorts of
     things in.  Wherever in the command line you need to add these things in,
     you will instead type a percentage sign ('%') followed by a letter.  This
     %letter will be replaced at runtime by the value associated with that
     combination.  The following is a list of all such combinations currently
     supported.

     %a - This is replaced with the current baud rate of the user, or 0 if
          sysConsole.
     %b - This is replaced with the current bps rate of the user, or 0 if
          sysConsole.
     %c - This is replaced with the port number of the user, or "LOCAL" if
          sysConsole.






                                  -36-






     %d - This is replaced with the name of the user.
     %e - This is replaced with the log number of the user.  Unlikely that
          you'll need it, but just in case ...
     %f - This is replaced with the ANSI code of the user.  This is not part of
          the user record, unlike Asgard-86, but provision may be made in a
          later release for the user to indicate what level of ANSI they can
          handle.  At the moment, it is set to 0.

        Identification of more useful parameters which Citadel-86 might supply
     is welcome (and probably easy to add).

        Even if there is no need for information to be on the Description and
     Parameters, blank lines must exist in their positions.

        So, let's move on to an example.  Suppose we have a door program named
     MOO. It must be run from the directory C:\MOOING, and the command line must
     look like

     MOO COMx SPEED=y

     where x is the Com port and y is the baud rate of the user.  Further, you
     want the users to type .Door COWS in order to run the program, and
     everyone may use it, but only from remote, but they may use it as much as
     they like. Your entry in ctdlcnfg.sys would then look like

     #door COWS MOO c:\mooing anyone modem unlimited
     This program is a must for beefeaters!
     COM%c SPEED=%a

     Suppose you wanted to add the further restriction that it only can be run
     from a room named Door Talk>.  Then the entry would read

     #door COWS MOO c:\mooing anyone modem unlimited Door Talk
     This program is a must for beefeaters!
     COM%c SPEED=%a

     XV.2 BAT file support
        Once a user has selected a door (the next section discusses the user
     interface), Citadel-86 will bring itself down.  THIS IS VERY IMPORTANT:
     the system will EXIT with an ERRORLEVEL of 4, which is a reserved
     ERRORLEVEL of Citadel-86.  Therefore, your BAT MUST be prepared to handle
     exits of ERRORLEVEL 4 by running the C-86 utility C86Door.Exe if you wish
     to run doors.  For instance,

     :loop
     ctdl ...
     ...
     if errorlevel 4 goto door
     ...
     :door
     c86door
     goto loop

     C86DOOR does not require any command line arguments.

     User interface is via the <D>oor and <.D>oor <entrycode> commands.



                                  -37-






     XV.3 Door compatability
        Citadel-86 door support is designed to be compatible with the QBBS
     standard; in other words, C86Door will generate DORINFO1.DEF before the
     door is activated.  Citadel-86 also contains support for WILDCAT! and
     Marshall Dudley's DOORWAY.SYS file (so you can run DOORWAY using the SYS
     parameter).

     XV.4 Automatic doors
        An 'automatic door' in Citadel-86 parlance is a door which is auto-
     matically run when a specified user logs in.  This can be useful in 
     several situations, such as with non-C86Net sites which can poll you by
     calling your system and doing a manual login.  By setting an automatic
     door to run when that account is used, you may immediately drop the
     caller into an appropriate network program.  And then, of course,
     there's your imagination.

        Automatic door administration is somewhat more complicated than normal
     door administration.  The system operator must insert two (or more
     entries) into his CTDLCNFG.SYS file.  Naturally, one is the #door entry.
     As noted above,`you may, or may not use, a fourth value for the 'who'
     field of a #door entry, and that is 'autodoor'.  If you use that for the
     'who' value, then the door is completely unavailable to everyone except
     the account(s) assigned to this door, and then only on login.  So, for
     instance,

     #door mooing cows \pasture autodoor anywhere unlimited
     <blank line unless you want a description>
     <whatever parameters are needed>

        So, how do you assign one or more users to an automatic door?  By using
     #events (you had better be familiar with events).  The format for an event
     which will do this is

     #event <days> <time> autdoor quiet <duration> "" "<username>" <entrycode>

        The fields <days>, <time>, and <duration> function as usual, allowing
     you to control when automatic doors are active on an individual basis.
     The <class> autodoor tells Citadel-86 that this is an automatic door
     event. "<username>" is the name of the user which will trigger this
     automatic door in quotes.  <entrycode> is the entrycode of the door to
     execute.  So, continuing with the above example,

     #event all 2:00 autodoor quiet 180 "" "Bossy" mooing

     would cause Citadel-86, on all days, but only between 2am and 5am, to
     execute the door identified as 'mooing' whenever the user Bossy logs in.

        Note that when the door is finished, the user is not disconnected from
     the system.










                                  -38-






     XV.5 New User Doors
        You may configure Citadel-86 to run a door when a user tries to login
     as a new user.  To do so, you set up a door entry in your CTDLCNFG.SYS
     file just as normal, except for the "who" field.  This should contain
     the value "newusers".  For example,

        #door s valid . newusers anywhere -1
        New user door
        ...

        This entry defines a door named "s", running a program named VALID
     in the current directory ("."), of type newusers which can be run
     from both remote and local.  In reality, the door name is irrelevant,
     as is the door description.  The parameters field will, of course, be
     crucial.

        There is one critical difference between newuser doors and other
     types of doors -- newuser doors are NOT run by taking Citadel-86 down
     and letting the batch file take over.  Instead, Citadel-86 will
     directly execute the program.  This is done both for internal technical
     reasons and for performance reasons.  Very large systems may have
     difficulties running new user doors for this reason.

        This is a rather advanced option, and may require some work to get
     working correctly, especially if you are trying to use the DOORWAY
     driver program.  If you are, please bear in mind that since Citadel-86
     is directly executing the program rather than letting the C86Door.Exe
     program do the work, the DOOR.SYS file will NOT be generated.  Since
     this file is only an option for DOORWAY, this does not cripple you,
     only makes things more difficult.

     XVI. Citadel-86 as a Door
        Citadel-86 may be used as a door itself if you wish.  The procedure
     for setting up a Citadel-86 as a door is

      a) Add the parameter '#ISDOOR' to your CTDLCNFG.SYS file and reconfigure
      b) Citadel-86 will expect the string "bps=xxx" on its command line when
     coming up.  If it is not present, the installation will gracefully abort.
     The "xxx" is the bps of the modem (i.e., "30", "120", etc.), or "0" if
     the user is at the sysConsole ("LOCAL" is a synonym for "0" in this case).
     A BAT file containing "ctdl bps=%1" might be a good idea if you can get
     whatever BBS you're using to put the correct data on the command line of 
     the BAT file.

        If you're running Citadel-86 as a door from within another Citadel-86
     (!) a good #door entry might be

       #door xxxx ctdl xxxxx xxxxxx xxxxxxxx xxxxxxxxx [xxxxxx]
       Another C-86
       bps=%b ...

        since "%b" will put out the bps of the user (see Section XIII).







                                  -39-






     XVII. External Protocol Drivers
        In addition to the three file transfer protocols supported internally
     by Citadel-86 (XMODEM, WXMODEM, and YMODEM BATCH), you may also configure
     your system to support external protocols, such as DSZ, etc.  These
     external protocols can be used for both file and message transfers,
     almost appearing to be built-in protocols, differing only in that slight
     pauses may occur while starting the external driver and an additional pause
     for message transfers (messages must be saved to disk in a file before
     transferring them to the user).

     XVII.1 Adding drivers
        You may add one or more protocols to your system by creating a file
     named CTDLPROT.SYS in your #ROOMAREA directory.  This file is a textfile.
     Each line of the textfile contains an entry for an external protocol
     you wish to support for uploading and/or downloading.  The generic format
     of each entry is:

        [selector] [1/M] [name] [u/d] [command line]

        The 'selector' is the key the user must press in order to access this
     particular protocol.  For instance, if you want to make ZMODEM available
     to your users, and you wish them to access ZMODEM via the letter 'Z',
     then the entry would read "Z ...".

        If you should accidentally select a letter already in use for that
     particular command (i.e., .Read or .Enter), then your user cannot access
     the protocol even though you've made it available.  Therefore, you may
     have to select a different letter as a selector.  You may use any capital
     letter (small letters are not valid) or a digit.  Please consult your help
     files to discover what letters are already reserved (SUMMARY.HLP).

        The '1/M' field tells Citadel-86 if this protocol is capable of batch
     downloads or not (and, therefore, this entry is meaningless but required
     for upload specifications).  '1' means this protocol can only send one
     file, while 'M' means it can send 'M'any.  Since ZMODEM is capable of
     batch transfers, your entry for ZMODEM, to continue our example, would now
     look like "Z M ..."

        The 'name' of the entry is the name you wish echoed to the user when
     the user selects a protocol.  If the first letter of the name does not
     match the Selector of this entry, Citadel-86 will backspace over the
     Selector and replace it with the name.  This field can NOT consist of
     two words separated by a space!  In other words, "MooModem Protocol" will
     NOT work.  If we might continue our example, Zmodem's entry would now
     look like "Z M Zmodem ..."

        The 'u/d' part specifies if this particular entry is for uploading or
     downloading a file.  There is absolutely nothing wrong with having double
     entries for the same protocol, one covering how to upload a file using
     the protocol and the other downloading, and in fact that is very much the
     rule.  So, for Zmodem, uploading would look like "Z M Zmodem U ..." and
     downloading would look like "Z M Zmodem D ...".







                                  -40-






        Finally, the 'command line' part of the entry is the actual command
     sent to DOS in order to receive or send a file.  Obviously, just a simple
     text line may not be enough, so you, the sysop, are provided with a way
     to tell the external protocol a number of things.  To specify one of these
     parameters to a driver, you use the following 'macros':

                %a - The baud rate of the caller
                %b - The bps (bytes per second) of the caller
                %c - The port the your system is configured for (#COM)
                %d - The name of the current user
                %g - The list of files for transfer
                %h - Identical to %c except it will be replaced with
                     "COMx" where x will be your com value, unless the user
                     is at the system console, in which case "LOCAL" will
                     be generated.  Eases use with DOORWAY in conjunction
                     with External Message Editors (Section XVIII), not real
                     useful for External Protocols.
                %i - The name of the current room.
                %j - The name of the directory if this is a directory room.
                     C-86 automatically moves to the correct directory within
                     DOS before executing a protocol; this parameter is of
                     more use with External Message Editors.
                %k - The column width of the current user (more useful for
                     External Message Editors).

        For instance, when using DSZ to for Zmodem, DSZ expects a command
     line basically like this:

        "dsz port <port num> sz <filenames>"   for downloading and
        "dsz port <port num> restrict rz <filenames>"   for uploading.

        Therefore, your ctdlprot.sys file will contain the following two lines:

        Z M Zmodem U dsz port %c restrict rz %g
        Z M Zmodem D dsz port %c sz %g

        DSZ automatically senses the baud rate, so you do not have to tell
     it that in this example.

        If you do not like creating text files, you may also use the utility
     EASE to create, edit, and delete your external protocol entries.

     XVII.2 Number of drivers
        You may only add 15 drivers to your system.  That should be more
     than enough.














                                  -41-






     XVII.3 USR HST 9600 notes
        Citadel-86 handles the USR HST modem by 'locking' the COM port at
     9600 and letting the modem handle buffering between the 9600 of the COM
     port and the speed of the caller.  It does this by using the CTS/RTS
     lines to throttle your computer when needed.  Some external protocol
     drivers may not realize this is happening when used on a Citadel-86
     system with a USR HST 9600, and thus become confused.  This is known to
     be true with Chuck Forsberg's DSZ program.  It is recommended that USR
     HST 9600 systems use the following entries for ZMODEM in their
     CTDLPROT.SYS files:

        Z M Zmodem U dsz port %c handshake both restrict rz %g
        Z M Zmodem D dsz port %c handshake both sz %g

        If you use a USR HST modem and experience problems with external
     drivers, keep the above solution in mind when researching your problem.

     XVIII. QUESTIONS & ANSWERS

     ---
      Q. I'm completely lost, even after going through all of the below; what
     do I do next?

      A. Call your local (hopefully!) friendly C-86 Sysop.  For the most part,
     they're helpful, friendly people who are more than happy to help a new
     system get its feet under itself.

     ---
      Q. How do I create a "directory" room?

      A. Edit the room.

     ---
      Q. When I try to bring the system up, it will come up momentarily but
     will then immediately give a crash message.  What happened?

      A. The first step is to look at the files on disk.  If there is a file
     called CRASH, it was created by Citadel-86, so look at it (this is a good
     General first step for most problems, too).  Within, there will be a
     fairly cryptic message which is more for debugging purposes, but can be 
     useful to the new sysop, too.  If it indicates some sort of displeasure
     with the CALLLOG.SYS file, this is usually a good pointer to the
     possibility that you haven't configured MSDOS correctly in the FILES=area.
     Check to make sure that your CONFIG.SYS file has the required FILES=20
     line in it, and, if you had to put it in for Citadel, make sure that you 
     have rebooted your system after adding it to the file.

      If there are still problems, then another observation is that an
     abnormally high BUFFERS= setting in CONFIG.SYS on systems that don't have
     a great deal of extra free RAM available will sometimes "steal" from the
     FILES= setting.  So, it's worth trying setting your BUFFERS= a little
     lower.







                                  -42-






     ---
      Q. I try to use the <O>utside command in the <O>ther commands section of
     the Sysop Menu, but Citadel just says "Bad Return value".  What's wrong?

      A. In all probability, you don't have enough free RAM.  Use CHKDSK or
     some other utility to find out how much free RAM you have.

        Please submit other pertinent questions to Hue, Jr. at C-86 Test
     System for inclusion in this manual.

     XIX. #event examples!
        The #event facility of Citadel-86 is a powerful tool for the sysop,
     but like many powerful tools, it is rather obtuse and arcane.  The
     purpose of this section is to illuminate some of the potential uses of
     the #event facility. What we show here is NOT the limit of what you can
     do!  This is just some hints of what we have found useful ...

        Before jumping into any examples, let's briefly go over the general
     format of a #event again:

     #event <days> <time> <class> <type> <duration> <warning string> <depends>

        <days> indicates what days this event is effective for.
        <time> indicates what time of the day (limited to valid days)
     the event should start (military time).
        <class> is roughly an indicator of what this #event does.
        <type> describes, roughly, how Citadel-86 reacts when this event
     occurs and a user is online.
        <duration> describes how long this event is in effect.
        <depends> is a field dependent on the class of the event.

        In general, when you are planning events, you must know when you want
     it to occur (in terms of both what days and at what time), how long it
     should last, what it will do during the event (its class), and what it
     will do when the event occurs if a user is on (its type).  If you want
     a certain event to happen more than once during a day, then you almost
     certainly will have to use multiple #event entries, but this hurts
     nothing.

        So let's plunge into the examples!

     XIX.1 Automating backups
        This is one of the most basic uses of #events, and can make system
     backups a process you may completely forget about.  This example will 
     illustrate how to use #events and BAT files working together to auto-
     matically backup your system.

        The first step is to bring Citadel-86 down prior to backing up the
     system. There are two different classes which will bring Citadel-86
     down, "external" and "relative".  "external" is more common, so we'll
     start with this one.  An event who's class is "external" will cause
     Citadel-86 to terminate (exit/come down) at the days and time you
     designate using the <days> and <time> fields.






                                  -43-






        When you are using an event of this class, you have two choices as to
     Citadel-86's behavior when a user is on, and you select your choice using
     the <type> field of the event.  If you select type "preempt" then the
     user will be kicked off the system when at the days and times selected.
     If you select type "non-preempt", then the system will wait until the
     user is finished with the system and then come down.

        So let's start a partial example.  Suppose you want your system to
     come down twice a day, once at 6am and once at 6pm, to do an automated
     backup, but to wait politely until any user who may be on has logged off.
     Your CTDLCNFG.SYS would contain the following two #event lines:

     #event all 6:00 external non-preempt 0 "" ?????
     #event all 18:00 external non-preempt 0 "" ?????

        OK, so now you're probably asking "Why is duration 0?"  The reason for
     this is because backing up the system may easily take less than a minute.
     When Citadel-86 comes up, it always checks the event list to see if it
     came up "during" an event, so by making this event's duration "0", we
     ensure the system won't try to back itself up more than once.

        You will also have noticed the "?????" occupying the <depends> field,
     so let's discuss the depends field value.  An event of class "external"
     (or "relative") will always have a <depends> field which consists of a
     single number.  This number is the ERRORLEVEL of your choice which you
     want Citadel-86 to return to the operating system.  This lets you differ-
     entiate between differing external events, allowing you to go to 
     different backup routines at different times.  (Remember, ERRORLEVELs
     1 - 4 are reserved by Citadel-86.) So, for example, you might have

     #event all 6:00 external non-preempt 0 "" 10
     #event all 18:00 external non-preempt 0 "" 11

        This should give you a good idea of how to use #events for bringing
     Citadel-86 down for backups, but doesn't hint about your BAT file, so
     let's move on to that.  This is a bit tricky, because everyone who uses
     a BAT file with Citadel-86 (and that should include just about everyone)
     does their's differently.

        Still, most BAT files should look the same at some point, and that
     is where it calls the actual CTDL program and where it tests the


















                                  -44-






     ERRORLEVEL.  Let's continue with the example above.  That example would
     lead to this partial BAT file fragment:

     :loop
     ...               [ whatever ]
     CTDL ....         [ the ellipsis are simply any arguments you might use ]
     if ERRORLEVEL 11 goto backup1
     if ERRORLEVEL 10 goto backup2
     ...              [ this is other ERRORLEVEL handling and goto labels ]
     :backup1
     ...              [ whatever is necessary to do this backup of the system ]
     goto loop
     :backup2
     ...              [ whatever is necessary to do this backup of the system ]
     goto loop
     ...              [ rest of file ]

        The reason we show two different backup labels in this example, rather
     than one, is to illustrate that you can keep multiple backups of the
     system by using different ERRORLEVELs in your #event entries.  The 
     precise backups you might want to perform are, of course, dependent on
     your situation, and therefore we didn't illustrate those mechanics at all.

        So that's how to backup your system at set times and days.  There is a
     second method available which will allow you to backup your system
     relative to the time the system came up, i.e., every X minutes.

        This type of event is something of an oddball amongst Citadel-86 events
     because it doesn't follow the rules the other events follow.  This event's
     class is "relative", and you may select either of the types "preempt" or
     "non-preempt", but some of the other fields of the event do not act in the
     same way they do for any other class of events.

        To wit, the <days> field is not used, although it must be present, and
     the <time> field does not indicate when the event comes into effect, but
     instead specifies how long before the system is supposed to come down
     (hours:minutes).

        Otherwise, events of class "relative" are much like events of class
     "external".  The <depends> field indicates the ERRORLEVEL to exit with,
     etc.

     XIX.2 Scheduled NETWORK sessions
        As we noted in Network3.Man, there are two ways Network Sessions can
     occur: through normal network sessions and through the anytime net.  A
     normal network session is a session which has been scheduled to begin at
     a given period of time, last for so long, and then end, involving given
     systems.  During this time period, users may not access the system. 
     Anytime net sessions, on the other hand, can be scheduled to have the
     potential to occur during given time periods, but they may not
     necessarily occur, depending on the activity level of your system.  This
     subsection covers normal network sessions.







                                  -45-






        The class of this type of event is "network".  The type is usually
     "preempt", although it is legal to specify "non-preempt" for the type.
     The days and time fields act as usual, specifying on what days and at
     what time a network session is to occur, and the duration field specifies
     how long the session is to last.  The "warning string" field (it follows
     the duration field) is used in this event to warn any users that the
     system will kick him or her off 5 minutes prior to the network session
     beginning if the type is "preempt".

        Finally, the depends field for a network event is special and
     essential, because it tells Citadel-86 which systems are eligible to be
     called at this time.  It does this using the networks Member Net
     capability.  Member Nets are explained in Network3.Man.  Here is a
     summary:

      o A system may be assigned to any or all of 32 nets (use node editing)
      o A system not assigned to any is 'disabled'
      o New systems are automatically assigned to net 1

        When you are constructing an event of class network, your depends
     field lists which net, or nets, may be called during this network
     session.  When we say "nets", we mean all systems which are assigned to
     this net.  This lets you assign different systems to be called at
     different times, participate in different C86Nets, etc.

        When filling in the depends field, you simply type in the #s of the
     nets you wish this network session to call, separating them by commas.
     So, for example, if you want a net session to run from 3am to 3:15am
     everyday of the week, but to only call net 1, you would have

     #event all 3:00 network preempt 15 "network session" 1

        If you wanted that net session to call all systems on nets 1, 10, and
     15, you'd have

     #event all 3:00 network preempt 15 "network session" 1,10,15

        (NOTE THE LACK OF SPACES BETWEEN NETS!)

        It's generally not a good idea to have network sessions overlap.

     XIX.3 Anytime Network Sessions
        An event of class "anytime-net" differs from "network" events in that
     it does not schedule when a network event is to occur, but only when
     there is a potential for a network session to occur (note there is a
     difference between "network event" and "network session").













                                  -46-






        This "potential" is the possibility that your system will attempt to
     contact other systems for network ("and immoral") purposes while an event
     of this class is in effect.  The possibility will be fulfilled if several
     conditions are met: the specified systems need to be called, and enough
     dead time has occurred on your system to cause a callout.  This must
     sound darned abstract, so let's look at an example:

     #event All 1:00 anytime-net quiet 240 "" 10 3 1,4,9

        Translated to English, this reads "On all days of the week, beginning
     at 1:00 in the morning and ending at 5:00, an event of class anytime-net
     will be in effect.  During this time, if the system is idle for more than
     10 minutes (i.e., no remote callers and no sysConsole users) at any one
     time, the system will commence a net session IF any systems on nets 1, 4,
     and 9 need to be called, and this net session should last a maximum of 3
     minutes, unless of course during one of the calls the time is exceeded,
     in which case the net session will extend until the call is completed."
     In other words, the generic format of an event of this class is

     #event <days> <time> anytime-net quiet <duration> "" <dead time>
     <net time> <nets>      (all one line)

        An event of type "quiet" is an event which does not cause a fuss when
     it occurs.  Citadel-86 simply notes that it occurs, usually with no sign 
     to the current user, if any.

        The field duration specifies how long the event is in effect; it does
     NOT specify how long any net session which occurs during this event
     should last.

        Dead time and net time is the amount of time the system is inactive
     before a net session is triggered and how long to stay in the net
     session, respectively.  Both are specified in minutes.  We do not have
     any recommendations at this time for these events.

        The nets field is precisely the same as used in events of class 
     "network" (Section XVII.2).

     XIX.4 Download Time Limits
        Download time limits can be set in Citadel-86 via the #event facility.
     When a #event of the class "dl-time" is in effect, a user may not
     download for more than X minutes during any given login session.

        The limit is specified in the depends field, not the duration field.
     The duration field, as usual, indicates how long the event is in effect.
     The limit is specified in minutes.  So, if you wanted to limit your users
     to 10 minutes of downloading from 7PM to midnight every day of the week
     except Saturdays and Sundays, you'd have

     #event Mon,Tue,Wed,Thu,Fri 19:00 dl-time quiet 300 "" 10

        The reason the type is "quiet" is because there's no need to bring the
     system down or kick the user off.  Citadel-86 simply notes the new event
     and the limit, while the user never notices a thing.

        Download time limits do not apply to Aides & Sysops.



                                  -47-




     XIX.5 Door Time Limits
        The #event facility may be used to place limits on the total amount of
     time a user may use doors during a single login session.  As usual, the
     key to specifying this ability lies in the value of the class field of
     the event.  An event which controls how long users may use a door looks
     like this:

     #event <days> <time> door-limit quiet <duration> "" <limit>

        The days, time, and duration fields allow you to specify on what days,
     starting at what times, and how long an event of this class should last. 
     You specify the door time limitin the depends field, in minutes.  Simple
     as that. Suppose you don't want users to accumulate more than 5 minutes
     of door time between 7 and midnite of any day.

     #event all 19:00 door-limit quiet 300 "" 5

     would do this.  Please note that this is not an infallible event.  If the
     user decides to run a door which allows more usage when it is up than is
     allowed here, the door-limit will be exceeded.  If the user does exceed
     the limit, Citadel-86 will stop the user from running any more doors.
     But this is not by any means a super-duper overseer.

     XIX.6 Automatic Doors
        An 'automatic' door in Citadel-86 is a door which is automatically
     executed when a specified user logs in.  This is a highly specialized
     capability, and so if you're not sure that you need it, don't worry about
     it.  Basically, this will be of use to sysops who's systems may be
     subject to periodic polls from automated callers.

        A #event to implement an automatic door is of the form

     #event <days> <time> autodoor quiet <duration> "" "username" doorcode

        As usual, days, time, and duration lets you specify when this autodoor
     is active.  While we agree such ability might be of little use, it is
     there and feel confident someone somewhere will find a use for it.  This
     sort of event uses class "autodoor" and type "quiet".

        Finally, the depends field for this class of event has two values.  The
     first value is the name of the user which will trigger an automatic door,
     while the second value specifies which door is to be triggered.

        Example 1: Suppose everytime the user named "Local UseNet" logs in you
     want to execute the door named "usenet".  You would then require two
     separate entries in your CTDLCNFG.SYS.  The first one (although they may
     physically be in any order you wish) is the #door parameter, which would 
     read something like this:

     #door usenet xxxx xxxxx autodoor modem unlimited

     <whatever necessary options>

     If you are already familiar with doors, you will note the new 'who' type
     of door mentioned above: "autodoor".  A door entry with such a who value
     will not be shown in the doors listings shown to users, and cannot be run
     manually. However, it is not mandatory that a door to be run as an
     autodoor be so marked.



                                  -48-






        The second entry is the #event which will activate the autodoor.  This
     would be

     #event all 1:00 autodoor quiet 1440 "" "Local Usenet" usenet

        This event is always active (note the duration of 1440), so whoever,
     or more accurately whatever, logs in using this account will always be
     thrust into the door named 'usenet'.  Note the use of double quotes
     around the name of the user who triggers this autodoor: they are
     MANDATORY.  They are there so  we may distinguish between the name of the
     user, which may have more than one word, and the name of the door entry,
     which is always one word.

     XX. External Message Editors
        Ambitious sysops may provide "external message editors" to their
     users.  An external message editor is just like the Sysop's Editor
     (Section XII), except they can be made available to the remote users,
     if the sysop is ready to do the legwork.  When Citadel-86 executes
     an external editor, it makes no attempt at redirecting the input from
     the keyboard to the modem, or the output from the screen to the modem.

     Instead, the sysop must either find an editor which will do such things,
     or find some program which will do so for them, such as Marshall Dudley's
     fine DOORWAY program (which, unfortunately, is shareware).

        Anyways, on to the gritty details.  The user interface to the external
     editors is analogous to that provided for the External Protocols of
     Section XV & XVII.  When faced with the "entry cmd: " prompt of the message
     editor, the users may select any external message editor simply by
     pressing the key assigned by the sysop.  For instance, if the Sysop
     has decided an external full screen editor should be accessed via the
     'F' key, the user need only type 'F' at the entry cmd: prompt in order
     to enter text via the full screen editor.  When the sysop adds external
     editors to the installation, they should remember to modify the help
     file EDIT.MNU to reflect the change.

        But how are external editors installed?  Again, analogous to the
     External Protocols, all external editors are listed in a separate file.
     The file is called EDITORS.SYS and should reside in your #ROOMAREA
     directory.  Each line in the file specifies an external editor.  The
     format of each line is

        <editor name> <command line>

        "Editor name" is the name to be echoed to the user when they select
     this editor, AND the first letter of this name is the selector letter.
     Additionally, this can only be one (1) word, unless you surround the
     name with quotes (").  So if you want your full screen external editor
     to just be FullScreen, then you could just have

        FullScreen ...

     but if you want it to be two words, you'd have to have

        "Full Screen" ...




                                  -49-






     In both cases, the user would type 'F' to gain access to it.

        "Command line" is the command line to be used to run the editor.
     You may use the macros defined in the External Protocols section
     (XV & XVII) in order to convey important information to the editor, except
     for %g.  This includes the new %h parameter.  For instance, if you have
     found an editor (call it "outside") which will run off your COM port,
     with the arguments being the Com port, the baud, and the name of the file
     to edit, you might have

        "Full Screen" outside %c %a

        The name of the file to edit is automatically appended to the end of
     command line.

        You can NOT override any of the already existing message editor
     commands.  As of this writing, those are <A>bort, <C>ontinue, <Global
     replace, <R>eplace, <P>rint, <S>ave, <H>old, <I>nsert, <N>et, <W>ho else,
     and <O>utside Editor.

        This is definitely an advanced option, particularly if you are
     trying to run an editor using DOORWAY or similar program.  Approach
     with caution.

        Ease v1.5 will build the EDITORS.SYS file for you if you prefer to
     do things the easy way.

     Appendix A: File Formats
	This section covers the file formats used in the various files managed
     by Citadel-86.  While we do not ever recommend editing these files by
     hand, occasionally it can become useful or even necessary to edit some
     of these files.

     A.0 Glossary
	Here's a short glossary of terms.

     room slot number: The rooms in Citadel-86 are kept in a static-size file
     named CTDLROOM.SYS.  Each room in Citadel-86 occupies one "slot" in the
     file, numbered from 0 to MAXROOMS-1, inclusive.  When this term is used,
     we refer to the slot number the room occupies.

     A.1 Encrypted Files
	The following files are encrypted and may not be edited.

	CTDLTABL.SYS     CTDLMSG.SYS    CTDLROOM.SYS    CTDLLOG.SYS
        CTDLNET.SYS      Domain Mail Files       Route Mail Files
        CITADOOR.SYS     CTDLFLR.SYS             User Biographies

     A.2 Non-editable Files
	These files are difficult or impossible to edit in a credible manner,
     although they are not encrypted.

	*.VEX            VORTEX.SYS              VTXIND.SYS.






                                  -50-






     A.3 NETMSG.$$$
	This file is generated for a short time during network sessions.
     Finding it on the system indicates the system crashed during a network
     session.  Don't worry about it.

     A.4 INCASE.NET
	This file is generated by Citadel-86 while rooms, etc are being received
     from some other system.  If during a network session the system should
     crash, when it comes back up it will search for this file, and if it finds
     this file it will use the information in it to try to recover what it can
     from other temporary net files so that data sent during the net session
     is not lost.

     A.5 CTDLLOCK.SYS
	This file is written to disk when the Sysop is using <O>utside commands
     to run some external program.  This file is written to prevent the sysop
     from trying to run Citadel-86 from within itself, since this can have
     extremely bad results.

     A.6 CTDLFWD.SYS -- Forwarding Addresses
	This file contains the addresses used for mail forwarding.  The
     ethical sysop will never fool with this file.  Each line of this file
     is a single record.  The format is

	<username><tab><target system><tab><name on target system>

     A.7 CTDLARCH.SYS -- Room Archival Information
        The names of the files used for room archival are kept in the text
     file CTDLARCH.SYS, residing in the #ROOMAREA directory.  CTDLARCH.SYS is
     generated and maintained by CTDL.EXE, and should not be disturbed while
     CTDL.EXE is in operation (i.e., through <O>utside commands).  When
     Citadel-86 is down, however, the Sysop may edit CTDLARCH.SYS to taste.
     Adding entries is ineffective; changing entries works.  Each line of
     the file constitutes an entry for some room.  The format is

        <room slot number> <file name>

     The room slot number should not be changed.  The filename, of course, may
     be changed.

        Do not delete entries from this file, either.

     A.8 CTDLINFO.SYS -- Room Information Information
	The data accessed via the <I>nformation command is stored in the file
     CTDLINFO.SYS, residing in the #ROOMAREA directory.  This is a straight
     text file composed of zero or more entries.  Each entry begins with the
     entry

	#room <roomname>

     It is followed by the text of the Information for the given room, followed
     by a "true" blank line.  That is, if this file is being directly edited for
     some reason, a blank line within the information text can be simulated by
     placing a space or blank on the line to appear blank within the information
     text.  But to end the entry, a blank line without a space is required.




                                  -51-






	This file should never be edited while the system is up.  The system
     should be taken down before any modifications are made to the system.

	Editing this file may be appropriate if the sysop desires Information
     to be available for the Lobby, Mail, or Aide rooms.

     A.9 CTDLMODR.SYS -- Room Moderators
	Room moderator information is kept in CTDLMODR.SYS, in the #ROOMAREA
     directory.  This is a text file, in which each line constitutes a record.
     The first field is the room slot this record refers to, while the second
     line refers to the name of the person moderating this room.

     A.10 CTDLDIR.SYS -- Directory Room Information
        The listing of directory rooms and their associated MS-DOS
     specifications is kept in a normal MS-DOS text file named CTDLDIR.SYS,
     which resides in the #ROOMAREA directory.  While Citadel-86 automatically
     maintains this file at all times, not requiring any Sysop interference,
     the inquisitive Sysop can manipulate this file.

        The contents of this file is as follows.

        <room #> <directory specification>

        The room # field should never be touched.  However, the second field
     can be changed when Citadel-86 is not up, thus changing the directory
     associated with the room specified by the room number.

        Really, though, there's not much reason to change this file manually.

     Appendix B: Contributors
        There have been a number of contributors to Citadel-86 over the years,
     and it's only appropriate to acknowledge such people.

        It's natural to begin by remembering the original author of Citadel-86,
     Cynbe ru Taren of Seattle, and the early contributors, such as David V.
     Mitchell and others we are not aware of.  They are the reason Citadel-86
     and its many children exist today.

        A partial list of others include the following:

        Hue, Sr. of SuperComp III: for general support, testing, suggestions,
     and motivation, not to mention providing access to the code!

        John L. Stanley: A great deal of early work with Hue, Jr., to get the
     bugs out of the early CP/M Citadel 2.10 code, and then the later
     development of most of the core concepts of C86Net.

        Jay Johnson, for Insert Paragraph and a great deal of general work
     and ideas, not to mentioned Citadel-68k.

        Dale Schumacher (Dalnefre') of Syntel for additions to the Configure
     program and fighting with me a lot.







                                  -52-






        Paul Gontier of Kat's Alley for the video support code.

        Eric Brown of Primordial Ooze for the Zenith Z-100 modem code.

        Paul Gauthier of Cerebral Cortex for the Hot Helps code, USENET access
     gateway, OtherNet concept, and pushing Citadel-86 into implementing Anytime
     Netting, plus a host of minor suggestions.

        Gary Meadows of Asgard-86 for his Door Support code and other
     suggestions.

        Kip DeGraaf for taking care of the netmaps.

        SSR of Chaos II for forcing USR HST 9600 support into Citadel-86.

        Royce Howland of Edmonton for his CALLSTAT utility.

        BKB of Novu for several useful utilities.

        Fred Rose of House of Fred for another utility.

        Phluffy for general ideas and STROLL.

        Andy Rubin of Spies in the Wire for being the first network node
     outside of Minnesota.

        mary mary for her many ideas, unfailing support and editing these damn
     manuals!

        And, of course, the cast of thousands responsible for the ideas
     which have made Citadel-86 into what it is today.

                                -- Hue, Jr.


























                                  -53-









