



























                      _____________________________________
                     <                                     >
                     < Mutant BBS -- Version 1.1           >
                     < Copyright (C) 1994 by Tom Johnson   >
                     < Main Documentation - Feb 07, 1994   >
                     <_____________________________________>
                   




                                Table of Contents


     Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . .    1
          Warranty and Copyright . . . . . . . . . . . . . . . . . . .    1
          Setting up a new system  . . . . . . . . . . . . . . . . . .    1
          Registration . . . . . . . . . . . . . . . . . . . . . . . .    2
          Software Updates . . . . . . . . . . . . . . . . . . . . . .    4

     System Startup  . . . . . . . . . . . . . . . . . . . . . . . . .    4
          Command Line Parameters  . . . . . . . . . . . . . . . . . .    4
          The Waiting for Caller (WFC) screen  . . . . . . . . . . . .    5

     Mutant Windowing System . . . . . . . . . . . . . . . . . . . . .    7
          Terminal Window Keys . . . . . . . . . . . . . . . . . . . .    7
          File View Window . . . . . . . . . . . . . . . . . . . . . .    8
          User Editor  . . . . . . . . . . . . . . . . . . . . . . . .    9
               Guest Users . . . . . . . . . . . . . . . . . . . . . .    9
          Sysop Help . . . . . . . . . . . . . . . . . . . . . . . . .   10
          Status Line  . . . . . . . . . . . . . . . . . . . . . . . .   11

     SACS (Security Access Code Strings) . . . . . . . . . . . . . . .   12

     Output Control Codes (OCC)  . . . . . . . . . . . . . . . . . . .   15

     Command Control Codes (CCC) . . . . . . . . . . . . . . . . . . .   20

     Mutant's Editors  . . . . . . . . . . . . . . . . . . . . . . . .   23
          Configuration Editor . . . . . . . . . . . . . . . . . . . .   23
          Event Editor . . . . . . . . . . . . . . . . . . . . . . . .   34
          Protocol Editor  . . . . . . . . . . . . . . . . . . . . . .   36
               Internal Protocols  . . . . . . . . . . . . . . . . . .   39
          Archive Editor . . . . . . . . . . . . . . . . . . . . . . .   40
          Message and file area editing  . . . . . . . . . . . . . . .   42
          Menu Editor  . . . . . . . . . . . . . . . . . . . . . . . .   43
               How Mutant Processes Menus  . . . . . . . . . . . . . .   47

     Menu Command Codes  . . . . . . . . . . . . . . . . . . . . . . .   49
          Change Menu Commands . . . . . . . . . . . . . . . . . . . .   53
          Miscellaneous Commands . . . . . . . . . . . . . . . . . . .   54
          System Information Commands  . . . . . . . . . . . . . . . .   55
          Message Base Commands  . . . . . . . . . . . . . . . . . . .   56
          Questionaire Commands  . . . . . . . . . . . . . . . . . . .   63
          Miscellaneous sysop commands . . . . . . . . . . . . . . . .   63
          Voting Commands  . . . . . . . . . . . . . . . . . . . . . .   64
          Variable Commands  . . . . . . . . . . . . . . . . . . . . .   66
          User Editing Commands  . . . . . . . . . . . . . . . . . . .   67
          File Transfer Commands . . . . . . . . . . . . . . . . . . .   74
          Archive Commands . . . . . . . . . . . . . . . . . . . . . .   82
          Door Commands  . . . . . . . . . . . . . . . . . . . . . . .   84
          BBS List Commands  . . . . . . . . . . . . . . . . . . . . .   85




     Mutant Screens  . . . . . . . . . . . . . . . . . . . . . . . . .   86
          RIP Support  . . . . . . . . . . . . . . . . . . . . . . . .   86

     LIMITS.CTL  . . . . . . . . . . . . . . . . . . . . . . . . . . .   87

     FILE_IDS.CTL  . . . . . . . . . . . . . . . . . . . . . . . . . .   88

     CHATHOUR.CTL  . . . . . . . . . . . . . . . . . . . . . . . . . .   88

     CHATABV.CTL . . . . . . . . . . . . . . . . . . . . . . . . . . .   89

     TRASHCAN.TXT  . . . . . . . . . . . . . . . . . . . . . . . . . .   90

     DOORFMTS.TXT  . . . . . . . . . . . . . . . . . . . . . . . . . .   90

     NEWUSER.CTL . . . . . . . . . . . . . . . . . . . . . . . . . . .   94

     MAILER.CTL  . . . . . . . . . . . . . . . . . . . . . . . . . . .   95

     Questionaires . . . . . . . . . . . . . . . . . . . . . . . . . .   95

     DISKDESC.CTL  . . . . . . . . . . . . . . . . . . . . . . . . . .   97

     AUTODESC.TXT  . . . . . . . . . . . . . . . . . . . . . . . . . .   99

     PROMPTS.TXT . . . . . . . . . . . . . . . . . . . . . . . . . . .  101
          Message header data fields . . . . . . . . . . . . . . . . .  104
          File listing data fields . . . . . . . . . . . . . . . . . .  105
          BBS listing data fields  . . . . . . . . . . . . . . . . . .  106
          Line editor keys . . . . . . . . . . . . . . . . . . . . . .  106
          Message read keys  . . . . . . . . . . . . . . . . . . . . .  107
               Message Reply Treeing . . . . . . . . . . . . . . . . .  107

     FidoNet Configuration . . . . . . . . . . . . . . . . . . . . . .  108
          Points & Domains . . . . . . . . . . . . . . . . . . . . . .  109
          NODELIST.CTL . . . . . . . . . . . . . . . . . . . . . . . .  109
          .MSG export/import . . . . . . . . . . . . . . . . . . . . .  111

     Final Notes . . . . . . . . . . . . . . . . . . . . . . . . . . .  112




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----         Page 1

                                +--------------+ 
                                | Introduction | 
                                +--------------+ 

          Thank you for trying out the Mutant BBS software.  I feel that it
     offers powerful features not found in some other BBS software and the
     ability to configure the "feel" of the BBS is beyond compare.

          Mutant was written and complied with Turbo C++ and Turbo
     Assembler, both from Borland International.  Main testing was done by
     myself, Michael Samblanet, various students at Virginia Tech, and Bob
     Hogg.
                               
     Warranty and Copyright
     ----------------------
          Mutant is not public domain software.  It is a shareware program
     and is Copyrighted.  You MUST register your usage of the program once
     you have determined you will continue to use it.  I grant you the 
     right to distribute as many copies of the software and associated
     files, provided the following restrictions are kept in mind: 
      
          - Only distribute the executable and documentation in their
            original form.
          - Do not charge anything for the distribution of the program with
            the exception of disk copying charges and fees charged to
            access a BBS.
          - Do not alter any executables contained within the distribution
            files in any manner. 
          - Do not give anyone your registration number.
          - Do not use the program in a commercial environment.  If you
            wish to do so, contact me for details. 
      
          Mutant is guaranteed only to eat hard drive space and your memory
     when running.  No other  warranty or responsibility is implied; I am
     not  responsible for  damages resulting from the use (or misuse) of
     the Mutant BBS software.
          Any brand and product names mentioned are copyrighted by and/or
     trademarks of the author(s) and/or companies of the product.

     Setting up a new system
     -----------------------
          Mutant was requires the following minimum system configuration:

          - IBM AT/286/386/486 compatibles
          - Minimum 384K free memory
          - DOS 3.3 or later
          - Color graphics adapter that does not produce snow
          - Hard Drive (at least 2 megs free)
          - Modem or Rolm data connections




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----         Page 2

     Although this is the minimum configuration, Mutant runs much better
     with the following configuration:

          - 486 IBM compatible
          - 600K free Conventional memory
          - 640K free LIM EMS 4.0

          - 64k+ of Upper memory (memory above A000h).
          - Fast Hard Drive (or big Disk cache)
          - High Speed Modem
          - VGA card

     A sample configuration file will be distributed which contains a
     complete and necessary set-up for the program.

     Registration
     ------------
          Registration of this program costs $40.  If you are running
     Multi-Node, only $40 is required since I feel running Multi-node costs
     enough as it is.  Registration entitles you to notices of updates to
     the software, removal of [Unregistered] messages and access to my
     support BBS, when it becomes available.  When you register Mutant, I
     will send you a printout which contains information who must type into
     the file REGISTER.CTL in the system files directory.  To register the
     software, complete the following form and mail it to me.




     ------------------------------------------------------------
     Registration Form for Mutant BBS
     ------------------------------------------------------------
     Please Print

     Name: ______________________________________________________

     Address: ________________________________________

     City: ____________________, State: __  ZIP: _____-____

     BBS Name : ________________________________________

     BBS Phone: ________________________________________

     Are you planning on/currently running Multinode (Y/N)? _

     If so, Multitasking or on a Network? ____________________

     Check the microprocessors on which you are running Mutant:

     [ ]8086/88   [ ]80286  [ ]80386SX/DX  [ ]80486SX  [ ]80486DX/80487

     [ ]Pentium   [ ]Other _____________________

     Comments: ____________________________________________________________

     ______________________________________________________________________

     ______________________________________________________________________

     ______________________________________________________________________


     Send $40.00 to:

          Tom Johnson
          5825 Cove Landing Rd. #301
          Burke, VA 22015




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----         Page 4

     Software Updates
     ----------------
          Registration entitles you to unlimited updates of Mutant. 
     However, to keep the registration low, I do not send people who
     register new versions of Mutant.  In order to get a new version,
     please call any BBS listed in SUPPORT.LST.

                           +----------------+
                           | System Startup | 
                           +----------------+ 

          To start the BBS, change to the BBS directory and run "MTNT.EXE." 
     Assuming you installed in a directory called "C:\MUTANT", you would
     type:

          C:
          CD\MUTANT
          MTNT

     You can place Mutant in a batch file and pass command line parameters
     and  check ERRORLEVELs.  Mutant itself returns zero when it exits
     normally, and a one when something abnormal happens.  However, C
     returns a three upon abnormal program termination and a four on a
     runtime overlay error.  

     Command Line Parameters
     -----------------------
          The following parameters can be used on the command line (they
     should be separated by a space):

          "CONFIG"   -   Specify to run the Configuration Editor and Exit
                         when done.
          "-Cname"   -   Normally, if you have DOS 3.3+, Mutant will look
                         in the directory where MTNT.EXE resides for
                         CONFIG.DAT.  Otherwise, it looks in the current
                         directory for CONFIG.DAT.  If you do not wish this
                         to happen use this option to specify the config
                         path and name.  For example,
                         "c:\mutant\node2.dat".
          "-Ennn"    -   Tells Mutant to exit after the user logs off with
                         errorlevel "nnn".  If "nnn" is not specified,
                         Mutant will exit with errorlevel zero.
          "-L"       -   Tries to log a user on locally.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----         Page 5

          "-Bbaud"   -   Tries to log a user on at "baud".  If you have
                         specified a locked baud rate in configuration,
                         Mutant will use it to set the baud and use this
                         baud for its time calculations.

                         NOTE: -L and -B will automatically exit after
                         caller with errorlevel 0 or whichever errorlevel
                         you specify with -E.
          "-A"       -   The connection is an error-free connection.
          "-Tx"      -   Specify that an external event is going to occur
                         in 'x' minutes.  This is designed for mail
                         software such as FrontDoor or BinkleyTerm.
          "NOMAILER" -   Normally, if you do not run Mutant via -L or -B
                         commands, Mutant will look for MAILER.CTL in the
                         system files directory and if found it will use
                         it.  However, you can specify this parameter and
                         Mutant will not look for it.
          "NOXMS"    -   Tells Mutant to not place overlays in XMS or to
                         swap out to XMS.
          "NOEMS"    -   Tells Mutant to not place overlays in EMS or to
                         swap out to EMS.
                         NOTE: Mutant tries to use XMS before it tries to
                         use EMS.  If you've used "NOXMS" or Mutant can't
                         use XMS, it will try EMS.  If it can't use EMS or
                         you've specified "NOEMS", it will use the disk.
          "NOCHECK"  -   When Mutant normally runs, it verifies that some
                         files are their correct sizes (in case of version
                         changes).  This check may be ignored by using this
                         parameter.  However, it is important if you change
                         versions of Mutant in case of file
                         incompatibility.
          "IMPORT"   -   Mutant will scan all "Message Paths" (see below)
                         for inbound messages.  If found, they will be
                         imported.
          "DISPUSR"  -   If specified, Mutant will display the names of all
                         prompts defined in PROMPTS.TXT which are not
                         reserved prompt names.
          "EVENTS"   -   Tells Mutant to check events and then exit with
                         errorlevel 0 or whichever errorlevel you specify
                         with -E.

     The Waiting for Caller (WFC) screen
     -----------------------------------
          Upon a normal execution of the BBS, the WFC screen will be
     displayed and Mutant will wait for a connection.  The WFC screen
     displays the status of today's calls, total time used/up and the list
     of the six callers.  If you have VGA, the screen will be displayed in
     the lower half of the screen and the "terminal" window will be in the
     top half.  Otherwise, the WFC screen will be overlaying the "terminal"




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----         Page 6

     window.  As long as you are in the WFC window or the "terminal" window
     (See section on Mutant's Windowing system), the following keys can be
     used:

          "W" -     Access the Waiting for Caller menu. The WFC menu is
                    just like any other menu you would define with the Menu
                    Editor, but doesn't call for you to log on. It's useful
                    for commands that don't require a user to be logged on
                    such as packing the user base.
          "Q" -     Quits the BBS and exits with errorlevel 0.
          "L" -     Log on Locally.  You will be asked "(Y/N/F)?". 
                    Pressing 'N' aborts the logon.  Pressing 'Y' logs on
                    normally. 'F' logs on, but bypasses the "LOGON FRONT"
                    menu if defined and skips your password entry if you
                    aren't using Sysop autologon.  If you do not press
                    something, Mutant will return to waiting for a caller. 
                    Local logons are assumed to have Avatar support.
          "T" -     Shell out and run the terminal program specified in
                    system configuration.
          "I" -     Hang-up and reinitialize the modem. Mutant will do
                    this, anyway, every five minutes if it does not receive
                    a call.
          "M" -     Access the Menu Editor.
          "C" -     Access the Configuration Editor.
          "E" -     Access the Event Editor.
          "P" -     Access the Protocol Editor.
          "R" -     Access the Archive Editor.
          "B" -     Edit Message Base Areas.  See Message and file area
                    editing below.
          "F" -     Edit File Areas.
          "G" -     Edit Message Groups.  See Message and file groups
                    below.
          "O" -     Edit File Groups.
          "A" -     If you are not using "Modem Diagnostics" this will send
                    the "Answer" string and try to connect.  NOTE: the user
                    will NOT have to go through the LOGON FRONT menu.  This
                    option is useful if you were talking to someone and
                    wanted to connect them.  If you are using "Modem
                    Diagnostics", you will be placed in "interactive" mode. 
                    In this mode, you can type on the top line of the
                    screen and modem responses are displayed in the user
                    window.  You would type modem strings containing
                    Mutant's modem control codes.  Use Backspace to correct
                    mistakes.  ENTER sends the string, but does NOT send a
                    carriage-return - Use | in the string to do that.  The
                    following special keys can be used:

                    ESC - If you type a baud rate (1-115200) first, Mutant
                          will try to connect at that rate (baud rates




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----         Page 7

                          remain locked).  If not, Mutant just returns to
                          waiting for caller.
                    ALT-A-Sends the Answer String.
                    ALT-1-3 - Sends an Init String.
                    ALT-H-Sends the hangup string.

                           +-------------------------+
                           | Mutant Windowing System | 
                           +-------------------------+ 

          Mutant uses text windows to display its information.  Also,
     certain windows allow you to perform certain actions as long as they
     are active and the user remains within the BBS (i.e. doesn't go out to
     a door and transfer files).  The active window is denoted by a double
     border.  Certain keys are available in most windows:

          "Alt-W" - Zoom current window and make visible.
          "Alt-S" - Resize window. Use the following commands:
                    "Z" - Make window as big as possible.
                    "C" - Hide window.
                    Cursor Left, Right, Up, Down - move window.
                    "8","4","6","2" - resize window.
                    CTRL-left,CTRL-Right - change border color.
                    HOME - Up scroll window.
                    END - Down scroll window.
                    DEL - Left scroll window.
                    PGDN - Right scroll window.
                    ENTER finishes resizing.
          "Alt-minus" - Restore windows to standard configuration.
          "Alt-1..0" - Activate specified window.

          If you have a MS-Compatiable mouse, you can use the left button
     to control the window.  Clicking on the bottom border of the window
     resizes it. Clicking on the right border scrolls the window.  Clicking
     anywhere else on the window moves it.

     NOTE: Key presses passed to the terminal window depend on which window
     is active.  If the active window does not recognize the keystroke, it
     is passed to the terminal window.  I.E. pressing "A" in the file view
     window will be passed to the terminal, but pressing ENTER will perform
     an action.

     Terminal Window Keys
     --------------------
          "F1"       - Switch to/Open User Editor
          "F2"       - Shell to DOS.
          "F3"       - Increment User's Time online by 5 mins.
          "F4"       - Disable/Enable Input and Output to the port.
          "F5"       - Hangup with message.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----         Page 8

          "F8"       - Toggle Chat Available Types:
                         Use Paging Hours -  The sysop is only available
                                             for chat during the hours
                                             specified in CHATHOUR.CTL.
                         Forced Off -        The sysop is not available for
                                             chat.
                         Forced On -         The sysop is available for
                                             chat.
          "F10"      - Chat
          "Shift-F1" - Grant temporary sysop access (Online SL=255) or
                       retosre old security level.
          "Shift-F3" - Decrement User's Time online by 5 mins.
          "Shift-F4" - Disable/Enable input only.
          "Shift-F5" - Hangup (no message).
          "Shift-F8" - Toggle Sysop Next.  If on, a local logon will occur
                       when the user logs off.
          "Shft-F10" - Force ASCII chat mode.
          "Ctrl-F1"  - Set user's security based on the "\\VALIDATE USER"
                       in "NEWUSER.CTL".
          "Ctrl-F4"  - Disable/Enable output only.
          "Ctrl-F8"  - Toggle Quit Next.  If on, the board will exit with
                       errorlevel 0 when the user logs off.  If at WFC, the
                       board will exit.
          "F6"       - Hot Key 1. (See system configuration)
          "F7"       - Hot Key 2.
          "Shift-F6" - Hot Key 3.
          "Shift-F7" - Hot Key 4.
          "Ctrl-F6"  - Hot key 5.
          "Ctrl-F7"  - Hot key 6.
          "Alt-F6"   - Hot key 7.
          "Alt-F7"   - Hot key 8.
          "Alt-B"    - Disable/Enable Blinking colors on EGA/MCGA/VGA.
          "Alt-F"    - Switch to/Open File Viewer
          "Alt-H"    - Switch to/Open Help Window
          "Alt-O"    - Open/Close logfile.
          "ALT-P"    - Reread PROMPTS.TXT.  Since PROMPTS.TXT is parsed and
                       stored in memory while the BBS is running, any
                       changes made while in DOS shells will not take
                       effect until the next run or this key is pressed.

     File View Window
     ----------------
          This window allows you to view files.  Cursor movement scrolls
     around the file. "F2" loads a new file.  Pressing ENTER centers the
     line on the terminal window and displays it in the "Upper row keys
     color."  Not a very useful function, except to be annoying to the
     user.  If this window is opened automatically (by being part of the
     window configuration) upon start up or as part of logon, certain files
     are automatically displayed.  If it is open when the board starts, the




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----         Page 9

     system log is used.  Otherwise, if it is opened during logon, the file
     "ALTKEYS.MRN" is viewed.  Pressing ESC closes this window.

     User Editor
     -----------
          The keystrokes are explained below:
          "CTRL-G" - Goto a specified user
          "CTRL-LEFT" - Goto previous user
          "CTRL-RGHT" - Goto next user
          "ESC" - Quit Editor and close window
          "TAB" - Goto next field
          "Shift-TAB" - Goto previous field
          Cursor keys move around the screen
          PgUp/PgDn - Switch between flags and information screen.
          Enter    - Done editing the field (without moving from it).
          "CTRL-J" - Save user (CTRL-ENTER on most machines)
          "CTRL-N" - Create a blank user at the end of the user record.
          "CTRL-U" - Update editor screen.  This only works if editing the
                     user on the BBS at the time.  

     Most items in the editor are explained in the 300 command codes. 
     However, there are four which can only be editing in the user editor:

     1. Deleted -    deletes the user.  When the editor saves the user and
                     a user is marked as deleted, Mutant will remove the
                     user's name from any and all voting questions. If you
                     wish to undelete the user, just set deleted to No, and
                     all the user will have to do is re-vote on the voting
                     questions.
     2. Hidden -     User does not show up in the list user commands nor
                     are logins written into the previous caller list. 
                     Activities are still written to the log.
     3. No Kill-     User is not deleted when a delete "old users" command
                     is executed.
     4. Guest  -     See Guest Users below.

     Anytime you quit the user editor, go to a different user, or change
     the user name (alias), the user is written to disk.  NOTE: if you are
     editing the user that is on the BBS, the screen may not show the
     actual information, so if didn't just activate the user editor window,
     use CTRL-U to update the screen before editing a field  If you don't,
     the values you type will be used.

     Guest Users
     -----------
          Guest users are users who can look around the BBS, but can't
     really do anything.  Also, user's marked as guest will not have their
     user record updated when they log off.  You would create a guest user
     in the user editor with the proper security, etc.  If you do not enter




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 10

     a password, user's can logon just by entering the guest's user name.
     The following is a list of what the guest user can/can not do:

          1. Commands codes 300-382 can be executed with the exception of
          create/modify signatures/announcements/resumes.
          2. Can not upload into a file area.  However, can upload if ou've
          specified an upload path.  Useful if some automatic utility is
          calling you to upload files.
          3. Can go through the "motions" of downloading, but the actual
          download will not take place.
          4. Can post messages, but they are always marked as invalid. 
          Plus, they can not attach files to the message.
          5. Allows them to see how to create multinode chat groups, but
          they can't actually create one.
          6. Can't join chat groups.
          7. Can list voting questions/view results, but can't Vote.
          8. Can run doors.  You should use SACS to override this in
          "gaming" doors.
          9. Message isn't generated to the user upon invalid login.
          10. Guest users can be logged onto more than one node.
          11. Guest users can not "login" via code 12.
          12. Messages posted on local bases via the BBSs post command, can
          not be sent to guest users.
          13. When user editing a guest user while it is online, you can
          not save the changes to disk.

     Unless specified, everything works as if a normal user were logged on. 
     Also, you will probably want to set the hidden and nokill flags to
     prevent users from seeing your "guest" user in the user list and from
     being deleted.  Also, you should probably ask the user how many lines
     per screen they have right after logon if they are a guest.

     Sysop Help
     ----------
          This just displays the keys available when the terminal window is
     active.  The only keys available are the standard window keys and ESC
     to close the window.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 11

     Status Line
     -----------
          The status line is displayed at the bottom of the terminal
     window. This is actually a one line window which looks like this:

     Sysop  345  Local  ANS PAGE  AVAIL  ALERT!  LNQ

     where:
     "Sysop"   - user name who is online.
     "345"     - time left in minutes.
     "Local"   - On locally, baud rate or connect code.
     "ANS"     - Either ANS, Avt or RIP XX.YY.ZZ, ANS is Ansi, Avt is
                 Avatar, and RIP is RIP graphics.
     "PAGE"    - The user paged you and you didn't respond.
     "AVAIL"   - Sysop Available for Chat is On.
     "ALERT!"  - The User's Alert Flag is set.
     "L"       - A log file is open.
     "N"       - Sysop Next is on.
     "Q"       - Quit Next is on.

     NOTE: if "PAGE" or "ALERT!" is on the status line, Mutant will also
     click the speaker each time the status line is updated.
     ALSO: If you notice that it scrolls please let me know.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 12

                     +-------------------------------------+
                     | SACS (Security Access Code Strings) | 
                     +-------------------------------------+ 

          SACS determine access to a certain function of the BBS.  These
     can be security levels, time of day, if a file on the sysop's computer
     exists, etc.  Below is a list of the codes.

     0         - Always false.
     1         - Always true.
     ~         - Within Mutant, this is false.  Any Mutant compatiable door
                 I write which can parse SACS defines this as true. 
                 Currently, MTQwk is the only door I've written which
                 supports SACS.  As Mutant does not support message groups
                 in this version (or next few versions), you can trick into
                 using them by using "variables" and variable check SACS in
                 your Access SACS.  I designed this code so that MTQwk can
                 override your fake "groups" if you desire.
     Sx        - security level of at least 'x' (where S30 would be
                 security level 30 or higher)
     SS        - sysop security level (is a sysop as defined by the SACS in
                 system configuration).
     C         - Sysop must be available for chat.
     DDhh:mm   - time of day greater than or equal to hh:mm(where DD13:00
                 would be 1pm or after)
     DB        - access granted if today is user's birthday and this is
                 they're first logon today.
     DP        - access grated if the user's birthday has occured after
                 they last logged on and today is not their birthday.
     DWx       - Must be at least 'x' day of the week. Sunday is 0.
     DOx       - Must be at least the 'x' day of the month (1-31).
     DMx       - Must be at least this month. January is 1.
     DYx       - Must be at least this year. (1900-?).
     DS        - True if the user's subscription date less than today.
     Ax        - Must be at least 'x' years old.
     GM        - user must be male
     GF        - user must be female
     L         - The answer of a previous expression.  Say, in one
                 expression you had "VA" and the user has ANSI on. Then, if
                 the "L" is in the next expression, it will evaluate to
                 true.  
                 Two events modify this result. If when using a text
                 editor, a save sets this value to true and an abort sets
                 this value to false.
                 NOTE: Use this only if you are sure you know what the
                 previous expression could have been.
     Px        - user must have at least 'x' money (points)
     VA        - user must have ANSI
     VV        - user must have AVATAR support on.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 13

     VR        - user must be using RIPTerm v1.5 or later.
     BL        - user must be on locally
     Bx        - user must be at a certain baud rate of higher. NOTE: this
                 is based on the baud specified with the connect strings
                 (see system config) or the baud parameter in the "/F="
                 command line option. This is always false if the user is
                 logged on locally.
     BR        - True if a reliable (or ARQ) connection was made.
     BK        - True if the port is locked.
     Tx        - user must have at least 'x' minutes left
     TOx       - user must have been on at least 'x' minutes
     MM[x]     - user must be the sponsor of message base 'x', or the
                 current message base if 'x' is not given, in which case
                 the user must be the sponsor of the current message base. 
                 WARNING: Do not use this code in the SACS that define the
                 message base sponsor.
     MF[x]     - same as MM, but applies to file bases.
     RP        - True if user meets the expected Post to call ratio from
                 LIMITS.CTL
     R#        - True if user meets upload upload/download ratio.
     RK        - True if user meets upload K/download K ratio.
     Fx        - must have certain flag 'x' set (range of 1-576)
     U         - True if there is a valid user record in memory, either via
                 normal logon or menu command 12.
     U"name"   - user must have a certain name.
     UG        - True if the user is a "guest".
     UR"name"  - user's real name must match this name.
     U#num     - True if the user's number is num (num is 1-65535).
     HMx       - Default message area greater than or equal to 'x'.
     HFx       - Default file area greater than or equal to 'x'.
     @varOx    - This checks the value of the user variables.  First, you
                 specify the variable (see menu code 200) to be checked. 
                 Then, "O" which is "=","<",">","<=" or ">=".  Then, for
                 "x", a number or "Vvar" to check value against a variable.
                 For example, "@c1=5" or "@is1<0".
     @Fx       - 'x' is a number from 1 to 32.  This is true, if the
                 specified temporary flag is set.  For example, @F3
     #xxx,yyy  - A random number from 0 to "xxx" is generated where "xxx"
                 is less than or equal to 32767.  This number must be
                 greater than or equal to "yyy"
     Z"file"  -  This is true if the file specified exists and is not 0
                 bytes long.  You can specify '#:\name', to access one of
                 Mutant's directories. For example, Z"1:\errorlog.asc"
                 translates to "c:\mutant\sysfiles\errorlog.asc"




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 14

     ZE"file #"- This is the same as above except the file can be of 0
                 length.
     ZL"dLABEL"- This is true if the volume label of drive d matches LABEL
     IW        - The user is asked to press [ENTER], but if they press
                 SPACE instead this is true. 
     IY        - The board waits until the user presses 'Y' or 'N'. This is
                 true if they press 'Y'.
     IPxx`yy`  - The board prints out "yy" and gets a string. If it matches
                 "xx" exactly, this is true. Case is significant. 
     IP\#`yy`  - The board prints out "yy" and gets a string. If it matches
                 the system password # (1-4), this is true.
     IH`prompt`- Prints "prompt" and gets a phonenumber.  This is true if
                 it matches the user's phonenumber.
     I4`prompt`- Prints "prompt" and gets 4 digits. This is true if they
                 match the last four digits of the user's phonenumber.

     NOTE: The "I" commands are true when the board is determining if the
     user should be aware of a function (I.E., menu keys, file/message
     areas), but they are actually evaluated when the user tries to access
     the function. (I.E. hit a menu key, tried to change to a file/message
     area).

     These codes can be combined with OR, AND, and NOT operators to perform
     complex expressions.
          "|" -  ORs two expressions together
          "&" -  ANDs two expressions together.
          "'" -  Primes (Nots) the previous expression.  NOTE: if you try
                 to prime an "I" code, it is still true if the board is
                 determining "awareness"
          "!" -  Performs a "NOT" operation on the next expression.

     Also, parentheses can be used to further complicate the expression. 
     NOTE: AND is the default operator between expressions.

     EXAMPLES:

     A30S10    - Must be at least 30 years old and have an SL of 10 or  
                 higher.
     GM|F50    - Must be Male or have flag 50 set.
     A20'      - Must be less than 20 years old.
     !A20      - Must be less than 20 years old.
     IPpw`Enter PW:` - True if the user enters "pw".
     (U"user"T50)|SS - User must be "user" and have at least 50 minutes
                       left or be a sysop.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 15

                      +----------------------------+
                      | Output Control Codes (OCC) | 
                      +----------------------------+ 

          OCCs are codes that represent information about the user and
     formatting of the text output. Most things that print to the terminal
     window can contain these codes.  All codes begin with a control
     backslash (ASCII code 28) and are listed below as ^\ and the actual
     value:

     ^\b             - The BBS name from the system configuration.
     ^\V             - Version number of the software
     ^\d"m/d[/y]"    - The number of days until the specified date or until
                       the specified date in the specified year.  For
                       example, ^\d"12/25" displays the number of days
                       until christmas.
     ^\dl"m/d[/y]"   - The number of days since the last time the specified
                       date occurred or since the date in a specified year.
                       NOTE: because of the limits of the C time functions
                       the range of the year is 1970-2037.
     ^\db            - Number of days until the user's next birthday.
     ^\dp            - Number of days since the user's last birthday.
     ^\fxy           - Move cursor to X position 'y'
     ^\fcx           - Set left margin to 'x'. This means when a new line
                       is printed spaces will be printed until the position
                       is at x.
     ^\fc?           - Sets left margin to current X position
     ^\fp0           - Disables screen pausing until a ^\fp1 is printed. 
                       This is useful to prevent prompts during your ANSI
                       screens.
     ^\fp1           - Re-enables screen pausing.  Mutant will do this only
                       before a menu prompt and when the user logs off.
     ^\flx           - Set user's lines per screen to 'x' for the current
                       session only.  If 'x' is less than five, Mutant will
                       use the user's "permanent" lines per screen.  This
                       is primarily designed to set the lps after a RIP
                       screen.
     ^\Q["[*]name"]  - This prints a quote.  You can specify "name" in
                       which case Mutant uses "SYSFILES\name.TXT". 
                       Otherwise, it uses "SYSFILES\QUOTES.TXT".  If you
                       begin the string with an asterik, Mutant will
                       randomly pick one.  Otherwise, it will print them
                       out sequentially.  For example, ^\Q"*msgquote"
     ^\M             - Name of default message base.
     ^\MN            - Area number of default message base.
     ^\F             - Name of default file area.
     ^\FN            - Area number of default file area.
     ^\GM            - Current Message group name
     ^\GMN           - Current Message group number




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 16

     ^\GF            - Current File group name
     ^\GFN           - Current File group number
     ^\BK            - Port is locked (TRUE=Yes), see ^\u19 below.
     ^\BL            - User is on local (TRUE=Yes).
     ^\BR            - Reliable(ARQ) connection was made (TRUE=yes).
     ^\BI            - The non-locked baud rate.
     ^\t             - Time left in minutes
     ^\t"time fmt"   - Prints out the current date&time using C's strftime
                       function where the time fmt contains formating
                       codes.  If you don't have access to a C manual,
                       here's the formatting characters:
                         %% - Percent Sign
                         %a - Abbreviated weekday name
                         %A - Full weekday name
                         %b - Abbreviated month name
                         %B - Full month name
                         %c - Date and time in Normal C/Unix format
                         %d - Two-digit day of the month (01 to 31)
                         %H - Two-digit hour (00 to 23)
                         %I - Two-digit hour (01 to 12)
                         %j - Three-digit day of the year (001 to 366)
                         %m - Two-digit month as a number
                         %M - Two-digit minute (00 to 59)
                         %p - AM or PM
                         %S - Two-digit second (00 to 59)
                         %U - Two-digit week number where Sunday is the
                              first day of the week (00 to 52)
                         %w - Weekday where 0 is Sunday (0 to 6)
                         %W - Two-digit week number where Monday is the
                              first day of the week (00 to 52)
                         %x - Date
                         %X - Time
                         %y - Two-digit year without century (00 to 99)
                         %Y - Year with century
                         %Z - Time zone name.  Normally this is EST or EDT. 
                              But if you don't live in the Eastern Time
                              zone, set the environment variable TZ=zzz[+|-
                              ]d[d][lll] where zzz is the name of your time
                              zone, [+|-]d[d] is the offset from Greenwich
                              mean time and [lll] is the name during
                              daylight savings time.  For example, for the
                              Pacific time zone, type "SET TZ=PST8PDT" at
                              the DOS command line.
                         For example ^\t"It is %A %B %d, %Y at %I:%M %p"
     ^\t0            - Time of day in 00:00:00 format (obsolete)
     ^\t1            - Date in Day mm:dd:yyyy format (obsolete)
     ^\t2            - Time on in minutes (rounded down)
     ^\K             - If the user has ANSI or Avatar, Mutant sends the
                       appropriate clear to end of line code.  Otherwise,




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 17

                       it clears all but the 80th column using spaces and
                       backspaces.
     ^\n             - Move cursor to first column of next line
     ^\r             - Move cursor to first column of current line.
     ^\R             - RIP newline.  This prints a ^M to both remote and
                       local.  Then a ^J to the remote and clears to the
                       end of line locally.  This is designed to print a
                       RIP command string without messing up the local
                       display.
     ^\s             - Print sysops name as defined in system configuration
     ^\w             - Print user's alias
     ^\W             - Wait for a key (no prompting is given)
     ^\Tnone~        - Displays the user's default protocol or the "none"
                       string which you specify.
     ^\P"name"       - Display prompt "name".  If you wish to use one of
                       Mutant's predefined prompt names, you must begin the
                       name with a colon (i.e. :wait prompt).
     ^\@"name"       - Display textfile.  "name" is the same format as Menu
                       Code 1 (see menu codes below).
     ^\x"CCC"        - Allows you to execute a program from within a text
                       file or prompt.  "CCC" is a valid command control
                       code (see below).  NOTE: you must have "Enable Text
                       Shells" set to "Yes" for this to work.
     ^\vvar          - Prints out a variable (see menu code 200).
     ^\vFxTRUE~FALS~ - Allows you to define a value for the temporary
                       flags.  See ^\u19 below for more info.
     ^\l             - Clear screen.
     ^\%             - Number of users
     ^\#x            - Change current color to 'x'
                       example: ^\#1 will change the color to dark blue
     ^\$x            - Change to system color 'x'
     ^\D             - Disables Mutant's output routine's ability to use
                       OCC until Mutant reenables them.
     ^\Lc[#]         - "Line Draw".  'c' is a a letter (A-K), and '#' is
                       the number of times to repeat the line (default 1).
                              c    ANSI      ASCII     c ANSI    ASCII  
                              A             +         G        +
                              B             +         H        +
                              C             +         I        +
                              D             +         J        -
                              E             +         K        |
                              F             +
     ^\p#            - Print's a system password where # is 1-4.
     ^\u1            - Print user's password
     ^\u2            - Print user's phonenumber
     ^\u3            - Print user's street
     ^\u4            - Print user's city
     ^\u5            - Print user's state
     ^\u6            - Print user's zip code




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 18

     ^\u7            - User's age
     ^\u8"time fmt"  - User's last login time (not including the current
                       login).
     ^\u9            - Print number of uploads user has made
     ^\u10           - Print number of downloads
     ^\u11           - Print number of posts
     ^\u12           - Print users' on-line security level
     ^\u13           - Print user's actual security level
     ^\u14           - Print amount of play money user has
     ^\u15           - Number of times user has called
     ^\u16           - User's Post to call ratio.
     ^\u17           - User's upload download ratio.
     ^\u18           - User's number of lines per screen
     ^\u19TRUE~FALS~ - Screen pause active or not.  "TRUE" is the text if
                       the flag is true and "FALSE" is the text if the flag
                       is false. This is called a "flag" variable.  Other
                       flag variables will be denoted by (TRUE=whatever)
                       and use this same format.  This one is TRUE if
                       screen pausing is active.
     ^\u20           - ANSI/ASCII (TRUE=ANSI)
     ^\u21           - One Key/Full line (TRUE=One key)
     ^\u22           - Alert status (TRUE=alert on)
     ^\u23           - Expert mode (TRUE=Expert mode on)
     ^\u24           - Editor Type (TRUE=Full Screen)
     ^\u25           - Downloads in kbytes
     ^\u26           - Uploads in kbytes
     ^\u27           - User's real name
     ^\u28           - Amount of time user has in timebank
     ^\u29           - Timeleft in seconds
     ^\u30           - Sex (TRUE=Female)
     ^\u31           - Birthday
     ^\u32           - Download limit per day in K
     ^\u33           - Kbytes downloaded today
     ^\u34           - Kbytes available today
     ^\u35           - Comment
     ^\u36"time fmt" - First time logged on
     ^\u37"time fmt" - Time of last password change
     ^\u38           - Avatar support (TRUE=Yes)
     ^\u39"time fmt" - Subscription Expire date - should only use month,
                       day and year specifiers.
     ^\u40           - Number of days until subscription expires (0 if it
                       expired today, negative if before today).
     ^\u41           - Calls allowed per day for the user from LIMITS.CTL
     ^\u42           - Required Upload/Download file ratio from LIMITS.CTL
     ^\u43           - Required Upload/Download Kbyte ratio from LIMITS.CTL
     ^\u44           - Required Post/Call ratio from LIMITS.CTL
     ^\u45           - Maximum private posts per call
     ^\u46           - Maximum public posts per call
     ^\u47           - Maximum Netmail posts per call




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 19

     ^\u48           - Maximum Chat attempts per call
     ^\u49           - # times user has called today
     ^\u50           - # private posts this call
     ^\u51           - # public posts this call
     ^\u52           - # netmail posts this call
     ^\u53           - # chat attempts this call
     ^\u54           - User's Upload/Download Kbyte ratio.
     ^\u55           - User's first part of name (defined as the text
                       before the first space or all of it if no space).
     ^\u56           - User's last part of name (defined as the text after
                       the first space or blank if no space).
     ^\u57           - User's first part of real name.
     ^\u58           - User's last part of real name (may be multiple words
                       if the user didn't use FIRST LAST when entering
                       their real name).
     ^\u59           - Using Full Screen Msg Viewer (TRUE=Yes)
     ^\u60           - RIPTerm (TRUE=Yes)
     ^\u61           - The user's user number.  The user number is used
                       strictly for logon and internal use only.  It CAN
                       NOT be entered into the message base.
     ^\u100-^\u675   - TRUE if user's general flag '#' minus 99 is true. 
                       For example, ^\u343Home~Work~ would print "Home" if
                       the user's flag 244 was set.

     Also, ^\GMN, ^\GFN, ^\BI, ^\u7,9-12,14,15,18,25,26,28,29,33,40-54,61
     and ^\N (see Multinode docs) have an "is" option.  This consists of
     the code followed by =, <, > , >=, or <=, and a number which makes it
     a flag variable (described under \u19).




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 20

                  +-----------------------------+
                  | Command Control Codes (CCC) | 
                  +-----------------------------+ 

          Command control codes are used WHENEVER Mutant runs an external
     program. The format is:

          ["[m]name"][d:\path\]progname[.ext][ param1 param2 ...]

          "name"     is a name you wish to give the program.  Mutant will
                     use this name to generate door usage information.  You
                     must surround the "name" in quotes.
          "m"        is used for multinode purposes only, see Multinode
                     Docmnetation for more information.
          "d:\path\" is the location of the program to run.  If you do not
                     specify this, Mutant assumes it is in your path.
          "progname" is the name of the program to run.
          ".ext"     is the extension of the program to run.  If you do not
                     specify this, Mutant will search for "progname.EXE"
                     and then "progname.COM".  If neither of these is
                     found, Mutant will use the program specified in the
                     COMSPEC environment variable (usually C:\COMMAND.COM)
                     and pass "/C progname params".
          "param"    are any optional parameters.  These can begin with a
                     caret(^) in which case the parameter will be ignored
                     if the user is on locally.  Also, a plus(+) before a
                     paramater will cause the parameter to be ignored if
                     the user is on remotely.  You can also include the
                     following special parameters:
                       "%P" - Com Port (1-x).
                       "%B" - Baud rate. 0 if locally.  NOTE: this is the
                              baud rate defined by the result codes or the
                              locked baud rate if "door lr" is set.
                       "%F" - User's First name.  Defined as the characters
                              before the first space. 
                       "%L" - User's Last name. Defined as the characters
                              after the first space. "%F %L" gives the full
                              name.
                       "%T" - Time remaining in minutes.
                       "%H" - If you are using an external FOSSIL driver,
                              this tells Mutant to not deinitialize it
                              before shelling.
                       "%M" - Normally, Mutant swaps itself out to EMS, if
                              available, or to "MTNTSWAP.SWP" in the
                              temporary directory. This leaves about 3.8K
                              of the BBS left in memory.  However, this
                              takes some time and some programs may not
                              exit cleanly.  If you think the swap takes
                              too long, or the program you are running




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 21

                              causes Mutant to be unable to return from the
                              swap, you should use this paramter.
                       "%C" - The full path and filename of the current
                              configuration file Mutant is using to run.
                       "%!" - If specified, Mutant will add back any time
                              the command takes. DO NOT use this with an
                              upload command unless you set the file area's
                              UTM to 0 since Mutant already takes upload
                              time into account.
                       "%#" - If specified, Mutant will turn off a sysop
                              page if on.  You can use this in a hot-key to
                              define an external chat program.  However,
                              Mutant already includes an excellent full
                              screen chat if the user has ANSI.
                       "%$" - Usually, if you specify a drive and directory
                              of the program to run, Mutant will change the
                              default drive and directory to that directory
                              and run the program. Using this option causes
                              Mutant to ignore that. NOTE: file transfers
                              and archive manipulations have their own
                              default directories and therefore this
                              command is useless in these instances.
                       "%G" - 1 if the user has ANSI, 0 if the user
                              doesn't.
                       "%G2"- 1 if the user has AVATAR, 0 if the user
                              doesn't.
                       "%S" - Generate door format file.  The format of
                              this is:

                                   %S"[d:\path\]name"

                              If "d:\path\" is not specified, Mutant will
                              use the path specified for the EXE.  If a
                              path wasn't specified for the EXE, Mutant
                              will use the current directory.  You can use 
                              "#:\" where '#' is 0-5 for one of Mutant's
                              directories.

                              "name" is the door format name as specified
                              in DOORFMTS.TXT.  You must include the quotes
                              as "name" can contain spaces.
                       "%D0"- Screens path name.
                       "%D1"- System Files path name.
                       "%D2"- Message base path name.
                       "%D3"- File transfer path name.
                       "%D4"- Nodelist path name.
                       "%D5"- Temporary path name.
                              NOTE: none of the "%D" commands have a
                              trailing backslash.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 22

                       "%1" - A string used in protocols/archives/etc.
                       "%2" - A string used in protocols/archives/etc.
                       "%%" - Percent symbol.

     When Mutant shells out, all files are left opened.  Mutant does not
     normally leave files open except for the logfile you specified with
     Alt-O and any file used in output redirection for archive viewing,
     etc.  However, when you shell out via F2 or a hot-key, any number of
     files will be left open depending on where you shelled out.  Also,
     Mutant will create the file RETURN.INF which contains many of Mutant's
     internal variables.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 23

                         +------------------+
                         | Mutant's Editors | 
                         +------------------+ 

          Mutant has its own internal menu, event, protocol, archive and
     configuration editor.  A friend of mine calls them a bit difficult to
     use, but I don't see how.  On the data screens of the editors, you use
     the cursor up/down keys to select the field that you wish to edit and
     then type in the new data.  Some prompts are toggles in which case
     pressing any non-movement key will cause them to toggle.  The other
     fields usually can be edited as strings even though they may be
     numeric.  Most string fields can be edited with the following keys:

          Left      - Move cursor Left
          Right     - Move cursor Right
          End       - Goto the end of the string
          Home      - Goto the beginning of the string
          Delete    - Delete current character
          Ctrl-END  - Delete from current position to the end
          Backspace - Delete previous character
          Insert    - Turn insert mode on/off

     NOTE: you can use the editors from remote via menu commands, but in
     order to take full advantage of the editing commands, the terminal
     program must support doorway mode.

     Configuration Editor
     --------------------
          The configuration editor tells the board where to find its files
     and defines other miscellaneous options.  To use it, use the cursor
     UP/DOWN keys to move between the fields.  When on the desired field
     type the desired information and press ENTER.  Use PgUp/PgDn, to
     toggle between the pages.  Press "ESC" when done.  Each page is
     explained below. 

     Page 1
     ------
     Sysop Name -                This defines the name of the sysop. It is
                                 used when the user record is created and a
                                 user sends a message to "SYSOP".
     Message Base Path -         This is where the message base files are
                                 to be stored.
     Menu Screens Path -         This is where text screens used in menus
                                 are found.
     File Base Path -            This is where the file transfer listings
                                 and information are found.
     System Path -               This is where most system files are
                                 stored.
     Temporary Directory-        This is a scratch directory where uploads




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 24

                                 are held until they are moved, archive
                                 manipulation takes place and the message
                                 editors store text files.  I HIGHLY
                                 recommend that this be the same drive as
                                 most of your file areas since DOS allows
                                 Mutant to easily move files as long as
                                 they are on the same drive. NOTE: this
                                 directory must not contain a period (see
                                 Multinode documentation for reason).
     Nodelist directory-         This is where Mutant will find all
                                 nodelist information.
     Hot keys -                  Hot Keys are keyboard macros if they begin
                                 with a "\". If not, can be used to execute
                                 external programs.
     Terminal Program -          This defines the program to be executed
                                 when you press "T" while waiting for
                                 caller.
     Node Directory -            See Multinode documentation.  Leave blank
                                 if not running Multinodes.
     Min Disk Free -             This specifies the amount of disk space in
                                 (kilobytes) before uploads can take place,
                                 a message can be posted and before certain
                                 parts of a Mutant event can take place.
                                 Setting this to zero will cause disk space
                                 checks to be skipped.
     Screen Blank Time -         This specifies the amount of time in
                                 seconds before the blanking the screen. 
                                 This is local keystrokes only, not remote
                                 input!
     File Attach Directory -     Mutant allows users to attach files to
                                 private messages. This option specifies
                                 the "root" directory for these files. 
                                 When a message has files attached, Mutant
                                 creates a directory under this directory
                                 named msgnum.area.  When reading a message
                                 the recipient of the message can list the
                                 files available and download them.  After
                                 successful download, the file(s) are
                                 deleted and the directory is removed when
                                 there are no files left.  These files
                                 never count in the user's file limits and
                                 ratios.
     Page Sound Directory -      Mutant will pick a random file from this
                                 directory and play it when you are paged. 
                                 The files are named "*.TUN"  and consist
                                 of strings of up to 256 characters per
                                 line.  The strings can optionally enclosed
                                 in quotes.  The strings are IBM BASIC PLAY
                                 commands (consult a BASIC manual for more




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 25

                                 info).

                                 If you have a SoundBlaster, you can place
                                 .VOC files in this directory and Mutant
                                 will try and pick one of these first, as
                                 long as you do the following:

                                   1. SET SOUND=d:\path -  Mutant uses this
                                   to load "d:\path\DRV\CT-VOICE.DRV"
                                   2. SET BLASTER=Aport Iirq -  This is
                                   optional, Mutant assumes 220 for port
                                   and 7 for irq.
                                   3. As I gave much memory to C's overlay
                                   manager, keep them small (under 64k) so
                                   that they can be loaded.

     Page 2
     ------
     System open or closed -     If the system is closed, no new users will
                                 be able to logon by the logon prompt.  You
                                 can still use a logon new user command in
                                 a LOGON FRONT menu though.
     Higgen input character -    The character printed when user is
                                 inputting passwords.
     View PW entry locally -     If this is YES, a window will be displayed
                                 when the user is typing their password
                                 showing their password, name, SL, and what
                                 they are typing.
     Cosysop SACS -              The SACS that define a sysop. DO NOT USE
                                 "SS"
     Input time out (mins) -     The amount of time between keypresses
                                 before they are logged off.
     Sysop hangup message -      The default message used when F5 is
                                 pressed.
     Use HD park utility -       If yes, the heads are moved to the last
                                 track on the drive.
     Name of the board -         This is the name of the BBS.
     Sysop AutoLogin -           If yes, the logon prompts will be bypassed
                                 and the sysop as defined on page 1 will be
                                 logged on.
     Allow Aliases -             Mutant was designed to normally allow
                                 aliases.  However, setting this to no,
                                 performs the following:
                                   1.   Whenever a real name is entered, it
                                        will be duplicated in the alias
                                        field.  Therefore, U and UR SACS
                                        will be the same.  Also, ^\w and
                                        ^\u27 OCC are the same.
                                   2.   A space will be expected when




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 26

                                        logging on.
                                   3.   Command Code 300 (enter alias) will
                                        not be loaded when a menu is
                                        loaded.
                                 I HIGHLY RECOMMEND not changing this value
                                 once users have logged on.
     Maximum time in time bank - Maximum time the user is allowed to put in
                                 the time bank. (We don't want them on
                                 forever do we?)
     Message Upload SACS -       Security required to use the upload text
                                 file command in the message editors.
                                 Mutant will strip all control characters
                                 which except ESC's and Line Feeds. 
                                 Therefore, no Avatar screens are allowed,
                                 only ANSI screens.
     Disable remote sysop -      When this is "Yes", the sysop(defined by
                                 Sysop Name) can only logon locally.  This
                                 prevents hackers from trying to gain
                                 access to your account.
     Password Tries -            This specifies the number of tries a user
                                 has in order to get their password
                                 correct.
     Feedback Invalid Password - By specifying a message area (0-999), the
                                 user has the option to send a message to
                                 the sysop when they exceed password tries.
                                 Set this to -1, to disable this option.
     Invalid password area -     This specifies a message area in which a
                                 user will be sent a message if an invalid
                                 password attempt occurs on their account. 
                                 Set to -1 to disable.
     Change password days -      If this option is not zero, Mutant will
                                 force users to change their password every
                                 x days.
     Exclude Local logins -      Any local logins will not be written to
                                 the system log nor into the previous
                                 caller list.  This is useful if you are
                                 doing maintenance on/testing of the BBS.
     OCC disable in messages -   Mutant will disable OCC before printing
                                 each line of a message.
     Enable Text Shells -        This affects the ^\x"CCC" output control
                                 code given above.  Be carful with setting
                                 this to "Yes" as a user could possibly
                                 type ^\x"format c:"!
     WFC Drives -                A list of up to nine drive letters for
                                 which Mutant should display free disk
                                 space on the WFC screen.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 27

     Page 3
     ------
     Init 1,2,3 -                The string(s) which setup your modem to
                                 accept callers.  If a string begins with
                                 an '*' it is only sent the first time
                                 Mutant initializes the modem and will not
                                 use it until the next time it is run.  If
                                 you're modem does not need to be
                                 reinitalized(besides the hangup), you may
                                 wish to begin your strings with an '*'.
                                 NOTE: because of FOSSIL specs, Mutant will
                                 also raise DTR (data terminal ready)
                                 whenever it initializes the modem.
     Hang up -                   This string is the command to hang up the
                                 modem.  If this string is blank, Mutant
                                 will just drop DTR to hang-up.
     Off Hook -                  Mutant sends this string when you logon
                                 locally or during specified events.  You
                                 may wish to use this to make your "phone"
                                 busy.  
     Answer -                    This is sent when you press "A" at the WFC
                                 screen and in response to the "Ring" code.
     OK result -                 Mutant expects the modem to return this
                                 when it sends an init string, the hang up
                                 string or the reset string.
     Reset -                     This is sent when you quit the BBS via the
                                 'Q' command on the WFC or the "quit" code
                                 in MAILER.CTL.  If blank, Mutant will just
                                 drop DTR.

          NOTE: The above modem strings(except OK result) can contain
          special codes:
               ~  - Pause for half a second.
               |  - Send a carriage return.
               ^x - Send control character, ^A=Control-A (ASCII 1).
               ^# - Drop DTR
               ^$ - Raise DTR
               ^^ - Send a '^'

          Also, Mutant does not automatically send a carriage return after
          the strings, so you must include one in the string if it is
          necessary.

     Ring -                      This specifies the result your modem sends
                                 back when the phone is "ringing".  If this
                                 string is not blank, Mutant will look for
                                 this string and once received, Mutant will
                                 send the answer string and then try to
                                 connect.  If this string is blank, Mutant




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 28

                                 will assume you've set your modem up for
                                 auto answer and just try to connect.  Now,
                                 I'm not saying that Mutant crashes, but
                                 just in case, I highly recommend you use
                                 this option so that long distance callers
                                 do not connect when the BBS is down.
     Init Delay -                After each init string is sent
                                 successfully, Mutant waits this amount (in
                                 milliseconds).  This option may not be
                                 necessary.
     Port -                      The Communications Port.  Although you can
                                 specify a number greater than 4, Mutant's
                                 internal routines only support 1-4.
     Baud Rate -                 This should be the maximum baud rate you
                                 can support.  Legal rates are 300, 600,
                                 1200, 2400, 4800, 9600, 19200, 38400,
                                 57600, and 115200.  If you use a non-legal
                                 rate, Mutant will round up to the next
                                 highest rate.  NOTE: you CAN NOT use 57600
                                 and 115200 with a FOSSIL driver.
     CTS/RTS -                   If this option is YES, Mutant will use the
                                 CTS/RTS hardware lines to control output.
                                 Usually only required by high speed
                                 modems. 
     Force Internal -            Yes - Mutant's internal communications
                                 routines are used.  These contain support
                                 for the NS16550AFN UART.  NOTE: Mutant
                                 will load these into high memory if space
                                 is available in order to save space.  At
                                 this time, these routines are disabled
                                 when Mutant shells out.
                                 No - Mutant tries to use a FOSSIL driver
                                 such as X00 or BNU. If not found, Mutant
                                 will use internal. FOSSIL drivers have
                                 been tested extensively and may work more
                                 reliably than Mutant's internal routines. 
                                 Also, most doors require a FOSSIL driver
                                 and you more than likely will need one.
     Dec. Compare -              This was put in for use on a ROLM phone
                                 system or for direct serial connections,
                                 which is not Hayes-compatiable.  If this
                                 is yes, Mutant will get characters until
                                 one has not been received within a short
                                 amount of time.  Otherwise, Mutant will
                                 wait until a carriage return or line feed
                                 is received from the modem.
     Locked Port -               If Yes, Mutant will always keep the port
                                 at the baud rate mentioned above.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 29

     Pass LR -                   If this is yes, Mutant will pass the
                                 locked rate to doors and transfer
                                 protocols instead of the connect rate.  If
                                 you use a locked rate, this probably
                                 should be YES.
     Conn. Delay -               After deteriming the connect baud rate,
                                 Mutant will delay this amount and then
                                 purge the input buffer.  This is primarily
                                 designed if you have a non-MNP modem.  I
                                 had trouble with people calling with their
                                 MNP modems to my non-MNP modem losing the
                                 product header and the "Can you display
                                 ANSI..." prompt.  The amount is in
                                 milliseconds. Around two seconds(2000)
                                 seems sufficent, and doesn't cause too
                                 much of a delay for the user.
     Connect Time -              This is the amount of time (in seconds)
                                 Mutant will wait for a recognizable
                                 "connect" string before returning to WFC.
     Diag. Enable -              If set to yes, Mutant will display modem
                                 responses to the user  window and write
                                 them to MODEM.LOG in the system files
                                 directory.  Also, the "A" key while
                                 waiting for caller performs a different
                                 function as mentioned above.  This is
                                 designed in case Mutant is having trouble
                                 communicating with your modem so that you
                                 can see what is happening.  If you see
                                 nothing, you've probably specified an
                                 incorrect port or baud rate.
     Reinit Time -               This specifies how long to wait after not
                                 receiving a call to re-initialize the
                                 modem in minutes.  By setting this to
                                 zero, Mutant will not reinit the modem
                                 except after callers or after failed
                                 connections.
     Local O.H. -                If set to Yes, Mutant will send the
                                 offhook string to the modem when logging
                                 on locally.
     Recv Size -                 Specifies the size of the receive buffer
                                 for Mutant's internal communications
                                 routines.  I recommend around 2k if you
                                 are using internal protocols.  This and
                                 "Tran Size" have no effect if you are
                                 using an external FOSSIL driver.
     Tran Size -                 Same as above, but for the transmit
                                 buffer.
     ARQ String -                This is what your modem appends to the
                                 connect string to indicate an "error-free"




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 30

                                 connection.  This is usually "/ARQ" or
                                 "/REL".
     Lock No ARQ -               Specifies to leave the port locked even if
                                 a non-error free connection is made.  Most
                                 low-end modems will require this.  By
                                 unlocking the port, user's will be able to
                                 better use "hot-keys".  This option has no
                                 effect if you do not specify the ARQ
                                 string.

     Page 4
     ------
     "Rate"    -                 The Baud Rate Mutant at which Mutant tries
                                 to set the port.  If you have locked the
                                 rate, Mutant does not set the rate
                                 returned.  However, this rate is used in
                                 calculations of estimated file transfer
                                 times and in the "B" SACS.
                                   If you set this to one, Mutant will
                                 assume that if it receives the
                                 corresponding connect code, that the
                                 connection failed.  So, you could use the
                                 "NO CARRIER" connect string to prevent
                                 Mutant from waiting the entire connect
                                 time if the modem aborts.
                                   If you set this to 2-9, Mutant will
                                 shellout and run "CONNECTx.*" from your
                                 path.  Useful to setup a "CONNECT FAX"
                                 string and create a "CONNECTx.BAT" file in
                                 the Mutant directory to run your receive
                                 fax software.
     "Connect Code"              This is actual code returned from the
                                 modem.  If "Dec Compare" is yes, you must
                                 specify "\xxx" where "xxx" is an ASCII
                                 code(0-255).  
     Page 5
     ------                                                
     Origin Line -               This defines the default origin line in
                                 Echo Mail/Net Mail bases.
     FIdoNet Address -           This defines your complete FIDO address.
     Strip IFNA Kludge lines -   This tells Mutant to not print lines
                                 beginning with CTRL-A when viewing
                                 messages.
     Strip Seen by lines -       This tells Mutant to not display SEEN-BY
                                 lines.  Usually this is "Yes", but if you
                                 are having duplicates, turn this off to
                                 view which node is sending the duplicate.
     Quote String -              This is what to insert before each line
                                 when replying to a message.  It can be up




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 31

                                 to 13 characters long and can only contain
                                 standard ASCII characters.  Using a '@'
                                 will insert the poster's initials in
                                 uppercase.  Using a '#' inserts them in
                                 lowercase.  NOTE: if Mutant finds the last
                                 character in this string (not spaces)
                                 within the first 16 bytes (includes color
                                 codes) of a line, Mutant will only add the
                                 last character in the string.  If you use
                                 " > " (or " @> ") you will be conforming
                                 to the FIDO quoting style as defined in
                                 FSC-0023.TXT.
     Reply Header -              When a user replies to a message not
                                 addressed to them, this header is added at
                                 the top of the message.  It can contain
                                 any standard ASCII character with the
                                 following control codes defined:
                                   @ - The name of the person to whom is
                                   addressed.
                                   # - The name of the person who posted
                                   the message.
                                   ` - Date in MM:DD:YY format.
                                   ~ - Time in HH:MM:SS format.
                                   ^ - Title of the message.
     Save default areas -        If set, Mutant will store the default
                                 message and file areas in the user record
                                 when the user logs off.  If you set this
                                 to no, or the user can't re-access the
                                 area when they logon, Mutant will search
                                 for the first accessible base.  If not
                                 found, it places the user in area zero.
     Bidirectional upload area - If you use bidirectional protocols, Mutant
                                 will need to know what area to place
                                 uploaded files during the download. If you
                                 specify 0-999, Mutant will place the
                                 uploaded files into that area.  Otherwise,
                                 Mutant will use the current area or the
                                 area in which the download is occuring.
     Check All Areas -           If you wish to check all file areas for a
                                 duplicate upload during a bidirectional
                                 transfer, set this to yes.
     Virus Scanner -             This is used in commands 459 and 460 to
                                 check file(s) for viruses.  You must use
                                 one that can scan an individual file, one
                                 with wildcards, and can scan
                                 subdirectories under the directory the
                                 file was specified.  McAfe's SCAN utility
                                 is a good example of such a program.  You
                                 should use "%1" in the CCC to specify the




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 32

                                 file or wildcarded files to check.
     Virus Scanner Errorlevel -  This is the errorlevel the scanner will
                                 return on either no viruses found or a
                                 virus has been found.  Entering a number
                                 greater than or equal to zero will mean
                                 that the scanner returns this number when
                                 no viruses are found.  A negative number
                                 (-256 is -0) means the scanner will return
                                 this number when a virus has been found. 
                                 Most programs return 0 to mean no viruses
                                 are found.

     Page 6
     ------
     Colors -                    These are the colors Mutant uses for
                                 certain items.  To edit a color, hit ENTER
                                 on the color and then use the cursor keys
                                 to select the color and ENTER when done.
     Page 7
     ------
     Password 1,2,3,4 -          These are password which you can define
                                 for your use via IP\# SACS.
     Display Password 1,2,3,4 -  You may wish to allow users to see the
                                 passwords via the output control codes. 
                                 However, some passwords you may wish to
                                 not be displayed.  Since Mutant allows OCC
                                 in messages, the user's could easily find
                                 out other passwords.  Therefore, by
                                 setting a password's display to No, the
                                 OCC will ignore requests to display the
                                 password.
     BBS password -              You may wish to "protect" your system from
                                 local usage by other people than yourself. 
                                 Therefore, by setting this to 1-4, Mutant
                                 will require you to entire the password in
                                 order to access commands in the WFC
                                 (including Quit!) and to see what a user
                                 is doing.  If you've set this option up,
                                 Mutant will display a window with Mutant
                                 BBS vx.xx, the date and time and a line
                                 with "PW:" to type the password.  The
                                 security starts imbetween each logon, when
                                 the BBS is run and after the screen saver
                                 timeout.  NOTE: you'll still be able to
                                 "play" with users while in doors since
                                 Mutant has no control over doors.  Also,
                                 if you use a mailer, Mutant will still
                                 allow "LOCAL" logons via the mailer.
     Detect Terminal Type -      If set to Yes, Mutant will attempt to




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 33

                                 automatically detect if the user has ANSI
                                 or Avatar terminal emulation.  If set to
                                 no, or the autodetect fails, Mutant will
                                 ask the user which type they have.
     Event Warning -             This is specified in minutes and indicates
                                 the time before an event that the user
                                 will be notified of the event.
     Sysop Chat Bar -            This controls how the "sysop" bar looks in
                                 full screen chat mode.  The format of this
                                 string is "xABCD".  'x' is a hex. digit. 
                                 Mutant will print 'A' out for 'x' times,
                                 followed by 'B', the sysop name, 'C' and
                                 then 'D' until the end of the screen.
     User Chat Bar -             The same as above, but applies to the
                                 user.
     Video Mode -                This the video mode Mutant will use.  You
                                 can specify zero to run in whatever mode
                                 you are in when Mutant start; -1 to run in
                                 80x43/50 lines on EGA/VGA systems; or
                                 whatever TEXT mode you may know for your
                                 video card.  For example, 84 is 132x43 on
                                 a Paradise VGA+ card.  NOTE: Mutant
                                 ignores this option when running under
                                 Desqview.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 34

     Event Editor
     ------------
          Mutant's event editor allows actions to performed at certain
     times or to restrict access to the BBS to certain callers.  When you
     enter the event editor, you'll be presented with the list of events
     defined. If no events have been previously defined, Mutant will create
     a default one.  

     'C' - Creates an event
     'D' - Duplicates the event
     'E' - Erases an event
     ESC - Quit event editor

     Up/Down - Move cursor
     PgUp/PgDn - Go back/forward a page (if necessary).
     ENTER - Takes you to the event edit screen shown below:

          +-------------------------------------+
     1.   |Name    :Pack it all                 |
     2.   |Run file:                            |
     3.   |Node    :0                           |
     4.   |When    :Weekly                      |
     5.   |On      :Sun,Mon,Tue,Wed,Thu,Fri,Sat |
     6.   |Time    :10:15                       |
     7.   |Type    :Mutant                      |
     8.   |Forced  :No                          |
     9.   |Active  :No                          |
     10.  |Last run:Fri Jan 03 08:57:00 1992    |
     11.  |Offhook :Yes                         |
     12.  |Down    :Yes                         |
          +-------------------------------------+

     1.   This is a name you give to the event so you can recognize it.
     2.   This is actually the optional data for the event and depends on
          the type event you select.
          "Mutant" -     "/NM" - Don't pack message base.
                         "/NS" - Don't pack signs, anns, resumes.
                         "/NE" - Don't pack extended file descs.
          "External" -   The errorlevel to exit the BBS with.
          "Shelled"-     The actual program name to shell out and run. If
                         this contains a drive and path, Mutant will change
                         to the directory and then run the specified
                         program.
          "Menu"   -     The menu code number followed by a space then the
                         optional data.
          "Logon"  -     "hh:mm SACS" where "hh:mm" are the end of the
                         event and "SACS" are the security requirements to
                         logon during this time.
     3.   By specifying a non-zero number, only the specified node will be




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 35

          allowed to run the event.  If not running multinode, leave set at
          zero(see multinode documentation for futher information).
     4.   This is when to run the event.  Choices are
          "Weekly" - Run every week.
          "Monthly"- Run once a month.
          "Yearly" - Run once a year.
          "At logoff"- When a user logs off the BBS.
          "Echo/Net Posted"-  If a netmail or echomail message was posted
                              execute event.
          "Int. Echo/Net Posted"-  Same as above, but Mutant has already
                                   tossed the messages in .MSG format.  Use
                                   this to run a program such as QMail or
                                   TossScan.
          "Every 'x' days" -  The event is run 'x' days from the time it
                              was last run.  It will run at the time
                              specified(or after, if the board is busy).
     5.   This depends on when type.
          "Weekly" -     Enter S,M,T,W,H,F or A to select the days of the
                         week to run the event. A selects all days.
          "Monthly"-     Enter the day of the month (1-31). NOTE: if the
                         current month does not contain this day, the event
                         will not run that month.
          "Yearly" -     Enter the month/day to run the event.
          "At Logoff" -  This toggles between the available choices.
                           "Always" - Always run the event at logoff.
                           "Posted" - User posted before logging off.
                           "Upload" - User uploaded something.
                           "Downloaded" - User downloaded something.
                           "Voted"  - User changed/entered a vote answer.
          "Echo/Net Posted"-  You can enter a group number or 256 for all
                              groups.  NOTE: Mutant uses "ECHOINFO.DAT"
                              (which it generates) to tell if this is true.
          "Every 'x' days"-   The number of days imbetween runs of the
                              event (1-366).
     6.   This is the time of day to run the event. This has no effect on
          "Echo/Net Posted" and "At logoff" events.  For "Logon" events,
          this specifies the time in which security checking is to begin.
     7.   This is the type of Event.
          "Mutant" -      This is when Mutant packs its data files such as
                          the message base.  Using data, you can tell
                          Mutant to NOT pack certain items.  However, if
                          your BBS gets good usage, you should pack every
                          item at least once a week (if not everyday).
          "External"-     Mutant completely exits with an error level. You
                          must be running Mutant with a batch file for this
                          to work.  Also, if you are using this type with
                          "At Logoff", Mutant will only run the first "At
                          Logoff" event it encounters.
          "Shelled" -     Mutant swaps itself out and runs a program. This




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 36

                          is preferred over "External" events.
          "Menu"    -     A single menu command can be run with this event
                          type. Useful for the sysop archive functions and
                          other menu commands that don't need any user
                          interaction.
          "Logon"   -     This prohibits use of the BBS to only certain
                          users.  The file "levent.*" will be displayed
                          before the user attempts to logon.  Then, it will
                          try to logon them on, if they do not meet the
                          security requirements, they will be logged off.
                          Also, no new users may be logged on at this time
                          except via the LOGON FRONT menu.
     8.   This specifies if the event is forced and does not apply to
          "Echo/Net Posted", "Logon" and "At logoff" events.  If an event
          is forced, Mutant will inform the user that an event is going to
          occur and at that time hang-up on the user.   If it is not
          forced, the event is run when a user logs off.
     9.   If this is "No", the event is completely ignored by the event
          processor.
     10.  This shows when the event was last run.  Hitting ENTER on it will
          reset the event to have never been run and may possibly be run
          once you leave the event editor.  Because of this, Mutant is able
          to run events which may have occured while the BBS was down.
     11.  If yes, Mutant will send the "Off Hook" string to the modem
          before running the event. NOTE: Mutant will hangup (or On Hook)
          the modem when the event is completed unless it is an external
          event.  If you use external events, you should include a hangup
          (such as ATH0|) in one of your init strings.
     12.  See Multinode documentation for information.  This has no effect
          on non-multinode BBS setups.

     When done editing the event, hit "ESC".

     Protocol Editor
     ---------------
          When you enter the protocol editor you will be presented with a
     list of defined protocols. If none exist, Mutant will create a default
     one.  'C' creates a protocol entry, 'E' erases one, ENTER to edit:

     Name -               This is the name of the protocol that will be
                          displayed in the protocol list shown to the user.
     Key -                This is the key the user must hit to select the
                          protocol.
     SACS -               This is the security requirements required to use
                          the protocol.  You could use this in conjunction
                          with B"string" SACS to check for error free
                          transmissons.
     Type -               This is the type of protocol.
                              "none"  - The protocol is not batch and can




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 37

                                        neither send nor receive the
                                        filename (such as Xmodem).
                              "batch" - The protocol can receive multiple
                                        files.  It can also send multiple
                                        files via the use of a list file. 
                                        A list file is a file which
                                        contains the list of files to be
                                        sent. Most batch protocols support
                                        this via the "@" parameter.
                              "Recv.."- This protocol type only
                                        sends/receives one file, but unlike
                                        "none", it will receive the
                                        filename/date/size, etc.  Ymodem is
                                        an example of this type.
                              "bidir."- This behaves exactly like "batch",
                                        but after a download, Mutant will
                                        look to see if any uploads have
                                        occured.  Use this with protocols
                                        such as HS/Link.
     Upload Command -     This is the command for the BBS to receive a
                          file. NOTE: do not define a download directory
                          since Mutant will change the default drive and
                          directory to the temporary directory when
                          receiving files.  "%1" in CCC is the filename, if
                          not batch and "%2" is the log filename specified
                          below.
     Download Command -   This is the command for the BBS to send a file.
                              "%1" -    The filename to transfer, or the
                                        filename of a list of files to
                                        transfer if protocol is batch.
                              "%2" -    The log filename.
     Efficency Modifier - This is a modifier you can use to adjust the
                          estimated time a download will take. Mutant
                          guesses at the time by multiplying the size of
                          the file by 10 and dividing by the baud rate and
                          multiplying by this modifier. If this does not
                          seem correct for a particular protocol, change
                          this modifier.  NOTE: if you use the "add to
                          batch queue" commands, the modifier will not be
                          used since a protocol has not yet been selected.
     Log File -           This is any sort of logfile that the protocol
                          generates when it transfers files.  Usually, an
                          environment variable must be set before the BBS
                          runs in order for the protocol to generate log
                          files. NOTE: Mutant can figure out transfer
                          status better by checking each file status of the
                          transfer in the log and not assume the entire
                          transfer was good or bad.  Also, to use
                          bidirectional protocols, it MUST support a log




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 38

                          file.
     Log length -         This is the length of a log entry in lines. 
                          NOTE: this should be less than 100 lines (which
                          most are) otherwise the BBS may crash.
     Filename line -      This is which line in the entry contains the name
                          of the file transfered. This is an offset from
                          the beginning of the entry, and therefore line
                          one would be a zero.
     Filename Field -     This is the field number of the filename within
                          the line.  A field is text following a space (or
                          spaces).  The first non-space in the line is
                          field 0.  Here's a quick of fields:

                              "   field0   field1 field2 field3"

     Download OK codes -  This is a list of codes separated by commas.  If
                          you specified a log file, it is the string that
                          will be found in the log file to indicate the
                          download went fine.  If you didn't specify a log
                          file, it is the errorlevels returned which means
                          ALL downloads went properly.  NOTE: these codes
                          are case sensitive, 'z' is not the same as 'Z'.
     Upload OK code -     This is a list of codes separated by commas.  If
                          you specified a log file, it is the string that
                          will be found in the log file to indicate the
                          upload went fine.  If you didn't specify a log
                          file, it is the errorlevels returned which means
                          ALL uploads went properly.
     OK line -            This is the line in which OK codes would be
                          found(0-?).
     OK Field -           This is the field in the line.(0-256).
     DL error codes -     This is the codelist which signifies that the
                          download didn't work.  If you are using
                          errolevels, Mutant will assume ALL downloads were
                          bad (hence the reason for logfiles).
     UL error code -      This is the codelist which signifies that the
                          upload didn't work.  If you are using errolevels,
                          Mutant will assume ALL uploads were bad (hence
                          the reason for logfiles).
     Error line -         The line in which error codes are found(0-?).
     Error Field -        The offset in the line.(1-256).
     Carrier Lost codes - This is a list of codes specifying the user hung-
                          up during a transfer.  This allows Mutant to tell
                          that someone hung-up just in case someone
                          connected before Mutant checks carrier again. 
                          The file is considered in error if this code is
                          found.
     Carrier Lost Line -  The line of the carrier lost code(0-?).
     Carrier Lost Field - The offset in the line.(1-256).




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 39

     CPS Line -           The line where the protocol saves the average CPS
                          for the file transfer.  Mutant only uses this to
                          show the user and for the log.
     CPS Field -          The field of the CPS.

     NOTE: When you create a protocol, Mutant sets-up the log paramters for
     DSZ/GSZ, except OK Codes which differ depending on the transfer type,
     and will set the logfile if you've used SET DSZLOG=xxx before the BBS
     ran.  As there seems to be a lack of documentation on the DSZ.LOG
     format, here are the ok result codes for DSZ/GSZ:

     Zmodem - Enter z,Z for both upload and download.
     Other  - Enter R,r for upload and S,s for download.

     Internal Protocols
     ------------------
          I hated the fact that you were required to have an external
     protocol driver.  Therefore, I have written simple Xmodem/Ymodem
     routines (Zmodem is forthcoming).  To use them, specify "INT:c" in the
     upload command of a protocol (leave the download blank for future
     expansion), where 'c' is one of the following:

     X - Xmodem -    This the original Xmodem with 128 byte blocks and a
                     single byte checksum of the block.
     C - Xmodem-CRC- This is Xmodem with a 16-bit CRC per block.  Block
                     size is still 128 bytes.
     K - Xmodem-1K - This is Xmodem with 1024 byte blocks.  Some older
                     programs call this Ymodem.
                     NOTE: when receiving the block size can be either 128
                     bytes or 1024 bytes since it is up to the sender. 
                     Also, when sending Mutant will use either checksums or
                     CRC's depending on what the receiver wants.
     Y - Ymodem    - This will send/receive one file with the filename,
                     size, and date.  The only program I know of which
                     supports this is Telemate.  Most support the one
                     below:
     B - Y.-batch  - This will send/receive multiple files including their
                     filename, size, and date.  
     G - Ymodem-G  - It is like Ymodem batch except that blocks are sent
                     without waiting for the receiver to acknowledge the
                     block.  If Mutant gets an error while receiving a
                     file, it will abort the rest of the entire transfer.
                     You should only allow use of this protocol when an
                     error-free (via MNP or V.42) connection is made.
          NOTE: if any Ymodem receive is receive is requested and the
          sender DOES NOT send the size and date, Mutant will abort the
          transfer.

     NOTE: Mutant will choose the correct batch type for you when it uses




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 40

     the protocol.  All you need to do is setup a name, a key, the SACS,
     and the INT:x in the upload command.

     Archive Editor
     --------------
          Mutant allows for some fairly extensive archive manipulations
     usually available on other BBSs only with external programs.  Of
     course, you must acquire the actual archive drivers such as
     PKZIP/LHARC/ARJ with enables Mutant to perform all its internal
     archive functions.
          When you enter the editor, you are presented with a list of
     available archives. 'C' creates an archive entry, 'E' erases the entry
     and ENTER edits the entry.

          +------------------------------------------+
     1.   |Name              :Pkzip                  |
     2.   |Extension         :ZIP                    |
     3.   |Unpack            :pkunzip -d %1 %2       |
     4.   |Pack              :pkzip -rp %1 %2        |
     5.   |View              :\0                     |
     6.   |Add Comment       :pkzip -z %1            |
     7.   |Comment           :Downloaded from my BBS |
     8.   |Validity          :pkunzip -t %1          |
     9.   |Success           :0                      |
     10.  |Include           :                       |
     11.  |Packs Subdirs     :Yes                    |
     12.  |Preferred         :Yes                    |
     13.  |SFX signature     :PK#3##4#               |
     14.  |SFX offset        :0                      |
     15.  |Offs from end exe :Yes                    |
          +------------------------------------------+

     1.   This is the name of the archive.
     2.   This is the file extension the archive generates.
     3.   This is the command to unpack an archive.  The "%1" will specify
          the archive filename and the "%2" will specify where the unpack
          will take place.  These are replaced by the actual names when
          Mutant runs the archive utility.  NOTE: the "@2" will have a
          terminating "\" as required by LHARC and which PKUNZIP will
          allow.
          NOTE: You should put in an automatic overwrite or ignore
          duplicate files such as "-o" in this command line.  More than
          likely this will not be necessary, but you don't want it sitting
          there saying "xxx exists, overwrite?".
     4.   This is the command to pack an archive. The "%1" represents the
          archive name and the "%2" represents what to pack.  The archive
          utility must be able to accept "*.*" for the "@2" paramter.  In
          order to avoid packing MTNTSWAP.SWP, you should not specify a
          command which would pack hidden files. NOTE: In order to get




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 41

          around a "bug" in ARJ, Mutant changes to the directory of the
          files to be packed and only passes "filename.ext" or "*.*".  This
          allows ARJ files to contain relative pathnames like ZIP has. It
          is a shame the ARJ author would include "mtntemp\filename" in hte
          ARJ when passed "c:\mtntemp\filename".
     5.   This is the command to view the archive.  If this doesn't begin
          with a "\", Mutant will redirect standard output to a file and
          execute the archive utility and then dump the file.  However, if
          you specify a "\", you can use Mutant's limited internal archive
          viewers.
          "\0" - ZIP (display's local directory)
          "\1" - ARC or PAK
          "\2" - LZH (I found that this does not work, and have disabled
                     the feature until further notice)
          "\4" - ARJ (doesn't display ARJ's header)
     6.   This is the command used to add an archive comment.  NOTE: if
          this begins with a '*', then Mutant will pass "%2" the filename
          of the comment.  Otherwise, Mutant will use input redirection. 
          So far, only ARJ and ZIP support comments.
          examples:  pkzip -z %1
                     *arj c %1 -z%2
     7.   This is the comment to add or a filename of the comment to add. 
          NOTE: the file should only at most be 25 lines, so you can create
          a screen someplace and store it.  The filename must contain the
          drive,path and filename of the file.  If the extension begins
          with a '?', the default file area number will be used (I.E.
          c:\comments\zipc.? in area one would become c:\comments\zipc.1).
     8.   This is the command used to make sure the archive is not
          corrupted.  When an archive is uploaded, Mutant will use this
          command to check the file.  If it fails, Mutant will write an
          ERRORLOG entry.  Eventually, Mutant may support a scratch file
          area in which bad files would be placed.
     9.   This is the errorlevel code the utility returns upon success.
          Most return a zero.  Putting a "-1" here will force the BBS to
          assume that any errorlevel is a success.
     10.  This is the full pathname of a file to include when the "add
          include files" command is executed.  If the extension is "?xxx"
          where "xxx" is the original extension, Mutant will look for the
          file under the area number and rename it to "xxx", run the
          archive utility, and then rename it back.  Thus, if you specify
          "c:\includes\bbsad.?exe" and are in area 1, Mutant will look for
          "c:\includes\bbsad.1", rename it to "c:\include\bbsad.exe",
          archive it, and then rename it back.
     11.  This specifies that archive is capable of archiving
          subdirectories AND dearchiving into subdirectories. ZIP, LZH and
          ARJ should have this option set.  When Mutant tries to convert
          from one archive format to another, if the original archive
          contained subdirectories and the new one can't contain
          subdirectories, Mutant will recursively go through the




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 42

          subdirectories and add the files.  This way all files will be
          archived.
     12.  When automatically converting uploaded files,  Mutant will
          convert to the first archive it finds with this set to Yes if the
          default extension for the file area is not an archive type.
     13.  This is a text string(case sensitive) to look for within an EXE
          to see if it is a self-extracting archive of this archive type. 
          The string can contain "#number#" to represent a non-typable
          character such as #3# for CTRL-C.
     14.  This is where Mutant will look for the "SFX signature" in the
          file.  It is either the start of the file or the offset from the
          end of the actual EXE code according to the EXE header.
     15.  If set to Yes,  Mutant will look at the EXE header and determine
          the actual end of the EXE and the SFX offset will then be from
          the end of the EXE.  Most archive utilities write the extract
          code to disk and then append the archive.  Then when you run the
          SFX file, DOS loads in and runs the extract code.  The extract
          code then opens the EXE as if it were a normal data file and
          extracts from the archive itself.

     Message and file area editing
     -----------------------------
          When you hit 'B' or 'F' at the WFC, you will be displayed a list
     of message areas or file areas.  You can do the following on this
     screen:

     1.   Use the cursor keys (Up, Down, Left, Right, PgUp, PgDn, Home,
          End) to move around.

     2.   Hit ENTER to edit the area (see the appropriate menu command code
          below for an explanation of the edit fields).
     3.   Hit 'M' to move the area.  After hitting 'M', move to a blank
          area and hit ENTER.  You should use this command rather than
          renaming files in DOS since this updates all information
          necessary to access the area(s).
     4.   Hit SPACE to select a default configuration for creating a new
          area.  When you hit SPACE, you will be shown a similiar screen on
          which you can do the following:

              A.     Use the cursor keys to move around.
              B.     Hit ENTER to select a default configuration.
              C.     Hit SPACE to edit a default configuration.
              D.     Hit DELete to delete a configuration.
              E.     Hit ESC to just edit the area using Mutant's internal
                     defaults.

          Defaults are the same as configuring an area.  This just allows
          you to setup parameters without selecting them for every base. 
          If you have 300 or so echo areas, you certainly don't want to




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 43

          select Echo Status, Public/Private status, and Strip flags for
          all 300 areas!  Although you can select defaults for file areas,
          it isn't advisable since you have to change the path.

     5.   Hit DELete to delete the base.  You should use this rather than
          deleting files in DOS since this deletes ALL information
          pertaining to the base including lastread pointers and file
          attaches for message bases or file listings and extended
          descriptions for file areas.
     6.   Hit ESC when done.  NOTE: Mutant rebuilds ECHOINFO.DAT when you
          quit in case you deleted or modified echo areas.

     Message and file groups
     -----------------------
          Mutant can handle 256 message groups and 256 file groups.  Every
     area can be a member of four groups.  Groups serve as a way to put
     similiar areas together (such as Local messages, Fido messages, Hard
     drive files or CD-ROM files) or a quick way to limit access to areas
     within a group (for a user group SIG, etc.).
          Currently, you may only edit the groups at the WFC screen.  When
     you enter the group editor, you will be shown a list of groups.  Use
     the cursor keys to move around and ENTER to edit a group and ESC to
     exit.
          There are two editing options for each group:

              Name -      The name of the group (30 characters).  If this
                          is blank, the group is ignored.
              SACS -      The access to the group.  If a user can not
                          access any groups when they logon, they will be
                          logged off.

     Menu Editor
     -----------
          The Menu Editor is probably where you will spend most of your
     time when setting up a new BBS that's different from the sample files. 
     Along with with it and PROMPTS.TXT, you can almost completely change
     the way the board looks.
          The Menu Editor is divided into four sections - the menu
     selection, the menu summary, command editor, and options editor. 
     When, you come enter the menu editor you will be in the menu selection
     similiar to as shown below(except the menu names are displayed in four
     columns):

     +--------------------------------------------------------+
     |ARCHIVE             DEFAULTS            DOORS           |
     |EMAIL               FILE SPONSOR        FILE SYSOP      |   
     |FILE TRANSFER       GLOBAL MENU         LOGOFF          |   
     |LOGON FRONT         MAINMENU            MAINSYSOP       |
     |MESSAGE             MESSAGE SYSOP       NEW USER        |




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 44

     |NEWS STUFF          SYSINFO             TIME BANK       |    
     |TOP                 USER EDITOR         TVOTE SYSOP     |
     |VOTING              WAITING FOR CALLER                  |
     |                                                        |
     |Command (C,D,E,F,I,R,X,ENT,ESC):                        |
     +--------------------------------------------------------+

     The keys available on this screen area:
     "C" - Create a Menu
          NOTE: There are five menus which should be defined.

          "TOP"-The first menu run upon successful login. Mutant will
          lockup if it can't find this menu.
          "NEW USER"-This is called whenever someone tries to become a new
          user.  This should contain user editing command codes as in the
          sample files.
          "WAITING FOR CALLER"-This is called when you press "W" while
          waiting for caller. It can contain commands that don't require a
          user to be logged on.
          "LOGON FRONT"-If defined, a remote user will be thrown into this
          menu after they've selected ANSI and before they actually logon. 
          It's useful for an extra security front end.
          "GLOBAL MENU"-Defines commands which can be used by other menus
          if they have "Use General" on(see below).
          "USER EDITOR"-This is called when you use the edit user at the
          read message prompt.
     "D"- Duplicate a menu
     "E"- Erase a menu
     "F"- Goto options editor
     "I"- Import a menu from disk
     "R"- Rename a menu
     "X"- Export a menu to disk
          The Import and Export commands allow sysops to share menus.
          Mutant will store all the information pertaining to the menu
          including the original menu name in the file.
     ENTER - Goto menu summary
     Cursor keys- move
     ESC- Exit - When you exit the menu editor, it will ask you if you want
          to pack menus.  Mutant stores all the menus in two files -
          MENUS.IDX and MENUS.DTA.  When you edit the commands in the menu,
          it is just written to the end of MENUS.DTA leaving the old menu
          data intact.  Saying yes will remove the old menu data AND sort
          the list alphabetically.  If you have a slow computer or are
          doing frequent menu editing, you can save time by saying no.


     +-Options Editor-----------+
     |Use General:Yes           |
     |Input type :None          |




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 45

     |No cols    :1             |
     +--------------------------+

     The options editor is just three options for the menu.

     The first, "Use General", should really be called "Use Global" since
     it means if you want the menu to use the Global Menu.  If "Yes", when
     the menu is loaded, the Global Menu is added to the end of the menu. 
     Useful for creating keystrokes used everywhere such as a quick logoff.

     The second, "Input Type", forces an input type.  Usually, you'll want
     to force "Full line" input if you use many multiple character "keys"
     in the menu to avoid hitting "/".

     The Third, "No Cols", defines the number of columns the generic menu
     should contain.  This only affects non-reserved keys, not the reserved
     ones.  If the "help men" for an item won't fit, Mutant will try to
     backspace until it does fit.

                                                                  
     +-Menu Summary----------------------------------------------+ 
     |Key     Com # Data                                         | 
     |------- ----- ------------------------                     | 
     |Q       22    (null)                                       | 
     |/AUTO\  9     xferbat                                      | 
     |/AUTO\  10    (null)                                       | 
     |        11    (null)                                       | 
     |/AUTO\  0     (^\t mins left) Batch Que                    | 
     |V       428   (null)                                       | 
     |+       427   (null)                                       | 
     |-       429   (null)                                       | 
     |D       407   BATCH                                        | 
     |L       403   batch list header,batch                      | 
     |                                                           | 
     |                                                           | 
     |CRSR-move,ENT-Edit,INS-add before,END-Add at end,DEL-Delete| 
     +-----------------------------------------------------------+ 


          This screen gives a small summary of the commands in the menu.
     The key, command number and data are shown in two columns. The keys
     available are:
     Up  - Move up a line
     Down- Move down a line
     Left- Move to left column
     Rght- Move to right column
     PgUp- Up one page
     PgDn- Down one Page
     Ins - Add a command before the current command




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 46

     Del - Delete the current command
     ESC - Exits back to the menu selection.
     End -  Start add commands at the end of the list.  This will continue
            until you hit ESC on the first line of the edit command screen.
     Alt-A -  This will prompt you for three colors.  The first is the
              color of parentheses.  The second will be the color the key
              is printed in. The third is the menu description of the key. 
              This will go through the menu and add the color codes,
              parentheses and key to the "help men" item if it isn't
              "(null)."
     CTRL-Y - Deletes the command, but remembers it for undeletion.
     CTRL-U - Undeletes a command and places it AFTER the current command.

          +-Command Editor------------------------+
     1.   |Command #:21                           |
     2.   |Key      :%                            |
     3.   |Data     :message sysop                |
     4.   |Access   :ss                           |
     5.   |Help men :^\#3(^\#15%^\#3) ^\#14Sysop M|
          +---------------------------------------+

     1.   This is the menu command code.  All menu codes are defined later
          on in this document.  NOTE: if you enter a 9 in this field and
          have not entered data yet, Mutant will strip spaces out of the
          menu name and cut the name off at 8 characters and put this into
          the data field. (Gives a good suggestion for the help menu name).
     2.   This defines a string or character which the user will have to
          type in order to access the command.  If it is more than one
          character and the user has one key input on, they will have to
          type a "/" to access the command.  Also, certain "keys" are
          reserved:
          "/1ST\"  - After a menu is loaded, all commands with these keys
                     are executed.  NOTE: command numbers 0 and 20-29 can
                     not be used as a "/1ST\" key, except 22, which can be
                     used to return to the BBS from the NEW USER menu and
                     LOGON FRONT menus.
          "/AUTO\" - These commands are executed each time Mutant processes
                     a menu.  Menus are processed after "/1ST\" keys and
                     after the user's entry has been completely processed. 
                     You normally use these with command codes 0,9, and 10.
                     If a menu only contains "/AUTO\" commands, no user
                     input is required.
          "/ALL\"  - These are executed if the user's entry caused another
                     command to be executed.  This allows different keys to
                     perform different initial actions, but then perform
                     similar actions as Mutant continues to link the
                     command.
          "/INV\"  - This is executed if the user's entry did not cause any
                     other command to be executed before this is




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 47

                     encountered. Use this if you don't want the BBS
                     printing out "Invalid Command".
          "/#\"    - Specifying this along with a change file/message area
                     command allows the user to type a number at the prompt
                     in order to change areas.  If you specify a change
                     file/message group, the user can type "/#" to change
                     groups.
          If the key is blank, the user just has to hit ENTER at the
          prompt.
     3.   This is any data needed by the command. NOTE: "(null)" means that
          there is no data entered so far for the command.  
     4.   This defines the SACS needed to use the command. If "(null)",
          this command is always valid.
     5.   This defines the string to be printed when Mutant generates a
          generic menu for the menu.  Generic menus are used when you do
          not use a command 9 to define a help screen for the menu. NOTE:
          when printing a generic menu, Mutant prints "/1ST\" and "/AUTO\"
          help men strings first, followed by the keys' help men strings
          and then "/ALL\" and "/INV\". This allows for header, body and
          footer texts.

     Pressing ALT-E when you have access to the Full screen editor or are
     not logged on and the data field is not more than 8 characters, Mutant
     will try to edit data.ASC in the screens directory.

     Press ESC when done editing the command.

     How Mutant Processes Menus
     --------------------------
     1.   The Menu is loaded from disk
     2.   Each "/1ST\" commands are executed if their access is true.
     3.   The board goes through the entire menu and looks at each key. If
          it is "/AUTO\" and the access is true, the command is executed. 
          However, if the key is not one of the reserved keys or is "/#\",
          Mutant determines if the user should be "aware" of the key (I.E.
          can enter it).
     4.   After the entire menu has been processed by step 3, user input is
          accepted.
     5.   Mutant then goes through the entire menu starting at the first
          command you entered.
     6.   If the key does not match, it goes on to the next command.  If it
          does match, the access is checked and if it is true, it is
          exececuted.
     7.   Now, as it is going through the menu, Mutant remembers if it has
          executed a command or not.  If it hasn't and encounters a "/INV\"
          command, it's access is checked and executed if possible. If it
          was executed, no further "/INV\" commands are valid. NOTE: If a
          "/INV\" key is one of the first commands in the menu, it will be
          executed since Mutant has been unable to execute any other




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 48

          commands yet.
     8.   If Mutant encounters a "/ALL\" key and a command has been
          executed, this is checked and executed.  
     9.   Steps 6-8 are repeated until the end of the menu is reached.  The
          only exceptions are command types 23 and 25.  Command type 23
          causes the search to end.  Command 25 can cause the search to
          skip around within the menu via labels defined with command 24.
     10.  At the end of the search, if no command has been executed, Mutant
          prints the "Invalid Command" prompt.
     11.  Finally, if no command has caused the loading of a new menu, the
          process repeats to step 3.  Otherwise, back to step 1.
     12.  Final note: I tried to explain this as best as possible giving
          the exact algorithm the code uses.  If you still don't understand
          it, look at the sample menus and play around.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 49

                             +--------------------+
                             | Menu Command Codes | 
                             +--------------------+ 

          The menu codes are listed below.  If data is not given, leave it
     set to "(null)" in the menu editor. Any thing in brackets is optional.
     Also, do include the quote marks when typing in the data.  The "I.E."
     gives a limited example of the data format in some instances. If I
     specify a data item in uppercase, make sure you type it in uppercase.


     Code:0
     Data:text string
     Desc:Define Prompt
          This defines the prompt for the menu. The prompt can contain
          output control codes and "^\K" which will print the list of
          available keys separated by commas.  NOTE: Any new menu will
          inherit the prompt of the previous menu.
     I.E.:^\n^\$1Main Menu Command(^\#15^\K^\$1):

     Code:1
     Data:filespec [/T=x][,filespec2 [/T=x]...[/ALL]]
     Desc:Print text screen
          This allows you to print a text screen or multiple text screens. 
          If you specify more than one screen and don't use the "/ALL"
          parameter, Mutant will pick a screen to use.  The filespec can
          contain a directory or #:\ where '#' is 0-5:
               0 - screens directory
               1 - system files
               2 - message base
               3 - file transfer
               4 - nodelist
               5 - temporary directory

          The "/T=x" parameter defines the "type" of screen, where 'x' is:
          0-   Screen either contains a Mutant screen extension (.ASC,
               .ANS, .AVT, etc.) or Mutant can try and pick a correct one.
          1- Force .ASC extension even if filespec doesn't end in .ASC
          2- Force .ANS, Mutant will not print ANSI/Avatar screens
             correctly if it thinks it's an ASCII screen.
          3- reserved
          4- Force .LST, if the filespec doesn't end in .LST, Mutant will
             still treat the file as a List file.
          5- Force .AVT.
          6- Mutant can have up to 1000 conferences in its message base.
             Each message base can have a list of its own commands. By
             specifing command 1 to look for type 7 screen, you can print
             out any screens detailed particularly to a certain conference.
             These specific screen should be named marea(# of




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 50

             conference).(ASC, ANS etc.). For instance, say I want a
             certain ansi screen to appear when a user enter conference #4.
             I would name the file "marea4.ans" and type at the data prompt
             of command 1: "/T=6" 
          7- Same command as 6, except it applies to screens you use file
             transfer areas. These screens should be named according to the
             following format: "farea(# of file area).(ASC, ANS, etc.)
             NOTE: Types 6 and 7 must be found in the screens directory.

          Adding 8 to the value will tell Mutant to not allow the user to
          abort viewing the screen (except by hanging up!).

          Adding 16 to the value will tell Mutant to wait for the user to
          press enter after the screen is displayed.

          Adding 32 to the value will not write an error to the errorlog if
          the screen is not found.  Good for viewing the errorlog which may
          or may not exist.

          Adding 64 to the value will disable Output control codes before
          the screen is printed.

     I.E.:1:\errorlog /T=112 (16+32+64)
          logon1,logon2,logon3
          part1,part2 /ALL
          c:\doc\mustread.doc /T=9 (1+8)

     Code:2
     Desc:Prints all commands accessible in this menu.
          Similiar to the "^\K" in define prompt, but prints each command
          on its own line. Useful in case you don't have some commands in
          the help screen.

     Code:3
     Data:prompt name
     Desc:Print a prompt from PROMPTS.TXT

     Code:5
     Data:CCC
     Desc:Run a program and display its output
          The file "Exec name" is run and output is redirected to a text
          file.  When the program finishes executing, the text file is
          displayed. Useful for Today-PC or some sort of quotes program.

     Code:6
     Data:[/CHECK,][main bul][,[sub bul][,prompt]]
     Desc:Display Bulletins
          "main bul" is an eight character filename which will be displayed
          when this command is first executed and when the user presses '?'




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 51

          in response to enter the bulletin. If this is blank, "bulletin"
          is the default.
          "sub bul" is the 1-7 character filename which will be displayed
          depending on what the user enters. The format of these filenames
          is "subbulxxx.*" where "xxx" is the number the user enters. "xxx"
          can be 1-9999 depending on how long the "sub bul" string is.
          "bullet" is the default.
          "prompt" is the prompt that is displayed before input is
          expected.  If this is missing, only 9 bulletins are allowed and
          the user does not have to press ENTER to enter their selection.
          "/CHECK" specifies that you wish to see if any bulletins have
          been changed since the user was last on.  You must define the
          main bul,sub bul, and prompt.  If the board finds bulletins that
          have been updated, it prints out the prompt and then the numbers
          which were updated. Also, the "last" SACS is set if some
          bulletins have been updated.

          For example:
          bulletin,bulle,Enter number (1-999) CR-abort ?-list:
          will display bulletin, then expect a number between 1 and 999.
          Say the user enters, "56", the file bulle56.* is displayed.

          NOTE: if a bulletin is not found, the user is informed that it is
          not found, but no errorlog entry is made.

     Code:8
     Data:[0]
     Desc:Guest New User
          You may call this while not processing the "LOGON FRONT" menu (or
          menus it has called, including logging in a new user).  If called
          from within the New User menu, this will mark the user as a
          guest.  If called elsewhere (and this has been called before),
          the user will be unmarked as a guest and added to the user
          record.  If you passed a "0", during the first call, the BBS will
          run the "NEW USER" menu.  If not, the necessary steps to add the
          user to the user record will be taken.  You would use the "0" to
          abort the New user menu before the user is asked anything. 
          Otherwise, just leave it null.  This allows users to view "system
          rules" and then decide whether to logon or not.  The "NEW USER-G"
          menu in the sample files shows how to use this.

     Code:9
     Data:same as Code 1
     Desc:Defines a help screen for the current menu
          See Code 1 for data information. NOTE: if you do not use one of
          these in the menu, when a command 10 or 11 is used, Mutant will
          print out the generic help menus.  Also note, some commands
          undefine help screeens for the menu.  So, it is best to use this
          in a "/AUTO\" key.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 52

     Code:10
     Data:[N]
     Desc:Prints menu's help screens only if
          1) The user doesn't have expert mode on.
          2) A command 10 or 11 wasn't executed last.

          If you haven't defined any screens with code 9, Mutant will
          attempt to display a generic menu (via the help men text). 
          Normally, Mutant will allow the user to abort this menu by
          pressing a key.  However, if you do not wish this, you may
          specify "N" for the optional data to tell Mutant to ignore the
          keystrokes.

     Code:11
     Data:[N]
     Desc:Prints menu's help screens
          See code 10 for an explanation of the data.

     Code:12
     Desc:"logon" a user.
          Use this only in the "LOGON FRONT" menu.  This will logon a user
          and ask for their password.  If the user can be logged on and
          enters a valid password, the "L" SACS are set to true and you can
          use "user" commands.  If the user can not be logged on or enters
          an invalid password, the "L" SACS are set to false.

     Code:13
     Desc:Access the Protocol Editor
          NOTE: as in all editors, these can be used from remote, but
          require ANSI.  Doorway mode is also required for all the keys to
          work.

     Code:14
     Data:text string
     Desc:Write string to LOG.ASC.
          This allows you to state that certain things have happened that
          Mutant doesn't normally track of.  Mutant automatically adds the
          date, time, node, and username of the user online, if not blank.

     Code:15
     Desc:Access the Event Editor

     Code:16
     Desc:Access the Configuration Editor

     Code:17
     Desc:Access the Menu Editor
          NOTE: if you edit the current menu, you will have to go to
          another menu and come back since Mutant does not reload the menu




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 53

          after editing.

     Code:18
     Desc:Get new user
          You can only use this in the "LOGON FRONT" menu or if the current
          user online is a "guest". This will call the "NEW USER" menu to
          get the new user information.

     Code:19
     Data:[name]
     Desc:Add a line to a quotes file.
          If you specify "name", Mutant will use "SYSFILES\name.TXT". 
          Otherwise, it will use "SYSFILES\QUOTES.TXT".  I recommend adding
          quotes via this command rather than a text editor since text
          editors may add an End-of-File character which Mutant will not
          like.  The maximum number of quotes that can be contained within
          a file is 32767.

     Change Menu Commands
     --------------------
     Code:20
     Data:menuname
     Desc:Goto menu

     Code:21
     Data:menuname
     Desc:Gosub Menu

     Code:22
     Desc:Return from Gosub
          Once you've used a 21 to gosub to a menu, using a 22 will return
          to the previous menu.  You must use this(or logoff) to resume
          normal operations from the "LOGON FRONT", "NEW USER", and
          "WAITING FOR CALLER" menus since the board "gosubs" to these
          menus to run them.

     Code:23
     Desc:Abort command parsing
          If the board executes one of these commands when processing the
          user's entry, processing will stop.

     Code:24
     Data:label name
     Desc:Defines a label for use in Code 25

     Code:25
     Data:label name
     Desc:Continue menu processing from "label name"
          This allows the menu to skip around instead of its linear command




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 54

          processing.
          NOTE: With proper use of the "L" SACS, you really should not need
          to use 23-25.

     Code:26
     Data:menuname
     Desc:Goto menu and purge return stack

     Miscellaneous Commands
     ----------------------
     Code:30
     Data:[/N]
     Desc:Logoff
          Hang-up user and resets the board. This is the only way to log
          off a user normally.  To print a message to the user before they
          log off, you must use a code 1 and command linking(see the sample
          logoff menu for an example).
          If you specify, "/N", the user is not written to disk during the
          logoff.  This allows you to check certain items such as Baud Rate
          in the TOP menu and then log them off without the BBS adding to
          their number of calls and time used.

     Code:31
     Data:[/Px][/I]
     Desc:Page the sysop
          /I  -     Overides sysop available and pages the sysop.
          /Px -     If the sysop doesn't answer the page or is unavailable,
                    the user is asked if they want to send post a message.
                    This will be sent to the sysop in area 'x', where 0 is
                    the default for 'x'.
          If CHATSCRN.AVT is found in the screens directory, the user is
          prompted for a reason to chat and CHATSCRN.AVT is displayed in
          window along with that chat reason.

     Code:33
     Data:filename [message]
     Desc:Leave a note
          The user is thrown into the message editors and can type a
          message.  The file "filename" is opened and "message" is put into
          the file followed by the user's message. You can use a path for
          "filename" or "#:\filename" to store in one of Mutant's
          directories.   You can use OCC in "message" except D, W, K, P, f,
          l, @, and x.  # and $ translate to Mutant's CTRL-P color format
          codes.
     I.E.: 0:\nextuser.asc Message from ^\w^\n

     Code:35
     Data:color#
     Desc:Set current color to system color#




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 55

          Kind of useless since you can use the "^\$x" output control code
          in text strings.

     Code:36
     Data:string
     Desc:Prints string to the terminal window

     Code:38
     Desc:Wait prompt - User is asked to press ENTER.

     Code:39
     Data:[0|1]
     Desc:Change chat available status
          If you specify zero, the status is turned off. If you specify a
          one, the status is turned on.  Otherwise, the status is toggled.
          By using this in a couple of events, you could setup what other
          BBS programs call chat hours.

     System Information Commands
     ---------------------------
     Code:40
     Data:type number
     Desc:View top user stats
          type is:
             0 - uploaders
             1 - downloaders
             2 - posters
             3 - callers
          number is the top amount.
          For example, 0 10 is top ten uploaders.

     Code:44
     Desc:View callers today

     Code:45
     Desc:Search/list user list
          The user online is saved, and every user listed is copied to the
          online user such that you can use "^\u" output codes to print the
          user list.

     Code:46
     Desc:BBS Version info

     Code:47
     Desc:Print current version number

     Code:48
     Desc:View Usage Graph
          The Usage Graph is time used during that hour/total time used.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 56

     Message Base Commands
     ---------------------
     Code:100
     Data:[/A#][/T"name"][/F][/S"subject"][/C][/N][/Ppath]
     Desc:Post message on a message base
          If you specify "/A", the message is posted on the specifed
          message base. If it isn't specified, the default message is used.
          "/T"      specifies to whom the message is sent.  You can use
                    "Sysop" to send to the sysop defined in System Config.
                    If you do not specify a name (/T""), Mutant will send
                    the message to the user that is on-line.  
          "/F"      won't allow the user to abort the message.  Useful in
                    new user logon.
          "/S"      Predefine a subject for the message, such as "New user
                    message"
          "/C"      Don't allow the user to change anything.  You may wish
                    to use this in conjunction with /T and /S so that the
                    user isn't allowed to change the to and subject fields.
          "/N"      Don't display mail announcments.
          "/P"      This auto-post the specified message into the message
                    base.  You must use this with at least "/T".  This is
                    useful to post a new-user a message describing the
                    board, etc.

          When posting a message, the title will be asked for followed by
          the from.  Hitting Space will toggle between available anonymous
          strings/options.  The To field can contain some options:

               "username" -   Send to user name.
               "?"         -  List users
               "Sysop"    -   Send to name defined in system config.
               "\username"-   Send to multiple users if user meets copy
                              SACS. After the message is entered, the user
                              can enter further names to send the message
                              to.
               "\\sacs"   -   Send to users who meet the "sacs".
          NOTE: The To field determines a User and the correct
          capitalization of the name and prints it out. This includes the
          "\" and "\\" commands in which case the first user the message is
          being sent to is displayed.
          If net mail, the user is asked for the destination node. Next, if
          possible, the user is asked if they wish the message to be
          private.

     Code:101
     Data:[/A=#][/E=]
     Desc:Edit message base configuration
          To create a message base, just change to a non-existent base (0-
          999) and then use these commands to edit the information.  To




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 57

          delete a message base, go into the message base directory and
          delete "*.###", where "###" is the number.  This editor is full
          screen and therefore requires ANSI to be used from remote.
          "/A=" specifies a specific area to edit.
          "/E=a,b,c-d,e,..." tells the editor to not allow editing of
          certain fields. You can also specify "/E=V..." which just
          displays the fields and exits.

          1.  Name           - name of the message base
          2.  Max Age        - Max age of messages in days. Messages older
                               than this will be deleted when a Mutant
                               event is run.
          3.  Max Msgs       - Defines maximum number of messages allowed. 
                               Mutant will keep this number -10 if possible
                               during a pack event.
          4.  Ann Msg        - Define the message number used by the
                               "/SHOWANN" option in message reading. This
                               is a message that is shown (minus the
                               message header) when the user starts reading
                               the base and the "/SHOWANN" paramter is
                               used.  Non-sponsors of the base will not be
                               able to see this message within the read
                               message commands.
          5.  Reset/Num      - All messages are deleted.
          6.  Anon Type      - Change anontype
                                  "None" - No anonymous allowed
                                  "Anon 1 Only" - Allow use of Anon 1
                                  string
                                  "Anon 1&2 Only" - Allow use of Anon 1&2
                                  only
                                  "Chgd Alias" - User can select from using
                                  Anon 1 (if not blank), Anon 2 (if not
                                  blank) and Another Alias (allows them
                                  type in anything for their name).
                                  "Forced Anon 1" - All messages are posted
                                  as anon 1 string.
                                  "Forced change alias" - Force users to
                                  enter a new alias for the message.
                               NOTE: for Chgd Alias and below, sponsors of
                               the base can select from the anon types and
                               the sponsor alias.
          7.  Echo Type      - None - No echomail/netmail.
                               Echo Mail - Fido compatiable Echomail. 
                               Mutant will add tear and origin lines.
                               Net Mail - Fido Netmail.
                               Non-Fido Echo - Like Echo Mail, except
                               Mutant will not add tear or origin line. 
                               Also, messages posted in these bases are not
                               shown in ECHOINFO.DAT.  This is primarily




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 58

                               designed for QWK networks.
          8.  Public/Private - "Public and Private" - can be both.
                               "Public Only" - No one can post privately
                               (use for National Echos)
                               "Private Only" - Good for E-mail.
                               "To all" - Messages are posted publicly to
                               "All".  This is primarily for Usenet news
                               groups which don't seem to have a "To"
                               field.
          9.  Real Names     - Force the realnames to be used in the base.
                               (required for national net/echo mail).  This
                               is really only applicable if you are
                               allowing alias' on your BBS.
          10. Delete Recvd   - This specifies how many days since a message
                               has been received that it will be deleted
                               during a Mutant event.
          11. Def. Reply     - Default reply - "All" or "To Sender" user.
                               NOTE: user can still change TO field.
          12. Anon1        -   The Anon 1 string - Just a string such as
                               "User wanting Advice".
          13. Anon2/NL name  - The Anon 2 string - Like Anon 1 but
                               originally created in case Anon 1 is gender
                               specific.  If you are using Netmail, you can
                               specify a domain such as Fidonet or Alternet
                               while will allow the nodelist to be used.
          14. Sponsor Alias  - Define an alternate alias for use by
                               sponsors of the message base
          15. To Sponsor     - To whom messages posted to "Sponsor Alias"
                               are actually sent
          16. Sponsor SACS   - SACS required for a user to be a Sponsor of
                               a base (usually U"name"|ss).  Sponsors of
                               message bases have options to edit message
                               headers, read invalid messages, etc. NOTE:
                               sysops are not necessarily a sponsor of a
                               base.
          17. Post SACS      - SACS required to post on the message base.
                               NOTE:posting on a specific message base
                               (with the /AREA=#) causes this to be
                               ignored.
          18. Access SACS    - SACS required to select the message base
                               from an area list
          19. Anon SACS      - SACS required to post anonymously.
          20. Copy SACS      - SACS required to send multiple copies of a
                               message
          21. Private SACS   - SACS required to post privately. Only used
                               for public/private bases.
          22. Read Prvt SACS - SACS required to read private messages
          23. View Anon SACS - SACS required to view who posted anonymous
                               messages




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 59

          24. Attach SACS    - SACS required to attach files to a message. 
          25. Crash SACS     - SACS required to post a net-mail message as
                               a CRASH message which usually means the
                               message will be sent out once processed.
                               This is only used in a netmail base and may
                               represent something else in non-netmail
                               bases in future versions.
          26. Invalid SACS   - If the user meets this SACS, the message is
                               marked as "invalid" which means that only
                               sponsors of the base can read it.  If you
                               wish all messages to be valid, set this to
                               0.
          27. Auto Kill Sent - If set to "yes", any message posted in the
                               netmail base will be marked as kill once
                               sent.
          28. Post Credit    - Amount of phoney money added to the user's
                               account upon posting a public message.
          29. Attach Crash   - If yes, any files attached to a netmail
                               message will cause the message to have its
                               CRASH bit automatically set.
          30. Origin Line    - Use a different origin line than the one
                               defined in system config
          31. Origin Node    - Define an alternate FIDO node address
          32. Reply Area     - If defined (0-1000) for an echo area, the
                               user has the option of replying to a message
                               in this area rather than in the area in
                               which the message is in.  Useful to create a
                               "netmail" reply function.
          33. Message Path   - Use this with Echomail/Netmail bases.  If
                               specified, Mutant will toss posted messages
                               in FTSC .MSG format into the specified
                               directory.  See Fidonet below.
          34. Strip Colors   - Specifies how Mutant will treat its internal
                               CTRL-P color codes.
                               "No"  -  No translation, just output the
                                        code.  NOTE: this bypasses the
                                        strip bit options below.
                               "Yes" -  The color code is ignored.
                               "Conv."- The color code is converted into
                                        it's ANSI equivalent.  This does
                                        not bypass the following options.
          35. Strip Hi Bits  - All characters >127 will be removed from the
                               message.
          36. Strip Lo Bits  - All characters except 1, 13 below 32 will be
                               removed from the message.
          37. Convert ANSI   - All ESC's are replaced with the ` character.
                               This is done before strip lo bits is
                               executed.
          38-41. Groups 1-4  - These are the groups the area belongs to. 




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 60

                               If you only wish it to belong to one group,
                               make all the numbers the same.  If all
                               groups have the same number when you edit
                               Group 1, Mutant will replace the other
                               groups with the number for Group 1.
          NOTE: 34-37 only affect when Mutant tosses messages to .MSG
          format.  MTMAIL (my echomail processor) also uses these bits. 
          For echomail, I would set all the options to "Yes".

     Code:102
     Data:options
     Desc:Read Messages
          NOTE: these MUST be specified in uppercase.
          "/AREA=#"    read messages in a specific base
          "/AREA=all"  read messages in all bases ignoring ACCESS checks
          "/COMBINED"  read messages in bases user hasn't deselected.
          "/BACKWARDS" read messages in reverse post order
          "/TOUSER"    read messages only to the user
          "/NORECVD"   read messages not received
          "/RDPRV"     read private messages regardless of rdprv SACS
          "/START=new" start at the first new message
          "/START=last" start at the last message
          "/START=ask" Ask user which message to start at
          "/START=#"   Start reading at the specified message number
          "/SHOWANN"   Shows announcement message (minus the message
                       header)
          "/HEADERS"   Show only messsage headers not the message
          "/NOUPDATE"  Do not update last read pointers
          "/HDR="      Define an alternate prompt name which is enclosed in
                       quotes for displaying message headers, i.e.
                       /HDR="header prompt 2".
          "/TOP="      Display a prompt (enclosed in quotes) before
                       messages are read, i.e. /TOP="field list".
          "/NOKEY"     Assume next message for the message read command
                       prompt or stop reading if user aborts the message
                       via a more prompt.
          "/POST"      After reading messages in a base, Mutant will ask
                       the user if they wish to post a message on the base.
          "/INVALID"   Read only those messages which have their invalid
                       flag set.  This is only useful to a user with
                       sponsor access.
          "/AG"        Read messages in all groups.  This is only valid
                       with /AREA=all and /COMBINED.  If not specified,
                       only the current group is used.
          "/GA"        Ask user if they wish to read messages in all
                       groups.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 61

          "/KEYWORD"   Will prompt the user for a keyword search.  The user
                       may use "AND", "NOT", "OR", and parentheses to
                       refine the search.  Also, strings can be enclosed in
                       double quotes if a space is desired in the string. 
                       For example, zip NOT gif, "Mode X" and dobb

     Code:103
     Data:[/AG|/GA]
     Desc:Check for messages to the user
          This scans bases for messages posted to the user if there are
          any, they are asked if they wish to read them. If so, read
          messages is called with "/AREA=ALL/TOUSER/NORECVD/RDPRV/NOUPDATE"
          and reading is restricted to only those areas in which messages
          were found.. NOTE: the message chaining commands may not work
          properly with the command.  You will probably want to specify
          "/AG" which means to scan all groups for new messages.  "/GA"
          means the user will be asked if they wish to search all groups.

     Code:104
     Data:options
     Desc:Change default area/List accessible areas
          "next" -     Goto next accessible base (wraps around if
                       necessary)
          "prev" -     Goto previous accessible base (wraps around if
                       necessary)
          "A=#"  -     Goto specific physical Message base(0-999).
          "ask"  -     Ask for base, security checks are ignored
          "list" -     List accessible message bases
          If all of the previous five options are not used, the user is
          shown a list of accessible message bases and asked which one to
          change to.
          "/SHOWANN" - Show message base annoucement if it exists.
          NOTE: unless "ask" or "A=#" is used, Mutant will only allow bases
          within the current group to be selected or listed.

     Code:105
     Data:options[/AG|/GA]
     Desc:User Combined Mode Configuration
          This allows the user to select the bases they will read from when
          reading with the "/COMBINED" parameter.
          "CLRALL" - Enable reading of all accessible bases
          "SETALL" - Disable reading of all bases
          "CHOOSE" - User is given a list of all accessible message bases
                     and asked which one they wish to toggle.
          "LIST"   - List selected bases, plus some other "useful"
                     information
          "SET #"  - Disable reading a specific messsage base
          "CLEAR #"- Enable reading a specific message base
          If you specify /NG, the CLRALL, SETALL, and LIST will display




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 62

          areas in all groups.  If you specify /GA, the user will be asked
          if they wish to search all grousp.  The "CHOOSE" command ALWAYS
          uses the current group.  The "SET #" and "CLEAR #" ignore groups.

     Code:106
     Desc:Pack current Base
          This packs the default base.  This differs between the Mutant
          event in two ways.  First, this only packs one base.  Second, to
          speed up the event, Mutant will only renumber the messages and
          pack the message text if it didn't delete/remove any messages. 
          However, this command will renumber the base and pack the message
          text.

     Code:107
     Desc:Recreate ECHOINFO.DAT
          If ECHOINFO.DAT (see STRUCTS.TXT) gets deleted, you can run this
          command.  Mutant will go through all bases and store all non-
          exported messages in this file.  NOTE: MTMAIL does this itself if
          you requires echo/net export and it can't find this file.  Also
          note, Echo/Net Posted events will not work if this file does not
          exist.

     Code:108
     Desc:Relink Reply Tree
          This will rebuild the reply tree for all messages in the default
          area which are currently not a reply to another message.  You
          would use this if you're mail processor does not relink the reply
          tree.

     Code:109
     Desc:Delete Area
          You will be displayed the list of all areas.  Then, select which
          one you wish to delete.  You should use this rater than deleting
          *.area, since this command also updates BASES.IDX.

     Code:120
     Data:[#|/#|prev|next|list]
     Desc:Change Message Group
          This allows the user to change to a different message group.  If
          you do not specify anything, the user is shown the list of groups
          and asked to change one.  You can specify the following to
          automatically change groups:

               #    - specify a specific number to change to.  Mutant
                      ignores access requirements in this instance.
               /#   - Same as above except Mutant will say "access denied"
                      if security requirements are not met.  This is what
                      the menu input parser uses. 
               prev - Go to previous group.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 63

               next - Go to next group.
               list - Just list groups.

          If the user actually changes a group,  Mutant will change the
          current area to the first accessible area within the group.  If
          there are no accessible areas in the group, Mutant will not
          change the group and will display "access denied".

     Code:140
     Desc:Reindex Nodelist(s)
          If you make a change to your nodelists while online, you can
          execute this menu command instead of exiting the BBS and
          rerunning it.

     Questionaire Commands
     ---------------------  
     Code:150
     Data:name [?]
     Desc:Execute a questionaire
          Allows the user to answer a questionaire.
          "name" specifies the questionaire (.QST) file.
          "?" specifies that the questionaire will be answered only if the
          user has not already answered it.
          See questionaire section below for how to create a quesionaire
          file.

     Code:151
     Data:[name [who]]
     Desc:View answers to a questionaire
          "name" specifies the name of the questionaire. If blank, the user
          will be prompted for the questionaire name.
          "who" can be:
               "ALL" - view all users' answers.
               "?"   - Prompt for the user name.
               blank - view user's answers.

     Miscellaneous sysop commands
     ----------------------------
     Code:160
     Data:[d:\path\name]
     Desc:Edit a file.
          If name isn't given, you are prompted for the name. You can
          specify "#:\name" for the data in order to edit a file in one of
          Mutant's directories.  You must be able to use the Full Screen
          editor to use this command.  When you edit the file, lines
          greater than 78 characters will be wrapped, but restored to the
          original line length(as long as they haven't had CR's inserted)
          when the file is saved.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 64

     Code:161
     Data:[d:\path\name]
     Desc:Delete a file on disk
          If name isn't given, you are prompted for the name. The specified
          file is deleted. NOTE: this can also contain wildcards, but it
          does not perform recursive directory deletion.
     I.E.:1:\errorlog.asc
          5:\temp.*
          c:\garbage.fil

     Code:162
     Data:[days]
     Desc:Delete users who haven't called in a while.
          If specify "days" it will be used, otherwise you will be asked
          for it.  The board then deletes users who haven't called in that
          many days.  Use the user editor to mark the no kill flag if you
          don't want them deleted.  NOTE: this does not remove them from
          the user base, you have to pack the base to do that.

     Code:163
     Data:[d:\path\name [/G]]
     Desc:Create "timed" file
          You will be thrown into the text editors. Then, a temporary file
          is created with the current date and time as the first line,
          followed by your message.  Then, the specified file is appended
          to this file. Finally, the specified file is deleted, and the
          temporary file is renamed as this file. The temporary file is
          named "name.BAK". Useful for news files.

          If you specify "/G", Mutant will try and make the file in "green
          bar printer paper" format.  This means that the odd lines
          (1,3,...) of the file will be black on white.  Even lines
          (2,4,...) will be black on green.  Each line will have "|o|" at
          the start and of the end to make it look like printer paper. 
          When Mutant tacks on the old news, it will remodify the colors so
          that it looks like continuous paper.  Therefore, if you add or
          remove "/G" you should delete any old news.
     I.E.:0:\news.asc

     Voting Commands
     ---------------
     Code:170
     Data:[filename]
     Desc:Vote on a question
          Voting questions are each stored in individual files (*.VTE in
          system files). "filename" specifies a specific file to vote on, 
          "ALL" to vote on all questions the user has access to and has not
          already voted on, or blank in which case the user is displayed a
          list of all accessible voting questions and asked to choose.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 65

     Code:171
     Data:[filename [who[ area]]]
     Desc:View results
          "filename" is as above. "who" can be "0" which means you'll be
          asked if you want to see who voted for which choice, "1" means
          you don't want to see, and "2" means you want to see who voted
          for each choice.  If you specify an area, Mutant will post the
          results on the specified area.

     Code:172
     Data:[name]
     Desc:Create a voting question.
          Name is an 8 character filename, if blank, Mutant will pick a
          default name and you can hit enter to accept it. Then, you will
          be asked for the SACS required to vote on it. Next, you'll be
          asked the SACS required for the user to add a choice if they
          don't like the existing choices. Then, the actual question (79
          chars max). Followed by up to 26 choices. Hit ENTER when done.

     Code:173
     Data:[name]
     Desc:Delete a choice from a question
          Use this if a user adding a choice you find offensive or
          inappropriate.

     Code:174
     Data:[name]
     Desc:Change SACS required to vote on a question.
          These only apply to viewing the question in a list.  If
          specifically state a name, Mutant will allow the user to vote on
          it.

     Code:175
     Data:[name]
     Desc:Change SACS required to add choices.

     Code:176
     Data:[name]
     Desc:Change the actual question.

     Code:177
     Data:[name]
     Desc:Modify a choice (Change what it says)

     Code:178
     Data:string
     Desc:Check if user has voted.
          All voting questions the user has access to are checked to see if
          they voted. If one is found they haven't voted on, the string is




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 66

          displayed.

     Code:179
     Desc:Delete a voting question
          You will be presented with a list of the questions and asked
          which one to delete.  This is the same as going into system files
          and deleting the .VTE file.

     Variable Commands
     -----------------
     Code:200
     Data:varOx|FxO
     Desc:Set variable
          varOx
          -----
          Mutant has five internal 32-bit numbers that are set to zero
          before each logon.  Also, the user record has ten 32-bit numbers. 
          These variables are defined by you and may be used to enhance
          your menus.  Most variable accesses will be of the form "t[S]#"
          where "t" is either "C" or "I".  If "S" is specified, it means to
          treat the number as signed.  These modifiers just allow you to
          treat the 32-bit numbers as multiple variables:

               tS   Range of #     Int.  User     Numeric range of variable
               blank      1-15     1-5   6-15     0-4294967295
               S      1-15   1-5    6-15     -2147483648-2147483647
               I      1-30   1-10   11-30    0-65535
               IS     1-30   1-10   11-30    -32768-32767
               C      1-60   1-20   21-60    0-255
               CS     1-60   1-20   21-60    -128-127

          "O" is either "=","+","-","*", or "/".  If you don't specify "=",
          the operation is essentially v=v O x.  
          "x" is either a number, "Vvar" or "R#".  If a number, it is
          treated as constant. If "V", the requested variable is used. If
          "R#", a random number between 0 and #-1 is used.
          Examples,
               I1=5, C2+1 - These both affect the same 32-bit number.
          FxO
          ---
          Mutant has 32 temporary flags that are cleared when the BBS
          starts to wait for a caller.  These can be defined by you to
          represent anything you want.  This command allows you to
          set/clear/toggle these flags.  'F' differentiates between varOx
          above and this format.  'x' is the flag number (1-32).  'O' is
          either '!' (toggle), 'S' (set), or 'C' (clear).  For example,
               F5S  F6C F10!

     Code:201




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 67

     Data:var# #choices promptname
     Desc:Get multiple choice input and store result in numeric variable.
          This uses the "C" type as in code 200.
          "var#" is the number 1-60.
          "#choices" is the number of choices (1-36).
          "promptname" is the prompt you've defined in Prompts.txt

          For example, 21 4 filelist type
          In prompts.txt,
               :filelist type:1234
               ~1) Short format (no extended descriptions)\^n
               2)Short Format (with extended descriptions)\^n
               3)Long Format (no extended descriptions)\^n
               4)Long Format (with extended descriptions)\^n\^n
               Enter type:

          If the user hit "1", character variable 21 (in the user's record)
          would be set to 0.

     Code:202
     Data:var
     Desc:Input value for numeric variable
          Mutant will wait for input and then set the specified variable to
          the inputted value.  See code 200 for how to declare variables.

     User Editing Commands
     ---------------------
     Code:300
     Data:[who]
     Desc:Enter Alias
          You should include this in the NEW USER menu if you call it via
          code 18 from the LOGON FRONT menu.
          "who" is who to modify. This is the same for most of the 300
          commands:
          "V" - User who posted the current message.
          "A[string]"-    If string, is not present, it is asked for. This
                          will look at all users in the users base whose
                          security matches the SACS defined by the string.
          "-" - The last user edited by one of these commands.
          "?" - Ask for username
          "=string" - Edit user who's name is string.
          nothing - Current user.

     Code:301
     Data:[who]
     Desc:Enter Password
          You should include this in the NEW USER menu.  The password is
          entered with hidden input and then verified.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 68

     Code:302
     Data:[who]
     Desc:Enter phone number
          You should include this in the NEW USER menu.

     Code:303
     Data:[who]
     Desc:Enter entire Address (street,city,state,zip)
          You should include this in the NEW USER menu.

     Code:304
     Data:[who]
     Desc:Enter Birthdate
          You should include this in the NEW USER menu.

     Code:305
     Data:[who]
     Desc:Change date user was last on

     Code:306
     Data:[who][\data]
     Desc:Change number of uploads
          Data can be:
          "+#" - Where "#" is added to the current value.
          "-#" - Where "#" is subtracted from the current value.
          "#"  - The value is "#".
          blank- The board asks for the new value.

     Code:307
     Data:[who][\data]
     Desc:Change number of downloads

     Code:308
     Data:[who][\data]
     Desc:Change number of posts

     Code:309
     Data:[who][\data]
     Desc:Change last read pointer
          Enter base number or 1000 to clear all, 1001 to clear default
          area. The "+" and "-" data items have no effect.

     Code:310
     Data:[who][\data]
     Desc:Change online security level
          The online security level is what is checked in the SACS. It is
          copied from the actual security level when the user logs on.

     Code:311




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 69

     Data:[who][\data]
     Desc:Change phoney money
          Phoney money is money the user can "use" to download files and
          anything else you may decide (via SACS).  Its typically called
          points by other BBS systems.

     Code:312
     Data:[who]
     Desc:Clear time used today

     Code:313
     Data:[who][\data]
     Desc:Change number of calls today

     Code:314
     Data:[who][\data]
     Desc:Change number of calls

     Code:315
     Data:[who]
     Desc:Change lines per screen
          This is for remote use only.  When logged on locally, you will
          have the entire screen except the bottom line as your lines per
          screen.  Therefore, if you are using "25" or don't have VGA, you
          will have 24 lines per screen.  Otherwise, you will have 49 lines
          per screen.

     Code:316
     Desc:Add time to time bank
          The user is prompted for how much time to add.  They can add up
          to their time left-1 minute or until the maximum amount matches
          the system configuration.  The board does not print an error if
          they enter an incorrect amount.

     Code:317
     Desc:Take time out of time bank
          The user is prompted for the amount to take out. They can take
          out as much as in the bank.

     Code:318
     Data:[who][\data]
     Desc:Change NetMail Credit
          This number is in cents.  When posting Netmail messages, the user
          must have at least the cost of the message in credit.  Also,
          Mutant subtracts the cost of the message from this when the
          message is posted even if it is never exported.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 70

     Code:320
     Data:[who][\FL]
     Desc:Change Sex
          This should be used in the NEW USER MENU.
          FL can be a value from 0 - 6:
               0 - Set value to false (male)
               1 - Set value to true (female)
               2 - Toggle value
               3 - Ask the user (the default if not specified)
               4 - Set value to false and display prompt
               5 - Set value to true and display
               6 - Toggle and display

     Code:321
     Data:[who][\FL]
     Desc:Screen Pause Toggle
          FL is the same as 320 except true is when screen pausing is
          active.

     Code:322
     Desc:Choose ANSI/ASCII/Avatar

     Code:323
     Data:[who][\FL]
     Desc:Toggle One Key/Full Line Input
          FL is the same as 320 except true is when one key input is
          active.

     Code:324
     Data:[who][\FL]
     Desc:Toggle user alert flag
          FL is the same as 320 except true is when the alert is active.

     Code:325
     Data:[who][\FL]
     Desc:Toggle Expert mode on/off
          True value for FL is when Expert mode is on.

     Code:326
     Data:[who]
     Desc:This command will never do anything.
          Since Mutant does not have a remote user editor, it is designed
          so you can "build" a remote user editor with these menu commands
          and using a "?" with this command would allow a "change user"
          command.  A good starting place for your menu editing.

     Code:327
     Data:[who][\FL]
     Desc:Toggle Full Screen/Line Editor




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 71

          True value of FL is the Full Screen editor.

     Code:328
     Data:[who]
     Desc:Change/Edit Signature
          A Signature is something appended to a message a user posts when
          they "Sign and Save" in the line editor, or hit CTRL-Z in the
          full screen editor.  Currently there is only one available per
          user.  However, I may eventually allow two - one for alias' and
          one for realnames.

     Code:329
     Data:[who]
     Desc:Change/Edit Announcement
          A user's announcement is shown to the current user if they post a
          message to the user.

     Code:330
     Data:[who][\same string]
     Desc:Enter user's real name.
          This must be in the NEW USER menu.  The entered name must contain
          at least one space.  If the entered name equals "same string" and
          the user's name is not blank and you are allowing alias', Mutant
          will copy the user's name to the real name.

     Code:331
     Data:[who][\data]
     Desc:Change time in time bank
          This allows you to change a user's time in the time bank. This
          does affect their time online.

     Code:332
     Data:[who]
     Desc:View user
          This temporarily copies the user defined by "who" to the current
          user and prints the prompt "usered view user" from PROPMTS.TXT
          which allows you to use OCC to print information out about this
          user.

     Code:333
     Desc:Kill all announcements
          Resets all user's announcement pointers to zero and resets the
          "anns" file.  Use this if something becomes corrupt. 

     Code:334
     Desc:Kill all signatures

     Code:335
     Desc:Kill all resumes




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 72

     Code:336
     Data:[who]
     Desc:Create/Edit Resume
          A resume is where a user can type in information about themself
          that they wish other user's to see.

     Code:337
     Desc:View user's Resume
          The user is prompted whose resume they wish to view and it is
          displayed if found.

     Code:338
     Data:[who][\data]
     Desc:Change Kbytes downloaded today
          This is the total size in kilobytes the user has downloaded
          today.  Use this if you wish to grant them further download
          access today.

     Code:339
     Data:[who][\data]
     Desc:Uploads in Kbytes

     Code:340
     Data:[who][\data]
     Desc:Downloads in Kbytes

     Code:341
     Data:[who][\data]
     Desc:Set User's General access flags 
          Enter the flag # (1-576) or 577 to set them all.  The general
          access flags are flags you can use in any way you please.  I
          think 576 is sufficent since other BBSs usually only have around
          32 flags.

     Code:342
     Data:[who][\data]
     Desc:Clear User's General access flags
          Enter the flag # (1-576) or 577 to clear them all.

     Code:343
     Data:[who][\data]
     Desc:Change Actual Security Level

     Code:345
     Data:[who][\comment]
     Desc:Change Comment
          The comment is a note about the user to yourself.  It can also be
          displayed to the user in OCC.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 73

     Code:346
     Data:[who]
     Desc:Change/Edit Real Name signature
          The real name signature is used to sign messages only when the
          base message area uses real names.

     Code:347
     Desc:Kill all Real Name signatures
          Use in case they get corrupted.

     Code:348
     Data:[who][\days]
     Desc:Change Subscription Date
          The subscription date is a date you specify and can test to see
          if that date has passed using a DS security string.  This is
          useful if you are charging for access to the board and charge
          monthly, yearly, etc.  You will probably enter these dates via
          the user editor.  If you do not specify "days", you will be
          prompted for the date.  If you specify "days", that is the number
          of days from TODAY in which it will expire.  For example, if
          today is 01/01/93 and you enter "\30" for this command, the DS
          string will be true at midnight on 01/31/93.

     Code:349
     Data:[who]
     Desc:Change Default Protocol
          The list of protocols is shown, and Mutant asks the user to
          choose one.  NOTE: Mutant stores the "key" in the user record, so
          if you change your protocols, you should inform the users that
          they may need to change their default protcol.  When Mutant
          creates a new user, the default is set to none.

     Code:350
     Data:[who][\FL]
     Desc:Usage of Full Screen Viewer
          By using the full screen viewer, Mutant will keep the message
          header and file list header on the screen provided the user has
          ANSI or Avatar enabled.  NOTE: if the message contains ANSI
          cursor/clear codes or you intefere with the reading (by chatting
          or shelling), the screen will be messed up until the user re-
          reads the message or goes to the next message.

          The true for FL is when the viewer is on.

     Code:351
     Desc:Turn RIP off/Look for RIPTerm
          If Mutant thinks the user has RIPTerm, this will turn off RIP
          graphics support.  Otherwise, Mutant will look for RIPTerm and
          turn on RIP graphics if found.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 74

     Code:381
     Desc:Pack users
          This removes deleted users from the user record. Do this
          occasionally if you delete many users. I highly recommend this be
          run from the waiting for caller menu when no one else is on or
          during a system event.

     File Transfer Commands
     ----------------------  
     Code:400
     Data:options
     Desc:Change default File area/List accessible areas
          This is exactly like the message base equivalent except this
          effects the file area and doesn't have a "/SHOWANN" option.

     Code:401
     Data:[area]
     Desc:List Files
          List files in "area" or default area if "area" is not given. User
          must have access to the area in order to list files.

     Code:402
     Data:[area]
     Desc:List new files or files from a certain date
          The user is asked if they wish to list files since the last time
          they were on the BBS.  If they say no, they are prompted to enter
          a date in mm-dd-yyyy format.

     Code:403
     Data:[hdr name],[fmt name],[ftr name],[area]
     Desc:List files via a prompt you define.
          The commands 401,402, and 404 list files by using the "file list
          header", "file list format", and "file list footer" prompts. 
          This allows you to define your own prompts which can be different
          from standard listings.

     Code:404
     Data:[sall][/AG|/GA]
     Desc:List new files in all accessible areas
          This is like 402 but it will scan all accessible areas or all
          areas if "sall" is specified.  Mutant will only scan areas within
          the current group unless you specify "sall" or "/NG".  As in
          other commands, "/GA" will ask the user if they wish to search in
          all groups.

     Code:406
     Data:[area|?|d:\path\][/CHKALL]
     Desc:Upload files
          If data is "?", the user will be prompted for a path to upload




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 75

          files to.  If data is a path, the upload will take place in that
          path.  Only sysops should have access to these two options.
          "area" is the same as the other 400 commands.
          The user must have upload access if uploading to an area.
          "/CHKALL" only applies when uploading to a file area.  Normally,
          Mutant only checks the area in which the upload is occurring for
          a duplicate filename.  However, by specifying this, Mutant will
          check all areas for a duplicate filename.

          The user is asked for the protocol (if they don't have a default
          one set).  If it is of type "none", the user is prompted for the
          filename and description of the file they are uploading. If it is
          batch, they can optionally give the filenames and descriptions of
          the files.  If the descriptions are given, they can automatically
          logoff after the transfer.  However, if they upload a file not
          specified in advance, they can not logoff automatically.

          NOTE: for all files uploaded, the user is credited for their
          upload/download file ratio and their upload/download file size
          ratio.

     Code:407
     Desc:Download files
          If the user has not previously selected any files, they will be
          prompted to enter the filenames to download.  Otherwise, they
          will be given the option to add more files (by name), deselect
          files, download, or download and logoff.

          When entering files by name, the search takes place in all areas
          the user has access to until a match is found.  The user will be
          asked if they wish to search in all groups or only the current
          group.

     Code:408
     Data:[sall][/AG|/GA]
     Desc:Search filenames/descriptions for a keyword
          User is prompted for a keyword to search for.  All accessible
          areas will be searched for all areas if "sall" is specified. 
          This will look at the filename, description, and extended
          description, if present.  Mutant will only search within the
          current group unless you specify "sall" or "/AG".  As before,
          "/GA" prompts the user.

     Code:409
     Data:[area]
     Desc:Add file not found in file listing
          Since Mutant stores paths of the files in the file listings, this
          command allows you to add files from elsewhere on your computer
          so that users can download them.  You can enter a path and the




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 76

          filespec which can contain wildcards. Then, for each file you
          will be asked if you wish to add it.  If you do, you will be
          prompted for the description, the password, and if you want to
          add an extended description. Also, you will be asked if you wish
          to move, copy, or leave the file in the current directory.  As
          Mutant stores complete path names in the list, files can be
          located anywhere on your computer without moving them into the
          area's upload directory.

          If you specify "@[d:\path\]filename" instead of files to add,
          Mutant will open this file and expect it in the form:

          filename description

          and add the files and descriptions with zero cost, no password
          and no extended description.  If you do not specify "d:\path\",
          Mutant will use the "upload path" for the file area as the path. 
          Mutant assumes that these files are in the directory where the
          file listing is, but the file listing can contain
          "d:\path\filename description" in which case the path will be
          used.  To convert from QuickBBS, RemoteAcces, etc.:

               1.   Setup the area configuration using your original file
                    path.
               2.   Add "@files.bbs".  If it was a CD-ROM file listing, add
                    "@file_list_path\files.bbs".
               3.  Repeat 1 and 3 for all of your file areas.

          NOTE:Mutant only uses the first eighty characters of the
          description (ignoring any beginning spaces).

     Code:410
     Data:[area]
     Desc:Delete files from area
          You will be prompted for the filespec to delete.  Then for each
          file found, the board will ask you if you want to delete it. If
          you say yes, it will ask you if you want to delete the file on
          disk also.  If you specify a "\" for the filespec, all offline
          files(files which no longer reside in the path in which they were
          added to the list) will be checked.  You will also be asked if
          you want to remove the file(s) from the uploader's ratio.  If you
          say yes, the uploader's number of uploads will be decreased by
          one for each file, and if the file was not offline, their upload
          K size will be decreased by the size of each file.

     Code:411
     Data:[area]
     Desc:Delete file user owns
          Asks user for a filespec (which can contain wildcards) to delete. 




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 77

          The files in the area that match the filespec are checked to see
          if the user uploaded them.  If so, the user is prompted if they
          wish to delete the file.  If they do, the file will be removed
          from the file lists AND deleted on diskette.  A very useful
          option if a shareware author is using your BBS for file
          distribution.  NOTE: Mutant automatically removes the file from
          the file ratios so that user's can't keep uploading the same file
          over and over again.

     Code:412
     Data:[area|all][/T=x]
     Desc:Sort files
          This sorts the files in the specified area (or all areas) based
          on which 'x' value, where 0 is the default.  Possible values:
               0 - Sort by Filename
               1 - Sort by Time.
               2 - Sort by Who uploaded it
               3 - Sort by number of downloads
               4 - Sort by cost
               5-9, same as 0-4, but descending order.
          This command ignores groups.

     Code:413
     Data:[/A=#][/E=a,b,c-d,e,...]
     Desc:Change File area configuration
          This is exactly like the message base editor except for the field
          differences.
          1. Name           - The name of the file area.
          2. Upload Path    - The path where any uploads to the area will
                              take place.
          3. Access SACS    - The SACS required to access area from a list.
          4. View Unv. SACS - The SACS required to see unvalidated uploads
                              in the file lists.
          5. Sponsor SACS   - The SACS that define the sponsor for the
                              area. (usually U"name"ss).  A sponsor of a
                              file area doesn't mean anything except to
                              satify "MF" SACS and all files are "free".
          6. Upl. Time Mod. - The upload time modifier.  If this is 1.0,
                              the BBS will give the user back the time the
                              upload took.
          7. Add PW SACS  -   The SACS required in order to add a password
                              to files uploaded.  When the attempts to add
                              a file to the batch queue, Mutant will ask
                              the user to enter the file password.  By
                              making the first character a '*', the file
                              will be hidden for ALL users in normal file
                              lists.
          8. Down Unv. SACS - The SACS required to download unvalidated
                              files.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 78

          9. Default Ext.   - This defines the default extension for the
                              base such as ZIP or GIF.
          10. Upload SACS   - The SACS required to upload to the area.
          11. Show Offline  - Toggles whether to show offline files during
                              file listings.
          12. Free Files    - If the user meets these requirements, all
                              files downloaded from this area will be
                              "free" which means it doesn't count in their
                              file ratios, nor do they need phoney money to
                              download it.
          13. Auto Validate - If this is set, all files uploaded are marked
                              as validated.  You should leave this set to
                              No in order to check the file yourself for
                              viruses, etc.
          14. Auto Cost Comp- If set, Mutant will automatically give the
                              file a default cost and may add some phoney
                              money to the user during the upload.  If you
                              don't set this, ignore the following two
                              options.
          15. Cost Base     - If this is zero, Mutant will give the file a
                              default cost of one.  If not zero, Mutant
                              will take the size of the file (in Kbytes)
                              and divide by this number (rounding down) and
                              set the cost equal to that amount.  If the
                              resulting cost was zero, Mutant will make it
                              one.
          16. Comp Ratio    - If not zero, Mutant will add the calculated
                              cost of the file times this amount to the
                              user's phoney money during the upload.
          17. Commission %  - Whenever a user downloads a file, the
                              uploader has cost of file*this/100 added to
                              their phoney money.
          18. User Cost     - If set, the user will be prompted to set the
                              download cost of the file.  Cost base must be
                              set to a non-zero value.
          19. CD-ROM        - If set, Mutant will copy files, the user has
                              selected for download, to the temporary
                              directory before the download begins.  This
                              helps speed up file transfers from a CD-ROM
                              drive and allows it to be used by other nodes
                              while the download is occuring.
          20. Dis. Archive  - If set to "Yes", Mutant will not allow unpack
                              operations to take place on files in this
                              area such as archive convert, manipulate or
                              unpack/scan/pack commands.  As DOS can not
                              handle Amiga, Unix, Mac filenames, you should
                              set this for those areas in which you allow
                              these filese.  Otherwise, the unpack utility
                              might crash the board.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 79

          21. (nothing)     - This does nothing, so don't do anything here!
                              It is a place holder so group configuration
                              looks better.
          22-25. Groups 1-4 - The groups the file area belongs to.  See
                              message area editing for more information.

     Code:424
     Data:[/A=#][/T=string|/ASK]
     Desc:Change information about files in the area
          "/T=field" edit a specified field.
          "/A=#" specify area.
          "/ASK" ask for field to modify.
          You will be prompted for the filespec to modify (can include wild
          cards).
          Fields Include:
          "DESC"   -     Modify the description of the file.
          "WHO"    -     Modify who uploaded the file. This does not check
                         to make sure the user is actually on the BBS.
          "COST"   -     Modify amount of money file requires to download.
          "CLR#DL" -     Set number of downloads to zero.
          "UPTIME" -     Change upload time to now(Makes the file new to
                         all users).
          "VALID"  -     Toggle validation state of the file.  Currently,
                         that's all validating a file does. It does not
                         give the user any "money" for uploading it nor
                         anything else.
          "SACS"   -     Modify the SACS required to download the file.
          "EXTDESC"-     Modify/Add the extended description.
          "UFDATE" -     Sets the use DOS date flag on the file.  What this
                         means is that the board will always use the actual
                         date of the file according to DOS to determine if
                         a file is new or not.  This is useful if you are
                         writing a program and have added it to the
                         system - setting this will make sure your newest
                         version will show up as new on the file lists.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 80

          "FREEFILE"-    Toggle the free file bit.  If set, the file
                         doesn't count in the user's ratios nor phoney
                         money.
          "STATUS" -     The scanning/validity test of the file.  When a
                         file is uploaded from remote, Mutant checks the
                         archive to see if it contains any CRC errors. 
                         Then, when the user logs off, the file is scanned
                         for viruses using the defined virus scanner. 
                         Possibly values are:

                          0 - The file passed the virus scanner.
                          1 - Couldn't test the file for validity. 
                              Normally this is caused by uploading a non-
                              archive.  When Mutant scans a file with this
                              status, it will set it to 0 if the scan
                              fails, so be sure to have a scanner that can
                              handle non-archived files.
                          2 - The file failed the validity test.  Mutant
                              will not scan this file for viruses.
                          3 - Passed the validity test, but not scanned. 
                              Mutant is waiting to scan the file.
                          4 - Couldn't scan the file.  Some sort of disk
                              error occured while unpacking or scanning the
                              file.  Mutant will continue to try to scan
                              the file when scanning takes place.
                          5 - The file failed the scan.  This is very bad,
                              it more than likely means the file has a
                              virus.

     Code:425
     Data:[area]
     Desc:Rebuild file directory
          This looks in the upload directory and will add files not current
          found in the area list.  You will be prompted for the
          description, SACS and extended description.

     Code:426
     Data:[area]
     Desc:Move files from one area to another
          You will be prompted for the filespec.  You will be displayed
          each file and then asked to where the file should go.  Just press
          Enter to skip the file, hit CTRL-C to stop moving files, or enter
          an area (0-999).  Mutant will then move the actual DOS file (if
          found) followed by the extended description (if present) and then
          the file information.  If when moving the DOS file, a file of the
          same name exists in the dest. directory, the move will fail.

          In addition to entering a normal filespec, you can enter "\O" or
          "\Dnum".  If you enter "\O", Mutant will only ask you to move




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 81

          files which are offline.  If you enter "\Dnum", the num is in
          days, and Mutant will only ask you to move files which are older
          than num.

     Code:427
     Desc:Add files in current area by number
          This allows users to enter a number (or range of numbers) which
          will be marked for later download.  In order for this to of use
          to your users, you MUST print out the file numbers in the file
          list format prompt.  An example entry might be:
               1,5-7,20 or 1 5-7 20 (spaces or commas is acceptable).

     Code:428
     Desc:List files in batch queue
          Lists the files in the queue, the estimated transfer time, and
          the total size (in Kbytes) and total cost.  NOTE: you control the
          output via the prompts.

     Code:429
     Desc:Remove file(s) from batch queue
          User will be prompted for the number they wish to remove.  You
          MUST list the batch queue out and include numbers.  

     Code:430
     Data:name
     Desc:List files to disk file(s)
          Uses the format "name" from DISKDESC.CTL to print file listings
          to disk (see DISKDESC.CTL).

     Code:431
     Desc:Remove all file(s) from batch queue
          A quick way of clearing the batch queue, done automatically when
          the user logs off.

     Code:432/433
     Desc:Validate files in current area (432) or all areas(433)
          Mutant will look for files whose validation flag is not set.  You
          will then have the options of removing the file from the
          uploader's ratios, deleting the file, skiping to the next file,
          setting the cost of the file(and add to the uploader's phoney
          money), just validating the file, or moving the file.

     Code:434
     Desc:Get files
          You will be prompted for a file(s) to be downloaded.  These
          should contain file paths and may contain wildcards.  You can
          separate filenames by spaces.  Mutant will add all file(s) found
          to the batch queue and mark them as free files.  Afterwards, you
          will be tossed into the download command (see above).




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 82

     Code:435
     Data:filespec [/F]
     Desc:Send specific file(s)
          This allows you to send a specific file (or related files) to the
          user without them being in a file area.  "filespec" is a drive,
          path, and filename.  The filename can contain wildcards.  The
          selected file(s) will be added to the queue, and the download
          command will be run.  If you specifify "/F" the files are marked
          as free.  You would commonly use this with the archive
          manipulation commands so the user can download their "TEMP.*"
          archive.

          NOTE: you can use "#:\path\filespec", where '#' is 0-5 to access
          one of Mutant's directories.

     Code:436
     Data:all|?
     Desc:Update File lists
          In order to save time, Mutant stores all information needed to
          display the file in a database format.  However, if files are
          changed or deleted from DOS, Mutant will not know about these
          changes unless you run this command.  "All" updates all files in
          all areas. "?" updates specific file(s) in the current area.  I
          highly recommend you create a menu event with "436 all" for the
          "Run File".

     Code:440
     Data:[#|/#|prev|next|list]
     Desc:Change file group
          This is the same as change message group except applies to file
          groups.

     Archive Commands
     ----------------
     Code:450
     Desc:Access the archive editor

     Code:451
     Data:[area|#:\name|filespec]
     Desc:View an archive
          This allows the user to view the contents of an archive.
          If blank or an area is specified, the user is prompted for the
          filename to view. If they type "list", a list of files in the
          area is displayed.
          If you specify a number 0-5 followed by a ":\", one of Mutant's
          directories will be used followed by the name following the
          backslash.
          The name can contain wildcards.
     I.E.:5:\temp.*




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 83

     Code:452
     Data:[area]
     Desc:Allow user to convert archive to another archive format
          User is asked for a filename to convert and which archive format
          to convert it to.  The board then unpacks the archive to the
          temporary directory and then packs it into "TEMP.*".  The user
          has the option to not convert interior archives and self-
          extracting archives.

     Code:454
     Data:[area filespec][/Y|/N][;ext1 ext2 ext3]
     Desc:Archive files not already archived
          Area can be "all" to process all areas.
          Filespec can be "\USER" which means process all files added to
          the system since the user logged on, or the last user logged on
          if no one is on. Useful in an "at logoff" event.
          Filespec can be "\NEW" which means process all files added since
          midnight.
          If you specify "/Y" or "/N" this answers the question - "Merge
          duplicate archives" If you do not merge duplicate archives, the
          BBS will not archive files which would result in an archive
          already in the file list.
          You can also specify extensions which you do not want converted
          such as extensions you know are archived but do not have archive
          utilities for.

          This command may be phased out like commands 453, 455-457 where
          when I added virus scanning.
     I.E.:all \USER /N;ZOO GIF ARJ

     Code:458
     Data:[area]
     Desc:Archive Manipulate
          The user can pick an archive and the board will unpack it to the
          temporary directory.  Then display each file one by one, the user
          can choose to view it and select it.  Then, all files selected
          are archived into "temp.*".  Essentially allows users to get only
          parts of an archive.  If the archive contains interior archives
          or interior self-extracting archives, the user will have the
          option to manipulate that archive.  After manipulation of an
          interior archive, it is packed into the destination format and
          the old archive is deleted. 

     Code:459/460
     Data:[/NI][/NE]
     Desc:Virus scanning command
          This will do the following to scanned files:

          If the file status is 3-5:




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 84

               1.   Unpack the file including any internal archives.
               2.   Scan the file for viruses.
               3.   Import a file id file(see FILE_IDS.CTL) found if the
                    file didn't have an extended description.
               4.   Pack the file into the preferred archive format or the
                    archive format which matches the area's default
                    extension.  If the original file was already in the
                    preferred format, Mutant will not do this step.
               5.   Add the specified comment to the file.
               6.   Add the specified include file to the file.
               7.   Update the file status to 0 if all the above went OK.

          If the file status was 1 (couldn't validate archive):
               1.   Mutant will try to re-validate the archive.  If it
                    passes, it sets the status to 3 and does the above.
               2.   Scans the file for viruses.
               3.   If scan went OK, file status is set to 0.

          459 scans all files in all areas.  460 scans the current area. 
          Unless you have problems with the scanning, I highly recommend
          using 459 in a logoff event as the sample files show.

          If you specify /NI, Mutant will not convert interior archives,
          but will unpack them and scan them for viruses.  If you specify
          /NE, all interior self-extracting archives are ignored.

     Door Commands
     -------------
     Code:500
     Data:ABCD [num[/T]]
     Desc:Display Door Usage Graph
          A   - Character to use for times used (ANSI/Avatar)
          B   - Character to use for times used (ASCII)
          C   - Character to use for time used (ANSI/Avatar)
          D   - Character to use for time used (ASCII)
          num - Sort and display top "num" doors
          /T  - Sort by time used rather than times used

     Code:501
     Data:CCC
     Desc:Shellout and run a program.
          This is the only menu command used to run doors as Mutant's
          command control codes are very extensive.  I recommend using
          "UG'" as the access for this command unless you want guest users
          to have access to this door.

     Code:502
     Desc:Reset/Delete Door Usage information
          Mutant will display the list of doors for which it contains




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 85

          information.  You then enter the door name to reset.  By
          resetting, Mutant will remove the door info from its file.  If
          more than one door matches the name, Mutant will delete them all.

     Code:550
     Data:[0|1]
     Desc:Set Quit Next flag
          If you specify 0, quit next will be set to 0.  If you specify 1,
          quit next will be set to 1.  Otherwise, quit next is toggled.  If
          quit next is one, the board will exit with errorlevel 0 when the
          user logs off, regardless of the "-E" setting, in other words the
          same as if 'Q' was pressed at the WFC screen.

     BBS List Commands
     -----------------
     Code:600
     Data:[prompt name]
     Desc:List BBS's
          If "prompt name" is defined, it is used to format the list
          output, otherwise the default is used.

     Code:601
     Data:[prompt name]
     Desc:Edit the BBS list
          The BBS list is printed out one BBS at a time.  Then you can
          change the name, number, etc. or delete the BBS.  "prompt name"
          specifies the prompt to use to print the list.

     Code:602
     Desc:Add a BBS to BBS list
          User is prompted for name, software used, baud rates supported
          (300-38400), hours if not 24 hours, phone number and to type in
          additional information about the BBS.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 86

                                  +----------------+
                                  | Mutant Screens | 
                                  +----------------+ 

          Mutant has five default extensions it uses:
          ".ASC" -  Printed to non-ANSI users or if no other screen under
                    the same extension exists. NOTE: these screens can
                    contain color codes generated by the editors, they will
                    be ignored if the user can't support ANSI
          ".ANS" -  Printed to ANSI users.  NOTE: in order to avoid more or
                    Press Enter prompts for ANSI/Avatar screens, you should
                    save the screen with no line feeds.  In THEDRAW, set
                    Output maximum line length to None.
          ".AVT" -  If the user has Avatar support, Mutant will display
                    this screen.  Mutant's internal Avatar support includes
                    only the basic commands as defined in FSC-0025.TXT.  If
                    one of these screens is not found, the .ANS will be
                    displayed.
          ".RIP" -  RIP graphics screen (see below)
          ".LST" -  These contain lines grouped in twos. The first line
                    contains the SACS required in order to view the second
                    line.  The second line contains a screen name (or
                    names) to be viewed. This line follows the exact data
                    format as command type 1 in the menus.  This is
                    primarily designed so you can use in the place of
                    Mutant's FIVE reserved screens:
                         "WELCOME.*" is printed after the user has
                         connected and if a LOGON FRONT menu does not
                         exist.
                         "LEVENT.*" is printed before logon if the board is
                         currently in a Logon Event.
                         "MULTITSK.*" is printed before logon if the board
                         is currently running under Desqview.

     RIP Support
     -----------
          RIP stands for Remote Imaging Protocol.  It is a graphics
     standard developed by Telegrafix, Inc.  It requires the use of a RIP
     Terminal which runs in 640x350x16 color mode.  This allows you to send
     commands to it which are interpreted as graphics commands.  Mutant
     supports RIP in the following ways:

          1.   .RIP screens in place of ANSI/Avatar in your menus.  Screens
               are read as a normal file and are printed via the OCC
               processor followed by a carriage-return.
          2.   Autodetection of RIPTerm so that the very first definable
               screen the user sees is a RIP screen.
          3.   RIP security access code string.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 87

     As of this version, Mutant can not interpret the RIP commands and may
     cause problems under the following circumstances:

          1.   The RIP control sequences exceed 80 columns.  This will
               cause Mutant to wrap and possibly scroll the screen.  Mutant
               disables counting of lines printed during a RIP line. 
               However, this may cause the loss of the message and/or file
               list header when the user is using the full screen message
               viewer.
          2.   Mutant does not look for RIP commands within a prompt nor in
               text printed via menu command 36.

     Therefore, I highly recommend supporting RIP in menus and no where
     else.

                      +-----------------------------------+
                      | Files you may wish to edit/create | 
                      +-----------------------------------+

     LIMITS.CTL
     ----------
          Rather than store a bunch of security information in the user
     record (and force you to enter it for each user), I created this file
     which defines certain user restrictions based on the user's security. 
     This file resides in the system files directory and defines a bunch of
     information for the user.  It is only processed when the user logs on
     or is edited via the user editor or codes 3xx.  This file consists of
     multiple lines in the following format:

     "sacs",time/day,k/day,calls/day,udr,udkr,nopts,pcr,prv,pub,net,chat

     where:

     sacs      is a security string usually Sxxx, but may include baud rate
               and/or flag checking.
     time/day  is the amount of time allowed on per day in minutes.
     k/day     is the amount of Kbytes the user may download per day.  Set
               this to -1 to ignore.  NOTE: files less than 1k count as 0k
               during this check.
     calls/day is the number of calls allowed per day.  Setting this to
               zero will lock out a user.  Setting to -1 allows unlimited
               calls per day.
     udr       is the required minimum upload/download ratio (percentage)
               in order to download a file.  For example, to require the
               user to upload one file for every five downloaded, you would
               enter 20 for 20 percent, likewise to require one upload for
               every download, enter 100.  A new user starts out with
               ratios equal to 100 percent.
     udkr      is the the required minimum upload in Kbytes/download in




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 88

               Kbytes ratio (percentage) in order to download a file.
     nopts     Enter a one in this field to disable file cost checking.
     pcr       is the required minimum posts/calls ratio (percentage).  The
               only effect this has is on SACS which include RP.
     prv       is the number of private posts the user can make per call. 
               By setting this 0, the user can never make any private
               posts.  Set to -1 to ignore.
     pub       is like prv, but for public posts.
     net       is like pub/prv, but is for netmail postings.
     chat      is the number of times the user may attempt to page you per
               call.

     When Mutant starts parsing this file, the time is 20 minutes, ratios
     are set 0 percent, cost (point) checking is ON, and the others are set
     to ignore.  You do not need to include all options on the line(except
     the sacs) since they will keep their values from previous processing. 
     Remember, this file is completely read by Mutant. Therefore, if you
     have "s255" and "s30", be sure to put the "s255" last since "s30" is
     also valid.

     FILE_IDS.CTL
     ------------
          This file is simply a list of file names (one per line) which
     Mutant will look for when scanning an uploaded file.  If one of them
     is found in the temp directory (i.e. not within a sub-archive) and an
     extended description has not been entered,  Mutant will import the
     file for the extended description.  FILE_ID.DIZ seems to be the most
     common of these file names, but I have heard of DESC.SDI also.  Mutant
     import the FIRST one it finds.

     CHATHOUR.CTL
     ------------
          You can specify hours in which you will be available for chat. 
     This is a straight text file in the format:

     day hh:mm-hh:mm hh:mm-hh:mm hh:mm-hh:mm....

     "day"          can be "all" for all days; Sun, Mon, Tue, Wed, Thu,
                    Fri, or Sat to specify a specific day of the week;
                    mm/dd to specify a specific month and day; or 0/dd to
                    specify a specific day of every month.

     "hh:mm-hh:mm"  specify the start and end times of the chat.  You can
                    specify multiple times separated by spaces up to a
                    maximum line length of 290 characters.  This is
                    designed for college students who don't want to be
                    available while they are in class.

     NOTE: Mutant stops processing the file once it has a valid "day".  If




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 89

     the time didn't meet the specified times, you will not be available
     for chat.  Also, if this file is not found you will never be available
     for chat unless you "force" the mode.

     Example:

     3/26
     Mon 09:00-11:00 13:00-17:00
     All 09:00-17:00

     In this example, you are never available for chat on March 26th, on
     Mondays you available between 9am to 11am and between 1pm and 5pm. 
     Any other day you are available between 9am and 5pm.

     CHATABV.CTL
     -----------
          You can assign abbreviations (up to 40 characters) to a phrase or
     sentence (up to 200 charcters) which Mutant will evaluate in chat
     mode.  When typing the abbreviation (in chat mode), it must start at
     the beginning of the line or be preceeded by a space and be followed
     by a space, period, comma, question mark, or exlamation point.  You
     type the abbreviations into this file (which resides in the system
     files directory) in the following format:

     [`|~]abbreviation
     response string

     If you begin the abbreviation with a ~, it will only be used when the
     user types it.  If you begin it with a `, it will only be used when
     the sysop types it.  The abbreviations are not case sensitive.  The
     file may not contain blank lines (for speed purposes).  Examples:

     bt
     BinkleyTerm
     mt
     Mutant BBS

     hl
     hello
     'is
     I am the sysop!

     There are also some default abbreviations which will be used if they
     are typed and aren't defined in this file:

     /D - Date
     /T - Time
     /U - Username
     /S - Sysopname




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 90

     /B - BBS Name
     /V - Mutant BBS vX.XX
     /C - Connect string or baud rate


     TRASHCAN.TXT
     ------------
          This file is checked when the user enters their alias or
     realname.  If the user's alias/realname matches a string in this file,
     the user is kicked off.  In this file, you type strings, one per line
     which can contain DOS wildcards such as '*' and '?', but also "[match
     chars or c1-c2]".  Examples:

     *the*     Matches to any name that has "the" in it.
     the*      Matches to any name that begins with "the"
     *the      Matches to any name that ends with "the"
     ?he       Matches to any three character name with the last two
               letters being "he"
     [st]he    "she" or "the" match
     [a-z]he   Matches to any three character name with the last two
               letters being "he" and the first character being a letter.
     [a-z]he*  Same as above except the name can be any length.

     NOTE: These wildcards are used in other places in Mutant as well:
     1)   In downloads/file listings, the user can use these with the board
          performing a slight modification - if the filename does not
          contain a period and the wildcard spec does contain one, Mutant
          adds a period to the filename before comparing.  Therefore, "*"
          is the same as "*.*".
     2)   In getting a user list, if the user does not enter a '*', '?', or
          '[', Mutant assumes "*input*".  Otherwise, the input is used as
          given.

     DOORFMTS.TXT
     ------------
          This file tells Mutant how to generate door info files. I gave
     this ability to Mutant for two reasons - 1) There seems to be a lack
     of info on the file formats available and 2) DORINFO1.DEF seems to
     have a different format depending on which door you run.  Therefore, I
     allowed you to set up your own formats or share formats among other
     Mutant BBS sysops.
          Now, writing door formats is fairly simple. First, pull out your
     favorite text editor or use the edit text file command and edit
     DOORFMTS.TXT in the system files directory. Begin a new line with a
     ":" followed by a name for the format (case is insignificant) Next, on
     succeding lines, type in the data as given below and save it.

     The general format is:
     [format modifiers] command [command data]




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 91

     Format Modifiers:

     NLOCAL  - The rest of the line is ignored if the user is on locally.
     LOCAL   - The rest of the line is ignored if the user is on remotely.
     BINx    - Applies to numeric variables such as time left, etc. The 'x'
               is the number of bytes to write the variable out in binary
               form. For example, if the user has 257 minutes left and you
               use "BIN2 TIMEMIN", this will write an ASCII 1 and then an
               ASCII 1 to the file. 
     NCRLF   - If SETCRLF is active (see below), do not print out a CRLF
               (carriage-return, line-feed) after the line.
     CRLF    - Adds a CRLF to the line if CLRCRLF has been used. If used by
               itself, this generates a blank line.
     LFCR    - Reverses the standard order. Some weird programs might
               expect a line feed before a carriage return for some reason.
     CR      - Just sends a carriage return. Again, some programs might be
               weird.
     LF      - Just sends a line feed. Again, some programs might be weird.

     The first three commands do not use format modifiers:

     OPENFILE:   -  specifies the file to write to - DO NOT put in a path,
                    Mutant will use the one you specify in the menus. If a
                    file was already opened, it is closed and the new one
                    is created. 
     SETCRLF     -  Sets the default to write CR-LF's out after each
                    command. When Mutant first starts creating the data,
                    this is on.
     CLRCRLF     -  Tell Mutant to not write out CR-LF's out after each
                    command.

     BOARDNAME   -  Prints out the board name as defined in MCONFIG.

                    Most things that print out strings use the same command
                    data which is [case type][pad char][min width][.max
                    width].
                    [case type] is optional and should be placed first.
                        L - make string all lowercase
                        U - make string all uppercase
                        F - make the first letter of each word uppercase,
                        the rest are lowercase.
                    [pad char] is the character to pad with if [min width]
                    is not specified, the default is space. The format is
                    "\x" where x is the ASCII value of the character to
                    use.
                    [min width] is the minimum space the string can take
                    up. If the string is not that long, it is padded with
                    [pad char]. The string is padded before the string if
                    [min width] is positive. If [min width] is negative,




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 92

                    the string is printed first, then it is padded. [min
                    width] can be left off, in which case, no padding is
                    done.
                    [max width] is the maximum amount of characters to
                    write. This is preceded by a "." regardless of whether
                    [min width] is used or not. If the string is more than
                    [max width] it is truncated. 

     SYSOPFIRST - Prints the sysop's first name
     SYSOPLAST  - Prints the sysop's last name
     SYSOPFULL  - Prints the sysop's full name
     COMPORT    - This represents the comport (0-?). That may seem odd, but
                  it's the format FOSSIL expects. Not to fret over that. If
                  the first parameter after the command is "+", this
                  becomes (1-?) - you will more than likely want to do
                  this. The user can configure FOSSIL notation in case some
                  door is screwy enough to use it. Since this is a numeric
                  variable, it can be written out as binary using the BIN
                  format modifier or written out as ASCII using the string
                  format given above.
     BAUD       - Represents the current baud rate. In Mutant, a person on
                  locally has a baud rate of 65535, and because doors do
                  not recognize 65535, you want something else; use the
                  LOCAL and NLOCAL command modifiers. This variable, of
                  course, is a numeric variable and can be written out as
                  binary or as a string.
     BAUDS      - Some people may not like 300,1200,2400,etc. Therefore,
                  this is followed by 7 literal strings representing 300,
                  1200, 2400, 4800, 9600, 19200, 38400 bauds. The literal
                  strings are in double quotes, with each separated by a
                  space.  Don't use this if using locked baud rates.
     USERFIRST  - Prints the first name of the user's alias. If aliases are
                  not used, Mutant copies the real name into the alias,
                  therefore this will be valid for real names also.
     USERLAST   - Prints the last parts of the user's alias. Mutant only
                  separates the two by the first space in the alias,
                  therefore this string may be one or more words.
     USERFULL   - Prints out the user's full alias.
     USERNUM    - THe user's user number (1-65535).
     STREET     - Prints out the street portion of the user's address
     ANSI       - This is a typical flag variable which has the format of
                  "true string" "false string." The strings are in double
                  quotes and repesent the condition of the flag.
     TIMEMIN    - A numeric variable representing the time left in minutes.
                  Printed via binary or string format.
     TIMESEC    - A numeric variable represeting the time left in seconds.
                  Printed via binary or string format.
     SECLEVEL   - The user's security level 1-255. Printed via binary or
                  string.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 93

     AVAILCHAT  - A flag variable representing whether the sysop is
                  available for chat or not.
     PAGE       - A flag variable, true if the user is trying to page the
                  sysop.
     ALERT      - A flag varialbe corresponding to the user's alert flag.
     MAXBAUD    - A numeric variable representing the default baud rate of
                  the sysop's modem as set in MCONFIG.
     PASSWORD   - Prints the user's password.
     TONCFMT    - The time the user logged on, in C/UNIX's time format, a
                  numeric variable.
     TIMEON     - The time the user logged on. This is followed by
                  formating codes:
                        P/p    -   Prints 'P' or 'p' for PM or 'A' or 'a'
                                   for AM. 
                        "s"    -   Prints "s" as a literal string.
                        m[m]   -   Prints month number, if second m is
                                   present and the month is less than ten,
                                   it is padded with a "0"
                        d[d]   -   Prints day of the month, pads with "0"
                                   if 2nd d is present.
                        yy[yy] -   Prints the year out, 00-99  if [yy] is
                                   not present, 19xx-xxxx if present.
                        h[h]   -   Prints out the hour (24hr)
                        H[H]   -   Prints out the hour (1-12)
                        t[t]   -   Prints out the minutes
                        s[s]   -   Prints out the seconds
                        D      -   Day of the week "Sun","Mon","Tue",etc.
                        M      -   Month "Jan","Feb","Mar",etc.
     TIMENOW    - Prints the current time using the above time format
     LASTON     - Prints the time the user was last on using the above time
                  format
     MAXTIMEON  - A numeric variable - user's maximum time per day in
                  minutes.
     UPK        - A numeric variable - user's upload total in Kilobytes.
     DOWNK      - A numeric variable - user's download total in Kilobytes.
     AGE        - A numeric variable - User's age.
     SEX        - A flag variable, Male is true, Female is false.
     LPS        - A numeric variable - User's page length in lines.
     ISCOSYSOP  - A flag variable, true if user has SACS requirement.
     ISSYSOP    - A flag variable, true is user's name matches the sysop
                  name in configuration.
     DIRPATH    - First parameter is 0-5 representing mutant's directories.
     NUMULS     - number of uploads the user has made, a numeric variable.
     NUMDLS     - number of downloads the user has made, a numeric
                  variable. 
     DUP x "y"  - Prints literal string y x times. See below for
                  description of literal strings.
     TONSMID    - Time user logged in seconds since midnight, a numeric
                  variable.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 94

     TTIMEONSEC - Total time user has been on in seconds (Numeric of
                  course). 
     TTIMEONMIN - Total time user has been on in minutes (Numeric).
     PHONENUM   - User's phone number in form "string"; string can contain
                  anything, but if a # is encountered, the next digit of
                  the user's phone number is printed. Allows for (000)000-
                  0000 or 000-000-0000 or (000) 000-0000, etc.
     "string"   - Prints a literal string.  The string can contain: \x\
                  where x represents an ASCII character value. This value
                  is surrounded by back slashes. For example, "\27\[34m".
     REALFIRST  - User's real first name
     REALLAST   - User's real last name
     REALFULL   - User's real full name
     CITY       - City part of the address
     STATE      - State part of the address
     ZIP        - ZIP code part of the address
     CITYSTATE  - Prints out as City, State. Most BBS programs only ask for
                  those two parameters, therefore, I wanted them to look
                  like that. This is an exact format no other formatting is
                  done.

     Remember to separate paramters by spaces. Also, this represents what I
     needed to make the sample door formats and then a bit more. However,
     if a door requires additional information and a literal string will
     not do, let me know what it is and what you want the command to be and
     I will put it in the next version. But, with 49 commands, you should
     be able to manage. As for examples, look at the ones that came with
     the board.

     NEWUSER.CTL
     -----------
          This is a text file that resides in the sysfiles directory. It is
     accessed once the user has finished the initial NEW USER menu. Its
     main purpose is to override the default Security Level, Time per day,
     etc. that Mutant uses.
          The first line of the file should contain "user:name". The
     "user:" is the command which is not case sensitive. "Name" is the user
     name or "ALL" to use for all new users. If "Name" is "\\VALIDATE USER"
     whenever CTRL-F1 is pressed, the user online is validated using the
     settings defined in this file. If the name is not satisfied, the
     commands are skipped until the next "user:" is found.  This is
     followed by one or more of the following:
     SL:#     - Sets the user's security level to # (0-255).
     MONEY:#  - Sets user's phoney money
     GF:#     - Sets user's general access flag # (1-576).
     LP:string- Prints string.
     MAXK:#   - Sets the amount (in Kbytes) the user can download per day.
     NET:#    - Grant Netmail credit.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 95

          NOTE: with the exception of "\\VALIDATE USER" this file is of
     little use since Mutant has allowed you to define the New User logon
     sequence since version .6.  However, it is still used just before the
     user is written into the user record.

     MAILER.CTL
     ----------
          This is a file you create in the system files directory which
     tells Mutant to shell out and run a frontend program such as
     BinkleyTerm.  The first line of the file should contain the program to
     run.  Next, you can optionally specify "Hours sh:sm-eh:em" which is
     useful if you only wish to run it during a Mail hour.  The rest is
     followed by "# command", where "#" must equal the exit code or
     ERRORLEVEL from the program, and "command" is:

          "connect baud"  tells the board to connect at a specified baud
                          rate. NOTE: as in all other connect baud rates,
                          if you have specified to lock the baud rate in
                          the configuration, Mutant will use it and just
                          use the connect baud rate for time calculations. 
                          You can specify the "ARQ String" after "baud" in
                          order to indicate a reliable connection.
          "local"         tells the board you want to log on locally.
          "quit"          tells the board you want to quit.
          "events"        tells the board to check its events and continue.
          "disable"       resumes normal operation of the board, same
                          effect as "MTNT nomailer".
          "import CCC"    Mutant will run the command specified, and then
                          will scan all message bases for messages to
                          import from the "Message Path".  Use this to
                          unpack messages and then import them into Mutant.
          "exe options"   If you do not specify one of the above options,
                          Mutant will run "exe" with "options".

          For Example,
               d:\bt\bt.exe
               Hours 04:00-05:00
               3 connect 300
               6 events
               10 quit
               12 connect 1200
               70 disable
               20 c:\mutant\mtmail.exe PI PU PA EI EP EF NI NF
               90 local

     Questionaires
     -------------  
          Questionaires are a way of gathering information about a user not
     stored in their user record.  You type in a questionaire using a text-




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 96

     editor and store it in the system files directory with the extension
     ".QST".  When a user answers a questionaire, Mutant appends to the
     ".ASW" file with the header "*** User Name answered questionaire on
     TIME ***".  
          This header is very important since this how Mutant determines if
     a user has answered a questionaire or not.  When searching for a user,
     the board looks for "*** " and "User name answered questionaire on ".
     Therefore, never write a "*** " to the file.  Also, since Mutant
     allows the questionaire to be answered more than once, Mutant modifies
     a previous header by deleting the space before the user name, this
     effectively deletes the answer.
          When typing in the questionaire, any line not beginning with a
     backslash or colon is printed to the user's screen. If a line begins
     with a colon, it is a label used by the goto line. Commands begin with
     a backslash and any command not recognized is printed to the screen
     minus the initial backslash. Also, since most text editors delete
     trailing spaces, putting a backslash at the end of the line will be
     ignored.  Finally, user input is stored in variables and you must
     explicity tell the BBS how to write the variables to the file. For the
     sake of convenience, I listed the commands with uppercase characters,
     but they can be lowercase.

     \Alen num    - Get a string of "len" characters and store in variable
                    "num".  Len can be 1-80, and num can be 1-32767
                    (provided Mutant has enough memory to store the
                    variable).
     \Uon|off|all - Turns capitalization of input on or off. When on, this
                    causes the first character of each word in a string to
                    be uppercase and the rest lowercase.  You can also
                    specify all to uppercase the entire input.
     \Lnum        - Display variable "num" to the user.
     \Onum suffix - The contents of variable "num" is written to the .ASW
                    file followed by suffix.  suffix can contain OCC, but
                    see "leave a note" for restrictions.
     \Wstring     - Writes string to the .ASW file.  String can contain
                    OCC, but see "leave a note" for restrictions.
     \#num fmt    - Input data in a numeric format.  fmt is a string which
                    contains the '#' symbol where you wish the user to
                    input a numeric digit.  Any non '#' character is stored
                    in the variable.  Common uses include ###-###-#### for
                    the phone number, ###-##-#### for Social Security or
                    ##/##/## for a date.
     \=num string - Assigns a literal string to a variable.
     \Q           - End questionaire, this is done automatically at the end
                    of the file.
     \Cnum choices- Wait for a key that is in choices. NOTE: if
                    capitalization is off, this is a case sensitive so you
                    can distinguish between 'Y' and 'y'.
     \Glabel      - Goto label. If label is not found, the questionaire




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 97

                    ends. WARNING: this can cause the board to go into an
                    infinite loop.
     \Inum op data- op can be one of the following:

                        '='  data=variable (assumed if none given)
                        '<'  data<variable
                        '>'  data>variable
                        '<=' data<=variable
                        '>=' data>=variable
                        '!=' data does not equal variable

                    data can be a literal string or #num to compare to
                    another variable.
                    If the operation is false, Mutant goes to the line
                    following the "endif".  Otherwise, the next line is
                    executed. You can nest "if"s up to 32000 levels without
                    problems.  If the endif is not found, the questionaire
                    ends.
     \E           - Endif
     \Mnum data   - Execute menu command, num is the command code and data
                    is the optional data.

     See the sample questionaire for an example (SAMPLE.QST).

     DISKDESC.CTL
     ------------
          This is file used by command code 430 to generate text file
     listings of Mutant's file areas on disk.  You specify a "listing name"
     preceded by a ":" on a line. Then follow it with the following
     options:

     "ANSI"      -  Specifies ANSI will be enabled when generating the
                    listing (Allows color to be added).
     "AREAS:"    -  Specifies which areas are to be listed. You can list
                    ranges like 0-999 or you specify individual areas like
                    1,2,3... or both 1,2,5-10,12.  NOTE: Mutant does not
                    check access to the areas if a user is online or if you
                    use the "USER:" parameter specified below.
     "GROUP:"    -  Specifies to generate a listing for all areas within a
                    certain group.  If you use this, you should not use
                    "AREAS:".  If you do not specified, all groups are
                    scanned.
     "HDR:"      -  Specifies the header prompt name, if not given, no
                    header will be generated.  NOTE: if you wish to use one
                    of Mutant's predefined prompt names for these prompts,
                    you must specify the name preceded by a colon.  For
                    example, "HDR::file list header".
     "FMT:"      -  Specifies the file format prompt name
     "FTR:"      -  Specifies the footer prompt name, if not given no




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 98

                    footer will be generated.
     "GFTR:"     -  If generating a global file listing, you can specify
                    this prompt name which will include total count of all
                    files output and the total size of the files.
     "FILESPEC:" -  Specifies which files will be listed, default is "*.*".
     "DATE:"     -  Specifies from which date to list from. Format:
                    mm:dd:yyyy - yyyy is optional and the current year will
                    be used. The default is list all files.
     "INAME:"    -  This specifies to generate individual listings for each
                    area. This specifies the name and extension to be used.
                    It is generated in the areas upload path. This can
                    include codes given below.
     "NOINC"     -  By default, using INAME: causes the file to be added to
                    the area's file list when done.  However, this causes
                    it to not be added.
     "GNAME:"    -  Tells that you wish to generate a list of all selected
                    areas to one file. This can contain codes given below
                    provided the name does not exceed 12 characters.
     "GAREA:"    -  Specifies to add "GNAME" to a certain area.
     "ARCHIVE"   -  Specifies that you wish the file listings archived when
                    done. The listings are archived to the preferred
                    archive format or the archive format whose extension
                    matches the areas default extension. NOTE: to archive
                    an individual file listing, you must not use the
                    "NOINC" directive.
     "IDESC:"    -  This is the description to be used when adding the file
                    to an area. This can contain special codes:
                       "%%" - precent sign
                       "%n" - area number
                       "%N" - area number with zeros added if less than
                              100.
                       "%m" - month given in "DATE"
                       "%M" - month given in "DATE" with a zero added if
                              less than 10.
                       "%s" - Area name
                       "%d" - day given in "DATE"
                       "%D" - day given in "DATE" with a zero added if less
                              than 10.
                       "%y" - year given in "DATE" (last two digits)
                       "%Y" - year given in "DATE"
     "GDESC:"    -  The description of the global file when adding to an
                    area. (See above for codes). 
     "DIRONLY"   -  Tells it to generate listings for only those files who
                    reside in the area's upload directory.
     "USER:name" -  As you can run this command via an event or the waiting
                    for caller menu, no user is online and therefore SACS
                    for viewing unvalidated files, prompts, etc. will not
                    be applicable.  However, by specifying this and a valid
                    user name, Mutant will try to load in that user.  If it




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----        Page 99

                    fails, this function will abort.  If a user is already
                    online, Mutant will ignore this command.  

          That's a lot isn't it.  Well, let's look at a couple of examples:

     1) Generate individual listiings as they would appear with a command
     code 401.
     In DISKDESC.CTL enter:
     :indivdual listings
     HDR:file list header
     FMT:file list format
     FTR:file list footer
     INAME:filelist.%n
     IDESC:File listing of this area.

     2) Generate 4DOS description files
     In DISKDESC.CTL enter:
     :4DOS descriptions
     FMT:4dos format

     INAME:descript.ion
     NOINC
     DIRONLY
     In PROMPTS.TXT enter:
     :4dos format:
     /DATA22 /DATA2^\n

     AUTODESC.TXT
     ------------
          This file is accessed whenever a description is modifed/added to
     a file in the file lists; this does not add to extended descriptions. 
     It allows certain information, such as GIF specs, to be added to the
     description automatically.  To create an auto-description, you need to
     know the format and then enter two or three items:

     "EXT:ext" - Specifies the file extension to which this description
                 will apply. Always begin a new description with one of
                 these lines.
     "ID:off,d"- This allows you to make sure the file in question is
                 actually of the proper format.  First, enter the "ID:"
                 followed by the offset (0-file length) where to start
                 checking and a comma. Now, you can enter direct strings
                 surrounded by quotes or you use a number (0-255) which
                 comapres the current byte to this value.  For example,
                 ID:5,"Mutant",13,10. NOTE: you can enter as many ID's as
                 you want and they must all match in order to use this
                 description.
     "DESC:"   - This specifies the actual description to be used. This
                 plus the current description must be less than 80




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 100

                 characters.  If not, the auto description is not added. 
                 You can have strings and/or numeric expressions spearted
                 by commas.

                 String operators:
                 "string" - Literal String.
                 Ax       - Put ASCII character whose value is x.
                 Soff,len - String which starts at offset off and is len
                            characters long.
                 Coff     - String which starts at offset off, but is null
                            terminated (ends in a zero).
                 Poff     - The byte at offset off defines the length of
                            the string following it.
                 Zoff,len - String at offset off can be null terminated,
                            but may only be of len characters long.

               Numeric expressions can contain simple mathematical
               equations.  When an operation is complete, the answer
               becomes the new first expression. At the end of the
               expression, this value is printed into the description.
               Ooff,len - Get value from off of len bytes.
               num      - Use num in expression
               +        - Add two expressions together
               -        - Subtract first expression from next expression.
               *        - Multiply two expressions
               /        - Divide second expression into first expression.
               &        - AND.
               |        - OR.
               ^        - Exclusive-OR
               <        - Shift left.
               >        - Shift right.
               %        - MODULO.
               #        - raise first expression to the power of second
                          expression. 
               I        - when performing the operation, inverse the first
                          number with the second.

               Let's look at an example. Say at offset 6 we have a two byte
               number whose value is 512 and we used the following: 
               O6,2>1+2/129I#3&8," Colors"
                 Let's look at the result step by step:
               1. O6,2 gets the value 512.
               2. ">1" shifts it right once, making the answer 256.
               3. "+2" adds 2 to the value making it 258.
               3. "/129" divides by 129 making it 2.
               4. The "I#3" actually is "3#2" which is 9.
               5. "&8" ands it with 8 which is 8.
               6. The auto description would become "8 Colors".




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 101

     PROMPTS.TXT
     -----------
     (PROMPTS.RIP is loaded if the user logs on with RIPTerm).

            PROMPTS.TXT(.RIP) allows you to define how Mutant outputs most
     of its data and redefine keystrokes used for some internal prompts. 
     This text file resides in the system files directory and is completely
     read into memory when Mutant runs.  Therefore, you should limit the
     size of this file to under 64k.  This allows Mutant to have extreme
     flexibility, while not sacrificing much speed.  The general format of
     a prompt is:

          :prompt name:[/S=string:][text]
          [/S=string:]text1
          text2
          [/E=string]
          text3
          ...
          :next prompt:

     Each prompt name begins and ends with a colon.  After the name you can
     optionally specify, "/S=string" where string is a legal SAC string
     followed by a colon.  The maximum length of a line can be 255
     characters.  A prompt ends when Mutant encounters another line that
     begins with a colon.  

     If you specify, /S=string: at the beginning of a line and the SACS
     defined in string are not met, Mutant will completely ignore the line
     following the colon.  Otherwise, Mutant will use the line following
     the colon.  If you specify, /E=string, and the SACS are met, prompt
     parsing is stopped.  Use that one with care as it is undesirable to
     stop a prompt during Yes/No and Key prompts.

     NOTE: when typing the text, the end of a line does not tell Mutant
     that it should go to a newline in the output, you must explicity use a
     "^\n" OCC.

          Basically, there are seven different types of prompts. I'd list
     what type each prompt is, but there are over 300 reserved prompt
     names.

     1. Straight prompt - Gets printed as it is typed.
     2. Input string prompt - The text right after the 2nd colon is read
        into the board internally and used.  This means don't let the text
        exceed past the right edge of the screen in most editors.
     3. Yes/No prompts - Asks the user a "yes/no" question, format:
        :prompt:YNM
        text
        ~




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 102

        /FLAGYes~No~^\n (or /BDATA,0,2,Yes|No|Maybe|^\n, if M)

        where prompt is the name of the prompt.  YNM are the keys the user
        would press (M may not be used in all prompts).  The text is the
        actual text to be displayed to the user and ends when a tilde is
        encountered.  After the tilde, is the response which is displayed
        to the user after they pressed a key.
        NOTE: in prompts that don't have a "Maybe" choice, you can use a
        space for a key to force the other key to be used (if you're text
        editor strips ending spaces, and you want to force "Yes", Mutant
        will treat end of line as a space).  If you want to create a "new"
        user option at the logon prompt, here's how to do it:
          1. Create a guest user named "New" with no password, or use a
          password if you desire a new user password.
          2. In configuration, set the system to closed.
          3. edit the "logon not found" prompt to read something like,
               :logon not found: N
               That name was not found, please reenter.^\n
          4. In the "TOP" menu, add a command code 18, key "/AUTO\", and
          SACS UG, or if you have other guest users, UGU"New".
          5. You may wish to modify the "login prompt" to state that they
          need to logon as "New".
     3a Yes/No and specified data prompts - These are the same as Yes/No
        prompts except they contain an extra section.  The extra section is
        divided from the second section by a tilde and is used to print the
        current (or new) value of a variable. You should use "/FLAGyes~no~"
        in the text(see below).  These are used by the user configuration
        flag commands (320,321, 323-325, 327 and 350).
     4. Single Data prompts - Like a Straight Prompt, but one element of
        data is supplied, the prompt prints this out when it encounters
        "/DATA" in the prompt.
     5. Multiple Data prompts 1 - These prompts are passed a set of string
        data which the prompt can access by using "/DATA#" where "#" is the
        information.  These differ from the ones below in that all data is
        defined.
     6. Multiple Data prompts 2 - This is used to print out a bulk of
        information. The prompt can contain special strings:
        "/DATA#[.xx]" -  Display the specified data. If ".xx" is given,
                         only "xx" characters of the data are printed. 
                         WARNING, if the data contains OCC, results could
                         be unpredictable if ".xx" is used.
        "/IDATA#"     -  Only process the rest of the line if data "#" has
                         been assigned a value.
        "/IDATA!#"    -  Only process the  rest of the line if data "#" has
                         not been assigned a value.
        "/FLAG#yes~no~"- If the specified data has been assigned a value,
                         the "yes" string is displayed, otherwise display
                         the "no" string. NOTE: this is straight OCC text
                         and can not contain "/DATA" parameters.  Useful




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 103

                         for printing out flags (such as message base
                         fields).
        "/TIME#"s""   -  Some data items represent a time.  Using this
                         allows you to control the way that time is
                         printed.  If you used /DATA it would just print
                         out as "xxxx" where xxxx is the number of seconds
                         since Jan 1,1970 at midnight GMT.  However, using
                         /TIME#"s" allows you to specify the format using
                         the codes given in the ^\t"s" OCC (see above).
                         NOTE: The data fields which use can use this are
                         ones which explicitly state so below.
        "/C=#,D#,Uc,.."- This is a centering command.  Mutant parses the
                         string following the "/C=" to get a total width
                         using one or more of the options below:
                         '#' specifies a literal number
                         'D#' -    specifies the length of a data item as
                                   it is stored internally (not OCC based).
                         'Uc' -    If specified, after the current line is
                                   printed, Mutant will re-center and print
                                   the character 'c' out for the length
                                   calculated by this command.  If 'c' is
                                   an uppercase 'L', then Mutant will use a
                                   '-' if the user has ASCII or a solid
                                   horizontal line otherwise just like the
                                   ^\LJ OCC.
                         The '#' and 'D#' are added up, and Mutant will
                         center based on that length and then print out the
                         rest of the line.  NOTE: if you use 'D#' and the
                         data contains OCC, the centering may not work
                         properly.
        "/BDATA#,s,e," - This allows you to treat translate a numeric item
                         into words.  The '#' is the data item, 's' is the
                         start value of your data, and 'e' is the end
                         value.  You should have e-s+1 items each followed
                         by a vertical bar (|).  If the desired item is
                         between s and e, Mutant picks the item and
                         displays it (it can contain /C=, /DATA, etc.).  If
                         not, the items are ignored.  Parsing of the prompt
                         continues after the last expected vertical bar or
                         the next line if Mutant can not find the last
                         expected vertical bar.   Key prompts (see below)
                         use this option also.
        NOTE: "#" is zero-based, as in the first data is item zero, if no
        "#" is given, zero is assumed.
     7. Key prompts - These display a prompt, and define keys for input.
        The format is:

        :prompt name:Keys -   Keys are the keys the user can press
        Help text         -   If defined, the user can hit '?' and this




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 104

                              will be displayed
        ~
        prompt text       -   The prompt displayed
        ~
        answer text       -   Text printed after user hits valid key.  You
                              would use /BDATA,0,X,ans1|ans2|...|ansX|text
                              where X is the number of keys minus one.

        The main reason for this is to allow the sysop to change the 'R'
        for reply to 'A' for autoreply like some BBS programs use.
        The Help text can contain an optional /DATA to print out data.
        Also, if a line of help text or prompt text begins with "/I#",
        where # is the key (1-?), the line will be skipped if the key is
        not currently available for use.

     NOTE:  I've deemed it impossible for you to create PROMPTS.TXT from
     scratch.  Therefore, modify the prompts.txt that comes with the sample
     files and, like everything else, MAKE BACKUPS.

     Now, I will give some of the more important prompts which contain many
     data fields.  For some of the other propmts, they usually only contain
     no more than 4 data fields.

     Message header data fields
     --------------------------
         This describes the prompt used to print out the message headers. 
     You should check flags with "/IDATA" since if they aren't set, they
     won't exist.  Also, conditions such as items wich must have sponsor
     access will cause an item to not exist.

         0 - base name
         1 - message number
         2 - message title/subject
         3 - Time posted (use /TIME)
         4 - Message To (NT)
         5 - No Kill flag - if user has sponsor access
               If the no kill flag is set, the message will never be
               deleted except by the delete message key.
         6 - Message really to -   if user has viewanon or sponsor access
               If a message is posted to the SPONALIAS or in response to an
               anonymous message, this contains who really posted the
               message. (NT)
         7 - Received flag (NT)
         8 - Private flag (NT)
         9 - From
        11 - Really from, if user has sponsor access
        12 - Next message number in chain
        13 - Prev. messge number in chain
        14 - Reply message number




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 105

        15 - Last message number in base
        16 - Deleted, if user has sponsor access
        17 - Origin address, if Netmail base
        18 - Destination address, if Netmail base (NT)
        19 - Exported, if an external mail processor has exported this
             message for echo/net mail.
        20 - Kill sent (NM)
        21 - File attach, if netmail message has file attaches in the
             subject field. (NM or normal)
        22 - Crash (NM)
        23 - Invalid
        24 - In Transit (NM)
        25 - Orphan (NM)
        26 - Local
        27 - Hold For Pickup (NM)
        28 - Fido Unused bit (NM)
        29 - File Request (NM)
        30 - Return Receipt Request (NM)
        31 - Is Return Receipt (NM)
        32 - Audit Request (NM)
        33 - File Update Request (NM)
        34 - Immediate (NM)
        35 - Direct (NM)
        36 - Delete/Sent (File attach)
        37 - Truncate/Sent (File Attach)

        Those items designated with NM can only be changed when the base is
     a netmail base.  Delete/Sent & Truncate/Sent are only valid if the
     file attach bit is set.  Echomail messages can't have file attaches. 
     Those items designated with NT are not valid if the base is a "To All"
     base except when editing the message header.

     File listing data fields
     ------------------------
        The following lists the fields you can use in a File List Format
     prompt.  When listing files, Mutant prints a File List Header prompt
     which can contain the area number and area name. Then, the files with
     a File List Format prompt.  Finally, a File List Footer prompt.

        0-  Filenumber or position in batch queue.  As of this version of
            Mutant, I highly recommend you include this in any prompts the
            user can see!
        1 - Full path, filename of file
        2 - Description
        3 - Cost/points
        4 - Date and Time when file added to system or DOS time if use dos
            time flag is set.  (use /TIME4"s" to display)
        5 - The drive the file is on.
        6 - The directory (without the drive) the file is in.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 106

        7 - The filename.
        8 - The extension.  
            NOTE: /DATA5/DATA6\/DATA7/DATA8 give the full path.
        9 - The size of the file in Kbytes if not offline.
       10 - Valid, if the file is free.
       11 - Who uploaded it
       12 - Number of time downloaded
       13 - Size, not valid, if file is offline
       14 - Approx. time to download
       15 - Date and time according to DOS. (use /TIME15"s" to display)
       16 - Valid if the file is in the batch queue.
       17 - File size in Megabytes, not valid if offline
       18 - File size in Gigabytes, not valid if offline
       19 - The recommend file size format, 0-bytes, 1-KB, 2-MB, 3-GB.  It
            only recommends KB or MB if the size is at least 2KB or 2MB.
       22 - Just the filename.ext.
       23 - Valid, if a new file to the user
       24 - SACS in order to access the file.
       25 - Valid, if file is validated.
       26 - File status (0-5) see file editing above for the list of
            values.  You should use /BDATA to print this out.
       29 - The extended file description if it exists. The .xx for the
            /DATA statement has no meaning for this item.

     File Footers
     ------------
        0 - Total file count
        1 - Total file size in bytes
        2 - Total file size in KB
        3 - Total file size in MB
        4 - Total file size in GB 
        5 - Recommened file size format (see above)

     BBS listing data fields
     -----------------------  
        0 - BBS name
        1 - Phone number
        2 - Software
        3 - Baud
        4 - The extra data about the BBS if given. The .xx for the /DATA
            statement has no9 meaning for this item.

     Line editor keys
     ----------------  
        This lists the keys in numeric order for the key prompt.

        1. Save message
        2. Abort message, MA
        3. Continue message




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 107

        4. Delete lines
        5. Insert lines
        6. List message
        7. Edit line
        8. Upload a message, MA
        9. Sign and Save the message, MA

     NOTE: Those designated by MA may not be valid keys at all times.

     Message read keys
     -----------------
        List in numeric order and the order they should appear as keys
        1. Next message
        2. Top of reply chain
        3. Prev. message in reply chain
        4. Next. message in reply chain
        5. Start reading a reply chain
        6. Export message (sysop only)
        7. Delete message
        8. Enter message header editor (sponsors only)
        9. Reply to message
       10. Read message Again
       11. Stop read messages
       12. Skip to next base when reading in combined mode
       13. Goto message number - user will be asked for the #. (obsolete)
       14. Toggle display kludge line configuration.
       15. List attached files
       16. Download attached files
       17. Copy message to another base (sysops only).
       18. Validate message and continue.
       19. Call USER EDITOR menu with 'V' set to poster of message.
       20. Mark message as received and go to next message.
       21. Reply to message in reply area, if defined and area is echoed.
        If you do not specify a digit(0-9) as a possible keypress, the user
     will be able to type in a number and Mutant will go to that message if
     found.

     Message Reply Treeing
     ---------------------
        When you reply to a message in Mutant, it creates a "reply branch"
     which means hitting key "5" above will start reading the branch. 
     However, if you reply to a message that already has been replied to,
     you cause that branch to grow.  In that case, hitting "5" will start
     the branch and then "4" will continue on that branch.  If you reply to
     a message in a branch, you create a branch off of that branch.  This
     is unlike some BBS' which use a linear system for replies. Example:




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 108

        Msg#1
               (5)                  (4)                  (2)
        Msg#2--->Msg#3(reply to 2)--->Msg#5(reply to 2)--->Msg #2
                      |(5)             (4)
        Msg#4       Msg#7(reply to 3)--->Msg#8(reply to 3)


                           +-----------------------+ 
                           | FidoNet Configuration |  
                           +-----------------------+ 

        FidoNet is an international standard primarily designed to share
     messages between other BBS systems.  The messages are of two types:
     NetMail and EchoMail.  Netmail consists of private messages to another
     person on a BBS.  Netmail can also include "File attaches" in which
     files from your computer are sent across the net.  Echomail is public
     conferencing which is devoted to a topic. In the FidoNet system, each
     BBS is assigned an address in the form "zone:net/node.point".  I have
     attempted to include in Mutant as much of the FidoNet standard as I
     understand (and cared to implement).

     To setup FidoNet on Mutant, you'll need four things:
     1. A network address for your BBS.  To obtain an address you should
        call a BBS in your area that is on FidoNet. The sysop should be
        able to provide you on information for obtaining an adress. 
     2. A message tosser.  This program converts Mutant's message format
        to/from Fido format, and gets them ready for transfer to the other
        systems.  MTMAIL should work for small systems.
     3. A mailer.  This program handles the sending/receiving of the
        messages.  Such programs include BinkleyTerm and FrontDoor.
     4. A nodelist of addresses with which your BBS can communicate.  Your
        mailer program will more than likely require this.  The nodelist is
        a normal text file that is comma delimited with keywords that
        define the zone,region,hosts,and nodes of your system.

     Once you have obtained these items and set them up according to their
     instructions, you are ready to configure Mutant.

     1. In system configuration, define your network address and a default
        origin line. The origin line is added to echomail messages which
        usually should be the name of you BBS.  Do not include your address
        as Mutant adds this automatically.
     2. Also, in system config, setup your nodelist directory (such as
        C:\BT\NODELIST).
     3. Also, create the mailer control file as defined above.  I prefer
        using this over a batch file since it allows Mutant's time up and
        percent used to be calculated more accurately (since it is running
        all the time).
     4. Now use the Message base editing commands to configure them for




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 109

        Fido.  You should set Use Realnames to yes and disable any
        anonymous options.  For Echomail bases, make them Public Only and
        for Netmail, make them Private.
     5. If you understand crash, kill sent, and file attaches, set up the
        Netmail area(s) for these items.
     6. Create NODELIST.CTL in the nodelist directory and run Mutant
        without a NOCHECK parameter to index the nodelist.

     When entering an address, the user can "browse" the nodelist to find
     the node they want.  "?" lists zones, "zone:?" lists nets/regions in
     the zone, "zone:net/?" lists nodes in the net and "zone:net/node.?"
     lists points.

     NOTE: If any errors while Mutant is accessing the nodelist, Mutant
     will assume all nodes are valid and a cost of zero for all nodes.  

     Points & Domains
     ----------------
        A full FIDONET address is Zone:Net/Node.Point@domain.  Mutant
     doesn't really support "domain" at all.   You can have a netmail base
     per domain and a separate nodelist for each domain.  As to points, you
     can send mail to points as long as you use the "Point" keyword in the
     nodelist (or your private nodelist).  MTMAIL doesn't support points
     except via the "fakenet" method in which zone:net/node.point is
     translated into zone:fakenet/point format.

     NODELIST.CTL
     ------------
        This tells Mutant what nodelists you want and how much it costs to
     send mail to a node.  Items you may wish/should include:

        :domain name,nodelist
               Domain name is what you specify in the netmail message base
               configurarion.
               Nodelist is the 8-character filename for the actual
               nodelist.
               For example, ":fidonet,nodelist"

        Pvtlist filename.ext
               It may be necessary that you can't use the actual
               distributed nodelist for your node (such as if you are a
               point).  If so, you can create a private nodelist.  This
               nodelist must contain a Zone and a region or net.  If you
               are point, you'll want to include zone, net, and node of
               your BOSS, followed by "Point" keywords.  This file must be
               in the nodelist directory.  For example, "Pvtlist
               points.lst" and points.lst might contain:

               Zone,1,....




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 110

               Host,24601,.....
               ,5,......
               Point,1,....
               Point,2,Your_System,Your_name,Your_Loc,...

               NOTE: this option must appear after a ":domain" option.

        Costlist d:\path\filename.ext
               If you are using a mailer, chances are that it has its own
               nodelist format and generates requires a program to compile
               that list.  If so, Mutant may be able to use its
               configuration for cost instead of you specifying one.  For
               example, "Costlist d:\nodelist\parselst.cfg".

        Country x
               Specify your country code for 'x'.  The default is 1 which
               is the United States.  As Mutant was designed to be run in
               the United States(it may work elsewhere) this may not be
               necessary.  This is used to determine which calls are
               national calls and which are international calls.  ParseList
               supports this in its configuration file and by using
               Costlist above, you will not need this.

        COST def_nat def_intl
            prefix1 cost1
            prefix2 cost2
            ...     ...
        END

               This is how you define the cost for each node.  I deal with
               phone numbers so that it's global to all domains.  "def_nat"
               is the default cost for numbers beginning with "country-" in
               the nodelist.  "def_intl" is the default cost for all other
               nodes.  If the start of the phone number matches "prefix",
               it is assigned the "cost".  For Example,

               COST 30 150
                    1-804-555- 0
                    1-804-    10
               END

               Any phone numbers beginning with "1-804-555-" will have 0
               cost, Any other phone numbers in area code 804 will have a
               cost of 10.  All other U.S. phone numbers will have a cost
               of 30.  Any other phone number will have a cost of 150. 
               This is a very abbreviated example, yours should be much
               longer.  

               Like I stated, most mailer programs support this format in




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 111

               their configuration or an associated utility's
               configuration.  If so, DO NOT type this twice, since it
               wastes disk space and your time!

        When Mutant is run without a NOCHECK parameter, Mutant will check
        the archive bit of NODELIST.CTL.  If it is not set, it will check
        the archive bits of the files ORIGINALLY indexed in a previous run. 
        If a file is not found or has it's archive it set, Mutant will
        reindex the nodelist and clear the archive bit.  Normally, when you
        modify a file, DOS sets the archive bit for you.

     .MSG export/import
     ------------------
        Mutant includes the ability to automatically export and import FTSC
     .MSG files from/into its message base.  Whenever a user posts in a
     base, Mutant will export the messages when they logoff.  When
     importing, Mutant will only import those messages which don't have
     their "Sent" or "Local" flags set and which are from your address or
     not to your address.  Mutant supports the TOPT, FMPT, INTL and FLAGS
     kluge lines.  As of this writing, Mutant's .MSG support allows for
     file requests and other Fidonet message types which MTMAIL does not
     support.




     ----- Mutant BBS v1.1 Main Documentation (C) 1994 -----       Page 112

                                 +-------------+
                                 | Final Notes | 
                                 +-------------+ 

     1) The editors can only hold about 400 lines depending on the amount
        of color changes used.
     2) Mutant is Desqview aware which means it knows when it is running
        under Desqview and the text window routines will write to Desqviews
        video buffer, not directly to the screen.
     3) If you want a feature added or something made configurable that
        currently isn't configurable, let me know and I'll try to put it in
        the next version.
     4) By now you may have noticed Mutant does not do much of anything for
        you. You have to set the BBS up to do things.
     5) I tried to cover the information completely.  If something seems
        unclear, try it out.
