Amiexpress 4.0 Documentation

The name says it all!
Fri May 02, 2014 10:02 pm


  • Please add to document via Reply.

    @database AmiexDoc

    Copyright (c) 1993-94 LightSpeed Technologies Inc.
    All Rights Reserved

    @Remark $VER: (August 02 1994, 01:06:01)
    @Remark AmigaGuide database for the /X Documentation

    @node MAIN "/X Documentation (c)1993-94 L.Speed Technologies Inc.(August 02 1994, 01:06:01)"
    .: C O N T E N T S O F D O C U M E N T A T I O N :.

    @{" Introduction " Link Cap01} @{" Copyrights Information " Link Cap02}
    @{" Requirements " Link Cap03} @{" Installation of AmiExpress " Link Cap04}
    @{" How to install Configs " Link Cap05} @{" How to configurate Startup " Link Cap06}
    @{" All ToolTypes Information " Link Cap07} @{" The Standard Documentation " Link Cap08}
    @{" Programlogic of AmiExpress " Link Cap09} @{" MainMenu Commands of /X " Link Cap10}
    @{" AmiExpress HOST Addresses " Link Cap11} @{" MCI imbedded ControlSequence " Link Cap12}
    @{" Notable Features " Link Cap13} @{" Note worthy of Mention " Link Cap14}
    @{" QWK Mail Support " Link Cap15} @{" Icon Script Language Support " Link Cap16}
    @{" Trouble Shooting " Link Cap17} @{" Future planned Enhancements " Link Cap18}

    --------------------------------------------------------
    Complete Run-Thru Docs for AmiExpress Professional v4.0
    --------------------------------------------------------
    Original 3.36 Documentation written by Jens Langner (/X DocWriter).
    Original 4.0 Documentation written by The Outlaw (Andy)
    Copyright (c) 1993-94 LightSpeed Technologies Inc. All Rights Reserved.
    Any copy or illegal distribution of this Documentation is not allowed.

    @endnode
    @node Cap01 "Introduction & Explanation for /X"
    =======================================================================
    Ami-Express is a host Bulletin Board software program, allowing
    the transfer of data, between host and remote terminals via a
    telephone link. ( Obvious to some!! ). This data can be files
    uploaded or downloaded from remote (user end) from the BBS
    databases. Most Bulletin boards also contain message bases where
    you can read and leave electronic mail to other users. It is
    possible via some BBS`s to play on-line games, although these are
    of a simple nature, they can still be quite entertaining. For
    those of you that have been a user, either host or remote, for
    some time, will have noticed the major changes that Ami-Express
    has undergone. With the future proposed implementations Ami-Express
    will soon become comparable to other Major BBS programs found on
    Amiga and PC computers.
    =======================================================================

    @endnode
    @node Cap02 "Copyright information"
    =======================================================================
    If you own a an Illegal (Cracked copy) and you use it, then
    consider buying the original. This will not only provide you with
    support etc, but will encourage the further development of
    Ami-Express.

    ------------------------------------
    AmiExpress, AmiX-Net, Utilities,
    docs, and its source code are
    (c) Copyright 1993-94 by LightSpeed Technologies Inc.

    --------------------------------------------------------------
    AmigaGuide, AmigaGuide.info, amigaguide.library, WDisplay,
    WDisplay.info,
    (c) Copyright 1992 Commodore-Amiga, Inc. All Rights Reserved.
    Reproduced and distributed under license from Commodore.
    --------------------------------------------------------------
    AmiExpress is a commercial product, NOT shareware
    If you used it, please buy it!
    ------------------------------------
    =======================================================================
    @endnode
    @node Cap03 "Requirements"
    =======================================================================
    To install AmiExpress V4.0 you must have the following things:

    Program Location Description
    --------- -------- -----------
    Express BBS/Utils Bulletin Board System
    ACP WBSTARTUP Bulletin Board controller

    - The Workbench should be installed to run ACP
    - a stack of at least 50000 bytes
    - a Amiga Model (500/600/1000/1200/2000/2500/3000/4000)
    - the installed Version of Kickstart V2.0 (Soft or Hardware Version)
    - at least 2 MB free Space to be able to get uploads
    - the installed .INFO Files in the directories.

    It is recommend to install AmiExpress on a HardDrive to increase
    The Speed of AmiExpress and to have enough space for Uploading
    software on the BBS. If you only want to test the AmiExpress Version
    than you can install the BBS also on a DiskDrive.
    =======================================================================
    @endnode
    @node Cap04 "How to install AmiExpress on your HardDisk"
    =======================================================================
    To install AmiExpress V4.0 you must have at least all the
    Requirement which were mentioned above. Now lets get going on with the
    normal installation of AmiExpress.

    Now take your registered LZH file which you downloaded from your
    favorite Distribution Board of AmiExpress and decrunched it please
    on a Disk or take your Disk on which AmiExpress is already installed.
    Now you must know where you want to install AmiExpress on your hard-
    drive. To explain the installation of AmiExpress much better it is
    recommend that you install the whole AmiExpress into the BBS:
    Directory on your HardDrive. If this Directory doesn't exists you
    have to make it on your HardDisk.
    Now take your AmiExpress disk and take a look an it and you will
    see the following things:

    -------------------------
    S (dir)
    libs (dir)
    Trashcan (dir)
    BBS (dir)
    Trashcan.info
    -------------------------

    Now you must know how many Conferences do you want to install in your
    BBS. Now I will explain how you install the new Express V4.0:

    - The whole AmiExpress can only be run if the Workbench has been installed
    and the ACP has been started from Workbench otherwise express can`t be
    installed.
    - The whole way of installing AmiExpress has been changed from V2.30 till
    V4.0. There is no longer an ACP.STARTUP to configurate your whole BBS.
    - Now you need an .INFO files for every configuration. This will be
    described in the next section.
    =======================================================================
    @endnode
    @node Cap05 "The Way to install the Configuration Files"
    =======================================================================
    The .INFO Files now take control over the express system. The
    whole ACP.STARTUP has now been changed to single INFO Files where you
    put in the configuration. First of all make sure you installed the
    workbench, otherwise you can`t install the AmiExpress V4.0 version.

    For further information look at the section which describes all info
    files for installing AmiExpress. But first you must decide how many nodes
    you want to install to configurate your express the right way. Since
    version 3.60 you may have up to 32 nodes.

    We highly suggest that you store AmiExpress and all associated
    programs in a volume called BBS: this simplifies finding
    any problems you may have. Installing AmiExpress is fairly complicated
    so please be patient, even those who have run earlier version of
    AmiExpress should notice a lot of setup changes, Therefore there
    will not be any quick setup instructions.
    =======================================================================
    @endnode
    @node Cap06 "How to install Express in your Startup"
    =======================================================================
    In order to get AmiExpress work perfectly you have to add the following
    things at your User-StartUp or Startup-Sequence file in the S:
    directory:

    -----cut here-----------

    ASSIGN BBS: SYS:BBS
    PATH BBS:UTILS ADD

    -----cut here-----------

    NOTE*

    Since version 3.38 of AmiExpress you now have the ability to make
    AmiExpress resident. Doing this should speed up program execution
    and also conserve memory.

    Making AmiExpress resident:

    1. change all nodestart tooltypes in the NODE icons to reflect the
    following:

    NODESTART=express

    2. Update your s:User-StartUp script by adding the following after
    your BBS Assignment:

    ---------cut here-----------

    RESIDENT EXPRESS BBS:EXPRESS

    ---------cut here-----------

    Now to start the ACP.SERVER you should copy the ACP.CTRL & INFO FILE
    into the WBSTARTUP directory at your HardDisk directory.

    You can also start ACP from a shell but the INFO file MUST be in the
    same directory as ACP to have the correct settings.

    The above mentioned ASSIGN statement indicates that you have your
    BBS installed in a directory called BBS on the system drive.

    Once all of this is complete you should be able to reset your system.

    NOTE: You should have a BBS:UTILS directory. Use this directory to
    ~~~~ put all AmiExpress required Utils.
    =======================================================================
    @endnode
    @node Cap07 "ToolTypes in ICONS to run AmiExpress..."
    =======================================================================
    To run AmiExpress you need a lot of ICONS contained in different
    directories. These ICONS contain much of information to run /X.
    This Information are stored as TOOLTYPES. Now I will list for you
    all needed ICONS and the TOOLTYPES for it. To change the configuration
    of your BBS you should click on the icon and go with the right
    mousebutton to the workbench menu to view the information of the
    ICON. There you will find the TOOLTYPES to configurate your personal
    AmiExpress. For more information look at the example icons on disk.

    @{" ACP.INFO ICON " Link Cap0701} @{" NODE(x).INFO ICON " Link Cap0702}
    @{" <CONF>.INFO ICON " Link Cap0703} @{" CONFCONFIG.INFO ICON " Link Cap0704}
    @{" DRIVES.INFO ICON " Link Cap0705} @{" SCREENTYPES.INFO ICON " Link Cap0706}
    @{" COMPUTERLIST.INFO ICON " Link Cap0707} @{" NAMESNOTALLOWED.INFO ICON " Link Cap0708}
    @{" PROTOCOLS <Directory> " Link Cap0709} @{" ACCESS.INFO ICON " Link Cap0710}
    @{" FCHECK <Directory> " Link Cap0711} @{" NODE(x) <Directory> " Link Cap0712}
    @{" COMMANDS <Directory> " Link Cap0713} @{" STORAGE <Directory> " Link Cap0714}

    =======================================================================
    @endnode
    @node Cap0701 "DH0:WBSTARTUP/ACP.INFO ICON ToolTypes information"
    =======================================================================
    ACP.INFO - This ICON only represents the definition to
    ~~~~~~~~ ACP, and required data for the BBS to operate
    and locate the other definition files.
    ACPFONT= - Tell ACP what font you would like to have.
    IE: ACPFONT=cleanibm.font
    BACKUP.<numb>= - tells ACP to make backup from a specified file. A
    history of 5 backups will be made. <numb> is the
    number occurrence of this tooltype.
    BBS_NAME= <name> - Specifies the name of your BBS.
    BBS_STACK= <stack> - Specifies the STACK number of your System.
    BBS_LOCATION= <dir>- Specifies the location of all BBS main files.
    This directory will be the directory where the
    Node(x) directories should be. Along with all
    of the .DEF files.
    If the location is a directory, then the directory
    name must have trailing '/' when specified in the
    tooltype.
    BUTTON_NAME.<numb>=- defines the name of the specified button, the
    <numb> can range from 1-15.
    BUTTON_COMMAND.<numb>
    - defines the command to be executed when this
    button is selected, <numb> can range from 1-15.
    BBS_GEOGRAPHIC=<geo> Specifies the Geographic Location of Your BBS
    this will be mentioned in the LOGON Sequence...
    CREDIT_BY_KBYTES - This allows the sysop to make xpress keep track of
    credits, (files) by Kbytes instead of Bytes.
    ICONFIED - Will toggle ACP to start ICONFIED or not
    ICONIFY.LEFTEDGE= - tells ACP the number of pixels from the left edge
    of the screen to place the ICONFIED window.
    ICONIFY.TOPEDGE= - tells ACP the number of pixels from the top edge
    of the screen to place the ICONFIED window.
    LONG_WHO - This tooltype will provide a separator between
    each node listed in the WHO command.
    MULTICOM_PORT - If this tooltype is placed the MULTICOM PORT
    of AmiExpress is turned on for multinode systems.
    NEW_ACCOUNTS=APPEND- This tells ACP to ADD new User to the End of
    the Databases.
    NODE<x>_LOCATION= - This lets you specify the location of a given node
    NODEx_NAME=<string>- This lets you specify a name for your node, the
    default is the same as the BBS_NAME
    NODEx_SYSOP=<string> This lets you have a different SYSOP per node, this
    should effect comment to SYSOP and paging the SYSOP.
    The default is BBS_SYSOP.
    NODES=1 - Tells ACP how many Nodes you have
    NUTTON_NAME.<numb>=- defines the name of the specified nutton, the
    <numb> can range from 1-15.
    NUTTON_COMMAND.<numb>
    - defines the command to be executed when this
    nutton is selected, <numb> can range from 1-15.
    All NUTTONS will be passed the selected NODE
    number as a command line argument.
    PRIORITY= <numb> - Specifies the taskpriority for ACP to run.
    RESTRICT.<numb>= - tells ACP to place a filenote on the specified
    file. This prevents users from viewing or
    downloading the restricted files.
    SHORT_DONOTMOVE - if this tooltype is placed, then if the '/X' gadget
    is selected your ACP window will not move.
    SYSOP_NAME= <name> - Specifies your name.

    =======================================================================
    @endnode
    @node Cap0702 "BBS:Node(x).INFO ICONS ToolTypes information"
    =======================================================================
    NODE(x).INFO - This Icon will specify some information about
    ~~~~~~~~~~~~ how to install the Node in AmiExpress (x) = Nodenumber
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CALLERS_LOG - tells /X to record all events to a file called
    CallersLog in the node directory.
    CAPITOL_FILES - tells /X to make all upload files names UPPER_CASE
    letters.
    CHAT_ON - tells /X that the node should have the CHAT FLAG
    ON, when the node is started.
    COPYBUFFER= <numb> - this allows you to specify the maximum amount
    of memory that you wish express to use when
    copying files from one partition to another.
    If you do not specify this, then express will
    try and allocate memory enough to copy the file
    with 1 WRITE. Of course,if there is not enough memory,
    it will decrement by 8Kblocks, until it can copy it,
    regardless of the COPYBUFFER.

    ie: COPYBUFFER=100000

    ^---------100K copy buffer
    CONF_DB=<string> - This tooltype will specify the filename
    (not filepath) to use when loading msgbase pointers
    for a given node. The default is CONF.DB
    DEBUG_LOG - This turns on the DEBUGGING Log for Express
    DEF_SCREENS - DEF_SCREENS tells AmiExpress to use non security
    screens before looking for security screens. ie:


    BULL30.TXT
    BULL.TXT

    In the above case, express would start it's search
    for screens with BULL.TXT, this can be a considerable
    time savings if the majority of your screens are not
    security oriented. Under this scheme, BULL0.TXT
    is now a valid security designator. AmiExpress searches
    for security oriented text in increments of 5 based
    on the user's password. So if a user has an access
    level of 255, and there is only a BULL30.TXT,
    then express would have to check for the existence of
    88 screens prior to locking in on BULL30.TXT. By
    default express does this now. We are just saying, if
    if you do not have security text or most of your
    texts aren't security oriented, then we recommend
    using the DEF_SCREENS.

    NOTE: if you use the DEF_SCREENS option, but you have
    security oriented menus to display, then instead of
    having:

    BULL30.TXT
    BULL.TXT

    use:

    BULL30.TXT
    BULL0.TXT

    and simply do not have a BULL.TXT for that bulletin.
    DISABLE_QUICK_LOGONS
    - Allows you to prevent a user from using the
    skipping of the Logon/off texts in your BBS.
    DOOR_LOG - tells /X to record the start and end time for
    Module use.
    EXPFONT= - tells Express what font you would like to have.
    IE: EXPFONT=cleanibm.font
    FILESNOTALLOWED=<pathname>
    - <pathname> is a full path and file name to a ASCII
    file which lists filenames you do not wish uploaded
    to your system.
    FREE_RESUMING - This tells Express to allow the FREE RESUMING of
    uploaded files for ALL Users in the BBS.
    HDTRANSBUFFER= <buffers>
    - HDTRANSBUFFER allows you to change the buffer size
    from serial to HardDisk. This option is a better
    alternative than using a RAMPEN because it works on a
    file by file basis, whereas the RAMPEN method has to
    wait until all uploads are complete.
    You may specify as many buffers as you like. The
    number of buffers default to 8 if this tooltype is not
    used. Here is a formula for determining how much
    memory will be allocated for transfers when the node
    is started:

    ((buffers+2)*1024)*2
    ^--- This is required due to
    the double buffering.
    ie:

    HDTRANSBUFFER=20 would require 45,056 bytes of memory

    1. ((20+2)*1024)*2
    2. (22*1024)*2
    3. (22528)*2
    4. 45056
    IDLENODE - tells ACP not to start the node and wait for click.
    KEEP_UPLOAD_CREDIT= <numb>
    - specifies the user which upload credit will be
    kept if he downloaded something.
    Can have 1 of 2 values '0' or '1'.
    There meaning is as follows:

    '0' = Do not penalize a user 'time' for uploads.

    '1' = Do not penalize a user 'time' for uploads
    and give them an additional %50 time
    increase to the remaining time on-line.
    MAX_MSG_QUE - this allows you to specify the maximum number of
    messages (olm/chat) that can be queued to that node.
    Anything that is sent after the maximum will be
    ignored. If this tooltype is not specified then
    express defaults to 5.
    NAME_PROMPT= - This tooltype lets you specify the prompt to use
    for the LOGON procedure.
    NEWUSER_PASSWORD= - tells ACP that a user is required to enter the
    specified password prior to join as a new user.
    NODESTART= - tells ACP where Express is located to start node.

    NO_TIMEOUT - tells /X to disable the keyboard TIMEOUT option.
    NO_MCI_MSG - tells /X to disable the ability to use MCI
    commands in the message base.
    NO_WILDCARD_EXPANSION
    - This tells Express to not allow the using of
    WILDCARD expansions (*) in the specified NODE.
    PRIORITY= <numb> - tells ACP the priority for this Node in respects
    to the system.
    PHONECHECK - If this tooltype is activated, express will ask
    for the 4 last digits of the specified user
    phonenumber at every LOGON.
    PLAYPEN= <dir> - tells ACP that this node is going to use a SYSOP
    directory for initial uploads to go into.
    !! USING RAM: FOR THIS IS HIGHLY DISCOURAGED !!
    You must create this directory for running.
    QUIETNODE - tells ACP to make this node quiet to the WHO
    command, and some 3rd party modules.
    RAMWORK - This tells the Node not to check for FREE SPACE
    like when wanting to use RAM: for Playpen.
    RINGCOUNT=<rings> - This tooltype will instruct the node, to what the
    specified number of rings to come across the modem
    sequentially before answering the modem.
    REMOTE_PASSWORD= - tells ACP that a user is required to enter the
    specified password prior to gaining access to
    SHELL.
    SCREENS=<location> - This will tell express to use one common area
    for locating .TXT files, if you use this option for
    conferences, then you will need to have a
    bulletins drawer in that directory as well so the
    bulletins can be found.
    SCREENPENS - this tooltype is primarily there for testing the
    color configurations of the upload file requestor and
    overall screen color appearances, It is hard to
    explain how this works, but we have 12 color pens we
    can configure that make up the look of the screen,
    the SYSOP can define what those 12 colors will be,
    so here is an example:

    SCREENPENS=101010110110

    0 = BLACK
    1 = WHITE
    2 = GREEN
    3 = YELLOW
    4 = BLUE
    5 = MAGENTA
    6 = CYAN
    7 = RED

    Now for a 1 bitplane screen (2 colors) you will use
    only 1 and 0, so you experiment with this, and see
    what you can come up with.
    SENTBY_FILES - tells /X that you wish to have user`s handle
    placed at the end of his/her files descriptions.
    STEALTH_MODE - This will have express ask for the system password
    before the connect message and BBS name.
    START_LOG - tells /X to record the start & end times of the
    NODE.
    SYSTEM_PASSWORD= - tells ACP that this node is going to require users
    to enter a password before allowing access to the
    system.
    SYS_PWRD_PROMPT= - This tooltype lets you specify the prompt to use
    for the system password prompt. default is >:
    SYSOP_CHAT_COLOR= - tells /X which ANSI color to use when display the
    SYSOPS Chat. (Range 31-37)
    TRAPDOOR - tells ACP that this node is going to run Express
    indirectly via another program. If this option is
    used then you should specify the program to be run
    externally in the NODESTART= tooltype.
    TRAP_SERIAL - This will Trap the A2232 Error Messages
    UD_LOG - tells /X to record all uploads & downloads to a
    file called UDLOG in the node directory.
    USER_CHAT_COLOR= - tells /X which ANSI color to use when displaying
    the User`s Chat. (Range 31-37)
    USERDATA_NAME=<path>-This lets you specify an alternate location for
    USERDATA.
    USERKEYS_NAME=<path>-This lets you specify an alternate location for
    your USERKEYS.
    USERMISC_NAME=<path>-This lets you specify an alternate location for
    your USER.MISC.
    USERNUMBER_LOGIN - tells acp to allow a user to login with his account
    number instead of his name/handle.
    VIEW_PASSWORD - This tooltype will allow you to see what users are
    typing in for there passwords and new user
    passwords.
    =======================================================================
    @endnode
    @node Cap0703 "BBS:<CONF>.INFO ICON ToolTypes information"
    =======================================================================
    <CONF>.INFO - This Icon will specify some information about
    ~~~~~~~~~~~ how to install the Conference. <CONF> = ConfName
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CONFDB_SHARED=<confnum>
    - This tooltype allows you to tell a conference to
    use another conference's CONF.DB file for storing
    and retrieving user's file credits, and ratios.
    NOTE: ACS.CONFERENCE_ACCOUNTING is needed for this
    to take effect.
    CUSTOM - This will tell express that THIS conference is
    using AmiX-Net Mail.
    DLPATH.<numb>=<str>- Required for all conferences which allow downloads
    and file viewing. Specifies the directory of files
    available for downloading. <numb> is the number
    occurrence of the DLPATH tooltype.
    If the download path is a directory then the
    directory name in tooltype must have a
    trailing '/'.
    FREEDOWNLOADS - Tell /X that the current conference allows free
    downloads.
    FORWARDMAIL= <str> - Redirects Comments to the SYSOP to another user.
    FORCE_NEWSCAN - This will force your users to have a New Mail scan
    whether they have selected it or not.
    INTERNETNAME - This will tell Express what INTERNETNAME to use for
    the current conference mail. If this tooltype is not
    set, then express will default to login name. This
    is optional.
    MENU_PROMPT= - This tooltype lets you specify the MenuPrompt to
    use in this Conference.
    NDIRS= <numb> - Required for all conferences which allow file
    transfers. Specifies the number of file catalogs
    for the conference.
    NO_NEWSCAN - This will Force No New Mail scan whether a users has
    turned it off or not.
    REALNAME - This will turn on the realname option in the current
    conference. This is optional.
    SHOW_NEW_FILES - If used in the CONF icon, will act like the above
    force command for messages.
    IE: Force your users to get a new file scan whether
    they have chosen it or not.
    ULPATH.<numb>=<str>- Specifies an overflow directory for uploads to goto
    , this is useful in instances where the default
    upload directory does not room for anymore files.
    <numb> is the nth occurrence of the ULPATH tooltype.
    If the upload path is a directory then the
    directory name in the tooltype must have a
    trailing '/'.
    =======================================================================
    @endnode
    @node Cap0704 "BBS:CONFCONFIG.INFO ICON ToolTypes information"
    =======================================================================
    CONFCONFIG.INFO - This ICON is required to be in the BBS directory
    ~~~~~~~~~~~~~~~ This defines your conferences.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NCONFS= <numb> - tells /X the number of conferences your BBS has.
    NAME.<numb>=<name> - tells /X the name of your conferences.
    LOCATION.<numb>= - tells /X the location of conference (DIR).
    RELATIVE_CONFERENCES
    - tells /X to only show user accessible confs VS.
    showing all conferences on the system.
    =======================================================================
    @endnode
    @node Cap0705 "BBS:DRIVES.INFO ICON ToolTypes information"
    =======================================================================
    DRIVES.INFO - This ICON should be placed in the BBS: Directory
    ~~~~~~~~~~~ Here you place in your Upload directories.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    DRIVE.<numb>=<name>- tells /X which drives to use in determining free
    space for uploads.
    IE: DRIVE.1=DH0:
    DRIVE.2=DH1:
    =======================================================================
    @endnode
    @node Cap0706 "BBS:SCREENTYPES.INFO ICON ToolTypes information"
    =======================================================================
    SCREENTYPES.INFO - This ICON should be placed in the BBS: Directory
    ~~~~~~~~~~~~~~~~ Here you can put in information for different
    ScreenTypes like different languages.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TYPE.<numb>=<EXT> - This specifies the Extension for the ScreenTypes
    like "TXT","GER" & "ENG". you can make your own.
    TITLE.<numb>=<name>- This specifies the name of the ScreenTypes you want
    to have like "AMIGA ANSI","GERMAN" & "ENGLISH".
    You can specify your own Title.
    =======================================================================
    @endnode
    @node Cap0707 "BBS:COMPUTERLIST.INFO ICON ToolTypes information"
    =======================================================================
    COMPUTERLIST.INFO - This ICON tooltypes specifies the ComputerTypes
    ~~~~~~~~~~~~~~~~~ which the Users can select.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    COMPUTER.NUM=<numb> - Specifies the total number of ComputerTypes you
    have in your BBS System.
    COMPUTER.<numb>= - Specifies the Computer Description the users can
    choose from there own USERDATA.
    =======================================================================
    @endnode
    @node Cap0708 "BBS:NAMESNOTALLOWED.INFO ICON ToolTypes information"
    =======================================================================
    NAMESNOTALLOWED.INFO - This ICON tooltype specifies UserNames you
    ~~~~~~~~~~~~~~~~~~~~ don`t want to use in your BBS System. In this
    tooltype Names like: ALL,EALL,SYSOP should be there,
    to prevent user to log in the BBS with these Names
    This ICON should be placed in the BBS: directory.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NAME.<numb>= - Specifies the Name you want to prevent to be used
    in your BBS System.
    =======================================================================
    @endnode
    @node Cap0709 "BBS:PROTOCOLS Directory information"
    =======================================================================
    Protocols.INFO - This ICON only represents a Directory. This
    ~~~~~~~~~~~~~~ Directory is required to be within the BBS:
    directory.

    ABOUT: This directory will contain XPR definitions for AmiExpress.

    IMPORTANT NOTE: - You must have a door called XPR, and have it
    located in the BBS:COMMANDS/SYSCMD dir for the
    Xpr's to work properly.

    The following list are ICONS which should be placed in this directory:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    @{" XPRTypes.INFO ICON " Link Cap070901} @{" <XFERlib>.INFO ICON " Link Cap070902}

    @{" Hydra.INFO ICON " Link Cap070903}

    =======================================================================
    @endnode
    @node Cap070901 "BBS:PROTOCOLS/XPRTypes.INFO ICON ToolTypes Info"
    =======================================================================
    XPRTypes.INFO - This ICON tooltypes specify the XFER Protocols
    ~~~~~~~~~~~~~ you want to be used for your BBS System. This
    ICON should be placed in the BBS:Protocols/
    directory.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TITLE.<numb>=<title> - Specifies the Title for the XFER Lib to be
    displayed in the BBS
    LIBRARY.<numb>=<library | INTERNAL>

    - Specifies the Library you want to use for the
    <numb> Title in your BBS. Use "INTERNAL" for
    the normal AmiExpress Internal Protocol.
    =======================================================================
    @endnode
    @node Cap070902 "BBS:PROTOCOLS/<XFERLib>.INFO ICON ToolTypes Info"
    =======================================================================
    <XFERLib>.INFO - This ICON tooltypes specify the options for
    ~~~~~~~~~~~~~~ for each XFERLibrary you use in your BBS system.
    e.g.: XPRZmodem.INFO = xprzmodem.library
    XPRYmodem.INFO = xprymodem.library
    This ICON should be placed in the BBS:Protocols/
    directory.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OPTIONS=<opt> - Allowed you to specify the Options for the
    XFERLibraries.
    e.g.: OPTIONS=TN,AY,OR,KY,SN,RN,DN,F0,B32
    AE_BATCH - All batch protocol icons must contain the tooltype
    AE_BATCH instead of Batch.
    =======================================================================
    @endnode
    @node Cap070903 "BBS:PROTOCOLS/<Hydra>.INFO ICON ToolTypes Info"
    =======================================================================
    <Hydra>.INFO - This ICON tooltype specifies the options for
    ~~~~~~~~~~~~ the new hydra protocol. To have this option work
    in express you must:
    1st: Have the aehydra file in the Doors:
    directory. (The aehydra library is built
    into this file, so no library is needed
    in the Libs: dir.
    2nd: You must have the correct settings in the
    in the Hydra.Info icon.

    e.g. OPTIONS=AEHYDRA
    TXWINDOW=0
    RXWINDOW=0
    STACK=4096

    YOU DO NOT NEED AE_BATCH IN THIS ICON.

    This ICON should be placed in the BBS:Protocols/
    directory.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AE_BATCH - All batch protocol icons must contain the tooltype
    AE_BATCH instead of Batch.
    OPTIONS=<opt> - Allowed you to specify the Options for the
    XFERLibraries.
    e.g.: OPTIONS=TN,AY,OR,KY,SN,RN,DN,F0,B32
    =======================================================================
    @endnode
    @node Cap0710 "BBS:ACCESS.INFO ICON ToolTypes Information"
    =======================================================================
    ACCESS.INFO - This ICON tooltypes specify the access defaults
    ~~~~~~~~~~~ assigned to a users account when he/she logs on.
    %References: ACS.DEF.INFO ICON
    These defaults can be used by using the
    ACS.OVERRIDE_DEFAULTS Option.

    The following list are ICONS which should be placed in this directory
    to have ACCESS Levels,AREA Names & PRESETS for the User Accounts:

    @{" ACS.<level>.INFO ICONS " Link Cap071001} @{" AREA.<AXSName>.INFO ICONS " Link Cap071002}
    @{" PRESET.<x>.INFO ICONS " Link Cap071003}

    =======================================================================
    @endnode
    @node Cap071001 "BBS:ACCESS/ACS.<level>.INFO ICON ToolTypes Info"
    =======================================================================
    ACS.<level>.INFO - This ICON Must be placed in the ACCESS directory
    <username>.INFO and it can be the USERNAME or the Accesslevel.
    ~~~~~~~~~~~~~~~~ i.e.: ACS.010, ACS.200, ACS.255, BYTEMASTER, USER
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ACS.ACCOUNT_EDITING - Gives Access to Account Editing.
    ACS.ATTACH_FILE - Allows user to make a file attached to messages.
    ACS.BREAK_CHAT - Allows user to break the sysopchat with CTRL-C.
    ACS.CONFFLAGS - Allows user to use the CF command.
    ACS.CONFERENCE_ACCOUNTING
    - This will turn on the Conference Account for a
    User. So now you can define a Ratio for each
    Conference to each User.
    ACS.CREDIT_ACCESS - Allows a user (co-sysop/sysop) to view CREDIT
    ACCOUNTS as long as they have ACCOUNT EDITING access.
    ACS.COMMENT_TO_SYSOP - Allows user to leave comment to SYSOP.
    ACS.DUPE_FILECHECK - This will turn on the DUPE FILECHECKING after
    the upload for the specified user.
    ACS.DOWNLOAD - Allows user to download files.
    ACS.DISPLAY_USER_STATS
    - Allows user to view his/her status on the system.
    ACS.DELETE_MESSAGE - Allows user to delete Messages.
    ACS.EDIT_DIRS - Allows user to Edit catalogs of Files.
    ACS.EDIT_FILES - Allows user to Edit Files in your BBS.
    ACS.EDIT_USER_INFO - Allows a user to edit his/her account.
    ACS.EDIT_USER_NAME - Allows user to change his/her handle.
    ACS.EDIT_USER_LOCATION
    - Allows user to change his/her location.
    ACS.EDIT_PHONE_NUMBER- Allows user to change his/her phone number.
    ACS.EDIT_PASSWORD - Allows user to change his/her password.
    ACS.ENTER_MESSAGE - Allows user to enter messages.
    ACS.EALL_MESSAGES - Allows user to enter EMAIL to All user so that they
    are forced to read them.
    ACS.FULL_EDIT - Allows User to use the FULL-SCREEN-EDITOR if
    one is located in the SYSCMD <dir>.
    ACS.FILE_LISTINGS - Allows to view catalog of available files.
    ACS.FILE_EXPANSION - Allows user to wildcard files.
    ACS.FREE_RESUMING - Allows user the free resuming of partuploads.
    ACS.HIDE_FILES - Prevents the user from seeing which files
    are being transferred via the WHO command and
    NEWCHAT (who).
    ACS.JOIN_CONFERENCE - Allows user to Join a Conference.
    ACS.LIST_NODES - Allows user to view the On-line Nodes.
    ACS.MAX_PAGES=<numb> - This will set the maximum number of pages allowed
    per session. If a user goes above this limit,
    then page sysop will be translated to Comment to
    Sysop.
    ACS.MCI_MESSAGE - Allows user to write MCI Messages in the BBS.
    ACS.MODIFY_VOTE - Allows the Sysop access to change or modify the
    information in the voting booth.
    ACS.NEW_FILES_SINCE - Allows user to list recent catalog entries.
    ACS.OVERRIDE_DEFAULTS- OverRide access defined in the ACCESS Icon
    tooltypes above.
    ACS.OLM - Allows users to send OLM, (Internal ONLINE Message
    sender), messages to ALL Nodes.
    ACS.OVERRIDE_CHAT - Allows user to OverRide the /X chat flag and
    successfully page the SYSOP.
    ACS.OVERRIDE_TIMES - Allows user to bypass the time restrictions
    placed on a Node.
    ACS.PAGE_SYSOP - Allows user to page sysop.
    If the sysop page flag on express is turned off
    the user will be notified that you are not
    available.
    ACS.PUB_MSGFILES - Allows user to upload a file into the MSGBASE
    and to make it automatically ATTACHED to (ALL)
    Users with "X"Option.
    ACS.PRI_MSGFILES - Allows user to upload a file into the MSGBASE
    and to make it automatically ATTACHED to another
    user with "X" Option.
    ACS.QUIET_NODE - Allows user to make himself invisible from other
    nodes by the "Q" command in Main Menu.
    ACS.READ_BULLETINS - Allows user to read the normal Bulletins.
    ACS.READ_MESSAGE - Allows user to read messages.
    ACS.RELOGON - Allows user to make a RELOGON by pressing "RL"
    in the Main Menu Prompt.
    ACS.REMOTE_SHELL - Allows user to gain access to the Remote Shell.
    ACS.SYSOP_READ - Allows user to read mail, regardless of whose it
    is.
    ACS.SHOW_PAYMENTS - Allows user to be able to see when there credit
    account will expire via the 'S' command.
    ACS.SYSOP_VIEW - Allows user to view Files like a SYSOP.
    ACS.SYSOP_DOWNLOAD - Allows user to make a SYSOPDOWNLOAD of any path.
    ACS.SYSOP_COMMANDS - Allows user to make normal SYSOP Commands.
    ACS.ULSTATS - Allows user to view number of new uploads since
    the last SYSOP LOGON.
    ACS.UPLOAD - Allows user to Upload files.
    ACS.VOTE - Allows user to vote in the voting booth.
    ACS.WHO_IS_ONLINE - Allows user to view Nodes with "WHO" command.
    ACS.VIEW_A_FILE - Allows user to view downloadable text files.
    ACS.XPR_RECEIVE - Allows user to receive file with XPR Libraries.
    ACS.XPR_SEND - Allows user to send files with XPR Libraries.
    ACS.ZIPPY_TEXT_SEARCH- Allows user to search the catalog for key items
    with the ONLINE search features of /X.
    ACS.ZOOM_MAIL - Allows user to Zoom Mailing from some message.
    =======================================================================
    @endnode
    @node Cap071002 "BBS:ACCESS/AREA.<AXSName>.INFO ToolTypes Info"
    =======================================================================
    AREA.<AXSName>.INFO - This ICON should be placed in the ACCESS dir.
    ~~~~~~~~~~~~~~~~~~~ It defines the Access a user has to Conferences.
    The same name should be placed in the ACCOUNT
    EDITING at "AREA NAME"
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CONF.<x> - Allows a user with that AREA NAME to join the
    specified conference you inserted at <x>
    =======================================================================
    @endnode
    @node Cap071003 "BBS:ACCESS/PRESET.<x>.INFO ToolTypes Info"
    =======================================================================
    PRESET.<x>.INFO - Allows you to choose PRESETS for the Account
    ~~~~~~~~~~~~~~~ editing over tooltypes. This ICON should be
    <x> = 1 - 8 placed in the ACCESS directory.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PRESET.AREA=<name> - Specifies the AREANAME for the UserAccess that
    the user has access to.
    PRESET.ACCESS=<numb> - Specifies the Access for the Preset you want to
    set.
    PRESET.CONFRJOIN= - Specifies the Conference when a User is selected
    with this PRESET. Then he will automatically
    join this CONF in his next LOGON.
    PRESET.DAILY_BYTE_LIMIT=
    - Specifies the Daily Byte Limit for the Preset you
    want to set.
    PRESET.RATIO_TYPE= - Specifies the RatioType for the Preset you want
    to set.
    PRESET.RATIO=<numb> - Specifies the Ratio you want to have for the
    preset.
    PRESET.TIME_LIMIT= - Specifies the Time Limit for the Preset you want
    to set.
    =======================================================================
    @endnode
    @node Cap0711 "BBS:FCHECK Directory Information"
    =======================================================================
    FCHECK.INFO - This ICON only represents a Directory. This
    ~~~~~~~~~~~ Directory is required to be within the BBS:
    directory.

    ABOUT: This directory will contain Checker definitions for AmiExpress.

    The following list are ICONS which should be placed in this directory:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    @{" <EXTENSION>.INFO ICONS " Link Cap071101}

    =======================================================================
    @endnode
    @node Cap071101 "BBS:FCHECK/<EXT>.INFO ICON ToolTypes Info"
    =======================================================================
    <EXT>.INFO - These ICONS are used for the FCHECK in Express
    ~~~~~~~~~~ and should be placed in the directory BBS:FCHECK
    <EXT> = The Extension of Files like "DMS", "WRP"
    & "LHA"
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CHECKER=<comp.Path> - Specifies the complete Path to the FileChecker
    you want to have for the extension.
    ERROR.<numb>=<name> - Specifies the Error Message if a file is corrupt
    and have to move to the Hold Directory. You
    can specify unlimited Error Messages by changing
    the <numb>.
    OPTIONS=<options> - Specifies the option you want to start with the
    FileChecker. This Will be put after the executing
    of FileChecker.
    PRIORITY=<numb> - Here you can specify the Taskpriority on which
    the FileChecker will be run.
    SCRIPT=<script path> - This will tell express to run that script after
    it finishes testing the file. Once that is
    finished then express will go ahead and move the
    file to where ever.
    NOTE: express will pass the file name as the
    ~~~~ first command line argument to the SCRIPT.
    STACK=<numb> - Here you can specify the Stack which you want to
    have for the checker.
    =======================================================================
    @endnode
    @node Cap0712 "BBS:NODE(x) Directory Information"
    =======================================================================
    NODE<x>.INFO - This ICON represents a Directory. This
    ~~~~~~~~~~~~ Directory is required to be within the BBS:
    directory.

    The following list are ICONS which should be placed in this directory:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    @{" CONNECT.DEF.INFO ICON " Link Cap071201} @{" WINDOW.DEF.INFO ICON " Link Cap071202}
    @{" TIMES.DEF.INFO ICON " Link Cap071203} @{" NRAMS <Directory> " Link Cap071204}
    @{" SERIAL <Directory> " Link Cap071205} @{" MODEM <Directory> " Link Cap071206}

    =======================================================================
    @endnode
    @node Cap071201 "BBS:NODE<x>/CONNECT.DEF.INFO ICON Info"
    =======================================================================
    CONNECT.DEF.INFO - This ICON should be placed in the NODE<x>
    ~~~~~~~~~~~~~~~~ directory and specifies special Connect Messages
    to change the BaudRate.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    <connectmsg>=<baud> - if the Connect Message is the same the BaudRate
    will be changed to the specifies one.
    example:
    CONNECT 2400/ARQ/MNP/MNP5=9600
    - if the Connect message is the above one the
    hardware BaudRate will be changed to 9600 baud.
    NOTE: This tooltype is not mandatory. It was basically
    introduced to allow older modems to show correct
    connect strings.
    i.e.:
    Older HST modems even though connected at
    14400, only showed a connect string that was
    displayed through the modem hardware as 9600.
    =======================================================================
    @endnode
    @node Cap071202 "BBS:NODE<x>/WINDOW.DEF.INFO ICON Info"
    =======================================================================
    WINDOW.DEF.INFO - This ICON should be placed in the NODE<x>
    ~~~~~~~~~~~~~~~ directory and specifies the Window Prefs of the
    node.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    WINDOW.NUM_COLORS= - Specifies the Number of Colors you want to have
    for the Node Window.
    WINDOW.INTERLACE= - Specifies that you want to have this window in
    HighRes-Interlace Mode.
    WINDOW.LEFTEDGE= - Specifies the beginning of the Node Window in the
    Left Edge.
    WINDOW.TOPEDGE= - Specifies the beginning of the Node Window in the
    Top Edge.
    WINDOW.WIDTH=<numb> - Specifies the WIDTH of the Node Window.
    WINDOW.HEIGHT=<numb> - Specifies the HEIGHT of the Node Window.
    WINDOW.STATBAR - This turns on the STATBAR in the Node Window
    WINDOW.ICONIFIED - Specifies if you want to have the Node Window
    ICONIFIED if you start the ACP.CTRL.
    WINDOW.TO_FRONT - Specifies if you want the Node Window
    to pop up automatically when starting ACP.
    =======================================================================
    @endnode
    @node Cap071203 "BBS:NODE<x>/TIMES.DEF.INFO ICON Info"
    =======================================================================
    TIMES.DEF.INFO - This ICON should be placed in the NODE<x>
    ~~~~~~~~~~~~~~ directory and specifies the special Times in
    which specifies BaudRate can call or not.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    START.<baud>=<time> - Specifies the Start Time of the BaudRate
    END.<baud>=<time> - Specifies the End Time of the BaudRate
    - for maximal calling time place in:
    START.<baud>=0000
    END.<baud>=2359
    or choose the OVERRIDE_TIMES
    =======================================================================
    @endnode
    @node Cap071204 "BBS:NODE<x>/NRAMS Directory Info"
    =======================================================================
    NRAMS.INFO - This ICON only represents a Directory. This
    ~~~~~~~~~~ Directory is required to be within the
    BBS:NODE<x>/ directory.

    ABOUT: This directory will contain NRAMS definitions for the Modem.

    The following list are ICONS which should be placed in this directory:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    @{" <name>.DEF.INFO ICON " Link Cap07120401}

    =======================================================================
    @endnode
    @node Cap07120401 "BBS:NODE<x>/NRAMS/<name>.DEF.INFO ICON Info"
    =======================================================================
    <name>.DEF.INFO - This ICON should be placed in the NODE<x>/NRAMS
    ~~~~~~~~~~~~~~~ directory and specifies the NRAM Prefs you want
    to have for your ACP.CTRL button "Set NRAMS"
    - You can <name> it with every name you want
    ACP will look for the #?.DEF.INFO file in the
    NRAMS dir. NO SPECIAL NAME NEEDED.
    - The NRAMS will be activated if you press the
    "Set NRAMS" button in ACP SERVER.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NRAM.<numb>=<sets> - Specifies the NRAM Settings of your Modem.
    You can have unlimited NRAM settings, just
    change the <numb>.
    =======================================================================
    @endnode
    @node Cap071205 "BBS:NODE<x>/SERIAL Directory Info"
    =======================================================================
    SERIAL.INFO - This ICON only represents a Directory. This
    ~~~~~~~~~~~ Directory is required to be within the
    BBS:NODE<x>/ directory.

    ABOUT: This directory will contain SERIAL definitions for AmiExpress.

    The following list are ICONS which should be placed in this directory:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    @{" <name>.DEF.INFO ICON " Link Cap07120501}

    =======================================================================
    @endnode
    @node Cap07120501 "BBS:NODE<x>/SERIAL/<name>.DEF.INFO ICON Info"
    =======================================================================
    <name>.DEF.INFO - This ICON should be placed in the NODE<x>/SERIAL
    ~~~~~~~~~~~~~~~ directory and specifies the SERIAL Prefs of
    your Computer equipment.
    - You can <name> it with every name you want
    ACP will look for the #?.DEF.INFO file in the
    SERIAL directory. NO SPECIAL NAME NEEDED.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    SERIAL.UNIT=<unit> - Specifies the UNIT on your MULTISERIALCARD.
    SERIAL.BAUD=<baud> - Specifies the INIT BaudRate for your EXPRESS.
    SERIAL.DRIVER=<name> - Specifies the SERIALDRIVER for your EXPRESS
    i.e.: SERIAL.DEVICE.
    SERIAL.A2232_PATCH - Turns the A2232 Multi user serial card Patch on.
    SERIAL.NO_PURGELINE - This command will cause express not to clear the
    serial port after a modem reset command is sent
    through the port. Doubt many would use this.
    SERIAL.REPURGE - This command will process the any data in the
    serial port after a modem reset, normally the
    port is just cleared, but on A2232 cards, it
    appears that the card will not accept a CLEAR
    port command so you need SERIAL.REPURGE to
    process the left over data.
    SERIAL.LOGOFF_RESET - This command will cause the modem to be reset
    before each call and after each call, this
    routine used to be default in the 1.x series of
    express. So if you are having problems at logoff
    you may wish to try this.
    SERIAL.TRUE_RESET - This command will force express to Reset the
    modem with the following modem strings:
    MODEM.RESET
    ATZ
    MODEM.INIT
    MODEM.RESET
    =======================================================================
    @endnode
    @node Cap071206 "BBS:NODE<x>/MODEM Directory Info"
    =======================================================================
    MODEM.INFO - This ICON only represents a Directory. This
    ~~~~~~~~~~ Directory is required to be within the
    BBS:NODE<x>/ directory.

    ABOUT: This directory will contain MODEM definitions for AmiExpress.

    The following list are ICONS which should be placed in this directory:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    @{" <name>.DEF.INFO ICON " Link Cap07120601}

    =======================================================================
    @endnode
    @node Cap07120601 "BBS:NODE<x>/MODEM/<name>.DEF.INFO ICON Info"
    =======================================================================
    <name>.DEF.INFO - This ICON should be placed in the NODE<x>/MODEM
    ~~~~~~~~~~~~~~~ directory and specifies the MODEM Prefs of
    your Express.
    - You can <name> it with every name you want
    ACP will look for the #?.DEF.INFO file in the
    MODEM directory. NO SPECIAL NAME NEEDED.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    MODEM.INIT= - tells /X how to initialize your modem.
    MODEM.RESET= - tells /X how to reset the modem for receiving
    another call.
    MODEM.RING= - tells /X how to notice an incoming call from the
    modem.
    MODEM.ANSWER= - tells /X how to respond an incoming call from a
    modem.
    MODEM.OFFHOOK= - tells /X how to take your modem off hook.
    =======================================================================
    @endnode
    @node Cap0713 "BBS:COMMANDS Directory Information"
    =======================================================================
    COMMANDS.INFO - This ICON only represents a Directory. This
    ~~~~~~~~~~~~~ Directory is required to be within the BBS:
    directory.

    ABOUT: This directory will contain Module definitions for Modules that
    are in different directories and will now be listed,

    @{" BBSCmd <Directory> " Link Cap071301} @{" SYSCmd <Directory> " Link Cap071302}
    @{" CONF(x) <Directory> " Link Cap071303} @{" NODE(x) <Directory> " Link Cap071304}

    =======================================================================
    @endnode
    @node Cap071301 "BBS:COMMANDS/BBSCmd Directory Information"
    =======================================================================
    BBSCmd.INFO - This ICON only represents a Directory. This
    ~~~~~~~~~~~ Directory is required to be within the COMMANDS
    directory.

    ABOUT: This directory will contain Module definitions for Modules that
    are allowed to be executed globally throughout the BBS.

    The following list are ICONS which can be placed in this directory:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    @{" <module>.INFO ICONS " Link Cap0713011}

    =======================================================================
    @endnode
    @node Cap071302 "BBS:COMMANDS/SYSCmd Directory Information"
    =======================================================================
    SYSCmd.INFO - This ICON only represents a Directory. This
    ~~~~~~~~~~~ Directory is required to be within the COMMANDS
    directory.

    ABOUT: This directory will contain Module definitions for Modules that
    are allowed to be executed only from MCI Message/Textures or
    internal Module execution but not from Main Menu prompt.

    The following list are ICONS which can be placed in this directory:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    @{" <module>.INFO ICONS " Link Cap0713011}

    =======================================================================
    @endnode
    @node Cap071303 "BBS:COMMANDS/CONF<x> Directory Information"
    =======================================================================
    CONF<x>.INFO - This ICON only represents a Directory. This
    ~~~~~~~~~~~~ Directory is required to be within the COMMANDS
    directory.

    ABOUT: This directory will contain Module definitions for Modules that
    are allowed to be executed only in that Conference you choose by
    changing <x>.

    The following list are ICONS which can be placed in this directory:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    @{" <module>.INFO ICONS " Link Cap0713011}

    =======================================================================
    @endnode
    @node Cap071304 "BBS:COMMANDS/NODE<x> Directory Information"
    =======================================================================
    NODE<x>.INFO - This ICON only represents a Directory. This
    ~~~~~~~~~~~~ Directory is required to be within the COMMANDS
    directory.

    ABOUT: This directory will contain Module definitions for Modules that
    are allowed to be executed only in that Node you choose by
    changing <x>.

    The following list are ICONS which can be placed in this directory:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    @{" <module>.INFO ICONS " Link Cap0713011}

    =======================================================================
    @endnode
    @node Cap0713011 "<Module>.INFO ICONS ToolTypes Information"
    =======================================================================
    <module>.INFO - This ICON defines a MODULE for /X. The Name of
    the <module> should be the same as the executing
    in MainMenu prompt, and should be in one of the
    three Directories.

    a> BBSCmd - Modules in this directory are allowed to be
    executed from any menu prompt or MCI text file.

    b> SYSCmd - Modules in this directory are only accessible by
    MCI text files and internal BBS operations.

    c> CONF(x) - Modules in this directory are allowed to be
    executed from conference (x) menu prompt or from
    any MCI text file in conference (x).
    d> Node(x) - Modules in this directory are allowed to be
    executed from node (x) menu prompts or from any
    MCI text file in Node (x).
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ACCESS= <numb> - tells /X the access level required to run this
    module. This option is ignored for internal
    Module options.
    INTERNAL= <command> - Specifies if you want to have this Module the
    same as a internal AmiExpress command. if you
    choose this option you don`t need the following
    tool types.
    LOCATION= <string> - Specifies the location of the Module.
    MULTINODE= <YES|NO> - tells /X if the module may be simultaneously
    accessed from other nodes.
    PASSWORD= <string> - force the user to enter password before executing
    this module.
    PASS_PARAMETERS=<res>- This tooltype only takes effect if you use the
    INTERNAL tooltype as well, so the following
    result options are available:

    PASS_PARAMETERS=1 - This will tell express to not
    execute the internal command.
    PASS_PARAMETERS=2 - This will tell express to
    swap the customcommand with
    the internal command but
    retain the commandline pars.
    PASS_PARAMETERS=3 - This will do the same as the
    previous entry except will
    additionally tell express to
    redo the menu command from
    the top of the routines,
    which means that express will
    re-check the customcommands
    to see if anything meets the
    criteria.
    PASS_PARAMETERS=4 - This option will tell AmiExpress
    to bypass checking the BBSCmd
    modules. This option was
    primarily introduced to allow
    a sysop to invoke an INTERNAL
    command from a ConfXCMD and
    forcing it to bypass checking the
    BBSCmd directory for the
    INTERNAL command.
    PRIORITY= <numb> - Let's you set the priority of the door. If you use
    PRIORITY=SAME, it will use the same Priority
    that express uses.
    QUICKMODE - This simply tells AmiExpress not to run the Module
    in question if the user has logged onto the BBS
    using the QUICK LOGON option.
    STACK= <numb> - tells /X the stacksize to use when launching this
    module. Default is 4096.
    TYPE= <XIM | AIM | TIM | IIM | SIM | MCI >
    - tells /X which type of module it is to support:
    XIM = /X Standard Module
    AIM = Arexx Module (requires REXXDOOR in
    BBS:Utils directory)
    TIM = Traditional BBS Module (requires PARADOOR
    in the BBS:Utils directory)
    IIM = NO INTERFACE - This type of Module will
    SPAWN the specified MODULE and not wait on
    it to finish.
    SIM = Script BBS Module - This type will execute
    any normal BatchScript.
    MCI = MCI Commanding.
    TRAPON - This makes LOGON Output go to a Log for Error
    Checking.
    =======================================================================
    @endnode
    @node Cap0714 "BBS:STORAGE Directory Information"
    =======================================================================
    STORAGE.INFO - This ICON only represents a Directory. This
    ~~~~~~~~~~~~ Directory is required to be within the BBS:
    directory.

    The following list are ICONS which should be placed in this directory:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    @{" ICONS <Directory> " Link Cap071401}

    =======================================================================
    @endnode
    @node Cap071401 "BBS:STORAGE/ICONS Directory Information"
    =======================================================================
    ICONS.INFO - This ICON only represents a Directory. This
    ~~~~~~~~~~ Directory is required to be within the
    BBS:STORAGE directory.

    The following list are ICONS which should be placed in this directory:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    @{" ICONIFIED.INFO ICON " Link Cap07140101}

    =======================================================================
    @endnode
    @node Cap07140101 "BBS:STORAGE/ICONS/ICONIFIED.INFO ICON Info"
    =======================================================================
    ICONIFIED.INFO - This ICON should be placed in the
    ~~~~~~~~~~~~~~ BBS:STORAGE/ICONS directory and represents the
    ICONFIED ICON for the ACP SERVER if you close the
    window.
    =======================================================================
    @endnode
    @node Cap08 "Normal Documentation of AmiExpress"
    =======================================================================
    The following documentation is designed to let the System Operator
    know exactly what is taking place in each step of the BBS operations.
    Apart from being a descriptive account of how Ami-Express works, this
    documentation also tries to help sysop's optimize their systems for
    maximum efficiency.

    Well, the real update of the V3.36 DOCS have been needed for a long
    time. Here they are, 4.0 this time done by me Andy (The Outlaw).
    The most difficult process in any software commercial release is the
    development of the Documentation. After seeing Jens Langer's docs first
    release of 3.60, which was different from the normal Documentation I
    decided that an update of the AmiExpress Docs in AmigaGuide format will be
    included in every future version of AmiExpress. Anyway if you like this
    Documentation or you have a problem with AmiExpress you can call LightSpeed
    Technologies BBS Support board and I will help you with AmiExpress as much
    as I can. It`s very hard to write docs, and I hope you like this new
    styling of the AmiExpress Docs.
    But now lets go on with the normal Documentation of AmiExpress.

    Now go with the mouse cursor to the ACP.CTRL ICON and click on it
    two times. You should notice a ICONIFIED window appear on the
    workbench screen.
    If ACP.CTRL did not appear on the Workbench Screen, ACP.CTRL
    should have left you an error message. If there appears an Error message,
    please write down the information of the error that is displayed or
    If the ACP.CTRL doesn`t return a Error Message contact your local
    AmiExpress support BBS for more help. Now you should click on the ICONIFIED
    ICON of ACP.CTRL, this will expand the ACP window to reflect a series of
    buttons. To the left of the window you should see a NODE (x) button
    for each NODE you want to run. You should also notice at the upper
    portion of the window, 4 categories:

    'User', 'Location', 'Action' & 'Baud'. Under 'Action' you should see
    a message pertaining to each node saying 'Awaiting Connect'.
    If you do not see the 'Awaiting Connect' message please open a shell
    and type Express x (where x is the node number), this should display an
    error message, most common problems, is that you did not setup the
    configuration ICONS correctly, this could mean that you misspelled the
    device driver for the serial port, or it could be that you are missing
    some files. Whatever it is, it should tell you.. Refer to later sections
    in this documentation for corrective actions.

    Below the node buttons you should see a series of 18 buttons. There
    are 15 buttons in 3 columns on the left bottom of the window., These
    buttons control AmiExpress, the way to implement one of these buttons is
    to click on 1 of the 15 and then select a NODE button for action.

    Now if all nodes are showing 'Awaiting Connect' do the following:

    1> Press the Accounts button
    2> Press the NODE 0 button

    This will take you into account editing, you should see the following:
    -------------------------------------
    S>earch by name N>ew account editing C>redit Accounts
    Edit Which Account?
    -------------------------------------

    1> Type 1 then press <RETURN>

    This will take you into account number one, which is yours.
    You should see the following information:

    --------------------------------------------------------------------------------
    ACTIVE [1] BAUD: 14400
    A> Name: User Name-------------------30 B> Real Name: Joseph Hodge
    C> Loc.: location D> Pass ..........: ENCRYPTED
    E> Phone Number ..: 800-555-1212 G> Area Name......: Standard
    F> Ratio .........: 0 I> Sec_Level .....: 255
    H> Ratio Type ....: 0 <-Byte) K> AutoReJoin ....: 1
    J> Uploads .......: 0 M> Messages_Posted: 0
    L> Downloads .....: 0 O> New_User ......: No #Calls: 0
    N> Bytes Uled ....: 1 Last Called ...: Tue May 26 22:00:17 1994
    P> Bytes Dled ....: 0 Computer Type .: Amiga 1000
    Q> Byte Limit ....: 0 Screen Type ...: Amiga Ansi
    R> Time_Total: [0 ] mins Y> Cps Up: 0 Z> Cps DN: 0
    S> Time_Limit: [0 ] mins T> Time_Used: [0 ] mins W> UUCP: 0
    U> Chat_Limit: [0 ] mins V> Chat_Used: [0 ] mins

    X=EXIT-NOSAVE ~=SAVE 1-8=Presets 9=RE-ACTIVATE DEL=DELETE
    TAB=CONT @=CONFERENCE ACCOUNTING !=CREDIT ACCOUNT MAINTENANCE
    --------------------------------------------------------------------------------

    2> Press the letter A, this will let you put your user name on your
    account.

    3> Press the letter B, this will let you setup your real name,
    if you want to have access to internet ect.

    4> Press the letter C, this will let you setup an address, group name
    or whatever you like.

    5 Press the letter D, this will let you assign yourself a password.

    6> Press the letter E, this will let you out your phone number in.

    7> Now you can press a number between 1 and 8 for account defaults.

    8> Make sure that your Time_Limit is not 0.

    9> Press the tilde '~' to save the account,.

    Here is a sample of a completed sysop account:

    --------------------------------------------------------------------------------
    ACTIVE [1] BAUD: 14400
    A> Name: User Name-------------------30 B> Real Name: Joseph Hodge
    C> Loc.: location D> Pass ..........: ENCRYPTED
    E> Phone Number ..: 800-555-1212 G> Area Name......: Standard
    F> Ratio .........: 0 I> Sec_Level .....: 255
    H> Ratio Type ....: 0 <-Byte) K> AutoReJoin ....: 1
    J> Uploads .......: 0 M> Messages_Posted: 0
    L> Downloads .....: 0 O> New_User ......: No #Calls: 0
    N> Bytes Uled ....: 1 Last Called ...: Tue May 26 22:00:17 1994
    P> Bytes Dled ....: 0 Computer Type .: Amiga 1000
    Q> Byte Limit ....: 0 Screen Type ...: Amiga Ansi
    R> Time_Total: [0 ] mins Y> Cps Up: 0 Z> Cps DN: 0
    S> Time_Limit: [0 ] mins T> Time_Used: [0 ] mins W> UUCP: 0
    U> Chat_Limit: [0 ] mins V> Chat_Used: [0 ] mins

    X=EXIT-NOSAVE ~=SAVE 1-8=Presets 9=RE-ACTIVATE DEL=DELETE
    TAB=CONT @=CONFERENCE ACCOUNTING !=CREDIT ACCOUNT MAINTENANCE

    --------------------------------------------------------------------------------

    9> Press the TAB key to complete the editing.

    Now you should see the following:
    -------------------------------------
    S>earch by name N>ew account editing C>redit Accounts
    Edit Which Account?
    -------------------------------------

    10> Press return to exit account editing.

    11> Select the close gadget to return to the workbench screen. This
    will also of course close the BBS Window.
    =======================================================================
    @endnode
    @node Cap09 "The Programlogic of AmiExpress"
    =======================================================================
    We will now describe the program logic of the Express so you can
    learn how to operate AmiExpress to it's maximum potential.

    The ACP window has 15 major buttons at the bottom of the window.
    Here is a list of there names and function:

    [ Sysop LOGON ].....Logs you into a node as the sysop.
    [ Local LOGON ].....Enters the initial log on phase of the Node
    This will require you to specify your name
    and password.
    [ Instant LOGON ]...This will give a carrier detect command to the
    modem, this is good for re-establishing a
    connection to a user after talking to them voice
    on the same line.
    [ Reserve Node ]....This allows you to tell the Node to only let a
    certain user on the BBS. After the user has called
    the node will no longer be reserved.
    [ AEShell ].........This will open a shell on the Node screen.
    [ Accounts ]........This takes you into account editing on a node.
    [ Toggle Chat ].....This toggles the Node's chat request flag, if a
    Nodes Chat request flag is off, then only user of
    a high enough security level be able to request a
    chat.
    [ INIT Modem ]......This re-initializes a modem of a particular node.
    [ Exit Node ]......This will shutdown the node in question.
    [ Node(offhook) ]...This will shutdown the node in question and also
    make the line busy.
    [ Node Config ].....This will bring up our Config program for a
    particular node.
    [ Node Chat ].......This button will take you into chat mode with a
    particular node.
    [ Save Win ]........This button does not require a NODE(x) complement.
    This simply saves the window coordinates of ACP to
    a file called S:ACP.Config
    [ Set NRAMS ].......This button will Set the NRAMS of your Modem and
    will save it to the EPROM.

    NOTE: All of the above mentioned buttons unless said otherwise, require
    ~~~~ you to press the Appropriate node button for them to take effect.


    Once all of the NODES are started the following actions take place for
    each node:

    At this point the BBS will load up the computer types from a ICON
    called:

    BBS:COMPUTERLIST.INFO

    Ami-Express then checks if the node is already running as another task,
    and if it is, then the program halts and exits with an error message.

    Next, Ami-Express will try to access the LIBS:REXXSYSLIB.LIBRARY for
    it's Arexx port routines, and if not found, will disable the Arexx port
    and inform the user that the Rexx port is disabled.

    Ami-Express will run thru it's initialization process where it will take
    the modem off-hook, and configure it for BBS operation. This is done so
    that an incoming call does not alter the configuration process.

    While someone is ONLINE you have the following function keys available
    to you:

    F1 - Chat in/out
    F2 - Increase On-line time limit +10 mins
    F3 - Decrease On-line time limit -10 mins
    F4 - Asks for a path/filename for a capture file (only on the SYSOPS
    side) or if one is already open then it closes the capture and
    lets you know it did so. when you press F4 again the capture
    will be stopped.
    S+F4 - This will pop up an ASL Requester to let you choose an ASCII File
    to be send to the user.
    F5 - Local Shell
    F6 - Account Editing
    S+F6 - This will let you change the Account of a User only for that call
    he is ONLINE. When he locks off the BBS will reset his Account
    to the old one. Press Shift+F6 a second time and the changes will
    be restated to the old ones.
    F7 - Chat Flag toggle (whether you are to be paged or not)
    F8 - Serial in on/off (User can`t write until you press F8 again)
    F9 - Serial out on/off (User can`t see what you are typing)
    F10 - Keyboard out on/off (Disconnect ONLINE User *KICK*)

    Now follows the normal reactions of AmiExpress when something happens
    if the BBS is in the standby mode and the nodes are standing at
    "Awaiting Connect".

    (1). The BBS checks for F key input from the local keyboard.

    (2). Or data coming in the serial port.

    (3). Or data coming in the internal communication AmiExpress_Node(x)
    msgport for commands either suspend, resume, or shutdown.

    (4). Or data coming in from the AmiExpress window itself (Gadgets etc..)

    (5). Or data coming in from AmiExpress Control.(ACP)

    Once the modem picks up a RING DETECT, the BBS sends an Answer
    string specified in the Config file to the modem, and waits
    for a response from the remote modem. If the result string
    is a valid connect string, the BBS continues with normal
    operations, if not, it resets the modem and the ACP screen will
    return to "Awaiting Connect" state.

    If the connect string was a valid one, AmiExpress first checks
    a couple of things before performing the LOGON routine:

    (1). System checks for a file called:
    BBS:NODE{x}/NOCALLERSAT{BAUD} where x is node number and
    BAUD is the baud rate that is unaccepted. If this file
    exists, and the current baud rate matches the BAUD, then
    the BBS displays the file and disconnects.

    (2). Displays the connect string received from the modem.

    (3). Now, the BBS displays the standard welcome message,
    and starts to perform the actual LOGON procedure.

    (4). Check to see if you have a Module called FRONTEND , if so it
    executes it. see section regarding doors for more info.
    Explanation:
    To Install the FRONTEND module you have to a ICON to the
    BBS:COMMANDS/SYSCMD directory called "FRONTEND"

    (5). BBS checks if there is a module called "ANSI" in the SYSCMD
    Directory if so it will start the door you insert and will skip
    the selecting of ANSI or ASCII Colors. Look at Point (4) above
    for more Info about installing these doors.
    If the BBS can`t find such a door it will asks if the user wants
    ANSI graphics or not. If a 'Q' is specified at the end of the line
    like: "YES Q" or "Y Q" etc. Then the BBS checks if the Option
    DISABLE_QUICK_LOGONS is on or not if the option is on the BBS will
    display the Logon.txt because you want to have the users seen it.
    If the Option is off and the user answers "Y Q" or "YES Q" the BBS
    will not display the LOGON or logoff screens.

    (6). Then if the sysop has specified a SYSTEM PASSWORD it
    displays a file called: BBS:NODE<x>/PRIVATE.TXT then
    asks for the SYSTEM PASSWORD you specifies. The system gives the
    user three tries and if by then he hasn't gotten it the BBS
    hangs up, and displays in the CallersLog that someone
    attempted to get the SYSTEM PASSWORD.

    (7). The BBS displays the file: BBS:NODE{x}/BBSTITLE.TXT

    (8). It now asks for the user to enter his FULL NAME, again WILDCARDS
    are usable and will expand and ask if correct. A user gets
    five tries at his user name, then the BBS hangs up.

    (9). If the BBS can't find the name supplied it will tell the user
    and ask him if he would like to 'C'ontinue to join or 'R'etry
    entering his name again.

    [C]ontinue as a New User Selected:
    ----------------------------------

    (1). If the BBS has been reserved it will notify the user that
    the BBS has been reserved for a specific member and will
    then hang-up.

    (2). If the BBS hasn't been reserved then the BBS checks to see if
    the user's baud rate is allowed during the time he has called.
    If so, then the BBS allows the user to continue, otherwise it
    displays the file: BBS:NODE{x}/NOTTIME{BAUD}.TXT
    {x} = Node number, {BAUD} = Current Baud rate.

    (3). If the sysop has specified a new user password in the Config
    file then the BBS displays the file:
    BBS:NODE{x}/NEWUSERPW.TXT
    Then it asks for the new user password and if the user gets
    the password wrong it goes back and asks for his FULL NAME
    again, after 5 tries the BBS hangs up.

    (4). If the System-Operator wishes to have no more NEW users the BBS
    would look for the file BBS:NODE{x}/NONEWUSERS then displays it
    and disconnect the User. And if you wishes to have no more NEW
    users at a SPECIFIC BAUD RATES, the BBS would look for a file
    called BBS:NODE{x}/NONEWAT{BAUD}, displays it and then
    disconnecting the User.
    {x} = Node number, {BAUD} = Current Baud rate.

    (5). Now it enters the New Account routines.

    1. Search displays BBS:NODE{x}/JOIN.TXT

    2. Asks for full name. At this point WILDCARDS are NOT
    ALLOWED. The user only has 5 chances to enter it then
    the BBS says "Too Many Errors, Good-bye!"

    3. The BBS checks for use of a name that already exists.
    If the name already exists it asks again.

    4. The BBS checks the name given to see if not in the list
    of names supplied in the icon BBS:NAMESNOTALLOWED
    This is a file that contains names that the sysop does
    not want to allow on the BBS. If the file does not
    exists the BBS will not allow any new users to log on
    until the file has been added. This is to prevent
    someone getting on as ALL or EALL etc. A notice will
    be placed at the end of the BBS:NODE{x}/CALLERSLOG file.

    WARNING: You should specify in that list SYSOP, ALL, and EALL

    5. Next it asks for the City, State.

    6. The it asks for Phone Number (xxx-xxx-xxxx)

    7. Next, it asks for the Users personal Password

    8. Number of lines on screen (1-255)

    9. Clear Screen between Messages ?

    10. Asks for which ScreenType the User want to have.

    11. Display back all info and asks if it is correct if
    the user needs to change something he just says no
    its not correct and the process starts again at 2..

    12. At this point the BBS checks to see if there is a
    script Module in the SYSCMD Directory and if express
    will find this module it will start it instead of the
    normal SCRIPT questionnaire. And if express can`t find
    such a Module it will start the normal SCRIPT
    questionnaire to ask the user to fill out, it
    checks for BBS:NODE{x}/SCRIPT{BAUD}
    {x} = Node number, {BAUD} = Current Baud rate.

    NOTE: The {BAUD} should be specified as 1200,2400,4800,
    9600, 12000, 14400 and 16800 to allow for proper
    connect handling by USR HST modems.

    Now the user is asked to fill out the script if existent.
    A sample script may look like:

    -------------Cut Here--------------------

    What is your Real Name: ~
    What is your Real # : ~
    What is your Sex,Age : ~

    -------------Cut here--------------------

    Here, the ~ character is used when a prompt for input
    by the user is expected. The answers are saved to
    BBS:NODE{x}/TEMPANS before being validated by the sysop.
    Once the Sysop validates the User, the answers are copied
    over to BBS:NODE{x}/Answers.

    13. The BBS then displays the file BBS:NODE{x}/JOINED.TXT

    (10). Once the system has loaded the users account, it checks to see
    if the system has been reserved, if so and the user who just
    logged in is not the reserved user the BBS displays that the
    system has been reserved for that specific user, and then hangs
    up.

    (11). Then the BBS will display the BBS:NODE{x}/LOGON.TXT, text
    where x stands for the Node.

    (12). If the BBS hasn't been reserved then the BBS checks to see if
    the user's baud rate is allowed during the time he has called.
    If so, then the BBS allows the user to continue, otherwise it
    displays the file: BBS:NODE{x}/NOTTIME{BAUD}.TXT

    (13). If the users Security level is 0 then the BBS displays the
    file: BBS:NODE{x}/LOCKOUT-0.TXT and then hangs up.

    (14). If the users Security level is 1 then the BBS displays the
    file: BBS:NODE{x}/LOCKOUT-1.TXT and then hangs up.

    NOTE: These two files allow a sysop to be either polite about not
    allowing a user on the system, or if the user is an abuser,
    the sysop can have a full blown rude as hell Lockout text for
    those types of users.

    (15). At this point the system adds to the end of
    BBS:NODE{x}/CALLERSLOG that a user just logged in.

    (16). Now the BBS asks the user for his password, every time the user
    gets the password wrong the BBS adds what he tried to the end
    of BBS:NODE{x}/CALLERSLOG. After 3 tries the BBS hangs up and
    adds this to the CALLERSLOG.

    (17). Then the standard LOGON sequence takes place and puts the user
    at the main command prompt

    LOGON SEQUENCE FOR A PREVIOUS USER:
    -----------------------------------

    When a user with an existing account logs into the BBS, the LOGON
    procedure is a lot more simplified. The standard LOGON procedure is
    listed below:

    (1). The BBS checks to see if the user has any time for the day
    if not it displays BBS:NODE{x}/LOGON24HRS.txt file to the
    user and hangs up.

    (2). If no BULLBATCH files are specified, the BBS looks for any
    Bulletin files in BBS:NODE{x}/BULL{SEC}.TXT where
    {x} = NODE NUMBER and {SEC} = USERS CURRENT SECURITY LEVEL.
    If a file is found that matches the user`s security level,
    it is displayed. For example, a last callers bulletin for
    standard user security of 20 would be saved in the BBS:NODE{x}
    directory as follows: BBS:NODE{x}/BULL20.TXT and
    BBS:NODE{x}/BULL20.TXT. This routine has also been simplified
    from the sysop's end so that the appropriate bulletins are
    searched for in a rounded off method.
    ie: If a user level with security level of 20 has logged in, and
    the BBS cannot find an entry for
    BBS:NODE{x}/BULL20.TXT but
    finds a file called BBS:NODE{x}/BULL15.TXT, then this file
    will be displayed. If there is also a file called
    BBS:NODE{x}/BULL30.TXT, this file will be displayed to users
    with security level of at least 30 or more. Once the BBS finds
    the nearest file, it displays that file only.

    NOTE: Routines have been added to AmiExpress to make sysop setup
    a little easier and less annoying to the user. The BBS will
    scan for a particular file in this method:

    Say a user with access level 30 just logged in, with ANSI color,
    now the BBS will check first if there is a BULL30.TXT and if not
    the BBS will go on with searching for bulls lower than 30.

    Look here:

    BBS:NODE{x}/BULL30.TXT
    BBS:NODE{x}/BULL25.TXT
    BBS:NODE{x}/BULL20.TXT
    BBS:NODE{x}/BULL15.TXT
    BBS:NODE{x}/BULL10.TXT
    BBS:NODE{x}/BULL5.TXT
    BBS:NODE{x}/BULL.TXT

    NOTE: because of this method of searching, all files to be
    searched for must end in either 0 or 5 (as above), the
    user access level will be rounded down to the nearest
    multiple of 5 and the search will start there.

    That's an example of a search for a file to be displayed, once
    a file is found that exists it displays ONLY that file.
    This method is used on the following:

    BBS:NODE{x}/BULL
    BBS:NODE{x}/JOINCONF
    BBS:CONF/MENU
    BBS:CONF/BULL

    In some cases it works a little different, in this case
    the user security is not used, like:

    BBS:CONF/Bulletins/BULLHELP.TXT
    BBS:CONF/Bulletins/BULLHELP.TXT

    That's how that one works and the following are like that:

    BBS:NODE{x}/JOINED
    BBS:NODE{x}/LOGON24HRS
    BBS:NODE{x}/GUESTLOGON
    BBS:NODE{x}/LOGON
    BBS:NODE{x}/LOGOFF
    BBS:NODE{x}/JOIN
    BBS:NODE{x}/NOTTIMEBAUD
    BBS:NODE{x}/PRIVATE
    BBS:CONF/FILEHELP

    NOTE: For multiple bulletins upon LOGON, a BULLBATCH script is used
    to display the necessary bulletins in the correct order. For
    more information on this, please refer to the section under
    BULLBATCH implementation.


    (3). Initial User specific checks are made:

    a> The BBS now scans thru all the conferences that the user has
    access privilege to for any waiting mail. While scanning, AmiExpress
    will store the MSG numbers in memory until the end of the scan,
    at the end of the scan AmiExpress will proceed to show the user the
    originator of each message and then proceed to prompt the user if
    he/she wishes to read the mail.

    This method of scanning has 3 advantages:

    1. The user will now know who left him/her mail prior to reading it.
    2. The NewMail Scan pointer will not be updated until all the mail is
    read. So if the user has 2 messages '100' and '101' and he/she
    reads message 101 and not 100, then the next time the user logs on
    or does a mail scan, he/she will still be notified of message 100.
    3. The NewMailScan will now remember the last valid message left to
    the user when the user losses carrier or logs off.

    If mail is found, it
    informs the user about it and asks the user if they want to view
    it.

    b> The BBS checks to see if there are any unfinished uploads.
    If someone looses carrier uploading a file and calls back
    he will be allowed to resume his/her upload.

    (4). Then the BBS rejoins the conference the user was in the last time
    he called.

    (5). It then checks the ICON BBS:CONF to see how many, if any,
    directories of files that specific conference has.
    It will check if in the ICON the NDIRS is bigger than 0.

    for example:
    ~~~~~~~~~~~ NDIRS=2

    This would specify that there are two file directories where files
    are kept. A carriage return is necessary after the number.

    If this file is unavailable, the conference will have NO files
    available in it, meaning no uploads or downloads will be possible
    from it.

    (6). If the number of directories is greater than zero, the BBS looks
    to see if a in the CONF ICON the Tooltype "FREEDOWNLOADS" is turned
    on, if so then all files in this particular conference are free to
    download.

    (7). Now, the BBS scans for any BBS:CONF/BULL{SEC}.TXT files in
    the same method as described earlier on.

    NOTE: This works exactly like the BBS:NODE{x}/BULL files.

    (8). After displaying the available bulletins, if the user is not in
    EXPERT mode, the BBS displays the available
    BBS:CONF/MENU{SEC}.TXT and reaches the MAIN MENU PROMPT.

    a> Any command entered at the MAIN MENU PROMPT will be looked up
    in a BBS:Commands/BBSCmd directory. If the command is found as
    a module name in the directory the module will be executed.
    If the command cannot be found, then the command will be compared
    to BBS:Commands/NODE{x}CMD directory and like wise be executed
    if found. If the command cannot be found, then the command will be
    compared to BBS:Commands/CONF{x}CMD directory and like wise be
    executed if found.
    Otherwise the command will be considered an internal
    command and maybe any of the commands listed below.
    =======================================================================
    @endnode
    @node Cap10 "The MainMenu Commands of AmiExpress"
    =======================================================================
    This is a list of commands accessible from the main menu prompt:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    AmiExpress has many functions that are part of the program code that
    assist users in what they want out of the system. These commands are
    mostly single letter commands that the user types and hits return for
    the execution. AmiExpress does not work with a HOT-KEY type of user
    input. This means that the user will be saved from having to look at
    a screen load of data when they accidentally hit a wrong key.
    A carriage return always indicates an intended execution.

    This section is divided into two parts, The SYSOP ONLY COMMANDS, and the
    Standard User Commands.

    @{" SYSOP Only Main Commands " Link Cap1001} @{" STANDARD USER Main Commands " Link Cap1002}

    =======================================================================
    @endnode
    @node Cap1001 "SYSOP Only Commands....."
    =======================================================================
    SYSOP ONLY COMMANDS:
    ~~~~~~~~~~~~~~~~~~~
    These commands are the only commands that are called up by single digit
    number codes. They are available only to users with SYSOP SECURITY
    LEVELS as defined in the Config file by AmiConfig under ACCOUNT EDITING.

    @{" Command: '1' <AccountEditing>" Link Cap100101} @{" Command: '2' <CallerslogView>" Link Cap100102}
    @{" Command: '3' <Edit File Dirs>" Link Cap100103} @{" Command: '4' <Edit Text File>" Link Cap100104}
    @{" Command: '5' <View Directory>" Link Cap100105} @{" Command: '0' < Remote Shell >" Link Cap100106}
    @{" Command: 'DS'<Sysop Download>" Link Cap100107} @{" Command: 'VS'< Sysop View >" Link Cap100108}

    =======================================================================
    @endnode
    @node Cap100101 "[ 1 ] - Account Editing...."
    =======================================================================
    [ 1 ] - Account Editing:
    ~~~~~~~~~~~~~~~
    This is used to either review existing accounts and modify them, or
    scan for any new user LOGONS that wish to be validated. The account
    editing module is very easy to use in that it is basically menu
    driven. You can also get into the BBSInfo CONF. from here.
    Before Express will start the normal Account Editing it will try
    to open a MODULE called "ACCOUNTS" which should be located in the
    SYSCMD Directory. This is for further coming releases of different
    Account Editors.

    The AccountEditing will look like this:

    --------------------------------------------------------------------------------
    ACTIVE [1] BAUD: 14400
    A> Name: ByteMaster B> Location ......: Location
    C> Pass ..........: ENCRYPTED
    D> Phone Number ..: 318-793-4101 F> Area Name......: Standard
    E> Ratio .........: 0 H> Sec_Level .....: 255
    G> Ratio Type ....: 0 <-Byte) J> AutoReJoin ....: 1
    I> Uploads .......: 0 L> Messages_Posted: 0
    K> Downloads .....: 0 N> New_User ......: No #Calls: 1
    M> Bytes Uled ....: 1 Last Called ...: Tue May 26 22:00:17 1994
    O> Bytes Dled ....: 0 Computer Type .: Amiga 1000
    Q> Byte Limit ....: 0 Screen Type ...: Amiga Ansi
    P> Time_Total: [0 ] mins Y> Cps Up: 0 Z> Cps DN: 0
    R> Time_Limit: [0 ] mins S> Time_Used: [0 ] mins T> UUCP: 0
    U> Chat_Limit: [0 ] mins V> Chat_Used: [0 ] mins

    X=EXIT-NOSAVE ~=SAVE 1-8=Presets 9=RE-ACTIVATE DEL=DELETE
    TAB=CONT @=CONFERENCE ACCOUNTING !=CREDIT ACCOUNT MAINTENANCE
    --------------------------------------------------------------------------------

    Press the following keys to change the data of the User:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    A> Lets you change the name of the User you are looking at
    B> Lets you change the location where the user is living
    C> Lets you change the password of the user you are looking at
    D> Lets you change the phonenumber of the current user
    E> Lets you change the Ratio of the user you are looking at
    F> Here you can change the Conf.Access of the User
    G> Lets you change the Ratio Type of the User. From here you have 3
    different Ratio Types:
    - Ratio Type 0 = Bytes only
    - Ratio Type 1 = Bytes & Files
    - Ratio Type 2 = Files only

    This ratio type are for choosing in which way the Ratio will be
    calculated.
    H> Lets you change the Security Level of the user you are looking at
    I> Lets you change the number of Upload the user has done.
    J> Lets you change the Conference at which the User logged in the last
    time he called the system.
    K> Lets you change the number of downloads the user has done.
    L> Lets you change the number of Messages the user posted in the BBS.
    M> Lets you change the number of Bytes the user uploaded.
    N> Lets you change if the user is a NEW USER or not. this is a flag
    function. if it is in the "YES" mode the user will be found if you
    search for new users. After you edit the USERDATA with a present
    the flag will be changed automatically to "NO".
    O> Lets you change the number of Bytes the user downloaded.
    P> Lets you change the Time Total for the day.
    Q> Lets you change the number Bytes which the can download at a day.
    R> Lets you change the Time Limit for a day.
    S> Lets you change the Time the user has already used today.
    T> Lets you change if the User is a User of UUCP or not.
    U> Lets you change the chat limit time a user has.
    V> Lets you change the chat limit used for the day.
    Y> Lets you change the Top Upload CPS the User ever had.
    Z> Lets you change the Top Download CPS the User ever had.
    #> Lets you change the Number of Calls a user has done to your System.

    Now follows the normal commands in the Account Editing:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [ X ] - Exit the Account editing without saving the current changes
    [ TAB ] - Lets you go to the next user who matches to the USERNAME
    you entered before.
    [ ~ ] - Will save the current changes of the USERDATA.
    [ 1-8 ] - Will set the USERDATA to a Present of ACP.STARTUP
    [ 9 ] - This command will re-activate a deleted user.
    [ DEL ] - This command will delete the user you are looking at.
    you can re-activate a user by typing "9" at the AccountEditing
    [ + ] - Will go on the next user in the USERDATA.
    [ - ] - Will go on the previews user in the USERDATA.
    [ ! ] - This will activate the ACCOUNT CREDIT MAINTENANCE. This feature
    allows you to keep track of paying users, The assumption is that
    if a user pays, then they are paying for a DISABLED ratio. CREDIT
    MAINTENANCE will let you establish the number of days that the
    credit account is to be in effect. During this time period the
    user will be given an 'EFFECTIVE' DISABLED ratio. Their ratio
    does not actually change, but express will treat there account as
    a disabled ratio. So during the credit period an 'FS' command or
    'S' command will reflect a DISABLED ratio. Once the credit
    account has expired, express will then use the ratio established
    for the user.
    [ @ ] - Will bring you into the Conference Accounting. You MUST! have
    conference accounting on for this to work. Once in this area,
    you will be shown each conference, screen by screen, there you
    can edit the user's STATS for each conference. You go from
    conference to conference by using the +/- keys. Follow the
    screens to save and exit.
    =======================================================================
    @endnode
    @node Cap100102 "[ 2 ] - View CallersLog...."
    =======================================================================
    [ 2 ] - View CallersLog:
    ~~~~~~~~~~~~~~~
    This lets the sysop view the BBS:NODE{x}/CALLERSLOG file backwards.
    The last line written to the CALLERSLOG will be displayed first
    and the first line of the CALLERSLOG will be displayed last.
    On system running more than one node, this command will ask which
    NODE's CALLERSLOG to view.
    =======================================================================
    @endnode
    @node Cap100103 "[ 3 ] - Edit File Directories (EDITOR/EMACS)...."
    =======================================================================
    [ 3 ] - Edit File Directories (EDITOR/EMACS):
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    If you started this Command, the BBS will check if the one who started
    the command is a remote or a local one. If the one who started it is
    a local one it will search for a Door called "EDITOR" in the SYSCMD
    and if it exists it will be executed and the normal starting of the
    EMACS will be skipped.

    If the one who started the command is in REMOTE_LOGON then the command
    will be executed as follows:
    This command uses the command line version of MicroEmacs for on-line
    directory editing. For more information on how to use EMACS, you
    should refer to the section on COMMON EMACS COMMANDS.
    This command asks the user which directory to edit before it opens
    up the appropriate AUX: or CNN: channel and executing EMACS.
    NOTE: AUX{x}: is used only on remote connections and if active
    ~~~~ a watchdog task that checks for carrier loss is also invoked.
    If carrier is lost while editing directories, the computer
    will be reset within two seconds.
    A special note to MULTI NODE systems: The watchdog resets the
    computer if a carrier is lost regardless of what the other
    nodes are doing. If users are logged in on other nodes, they
    will be disconnected when the computer resets. A later version
    of AmiExpress will send a notification to the other nodes and
    a time-out requestor locally will inform the sysop and users
    that express wants to reset the computer and that everyone
    should finish up what they're doing.

    Exiting from EMACS with CTRL-X CTRL-C key combination will return the
    user to the MAIN MENU PROMPT. While a user is in EMACS, the BBS will
    notify the sysop by placing a line like:
    User in EMACS........

    WARNING! for those of you using the A2232 multi serial card
    you may run into problems using the editor. We
    are currently working on a FullScreen editor to
    take it's place.
    =======================================================================
    @endnode
    @node Cap100104 "[ 4 ] - Edit any Text File on System (EDITOR/EMACS)...."
    =======================================================================
    [ 4 ] - Edit any Text File on System (EDITOR/EMACS):
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    This command is basically the same as the previous with the option
    to specify full path and file name to edit. This commands prompts
    the user for the necessary information.
    =======================================================================
    @endnode
    @node Cap100105 "[ 5 ] - List System Directories...."
    =======================================================================
    [ 5 ] - List System Directories:
    ~~~~~~~~~~~~~~~~~~~~~~~
    This command works just like the AmigaDos List command and displays
    the directory and sub-directories available for the specified path.
    The command can also display any comments (FILENOTES), attached to
    the files themselves. When selected, AmiExpress will ask for the
    full path name and whether to include comments or not.
    =======================================================================
    @endnode
    @node Cap100106 "[ 0 ] - Remote Shell...."
    =======================================================================
    [ 0 ] - Remote Shell:
    ~~~~~~~~~~~~
    This Command has been removed currently in this version of express.
    There are some great doors with the same capabilities to replace
    this command. If you choose one of the great doors that are out, I
    Personally recommend the MALTESE FALCON's version. If you use
    FALCON's Shell door, remember that the spy command does not work with
    this version of Express, it was only able to handle 9 nodes. Express
    can now handle 32 nodes, so disable this command in the cfg, otherwise
    Install it as a normal door in your BBSCmd directory and choose the 0
    button for that.
    =======================================================================
    @endnode
    @node Cap100107 "[ DS ] - Sysop Download...."
    =======================================================================
    [ DS ] - Sysop Download:
    ~~~~~~~~~~~~~~
    This Command is exactly the same as the normal User Download
    command , but has the added ability with which the sysop can
    download files from any path on the HardDisk. The WILDCARD searching
    is removed in this command to prevent error in searching for files.
    All files on the HardDisk can be downloaded with this command unless
    the files are RESTRICTED for downloading with the File Comment
    "RESTRICTED", this will prevent downloading of files you want never
    to be downloaded by your co-sysop, or anyone else with DS enabled.
    =======================================================================
    @endnode
    @node Cap100108 "[ VS ] - Sysop Text View...."
    =======================================================================
    [ VS ] - Sysop Text View:
    ~~~~~~~~~~~~~~~
    This Command is exactly the same as the normal User Text View command,
    and has the added ability, that the sysop can View any file from any
    path on the HardDisk. All files can be viewed with this command,
    unless the RESTRICTED file comment "RESTRICTED" is used. This will
    prevent users from viewing private files of yours.
    =======================================================================
    @endnode
    @node Cap1002 "REGULAR USER Commands...."
    =======================================================================
    REGULAR USER COMMANDS:
    ~~~~~~~~~~~~~~~~~~~~~
    These commands are explained in detail. All the commands here can be
    chosen in the ACCESS ICONS for EXPRESS.

    @{" [<][>].....Fast Conf.joining " Link Cap100201} @{" [ A ].......Alter File Flags " Link Cap100202}
    @{" [ B ]......Bulletins reading " Link Cap100203} @{" [ C ].......Comment to Sysop " Link Cap100204}
    @{" [ D ].......Download File(s) " Link Cap100205} @{" [ E ]..........Enter Message " Link Cap100206}
    @{" [ F ]..........File Listings " Link Cap100207} @{" [ FS ]......Full Status View " Link Cap100208}
    @{" [ G ]........GoodBye(LOGOFF) " Link Cap100209} @{" [ H ]..............Help Page " Link Cap100210}
    @{" [ J ]........Join Conference " Link Cap100211} @{" [ M ]......(COLOR/MONO) Mode " Link Cap100212}
    @{" [ RZ].....Zmodem Upload " Link Cap100213} @{" [ ^ ]..Extended Help Command " Link Cap100214}
    @{" [ N ]...New Files Since Date " Link Cap100215} @{" [ O ]..........Operator Page " Link Cap100216}
    @{" [ Q ].............Quiet Node " Link Cap100217} @{" [ R ]..............Read Mail " Link Cap100218}
    @{" [ RL ]...............ReLogon " Link Cap100219} @{" [ S ].Status of On-Line User " Link Cap100220}
    @{" [ T ]...................Time " Link Cap100221} @{" [ U ].........Upload File(s) " Link Cap100222}
    @{" [ V ].......View a Text File " Link Cap100223} @{" [ W ]..Write User Parameters " Link Cap100224}
    @{" [ WHO ].....Node Information " Link Cap100225} @{" [ X ].....Expert Mode Toggle " Link Cap100226}
    @{" [ Z ]......Zippy Text Search " Link Cap100227} @{" [ ZOOM ].........Zoo Mailing " Link Cap100228}
    @{" [ CF ].Set Conference Config " Link Cap100229} @{" [ VO ]..........Voting Booth " Link Cap100230}

    =======================================================================
    @endnode
    @node Cap100201 "[<][>] Fast Conference Joining Command"
    =======================================================================
    [ < ] - Joining Conference Up&Down:
    [ > ] ~~~~~~~~~~~~~~~~~~~~~~~~~~
    These two commands allows the user to join conferences by only using
    the '<' '>' keys. This will let the user go up one conference and
    down one conference. Example: User is in CONF. 3 and use the '>' key.
    so he will automatically join the one higher conference he has access
    to, and if he will use the '<' key again he will join CONF. 3 again.
    =======================================================================
    @endnode
    @node Cap100202 "[ A ] - Alter File Flagging...."
    =======================================================================
    [ A ] - Alter File Flags:
    ~~~~~~~~~~~~~~~~
    This command allows the user to change the flagged file list
    without having to do a file listings and get a PAUSE...MORE
    prompt to change the flags.
    Chaining data is allowed, or the routine will prompt the user
    for the information.

    First it will show the current list of flags.

    No file flags
    Filename(s) to flag: (C)lear, (Enter)=none?

    At this prompt the user can:
    1. Enter new files to add to the flag list
    2. Enter 'C' to goto the clear flag prompt

    Filename(s) to Clear: (*)All, (Enter)=none?

    At this prompt the user can:
    1. Enter filenames to remove from the flag list,
    WILDCARDS are valid, however they will only
    remove the first entry.
    2. Use '*' to remove all entries in the list.
    3. Hit Return to exit.

    Once a user exits the Clear prompt, it will once
    again show the list of flagged files and drop back
    to the MAIN MENU PROMPT.
    =======================================================================
    @endnode
    @node Cap100203 "[ B ] - Bulletins reading...."
    =======================================================================
    [ B ] - Bulletins:
    ~~~~~~~~~
    This command allows the user to view bulletins that the sysop
    has made available.
    - First, the BBS checks to see if the file
    BBS:<CONF>/BULLETINS/BULLHELP.TXT is available; if not, it tells
    the user that no bulletins are available in that conference.
    - If the BBS:<CONF>/BULLETINS/BULLHELP.TXT is found, it is displayed
    and the user is prompted to enter the bulletin # to view or '?' to
    Redisplay the BULLHELP.TXT which is the bulletins menu.
    - If a user selects a valid bulletin #, it is displayed and the BBS
    returns back to the bulletin prompt.
    - If a user selects an invalid bulletin #, the BBS informs the user
    that there is no bulletin #{x} where {x} = the specified bulletin.
    =======================================================================
    @endnode
    @node Cap100204 "[ C ] - Comment to Sysop...."
    =======================================================================
    [ C ] - Comment to Sysop:
    ~~~~~~~~~~~~~~~~
    This command is exactly the same as the regular ENTER MESSAGE command
    except that the message is addressed privately to the System-Operator.
    The TO: field is automatically filled with the User name on SLOT 1,
    which is the Sysop.
    If the BBS located the tooltype "FORWARDMAIL= <str>" in the Conference
    ICON is turned on, the Mail will be forwarded to the User named in
    the <str>. This is very useful if you go to holiday and want your
    co-sysop to read the messages to you without typing "R" for read
    messages.
    =======================================================================
    @endnode
    @node Cap100205 "[ D ] - Download File(s)...."
    =======================================================================
    [ D ] - Download File(s):
    ~~~~~~~~~~~~~~~~
    This command accesses the file transfer procedure for sending files
    from the system to the remote user. The flow-chart for this command
    is quite complex and is outlined below:

    1. If the ToolType NDIRS contains zero, the BBS informs the user
    that there are no files to download from that conference.

    2. The BBS displays the File BBS:CONF/DOWNLOADMSG.TXT

    3. The BBS displays the users Download/Upload STATS.

    4. The BBS calculates the ratio limits the user has before uploading
    files to the system.

    5. Next, it displays the transfer protocol the user take for default.
    The User can change this protocols by using the "W" command.

    6. If the user had specified 'DS' instead of just 'D' the download
    is considered a sysop download and if the user is allowed to
    use SYSOPDOWNLOAD, then the download can be made from any valid
    AmigaDos path on the system. If this is the case, the BBS asks
    for the full path and filename. NO WILDCARDS ARE ALLOWED with a
    Sysop Download.

    7. The BBS asks the user to enter the filename(s).

    8. Checks for special characters in the filename like ":/" etc.
    If found, tells the users that special symbols may not be included
    when downloading.

    9. Full WILDCARDS are allowed when doing a regular download, but just
    the * WILDCARD character alone is not allowed.

    10. Now, the BBS scans the specified paths from the CONF ICON and
    when it finds the file that the user requested, it displays the
    file length in Kbytes, time required to download it at current baud
    rate, and checks if the user has enough credits to download the
    file. If so, AmiExpress checks the filename against what is in
    existing File Flag list and if it isn't already there, it adds it.
    So, if the download sequence is aborted for any reason, just hitting
    "D" again will download the flagged file. To remove from flaglist,
    the user would use the 'A' command.

    11. Now the BBS checks if there is an Comment at the File like
    "RESTRICTED" or "FREE DOWNLOAD" ... if there is a Comment like this
    then the BBS will display some messages when the File has a comment
    like "RESTRICTED" it is not not allowed to download this file and
    the BBS will write a comment into the BBS:NODE{x}/CALLERSLOG that a
    user tried to download this File... and with this comment you can`t
    download this file with a level of 255 and sysop download also.. so
    the file is 100% safe for downloading... if there is the comment
    "FREE DOWNLOAD" the BBS will make this file free download and it
    will costs no credits to download it...

    12. After hitting return alone on a filespec prompt, the BBS re-checks
    the totals to see if the batch is within the user's limits.

    13. If so, AmiExpress asks either to start, abort, or automatically
    logoff at the end of the transfer. The 'G'oodbye after transfer
    gives the user 10 seconds to change his mind after the transfer
    before performing an automatic disconnect sequence.

    14. At this point the download sequence is about to begin and so the
    necessary information is written to the BBS:NODE{x}/UDLOG, if
    turned on.

    15. At the end of the download, if the users' security level is below
    the one you choose for the tooltype KEEP_UPLOAD_CREDIT=<numb>, then
    the user's number of downloads and number of bytes downloaded get
    updated with the new download STATS.

    16. At this point, the download sequence is completed, and the BBS tells
    the user his new STATS before returning back to the MAIN MENU
    PROMPT.
    =======================================================================
    @endnode
    @node Cap100206 "[ E ] - Enter a Message...."
    =======================================================================
    [ E ] - Enter a Message:
    ~~~~~~~~~~~~~~~
    This command allows the user to leave private or public mail to other
    users on the system. There are several options with this command and
    they are outlined below.

    1. Asks for who to send it to. If a WILDCARD is used the search
    will find the first user that fits the WILDCARD and will display
    it and then ask if its correct, if the user says no then it
    will search forward. If it doesn't find the user it will
    exit back to the MainMenu prompt.

    2. If the user just hits return on the TO: prompt it will send
    the message to ALL.

    3. A feature added in is to be able to leave a message to
    "EALL" this means to EMAIL ALL people, this is only usable
    by users you give access to writing EALL Messages by changing
    the tooltype in the ACCESS ICON for the User. What this does is to
    leave ONE message to ALL USERS , when a person calls
    the system it searches for mail in that conference to that
    user it will say they have mail, from the user that left the
    "EALL" message. The TO: will show the user who is receiving
    the message with "(ALL)" after their name. The message can
    only be deleted by the sender or a user with SYSOP access

    4. Another name that is valid in the TO: prompt is SYSOP, this
    will be replaced by the Name of the SYSOP, in user slot 1

    5. Next prompt is the Subject of the message, if the user just
    hits return it will exit out of the enter message

    6. The BBS will now ask if the message is to be readable only
    by the receiver of the message or it will be public.

    7. If you have the optional Full-Screen editor installed, the BBS will
    now ask you whether you want to use the Full-Screen editor. The user
    has the option what editor he/she wants with the 'W' command if the
    sysop has chosen to have it so.

    8. Now the user has entered the message editor. The following commands
    assume you have entered the internal Line-Editor.

    9. Tabs now work in the editor, they are indicated by a '|' in
    the header.

    10. CTRL-X in the message editor will delete the current line.

    11. If you hit a return on a blank line you will exit the edit
    to the edit command prompt.

    12. The options are:

    1. <A>bort - Abort entering the message

    2. <C>ont - Continue entering the message, this option will
    print the last line with text and put the cursor
    at the end of the line.

    3. <D>elete - Allows a user to delete a specific line.

    4. <E>dit - Allows the user to change text within a line.

    5. <F>ile - Allows a user with tooltype SYSOP_DOWNLOAD to attach
    a file to download to the message. This option
    will ask for the filename to attach to the message
    and if you wanted the file deleted with the
    message as its deleted.

    6. <M>ci List- If you have a MCI Header in your Message, you are
    able to use this function. This function will
    display you the whole text with all MCI comment
    in it.

    7. <L>ist - List the message to the screen.

    8. <S>ave - Saves the message.

    9. <X>fer - Allows a User to upload a file into the MSGBASE
    and make this file automatically ATTACHED at a
    Message. To allow the user to do this he must
    have the tooltype "ACS.PRI_MSGFILES" in his
    ACCESS ICON. If the Message the User writes is
    an ALL or EALL message the user must have
    "ACS.PUB_MSGFILES" turned on to do this.
    =======================================================================
    @endnode
    @node Cap100207 "[ F ] - File Listings...."
    =======================================================================
    [ F ] - File Listings:
    ~~~~~~~~~~~~~
    This command allows a user to get Full directory listings of the
    catalogs maintained by the BBS. As mentioned before, this is
    specified in the Tooltype NDIRS=<numb> in the CONF ICON.

    1. If the number of directories in the conference is zero
    or NDIRS is zero, then the BBS will display
    "No files available in this conference." And drop the user
    back to the main prompt.

    2. Displays the file BBS:CONF/FILEHELP.TXT only if
    all the options were not specified on the command line.

    3. It will then ask for the directory to list including the
    'H'old directory. The hold directory can only be used
    by a user with access greater than 200.

    4. The specified directory will be displayed and will pause
    if the NS hasn't already been specified, at the users
    lines per screen point.

    5. On the pause prompt, you can select 'F' for flagging files.
    =======================================================================
    @endnode
    @node Cap100208 "[ FS ] - Full Status View...."
    =======================================================================
    [ FS ] - Full Status View:
    ~~~~~~~~~~~~~~~~
    This option is used to allow the user to have a full view over his
    access status in each conference. It will display Bytes Down/Uploaded
    in each conference the user has access to and will display the RATIO
    too.
    =======================================================================
    @endnode
    @node Cap100209 "[ G ] - GoodBye (LOGOFF)...."
    =======================================================================
    [ G ] - Goodbye (LOGOFF):
    ~~~~~~~~~~~~~~~~
    This option is used to end the current session with the host
    system by the remote user. When the user hits 'G', the BBS
    performs several clean-up functions.

    1. First checks to see if there was a ZoomMail that hasn't
    been downloaded, if there was it would ask if the user
    wanted to leave anyway.

    2. The system then checks to see if there were any partial
    uploads that the user hasn't finished sending yet. If
    so then it would let the user know and ask if he wanted
    to leave anyway. If the user didn't want to leave, then
    the BBS would ask if the user wanted to view the files.
    If the user did want to view them, then the BBS would go
    into the resume routine showing the user the filename
    and filesize, then ask if he wanted to resume on that
    particular file. If not then the BBS would ask if the user
    wanted to delete the file. If the user didn't want to
    delete the file then the BBS would go to the next file
    that was to be resumed.

    3. If the user hadn't specified the 'Q' at the ANSI color
    prompt, or the SUPPRESS_QLOGON is given the BBS would
    display the file: BBS:NODE{x}/LOGOFF.TXT.

    4. Now the BBS will try to open a Module called "LOGOFF" or
    "LOGOFF<node>". If the BBS will find such a module, it will
    be started.
    =======================================================================
    @endnode
    @node Cap100210 "[ H ] - Help Page...."
    =======================================================================
    [ H ] - Help:
    ~~~~
    This command displays the on-line help text file for the user to
    refer to.
    At this command, the BBS looks for and displays the file :
    BBS:BBSHELP.TXT and if not found will say that No help is
    currently available.
    =======================================================================
    @endnode
    @node Cap100211 "[ J ] - Join Conference...."
    =======================================================================
    [ J ] - Join Conference:
    ~~~~~~~~~~~~~~~
    This command is used to switch from the current conference to
    another conference that the user has access privilege to.
    The BBS looks for the file BBS:NODE{x}/JOINCONF{SEC}.TXT and
    tries to display it. If not found, it will print a message
    informing the user that the file is missing.
    Then, prompts the user to enter the number of the conference they
    wish to join. If the user does not have access to the requested
    conference, then the BBS will tell the user that they don't have
    access to that conference.
    If the user has access to the requested conference, AmiExpress
    switches to that conference and checks for mail for the user, and
    then display any appropriate bulletin files if they exist.
    If the Option "RELATIVE_CONFERENCES" is turned on in the CONF.DEF
    ICON the BBS will only display the Conferences which the User has
    access to.
    =======================================================================
    @endnode
    @node Cap100212 "[ M ] - Mode Select...."
    =======================================================================
    [ M ] - Mode Select:
    ~~~~~~~~~~~
    This command switches between ANSI color output or Plain Monochrome
    output on the users end. When ANSI is on, the BBS tries to display
    files that have the extension by default. The normal plain
    (.TXT) files are reverted to if extension files are not
    found.
    =======================================================================
    @endnode
    @node Cap100213 "[ RZ ] - Zmodem Upload Command...."
    =======================================================================
    [ RZ ] - Zmodem Upload Command:
    ~~~~~~~~~~~~~~~~~~~~~
    This command executes an immediate Zmodem upload.
    =======================================================================
    @endnode
    @node Cap100214 "[ ^ ] - Extended Help Command...."
    =======================================================================
    [ ^ ] - Extended Help Command:
    ~~~~~~~~~~~~~~~~~~~~~
    This command allows a user to read the help files that yu have put in the
    BBS:help directory. The help commands may include MCI commands,
    like displaying UserNames to personalize the help commands or some other
    data over MCI.
    =======================================================================
    @endnode
    @node Cap100215 "[ N ] - New Files Since Date...."
    =======================================================================
    [ N ] - New Files Since Date:
    ~~~~~~~~~~~~~~~~~~~~
    This command allows the user to list files from a specified date onwards
    or from the last time they called the system. In other words, with
    this command, users can see what the system has to offer in terms of
    files since their last call.

    1. If the number of directories in the conference is zero
    then the BBS will display "No files available in this
    conference." And drop the user back to the main prompt.

    2. It will then ask for the date they want to list from.
    The last date they were on will be the default, this is
    selected by just hitting return alone. Entering the date
    to list from must be done as MM-DD-YY.

    3. Next, the BBS asks for the directory to search thru. An 'A'
    can be used to list all directories, also 'U' can be
    specified for the upload directory. And H for the hold
    directory. The hold directory can only be used by a user
    with access greater than 200.

    4. The Pause prompt works the same as described in the file
    listing section.
    =======================================================================
    @endnode
    @node Cap100216 "[ O ] - Operator Page...."
    =======================================================================
    [ O ] - Operator Page:
    ~~~~~~~~~~~~~
    This command is used by the remote user to call the system operator
    for on-line chat.

    1. First of all Express will check the SysopPageCounter to see if
    the user already paged the sysop. If the user paged the sysop
    more then the given maximum number, express will automatically go to
    comment writing instead of paging the sysop.

    2. If the User is calling up the system operator for the first time
    on the current session, the users name field will be changed to a red
    color when 3 bitplanes are active, and will have star preceding
    his name if the BBS was booted in 1 bitplane. Also, if the
    ICONFIED window is active, the name filed there will also be
    highlighted a different color. In this way, a sysop can see if
    the user on-line has requested to chat.

    3. If the F7 Chat toggle flag is not set to allow paging
    then the BBS says:

    "Sorry, The SYSOP, is not around right now
    You can use 'C' to leave a comment."

    4. If the chat toggle flag is set to allow paging, then the
    BBS adds to BBS:NODE{x}/CALLERSLOG that the user paged,
    Then displays "Paging SYSOP (CTRL-C to Abort). ." followed
    by bells and more dots.

    5. If you, the SYSOP, wanted to chat with the user you would
    Hit F1 to enter chat, then AmiExpress looks for the file
    BBS:NODE{x}/STARTCHAT.TXT, and if found displays
    it to the user. This can be a simple greeting to the user.
    If this file is not found, then the standard sysop chat
    active message is sent to the screen. The same F1 will exit
    chat when you are finished and the BBS will display the File
    BBS:NODE{x}/ENDCHAT.TXT. During chat, if ANSI mode is
    selected, your text will be a different color than the user ones.
    =======================================================================
    @endnode
    @node Cap100217 "[ Q ] - Quiet Node...."
    =======================================================================
    [ Q ] - Quiet Node:
    ~~~~~~~~~~
    This command will change the Quiet Node option you choose for a node.
    With this command a user can prevent other users from seeing them on
    a node and can make him/herself like invisible.
    =======================================================================
    @endnode
    @node Cap100218 "[ R ] - Read Mail...."
    =======================================================================
    [ R ] - Read Mail:
    ~~~~~~~~~
    This command is used to access the on-line mailing system to read
    mail either to the user or for all users. It is also used when a
    certain message will be replied to.

    1. First the BBS shows the read prompt

    MSG. Options: A,D,F,R,Q,?,<CR> ( QUIT )>:

    (1). <A>gain, displays the message currently on again.
    (specified by the 'a' in the above line)

    (2). <D>elete, allows the user to delete a message only
    if he left the message or the message is to him.
    Also a user with access of 210+ can delete any
    mail.

    (3). <F>ile, will test if there is any Attached File to
    download.

    (4). <R>eply, allows the user to reply to the current message.
    The BBS will place the user on the SUBJECT: field
    with the previous subject and place the cursor on
    the end of the line. If the user wants to change
    the subject he can delete over the existing subject
    and enter a new one, or hitting return will keep the
    old subject.
    After this, the BBS will ask if the reply should
    be private, and by default this is set to No.
    Next, the BBS will ask whether to quote the current
    message in the reply, again the default is No.
    If the user selected Yes to quote the message, the
    entire message will be re-displayed and the BBS will
    prompt the user with the following:

    Enter Startline,Endline or (*=ALL, A=Abort):

    Where the user would have to type either a '*' to
    quote the whole message specify start and end
    lines separated by a comma.
    Then the user would be put in the on-line message
    editor to enter his message. Commands for the editor
    work in much the same way as the Enter Message
    command. For more information, please re-read the
    ENTER MESSAGE Command.

    (5). <?>, this will display the full description of the packed
    Mail Reading line and will help you.

    (6). <CR=Next>, let you continue search for new messages.

    (7). "EH" - This allows the sysop to edit a message
    Header. You can change who the MSG is to,
    from, the subject and whether it is to be
    a private message or not.

    (8). "U" - This will let the sysop go automatically to account
    editing for the account the message is from. With this way
    you can fast validate a NEWUSER by reading the message and
    go to account editing.
    =======================================================================
    @endnode
    @node Cap100219 "[ RL ] - RELOGON...."
    =======================================================================
    [ RL ] - RELOGON:
    ~~~~~~~
    This command will make a RELOGON at the Node you start it. This will
    drop the user back to the Normal LOGON and will start a Module called
    "RELOGON" or "RELOGON<node>" in SYSCMD Directory. If this Module
    is available it will be started and if it is finished the user will
    be dropped back to the LogonString.
    =======================================================================
    @endnode
    @node Cap100220 "[ S ] - Status of On-Line User...."
    =======================================================================
    [ S ] - Status of On-Line User:
    ~~~~~~~~~~~~~~~~~~~~~~
    This command simply reports the users' current information pertaining
    to his account. This is in the form of:

    Caller Num.: 2049
    Lst Date On: 05-14-93
    Security Lv: 30
    # Times On : 579
    Ratio DL/UL: Disabled
    Online Baud: 16800
    Rate CPS UP: 0
    Rate CPS DN: 0
    Screen Clr: NO
    Protocol : /X Zmodem
    Sysop Pages Remaining: 3


    Uploads Downloads
    Conf Files Bytes Files Bytes Bytes Avail Ratio
    ---- ------- --------- ------- --------- ----------- -----
    2> 0 0 0 0 0 DSBLD
    =======================================================================
    @endnode
    @node Cap100221 "[ T ] - Time, at the system site...."
    =======================================================================
    [ T ] - Time, at the system site:
    ~~~~~~~~~~~~~~~~~~~~~~~~
    This command reports back to the user what the internal battery backed
    up clock at the BBS site is set at. Local time/date stamp function.
    =======================================================================
    @endnode
    @node Cap100222 "[ U ] - Upload File(s)...."
    =======================================================================
    [ U ] - Upload File(s):
    ~~~~~~~~~~~~~~
    This command puts the BBS in the file receive mode, where the remote
    user can send files to the system.

    1. The BBS first checks to see if there are file directories to be
    uploaded to, by looking at NDIRS=<numb> tooltype. If this type is
    unavailable or reports zero, the user is returned back to the
    MAIN MENU PROMPT after a message stating "No files available in this
    conference."

    2. If a file called BBS:CONF/UPLOADMSG.TXT exists
    the BBS displays that to the user.

    3. The BBS now calculates free disk space, the first number
    displayed, is the amount of free space on all the drives
    listed in DRIVES.DEF.INFO in BBS: directory.

    Only drives that contain download files for the BBS
    should be included, this way the user knows how much
    free space is left on the total system.

    The second number displayed is the amount of free space
    only in the BBS:CONF/UPLOAD directory. This is so the
    BBS and the user know exactly how much space is available
    to receive uploads until the sysop does some maintenance.

    Currently the BBS is content to allow uploads until the
    free space in BBS:CONF/UPLOAD is less than 2,000,000 bytes.

    4. At this point the BBS calls the resume routine to check
    if there are any files to resume on, this works the same way
    as explained under the 'G'oodbye command.

    5. The BBS will then ask the user to enter the filenames of the
    files he will be uploading, or he can press return alone to
    have Zmodem tell the BBS the names. Specifying an 'A' will
    abort out of an upload altogether and drop the user back to the
    main prompt.

    6. If the user enters the filenames, the BBS will check to make
    sure they don't already exist in the conference, if not the
    BBS will ask him to enter the description for each file.
    Entering a blank line will end the description.

    7. Next the BBS will display:
    (Enter) to Start, (G)oodbye after transfer, (A)bort?
    this works the same as specified in the download routines.

    At this point the Sysop is able to press "L" for start a
    local upload routine, which will pop up a Requester for
    selecting files to upload LOCAL into the BBS without starting
    the ZMODEM Transfer over the Serial In/Output.

    8. At this point if the user has not been added to the end of
    BBS:NODE{x}/UDLOG he will be.

    9. If the Upload is now to be started the BBS will check in the file
    you specified for the FILESNOTALLOWED=<pathname> option in the NODE
    ICON. If this file is not allowed to be uploaded it will skip
    the upload.

    10. The BBS then displays the STATS from the transfer for all the
    files.

    11. The users time is then credited for the uploads.

    12. Next the BBS goes thru the files sent and checks to see if
    the name is longer than 12 characters, if so the BBS asks
    the user to rename the file.

    13. The BBS then checks to see if the user has already given
    the descriptions for the file, if so it posts it accordingly.

    14. If the user has not already given the description for the file the BBS
    asks for the description of the file. Again giving 8 lines
    for the description.

    15. If the user gets disconnected while entering the description
    the BBS will put "LOSS CARRIER" for the description.
    and place the file in the BBS:CONF/LCFILES directory,
    along with a Comment in the <usernumber>.lc which will contain
    a list of all the files he will need to enter descriptions for
    when he calls back. The Re-Enter description process is
    done at LOGON with the PartUploads routine.

    16. Once the description has been entered, the BBS checks if there
    is a door called "FILECHECK" in the SYSCMD directory, if so it will
    be executed and this internal "FCHECK" will be used. This is
    where you can use a multiple type of file checker for all formats.
    If the door doesn`t exists express will check if there is a
    file extension. (a file extension is usually on 3 characters
    preceded by a '.'. (IE:.DMS,.LHA.)).

    Express now compares the extension with any ICON
    of the same extension name in the BBS:FCHECK directory.

    ICONS in the FCHECK directory specify that you are using
    external file checkers. The format for each ICON has been
    mentioned below.

    If no external checker exists for the file then it
    will be posted with a comment "N" for non checked.

    17. If the archive is checked and it passes the BBS puts
    a 'P' between the filename and filesize in the listing.

    18. If the archive is checked and if found bad then the BBS
    puts a 'F' between the filename and filesize in the listing.

    19. If the file is not one of the above checkable file types
    then the BBS puts a 'N' between the filename and the
    filesize in the listing.

    20. Now the BBS will post the file in the listings area. If the
    user specified a '/' at the beginning of the description
    for the file, or the file failed archive check, or the
    user got disconnected then the BBS posts the file to the
    end of BBS:CONF/HOLD/HELD If the archive passed or wasn't
    checkable and the user didn't specify a '/' at the beginning
    of the description then the BBS will post the file to the
    end of BBS:CONF/DIR{U} where U is the upload directory (or
    the highest directory available).

    21. If when the BBS goes to move the file, like to the hold
    directory and there is already a file in the hold with the
    same name, the BBS will add a '_' to the end of the filename
    until it can be renamed.

    22. Once all the file are exhausted the BBS checks to make sure
    there aren't any free floating files in the BBS:NODEx/PLAYPEN
    directory, if there are the BBS then moves the files to
    BBS:CONF/PARTUPLOAD as partially uploaded files from the
    current user ONLINE.
    =======================================================================
    @endnode
    @node Cap100223 "[ V ] - View a Text File...."
    =======================================================================
    [ V ] - View a Text File:
    ~~~~~~~~~~~~~~~~
    This command allows the user to view the contents of a TEXT file
    located in the BBS:CONFNAME/UPLOAD directory. For Co-Sysop's with
    Access to SYSOP_VIEW in Access ICONS, TEXT files can be viewed
    from any valid system path.

    1. The BBS first checks to see if there are file Dirs in that CONF.
    by looking in the tooltype NDIRS=<numb>. If this type is unavailable or
    reports zero, the user is returned back to the MAIN MENU PROMPT
    after a message stating "No files available in this conference."

    2. The BBS then asks the user for the filename to view.

    3. If the user has ACCESS to the SYSOP_VIEW Option and he specified
    'VS' instead of just 'V' then the BBS will allow the filename to
    include the path. The sysop view is noted at the end
    of BBS:NODE{x}/CALLERSLOG what file was viewed.

    4. The BBS then displays the file as long as the characters
    in the file are < 128 in value. If a character is
    greater than 127 then the BBS says "This file is not a
    text file." And drops back to the main prompt.

    NOTE: If a file has a comment of RESTRICTED then the user
    ~~~~ will not be able to view the file. If an attempt was
    made then the users name will be annotated in the
    BBS:NODE{x}/CallersLog
    =======================================================================
    @endnode
    @node Cap100224 "[ W ] - Write User Parameters...."
    =======================================================================
    [ W ] - Write User Parameters:
    ~~~~~~~~~~~~~~~~~~~~~
    This command allows the user to change some personal items pertaining
    to his account on the system.
    When called, this command brings up the following:

    1. LOGIN NAME..............ByteMaster
    2. REAL NAME...............Joseph Hodge
    3. INTERNET NAME...........jhodge
    4. LOCATION................Radford, Va.
    5. PHONE NUMBER............603-555-1212
    6. PASSWORD................ENCRYPTED
    7. LINES PER SCREEN........23
    8. COMPUTER................Amiga 2000/GVP030
    9. SCREEN TYPE.............Amiga Ansi
    10. SCREEN CLEAR............Yes
    11. TRANSFER PROTOCOL......./X Zmodem
    12. EDITOR TYPE.............Prompt
    13. ZOOM TYPE...............QWK
    14. AVAILABLE FOR CHAT/OLM..Yes


    Which to change <CR>= QUIT ?

    At this prompt, the user can select which item to change, or hit
    return alone to exit from this routine.
    The first four items can be security set by the Config program so
    that users without the necessary security cannot change their
    Name, Location, Phone or Password. For more information, refer to the
    documentation for the AmiConfig program.
    =======================================================================
    @endnode
    @node Cap100225 "[ WHO ] - Node Information...."
    =======================================================================
    [ WHO ] - Node Information:
    ~~~~~~~~~~~~~~~~
    This command shows the user which users are ONLINE on the other nodes
    and what they are doing actually. If you choose QUIETNODE for a
    specified node, this node will be skipped in displaying this
    information.
    =======================================================================
    @endnode
    @node Cap100226 "[ X ] - Expert Mode Toggle...."
    =======================================================================
    [ X ] - Expert Mode Toggle:
    ~~~~~~~~~~~~~~~~~~
    This command allows the user to switch between eXpert and Novice mode
    where expert mode will not display the menu unless a '?' is specified
    at the command line and Novice will Redisplay the menu after every
    command issued and completed.
    =======================================================================
    @endnode
    @node Cap100227 "[ Z ] - Zippy Text Search...."
    =======================================================================
    [ Z ] - Zippy Text Search:
    ~~~~~~~~~~~~~~~~~
    This command allows the user to scan thru all the BBS:CONFNAME/DIR{x}
    files for a match for a specified string.
    When it finds a match, it displays the whole filespec including the
    description.
    If the NDIRS=<numb> tooltype reports zero or does not exist, then
    zippy search will not be functional.
    =======================================================================
    @endnode
    @node Cap100228 "[ ZOOM ] - Zoo Mail...."
    =======================================================================
    [ ZOOM ] - Zoo Mail:
    ~~~~~~~~
    Zoo mail has been reinstalled into Ami-Express and now relies
    on current compression schemes provided by modem manufacturers
    instead of Zoo, as zoo has a tendency to crash the Amiga
    in certain instances. ZOOM will compile all the user's unread
    mail, (in LHA format if requested) from ALL accessible conferences
    into a freely downloadable file that will be automatically added
    to the flaglist for downloading.
    =======================================================================
    @endnode
    @node Cap100229 "[ CF ] - Set Conference Configuration...."
    =======================================================================
    [ CF ] - Set Conference Configuration:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    This command will allow your users to set the way express handles
    conferences. From here they can set the 'NEW FILE SCAN',
    'NEW MESSAGE SCAN', and turn 'OFF' and 'ON' what conferences they
    want to ZOOM mail from.

    In the Conference Maintenance option in the Account editor you can
    also Globally set these options (F5).
    =======================================================================
    @endnode
    @node Cap100230 "[ VO ] - Voting Booth...."
    =======================================================================
    [ VO ] - Voting Booth:
    ~~~~~~~~~~~~
    This Command requires ACS.MODIFY_VOTE for SYSOPS and ACS.VOTE
    for the users in the access icon.

    NOTE: with the VOTING BOOTH a directory called VOTE will automatically
    be created in the conference directory when you initialize a voting
    booth for a conference.

    The voting booth can have up to 25 topics per conference, each
    topic can have up to 99 multiple choice questions to it.

    Also there is a new option to the Conference Maintenance screen called
    RESET VOTING BOOTH, when this is run it will zero out the bits in the
    CONF.DB that keeps track of which voting topics a user has already
    voted on. You should do this for each conference that you plan on
    having a voting booth in.

    The Voting booth is conference based, meaning that one conference
    cannot share the voting booth of another conference.

    To setup a Voting Booth for a conference simply reset the voted
    flags in the CONF.DB via conference maintenance then:

    1. type 'VO' from the menu prompt.
    2. Select the 'CREATE VOTE TOPIC' menu option.
    (REMEMBER you must have ACS.MODIFY_VOTE access for this to work)
    3. You will be prompted to enter a TOPIC NUMBER this number can
    range from 1 - 25, you will probably want to start with '1'.
    4. You will now be prompted for a ONE LINE DESCRIPTION of the
    TOPIC. Then you can save, edit, abort, list, delete etc.
    5. Next you will be asked for the QUESTIONS OF THE TOPIC. YOU CAN
    have up to 99 questions per TOPIC.
    6. After you are finished entering a question then enter 'S' for
    save in order for it to ask you for the multiple choice options.
    You can have up to 25 multiple choice options per question.
    7. When you are finished entering 1 choice, then press return and
    save to submit it and go onto the next choice.
    8. When you are finished entering choices the when prompted for the
    next choice , simply press save, this will prompt you for the
    next question.
    9. If you have no more questions, then press ABORT at the QUESTION
    prompt.
    10. This should bring you back to the VOTE MAINTENANCE MENU.
    11. At the VOTE MAINTENANCE MENU, you can also edit a vote, topic,
    etc. In case you made a mistake.

    NOTE:

    Concerning the voting booth. After you setup a TOPIC you cannot add
    questions to that topic once it is created, when a user votes on a
    topic they must vote on all questions in the topic for it to be
    considered a valid vote. This is handled automatically in that once
    they are in the TOPIC voting process, they cannot get out of it until
    they answer all the questions for that topic, if they loose carrier
    while answering the questions, then the answers for that topic will
    be discarded and the user will have to re-vote on the topic when they
    log back on. In other words, the questions for a topic are not
    updated until the user answers all questions in that topic.
    =======================================================================
    @endnode
    @node Cap11 "AREXX Interface MODULES (AIM)...."
    =======================================================================
    AmiExpress HOST Addresses
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    AmiExpress allows the use of external HOST Addresses to start Modules,
    which can be executed by the user by a specified key. These host
    addresses can be used by programmers to code Modules working with
    AmiExpress. These HOST Addresses can be used in many programming languages
    (AREXX,C,ASSEMBLER Aso.). To give the programmer more abilities,
    AmiExpress provides many COMMANDS via the HOST Address to get and put
    Information to the running AmiExpress nodes. These commands are
    shared in different areas.

    @{" Standard HOST Commands " Link Cap1101} @{" Special Arexx HOST Cmds (AIM)" Link Cap1102}
    @{" Traditional HOST Cmds (TIM)" Link Cap1103} @{" AmiExpress Interface (XIM)" Link Cap1104}
    @{" AmiExpress Script HOST (SIM)" Link Cap1105} @{" AmiExpress CLI Interface(XIM)" Link Cap1106}

    =======================================================================
    @endnode
    @node Cap1102 "Special Arexx HOST Cmds (AIM)...."
    =======================================================================
    The Arexx door interface requires a file called REXXDOOR, It must be
    located in your UTILS: path. This will also require an icon to run the
    door(s) in your BBSCmd or CONF{x} and to be located in the BBS:Commands
    directory. REXXDOOR will be launched each time an Arexx door is
    requested. Arexx must also be set up on your amiga system correctly to
    work with /X. First you must have all the necessary Arexx files installed,
    EXAMPLE in your DH0:Rexxc dir. Then in your startup-sequence make sure
    this line exists:

    Assign >NIL: REXX: SYS:REXXC

    Next, (I put mine in the user-startup) add these lines:

    Rpstart >Nil:

    Your system is now Arexx ready.

    NOTE: If a CARRIER LOSS is detected or a keyboard TIMEOUT is detect then
    ~~~~ an error code of 10 will be sent to the Arexx Script and REXXDOOR
    will orderly close any ports to the BBS and itself from the Arexx
    Script.

    Now we want to discuss all the Arexx Commands which can be used to
    read & write information of the User & the BBS. These Arexx commands
    are only useful if you want to program some tools for AmiExpress, and
    for that it is very hard to understand for a guy who never programmed
    Arexx. But now lets go on:

    NOTE: These are internal and do not pertain to the Module Glue routines
    ~~~~ for designing doors.

    To register an AREXX Module to AmiExpress you must have the following
    lines at first at your AREXX Modules:

    ------ cut here ------
    /* Arexx Module TEST */

    parse arg NODE
    options results
    address value "AERexxControl"NODE
    ------ cut here ------

    Without this Command at the first lines in your modules, the modules
    will not work together with AmiExpress, so be sure you have these
    Command at the beginning of each AIM Module.

    The following Commands are AmiExpress Arexx HOST Commands which are
    used to give the ability to the programmer to design his modules.
    To use this Command the Initializing of AmiExpress Module must be
    made as listed above.

    COMMAND NAME FUNCTION
    =========================================================================
    GETUSER <x> This command will read DATA from the FUNCTION <x> of the
    decimal HOST Commands. This DATA will be transferred to
    the normal RESULT function of AREXX. With this command
    you are able to get the BBSNAME or other things.
    For more Information about the FUNCTION numbers, please
    look at the 'Standard HOST Commands' of Express.
    =========================================================================
    PUTUSER <x> This command is exactly the same as the GETUSER command
    with the difference that it will store DATA and not read
    it from the FUNCTION <x>. To store the DATA to a
    FUNCTION <x> you also need the PUTUSTR together with
    PUTUSER because PUTUSER must know what to store into the
    FUNCTION <x>.
    =========================================================================
    PUTUSTR <x> This Arexx command will define the DATA depending to the
    PUTUSER command for the HOST commands of AmiExpress
    Use these TWO Arexx HOST Commands together to execute
    Commands which belongs to Express.
    example:

    PUTUSTR "g" <- the variable you want to put into the
    PUTUSER 136 <- FUNCTION 136.

    These two commands together will execute the internal
    GOOD-BYE Main Menu Command and will leave the BBS.
    The '136' depending on the other HOST COMMANDS programmed
    with decimal Codes.
    =========================================================================
    TRANSMIT "" This command is the most important HOST Command of
    the AREXX HOST Commands of AmiExpress. This command
    will send text over the serial depending in "" to
    the NODE Window the module was executed.
    example:
    TRANSMIT "HELLO"

    Now HELLO should appear in the NODE Window the Module
    was executed.
    =========================================================================
    SENDMESSAGE This Command is exactly the same as the TRANSMIT command
    with the only difference that it will not send an carriage
    return after executing the command, so you can store
    text behind other text.
    =========================================================================
    GETCHAR This Command will wait for input from the User to insert
    and this input will be later transferred to the RESULT
    Command of normal AREXX. With this command you are able
    to ask the user questions and transfer the answer to
    different variables.
    =========================================================================
    PROMPT "" This Command is the mix of the TRANSMIT & GETCHAR
    commands. After displaying the TEXT in the "" it will
    PROMPT the user to insert something until he pressed
    return. Then the DATA will go to the normal RESULT
    routine of AREXX.
    =========================================================================
    @endnode
    @node Cap1101 "Standard AmiExpress HOST Commands...."
    =========================================================================
    Standard AmiExpress HOST Commands
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The following list is a list of all AmiExpress HOST Commands which
    can be used in every program language to get/store information to the
    AmiExpress Host Port. With this Command you can get Information
    like BBSNAME, USERNAME etc. Click on the Buttons for more Information.

    @{" JH_LI <Func: 000> " Link Cap1101000} @{" JH_REGISTER <Func: 001> " Link Cap1101001}
    @{" JH_SHUTDOWN <Func: 002> " Link Cap1101002} @{" JH_WRITE <Func: 003> " Link Cap1101003}
    @{" JH_SM <Func: 004> " Link Cap1101004} @{" JH_PM <Func: 005> " Link Cap1101005}
    @{" JH_HK <Func: 006> " Link Cap1101006} @{" JH_SG <Func: 007> " Link Cap1101007}
    @{" JH_SF <Func: 008> " Link Cap1101008} @{" JH_EF <Func: 009> " Link Cap1101009}
    @{" JH_CO <Func: 010> " Link Cap1101010} @{" JH_BBSNAME <Func: 011> " Link Cap1101011}
    @{" JH_SYSOP <Func: 012> " Link Cap1101012} @{" JH_FLAGFILE <Func: 013> " Link Cap1101013}
    @{" DT_NAME <Func: 100> " Link Cap1101100} @{" DT_PASSWORD <Func: 101> " Link Cap1101101}
    @{" DT_LOCATION <Func: 102> " Link Cap1101102} @{" DT_PHONENUMBER <Func: 103> " Link Cap1101103}
    @{" DT_SLOTNUMBER <Func: 104> " Link Cap1101104} @{" DT_ACCESSLEVEL <Func: 105> " Link Cap1101105}
    @{" DT_RATIOTYPE <Func: 106> " Link Cap1101106} @{" DT_RATIO <Func: 107> " Link Cap1101107}
    @{" DT_COMPTYPE <Func: 108> " Link Cap1101108} @{" DT_MESSAGESPOSTED<Func: 109> " Link Cap1101109}
    @{" DT_UPLOADS <Func: 110> " Link Cap1101110} @{" DT_DOWNLOADS <Func: 111> " Link Cap1101111}
    @{" DT_TIMESCALLED <Func: 112> " Link Cap1101112} @{" DT_TIMELASTON <Func: 113> " Link Cap1101109}
    @{" DT_TIMEUSED <Func: 114> " Link Cap1101114} @{" DT_TIMELIMIT <Func: 115> " Link Cap1101115}
    @{" DT_TIMETOTAL <Func: 116> " Link Cap1101116} @{" DT_BYTESUPLOAD <Func: 117> " Link Cap1101117}
    @{" DT_BYTEDOWNLOAD <Func: 118> " Link Cap1101118} @{" DT_DAILYBYTELIMIT<Func: 119> " Link Cap1101119}
    @{" DT_DAILYBYTEDLD <Func: 120> " Link Cap1101120} @{" DT_EXPERT <Func: 121> " Link Cap1101121}
    @{" DT_LINELENGTH <Func: 122> " Link Cap1101122} @{" ACTIVE_NODES <Func: 123> " Link Cap1101123}
    @{" DT_DUMP <Func: 124> " Link Cap1101124} @{" DT_TIMEOUT <Func: 125> " Link Cap1101125}
    @{" BB_CONFNAME <Func: 126> " Link Cap1101126} @{" BB_CONFLOCAL <Func: 127> " Link Cap1101127}
    @{" BB_LOCAL <Func: 128> " Link Cap1101128} @{" BB_STATUS <Func: 129> " Link Cap1101129}
    @{" BB_MAINLINE <Func: 131> " Link Cap1101131} @{" RETURNCOMMAND <Func: 136> " Link Cap1101136}
    @{" ZMODEMSEND <Func: 137> " Link Cap1101137} @{" ZMODEMRECEIVE <Func: 138> " Link Cap1101138}
    @{" SCREEN_ADDRESS <Func: 139> " Link Cap1101139} @{" BB_TASKPRI <Func: 140> " Link Cap1101140}
    @{" RAWSCREEN_ADDRESS<Func: 141> " Link Cap1101141} @{" BB_CHATFLAG <Func: 142> " Link Cap1101142}
    @{" DT_STAMP_LASTON <Func: 143> " Link Cap1101143} @{" DT_STAMP_CTIME <Func: 144> " Link Cap1101144}
    @{" DT_CURR_TIME <Func: 145> " Link Cap1101145} @{" DT_CONFACCESS <Func: 146> " Link Cap1101146}
    @{" BB_NODEID <Func: 149> " Link Cap1101149} @{" BB_CALLERSLOG <Func: 150> " Link Cap1101150}
    @{" BB_UDLOG <Func: 151> " Link Cap1101151} @{" EXPRESS_VERSION <Func: 152> " Link Cap1101152}
    @{" BB_CHATSET <Func: 162> " Link Cap1101162} @{" ENVSTAT <Func: 163> " Link Cap1101163}
    @{" NODE_DEVICE <Func: 503> " Link Cap1101503} @{" NODE_UNIT <Func: 504> " Link Cap1101504}
    @{" NODE_BAUD <Func: 505> " Link Cap1101505} @{" JH_MCI <Func: 507> " Link Cap1101507}
    @{" PRV_COMMAND <Func: 508> " Link Cap1101508} @{" BB_CONFNUM <Func: 510> " Link Cap1101510}
    @{" BB_DROPDTR <Func: 511> " Link Cap1101511} @{" BB_GETTASK <Func: 512> " Link Cap1101512}
    @{" NODE_BAUDRATE <Func: 516> " Link Cap1101516} @{" BB_LOGONTYPE <Func: 517> " Link Cap1101517}
    @{" BB_SCRLEFT <Func: 518> " Link Cap1101518} @{" BB_SCRTOP <Func: 519> " Link Cap1101519}
    @{" BB_SCRWIDTH <Func: 520> " Link Cap1101520} @{" BB_SCRHEIGHT <Func: 521> " Link Cap1101521}
    @{" BB_PURGELIN <Func: 522> " Link Cap1101522} @{" BB_PURGELINESTART<Func: 523> " Link Cap1101523}
    @{" BB_PURGELINEEND <Func: 524> " Link Cap1101524} @{" BB_NONSTOPTEXT <Func: 525> " Link Cap1101525}
    @{" BB_LINECOUNT <Func: 526> " Link Cap1101526} @{" DT_LANGUAGE <Func: 527> " Link Cap1101527}
    @{" DT_QUICKFLAG <Func: 528> " Link Cap1101528} @{" DT_GOODFILE <Func: 529> " Link Cap1101529}

    =========================================================================
    @endnode
    @node Cap1101000 "JH_LI <Func: 000>"
    =========================================================================
    JH_LI Requests a string of information from the user with a
    default string.

    msg->Command = 0
    msg->String = default result string
    msg->Data = Maximum length of response.

    msg->Data will be set to a -1 if a loss carrier or console
    TIMEOUT occurs, otherwise MSG->Data will be 1

    msg->String will be the response string from the user.
    (FUNCTION #: 0 )
    =========================================================================
    @endnode
    @node Cap1101001 "JH_REGISTER <Func: 001>"
    =========================================================================
    JH_REGISTER Registers a door or XIM with the current node.

    msg->Command = 1

    This must be the first command issued to the express node.
    This increments the number of doors active for the current
    node.
    (FUNCTION #: 1 )
    =========================================================================
    @endnode
    @node Cap1101002 "JH_SHUTDOWN <Func: 002>"
    =========================================================================
    JH_SHUTDOWN Tells the node that a door is shutting down, this decreases
    the number of active doors indicator , which once at 0,
    the AEDoorPort will close.

    msg->Command = 2
    msg->Data = N/A
    (FUNCTION #: 2 )
    =========================================================================
    @endnode
    @node Cap1101003 "JH_WRITE <Func: 003>"
    =========================================================================
    JH_WRITE Allows you to send a text string to the user.

    msg->Command = 3
    msg->String = text
    msg->Data = N/A
    (FUNCTION #: 3 )
    =========================================================================
    @endnode
    @node Cap1101004 "JH_SM <Func: 004>"
    =========================================================================
    JH_SM Allows you to send a text string to the user.

    msg->Command = 4
    msg->String = text
    msg->Data = 1 or 0

    if msg->Data = 1, then a CR/LF combination will be sent.
    (FUNCTION #: 4 )
    =========================================================================
    @endnode
    @node Cap1101005 "JH_PM <Func: 005>"
    =========================================================================
    JH_PM Allows you to prompt the user for a specified number of
    characters.

    msg->Command = 5
    msg->String = prompt string
    msg->Data = maximum response length.

    if msg->Data = -1, then a loss carrier has occurred or a
    TIMEOUT condition has occurred, otherwise msg->Data = 1.

    msg->String will be the user response.
    (FUNCTION #: 5 )
    =========================================================================
    @endnode
    @node Cap1101006 "JH_HK <Func: 006>"
    =========================================================================
    JH_HK Allows you to get a 1 character response from the user.

    msg->Command = 6
    msg->String = text
    msg->Data = N/A

    if msg->Data = -1, then a loss carrier has occurred or a
    TIMEOUT condition has occurred, otherwise msg->Data = 1.

    msg->String will be the result string.
    (FUNCTION #: 6 )
    =========================================================================
    @endnode
    @node Cap1101007 "JH_SG <Func: 007>"
    =========================================================================
    JH_SG Allows you to display a text file to the user.

    msg->Command = 7
    msg->String = part file name.
    msg->Data = N/A

    ie:

    msg->String = "BBS:Node1/Bull

    This would try to display BBS:Node1/BULL.TXT
    also takes into account language specifications.

    This also searches for the access level patterns, ie:

    Bull10.TXT, Bull100.TXT
    (FUNCTION #: 7 )
    =========================================================================
    @endnode
    @node Cap1101008 "JH_SF <Func: 008>"
    =========================================================================
    JH_SF Allows you to display a text file to the user.

    msg->Command = 8
    msg->String = Complete pathname
    msg->Data = N/A

    ie:

    msg->String = "BBS:Node1/BULL.TXT"

    This would show the file if it exists.
    (FUNCTION #: 8 )
    =========================================================================
    @endnode
    @node Cap1101009 "JH_EF <Func: 009>"
    =========================================================================
    JH_EF Allows you to use the internal msgbase editor to edit your
    own files.

    msg->Command = 9
    msg->String = Complete pathname
    msg->Data = 0

    if msg->Data = -1, then a loss carrier has occurred or a
    TIMEOUT has occurred, otherwise msg->Data will be 1.
    (FUNCTION #: 9 )
    =========================================================================
    @endnode
    @node Cap1101010 "JH_CO <Func: 010>"
    =========================================================================
    JH_CO Allows you to send text string to the console only.

    msg->Command = 10
    msg->String = text
    msg->Data = 1 or 0

    if msg->Data = 1, then a CR/LF combination will be sent in
    addition to the text.
    (FUNCTION #: 10 )
    =========================================================================
    @endnode
    @node Cap1101011 "JH_BBSNAME <Func: 011>"
    =========================================================================
    JH_BBSNAME Allows you to retrieve the BBS Name.

    msg->Command = 11
    msg->Data = N/A

    msg->String will be the BBS name.
    (FUNCTION #: 11 )
    =========================================================================
    @endnode
    @node Cap1101012 "JH_SYSOP <Func: 012>"
    =========================================================================
    JH_SYSOP Allows you to retrieve the Sysop's Name.

    msg->Command = 12
    msg->Data = N/A

    msg->String will be the Sysop name.
    (FUNCTION #: 12 )
    =========================================================================
    @endnode
    @node Cap1101013 "JH_FLAGFILE <Func: 013>"
    =========================================================================
    JH_FLAGFILE Allows you to add files to the list of flagged files.

    msg->Command = 13
    msg->String = FileName
    msg->Data = N/A

    Adds the msg->String to the list of flagged files for
    downloading purposes,

    NOTE: The files must be in the download path for this to
    work.
    (FUNCTION #: 13 )
    =========================================================================
    @endnode
    @node Cap1101100 "DT_NAME <Func: 100>"
    =========================================================================
    DT_NAME Allows you to retrieve or change users name/handle

    msg->Command = 100
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be the name.
    if msg->Data = 0, then name will be msg->String
    (FUNCTION #: 100 )
    =========================================================================
    @endnode
    @node Cap1101101 "DT_PASSWORD <Func: 101>"
    =========================================================================
    DT_PASSWORD Allows you to retrieve or change users password

    msg->Command = 101
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be the password.
    if msg->Data = 0, then the password will be msg->String.
    (FUNCTION #: 101 )
    =========================================================================
    @endnode
    @node Cap1101102 "DT_LOCATION <Func: 102>"
    =========================================================================
    DT_LOCATION Allows you to retrieve or change users location

    msg->Command = 102
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be the location
    if msg->Data = 0, then the location will be msg->String
    (FUNCTION #: 102 )
    =========================================================================
    @endnode
    @node Cap1101103 "DT_PHONENUMBER <Func: 103>"
    =========================================================================
    DT_PHONENUMBER Allows you to retrieve or change users phone number.

    msg->Command = 103
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be the phonenumber
    if msg->Data = 0, ten phonenumber will be msg->String
    (FUNCTION #: 103 )
    =========================================================================
    @endnode
    @node Cap1101104 "DT_SLOTNUMBER <Func: 104>"
    =========================================================================
    DT_SLOTNUMBER Allows you to retrieve users slot number

    msg->Command = 104
    msg->Data = 1

    if msg->Data = 1, then msg->String will be the SLOTNUMBER.
    (FUNCTION #: 104 )
    =========================================================================
    @endnode
    @node Cap1101105 "DT_ACCESSLEVEL <Func: 105>"
    =========================================================================
    DT_ACCESSLEVEL Allows you to retrieve or change users access level.

    msg->Command = 105
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be ACCESSLEVEL.
    if msg->Data = 0, then ACCESSLEVEL will be msg->String.
    (FUNCTION #: 105 )
    =========================================================================
    @endnode
    @node Cap1101106 "DT_RATIOTYPE <Func: 106>"
    =========================================================================
    DT_RATIOTYPE Allows you to retrieve or change users RatioType

    msg->Command = 106
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be RatioType.
    if msg->Data = 0, then RatioType will be msg->String.
    (FUNCTION #: 106 )
    =========================================================================
    @endnode
    @node Cap1101107 "DT_RATIO <Func: 107>"
    =========================================================================
    DT_RATIO Allows you to retrieve or change users ratio

    msg->Command = 107
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be ratio.
    if msg->Data = 0, then ratio will be msg->String.
    (FUNCTION #: 107 )
    =========================================================================
    @endnode
    @node Cap1101108 "DT_COMPTYPE <Func: 108>"
    =========================================================================
    DT_COMPTYPE Allows you to retrieve or change users ComputerTypes code

    msg->Command = 108
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be ComputerTypes.
    if msg->Data = 0, then ComputerTypes will be msg->String.
    (FUNCTION #: 108 )
    =========================================================================
    @endnode
    @node Cap1101109 "DT_MESSAGESPOSTED <Func: 109>"
    =========================================================================
    DT_MESSAGESPOSTED Allows you to retrieve or change users MESSAGESPOSTED

    msg->Command = 109
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be MESSAGESPOSTED.
    if msg->Data = 0, then MESSAGESPOSTED will be msg->String.
    (FUNCTION #: 109 )
    =========================================================================
    @endnode
    @node Cap1101110 "DT_UPLOADS <Func: 110>"
    =========================================================================
    DT_UPLOADS Allows you to retrieve or change number of UserUploads.

    msg->Command = 110
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be uploads.
    if msg->Data = 0, then uploads will be msg->String.
    (FUNCTION #: 110 )
    =========================================================================
    @endnode
    @node Cap1101111 "DT_DOWNLOADS <Func: 111>"
    =========================================================================
    DT_DOWNLOADS Allows you to retrieve or change number of UserDownloads.

    msg->Command = 111
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be downloads.
    if msg->Data = 0, then downloads will be msg->String.
    (FUNCTION #: 111 )
    =========================================================================
    @endnode
    @node Cap1101112 "DT_TIMESCALLED <Func: 112>"
    =========================================================================
    DT_TIMESCALLED Allows you to retrieve or change number of UserCalls.

    msg->Command = 112
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be TIMESCALLED.
    if msg->Data = 0, then TIMESCALLED will be msg->String.
    (FUNCTION #: 112 )
    =========================================================================
    @endnode
    @node Cap1101113 "DT_TIMELASTON <Func: 113>"
    =========================================================================
    DT_TIMELASTON Allows you to retrieve or change time user last called.

    msg->Command = 113
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be TIMESCALLED.
    if msg->Data = 0, then TIMESCALLED will be msg->String.

    NOTE: This is not a date stamp, this is the number of
    seconds since January 19something.
    (FUNCTION #: 113 )
    =========================================================================
    @endnode
    @node Cap1101114 "DT_TIMEUSED <Func: 114>"
    =========================================================================
    DT_TIMEUSED Allows you to retrieve or change TIMEUSED today.

    msg->Command = 114
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be TIMEUSED.
    if msg->Data = 0, then TIMEUSED will be msg->String.

    NOTE: This is in seconds.
    (FUNCTION #: 114 )
    =========================================================================
    @endnode
    @node Cap1101115 "DT_TIMELIMIT <Func: 115>"
    =========================================================================
    DT_TIMELIMIT Allows you to retrieve or change TimeAllowed for a user.

    msg->Command = 115
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be TIMELIMIT.
    if msg->Data = 0, then TIMELIMIT will be msg->String.

    NOTE: Time in seconds.
    (FUNCTION #: 115 )
    =========================================================================
    @endnode
    @node Cap1101116 "DT_TIMETOTAL <Func: 116>"
    =========================================================================
    DT_TIMETOTAL Allows you to retrieve or change total time remaining.
    for a user today.

    msg->Command = 116
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be time remaining.
    if msg->Data = 0, then time remaining will be msg->String.

    NOTE: Time in seconds.
    (FUNCTION #: 116 )
    =========================================================================
    @endnode
    @node Cap1101117 "DT_BYTESUPLOAD <Func: 117>"
    =========================================================================
    DT_BYTESUPLOAD Allows you to retrieve or change bytes uploads per user.

    msg->Command = 117
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be BYTESUPLOADED.
    if msg->Data = 0, then BYTESUPLOADED will be msg->String.
    (FUNCTION #: 117 )
    =========================================================================
    @endnode
    @node Cap1101118 "DT_BYTEDOWNLOAD <Func: 118>"
    =========================================================================
    DT_BYTEDOWNLOAD Allows you to retrieve or change bytes downloaded per
    user.

    msg->Command = 118
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be BYTESDOWNLOADED.
    if msg->Data = 0, then BYTESDOWNLOADED will be msg->String.
    (FUNCTION #: 118 )
    =========================================================================
    @endnode
    @node Cap1101119 "DT_DAILYBYTELIMIT <Func: 119>"
    =========================================================================
    DT_DAILYBYTELIMIT Allows you to retrieve or change a users daily byte
    download limit.

    msg->Command = 119
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be bytelimit.
    if msg->Data = 0, then bytelimit will be msg->String.
    (FUNCTION #: 119 )
    =========================================================================
    @endnode
    @node Cap1101120 "DT_DAILYBYTEDLD <Func: 120>"
    =========================================================================
    DT_DAILYBYTEDLD Allows you to retrieve or change daily bytes downloaded.

    msg->Command = 120
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be dailybytes.
    if msg->Data = 0, then dailybytes will be msg->String.
    (FUNCTION #: 120 )
    =========================================================================
    @endnode
    @node Cap1101121 "DT_EXPERT <Func: 121>"
    =========================================================================
    DT_EXPERT Allows you to retrieve or change expert mode.

    msg->Command = 121
    msg->Data = 1 or 0
    (FUNCTION #: 121 )
    =========================================================================
    @endnode
    @node Cap1101122 "DT_LINELENGTH <Func: 122>"
    =========================================================================
    DT_LINELENGTH Allows you to retrieve or change user LINELENGTH specs.

    msg->Command = 122
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be LINELENGTH.
    if msg->Data = 0, then LINELENGTH will be msg->String.
    (FUNCTION #: 122 )
    =========================================================================
    @endnode
    @node Cap1101123 "ACTIVE_NODES <Func: 123>"
    =========================================================================
    ACTIVE_NODES Allows you to retrieve a string of active&inactive nodes.

    msg->Command = 123
    msg->Data = N/A

    msg->String will be a string 10 bytes in length, with
    'X's marking the active nodes.

    NOTE: This command will surely be changing, the current
    limit is 9 nodes.
    (FUNCTION #: 123 )
    =========================================================================
    @endnode
    @node Cap1101124 "DT_DUMP <Func: 124>"
    =========================================================================
    DT_DUMP Allows you to dump the user's data structure to a
    specified file.

    msg->Command = 124
    msg->String = FileName
    (FUNCTION #: 124 )
    =========================================================================
    @endnode
    @node Cap1101125 "DT_TIMEOUT <Func: 125>"
    =========================================================================
    DT_TIMEOUT Allows you to retrieve or change the door TIMEOUT limit.

    msg->Command = 125
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will equal TIMEOUT.
    if msg->Data = 0, then TIMEOUT will equal msg->String.

    NOTE: This time is in seconds.
    (FUNCTION #: 125 )
    =========================================================================
    @endnode
    @node Cap1101126 "BB_CONFNAME <Func: 126>"
    =========================================================================
    BB_CONFNAME Allows you to retrieve or change the conference name.

    msg->Command = 126
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be name.
    if msg->Data = 0, then name will be msg->String.
    (FUNCTION #: 126 )
    =========================================================================
    @endnode
    @node Cap1101127 "BB_CONFLOCAL <Func: 127>"
    =========================================================================
    BB_CONFLOCAL Allows you to retrieve or change the conference location.

    msg->Command = 127
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be location.
    if msg->Data = 0, then location will be msg->String.
    (FUNCTION #: 127 )
    =========================================================================
    @endnode
    @node Cap1101128 "BB_LOCAL <Func: 128>"
    =========================================================================
    BB_LOCAL Allows you to retrieve the current BBS location.

    msg->Command = 128
    msg->Data = N/A
    (FUNCTION #: 128 )
    =========================================================================
    @endnode
    @node Cap1101129 "BB_STATUS <Func: 129>"
    =========================================================================
    BB_STATUS Allows you to retrieve the current status of the node.

    msg->Command = 129
    msg->Data = N/A

    msg->String will be 'OFFLINE' or 'ONLINE' depending on
    whether a user is logged onto the node.
    (FUNCTION #: 129 )
    =========================================================================
    @endnode
    @node Cap1101131 "BB_MAINLINE <Func: 131>"
    =========================================================================
    BB_MAINLINE Allows you to retrieve the menu prompt arguments prior to
    the door being entered.

    msg->Command = 131
    msg->Data = N/A

    msg->String will be the menu prompt arguments.
    (FUNCTION #: 131 )
    =========================================================================
    @endnode
    @node Cap1101136 "RETURNCOMMAND <Func: 136>"
    =========================================================================
    RETURNCOMMAND Allows you to specify an internal command to be executed
    when the door is finished.

    msg->Command = 136
    msg->Data = N/A

    command to be executed will be msg->String.
    (FUNCTION #: 136 )
    =========================================================================
    @endnode
    @node Cap1101137 "ZMODEMSEND <Func: 137>"
    =========================================================================
    ZMODEMSEND Allows you to send files to the user via Zmodem protocol.

    msg->Command = 137
    msg->String = filename (complete pathname)
    msg->Data = N/A

    result of transfer will be in msg->Data, where

    if msg->Data = 1 , then transfer successful.
    if msg->Data = -2, then user lost carrier.
    if msg->Data = 0 , then transfer unsuccessful.
    (FUNCTION #: 137 )
    =========================================================================
    @endnode
    @node Cap1101138 "ZMODEMRECEIVE <Func: 138>"
    =========================================================================
    ZMODEMRECEIVE Allows you to receive batch uploads via Zmodem protocol.

    msg->Command = 138
    msg->String = receive directory path
    msg->Data = N/A

    result of transfer will be in msg->Data, where

    if msg->Data = 1 , then transfer successful.
    if msg->Data = -2, then user lost carrier.
    if msg->Data = 0, then transfer unsuccessful.
    (FUNCTION #: 138 )
    =========================================================================
    @endnode
    @node Cap1101139 "SCREEN_ADDRESS <Func: 139>"
    =========================================================================
    SCREEN_ADDRESS Allows you to retrieve the screen address.

    msg->Command = 139
    msg->Data = N/A

    msg->String will be a string containing the hexadecimal
    address of the Node screen.
    (FUNCTION #: 139 )
    =========================================================================
    @endnode
    @node Cap1101140 "BB_TASKPRI <Func: 140>"
    =========================================================================
    BB_TASKPRI Allows you to retrieve the priority the node is running at.

    msg->Command = 140
    msg->Data = N/A

    msg->String will contain the priority of the node.
    (FUNCTION #: 140 )
    =========================================================================
    @endnode
    @node Cap1101141 "RAWSCREEN_ADDRESS <Func: 141>"
    =========================================================================
    RAWSCREEN_ADDRESS Allows you to retrieve the screen address of the node.

    msg->Command = 141
    msg->Data = N/A

    msg->String will be a string containing the decimal address
    of the express node.
    (FUNCTION #: 141 )
    =========================================================================
    @endnode
    @node Cap1101142 "BB_CHATFLAG <Func: 142>"
    =========================================================================
    BB_CHATFLAG Allows you to retrieve the current chat setting.

    msg->Command = 142
    msg->Data = N/A

    msg->String will be "ON" or "OFF".
    (FUNCTION #: 142 )
    =========================================================================
    @endnode
    @node Cap1101143 "DT_STAMP_LASTON <Func: 143>"
    =========================================================================
    DT_STAMP_LASTON Allows you to retrieve a date string containing the date
    of when the user last logged on.

    msg->Command = 143
    msg->Data = N/A

    msg->String will be the date string.
    (FUNCTION #: 143 )
    =========================================================================
    @endnode
    @node Cap1101144 "DT_STAMP_CTIME <Func: 144>"
    =========================================================================
    DT_STAMP_CTIME Allows you to retrieve a current time string.

    msg->Command = 144
    msg->Data = N/A

    msg->String will be a current time string.
    (FUNCTION #: 144 )
    =========================================================================
    @endnode
    @node Cap1101145 "DT_CURR_TIME <Func: 145>"
    =========================================================================
    DT_CURR_TIME Allows you to retrieve the current time in seconds since
    January something.

    msg->Command = 145
    msg->Data = N/A

    msg->String will be the current time.
    (FUNCTION #: 145 )
    =========================================================================
    @endnode
    @node Cap1101146 "DT_CONFACCESS <Func: 146>"
    =========================================================================
    DT_CONFACCESS Allows you to retrieve the users conference access.

    msg->Command = 146
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be AREANAME.
    if msg->Data = 0, then AREANAME will be msg->String.

    (FUNCTION #: 146 )
    =========================================================================
    @endnode
    @node Cap1101149 "BB_NODEID <Func: 149>"
    =========================================================================
    BB_NODEID Allows you to retrieve the Node number for the current
    node

    msg->Command = 149
    msg->Data = N/A

    msg->String will be the node number.
    (FUNCTION #: 149 )
    =========================================================================
    @endnode
    @node Cap1101150 "BB_CALLERSLOG <Func: 150>"
    =========================================================================
    BB_CALLERSLOG Allows you to add a line of text to the CALLERSLOG.

    msg->Command = 150
    msg->String = text
    msg->Data = N/A
    (FUNCTION #: 150 )
    =========================================================================
    @endnode
    @node Cap1101151 "BB_UDLOG <Func: 151>"
    =========================================================================
    BB_UDLOG Allows you to add a line of text to the UDLOG.

    msg->Command = 151
    msg->String = text
    msg->Data = N/A
    (FUNCTION #: 151 )
    =========================================================================
    @endnode
    @node Cap1101152 "EXPRESS_VERSION <Func: 152>"
    =========================================================================
    EXPRESS_VERSION Allows you to retrieve the current version string of
    express.

    msg->Command = 152
    msg->Data = N/A
    (FUNCTION #: 152 )
    =========================================================================
    @endnode
    @node Cap1101162 "BB_CHATSET <Func: 162>"
    =========================================================================
    BB_CHATSET Allows you to retrieve or change the chat status.

    msg->Command = 162
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be current status.
    if msg->Data = 0, then status will be msg->String.
    (FUNCTION #: 162 )
    =========================================================================
    @endnode
    @node Cap1101163 "ENVSTAT <Func: 163>"
    =========================================================================
    ENVSTAT Allows you to retrieve or change the current environment
    stat variable code.

    msg->Command = 163
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be status.
    if msg->Data = 0, then status will be msg->String.
    (FUNCTION #: 163 )
    =========================================================================
    @endnode
    @node Cap1101503 "NODE_DEVICE <Func: 503>"
    =========================================================================
    NODE_DEVICE Allows you to retrieve the node device name.

    msg->Command = 503
    msg->Data = N/A

    msg->String will be the device string.
    (FUNCTION #: 503 )
    =========================================================================
    @endnode
    @node Cap1101504 "NODE_UNIT <Func: 504>"
    =========================================================================
    NODE_UNIT Allows you to retrieve the node unit number.

    msg->Command = 504
    msg->Data = N/A

    msg->String will be the current node number.
    (FUNCTION #: 504 )
    =========================================================================
    @endnode
    @node Cap1101505 "NODE_BAUD <Func: 505>"
    =========================================================================
    NODE_BAUD Allows you to retrieve the initialized baud rate of the node.

    msg->Command = 505
    msg->Data = N/A

    msg->String will be the INIT baud rate.
    (FUNCTION #: 505 )
    =========================================================================
    @endnode
    @node Cap1101507 "JH_MCI <Func: 507>"
    =========================================================================
    JH_MCI Allows you to send MCI text to express.

    msg->Command = 507
    msg->String = text
    msg->Data = N/A
    (FUNCTION #: 507 )
    =========================================================================
    @endnode
    @node Cap1101508 "PRV_COMMAND <Func: 508>"
    =========================================================================
    PRV_COMMAND Allows you to immediately execute an internal express
    menu command.

    msg->Command = 508
    msg->String = commandstring
    msg->Data = N/A
    (FUNCTION #: 508 )
    =========================================================================
    @endnode
    @node Cap1101510 "BB_CONFNUM <Func: 510>"
    =========================================================================
    BB_CONFNUM Allows you to retrieve the current conference number.

    msg->Command = 510
    msg->Data = N/A

    msg->String will be conference number ranging from 0 to 8.
    (FUNCTION #: 510 )
    =========================================================================
    @endnode
    @node Cap1101511 "BB_DROPDTR <Func: 511>"
    =========================================================================
    BB_DROPDTR Allows you to drop carrier on a user.

    msg->Command = 511
    msg->Data = N/A
    (FUNCTION #: 511 )
    =========================================================================
    @endnode
    @node Cap1101512 "BB_GETTASK <Func: 512>"
    =========================================================================
    BB_GETTASK Finds the current nodes task address.

    msg->Command = 512
    msg->Data = N/A

    msg->task will be the express task address.
    (FUNCTION #: 512 )
    =========================================================================
    @endnode
    @node Cap1101516 "NODE_BAUDRATE <Func: 516>"
    =========================================================================
    NODE_BAUDRATE Allows you to retrieve the current users connect rate

    msg->Command = 516
    msg->Data = N/A

    msg->String will be the connect rate
    (FUNCTION #: 516 )
    =========================================================================
    @endnode
    @node Cap1101517 "BB_LOGONTYPE <Func: 517>"
    =========================================================================
    BB_LOGONTYPE Allows you to retrieve the LOGONTYPE.

    msg->Command = 517
    msg->Data = N/A

    msg->Data will be:

    0 = AWAIT_LOGON
    1 = SYSOP_LOGON
    2 = LOCAL_LOGON
    3 = REMOTE_LOGON
    (FUNCTION #: 517 )
    =========================================================================
    @endnode
    @node Cap1101518 "BB_SCRLEFT <Func: 518>"
    =========================================================================
    BB_SCRLEFT Allows you to retrieve the screen coordinates.

    msg->Command = 518
    msg->Data = N/A

    msg->Data will be the Node's Initial LEFTEDGE coordinate.
    (FUNCTION #: 518 )
    =========================================================================
    @endnode
    @node Cap1101519 "BB_SCRTOP <Func: 519>"
    =========================================================================
    BB_SCRTOP Allows you to retrieve the screen coordinates.

    msg->Command = 519
    msg->Data = N/A

    msg->Data will be the Node's Initial TOPEDGE coordinate.
    (FUNCTION #: 519 )
    =========================================================================
    @endnode
    @node Cap1101520 "BB_SCRWIDTH <Func: 520>"
    =========================================================================
    BB_SCRWIDTH Allows you to retrieve the screen coordinates.

    msg->Command = 520
    msg->Data = N/A

    msg->Data will be the Node's Initial screen height.
    (FUNCTION #: 520 )
    =========================================================================
    @endnode
    @node Cap1101521 "BB_SCRHEIGHT <Func: 521>"
    =========================================================================
    BB_SCRHEIGHT Allows you to retrieve the screen coordinates.

    msg->Command = 521
    msg->Data = N/A

    msg->Data will be the Node's Initial screen width.
    (FUNCTION #: 521 )
    =========================================================================
    @endnode
    @node Cap1101522 "BB_PURGELIN <Func: 522>"
    =========================================================================
    BB_PURGELIN Allows you to abort serial input.

    msg->Command = 522
    msg->Data = N/A

    aborts serial input and flushes the serial buffer and sends
    a request for more input.
    (FUNCTION #: 522 )
    =========================================================================
    @endnode
    @node Cap1101523 "BB_PURGELINESTART <Func: 523>"
    =========================================================================
    BB_PURGELINESTART Allows you to CLEAR the serial buffer and request more
    serial input.

    msg->Command = 523
    msg->Data = N/A
    (FUNCTION #: 523 )
    =========================================================================
    @endnode
    @node Cap1101524 "BB_PURGELINEEND <Func: 524>"
    =========================================================================
    BB_PURGELINEEND Allows you to CLEAR the serial buffer.

    msg->Command = 524
    msg->Data = N/A
    (FUNCTION #: 524 )
    =========================================================================
    @endnode
    @node Cap1101525 "BB_NONSTOPTEXT <Func: 525>"
    =========================================================================
    BB_NONSTOPTEXT Allows you to change the NONSTOP text scrolling flag.

    msg->Command = 525
    msg->Data = 1 or 0

    if msg->Data = 1, then display text will not pause.
    if msg->Data = 0, then display text will pause.
    (FUNCTION #: 525 )
    =========================================================================
    @endnode
    @node Cap1101526 "BB_LINECOUNT <Func: 526>"
    =========================================================================
    BB_LINECOUNT Allows you to retrieve or change the user's current number
    of lines viewed.

    msg->Command = 526
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be current line.
    if msg->Data = 0, then current line will be msg->String.
    (FUNCTION #: 526 )
    =========================================================================
    @endnode
    @node Cap1101527 "DT_LANGUAGE <Func: 527>"
    =========================================================================
    DT_LANGUAGE Allows you to retrieve or change the current language
    specifications.

    msg->Command = 527
    msg->Data = 1 or 0

    if msg->Data = 1, then msg->String will be language.
    if msg->Data = 0, then language will be msg->String.

    NOTE: Languages need to be standardized, please what for
    guidelines.

    ie: Default language .TXT
    English .ENG
    German .GER

    note that this only effects the menus, bulletins &
    other screen text files.
    (FUNCTION #: 527 )
    =========================================================================
    @endnode
    @node Cap1101528 "DT_QUICKFLAG <Func: 528>"
    =========================================================================
    DT_QUICKFLAG Allows you to change the QUICKTEXT flag.

    msg->Command = 528
    msg->Data = 1 or 0

    if msg->Data = 1, then the QuickFlag will be set.
    if msg->Data = 0, then the QuickFlag will not be set.
    (FUNCTION #: 528 )
    =========================================================================
    @endnode
    @node Cap1101529 "DT_GOODFILE <Func: 529>"
    =========================================================================
    DT_GOODFILE Allows you to set the results of a tested file after
    upload.

    msg->Command = 529
    msg->Data = 1,0 or -1

    if msg->Data is 1, then the file was not tested.
    if msg->Data is 0, then the file passed the filetest.
    if msg->Data is -1, then the file failed the filetest.

    NOTE: This command is only useful with the SYSCmd door
    called FILECHECK.
    (FUNCTION #: 529 )
    =========================================================================
    @endnode
    @node Cap1103 "Traditional Interface Module (TIM)
    =========================================================================

    The Traditional interface provides the capability to run "DOORS"
    designed for other Bulletin Board Systems. This is not to say that it
    will interpret all "DOORS" but some may work. The traditional interface
    requires a file called PARADOOR, which is supplied with AmiExpress and
    must be located in a path that AmiExpress can find. If a CARRIER LOSS
    is detected or a keyboard TIMEOUT is detected, the BBS will notify the
    Module, but it is up to the Module to do an orderly halt. Most door
    programmers know how to close their doors properly. AmiExpress
    automatically launches the PARADOOR so please do not run it yourself.

    =========================================================================
    @endnode
    @node Cap1104 "AmiExpress Interface Module System (XIM)...."
    =========================================================================

    My interface is by far the best of all of these put together, it
    allows you to do a lot of stuff. The best part about this interface is
    you don't need a separate program to access it. There will be a lot of
    Modules out for this in the near future, we have several being made
    right now.


    ___________ message structure for use with the XIMs
    | NOTE: RexxDoors are translated to the same structure
    v ~~~~ via the REXXDOOR utility
    struct JHMessage
    {
    struct Message Msg; <----- msg structure
    char String[200]; <----- info buffer
    int Data; <----- Read/Write & result indicator
    int Command; <----- Command sent from door.
    int NODEID; <----- reserved
    int LineNum; <----- reserved
    unsigned long signal; <----- reserved
    struct Process *task; <----- see BB_GETTASK below

    } ;

    PORTNAME: The portname for the XIMs is 'AEDoorPort(n)' ie: AEDoorPort1
    =========================================================================
    @endnode
    @node Cap1105 "AmiExpress CLI Interface (XIM)...."
    =========================================================================

    This new interface can be used to run CLI doors. Not all doors will
    work correctly. You will have to experiment.

    Setup procedure:

    1st: You must have Fifo-Handler in your L: directory, and also
    you must have a Fifo.Library in your Libs: directory. You must
    have at least version 0.4 of the Fifo.Library.

    2nd: You must add these lines to your user-startup,

    -------> assign AXCLI: DOORS:CliConFigs
    -------> run >NIL: <NIL: L:Fifo-Handler

    3rd: You must create a directory in your doors: called cliconfigs.
    This directory will store the config files for each door run.
    They must have the door name and a .cfg behind it. These cfg
    files control the paths to the doors, and the commands allowed
    and not allowed with your keys.

    THIS IS AN EXAMPLE CFG FILE:

    doors:contris/contris! ~N
    BREAK_C

    The first line is the execution line. Any following line is the
    filter options, which are as follows:

    BREAK_C -----> Allows Ctrl C
    BREAK_D -----> Allows Ctrl D
    BREAK_E -----> Allows Ctrl E
    BREAK_F -----> Allows Ctrl F
    RAWMODE -----> Allows Unfiltered IO

    ~~~~~~~~~~~~ WARNING ~~~~~~~~~~~~~~

    As you can see, the CLI Doors are VERY DANGEROUS. If
    you have a wrong option in the cfg file, you could be
    opening your whole bbs up for the taking. I really mean
    taking. A use might be able to Break the CLI and get into
    your system And you know what that means.

    We suggest you research the use of the multi-user file system for
    security. WE WILL NOT BE HELD RESPONSIBLE IF SOMEONE BREAKS INTO
    YOUR SYSTEM. YOU HAVE BEEN WARNED.

    =========================================================================
    @endnode
    @node Cap12 "The MCI imbedded ControlSequence...."
    =========================================================================

    Any text file may contain imbedded control sequences which will send out
    variable text or cause certain things to happen.

    MCI - Introducer:
    ~~~~~~~~~~~~~~~~
    ~ This is the MCI introducer, this must be at the beginning of
    each text file by itself in order for Express to switch to the MCI
    interpreter for displaying the text file.

    MCI - User Specification:
    ~~~~~~~~~~~~~~~~~~~~~~~~

    ~N User Name
    ~IN User Internet Name
    ~RN User Realname
    ~UL User Location
    ~P User Password
    ~# User Phone
    ~TC Total User Calls
    ~LC User Last Call to the system
    ~M User Message Posted
    ~A User Access Level
    ~S User Slot Number
    ~CA User Conf. Access **** NOTE CHANGED FROM X ****
    ~BR User BaudRate
    ~HW User Computer Equipment
    ~TL User Initial Time Limit at logon in Minutes
    ~TR User Number of Mins Remaining today
    ~UB User Bytes Uploaded
    ~DB User Bytes Downloaded
    ~FU User Files Uploaded
    ~FD User Files Downloaded
    ~BD User Byte Download Limit
    ~LG User Logged On-Node
    ~DX Change the MCI command terminator.
    i.e.: ~D.| will change the '|' to '.'


    ~OD Online Since Date
    ~OT Online Since Time
    ~CX Change foreground ansi color to anything from 0-f.
    ~BX Change background ansi color to anything from 0-f.
    ~H Back Space
    ~Q Change to default ANSI mode.
    ~F Clear Screen.
    ~Nx Newlines where x is the number of them you would like
    ~~ This indicates you wish the ~ symbol to appear, you can
    have as many of them as you like after the first ~ to display
    them (NOTE: no ',' on this command)
    ~xN Goto X position on screen. ie: ~x10
    ~yN Goto Y position on screen. ie: ~y10

    NOTE: The above commands allow you to specify a width identifier before
    ~~~~ the action test.. ie:
    ~10N would only display the first 10 letters of the username.

    MCI - System Specification:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ~SC System Total calls
    ~CT Show current Time
    ~DT Show current Date

    MCI - Extra Specification:
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    ~CR will wait for any key to be pressed.
    ~CR_Prompt will wait for and prompt the user to press any key.
    ie: ~CR_PressAnyKey
    ~SP will do a standard pause, this is useful to put in
    between each ~SS command.

    ~<xx>SR_<screens>
    This allows you to have random textfiles by using this
    MCI Command. <xx> represents the maximal number of
    random file you want to change. and <screens> is the full
    path to the textfiles you want to be random displayed.
    (without .TXT)

    ~SS_Name Show <name> file. This file may also be an MCI file.

    WARNING: This command could cause a serious loop problem if
    ~~~~~~~ you tell it to show the same file you are viewing.
    WARNING: You may need to increase STACK if you nest to many
    ~~~~~~~ of these files.

    NOTE: If this command is accessed via the message base or the
    ~~~~ View or ViewSysop commands, then the file you are going
    to view has to have a file comment of
    'Allowed' or '{xxx}Allowed'

    {xxx} specifies security level or above ie:

    {050}Allowed, indicates that only those over or equal to
    access level of 50 are allowed to view the
    file.

    ~SR - Show Random Files

    SYNTAX: ~<numb>SR_<fileid>

    ^ ^ ^
    | | |
    | | ---------- pathname without security level and file
    | | extension
    | ------------- Command to show random file
    ------------------ Number of Random files

    IE: ~10SR_BBS:Logon

    This will look for a random file between 1-10, the syntax for the file
    to display is:

    SYNTAX: PathName<seq>.FileName[security level]<extension>

    IE: BBS:001.Logon200.TXT


    This would be the first of ten files to create to be displayed
    by the random function, the '200' is the security level which is
    optional.


    ~SX - Show Sequentual Files

    SYNTAX: ~SX_<fileid>

    ^ ^
    | |
    | ---------- pathname without security level and file
    | extension
    ------------- Command to show sequentual file

    IE: ~SX_BBS:Logon

    1. This will look for a file called BBS:Logon which will store the last
    sequence of the <fileid> that was displayed. If this file does not
    exist, the 'SX' command will create it.
    2. Then it will construct a display file name based on the next sequence
    number as follows:

    SYNTAX: PathName<seq>.FileName

    3. It will then look for the appropriate file to display. The actual
    ASCII file should contain the following information for the filename:

    SYNTAX: PathName<seq>.FileName[security level]<extension>

    IE: BBS:001.Logon200.TXT --v
    BBS:001.Logon100.TXT ----- notice the different security levels
    keeping in mind that they are optional.
    BBS:002.Logon200.TXT


    ~CC_Name Launch a door 'Name' is the door's name.
    ie: ~CC_WHO will look in SYSCMD, BBSCmd and CONF<x>CMD
    directory which must be located in the
    BBS:Commands directory.

    ~CC_WHO

    NOTE: It is important to realize that most MENU COMMANDS should only
    be run from the MENU PROMPT. For Instance , forcing the READING
    of mail at the FRONTEND of express would not be wise because the
    BBS does not know who is logging onto the system. So use your
    own judgement on these matters.

    ~CL this command will display a list of conferences,
    commonly used in the JoinConf.TXT file

    *******************************************************************
    NOTE: ALL MCI COMMANDS MUST END WITH EITHER A SPACE OR A '|' SYMBOL
    ALL COMMANDS ARE CASE SENSITIVE!!!!!!!!
    *******************************************************************

    Having a line in a text file that contains:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ~N , I hope everything is going well in ~L .

    Might show:
    ~~~~~~~~~~
    Joseph Hodge, I hope everything is going well in Virginia.

    =========================================================================
    @endnode
    @node Cap13 "Notable Features of AmiExpress..."
    =========================================================================

    1. Command history has been added in to allow up to 20 history lines
    to be remembered. Once the limit of 20 has been released the
    history will cycle thru. CTRL-B will reset the history pointer
    to zero entries.

    2. The HELP key performs a screen to background command.

    3. The BBS checks to make sure the AUXx: or CNN: device can be opened
    and tells the user if there is a problem.

    4. Baud Calling times has been added in, kind of a throw in and will
    be changed, but for now, specify the time period a baud rate CAN
    call, like to allow a baud to call all the time enter 0 for start
    and 2359 for end. Start time must be a lower number than end time.
    As I stated this is not perfect and will be removed from the Config
    and a file will contain all the times a baud can't call. It will
    allow more flexibility.

    5. AREXX port 'AmiExpress_Node.x', supports the following features:

    suspend - causes the BBS to close the serial port and iconify
    and wait for a resume command. If someone is ONLINE
    the BBS will wait until they logoff to reply to the
    suspend message, and then the BBS will suspend. This
    allows you to create a batch file that will automatically
    suspend the BBS and load your terminal program and once
    your finished with the terminal program put the BBS
    back up.

    a example Arexx Program should be like this that the
    BBS will suspend:

    ------------- cut here ------------------
    /* The Suspend Command for AmiExpress V4.0 */
    address 'AmiExpress_Node.1'
    'suspend'
    ------------ cut here -------------------


    resume - this command is only used while the BBS is suspended.

    shutdown - this command will cause the BBS to lower the users
    time ONLINE to 2 mins and tell the user that it has
    received an emergency shutdown notice. Once the user
    is off the BBS exits from memory.

    NOTE: None of these features work without Arexx.

    There will be lots of AREXX commands in the future, including
    node to node chatting..

    6. Automatic Zmodem upload, if a user starts a Zmodem upload on
    the main prompt the BBS will detect this and enter the Zmodem
    upload routines.

    7. SYSOP now has the ability to run a node in the background just
    for his local use. To do this just remove the device name from
    the Config file and the BBS will not use the serial port.

    =========================================================================
    @endnode
    @node Cap14 "Note worthy of Mention...."
    =========================================================================

    I would personally like to thank Joseph Hodge, who has painstakingly,
    and endlessly programmed, and put up with us. It is not easy to try and
    make a program do what everyone wants. I still do not know to this day
    why he choose to carry on with AmiExpress but I sure am appreciative,
    It has been a wonderful learning experience in both the programming world
    and friendships. We have become like brothers, and like brothers will be
    together through the good times and bad times.

    I would also personally like to thank all of the wonderful people listed
    on the ACP credits menu. They are great people, and have a lot of patience
    and enthusiasm in making express the best BBS program around.

    I would also like to thank all the distributors and users who have helped
    the development of express. It is heart warming to see the devotion that
    comes from the registered users, more devotion then we ever expected.

    Enjoy the BBS, once setup will assuredly become second nature to run.
    It is a fantastic program, and we all have Joseph Hodge to thank for
    it's developement.

    Please report any errors in this file, or any other file to:

    -------------------------------------------
    LightSpeed Technologies Inc. (305) 964-4263
    -------------------------------------------

    Or Mail to:

    LightSpeed Technologies Inc.
    P.O. Box 4435
    Hollywood, Fl. 33083-4435

    =========================================================================
    @endnode
    @node Cap15 "QWK Mail Support...."
    =========================================================================

    In the 'W' option for users, is now the ability for the user to pick
    what kind of Zoom they want. They can pick QWK, or the old ascii
    zoom option.

    NOTE: You must first install some new Icons in the ZOOM dir, otherwise
    it wont work. You must have 3 Icons called:

    QWKCFG --> In this icon are the following tooltypes:

    BBS.NUMBER=<YOUR PHONE NUMBER> IE: 1-305-964-4263

    BBS.ADDRESS=<ONE LINE ADDRESS> IE: FLORIDA

    QWPACK --> In this icon are the following tooltypes:

    LHA=c:LHA a
    ZIP=c:ZIP -0

    ASCPACK --> In this icon are the following tooltypes:

    LHA=c:LHA a
    ZIP=c:ZIP -0

    Edit them to fit your needs !


    Now to be able to upload your replied messages from the QWK interface
    You need to do this.

    To install:


    First: Make an icon called SQWK and put it in the bbs:cmds dir. It is a
    XIM door.

    Second: Put the sqwk file in the doors: dir.

    Third: Put the sqwkmerge file in the BBS:utils dir. It is now installed.



    Now as the user, all you would have to do is hit SQWK at a
    menu prompt. The bbs will then be awaiting for your replied
    QWK mail. REMEMBER only send your reply packet in the upload.
    It should have the extension of .REP on the file. The user can
    go on and do other things while the QWK is unpacking the mail.



    =========================================================================
    @endnode
    @node Cap16 "Icon Script Language Support...."
    =========================================================================

    In this new 4.0 release, acp has the new option of setting up all the
    directories and icons from scratch. So anyone even if they do not
    know how to get a bbs going can have a default script file,
    (that we have provided in the s:dir of the main support disk), get
    there bbs up from just hitting the Setup Button on the ACP.
    What is so nice about this is that you guys who write doors or
    utilities for express, can create script files that will
    automatically create the directories, icons, and put your default
    commands in the icon automaticlly by the acp custom installer,
    just the way you want them, without wondering if the end user is
    installing your program correctly. Now let me explain
    how this works:

    The script file provided will set up a default express. You can add
    or delete to your liking. We have it now so it will create a bbs
    in RAM: so be CAREFUL it will delete what you have already set up
    if you change the script to BBS:

    When you start the acp and it does not find any configured BBS ready
    to go, the acp will pop up a requestor asking you what file (script)
    you want to use. If you have the aeicon.config in your dh0:s dir,
    it will automatically configure a new bbs. The only thing you will
    need are the default icons that you found originaly in your storage
    dir. The setup procedure uses those icons to copy over, and then
    uses the information you (us) gave in the script file. Now you can
    change the icons the way you want, and the options you want in the
    icons. In the script file (aeicon.config) you will see an explanation
    of the options. I will not go into any more right now, but it is
    pretty much self explanatory, especially for you guys that program
    in C.

    =========================================================================
    @endnode
    @node Cap17 "Trouble Shooting...."
    =========================================================================

    Problem Solution
    -------------------------------- -----------------------------------
    ACP will not start. 1. Make sure ACP is being run
    from the startup-sequence or WB
    2. Goto an AmigaDos shell, go to the
    directory where the command is
    located and type ACP, this
    should give you an error message
    indicating that perhaps a file is
    missing.
    3. Be sure that you have the ICON in
    the same directory as the Main
    Program
    Express will not start, but
    ACP will. 1. Make sure that if you are using
    a batch file to execute express
    that the batch file has a 's' bit
    assigned to it, ie:

    PROTECT S:BBS.Startup +s
    ^
    |
    batch filename
    2. Goto the directory in which
    express exists and type from
    a shell:

    Express 0
    ^
    |___ (node number)

    This should tell you why the
    program is not running.

    ACP and EXPRESS run but express 1. The stack size of express is
    gurus every time someone enters not getting set. You must have
    the msgbase scan. a stacksize of 50000 for this
    to work.

    ACP comes up but there is no 1. Make sure the statement:
    NODE buttons. NUMBER_OF_NODES x exists, where
    <x> should be replaced with the
    number of nodes you are going
    to have.


    My modems will not initialize 1. Make sure the UNIT statements
    reflect the correct UNIT
    number.

    2. Make sure the DEVICE_NAME is
    correct.

    3. Make sure you have a
    MODEM_INIT string in the MODEM
    ICON.

    In the CALLERSLOG: 1. Make sure you started the
    Error Reading MsgBase Pointer CONFDB Utility the Right way:
    is listed 1> CONFDB BBS:CONF/ <max.Usernumber>

    2. Make sure CONF.DB is in each
    conference you have.

    3. Make sure that the Usernumber
    you choose in the creating of
    CONF.DB is not lower than the
    actual one.

    =========================================================================
    @endnode
    @node Cap18 "Future planned Enhancements.."
    =========================================================================

    We are experimenting with various ideas with express to allow more
    diversity, some of the items coming up AS UPDATES in the 4.0 version of
    Express are:


    Full Internet access ability. You will be able to upload/download
    to the internet, Also read/write in a pre-defined conference message
    bases to the internet.


    So people, hang in there, you will see a lot of enchancements in the
    next couple of months.


    =========================================================================
    @endnode
    User avatar
    amiexpress
    Site Admin
     
    Posts: 15
    Joined: Sat Mar 29, 2014 10:15 pm


Return to Troubleshooting AmiExpress




Information
  • Who is online
  • Users browsing this forum: No registered users and 4 guests
cron