home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / BFE2000P.ZIP / BFE2000P.EXE / DOCS / BFE.DOC next >
Encoding:
Text File  |  1993-10-30  |  132.4 KB  |  3,201 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                        ▒███████  ▒███████  ▒███████
  17.                        ▒██  ▒██  ▒██  ▒██  ▒██      
  18.                        ▒████████ ▒████████ ▒███████ 
  19.                        ▒██   ▒██ ▒██   ▒██      ▒██ 
  20.                        ▒████████ ▒████████ ▒███████ 
  21.                        
  22.   ▒███████ ▒███████ ▒███████ ▒████▒██ ▒████████ ▒███████ ▒████▒██ ▒██████
  23.   ▒██      ▒██  ▒██ ▒██  ▒██ ▒██▒█▒██    ▒██    ▒██      ▒██▒█▒██ ▒██  ▒██
  24.   ▒██████  ▒███████ ▒██  ▒██ ▒██▒█▒██    ▒██    ▒██████  ▒██▒█▒██ ▒██  ▒██
  25.   ▒██      ▒██ ▒██  ▒██  ▒██ ▒██▒█▒██    ▒██    ▒██      ▒██▒█▒██ ▒██  ▒██
  26.   ▒██      ▒██ ▒███ ▒███████ ▒██▒████    ▒██    ▒███████ ▒██▒████ ▒██████
  27.            
  28.            ▒███████ ▒██   ▒██ ▒███████ ▒████████ ▒███████ ▒███████
  29.            ▒██      ▒██   ▒██ ▒██         ▒██    ▒██      ▒██▒█▒██
  30.            ▒███████ ▒████████ ▒███████    ▒██    ▒██████  ▒██  ▒██
  31.                 ▒██    ▒██         ▒██    ▒██    ▒██      ▒██  ▒██
  32.            ▒███████    ▒██    ▒███████    ▒██    ▒███████ ▒██  ▒██
  33.                    
  34.                    ┌──────────────────────────────────────┐
  35.                ▓███│  v2.00.0   Release Date 31 Oct 1993  │▓███
  36.                    └──────────────────────────────────────┘
  37.         (C)opyright 1992, 1993 Cairo Research Labs, All Rights Reserved
  38.                    1113 29th Street, Columbus, Georgia 31904
  39.  
  40. ─────────────────────────────────────────────────────────────────────────────
  41.  
  42.  
  43.  
  44.  
  45.                                                 BFE - The BBS Front End System
  46.                                                                              2
  47.  ________________________________________________________________________________
  48.  
  49.  TABLE OF CONTENTS
  50.  
  51.  Table of Contents........................................2
  52.  INTRODUCTION.............................................4
  53.       Features and Brief Overview.........................4
  54.       What's New in this Release?.........................5
  55.       A Word From the Author..............................7
  56.       Licensing and Distribution..........................9
  57.       The Demo Version of BFE.............................10
  58.       Benefits of Registration............................10
  59.       Ordering Instructions for BFE.......................11
  60.       Filling out the Registration Form...................11
  61.       Receiving By Call to BBS............................12
  62.       Receiving Order by Fidonet Crashmail................12
  63.       Ordering with Visa, Mastercard, or American Express.12
  64.  GETTING STARTED..........................................13
  65.       System Requirements.................................13
  66.       Installation........................................13
  67.       Brief Overview......................................13
  68.  BFE/SETUP................................................15
  69.       What is BFE/Setup?..................................15
  70.       Navigational Controls...............................15
  71.       The .CTL File Scheme................................15
  72.       Opening and Creating .CTL Files.....................15
  73.       Saving .CTL Files...................................16
  74.       Global Options......................................16
  75.            Path/Swapping Configuration....................16
  76.            Sysop Pager Options............................17
  77.            File List/Chat Color Defaults..................18
  78.            BFE Menu Color Defaults........................18
  79.            Miscellaneous Options..........................18
  80.            Startup Options................................19
  81.            Private Entry System...........................20
  82.       Menu Editor.........................................20
  83.            Menu Item Selector List........................20
  84.            Rearranging Menu Items.........................20
  85.       Menu Options........................................24
  86.       Protocols...........................................25
  87.       Local Test..........................................26
  88.       Message Bases.......................................26
  89.  THE BFE/SCRIPT SYSTEM....................................28
  90.       Introduction and Overview...........................28
  91.       Script Syntax Rules and Coding Basics...............28
  92.       Script Function Reference...........................33
  93.  BFE REFERENCE SECTION....................................40
  94.       BFE Menu Type Reference.............................40
  95.       BFE User System.....................................48
  96.       GlobalAccess(tm) Commands...........................49
  97.       SlashCommand(tm) Technology.........................49
  98.       BFE Language File...................................49
  99.       Using BFE with Dropfiles............................51
  100.       Custom BBS Dropfiles................................53
  101.       CONVTL .CTL File Convertor..........................54
  102.  
  103.  
  104.  
  105.                                                 BFE - The BBS Front End System
  106.                                                                              3
  107.  ________________________________________________________________________________
  108.  
  109.       Sample System Setups................................55
  110.  DOOR OPERATION...........................................56
  111.       BFE Command Line....................................56
  112.       Sysop Keys..........................................56
  113.       Multinode/Multiuser Operation.......................57
  114.       Digiboard Compatibility.............................58
  115.       Reserved Errorlevels................................58
  116.  Miscellaneous............................................59
  117.       Special Thanks......................................59
  118.       The SPHINX Echo.....................................59
  119.       Upgrades and Information............................60
  120.       Technical Support...................................60
  121.       What's Next for BFE?................................61
  122.       Program Dedication..................................61
  123.  
  124.  
  125.  
  126.                                                 BFE - The BBS Front End System
  127.                                                                              4
  128.  ________________________________________________________________________________
  129.  
  130.  INTRODUCTION
  131.  
  132.  In today's high-tech world, connectivity has become a major issue. Getting
  133.  from point A to point B sounds incredibly simple at times, but is often an
  134.  entirely different situation, especially when one wants to run multiple BBS
  135.  packages, different mail networks, provide subscriber info, etc.  Enter BFE.
  136.  
  137.  BFE is a BBS front-end system that was designed to provide sysops with a
  138.  fast, efficient method of "connecting" things at the front end of their site.
  139.  
  140.  FEATURES AND BRIEF OVERVIEW
  141.  
  142.  BFE was designed to be called from a front-end mailer, such as Frontdoor or
  143.  Binkleyterm.  Instead of spawning directly to the BBS system, it presents a
  144.  menu to the user, which details his immediate options.  These options can
  145.  range from offering multiple BBS systems, remote jobs, literally anything you
  146.  can think of!  The BFE system can also be configured to be called straight
  147.  from your BBS software itself, in essence, running as a normal door, using
  148.  one of several popular BBS dropfile formats.  Read onward....
  149.  
  150.  BFE features include:
  151.  
  152.  * Custom multi-level menus, now with RIP graphics support!
  153.  * Item and/or menu level password protection
  154.  * Hotkey items or SlashCommand(tm) mode!
  155.  * Multinode/Multiuser Compatibility
  156.  * Intuitive menu-driven setup and customization facility
  157.  * Feature packed Script system!
  158.  * DESQview *and* MS-Windows aware!
  159.  * Configurable for security concerns
  160.  * Complete carrier monitoring and timeout checking
  161.  * Use any of 11 standard dropfiles, or define custom ones
  162.  * Run as a normal door or as a frontend!  Dropfile not required!
  163.  * Complete BBS carousel - run multiple BBS systems
  164.  * Complete support for ANSI/ASCII/AVATAR/RIP users
  165.  * Configurable automatic ANSI and RIP detection schemes!
  166.  * File transfer system with support for external protocols
  167.  * Run remote jobs, such as batch files, programs, other doors, etc.
  168.  * Internal remote shells to the operating system
  169.  * Built in chat/paging system with hourly/daily time restrictions
  170.  * Split screen chat mode, along with line chat mode for TTY users!
  171.  * *Total* configurability
  172.  
  173.  
  174.  
  175.                                                 BFE - The BBS Front End System
  176.                                                                              5
  177.  ________________________________________________________________________________
  178.  
  179.  WHAT'S NEW IN THIS RELEASE?
  180.  
  181.  * = New  # = Change  ! = Fix
  182.  
  183.  * Tremendous overhaul and code cleanup in this release.
  184.  
  185.  * The first version of the BFE User System is now in place!  BFE now
  186.    has the ability to support its own userfile, with its own login
  187.    procedure.  Three modes are available (Full, Partial, and None).
  188.  
  189.  * The first version of the full screen chat module is now in place!
  190.  
  191.  * RIP graphics support!  See documentation for more information.
  192.  
  193.  * BFE Developer's Kit now included with the distribution archive
  194.  
  195.  * BFE/Edit now supports Squish message bases via a new function and
  196.    menu type called LeaveMsgSq().
  197.  
  198.  * New additions to the BFE Language File:
  199.  
  200.      ROCKHEADTXT - Logged when user botches a BFE login procedure
  201.      BADPASSWORD - Logged when a user fails at a BFE menu password
  202.      TWITLOGON   - Logged when a "twitted" user tries to log in
  203.      LOGINPROMPT - Default "login" prompt
  204.  
  205.  * New additions to BFE/Script:
  206.  
  207.      ADDTIME()    - Function to increase user's online time
  208.      CHECKRIP()   - Returns TRUE if user is RIP capable
  209.      GETRANDOM()  - Function to return a random number
  210.      SUBTIME()    - Function to decrease user's online time
  211.      TOGGLERIP()  - Function to toggle user's RIP setting
  212.      TOGGLEMORE() - Function to toggle MORE prompting
  213.      FLASHFILE()  - Displays file with no page pausing
  214.  
  215.  * New menu item types:
  216.  
  217.      LeaveMsgSq - Leaves a message in a Squish message base
  218.      ToggleRIP  - Toggles RIP graphics on and off
  219.      ToggleMORE - Toggles MORE prompting on and off
  220.      FlashFile  - Displays file with no page pausing
  221.  
  222.  * Auto ANSI/RIP detection schemes are now both configurable items.
  223.  
  224.  * BFE now supports STARTUP and EXIT scripts, in addition to normal
  225.    scripting.
  226.  
  227.  
  228.  * In addition to the standard DORINFO?.DEF dropfiles, BFE can now
  229.    generate the following dropfiles on the fly when running an external
  230.    process:
  231.  
  232.  
  233.  
  234.                                                 BFE - The BBS Front End System
  235.                                                                              6
  236.  ________________________________________________________________________________
  237.  
  238.      - SFDOORS.DAT (Spitfire BBS)
  239.      - DOOR.SYS    (WildCat! flavor)
  240.      - DOOR.SYS    (GAP/PCB flavor)
  241.  
  242.  # The Destination address in netmail messages can now be entered by the
  243.    user, if left blank in BFE/Setup. (John Riley among others)
  244.  
  245.  ! Fixed problem with EMS swapping in BFE/Setup (Chuck Spear)
  246.  
  247.  ! Fixed a bug of biblical proportions in the BFE/Edit message
  248.  
  249.    subsystem.  Messages were getting crosslinked with garbage, and
  250.    sometimes disappearing into the bit bucket.  (Thanks to Chris Koziol
  251.    for nailing this one).
  252.  
  253.  ! When using custom menus on the *first* menu only, BFE would get incredibly
  254.    confused.  This bug squashed thanks to John Riley.
  255.  
  256.  * New macro: Underscores (_) in the language file will be converted to
  257.    spaces. Great for things such as (Login:_)
  258.  
  259.  # Placing a tilde (~) in the default "From" field of a message base
  260.    will force BFE to use the user's login name in the from field of the
  261.    message, instead of prompting for the name.
  262.  
  263.  ! Fixed problem with the download menu type not returning to the list
  264.    properly.  Squashed! (Thanks to Mike Labellarte/Arte` Graphics).
  265.  
  266.  ! Fixed problem with the "-l" switch locking up the system under
  267.    certain situations.
  268.  
  269.  
  270.  
  271.                                                 BFE - The BBS Front End System
  272.                                                                              7
  273.  ________________________________________________________________________________
  274.  
  275.  A WORD FROM THE AUTHOR
  276.  
  277.  The public release of BFE marks a new beginning for sysops worldwide.  No
  278.  longer do you have to settle for inferior front end systems for your sites.
  279.  Quite a bit of time was spent between releases on making BFE as intuitive as
  280.  possible, while simultaneously adding several major enhancements.  BFE is
  281.  superior in every way to similar products, and in some ways, revolutionary.
  282.  To date, BFE has enjoyed a tremendous success rate, due in part to the
  283.  undying loyalty of an exhausted beta team, I might add!  The entire BFE
  284.  project encompasses nearly 200,000 lines of optimized C code, the majority of
  285.  which was written in less than 6 months!
  286.  
  287.  Some of you have really put BFE to the test, and I must say that I am glad to
  288.  see that it passed with flying colors.  Here are just a few comments on BFE
  289.  as reported by users around the globe:
  290.  
  291.   - "As a SoftWare Developer, we felt you should know that since your
  292.      public introduction of BFE1303a.ZIP (BBS FrontEnd System v1.30.3a),
  293.      it has become a tremendous asset to our labs. We receive daily
  294.      calls from around the world by SysOp's and BBS Callers wanting to
  295.      download our trivia door games.  They are absolutely amazed of how
  296.      they can download our trivia games WITHOUT logging onto our BBS!"
  297.  
  298.   - "We are quite sure that this new development of yours will go a long
  299.      way into the BBS Community and Sysops/Programmers will scratch
  300.      their heads wondering, how they've gotten this far without this
  301.      type of FrontEnd program."
  302.  
  303.   - "Now we can provide online registration information ... up front!"
  304.  
  305.   - "A tremendous frontend support system for our shareware products!"
  306.  
  307.   - "...splendid way of letting my users choose between RIP, NAPLPS, and
  308.      normal BBS operation, all before they log on!"
  309.  
  310.   - "Believe it or not, we actually set your program up without reading
  311.      the docs, it was just that simple and yet, an extremely powerful
  312.      program."
  313.  
  314.   - "Thanks for keeping the price in a more than reasonable range. All
  315.      too often people put HIGH price tags on programs that are no where
  316.      as useful as BFE, and I feel that both the author and users lose in
  317.      the end."
  318.  
  319.   - "Unstoppable.  Unbeatable.  Top notch shareware!"
  320.  
  321.   - "I'd like to first say, that bar none, BFE has been the best utility
  322.      that I have registered.  I am running 4 systems under these two
  323.      nodes, plus massive hubbing responsibilities for North
  324.      Ameri-Net, FidoNet, BBCNet, and TAGNet. BFE has made quite a few
  325.      duties a lot easier on my part (And looking nice to boot)."
  326.  
  327.  
  328.  
  329.                                                 BFE - The BBS Front End System
  330.                                                                              8
  331.  ________________________________________________________________________________
  332.  
  333.  BFE was originally designed in-house, for use on our support BBS, Under the
  334.  Nile, at 1:3613/12.  However, after getting begged by many of our users to
  335.  offer a shareware version, we set out on the task.  Our mission was to create
  336.  a flexible, simple-to-use, inexpensive BBS front-end.  See for yourself!
  337.  
  338.  Why stick with packages which are still utilizing outdated techniques?  Why
  339.  should you use a front end system in which you need a degree in rocket
  340.  science to understand? The answer is simple:  You don't!  BFE has set a new
  341.  precedence in terms of speed, quality, and quantity for the buck.
  342.  
  343.  We hate crippleware! Down with crippleware authors!  Shame on them! BFE has
  344.  never been, is not, and will never be crippleware.  Hrmpf!
  345.  
  346.  We are in the process of revamping the BFE beta/support site directory.
  347.  Please contact us via netmail if you are interested in becoming a BFE Support
  348.  Site or a Cairo Research Labs Distribution Site.
  349.  
  350.  Previous releases of BFE could be registered via the standard Cairo fee of
  351.  only $10 dollars.  This has been raised to $15, due to the availability of
  352.  our online credit card registration service.  We feel that $15 is STILL a
  353.  tremendously low price for such a powerful product.  Once again, see for
  354.  yourself!
  355.  
  356.  
  357.                                          Scott Burkett
  358.                                          Cairo Research Labs
  359.  
  360.  
  361.  
  362.                                                 BFE - The BBS Front End System
  363.                                                                              9
  364.  ________________________________________________________________________________
  365.  
  366.  LICENSING AND DISTRIBUTION
  367.  
  368.  This documentation, programs, and other files distributed in this software
  369.  package (the "Software") are the copyrighted property of Scott Burkett and
  370.  Cairo Research Labs.  All rights are reserved.
  371.  
  372.  For use by corporations, institutions or goverment agencies, or for-profit
  373.  purposes, contact the Author for licensing information.
  374.  
  375.  U.S. GOVERNMENT INFORMATION
  376.  
  377.  The use, duplication, or disclosure by the U.S. Government of the Software is
  378.  subject to the restricted rights applicable to commercial software that are
  379.  specified in the subdivision (b.3.ii) of the 'Rights in Technical Data and
  380.  Computer Software' clause, document DFARS 52.227-7013.
  381.  
  382.  DISTRIBUTION/USAGE
  383.  
  384.  BFE can be freely distributed, provided that the original archive is not
  385.  changed in any way (other than changing the archive type) and no amount of
  386.  money is required. In no circumstance at all can BFE be modified without
  387.  written consent from the authors.  It is prohibited to include this program,
  388.  whole or in part, in other software.  It is expressly forbidden to distribute
  389.  a registered key to unregistered users.
  390.  
  391.  BFE can be used in commercial organizations only after regular registration.
  392.  This license is considered accepted if the program is used.  Its violation
  393.  will involve the withdrawal of the registration key and the rights to use the
  394.  program.
  395.  
  396.  WARRANTY DISCLAIMER
  397.  
  398.  The Author cannot and does not warrant that any functions contained in the
  399.  Software will meet your requirements, or that its operations will be error
  400.  free.  The entire risk as to the Software performance or quality, or both, is
  401.  solely with the user and not the Author.  You assume responsibility for the
  402.  selection of the program to achieve your intended results, and for the
  403.  installation, use, and results obtained from the Software.
  404.  
  405.  The Author makes no warranty, either implied or expressed, including without
  406.  limitation any warranty with respect to this Software documented here, its
  407.  quality, performance, or fitness for a particular purpose. In no event shall
  408.  the Author be liable to you for damages, whether direct or indirect,
  409.  incidental, special, or consequential arising out the use of or any defect in
  410.  the Software, even if the Author has been advised of the possibility of such
  411.  damages, or for any claim by any other party.
  412.  
  413.  All other warranties of any kind, either express or implied, including but
  414.  not limited to the implied warranties of merchantability and fitness for a
  415.  particular purpose, are expressly excluded.
  416.  
  417.  
  418.  
  419.                                                 BFE - The BBS Front End System
  420.                                                                             10
  421.  ________________________________________________________________________________
  422.  
  423.  LIMITATION OF REMEDIES
  424.  
  425.  The information contained in the documentation for the Software is subject to
  426.  change without notice.
  427.  
  428.  The Author's entire liability, and your exclusive remedy shall be: (1) the
  429.  replacement of an original Software diskette not meeting the above Limited
  430.  Warranty and which is returned to the Author along with proof of purchase, or
  431.  (2), if the Author is unable to deliver a replacement diskette which is free
  432.  of defects, you may terminate the License Agreement by returning this
  433.  Software and the corresponding license fee will be returned.
  434.  
  435.  By using the Software, you acknowledge (1) to have read and understood all
  436.  parts of this document and (2) to have agreed with and accepted all of its
  437.  provisions without any reservation.
  438.  
  439.  THE DEMO VERSION OF BFE
  440.  
  441.  This shareware demonstration version of BFE is as fully functional as its
  442.  registered counterpart, with a few minor differences.
  443.  
  444.  - The unregistered evaluation message at the top of the screen: Upon
  445.    registration, this will be replaced by your name or your
  446.    organization's name, showing your support for the BFE project.
  447.  
  448.  - Registered users have the option of changing both the text and the
  449.    color of the default registration message which appears at the top of
  450.    each menu.
  451.  
  452.  - Registered users can make use of custom ASCII/ANSI/AVATAR/RIP screens
  453.    in lieu of the built-in default BFE menus.
  454.  
  455.  - Registered users have the additional ability to customize the
  456.    internal strings used in the program (See the section on the BFE
  457.    Language File).
  458.  
  459.  BENEFITS OF REGISTRATION
  460.  
  461.  - Extended Tech Support via the SPHINX echo (our support echo).
  462.  
  463.  - Access to beta copies of BFE, as they become available.
  464.  
  465.  - You will also be entitled to free upgrades to newer versions of BFE,
  466.    as they become available. In addition to the great many features and
  467.    the quality that this version of BFE has to offer, we are constantly
  468.    working on additions and enhancements for future versions.
  469.  
  470.  
  471.  
  472.                                                 BFE - The BBS Front End System
  473.                                                                             11
  474.  ________________________________________________________________________________
  475.  
  476.  ORDERING INSTRUCTIONS FOR BFE
  477.  
  478.  Below are detailed instructions for registering BFE. These instructions are
  479.  not intended to seem confusing or complicated; they are simply meant to
  480.  answer almost any question that you might have about registering.  If you
  481.  have any questions or uncertainties about your registration, please feel free
  482.  to contact us.  For information on how to contact us, please see the section
  483.  on "Upgrades and Information".
  484.  
  485.  To order BFE via cash, check, or money order, simply follow these three
  486.  steps:
  487.  
  488.    1.)  Fill out the registration form. Information on filling out the
  489.         form is located in the next section.
  490.  
  491.    2.)  Enclose the appropriate payment ($15), Fifteen American Dollars,
  492.         payable in the form of cash, check or money order.  Make all
  493.         checks or money orders payable to:
  494.  
  495.                      SCOTT BURKETT
  496.  
  497.    3.)  Send the above two items to:
  498.  
  499.                      Cairo Research Labs
  500.                      1113 29th Street
  501.                      Columbus, GA 31904
  502.  
  503.  FILLING OUT THE REGISTRATION FORM
  504.  
  505.  NO PRINTER?
  506.  
  507.  Alternatively, if you do not have a printer, simply send a hand-drawn version
  508.  of the order form.  If you do not wish to mail a registration form in, you
  509.  may opt to upload it to our support BBS at (706) 596-8126 (14.4/v.32).  We
  510.  will not present you with a registration key, however, until proper payment
  511.  has been rendered.
  512.  
  513.  If you have any special instructions for us, or anything that you would like
  514.  to say when you register, feel free to write this down on the back of the
  515.  registration form, or on a separate piece of paper.
  516.  
  517.  When filling out the BFE registration form, be sure to indicate how you would
  518.  prefer to receive your BFE registration key. You will have the choice of
  519.  receiving your registration key by one of three means: A call to our BBS,
  520.  FidoNet CrashMail, or by a call to your BBS.  If you have a
  521.  FidoNet Email address, FidoNet CrashMail is still by far the quickest way to
  522.  receive your order. Once you have decided which means you would prefer to
  523.  receive your order by, please read the detailed instructions on your order
  524.  method below.
  525.  
  526.  Please keep in mind that snail mail is not an option!  If you send us your
  527.  registration fee, and instruct us to send it to you via U.S. snail mail, we
  528.  will simply place your key here on hold until you call our support BBS.
  529.  
  530.  
  531.  
  532.                                                 BFE - The BBS Front End System
  533.                                                                             12
  534.  ________________________________________________________________________________
  535.  
  536.  RECEIVING BY CALL TO BBS
  537.  
  538.  In order to receive your BFE registration key by a message and/or upload to
  539.  your BBS, fill out the order form and mail it along with your payment as
  540.  described below. Be sure to include the phone number, baud rate, and our
  541.  login and password for the BBS to which you would like us to call.  We will
  542.  cover any long distance costs. If, for some reason, we are unable to connect
  543.  to your BBS (not because its busy, but, for example, if your BBS is no longer
  544.  online, or we are unable to connect succesfully), we will place your key in a
  545.  message on our support BBS in the private E-Mail conference.
  546.  
  547.  RECEIVING ORDER BY FIDONET CRASHMAIL
  548.  
  549.  In order to receive your BFE registration key via network crashmail, simply
  550.  fill out the order form and mail it along with your payment as described
  551.  below.  Be sure to include the FidoNet node address to which you wish to have
  552.  your order sent.
  553.  
  554.  ORDERING WITH VISA, MASTERCARD, OR AMERICAN EXPRESS
  555.  
  556.  Through an arrangement with Chris Duke at Duke Graphics, you can charge the
  557.  registration fee of $15.00 to your Visa, MasterCard, or American Express
  558.  card.  You can call their 1-800 phone number, order on-line via their BBS, or
  559.  send your order in the mail with the form that appears in the CREDIT.FRM file
  560.  in the distribution archive.
  561.  
  562.  ORDERING:
  563.  
  564.  TO ORDER BY PHONE, call 1-800-DUKE-GFX and ask to purchase a registered copy
  565.  of BFE.
  566.  
  567.  TO ORDER ON-LINE, call BBS++ at (619) 793-8360 and use the on-line
  568.  registration system, available from the main menu.
  569.  
  570.  TO ORDER BY MAIL, complete the CREDIT.FRM file and mail to:
  571.  
  572.                                  Duke Graphics
  573.                           4130 La Jolla Village Drive
  574.                                  Suite 107-169
  575.                             La Jolla, CA 92037-1480
  576.  
  577.  
  578.  
  579.                                                 BFE - The BBS Front End System
  580.                                                                             13
  581.  ________________________________________________________________________________
  582.  
  583.  GETTING STARTED
  584.  
  585.  System Requirements
  586.  
  587.  BFE was designed for use with IBM compatible personal computer systems, with
  588.  640K minimum RAM, however, it will run in much less.  It will run under most
  589.  popular BBS packages, to include RemoteAccess, Maximus, SuperBBS, QuickBBS,
  590.  GAP, PCBoard, WildCat!, WWIV, RoboBoard and others.  Facilities are also in
  591.  place to provide complete dropfile customization, which provides maximum
  592.  compatibility with nearly all DOS-based BBS software packages.
  593.  
  594.  BFE also requires the use of a fossil driver, such as Ray Gwinn's X00, or
  595.  David Nugent's BNU.  These programs can be found on most BBS systems, since
  596.  they are necessary in running most BBS packages and doors to begin with.  If
  597.  your BBS does not utilize a fossil driver, you can always enable it for BFE,
  598.  and then disable it after BFE exits.
  599.  
  600.  If you would like to allow users to download certain files from BFE, free of
  601.  BBS ratios, then you will also need copies of whatever external protocols you
  602.  wish to run (i.e. DSZ, MPT, J-Modem, etc).
  603.  
  604.  INSTALLATION
  605.  
  606.  First things first:
  607.  
  608.  Create a directory to hold the BFE system.  We recommend using something like
  609.  C:\BFE or C:\FD\BFE, etc.  Next, copy the BFExxxx.ZIP file into the directory
  610.  and unzip it in this directory.
  611.  
  612.  ** Note:  Your source for obtaining the BFE archive may have changed the
  613.  format of the archive to one suitable for use on their system (i.e. ZIP, LZH,
  614.  ARJ, etc).  Consult your compression package documentation for more
  615.  information on using it.
  616.  
  617.  BRIEF OVERVIEW
  618.  
  619.  Congratulations!  You have now installed the world's *premier* BBS front end
  620.  system on your computer.  Imagine what the neighbors must think by now!
  621.  Although the installation procedure is very straightforward, configuring BFE
  622.  can be a bit more challenging, but certainly very rewarding in the end.
  623.  
  624.  In earlier releases of BFE, all of the options and functionality of the
  625.  package was configured via the manual editing of numerous control and
  626.  configuration files.  This was often very tedious work for the aspiring
  627.  sysop, and many begged for something easier.  Once again, we have listened to
  628.  our users and have provided an easy-to-use, menu-driven setup facility
  629.  entitled BFE/Setup. Through the use of this revolutionary new setup system,
  630.  sysops can now configure and customize their BFE system with little or no
  631.  effort at all.
  632.  
  633.  By now, most of you are probably asking yourselves, "What can BFE do for me?
  634.  I run a simple, one-line BBS system, and I have no need for a full blown BBS
  635.  carousel setup!".  What?!  Sure you do!  Through the use of BFE, you can
  636.  
  637.  
  638.  
  639.                                                 BFE - The BBS Front End System
  640.                                                                             14
  641.  ________________________________________________________________________________
  642.  
  643.  provide pertinent information and file downloads up front, *before* your new
  644.  users have chance to get lost in your BBS!
  645.  
  646.  BFE is also prevalant at large sites, running multi-line BBS setups.  With
  647.  BFE, your callers can perform online registrations, receive subscriber
  648.  information and downloads up front, without wasting precious BBS time.  If
  649.  your site participates in more than one electronic mail network, running  on
  650.  multiple BBS systems, BFE can present this information to your callers, and
  651.  allow them to make accurate, informed decisions, to better enable them to
  652.  reach the services you offer.
  653.  
  654.  To sum it up, BFE can do just about anything you can imagine.  From BFE, you
  655.  run DOS tasks, call multiple BBS systems, or even other doors!  Read on!
  656.  
  657.  
  658.  
  659.                                                 BFE - The BBS Front End System
  660.                                                                             15
  661.  ________________________________________________________________________________
  662.  
  663.  BFE/SETUP
  664.  
  665.  What is BFE/Setup?
  666.  
  667.  As mentioned earlier in this document, BFE/Setup was designed to provide an
  668.  intuitive, easy-to-use method of configuring and customizing BFE to suit your
  669.  needs.  A lot of time has been spent on ensuring that BFE/Setup provides you
  670.  with the tools necessary to allow you to maximize your use of the BFE
  671.  package.
  672.  
  673.  NAVIGATIONAL CONTROLS
  674.  
  675.  BFE/Setup will automatically make use of a mouse if one is detected.  By
  676.  default, it runs in standard 16 color mode, but can be forced into monochrome
  677.  mode by passing a "-m" on the command line (i.e. BFESETUP -m).
  678.  
  679.  To start BFE/Setup, simply type BFESETUP while in the BFE directory.
  680.  
  681.  Left mouse button used as "select" button, while right mouse button is used
  682.  as the "ESC" button.
  683.  
  684.  THE .CTL FILE SCHEME
  685.  
  686.  Before you begin your first session with BFE/Setup, a brief overview on
  687.  he.CTL file scheme utilized by BFE is in order.  The contents of each of the
  688.  menus you will create with BFE/Setup are stored in a CONTROL file (files with
  689.  a .CTL extension).  When BFE is started, you will pass the name of your
  690.  "main" .CTL file on the command line.  This is the menu that BFE will first
  691.  prompt your users with.  From there, however, based on user selections, you
  692.  can jump to other menus (up to 10 levels of nesting).
  693.  
  694.  That's it!  No voodoo involved in this concept at all.  In fact, this is not
  695.  a new concept, as this is the way that most BBS systems function anyway!
  696.  
  697.  OPENING AND CREATING .CTL FILES
  698.  
  699.  To create new .CTL files or open existing ones for maintenance, simply select
  700.  "Open .CTL File" from the main menu.  A popup box will soon appear, prompting
  701.  you for the type of .CTL to open (i.e. new or existing).
  702.  
  703.  If you choose to create a new .CTL file, you will then be prompted for the
  704.  name of the control file.  You need not enter an extension, as .CTL will be
  705.  appended to the name you enter.  We recommend you name your .CTL files in
  706.  some sensible manner, perhaps using the name MAIN as your first menu.
  707.  
  708.  If you choose to open an existing .CTL file, a file selector box will appear,
  709.  and you may then traverse the directory structure of your system in order to
  710.  find the appropriate .CTL file to open.
  711.  
  712.  After providing a new .CTL file name, or choosing an existing one, the name
  713.  of this file will appear at the top of the main menu window, to help you keep
  714.  track of which file is in memory at any given time.
  715.  
  716.  
  717.  
  718.                                                 BFE - The BBS Front End System
  719.                                                                             16
  720.  ________________________________________________________________________________
  721.  
  722.  SAVING .CTL FILES
  723.  
  724.  After making any changes to your .CTL files, you will need to select this
  725.  option to save them permanently.  Simply select this option, and your menu
  726.  will be updated for you in the blink of an eye!
  727.  
  728.  GLOBAL OPTIONS
  729.  
  730.  Your first stop in BFE/Setup should be here, as this is where you will
  731.  configure BFE with all of its internal default options.  All global options
  732.  are stored in a file called GLOBALS.CFG.  After selecting this option from
  733.  the main menu, you will be presented with the Global Options Menu:
  734.  
  735.  PATH/SWAPPING CONFIGURATION
  736.  
  737.  DROPFILE PATH
  738.  This field, when filled in, enables BFE's internal BBS dropfile routines.
  739.  If you are running BFE as a front-end from a mailer such as FrontDoor or
  740.  BinkleyTerm, you should leave this field blank!  Only fill this field in when
  741.  you wish BFE to operate by reading a BBS dropfile (DORINFO1.DEF, DOOR.SYS,
  742.  etc).  See the section on using BFE with BBS dropfiles for more information
  743.  on the automatic dropfile recognition system used in BFE.
  744.  
  745.  BFE SYSTEM DIR
  746.  This should point to your BFE directory.  Plain and simple.
  747.  
  748.  LOGFILE
  749.  If this field is filled in, BFE will maintain a log of events in the path and
  750.  filename specified by its contents.  To disable BFE's internal logging,
  751.  simply leave this field blank.  The logfile is in the same format used by
  752.  Joho's FrontDoor Netmailer.  A special macro (%N) is available to specify the
  753.  node number for multinode systems.  For instance "BFE%N.LOG", would create a
  754.  logfile called BFExxx.LOG, where "xxx" is the node number.
  755.  
  756.  WELCOME SCREEN
  757.  BFE has the ability to display an ANSI, ASCII, AVATAR, or RIP screen to your
  758.  users upon startup.  Simply specify the path and filename of this file.  BFE
  759.  has a few unique features when displaying external files to your users!  See
  760.  the section on the DISPLAY FILE type for more information.
  761.  
  762.  SWAP PATH
  763.   BFE has the ability to make use of memory and disk swapping when calling
  764.  external processes.  By default, BFE will attempt to swap itself to EMS, but
  765.  will resort to disk swapping should not enough memory be available.
  766.  
  767.  This field should contain a list of valid swap paths, separated by commas
  768.  (i.e. C:\TEMP;D:\TEMP;E:\SWAP ).
  769.  
  770.  SWAP WITH EMS?
  771.  To prevent BFE from swapping to EMS, place a "Y" in this field!
  772.  
  773.  
  774.  
  775.                                                 BFE - The BBS Front End System
  776.                                                                             17
  777.  ________________________________________________________________________________
  778.  
  779.  EXTERNAL EDITOR
  780.  Currently, two of the selections from BFE/Setup are configured through the
  781.  use of an external editor (the Custom Dropfile Editor and the BFE Language
  782.  Editor).  These will eventually be permanent residents of
  783.  BFE/Setup, but for now, simply place the path and name of your favorite
  784.  external text editor.
  785.  
  786.  LOGON SCREEN
  787.  If you are using the internal BFE user system, this field should point to the
  788.  full path/base filename of a screen to be shown at login.  In the typical BFE
  789.  system, this should describe your system.
  790.  
  791.  NEWUSER SCREEN
  792.  If you are using the internal BFE user system, this field should point to the
  793.  full path/base filename of a screen to be shown to new users who have logged
  794.  in to BFE for the first time.  This screen is shown after
  795.  they enter their name and location, but right before they enter their
  796.  password.
  797.  
  798.  SYSOP PAGER OPTIONS
  799.  
  800.  One of the things that BFE allows your users to do is "page" the sysop for a
  801.  chat session.  This menu selection allows you to specify the hours and days
  802.  that chatting is available.
  803.  
  804.  CONFIGURING PAGING HOURS
  805.  Once you enter this selection, you will be presented with a small entry form
  806.  which has two entries per day-of-the-week.  Simply fill in the hours in which
  807.  paging will be available (in 24 hour military format).  To disable paging for
  808.  a given day, enter 00:00 for the starting time, and 00:01 for the stopping
  809.  time.
  810.  
  811.  NUMBER OF BEEPS
  812.  Whenever the sysop is paged, BFE will present a series of beeps on the PC
  813.  speaker, to attempt to gain the attention of the sysop.  This setting
  814.  controls the number of beeps that BFE will perform during a page attempt.
  815.  
  816.  PASSWORD ATTEMPTS
  817.  When faced with a BFE password prompt, the number of attempts they are given
  818.  to supply a valid password is governed by the value of this field.
  819.  
  820.  HANG UP ON USER?
  821.  If a user fails to enter a valid password within the specified number of
  822.  attempts (above), should BFE hang up on the user ("Y"), or simply return
  823.  him/her to the BFE menu system ("N").
  824.  
  825.  CUSTOM DROPFILE EDITOR
  826.  
  827.  Custom door information file support. BFE automatically recognizes most door
  828.  information file (drop file) formats, including DORINFO?.DEF, EXITINFO.BBS,
  829.  DOOR.SYS, SFDOORS.DAT, CALLINFO.BBS and CHAIN.TXT. However, to permit BFE to
  830.  operate on BBS systems that produce a different format file, you may define a
  831.  custom door information file format. A custom door information file format
  832.  
  833.  
  834.  
  835.                                                 BFE - The BBS Front End System
  836.                                                                             18
  837.  ________________________________________________________________________________
  838.  
  839.  can be defined in a file called CUSTOM.BFE.  When BFE starts, this file is
  840.  read in and a dynamic dropfile type is created and looked for by BFE.  BFE
  841.  will enable dropfile mode if it finds a valid custom dropfile.
  842.  
  843.  The "CustomFileName" option specifies the filename used to distinguish this
  844.  file format from other file formats. This filename should not include a path.
  845.  To specify the path where the door information file is located, use the
  846.  BBSDir setting, near the beginning of this file. If the filename of the
  847.  custom format is the same as that of one of the built-in formats, the custom
  848.  format will override the built-in format.
  849.  
  850.  See the BFE Reference Section on "Custom Dropfiles" for more information on
  851.  the format used.
  852.  
  853.  FILE LIST/CHAT COLOR DEFAULTS
  854.  
  855.  Select this option to setup the default color scheme to be used when in a
  856.  chat session with a user.  There are also options to configure the various
  857.  colors used to display a BFE style FILES.BBS file listing.
  858.  
  859.  BFE MENU COLOR DEFAULTS
  860.  
  861.  If using the built-in BFE menu style, you may want to change the default
  862.  color scheme used to display the menus.  Unless a specific override has been
  863.  enabled in either MENU OPTIONS or a COLOR OVERRIDE on a particular menu
  864.  option, the colors defined here will be used to display all menus.  It is
  865.  suggested to go ahead and set these colors to the colors which will be used
  866.  in most of your menus.  This makes maintenance a bit easier!
  867.  
  868.  MISCELLANEOUS OPTIONS
  869.  
  870.  SYSOP NAME
  871.  The contents of this field should match *exactly* with the name that you
  872.  have/are planning to register BFE with!  This field is case-sensitive!
  873.  
  874.  SYSTEM NAME
  875.  This field is purely an informational field, and should contain the name of
  876.  your BBS system or communications site.
  877.  
  878.  NODE #
  879.  Enter the node number of your BBS (i.e. 1, 2, 3), or leave blank if running
  880.  on a multinode BBS system.
  881.  
  882.  REGISTRATION #
  883.  Upon registering BFE, you will receive a key number which should be entered
  884.  into this field.
  885.  
  886.  BFE/PERSONALITY
  887.  There are several options available to the Sysop while the user is in the BFE
  888.  Door.  These options and hotkeys differ from BBS "personality" to
  889.  "personality".  BFE currently supports three BBS personalities (WildCat!,
  890.  RemoteAccess 2.0x, and the default style).  For more information on the RA
  891.  and WildCat! hotkeys, consult the documentation which accompanied the BBS
  892.  
  893.  
  894.  
  895.                                                 BFE - The BBS Front End System
  896.                                                                             19
  897.  ________________________________________________________________________________
  898.  
  899.  software.  The sysop keys for the default personality are outlined later in
  900.  this manual.  Valid values are (RA, WC, or DF).
  901.  
  902.  TIMELIMIT
  903.  This is the default BFE time limit given to all callers.  If you are not
  904.  running BFE via a bbs dropfile, BFE has no way of knowing how much time the
  905.  user has online!  Specify the amount in minutes.
  906.  
  907.  INACTIVITY TIMEOUT
  908.  This value specifies the amount (in seconds) that BFE will allow a user to
  909.  sit idle at the keyboard before hanging up.
  910.  
  911.  FREEZETIME
  912.  When BFE calls protocols and other external tasks, you can have the user's
  913.  remaining time temporarily "frozen", which means no time will be taken away
  914.  while in an external task of any kind.
  915.  
  916.  LOCKED BPS
  917.  If running with a locked serial port, specify the locked baud rate of your
  918.  system here.
  919.  
  920.  FOSSIL PORT
  921.  Enter the port number (0, 1, 2, etc) that your fossil driver is active on.
  922.  
  923.  USER SYSTEM?
  924.  If you wish to make use of the internal BFE user system, this field should be
  925.  set to "Y".  See the section entitled "BFE User System" for more information
  926.  on implementing the user system.
  927.  
  928.  SCROLLER DELAY
  929.  This setting is used to adjust the speed of the scrolling message at the top
  930.  of the BFE/Setup display area.  Setting this to a value of 0 will effectively
  931.  disable the scroller.
  932.  
  933.  HIDE PASSWORDS IN MENU EDITOR?
  934.  If enabled ("Y"), BFE/Setup will "mask" all passwords as they are being
  935.  entered into the menu builder.  This is great if you do not wish for someone
  936.  to look over your shoulder while you are entering the password!
  937.  
  938.  STARTUP OPTIONS
  939.  
  940.  AUTO DETECT ANSI?
  941.  To have BFE attempt to automatically detect whether or not the user is
  942.  running an ANSI capable terminal, enter a "Y" in the field, or a "N" to
  943.  disable this feature.  If this option is disabled, the default graphics
  944.  mode will be ASCII/TTY.
  945.  
  946.  AUTO DETECT RIP?
  947.  To have BFE attempt to automatically detect whether or not the user is
  948.  running a terminal capable of emulating the RIP graphics protocol, enter a
  949.  "Y" in this field, or a "N" to disable this feature.  If you do not plan on
  950.  supporting RIP on your system, you should disable this feature, as it takes a
  951.  second or two up front.
  952.  
  953.  
  954.  
  955.                                                 BFE - The BBS Front End System
  956.                                                                             20
  957.  ________________________________________________________________________________
  958.  
  959.  
  960.  STARTUP SCRIPT
  961.  BFE has the ability to execute a "startup script" when the user connects. The
  962.  startup script will be shown after the user logs on (if you are using the BFE
  963.  user system), and after the welcome screen is displayed, but before they hit
  964.  the first .CTL file menu.  Simply enter the path and/or filename of the
  965.  script in this field.  Leave the field blank to disable this feature.
  966.  
  967.  EXIT SCRIPT
  968.  BFE has the ability to execute an "exit script" when the user logs off
  969.  normally (i.e. the Goodbye command).  Simply enter the path and/or filename
  970.  of the script in this field.  Leave the field blank to disable this
  971.  feature.
  972.  
  973.  PRIVATE ENTRY SYSTEM
  974.  How many times have you been down at the office, or over at a friend's house,
  975.  and needed to connect to your system ASAP?  Once again, we listened to our
  976.  users, and voila! The BFE Private Entry System!  Through the use of this
  977.  feature, you can configure BFE with a "system entry password", between
  978.  certain hours of certain days of the week.  Simply enter the starting time
  979.  and ending time for the Private Entry System next to the appropriate day of
  980.  the week.  The system entry password can also be configured at this screen.
  981.  To disable the Private Entry System for a particular day of the week, simply
  982.  enter a value of zero (0) for the starting and ending times.
  983.  
  984.  MENU EDITOR
  985.  
  986.  BFE/Setup's menu editor provides an intuitive method of constructing your BFE
  987.  menus, allowing you to concentrate on the flexibility and functionality of
  988.  the front end setup, rather than the semantics of a cryptic text-based
  989.  configuration file.
  990.  
  991.  MENU ITEM SELECTOR LIST
  992.  
  993.  Upon selecting this option, you will be presented with a list of the menu
  994.  items for the currently active menu (i.e. a .CTL file menu which has been
  995.  recently created or opened).  Here is where the fun begins!
  996.  
  997.  When the list of menu items appears, simply use the cursor keys (or the
  998.  mouse) to select a menu option to edit.  All unused menu items will be marked
  999.  as so.  Press ENTER or the LEFT mouse button to confirm your selection.
  1000.  
  1001.  You will then be presented with the menu option editor screen.  From here,
  1002.  you tailor this particular menu option for an active role in your front end.
  1003.  After you have made your changes or additions, pressing ESC will return you
  1004.  to the menu item selector list, and will automatically retain your changes.
  1005.  These changes are *not* written to disk, however, until you actually SAVE the
  1006.  .CTL file from the main menu!
  1007.  
  1008.  REARRANGING MENU ITEMS
  1009.  
  1010.  There will be times when you need to re-arrange existing menu items to insert
  1011.  new ones, etc.  To do this simply hit the space bar on one menu item, move to
  1012.  
  1013.  
  1014.  
  1015.                                                 BFE - The BBS Front End System
  1016.                                                                             21
  1017.  ________________________________________________________________________________
  1018.  
  1019.  the menu item you wish to swap positions with, and hit the space bar again.
  1020.  The screen will flash, letting you know that the switch was made.
  1021.  
  1022.  DESCRIPTION
  1023.  Selecting this item will prompt you for a textual description which more or
  1024.  less describes this option to your users.  The contents of this field will be
  1025.  presented to your users at show time.  This field also serves the role of
  1026.  "deleting" menu items, or making them temporarily inactive. By removing the
  1027.  description, BFE will not activate this option for your users.
  1028.  
  1029.    Examples:     Select me to enter Under the Nile BBS!
  1030.                  Download our master file listing
  1031.                  Receive subscriber information
  1032.  
  1033.  For options which make use of BFE's SlashCommand(tm) mode, the slash command
  1034.  text should be entered in this field, before the description, and separated
  1035.  from the actual description with a pipe sign (|).
  1036.  
  1037.    Examples:    BBS|Select me to enter the BBS!
  1038.                 FILES|Download master file listing
  1039.                 SHELL|Remote shell to DOS
  1040.  
  1041.  SlashCommands can appear in any .CTL file, including the special GLOBAL
  1042.  control file (more on this guy later).
  1043.  
  1044.  HOTKEY
  1045.  The hotkey field is a simple, yet necessary one.  The keystroke you enter in
  1046.  this field will be displayed next to the textual description entered above in
  1047.  the DESCRIPTION field.  The "hotkey" field represents the keypress needed to
  1048.  activate the option.  You may use any character for this, however, if you
  1049.  chose an alpha character (A through Z), it will use the uppercase form of the
  1050.  character.  In other words, if you put a lowercase letter in as a hotkey,
  1051.  BFE/Setup will convert it to uppercase.
  1052.  
  1053.  This setting does not matter if the menu item is a SlashCommand(tm).
  1054.  
  1055.  FLAVOR
  1056.  BFE currently supports four option "flavors":
  1057.  
  1058.  NORMAL and HIDDEN
  1059.  
  1060.  All items marked as NORMAL will be displayed to your users.  Any items which
  1061.  are labeled as HIDDEN will remain active, but will not be displayed to your
  1062.  users.  This field serves no special purpose if you are using custom user-
  1063.  defined menus!
  1064.  
  1065.  SLASH/NORMAL and SLASH/HIDDEN
  1066.  
  1067.  As part of BFE's SlashCommand(tm) technology, options can be marked with a
  1068.  flavor of either SLASH/NORMAL or SLASH/HIDDEN.  When the user hits the '/'
  1069.  key, he will be prompted for the SlashCommand to use, as opposed to simply
  1070.  hitting a hotkey.
  1071.  
  1072.  
  1073.  
  1074.                                                 BFE - The BBS Front End System
  1075.                                                                             22
  1076.  ________________________________________________________________________________
  1077.  
  1078.  OPTION TYPE
  1079.  
  1080.  This is perhaps the most critical part of configuring your new BFE system.
  1081.  Each menu option must have a valid TYPE.  This type determines the action
  1082.  that BFE will take if and when a user selects this menu option from the menu.
  1083.  This action can range from something as simple as exiting on an errorlevel to
  1084.  the calling batch files, to more complex actions, such as remote shells to
  1085.  your operating system!
  1086.  
  1087.  Keep in mind that the contents of this field determine the meaning and use of
  1088.  other fields on the menu option editor screen.  See the BFE Reference Section
  1089.  for a detailed listing of the menu types available for use within the BFE
  1090.  system.
  1091.  
  1092.  SECURITY
  1093.  If a certain security level is needed to access a particular menu item,
  1094.  specify this level here.  Please note that this option is *only* available
  1095.  when running BFE with a dropfile, not as a front end, since we have no idea
  1096.  who is actually online in a front end environment.
  1097.  
  1098.  PORTSPEED
  1099.  The PORTSPEED option was provided to allow Sysops who lock their serial ports
  1100.  to pass either the TRUE port speed (i.e. 9600), or the LOCKED speed (i.e
  1101.  38400).  This comes in handy when combined with download types or when
  1102.  calling another BBS door from a BFE menu option.
  1103.  
  1104.  * NOTE:  Be sure to check the additional serial port locking options that
  1105.  appear in the global options menu in BFE/Setup! These must be set as well!
  1106.  
  1107.  PASSPARMS
  1108.  This option will force BFE to pass pertinent communication information on the
  1109.  command line in type "R" menu items.  The parameters are passed in the
  1110.  following order:
  1111.  
  1112.          %1 = port (1-4) (0 if local)
  1113.          %2 = speed (baud rate) (0 if local)
  1114.          %3 = time to next event
  1115.          %4 = node number (0 if not known)
  1116.  
  1117.  PROMPT
  1118.  The PROMPT keyword will force BFE to stop and get input from the current
  1119.  user, and will store the results of his data entry into the PROCESS field,
  1120.  which is described next.  This information is then passed on the command line
  1121.  in type "R" menu options.  Using this option will override anything that you
  1122.  have entered into the PROCESS field!
  1123.  
  1124.  SECONDARY FIELD
  1125.  The SECONDARY field is used as a catch-all field in BFE.  Its contents and
  1126.  internal use are based solely on the menu type.  It can contain anything from
  1127.  a simple errorlevel (for type "E" items), to a filename to be downloaded in a
  1128.  download type (type "F").  The relevance of this field is described in the
  1129.  BFE Reference Section, for each menu type that uses it.
  1130.  
  1131.  
  1132.  
  1133.                                                 BFE - The BBS Front End System
  1134.                                                                             23
  1135.  ________________________________________________________________________________
  1136.  
  1137.  PROCESS
  1138.  The PROCESS field was designed to pass parameters to external tasks (other
  1139.  than the default communication parameters toggled by PASSPARMS).  This field
  1140.  is used automatically by the PROMPT feature.  The following macros are
  1141.  available for use in this field:
  1142.  
  1143.          %p = port (1-4) (0 if local)
  1144.          %s = speed (baud rate) (0 if local)
  1145.          %t = time to next event
  1146.          %n = node number
  1147.  
  1148.  
  1149.  
  1150.                                                 BFE - The BBS Front End System
  1151.                                                                             24
  1152.  ________________________________________________________________________________
  1153.  
  1154.  SHOWAFTER
  1155.  This field is used to display an ANSI/ASCII/AVATAR screen to your users AFTER
  1156.  they select the menu item, but BEFORE the task is carried out.  See the
  1157.  description of the type "D" option for more information on how BFE handles
  1158.  the display of external files.
  1159.  
  1160.  PASSWORD
  1161.  Any menu item in BFE can be password protected!  Simply place the desired
  1162.  password in this field.  When the user selects an option that has an
  1163.  associated password, BFE will prompt him/her for the password.  After 3
  1164.  failed attempts, BFE hangs up on the user and returns control to the calling
  1165.  batch file.
  1166.  
  1167.  COLOR OVERRIDE
  1168.  When using BFE's internal menus (i.e. no custom user menus), the menus will
  1169.  be displayed using the default menu color scheme configured under the Global
  1170.  Options menu.  Should you wish to override any or all of those colors, simply
  1171.  select this item!  A color picklist will appear, and will allow you to select
  1172.  the appropriate color for the current menu item.  While in the picklist,
  1173.  pressing PGUP/PGDN will toggle between the blinking colors (flashing) and the
  1174.  constant colors.  Does not apply to internal RIP menus!
  1175.  
  1176.  CREATE DROPFILE
  1177.  This option, when enabled, will force BFE to create a bbs dropfile based on
  1178.  the current user's settings.  This dropfile will be created in the directory
  1179.  pointed to by the DROPFILE PATH field. This can be particularly handy when
  1180.  running other doors from your BFE menus.
  1181.  
  1182.    Currently, the following dropfile formats are supported:
  1183.  
  1184.          - Standard DORINFO?.DEF
  1185.          - SFDOORS.DAT (Spitfire BBS)
  1186.          - DOOR.SYS (Both WildCat! and GAP/PCBoard flavors)
  1187.  
  1188.  DROPFILE PATH
  1189.  This should point to a directory in which BFE-generated dropfiles will be
  1190.  created (Backslash optional).
  1191.  
  1192.  MENU OPTIONS
  1193.  
  1194.  Under the MENU OPTIONS selection, you are able to further tailor the current
  1195.  menu to your liking.
  1196.  
  1197.  REGISTRATION MESSAGE
  1198.  By default, BFE displays its own registration message at the top of the
  1199.  screen (both local and remote).  If BFE is unregistered, it will display "***
  1200.  Unregistered Evaluation Copy **".  Upon registering BFE, this will be
  1201.  replaced by "Registered to: <your name>".  However, registration of BFE
  1202.  allows you to change this default registration message to whatever you like,
  1203.  and since the message appears at the top of each menu, you could give a
  1204.  different message for each menu, providing a title line.
  1205.  
  1206.  
  1207.  
  1208.                                                 BFE - The BBS Front End System
  1209.                                                                             25
  1210.  ________________________________________________________________________________
  1211.  
  1212.  CUSTOM USER MENU
  1213.  By default, BFE will make use of an internal menu scheme.  This scheme is
  1214.  very attractive to the eye and easy to follow.  However, at some point, you
  1215.  may wish to create "custom" user menus.  These custom menu screens can be
  1216.  created using your favorite ASCII editor, ANSI paint program, and/or a RIP
  1217.  graphics paint package.  Simply place the full path and filename in this
  1218.  field (path optional).  If you do not specify an extension to the file, BFE
  1219.  will insert the extension at runtime, based on the user's graphic settings
  1220.  (i.e. ASCII/ANSI/AVATAR/RIP).  See the section on the type "D" menu option
  1221.  for more information on how BFE handles the displaying of external files.
  1222.  
  1223.  CUSTOM COLORS
  1224.  You may select custom colors for each "piece" of the default menu set.  These
  1225.  settings are initialized to the settings which were configured in the GLOBAL
  1226.  OPTIONS menu, but can be overriden for each of your menus to provide a custom
  1227.  look.
  1228.  
  1229.  PROTOCOLS
  1230.  
  1231.  Here is where all external protocols are configured for use within BFE.  This
  1232.  is a very painless process, as you will soon find out!  You may configure up
  1233.  to 10 external protocols.  There are three fields for each:
  1234.  
  1235.  Menu Name
  1236.  Textual description which will describe this protocol to your users (i.e.
  1237.  ZModem, YModem, etc).
  1238.  
  1239.  Batch Processor
  1240.  The full path and filename of a batch file which will be called when a user
  1241.  selects to transfer a file with this
  1242.  protocol.
  1243.  
  1244.  Prompt for File
  1245.  Some protocols automatically recognize the filename being uploaded (i.e.
  1246.  ZModem), others do not (XModem).  If BFE needs to ask the user for the
  1247.  filename, specify a "Y" in this field.
  1248.  
  1249.  BFE passes the following parameters to the configured batch file(s):
  1250.  
  1251.                %1 - Node number
  1252.                %2 - Port number (1-4)
  1253.                %3 - Serial Speed
  1254.                %4 - Filename (complete path, if specified in SEC.)
  1255.                %5 - U = Upload D = Download
  1256.  
  1257.  
  1258.  It is up to you to put these batch files together (although the DSZ sample
  1259.  set should suffice for all but the most giving of sysops!).  Also, since the
  1260.  file transfer hook is provided in batch, this affords you the opportunity to
  1261.  do additional processing, such as scanning uploads for viruses, or moving
  1262.  uploads to another area on your system.  Endless.
  1263.  
  1264.  
  1265.  
  1266.  
  1267.                                                 BFE - The BBS Front End System
  1268.                                                                             26
  1269.  ________________________________________________________________________________
  1270.  
  1271.  LOCAL TEST
  1272.  
  1273.  From this option, you can test out your BFE configuration in local mode, to
  1274.  test your menu sets.  BFE looks for a batch file called BFELOCAL.BAT in your
  1275.  BFE directory.  It is up to you to place the necessary call to BFE in this
  1276.  batch file.  A sample BFELOCAL.BAT file has been included in the
  1277.  distribution archive.  The only thing you need to change (essentially) is the
  1278.  name of the .CTL file to start with.
  1279.  
  1280.  MESSAGE BASES
  1281.  
  1282.  OVERVIEW
  1283.  
  1284.  BFE has the ability to make use of Fidonet *.MSG or Squish message areas. You
  1285.  can configure up to 20 message areas by selecting the MESSAGE BASES option
  1286.  from the BFE/Setup main menu.  After selecting this option, you will be
  1287.  presented with a picklist of the available areas.  To configure an area,
  1288.  simply select the area to edit by using the cursor keys (or mouse) and
  1289.  pressing RETURN.  This pulls up the Message Area Editor.  There are a number
  1290.  of options which need to be configured for each message area that
  1291.  you wish to use with BFE.
  1292.  
  1293.  PATH/FILENAME OF AREA
  1294.  This setting depends upon the message base format you intend to use.
  1295.  Currently, the fidonet *.MSG format and the Scott Dudley's Squish format are
  1296.  supported.  Fidonet style areas should point to the directory to hold the
  1297.  messages.  Squish areas should point to the path and *base* name of the
  1298.  squish base.
  1299.  
  1300.          Examples:  C:\FD\PVTMAIL
  1301.                     C:\BINKLEY\NETMAIL
  1302.  
  1303.  DESTINATION ADDRESS
  1304.  This is the fidonet style network address which represents the destination of
  1305.  the message.  To keep messages locally, simply enter your own address.
  1306.  
  1307.  ORIGINATING ADDRESS
  1308.  This is the fidonet style network address which represents YOUR network
  1309.  address.
  1310.  
  1311.  MESSAGE ATTRIBUTES
  1312.  The following message attributes may be enabled:
  1313.  
  1314.          - PRIVATE
  1315.          - CRASH
  1316.          - HOLD
  1317.          - KILL/SENT
  1318.  
  1319.  
  1320.  
  1321.                                                 BFE - The BBS Front End System
  1322.                                                                             27
  1323.  ________________________________________________________________________________
  1324.  
  1325.          - FILE ATTACH
  1326.          - FILE REQUEST
  1327.  
  1328.  Additional message attributes may be added in the future.  Simply answer "Y"
  1329.  or "N" for each attribute.  Any message that BFE generates for this area will
  1330.  have the configured attributes.
  1331.  
  1332.  DEFAULT "TO" FIELD
  1333.  To provide a default "to" field for the message, simply enter this here.  If
  1334.  you leave this field blank, BFE will prompt the user for a recipient's name
  1335.  before he/she enters the message.
  1336.  
  1337.          Examples: Sysop
  1338.                    areafix
  1339.                    Scott Burkett
  1340.  
  1341.  DEFAULT "FROM" FIELD
  1342.  To provide a default "from" field for the message, simply enter this here.
  1343.  If you leave this field blank, BFE will prompt the user for their name before
  1344.  he/she enters the message.  If you are using the BFE user system, or are
  1345.  running BFE via a BBS dropfile, you can have BFE use the user's logon name
  1346.  for this field by simply placing a tilde (~) as the contents of this field.
  1347.  
  1348.          Examples: ~
  1349.                    Sysop
  1350.                    areafix
  1351.                    Scott Burkett
  1352.  
  1353.  DEFAULT "SUBJECT" FIELD
  1354.  To provide a default subject field for the message, simply enter this here.
  1355.  If you leave this field blank, BFE will prompt the user for a subject before
  1356.  he/she enters the message.
  1357.  
  1358.          Examples: Feedback
  1359.                    mypass -R -Q
  1360.  
  1361.  BRIEF DESCRIPTION
  1362.  A brief description is required for each of your configured message areas.
  1363.  This description is the same text used in the message area selector list.
  1364.  
  1365.          Examples: Feedback to Sysop Area
  1366.                    Areafix Request Area
  1367.  
  1368.  
  1369.  
  1370.                                                 BFE - The BBS Front End System
  1371.                                                                             28
  1372.  ________________________________________________________________________________
  1373.  
  1374.  THE BFE/SCRIPT SYSTEM
  1375.  
  1376.  INTRODUCTION AND OVERVIEW
  1377.  
  1378.  BFE/Script is the name of the internal script processor in BFE.  Through the
  1379.  use of this system, users are able to "code" their own BFE scripts, and call
  1380.  them from their BFE menus.  Most users will not have a need for BFE/Script,
  1381.  as BFE alone provides quite an arsenal of tools to construct your frontend
  1382.  system.  However, for those who like to tinker with internals and the like,
  1383.  BFE/Script can prove to be a tremendous feature.
  1384.  
  1385.  Although the script language is somewhat limited in this release, we have big
  1386.  plans for it in the future.
  1387.  
  1388.  In appearance, BFE/Script code is remarkably similar to the C language,
  1389.  although C is a much more powerful platform.  In fact, the entire BFE system
  1390.  was authored in C, while BFE/Script is but a user interface to the BFE
  1391.  internals.  If you are a C programmer, or have dabbled in C, then you should
  1392.  have no problems at all with BFE/Script.  Non-programmers should be sure to
  1393.  read over this section in its entirety, and study the sample scripts which
  1394.  are included in the BFE distribution archive.
  1395.  
  1396.  Current features and constructs of BFE/Script include:
  1397.  
  1398.          - Access to internal BFE functions such as sysop paging, etc.
  1399.          - Parameterized functions with local variables
  1400.          - Function Recursion
  1401.          - Global variables
  1402.          - Keywords: if, do-while, while, for, and return.
  1403.          - Numeric and character variable types
  1404.          - Operators: +, -, *, /, %, <, >, <=, >=, ==, !=, unary +/-
  1405.          - Functions which return integers
  1406.          - BFE/Script is completely case-insensitive (unlike C!)
  1407.  
  1408.  More BFE/Script functions and procedures will be added in future releases.
  1409.  Should you have any suggestions on possible additions to this unique feature
  1410.  of BFE, please contact us!
  1411.  
  1412.  SCRIPT SYNTAX RULES AND CODING BASICS
  1413.  
  1414.  As we mentioned earlier, BFE/Script is very similar to C, at least in the
  1415.  general appearance of its code.  While this section is not meant to teach C,
  1416.  many of the rules will apply to both C and BFE/Script.  You may find it
  1417.  helpful to pick up an introductory C programming book in order to hone your
  1418.  BFE/Script skills.
  1419.  
  1420.  All of your scripts should be edited with your favorite ASCII text editor,
  1421.  such as Q-Edit, TED, DOS-Edit, etc.
  1422.  
  1423.  
  1424.  
  1425.                                                 BFE - The BBS Front End System
  1426.                                                                             29
  1427.  ________________________________________________________________________________
  1428.  
  1429.  Your BFE/Scripts are composed of functions, and calls to these functions.
  1430.  Each of your functions must be completed enclosed in a "code-block".  For
  1431.  example:
  1432.  
  1433.          printmessage()
  1434.          {
  1435.            putsnl("Welcome to my first BFE script!");
  1436.          }
  1437.  
  1438.  In the above example, the function "printmessage" is a user-defined function,
  1439.  consisting of nothing more than a call to "putsnl" (put string with a CR/LF
  1440.  pair).  There are two very essential concepts about the above.  The first
  1441.  being the two curly braces which separate the function name, in this case,
  1442.  putmessage(), and the actual function contents, the call to putsnl().
  1443.  
  1444.  The second item of interest is the semi-colon following the call to putsnl().
  1445.  This signifies the end of the current function call.  Let's take a look at
  1446.  another small example:
  1447.  
  1448.          /* My first BFE Script! */
  1449.  
  1450.          main() {
  1451.            clearscreen();
  1452.            printmessage();
  1453.          }
  1454.  
  1455.          printmessage()
  1456.          {
  1457.            putsnl("Welcome to my first BFE script!");
  1458.            putsnl("Press any key to return to BFE!");
  1459.            getkey();
  1460.          }
  1461.  
  1462.  In this example, we have expanded on our original printmessage() example.
  1463.  In actuality, the original example we discussed is not complete!  Each of
  1464.  your BFE scripts *must* contain a function called "main".  This function is
  1465.  used as the starting point of the script.
  1466.  
  1467.  In the above example, you will also notice the placement of the two curly
  1468.  braces in the function main(), is a bit different from that of the function
  1469.  printmessage().  Like C, BFE/Script is a free-format language, to an extent.
  1470.  Spacing and line order doesn't matter.  As long as the constructs are
  1471.  present.
  1472.  
  1473.  In the above example, BFE/Script would start processing in the function
  1474.  main(), with consists of nothing more than a call to printmessage().  When
  1475.  printmessage() is executed, the two calls to putsnl() would display the text
  1476.  to the user.  The call to getkey() would simply wait for a keypress from the
  1477.  user.  At that point, control is returned to main().  Since main() has no
  1478.  more processing left, BFE/Script in turn returns control back to BFE.
  1479.  
  1480.  Let's take a look at the use of user-defined variables, as these will play an
  1481.  important role in even the most primitive of scripts.  Currently, BFE
  1482.  
  1483.  
  1484.  
  1485.                                                 BFE - The BBS Front End System
  1486.                                                                             30
  1487.  ________________________________________________________________________________
  1488.  
  1489.  supports two types of variables, character and numeric.  Additional, more
  1490.  advanced data types (such as floating point and string), will be introduced
  1491.  in a later release of the package.
  1492.  
  1493.  To define a user-defined variable, use the following construct:
  1494.  
  1495.                  <type> <identifier>
  1496.  
  1497.  Here are a few examples:
  1498.  
  1499.                                int x,y,z;
  1500.  
  1501.  The above example creates three (3) numeric variables (integers) called x, y,
  1502.  and z.  (Note the ability to separate variable definitions of the same type
  1503.  with a comma!  You cannot mix more than one type like this).
  1504.  
  1505.                                char key;
  1506.                                char a,b,c;
  1507.  
  1508.  Similarly, the above examples generate character variables, called "key", a,
  1509.  b, and c.
  1510.  
  1511.  All variables (unlike C) are automatically initialized to zero.  To set a
  1512.  variable's value, simply use the "=" operator:
  1513.  
  1514.          x = 10;
  1515.          y=1;
  1516.          key = 'A';
  1517.  
  1518.  Variables declared inside of a function block are "local" to that function,
  1519.  and are not available in any other function!  These "local" variables are
  1520.  also re-initialized on each call to the owning function.  Similarly, any
  1521.  variables declared outside of any function are declared as "global" variables
  1522.  and are available anywhere in the script, in any function.  Global variables
  1523.  retain their values unless explicitly changed.
  1524.  
  1525.  Another extremely powerful feature of BFE/Script is the ability to pass
  1526.  values to and from functions.  This is known as "parameterized functions".
  1527.  Perhaps another example is in order:
  1528.  
  1529.          main()
  1530.          {
  1531.            int x,y,z;
  1532.            char t;
  1533.            clearscreen();
  1534.            puts("Enter a number: ");
  1535.            x = getnum();
  1536.  
  1537.            ShowNumber(x);
  1538.          }
  1539.  
  1540.          ShowNumber(int z)
  1541.          {
  1542.  
  1543.  
  1544.  
  1545.                                                 BFE - The BBS Front End System
  1546.                                                                             31
  1547.  ________________________________________________________________________________
  1548.  
  1549.            puts("X is equal to: ");
  1550.            print(z);
  1551.            putsnl("Press any key to exit!");
  1552.            getkey();
  1553.          }
  1554.  
  1555.  In this particular example, starting in the main() function, the user is
  1556.  prompted to enter a number.  This number is then passed to the ShowNumber()
  1557.  function, where the number is displayed.  This is also a great example of
  1558.  local variables, as the variable "z" is local to the ShowNumber() function,
  1559.  even though it will end up with the same value as the main() function's local
  1560.  variable "x".
  1561.  
  1562.  Easy, isn't it?  Great!  Now that we have variables under our belt, let's
  1563.  discuss some of the conditional keywords which BFE/Script makes use of.
  1564.  
  1565.          dumb_function() {
  1566.             int x;
  1567.  
  1568.             x = getnum();
  1569.  
  1570.             if(x < 10) {
  1571.               putsnl("Number is less than 10!");
  1572.             }
  1573.  
  1574.             if(x == 10) {
  1575.               putsnl("Number is equal to 10!");
  1576.             }
  1577.  
  1578.             if(x > 10) {
  1579.               putsnl("Number is greater than 10!");
  1580.             }
  1581.          }
  1582.  
  1583.  In the above function, we declare a local variable called "x".  We then set
  1584.  this variable equal to the value returned by the getnum() function (the
  1585.  getnum() function simply queries the user for a numeric value).  We then put
  1586.  the contents of "x" through a series of tests, using the "if" keyword.
  1587.  Simple, eh?
  1588.  
  1589.          dumb_function2() {
  1590.            int x;
  1591.  
  1592.            for(x=1; x<11; x=x+1) {
  1593.              print(x);
  1594.            }
  1595.          }
  1596.  
  1597.  The above example uses a "for" loop to display the numbers 1 through 10.
  1598.  
  1599.          dumb_function3() {
  1600.            int x;
  1601.            x = 1;
  1602.  
  1603.  
  1604.  
  1605.                                                 BFE - The BBS Front End System
  1606.                                                                             32
  1607.  ________________________________________________________________________________
  1608.  
  1609.            while(x <= 10) {
  1610.              print(x);
  1611.              x = x + 1;
  1612.            }
  1613.          }
  1614.  
  1615.  This example does the same thing, only instead of the "if" loop, we use a
  1616.  "while" loop.
  1617.  
  1618.          dumb_function4() {
  1619.            int x;
  1620.  
  1621.            do {
  1622.               print(x);
  1623.            } while(x <= 10);
  1624.          }
  1625.  
  1626.  In the above example, we use a modified version of the "while" loop, known as
  1627.  the "do-while" loop.  Simple, isn't it?
  1628.  
  1629.  Ah, but what would code be without comments?  BFE/Script implements the C-
  1630.  style "slash-asterisk" comment.
  1631.  
  1632.          /* This is my first script! */
  1633.  
  1634.  Anything which falls in between the /* and the */ is ignored by BFE/Script
  1635.  and treated as a comment.  Comments may span several lines:
  1636.  
  1637.          /* This is my first script!
  1638.                  Enjoy!
  1639.          */
  1640.  
  1641.  or how about:
  1642.  
  1643.          /* This is my first script!
  1644.  
  1645.                  Enjoy it! */
  1646.  
  1647.  On a final note, all items contained in a BFE script are case-insensitive. In
  1648.  other words GETKEY() is the same as getkey() or GeTkEy().
  1649.  
  1650.  That's about all of the help I can provide at this point.  As this feature
  1651.  expands to new horizons as BFE progresses, the documentation on it will
  1652.  inherently get better.  Trust me!  Feel free to post your scripts in the
  1653.  SPHINX echo should you require assistance.  Now, let's move on to the actual
  1654.  function calls contained with the scripting system.
  1655.  
  1656.  
  1657.  
  1658.                                                 BFE - The BBS Front End System
  1659.                                                                             33
  1660.  ________________________________________________________________________________
  1661.  
  1662.  SCRIPT FUNCTION REFERENCE
  1663.  
  1664.  ADDTIME();
  1665.  
  1666.          Adds the passed numeric value to the user's total remaining time
  1667.          online.
  1668.  
  1669.          Example: /* This adds 5 minutes to the user's time */
  1670.                   addtime(5);
  1671.  
  1672.  
  1673.  CENTERMSG();
  1674.  
  1675.          Centers the passed text string on the current line.
  1676.  
  1677.          Example: centermsg("Welcome to this script!");
  1678.  
  1679.  
  1680.  CHECKANSI();
  1681.  
  1682.          Returns TRUE if the user is in ANSI graphics mode, or FALSE if
  1683.          the user is in standard ASCII/TTY mode.
  1684.  
  1685.          Example:
  1686.                   ShowGraphicsMode() {
  1687.                       int ansi;
  1688.  
  1689.                       ansi = checkansi();
  1690.  
  1691.                       if(ansi) {
  1692.                         centermsg("Graphics Mode: ANSI");
  1693.                       } else {
  1694.                         centermsg("Graphics Mode: ASCII");
  1695.                       }
  1696.                   }
  1697.  
  1698.  CLEARSCREEN();
  1699.  
  1700.          Clears the screen both remotely and locally.
  1701.  
  1702.          Example: clearscreen();
  1703.  
  1704.  DISPLAYFILE();
  1705.  
  1706.          Displays an ANSI/ASCII/AVATAR/RIP file to the user.  See the section
  1707.          on the type "D" menu option for more details on how BFE displays
  1708.          external files!
  1709.  
  1710.          Examples: Displayfile("WELCOME");
  1711.                    Displayfile("WELCOME.TXT");
  1712.  
  1713.  
  1714.  
  1715.                                                 BFE - The BBS Front End System
  1716.                                                                             34
  1717.  ________________________________________________________________________________
  1718.  
  1719.  DOWNLOADFILE();
  1720.  
  1721.          Initiates a download session for the passed file.
  1722.  
  1723.          Examples: Downloadfile("MASTER.ZIP");
  1724.                    Downloadfile("C:\FILES\MASTER.ZIP");
  1725.  
  1726.  
  1727.  DOWNLOADLIST();
  1728.  
  1729.          Allows the user to browse a BFE-style FILES.BBS file, and download
  1730.          files from the list.  Functions exactly as its menu type counterpart.
  1731.          Simply pass the path that the FILES.BBS resides in.  The filename
  1732.          FILES.BBS is assumed at this time.
  1733.  
  1734.          Examples: DownloadList("C:\BFE\NEWFILES");
  1735.                    DownloadList("C:\SUPPORT\BETAFILE");
  1736.  
  1737.  
  1738.  ERROR();
  1739.  
  1740.          Displays a BFE-style error message.
  1741.  
  1742.          Example: Error("Your error message goes here!");
  1743.  
  1744.  
  1745.  ERRORLEVELLOW();
  1746.  
  1747.          Exits the current script and BFE with an errorlevel.  DTR is lowered.
  1748.          (Hangs up on user!)
  1749.  
  1750.          Example: errorlevellow("100");
  1751.  
  1752.  ERRORLEVELHI();
  1753.  
  1754.          Exits the current script and BFE with an errorlevel.  DTR is left
  1755.          high.  (Doesn't hang up on user!)
  1756.  
  1757.          Example: errorlevelhi("100");
  1758.  
  1759.  
  1760.  FLASHFILE();
  1761.  
  1762.           Displays a ANS/ASC/AVT/RIP file with no page pausing.
  1763.  
  1764.  
  1765.  GETKEY();
  1766.  
  1767.          Gets a keystroke from the keyboard and returns the value.
  1768.  
  1769.          Example:  char key;
  1770.                    key = getkey();
  1771.  
  1772.  
  1773.  
  1774.                                                 BFE - The BBS Front End System
  1775.                                                                             35
  1776.  ________________________________________________________________________________
  1777.  
  1778.  GETNUM();
  1779.  
  1780.          Gets and returns a numeric value from the user.
  1781.  
  1782.          Example: int x;
  1783.                   x = getnum();
  1784.  
  1785.  
  1786.  GETRANDOM();
  1787.  
  1788.          Returns a random number from 0 to the passed numeric value.
  1789.  
  1790.          Example:  /* Get a number from 1 to 100 */
  1791.                    int x;
  1792.                    x = getrandom(100);
  1793.                    x = x + 1
  1794.  
  1795.  GOODBYE();
  1796.  
  1797.          Hangs up on the user and exits BFE with an errorlevel of 255.
  1798.  
  1799.          Example: Goodbye();
  1800.  
  1801.  IFEXIST();
  1802.  
  1803.          Returns TRUE if the passed filename exists (no wildcards allowed!)
  1804.  
  1805.          Example:
  1806.                  main() {
  1807.                    int x;
  1808.  
  1809.                    x = ifexist("C:\AUTOEXEC.BAT");
  1810.  
  1811.                    if(x) {
  1812.                      putsnl("AUTOEXEC.BAT exists!");
  1813.                    }
  1814.                    if(x==0) {
  1815.                      putsnl("Error locating AUTOEXEC.BAT!");
  1816.                    }
  1817.                  }
  1818.  
  1819.  LEAVEMSGSDM();
  1820.  
  1821.          Places the user in BFE/Edit using the passed message area number.
  1822.          The "SDM" portion of this command stands for "Star-dot-MSG", or
  1823.          "*.MSG", which is the fidonet standard.
  1824.  
  1825.          Examples: leavemsgsdm(1);
  1826.                          leavemsgsdm(8);
  1827.  
  1828.  
  1829.  
  1830.                                                 BFE - The BBS Front End System
  1831.                                                                             36
  1832.  ________________________________________________________________________________
  1833.  
  1834.  LEAVEMSGSQ();
  1835.  
  1836.          Places the user in BFE/Edit using the passed message area number.
  1837.          The "SQ" portion of this command stands for "Squish", as this
  1838.          function utilizes Scott Dudley's Squish message base format.
  1839.  
  1840.          Examples: leavemsgsq(1);
  1841.                    leavemsgsq(8);
  1842.  
  1843.  MAKEDORINFO();
  1844.  
  1845.          Creates a DORINFO?.DEF dropfile in the passed directory.
  1846.  
  1847.          Example: makedorinfo("C:\BBS\MYDOOR");
  1848.  
  1849.  
  1850.  MAKEDOORSYS();
  1851.  
  1852.          Creates a DOOR.SYS dropfile in the passed directory.
  1853.  
  1854.          Example: makedoorsys("C:\BBS\MYDOOR");
  1855.  
  1856.  
  1857.  MAKESFDOORS();
  1858.  
  1859.          Creates a SFDOORS.DAT dropfile in the passed directory.
  1860.  
  1861.          Example: makesfdoors("C:\BBS\MYDOOR");
  1862.  
  1863.  MENU();
  1864.  
  1865.          Queries the user for a response.  All valid keystrokes are passed as
  1866.          a parameter.  MENU() returns the first valid keystroke.
  1867.  
  1868.          Example: char key;
  1869.  
  1870.                   putsnl("1 - Option 1");
  1871.                   putsnl("2 - Option 2");
  1872.                   putsnl("Q - Quit this script");
  1873.                   key = menu("12Qq");
  1874.  
  1875.  MENULINE();
  1876.  
  1877.          Displays line of text and hotkey, similar to the way BFE handles
  1878.          its default internal menus.  (Text mode only, no RIP!)
  1879.  
  1880.          Example:
  1881.                  clearscreen();
  1882.                  centermsg("Welcome to BFE!");
  1883.                  menuline("Go to WildCAT!", "1");
  1884.                  menuline("Go to Maximus", "2");
  1885.                  menuline("Goodbye", "G");
  1886.                  menu("12PG");
  1887.  
  1888.  
  1889.  
  1890.                                                 BFE - The BBS Front End System
  1891.                                                                             37
  1892.  ________________________________________________________________________________
  1893.  
  1894.  
  1895.  OS_SHELL();
  1896.  
  1897.          Performs a remote (or local) shell to the contents of COMPSEC.
  1898.  
  1899.          Example: os_shell();
  1900.  
  1901.  
  1902.  PAGE();
  1903.  
  1904.          Initiates a page to the sysop.  All hour restrictions are valid!
  1905.  
  1906.          Example: page();
  1907.  
  1908.  PAGENOW();
  1909.  
  1910.          Initiates a page to the sysop.  All hour restrictions are IGNORED!
  1911.  
  1912.          Example: pagenow();
  1913.  
  1914.  PASSWORD();
  1915.  
  1916.          Accepts a password from the user, and compares it to the password
  1917.          which is passed to the function.  Returns TRUE on success, or FALSE
  1918.          if the passwords did not match.
  1919.  
  1920.          Example:
  1921.                  secret_page() {
  1922.                    int x;
  1923.                    x = password("SECRET");
  1924.                    if(x) {
  1925.                      pagenow();
  1926.                    }
  1927.                  }
  1928.  
  1929.  
  1930.  PLAYMUSIC();
  1931.  
  1932.          Plays an ANSI music string on the remote speaker only.
  1933.  
  1934.          Example: PlayMusic("MBT120L4MFMNO4");
  1935.  
  1936.  
  1937.  PRINT();
  1938.  
  1939.          Used to display numeric values.
  1940.  
  1941.          Example: int x;
  1942.                   x = getnum();
  1943.                   print(x);
  1944.  
  1945.  
  1946.  
  1947.                                                 BFE - The BBS Front End System
  1948.                                                                             38
  1949.  ________________________________________________________________________________
  1950.  
  1951.  PUTCH();
  1952.  
  1953.          Puts a single character to the display.
  1954.  
  1955.          Example: putch('*');
  1956.  
  1957.  
  1958.  PUTS();
  1959.  
  1960.          Puts a string to the display (no carriage return/linefeed!).
  1961.  
  1962.          Examples: puts("Testing!");
  1963.                    puts("!|*|");         /* Clear RIP screen! */
  1964.  
  1965.  
  1966.  PUTSNL();
  1967.  
  1968.          Puts a string to the display, and appends a carriage return/linefeed.
  1969.          PUTSNL is short for "put string with a next/line.
  1970.  
  1971.          Example: putsnl("Testing again!");
  1972.  
  1973.  
  1974.  RUNEXTERNAL();
  1975.  
  1976.          Runs an external process.  All "process" macros (%p, %s, %t, %n)
  1977.          are available.
  1978.  
  1979.          Examples: runexternal("DOOR.EXE -p%p -s19200 -t%t -n%n");
  1980.                    runexternal("COMMAND.COM /C del dorinfo1.def");
  1981.  
  1982.  
  1983.  SETCOLOR();
  1984.  
  1985.          Sets the current text attribute.  The following color codes format
  1986.          table is used:
  1987.  
  1988.             {Bright} {Flashing} [Foreground Color] on [Background Color]
  1989.  
  1990.          Where foreground and background colors are one of:
  1991.  
  1992.            Black
  1993.            Blue
  1994.            Green
  1995.            Cyan
  1996.            Red
  1997.            Magenta
  1998.            Yellow / Brown
  1999.            White / Grey
  2000.  
  2001.          Examples: setcolor("bright white on black");
  2002.                    setcolor("flashing bright yellow on blue");
  2003.  
  2004.  
  2005.  
  2006.                                                 BFE - The BBS Front End System
  2007.                                                                             39
  2008.  ________________________________________________________________________________
  2009.  
  2010.  SUBTIME();
  2011.  
  2012.          Subtracts the passed numeric value to the user's total remaining
  2013.          time online.
  2014.  
  2015.          Example: /* This subtracts 5 minutes to the user's time */
  2016.                   subtime(5);
  2017.  
  2018.  
  2019.  TOGGLEANSI();
  2020.  
  2021.          Toggles ANSI graphics on and off.
  2022.  
  2023.          Example: toggleansi();
  2024.  
  2025.  
  2026.  UPLOADFILE();
  2027.  
  2028.          Initiates an upload from the user.
  2029.  
  2030.          Example: Uploadfile();
  2031.  
  2032.  
  2033.  WAIT();
  2034.  
  2035.          Forces BFE to "pause" for the passed number of milliseconds.
  2036.  
  2037.          Example: /* Pause for 5 seconds */
  2038.                   wait(5000);
  2039.  
  2040.  
  2041.  WRITELOG();
  2042.  
  2043.          Used for logging information from BFE/Script.
  2044.  
  2045.          Example: writelog("This is a test!");
  2046.  
  2047.  
  2048.  
  2049.                                                 BFE - The BBS Front End System
  2050.                                                                             40
  2051.  ________________________________________________________________________________
  2052.  
  2053.  BFE REFERENCE SECTION
  2054.  
  2055.  BFE Menu Type Reference
  2056.  ________________________________________________________________________________
  2057.  
  2058.  TYPE: E
  2059.  DESC: Errorlevel Exit (Lower DTR)
  2060.  SCRIPT: ErrorLevelLow();
  2061.  SECONDARY CONTAINS: Valid numeric DOS errorlevel (5-255)
  2062.  ________________________________________________________________________________
  2063.  
  2064.  Specifying an "E" as the type will cause BFE to exit back to the calling
  2065.  batch file with an errorlevel.  This is perhaps one of the more powerful
  2066.  types, as it provides virtually unlimited possibilities.  Simply place the
  2067.  errorlevel you wish to exit with in the SECONDARY FIELD.  As an example,  you
  2068.  could call one BBS with an errorlevel of 100, and another one with an
  2069.  errorlevel of 101, etc.  Basically, as long as you trap the errorlevel in
  2070.  your calling batch file, you could do practically anything! This menu type
  2071.  will lower the DTR of the modem, and hang up on the current user.
  2072.  ________________________________________________________________________________
  2073.  
  2074.  TYPE: 2
  2075.  DESC: Errorlevel Exit
  2076.  SCRIPT: ErrorLevelHi();
  2077.  SECONDARY CONTAINS: Valid numeric DOS errorlevel (0-255)
  2078.  ________________________________________________________________________________
  2079.  
  2080.  This menu type is similar to the menu type "E" above, with one exception: The
  2081.  DTR of the modem will remain high.  This comes in handy when running BFE as a
  2082.  normal door, allowing the user to exit BFE, but return to your BBS or host
  2083.  software.
  2084.  ________________________________________________________________________________
  2085.  
  2086.  TYPE: R
  2087.  DESC: Run an External Process
  2088.  SCRIPT: RunExternal();
  2089.  SECONDARY CONTAINS: Path/filename of external program or batch file
  2090.  ________________________________________________________________________________
  2091.  
  2092.  Specifying an "R" as the type will cause BFE to execute (run) an external
  2093.  process.  This is also an incredibly powerful option, in very much the same
  2094.  way as the "E" type.  The benefit of using "R" over "E" is simple:  You don't
  2095.  have to fiddle with the calling batch file and trapping the errorlevels.  In
  2096.  addition, if the PASSPARMS (described later) option is enabled, BFE will pass
  2097.  the communication parameters on the command line for you.  This feature is
  2098.  unavailable in an "E" type errorlevel exit!  BFE will attempt to swap itself
  2099.  out to memory or disk first, to ensure that you have as much memory as
  2100.  possible to call your task.  If you wish to run a program that requires
  2101.  command line parameters or switches, you can do this in one
  2102.  of two ways.  You can place all of the switches in a batch file, and have BFE
  2103.  call the batch file, or you can make use of the PROCESS field, and its
  2104.  macros.  Your call!
  2105.  
  2106.  
  2107.  
  2108.                                                 BFE - The BBS Front End System
  2109.                                                                             41
  2110.  ________________________________________________________________________________
  2111.  
  2112.  Simply place the name of the external process in the SECONDARY FIELD.  You
  2113.  may specify the full path, or just the filename if it resides in your path or
  2114.  the BFE directory.
  2115.  
  2116.  ** NOTES:  We cannot stop expressing the sheer power of this type!  You can
  2117.  use this to call bulletin doors, message entry doors, Doorway, etc.  BFE
  2118.  works especially well with RegPRO, our full screen online entry form system!
  2119.  :-) It is possible to call a program such as Marshall Dudley's Doorway(tm).
  2120.  In fact, this has been tested and confirmed by several BFE corporate beta
  2121.  sites.  Since BFE passes the port and baud rate to any external processes, it
  2122.  is a cinch.
  2123.  
  2124.  If you experience problems running certain programs via this option, your
  2125.  command line parameters may not be coming across as you think they are. We
  2126.  have included a small program called CMDLINE.EXE, which allows you to "test"
  2127.  your command lines from BFE.  Simply run this program instead of the program
  2128.  in question, and the command line parameters passed to the program will be
  2129.  displayed on your screen.
  2130.  ________________________________________________________________________________
  2131.  
  2132.  TYPE: P
  2133.  DESC: Page Sysop
  2134.  SCRIPT: Page();
  2135.  SECONDARY CONTAINS: N/A
  2136.  ________________________________________________________________________________
  2137.  
  2138.  When the user selects a menu option which has been labeled as a type "P", BFE
  2139.  initiates the sequence of events leading to a chat session with the sysop or
  2140.  current operator.  BFE first checks the paging hours as configured in
  2141.  BFE/Setup (Global Options), and if valid, will prompt the user for a "reason
  2142.  to chat".  If the user simply hits ENTER, then the page attempt is aborted.
  2143.  If the user enters a reason, BFE will begin to page the sysop.  You can break
  2144.  in to chat by pressing CTRL-C at any time.  The reason for chat is also
  2145.  placed into the BFE log file if logging has been enabled.
  2146.  
  2147.  If the user has ANSI or AVATAR graphics mode enabled, BFE will utilize the
  2148.  internal full screen chat mode.  The screen will be split into two
  2149.  partitions, with the user's comments appearing in the top window, and the
  2150.  sysop's comments appearing in the bottom window, each in the respective color
  2151.  as reflected in BFE/Setup.  If the user is using vanilla ASCII/TTY mode, the
  2152.  old line chat mode will be initiated.
  2153.  
  2154.  While in the full screen chat mode, pressing ESC twice on the sysop end will
  2155.  return the user to BFE.
  2156.  ________________________________________________________________________________
  2157.  
  2158.  TYPE: N
  2159.  DESC: Page Sysop (NOW!)
  2160.  SCRIPT: PageNow();
  2161.  SECONDARY CONTAINS: N/A
  2162.  ________________________________________________________________________________
  2163.  
  2164.  
  2165.  
  2166.                                                 BFE - The BBS Front End System
  2167.                                                                             42
  2168.  ________________________________________________________________________________
  2169.  
  2170.  This menu item type functions the same as the type "P" above, with one
  2171.  exception:  No time checks are performed against the configured paging hours
  2172.  from BFE/Setup.  This menu type will *always* initiate a page.
  2173.  ________________________________________________________________________________
  2174.  
  2175.  TYPE: P
  2176.  DESC: Play ANSI Music String (Remote Only!)
  2177.  SCRIPT: PlayMusic()
  2178.  SECONDARY CONTAINS: ANSI music string
  2179.  ________________________________________________________________________________
  2180.  
  2181.  For those who are interested in implementing ANSI music / sounds in their
  2182.  frontend setups, this function is for you.  This menu type will play ANSI
  2183.  music / sounds on the remote system, and not echo the music on the local
  2184.  speaker. This is usually alright, as most often the sysop would not want
  2185.  their computer emitting beeps and playing music at all hours of the day.
  2186.  Future additions for supporting the local speaker may be in order.  It can be
  2187.  called with a string of 1 to 250 characters.  The characters of the string
  2188.  define what sounds should be played:
  2189.  
  2190.     A - G       Musical Notes
  2191.     # or +      Following A-G note means sharp
  2192.     -           Following A-G note means flat
  2193.     <           Move down one octave
  2194.  
  2195.     >           Move up one octave
  2196.  
  2197.     .           Period acts as dotted note (extend note duration by 3/2)
  2198.     MF      Music Foreground (pause until finished playing music)
  2199.     MB     Music Background (continue while music plays)
  2200.     MN     Music note duration Normal (7/8 of interval between notes)
  2201.     MS      Music note duration Staccato
  2202.     ML      Music note duration Legato
  2203.     Ln        Length of note (n=1-64, 1=whole note, 4=quarter note, etc)
  2204.     Pn        Pause length (same n values as Ln above)
  2205.     Tn        Tempo, n=notes/minute (n=32-255, default n=120)
  2206.     On        Octave number (n=0-6, default n=4)
  2207.  
  2208.    As an example of using this menu type/function, consider the following:
  2209.  
  2210.  PlayMusic("MBT120L4MFMNO4C8C8DCFE2C8C8DCGF2C8C8O5CO4AFED2T90B-8B- 8AFGF2");
  2211.  PlayMusic("00m");
  2212.  
  2213.  Which plays the tune "Happy Birthday". :-)  Look for a collection of these
  2214.  tunes coming soon!
  2215.  ________________________________________________________________________________
  2216.  
  2217.  TYPE: A
  2218.  DESC: Toggle ANSI Graphics
  2219.  SCRIPT: ToggleANSI();
  2220.  SECONDARY CONTAINS: N/A
  2221.  ________________________________________________________________________________
  2222.  
  2223.  
  2224.  
  2225.                                                 BFE - The BBS Front End System
  2226.                                                                             43
  2227.  ________________________________________________________________________________
  2228.  
  2229.  This menu type merely allows the current user to switch BFE in and out of
  2230.  ANSI graphics mode.  This option can also be toggled from BFE/Script, via the
  2231.  TOGGLEANSI() function.
  2232.  ________________________________________________________________________________
  2233.  
  2234.  TYPE: 3
  2235.  DESC: Toggle RIP Graphics
  2236.  SCRIPT: ToggleRIP();
  2237.  SECONDARY CONTAINS: N/A
  2238.  ________________________________________________________________________________
  2239.  
  2240.  This menu type merely allows the current user to switch BFE in and out of RIP
  2241.  graphics mode.  This option can also be toggled from BFE/Script, via the
  2242.  TOGGLERIP() function.
  2243.  ________________________________________________________________________________
  2244.  
  2245.  TYPE: 4
  2246.  DESC: Toggle MORE Graphics
  2247.  SCRIPT: ToggleMORE();
  2248.  SECONDARY CONTAINS: N/A
  2249.  ________________________________________________________________________________
  2250.  
  2251.  This menu type merely allows the current user to switch BFE in and out of
  2252.  MORE prompting mode.  When BFE displays a file longer than the screen
  2253.  length, a "more" system of prompting is utilized.  This is great if the user
  2254.  is browsing through some informative text file, but not too hot if you are
  2255.  trying to show ANSI animations, or RIP scenes, which may be quite a big
  2256.  larger.  This option can also be toggled in BFE/Script, via the ToggleMore()
  2257.  function.
  2258.  ________________________________________________________________________________
  2259.  
  2260.  TYPE: O
  2261.  DESC: Shell to Operating System
  2262.  SCRIPT: OS_Shell();
  2263.  SECONDARY CONTAINS: N/A
  2264.  ________________________________________________________________________________
  2265.  
  2266.  For those of you wish to drop to DOS from remote, this is the one!  Simply
  2267.  place an O as the type.  BFE will make use of the COMSPEC enviroment variable
  2268.  to locate your command processor (COMMAND.COM, 4DOS.COM, etc).  To return to
  2269.  BFE, simply type exit at your command prompt.
  2270.  One note is in order here. You may run any program you desire from remote,
  2271.  once you are in the OS shell.  However, keep in mind that unless the program
  2272.  supports DOS routing, then you will not see any output on your screen.  Most
  2273.  command line utilities will work just fine, as well as the internal DOS
  2274.  commands, however, things like Windows, PC-Tools, etc will not function
  2275.  properly, and will more than likely lock your system.  If you enable your
  2276.  fossil watchdog, you should be fine in the event you get hung up.  Check your
  2277.  fossil documentation for more information on the watchdog services.
  2278.  
  2279.  With the inherent power that arrives by shelling to your OS from remote,  you
  2280.  should always password protect this option!
  2281.  ________________________________________________________________________________
  2282.  
  2283.  
  2284.  
  2285.                                                 BFE - The BBS Front End System
  2286.                                                                             44
  2287.  ________________________________________________________________________________
  2288.  
  2289.  
  2290.  TYPE: D
  2291.  DESC: Display a File (ANSI/ASCII/AVATAR/RIP)
  2292.  SCRIPT: DisplayFile();
  2293.  SECONDARY CONTAINS: Path/filename of file (extension optional)
  2294.  ________________________________________________________________________________
  2295.  
  2296.  This nifty type will allow you to display an ANSI, ASCII, AVATAR, or RIP file
  2297.  to the user.  To use this option, simply place the filename of the file to be
  2298.  displayed in the SECONDARY FIELD.  If you do not specify an extension, then
  2299.  BFE will look for the filename which corresponds to the user's graphic
  2300.  settings.  For example, you could create four different screens for your
  2301.  WELCOME screen:
  2302.  
  2303.          WELCOME.ASC
  2304.          WELCOME.ANS
  2305.          WELCOME.AVT
  2306.          WELCOME.RIP
  2307.  
  2308.  In the above example, simply using the filename alone, with no extension, BFE
  2309.  would display the appropriate file.  BFE will "drop down" one level, and
  2310.  attempt to display *something*.  For instance, if the user was RIP capable,
  2311.  and BFE could not locate a RIP version of your file, he will attempt to
  2312.  display the .AVT (AVATAR) version, then the .ANS (ANSI) version, and so on.
  2313.  
  2314.  You may also specify the extension, if you only want one file to be used,
  2315.  such as MYFILE.TXT.  You may specify a full path, or just the filename if the
  2316.  file is in the BFE directory.
  2317.  
  2318.  By default, BFE will automatically engage "more prompting" when displaying
  2319.  screens that are over 1 screen in length, except for when in RIP mode. This
  2320.  setting is toggable via the ToggleMore() function in BFE/Script (More later).
  2321.  
  2322.  ** NOTE: BFE "interprets" the file as it is being displayed to the COM port.
  2323.  It is capable of interpretting embedded system codes used by RemoteAccess.
  2324.  For more information on these codes, please refer to your RA documentation.
  2325.  More embedded code schemes, such as WildCat! and PCBoard will be added in
  2326.  future releases.
  2327.  ________________________________________________________________________________
  2328.  
  2329.  TYPE: 5
  2330.  DESC: FlashFile
  2331.  SCRIPT: FlashFile();
  2332.  SECONDARY CONTAINS: Path/filename of file to be displayed
  2333.  ________________________________________________________________________________
  2334.  
  2335.  Functions the same as the type "D" above, but with no page pausing.
  2336.  
  2337.  
  2338.  
  2339.                                                 BFE - The BBS Front End System
  2340.                                                                             45
  2341.  ________________________________________________________________________________
  2342.  
  2343.  TYPE: F
  2344.  DESC: Download a File
  2345.  SCRIPT: DownloadFile();
  2346.  SECONDARY CONTAINS: Path/filename of file to be downloaded
  2347.  ________________________________________________________________________________
  2348.  
  2349.  This type will allow the user to download a file (ratio free) from BFE,
  2350.  without having to log onto your BBS first.  This is particularly handy,
  2351.  especially if you are a shareware author, as you can offer the latest
  2352.  versions of your products up front.  Trust me when I say that your long
  2353.  distance users will admire you for this!  Simply place the filename to be
  2354.  downloaded in the SECONDARY FIELD.  You may specify a full path, or just the
  2355.  filename if the file is in the BFE directory.
  2356.  
  2357.  When the user selects this option, BFE will present a list of available
  2358.  protocols (configured via the PROTOCOL EDITOR in BFE/Setup).
  2359.  ________________________________________________________________________________
  2360.  TYPE: U
  2361.  DESC: Upload a File
  2362.  SCRIPT: UploadFile();
  2363.  SECONDARY CONTAINS: N/A
  2364.  ________________________________________________________________________________
  2365.  
  2366.  This menu type is very similar to the type "F" above, only it allows your
  2367.  users to upload files to your system rather than downloading them.  In
  2368.  addition, if the protocol in which the user has selected has been setup to
  2369.  "Prompt for Filename", then BFE will prompt for this information, and pass it
  2370.  to the protocol dispatcher (once again, configured in the PROTOCOL EDITOR in
  2371.  BFE/Setup).
  2372.  ________________________________________________________________________________
  2373.  
  2374.  TYPE: M
  2375.  DESC: Download file from a list
  2376.  SCRIPT: DownloadList();
  2377.  SECONDARY CONTAINS: Path of FILES.BBS to use for listing
  2378.  ________________________________________________________________________________
  2379.  
  2380.  This type is very similar to the "F" type, with one exception.  Instead of
  2381.  downloading a specific file, the user will be presented with a list of the
  2382.  available files, from which he/she may choose the file to be downloaded.  In
  2383.  order to use this type, a "files list" must be created, and the full path to
  2384.  the list must be placed in the SECONDARY FIELD.
  2385.  
  2386.  This list should be in the following format:
  2387.  ---------------------------[ CUT HERE! ]---------------------------------
  2388.  
  2389.                  Cairo Research Labs Free File List
  2390.  
  2391.  D:\CAIRO\AVLAB100.ZIP AVLab v1.0 - Antiviral Researcher's Toolkit!
  2392.  D:\CAIRO\RCS10A.LZH   Netmail Robot Construction Set v1.0a
  2393.  D:\CAIRO\RP_260.LZH   RegPRO v2.60 - The Premier Questionnaire Door!
  2394.  D:\CAIRO\TBM_250.LZH  Turbo Bulletin Manager Door v2.50
  2395.  
  2396.  
  2397.  
  2398.                                                 BFE - The BBS Front End System
  2399.                                                                             46
  2400.  ________________________________________________________________________________
  2401.  
  2402.  D:\CAIRO\VID201.ZIP   VID v1.10 - Virus Information Door D:\CAIRO\VP0793.ZIP
  2403.  Updated VID Virus Database - as of March 1993
  2404.  D:\BETA\RP_300B.LZH   Beta version of the upcoming RegPRO 3.0 release!
  2405.  
  2406.  ---------------------------[ CUT HERE! ]---------------------------------
  2407.  
  2408.  As you can see, this is a modified version of the standard FILES.BBS, with
  2409.  the only difference being that the full path to each file needs to be
  2410.  present. This provides a nifty way of pulling files from all over your system
  2411.  to a single file download menu.  In this way, you need not use any of the
  2412.  FILES.BBS files that your BBS uses, you can create a custom one and place it
  2413.  in another directory, such as the BFE directory.  Any line which does not
  2414.  start in column one is considered a comment line, and will be displayed in
  2415.  the appropriate attribute (as configured in BFE/Setup).
  2416.  
  2417.  All that is needed in the secondary field is the PATH to the FILES.BBS, not
  2418.  the entire path/filename.  The name FILES.BBS is assumed.
  2419.  
  2420.  Once again, the user will be presented with a list of available protocols
  2421.  which are defined in the PROTOCOL EDITOR.
  2422.  ________________________________________________________________________________
  2423.  TYPE: J
  2424.  DESC: Jump to another menu (.CTL file)
  2425.  SCRIPT: N/A
  2426.  SECONDARY CONTAINS: Path and filename of new .CTL file
  2427.  ________________________________________________________________________________
  2428.  
  2429.  Through the use of the "J" type, you can have BFE call a completely different
  2430.  .CTL file!  This is handy when you need to group several options together:
  2431.  
  2432.    For example:
  2433.                            Top Menu (MAIN.CTL)
  2434.                            -       -
  2435.                            -       -
  2436.     Sysop Menu (SYS.CTL)<---       ----> Product Info (PROD.CTL)
  2437.  
  2438.  Menus can be nested up to 10 levels.  If you try to go beyond this, BFE will
  2439.  simply post a warning message and re-display the current active menu.
  2440.  Although we feel that 10 levels of menu nesting is quite adequate for a BBS
  2441.  front end, this will more than likely become limited only by available memory
  2442.  in the future.
  2443.  ________________________________________________________________________________
  2444.  
  2445.  TYPE: X
  2446.  DESC: Return from a jump
  2447.  SCRIPT: N/A
  2448.  SECONDARY CONTAINS: N/A
  2449.  ________________________________________________________________________________
  2450.  
  2451.  Use this option to provide a method of returning from a subordinate .CTL file
  2452.  menu back to the .CTL file menu that called it.
  2453.  
  2454.  
  2455.  
  2456.                                                 BFE - The BBS Front End System
  2457.                                                                             47
  2458.  ________________________________________________________________________________
  2459.  
  2460.  TYPE: T
  2461.  DESC: Return to main menu
  2462.  SCRIPT: N/A
  2463.  SECONDARY CONTAINS: N/A
  2464.  ________________________________________________________________________________
  2465.  
  2466.  This menu type simply provides a hook from returning to the original .CTL
  2467.  file menu (i.e. the one that BFE started with initially), from any level of
  2468.  nesting.  A short cut, if you will.
  2469.  ________________________________________________________________________________
  2470.  
  2471.  TYPE: S
  2472.  DESC: Run a BFE Script Program
  2473.  SCRIPT: N/A
  2474.  SECONDARY CONTAINS: Path and filename of script to execute
  2475.  ____________________________________________________________
  2476.  
  2477.  BFE has an internal script processor called BFE/Script.  You can create
  2478.  scripts to do just about anything!  An overview of the BFE/Script system
  2479.  appears later in this manual.
  2480.  ________________________________________________________________________________
  2481.  TYPE: L
  2482.  DESC: Enter a Message (*.MSG format)
  2483.  SCRIPT: LeaveMsgSDM();
  2484.  SECONDARY CONTAINS: Number of message area to use
  2485.  ________________________________________________________________________________
  2486.  
  2487.  BFE contains an internal line editor called BFE/Edit.  You may configure any
  2488.  of your menu options to have the user enter a message through the use of the
  2489.  internal editor.  The secondary field should contain the "number" of the
  2490.  message area to use.  This number corresponds directly to the list of message
  2491.  areas which appears by selecting MESSAGE BASES from the main menu of
  2492.  BFE/Setup.
  2493.  ________________________________________________________________________________
  2494.  
  2495.  TYPE: B
  2496.  DESC: Enter a Message (Squish format)
  2497.  SCRIPT: LeaveMsgSQ();
  2498.  SECONDARY CONTAINS: Number of message area to use
  2499.  ________________________________________________________________________________
  2500.  
  2501.  Functions identically to the type "L" menu type (above), but uses Squish
  2502.  compatible echomail areas.
  2503.  ________________________________________________________________________________
  2504.  
  2505.  TYPE: G
  2506.  DESC: Goodbye (Log off)
  2507.  SCRIPT: Goodbye();
  2508.  SECONDARY CONTAINS: N/A
  2509.  ________________________________________________________________________________
  2510.  
  2511.  This type is fairly straightforward!  It hangs up on the user, and returns an
  2512.  errorlevel of 255 to the calling batch file.
  2513.  
  2514.  
  2515.  
  2516.                                                 BFE - The BBS Front End System
  2517.                                                                             48
  2518.  ________________________________________________________________________________
  2519.  
  2520.  BFE USER SYSTEM
  2521.  
  2522.  Although BFE is an extremely powerful software package, initial releases
  2523.  lacked the ability to adequately inform the sysop of the exactly *who* the
  2524.  online user was, if BFE was being run in front end mode (i.e. without a BBS
  2525.  dropfile).  Once again, we listened and implemented a very powerful solution!
  2526.  
  2527.  As of v2.00, BFE now includes an optional user system.  This system allows
  2528.  BFE to effectively keep track of all of your system's users.  When enabled,
  2529.  BFE will perform any enabled graphics detection schemes, and will proceed to
  2530.  place the user into the logon screen.  There, the user will enter his/her
  2531.  name, followed by their password.
  2532.  
  2533.  BFE maintains a file called USER.BFE in the BFE directory.  This file
  2534.  contains the user information for all users in the system.  The format of
  2535.  this user file can be found in the BFE developer's kit, available separately.
  2536.  
  2537.  If a user's name is not found in the user file, they will be prompted to
  2538.  enter their location and a password to use in subsequent logins to BFE.
  2539.  Their initial access level is set to zero (0).
  2540.  
  2541.  The BFE User System also has the ability to support multiple users who share
  2542.  the same name.
  2543.  
  2544.  You may set the user system to function in one of three modes: FULL, PARTIAL,
  2545.  and NONE.  The FULL mode will prompt the user for the name and password, and
  2546.  will maintain the users in the USER.BFE file.  The PARTIAL mode will only
  2547.  prompt the user for their name, and will continue, without maintaining a user
  2548.  file at all.  The NONE mode will disable the user system completely.  To run
  2549.  in FULL mode, place an "F" in the USER SYSTEM field in BFE/Setup.  To run in
  2550.  PARTIAL mode, use a "P".  Use a "N" to disable the user system.
  2551.  
  2552.  Keep in mind that if you enable the user system in either FULL or PARTIAL
  2553.  modes, this overrides BFE's ability to look for a dropfile upon entry!  In
  2554.  other words, this feature was designed to be used when BFE is being utilized
  2555.  as a true front end, not a door!
  2556.  
  2557.  There are two files which also relate directly to the BFE User System.  The
  2558.  first, the Logon File, is shown to BFE callers right before they are asked
  2559.  for their name.  The second file, the Newuser File, is displayed to new users
  2560.  after BFE gets their name and location, but right before they are prompted
  2561.  for a password to use.
  2562.  
  2563.  A few notes on access levels are in order.  The first is a carry over from
  2564.  Maximus CBCS, but a nifty feature all the same.  If a user has an access
  2565.  level of -2, BFE will simply hang up on the user as soon as they enter their
  2566.  name!  This is similar to the "twit" user level in Maximus, thus, this
  2567.  feature is dubbed the "twitted" logon.
  2568.  
  2569.  Also, BFE does not have a "userbase" editor of any type.  The userfile which
  2570.  is used is generated by third party userfile conversion utilities.  We have
  2571.  provided a MAX2BFE.EXE program which will convert the Maximus CBCS userbase
  2572.  into the USER.BFE format used by BFE.  Userbase conversion programs should be
  2573.  
  2574.  
  2575.  
  2576.                                                 BFE - The BBS Front End System
  2577.                                                                             49
  2578.  ________________________________________________________________________________
  2579.  
  2580.  run nightly, or after new callers hang up, so that BFE will always have the
  2581.  latest copy of your userbase.  Since the user will be going through the
  2582.  newuser loops once he or she hits the BBS, there is no reason to have yet
  2583.  another user editor for BFE.  We feel that this concept is more than
  2584.  efficient for practical use.  Information necessary for the development of
  2585.  third party userfile conversions can be found in the BFE Developer's Kit,
  2586.  included with the distribution archive.  If you put together a convertor for
  2587.  your brand of BBS, send it on to us for possible inclusion in later releases!
  2588.  
  2589.  GLOBALACCESS(tm) COMMANDS
  2590.  
  2591.  There will be times when you will want to offer certains options from *all*
  2592.  of your BFE menus (i.e. Sysop pager, goodbye, etc).  Through the use of the
  2593.  GlobalAccess(tm) system, this is now possible in BFE.  To enable this
  2594.  feature, simply create a new menu .CTL file called GLOBAL.CTL.  Place all of
  2595.  your global options in this menu and save it.  When BFE is executed, this
  2596.  file is read in automatically, and all of the options contained in it are
  2597.  "appended" to the contents of your regular menus.  Voila!
  2598.  
  2599.  SLASHCOMMAND(tm) TECHNOLOGY
  2600.  
  2601.  BFE not only supports hotkey menuing, but also SlashCommands.  Any menu item
  2602.  can become a SlashCommand by simply entering the name of the slash command in
  2603.  the DESCRIPTION field, separated from the actual description by a pipe sign
  2604.  (|).
  2605.  
  2606.  BFE LANGUAGE FILE
  2607.  
  2608.  In order to further allow the user to customize the operation of BFE, an
  2609.  external "language" file has been implemented.  This file is a simple text
  2610.  file, which contains a series of keywords and text fields.
  2611.  
  2612.  Quite a bit of BFE's internal text messages can be customized!  Upon startup,
  2613.  BFE looks for a file called BFE.LNG (The BFE Language File).  The format of
  2614.  this file is relatively simple:
  2615.  
  2616.          KEYWORD <Language Text>
  2617.  
  2618.  All lines starting with a semicolon (;) are treated as comments and are
  2619.  ignored.  Each line should be no longer than 80 characters (including the
  2620.  keyword!).
  2621.  
  2622.  Macro keys available:   ~ = carriage return/linefeed pair
  2623.                          _ = Blank (space)
  2624.  
  2625.  The following language keywords are available to you:
  2626.  
  2627.  BEFORECHAT
  2628.  Shown if the sysop initiates a chat session
  2629.  
  2630.  AFTERCHAT
  2631.  Shown when the sysop closes a chat session
  2632.  
  2633.  
  2634.  
  2635.                                                 BFE - The BBS Front End System
  2636.                                                                             50
  2637.  ________________________________________________________________________________
  2638.  
  2639.  BEFORESHELL
  2640.  Shown when the sysop shells to DOS locally
  2641.  
  2642.  AFTERHSHELL
  2643.  Shown when the sysop returns from a local DOS shell
  2644.  
  2645.  
  2646.  CHATREASON
  2647.  Displayed when BFE is asking for a reason to page
  2648.  
  2649.  CONTINUE
  2650.  General continuation message (i.e. Continue [Y/N/=])
  2651.  
  2652.  TIMEOUT
  2653.  Shown when the user has an inactivity timeout
  2654.  
  2655.  NOTAVAIL
  2656.  Shown when the user pages the sysop, and you are not in!
  2657.  
  2658.  NORESPONSE
  2659.  Shown after an unsuccessful paging attempt
  2660.  
  2661.  OUTTATIME
  2662.  Shown when the user has reached his timelimit in BFE
  2663.  
  2664.  OFFLINE
  2665.  Shown when browsing FILES.BBS for files that are offline
  2666.  
  2667.  PAGINGMSG
  2668.  Shown while BFE is paging the sysop
  2669.  
  2670.  PRESSKEY
  2671.  General "press ENTER to continue" message
  2672.  
  2673.  PROMPT
  2674.  Menu selection prompt
  2675.  
  2676.  DEFUSERNAME
  2677.  Default name to use when BFE doesn't know who the user is
  2678.  
  2679.  DEFUSERLOC
  2680.  Default location to use when BFE doesn't know who the user is
  2681.  
  2682.  ENTERMSGTXT
  2683.  Shown at the top of the BFE/Editor screen
  2684.  
  2685.  SLASHCMDTXT
  2686.  Prompt used when a user initiates a slash command
  2687.  
  2688.  HANGONMSG
  2689.  Shown when BFE is exiting on an errorlevel
  2690.  
  2691.  
  2692.  
  2693.                                                 BFE - The BBS Front End System
  2694.                                                                             51
  2695.  ________________________________________________________________________________
  2696.  
  2697.  ROCKHEADTXT
  2698.  Logged when a user botches the BFE login procedure
  2699.  
  2700.  BADPASSWORD
  2701.  Logged when a user fails at a BFE menu password
  2702.  
  2703.  TWITLOGON
  2704.  Logged when a "twitted" user tries to log in
  2705.  
  2706.  LOGINPROMPT
  2707.  Default "login" prompt
  2708.  
  2709.  Additional textual customization features will be added to this .LNG file as
  2710.  the product grows. Currently, this feature is only enabled in registered
  2711.  versions of BFE.  See the BFE.LNG file which came packed in the BFE archive
  2712.  for starter examples.
  2713.  
  2714.  USING BFE WITH DROPFILES
  2715.  
  2716.  If BFE locates an enabled Dropfile path in your global options, it will
  2717.  attempt to make use of a BBS dropfile, effectively ignoring any relevant
  2718.  command line communication arguments.  If you wish to run BFE as a normal
  2719.  door from your BBS, you will need to specify a valid path for this option in
  2720.  BFE/Setup.  If you are running BFE as a front-end to your system (i.e. called
  2721.  from a mailer), do *not* put a path in the dropfile directory field!
  2722.  
  2723.  It appears that the BBS world simply cannot agree on a standard dropfile
  2724.  format.  For a while, it appeared as if the DORINFOx.DEF, or perhaps the
  2725.  DOOR.SYS format would prevail.  However, with the release of RemoteAccess
  2726.  v2.0+, that myth has apparently been shattered, as the RA author decided to
  2727.  introduce yet another dropfile format.  We will continue to add and support
  2728.  all of the popular dropfile formats, regardless of how hairy it gets... :-)
  2729.  
  2730.  BFE by default does not look for a BBS dropfile, since it was originally
  2731.  designed to be run as a frontend (i.e. *BEFORE* the user had actually logged
  2732.  on to the BBS).
  2733.  
  2734.  As of v1.22 of BFE, a "smart" method of dropfile detection has been employed.
  2735.  BFE first looks in the current directory for the dropfile.  If it is not
  2736.  there, it looks in the DOS path.  If the dropfile mode is enabled, and BFE
  2737.  can not locate a dropfile, it will not run!
  2738.  
  2739.     1.) First, if there was a custom door information file format
  2740.         defined in the CUSTOM.BFE file, BFE will begin by looking for
  2741.         this file. BFE searches for the custom information file in the
  2742.         following order:
  2743.  
  2744.               A.) The path defined by the BBS Directory option
  2745.               B.) The directory which was the current default dir at
  2746.                   startup time
  2747.               C.) If any of the following environment variables exist,
  2748.                   BFE will then search for the file in the directories
  2749.                   pointed to by these variables, in the following order:
  2750.  
  2751.  
  2752.  
  2753.                                                 BFE - The BBS Front End System
  2754.                                                                             52
  2755.  ________________________________________________________________________________
  2756.  
  2757.  
  2758.                                RA
  2759.                                QUICK
  2760.                                PCB
  2761.                                BBS
  2762.  
  2763.     2.) If no custom door information file was found / defined, BFE will
  2764.         then search for door information files corresponding to one of
  2765.         the built in formats. It will search for these files in the same
  2766.         directories, and same order, as it does for the custom door
  2767.         information file (A - C). Within each directory, it will
  2768.         search for files with the following filenames:
  2769.  
  2770.                           CHAIN.TXT
  2771.                           SFDOORS.DAT
  2772.                           DOOR.SYS
  2773.                           CALLINFO.BBS
  2774.                           DORINFO1.DEF
  2775.                           DORINFOx.DEF, where x is the node number (0-Z)
  2776.  
  2777.  As soon as it finds a directory containing one of these filenames, BFE will
  2778.  stop it's door information file search phase. It then begins to decide what
  2779.  to do with what it has found. If more than one of the above filenames was
  2780.  found in the directory in question, BFE will read the file with the most
  2781.  recent date and time stamp. This is intended to overcome abiguities that can
  2782.  arise when a door information file conversion program is being used, and a
  2783.  number of different door information files may still exist in the directory.
  2784.  In such a case, it is assumed that the most recently created file is the one
  2785.  that should be used. If more than one file exist with an identical date and
  2786.  time, BFE will use the file that is closer to the beginning of the above
  2787.  list. (ie they are listed in their order of priority)
  2788.  
  2789.  Once BFE has decided which file it is going to use, it may have still more
  2790.  decision-making to do. In the case of door information file names that
  2791.  correspond to more than one format (such as DOOR.SYS), BFE will examine the
  2792.  file to determine which format it actually is. If a DORINFO?.DEF file is
  2793.  found, BFE will then also attempt a search for an EXITINFO.BBS file.  Again,
  2794.  if an EXITINFO.BBS file is found, BFE must determine which of the many
  2795.  EXITINFO.BBS formats it is actually dealing with.
  2796.  
  2797.  This may all sound rather complicated, but it is a well thought-out strategy
  2798.  that is intended to asure that the correct door information file will be
  2799.  located and used in the vast majority of cases. (and to think - it does all
  2800.  this in the blink of an eye!)
  2801.  
  2802.  As of v1.22, BFE recognizes the following dropfile formats:
  2803.  
  2804.          DORINFOx.DEF (Standard DORINFOx.DEF Drop file (Default))
  2805.          EXITINFO.BBS (RA v.01 - v.04)
  2806.          EXITINFO.BBS (Extended (RA v1.0+))
  2807.          EXITINFO.BBS (RemoteAccess 2.0+ style)
  2808.          CHAIN.TXT    (WWIV)
  2809.          SFDOORS.DAT  (SpitFire BBS)
  2810.  
  2811.  
  2812.  
  2813.                                                 BFE - The BBS Front End System
  2814.                                                                             53
  2815.  ________________________________________________________________________________
  2816.  
  2817.          CALLINFO.BBS (WildCat!)
  2818.          DOOR.SYS     (GAP/PC-Board)
  2819.          DOOR.SYS     (Doorway version)
  2820.          QBBS 2.75+   (EXITINFO.BBS)
  2821.          DOOR.SYS     (WildCat! style)
  2822.          Custom       (See the next section!)
  2823.  
  2824.  CUSTOM BBS DROPFILES
  2825.  
  2826.  BFE automatically recognizes most door information file (drop file) formats,
  2827.  including DORINFO?.DEF, EXITINFO.BBS, DOOR.SYS, SFDOORS.DAT, CALLINFO.BBS and
  2828.  CHAIN.TXT. However, to permit BFE to operate on BBS systems that produce a
  2829.  different format file, you may define a custom door information file format.
  2830.  A custom door information file format is defined using the "CustomFileName"
  2831.  command, followed by one or more lines beginning with the "CustomFileLine"
  2832.  command.  This file *must* be called CUSTOM.BFE!
  2833.  
  2834.  The "CustomFileName" option specifies the filename used to distinguish this
  2835.  file format from other file formats. This filename should not include a path.
  2836.  To specify the path where the door information file is located, use the
  2837.  BBSDir setting, near the beginning of this file. If the filename of the
  2838.  custom format is the same as that of one of the built-in formats, the custom
  2839.  format will override the built-in format.
  2840.  
  2841.  The actual format of the custom file is specified using a number of lines
  2842.  that begin with the keyword "CustomFileLine". Each of these lines will
  2843.  correspond to a single line in the door information file, with the option
  2844.  following the "CustomFileLine" keyword specifying the information that can be
  2845.  found on that line. This can be one of the following keywords:
  2846.  
  2847.  Ignore - Causes the next line in the door information file to be
  2848.           ignored. Use on lines for which none of the options below
  2849.           apply.
  2850.  
  2851.  ComPort - COM? port the modem is connected to (0 indicates local mode)
  2852.  
  2853.  FossilPort - Fossil port number the modem is connected to
  2854.  
  2855.  ModemBPS - BPS rate at which to communicate with modem (0 or non-
  2856.             numerical value indicates local mode)
  2857.  
  2858.  LocalMode - 1, T or Y if door is operating in local mode
  2859.  
  2860.  UserName - Full name of the user
  2861.  
  2862.  UserFirstName - First name(s) of the user
  2863.  
  2864.  UserLastName - Last name of the user
  2865.  
  2866.  Alias - The user's psuedonym / handle
  2867.  
  2868.  HoursLeft - Hours user has left online
  2869.  
  2870.  
  2871.  
  2872.                                                 BFE - The BBS Front End System
  2873.                                                                             54
  2874.  ________________________________________________________________________________
  2875.  
  2876.  MinutesLeft - Minutes user has left online, or time left online in
  2877.                format hh:mm
  2878.  
  2879.  SecondsLeft - Seconds user has left online, or time left online in
  2880.                format hh:mm:ss or format mm:ss (If more than one of the
  2881.                above time options are used, the user time left is taken
  2882.                to be the total of all of these values.)
  2883.  
  2884.  ANSI - 1, T, Y or G for ANSI graphics mode
  2885.  
  2886.  AVATAR - 1, T or Y for AVATAR graphics mode
  2887.  
  2888.  PagePausing - 1, T or Y if user wishes a pause at end of screen
  2889.  
  2890.  ScreenLength - Number of lines on user's screen
  2891.  
  2892.  ScreenClearing - 1, T or Y if screen clearing mode is on
  2893.  
  2894.  Security - The user's security level / access level
  2895.  
  2896.  City - City the user is calling from
  2897.  
  2898.  Node - Node number user is connected to
  2899.  
  2900.  SysopName - Full name of the sysop
  2901.  
  2902.  SysopFirstName - The sysop's first name(s)
  2903.  
  2904.  SysopLastName - The sysop's last name
  2905.  
  2906.  SystemName - Name of the BBS
  2907.  
  2908.  A sample CUSTOM.BFE is outlined below.  This example designs a custom
  2909.  dropfile template which emualtes the standard DORINFO?.DEF file.
  2910.  
  2911.  CustomFileName    EXAMPLE.DEF           ; File name to look for!
  2912.  CustomFileLine    SystemName
  2913.  CustomFileLine    SysopFirstName
  2914.  CustomFileLine    SysopLastName
  2915.  CustomFileLine    ComPort
  2916.  CustomFileLine    ModemBPS
  2917.  CustomFileLine    Ignore
  2918.  CustomFileLine    UserFirstName
  2919.  CustomFileLine    UserLastName
  2920.  CustomFileLine    City
  2921.  CustomFileLine    ANSI
  2922.  CustomFileLine    Security
  2923.  CustomFileLine    MinutesLeft
  2924.  
  2925.  CONVCTL .CTL FILE CONVERTOR
  2926.  
  2927.  Included with the distribution archive is a program called CONVCTL.EXE.  This
  2928.  program will convert your existing BFE .CTL files to the latest format.
  2929.  
  2930.  
  2931.  
  2932.                                                 BFE - The BBS Front End System
  2933.                                                                             55
  2934.  ________________________________________________________________________________
  2935.  
  2936.  ** Be warned, that this program only converts .CTL files from the last public
  2937.  release of BFE (1.41.0p).  It will also attempt to convert *any* file ending
  2938.  in .CTL!!!  If you have installed BFE in its own directory, you should not
  2939.  have any problems, however, some users tend to install BFE in their mailer or
  2940.  BBS directory.  THIS could have *disastrous* effects, as there are quite a
  2941.  lot of other packages which use files ending in .CTL!!!!  When in doubt,
  2942.  simply move all of your BFE .CTL files to a temporary directory, and run
  2943.  CONVCTL.EXE in this temporary area.
  2944.  
  2945.  SAMPLE SYSTEM SETUPS
  2946.  
  2947.  Included in the distribution archive are a number of sample setups which have
  2948.  been provided by some of our beta sites.  We hope that these sample
  2949.  configurations will prove valuable to you, as you are able to see actual
  2950.  configurations which have been running on real systems.
  2951.  
  2952.  KLINGON.ZIP
  2953.  
  2954.  This particular sample comes to us from the Klingon Bird of Prey BBS, run by
  2955.  Robert Ferguson.  Sci-fi to the max is what this setup proves.  Very
  2956.  interesting!
  2957.  
  2958.  SS&S.ZIP
  2959.  
  2960.  This setup was provided by Chris Koziol at the Sun, Surf, and Serenity BBS
  2961.  system in Chicago.  A very interesting business like approach.
  2962.  
  2963.  
  2964.  
  2965.                                                 BFE - The BBS Front End System
  2966.                                                                             56
  2967.  ________________________________________________________________________________
  2968.                           
  2969.  DOOR OPERATION
  2970.  
  2971.  BFE Command Line
  2972.  
  2973.  BFE accepts the following command line parameters (in any order):
  2974.  
  2975.  -p(Port)
  2976.  0,1,2,3,or 4 (COM1, COM2, etc)
  2977.  
  2978.  -s(Serial speed)
  2979.  Self explanatory! (0, 300, 1200, etc)
  2980.  
  2981.  -c(Control File Path)
  2982.  Path/filename of your main .CTL file!
  2983.  
  2984.  -t(Time to next event)
  2985.  The time until the next mailer event
  2986.  
  2987.  -n(node number)
  2988.  The node number of the BBS
  2989.  
  2990.  -f
  2991.  Forces ANSI in local mode
  2992.  
  2993.  -l
  2994.  Locks port with value passed in -s & -p
  2995.  
  2996.  -z
  2997.  Performs a "sanity check" on your setup!
  2998.  
  2999.  You can run BFE in local mode by passing "-p0 -s0" as the port and speed. Of
  3000.  course, if you are using a dropfile, these values are meaningless once again,
  3001.  therefore your dropfile must be configured for local use (Or blank out the
  3002.  Dropfile Path option in the Global Options in BFE/Setup!).
  3003.  
  3004.  SYSOP KEYS
  3005.  
  3006.  There are several options available to the Sysop while the user is in the BFE
  3007.  Door.  These options and hotkeys differ from BBS "personality" to
  3008.  "personality".  BFE currently supports 3 BBS personalities (RemoteAccess
  3009.  2.0x, WildCat!, and the default style).  For more information on the RA and
  3010.  WildCat! hotkeys, consult the documentation which accompanied the BBS software.
  3011.  
  3012.  DEFAULT SYSOP HOTKEYS
  3013.  
  3014.  [UP/DOWN]
  3015.  Use the arrow keys to increase or decrease the amount of time which the user
  3016.  has left in the door.
  3017.  
  3018.  
  3019.  
  3020.  
  3021.                                                 BFE - The BBS Front End System
  3022.                                                                             57
  3023.  ________________________________________________________________________________
  3024.  
  3025.  [Alt]-[C]
  3026.  
  3027.  Allows the sysop to break into chat with the user at any time. [Alt]-[C]
  3028.  again, or [ESC] will end chat mode. (Notice that the Want-Chat indicator will
  3029.  also be turned off, if it was flashing. If you are running under Apex,
  3030.  RemoteAccess or QuickBBS, paging from within the door will even cause the
  3031.  Want-Chat indicator to stay lit when the user returns to the BBS)
  3032.  
  3033.  [Alt]-[J]
  3034.  Allows the sysop to shell to DOS, if enough memory is available. Simply type
  3035.  EXIT to return to the door again.
  3036.  
  3037.  [Alt]-[H]
  3038.  Hang up on the user. Plain and simple!
  3039.  
  3040.  [Alt]-[L]
  3041.  This key locks the user out of the BBS. It first hangs up on the user, and
  3042.  then sets their security level to 0, to prevent them from ever logging on
  3043.  again. This feature may require use of the EXITINFO.BBS file, depending on
  3044.  what system BFE is running under.
  3045.  
  3046.  [Alt]-[K]
  3047.  The "User Keyboard-Off" key allows the sysop to temporarily prevent the user
  3048.  from typing anything on their keyboard. This has no effect on the local
  3049.  keyboard, but causes BFE to ignore any keystrokes from remote.
  3050.  
  3051.  [Alt]-[N]
  3052.  The "Sysop Next" key, this function reserves the system for use by the sysop
  3053.  after the user logs off, if BFE is running under an Apex or RA 1.00 or later
  3054.  system.
  3055.  
  3056.  [Alt]-[D]
  3057.  "Drop to BBS" key. This function allows the sysop to exit BFE and return the
  3058.  user to the BBS, without hanging up.
  3059.  
  3060.  [F1]
  3061.  Display basic user information (default)
  3062.  
  3063.  [F9]
  3064.  Display help information for sysop
  3065.  
  3066.  [F10]  Turn off the status line
  3067.  
  3068.  MULTINODE/MULTIUSER OPERATION
  3069.  
  3070.  BFE is quite capable of running on multinode systems, and in fact, does it
  3071.  quite adeptly.  Special care has been given to ensure 100% multinode
  3072.  compatibility.  If you happen to experience problems running BFE on a
  3073.  multinode machine, please contact us if you are unable to resolve the
  3074.  problem.
  3075.  
  3076.  For smoother operations on multinode setups, ensure that the DOS SHARE.EXE
  3077.  program is running!
  3078.  
  3079.  
  3080.  
  3081.                                                 BFE - The BBS Front End System
  3082.                                                                             58
  3083.  ________________________________________________________________________________
  3084.  
  3085.  A brief description on how BFE handles node numbers is in order.  By default,
  3086.  BFE will use the value of the NODE field in BFE/Setup.  This value can be
  3087.  overridden on the command line via the "-n" switch.
  3088.  
  3089.  If a dropfile path has been specified in BFE/Setup, the node number has an
  3090.  effect on the number of the DORINFO?.DEF file used to run BFE.  (i.e. Node 1
  3091.  is DORINFO1.DEF, and Node Z is DORINFOZ.DEF).
  3092.  
  3093.  If no node number is specified in either BFE/Setup or on the BFE command
  3094.  line, Node #1 will be used for compatibility, primarily on single line
  3095.  systems.
  3096.  
  3097.  DIGIBOARD COMPATIBILITY
  3098.  
  3099.  BFE will run on systems which utilize DigiBoard communication cards.  To do
  3100.  so, however, you will need to pick up the latest version of the DigiBoard
  3101.  Fossil Driver.  As of this release, the latest version of DigiFos is v1.3,
  3102.  and is available as DIGFOS13.LZH on our support BBS (FREQ's welcome).
  3103.  
  3104.  RESERVED ERRORLEVELS
  3105.  
  3106.  The following is a list of the reserved errorlevels used by BFE and a brief
  3107.  description of each:
  3108.  
  3109.  Errorlevel #       Description
  3110.  ________________________________________________________________________________
  3111.  
  3112.       0                  Critical error has occurred
  3113.       1                  Carrier lost, user off-line!
  3114.       2                  Sysop terminated the call, user off-line! :-)
  3115.       3                  User time used up, user STILL ON-LINE!
  3116.       4                  Keyboard inactivity timeout, user off-line
  3117.       5                  "Twit" user has logged on, user off-line
  3118.       6                  User botched the logon procedure, user off-line
  3119.     255                User exiting door via GOODBYE menu type
  3120.  ________________________________________________________________________________
  3121.  
  3122.  
  3123.  
  3124.                                                 BFE - The BBS Front End System
  3125.                                                                             59
  3126.  ________________________________________________________________________________
  3127.  
  3128.  MISCELLANEOUS
  3129.  
  3130.  Special Thanks
  3131.  
  3132.  We would like to take time to offer our appreciation to the Cairo Research
  3133.  Lab Beta Team and suggestion crew (in no particular order):
  3134.  
  3135.      Robert J. Ferguson       Ray Smith          Christopher Koziol
  3136.      Christopher J. Brown     Steve Pepin        Tommy Harvey
  3137.      Chuck Harrington         Stephen Thomason   Michael Downing
  3138.      Mikael Winterkvist       Albert Louw        Marshall Brandenburg
  3139.      Martin Pavey             Mike Walker        Greg Shaffer
  3140.      Sal Lizard               John Riley
  3141.  
  3142.  Thanks guys!
  3143.  
  3144.  Thanks are also in order for the following individuals who have been
  3145.  tremendous assets to our organization and efforts:
  3146.  
  3147.      Chip Rabinowitz         Dave Seidel           Brian Pirie
  3148.      Carola 'Lola' Lutz      Dallas Richardson     Philip Findley
  3149.      Andres Guevara          Jeff Dunlop           Lawson 'Mike' Booth
  3150.  
  3151.      Chris Duke/Duke Graphics
  3152.      Mike Labellarte/Arte` Graphics
  3153.      Scott Dudley/Squish API
  3154.  
  3155.  Special thanks go out to Bob Kruger, the friend and beta tester from the
  3156.  outskirts of hell.
  3157.  
  3158.  And a special thanks to the sysops who have registered our products, and
  3159.  shown their ongoing support for Cairo Research Labs.
  3160.  
  3161.  THE SPHINX ECHO
  3162.  
  3163.  The SPHINX echo is now available!  The SPHINX echo is a support echo for
  3164.  users of Cairo Research Labs products.
  3165.  
  3166.  The echo is not currently on the backbone, but a feed is available from
  3167.  1:3613/12.  Overseas links are being organized at this time, as well.  To
  3168.  establish a feed from our system, simply drop a netmail to 1:3613/12 (Be sure
  3169.  to include a session level password!).  Poll once a week, twice a week,
  3170.  whatever you prefer.  Effort is under way to place SPHINX on the fidonet
  3171.  backbone.
  3172.  
  3173.  Topics of discussion include:
  3174.  
  3175.     1) Inside info and tips from the developers!
  3176.     2) Third party add-ons for CRL products
  3177.     3) Ideas, suggestions, wishes, wants and needs... :-)
  3178.     4) Technical support for individual products
  3179.     5) Sharing of scripts, setups, control files, etc
  3180.     6) Get information on new releases, fast!
  3181.  
  3182.  
  3183.  
  3184.                                                 BFE - The BBS Front End System
  3185.                                                                             60
  3186.  ________________________________________________________________________________
  3187.  
  3188.     7) See what's in store for CRL products, and have a say-so in their
  3189.        development!
  3190.     8) See what other sysops are doing with BFE, RegPRO, and others!
  3191.  
  3192.  Here are a few major links to SPHINX.  Hopefully, one of these will be close
  3193.  to your location:
  3194.  
  3195.      Chris Koziol                                  George Hannah
  3196.      Sun, Surf, and Serenity                       Prophecy BBS
  3197.      Elmwood Park, IL (Chicago area)               Saint John, NB
  3198.      (708) 453-6630                                (506) 652-7292
  3199.      1:115/113@fidonet                             1:255/7@fidonet
  3200.  
  3201.      Robert J. Ferguson                            Blake Barr
  3202.      Klingon Bird of Prey BBS                      Fire & Ice
  3203.      Philadelphia, PA                              Harker Heights, TX
  3204.      (215) 426-5596                                (817) 698-6810
  3205.      1:273/935@fidonet                             1:395/43@fidonet
  3206.  
  3207.      Sal Lizard
  3208.      The Mailbox BBS
  3209.      Charleston, SC
  3210.      (803) 762-1481
  3211.      1:372/69@fidonet
  3212.  
  3213.  UPGRADES AND INFORMATION
  3214.  
  3215.  For the latest version of BFE, call any of the systems listed in the Cairo
  3216.  Research Labs Distribution Network listing (CDN.LST).
  3217.  
  3218.  Magic name BFE will get you the latest version!
  3219.  
  3220.  Upgrades are free of charge to registered users.  A one-time $15 registration
  3221.  fee provides you with an unlimited number of upgrades to newer, more powerful
  3222.  versions of BFE.
  3223.  
  3224.  TECHNICAL SUPPORT
  3225.  
  3226.  If you experience any problems with the BFE system, or have any questions,
  3227.  please contact us!
  3228.  
  3229.  Fidonet Netmail:  1:3613/12@fidonet
  3230.          Fidonet:  DOORWARE SHAREWARE MUFFIN OPENDOORS BBS_CARNIVAL
  3231.         Internet:  crlhq@f12.n3613.z1.fidonet.org
  3232.              BBS:  Under the Nile, (706) 596-8126, USR 14.4 v.32
  3233.    Voice Support:  (706) 596-0276
  3234.       Snail Mail:  1113 29th Street
  3235.                    Columbus, GA 31904
  3236.  
  3237.  
  3238.  
  3239.                                                 BFE - The BBS Front End System
  3240.                                                                             61
  3241.  ________________________________________________________________________________
  3242.  
  3243.  WHAT'S NEXT FOR BFE?
  3244.  
  3245.  BFE has always been known for its tremendous growth rate and feature-packed
  3246.  additions with each new release.  Upcoming releases are no different!  Some
  3247.  of the additions to look for in the future are:
  3248.  
  3249.          - Support for Windows/Scrolling in BFE/Script!
  3250.          - Support for Hudson and JAM message base formats
  3251.          - Internal WFC (Wait for Caller) mode to handle non-mailer
  3252.            sites
  3253.          - String maniplation in BFE/Script
  3254.          - Built in entry forms (similar to RegPRO!)
  3255.          - Extended internal RIP Graphics Support
  3256.  
  3257.  PROGRAM DEDICATION
  3258.  
  3259.  This program is dedicated to the families and friends of American MIAs.  Our
  3260.  hearts are with you.  They are not forgotten.
  3261.  
  3262.