home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / mailers / bfe1403p.zip / BFE.DOC next >
Text File  |  1993-07-27  |  113KB  |  2,423 lines

  1.                        ▒███████  ▒███████  ▒███████ 
  2.                        ▒██  ▒██  ▒██  ▒██  ▒██      
  3.                        ▒████████ ▒████████ ▒███████ 
  4.                        ▒██   ▒██ ▒██   ▒██      ▒██ 
  5.                        ▒████████ ▒████████ ▒███████ 
  6.                        
  7.   ▒███████ ▒███████ ▒███████ ▒████▒██ ▒████████ ▒███████ ▒████▒██ ▒██████
  8.   ▒██      ▒██  ▒██ ▒██  ▒██ ▒██▒█▒██    ▒██    ▒██      ▒██▒█▒██ ▒██  ▒██
  9.   ▒██████  ▒███████ ▒██  ▒██ ▒██▒█▒██    ▒██    ▒██████  ▒██▒█▒██ ▒██  ▒██
  10.   ▒██      ▒██ ▒██  ▒██  ▒██ ▒██▒█▒██    ▒██    ▒██      ▒██▒█▒██ ▒██  ▒██
  11.   ▒██      ▒██ ▒███ ▒███████ ▒██▒████    ▒██    ▒███████ ▒██▒████ ▒██████
  12.            
  13.            ▒███████ ▒██   ▒██ ▒███████ ▒████████ ▒███████ ▒███████
  14.            ▒██      ▒██   ▒██ ▒██         ▒██    ▒██      ▒██▒█▒██
  15.            ▒███████ ▒████████ ▒███████    ▒██    ▒██████  ▒██  ▒██
  16.                 ▒██    ▒██         ▒██    ▒██    ▒██      ▒██  ▒██
  17.            ▒███████    ▒██    ▒███████    ▒██    ▒███████ ▒██  ▒██
  18.                    
  19.                    ┌───────────────────────────────────────┐
  20.                ▓███│  v1.40.3p  Release Date 27 July 1993  │▓███
  21.                    └───────────────────────────────────────┘
  22.         (C)opyright 1992, 1993 Cairo Research Labs, All Rights Reserved
  23. ─────────────────────────────────────────────────────────────────────────────
  24.  ┌───────────────────────┐
  25. ▄│   Table of Contents   │
  26. █└───────────────────────┘
  27. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  28.  
  29.         1. INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . .
  30.              Features/Brief Overview. . . . . . . . . . . . . . . . . .
  31.              What's New in This Release?. . . . . . . . . . . . . . . .
  32.              Words From the Authors . . . . . . . . . . . . . . . . . .
  33.              Licensing and Distribution . . . . . . . . . . . . . . . .
  34.              The Demo Version . . . . . . . . . . . . . . . . . . . . .
  35.              Benefits of Registering. . . . . . . . . . . . . . . . . .
  36.              Ordering BFE . . . . . . . . . . . . . . . . . . . . . . .
  37.  
  38.         2. GETTING STARTED  . . . . . . . . . . . . . . . . . . . . . .
  39.              System Requirements  . . . . . . . . . . . . . . . . . . .
  40.              Installation . . . . . . . . . . . . . . . . . . . . . . .
  41.              Brief overview of BFE. . . . . . . . . . . . . . . . . . .
  42.              
  43.         3. BFE/SETUP. . . . . . . . . . . . . . . . . . . . . . . . . .
  44.              What is BFE/Setup? . . . . . . . . . . . . . . . . . . . .
  45.              Navigational Controls. . . . . . . . . . . . . . . . . . .
  46.              The .CTL File Scheme . . . . . . . . . . . . . . . . . . . 
  47.              Opening and creating .CTL files. . . . . . . . . . . . . .
  48.              Saving .CTL files. . . . . . . . . . . . . . . . . . . . .
  49.              Global Options . . . . . . . . . . . . . . . . . . . . . .
  50.                 Path/Swapping Configuration . . . . . . . . . . . . . .
  51.                   Dropfile Path . . . . . . . . . . . . . . . . . . . .
  52.                   BFE System Dir. . . . . . . . . . . . . . . . . . . .
  53.                   Logfile . . . . . . . . . . . . . . . . . . . . . . .
  54.                   Welcome Screen. . . . . . . . . . . . . . . . . . . .
  55.                   Swappaths . . . . . . . . . . . . . . . . . . . . . .
  56.                   Swap with EMS?. . . . . . . . . . . . . . . . . . . .
  57.                   External Editor . . . . . . . . . . . . . . . . . . .
  58.                 Sysop Pager Options . . . . . . . . . . . . . . . . . .
  59.                   Configuring paging hours. . . . . . . . . . . . . . .
  60.                   Number of Beeps . . . . . . . . . . . . . . . . . . .
  61.                 Custom Dropfile Editor. . . . . . . . . . . . . . . . .
  62.                 File List/Chat Color Defaults . . . . . . . . . . . . .
  63.                 BFE Menu Color Defaults . . . . . . . . . . . . . . . .
  64.                 Miscellaneous Options . . . . . . . . . . . . . . . . .
  65.                   Sysop Name. . . . . . . . . . . . . . . . . . . . . .
  66.                   System Name . . . . . . . . . . . . . . . . . . . . .
  67.                   Node# . . . . . . . . . . . . . . . . . . . . . . . .
  68.                   Registration #. . . . . . . . . . . . . . . . . . . .
  69.                   BFE/Personality . . . . . . . . . . . . . . . . . . .
  70.                   Timelimit . . . . . . . . . . . . . . . . . . . . . .
  71.                   Inactivity Timeout. . . . . . . . . . . . . . . . . .
  72.                   Freezetime? . . . . . . . . . . . . . . . . . . . . .
  73.                   Locked BPS. . . . . . . . . . . . . . . . . . . . . .
  74.                   Fossil Port . . . . . . . . . . . . . . . . . . . . .
  75.                   Scroller Delay. . . . . . . . . . . . . . . . . . . .
  76.                   Hide Passwords in Menu Editor . . . . . . . . . . . .
  77.              Menu Editor. . . . . . . . . . . . . . . . . . . . . . . .
  78.                 Menu Item Selector List . . . . . . . . . . . . . . . .
  79.                 Description . . . . . . . . . . . . . . . . . . . . . .
  80.                 Hotkey. . . . . . . . . . . . . . . . . . . . . . . . .
  81.                 Flavor. . . . . . . . . . . . . . . . . . . . . . . . .
  82.                 Option Type . . . . . . . . . . . . . . . . . . . . . .
  83.                   Errorlevel Exit (Lower DTR) . . . . . . . . . . . . .
  84.                   Errorlevel Exit (DTR High). . . . . . . . . . . . . .
  85.                   External Process. . . . . . . . . . . . . . . . . . .
  86.                   Page Sysop. . . . . . . . . . . . . . . . . . . . . .
  87.                   Toggle ANSI Graphics. . . . . . . . . . . . . . . . .
  88.                   Shell to Operating System . . . . . . . . . . . . . .
  89.                   Display a file (ASC/ANS/AVT). . . . . . . . . . . . .
  90.                   Download a File . . . . . . . . . . . . . . . . . . .
  91.                   Upload a File . . . . . . . . . . . . . . . . . . . .
  92.                   Download from a List. . . . . . . . . . . . . . . . .
  93.                   Jump to Another Menu. . . . . . . . . . . . . . . . .
  94.                   Return from a Jump. . . . . . . . . . . . . . . . . .
  95.                   Return to Main Menu . . . . . . . . . . . . . . . . .
  96.                   Enter Message (*.MSG format). . . . . . . . . . . . .
  97.                   Run a BFE Script Program. . . . . . . . . . . . . . .
  98.                   Goodbye (Log Off!). . . . . . . . . . . . . . . . . .
  99.                 Security. . . . . . . . . . . . . . . . . . . . . . . .
  100.                 Portspeed . . . . . . . . . . . . . . . . . . . . . . .
  101.                 Passparms . . . . . . . . . . . . . . . . . . . . . . .
  102.                 Prompt. . . . . . . . . . . . . . . . . . . . . . . . .
  103.                 Secondary Field . . . . . . . . . . . . . . . . . . . .
  104.                 Process . . . . . . . . . . . . . . . . . . . . . . . .
  105.                 Showafter . . . . . . . . . . . . . . . . . . . . . . .
  106.                 Password. . . . . . . . . . . . . . . . . . . . . . . .
  107.                 Color Override. . . . . . . . . . . . . . . . . . . . .
  108.                 Create Dropfile . . . . . . . . . . . . . . . . . . . .
  109.              Menu Options . . . . . . . . . . . . . . . . . . . . . . .
  110.                 Registration Message. . . . . . . . . . . . . . . . . .
  111.                 Custom User Menu. . . . . . . . . . . . . . . . . . . .
  112.                 Menu Color Overrides. . . . . . . . . . . . . . . . . .
  113.              Protocols. . . . . . . . . . . . . . . . . . . . . . . . .
  114.              Local Test . . . . . . . . . . . . . . . . . . . . . . . .
  115.              Message Bases. . . . . . . . . . . . . . . . . . . . . . .
  116.                 Overview. . . . . . . . . . . . . . . . . . . . . . . .
  117.                 Configuration message areas . . . . . . . . . . . . . .
  118.                   Path/filename of area . . . . . . . . . . . . . . . .
  119.                   Destination Address . . . . . . . . . . . . . . . . .
  120.                   Originating Address . . . . . . . . . . . . . . . . .
  121.                   Message Attributes. . . . . . . . . . . . . . . . . .
  122.                   Default "TO" field. . . . . . . . . . . . . . . . . .
  123.                   Default "FROM" field. . . . . . . . . . . . . . . . .
  124.                   Default "SUBJECT" field . . . . . . . . . . . . . . .
  125.                   Brief Description . . . . . . . . . . . . . . . . . .
  126.  
  127.         3. BFE/SCRIPT . . . . . . . . . . . . . . . . . . . . . . . . .
  128.              Introduction and Overview. . . . . . . . . . . . . . . . .
  129.              Script Syntax Rules and Coding Basics. . . . . . . . . . .  
  130.              Command List . . . . . . . . . . . . . . . . . . . . . . .  
  131.                centermsg(). . . . . . . . . . . . . . . . . . . . . . .  
  132.                clearscreen(). . . . . . . . . . . . . . . . . . . . . .  
  133.                displayfile(). . . . . . . . . . . . . . . . . . . . . .  
  134.                downloadfile() . . . . . . . . . . . . . . . . . . . . .  
  135.                error(). . . . . . . . . . . . . . . . . . . . . . . . .  
  136.                errorlevellow(). . . . . . . . . . . . . . . . . . . . .  
  137.                errorlevelhi() . . . . . . . . . . . . . . . . . . . . .  
  138.                getkey() . . . . . . . . . . . . . . . . . . . . . . . .  
  139.                getnum() . . . . . . . . . . . . . . . . . . . . . . . .  
  140.                goodbye(). . . . . . . . . . . . . . . . . . . . . . . .  
  141.                leavemsgdm() . . . . . . . . . . . . . . . . . . . . . .
  142.                makedorinfo(). . . . . . . . . . . . . . . . . . . . . .  
  143.                menu() . . . . . . . . . . . . . . . . . . . . . . . . .  
  144.                os_shell() . . . . . . . . . . . . . . . . . . . . . . .  
  145.                page() . . . . . . . . . . . . . . . . . . . . . . . . .  
  146.                print(). . . . . . . . . . . . . . . . . . . . . . . . .  
  147.                putch(). . . . . . . . . . . . . . . . . . . . . . . . .  
  148.                puts() . . . . . . . . . . . . . . . . . . . . . . . . .  
  149.                putsnl() . . . . . . . . . . . . . . . . . . . . . . . .  
  150.                runexternal(). . . . . . . . . . . . . . . . . . . . . .  
  151.                setcolor() . . . . . . . . . . . . . . . . . . . . . . .  
  152.                toggleansi() . . . . . . . . . . . . . . . . . . . . . .  
  153.                uploadfile() . . . . . . . . . . . . . . . . . . . . . .  
  154.                writelog() . . . . . . . . . . . . . . . . . . . . . . .  
  155.                 
  156.         4. MANAGING YOUR BFE SYSTEM . . . . . . . . . . . . . . . . . .
  157.              Operator Notes and Special Features. . . . . . . . . . . .
  158.                GlobalAccess(tm) Commands. . . . . . . . . . . . . . . .  
  159.                BFE Language File. . . . . . . . . . . . . . . . . . . .  
  160.                Using BFE with BBS dropfiles . . . . . . . . . . . . . .
  161.                Custom Dropfiles . . . . . . . . . . . . . . . . . . . .
  162.  
  163.         5. DOOR OPERATION . . . . . . . . . . . . . . . . . . . . . . .
  164.              BFE Command Line . . . . . . . . . . . . . . . . . . . . .
  165.              Sysop Keys . . . . . . . . . . . . . . . . . . . . . . . .
  166.              Multinode/Multiuser Operation. . . . . . . . . . . . . . .
  167.              Digiboard Compatibility. . . . . . . . . . . . . . . . . .
  168.          
  169.         6. MISCELLANEOUS. . . . . . . . . . . . . . . . . . . . . . . .
  170.              Special Thanks . . . . . . . . . . . . . . . . . . . . . .
  171.              SPHINX! Echo . . . . . . . . . . . . . . . . . . . . . . .
  172.              Support Sites. . . . . . . . . . . . . . . . . . . . . . .
  173.              Upgrades and Information . . . . . . . . . . . . . . . . .
  174.              BFE Beta Site Information. . . . . . . . . . . . . . . . .
  175.              Program Dedication . . . . . . . . . . . . . . . . . . . .
  176.  
  177. ─────────────────────────────────────────────────────────────────────────────
  178.                            ■ INTRODUCTION ■
  179. ────────────────────────────────────────────────────────────────────────────
  180.  
  181. In today's high-tech world, connectivity has become a major issue.  Getting
  182. from point A to point B sounds incredibly simple at times, but is often an
  183. entirely different situation, especially when one wants to run multiple BBS
  184. packages, different mail networks, provide subscriber info, etc.  Enter BFE.
  185.                                          
  186. BFE is a BBS front-end system that was designed to provide sysops with a
  187. fast, efficient method of "connecting" things at the front end of their
  188. site.  
  189.  
  190.  ┌───────────────────────────────┐
  191. ▄│  Features and Brief Overview  │
  192. █└───────────────────────────────┘
  193. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  194.  
  195. BFE was designed to be called from a front-end mailer, such as Frontdoor or
  196. Binkleyterm.  Instead of spawning directly to the BBS system, it presents
  197. a menu to the user, which details his immediate options.  These options can
  198. range from offering multiple BBS systems, remote jobs, literally anything
  199. you can think of!  The BFE system can also be configured to be called
  200. straight from your BBS software itself, in essence, running as a normal
  201. door, using one of several popular BBS dropfile formats.  Read onward....
  202.  
  203. BFE features include:
  204.  
  205.         * Custom multi-level menus with item-level password protection 
  206.         * Multinode/Multiuser Compatibility 
  207.         * Intuitive menu-driven setup and customization facility
  208.         * Script system! 
  209.         * DESQview and Microsoft Windows aware!
  210.         * Configurable for security concerns 
  211.         * Complete carrier monitoring and timeout checking
  212.         * Use any of 11 standard dropfiles, or define custom ones 
  213.         * Run as a normal door or as a frontend!  Dropfile not required!
  214.         * Complete BBS carousel - run multiple BBS systems
  215.         * Complete support for ANSI/ASCII/AVATAR users (Auto ANSI detect!)
  216.         * File transfer system with support for external protocols
  217.         * Run remote jobs, such as batch files, programs, other doors, etc.
  218.         * Remote OS shells 
  219.         * Built in chat/paging system with hourly/daily time restrictions
  220.         * *Total* configurability 
  221.         
  222.  ┌────────────────────────────────┐
  223. ▄│   What's New in This Release?  │
  224. █└────────────────────────────────┘     o New  * Change  ! Fix
  225. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  226.         
  227.         o The first generation of the BFE/Setup program has been completed!
  228.           No more text based .CTL files to meddle with!  BFE/Setup is an
  229.           intuitive menu-driven setup and customization facility.
  230.           
  231.         o The first generation of the BFE/Script system has been completed.
  232.           Scripts can be be configured to run from any BFE menu option via
  233.           a new menu type "S".  Access to most of the internal BFE commands
  234.           are available, as well as a few other goodies.  This will be
  235.           expanded further in the future.
  236.  
  237.         o The first generation of the BFE/Edit system has been completed.
  238.           Through the use of BFE/Edit, users can now make use of Fidonet
  239.           style message areas, before they ever reach your BBS.
  240.           
  241.         o The documentation has been totally rewritten, and now covers the
  242.           new BFE/Setup and BFE/Script systems as well.  
  243.   
  244.         o GlobalAccess(tm) :-) Commands!  Global commands available from
  245.           any menu in BFE! (yawn...)
  246.  
  247.         o All passwords are now hidden from the display when being entered.
  248.  
  249.         o BFE can now generate a DORINFO?.DEF dropfile after any menu item
  250.           selected.  More dropfile types will be added in the future.  
  251.           (Thanks to Chris Koziol).
  252.  
  253.         o New additions to the language file:
  254.                 PROMPT - Configure a custom BFE selection prompt 
  255.                 DEFUSERNAME - Default User Name if unknown to BFE
  256.                 DEFUSERLOC - Default User Location if unknown to BFE
  257.         
  258.         o The type "E" (Errorlevel exit) has been split into two types, one
  259.           which maintains DTR, and one which lowers DTR and hangs up on the
  260.           user. (Thanks to Ted Molavi).
  261.                                                            
  262.         * The PROCESS, PROMPT, and SECONDARY fields have had an attitude
  263.           adjustment!  New features include macros and a better implementation
  264.           of passing user input to external processes.
  265.           
  266.         * After a user downloads a file from a list of files, BFE now 
  267.           returns him to the list of files, as opposed to returning him to
  268.           the calling menu.
  269.  
  270.         * BFE now makes the determination between the TimeLimit setting, and
  271.           the time to next event setting to determine the user's remaining
  272.           total time online (if no dropfile is specified).
  273.  
  274.         * BFE is now Microsoft Windows aware!
  275.         
  276.         * BFE's internal communication routines have been optimized and now
  277.           function with greater efficiency.
  278.         
  279.         * No more text-based registration keys.  This process is now handled
  280.           by BFE/Setup.
  281.           
  282.         ! The USERMENU keyword was disfunctional at times under certain
  283.           situations.  Squashed! (Thanks to Tommy Harvey).
  284.  
  285.         ! More problems with 38.4 callers.  This has been fixed once and
  286.           for all.  Sheesh... :-)
  287.  
  288.  ┌───────────────────────────┐
  289. ▄│   Word From The Authors   │
  290. █└───────────────────────────┘
  291. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  292.  
  293. The 1.40 release of BFE marks a new beginning for sysops worldwide.  No
  294. longer do you have to settle for inferior front end systems for your sites.
  295. Quite a bit of time has spent between releases on making BFE as intuitive
  296. as possible, while simultaneously adding several major enhancements.  BFE
  297. is superior in every way to similar products, and in some ways, revolutionary.
  298.  
  299. To date, BFE has enjoyed a tremendous success rate, due in part to the
  300. undying loyalty of an exhausted beta team, I might add!  Recently, however,
  301. a few shareware authors of similar products have apparently been spreading
  302. false information about the BFE system, making rather unsubstantial claims
  303. as to its functionality.  Personally, I feel this is rather uncouth and
  304. is certainly unnecessary, as BFE's power and flexbility speak for itself.
  305. BFE, by far, excels in the areas of flexibility, processing speed, and
  306. ease of use.  See for yourself.
  307.  
  308. Some of you have really put BFE to the test, and I must say that I am glad
  309. to see that it passed with flying colors.  Here are just a few comments on
  310. BFE as reported by users and beta testers:
  311.  
  312.  - "During certain hours, my BFE.CTL file gets swapped out with another one,
  313.     providing various options based upon the time of the day!"
  314.  
  315.  - "Now we can provide online registration information ... up front!"
  316.  
  317.  - "A tremendous frontend support system for our shareware products!"
  318.  
  319.  - "...provides our users with pertinent file transfers and information,
  320.     without forcing them to log on to the BBS first.  In and out!"
  321.  
  322.  - "...splendid way of letting my users choose between RIP, NAPLPS, and
  323.     normal BBS operation, all before they log on!"
  324.  
  325.  - "Unstoppable.  Unbeatable.  Top notch shareware!"
  326.  
  327. BFE was originally designed in-house, for use on our support BBS, Under the
  328. Nile, at 1:3613/12.  However, after getting begged by many of our users to
  329. offer a shareware version, I set out on the task.  Our mission was to create
  330. a flexible, simple-to-use, inexpensive BBS front-end.  See for yourself!
  331.  
  332. We hate crippleware! Down with crippleware authors!  Shame on them! BFE has
  333. never, is not, and never will be crippleware.  Hrmpf!
  334.  
  335. We are in the process of revamping the BFE beta/support site directory.  
  336. Please contact us via netmail if you are interested in becoming a BFE Support 
  337. Site.  (Two per country, please, first come first serve).
  338.  
  339.  ┌────────────────────────────────┐
  340. ▄│   Licensing and Distribution   │
  341. █└────────────────────────────────┘
  342. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  343.  
  344.    This documentation, programs, and other files distributed in this software
  345.    package (the "Software") are the copyrighted property of Scott Burkett and
  346.    Cairo Research Labs.  All rights are reserved.
  347.  
  348.    For use by corporations, institutions or goverment agencies, or for-profit
  349.    purposes, contact the Author for licensing information.
  350.  
  351.    U.S. GOVERNMENT INFORMATION
  352.  
  353.    The use, duplication, or disclosure by the U.S. Government of the Software
  354.    is subject to the restricted rights applicable to commercial software that
  355.    are specified in the subdivision (b.3.ii) of the 'Rights in Technical Data
  356.    and Computer Software' clause, document DFARS 52.227-7013.
  357.  
  358.    DISTRIBUTION/USAGE
  359.  
  360.    BFE can be freely distributed, provided that the original archive
  361.    is not changed in any way (other than changing the archive type) and no
  362.    amount of money is required. In no circumstance at all can BFE be
  363.    modified without written consent from the authors.  It is prohibited too
  364.    to include this program, whole or in part, in other software.  It is
  365.    expressly forbidden to distribute a registered key to unregistered users.
  366.  
  367.    BFE can be used in commercial organizations only after regular
  368.    registration.
  369.  
  370.    This license is considered accepted if the program is used.  Its violation
  371.    will involve the withdrawal of the registration key and the rights to use
  372.    the program.
  373.  
  374.    WARRANTY DISCLAIMER
  375.  
  376.    The Author cannot and does not warrant that any functions contained in the
  377.    Software will meet your requirements, or that its operations will be error
  378.    free.  The entire risk as to the Software performance or quality, or both,
  379.    is solely with the user and not the Author.  You assume responsibility for
  380.    the selection of the program to achieve your intended results, and for the
  381.    installation, use, and results obtained from the Software.
  382.  
  383.    The Author makes no warranty, either implied or expressed, including with-
  384.    out limitation any warranty with respect to this Software documented here,
  385.    its quality, performance, or fitness for a particular purpose. In no event
  386.    shall the Author be liable to you for damages, whether direct or indirect,
  387.    incidental, special, or consequential arising out the use of or any defect
  388.    in the Software, even if the Author has been advised of the possibility of
  389.    such damages, or for any claim by any other party.
  390.  
  391.    All other warranties of any kind, either express or implied, including but
  392.    not limited to the implied warranties of merchantability and fitness for a
  393.    particular purpose, are expressly excluded.
  394.  
  395.    LIMITATION OF REMEDIES
  396.  
  397.    The information contained in the documentation for the Software is subject
  398.    to change without notice.
  399.  
  400.    The Author's entire liability, and your exclusive remedy shall be: (1) the
  401.    replacement of an original Software diskette not meeting the above Limited
  402.    Warranty and which is returned to the Author along with proof of purchase,
  403.    or (2), if the Author is unable to deliver a replacement diskette which is
  404.    free of defects, you may terminate the License Agreement by returning this
  405.    Software and the corresponding license fee will be returned.
  406.  
  407.    By using the Software, you acknowledge (1) to have read and understood all
  408.    parts of this document and (2) to have agreed with and accepted all of its
  409.    provisions without any reservation.
  410.  
  411.                                           Scott Burkett
  412.                                           Cairo Research Labs
  413.  ┌─────────────────────────────┐
  414. ▄│   The Demo Version of BFE   │
  415. █└─────────────────────────────┘
  416. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  417.  
  418. This shareware demonstration version of BFE is as fully functional as its
  419. registered counterpart, with a few minor differences.
  420.  
  421.   - The unregistered evaluation message at the top of the screen: Upon
  422.     registration, this will be replaced by your name or your organization's
  423.     name, showing your support for the BFE project.
  424.  
  425.   - Registered users have the option of changing both the text and the color
  426.     of the default registration message which appears at the top of each menu.
  427.  
  428.   - Registered users can make use of custom ASCII/ANSI/AVATAR screens in lieu
  429.     of the built-in default BFE menus.
  430.  
  431.   - Registered users have the additional ability to customize the internal
  432.     strings used in the program (See the section on the BFE Language File).
  433.  
  434.  ┌──────────────────────────────┐
  435. ▄│   Benefits of Registration   │
  436. █└──────────────────────────────┘
  437. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  438.  
  439. Benefits of registering BFE:
  440.  
  441.         o Extended Tech Support via the SPHINX echo (our support echo).
  442.  
  443.         o Access to beta copies of BFE, as they become available.
  444.  
  445.         o You will also be entitled to free upgrades to newer versions of
  446.           BFE, as they become available. In addition to the great
  447.           many features and the quality that this version of BFE has
  448.           to offer, we are currently working on several additions and
  449.           enhancements for future versions.
  450.  
  451.  ┌─────────────────────┐
  452. ▄│    Ordering BFE     │
  453. █└─────────────────────┘
  454. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  455. Below are detailed instructions for registering BFE. These
  456. instructions are not intended to seem confusing or complicated; they are
  457. simply meant to answer almost any question that you might have about
  458. registering.  If you have any questions or uncertainties about your
  459. registration, please feel free to contact us.  For information on how to
  460. contact us, please see the section on "Upgrades and Information".
  461.  
  462. To order BFE, simply follow these three steps:
  463.  
  464.   1.)  Fill out the registration form. Information on filling out
  465.        the form is located in the next section.
  466.  
  467.   2.)  Enclose the appropriate payment ($10), Ten American Dollars,
  468.        payable in the form of cash, check or money order.  Make all checks
  469.        or money orders payable to:  SCOTT BURKETT
  470.  
  471.   3.)  Send the above two items to:
  472.  
  473.                           Cairo Research Labs
  474.                           1113 29th Street
  475.                           Columbus, GA 31904
  476.  
  477.  
  478. FILLING OUT THE REGISTRATION FORM
  479. --------------------------------------------------------------------------------
  480.  
  481. NO PRINTER?    Alternatively, if you do not have a printer, simply send a
  482.                hand-drawn version of the order form.  If you do not wish to
  483.                mail a registration form in, you may opt to upload it to our
  484.                support BBS at (706) 596-8126 (14.4/v.32).  We will not present
  485.                you with a registration key, however, until proper payment
  486.                has been rendered.
  487.  
  488.                If you have any special instructions for us, or anything that
  489.                you would like to say when you register, feel free to write
  490.                this down on the back of the registration form, or on a
  491.                separate piece of paper.
  492.  
  493.                When filling out the BFE registration form, be sure to
  494.                indicate how you would prefer to receive your BFE
  495.                registration key. You will have the choice of receiving your
  496.                registration key by one of three means: A call to our BBS,
  497.                FidoNet CrashMail, or by a call to your BBS.  If you have a
  498.                FidoNet Email address, FidoNet CrashMail is still by far the
  499.                quickest way to receive your order. Once you have decided
  500.                which means you would prefer to receive your order by, please
  501.                read the detailed instructions on your order method below.
  502.                Please keep in mind that snail mail is not an option!  If you
  503.                send us your registration fee, and instruct us to send it to
  504.                you via U.S. snail mail, we will simply place your key here
  505.                on hold until you call our support BBS.
  506.  
  507. --------------------------------------------------------------------------------
  508. RECEIVING      In order to receive your BFE registration key by a
  509. BY CALL        message and/or upload to your BBS, fill out the order form and
  510. TO BBS         mail it along with your payment as described below. Be sure to
  511.                include the phone number, baud rate, and our login and
  512.                password for the BBS to which you would like us to call.  We
  513.                will cover any long distance costs. If, for some reason, we
  514.                are unable to connect to your BBS (not because its busy, but,
  515.                for example, if your BBS is no longer online, or we are unable
  516.                to connect succesfully), we will place your key in a message 
  517.                on our support BBS in the private E-Mail conference.
  518.  
  519. --------------------------------------------------------------------------------
  520. RECEIVING      In order to receive your BFE registration key via
  521. ORDER BY       network crashmail, simply fill out the order form and mail it
  522. FIDONET OR     along with your payment as described below.  Be sure to
  523. DOORNET        include the FidoNet or DoorNet node address to which you wish 
  524. CRASHMAIL      to have your order sent.
  525.  
  526.  
  527. ────────────────────────────────────────────────────────────────────────────
  528.                          ■ GETTING STARTED ■
  529. ────────────────────────────────────────────────────────────────────────────
  530.  
  531.  ┌────────────────────────┐
  532. ▄│   System Requirements  │
  533. █└────────────────────────┘
  534. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  535.  
  536. BFE was designed for use with IBM compatible personal computer systems,
  537. with 640K minimum RAM, however, it will run in much less.  It will run under
  538. most popular BBS packages, to include RemoteAccess, Maximus, SuperBBS,
  539. QuickBBS, GAP, PCBoard, WildCat!, WWIV, and others.  Facilities are also in
  540. place to provide complete dropfile customization, which provides maximum
  541. compatibility with nearly all DOS-based BBS software packages.
  542.  
  543. BFE also requires the use of a fossil driver, such as Ray Gwinn's X00, or
  544. David Nugent's BNU.  These programs can be found on most BBS systems, since
  545. they are necessary in running most BBS packages and doors to begin with.  If 
  546. your BBS does not utilize a fossil driver, you can always enable it for BFE, 
  547. and then disable it after BFE exits.                     
  548.  
  549. If you would like to allow users to download certain files from BFE, free of
  550. BBS ratios, then you will also need copies of whatever external protocols you
  551. wish to run (i.e. DSZ, MPT, J-Modem, etc).
  552.  
  553.  ┌─────────────────┐
  554. ▄│   Installation  │
  555. █└─────────────────┘
  556. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  557.  
  558. First things first:
  559.  
  560. Create a directory to hold the BFE system.  We recommend using something
  561. like C:\BFE or C:\FD\BFE, etc.  Next, copy the BFE140.EXE file into the 
  562. directory and type "BFE140" at the DOS prompt.  The archive is self 
  563. extracting and will come apart without much effort.
  564.  
  565. ** Note:  Your source for obtaining the BFE archive may have changed
  566. the format of the archive to one suitable for use on their system (i.e. ZIP,
  567. LZH, ARJ, etc).  Consult your compression package documentation for more
  568. information on using it. 
  569.  
  570.  ┌──────────────────┐
  571. ▄│  Brief Overview  │
  572. █└──────────────────┘
  573. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  574.  
  575. Congratulations!  You have now installed the world's *premier* BBS front
  576. end system on your computer.  Imagine what the neighbors must think by now!
  577. Although the installation procedure is very straightforward, configuring  
  578. BFE can be a bit more challenging, but certainly very rewarding in the end.
  579.  
  580. In earlier releases of BFE, all of the options and functionality of the
  581. package was configured via the manual editing of numerous control and 
  582. configuration files.  This was often very tedious work for the aspiring
  583. sysop, and many begged for something easier.  Once again, we have listened 
  584. to our users and have provided an easy-to-use, menu-driven setup facility 
  585. entitled BFE/Setup. Through the use of this revolutionary new setup system,     
  586. sysops can now configure and customize their BFE system with little or no
  587. effort at all.
  588.  
  589. By now, most of you are probably asking yourselves, "What can BFE do for      
  590. me?. I run a simple, one-line BBS system, and I have no need for a full
  591. blown BBS carousel setup!".  What?!  Sure you do!  Through the use of BFE,
  592. you can provide pertinent information and file downloads up front, *before*
  593. your new users have chance to get lost in your BBS!        
  594.  
  595. BFE is also prevalant at large sites, running multi-line BBS setups.  With
  596. BFE, your callers can perform online registrations, receive subscriber
  597. information and downloads up front, without wasting precious BBS time.  If 
  598. your site participates in more than one electronic mail network, running 
  599. on multiple BBS systems, BFE can present this information to your callers,
  600. and allow them to make accurate, informed decisions, to better enable them
  601. to reach the services you offer.
  602.  
  603. To sum it up, BFE can do just about anything you can imagine.  From BFE, you
  604. run DOS tasks, call multiple BBS systems, or even other doors!  Read on!
  605.  
  606. ────────────────────────────────────────────────────────────────────────────
  607.                             ■ BFE/SETUP ■
  608. ────────────────────────────────────────────────────────────────────────────
  609.  
  610.  ┌──────────────────────┐
  611. ▄│  What is BFE/Setup?  │
  612. █└──────────────────────┘
  613. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  614.  
  615. As mentioned earlier in this document, BFE/Setup was designed to provide an
  616. intuitive, easy-to-use method of configuring and customizing BFE to suit
  617. your needs.  A lot of time has been spent on ensuring that BFE/Setup provides
  618. you with the tools necessary to allow you to maximize your use of the BFE
  619. package.
  620.  
  621.  ┌─────────────────────────┐
  622. ▄│  Navigational Controls  │
  623. █└─────────────────────────┘
  624. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀            
  625.  
  626. BFE/Setup will automatically make use of a mouse if one is detected.  By
  627. default, it runs in standard 16 color mode, but can be forced into monochrome
  628. mode by passing a "-m" on the command line (i.e. BFESETUP -m).
  629.  
  630. To start BFE/Setup, simply type BFESETUP while in the BFE directory.
  631.  
  632. Left mouse button used as "select" button, while right mouse button is used
  633. as the "esc" button.
  634.  
  635.  ┌────────────────────────┐
  636. ▄│  The .CTL File Scheme  │
  637. █└────────────────────────┘
  638. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  639.  
  640. Before you begin your first session with BFE/Setup, a brief overview on the
  641. .CTL file scheme utilized by BFE is in order.  The contents of each of the
  642. menus you will create with BFE/Setup are stored in a CONTROL file (files with
  643. a .CTL extension).  When BFE is started, you will pass the name of your
  644. "main" .CTL file on the command line.  This is the menu that BFE will first
  645. prompt your users with.  From there, however, based on user selections, you
  646. can jump to other menus (up to 10 levels of nesting).  
  647.  
  648. That's it!  No voodoo involved in this concept at all.  In fact, this is not
  649. a new concept, as this is the way that most BBS systems function anyway!
  650.  
  651.  ┌───────────────────────────────────┐
  652. ▄│  Opening and Creating .CTL files  │
  653. █└───────────────────────────────────┘
  654. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ 
  655.  
  656. To create new .CTL files or open existing ones for maintenance, simply
  657. select "Open .CTL File" from the main menu.  A popup box will soon appear,
  658. prompting you for the type of .CTL to open (i.e. new or existing).  
  659.  
  660. If you choose to create a new .CTL file, you will then be prompted for the 
  661. name of the control file.  You need not enter an extension, as .CTL will be
  662. appended to the name you enter.  We recommend you name your .CTL files in
  663. some sensible manner, perhaps using the name MAIN as your first menu.
  664.  
  665. If you choose to open an existing .CTL file, a file selector box will appear,
  666. and you may then traverse the directory structure of your system in order to
  667. find the appropriate .CTL file to open.  
  668.  
  669. After providing a new .CTL file name, or choosing an existing one, the name
  670. of this file will appear at the top of the main menu window, to help you
  671. keep track of which file is in memory at any given time.
  672.  
  673.  ┌─────────────────────┐
  674. ▄│  Saving .CTL Files  │
  675. █└─────────────────────┘
  676. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  
  677.  
  678. After making any changes to your .CTL files, you will need to select this
  679. option to save them permanently.  Simply select this option, and your menu
  680. will be updated for you in the blink of an eye!
  681.  
  682.  ┌─────────────────┐
  683. ▄│  Global Options │
  684. █└─────────────────┘
  685. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀      
  686.  
  687. Your first stop in BFE/Setup should be here, as this is where you will 
  688. configure BFE with all of its internal default options.  All global options
  689. are stored in a file called GLOBALS.CFG.  After selecting this option from
  690. the main menu, you will be presented with the Global Options Menu:
  691.  
  692.  
  693.                      Path/Swapping Configuration
  694.  
  695. DROPFILE PATH 
  696. - This field, when filled in, enables BFE's internal BBS dropfile routines.  
  697.   If you are running BFE as a front-end from a mailer such as FrontDoor or 
  698.   BinkleyTerm, you should leave this field blank!  Only fill this field in
  699.   when you wish BFE to operate by reading a BBS dropfile (DORINFO1.DEF,
  700.   DOOR.SYS, etc).
  701.                 
  702. BFE SYSTEM DIR 
  703. - This should point to your BFE directory.  Plain and simple.
  704.  
  705. LOGFILE 
  706. - If this field is filled in, BFE will maintain a log of events in the path 
  707.   and filename specified by its contents.  To disable BFE's internal logging, 
  708.   simply leave this field blank.  The logfile is in the same format used by
  709.   Joho's FrontDoor Netmailer.
  710.           
  711. WELCOME SCREEN
  712. - BFE has the ability to display an ANSI, ASCII, or AVATAR screen to your
  713.   users upon startup.  Simply specify the path and filename of this file.
  714.   BFE has a few unique features when displaying external files to your 
  715.   users!  See the section on the DISPLAY FILE type for more information.
  716.  
  717. SWAP PATH
  718. - BFE has the ability to make use of memory and disk swapping when calling
  719.   external processes.  By default, BFE will attempt to swap itself to EMS,
  720.   but will resort to disk swapping should not enough memory be available.
  721.   This field should contain a list of valid swap paths, separated by commas
  722.   (i.e. C:\TEMP;D:\TEMP;E:\SWAP ).
  723.   
  724. SWAP WITH EMS?
  725. - To prevent BFE from swapping to EMS, place a "Y" in this field!
  726.  
  727. EXTERNAL EDITOR
  728. - Currently, two of the selections from BFE/Setup are configured through
  729.   the use of an external editor (the Custom Dropfile Editor and the BFE
  730.   Language Editor).  These will eventually be permanent residents of          
  731.   BFE/Setup, but for now, simply place the path and name of your favorite
  732.   external text editor.
  733.   
  734.  
  735.                             Sysop Pager Options
  736.                             
  737. One of the things that BFE allows your users to do is "page" the sysop for
  738. a chat session.  This menu selection allows you to specify the hours and
  739. days that chatting is available.
  740.  
  741. CONFIGURING PAGING HOURS
  742. - Once you enter this selection, you will be presented with a small entry
  743.   form which has two entries per day-of-the-week.  Simply fill in the hours
  744.   in which paging will be available (in 24 hour military format).  To disable
  745.   paging for a given day, enter 00:00 for the starting time, and 00:01 for
  746.   the stopping time. 
  747.   
  748. NUMBER OF BEEPS
  749. - Whenever the sysop is paged, BFE will present a series of beeps on the PC
  750.   speaker, to attempt to gain the attention of the sysop.  This setting
  751.   controls the number of beeps that BFE will perform during a page attempt.
  752.   
  753.                                                 
  754.                         Custom Dropfile Editor
  755.                     
  756. Custom door information file support. BFE automatically recognizes most
  757. door information file (drop file) formats, including DORINFO?.DEF, 
  758. EXITINFO.BBS, DOOR.SYS, SFDOORS.DAT, CALLINFO.BBS and CHAIN.TXT. However, to
  759. permit BFE to operate on BBS systems that produce a different format file,
  760. you may define a custom door information file format. A custom door
  761. information file format can be defined in a file called CUSTOM.BFE.  When 
  762. BFE starts, this file is read in and a dynamic dropfile type is created and
  763. looked for by BFE.  BFE will enable dropfile mode if it finds a valid
  764. custom dropfile.
  765.  
  766. The "CustomFileName" option specifies the filename used to distinguish this
  767. file format from other file formats. This filename should not include a
  768. path. To specify the path where the door information file is located, use
  769. the BBSDir setting, near the beginning of this file. If the filename of the
  770. custom format is the same as that of one of the built-in formats, the custom
  771. format will override the built-in format.
  772.  
  773. The actual format of the custom file is specified using a number of lines
  774. that begin with the keyword "CustomFileLine". Each of these lines will
  775. correspond to a single line in the door information file, with the option
  776. following the "CustomFileLine" keyword specifying the information that can
  777. be found on that line. This can be one of the following keywords:
  778.  
  779.                     Ignore - Causes the next line in the door information
  780.                              file to be ignored. Use on lines for which none
  781.                              of the options below apply.
  782.                    ComPort - COM? port the modem is connected to
  783.                              (0 indicates local mode)
  784.                 FossilPort - Fossil port number the modem is connected to
  785.                   ModemBPS - BPS rate at which to communicate with modem
  786.                              (0 or non-numerical value indicates local mode)
  787.                  LocalMode - 1, T or Y if door is operating in local mode
  788.                   UserName - Full name of the user
  789.              UserFirstName - First name(s) of the user
  790.               UserLastName - Last name of the user
  791.                      Alias - The user's psuedonym / handle
  792.                  HoursLeft - Hours user has left online
  793.                MinutesLeft - Minutes user has left online, or time left online
  794.                              in format hh:mm
  795.                SecondsLeft - Seconds user has left online, or time left online
  796.                              in format hh:mm:ss or format mm:ss
  797.                              (If more than one of the above time options are
  798.                              used, the user time left is taken to be the total
  799.                              of all of these values.)
  800.                       ANSI - 1, T, Y or G for ANSI graphics mode
  801.                     AVATAR - 1, T or Y for AVATAR graphics mode
  802.                PagePausing - 1, T or Y if user wishes a pause at end of screen
  803.               ScreenLength - Number of lines on user's screen
  804.             ScreenClearing - 1, T or Y if screen clearing mode is on
  805.                   Security - The user's security level / access level
  806.                       City - City the user is calling from
  807.                       Node - Node number user is connected to
  808.                  SysopName - Full name of the sysop
  809.             SysopFirstName - The sysop's first name(s)
  810.              SysopLastName - The sysop's last name
  811.                 SystemName - Name of the BBS
  812.  
  813.  
  814. A sample CUSTOM.BFE is outlined below.  This example designs a custom drop-
  815. file template which emualtes the standard DORINFO?.DEF file.
  816.  
  817. CustomFileName    EXAMPLE.DEF           ; File name to look for!       
  818. CustomFileLine    SystemName
  819. CustomFileLine    SysopFirstName
  820. CustomFileLine    SysopLastName
  821. CustomFileLine    ComPort
  822. CustomFileLine    ModemBPS
  823. CustomFileLine    Ignore
  824. CustomFileLine    UserFirstName
  825. CustomFileLine    UserLastName
  826. CustomFileLine    City
  827. CustomFileLine    ANSI
  828. CustomFileLine    Security
  829. CustomFileLine    MinutesLeft
  830.  
  831.                      
  832.                      File List/Chat Color Defaults
  833.                        
  834. Select this option to setup the default color scheme to be used when in a
  835. chat session with a user.  There are also options to configure the various
  836. colors used to display a BFE style FILES.BBS file listing.
  837.                        
  838.                        BFE Menu Color Defaults   
  839.                          
  840. If using the built-in BFE menu style, you may want to change the default
  841. color scheme used to display the menus.  Unless a specific override has been
  842. enabled in either MENU OPTIONS or a COLOR OVERRIDE on a particular menu
  843. option, the colors defined here will be used to display all menus.  It is
  844. suggested to go ahead and set these colors to the colors which will be used
  845. in most of your menus.  This makes maintenance a bit easier! 
  846.                          
  847.                          Miscellaneous Options
  848.  
  849. SYSOP NAME
  850. - The contents of this field should match *exactly* with the name that you
  851.   have/are planning to register BFE with!  This field is case-sensitive!
  852.   
  853. SYSTEM NAME
  854. - This field is purely an informational field, and should contain the name
  855.   of your BBS system or communications site.
  856.   
  857. NODE #
  858. - Enter the node number of your BBS (i.e. 1, 2, 3), or leave blank if 
  859.   running on a multinode BBS system.
  860.   
  861. REGISTRATION #
  862. - Upon registering BFE, you will receive a key number which should be
  863.   entered into this field. 
  864.   
  865. BFE/PERSONALITY
  866. - There are several options available to the Sysop while the user is in the
  867.   BFE Door.  These options and hotkeys differ from BBS "personality" to
  868.   "personality".  BFE currently supports three BBS personalities (WildCat!,
  869.   RemoteAccess 2.0x, and the default style).  For more information on the RA 
  870.   and WildCat! hotkeys, consult the documentation which accompanied the BBS 
  871.   software.  The sysop keys for the default personality are outlined later
  872.   in this manual.
  873.   
  874.   Valid values are (RA, WC, or DF).
  875.   
  876. TIMELIMIT
  877. - This is the default BFE time limit given to all callers.  If you are not
  878.   running BFE via a bbs dropfile, BFE has no way of knowing how much time
  879.   the user has online!  Specify the amount in minutes.
  880.   
  881. INACTIVITY TIMEOUT
  882. - This value specifies the amount (in seconds) that BFE will allow a user
  883.   to sit idle at the keyboard before hanging up.
  884.   
  885. FREEZETIME
  886. - When BFE calls protocols and other external tasks, you can have the user's
  887.   remaining time temporarily "frozen", which means no time will be taken
  888.   away while in an external task of any kind.
  889.   
  890. LOCKED BPS
  891. - If running with a locked serial port, specify the locked baud rate of your
  892.   system here.
  893.   
  894. FOSSIL PORT
  895. - Enter the port number (0, 1, 2, etc) that your fossil driver is active on.
  896.  
  897. SCROLLER DELAY
  898. - This setting is used to adjust the speed of the scrolling message at the
  899.   top of the BFE/Setup display area.  Setting this to a value of 0 will
  900.   effectively disable the scroller. 
  901.   
  902. HIDE PASSWORDS IN MENU EDITOR?
  903. - If enabled ("Y"), BFE/Setup will "mask" all passwords as they are being
  904.   entered into the menu builder.  This is great if you do not wish for 
  905.   someone to look over your shoulder while you are entering the password!
  906.  
  907.  ┌───────────────┐
  908. ▄│  Menu Editor  │
  909. █└───────────────┘
  910. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀      
  911.  
  912. BFE/Setup's menu editor provides an intuitive method of constructing your
  913. BFE menus, allowing you to concentrate on the flexibility and functionality
  914. of the front end setup, rather than the semantics of a cryptic text-based
  915. configuration file.
  916.  
  917. Upon selecting this option, you will be presented with a list of the menu
  918. items for the currently active menu (i.e. a .CTL file menu which has been
  919. recently created or opened).  Here is where the fun begins!
  920.  
  921. When the list of menu items appears, simply use the cursor keys (or the 
  922. mouse) to select a menu option to edit.  All unused menu items will be
  923. marked as so.  Press ENTER or the LEFT mouse button to confirm your
  924. selection. 
  925.  
  926. You will then be presented with the menu option editor screen.  From here,
  927. you tailor this particular menu option for an active role in your front
  928. end.  After you have made your changes or additions, pressing ESC will 
  929. return you to the menu item selector list, and will automatically retain
  930. your changes.  These changes are *not* written to disk, however, until you
  931. actually SAVE the .CTL file from the main menu!
  932.  
  933. DESCRIPTION
  934. - Selecting this item will prompt you for a textual description which more
  935.   or less describes this option to your users.  The contents of this field
  936.   will be presented to your users at show time.  This field also serves
  937.   the role of "deleting" menu items, or making them temporarily inactive.
  938.   By removing the description, BFE will not activate this option for your
  939.   users.  
  940.  
  941.   Examples:     Select me to enter Under the Nile BBS!
  942.                 Download our master file listing
  943.                 Receive subscriber information
  944.  
  945. HOTKEY
  946. - The hotkey field is a simple, yet necessary one.  The keystroke you enter
  947.   in this field will be displayed next to the textual description entered
  948.   above in the DESCRIPTION field.  The "hotkey" field represents the keypress 
  949.   needed to activate the option.  You may use any character for this, however, 
  950.   if you chose an alpha character (A through Z), it will use the uppercase 
  951.   form of the character.  In other words, if you put a lowercase letter in as 
  952.   a hotkey, BFE/Setup will convert it to uppercase.
  953.  
  954. FLAVOR
  955. - BFE currently supports two option "flavors": NORMAL and HIDDEN.  All items
  956.   marked as NORMAL will be displayed to your users.  Any items which are
  957.   labeled as HIDDEN will remain active, but will not be displayed to your
  958.   users.  This field serves no special purpose if you are using custom
  959.   user-defined menus!
  960.   
  961. OPTION TYPE
  962. - This is perhaps the most critical part of configuring your new BFE system.
  963.   Each menu option must have a valid TYPE.  This type determines the action
  964.   that BFE will take if and when a user selects this menu option from the
  965.   menu.  This action can range from something as simple as exiting on an
  966.   errorlevel to the calling batch files, to more complex actions, such as 
  967.   remote shells to your operating system!
  968.   
  969.   Keep in mind that the contents of this field determine the meaning and
  970.   use of other fields on the menu option editor screen.  These relationships
  971.   are described in the type definition listing below.
  972.   
  973.   The following is a breakdown of the available menu types in BFE:
  974.   
  975.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  976.                 TYPE: E
  977.                 DESC: Errorlevel Exit (Lower DTR)
  978.   SECONDARY CONTAINS: Valid numeric DOS errorlevel (5-255)
  979.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  980.  
  981.   Specifying an "E" as the type will cause BFE to exit back to the calling
  982.   batch file with an errorlevel.  This is perhaps one of the more powerful
  983.   types, as it provides virtually unlimited possibilities.  Simply place the
  984.   errorlevel you wish to exit with in the SECONDARY FIELD.  As an example, 
  985.   you could call one BBS with an errorlevel of 100, and another one with an 
  986.   errorlevel of 101, etc.  Basically, as long as you trap the errorlevel 
  987.   in your calling batch file, you could do practically anything!  
  988.   
  989.   This menu type will lower the DTR of the modem, and hang up on the current
  990.   user.
  991.  
  992.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  993.                 TYPE: 2
  994.                 DESC: Errorlevel Exit
  995.   SECONDARY CONTAINS: Valid numeric DOS errorlevel (0-255)
  996.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  997.  
  998.   This menu type is similar to the menu type "E" above, with one exception:
  999.   The DTR of the modem will remain high.  This comes in handy when running
  1000.   BFE as a normal door, allowing the user to exit BFE, but return to your
  1001.   BBS or host software.
  1002.   
  1003.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1004.                 TYPE: R
  1005.                 DESC: Run an External Process
  1006.   SECONDARY CONTAINS: Path/filename of external program or batch file
  1007.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1008.   
  1009.   Specifying an "R" as the type will cause BFE to execute (run) an external
  1010.   process.  This is also an incredibly powerful option, in very much the same
  1011.   way as the "E" type.  The benefit of using "R" over "E" is simple:  You
  1012.   don't have to fiddle with the calling batch file and trapping the 
  1013.   errorlevels.  In addition, if the PASSPARMS (described later) option is 
  1014.   enabled, BFE will pass the communication parameters on the command line for 
  1015.   you.  This feature is unavailable in an "E" type errorlevel exit!  BFE will 
  1016.   attempt to swap itself out to memory or disk first, to ensure that you have 
  1017.   as much memory as possible to call your task.  If you wish to run a program 
  1018.   that requires command line parameters or switches, you can do this in one 
  1019.   of two ways.  You can place all of the switches in a batch file, and have 
  1020.   BFE call the batch file, or you can make use of the PROCESS field, and its
  1021.   macros.  Your call! 
  1022.     
  1023.   Simply place the name of the external process in the SECONDARY FIELD.  You 
  1024.   may specify the full path, or just the filename if it resides in your path 
  1025.   or the BFE directory.
  1026.  
  1027.   ** NOTES:  I cannot stop expressing the sheer power of this type!  You can
  1028.   use this to call bulletin doors, message entry doors, Doorway, etc.  BFE 
  1029.   works especially well with RegPRO, our full screen online entry form 
  1030.   system! :-) It is possible to call a program such as Marshall Dudley's 
  1031.   Doorway(tm).  In fact, this has been tested and confirmed by several BFE 
  1032.   corporate beta sites.  Since BFE passes the port and baud rate to any 
  1033.   external processes, it is a cinch.
  1034.   
  1035.   If you experience problems running certain programs via this option, your
  1036.   command line parameters may not be coming across as you think they are. We
  1037.   have included a small program called CMDLINE.EXE, which allows you to "test"
  1038.   your command lines from BFE.  Simply run this program instead of the program
  1039.   in question, and the command line parameters passed to the program will be
  1040.   displayed on your screen.      
  1041.  
  1042.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1043.                 TYPE: P
  1044.                 DESC: Page Sysop
  1045.   SECONDARY CONTAINS: N/A
  1046.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1047.   
  1048.   When the user selects a menu option which has been labeled as a type "P",
  1049.   BFE initiates the sequence of events leading to a chat session with the
  1050.   sysop or current operator.  BFE first checks the paging hours as configured
  1051.   in BFE/Setup (Global Options), and if valid, will prompt the user for a 
  1052.   "reason to chat".  If the user simply hits ENTER, then the page attempt
  1053.   is aborted.  If the user enters a reason, BFE will begin to page the
  1054.   sysop.  You can break in to chat by pressing CTRL-C at any time.
  1055.  
  1056.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1057.                 TYPE: A 
  1058.                 DESC: Toggle ANSI Graphics
  1059.   SECONDARY CONTAINS: N/A
  1060.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1061.   
  1062.   This menu type merely allows the current user to switch BFE in and out
  1063.   of ANSI graphics mode.
  1064.  
  1065.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1066.                 TYPE: O 
  1067.                 DESC: Shell to Operating System
  1068.   SECONDARY CONTAINS: N/A
  1069.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1070.   
  1071.   For those of you wish to drop to DOS from remote, this is the one!  Simply
  1072.   place an O as the type.  BFE will make use of the COMSPEC enviroment 
  1073.   variable to locate your command processor (COMMAND.COM, 4DOS.COM, etc).  To 
  1074.   return to BFE, simply type exit at your command prompt.
  1075.  
  1076.   One note is in order here. You may run any program you desire from remote,
  1077.   once you are in the OS shell.  However, keep in mind that unless the 
  1078.   program supports DOS routing, then you will not see any output on your 
  1079.   screen.  Most command line utilities will work just fine, as well as the 
  1080.   internal DOS commands, however, things like Windows, PC-Tools, etc will not 
  1081.   function properly, and will more than likely lock your system.  If you 
  1082.   enable your fossil watchdog, you should be fine in the event you get hung 
  1083.   up.  Check your fossil documentation for more information on the watchdog 
  1084.   services.
  1085.  
  1086.   With the inherent power that arrives by shelling to your OS from remote, 
  1087.   you should always password protect this option!  
  1088.  
  1089.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1090.                 TYPE: D 
  1091.                 DESC: Display a File (ANSI/ASCII/AVATAR)
  1092.   SECONDARY CONTAINS: Path/filename of file (extension optional)
  1093.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1094.  
  1095.   This nifty type will allow you to display an ANSI, ASCII, or AVATAR file to
  1096.   the user.  To use this option, simply place the filename of the file to be
  1097.   displayed in the SECONDARY FIELD.  If you do not specify an extension, then
  1098.   BFE will look for the filename which corresponds to the user's graphic
  1099.   settings.  When BFE first comes up, it performs an Automatic ANSI detection
  1100.   loop.  It makes an attempt to determine whether or not the user is calling
  1101.   from an ANSI-ready terminal.  If so, then BFE will display FILENAME.ANS or
  1102.   filename.AVT (ANSI or AVATAR, depending on his settings).  If not then
  1103.   FILENAME.ASC will be used.  You may also specify the extension, if you only
  1104.   want one file to be used, such as RELEASES.TXT.  You may specify a full 
  1105.   path, or just the filename if the file is in the BFE directory.
  1106.  
  1107.   BFE will automatically engage "more prompting" when displaying screens that
  1108.   are over 1 screen in length.
  1109.  
  1110.   ** NOTE: BFE "interprets" the file as it is being displayed to the COM port.
  1111.   It is capable of interpretting embedded system codes used by RemoteAccess.
  1112.   For more information on these codes, please refer to your RA documentation.
  1113.   More embedded code schemes, such as WildCat! and PCBoard will be added in
  1114.   future releases.
  1115.  
  1116.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1117.                 TYPE: F 
  1118.                 DESC: Download a File
  1119.   SECONDARY CONTAINS: Path/filename of file to be downloaded
  1120.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1121.  
  1122.   This type will allow the user to download a file (ratio free) from BFE,
  1123.   without having to log onto your BBS first.  This is particularly handy, 
  1124.   especially if you are a shareware author, as you can offer the latest 
  1125.   versions of your products up front.  Trust me when I say that your long 
  1126.   distance users will admire you for this!  Simply place the filename to be 
  1127.   downloaded in the SECONDARY FIELD.  You may specify a full path, or just 
  1128.   the filename if the file is in the BFE directory.
  1129.  
  1130.   When the user selects this option, BFE will present a list of available
  1131.   protocols (configured via the PROTOCOL EDITOR in BFE/Setup).
  1132.  
  1133.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1134.                 TYPE: U 
  1135.                 DESC: Upload a File
  1136.   SECONDARY CONTAINS: N/A
  1137.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1138.   
  1139.   This menu type is very similar to the type "F" above, only it allows your
  1140.   users to upload files to your system rather than downloading them.  In  
  1141.   addition, if the protocol in which the user has selected has been setup to
  1142.   "Prompt for Filename", then BFE will prompt for this information, and
  1143.   pass it to the protocol dispatcher (once again, configured in the PROTOCOL
  1144.   EDITOR in BFE/Setup).
  1145.  
  1146.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1147.                 TYPE: M 
  1148.                 DESC: Download file from a list
  1149.   SECONDARY CONTAINS: Path of FILES.BBS to use for listing
  1150.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1151.   
  1152.   This type is very similar to the "F" type, with one exception.  Instead of
  1153.   downloading a specific file, the user will be presented with a list of the
  1154.   available files, from which he/she may choose the file to be downloaded.
  1155.   In order to use this type, a "files list" must be created, and the full    
  1156.   path to the list must be placed in the SECONDARY FIELD.
  1157.  
  1158.   This list should be in the following format:
  1159.   ---------------------------[ CUT HERE! ]---------------------------------  
  1160.  
  1161.                 Cairo Research Labs Free File List
  1162.  
  1163.   D:\CAIRO\AVLAB100.ZIP  AVLab v1.0 - Antiviral Researcher's Toolkit!
  1164.   D:\CAIRO\RCS10A.LZH    Robot Construction Set v1.0a - For Fidonet Areas
  1165.   D:\CAIRO\RP_260.LZH    RegPRO v2.60 - World's Premier Questionnaire Door!
  1166.   D:\CAIRO\TBM_250.LZH   Turbo Bulletin Manager Door v2.50
  1167.   D:\CAIRO\TBWIN111.LZH  TBWin v1.11 - Windows Interface for TBAV utils
  1168.   D:\CAIRO\TFA100B.LZH   Turbo File Announcer 1.0ß - Maximus File Announcer 
  1169.   D:\CAIRO\VK_300A.LZH   VKill v3.00A - Upload Tester for Maximus CBCS
  1170.   D:\CAIRO\VID201.ZIP    VID v1.10 - Virus Information Door - For most BBSs 
  1171.   D:\CAIRO\VP0793.ZIP    Updated VID Virus Database - as of March 1993
  1172.   D:\CAIRO\WINVID10.LZH  WinVID v1.0 - Windows Virus Database!
  1173.   D:\BETA\RP_300B.LZH    Beta version of the upcoming RegPRO 3.0 release!
  1174.  
  1175.   ---------------------------[ CUT HERE! ]---------------------------------  
  1176.  
  1177.   As you can see, this is a modified version of the standard FILES.BBS, with
  1178.   the only difference being that the full path to each file needs to be 
  1179.   present. This provides a nifty way of pulling files from all over your 
  1180.   system to a single file download menu.  In this way, you need not use any 
  1181.   of the FILES.BBS files that your BBS uses, you can create a custom one and 
  1182.   place it in another directory, such as the BFE directory.
  1183.  
  1184.   All that is needed in the secondary field is the PATH to the FILES.BBS, not
  1185.   the entire path/filename.  The name FILES.BBS is assumed.
  1186.  
  1187.   Once again, the user will be presented with a list of available protocols
  1188.   which are defined in the PROTOCOL EDITOR.
  1189.  
  1190.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1191.                 TYPE: J 
  1192.                 DESC: Jump to another menu (.CTL file)
  1193.   SECONDARY CONTAINS: Path and filename of new .CTL file
  1194.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1195.   
  1196.   Through the use of the "J" type, you can have BFE call a completely 
  1197.   different .CTL file!  This is handy when you need to group several options 
  1198.   together:
  1199.   
  1200.   For example:
  1201.                           Top Menu (MAIN.CTL)
  1202.                           -       -
  1203.                           -       -
  1204.    Sysop Menu (SYS.CTL)<---       ----> Product Info (PROD.CTL)
  1205.  
  1206.    Menus can be nested up to 10 levels.  If you try to go beyond this, BFE
  1207.    will simply post a warning message and re-display the current active menu.
  1208.    Although we feel that 10 levels of menu nesting is quite adequate for a
  1209.    BBS front end, this will more than likely become limited only by available
  1210.    memory in the future.
  1211.  
  1212.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1213.                 TYPE: X 
  1214.                 DESC: Return from a jump 
  1215.   SECONDARY CONTAINS: N/A
  1216.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1217.  
  1218.   Use this option to provide a method of returning from a subordinate .CTL
  1219.   file menu back to the .CTL file menu that called it.
  1220.  
  1221.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1222.                 TYPE: T 
  1223.                 DESC: Return to main menu
  1224.   SECONDARY CONTAINS: N/A
  1225.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1226.  
  1227.   This menu type simply provides a hook from returning to the original .CTL
  1228.   file menu (i.e. the one that BFE started with initially), from any level
  1229.   of nesting.  A short cut, if you will.
  1230.  
  1231.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1232.                 TYPE: S 
  1233.                 DESC: Run a BFE Script Program
  1234.   SECONDARY CONTAINS: Path and filename of script to execute
  1235.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1236.   BFE has an internal script processor called BFE/Script.  You can create
  1237.   scripts to do just about anything!  An overview of the BFE/Script system
  1238.   appears later in this manual.
  1239.  
  1240.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1241.                 TYPE: L 
  1242.                 DESC: Enter a Message (*.MSG format)
  1243.   SECONDARY CONTAINS: Number of message area to use          
  1244.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1245.   BFE contains an internal line editor called BFE/Edit.  You may configure
  1246.   any of your menu options to have the user enter a message through the use
  1247.   of the internal editor.  The secondary field should contain the "number"
  1248.   of the message area to use.  This number corresponds directly to the list
  1249.   of message areas which appears by selecting MESSAGE BASES from the main
  1250.   menu of BFE/Setup. 
  1251.   
  1252.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1253.                 TYPE: G 
  1254.                 DESC: Goodbye (Log off)  
  1255.   SECONDARY CONTAINS: N/A
  1256.   -=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1257.  
  1258.   This type is fairly straightforward!  It hangs up on the user, and returns
  1259.   an errorlevel of 255 to the calling batch file.  
  1260.  
  1261. SECURITY
  1262. - If a certain security level is needed to access a particular menu item,
  1263.   specify this level here.  Please note that this option is *only* available
  1264.   when running BFE with a dropfile, not as a front end, since we have no idea
  1265.   who is actually online in a front end environment.
  1266.   
  1267. PORTSPEED
  1268. - The PORTSPEED option was provided to allow Sysops who lock their serial
  1269.   ports to pass either the TRUE port speed (i.e. 9600), or the LOCKED speed
  1270.   (i.e 38400).  This comes in handy when combined with download types or when
  1271.   calling another BBS door from a BFE menu option.
  1272.  
  1273.   * NOTE:  Be sure to check the additional serial port locking options that
  1274.            appear in the global options menu in BFE/Setup! These must be
  1275.            set as well!
  1276.  
  1277. PASSPARMS
  1278. - This option will force BFE to pass pertinent communication information on
  1279.   the command line in type "R" menu items.  The parameters are passed in the
  1280.   following order:
  1281.   
  1282.         %1 = port (1-4) (0 if local)
  1283.         %2 = speed (baud rate) (0 if local)
  1284.         %3 = time to next event
  1285.         %4 = node number (0 if not known)
  1286.                 
  1287. PROMPT
  1288. - The PROMPT keyword will force BFE to stop and get input from the current
  1289.   user, and will store the results of his data entry into the PROCESS field,
  1290.   which is described next.  This information is then passed on the command
  1291.   line in type "R" menu options.  Using this option will override anything
  1292.   that you have entered into the PROCESS field!
  1293.   
  1294. SECONDARY FIELD
  1295. - The SECONDARY field is used as a catch-all field in BFE.  Its contents and
  1296.   internal use are based solely on the menu type.  It can contain anything
  1297.   from a simple errorlevel (for type "E" items), to a filename to be down-
  1298.   loaded in a download type (type "F").  The relevance of this field is 
  1299.   described above, for each menu type that uses it.
  1300.  
  1301. PROCESS
  1302. - The PROCESS field was designed to pass parameters to external tasks (other
  1303.   than the default communication parameters toggled by PASSPARMS).  This 
  1304.   field is used automatically by the PROMPT feature.  The following macros
  1305.   are available for use in this field:
  1306.  
  1307.         %p = port (1-4) (0 if local)
  1308.         %s = speed (baud rate) (0 if local)
  1309.         %t = time to next event
  1310.         %n = node number
  1311.   
  1312. SHOWAFTER
  1313. - This field is used to display an ANSI/ASCII/AVATAR screen to your users
  1314.   AFTER they select the menu item, but BEFORE the task is carried out.  See
  1315.   the description of the type "D" option for more information on how BFE
  1316.   handles the display of external files.
  1317.  
  1318. PASSWORD
  1319. - Any menu item in BFE can be password protected!  Simply place the desired
  1320.   password in this field.  When the user selects an option that has an
  1321.   associated password, BFE will prompt him/her for the password.  After 3
  1322.   failed attempts, BFE hangs up on the user and returns control to the 
  1323.   calling batch file.
  1324.   
  1325. COLOR OVERRIDE
  1326. - When using BFE's internal menus (i.e. no custom user menus), the menus
  1327.   will be displayed using the default menu color scheme configured under
  1328.   the Global Options menu.  Should you wish to override any or all of those
  1329.   colors, simply select this item!  A color picklist will appear, and will
  1330.   allow you to select the appropriate color for the current menu item.  While]
  1331.   in the picklist, pressing PGUP/PGDN will toggle between the blinking colors
  1332.   (flashing) and the constant colors.
  1333.   
  1334. CREATE DROPFILE
  1335. - This option, when enabled, will force BFE to create a bbs dropfile based
  1336.   on the current user's settings.  This dropfile will be created in the BFE
  1337.   directory.  This can be particularly handy when running other doors from
  1338.   your BFE menus.  Currently, the only dropfile supported here is the standard
  1339.   DORINFO?.DEF format, although more will be added in the future.
  1340.  
  1341.  ┌────────────────┐
  1342. ▄│  Menu Options  │
  1343. █└────────────────┘
  1344. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀      
  1345.  
  1346. Under the MENU OPTIONS selection, you are able to further tailor the current
  1347. menu to your liking.  
  1348.  
  1349. REGISTRATION MESSAGE
  1350. - By default, BFE displays its own registration message at the top of the
  1351. screen (both local and remote).  If BFE is unregistered, it will display
  1352. "** Unregistered Evaluation Copy **".  Upon registering BFE, this will
  1353. be replaced by "Registered to: <your name>".  However, registration of BFE
  1354. allows you to change this default registration message to whatever you like,
  1355. and since the message appears at the top of each menu, you could give a 
  1356. different message for each menu, providing a title line.
  1357.  
  1358. - CUSTOM USER MENU
  1359. By default, BFE will make use of an internal menu scheme.  This scheme is
  1360. very attractive to the eye and easy to follow.  However, at some point, you
  1361. may wish to create "custom" user menus.  These custom menu screens can be
  1362. created using your favorite editor or ANSI paint program.  Simply place the
  1363. full path and filename in this field (path optional).  If you do not specify
  1364. an extension to the file, BFE will insert the extension at runtime, based
  1365. on the user's graphic settings (i.e. ANSI/ASCII/AVATAR).  See the section on
  1366. the type "D" menu option for more information on how BFE handles the 
  1367. displaying of external files.
  1368.  
  1369. CUSTOM COLORS
  1370. - You may select custom colors for each "piece" of the default menu set.
  1371. These settings are initialized to the settings which were configured in the
  1372. GLOBAL OPTIONS menu, but can be overriden for each of your menus to provide
  1373. a custom look.                                             
  1374.  
  1375.  ┌─────────────┐
  1376. ▄│  Protocols  │
  1377. █└─────────────┘
  1378. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀       
  1379.  
  1380. Here is where all external protocols are configured for use within BFE.  This
  1381. is a very painless process, as you will soon find out!  You may configure
  1382. up to 10 external protocols.  There are three fields for each:
  1383.  
  1384. Menu Name       - Textual description which will describe this protocol to
  1385.                   your users (i.e. ZModem, YModem, etc).
  1386.  
  1387. Batch Processor - The full path and filename of a batch file which will be
  1388.                   called when a user selects to transfer a file with this
  1389.                   protocol.
  1390.                   
  1391. Prompt for File - Some protocols automatically recognize the filename being
  1392.                   uploaded (i.e. ZModem), others do not (XModem).  If BFE
  1393.                   needs to ask the user for the filename, specify a "Y" in
  1394.                   this field.
  1395.  
  1396. BFE passes the following parameters to the configured batch file(s):
  1397.               
  1398.               %1 - Node number
  1399.               %2 - Port number (1-4)
  1400.               %3 - Serial Speed
  1401.               %4 - Filename (complete path, if specified in SEC.)
  1402.               %5 - U = Upload D = Download  
  1403.  
  1404. It is up to you to put these batch files together (although the DSZ sample
  1405. set should suffice for all but the most giving of sysops!).  Also, since the
  1406. file transfer hook is provided in batch, this affords you the opportunity to
  1407. do additional processing, such as scanning uploads for viruses, or moving
  1408. uploads to another area on your system.  Endless.
  1409.  
  1410.  ┌──────────────┐
  1411. ▄│  Local Test  │
  1412. █└──────────────┘
  1413. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀        
  1414.   
  1415. From this option, you can test out your BFE configuration in local mode,
  1416. to test your menu sets.  BFE looks for a batch file called BFELOCAL.BAT in
  1417. your BFE directory.  It is up to you to place the necessary call to BFE
  1418. in this batch file.  A sample BFELOCAL.BAT file has been included in the
  1419. distribution archive.  The only thing you need to change (essentially) is
  1420. the name of the .CTL file to start with.
  1421.  
  1422.  ┌─────────────────┐
  1423. ▄│  Message Bases  │
  1424. █└─────────────────┘
  1425. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀        
  1426.  
  1427. OVERVIEW
  1428.  
  1429. -  BFE has the ability to make use of Fidonet style *.MSG message areas.  You
  1430.    can configure up to 20 message areas by selecting the MESSAGE BASES option 
  1431.    from the BFE/Setup main menu.  After selecting this option, you will be 
  1432.    presented with a picklist of the available areas.  To configure an area,
  1433.    simply select the area to edit by using the cursor keys (or mouse) and
  1434.    pressing RETURN.  This pulls up the Message Area Editor.  There are a 
  1435.    number of options which need to be configured for each message area that 
  1436.    you wish to use with BFE.
  1437.  
  1438. PATH/FILENAME OF AREA
  1439.  
  1440. -  Plain and simple.  This merely points to the directory which should be 
  1441.    used to contain BFE generated messages.  This can be a public netmail 
  1442.    area, or a private area, for use as a feedback forum.   
  1443.  
  1444.         Examples: C:\FD\PVTMAIL
  1445.                   C:\BINKLEY\NETMAIL
  1446.   
  1447. DESTINATION ADDRESS
  1448.  
  1449. - This is the fidonet style network address which represents the destination
  1450.   of the message.  To keep messages locally, simply enter your own address.
  1451.  
  1452. ORIGINATING ADDRESS
  1453.  
  1454. - This is the fidonet style network address which represents YOUR network
  1455.   address.
  1456.   
  1457. MESSAGE ATTRIBUTES
  1458.  
  1459. - The following message attributes may be enabled:
  1460.         
  1461.         - PRIVATE
  1462.         - CRASH
  1463.         - HOLD
  1464.         - KILL/SENT
  1465.         - FILE ATTACH
  1466.         - FILE REQUEST
  1467.         
  1468.   Additional message attributes may be added in the future.  Simply answer
  1469.   "Y" or "N" for each attribute.  Any message that BFE generates for this
  1470.   area will have the configured attributes.
  1471.  
  1472. DEFAULT "TO" FIELD
  1473.  
  1474. - To provide a default "to" field for the message, simply enter this here. 
  1475.   If you leave this field blank, BFE will prompt the user for a recipient's
  1476.   name before he/she enters the message.
  1477.           
  1478.         Examples: Sysop
  1479.                   areafix
  1480.                   Scott Burkett
  1481.                   
  1482. DEFAULT "FROM" FIELD
  1483.  
  1484. - To provide a default "from" field for the message, simply enter this here. 
  1485.   If you leave this field blank, BFE will prompt the user for their name
  1486.   before he/she enters the message.
  1487.           
  1488.         Examples: Sysop
  1489.                   areafix
  1490.                   Scott Burkett
  1491.                   
  1492. DEFAULT "SUBJECT" FIELD
  1493.  
  1494. - To provide a default subject field for the message, simply enter this here.
  1495.   If you leave this field blank, BFE will prompt the user for a subject before
  1496.   he/she enters the message.
  1497.  
  1498.         Examples: Feedback
  1499.                   mypass -R -Q
  1500.  
  1501. BRIEF DESCRIPTION
  1502.  
  1503. - A brief description is required for each of your configured message areas.
  1504.   This description is the same text used in the message area selector list.
  1505.  
  1506.         Examples: Feedback to Sysop Area
  1507.                   Areafix Request Area
  1508.  
  1509. ────────────────────────────────────────────────────────────────────────────
  1510.                        ■ THE BFE/SCRIPT SYSTEM ■
  1511. ────────────────────────────────────────────────────────────────────────────
  1512.  
  1513.  ┌─────────────────────────────┐
  1514. ▄│  Introduction and Overview  │
  1515. █└─────────────────────────────┘
  1516. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1517.  
  1518. BFE/Script is the name of the internal script processor in BFE.  Through the
  1519. use of this system, users are able to "code" their own BFE scripts, and call
  1520. them from their BFE menus.  Although the script language is somewhat 
  1521. limited in this release, we have big plans for it in the future.
  1522.  
  1523. In appearance, BFE/Script code is remarkably similar to the C language,
  1524. although C is a much more powerful platform.  In fact, the entire BFE
  1525. system was authored in C, while BFE/Script is but a user interface to the
  1526. BFE internals.  If you are a C programmer, or have dabbled in C, then you
  1527. should have no problems at all with BFE/Script.  Non-programmers should
  1528. be sure to read over this section in its entirety, and study the sample
  1529. scripts which are included in the BFE distribution archive.
  1530.  
  1531. Current features and constructs of BFE/Script include:
  1532.  
  1533.         - Access to internal BFE functions such as sysop paging, etc.
  1534.         - Parameterized functions with local variables
  1535.         - Function Recursion
  1536.         - Global variables
  1537.         - Keywords: if, do-while, while, for, and return.
  1538.         - Numeric and character variable types
  1539.         - Operators: +, -, *, /, %, <, >, <=, >=, ==, !=, unary +/-
  1540.         - Functions which return integers
  1541.         - BFE/Script is completely case-insensitive (unlike C!)
  1542.  
  1543. More BFE/Script functions and procedures will be added in future releases.
  1544. Should you have any suggestions on possible additions to this unique feature
  1545. of BFE, please contact us!
  1546.  
  1547.  ┌─────────────────────────────────────────┐
  1548. ▄│  Script Syntax Rules and Coding Basics  │
  1549. █└─────────────────────────────────────────┘
  1550. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀     
  1551.  
  1552. As I mentioned earlier, BFE/Script is very similar to C, at least in the
  1553. general appearance of its code.  While this section is not meant to teach
  1554. C, many of the rules will apply to both C and BFE/Script.
  1555.  
  1556. All of your scripts should be edited with your favorite ASCII text editor,
  1557. such as Q-Edit, TED, DOS-Edit, etc.
  1558.  
  1559. Your BFE/Scripts are composed of functions, and calls to these functions.
  1560. Each of your functions must be completed enclosed in a "code-block".  For
  1561. example:
  1562.  
  1563.         printmessage() 
  1564.         {
  1565.           putsnl("Welcome to my first BFE script!");
  1566.         }
  1567.         
  1568. In the above example, the function "printmessage" is a user-defined function,
  1569. consisting of nothing more than a call to "putsnl" (put string with a CR/LF
  1570. pair).  There are two very essential concepts about the above.  The first
  1571. being the two curly braces which separate the function name, in this case,
  1572. putmessage(), and the actual function contents, the call to putsnl().
  1573.  
  1574. The second item of interest is the semi-colon following the call to putsnl().
  1575. This signifies the end of the current function call.  Let's take a look at
  1576. another small example:
  1577.  
  1578.  
  1579.         /* My first BFE Script! */
  1580.  
  1581.         main() {
  1582.           clearscreen();
  1583.           printmessage();
  1584.         }
  1585.         
  1586.         printmessage()
  1587.         {
  1588.           putsnl("Welcome to my first BFE script!");
  1589.           putsnl("Press any key to return to BFE!");
  1590.           getkey();
  1591.         }
  1592.  
  1593. In this example, we have expanded on our original printmessage() example.  
  1594. In actuality, the original example we discussed is not complete!  Each of
  1595. your BFE scripts *must* contain a function called "main".  This function is
  1596. used as the starting point of the script.  
  1597.  
  1598. In the above example, you will also notice the placement of the two curly
  1599. braces in the function main(), is a bit different from that of the function
  1600. printmessage().  Like C, BFE/Script is a free-format language, to an extent.
  1601. Spacing and line order doesn't matter.  As long as the constructs are present. 
  1602.  
  1603. In the above example, BFE/Script would start processing in the function
  1604. main(), with consists of nothing more than a call to printmessage().  When
  1605. printmessage() is executed, the two calls to putsnl() would display the
  1606. text to the user.  The call to getkey() would simply wait for a keypress
  1607. from the user.  At that point, control is returned to main().  Since main()
  1608. has no more processing left, BFE/Script in turn returns control back to BFE.
  1609.  
  1610. Let's take a look at the use of user-defined variables, as these will play
  1611. an important role in even the most primitive of scripts.  Currently, BFE
  1612. supports two types of variables, character and numeric.  Additional, more
  1613. advanced data types (such as floating point and string), will be introduced
  1614. in a later release of the package.
  1615.  
  1616. To define a user-defined variable, use the following construct:
  1617.  
  1618.                 <type> <identifier>
  1619.         
  1620. Here are a few examples:
  1621.  
  1622.                               int x,y,z;  
  1623.  
  1624. The above example creates three (3) numeric variables (integers) called
  1625. x, y, and z.  (Note the ability to separate variable definitions of the same
  1626. type with a comma!  You cannot mix more than one type like this).
  1627.  
  1628.                               char key;
  1629.                               char a,b,c;
  1630.                               
  1631. Similarly, the above examples generate character variables, called "key",
  1632. a, b, and c.
  1633.                         
  1634. All variables (unlike C) are automatically initialized to zero.  To set a 
  1635. variable's value, simply use the "=" operator:
  1636.  
  1637.         x = 10;
  1638.         y=1;
  1639.         key = 'A';
  1640.         
  1641. Variables declared inside of a function block are "local" to that function,
  1642. and are not available in any other function!  These "local" variables are
  1643. also re-initialized on each call to the owning function.  Similarly, any
  1644. variables declared outside of any function are declared as "global" variables
  1645. and are available anywhere in the script, in any function.  Global variables
  1646. retain their values unless explicitly changed.
  1647.  
  1648. Easy, isn't it?  Great!  Now that we have variables under our belt, let's
  1649. discuss some of the conditional keywords which BFE/Script makes use of.
  1650.  
  1651.         dumb_function() {
  1652.            int x;
  1653.            
  1654.            x = getnum();
  1655.  
  1656.            if(x < 10) {
  1657.              putsnl("Number is less than 10!");
  1658.            }
  1659.                      
  1660.            if(x == 10) {
  1661.              putsnl("Number is equal to 10!");
  1662.            }
  1663.            
  1664.            if(x > 10) {
  1665.              putsnl("Number is greater than 10!");
  1666.            }
  1667.         }
  1668.  
  1669. In the above function, we declare a local variable called "x".  We then
  1670. set this variable equal to the value returned by the getnum() function (the
  1671. getnum() function simply queries the user for a numeric value).  We then
  1672. put the contents of "x" through a series of tests, using the "if" keyword.
  1673. Simple, eh?
  1674.  
  1675.         dumb_function2() {
  1676.           int x;
  1677.           
  1678.           for(x=1; x<11; x=x+1) {
  1679.             print(x);
  1680.           }
  1681.         }
  1682.  
  1683. The above example uses a "for" loop to display the numbers 1 through 10.
  1684.  
  1685.         dumb_function3() {
  1686.           int x;
  1687.           x = 1;
  1688.                   
  1689.           while(x <= 10) {
  1690.             print(x);
  1691.             x = x + 1;
  1692.           }
  1693.         }
  1694.  
  1695. This example does the same thing, only instead of the "if" loop, we use a
  1696. "while" loop.
  1697.  
  1698.         dumb_function4() {
  1699.           int x;
  1700.           
  1701.           do {
  1702.              print(x);            
  1703.           } while(x <= 10);
  1704.         }
  1705.  
  1706. In the above example, we use a modified version of the "while" loop, known
  1707. as the "do-while" loop.  Simple, isn't it?
  1708.  
  1709. Ah, but what would code be without comments?  BFE/Script implements the
  1710. C-style "slash-asterisk" comment.
  1711.  
  1712.         /* This is my first script! */
  1713.  
  1714. Anything which falls in between the /* and the */ is ignored by BFE/Script
  1715. and treated as a comment.  Comments may span several lines:
  1716.  
  1717.         /* This is my first script!
  1718.                 Enjoy!
  1719.         */
  1720.                 
  1721. or how about:
  1722.  
  1723.         /* This is my first script!
  1724.                 
  1725.                 Enjoy it! */
  1726.  
  1727. On a final note, all items contained in a BFE script are case-insensitive.
  1728. In other words GETKEY() is the same as getkey() or GeTkEy().
  1729.  
  1730. That's about all of the help I can provide at this point.  As this feature
  1731. expands to new horizons as BFE progresses, the documentation on it will
  1732. inherently get better.  Trust me!  Feel free to post your scripts in the 
  1733. SPHINX echo should you require assistance.  Now, let's move on to the actual 
  1734. function calls contained with the scripting system.
  1735.  
  1736.  ┌─────────────────────────────┐
  1737. ▄│  Script Function Reference  │
  1738. █└─────────────────────────────┘
  1739. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀      
  1740.  
  1741. CENTERMSG();
  1742.         
  1743.         Centers the passed text string on the current line.
  1744.         
  1745.         Example: centermsg("Welcome to this script!");
  1746.  
  1747.  
  1748. CLEARSCREEN();
  1749.         
  1750.         Clears the screen both remotely and locally.
  1751.         
  1752.         Example: clearscreen();
  1753.         
  1754.  
  1755. DISPLAYFILE();
  1756.  
  1757.         Displays an ANSI/ASCII/AVATAR file to the user.  See the section on
  1758.         the type "D" menu option for more details on how BFE displays external
  1759.         files!
  1760.         
  1761.         Examples: Displayfile("WELCOME");
  1762.                   Displayfile("WELCOME.TXT");
  1763.  
  1764. DOWNLOADFILE();
  1765.  
  1766.         Initiates a download session for the passed file.
  1767.         
  1768.         Examples: Downloadfile("MASTER.ZIP");
  1769.                   Downloadfile("C:\FILES\MASTER.ZIP");
  1770.  
  1771.  
  1772. ERROR();
  1773.         
  1774.         Displays a BFE-style error message.
  1775.         
  1776.         Example: Error("Your error message goes here!");
  1777.  
  1778.         
  1779. ERRORLEVELLOW();
  1780.  
  1781.         Exits the current script and BFE with an errorlevel.  DTR is lowered.
  1782.         (Hangs up on user!)
  1783.         
  1784.         Example: errorlevellow("100");
  1785.  
  1786. ERRORLEVELHI();
  1787.  
  1788.         Exits the current script and BFE with an errorlevel.  DTR is left 
  1789.         high.  (Doesn't hang up on user!)
  1790.         
  1791.         Example: errorlevelhi("100");
  1792.  
  1793.  
  1794. GETKEY();       
  1795.  
  1796.         Gets a keystroke from the keyboard and returns the value.
  1797.         
  1798.         Example:  char key;
  1799.                   key = getkey();            
  1800.  
  1801. GETNUM();
  1802.         
  1803.         Gets and returns a numeric value from the user.   
  1804.  
  1805.         Example: int x;
  1806.                  x = getnum();
  1807.  
  1808.         
  1809. GOODBYE();      
  1810.         
  1811.         Hangs up on the user and exits BFE with an errorlevel of 255.
  1812.         
  1813.         Example: Goodbye();
  1814.  
  1815. LEAVEMSGSDM();
  1816.  
  1817.         Places the user in BFE/Edit using the passed message area number.
  1818.         The "SDM" portion of this command stands for "Star-dot-MSG", or
  1819.         "*.MSG", which is the fidonet standard.
  1820.                 
  1821.         Examples: leavemsgsdm("1");
  1822.                   leavemsgsdm("8");
  1823.  
  1824. MAKEDORINFO(); 
  1825.  
  1826.         Creates a DORINFO?.DEF file in the BFE directory.
  1827.  
  1828.         Example: makedorinfo();
  1829.  
  1830.  
  1831. MENU();
  1832.  
  1833.         Queries the user for a response.  All valid keystrokes are passed as
  1834.         a parameter.  MENU() returns the first valid keystroke.
  1835.  
  1836.         Example: char key;
  1837.         
  1838.                  putsnl("1 - Option 1");
  1839.                  putsnl("2 - Option 2");
  1840.                  putsnl("Q - Quit this script");
  1841.                                  
  1842.                  key = menu("12Qq");
  1843.  
  1844.  
  1845. OS_SHELL();
  1846.  
  1847.         Performs a remote (or local) shell to the contents of COMPSEC.
  1848.                 
  1849.         Example: os_shell();
  1850.         
  1851.  
  1852. PAGE();
  1853.  
  1854.         Initiates a page to the sysop.  All hour restrictions are valid!
  1855.         
  1856.         Example: page();
  1857.         
  1858. PRINT();
  1859.  
  1860.         Used to display numeric values.
  1861.         
  1862.         Example: int x;
  1863.                  x = getnum();
  1864.                  print(x);
  1865.         
  1866.          
  1867. PUTCH();
  1868.  
  1869.         Puts a single character to the display.
  1870.         
  1871.         Example: putch('*');
  1872.         
  1873.  
  1874. PUTS();
  1875.         
  1876.         Puts a string to the display (no carriage return/linefeed!).
  1877.         
  1878.         Example: puts("Testing!");
  1879.         
  1880.  
  1881. PUTSNL();
  1882.         
  1883.         Puts a string to the display, and appends a carriage return/linefeed.
  1884.         PUTSNL is short for "put string with a next/line.
  1885.                 
  1886.         Example: putsnl("Testing again!");
  1887.         
  1888.  
  1889. RUNEXTERNAL();
  1890.  
  1891.         Runs an external process.  All "process" macros (%p, %s, %t, %n)
  1892.         are available.
  1893.         
  1894.         Examples: runexternal("DOOR.EXE -p%p -s19200 -t%t -n%n");
  1895.                   runexternal("COMMAND.COM /C del dorinfo1.def");
  1896.  
  1897.         
  1898. SETCOLOR();
  1899.  
  1900.         Sets the current text attribute.  The following color codes format
  1901.         table is used:
  1902.         
  1903.            {Bright} {Flashing} [Foreground Color] on [Background Color]
  1904.   
  1905.         Where foreground and background colors are one of:
  1906.  
  1907.           Black
  1908.           Blue
  1909.           Green
  1910.           Cyan
  1911.           Red
  1912.           Magenta
  1913.           Yellow / Brown
  1914.           White / Grey
  1915.  
  1916.         Examples: setcolor("bright white on black");
  1917.                   setcolor("flashing bright yellow on blue");
  1918.                   
  1919. TOGGLEANSI();
  1920.  
  1921.         Toggles ANSI graphics on and off.
  1922.         
  1923.         Example: toggleansi();
  1924.         
  1925.  
  1926. UPLOADFILE();
  1927.  
  1928.         Initiates an upload from the user.
  1929.         
  1930.         Example: Uploadfile();
  1931.  
  1932.  
  1933. WRITELOG();
  1934.  
  1935.         Used for logging information from BFE/Script.
  1936.                 
  1937.         Example: writelog("This is a test!");
  1938.  
  1939. ────────────────────────────────────────────────────────────────────────────
  1940.                       ■ MANAGING YOUR BFE SYSTEM ■
  1941. ────────────────────────────────────────────────────────────────────────────
  1942.  
  1943.  ┌───────────────────────────────────────┐
  1944. ▄│  Operator Notes and Special Features  │
  1945. █└───────────────────────────────────────┘
  1946. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀       
  1947.  
  1948.  
  1949.                         GlobalAccess(tm) Commands:
  1950.  
  1951. There will be times when you will want to offer certains options from *all*
  1952. of your BFE menus (i.e. Sysop pager, goodbye, etc).  Through the use of the
  1953. GlobalAccess(tm) system, this is now possible in BFE.  To enable this 
  1954. feature, simply create a new menu .CTL file called GLOBAL.CTL.  Place all of
  1955. your global options in this menu and save it.  When BFE is executed, this
  1956. file is read in automatically, and all of the options contained in it are
  1957. "appended" to the contents of your regular menus.
  1958.  
  1959.  
  1960.                             BFE Language File:
  1961.  
  1962. In order to further allow the user to customize the operation of BFE, an
  1963. external "language" file has been implemented.  This file is a simple text
  1964. file, which contains a series of keywords and text fields.
  1965.  
  1966. Quite a bit of BFE's internal text messages can be customized!  Upon startup,
  1967. BFE looks for a file called BFE.LNG (The BFE Language File).  The format and
  1968. options of this file are as follows:
  1969.  
  1970. ;-----------------------------------------------------------------------------
  1971. ;                  Sample BFE Language Configuration
  1972. ;
  1973. ;  CURRENT MACRO KEYS:  ~ = Carriage Return/Linefeed
  1974. ;
  1975. ;-----------------------------------------------------------------------------
  1976.  
  1977. BEFORECHAT  ~~Hello, this is Scott...~~ 
  1978. AFTERCHAT   ~~Back to BFE you go!~~
  1979. BEFORESHELL ~~Please wait a moment...~~
  1980. AFTERSHELL  ~~...Thanks for waiting!~~
  1981. CHATREASON  Why would you like to chat? (Include your name!!)~~
  1982. CONTINUE    Continue? [Y/n/=]
  1983. TIMEOUT     User sleeping at keyboard, inactivity timeout...~~
  1984. NOTAVAIL    ~I'm sorry, Scott isn't around right now!~
  1985. NORESPONSE  No response.~~
  1986. OUTTATIME   Sorry, you have used up your time for today...~~
  1987. OFFLINE     [OFFLINE]
  1988. PAGINGMSG   ~Screaming at Scott ... might take a second or two....
  1989. PRESSKEY    Press [ENTER] to continue...
  1990. DEFUSERNAME Inbound user
  1991. DEFUSERLOC  Unknown
  1992. ;-----------------------------------------------------------------------------
  1993.  
  1994. The above examples should be self explanatory.  Additional textual 
  1995. customization features will be added to this .LNG file as the product grows.
  1996. Currently, this feature is only enabled in registered versions of BFE.
  1997.  
  1998.                        Using BFE with BBS Dropfiles
  1999.  
  2000. If BFE locates an enabled Dropfile path in your global options, it will    
  2001. attempt to make use of a BBS dropfile, effectively ignoring any relevant
  2002. command line communication arguments.  If you wish to run BFE as a normal 
  2003. door from your BBS, you will need to specify a valid path for this option in
  2004. BFE/Setup.  If you are running BFE as a front-end to your system (i.e. 
  2005. called from a mailer), do *not* put a path in the dropfile directory field!
  2006.  
  2007. It appears that the BBS world simply cannot agree on a standard dropfile
  2008. format.  For a while, it appeared as if the DORINFOx.DEF, or perhaps the
  2009. DOOR.SYS format would prevail.  However, with the release of RemoteAccess
  2010. v2.0+, that myth has apparently been shattered, as the RA author decided to
  2011. introduce yet another dropfile format.  We will continue to add and support
  2012. all of the popular dropfile formats, regardless of how hairy it gets... :-)
  2013.  
  2014. BFE by default does not look for a BBS dropfile, since it was originally
  2015. designed to be run as a frontend (i.e. *BEFORE* the user had actually logged
  2016. on to the BBS).
  2017.  
  2018. As of v1.22 of BFE, a "smart" method of dropfile detection has been employed.
  2019. BFE first looks in the current directory for the dropfile.  If it is not
  2020. there, it looks in the DOS path.  If the dropfile mode is enabled, and BFE
  2021. can not locate a dropfile, it will not run!
  2022.  
  2023.    1.) First, if there was a custom door information file format
  2024.        defined in the CUSTOM.BFE file, BFE will begin by looking   
  2025.        for this file. BFE searches for the custom information file 
  2026.        in the following order:
  2027.  
  2028.              A.) The path defined by the BBS Directory option
  2029.              B.) The directory which was the current default dir
  2030.                  at startup time
  2031.              C.) If any of the following environment variables
  2032.                  exist, BFE will then search for the file
  2033.                  in the directories pointed to by these variables,
  2034.                  in the following order:
  2035.                               RA
  2036.                               QUICK
  2037.                               PCB
  2038.                               BBS
  2039.  
  2040.    2.) If no custom door information file was found / defined,
  2041.        BFE will then search for door information files
  2042.        corresponding to one of the built in formats. It will search
  2043.        for these files in the same directories, and same order, as
  2044.        it does for the custom door information file (A - C). Within
  2045.        each directory, it will search for files with the following
  2046.        filenames:
  2047.  
  2048.                          CHAIN.TXT
  2049.                          SFDOORS.DAT
  2050.                          DOOR.SYS
  2051.                          CALLINFO.BBS
  2052.                          DORINFO1.DEF
  2053.                          DORINFOx.DEF, where x is the node number
  2054.  
  2055.        As soon as it finds a directory containing one of these
  2056.        filenames, BFE will stop it's door information file
  2057.        search phase. It then begins to decide what to do with what
  2058.        it has found. If more than one of the above filenames was
  2059.        found in the directory in question, BFE will read the
  2060.        file with the most recent date and time stamp. This is intended
  2061.        to overcome abiguities that can arise when a door information
  2062.        file conversion program is being used, and a number of
  2063.        different door information files may still exist in the
  2064.        directory. In such a case, it is assumed that the most recently
  2065.        created file is the one that should be used. If more than one
  2066.        file exist with an identical date and time, BFE will use
  2067.        the file that is closer to the beginning of the above list. (ie
  2068.        they are listed in their order of priority)
  2069.  
  2070.        Once BFE has decided which file it is going to use, it
  2071.        may have still more decision-making to do. In the case of
  2072.        door information file names that correspond to more than one
  2073.        format (such as DOOR.SYS), BFE will examine the file
  2074.        to determine which format it actually is. If a DORINFO?.DEF
  2075.        file is found, BFE will then also attempt a search for an
  2076.        EXITINFO.BBS file.  Again, if an EXITINFO.BBS file is found, BFE
  2077.        must determine which of the many EXITINFO.BBS formats it is actually
  2078.        dealing with.
  2079.  
  2080.        This may all sound rather complicated, but it is a well thought-
  2081.        out strategy that is intended to asure that the correct door
  2082.        information file will be located and used in the vast majority
  2083.        of cases. (and to think - it does all this in the blink of an
  2084.        eye!)
  2085.  
  2086. As of v1.22, BFE recognizes the following dropfile formats:
  2087.  
  2088.         DORINFOx.DEF (Standard DORINFOx.DEF Drop file (Default))
  2089.         EXITINFO.BBS (RA v.01 - v.04)
  2090.         EXITINFO.BBS (Extended (RA v1.0+))
  2091.         EXITINFO.BBS (RemoteAccess 2.0+ style)
  2092.         CHAIN.TXT    (WWIV)
  2093.         SFDOORS.DAT  (SpitFire BBS)
  2094.         CALLINFO.BBS (WildCat!)
  2095.         DOOR.SYS     (GAP/PC-Board)
  2096.         DOOR.SYS     (Doorway version)
  2097.         QBBS 2.75+   (EXITINFO.BBS)
  2098.         DOOR.SYS     (WildCat! style)
  2099.         Custom       (See the next section!)             
  2100.  
  2101.  
  2102.                         Custom Dropfiles
  2103.  
  2104. BFE automatically recognizes most door information file (drop file) formats, 
  2105. including DORINFO?.DEF, EXITINFO.BBS, DOOR.SYS, SFDOORS.DAT, CALLINFO.BBS and 
  2106. CHAIN.TXT. However, to permit BFE to operate on BBS systems that produce a 
  2107. different format file, you may define a custom door information file format. 
  2108. A custom door information file format is defined using the "CustomFileName" 
  2109. command, followed by one or more lines beginning with the "CustomFileLine" 
  2110. command.  This file *must* be called CUSTOM.BFE!
  2111.  
  2112. The "CustomFileName" option specifies the filename used to distinguish this
  2113. file format from other file formats. This filename should not include a
  2114. path. To specify the path where the door information file is located, use
  2115. the BBSDir setting, near the beginning of this file. If the filename of the
  2116. custom format is the same as that of one of the built-in formats, the custom
  2117. format will override the built-in format.
  2118.  
  2119. The actual format of the custom file is specified using a number of lines
  2120. that begin with the keyword "CustomFileLine". Each of these lines will
  2121. correspond to a single line in the door information file, with the option
  2122. following the "CustomFileLine" keyword specifying the information that can
  2123. be found on that line. This can be one of the following keywords:
  2124.  
  2125.                      Ignore - Causes the next line in the door information
  2126.                               file to be ignored. Use on lines for which none
  2127.                               of the options below apply.
  2128.                     ComPort - COM? port the modem is connected to
  2129.                               (0 indicates local mode)
  2130.                  FossilPort - Fossil port number the modem is connected to
  2131.                    ModemBPS - BPS rate at which to communicate with modem
  2132.                               (0 or non-numerical value indicates local mode)
  2133.                   LocalMode - 1, T or Y if door is operating in local mode
  2134.                    UserName - Full name of the user
  2135.               UserFirstName - First name(s) of the user
  2136.                UserLastName - Last name of the user
  2137.                       Alias - The user's psuedonym / handle
  2138.                   HoursLeft - Hours user has left online
  2139.                 MinutesLeft - Minutes user has left online, or time left online
  2140.                               in format hh:mm
  2141.                 SecondsLeft - Seconds user has left online, or time left online
  2142.                               in format hh:mm:ss or format mm:ss
  2143.                               (If more than one of the above time options are
  2144.                               used, the user time left is taken to be the total
  2145.                               of all of these values.)
  2146.                        ANSI - 1, T, Y or G for ANSI graphics mode
  2147.                      AVATAR - 1, T or Y for AVATAR graphics mode
  2148.                 PagePausing - 1, T or Y if user wishes a pause at end of screen
  2149.                ScreenLength - Number of lines on user's screen
  2150.              ScreenClearing - 1, T or Y if screen clearing mode is on
  2151.                    Security - The user's security level / access level
  2152.                        City - City the user is calling from
  2153.                        Node - Node number user is connected to
  2154.                   SysopName - Full name of the sysop
  2155.              SysopFirstName - The sysop's first name(s)
  2156.               SysopLastName - The sysop's last name
  2157.                  SystemName - Name of the BBS
  2158.  
  2159. ;---------------------[ Start of Sample CUSTOM.BFE File ]--------------------    
  2160. CustomFileName    EXAMPLE.DEF           ; Same format as DORINFO?.DEF
  2161. CustomFileLine    SystemName
  2162. CustomFileLine    SysopFirstName
  2163. CustomFileLine    SysopLastName
  2164. CustomFileLine    ComPort
  2165. CustomFileLine    ModemBPS
  2166. CustomFileLine    Ignore
  2167. CustomFileLine    UserFirstName
  2168. CustomFileLine    UserLastName
  2169. CustomFileLine    City
  2170. CustomFileLine    ANSI
  2171. CustomFileLine    Security
  2172. CustomFileLine    MinutesLeft
  2173. ;----------------------[ End of Sample CUSTOM.BFE File ]---------------------   
  2174.  
  2175. ────────────────────────────────────────────────────────────────────────────
  2176.                           ■ DOOR OPERATION ■
  2177. ────────────────────────────────────────────────────────────────────────────
  2178.  
  2179.  ┌────────────────────┐
  2180. ▄│  BFE Command Line  │
  2181. █└────────────────────┘
  2182. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2183.  
  2184. BFE accepts the following command line parameters (in any order):
  2185.  
  2186.         -p(Port>               - 0,1,2,3,or 4 (COM1, COM2, etc)
  2187.         -s(Serial speed>       - Self explanatory! (0, 300, 1200, etc)
  2188.         -c(Control File Path>  - Path/filename of your main .CTL file!
  2189.         -t(Time to next event) - The time until the next event
  2190.         -n(node number)        - The node number of the BBS    
  2191.         -f                     - Forces ANSI in local mode
  2192.  
  2193. You can run BFE in local mode by passing "-p0 -s0" as the port and speed.
  2194. Of course, if you are using a dropfile, these values are meaningless
  2195. once again, therefore your dropfile must be configured for local use (Or
  2196. blank out the Dropfile Path option in the Global Options in BFE/Setup!).
  2197.  
  2198.  ┌────────────────┐
  2199. ▄│   Sysop Keys   │
  2200. █└────────────────┘
  2201. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2202.  
  2203. There are several options available to the Sysop while the user is in the
  2204. BFE Door.  These options and hotkeys differ from BBS "personality" to
  2205. "personality".  As discussed in the sample global configuration file, BFE
  2206. currently supports 3 BBS personalities (RemoteAccess 2.0x, WildCat!, and the
  2207. default style).  For more information on the RA and WildCat! hotkeys, consult
  2208. the documentation which accompanied the BBS software.
  2209.  
  2210.                         DEFAULT SYSOP HOTKEYS
  2211.                         ---------------------
  2212.  
  2213. [UP/DOWN] -   Use the arrow keys to increase or decrease the
  2214.               amount of time which the user has left in the door.
  2215.  
  2216. [Alt]-[C] -   Allows the sysop to break into chat with the user
  2217.               at any time. [Alt]-[C] again, or [ESC] will end
  2218.               chat mode. (Notice that the Want-Chat indicator
  2219.               will also be turned off, if it was flashing. If
  2220.               you are running under Apex, RemoteAccess or
  2221.               QuickBBS, paging from within the door will even
  2222.               cause the Want-Chat indicator to stay lit when the
  2223.               user returns to the BBS)
  2224.  
  2225. [Alt]-[J] -   Allows the sysop to shell to DOS, if enough memory
  2226.               is available. Simply type EXIT to return to the
  2227.               door again.
  2228.  
  2229. [Alt]-[H] -   Hang up on the user. Plain and simple!
  2230.  
  2231. [Alt]-[L] -   This key locks the user out of the BBS. It first
  2232.               hangs up on the user, and then sets their security
  2233.               level to 0, to prevent them from ever logging on
  2234.               again. This feature may require use of the EXITINFO.BBS
  2235.               file, depending on what system BFE is running under.
  2236.  
  2237. [Alt]-[K] -   The "User Keyboard-Off" key allows the sysop to
  2238.               temporarily prevent the user from typing anything
  2239.               on their keyboard. This has no effect on the local
  2240.               keyboard, but causes BFE to ignore any keystrokes
  2241.               from remote.
  2242.  
  2243. [Alt]-[N] -   The "Sysop Next" key, this function reserves the
  2244.               system for use by the sysop after the user logs
  2245.               off, if BFE is running under an Apex or RA
  2246.               1.00 or later system.
  2247.  
  2248. [Alt]-[D] -   "Drop to BBS" key. This function allows the sysop
  2249.               to exit BFE and return the user to the BBS,
  2250.               without hanging up.
  2251.  
  2252. [F1]      -   Display basic user information (default)
  2253. [F9]      -   Display help information for sysop
  2254. [F10]     -   Turn off the status line
  2255.  
  2256.  ┌───────────────────────────────┐
  2257. ▄│ Multinode/Multiuser Operation │
  2258. █└───────────────────────────────┘
  2259. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2260.  
  2261. BFE is quite capable of running on multinode systems, and in fact, does it
  2262. quite adeptly.  Special care has been given to ensure 100% multinode compat-
  2263. ibility.  If you happen to experience problems running BFE on a multinode
  2264. machine, please contact us if you are unable to resolve the problem.
  2265.  
  2266.  
  2267. ** NOTE:  BFE creates a special "semaphore" file called BFELOCK.$$$ whenever
  2268. a node is currently reading a control file.  If another instance of BFE is
  2269. executed, it will wait until this file is erased by the owner instance of BFE.
  2270. If, for some reason, BFE seems to "lock up", check for the existence of this
  2271. file, and simply remove it.  Careful attention has been paid to ensure that
  2272. this file gets deleted in any event, but things can happen!
  2273.  
  2274.  ┌──────────────────────────┐
  2275. ▄│ Digiboard Compatibility  │
  2276. █└──────────────────────────┘
  2277. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀      
  2278.  
  2279. BFE will run on systems which utilize DigiBoard communication cards.  To do
  2280. so, however, you will need to pick up the latest version of the DigiBoard
  2281. Fossil Driver.  As of this release, the latest version of DigiFos is v1.3, 
  2282. and is available as DIGFOS13.LZH on our support BBS (FREQ's welcome).
  2283.  
  2284. ────────────────────────────────────────────────────────────────────────────
  2285.                            ■ MISCELLANEOUS ■
  2286. ────────────────────────────────────────────────────────────────────────────
  2287.  
  2288.  ┌────────────────────┐
  2289. ▄│   Special Thanks   │
  2290. █└────────────────────┘
  2291. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2292.  
  2293. We would like to take time to offer our appreciation to the Cairo Research
  2294. Lab Beta Team and suggestion crew (in no particular order):
  2295.  
  2296.         Robert J. Ferguson              Ray Smith
  2297.         Christopher Koziol              Christopher J. Brown
  2298.         Steve Pepin                     Tommy Harvey
  2299.         Chuck Harrington                Stephen Thomason
  2300.         Michael Downing                 Mikael Winterkvist
  2301.         Albert Louw                     Marshall Brandenburg
  2302.         Martin Pavey
  2303.         
  2304. Thanks guys!
  2305.  
  2306. Thanks are also in order for the following individuals who have been 
  2307. tremendous assets to our organization:
  2308.  
  2309.         Chip Rabinowitz                 Dave Seidel
  2310.         Brian Pirie                     Jeff Dunlop
  2311.         Dallas Richardson               Philip Findley
  2312.         Andres Guevara
  2313.  
  2314. Special thanks go out to Bob Kruger, the friend and beta tester from the
  2315. outskirts of hell.  And to Diane (my wife-to-be, for her graduation from
  2316. 4 years of nursing school hell!).
  2317.  
  2318. And a special thanks to the sysops who have registered our products, and 
  2319. shown their ongoing support for Cairo Research Labs.
  2320.  
  2321.  ┌──────────────────┐
  2322. ▄│   SPHINX! Echo   │
  2323. █└──────────────────┘
  2324. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2325.  
  2326. The SPHINX! echo is now available!  The SPHINX! echo is a support echo for
  2327. users of Cairo Research Labs products, including:
  2328.  
  2329.  VID      Virus Information Door
  2330.  VIDPLUS  VID Enhancement Module
  2331.  VKILL    Maximus CBCS Upload Integrity Checker
  2332.  TBM      Turbo Bulletin Manager
  2333.  BFE      BBS Front End System
  2334.  WinVID   Windows Virus Database
  2335.  AVLab    Antivirus Research Toolkit
  2336.  RegPRO   Fullscreen Questionnaire System
  2337.  TBWin    Thunderbyte AV Windows Shell
  2338.  RCS      Netmail Robot Construction Set
  2339.  TFA      Turbo File Announcer (Maximus)
  2340.  
  2341. The echo is not currently on the backbone, but a feed is available from
  2342. 1:3613/12.  Overseas links are being organized at this time, as well.
  2343. To establish a feed from our system, simply drop a netmail to 1:3613/12
  2344. (Be sure to include a session level password!).  Poll once a week, twice a
  2345. week, whatever you prefer.  This conference is currently being considered 
  2346. for the DoorNet backbone.
  2347.  
  2348. Topics of discussion include:
  2349.  
  2350.    1) Inside info and tips from the developers!
  2351.    2) Third party add-ons for CRL products
  2352.    3) Ideas, suggestions, wishes, wants and needs... :-)
  2353.    4) Technical support for individual products
  2354.    5) Sharing of scripts, setups, control files, etc
  2355.    6) Get information on new releases, fast!
  2356.    7) See what's in store for CRL products, and have a say-so in their
  2357.       development!
  2358.    8) See what other sysops are doing with BFE, RegPRO, and others!
  2359.  
  2360. Here are a few major links to SPHINX.  Hopefully, one of these will be close
  2361. to your location:
  2362.   
  2363.     Chris Koziol                            George Hannah    
  2364.     Sun, Surf, and Serenity                 Prophecy BBS     
  2365.     Elmwood Park, IL (Chicago area)         Saint John, NB   
  2366.     (708) 453-6630                          (506) 652-7292   
  2367.     1:115/113@fidonet                       1:255/7@fidonet  
  2368.  
  2369.     Robert J. Ferguson                      Blake Barr         
  2370.     Klingon Bird of Prey BBS                Fire & Ice         
  2371.     Philadelphia, PA                        Harker Heights, TX 
  2372.     (215) 426-5596                          (817) 698-6810     
  2373.     1:273/935@fidonet                       1:395/43@fidonet   
  2374.  
  2375. The latest version of BFE can also be found at these sites as well.
  2376.  
  2377.  ┌──────────────────────────────┐
  2378. ▄│   Upgrades and Information   │
  2379. █└──────────────────────────────┘
  2380. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2381.  
  2382. For the latest version of BFE, call:
  2383.  
  2384. Under The Nile!
  2385. (706) 596-8126 14.4 USR v.32
  2386. 1:3613/12@fidonet    
  2387. 75:7706/0 or 75:7706/1@DoorNet
  2388.  
  2389. Magic name BFE will get you the latest version!
  2390.  
  2391. Upgrades are free of charge to registered users.  A one-time $10 registration
  2392. fee provides you with an unlimited number of upgrades to newer, more powerful
  2393. versions of BFE.
  2394.  
  2395.  ┌──────────────────────┐        
  2396. ▄│   Technical Support  │
  2397. █└──────────────────────┘        
  2398. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀              
  2399.  
  2400. If you experience any problems with the BFE system, or have any questions,
  2401. please contact us!  
  2402.  
  2403.    Fidonet Netmail:  1:3613/12@fidonet
  2404.            Fidonet:  DOORWARE SHAREWARE MUFFIN OPENDOORS BBS_CARNIVAL
  2405.           Internet:  crlhq@f12.n3613.z1.fidonet.org                 
  2406.            DoorNet:  D_SYSOP, D_COMMON, 75:7706/1, 75:7706/0
  2407.                BBS:  Under the Nile, (706) 596-8126, USR 14.4 v.32
  2408.              Voice:  (706) 596-0276
  2409.         Snail Mail:  1113 29th Street
  2410.                      Columbus, GA 31904
  2411.  
  2412.  ┌───────────────────────┐
  2413. ▄│   Program Dedication  │
  2414. █└───────────────────────┘
  2415. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  2416.  
  2417. This program is dedicated to the families and friends of American MIAs.  Our
  2418. hearts are with you.  They are not forgotten.
  2419.  
  2420. ────────────────────────────────────────────────────────────────────────────
  2421.                    ■ END OF BFE 1.40.3p DOCUMENTATION ■
  2422. ────────────────────────────────────────────────────────────────────────────
  2423.