
Part 2



  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
     [ MC ].....Enter MCI Comment  Link Cap100213    
     [ ME ].....Enter MCI Message  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        
  =======================================================================
 
  Cap100201 "[<][>] Fast Conference Joining Command"
  =======================================================================
  [ < ] - Joining Conference Up&Down:
  [ > ]   ~~~~~~~~~~~~~~~~~~~~~~~~~~
    This 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.
  =======================================================================
 
  Cap100202 "[ A ] - Alter File Flaging...."
  =======================================================================
  [ 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.
  =======================================================================
 
  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.
  =======================================================================
 
  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
    cosysop to read the messages to yeah without typing "R" for read
    messages.
  =======================================================================
 
  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, 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 CONFICON 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 too.. so
       the file is 100% save 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.

   15. At the end of the download, if the users' security level is below
       the one you choose for the tooltyp KEEP_UPLOAD_CREDIT, 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.
  =======================================================================
 
  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. Now the user has entered the message editor.

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

    9. Ctrl-X in the message editor will delete the current line.

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

   11. 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 tooltyp 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 yar 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 tooltyp "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.
  =======================================================================
 
  Cap100207 "[ F ] - File Listings...."
  =======================================================================
  [ F ] - File Listings:
          ~~~~~~~~~~~~~
    This command allows the user get Full directory listings of the
    catalogs maintained by the BBS. As mentioned before, this is
    specified in the Tooltype NDIRS=<num> in the CONFICON.

    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 flaging files
  =======================================================================
 
  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.
  =======================================================================
 
  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 ZooMail 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.
  =======================================================================
 
  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.
  =======================================================================
 
  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 this will only display the Conferences on which the User have
    access to.
  =======================================================================
 
  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.
  =======================================================================
 
  Cap100213 "[ MC ] - Enter MCI Comment...."
  =======================================================================
  [ MC ] - Enter MCI Comment:
           ~~~~~~~~~~~~~~~~~
    This command is the same as the normal "C"omment to Sysop command in
    AMiEX. The only difference is that with that command you can enter
    the comment to the Sysop MCI commands like displaying UserNames or
    some other data over MCI. This command will implement the MCI header
    so you don`t have to insert the MCI header by hand.
  =======================================================================
 
  Cap100214 "[ ME ] - Enter MCI Message...."
  =======================================================================
  [ ME] - Enter MCI Message:
          ~~~~~~~~~~~~~~~~~
    This command is the same as the normal "E"nter Message command in
    AmiEX. The only difference is that with that command you can enter
    messages with MCI commands like displaying UserNames or some other
    data over MCI. This command will implement the MCI header so you
    don`t have to insert the MCI header by hand.
  =======================================================================
 
  Cap100215 "[ N ] - New Files Since Date...."
  =======================================================================
  [ N ] - New Files Since Date:
          ~~~~~~~~~~~~~~~~~~~~
    This command allows the user to list files from 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.
  =======================================================================
 
  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, 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 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.
  =======================================================================
 
  Cap100217 "[ Q ] - Quiet Node...."
  =======================================================================
  [ Q ] - Quiet Node:
          ~~~~~~~~~~
    This command will change the Quiet Node option you choose for a node.
    With this command user can prevent other users for seeing them on
    a node and can make himself like invisible.
  =======================================================================
 
  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, allowes 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 messages
                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.
  =======================================================================
 
  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.
  =======================================================================
 
  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 Internal

       (Pause)...Space to Resume:

                     Uploads            Downloads
            Conf  Files    Bytes     Files    Bytes     Bytes Avail  Ratio
            ----  -------  --------- -------  --------- -----------  -----
               2>       0          0       0          0           0  DSBLD
  =======================================================================
 
  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.
  =======================================================================
 
  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=<num> tooltyp. 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 maintanence.

       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
       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.  Specifing an 'A' will
       abort out of 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 to 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 an Requester for
       selecting files to upload LOCAL into the BBS without starting
       the ZMODEM Tranfer 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 will now be started the bbs will check in the file
       you specified for the FILESNOTALLOWED=<pathname> option in NODE
       ICON. If this file is not allowed to be uploaded it will skip
       the upload.

   10. The bbs displays the stats from the transfer for all the
       files.

   11. The users time is 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 the bbs
       asks for the description for 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 log on 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 it will be
       executed and the normal "FCHECK" will be skipped. Here you can
       use a internal door for checking your files.
       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 '.'.)

          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 a 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 rename it to there.

   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 moves the files to
       BBS:CONF/PARTUPLOAD as partially uploaded files from the
       current user online.
  =======================================================================
 
  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 the tooltyp NDIRS=<num>. 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 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
  =======================================================================
 
  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. Name     : Mike Thomas
            2. From     : Dover, NH
            3. Phone    : 603-555-1212
            4. Password : ??????
            5. NumLines : 23
            6. Computer : Amiga 2000/GVP030
            7. Scr Type : Amiga Ansi
            8. Protocol : /X ZModem INTERNAL
            9. Scrn Clr : N

            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, From, Phone or Password. For more information, refer to the
     documentation for the AmiConfig program.
  =======================================================================
 
  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 it at this
    information.
  =======================================================================
 
  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.
  =======================================================================
 
  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=<num> tooltype reports zero or does not exist, then
    zippy search will not be functional.
  =======================================================================
 
  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 from ALL accessible conferences into a freely downloadable
       file that will be auto-matically added to the flaglist for
       downloading.
  =======================================================================
 
  Cap11 "AREXX Interface MODULES (AIM)...."
  =======================================================================
                         AmiExpress HOST Adresses
                         ~~~~~~~~~~~~~~~~~~~~~~~~
  Amiexpress allowes the use of external HOST Adresses 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 Amiex.
  These HOST Adresses can be used in much program languages
  (AREXX,C,ASSEMBLER aso.). To give the programmer more abilities
  Amiexpress provides much COMMANDOS via the HOST Address to get and put
  informations to the running amiexpress nodes. These commands are
  shared in different areas.

     Standard HOST Commands        Link Cap1101    
     Special Arexx HOST Cmds (AIM) Link Cap1102
     Traditonal HOST Cmds    (TIM) Link Cap1103    
     AmiExpress Interface    (XIM) Link Cap1104
     AmiExpress Script HOST  (SIM) Link Cap1105

  =======================================================================
 
  Cap1102 "Special Arexx HOST Cmds (AIM)...."
  =======================================================================
  The Arexx door interface requires a file called RexxDoor, It must be in
  located in your UTILS: path. This will also require an directory
  called BBSCMD or CONF{x} to be either located in the BBS:Commands
  directory. RexxDoor will be launched each time an Arexx door is
  requested.

  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 commandos at the first lines in your modules, the modules
  will not work together with amiexpress, so be sure you have these
  commandos at the beginning of each AIM Module.

  The following Commandos are AmiEX AreXX HOST Commandos which are
  used to give the ability to the programmer to design his modules.
  To use this commandos 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 informations 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 commandos of AmiEx.
               Use this TWO Arexx HOST Commandos together to execute
               Commandos which belongs to Express.
               example:

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

               These two commandos together will execute the internal
               GOODBYE Main Menu Commando and will leave the BBS.
               The '136' depending on the other HOST COMMANDOS programmed
               with decimal Codes.
=========================================================================
TRANSMIT ""    This commando is the most important HOST Commando of
               the AREXX HOST Commandos of AmiExpress. This commando
               will send text over the serial depending in "" to
               the NODE Window the module was executed.
               example:
               TRANSMIT "HALLO"

               Now HALLO should appear in the NODE Window the Module
               was executed.
=========================================================================
SENDMESSAGE    This Commando is exactly the same as the TRANSMIT commando
               with the only difference that it will not send an carriage
               return after executing the commando, so you can store
               text behind other text.
=========================================================================
GETCHAR        This Commando 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 Commando is the mix of the TRANSMIT & GETCHAR
               commandos. 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.
=========================================================================
 
  Cap1101 "Standard Amiexpress HOST Commandos...."
=========================================================================
                    Standard AmiExpress HOST Commandos
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  The following list is a list of all Amiexpress HOST Commandos which
  can be used in every program language to get/store information to the
  AmiExpress Host Port. With this commandos you can get informations
  like BBSNAME, USERNAME etc. Click on the Buttons for more informations.

     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

=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  Cap1101128 "BB_LOCAL          <Func: 128>"
=========================================================================
BB_LOCAL          Allows you to retrieve the current BBS location.

                  msg->Command = 128
                  msg->Data    = N/A
(FUNCTION #: 128 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  Cap1101511 "BB_DROPDTR        <Func: 511>"
=========================================================================
BB_DROPDTR        Allows you to drop carrier on a user.

                  msg->Command = 511
                  msg->Data    = N/A
(FUNCTION #: 511 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  Cap1101524 "BB_PURGELINEEND   <Func: 524>"
=========================================================================
BB_PURGELINEEND   Allows you to CLEAR the serial buffer.

                  msg->Command = 524
                  msg->Data    = N/A
(FUNCTION #: 524 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 )
=========================================================================
 
  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 sys.cmd door
                  called FILECHECK.
(FUNCTION #: 529 )
=========================================================================
 
  Cap1103 "Traditonal 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.

=========================================================================
 
  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 seperate 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
=========================================================================
 
  Cap1105 "AmiExpress Script Module System (SIM)...."
=========================================================================

  This new interface can be used to execute Batchfiles instead of normal
  Modules. This will execute Batchfiles normal as you execute it with
  the EXECUTE Command.

  TO USE this MODULETYPE the SCRIPT you want to be executed should have
  the SCRIPT BIT turned on. You can do this like that:

  1> protect S:SCRIPT s

=========================================================================
 
  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
  ~UL      User Location
  ~P       User PasswordP
  ~#       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.

  ~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.

  ~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.

=========================================================================
 
  Cap13 "Noteable 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 flexiblity.

 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 util 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 V3.6 */
               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.

=========================================================================
 
  Cap14 "Note worthy of Mention...."
=========================================================================

  I would personally like to thank Mike Thomas, who originally wrote
  AmiExpress, I still do not know to this day why he choose me to carry
  on with AmiExpress but I sure am appreciative, It has been a wonderful
  learning experience in both the programming world and friendships.

  I would personally like to thank Phil Julias for his hard work on his
  original documentation for AmiExpress 1.(x) series, It has helped
  considerably in the development of the current documentation.

  I would 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 users who have helped guide me in
  the development of express. It is not to see the devotion that comes
  from the registered users, more devotion then I ever expected.

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

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

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

                          Or Mail to:

                          Light Speed Technologies
                          P.O. Box 4435
                          Hollywood, Fl. 33083

=========================================================================
 
  Cap15 "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, goto 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 everytime 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 choosed in the creating of
                                          CONF.DB is not lower than the
                                          actual one.

=========================================================================
 
  Cap16 "Future planned Enhancements.."
=========================================================================

ByteMaster's BBS or 'Programmer Fool's BBS' is now what is identified as an
/X InfoNet Repeater, it simply is a relay station for netmail and is
no longer a BBS.  We are experimenting with various ideas with express to
allow  more diversity, some of the items coming up in the next few releases
(or scheduled to) are:

 1. We recently removed all the debugging hooks out of the code. This
    will in effect speed up the code, and trimmed about 6K off the size.

 2. We have opted to go with registrized parameters vs stack parameters,
    this in effect saves about 9K of instruction overhead in the program
    and significantly has increased the overall speed of express.

 3. The MCI interpreter has FINALLY been optimized, and now is practically
    transparent in operation.

 4. There is currently several bytes of data in the user.data that is
    not in use do to the fact that msgbase pointers are now stored in the
    conf.db for each conference, therefore I have opted to use a portion
    of these so called reserves to record voting booth data per account.
    This will allow the sysop to have an internal voting booth.

 5. Based on input from the users, (yes we listen) we are currently working
    on several areas of express.

    1. We are coming out with a new account editor for handling the
       conference accounting options in express.

    2. Depending on the amount of support of express we intend on investing
       the time in designing a 1 stop configuration system, to give the
       sysop the option of using icons or not.

    3. We plan on modifying express to handle infinite nodes.

    4. We plan on hard coding last caller data, which may be displayed and
       organized in .txt files via MCI commands.

    5. We will be modifying express to allow you to specify a font for the
       ACP and express.

    6. Re-entrancy is always on our minds when working with express, we
       are slowly but surely going in that direction, please don't let the
       source code of express that was released publicly fool ya, there
       has been major enhancements to the code since then.

    We will be designing a standardized set of sysop utilities that we
    believe should be hard coded into express. my prior outlook was to
    make all enhancements to express external, but I now see the need
    for some internal features that we rely on externally on a day to day
    basis.

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


=========================================================================
 
