home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / comms / bbs / falcon1.lzh / Falcon.doc next >
Text File  |  1991-10-01  |  215KB  |  4,968 lines

  1.  
  2.  
  3.  
  4.                        Anarchy Road Software Presents:
  5.  
  6.                       Falcon CBCS - An Amiga Opus Clone
  7.  
  8.  
  9.                            "Bob's Favourite CBCS"
  10.                         "The CBCS with Fahrvergnⁿgen"
  11.  
  12.  
  13.                     Copyright ⌐ 1988-91, by Brian Fehdrau.
  14.                             All rights reserved.
  15.  
  16.  
  17.                        Operator's Manual, First Draft
  18.                                  01-Oct-91
  19.  
  20.  
  21. IMPORTANT
  22. =========
  23.  
  24. As you might have inferred from the title, this is a *first draft*.  It
  25. should contain all information required to use all aspects of the program,
  26. because it was created by walking through the source code and making
  27. generous notes, and then converting that into real English text.  However,
  28. chances are that some parts will be unclear, especially since the month it
  29. took me to work all this out introduced no shortage of inconsistent writing
  30. styles and formats.  Also, most information will occur only once, and either 
  31. some redundancy or a See-Also note here and there is required in order to 
  32. make it easier to find certain information.  Therefore I would appreciate 
  33. notification of sections which are difficult to find or understand.  
  34. Sections might also be in an weird order, meaning that they should, but may 
  35. not, follow each other in a logical fashion.  So if you've got a better 
  36. order for them, let me know.
  37.  
  38.  
  39.  
  40. Some Quick Information About DemoWare, Distribution and Me
  41. ==========================================================
  42.  
  43. What the zark is DemoWare?
  44. --------------------------
  45. It's obvious, really.  It's a lot like ShareWare.  You can use what you've 
  46. got for as long as you want, but if you use it for long enough, then you 
  47. really ought to consider the effort required to create this program and 
  48. register it.  The difference with DemoWare is that there's another incentive 
  49. besides guilt.  In Falcon's case, this incentive to send in your fee and 
  50. register your copy is a 50K limit on file transfers.  Meaning, a person 
  51. cannot transfer a single file larger than 50K, or a batch of files which 
  52. total more than 50K.  The first file could not be downloaded at all unless 
  53. it can be broken up, and the second group would have to be done in two or 
  54. more downloads.  Similarly so for uploads.  Note that the limit is per 
  55. *transfer*, not per call.
  56.  
  57. Some people would call this CrippleWare, but I see a difference.  Generally,
  58. CrippleWare is designed so that it cannot be used easily in a normal 
  59. situation, and it often has certain key features disabled completely.  My 
  60. variety of DemoWare allows normal operation and includes all features, with 
  61. one key feature limited but not disabled, so that a person may demo the 
  62. program and that feature to see if they want to register.  Hell, if they can 
  63. get along without full-sized transfers, they can run the unregistered 
  64. version and forget all about a certain starving programmer.
  65.  
  66. If you do wish to register, there should be a file called "Registration.txt"
  67. in your archive which contains information on how to register a form to fill
  68. out, and an address to send it to.
  69.  
  70.  
  71. Distribution
  72. ------------
  73. The two archives Falcon comes in are freely distributable, with the 
  74. exception that nobody may make any profit from them (short, perhaps, of a
  75. small disk copying fee).  The archives may be placed on any BBS or other 
  76. online service that does not claim any rights over them, as Compu$erve has
  77. been known to do.  They may be placed in disk collections (such as the Fred
  78. Fish disks) or users' group disks, subject to the non-profit limitation
  79. mentioned above.  The archives themselves are not to be altered, meaning that
  80. no files are to be removed or added.  I would prefer that the archiving 
  81. method not be changed, but I see no point in prohibiting it.  Distribution 
  82. of the unaltered contents of the archives on a disk collection would be 
  83. okay.
  84.  
  85. If the form of distribution you wish to use does not not fall within the 
  86. above guideline, or falls on the wrong side of them, talk to me and we might
  87. work something out.  I'm not totally unreasonable.
  88.  
  89.  
  90. Where to Find Me
  91. ----------------
  92. I can be reached through FidoNet technology at either 1:140/22@FidoNet or 
  93. 1:140/22.2@FidoNet.  The first is my boss and the second is me, and either 
  94. will get to me.  I can also be reached through the Internet address 
  95. bf@weyr.fidonet.org.  Also, if you're going to use an Internet address, it 
  96. may be quicker to use fehdr460@skdad.usask.ca.  That will only be available 
  97. until some time in December 1991, which is when my CMPT 460 class ends.  I 
  98. will probably have a new account in January, as fehdr398@skdad.usask.ca.  
  99. Blame this on the brain-dead system of handing out undergrad accounts at the 
  100. University of Saskatchewan.  Snail-Mail me at P.O. Box 7635 / Saskatoon, SK /
  101. Canada / S7K 4R4.
  102.  
  103.  
  104.  
  105.                               Table of Contents
  106.                               =================
  107.  
  108.     1.  Setting Up
  109.             What You Will Need
  110.     2.  Running the Program
  111.     3.  Waiting For a Call
  112.     4.  Logging In
  113.             New Users
  114.     5.  General BBS Usage
  115.             "More [Y,n?]" Prompts
  116.             Local Menus
  117.             Line Editing and Command History
  118.             Other (Non-Prompt) Key Commands
  119.             Command Stacking
  120.             Yelling with the Sysop
  121.     6.  BBS Menus
  122.             Main Menu
  123.             Message Menu
  124.                 Reading a Message
  125.                 The Prompt
  126.             File Menu
  127.             Change Menu
  128.             Edit Menu
  129.             Subop Menu
  130.             Librarian Menu
  131.             Sysop Menu
  132.             User Edit Menu
  133.     7.  Entering and Editing a Message
  134.             Starting a Message
  135.                 Entering a FidoNet Address
  136.             Saving a Message
  137.             The Editors Themselves
  138.                 LORE ("Line ORiented Editor")
  139.                 FRED ("Falcon's Rapid EDitor")
  140.     8.  The Goodbye (Logoff) Sequence
  141.     9.  XPR (eXternal PRotocol) File Transfers
  142.     10. FTerm
  143.             Special Keys
  144.             Transfers
  145.             In Case of Problems with Display Positioning
  146.             The Review Buffer
  147.             File Requester
  148.             Dial Directory
  149.             Dialer
  150.     11. Configuration Files
  151.             falcon.cfg
  152.             msgareas.bbs
  153.             fileareas.bbs
  154.             menus.bbs
  155.             sched.bbs
  156.             term.bbs
  157.     12. Configurable Menus
  158.             How to Make a New Menu
  159.             Customizing Menus
  160.                 GOTO
  161.                 NIL, CON, and RAW
  162.                 BATCH
  163.                 GOODBYE
  164.                 MACRO
  165.             Arguments
  166.             Note on Help Files
  167.             What Kinds of Programs to Use and What Kinds Not to Use
  168.             Warnings
  169.             Suggestion
  170.             Notes About DLG Doors
  171.             Sample External Menu
  172.     13. Batch File
  173.     14. Suggestions and Hints
  174.     15. Miscellaneous/Technical Information
  175.             Workbench/KickStart 2.0
  176.             Overlaid vs. Pure Executables
  177.             bf.library
  178.             Using a Nodelist
  179.             Refreshing the Display
  180.             Editing File Lists
  181.             The Quote File
  182.             The Log File
  183.             Text Files
  184.             Help Files
  185.             The Numeric Keypad
  186.             Remote VT100 Keys
  187.             ANSI Used in Output
  188.             Those "stat.dat" Files and the "systemstat.dat" File
  189.     16. FidoNet-Specific Technical Information
  190.             Quoting
  191.             Netmail/Echomail Kludge/Control Lines
  192.             Notes on Kludges
  193.             Datestamps
  194.     17. Yet to Come
  195.     18. ICK!  BUGS!  (And other caveats)
  196.  
  197.  
  198. 1.  Setting Up
  199. ==============
  200.  
  201. First, you want to get the files you are provided with into the proper 
  202. places.  Therefore, change to the directory you want your BBS in, and 
  203. unarchive the files.  This will provide you, after a few more DOS commands, 
  204. with a bare-bones BBS which should be ready-to-run.  You will make changes 
  205. later.
  206.  
  207. Here's a rough idea of what you should be doing in your shell.  Note that
  208. you should replace "BBS:" with the directory you want to put the BBS in, and
  209. "ARCHIVES:" with wherever you put the Falcon archives.  Also, where you see 
  210. "lhunarc", use your favourite unarchive, but be sure it extracts with 
  211. extended filenames and paths.
  212.  
  213.     1> cd BBS:
  214.  
  215.     1> lhunarc ARCHIVES:Falconxxx-2    ; extract Falcon, bf.library,
  216.                                        ; support files and paths
  217.  
  218.     1> makedir msgs                    ; \
  219.     1> makedir msgs/gen                ; |_  Make the directories for
  220.     1> makedir files                   ; |   mail and files (for now)
  221.     1> makedir files/gen               ; /
  222.  
  223.     1> makedir logs                    ; optional, for storing old log files
  224.  
  225.     1> makedir FONTS:IBM
  226.     1> copy IBM.font FONTS:            ; you should probably use my IBM.font
  227.     1> copy IBM FONTS:IBM              ; no one says you CAN'T use another's
  228.     1> delete IBM.font
  229.     1> delete IBM all
  230.  
  231.     1> copy bf.library LIBS:
  232.     1> delete bf.library
  233.  
  234.     1> list LIBS:diskfont.library      ; and if it's not there, put it there
  235.  
  236. You must also be sure that "T:" is assigned somewhere.  Falcon occasionally 
  237. keeps some files in "T:".  Notice that that is "T:" and not "T/".  You must 
  238. use the DOS Assign command to assign the volume "T:" to where you want your 
  239. temporary directory.  There is one exception:  if the root directory of your 
  240. boot disk had a "T" directory in it, "T:" will have been assigned there 
  241. automatically, although you may still want to move it.  I suggest a "T" 
  242. directory on the RAM disk.  At any rate, it should be on a reasonably quick 
  243. device, since it is used, among other things, to store the cut & paste 
  244. buffer in FRED.
  245.  
  246. You can run the program as it is now, but I strongly suggest you make a few 
  247. important changes to the configuration right now, before you run it:
  248.  
  249.     In Falcon.cfg:
  250.  
  251.         NAME    "your BBS's name"
  252.         SYSOP   "your name"
  253.         MAXBAUD your_modem's_maximum_baudrate
  254.  
  255.         You may also have to change some modem strings, depending on your 
  256.         modem.  Consult Falcon.cfg documentation for more information.
  257.  
  258.     Text files you will want to personalize, sooner or later:
  259.  
  260.         welcome1.bbs
  261.         welcome2.bbs
  262.         bulletin.bbs
  263.         newuser.bbs
  264.         editorial.bbs
  265.         yell.bbs
  266.         warning.bbs
  267.         logoff.bbs
  268.  
  269. To create the userlist, just log in with the name you put in the SYSOP field 
  270. of Falcon.cfg.  Falcon will consider that to be a special case and give you 
  271. SYSOP access (you'll know if this works, since Falcon will tell you), so 
  272. make sure you do this before some other user thinks of it!  You should be 
  273. able to get by with that.  The Sysop Menu is available as "!" from the Main 
  274. Menu, and the User Edit Menu is "E" from there.  When you finished looking
  275. around, you'll probably want to come back to this document.  Meanwhile,
  276. I'm going to go get a glass of Coke Classic.
  277.  
  278.  
  279. What You Will Need
  280. ------------------
  281. This is a short but hopefully complete list of the files you should have.
  282. Files with an asterisk are what I figure you'll need for a FidoNet system if 
  283. you should go that far (thinking in terms of a point, as I've never run a 
  284. node myself).  Files in square brackets are optional.
  285.  
  286.     FONTS:
  287.         IBM.font
  288.         IBM/8
  289.         IBM/12
  290.  
  291.     LIBS:
  292.         bf.library
  293.         diskfont.library
  294.         [xpr#?.library]
  295.        *[traplist.library]
  296.  
  297.     DEVS:
  298.         serial.device
  299.  
  300.     Anywhere in your command paths, including the current directory:
  301.         Falcon 
  302.        *(an archiver compatible with your boss' archiver)
  303.        *FExport/FImport or CM (ConfMail) and possibly oMMM
  304.        *TrapDoor or Welmat
  305.  
  306.        *The Roof   A special shell for (FidoNet) BBSs, which I have little 
  307.                    experience with but which looks like a promising 
  308.                    replacement for the ARP shell I used in my doomed fbatch.
  309.  
  310.     The current directory:
  311.         Falcon.cfg      Or in S: or Falcon: or user-specified path/name
  312.        *TrapDoor.cfg    Or in user-specified path/name
  313.        *FastPoint.cfg   Or in user-specified path/name
  314.                         Could instead be a ConfMail and/or oMMM config file
  315.  
  316.     CONFIGDIR           ???DIRs are set in Falcon.cfg
  317.         english.bbs
  318.         msgareas.bbs
  319.         fileareas.bbs
  320.         term.bbs
  321.         [sched.bbs]
  322.  
  323.     USERDIR
  324.         user.bbs        Actually, this will be created by Falcon)
  325.  
  326.     (Note: .?bs means either .bbs and/or .gbs)
  327.     TEXTDIR
  328.         welcome1.bbs    Intro file, shown before name prompt
  329.         welcome2.?bs    First file shown after password prompt
  330.         [bulletin*.?bs] Shown after welcome2.bbs.  may be numbered, starting
  331.                         with 1, in unbroken ascending order--Falcon stops
  332.                         looking after it doesn't find one.
  333.         newuser.bbs     Shown to new users when they sign up
  334.         quotes.bbs      Quote file
  335.         [editorial.?bs] file for E)ditorial command)
  336.         [yell.?bs]      Shown if yell not available (if file not present, 
  337.                         prg says "Yell is turned off right now.")
  338.         [msgarealist.?bs]   Shown in lieu of msg A)rea list
  339.         [filearealist.?bs]  Shown in lieu of file A)rea list
  340.         warning.?bs     File shown before asking for area passwords
  341.         [logoff.?bs]    Shown at logoff (bbs/gbs)
  342.  
  343.     HELPDIR
  344.         changehelp.bbs  These are not normal text files.  See the section
  345.         edithelp.bbs    on help files for more information.
  346.         filehelp.bbs
  347.         mainhelp.bbs
  348.         msghelp.bbs
  349.         useredithelp.bbs
  350.         sysophelp.bbs
  351.         subophelp.bbs
  352.         librarianhelp.bbs
  353.  
  354.         lorehelp.bbs    These are normal text files.
  355.         keyhelp.bbs
  356.         longhelp.bbs
  357.  
  358.  
  359.     KEYDIR
  360.         [falcon.key]    Only registered users will have/need this
  361.  
  362.  
  363.  
  364. 2.  Running the Program
  365. =======================
  366.  
  367. Normally, to run falcon, you'd do just that: "run falcon".  However, there
  368. are some command line options:
  369.  
  370.     -t ........ Tiny mode toggle.  Useful if you have Falcon configured to 
  371.                 start up in tiny mode
  372.     -l ........ Interlace toggle.  Not all that useful, really.
  373.     -f ........ Go straight to FTerm
  374.     -b <baud>.. Spawn at this baud rate
  375.     -h ........ Hang up in spawned session, instead of letting calling 
  376.                 program do it.
  377.     -? ........ Help (a list of options similar to this one)
  378.  
  379. Otherwise, if the argument is not an option, it will be used as the filename
  380. for falcon.cfg instead of the one used by default, ie.:
  381.  
  382.     "run falcon CONFIG:falcon.cfg"
  383.  
  384. When Falcon exits, normally the DOS errorlevel will be set to 0.  However,
  385. if messages have been entered in an echo or matrix area, appropriate error-
  386. levels will be returned, and an error will return yet another number.  See
  387. the documentation for Falcon.cfg for more information on errorlevels.
  388.  
  389. On top of the DOS errorlevels, Falcon returns codes in an environment 
  390. variable, which we'll call "fret" for convenience (since that's the default 
  391. name for it).  This will be set to "error" if the program couldn't run 
  392. successfully for some reason.  Otherwise, it could be set to "exit" when the 
  393. program exits on request, an event name if it exits due to one, or "return" 
  394. if it was spawned.
  395.  
  396. Falcon does not need a special stack size.  It does not use much.  However,
  397. to be safe, I call the stack-checking routine whenever the user switches BBS 
  398. menus.  This will catch any overflows, since Manx looks at the lower bound 
  399. of the stack to see if a special value it puts there at run-time has been 
  400. overwritten.
  401.  
  402.  
  403.  
  404. 3.  Waiting for a call
  405. ======================
  406.  
  407. When the system has finished initializing the modem, it will start waiting for
  408. the phone to ring.  At this point, there will also be a prompt, which will
  409. accept commands to go to the T)erm, to Q)uit, to C)onnect locally, or to 
  410. Connect as the S)ysop (which pre-enters the sysop's name).  There is also an
  411. invisible R)ing command, which will make the program think the phone has rung,
  412. and therefore it will pick up the phone.  It could be useful.  There are
  413. equivalent menu items for all commands except R)ing.  
  414.  
  415. (Note that if the Online Menu's "Sysop Next" item was selected during the last 
  416. call, the prompt will be skipped and the session will be started as if the 
  417. S)ysop Connect key was hit.)
  418.  
  419. While waiting, events will also be checked.  If it happens that the current
  420. time is within the bounds of an event, the program will exit with the name of
  421. that event in the usual return environment variable.  Note that this 
  422. scheduling is simplistic and can cause problems with repeated events if 
  423. Falcon starts up again before the event ends.  Make sure events take at least
  424. as long as their duration.
  425.  
  426. If the phone has rung, then the program will send a code to the modem 
  427. indicating that it should answer.  It will then wait for 30 seconds.  If an
  428. appropriate connect message is received, the session will begin.  Should the 
  429. program receive another ring code while waiting for a connect, it will assume 
  430. that maybe the connect or no-carrier code for the last ring got munged and 
  431. simply try to pick the phone up again.  If no connect is made or broken during
  432. the 30 seconds, the program will hang up and resume waiting for a call.  
  433. Typing A)bort will do the same thing.
  434.  
  435.  
  436.  
  437. 4.  Logging In
  438. ==============
  439.  
  440. Once a user has connected to the system with a sufficient baud rate (if
  441. applicable) and gone through the Escape-Escape sequence (if applicable),
  442. they will be greeted with a brief tag noting that they are connecting to
  443. a Falcon CBCS, which was written by Brian Fehdrau.  Then the first welcome
  444. file will be sent, and they will end up in the name prompt.
  445.  
  446. To enter a name, they simply enter the first name and the last name at the 
  447. appropriate prompts.  These can be stacked and entered as the entire name
  448. all at once (ie. instead of "Brian<return>Fehdrau<return>", I would enter 
  449. "Brian Fehdrau<return>" at the first name prompt.  Then Falcon will display
  450. the name and ask if it is correct.  To avoid this, they can simply append the
  451. confirmation to the stacked name ("Brian Fehdrau y").
  452.  
  453. (I am aware that this method of asking for the name causes problems with
  454. certain names, such as the "Somebody van der Whoever" variety.  I suggest 
  455. using periods, like "Somebody van.der.Whoever".  I think I'm going to have to 
  456. change this.)
  457.  
  458. Then Falcon asks for the user's password, which they get three chances to get
  459. right before being booted.  Simple enough.  Note that the prompt only shows
  460. periods where the letters should be, in order to keep people from reading 
  461. passwords over other peoples' shoulders.  This is one reason not to add the
  462. password to the stack mentioned above, as entering it there leaves it visible.
  463.  
  464. Once the correct password has been entered, Falcon does a little user 
  465. housekeeping, such as zeroing limits if it's a new day, and the like.  At this
  466. point the time limit for this call is determined, based on time remaining
  467. for this day, absolute call limits, and scheduled events.  Then it displays 
  468. the second welcome file and any bulletins, and drops the user into the Main 
  469. Menu.
  470.  
  471. New Users
  472. ---------
  473. A new user logs on simply by entering their name.  Since it will not be in the 
  474. user file, the program will obviously assume they are new.
  475.  
  476. If the program is configured to accept new users, it will prompt the user to
  477. enter the name of their city.  It is at this point that they are advised that
  478. they can hit enter to return to the name prompt, which is useful for people
  479. who have entered their name incorrectly.  Otherwise they enter their city's
  480. name.  Then they are prompted for a password, and then prompted to enter it
  481. again to be sure it was correct.  After that they answer a few prompts 
  482. regarding IBM characters, ANSI and the like.
  483.  
  484. The user's name is checked.  If it's the sysop logging on for the first time,
  485. which is done by entering the name specified for the sysop in the 
  486. configuration, then the user will be given SYSOP level.  On the other hand,
  487. if they try to sign on as "Sysop" or "All", the program will assume they are 
  488. a jerk and turf 'em.  On the other ...foot?... they may be advised about
  489. the Change Menu's capitalization-changer if their name is the sort that
  490. is not supposed to be capitalized normally (presently only Mc and Mac names).
  491.  
  492. The new user is dropped into the first unused record or appended to the end
  493. of the user file if their are no empty slots.  They will have the new user
  494. level and limits which were specified in the configuration file, novice-level 
  495. help, and any area/write keys they were supposed to get automatically.
  496.  
  497. If the sysop has configured the program to keep an application file, a few
  498. more questions will be asked of the user.  The data will not be used by
  499. the program, but it might be useful to the sysop.  Each entry in the file
  500. will include the user's name and city, as entered already, along with their
  501. address, phone number, age, and computer type.
  502.  
  503.  
  504.  
  505. 5.  General BBS Information
  506. ===========================
  507.  
  508. Once you're into the BBS itself, some of this information may be of use
  509. to you...
  510.  
  511. "More [Y,n?]" Prompts
  512. ---------------------
  513. If you have "More [Y,n?]" prompts turned on in the Change Menu, and the 
  514. amount of text sent out since the last prompt or screen-clear would fill up 
  515. your screen (based on the Screen Length field in the Change Menu), you will 
  516. get a More prompt.  This prompt is simply to prevent text from scrolling off 
  517. your screen before you have read it.
  518.  
  519. Once you're in one of these prompts, your actions are obvious.  You can type
  520. 'N' (or ^C) to break the current text, which will happen in exactly the same
  521. way as typing ^C normally would.  Hitting 'Y' (or any other key, for that
  522. matter) erases the prompt and resumes text output.
  523.  
  524. Note that the way the prompt is erased is based on your display as 
  525. configured in the Change Menu.  If you have told the Change Menu something 
  526. about your display that is not true, this is one place where it may show up. 
  527. If the prompt is not erased, you should checked your settings.
  528.  
  529. If you're interested, the erasing is done by first dropping back to the 
  530. start of the line, which is done with a carriage return if you have 
  531. linefeeds turned on, otherwise with a number of backspaces.  If you have 
  532. ANSI on, the clear-to-end-of-line code is sent and that's that.  Otherwise, 
  533. the program sends out enough spaces to clear out the prompt, and drops back 
  534. to the start of the line again in the same way it did before.
  535.  
  536. Local Menus
  537. -----------
  538. While online, you can use several menu (Amiga, not BBS) items.  Here they 
  539. are, listed by their keyboard shortcuts:
  540.  
  541.     O   Sysop on next           Does a sysop logon immediately after
  542.                                 current user hangs up.
  543.     L   Inactive logoff toggle  Decides whether inactivity is a reason to
  544.                                 log someone off.
  545.     T   Transfer toggle         If transfers are off due to insufficient 
  546.                                 baud rates, this can allow them anyway.
  547.     U   User yelling toggle     If Y)ell has not been scheduled for this
  548.                                 time period, this can allow it.
  549.     R   Remote input toggle     Decides whether or not the remote user can
  550.                                 enter text.  Good for mouthy jerks.
  551.     Y   Yell at user            Obvious.  Chat with the user.
  552.     B   Boot user               Also obvious.  They're outta here.
  553.  
  554. These menus should work everywhere, including during normal text output and
  555. doors.
  556.  
  557. Line Editing and Command History
  558. --------------------------------
  559. When typing at a prompt (be it a menu or in a line-edited message), you have 
  560. some extended commands to edit the line.  You may not be able to see 
  561. everything you're doing if you have a destructive backspace.  If you do, you 
  562. should set Destructive BSp to YES in the Change Menu, or the BBS will send 
  563. out a lot of unnecessary text when you're editing the middle of a line.  If 
  564. your backspace is non-destructive, set Destr.BS to NO and you should be able 
  565. to see the entire line, no matter which part of it the cursor is on.  Just 
  566. remember that you are editing the entire line and that when you hit return, 
  567. the entire line will be entered, no matter where your cursor is on it.
  568.  
  569. If you are entering a password, all features of the prompt will still be 
  570. available, but all output will be replaced with periods so that someone 
  571. watching over your shoulder will not be able to see your passwords.
  572.  
  573. Note:  Prompts have length limits.  If you insert into the middle of a full 
  574. line, you will lose a character at the end of the line.
  575.  
  576. Here are the commands you can use (NOTE: "^X" would mean Control-X):
  577.  
  578.     Simple  VT100    Local    Function
  579.     ------- -------- -------- --------
  580.     ^S      Left     Left     Move left one character on the line
  581.     ^D      Right    Right    Move right one character on the line
  582.     ^A      Sh-Left  Sh-Left  Move left one word on the line
  583.     ^F      Sh-Right Sh-Right Move right one word on the line
  584.     ^Q      Home     Home     Move to start of line
  585.     ^I    = Tab,End  Tab,End  Move to end of line
  586.     ^W      Up       Up       Retrieves previous line  (remembers the last 5
  587.     ^Z      Down     Down     Retrieves next line       lines > 1 char long)
  588.     ^H    = BackSp.  BackSp.  Delete character behind cursor
  589.     (127) = Del      Del      Delete character under cursor
  590.     ^Y                        Erase to end of line
  591.     ^X,^C                     Erase entire line
  592.  
  593.     ^[^[    Esc-Esc  Esc-Esc  For line editor, exit to Edit Menu
  594.     ^W      Up       Up       For line editor, move up one line in message
  595.     ^Z      Down     Down     For line editor, move down one line in message
  596.     ^H    = BackSp.  BackSp.  For line editor, delete character behind the
  597.                               cursor, or, if at start of line and line is 
  598.                               not first line, move to previous line and make 
  599.                               it wrap.  Delete line if blank.
  600.  
  601.                      F1       User level +1
  602.                      Sh-F1    User level -1
  603.                      F2       User time +10 minutes
  604.                      Sh-F2    User time -10 minutes
  605.                      F6       Toggle inactive logoffs 
  606.                      F7       Toggle transfer availability for this session
  607.                      F8       Toggle Y)ell availability for this session
  608.                      F9       Toggle remote text lockout
  609.                      F10      Validate user (if level<NORMAL, level=NORMAL)
  610.                      Sh-F10   Boot user
  611.                      Help     Function key command list
  612.  
  613. Otherwise, the prompt accepts ASCII characters in the ranges of 32..126 and 
  614. 160..254 as regular text.
  615.  
  616. Other (Non-Prompt) Key Commands
  617. -------------------------------
  618. These commands are available during text output:
  619.  
  620.     Basic Key VT100  Local    Function
  621.     --------- ------ -------- --------
  622.     ^C                        Break text output, wipe out type-ahead buffer
  623.                               In some cases this may not be permitted
  624.     ^S                        Pause text output
  625.     ^Q (^C)                   Unpause text output (or break)
  626.     ^Z                        Wipe out type-ahead
  627.  
  628. Otherwise characters are stored in a type-ahead buffer for later usage.
  629.  
  630. Command Stacking
  631. ----------------
  632. It is possible to string several to-be-executed-consecutively commands
  633. together at the same prompt.  A quick example would be a common way of
  634. logging off:
  635.  
  636.     [4] Highest: 9
  637.     Msg.area 10 ... What I hate about Barry Manilow
  638.  
  639.     Select: a1gyn
  640.  
  641. ...which would, without any large amounts of unnecessary text being spewed
  642. out (that normally would if the commands were to be typed one at a time),
  643. change the user's current area to 1, start the goodbye/logoff sequence,
  644. reply "yes" to the "Do you really want to log off?" prompt, and reply "no"
  645. to the "Leave a private message to the sysop?" prompt, thus saving the user
  646. about 10 lines of extra text being sent.
  647.  
  648. Stacking should work at any prompt, except the line-based message entry 
  649. prompt, and the stack will be automatically cleared if an erroneous command
  650. is encountered, thus avoiding any subsequent errors.
  651.  
  652. The types of commands that can be placed on the stack are as follow:
  653.  
  654.     Type            Example                 Terminator
  655.     --------------- ----------------------- --------------------------
  656.     White-Space     " ", "," or ";"         non-White-Space
  657.     Single Letter   "a", "A", "?"           auto-terminates
  658.     Word            "password"              White-Space
  659.     Sentence        "A message Subject..."  "|" (must be used and also
  660.                                                  terminated as a Word)
  661.     Number          "-123"                  non-numeric character
  662.     Stack           "Blah Blah | more blah" bottom of stack
  663.  
  664. The bottom of the stack terminates anything, of course.
  665.  
  666. A "-" is a Single Letter only if not followed by a numeric character.
  667.  
  668. One sort-of-exception to these rules is the initial first/last name prompt.  
  669. A user with only one name (such as "Sysop") can insert a carriage return for 
  670. the second name (if blank, none, non-existent, etc) by using a pipeline 
  671. ("|") for the second name, despite the names being fetched as words.  Also, 
  672. some systems, such as Fido v12 which uses three names and not two, 
  673. necessitate the pipeline at the end of the name(s) (ie. "Joe User | y 
  674. password" for the same reason as "Sysop" would in Falcon.  I've kludged the 
  675. "Joe User, right? [Y,n]" prompt so that it will just keep grabbing Single 
  676. Letters until it sees a non-pipeline, and thus a Fido key-macro will work on 
  677. Falcon as well.  As it happens, Fido no longer does this, but I figure this 
  678. point ought to be explained and I don't feel like re-wording it.
  679.  
  680. A good overall example of these is the basic message entry process, starting 
  681. from the main menu and an unspecified message area for fun.  We'd want to go 
  682. to the Message Menu (single letter), the area menu (single letter), pick an 
  683. area (number), pick the enter command (single letter), answer the "Private? 
  684. [y,N,a]" prompt (single letter), enter a "To:" name (sentence), and a 
  685. "Subject:" (stack):
  686.  
  687.       MAIN MENU
  688.       Select: ma10eyJoe Sysop | What have you got against Barry Manilow?
  689.  
  690. Voila.  You should be in the editor.  Get the idea?  Good.
  691.  
  692. Yelling with the Sysop
  693. ----------------------
  694. If you are chatting, either through the Y)ell command at the Main menu, or 
  695. through an impromptu yell-at-the-user, and you have ANSI color on, you'll 
  696. notice that the color changes depending on who is typing.  Text the sysop 
  697. enters comes up yellow, and text the user enters comes up cyan.  This is to 
  698. help make clear who typed what.
  699.  
  700. You can exit a chat session by typing "/e" by itself on a blank line.
  701.  
  702.  
  703.  
  704. 6.  BBS Menus
  705. =============
  706.  
  707. Falcon has eight built-in menus:  the Main Menu, the Message Menu, the File 
  708. Menu, the Change Menu, the User Edit Menu, the Edit Menu, the Subop Menu, 
  709. the Librarian Menu, and the Sysop Menu.
  710.  
  711. There should always be two levels of help available to the user.  Entering 
  712. "?" should show the help that a NOVICE user sees at every prompt.  Entering 
  713. "??" should show a more verbose list of commands, with a line of information
  714. about each one.  Wherever the help comes from, though, including anything
  715. displayed automatically at the prompt, only the commands available to the
  716. online user's level are displayed.
  717.  
  718. Another command which should always be available is the "_" command.  This 
  719. is useful in long stacks (especially the automatic login stacks), because it
  720. stops and asks the user to hit return before continuing.  For instance, a 
  721. login stack of "FLM* Q_MAF" would list all new files in marked areas, wait 
  722. for a return, and then move to the message area (which usually clears the 
  723. screen) and start reading the new messages.
  724.  
  725.  
  726. Main Menu
  727. ---------
  728. B)ulletin       Redisplays the login bulletin.
  729. C)hange Menu    Simply moves to the Change Menu.
  730. E)ditorial      Display an editorial.  This is normally some moralistic 
  731.                 trash the sysop actually believes in.  I'm beginning to
  732.                 think I should take out this command.  :-)
  733. F)ile Menu      Simply moves to the File Menu.  J also works, because I kept 
  734.                 typing the Message Menu's J)ump To File Menu command at the 
  735.                 Main Menu.
  736. G)oodbye        Starts the logoff sequence.
  737. I)System Info   Display some system information, including the number of 
  738.                 calls to date, the previous caller to the system, the date 
  739.                 the system was "born", and the number of messages entered to 
  740.                 date.
  741. M)essage Menu   Simply moves to the Message Menu.
  742. Q)uote          Displays a quote from the quote file, just like during the 
  743.                 login sequence.
  744. S)tatus         Display some user information, including time on line, time 
  745.                 left, time online today, time left today, time online to 
  746.                 date, kilobytes downloaded, kilobytes uploaded, efficiency 
  747.                 of last transfer, number of calls to date, number of 
  748.                 messages entered to date, matrix mail credit, and the last 
  749.                 call.  Also shows the current time and date.
  750. U)ser List      Either display the entire user list or search it for a 
  751.                 string.  Shows full name, city, and last call.
  752. V)ersion        Displays the version of the program, my name, and 
  753.                 copyrights.  Also displays brief information about 
  754.                 registration if the program is (still!) unregistered.
  755. Y)ell           Yell for Sysop to come and chat.  This may not be possible, 
  756.                 depending on whether or not the Sysop has scheduled Yell 
  757.                 availability for this time of the day.  Users with SYSOP 
  758.                 level can Yell either way, if they want to.  If it is 
  759.                 possible, the screen will beep once a second for ten seconds 
  760.                 and either the Sysop will answer or they won't and a message 
  761.                 to try again later will be displayed.
  762. !)Sysop Menu    Simply moves to the Sysop Menu.
  763.  
  764.  
  765. Message Menu
  766. ------------
  767. About reading:  A SYSOP-level user can read any message.  Users with lower
  768. levels can read any message except private messages not to or from them.
  769.  
  770. About updating/re-editing:  A SYSOP-level user can update any message.  
  771. Users with lower levels can update any message they wrote.
  772.  
  773. About hurling/forwarding/killing:  A SYSOP-level user can do these to any
  774. message.  An ASSIST-level user can do this to any message they can read.  
  775. Users with lower levels can do this to any message to or from them.
  776.  
  777. About writing:  A SYSOP-level user can write in any area.  Users with lower
  778. levels can not write if do not have the write key to writelocked area or if 
  779. the area is a read-only area.
  780.  
  781.  
  782. Reading a Message
  783. ~~~~~~~~~~~~~~~~~
  784. First, if neither Zoom not Continuous modes are on, the screen will be 
  785. cleared (or the equivalent for users with screen clears turned off).
  786. Otherwise a few blank lines will be output.   
  787.  
  788. Next, the header will be displayed.  It will be in the following format,
  789. where descriptions in square braces indicate something that will be present 
  790. only if applicable:
  791.  
  792.             Sender
  793.                | [Sender's
  794.                |  Address]              [Netmail cost]
  795.                |      | Addressee             |  [Flags (see below)]
  796.                |      |     |    [Destination |          |
  797.                |      |     |      address]   |          |
  798.                |      |     |         |       |   .------'------.
  799.     From:    Barry M. |     |         |     $1.23 Pvt Rec'd Crash
  800.     Orig:    (see below)    |         |
  801.     To:      Brian Fehdrau -'         |     #34/56 [4] Fri  9 Aug 91 16:08
  802.     Dest:    (see below) -------------'      |   |  |  `--------.--------'
  803.     Subject: Re: Barry Manilow is a fink     |   |  |           |
  804.                         |                    |   |  |           |
  805.                         |                    |   |  |   Date & time sent
  806.                       Topic                  |   | Times read
  807.                                              | Highest message
  808.                                       Message number
  809.  
  810.  
  811. Addresses may look like one of the following:
  812.  
  813.     Nodes:  1:140/22
  814.             1:140/22@FidoNet
  815.             Benden Weyr (1:140/22@FidoNet) Saskatoon SK
  816.  
  817.             The latter is only if the Sysop has a traplist.library-format
  818.             nodelist in which Falcon can look up node information.
  819.  
  820.     Points: 1:140/22.2
  821.             1:140/22.2@FidoNet
  822.             1:140/22.2@FidoNet, a point of Benden Weyr (1:140/22@FidoNet)
  823.                                                             ...Saskatoon SK
  824.  
  825.             The latter is only if the Sysop has a traplist.library-format
  826.             nodelist in which Falcon can look up node information.
  827.  
  828.     External (non-FidoNet technologies):
  829.             zeebie.uucp
  830.             zeebie.uucp via <a fidonet address, as above>
  831.  
  832. Flags:
  833.  
  834.     Flag    Means
  835.     ------- ------------------------------------------------------------
  836.     Pvt     The message is private between sender, addressee, and Sysop
  837.     Crash   CrashMail is NetMail which goes out immediately and directly
  838.     Rec'd   The addressee has read the message
  839.     Sent    Usually means matrix mail has been processed, may have other
  840.             meanings for some echo/matrix mail processors.
  841.     File    The Subject field contains the name of a file to be sent with
  842.             the matrix message.  Called "File-attach".
  843.     InTrans This message is between its sending node and its destination
  844.     Orphan  This message is InTrans but couldn't go anywhere from here
  845.     Kill    This message is to be deleted after it is Sent
  846.     Local   Shows if a matrix or echo message was entered on this system,
  847.             actually on for ANY message entered on this system
  848.     *       This flag ("*") should not be on.  It is an unused flag.
  849.     Freq    This matrix message contains a file request, I think.
  850.             I've never used file requests.
  851.     RcptReq An automatic receipt reply message is supposed to be sent 
  852.             back to the sender when this matrix message gets to its 
  853.             destination (often not supported)
  854.     Rcpt    This matrix message IS a receipt reply to a RcptReq message
  855.     AudReq  This matrix message should cause an audit reply message from
  856.             each system it goes through, ideally meant to test routing
  857.             (often not supported)
  858.     Aud     This matrix message IS an audit reply to a AudReq message
  859.  
  860. After the header is done, the message body will be displayed.  If it was 
  861. entered as it was supposed to be, using line-wrapping, paragraphs should be 
  862. formatted for the user's screen width.  Text will be scrolled as it has been 
  863. configured to in the Change Menu's "Scroll Type" command.
  864.  
  865. There are four kinds of message lines:
  866.  
  867.   - Hidden control lines which start with ^A (called Kludge lines).  These 
  868.     can be shown if the Change Menu's "Show Kludge Lines" is set to YES--
  869.     they will show up in green if the user has ANSI color turned on.
  870.   - Hidden echo SEEN-BY: lines.  These can be shown if the Change menu's
  871.     "Show SEEN-BY Lines" is set to YES--they will show up in green if the 
  872.     user has ANSI color turned on.
  873.   - Quoted lines: those with a ">" character in the first six characters of 
  874.     the line which are not preceded by a "<" character (which allows for 
  875.     "<grin>").  These may be highlighted in white if the Change Menu's 
  876.     "Highlight Quote" is set to YES and the user has ANSI color turned on.
  877.   - Normal text, which will be shown as cyan if the user has ANSI color 
  878.     turned on.
  879.  
  880.   - A pseudo-fifth kind of line is a blank line, one which has absolutely
  881.     nothing on it.  Lines like this will actually be displayed as a single 
  882.     space, which is all but invisible when reading, but handy for capturing 
  883.     and re-uploading to a line editor.
  884.  
  885. Then, if message is reply, it will say at the bottom, in white:
  886.  
  887.     "*** Reply to #<original>."
  888.  
  889. If the message has a reply, it will say at the bottom (on the same line as 
  890. the Reply line, if it is there), in white:
  891.  
  892.     "*** See also #<reply>."
  893.  
  894.  
  895. The Prompt
  896. ~~~~~~~~~~
  897. The message area prompt is a little different from the others.  When you 
  898. first enter the menu or a new area, it will show the following:
  899.  
  900.   - The number of messages in this area and the highest one.
  901.   - If the number of messages is 0,
  902.         "NO messages"
  903.     Else if the user's last-read pointer is 0,
  904.         "You haven't read any of these messages"
  905.     Else if the user's last-read pointer points to the highest message,
  906.         "NO NEW messages have been posted"
  907.     Else if the user's last-read pointer is greater than the highest msg,
  908.         "POSSIBLE ERROR: Your lastread pointer was higher than n."
  909.     Else if the user's last-read pointer is between 0 and the highest msg,
  910.         "The last message you read was N."
  911.   - Then the prompt:
  912.         [<current msg #>] Highest: <highest msg #> <notice>
  913.         (ECHO|MATRIX|Msg.) area <area #> ... <description>
  914.  
  915.     Where <notice> may say "Press enter for <direction> msg" if any more 
  916.     messages are available in the current direction (<direction> is either 
  917.     "NEXT" or "PRIOR").
  918.  
  919.   - In Zoom Read mode it will skip all of the above when it goes to the next 
  920.     area, saying "ZOOMing to <area description>" and starting up a 
  921.     continuous read for this area.  Once the read is done, it will ask the 
  922.     user if they want to enter a message in this area.  If they say yes, 
  923.     they are allowed to do so, then asked again, and so on, until they say 
  924.     no.  When they say no, the program looks for the next area.
  925.  
  926.  
  927. Finally, to the command list:
  928. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  929. <msg>)Go To Msg If <msg> is in range, this will move to that message number 
  930.                 and read it or the next available message from there (in the 
  931.                 current direction).
  932. <cr>)Read Next  Hitting carriage return reads the next message in the 
  933.                 current direction, which defaults to forward and can be set 
  934.                 with the P)revious and N)ext commands.  If the direction is 
  935.                 forward and there are no messages left and change menu's 
  936.                 Auto-Next-Area is set to YES, the program will skip to the 
  937.                 next marked area with new messages, like typing "/" (or 
  938.                 "AN"), or reset the area to 1 if none are left.
  939. A)rea           Lists all available areas and asks which, if any, to switch 
  940.                 to.  Normally, this will not show areas you cannot access, 
  941.                 but if the sysop has supplied a special text file for this 
  942.                 list, it may contain inaccessible areas.
  943.  
  944.                 Hitting <cr> returns the user to the current area.
  945.  
  946.                 There are a few commands that can be entered as well as an 
  947.                 area number:
  948.  
  949.                     M - Next marked area
  950.                     N - Next marked area with new messages (see "/", below)
  951.                     C - Next marked area with new messages, checking current
  952.                         area first
  953.                     F - First marked area with new messages
  954.                     ? - Describes above four commands
  955.  
  956.                 If the Change Menu's "Verbose Scan" is set to YES, the above 
  957.                 commands show each area's number as it is being checked.
  958.  
  959.                 If the program runs out of areas for the above commands, it 
  960.                 sets the user's area back to 1 and says so (and waits for 
  961.                 the user to hit return if they have screen clears on, so 
  962.                 that they won't miss the no-more-areas notice).
  963. B)ody Search    Works like hitting return to read the next message, but 
  964.                 skips over all messages that do not contain a given string 
  965.                 in the header or the message text.
  966. C)urrent Msg    This reads the current message, if it exists.  Good for 
  967.                 times when a burst of line noise mangles a message and you 
  968.                 want to read it again without typing in its number.
  969. E)nter a Msg    Obvious enough.  See "About writing", above.
  970. F)orward Msg    Forwards a message to someone else.  What is done is the 
  971.                 message is copied into a new message From: <you> and To: All 
  972.                 with a note about the original sender/receiver/date.  The 
  973.                 message can then be U)pdated if necessary.
  974. G)oodbye        Starts the logoff sequence.
  975. H)url Message   "Hurls" a message into another area.  Useful for putting an 
  976.                 inappropriately-placed message in the proper area.
  977. I)nquire/Index  Looks for a string in message headers, starting with 
  978.                 highest, going downwards to the lowest, and showing all 
  979.                 message headers that contain that string.
  980. J)ump to File   "Jumps" over the Main Menu to the File Menu.  Use this 
  981.                 instead of the usual "MF".
  982. K)ill Message   Deletes a message and re-links any reply/see-also chains it 
  983.                 may have been involved in.  See above, under "About hurling/
  984.                 forwarding/killing".
  985. L)ist Messages  Lists messages from a starting point upwards, in the 
  986.                 following format:  "<#> <date> <flags> From: <from> To: 
  987.                 <to>", where <flags> contains two characters, the first '-' 
  988.                 if the message is public and 'P' if it is private, and the 
  989.                 second '-' if the message has not yet been received and 'R' 
  990.                 if it has been.
  991. LV)List Verbose Just like L)ist Messages, except it adds another line to 
  992.                 each entry which contains the Subject.
  993. M)ain Menu      Simply moves to the Main Menu.  You can also Q)uit to the 
  994.                 Main Menu.
  995. N)ext Message   This reads the next message, if there is one, and sets the 
  996.                 current reading direction to forwards.  This command, unlike 
  997.                 P)revious, may have the same side effects as hitting 
  998.                 <return> while in forward mode.  See the section on hitting 
  999.                 <return>.
  1000. P)revious Msg   This reads the previous message, if there is one, and sets 
  1001.                 the current reading direction to reverse.
  1002. R)eply to a Msg Replies to the current message, if it exists.  The 
  1003.                 appropriate strings will be copied into the new message's 
  1004.                 header, although they may be replaced at need.  It should be 
  1005.                 pointed out that, unlike some programs, it is okay to reply 
  1006.                 to a message you haven't just read.  If the message your 
  1007.                 pointer points to is accessible, you can reply to it and the 
  1008.                 right information will be put into the prompt defaults.
  1009. S)tatus         Display some user information, including time on line, time 
  1010.                 left, time online today, time left today, time online to 
  1011.                 date, kilobytes downloaded, kilobytes uploaded, efficiency 
  1012.                 of last transfer, number of calls to date, number of 
  1013.                 messages entered to date, matrix mail credit, and the last 
  1014.                 call.  Also shows the current time and date.
  1015. U)pdate Message Loads an already-saved message back into the message editor 
  1016.                 for re-editing.  Note that, because of problems with 
  1017.                 preserving control line information, it is not permitted to 
  1018.                 U)pdate echo or matrix messages.  See above, under "About 
  1019.                 updating".
  1020. X)press Search  Works like hitting return to read the next message, but 
  1021.                 skips over all messages that do not contain a given string 
  1022.                 in the header.
  1023. Z)oom Read      This is much the same as =)Continuous Read but does so in 
  1024.                 all marked areas with new messages, and prompts the user to 
  1025.                 see if they want to enter a message after each area has 
  1026.                 finished.  See above, under "The Prompt" for more 
  1027.                 information.
  1028. .)(Un)Mark Area Toggle the mark on the current area.  Used for A)rea 
  1029.                 commands.
  1030. /)Same as "AN"  Skips to the next marked area with new messages, just like 
  1031.                 typing "AN", except a little less text is output and it's 
  1032.                 only one character to type.
  1033. !)Subop Menu    Simply moves to the Subop Menu.
  1034. +)Move to Reply Moves to the message number in the "*** See also #x." part 
  1035.                 of the current message, if applicable.
  1036. -)Move to Orig. Moves to the message number in the "*** Reply to #x." part 
  1037.                 of the current message, if applicable.
  1038. =)Cont. Read    Turns on continuous mode, which reads all messages from the 
  1039.                 next on to the end of available messages in current 
  1040.                 direction, without prompts or screen clears between 
  1041.                 individual messages.  It can be stopped by typing ^C.  The 
  1042.                 user is asked if they want to leave ANSI (and if so, ANSI 
  1043.                 color) and "More [Y,n]" prompts on during the read.
  1044.  
  1045.  
  1046. File Menu
  1047. ---------
  1048. About New Files:  A file is considered "new" if its date is later than that
  1049. of the last call the user made during which they did a file listing.  Note 
  1050. that that refers to a listing of *any* area and not just the one in 
  1051. question.  Because listing any area sets the "last call with a listing" date 
  1052. for subsequent calls, it is suggested that you look for all new files with 
  1053. the L)ocate command, either "LM*" for marked areas or "LG*" for all areas.  
  1054. Otherwise, if you list one area and then get logged off, your "last listing" 
  1055. date will be set and you will have a harder time finding the new files in 
  1056. the areas you did not list.  A login stack starting with "FLM* Q_" or 
  1057. "FLG* Q_" would be a good idea.  See the Change Menu's X)ecute command for 
  1058. more information on login stacks.
  1059.                 
  1060. <cr>)New Files  The first time <return> is hit (with nothing else on the 
  1061.                 line), the program lists new files as if the "N)ew Files"
  1062.                 command had been executed.  If the files have already been 
  1063.                 listed in this area and the Change Menu's "Auto-Next-Area" 
  1064.                 is set to YES, it will execute the "/)Next Marked Area With
  1065.                 New Files command".  This can be used in a manner similar to 
  1066.                 hitting return to find all new messages in the Message Menu.
  1067. A)rea           Lists all available areas and asks which, if any, to switch 
  1068.                 to.  Normally, this will not show areas you cannot access, 
  1069.                 but if the sysop has supplied a special text file for this 
  1070.                 list, it may contain inaccessible areas.
  1071.  
  1072.                 Hitting <cr> returns the user to the current area.
  1073.  
  1074.                 There are a few commands that can be entered as well as an 
  1075.                 area number:
  1076.  
  1077.                     M - Next marked area
  1078.                     N - Next marked area with new files (see "/", below)
  1079.                     C - Next marked area with new files, checking current
  1080.                         area first
  1081.                     F - First marked area with new files
  1082.                     ? - Describes above four commands
  1083.  
  1084.                 If the Change Menu's "Verbose Scan" is set to YES, the above 
  1085.                 commands show each area's number as it is being checked.
  1086.  
  1087.                 If the program runs out of areas for the above commands, it 
  1088.                 sets the user's area back to 1 and says so.
  1089. C)ontents       Either views the contents of an archive it recognizes, or 
  1090.                 tells the user what the file may be (if it knows).  
  1091.                 Otherwise it will say it doesn't know what the file is.
  1092. D)ownload File  Used to transfer a file from the BBS, if file transfer 
  1093.                 protocols have been set up by the sysop.  First the user 
  1094.                 selects the protocol, and then they will be asked for one or 
  1095.                 more filenames.  If the protocol allows for it, all files 
  1096.                 requested may be sent in a batch, but otherwise only the 
  1097.                 first will be sent.  Use "|" as a filename to indicate the 
  1098.                 end of the file list so that other commands can be stacked 
  1099.                 for after the transfer, ie. "DZ FalconXXX-1.LZH 
  1100.                 FalconXXX-2.LZH FalconXXX-3.LZH | GYN" to download all of 
  1101.                 the Falcon files and then automatically log off.  If any 
  1102.                 files are not present, the user is prompted to enter the 
  1103.                 list again (Remember the line history! One can use ^W to 
  1104.                 bring up the last line for re-editing.).  
  1105.  
  1106.                 The total file size and time required is then shown.  If 
  1107.                 this copy of Falcon is unregistered and the files total more 
  1108.                 than 50K, the transfer will be aborted with a notice about 
  1109.                 the 50K limit.  If there is not sufficient time to complete 
  1110.                 the transfer (in the BBS's estimation), the user will be 
  1111.                 warned that they should abort, but allowed to continue if 
  1112.                 they want because the estimate may be off or they may be 
  1113.                 able to resume the download during the next call if the 
  1114.                 protocol allows for it.
  1115. F)ile Listing   Shows all files, or new files if the user enters "F*", or 
  1116.                 searches for a string if the user enters "F<string>".  You 
  1117.                 must use whitespace to stack commands after a F)ile Listing, 
  1118.                 ie. "F <more commands>" or "F.wrp <more commands>".
  1119.  
  1120.                 The file listing will consist of individual files which may 
  1121.                 be accompanied by comment lines.  The file entries are in 
  1122.                 this format:
  1123.  
  1124.                     <name>       <size> <date>* <description>
  1125.  
  1126.                 The size and date are derived from the actual file and not 
  1127.                 from the list, so they may say "MISSING" and "??-???-??" if 
  1128.                 the file can not be found (some Sysops use this feature to 
  1129.                 store very large files offline which can then be 
  1130.                 requested).  The (blinking) asterisk after the date, if 
  1131.                 present, indicates a new file.
  1132. G)oodbye        Starts the logoff sequence.
  1133. H)url File      "Hurls" a file, along with its description (if it has one) 
  1134.                 into another area.  Useful for putting an inappropriately-
  1135.                 placed file in the proper area.
  1136.  
  1137.                 Technical note:  This tries to simply rename the file from 
  1138.                 one directory to another, but if that is impossible 
  1139.                 (normally because the two directories are on different 
  1140.                 devices or partitions), the user is given the option to 
  1141.                 physically copy it over and delete the original.  This will 
  1142.                 show progress, in percent, at most once a second.
  1143. I)mport File    Used to put file(s) into the F)ile Listing.  Asks for file 
  1144.                 name(s), and then when done it asks for a description of 
  1145.                 each file imported.  This is mostly used for local 
  1146.                 "uploading".
  1147. J)ump to Msgs   "Jumps" over the Main Menu to the Message Menu.  Use this 
  1148.                 instead of the usual "MM".
  1149. K)ill File      Deletes a file and takes it out of F)ile Listing if it is in 
  1150.                 it.
  1151. L)ocate Files   This acts much like using the F)ile Listing to search for a 
  1152.                 string, but looks in all areas (a G)lobal search) or all 
  1153.                 marked areas (a M)arked search) for either a given string or 
  1154.                 "*" for new files.  As is mentioned above, using LM* or LG* 
  1155.                 is a very good way to quickly find all new files.
  1156. M)ain Menu      Simply moves to the Main Menu.  You can also Q)uit to the 
  1157.                 Main Menu.
  1158. N)ew Files      Shows new files in this area, just like typing "F*", but 
  1159.                 shorter.
  1160. R)Zmodem Upload Because Zmodem always starts a send (upload) by sending the
  1161.                 string "RZ<return>", this command was added to automatically
  1162.                 start receiving should someone start a Zmodem upload without
  1163.                 entering "UZ" first.  Note that there must be a Z)modem
  1164.                 protocol available.  See U)pload for more information.  The 
  1165.                 only difference is that this command does not bother with 
  1166.                 the space/time-available information, as the other end 
  1167.                 should not be able to see it if it is already sending.
  1168. S)tatus         Display some user information, including time on line, time 
  1169.                 left, time online today, time left today, time online to 
  1170.                 date, kilobytes downloaded, kilobytes uploaded, efficiency 
  1171.                 of last transfer, number of calls to date, number of 
  1172.                 messages entered to date, matrix mail credit, and the last 
  1173.                 call.  Also shows the current time and date.
  1174. T)ype File      Types a file.  This leaves things like "More [Y,n]" prompts 
  1175.                 on, and that is how it differs from an ASCII transfer.
  1176. U)pload File    Used to transfer a file to the BBS, if file transfer 
  1177.                 protocols have been set up by the sysop.  First the user 
  1178.                 selects the protocol, and then they may be asked for a 
  1179.                 filename, but only if the protocol does not send it 
  1180.                 automatically.  Then it will warn the user about time and 
  1181.                 space available.  If this copy of Falcon is unregistered, it 
  1182.                 will warn the user about the 50k transfer limit.  Then it 
  1183.                 starts waiting for the transfer to start.
  1184.  
  1185.                 A file whose upload was aborted for some reason (ie. 
  1186.                 insufficient time) may be resumed if the user is the one who 
  1187.                 started it (or is a SYSOP-level user) and the protocol 
  1188.                 allows for it.  Simply start an upload with the same name.  
  1189.                 As a side effect, a protocol that does not resume can be 
  1190.                 used to replace a file in the same fashion.
  1191.  
  1192.                 After the upload, the program asks for the description(s) of 
  1193.                 file(s) uploaded.  If the user has disconnected, files are 
  1194.                 given blank descriptions.
  1195. Z)ippy Listing  This does a zippy (meaning "quick" - okay, so I was running 
  1196.                 out of good letters) AmigaDOS "List"-command-style listing 
  1197.                 of the directory which contains the current area's files.  
  1198.                 This may show files which are not in the F)ile Listing, such 
  1199.                 as the "files.bbs" file the F)ile Listing is derived from.  
  1200.                 Unless the user is of SYSOP level, this will only show files.
  1201. .)(Un)Mark Area Toggle the mark on the current area.  Used for A)rea 
  1202.                 commands and L)ocate M)arked commands.
  1203. !)Libr. Menu    Simply moves to the Librarian Menu.
  1204. /)Same as "AN"  Skips to the next marked area which has new files.  This is 
  1205.                 just like typing "AN", except a little less text is output 
  1206.                 and it's only one character to type.
  1207.  
  1208.  
  1209. Change Menu
  1210. -----------
  1211. This menu always shows the status of all available options.  This is the
  1212. format at the time of writing:
  1213.  
  1214.    U)ser Name.......<name>
  1215.    C)ity............<city>
  1216.  
  1217.    H)elp Level......<n/r/e>   S)creen Clears...<y/n>  T)ab Expansion...<y/n>
  1218.    E)ditor Type.....<l/s>     ANSI G)raphics...<y/n>  LineF)eeds.......<y/n>
  1219.    Screen W)idth....<width>   R)emove Color....<y/n>  N)ulls...........<num>
  1220.    Screen L)ength...<length>  I)BM.Characters..<y/n>  See Seen-B)y's...<y/n>
  1221.    M)ore Prompts....<y/n>     >)Highlite quote.<y/n>  See K)ludges.....<y/n>
  1222.    +)Auto-Next-Area.<y/n>     D)estructive BSp.<y/n>  V)erbose Scan....<y/n>
  1223.    Msg Z)Scrolling..<s/p/w>   X)ecute At Login.<stack>
  1224.  
  1225.    Marked A)reas:
  1226.    Message:  <area list>
  1227.    File:     <area list>
  1228.  
  1229. A)rea Marks     Toggle marks on file or message areas.  Enter M or F to 
  1230.                 select which type (defaults to M), or a number to toggle an 
  1231.                 area.  Hit return or enter Q to quit back to the Change Menu.
  1232. B)SEEN-BY Lines SEEN-BY: lines usually follow the Origin: line of an echo 
  1233.                 message.  Since they aren't the least bit interesting, 
  1234.                 they're normally detected and hidden.  They can be shown if 
  1235.                 this option is toggled to YES.
  1236. C)ity           Obvious.  Change the city the user lives in.
  1237. D)estr. BackSp. If, when your terminal displays a Backspace (ASCII 8) 
  1238.                 character, it erases the character under the cursor's new 
  1239.                 position, you have a destructive backspace.  If there is no 
  1240.                 effect other than moving the cursor, you have a non-
  1241.                 destructive backspace.  Falcon will give you a brief test to 
  1242.                 see which you have.  Making sure this is set correctly is 
  1243.                 important because it is used in prompt editing and in 
  1244.                 erasing "More [Y,n?]" prompts.
  1245. E)ditor Type    Toggle between the the LINE-oriented editor (called LORE) 
  1246.                 and the SCREEN-oriented editor (called FRED, after Falcon's 
  1247.                 Rapid EDitor).  If you have a large enough display (60x10 or 
  1248.                 more), are calling at 1200 baud or more, and you are running 
  1249.                 with a terminal that supports ANSI (with Insert/Delete Line/
  1250.                 Character codes), you should set this to SCREEN.
  1251. F)Linefeeds     Toggle linefeeds on or off.  Do NOT turn this off if you 
  1252.                 need them!  Everything will suddenly be displayed on one 
  1253.                 line if you do.  Local console users must be especially 
  1254.                 careful because the local screen always gets linefeeds and 
  1255.                 the effects may not be seen until they log in from remote.  
  1256.                 If you happen to get that effect without realizing how you 
  1257.                 did it, then this is the toggle for you.
  1258. G)ANSI Graphics Toggle ANSI positioning and color codes on and off.  If you 
  1259.                 have them on and you see a lot of things like "[0;36m", then 
  1260.                 your terminal does not support ANSI and you should turn it 
  1261.                 off here.  See also R)emove Color.
  1262. H)elp Level     Sets the help level.  There are three levels, and they give 
  1263.                 the following format to most menus:
  1264.  
  1265.                     NOVICE:
  1266.                         <menu name> MENU: Type "??" by itself for help
  1267.                         <brief help, as when "?" is typed>
  1268.                         Select:
  1269.  
  1270.                     REGULAR:
  1271.                         <menu name> MENU: <command letters available>
  1272.                         Select:
  1273.  
  1274.                     EXPERT:
  1275.                         <menu name> MENU:
  1276.                         Select:
  1277.  
  1278.                 Variations exist in the Message, File, and User Edit menus.  
  1279.                 It is suggested to users on floppy-based systems that they 
  1280.                 not use NOVICE, as the brief help is read from a text file 
  1281.                 every time.  Letter help is also read from the same help 
  1282.                 file, but it is cached at run-time to avoid noticeable 
  1283.                 pauses for such a small amount of text.
  1284. I)BM Characters Toggle whether or not Falcon sends out IBM (ASCII 128-255) 
  1285.                 characters on purpose.  Off the top of my head, I can only 
  1286.                 think of the dividing lines in the screen editor, which are 
  1287.                 either dashes or horizontal IBM graphic bars, depending on 
  1288.                 this setting.  Note that they are not actually filtered out 
  1289.                 if they come up in unexpected places.  Maybe later.
  1290. K)ludge Lines   Kludge lines are message lines, usually in echoes or netmail 
  1291.                 areas, which contain control information and are usually 
  1292.                 hidden because the line starts with Control-A (called an 
  1293.                 IFNA Kludge, for reasons I don't care to explain).  They can 
  1294.                 be shown if this option is toggled to YES.
  1295. L)Screen Length Change screen length, in the range of 2-100.  There will be 
  1296.                 a test if the length is not stacked (ie. "L25").
  1297. M)"More? [Y,n]" Toggle "More? [y,n]" prompts at the end of each page of text.
  1298. N)ulls          Determine the number of "filler nulls", or ASCII 0 
  1299.                 characters, to be sent out after each carriage return.  I 
  1300.                 think it's meant for systems with small receive buffers and 
  1301.                 slow scrolling.  Note that this has never actually been 
  1302.                 implemented in the BBS, but it's there for doors.  I suspect 
  1303.                 nobody actually needs them anymore, but we'll see if anyone
  1304.                 complains.
  1305. P)assword       This changes the user's password.  It first asks for the old 
  1306.                 password, to be sure nobody has walked in while the real 
  1307.                 user was, say, answering the call of nature.  Then it asks 
  1308.                 for a new one and asks again to confirm that it got it right.
  1309. Q)uit to Main   Simply moves to the Main Menu.  Hitting <return> also does 
  1310.                 this.
  1311. R)emove Color   Toggle suppression of color when ANSI is on.  If your term 
  1312.                 supports ANSI, but you don't want the colorful display, you 
  1313.                 can use this to turn it off.  This is also useful if your 
  1314.                 terminal is monochrome anyway, as it cuts down on the amount 
  1315.                 of escape codes transmitted.  You still get the advantage of 
  1316.                 screen positioning codes and the full-screen editor if you
  1317.                 use it.
  1318. S)creen Clears  If this is set to YES, the screen will be cleared in various 
  1319.                 places, such as the beginning of each message, or the entry 
  1320.                 to the message menu, or the change menu, etc.  If it is set 
  1321.                 to NO, a blank line will be sent instead of a screen clear. 
  1322.                 This does not affect the screen editor, of course.
  1323. T)ab Expansion  Toggles whether or not Tab characters are expanded to 
  1324.                 spaces.  This is not actually used in Falcon itself, but it 
  1325.                 is available for doors to use.
  1326. U)ser Name      Obvious enough.  Allows the user to change their name.  
  1327.                 Normally this will not be available to the average user.  
  1328.                 Note that it is not permissible to change the name to 
  1329.                 "Sysop" or "All".
  1330. V)erbose Scan   If this is toggled to YES, using the special area-scanning 
  1331.                 commands will display the area numbers as they are scanned.  
  1332.                 Most useful, I imagine, for floppy systems.  On a hard drive 
  1333.                 the pause is negligible.
  1334. W)Screen Width  Change the screen width, in the range of 16-160 columns.
  1335. X)ecute @ Login Change the command stack to be executed automatically at 
  1336.                 login.  Use " " to clear it.  There is a maximum of 25 
  1337.                 characters.  I personally recommend "FLM* Q_MAF", which 
  1338.                 locates and displays all new files in all marked areas, 
  1339.                 stops and waits for the user to hit return, then finds the 
  1340.                 first marked message area with new messages.  This of course
  1341.                 assumes that the user has marked their favourite areas.  
  1342.                 Note that the starting place is (obviously) the Main Menu.
  1343. Z)Scroll Mode   This affects the way a message scrolls.  This does not 
  1344.                 affect Zoom or Continuous read modes.
  1345.  
  1346.                     S ... Normal scrolling.
  1347.                     P ... Display one page at a time under the message 
  1348.                           header.  This requires ANSI and More prompts.
  1349.                     W ... Scrolls a window of text under the message 
  1350.                           header.  This requires ANSI with Delete-Line 
  1351.                           codes.
  1352. +)Auto-Next     If this is set to YES, and all available material has been 
  1353.                 seen in the current area, hitting return will either skip to 
  1354.                 the next marked area with new material or return to area 1.  
  1355.                 Applies to both file and message areas.
  1356. >)Quote H.Light Toggles highlighting of quote lines in messages. Meaning, if 
  1357.                 ANSI color is on, will turn ">"-style quotes white while the 
  1358.                 the main text is cyan.
  1359. ^)Capitalizing  Presently this only toggles Mcname or Macname with McName or 
  1360.                 MacName.  However, I'm going to have to change that sooner 
  1361.                 or later because there are other oddly-capitalized names out 
  1362.                 there.
  1363.  
  1364.  
  1365. Edit Menu
  1366. ---------
  1367. Note that this menu is somewhat different, as it is accessed from the line-
  1368. based message editor.  See the section on that editor for more information.
  1369.  
  1370. If you are logged off while in this menu, your message will be saved with a 
  1371. note at the bottom saying that it was done automatically due to a 
  1372. disconnection.
  1373.  
  1374. C)ontinue       Continue message where you last left off (or set the 
  1375.                 cursor).  This may drop you into the middle of the message 
  1376.                 if you have put the cursor there.
  1377. N)ew Message    This simply reinitializes the message buffer (to a blank 
  1378.                 message).  Good if you give up on your current text but 
  1379.                 still want to say something.
  1380. A)bort Message  Obvious.  Exit the message editor without saving the 
  1381.                 message.  There will be a y/n prompt to see if this was done 
  1382.                 on purpose.  Note that there is an invisible Q)uit Message 
  1383.                 command that does the same thing.
  1384. F)Change Flags  Use this to toggle the following message flags (if 
  1385.                 applicable): Pvt, Crash, Kill (after sending), File 
  1386.                 (as in file-attach).
  1387. T)o             Change the "To:" field of the message.  If "Sysop" is 
  1388.                 entered, it may be redirected to a real name if the sysop 
  1389.                 has set up the program to do so.
  1390. J)Subject       Change the Subject: field of the message.
  1391. D)Delete Line   Delete one line of the message.  Note that this deletes one 
  1392.                 physical editor line, and not any lines which is may wrap 
  1393.                 to.
  1394. W)rap toggle    Toggle whether or not a certain line wraps around to the 
  1395.                 next.  Meaning whether the next line continues the paragraph 
  1396.                 that this line was part of.
  1397. I)nsert At      Select the new position to insert text at - note that it is 
  1398.                 perfectly fine to pick a place in the middle of the 
  1399.                 message.  There will be a  notice about which line to pick 
  1400.                 for the end of the message, which will normally be the 
  1401.                 highest line + 1.
  1402. E)dit Line      Perform a search & replace function on one line.  Note that 
  1403.                 the search string is not case-sensitive.
  1404. L)ist Message   List message, including header - except for line numbers, 
  1405.                 this will look very similar to what a user would see when 
  1406.                 they read the message.
  1407. S)ave Message   Clear enough.  Save the message and exit the editor.
  1408. H)elp           Transmits an extended help file with information on for 
  1409.                 using the line editor itself.
  1410.  
  1411.  
  1412. Subop Menu
  1413. ----------
  1414. A)ll Keys/Marks Give out or take away all area keys, write keys, or marks.
  1415. C)ode/Tag       Change the area's mail code/tag, ie. "AMY_POINT".
  1416. D)irectory      Change the area's regular directory/path.  If the path for 
  1417.                 the area does not exist, there is an option to create it.  
  1418.                 Use "." for the current directory, since hitting return 
  1419.                 aborts.
  1420. F)Toggle Flag   Toggle one of the area flags:  INVISIBLE, LOCKED, READONLY, 
  1421.                 PRIVATEONLY, PUBLICONLY, WRITELOCKED, AUTOKEY, or 
  1422.                 AUTOWRITEKEY.
  1423. I)nformation    Display information about current area:  name, code, 
  1424.                 directory, level, password, type, flags.
  1425. R)eload Stats   Rereads the area's directory to determine the number of 
  1426.                 messages and the highest message.  This can be used if the 
  1427.                 cached statistics appear to be wrong.
  1428. K)Toggle Key    Toggle one user's area key.
  1429. L)evel          Change the area's minimum entry level, ie. PRIVIL.
  1430. M)Toggle Mark   Toggle one user's area mark.
  1431. N)ame           Change the area's verbose name, ie. "General Messages".
  1432. P)assword       Change the area's password.  Use "-" to turn it off, since 
  1433.                 hitting return aborts.
  1434. Q)uit           Moves/quits to the Message Menu.  Also saves message area 
  1435.                 configuration file if necessary.
  1436. T)Area type     Change the area's type:  NORMAL, ECHO, or MATRIX.
  1437. V)iew Users     List users:  A)ll users, users I)n the area, users O)ut of 
  1438.                 the area, users who can W)rite, M)ute users, and users 
  1439.                 S)earched for.
  1440. W)Toggle Write  Toggle one user's write key.
  1441. #)Renumber      Renumber the area's messages.  When it asks for the "first", 
  1442.                 it means the lowest message that could be deleted - note 
  1443.                 that all messages below the first must exist.  This is used 
  1444.                 mainly to preserve echo highwater messages (1.msg) by 
  1445.                 starting with message 2 (note - it will still adjust reply 
  1446.                 links for messages below this, as it should).  When it asks 
  1447.                 how many should be left, it wants to know the number of 
  1448.                 messages that can remain at or above the first after 
  1449.                 renumber is done.  Use a very large number to just renumber 
  1450.                 and not reduce (ie. # 1 5000).  Note that is is perfectly 
  1451.                 fine to ask for zero messages to be at or above the starting 
  1452.                 point.
  1453.  
  1454.  
  1455. Librarian Menu
  1456. --------------
  1457. A)ll Keys/Marks Give out or take away all area keys or marks.
  1458. C)ode/Tag       Change the area's mail code, ie. "GENERAL".
  1459. D)irectory      Change the area's regular directory/path.  If the path for 
  1460.                 the area does not exist, there is an option to create it.  
  1461.                 Use "." for the current directory, since hitting return 
  1462.                 aborts.
  1463. F)Toggle Flag   Toggle one of the area flags:  INVISIBLE, LOCKED, READONLY, 
  1464.                 or AUTOKEY.
  1465. I)nformation    Display information about current area:  name, code, 
  1466.                 directory, upload directory, level, password, type, flags.
  1467. K)Toggle Key    Toggle one user's area key.
  1468. L)evel          Change the area's minimum entry level, ie. PRIVIL.
  1469. M)Toggle Mark   Toggle one user's area mark.
  1470. N)ame           Change the area's verbose name, ie. "General Files".
  1471. P)assword       Change the area's password.  Use "-" to turn it off, since 
  1472.                 hitting return aborts.
  1473. Q)uit           Moves/quits to the File Menu.  Also saves file area 
  1474.                 configuration file if necessary.
  1475. T)Area Type     Change the area's type:  NORMAL, or MATRIX.
  1476. U)pload Dir.    Change the area's upload directory/path.  If the path for 
  1477.                 the upload area does not exist, there is an option to create 
  1478.                 it.  Use "." for the current directory, since hitting return 
  1479.                 aborts.
  1480. V)iew Users     List users:  A)ll users, users I)n the area, users O)ut of 
  1481.                 the area, and users S)earched for.
  1482.  
  1483.  
  1484. Sysop Menu
  1485. ----------
  1486. A)dd Area       Use this to create a new message or file area, to be 
  1487.                 customized with the Subop or Librarian menus, respectively.
  1488.                 If the path for the area does not exist, there is an option 
  1489.                 to create it.  Use "." for the current directory, since 
  1490.                 merely hitting return aborts.
  1491. D)irectory      Displays a DOS "List" command-style list of files in a given 
  1492.                 directory.
  1493. E)UserEdit Menu Simply moves to the User Edit Menu.
  1494. F)ile Areas     Displays all file areas, in this format:  "<area> <type> 
  1495.                 <level> <Lock,PW,Inv. flags> <description>".
  1496. K)ill Log       If the Sysop has a LOGFILE, it can be deleted with this.
  1497. L)System Log    If the Sysop has a LOGFILE, it can be displayed with this.
  1498. M)essage Areas  Displays all message areas, in this format:  "<area> <type> 
  1499.                 <level> <Lock,PW,Inv. flags> <description>".
  1500. Q)uit           Moves/Quits to the Sysop Menu.  Also saves message area 
  1501.                 and/or file area configuration files if necessary.
  1502. S)wap Areas     Allows one to exchange two message or two file areas.  This 
  1503.                 is used for rearranging areas.  Use this instead of editing 
  1504.                 the area files because it also swaps all area information, 
  1505.                 user pointers, keys, etc.  It is permissible to swap a real 
  1506.                 area for an empty one, except that area 1 must be a real 
  1507.                 area.
  1508. T)ype File      Display a given file.  Only sysop can type *.msg, user.bbs, 
  1509.                 user.bak.
  1510.  
  1511.  
  1512. User Edit Menu
  1513. --------------
  1514. The prompt for this menu also shows the currently selected user (or 
  1515. "<none>").
  1516.  
  1517. A)dd User       Creates a blank user in the user.bbs file.  They are given 
  1518.                 the default new user level, or NORMAL if the system is 
  1519.                 configured not to take new users.  This new user should next 
  1520.                 be edited with other commands to personalize it.
  1521. C)ity           Simply changes the City for the currently selected user.
  1522. D)elete User    Deletes the current user (if it's not the user doing the 
  1523.                 editing), but prompts first to be sure it was intended.  
  1524.                 Note that this sets the record to "unused" (designated by a 
  1525.                 blank name) for later use.  It does not actually shorted the 
  1526.                 user log.
  1527. E)dit User      Select a user to edit.  Gives option to save current user, 
  1528.                 if necessary.  When selecting, it is possible to search for 
  1529.                 a user name (or number).  Use "*" to search through all 
  1530.                 names.  When searching, the user will be prompted about 
  1531.                 whether this is the user they want or not, and to see if 
  1532.                 they want to abort this search.  Use "?" to list all names 
  1533.                 without prompts.
  1534. H)Toggle Hidden Hides (or unhides) selected user from users lower than SYSOP
  1535.                 in various user lists.
  1536. I)User Info     Shows the following user stats:  name, number, status of 
  1537.                 "hidden" flag, city, password (if in local mode and user 
  1538.                 looking is of SYSOP level), last time on, level, netmail 
  1539.                 credit, time on & time limits, downloads & download limits, 
  1540.                 calls, messages entered, and the various keys they have 
  1541.                 (message, message write, file, subop, librarian).
  1542. K)Toggle A Key  Toggles any key (message, message write, file, subop, 
  1543.                 librarian).  Note that only a SYSOP-level user can grant 
  1544.                 subop and/or librarian keys.
  1545. L)User Level    Set the currently selected user's level.  A level higher 
  1546.                 than the giver's cannot be granted.  Note that this 
  1547.                 modifies time/transfer limits if necessary.
  1548.  
  1549.                 User levels are as follow:  TWIT, DISGRACE, NORMAL, PRIVIL, 
  1550.                 ASSIST, and SYSOP, in ascending order.  TWIT is normally
  1551.                 punishment.  DISGRACE is normally used for new users 
  1552.                 awaiting verification.  NORMAL should be what the general 
  1553.                 rabble have.  PRIVIL is for preferred users.  ASSIST is
  1554.                 obviously for assistants.  And, of course, SYSOP is the 
  1555.                 biggie and needs no explanation.
  1556. N)ame           Simply changes the Name the currently selected user.
  1557. P)assword       Change the currently selected user's password.  This is only 
  1558.                 available to SYSOP-level users at the local console.
  1559. Q)uit           Moves/quits to the Sysop Menu.  Also gives option to save 
  1560.                 user or abort the exit if a user is currently selected.
  1561. T)ime/Transfer  Set time and/or transfer limits.  If there is no user 
  1562.                 selected, this affects all users of given level.  Asks for 
  1563.                 time per day, time per call, download per day, download per 
  1564.                 call, and whether or not to clear the user's accumulated 
  1565.                 downloads.
  1566. V)alidate User  "Validate" the currently selected user.  If their level is 
  1567.                 less than NORMAL, it is set to NORMAL and the time/transfer 
  1568.                 limits are adjusted.
  1569. $)Net Credit    Set netmail credit in cents.  (Yes, folks, I know not all of 
  1570.                 you use dollars and cents.  Sorry.  Maybe it'll be 
  1571.                 configurable later.)
  1572.  
  1573.  
  1574.  
  1575. 7.  Entering and Editing a Message
  1576. ==================================
  1577.  
  1578. Starting a message
  1579. ------------------
  1580. Starting a message is a matter of either E)ntering one or R)eplying to one
  1581. in the Message Menu (also, you could leave a logoff message to the sysop).
  1582. The very first thing that may be asked, assuming the message is a reply, is 
  1583. whether or not you want to quote the message into the message buffer.  If you
  1584. do, it will be quoted in the (de facto) standard " initials> some quoted 
  1585. text" style, with a header line that says, "In a message dated <datestamp>, 
  1586. <sender> wrote:").  If you do this, please make sure you delete all the text 
  1587. you do not want, or else you'll be wasting disk space and the reader's time.
  1588.  
  1589. The next thing you will be asked, unless you are a user with a level lower
  1590. than sysop in a public-only or private-only area, is whether or not you want
  1591. the message you are about to enter to be private.  A private message cannot
  1592. be read by normal users.  Only the sender, the recipient, and users with
  1593. a user level of SYSOP can read it.
  1594.  
  1595. Next, if this is a netmail message and your level is SYSOP, you will be asked
  1596. if you want to send the message as CrashMail.  The reason this is restricted
  1597. to SYSOP is because CrashMail goes out immediately after the call, and
  1598. DIRECTLY to the destination without routing.  In other words, we can't have
  1599. Joe Jerk sending a "HI! I'M JOE, WHO ARE YOU?" message to Tokyo (or 
  1600. Saskatoon, if you happen to be reading this in Tokyo).  Note that the actual 
  1601. sending of CrashMail is up to the mail tosser and mailer.  Falcon just flags 
  1602. it as being such mail.
  1603.  
  1604. Next, if this is a netmail message, you will be asked if you want this 
  1605. message to be killed after it is sent.  If you cannot figure out what this 
  1606. results in, you are a stupid festering hunk of goo and do not deserve to 
  1607. send netmail.
  1608.  
  1609. Again, if this is a netmail message, you will then be asked to enter a 
  1610. destination address.  If this is a reply, the default address will be the
  1611. sender's address in the message you replied to, and if not it will be the
  1612. address of the system you are on.  See "Entering a FidoNet Address", below,
  1613. for more information on doing so.
  1614.  
  1615. Next, a simple "To:" prompt.  This is, obviously, the name of the person
  1616. you want to send this message to.  If the message is a reply, the original
  1617. sender's name will be the default.  If you're sending a private message, 
  1618. this name will be checked against the user list, and if it's not in there, 
  1619. you will be warned that there is nobody by that name to receive it, and 
  1620. asked if you want to try again.  You can use "?" for a name if you want to 
  1621. look through the user list to, say, find the proper spelling of a name (you 
  1622. can search for a string or list all users by hitting return).  Note that if 
  1623. you send to "Sysop", your message will probably be re-directed to the 
  1624. sysop's real name.  
  1625.  
  1626. Next, if this is a netmail message, you will be asked if you want this 
  1627. message to have a file or files attached to it.  The file(s) will then be 
  1628. named in what is normally the Subject line.  See your mail tosser 
  1629. documentation to be sure that it supports this, and to see what the syntax 
  1630. is supposed to be for the Subject line, because I've never used this and do 
  1631. not know anything about it except that Falcon sets the File-Attach bit.
  1632.  
  1633. Finally the Subject: prompt, which is obvious enough.  If this is a reply, 
  1634. the default for this prompt is the subject of the original message, with a 
  1635. "Re: " prepended if one is not already there.  Just for your information, 
  1636. "Re" is apparently an originally-Latin word ("res") which means "Concerning" 
  1637. or "In the matter of" (or "Regarding" if you need a "re" word in order to 
  1638. remember).  It doesn't stand for "Reply".
  1639.  
  1640. Note that the Subject: prompt will say "File(s):" instead if this is a file-
  1641. attach message.
  1642.  
  1643.  
  1644. Entering a FidoNet address
  1645. --------------------------
  1646. The simplest thing to do is to hit return, which will enter the default
  1647. address.  This may be the desired address if, for instance, the address
  1648. being prompted for is the destination for a reply.
  1649.  
  1650. The syntax rules for entering an address are as follows:
  1651.  
  1652.     1) Entering a number preceded by a "." changes the point
  1653.     2) Entering a number preceded by a ":" changes the net
  1654.  
  1655.     3) Entering a number followed by a ":" changes the zone
  1656.     4) Entering a number followed by a "/" changes the net
  1657.     5) Entering a number followed by a "." changes the node
  1658.  
  1659.     6) Entering a number followed by nothing and preceded by nothing or 
  1660.        a '/' changes the node, and sets the point to 0
  1661.  
  1662. Several rules may apply in a string, ie. "123/45" uses the fourth and sixth 
  1663. rules, in that order.  Since it's not necessarily clear from the rules what
  1664. to do, here are some useful forms which show that the rules really just
  1665. describe the format you'd probably want to use anyway:
  1666.  
  1667.     node                  to send to a node in your net, implies .0
  1668.     net/node              to send to a net/node in your zone, implies .0
  1669.     zone:net/node         to send to zone:net/node, implies .0
  1670.  
  1671.     .point                to sent to a point off of your node or your boss
  1672.     node.point            to send to point in your net
  1673.     net/node.point        to send to a net/node.point in your zone
  1674.     zone:net/node.point   to send to zone:net/node.point
  1675.  
  1676.     zone:                 to set the current zone without exiting the prompt
  1677.     net/                  to set the current net without exiting the prompt
  1678.     node.                 to set the current node without exiting the prompt
  1679.  
  1680. Obviously "zone", "net", "node", and "point" would be replaced by numbers.
  1681.  
  1682. Other stuff you can enter at the address prompt, if the program has access 
  1683. to a nodelist:
  1684.  
  1685.     Z or : by itself      gives a listing of zones (quite slow)
  1686.     N or / by itself      gives a listing of nets in current zone (slow)
  1687.     O or # by itself      gives a listing of nodes in current net
  1688.     P by itself           gives a listing of points off of current node
  1689.  
  1690. Once an address has been entered, it will be checked for existence.  If 
  1691. there is a nodelist, only SYSOP-level users will be allowed to send to non-
  1692. listed destinations (with a warning).  If there is no nodelist, the user 
  1693. will be warned that the destination may not exist.
  1694.  
  1695. If a message is not local, its cost will be obtained from the address' 
  1696. listing in the nodelist, or from the default cost set up in the 
  1697. configuration if there is no nodelist.  Users with insufficient credit will 
  1698. not be allowed to send to that node.
  1699.  
  1700.  
  1701. Saving a Message
  1702. ----------------
  1703. First, the program opens the disk file and writes out the header.  Then it
  1704. writes out any applicable control lines.  The comes the actual message
  1705. body.  Finally, for echo messages, tear/origin lines (if not already 
  1706. present) and blank SEEN-BY and PATH lines if the program has been configured 
  1707. to do so.
  1708.  
  1709. Then, if the message is a new reply, Falcon tries to link it onto the end of 
  1710. the reply chain, noting any other replies as it does so.
  1711.  
  1712. Finally, it subtracts netmail credit if this is a netmail message and the 
  1713. user has a level lower than SYSOP.
  1714.  
  1715. If Falcon can't save the message, it returns to the editor, telling the user 
  1716. to either abort or wait and try again later.  The exception to this is if 
  1717. the message is being saved due to a disconnection, of course.
  1718.  
  1719.  
  1720. The Editors Themselves
  1721. ======================
  1722.  
  1723. LORE ("Line ORiented Editor")
  1724. -----------------------------
  1725. This is for people who either have an insufficient display size or an 
  1726. insufficient/non-existent ANSI driver in their terminal program.  It's
  1727. an amalgamation of the best parts of every line editor I've ever used,
  1728. spliced together as well as possible.
  1729.  
  1730. Text entry in the line editor can be as simple as the average line editor:
  1731. enter text continuously, hit return only at the end of paragraphs, and use 
  1732. backspace to erase & correct errors.  Words will automatically be wrapped 
  1733. to the next line if the line nears your screen's width, so you need not hit 
  1734. return anywhere except the ends of paragraphs.  (If you hit return at the
  1735. end of each line, the message may not be formatted correctly for someone
  1736. with a different screen width from yours.)
  1737.  
  1738. However, this editor also allows full usage of Falcon's fairly versatile
  1739. prompt-editing commands.  Please refer to the Line Editing and Command
  1740. History section for more information on general line editing features.
  1741. The notable differences between the prompt and the line editor which are 
  1742. described there but which bear repeating here are as follows:  using the 
  1743. up/down commands normally used to move through the line history will 
  1744. instead move through the message, and using the backspace command at the 
  1745. start of a non-first line will delete the current line if it is empty, 
  1746. then move to the previous line and make it wrap (think of it as deleting 
  1747. the carriage return if there is one).
  1748.  
  1749. When you are finished entering text, or you want to do something like
  1750. listing the message, you can either hit return on a blank line, or use
  1751. ESC-ESC if that would be inconvenient (ie. editing the middle of a 
  1752. paragraph).  That will take you to the Edit Menu (where you should be right
  1753. now), which has its own documentation and therefore won't be discussed here.
  1754. However, I will note that using I)nsert Text to move the cursor to a 
  1755. certain line may put you on the line before it if that line wraps.  It
  1756. makes sense if you think about it.
  1757.  
  1758. Use "<space><return>" if you want to enter an actual blank line into your 
  1759. message.
  1760.  
  1761. About entering text in the middle of the message:  If you have moved the
  1762. cursor into the middle of your message, remember that you are _inserting_
  1763. the text, not overwriting.  So you can add a paragraph to the middle of
  1764. a message or text to the middle of a paragraph.
  1765.  
  1766. Finally, you might note that the line number is followed by either a ":" or
  1767. a ">".  If it's followed by a ">", this is the start of a new paragraph
  1768. (ie. you hit return on the last line), and if it's a ":", then this is a
  1769. continuation of the previous line.  Simple, huh?
  1770.  
  1771. Note that if you are logged off for some reason, the message will be saved
  1772. with a note to that effect at the bottom.
  1773.  
  1774.  
  1775. FRED ("Falcon's Rapid EDitor")
  1776. ------------------------------
  1777. (To avoid redundancy, only the important or local-user-relevant information 
  1778. will be highlighted here.  Please refer to the online help by typing "^Kh" 
  1779. for more comprehensive documentation.  Obviously, the sysop can just type 
  1780. the help/longhelp.bbs file.)
  1781.  
  1782. Suggestion:  As is noted elsewhere, the cut/paste buffer is a temporary file 
  1783. in "T:".  Putting "T:" on a RAM disk or on a reasonably fast hard drive is a 
  1784. good idea.
  1785.  
  1786. A local user can click in various bits of the screen.  If the click is
  1787. between the two dividing lines around the main text, the cursor will simply
  1788. be moved as close to the click as possible.  If the cursor is already there,
  1789. the mark will be set at that position.  If the click is on one of the 
  1790. dividing lines, the result will be a page-up or -down, with the exception
  1791. that clicking on the INSERT/OVSTRK indicator on the bottom line will toggle
  1792. it instead of paging down.  Finally, clicking on the header edits it.
  1793.  
  1794. Also available to the local user are the usual online menus (meaning Amiga
  1795. menus, not BBS menus), plus two new ones that are normally ghosted.  Here 
  1796. they are, listed by their menu shortcuts:
  1797.  
  1798.     Fred
  1799.     ----
  1800.     S   Save                Simply saves the message.
  1801.     A   Abort               Abort the message, but only after a
  1802.                             confirmation prompt
  1803.     N   New (clear)         Erase message and start again, but only after
  1804.                             a confirmation prompt
  1805.  
  1806.     Fred-Edit
  1807.     ---------
  1808.     M   Set Mark            Set the mark to the current cursor position
  1809.     X   Cut                 Cut the marked area of text out of the
  1810.                             message into the cut/paste buffer
  1811.     C   Copy                Cut the marked area of text into the 
  1812.                             cut/paste buffer
  1813.     V   Paste               Insert the contents of the cut/paste buffer
  1814.                             into the message at the cursor position
  1815.     F   Import File         Load a textfile into the cut/paste buffer for
  1816.                             pasting into the message.  Local mode only.
  1817.     K   Kill Line           Cut the line under the cursor out of the 
  1818.                             message and put it in the cut/paste buffer.
  1819.     E   Kill to EOL         Cut the line under and to the right of the 
  1820.                             cursor out of the message and put it in the 
  1821.                             cut/paste buffer.
  1822.     I   Toggle Insert       Toggle insert/overstrike mode.
  1823.  
  1824.  
  1825. Requirements:
  1826.  
  1827. FRED will only work for a user with a screen of minimum dimensions 60x10.
  1828. Further, they must be calling at no less than 1200 baud, and they must have
  1829. ANSI turned on.  It should also be pointed out that their ANSI emulation
  1830. must be sufficient.  Terminals which work so far are:  Any Amiga term which 
  1831. uses the console.device for screen output (95% of them do), and Telix for 
  1832. MS-DOS.  Amiga's JRComm lower than v1.01 does NOT work, but v1.01+ 
  1833. apparently does in IBM ANSI mode.  MS-DOS's ProComm does not seem to emulate 
  1834. the codes, though I've only tried testing it with echo-back from the modem.  
  1835. I'm told the MacIntosh terminal ZTerm works.  Anything else is a big 
  1836. question mark, and should be tried out.  Refer to "ANSI Used in Output", 
  1837. elsewhere in this document, for more information.  Please report any 
  1838. findings so they can be included in this list.  
  1839.  
  1840.  
  1841.  
  1842. 8.  The Goodbye (Logoff) Sequence
  1843. =================================
  1844.  
  1845. This first asks the user if they are sure they want to log off.  This avoids
  1846. accidental logoffs.  If they say no, they are returned to the Main Menu (note
  1847. that it is ALWAYS the Main Menu, no matter which menu they were in when they
  1848. tried logging off).
  1849.  
  1850. If they are sure they want to log off, and if there is a logoff message area, 
  1851. they will be asked if they wish to leave a private message to the sysop.
  1852. If they say yes, they will be dropped into their selected editor to leave 
  1853. such a message.  Whether they save or abort, they will then be logged off
  1854. when they exit the editor.
  1855.  
  1856. When they are logged off, they may see a logoff text file if one has been
  1857. created by the sysop, and then a brief message saying something to the effect
  1858. of "Disconnecting <name> on <datestamp>."  Then it will either hang up or
  1859. perhaps return to a program which ran the BBS and let that program hang up.
  1860.  
  1861.  
  1862.  
  1863. 9.  XPR (eXternal PRotocol) File Transfers
  1864. ==========================================
  1865.  
  1866. The XPR transfer display shows the following information, if applicable:
  1867.  
  1868.    .----------------------------------------------------------------------.
  1869.    | Transfer type:  <protocol name, ie. "Zmodem">                        |
  1870.    |                                                                      |
  1871.    | Last message:   <last message, ie. "Sending File">                   |
  1872.    | Last error:     <last error, ie. "CRC error">                        |
  1873.    |                                                                      |
  1874.    | File name:      <file name>                                          |
  1875.    | File size:      <size in bytes>                                      |
  1876.    |                                                                      |
  1877.    | Est. xfer time: <protocol's estimate>   Errors:        <# errors>    |
  1878.    | Elapsed time:   <varies>                Timeouts:      <# timeouts>  |
  1879.    |                                                                      |
  1880.    | Block size:     <size in bytes>         Packet type:   <descr.>      |
  1881.    | Blocks sent:    <number of blocks>      Packet delay:  <not sure>    |
  1882.    | Bytes sent:     <amount transferred>    Char. delay:   <not sure>    |
  1883.    | Bytes/sec:      <protocol's estimate>   Checksum type: <ie. CRC-16>  |
  1884.    `----------------------------------------------------------------------'
  1885.  
  1886. Note that this display loses some information, like the filename, if the 
  1887. screen is toggled because I am only allowed to display strings when I am 
  1888. told to by the protocol.  The numbers are generally updated quite often, so 
  1889. they will be refreshed.  Note that if you really want to see the filename 
  1890. after it's been erased by toggling the screen, the Status window will 
  1891. contain a copy of it in the Where: slot.  I can remedy this loss of 
  1892. information by allocating some memory to hold the information I was last 
  1893. told about, but is it really that important?
  1894.  
  1895. The CPS rate may be off for file sends.  This is because output is buffered
  1896. to avoid pauses while data is read from the disk, and the XPR library does
  1897. not know that.  The final CPS rate may be near correct, but the rate Falcon
  1898. calculates after the transfer is more accurate, especially since it counts
  1899. from the first time the two sides shake hands, instead of the time this
  1900. side starts looking for the other side.  Some people like to be thorough in
  1901. their estimates, but I like to know how fast the transfer was going *only when
  1902. it was actually going*.
  1903.  
  1904. The transfer may be aborted by typing Escape, ^C, or ^X.  Typing '.' toggles
  1905. the screen mode, because there isn't a menu for it.  If there was and you 
  1906. typed the Right-Amiga-'.' menu shortcut, you'd end up with a regular '.' 
  1907. anyway, thus this command.  Similarly, if the transfer is taking place in the
  1908. BBS, entering '/' or '?' will toggle the status window.
  1909.  
  1910. The transfer will also be aborted on loss of carrier, and also by a time-up
  1911. if it is taking place in the BBS.
  1912.  
  1913. Note that if you have configured the program to turn off the third plane during
  1914. transfers, to retrieve the DMA time a 3+ bitplane hires screen steals, the
  1915. window will come up in yellow on red instead of white on blue, because the
  1916. latter two colors are not available in the now-four-color screen.  No big deal,
  1917. but I thought I'd mention it.
  1918.  
  1919. If a file is being received in the BBS, it will have the user's name put
  1920. into the filenote of the file, starting at the fortieth column (which makes
  1921. it line up neatly for the DOS List command).  This is used for continuing
  1922. or replacing files.  If a user uploads to a file that already exists, their
  1923. name is checked against the one on the file.  If it matches (or, for that 
  1924. matter, if they are of SYSOP-level), they are allowed to continue the upload
  1925. or replace the file, depending on whether or not the protocol is configured
  1926. to resume a receive.
  1927.     
  1928.  
  1929.  
  1930. 10.  FTerm
  1931. ==========
  1932.  
  1933. To save the bother of exiting the BBS and loading up a terminal program, 
  1934. Falcon comes with a small terminal program that can lean on the main 
  1935. program's code to save space.  It also has a timeout option, which means if
  1936. you walk away from the terminal and forget about it, the BBS will be brought
  1937. back up automatically after a while.  It saves wear and tear on your users.
  1938.  
  1939. Anyway, first, FTerm will load up term.bbs, and exit back to the BBS with an 
  1940. error string if something was wrong.
  1941.  
  1942. Otherwise, if there is no carrier present, it'll display a little header with
  1943. its name, version, copyrights, and the like, then send the term.bbs INIT
  1944. string to the modem and drop into the terminal mode.  If there IS a carrier, 
  1945. it'll just drop straight into the terminal mode without any of the intro/init
  1946. business (note that the baud rate will be set to the maximum, which may or
  1947. may not be correct for the current connection).
  1948.  
  1949. There's nothing really special about the terminal itself.  About all it does
  1950. is filter out shift-in/shift-out characters, because these can put you into
  1951. a weird mode where all characters have 128 added to them before they are
  1952. displayed.  Messy.
  1953.  
  1954. The term menus:
  1955.  
  1956.     Menu   Item   Shortcut  Action
  1957.     -----------------------------------------------------------------------
  1958.     Term
  1959.         Re-Load Config  L   Re-reads term.bbs, reinits if no carrier
  1960.         Phone dir       F   Enters "F"one directory, if possible
  1961.         Redial          R   Either continue dialing or enter phone dir
  1962.         View Buffer     V   Enter review buffer
  1963.         Save Buffer     B   Save entire review buffer to disk
  1964.         Hang up         H   Send term.bbs HANGUP string
  1965.         Modem re-init   M   Send term.bbs INIT string
  1966.         Screen Toggle   .   Flip between WorkBench window and full screen
  1967.         About FTerm         Shows a submenu with brief information on FTerm
  1968.  
  1969.     Config
  1970.         Baud                Select baud rate from submenu:
  1971.             110         1       Change to 110 baud
  1972.             300         2       Change to 300 baud
  1973.             1200        3       Change to 1200 baud
  1974.             2400        4       Change to 2400 baud
  1975.             4800        5       Change to 4800 baud
  1976.             9600        6       Change to 9600 baud
  1977.             12000       7       Change to 12000 baud
  1978.             14400       8       Change to 14400 baud
  1979.             19200       9       Change to 19200 baud
  1980.             38400       0       Change to 38400 baud
  1981.         Word Length         Select word length from submenu (not implemented):
  1982.             8                   Change to world length 8
  1983.             9                   Change to world length 9
  1984.         Parity              Select parity from submenu (not implemented):
  1985.             None                Change to no parity checking
  1986.             Even                Change to Even parity
  1987.             Odd                 Change to Odd parity
  1988.             Mark                Change to Mark parity
  1989.         Stop bits           Select stop bits from submenu (not implemented):
  1990.             1                   Change to 1 stop bit
  1991.             2                   Change to 2 stop bits
  1992.         Misc                Miscellaneous settings
  1993.             Incoming... I       Do or don't convert incoming CR's to CR/LF's
  1994.             Outgoing... O       Do or don't convert outgoing CR's to CR/LF's
  1995.             Local Echo  E       Do or don't echo outgoing chars to the screen
  1996.         Protocol            Select an XPR protocol if there are any
  1997.             None                (means there aren't any)
  1998.             <protocol> <?>      Change current protocol to <protocol>
  1999.  
  2000.     Transfer
  2001.         Toggle Send     S   Start or stop an ASCII send
  2002.         Toggle Capture  C   Start or stop capturing text to disk
  2003.         Upload          U   Upload file with the current protocol
  2004.         Download        D   Download file(s) with the current protocol
  2005.  
  2006.  
  2007. Special Keys
  2008. ------------
  2009. The cursor keys, keypad, and function keys can all send configurable strings.
  2010. See term.bbs documentation.
  2011.  
  2012. The Help starts review buffer.  Since it also exits the review buffer, one
  2013. could think of it as a toggle, really.
  2014.  
  2015.  
  2016. Transfers
  2017. ---------
  2018. The ASCII send just sends the data in a file straight to the modem, with
  2019. the pauses set up in term.bbs, and possibly CR->CR/LF translation depending
  2020. on whether or not it's been turned on.
  2021.  
  2022. The ASCII capture writes incoming data to a file.  Note that it captures ALL 
  2023. characters, including ANSI sequences.
  2024.  
  2025. Downloading may ask for both a directory and a filename, or just a directory.
  2026. This is based on whether or not the program has been told that the current 
  2027. protocol will be told the filenames by the sender.
  2028.  
  2029. Uploading will ask for both a directory and a filename.  Sorry, I haven't
  2030. gotten around to batch sends.
  2031.  
  2032. Both downloading and uploading will finish by showing the total transfer time,
  2033. the return code from the protocol (which may not be a reliable indicator of
  2034. the transfer's success, by the way), and a chars/sec rating for the entire
  2035. transfer.  Note that this CPS rate will be more accurate for uploads, because
  2036. the output buffering the program does often confuses the library.
  2037.  
  2038.  
  2039. In Case of Problems with Display Positioning
  2040. --------------------------------------------
  2041. As it happens, bringing up the review buffer or the dialing directory also 
  2042. resets the positioning of the display.  You see, certain ANSI codes can move 
  2043. the location (in pixels) of the upper left corner of the character display.  
  2044. If your text seems out-of-place, try doing something to clear the screen (to 
  2045. make sure the code that caused it isn't displayed again when the display is 
  2046. refreshed), then enter and exit the review buffer or the dial directory.
  2047.  
  2048.  
  2049. The Review Buffer
  2050. -----------------
  2051. The review buffer is used to look back through text that may have scrolled off
  2052. of the screen.  It holds the last N bytes (where N is the number from 
  2053. falcon.cfg's REVBUFSIZE command) of text displayed to the screen, including
  2054. both the text displayed in the term AND any text displayed while in the BBS,
  2055. since the review buffer doubles as a sort of memory of what's been on the
  2056. screen even when the program is in tiny mode.
  2057.  
  2058. The review buffer will take your screen size and font into account, and put
  2059. as many lines of review text into your screen as it can, except for the
  2060. top and bottom lines, which are used for a title bar and a gadget bar.
  2061. This review text will have the color stripped out, which allows for much,
  2062. much faster scrolling when moving about.  It does, however, understand 
  2063. the ANSI cursor-movement codes, and backspaces, and the like, so everything
  2064. should come out in the right place... just in monochrome.  Actually, I
  2065. should note that it can't work with move-to-row,col commands, so full-screen
  2066. editing sessions tend to end up all on one line, which is just as well.
  2067.  
  2068. The gadget bar contains seven gadgets:
  2069.     DONE    Exits review buffer
  2070.     TOP     Moves to earliest part of buffer
  2071.     END     Moves to most recent part of buffer
  2072.     PGUP    Moves back one page in buffer
  2073.     PGDN    Moves forward one page in buffer
  2074.     /\      Moves back one line in buffer
  2075.     \/      Moves forward one page in buffer
  2076.  
  2077. There are also key commands:
  2078.     Up      Moves back one line in buffer
  2079.     Down    Moves forward one line in buffer
  2080.     PgUp    Moves back one page in buffer (also Shift-Up)
  2081.     PgDn    Moves forward one page in buffer (also Shift-down)
  2082.     Home    Moves to earliest part of buffer
  2083.     End     Moves to most recent part of buffer
  2084.     .       Toggles screen mode, because there isn't a menu for it.  If
  2085.             there was and you typed the Right-Amiga-'.' menu shortcut, 
  2086.             you'd end up with a regular '.' anyway, thus this command.
  2087.  
  2088.     Left, Right, Help, Space, Q, Escape, Return all exit the Review Buffer
  2089.  
  2090. On exit, the text that was on the screen before will be refreshed to the best
  2091. of the buffer's ability, for you to continue your session.
  2092.  
  2093.  
  2094. File Requester
  2095. --------------
  2096. I'm not using any special file requester at the moment.  It's just two
  2097. prompts.  This is because I've foolishly been expecting Commodore to release
  2098. 2.0 for the last year and a half, at which point I would use the built-in
  2099. requester.  (Note:  CBM finally announced that 2.0 will be released next
  2100. month (October), so I've removed the very nasty remark that used to be in
  2101. this spot.)
  2102.  
  2103. At any rate, it simply asks for a directory, with a path already filled in
  2104. based on the defaults set in term.bbs.  Use ^X to kill it and enter another.
  2105. Then it may ask for a filename, which should be easy enough for a genius like
  2106. you to figure out without instructions.
  2107.  
  2108.  
  2109. Dial Directory
  2110. --------------
  2111. First, it should be noted that one cannot bring up the dialer if there is
  2112. a carrier present, or if there are no entries in the directory.
  2113.  
  2114. The dial directory will take your screen size and font into account, and put
  2115. as many directory entries into your screen as it can, except for the top and 
  2116. bottom lines, which are used for a title bar and a gadget bar.
  2117.  
  2118. Each entry in the directory will contain the name of a BBS (or person, or
  2119. whatever), the number, the baud rate, and a comment.  The entry which is
  2120. inverted is the entry the cursor is currently on, although in some cases it
  2121. may not be inverted (see below).  An entry with a purple background is
  2122. selected.
  2123.  
  2124. The gadget bar contains four gadgets, along with the entries:
  2125.     OKAY    Start dialing the currently-selected entries, in order
  2126.     CANCEL  Return to term without dialing
  2127.     /\      Scroll window back one line, if possible
  2128.     \/      Scroll window forward one line, if possible
  2129.  
  2130.     <entry> Each entry can be toggled by clicking on it.  Note that this
  2131.             moves the cursor to that entry and makes it (the cursor)
  2132.             invisible.
  2133.  
  2134. There are also key commands:
  2135.     Up, Left
  2136.             Move cursor back one entry if possible, and make it visible
  2137.             if it isn't.  Scrolls window if necessary.
  2138.     Down,Right
  2139.             Move cursor forward one entry if possible, and make it visible
  2140.             if it isn't.  Scrolls window if necessary.
  2141.     Home, Shift-Up, Shift-Left
  2142.             Move cursor to top entry in window, and make it visible if it
  2143.             isn't.
  2144.     End, Shift-Down, Shift-Right
  2145.             Move cursor to top entry in window, and make it visible if it
  2146.             isn't.
  2147.     Q, Esc  Return to term without dialing
  2148.     Return  Start dialing the currently-selected entries, in order
  2149.     Space   Selects/deselect entry under cursor, and make it (the cursor)
  2150.             visible if it isn't.
  2151.     .       Toggles screen mode, because there isn't a menu for it.  If
  2152.             there was and you typed the Right-Amiga-'.' menu shortcut, 
  2153.             you'd end up with a regular '.' anyway, thus this command.
  2154.  
  2155.  
  2156. Dialer
  2157. ------
  2158. The dialer will dial all selected entries, starting with the ones nearest the
  2159. top of the directory, going down, and starting again at the top when it hits
  2160. the end.  If there are no entries selected (due to deletions or none to begin
  2161. with), it will return to the directory.
  2162.  
  2163. The display takes up the top 8 lines of the display, top and bottom being the
  2164. title and gadget bars.  The ones between show the current name and number, 
  2165. number of attempts, the time left for the current attempt or pause between
  2166. attempts, and the last string received from the modem.
  2167.  
  2168. To dial, the program sends the term.bbs DIAL string to the modem, the phone
  2169. number, and the falcon.cfg ENDOFLINE string.  It then waits for DIALTIME
  2170. seconds.  If it receives a CONNECT_* string, it will return to the term
  2171. with the baud rate after deselecting the current entry.  It may also connect
  2172. at the current baud rate if it receives no string but sees a carrier.
  2173. If it doesn't connect within the time limit, it sends the STOPDIAL string
  2174. and waits BETWEENTIME seconds before starting again with the next entry.
  2175.  
  2176. Note that if someone attempts to phone you between attempts, the term may
  2177. detect it, and if set to in term.bbs, will exit and let it continue to
  2178. ring so that you can answer it.
  2179.  
  2180. The gadget bar contains four gadgets:
  2181.     OKAY    Connect without waiting.  Meaning, return to the term at the
  2182.             current entry's baud rate after deselecting the current entry.
  2183.     CANCEL  Hang up, stop dialing, and return to the directory.
  2184.     SKIP    Hang up and skip to the next selected entry.
  2185.     DELETE  Hang up, deselect the current entry, and skip to the next 
  2186.             selected entry.
  2187.  
  2188. There are also key commands:
  2189.     Tab, Space
  2190.             Hang up and skip to the next selected entry.
  2191.     C       Connect without waiting.  Meaning, return to the term at the
  2192.             current entry's baud rate after deselecting the current entry.
  2193.     Esc, Q  Hang up, stop dialing, and return to the directory.
  2194.     Del, Backspace
  2195.             Hang up, deselect the current entry, and skip to the next 
  2196.             selected entry.
  2197.     .       Toggles screen mode, because there isn't a menu for it.  If
  2198.             there was and you typed the Right-Amiga-'.' menu shortcut, 
  2199.             you'd end up with a regular '.' anyway, thus this command.
  2200.  
  2201.  
  2202.  
  2203. 11.  Configuration Files
  2204. ========================
  2205.  
  2206. Falcon's config files all follow the same basic syntax:
  2207.  
  2208.     word        is a non-quoted whitespace-terminated series of chars
  2209.                 ie. 'Main' in the menus.bbs command 'MENU Main'
  2210.     num         is a word that only contains digits, possibly preceded
  2211.                 by a '-', ie. the arguments in 'DEF_DAY_TIME 1 2 3 4 5 -1'
  2212.     str         is a quote terminated series of chars
  2213.                 ie. '"ATZ\r"' in the Falcon.cfg command 'RESET "ATZ\r"'
  2214.  
  2215.                 if a str can fit into a word, it is permissible to omit
  2216.                 the quotation marks, ie. 'ADDRESS 1:140/22.2@FidoNet'
  2217.                 instead of 'ADDRESS "1:140/22.2@FidoNet"'
  2218.  
  2219. Whitespace is one or more of the following: tab, space, or carriage return.
  2220.  
  2221. Commands are generally words.  Arguments may be any combination of words
  2222. and strings.
  2223.  
  2224. Strings have special escape chars that are interpreted when they are read
  2225. into memory:
  2226.  
  2227.     \n      newline (linefeed, ASCII 10, ^J)
  2228.     \r      carriage return (ASCII 13, ^M)
  2229.     \t      tab (ASCII 9, ^I)
  2230.     \b      backspace (ASCII 8, ^H)
  2231.     \f      formfeed/screen-clear (ASCII 12, ^L)
  2232.     \e      escape (ASCII 27, ^[)
  2233.     \nnn    ASCII character with octal value nnn        (may be \n or \nn)
  2234.     \xnn    ASCII character with hex value nn           (may be \xn)
  2235.     \innn   ASCII character with integer value nnn      (may be \in or \inn)
  2236.     \<c>    character <c> (used for backslash, for instance: "\\" -> "\")
  2237.  
  2238.     ^<c>    Control character, <c> in "A..Z[\]^_", such as ^C, ^[, or ^^.
  2239.             Use "\^" for an actual caret character.
  2240.  
  2241. And for modem strings only:
  2242.  
  2243.     \w      pause for ~1/3 sec
  2244.     \d      drop DTR for the time given in falcon.cfg's DTR_DOWNTIME
  2245.  
  2246.             NOTE: Dropping DTR may not work on some multi-serial cards.
  2247.             It will if the modem has DTR ignored or forced on.  Also, it will
  2248.             not work if another program still has the serial device open, 
  2249.             because the only way to drop DTR is to completely close the 
  2250.             device.  Use the usual "\w\w\w+++\w\w\w\rATH0\r"-style string if 
  2251.             so.
  2252.  
  2253. Note that configuration files are not normally order-dependant regarding 
  2254. the various control commands.  Meaning, it doesn't matter if you say:
  2255.  
  2256.         BEGINTINY TINY_POS 123 45
  2257.  
  2258.           or
  2259.  
  2260.         TINY_POS 123 45
  2261.         BEGINTINY
  2262.  
  2263.           or
  2264.  
  2265.         BEGINTINY
  2266.         <rest of file>
  2267.         TINY_POS 123 45
  2268.  
  2269. Exceptions to this rule are pointed out, like where the msgareas.bbs AREA 
  2270. command picks current area (for all subsequent commands to act on), or 
  2271. where the term.bbs DIRECTORY command indicates that the phone directory is
  2272. from here to the end of the file.  Get the idea?
  2273.  
  2274. Commands which define a path will have a "/" appended to the name if 
  2275. necessary.  Unnecessary cases are blank paths (current directory) and
  2276. paths which end in ":".
  2277.  
  2278.  
  2279. Comments are the same as in most config/batch files:  A ';' means that the
  2280. rest of the line is a comment.  Note that you may have to put at least one
  2281. space before the ";", or it may be considered a part of the last item on
  2282. the line.  A ";" may not come in the middle of a command.  For instance,
  2283. a command with four arguments:
  2284.  
  2285.     CMD arg1 arg2 arg3 arg4 ; parser will ignore this comment
  2286.  
  2287.     CMD arg1 arg2 arg3  arg4; parser will think the ";" is part of "arg4"
  2288.                             ; and not realize the rest was a comment
  2289.  
  2290.     CMD arg1 arg2           ; parser will think this comment is arguments
  2291.         arg3 arg4           ;   and then barf on these two
  2292.  
  2293. The reason comments are only allowed between commands is because the ';' 
  2294. may be needed as an argument somewhere, somewhen.
  2295.  
  2296.  
  2297. Falcon.cfg
  2298. ----------
  2299. Falcon looks for Falcon.cfg in the current directory, in S:, and in FALCON:.
  2300. It is also possible to pass a path/name on the command line.  This file is
  2301. for general configuration of the BBS, ie. bbs/sysop name, modem strings, 
  2302. address, protocols, etc.
  2303.  
  2304. 7WIRE
  2305.     Usage:      7WIRE
  2306.     Default:    not 7-wire
  2307.  
  2308.     Determines whether or not to use 7-wire serial handshaking.  This
  2309.     is usually used for high-speed modems.
  2310.  
  2311. ACKNOWLEDGE
  2312.     Usage:      ACKNOWLEDGE str
  2313.     Default:    "OK"
  2314.  
  2315.     This is the modem return string that would normally be returned after 
  2316.     a successful command.  However, I never did get around to actually
  2317.     using it.  <meek grin>
  2318.  
  2319. ADD_BLANK_SEENBY
  2320.     Usage:      ADD_BLANK_SEENBY
  2321.     Default:    don't add it
  2322.  
  2323.     Using this flag causes echo messages to be saved with blank SEEN-BY:
  2324.     and PATH: control lines.  This can solve problems if echo message
  2325.     processors (I'm thinking of ConfMail specifically) add extra, unwanted
  2326.     blank lines around the SEEN-BY lines.  I seem to recall another reason
  2327.     that this may be necessary, but what I can't recall is what is was.
  2328.     Oh well, it's here if you need it.
  2329.  
  2330. ADDRESS
  2331.     Usage:      ADDRESS fidonet_address.str
  2332.     Default:    0:0/0.0
  2333.  
  2334.     This sets the BBS's FidoNet-style address.  It can be in several forms:
  2335.  
  2336.         zone:net/node           (no domain)
  2337.         zone:net/node.point     (no domain)
  2338.         zone:net/node@domain
  2339.         zone:net/node.point@domain
  2340.  
  2341.     It is suggested that you use a domain, usually "FidoNet".  This address
  2342.     can be entered without any quotes, but since it is technically a string,
  2343.     you can put quotes around it if you need them.
  2344.  
  2345.     See also:   POINTNET
  2346.  
  2347. APPFILE
  2348.     Usage:      APPFILE filename.str
  2349.     Default:    (no application file)
  2350.  
  2351.     The name of the new user application file, if you want one.
  2352.  
  2353. ATTENTION
  2354.     Usage:      ATTENTION str
  2355.     Default:    "AT"
  2356.  
  2357.     This string is the modem command prefix.  It starts off a command, 
  2358.     but if an ENDOFLINE is send immediately, it a no-operation.  It 
  2359.     should not have an ENDOFLINE in it, since that is what ENDOFLINE is
  2360.     for.
  2361.  
  2362.     See also:   ENDOFLINE
  2363.  
  2364. AVOID
  2365.     Default:    AVOID str
  2366.     See also:   "+"
  2367.  
  2368.     If user types the first character of this string (later, if 
  2369.     circumstances require, I may change it so that you can check a whole 
  2370.     bunch of characters, but not now), then when the character is sent to 
  2371.     the modem, a NUL (ASCII 0) character is also sent.  This is to prevent a 
  2372.     user from putting your modem into command mode, for all the good it 
  2373.     would do them anyway.
  2374.  
  2375.     See also:   ESCAPE, HANGUP
  2376.  
  2377. BEGINSTATUS
  2378.     Usage:      BEGINSTATUS
  2379.     Default:    begin without status
  2380.  
  2381.     Determines whether status window is opened when the program is started.
  2382.  
  2383.     See also:   STATUS_POS
  2384.  
  2385. BEGINTINY
  2386.     Usage:      BEGINTINY
  2387.     Default:    begin large
  2388.  
  2389.     Determines which screen mode to begin with:  The WorkBench "idiot bar"
  2390.     or the large display.  You should always keep the BBS in tiny mode when
  2391.     you are not actively watching it for some reason, because not only is
  2392.     it a waste of chip memory, but the large display also scrolls slowly
  2393.     and therefore slows down output.
  2394.  
  2395.     See also:   TINY_POS
  2396.  
  2397. BUSY
  2398.     Usage:      BUSY str
  2399.     Default:    "BUSY"
  2400.  
  2401.     If the dialer gets this from the modem instead of a CONNECT message 
  2402.     or a NOGOOD message, it skips to the next number.
  2403.  
  2404.     See also:   NOGOOD1, NOGOOD2, CONNECT
  2405.  
  2406. BYTEFILEOK
  2407.     Usage:      BYTEFILEOK
  2408.     Default:    cannot send 1 byte files
  2409.  
  2410.     The recent implementation of XPRZmodem falls prey to a division by zero 
  2411.     software error if it tries to send a one byte file.  I think this is 
  2412.     because Falcon buffers the output and therefore seems to send the file
  2413.     in zero seconds.  When XPRZ tries to calculate the characters/second
  2414.     value, *poof*, division by zero, software error, down goes the system.
  2415.     At any rate, this is here in case you need to send one byte files for 
  2416.     some insane reason.
  2417.  
  2418. CBMENV
  2419.     Usage:      CBMENV
  2420.     Default     ARP/Manx/Rokicki environment variables
  2421.  
  2422.     Setting this flag causes Falcon to use CBM ENV:-style environment
  2423.     variables instead of the ARP/Manx/Rokicki style.
  2424.  
  2425. CHAT_EXEC
  2426.     Usage:      CHAT_EXEC dos_command.str
  2427.     Default:    none
  2428.  
  2429.     This AmigaDOS command is called when a user Y)ells for the Sysop.
  2430.     It must be run and the output must be redirected to NIL:.
  2431.  
  2432.     Example:    "run >NIL: playsound wantchat.sound"
  2433.  
  2434.     Naturally, "run >NIL:" may be replaced with your preferred command.
  2435.  
  2436. CMDPAUSE
  2437.     Usage:      CMDPAUSE pause.num
  2438.     Default:    50
  2439.  
  2440.     Wait this many 50ths (or maybe it's 60ths?) of a second after each 
  2441.     modem command.
  2442.  
  2443. CONFIGDIR
  2444.     Usage:      CONFIGDIR path.str
  2445.     Default:    "" (current dir)
  2446.  
  2447.     Where to find the following files:  english.bbs, msgareas.bbs, 
  2448.     fileareas.bbs, sched.bbs, menus.bbs, term.bbs, systemstat.dat, and 
  2449.     possibly some I forgot.
  2450.  
  2451.     See also:   HELPDIR, TEXTDIR, NODELISTDIR, USERDIR, KEYDIR
  2452.  
  2453. CONNECT
  2454.     Usage:      CONNECT baud.num flags.word connect.str   or
  2455.                 CONNECT FIND flags.word connect_template.str
  2456.     Defaults:   300  - "CONNECT"
  2457.                 300  A "CONNECT/ARQ"
  2458.                 FIND - "CONNECT %lu"
  2459.                 FIND A "CONNECT %lu/ARQ"
  2460.  
  2461.     This command adds a connect string to the list of default strings that 
  2462.     Falcon understands to mean that a modem connection has been made.
  2463.     Using a combination of set-baud-rate and dynamic-baud-rate strings,
  2464.     accommodating pretty much any modem's crazy connect strings should be
  2465.     possible.
  2466.  
  2467.     The four defaults should cover most modems, including HSTs.  Note that 
  2468.     the version which FINDs the speed dynamically from the string it gets 
  2469.     from the modem MUST have the "%lu" (in lowercase) where the baud rate 
  2470.     should be in order to work.
  2471.  
  2472.     The flags argument currently only recognizes one flag, which is the
  2473.     'A' ARQ flag.  If there are others that should be included (note that 
  2474.     their only real use at this point is more descriptive logging of a
  2475.     connect mode), let me know.
  2476.  
  2477.     Note that the term cannot set the baud rate to anything other than 300,
  2478.     1200, 2400, 4800, 9600, 12000, 14400, 19200, and 38400 baud, but the BBS 
  2479.     should be able to handle any number.  I'll see if I can work out a way
  2480.     to get the term to use odd rates too, the problem being mostly in the
  2481.     rigid Baud submenu.
  2482.  
  2483. CONNECT_MINBAUD
  2484.     Usage:      CONNECT_MINBAUD minbaud.num
  2485.     Default:    0 (no minimum)
  2486.  
  2487.     Users cannot log on if their baudrate is below this number.
  2488.  
  2489.     See also:   TRANSFER_MINBAUD, sched.bbs/EVENT
  2490.  
  2491. CONNECTTIME
  2492.     Usage:      CONNECTTIME seconds.num
  2493.     Default:    1 second
  2494.  
  2495.     This is the number of seconds to pause after BBS connects and before
  2496.     either starting up the ESCESC sequence or starting the session.
  2497.     The reason for this dead time is that even slower modems may take a
  2498.     little too long to recognize the connect (at the calling end) and
  2499.     therefore may miss some text if there is no short pause.
  2500.  
  2501.     See also:   ESCTIME, ESCESC
  2502.  
  2503. CONTENTS
  2504.     Usage:      CONTENTS extension.str do.str
  2505.     Default:    no content viewers
  2506.  
  2507.     These are used by the C)ontents command in the File Menu.  If you have 
  2508.     a program to view the contents of a certain kind of file (usually 
  2509.     identified by the "extension" field), include it in the "do" field.  
  2510.     Then the "do" string will be executed as a DOS command, and its output 
  2511.     will be printed.  This version of the "do" string must have three "%s"'s
  2512.     in it, in this order:  The first %s in the string will be where file 
  2513.     output is redirected, and should normally be immediately after a ">".  
  2514.     The second %s is the pathname, and is guaranteed to end with ":" or "/", 
  2515.     unless it is blank, in which case it will stay blank.  The third %s is 
  2516.     the filename.  The full command will usually look like:
  2517.  
  2518.             CONTENTS ".EXT" "program >%s view_options \"%s%s\""
  2519.  
  2520.         ie. CONTENTS ".ARC" "arc >%s -vw \"%s%s\""
  2521.  
  2522.             (results in 'arc >T:tempfile -vw "FILES:gen/zeebie.arc"')
  2523.  
  2524.     Make sure you use the \" escape codes to put quotation marks around the
  2525.     path/name, or a space in the path or name might screw things up.  Also,
  2526.     disable any prompts that may come up during program execution if you 
  2527.     can.
  2528.  
  2529.     Note: an extension of "" will match any file; use it if you have some 
  2530.     sort of all-purpose viewer like PolyXArc.
  2531.  
  2532.     Alternative:
  2533.  
  2534.     If you know the file contents cannot be viewed, put a "*" at the start
  2535.     of the "do" string, and the rest of it will be shown as "That is 
  2536.     <str>".  For instance,
  2537.  
  2538.             CONTENTS ".MAC" "*probably a Macintosh picture"
  2539.  
  2540.     will come back as "That is probably a Macintosh picture." for any file 
  2541.     ending in ".MAC".
  2542.  
  2543. DATESTAMP_11W
  2544.     Usage:      DATESTAMP_11W
  2545.     Default:    SEAdog datestamps
  2546.  
  2547.     This determines what format the datestamp will take in new messages.
  2548.     Some processors have trouble with the default (prettier) SEAdog
  2549.     format.
  2550.  
  2551.     The look like:      SEAdog:   "Tue  1 Jan 91 01:23"
  2552.                         Fido 11w: "01 Jan 91  01:23:45"
  2553.  
  2554. DEF_CALL_DL
  2555.     Usage:      DEF_CALL_DL twit.num disgrace.num normal.num privil.num
  2556.                     assist.num sysop.num
  2557.     Default:    150 450 900 1350 1800 -1
  2558.  
  2559.     Sets the default call download limits for all user levels.  This is used
  2560.     for new users and for changing a user's level.  A limit of -1 means
  2561.     unlimited (within time limits, of course).
  2562.  
  2563.     These are roughly equivalent to a 2400 baud transfer during the user's
  2564.     available time for the call.
  2565.  
  2566.     See also:   DEF_CALL_TIME, DEF_DAY_TIME, DEF_DAY_DL
  2567.  
  2568. DEF_CALL_TIME
  2569.     Usage:      DEF_CALL_TIME twit.num disgrace.num normal.num privil.num
  2570.                     assist.num sysop.num
  2571.     Default:    10 30 60 90 120 -1
  2572.  
  2573.     Sets the default call time limits for all user levels.  This is used
  2574.     for new users and for changing a user's level.  A limit of -1 means
  2575.     unlimited, except for events.
  2576.  
  2577.     See also:   DEF_CALL_DL, DEF_DAY_TIME, DEF_DAY_DL
  2578.  
  2579. DEF_COST
  2580.     Usage:      DEF_COST cents.num
  2581.     Default:    25 cents
  2582.  
  2583.     This is used for non-local netmail if there is no nodelist available
  2584.     to determine the cost.
  2585.  
  2586.     Apologies to those in countries that do not use dollars and cents.
  2587.     That may be a little more flexible in the future.
  2588.  
  2589. DEF_DAY_DL
  2590.     Usage:      DEF_DAY_DL twit.num disgrace.num normal.num privil.num
  2591.                     assist.num sysop.num
  2592.     Default:    300 900 1800 2700 3600 -1
  2593.  
  2594.     Sets the default daily download limits for all user levels.  This is 
  2595.     used for new users and for changing a user's level.  A limit of -1 means
  2596.     unlimited (within time limits, of course).
  2597.  
  2598.     These are roughly equivalent to a 2400 baud transfer during the user's
  2599.     available time for the day.
  2600.  
  2601.     See also:   DEF_CALL_TIME, DEF_CALL_DL, DEF_DAY_TIME
  2602.  
  2603. DEF_DAY_TIME
  2604.     Usage:      DEF_DAY_TIME twit.num disgrace.num normal.num privil.num
  2605.                     assist.num sysop.num
  2606.     Default:    20 60 120 180 240 -1
  2607.  
  2608.     Sets the default daily time limits for all user levels.  This is used
  2609.     for new users and for changing a user's level.  A limit of -1 means
  2610.     unlimited, except for events.
  2611.  
  2612.     See also:   DEF_CALL_TIME, DEF_CALL_DL, DEF_DAY_DL
  2613.  
  2614. DEPTH
  2615.     Usage:      DEPTH depth.num
  2616.     Default:    3 bitplanes
  2617.  
  2618.     Depth of large display's screen in bitplanes), 1-4 in hires, and
  2619.     1-5 in lores.
  2620.  
  2621.     See also:   WIDTH, HEIGHT, INTERLACE, LORES, PALETTE
  2622.  
  2623. DEVICE
  2624.     Usage:      DEVICE library_name.str unit.num flags.num
  2625.     Default:    "serial.device" 0 0
  2626.  
  2627.     Selects the device driver for serial IO.  Use a name of "" for a local-
  2628.     only operation.
  2629.  
  2630. DIAL
  2631.     Usage:      DIAL str
  2632.     Default:    "ATDT"
  2633.  
  2634.     This string is the modem dialing command prefix.  It should not have an 
  2635.     ENDOFLINE string in it, since that string is automatically appended.
  2636.  
  2637.     See also:   ENDOFLINE
  2638.  
  2639. DIALTIME
  2640.     Usage:      DIALTIME seconds.num
  2641.     Default:    30 seconds
  2642.  
  2643.     This is the amount of time the program will wait for carrier after 
  2644.     dialing.
  2645.  
  2646.     See also:   WAITTIME
  2647.  
  2648. DOWNLOAD_NOLOG
  2649.     Default:    DOWNLOAD_NOLOG
  2650.     Default:    log downloads
  2651.  
  2652.     This flag merely tells the program not to log downloads.  Useful in
  2653.     a system with a large volume of downloads.
  2654.  
  2655. DTR_DOWNTIME
  2656.     Usage:      DTR_DOWNTIME pause.num
  2657.     Default:    50
  2658.  
  2659.     Wait this many 50ths (or maybe it's 60ths?) of a second between
  2660.     dropping DTR and raising it again (to hang up).
  2661.  
  2662. EDITOR_LINES
  2663.     Usage:      EDITOR_LINES lines.num
  2664.     Default:    1024
  2665.  
  2666.     Maximum number of lines in the message editors.
  2667.  
  2668. ENDOFLINE
  2669.     Usage:      ENDOFLINE str
  2670.     Default:    "\r"
  2671.  
  2672.     This string is the modem command suffix.  It ends and enters a modem
  2673.     command string.
  2674.  
  2675.     See also:   ATTENTION
  2676.  
  2677. ENV_VAR_NAME
  2678.     Usage:      ENV_VAR_NAME var_name.str
  2679.     Default:    "fret"
  2680.  
  2681.     This is the name of the environment variable to be send for returning 
  2682.     strings to DOS when the program exits.  It is also read in certain
  2683.     parts of the program.
  2684.  
  2685. ERRL_NONE
  2686. ERRL_MATRIX
  2687. ERRL_ECHO
  2688. ERRL_BOTH
  2689. ERRL_FAILED
  2690.     Usage:      ERRL_???? errorlevel.num
  2691.     Default:    0, 1, 2, 3, 20, respectively
  2692.  
  2693.     If the BBS failed, ERRL_FAILED is returned to DOS.
  2694.  
  2695.     If the BBS worked, ERRL_NONE is returned if no echo or matrix messages 
  2696.     were entered, ERRL_MATRIX if matrix messages were entered, ERRL_ECHO
  2697.     echo messages were entered, and ERRL_BOTH if both matrix and echo 
  2698.     messages were entered.
  2699.  
  2700. ESCAPE
  2701.     Usage:      ESCAPE str
  2702.     Default:    "\w\w\w+++\w\w\w"
  2703.  
  2704.     This modem string is intended to get the modem out of online mode into
  2705.     command mode.
  2706.  
  2707.     See also:   HANGUP, AVOID
  2708.  
  2709. ESCESC
  2710.     Usage:      ESCESC
  2711.     Default:    no Esc-Esc sequence
  2712.  
  2713.     If this flag is set, the BBS will not start up until two ESCs have
  2714.     been typed.  This is useful if HST callers are having problems with 
  2715.     long handshake (MNP, I think) times after connect and missing some or 
  2716.     all of the intro text.  If the handshaking goes on long enough, garbage
  2717.     may even be entered at the name prompt if there is nothing to prevent
  2718.     it.
  2719.  
  2720.     This wait for two escapes goes on for thirty seconds, then the BBS
  2721.     automatically starts up the session as if two escapes had been typed.
  2722.  
  2723.     See also:   ESCTIME, CONNECTTIME
  2724.  
  2725. ESCTIME
  2726.     Usage:      ESCTIME seconds.num
  2727.     Default:    5 seconds
  2728.  
  2729.     If ESCESC has been specified, this is the number of seconds to look 
  2730.     for a carriage return.  If a carriage return is received during this
  2731.     time, the BBS jumps straight to the ESCESC sequence.  Otherwise
  2732.     the ESCESC sequence is started after the time runs out.
  2733.  
  2734.     Try to arrange it so that this command plus the CONNECTTIME command
  2735.     are long enough that all HST (or other high speed modem) handshaking
  2736.     is over just before the time is up.  That way HST users see the 
  2737.     "Hit ESC twice..." message just after connect, and other users can
  2738.     hit return to get there sooner.  I suggest either CONNECTTIME 1
  2739.     ESCTIME 6 or CONNECTTIME 0 ESCTIME 7.
  2740.  
  2741.     See also:   ESCESC, CONNECTTIME
  2742.  
  2743. EXIT
  2744.     Usage:      EXIT str
  2745.     Default:    whatever RESET was set to
  2746.  
  2747.     This modem command is sent when Falcon exits.  It can do whatever you 
  2748.     want, but normally that's nothing more than a simple reset.
  2749.  
  2750.     See also:   RESET
  2751.  
  2752. EXPORTFILE
  2753.     Usage:      EXPORTFILE filename.str
  2754.     Default:    (no export file)
  2755.  
  2756.     Given this filename, Falcon will create, on exit, a ConfMail-style list 
  2757.     of area labels needing exporting.
  2758.  
  2759.     See also:   msgareas.bbs/LABEL
  2760.  
  2761. FONT
  2762.     Usage:      FONT fontname.str height.num
  2763.     Default:    "topaz.font" 8
  2764.  
  2765.     This is the font used in the large/full-screen display.
  2766.  
  2767.     See also:   FONTWIDTH
  2768.  
  2769. FONTWIDTH
  2770.     Usage:      FONTWIDTH width.num
  2771.     Default:    font's real width
  2772.  
  2773.     You can set a font's width with this command.  If you're fiddling about
  2774.     with a proportional large display font, you might want to try setting
  2775.     this to 8.  However, this actually changes the font for ALL applications
  2776.     that may be using it, so it is only to be used for experimentation.  Do 
  2777.     not use it regularly.
  2778.  
  2779. FRONTDOOR
  2780.     Usage:      FRONTDOOR dos_command.str
  2781.     Default:    no front door
  2782.  
  2783.     If given, this DOS command will be called after connect.  The 
  2784.     environment variable given in ENV_VAR_NAME will be set to the connecting 
  2785.     baud rate, and if it's set to "nospawn" on return, Falcon will hang up 
  2786.     and return to the waiting state, else it will start up the BBS.
  2787.  
  2788.     Normally you will not use this for front door programs, because the
  2789.     front door usually calls YOUR program, and not vice-versa.  However, I
  2790.     was messing around with something that worked this way and did not see
  2791.     any reason to take it out afterward.  It might be useful.
  2792.  
  2793.     See also:   ENV_VAR_NAME
  2794.  
  2795. HANGUP
  2796.     Usage:      HANGUP str
  2797.     Default:    "\w\w\w+++\w\w\wATH0\r"
  2798.  
  2799.     This modem command should hang up the modem from any mode.  If your
  2800.     modem will hang up on DTR being dropped, and you are not forcing DTR
  2801.     to stay on, and there is no other program using your unit of the serial
  2802.     device (because the only way to drop DTR is to completely close out the 
  2803.     device), you can substitute "\d" here to drop DTR.  It is a much cleaner 
  2804.     disconnect that way.
  2805.  
  2806.     Note:  If you are running with a modem that does internal buffering,
  2807.     as some HSTs do, and you wish to hang up with DTR, you should add
  2808.     a few waits before you drop it so that the last bit of text can be
  2809.     output.  There IS a one-second pause before the HANGUP string is
  2810.     sent, but you may need more, ie. "\w\w\w\d" to wait an additional
  2811.     second.
  2812.  
  2813. HEIGHT
  2814.     Usage:      HEIGHT height.num
  2815.     Default:    normal height
  2816.  
  2817.     Height of large display's screen in *** NON-INTERLACE *** pixels.
  2818.     If you want an interlaced screen 420 pixels high, this should be
  2819.     specified with "HEIGHT 210".
  2820.  
  2821.     See also:   WIDTH, DEPTH, INTERLACE, LORES, PALETTE
  2822.  
  2823. HELPDIR
  2824.     Usage:      HELPDIR path.str
  2825.     Default:    "" (current dir)
  2826.  
  2827.     Where to find help files ("#?help.bbs").
  2828.  
  2829.     See also:   TEXTDIR, CONFIGDIR, NODELISTDIR, USERDIR, KEYDIR
  2830.  
  2831. INACTIVETIME
  2832.     Usage:      INACTIVETIME seconds.num
  2833.     Default:    270 seconds
  2834.  
  2835.     After this amount of time, the user will be logged off for inactivity.
  2836.  
  2837.     See also:   RESPONDTIME
  2838.  
  2839. INIT
  2840.     Usage:      INIT str
  2841.     Default:    "ATZ\r\w\w\wATE0M0\r"   (no echo, speaker off)
  2842.  
  2843.     This modem command is sent before the BBS starts to wait for a call.  
  2844.     It should do things like turn off the speaker so that your modem 
  2845.     doesn't wake you up in the middle of the night.
  2846.  
  2847. INTERLACE
  2848.     Usage:      INTERLACE
  2849.     Default:    non-interlaced
  2850.  
  2851.     Turns on interlace for the large display's screen.
  2852.  
  2853.     See also:   WIDTH, HEIGHT, DEPTH, LORES, PALETTE
  2854.  
  2855. KEYDIR
  2856.     Usage:      KEYDIR path.str
  2857.     Default:    "" (current dir)
  2858.  
  2859.     Where to find falcon.key.
  2860.  
  2861.     See also:   HELPDIR, TEXTDIR, CONFIGDIR, NODELISTDIR, USERDIR
  2862.  
  2863. LOCAL_OFFHOOK
  2864.     Usage:      LOCAL_OFFHOOK
  2865.     Default:    on hook
  2866.  
  2867.     Using this flag makes your phone go off the hook when you log in
  2868.     locally.  Otherwise the phone can ring.
  2869.  
  2870.     See also:   MAKEBUSY, OFFLINE
  2871.  
  2872. LOCK_PORT
  2873.     Usage:      LOCK_PORT baud.num
  2874.     Default:    don't lock port
  2875.  
  2876.     Lock the serial port at a certain baud rate, and pretend it's at
  2877.     whatever other baud rate it connects at.  This is a method used
  2878.     by high-speed modems to cut down on overhead.
  2879.  
  2880. LOGFILE
  2881.     Usage:      LOGFILE filename.str
  2882.     Default:    (no log file)
  2883.  
  2884.     The name of the system log file, if you want one.
  2885.  
  2886. LORES
  2887.     Usage:      LORES
  2888.     Default:    hires
  2889.  
  2890.     Causes large display's screen to be in lores.
  2891.  
  2892.     See also:   WIDTH, HEIGHT, DEPTH, INTERLACE, PALETTE
  2893.  
  2894. MAKEBUSY
  2895.     Usage:      MAKEBUSY str
  2896.     Default:    "ATH1\r"
  2897.  
  2898.     This modem command makes the phone busy for local logins if 
  2899.     LOCAL_OFFHOOK has been specified.
  2900.  
  2901.     See also:   OFFLINE, LOCAL_OFFHOOK
  2902.  
  2903. MAXBAUD
  2904.     Usage:      MAXBAUD baud.num
  2905.     Default:    300
  2906.  
  2907.     The best speed your modem can connect at.
  2908.  
  2909.     See also:   LOCK_PORT
  2910.  
  2911. NAME
  2912.     Usage:      NAME bbsname.str
  2913.     Default:    "Unnamed System"
  2914.  
  2915.     This is, quite simply, the name of the BBS.
  2916.  
  2917. NEWUSERLEVEL
  2918.     Usage:      NEWUSERLEVEL level.word
  2919.                 NEWUSERLEVEL NOT
  2920.  
  2921.     This sets the level that new users will be given.  Using NOT instead
  2922.     of a level will disallow new users.
  2923.  
  2924. NODELISTDIR
  2925.     Usage:      NODELISTDIR path.str
  2926.     Default:    "" (current dir)
  2927.  
  2928.     Where to find a TrapList (traplist.library) format nodelist.  Note that
  2929.     at the time of writing, the version of TrapList needed by Falcon is
  2930.     still unavailable to the general public.
  2931.  
  2932.     See also:   HELPDIR, TEXTDIR, CONFIGDIR, USERDIR, KEYDIR
  2933.  
  2934. NOGOOD1
  2935.     Usage:      NOGOOD1 str
  2936.     Default:    "NO CARRIER"
  2937.  
  2938.     If the dialer gets this from the modem instead of a CONNECT message 
  2939.     or a BUSY message, it skips to the next number.
  2940.  
  2941.     See also:   NOGOOD2, CONNECT, BUSY
  2942.  
  2943. NOGOOD2
  2944.     Usage:      NOGOOD2 str
  2945.     Default:    "VOICE"
  2946.  
  2947.     If the dialer gets this from the modem instead of a CONNECT message 
  2948.     or a BUSY message, it skips to the next number.
  2949.  
  2950.     See also:   NOGOOD1, CONNECT, BUSY
  2951.  
  2952. OFFLINE
  2953.     Usage:      OFFLINE str
  2954.     Default:    "ATH0\r"
  2955.  
  2956.     This modem command is used to hang up the phone after the MAKEBUSY
  2957.     string has been sent to tie up the phone during a local login.  Note
  2958.     that the difference between HANGUP and OFFLINE is that this command
  2959.     is meant to be sent from command mode.
  2960.  
  2961.     See also:   MAKEBUSY, LOCAL_OFFHOOK
  2962.  
  2963. PALETTE
  2964.     Usage:      PALETTE color_0.num ... color_<palette_size>.num
  2965.     Default:    000 B00 070 AA0 00A A0A 09C BBB
  2966.  
  2967.     Large display's screen colors, set to an IBM-style set which doesn't
  2968.     flicker too much in interlace.  You can change them, but I suggest
  2969.     keeping the general IBM configuration of black, red, green, yellow,
  2970.     blue, purple, cyan, and white.
  2971.  
  2972.     See also:   WIDTH, HEIGHT, DEPTH, INTERLACE, LORES
  2973.  
  2974. PICKUP
  2975.     Usage:      PICKUP str
  2976.     Default:    "ATA\r"
  2977.  
  2978.     This string is sent to the modem when the BBS receives a RING string.
  2979.     It picks up the phone with an answer carrier, and starts looking for
  2980.     the CONNECT strings.
  2981.  
  2982.     See also:   RING, CONNECT
  2983.  
  2984. POINTNET
  2985.     Usage:      POINTNET pointnet.num
  2986.     Default:    (no pointnet kludge)
  2987.  
  2988.     This affects netmail addressing for points.  If your boss issues you
  2989.     a pointnet, include it here.  The difference is invisible in the BBS,
  2990.     where all addressing will appear to be normal, but will in fact be
  2991.     zone:pointnet/point behind the scenes.  However, you need not concern
  2992.     yourself with the whys and hows of it.
  2993.  
  2994.     See also:   ADDRESS
  2995.  
  2996. RESET
  2997.     Usage:      RESET str
  2998.     Default:    "ATZ\r"
  2999.  
  3000.     This command resets the modem.
  3001.  
  3002. RESPONDTIME
  3003.     Usage:      RESPONDTIME seconds.num
  3004.     Default:    180 seconds
  3005.  
  3006.     After this amount of time, there will be a message issued to the user
  3007.     that they should respond soon (or else be logged off for inactivity).
  3008.  
  3009.     See also:   INACTIVETIME
  3010.  
  3011. REVBUFSIZE
  3012.     Usage:      REVBUFSIZE bytes.num
  3013.     Default:    4096 bytes
  3014.  
  3015.     Determines the size of the screen history buffer, which keeps track of
  3016.     what was on the screen even when it was in tiny mode.  This buffer is 
  3017.     also the terminal's review buffer.  Minimum 1024 bytes
  3018.  
  3019. RING
  3020.     Usage:      RING str
  3021.     Default:    "RING"
  3022.  
  3023.     If Falcon receives this from the modem, it sends the PICKUP string
  3024.     to answer the phone.  It is also used in the terminal to detect an
  3025.     incoming call during dialing.
  3026.  
  3027.     See also:   PICKUP
  3028.  
  3029. STATUS_POS
  3030.     Usage:      STATUS_POS x.num y.num
  3031.     Default:    0 0
  3032.  
  3033.     Where to put status window.
  3034.  
  3035.     See also:   BEGINSTATUS
  3036.  
  3037. STOPDIAL
  3038.     Usage:      STOPDIAL str
  3039.     Default:    whatever HANGUP was set to
  3040.  
  3041.     This is sent to the modem when aborting a dial that has taken too long.
  3042.     It defaults to the full HANGUP string, but if you can just hit space or
  3043.     return to abort when your modem is calling out, then use that.  I do.
  3044.  
  3045.     See also:   HANGUP
  3046.  
  3047. SYSOP
  3048.     Usage:      SYSOP sysopname.str
  3049.     Default:    "Sysop"
  3050.  
  3051.     This has two uses.  First, you log into your BBS with this name and
  3052.     the program will set you up as the Sysop.  Second, this name is used
  3053.     for redirecting mail sent to "Sysop".
  3054.  
  3055. TEXTDIR
  3056.     Usage:      TEXTDIR path.str
  3057.     Default:    "" (current dir)
  3058.  
  3059.     Where to find the following text files:  welcome1.bbs, welcome2.bbs,
  3060.     bulletin#?.bbs, quotes.bbs, editorial.bbs, newuser.bbs, yell.bbs,
  3061.     warning.bbs, logoff.bbs, and possibly some I forgot.
  3062.  
  3063.     See also:   HELPDIR, CONFIGDIR, NODELISTDIR, USERDIR, KEYDIR
  3064.  
  3065. TINY_POS
  3066.     Usage:      TINY_POS x.num y.num
  3067.     Default:    0 0
  3068.  
  3069.     Where to put Workbench "idiot bar" horizontally.
  3070.  
  3071.     See also:   BEGINTINY
  3072.  
  3073. TRANSFER_MINBAUD
  3074.     Usage:      TRANSFER_MINBAUD minbaud.num
  3075.     Default:    0 (no minimum)
  3076.  
  3077.     Users cannot transfer files if their baudrate is below this number.
  3078.  
  3079.     See also:   CONNECT_MINBAUD, sched.bbs/EVENT
  3080.  
  3081. TRANSFER_PRI
  3082.     Usage:      TRANSFER_PRI priority.num
  3083.     Default:    same as program
  3084.  
  3085.     You can set the task priority of Falcon during transfers with this.
  3086.     However, this is mostly meant for testing.  Upping the priority can
  3087.     bog down or lock out other tasks if you've got a CPU-intensive 
  3088.     protocol, and for that matter, lowering it could result in the 
  3089.     protocol itself being bogged down or locked out.  You should not use
  3090.     this.
  3091.  
  3092. TRANSFER_TWOPLANES
  3093.     Usage:      TRANSFER_TWOPLANES
  3094.     Default:    Normal number of planes
  3095.  
  3096.     Since 3 planes in hires (which is the normal setting for the large
  3097.     display) steals DMA time, it is suggested that this be used with
  3098.     high-speed modems.  As a matter of fact, it should be used with ALL
  3099.     modems, since it'll always save CPU time, and there is no reason not 
  3100.     to do it.
  3101.  
  3102. USERDIR
  3103.     Usage:      USERDIR path.str
  3104.     Default:    "" (current dir)
  3105.  
  3106.     Where to find user.bbs.
  3107.  
  3108.     See also:   HELPDIR, TEXTDIR, CONFIGDIR, NODELISTDIR, KEYDIR
  3109.  
  3110. WAITTIME
  3111.     Usage:      WAITTIME seconds.num
  3112.     Default:    2 seconds
  3113.  
  3114.     This is the amount of time the program will wait between hanging up
  3115.     on a failed dial and dialing again.
  3116.  
  3117.     See also:   DIALTIME
  3118.  
  3119. WIDTH
  3120.     Usage:      WIDTH width.num>
  3121.     Default:    normal width
  3122.  
  3123.     Width of large display's screen in pixels.
  3124.  
  3125.     See also:   HEIGHT, DEPTH, INTERLACE, LORES, PALETTE
  3126.  
  3127. XPR
  3128.     Usage:      XPR bbs_char.char menu_shortcut.char flags.word
  3129.                     300.num 1200.num 2400.num 4800.num 9600.num
  3130.                     name.str library.str config.str
  3131.     Default:    no protocols available
  3132.  
  3133.     Each XPR command adds an XPR protocol with the given name.  The bbs_char
  3134.     field is the character used to select the transfer type (ie. the 'Z' in
  3135.     "D Z file", to download with Zmodem).  Use '-' if you don't want the
  3136.     protocol available in the BBS.  The menu_shortcut field is used in the
  3137.     terminal, and is the letter shown in the right of a menu item.  Make 
  3138.     sure no other menu items in the terminal have the same letter.  The 
  3139.     300..2400 fields are approximate chars/sec estimates for each baud rate, 
  3140.     used for estimating download times.  The library field is the name of 
  3141.     the XPR-format library, ie. "xprzmodem.library".  The config string is 
  3142.     the library's config string, and should be described in each protocol's 
  3143.     documentation.
  3144.  
  3145.     The flags are as follows:
  3146.  
  3147.         R ... The protocol is capable of resuming a transfer
  3148.         N ... The protocol sends the filename
  3149.         - ... Blank, use for no flags, or possibly to show that a
  3150.               flag is off, ie. "A-CDE-"
  3151.  
  3152.     Note that there is presently a limit of 32 protocols.  If you need
  3153.     more room, say so and I'll modify the program.  Later, there won't
  3154.     be a limit.
  3155.  
  3156.  
  3157. msgareas.bbs
  3158. ------------
  3159. Falcon looks for msgareas.bbs in the CONFIGDIR (set up in falcon.cfg).
  3160. This file obviously configures the message areas.
  3161.  
  3162. AREA
  3163.     Usage:      AREA num
  3164.     Default:    none
  3165.  
  3166.     This command basically picks the current area.  Other subsequent
  3167.     commands will act on this area.  Range 1-100.
  3168.  
  3169. AUTOKEY
  3170.     Usage:      AUTOKEY
  3171.     Default:    new users get no keys to this area
  3172.  
  3173.     This command indicates that new users should be given keys to the 
  3174.     current area.
  3175.  
  3176.     See also:   LOCKED
  3177.  
  3178. AUTOWRITEKEY
  3179.     Usage:      AUTOWRITEKEY
  3180.     Default:    new users get no write keys to this area
  3181.  
  3182.     This command indicates that new users should be given write keys for
  3183.     the current area.
  3184.  
  3185.     See also:   WRITELOCKED
  3186.  
  3187. ECHO
  3188.     Usage:      ECHO
  3189.     Default:    not an echo area
  3190.  
  3191.     This command makes the current area an ECHO area.  Origin lines will
  3192.     be added and SEEN-BY: lines will be hidden (if the user has them turned
  3193.     off).  This is mutually exclusive with MATRIX.
  3194.  
  3195.     See also:   MATRIX
  3196.  
  3197. INVISIBLE
  3198.     Usage:      INVISIBLE
  3199.     Default:    not invisible
  3200.  
  3201.     This command makes the current area invisible to all users lower than
  3202.     SYSOP level.  No barriers to entry are actually put up.
  3203.  
  3204. LABEL
  3205.     Usage:      LABEL str
  3206.     Default:    ""
  3207.  
  3208.     This command sets the current area's label, ie. "AMY_POINT".  This is 
  3209.     normally the same as the tag used by Fidonet mail processors.  LABEL is 
  3210.     currently used only for creating a list of areas needing export for mail
  3211.     packers like ConfMail (and FastPoint, I think).
  3212.  
  3213.     See also:    falcon.cfg/EXPORTFILE
  3214.  
  3215. LEVEL
  3216.     Usage:      LEVEL level.word
  3217.     Default:    TWIT
  3218.  
  3219.     This command sets the current area's minimum-entry level, ie. PRIVIL.
  3220.     Users below this level can neither see or enter the area.
  3221.  
  3222. LOCKED
  3223.     Usage:      LOCKED
  3224.     Default:    not locked
  3225.  
  3226.     This command locks the current area.  Only SYSOP-level users and users 
  3227.     who have been given "keys" will be able to see and enter the area.
  3228.  
  3229.     See also:   AUTOKEY
  3230.  
  3231. LOGOFFMSGAREA
  3232.     Usage:      LOGOFFMSGAREA
  3233.     Default:    area 1 flagged
  3234.  
  3235.     This command flags the current area as the one in which to put logoff
  3236.     messages to the sysop.
  3237.  
  3238. MATRIX
  3239.     Usage:      MATRIX
  3240.     Default:    not a matrix area
  3241.  
  3242.     This command makes the current area a MATRIX area.  Source/destination
  3243.     net addresses will be shown, and non-local net messages may be sent.
  3244.     This is mutually exclusive with ECHO.
  3245.  
  3246.     See also:   ECHO
  3247.  
  3248. NAME
  3249.     Usage:      NAME str
  3250.     Default:    ""
  3251.  
  3252.     This command sets the verbose name of the current area, ie. 
  3253.     "General msgs".
  3254.  
  3255. PASSWORD
  3256.     Usage:      PASSWORD str
  3257.     Default:    no password
  3258.  
  3259.     This command gives the current area a password.  Users cannot see this
  3260.     area and must know the password to get in.
  3261.  
  3262. PATH
  3263.     Usage:      PATH str
  3264.     Default:    "" (current dir)
  3265.  
  3266.     This command sets the path (directory) for the current area.  This 
  3267.     path is where the BBS looks for #?.msg and stat.dat files (and also 
  3268.     where it writes them, obviously).  Normally there is one directory
  3269.     per area.
  3270.  
  3271. PRIVATEONLY
  3272.     Usage:      PRIVATEONLY
  3273.     Default:    writing public messages permitted
  3274.  
  3275.     This command makes the current area private-only to all users lower than
  3276.     SYSOP level.  Meaning, they cannot write public messages.
  3277.  
  3278.     See also:   READONLY, PUBLICONLY
  3279.  
  3280. PUBLICONLY
  3281.     Usage:      PUBLICONLY
  3282.     Default:    writing private messages permitted
  3283.  
  3284.     This command makes the current area public-only to all users lower than
  3285.     SYSOP level.  Meaning, they cannot write private messages.
  3286.  
  3287.     See also:   READONLY, PRIVATEONLY
  3288.  
  3289. READONLY
  3290.     Usage:      READONLY
  3291.     Default:    writing permitted
  3292.  
  3293.     This command makes the current area read-only to all users lower than
  3294.     SYSOP level.  Meaning, they cannot write messages
  3295.  
  3296.     This is useful for an announcements area.
  3297.  
  3298.     See also:   PUBLICONLY, PRIVATEONLY
  3299.  
  3300. WRITELOCKED
  3301.     Usage:      WRITELOCKED
  3302.     Default:    not write-locked
  3303.  
  3304.     This command locks the current area's message-writing commands.  Only 
  3305.     SYSOP-level users and users who have been given "write keys" will be 
  3306.     able to write messages in this area.
  3307.  
  3308.     See also:   AUTOWRITEKEY
  3309.  
  3310.  
  3311. fileareas.bbs
  3312. -------------
  3313. Falcon looks for fileareas.bbs in the CONFIGDIR (set up in falcon.cfg).
  3314. This file obviously configures the file areas.
  3315.  
  3316. AREA
  3317.     Usage:      AREA num
  3318.     Default:    none
  3319.  
  3320.     This command basically picks the current area.  Other subsequent
  3321.     commands will act on this area.  Range 1-100.
  3322.  
  3323. AUTOKEY
  3324.     Usage:      AUTOKEY
  3325.     Default:    new users get no keys to this area
  3326.  
  3327.     This command indicates that new users should be given keys to the 
  3328.     current area.
  3329.  
  3330.     See also:   LOCKED
  3331.  
  3332. INVISIBLE
  3333.     Usage:      INVISIBLE
  3334.     Default:    not invisible
  3335.  
  3336.     This command makes the current area invisible to all users lower than
  3337.     SYSOP level.  No barriers to entry are actually put up.
  3338.  
  3339. LABEL
  3340.     Usage:      LABEL str
  3341.     Default:    ""
  3342.  
  3343.     This command sets the current area's label, ie. "GENERAL".  This is 
  3344.     not presently used for anything.
  3345.  
  3346. LEVEL
  3347.     Usage:      LEVEL level.word
  3348.     Default:    TWIT
  3349.  
  3350.     This command sets the current area's minimum-entry level, ie. PRIVIL.
  3351.     Users below this level can neither see or enter the area.
  3352.  
  3353. LOCKED
  3354.     Usage:      LOCKED
  3355.     Default:    not locked
  3356.  
  3357.     This command locks the current area.  Only SYSOP-level users and users 
  3358.     who have been given "keys" will be able to see and enter the area.
  3359.  
  3360.     See also:   AUTOKEY
  3361.  
  3362. MATRIX
  3363.     Usage:      MATRIX
  3364.     Default:    not a matrix area
  3365.  
  3366.     This command makes the current area a MATRIX file area.  I'm sorry, but
  3367.     I cannot for the life of me remember why I included this.  There was a
  3368.     reason.  I'm sure there was...
  3369.  
  3370. NAME
  3371.     Usage:      NAME str
  3372.     Default:    ""
  3373.  
  3374.     This command sets the verbose name of the current area, ie. 
  3375.     "General files".
  3376.  
  3377. PASSWORD
  3378.     Usage:      PASSWORD str
  3379.     Default:    no password
  3380.  
  3381.     This command gives the current area a password.  Users cannot see this
  3382.     area and must know the password to get in.
  3383.  
  3384. PATH
  3385.     Usage:      PATH str
  3386.     Default:    "" (current dir)
  3387.  
  3388.     This command sets the path (directory) for the current area.  This 
  3389.     path is where the BBS looks for files and the files.bbs list.
  3390.     Normally there is one directory per area.
  3391.  
  3392.     See also:   UPLOADPATH
  3393.  
  3394. READONLY
  3395.     Usage:      READONLY
  3396.     Default:    writing permitted
  3397.  
  3398.     This command makes the current area read-only to all users lower than
  3399.     SYSOP level.  Meaning, they cannot upload files.
  3400.  
  3401. UPLOADPATH
  3402.     Usage:      UPLOADPATH str
  3403.     Default:    whatever PATH was set to
  3404.  
  3405.     This command sets the upload path (directory) for the current area.  
  3406.     This optional path is where the BBS puts uploaded files, possibly for
  3407.     verification and/or hurling into the correct area.  Also good for 
  3408.     directing uploads from a dozen specific areas to a general New Uploads
  3409.     area.
  3410.  
  3411.     See also:   PATH
  3412.  
  3413.  
  3414. menus.bbs
  3415. ---------
  3416. Falcon looks for menus.bbs in the CONFIGDIR (set up in falcon.cfg).  This 
  3417. file sets up menu levels, additional menus, doors, and macros.  See the
  3418. section on Configurable Menus for more information.
  3419.  
  3420. <command>
  3421.     Usage:      <command>
  3422.     Default:    n/a
  3423.  
  3424.     Where command is one of the following letters:
  3425.  
  3426.         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
  3427.  
  3428.     This sets the command's minimum level to the currently selected command 
  3429.     level.  Users below that level will not be able to use this command.
  3430.  
  3431.     This also selects the current command letter for certain other
  3432.     commands to act on.
  3433.  
  3434.     Note that commands "," and ";" can't be used because they're whitespace.
  3435.  
  3436.     See also:   <level>
  3437.  
  3438. <level>
  3439.     Usage:      <level>
  3440.     Default:    TWIT
  3441.  
  3442.     Where <level> can be NOT, TWIT, DISGRACE, NORMAL, PRIVIL, ASSIST, SYSOP.
  3443.  
  3444.     This command selects the level that subsequent commands will be given.
  3445.     Think of it as "Set the following commands to <level>: ..."
  3446.  
  3447.     Users below this level will not be able to use whatever commands
  3448.     you specify.  If the level is NOT, then no users will be able to use it,
  3449.     effectively turning it off.
  3450.  
  3451.     Default command levels (these are NOT menus.bbs commands!):
  3452.  
  3453.         Main:
  3454.             !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
  3455.             A-----------------------------T-TTT-TDT-TD--T---D-T-DT--D-----T-
  3456.         Message:
  3457.             !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
  3458.             A---------T-TTDTTTTTTTTTT---T-T-DDT-DNTNDDNDTT-TTDT-N----D----T-
  3459.         File:
  3460.             !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
  3461.             A------------TD---------------T-D-NN-TTAATADTT--TPTDNT--------T-
  3462.         Change:
  3463.             !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
  3464.             ----------D------------------TT-DNDTTTTTTTNTTT-TTTTTSTTT-T---TT-
  3465.         UserEdit:
  3466.             !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
  3467.             ---A--------------------------T-S-SSA--SA-AA-S-ST-AA-A--------T-
  3468.         Edit:
  3469.             !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
  3470.             ------------------------------T-T-TTTT-TTT-T-T--T-TT--T-------T-
  3471.         Subop:
  3472.             !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
  3473.             --T---------------------------T---TT-T--T-TTTT-TTT-T-TT-------T-
  3474.         Librarian:
  3475.             !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
  3476.             ------------------------------T---TT-T--T-TTTT-TTT-TTT--------T-
  3477.         Sysop:
  3478.             !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
  3479.             ------------------------------T-T--TTT----STT---T--T----------T-
  3480.  
  3481.     NOTE:  The '?' and '_' commands always default to TWIT in new user-
  3482.     created menus.  '?' is always a help key, and '_' always stops and asks
  3483.     the user to hit enter.
  3484.  
  3485.     See also:   <command>
  3486.  
  3487. BATCH
  3488.     Usage:      BATCH falcon_batch_file.str
  3489.     Default:    n/a
  3490.  
  3491.     The currently selected command will run this Falcon batch file command,
  3492.     which is not a DOS batch file (which can be used through something like
  3493.     'CON "execute dos_batch_file"'), but rather a file consisting of NIL,
  3494.     CON, and/or RAW lines.  Here's a hypothetical registration batch file:
  3495.  
  3496.         NIL     "copy BBS:reg_form.txt T:"
  3497.         CON MC  "echo \"Please fill out the registration form...\""
  3498.         NIL     "wait 2"
  3499.         RAW -   "raw_screen_edit \"T:reg_form.txt\""
  3500.         NIL     "copy T:reg_form.txt \"FORMS:½FULLNAME╗.txt\""
  3501.  
  3502.     The reason for this alternative kind of batch file is so that several
  3503.     kinds of commands can be combined in one sequence.
  3504.  
  3505.     See also:   <command>, NIL, RAW, CON
  3506.  
  3507. CON
  3508.     Usage:      CON flags.word dos_cmd.str
  3509.     Default:    n/a
  3510.  
  3511.     The currently selected command will run this DOS command, which will
  3512.     be treated as if it were running in a CON: window, except that all
  3513.     I/O will be through the BBS instead.
  3514.  
  3515.     Applicable flags:
  3516.  
  3517.         M   Allow "More [Y,n]" prompts
  3518.         C   Allow the user to break out of the program with ^C
  3519.         A   Force ANSI through even if user has it turned off
  3520.         R   Force ANSI color through even if user has it turned off
  3521.         I   Force IBM characters through even if user has them turned off
  3522.         F   Fix local screen after execution
  3523.         -   Nothing (use as filler)
  3524.  
  3525.     The dos_cmd string may have "½...╗"-style arguments, which the BBS will
  3526.     fill in.  These are described elsewhere.
  3527.  
  3528.     See also:   <command>, NIL, RAW, BATCH
  3529.  
  3530. GOODBYE
  3531.     Usage:      GOODBYE
  3532.     Default:    n/a
  3533.  
  3534.     The currently selected command goes to the logoff sequence.
  3535.  
  3536.     Do not use GOODBYE in conjunction with the Edit, Sysop, UserEdit, Subop,
  3537.     or Librarian menus, or any that you may have added to them, because 
  3538.     these menus have special exit conditions.
  3539.  
  3540.     See also:   MENU, GOTO, <command>
  3541.  
  3542. GOTO
  3543.     Usage:      GOTO menu_name.word
  3544.     Default:    n/a
  3545.  
  3546.     The currently selected command goes to the specified menu.  For 
  3547.     instance, the Main Menu "M" command could be specified like this:
  3548.  
  3549.         MENU Main DISGRACE M GOTO Message
  3550.  
  3551.     Do not use GOTO in conjunction with the Edit, Sysop, UserEdit, Subop,
  3552.     or Librarian menus, because these menus have special entrance and
  3553.     exit conditions.  You might be okay if you add a menu to them which
  3554.     cannot return to the main BBS without going back through the menu
  3555.     it left, but I wouldn't do it if I were you.
  3556.  
  3557.     See also:   MENU, GOODBYE, <command>
  3558.  
  3559. HELPFILE
  3560.     Usage:      HELPFILE helpfile.str
  3561.     Default:    "<menu_name>help.bbs" (except for message -> msghelp.bbs)
  3562.  
  3563.     This changes the name of the help file for the current menu.  This
  3564.     file is still looked for in the HELPDIR path set out in falcon.cfg.
  3565.  
  3566.     See also:   MENU, falcon.cfg/HELPDIR
  3567.  
  3568. MACRO
  3569.     Usage:      MACRO commands.str
  3570.     Default:    n/a
  3571.  
  3572.     The currently selected command will insert the given commands into
  3573.     the BBS command stack so that they are executed next.  ie.:
  3574.  
  3575.         Menu Message TWIT O MACRO "GYN"    ; one-character logoff
  3576.         Menu Main    TWIT * MACRO "FLG* Q" ; all new files (from Main)
  3577.  
  3578.     Note that doing something like 'X MACRO "X"' is a bad idea.  Do not
  3579.     include a macro's command inside it, nor any macros that call it.
  3580.  
  3581.     Make sure your macro can be followed by other commands.  If the last
  3582.     thing in a macro is a "word", for instance, make sure it is followed
  3583.     by a whitespace character to separate it from anything that follows.
  3584.     If it is a sentence, append a "|" to end it.  Etc.  This is because
  3585.     MACROs are merely inserted before the rest of the command stack.
  3586.  
  3587.     See also:   <command>
  3588.  
  3589. MENU
  3590.     Usage:      MENU menu_name.word
  3591.     Default:    Main
  3592.  
  3593.     Where menu_name can be Main, Message, File, Change, Edit, Sysop, 
  3594.     UserEdit, Subop, Librarian, or a user-defined menu.
  3595.  
  3596.     This command selects the menu for other subsequent commands to act on.
  3597.     If the menu is built-in or has already been initialized, it will just
  3598.     be selected.  Otherwise, a new menu of this name will be created and
  3599.     initialized.
  3600.  
  3601. NIL
  3602.     Usage:      NIL dos_cmd.str
  3603.     Default:    n/a
  3604.  
  3605.     The currently selected command will run this DOS command with no
  3606.     input or output.
  3607.  
  3608.     The dos_cmd string may have "½...╗"-style arguments, which the BBS will
  3609.     fill in.  These are described elsewhere.
  3610.  
  3611.     See also:   <command>, CON, RAW, BATCH
  3612.  
  3613. RAW
  3614.     Usage:      RAW flags.word dos_cmd.str
  3615.     Default:    n/a
  3616.  
  3617.     The currently selected command will run this DOS command, which will
  3618.     be treated as if it were running in a RAW: window, except that all
  3619.     I/O will be through the BBS instead.
  3620.  
  3621.     Applicable flags:
  3622.  
  3623.         C   Allow the user to break out of the program with ^C
  3624.         F   Fix local screen after execution
  3625.         -   Nothing (use as filler)
  3626.  
  3627.     The dos_cmd string may have "½...╗"-style arguments, which the BBS will
  3628.     fill in.  These are described elsewhere.
  3629.  
  3630.     See also:   <command>, NIL, CON, BATCH
  3631.  
  3632.  
  3633. sched.bbs
  3634. ---------
  3635. Falcon looks for sched.bbs in the CONFIGDIR (set up in falcon.cfg).  This 
  3636. file sets up schedules and events.
  3637.  
  3638. EVENT
  3639.     Usage:      EVENT name.str
  3640.     Default:    no events
  3641.  
  3642.     This initializes an event, which other subsequent commands will act on.
  3643.  
  3644.     Most events cause the BBS to exit with the return environment variable 
  3645.     set to the event name.  They also affect user time limits, since the
  3646.     BBS must exit no matter what the user wants.  Be careful!  The BBS will
  3647.     NOT exit on an event if it is in the terminal mode.
  3648.  
  3649.     Some events start special schedules:
  3650.  
  3651.         yell                Y)ell command available
  3652.  
  3653.         no300connect        Callers <= 300  baud can't connect to BBS
  3654.         no1200connect       Callers <= 1200 baud can't connect to BBS
  3655.         no2400connect       Callers <= 2400 baud can't connect to BBS
  3656.         no9600connect       Callers <= 9600 baud can't connect to BBS
  3657.  
  3658.         no300transfer       Callers <= 300  baud can't up/download
  3659.         no1200transfer      Callers <= 1200 baud can't up/download
  3660.         no2400transfer      Callers <= 2400 baud can't up/download
  3661.         no9600transfer      Callers <= 9600 baud can't up/download
  3662.  
  3663.     Any event name beginning with one of the above strings (ie. "yell",
  3664.     "yell2", "no300connect_A", "no300connect_B") causes the thing the name
  3665.     implies to be true for the duration of that event.
  3666.  
  3667.     See also:   falcon.cfg/ENV_VAR_NAME
  3668.  
  3669. <day>
  3670.     Usage:      <day>
  3671.     Default:    no days selected
  3672.  
  3673.     Where <day> can be Sun, Mon, Tue, Wed, Thu, Fri, Sat, Everyday.
  3674.  
  3675.     The currently selected event occurs on this (these) day(s) of the week.
  3676.  
  3677. START
  3678.     Usage:      START military_time.num
  3679.     Default:    I'm not sure.  Don't try.
  3680.  
  3681.     Set the currently selected event to start at this time of the day on a 
  3682.     24 hour military clock, which is in the format HHMM, with HH=0..23 and 
  3683.     MM=0..59.  ie. 10:30pm = 2230.
  3684.  
  3685.     See also:   DURATION
  3686.  
  3687. DURATION
  3688.     Usage:      DURATION minutes.num
  3689.     Default:    I'm not sure.  Don't try.
  3690.  
  3691.     Set the currently selected event to last this many minutes.  It should 
  3692.     be at least 1.  The method I'm currently using to do events is not very 
  3693.     good.  If an event is in progress, the BBS will exit, even if it has done 
  3694.     so once already for the current event.  You must make sure that whatever
  3695.     the event causes will last at least as long as this DURATION, or it 
  3696.     could occur twice.
  3697.  
  3698.     See also:   START
  3699.  
  3700.  
  3701. term.bbs
  3702. --------
  3703. FTerm looks for sched.bbs in the CONFIGDIR (set up in falcon.cfg).  This 
  3704. file is used to set up the modem strings, dial directory, and miscellaneous
  3705. other stuff for FTerm.
  3706.  
  3707. <cursor key>
  3708.     Usage:      <cursor key> macro.str
  3709.     Default:    ""
  3710.  
  3711.     Where <cursor key> is CURUP, CURDOWN, CURLEFT, CURRIGHT, SHCURUP,
  3712.     SHCURDOWN, SHCURLEFT, SHCURRIGHT.
  3713.  
  3714.     These define the cursor key macros.  Typing the specified key in the 
  3715.     terminal sends out macro.str.  Simple.
  3716.  
  3717.     See also:   <function key>, <number pad key>
  3718.  
  3719. DIAL
  3720.     Usage:      DIAL str
  3721.     Default:    whatever falcon.cfg/DIAL was set to
  3722.  
  3723.     This string is the modem dialing command prefix.  It should not have an 
  3724.     ENDOFLINE string in it, since that string is automatically appended.
  3725.  
  3726.     There is presently no real reason to have this, as the BBS never does
  3727.     any dialing and you can just set that string to what you want.  However,
  3728.     it may do so in the future (for, say, callback validation or some such)
  3729.     and therefore I provide two versions.
  3730.  
  3731.     See also:   ENDOFLINE, falcon.cfg/DIAL
  3732.  
  3733. DIRECTORY
  3734.     Usage:      DIRECTORY
  3735.     Default:    normal command mode
  3736.  
  3737.     After this command, term.bbs turns into a phone directory, all the
  3738.     way to the end of the file.  The format of each directory entry is
  3739.     as follows:
  3740.  
  3741.             name.str phone_number.str baud.num comment.str
  3742.  
  3743.         ie. "Dis BBS" "123-456-7890" 2400 "24 hours, Joe Sysop"
  3744.  
  3745.     This command must come after all other commands.
  3746.  
  3747. DLDIR
  3748.     Usage:      DLDIR path.str
  3749.     Default:    "RAM:"
  3750.  
  3751.     This is the default download path.  It is put into the file requestor
  3752.     to begin with (which, at this time, is either one or two prompts,
  3753.     since I don't want to use ARP and CBM hasn't released 2.0 just yet), 
  3754.     where it can be changed.
  3755.  
  3756.     See also:   ULDIR
  3757.  
  3758. EOLPAUSE
  3759.     Usage:      EOLPAUSE pause.num
  3760.     Default:    0
  3761.  
  3762.     Wait this many 50ths (or maybe it's 60ths?) of a second after each 
  3763.     end-of-line in an ASCII send.
  3764.  
  3765.     This is useful for uploading text to, say, a BBS that has unusually
  3766.     long pauses when you hit carriage return, or simply does not have a
  3767.     buffer
  3768.  
  3769.     See also:   SENDPAUSE
  3770.  
  3771. <function key>
  3772.     Usage:      <function key> macro.str
  3773.     Default:    ""
  3774.  
  3775.     Where <function key> is F1, F2 ..., F10 or S1, S2, ..., S10.
  3776.  
  3777.     These define the function key macros.  Typing the specified key
  3778.     in the terminal sends out macro.str.  Simple.
  3779.  
  3780.     See also:   <number pad key>, <cursor key>
  3781.  
  3782. HANGUP
  3783.     Usage:      HANGUP str
  3784.     Default:    whatever falcon.cfg/HANGUP was set to
  3785.  
  3786.     This modem command should hang up the modem from any mode.  If your
  3787.     modem will hang up on DTR being dropped, and you are not forcing DTR
  3788.     to stay on, and there is no other program using your unit of the serial
  3789.     device (because the only way to drop DTR is to completely close out the 
  3790.     device), you can substitute "\d" here to drop DTR.  It is a much cleaner
  3791.     disconnect that way.
  3792.  
  3793.     This is given in case you do like I do and force DTR in the term, so
  3794.     that if I crash the system while online, I won't get disconnected and
  3795.     can reload the term.  I don't force it in the BBS, though (my modem
  3796.     can toggle forcing DTR with an AT command instead of a dip switch).
  3797.     So my falcon.cfg HANGUP is "\d", and my term.bbs hangup is "\w\w\w
  3798.     +++\w\w\wATH0\r".  See?
  3799.  
  3800.     See also:   falcon.cfg/HANGUP
  3801.  
  3802. INIT
  3803.     Usage:      INIT str
  3804.     Default:    "ATZ\r"
  3805.  
  3806.     This string initializes the modem for the terminal.
  3807.  
  3808. LOCAL_ECHO
  3809.     Usage:      LOCAL_ECHO
  3810.     Default:    no local echo
  3811.  
  3812.     This command tells the term to echo outgoing text to the local screen
  3813.     as well.  This is mostly used in straight term-to-term chats.
  3814.  
  3815.     See also:   TRANSLATE_EOL_IN, TRANSLATE_EOL_OUT
  3816.  
  3817. <number pad key>
  3818.     Usage:      <number pad key> macro.str
  3819.     Default:    ""
  3820.  
  3821.     Where <number pad key> is K. (kay-period) or K0, K1, ..., K9.
  3822.  
  3823.     These define the number pad key macros.  Typing the specified key
  3824.     in the terminal sends out macro.str.  Simple.
  3825.  
  3826.     See also:   <function key>, <cursor key>
  3827.  
  3828. SENDPAUSE
  3829.     Usage:      SENDPAUSE pause.num
  3830.     Default:    0
  3831.  
  3832.     Wait this many 50ths (or maybe it's 60ths?) of a second after each 
  3833.     character in an ASCII send.  Note that using a nonzero number adds
  3834.     a certain amount of overhead, so that 1 is a bit slower than you
  3835.     might expect, compared to 0.
  3836.  
  3837.     This is useful for uploading text to, say, a BBS that doesn't read
  3838.     text very fast and might lose some input to a buffer overrun.
  3839.  
  3840.     See also:   EOLPAUSE
  3841.  
  3842. STOPDIAL
  3843.     Usage:      STOPDIAL str
  3844.     Default:    whatever HANGUP was set to
  3845.  
  3846.     This is sent to the modem when aborting a dial that has taken too long.
  3847.     It defaults to the full HANGUP string, but if you can just hit space or
  3848.     return to abort when your modem is calling out, then use that.  I do.
  3849.  
  3850.     There is presently no real reason to have this, as the BBS never does
  3851.     any dialing and you can just set that string to what you want.  However,
  3852.     it may do so in the future (for, say, callback validation or some such)
  3853.     and therefore I provide two versions.
  3854.  
  3855.     See also:   HANGUP
  3856.  
  3857. TIMEOUT
  3858.     Usage:      TIMEOUT seconds.num
  3859.     Default:    0 (no timeout)
  3860.  
  3861.     If this number is nonzero, and there are so many seconds of dead
  3862.     time (no input, no output, no carrier), the terminal will time out
  3863.     and return to the BBS to wait for a call.
  3864.  
  3865. TRANSLATE_EOL_IN
  3866.     Usage:      TRANSLATE_EOL_IN
  3867.     Default:    leave incoming CR's alone
  3868.  
  3869.     This command tells the term to translate incoming carriage returns to 
  3870.     carriage return/linefeed sequences.  This is mostly used in straight
  3871.     term-to-term chats.
  3872.  
  3873.     See also:   TRANSLATE_EOL_OUT, LOCAL_ECHO
  3874.  
  3875. TRANSLATE_EOL_OUT
  3876.     Usage:      TRANSLATE_EOL_OUT
  3877.     Default:    leave outgoing CR's alone
  3878.  
  3879.     This command tells the term to translate outgoing carriage returns to 
  3880.     carriage return/linefeed sequences.  This is mostly used in straight
  3881.     term-to-term chats.
  3882.  
  3883.     See also:   TRANSLATE_EOL_IN, LOCAL_ECHO
  3884.  
  3885. ULDIR
  3886.     Usage:      ULDIR path.str
  3887.     Default:    "RAM:"
  3888.  
  3889.     This is the default upload path.  It is put into the file requestor
  3890.     to begin with (which, at this time, is either one or two prompts,
  3891.     since I don't want to use ARP and CBM refuses to release 2.0), where
  3892.     it can be changed.
  3893.  
  3894.     See also:   DLDIR
  3895.  
  3896.  
  3897.  
  3898. 12.  Configurable Menus
  3899. =======================
  3900.  
  3901. Note:  directories like CONFIG/ and HELP/ are actually references to the 
  3902. directories you set up in your falcon.cfg file.
  3903.  
  3904. How to Make a New Menu
  3905. ----------------------
  3906. Edit your CONFIG/menus.bbs file.  Use the MENU keyword to select a menu 
  3907. which does not exist.  A new menu of that name will be created.  Example:
  3908.  
  3909.     MENU External
  3910.  
  3911. A new menu is created only on the first instance of an unfamiliar name.
  3912. If you should happen to reference it again with another "MENU External"
  3913. line, that will only select it again.  The name here is the name which 
  3914. will be displayed in the menu, as...
  3915.  
  3916.     <label> MENU                ie.     EXTERNAL MENU
  3917.     Select:                             Select:
  3918.  
  3919. Note that the version you see in the menu will be in allcaps, no matter
  3920. what you entered, just to match up with the word "MENU".  The string 
  3921. will, however, appear as entered in the "Where:" field of the status 
  3922. window.
  3923.  
  3924. Anyway, you've created a new menu.  Now you need to customize it...
  3925.  
  3926.  
  3927. Customizing Menus
  3928. -----------------
  3929. You can customize any menu, built-in or new.  Built-in commands will, 
  3930. however, take precedence.  To do so, first select it:
  3931.  
  3932.     MENU Utilities
  3933.  
  3934. Now select the level of the command(s) you wish to add:
  3935.  
  3936.         SYSOP
  3937.  
  3938. Now the command letter, just as if you were only setting it's level, which
  3939. you are in fact doing, but you will follow it by command information.
  3940.  
  3941.             B NIL "copy LOG:log.bbs LOGBACK:log.bak"
  3942.  
  3943. Now the Utilities menu has a new SYSOP-level 'B' command, which in this 
  3944. case runs a program, quietly, to back up the log file.  Refer to 
  3945. the section on Help Files for information on adding an entry to the help 
  3946. file.
  3947.  
  3948. The currently-available set of customizations for a command are:
  3949.  
  3950.     GOTO <label>
  3951.     NIL <dos command and arguments>
  3952.     RAW <switches> <dos command and arguments>
  3953.     CON <switches> <dos command and arguments>
  3954.     BATCH <falcon batch file>
  3955.     GOODBYE
  3956.     MACRO
  3957.  
  3958. GOTO
  3959. ~~~~
  3960. GOTO is simple.  All it does it link the current menu to another through 
  3961. the specified command letter.  To link a Games menu to the main menu, 
  3962. both ways, do this:
  3963.  
  3964.     MENU Games
  3965.         TWIT M GOTO Mmain
  3966.  
  3967.     MENU Main
  3968.         TWIT G GOTO Games
  3969.  
  3970. Note that Games must be declared before Main's GOTO points to it, or else 
  3971. Falcon will cry foul because it has not yet heard of any Games menu.  If 
  3972. you have several custom menus which all reference each other, you must 
  3973. declare them before linking them, like so:
  3974.  
  3975.     MENU One
  3976.     MENU Two
  3977.     MENU Three
  3978.  
  3979.     MENU One
  3980.         TWIT 2 GOTO Two
  3981.              3 GOTO Three
  3982.     MENU Two
  3983.         TWIT 1 GOTO One
  3984.              3 GOTO Three
  3985.     MENU Three
  3986.         TWIT 1 GOTO One
  3987.              2 GOTO Two
  3988.  
  3989. It is perfectly acceptable to reference a menu more than once, since it is
  3990. only created once.  Technically, I did not need the first "MENU One" line,
  3991. because it would have been created before it was pointed to by the "GOTO 
  3992. One" lines in MENUs Two and Three.
  3993.  
  3994. NIL, CON, and RAW
  3995. ~~~~~~~~~~~~~~~~~
  3996. All three of these require the AmigaDOS "Run" command to be in your command
  3997. path.  CON and RAW both require the "NewShell" command as well.
  3998.  
  3999. These three execute the given command with the given arguments.  NIL
  4000. executes the command without any input or visible output.  NIL is usually
  4001. used to perform a task that the user need not see or participate in.  CON 
  4002. and RAW execute the command, through the BBS, like a command executed in 
  4003. a CON: or RAW: window.  The user sees the output, and may type input.
  4004. In CON, the input is line-based, like in a CLI or Shell.  In RAW, it is
  4005. character-based, where every character gets sent to the program with no
  4006. built-in editing, although the program may provide some if needed.  Good
  4007. programs for CON and RAW would be a polling booth and a text editor,
  4008. respectively.  Another difference is that CON programs are subject to
  4009. "More? [Y,n]" prompts.
  4010.  
  4011. Note that, for a CON or a RAW command, using "" means to open a full Amiga-
  4012. DOS shell.  This is cute, but really quite dangerous for a BBS to have
  4013. because, except for the level required to start the shell, there is no
  4014. security.  Now, if you're the only one with SYSOP, you can set the shell
  4015. to SYSOP level only and be safe, but many sysops have other users set to
  4016. SYSOP.  It's also a problem if you run a program while in the shell that
  4017. opens its own window or screen, because of course you can't access that
  4018. from the BBS program.
  4019.  
  4020. Examples:
  4021.  
  4022.         DISGRACE    S CON MC "status full"
  4023.                     I CON MC "info"
  4024.                     A CON MC "avail"
  4025.         NORMAL      C RAW -  "rawedit some text file"
  4026.         SYSOP       K NIL    "delete LOG:log.bbs"
  4027.                     N CON MC ""                         ; "" means newshell
  4028.  
  4029. The switches are as follows (note that they are not used with NIL commands):
  4030.  
  4031.     M   Allow "More? [y,n]" prompts in CON commands.  RAW commands do not
  4032.         get these prompts.
  4033.     C   Allow user to type ^C to break out of the program.
  4034.     A   Force ANSI to be permitted in CON commands.  RAW commands do not
  4035.         have ANSI filtered out for them if the user has ANSI turned off.
  4036.     R   Force ANSI color not to be removed in CON commands.  RAW commands 
  4037.         do not ANSI color filtered out for them if the user has ANSI 
  4038.         color turned off.
  4039.     I   Force IBM chars to be permitted.  RAW commands do not have IBM
  4040.         chars filtered out for them if the user has IBM chars turned off.
  4041.     F   Fix local screen after program is run.  Some programs, Contris
  4042.         for example, may send ANSI codes which change the settings in the
  4043.         console.device, and this will reset them after the program is 
  4044.         done.  Note that this involves clearing the screen.
  4045.     -   Nothing.  Use this if you don't have any flags on.  You could also
  4046.         use it to make your flags look like the flags in the AmigaDOS
  4047.         command "list", ie. "------" or "MC-R---" or "MCARIF".
  4048.  
  4049. Final note:  It is permissible to run a batch file (ie. 'CON CM "execute 
  4050. zeebie.bat"'), and it is also permissible for a program to run another
  4051. program (usually through the dos.library function Execute("command",NULL,
  4052. NULL), if there are any programmers wondering).  All I/O will be properly 
  4053. redirected.
  4054.  
  4055. BATCH
  4056. ~~~~~
  4057. BATCH will read in and interpret the batch file you specify, when the
  4058. user types the command letter.  Note that this is not a DOS batch file 
  4059. but rather a custom file made up of NIL, CON, and RAW lines, like this:
  4060.  
  4061.     RAW -  "rawedit T:temp_file"
  4062.     NIL    "cuss_filter T:temp_file"
  4063.     CON CM "echo \"*n*nThis is the file you entered, filtered:*n\""
  4064.     CON CM "type T:temp_file"
  4065.     NIL    "delete "T:temp_file"
  4066.     CON CM "echo \"*nDone.\""
  4067.  
  4068. If that file was called "cuss.bat", you'd use this to add it:
  4069.  
  4070.         NORMAL N BATCH "cuss.bat"
  4071.  
  4072. The reason this is not a regular batch file is so that you can have both
  4073. RAW and CON commands in one sequence.  If you just want a regular AmigaDOS
  4074. batch file, use something like 'CON CM "execute zeebie.bat"'.  
  4075.  
  4076. The only drawback to BATCH files is that there is overhead for every 
  4077. command to set up the door, usually amounting to a second or two pause
  4078. before each command.  Naturally this would drop on a faster computer like
  4079. a 3000.
  4080.  
  4081. Most of the time you will not need BATCH files.
  4082.  
  4083. GOODBYE
  4084. ~~~~~~~
  4085. Obvious.  The user can log off with this.  Example:
  4086.  
  4087.         TWIT G GOODBYE
  4088.  
  4089. Ta da.
  4090.  
  4091. MACRO
  4092. ~~~~~
  4093. Use this to execute a few BBS commands through one.  For instance, to 
  4094. create a one-character logoff sequence from the Message Menu:
  4095.  
  4096.         TWIT O MACRO "GYN"
  4097.  
  4098. Do not call the macro you are in.  It will be a bad thing.  Don't call
  4099. a different macro that calls the macro you are in.  It will be a bad thing.
  4100.  
  4101. Make sure your macro can stand having other commands stacked after it.
  4102. For instance a macro which did a global search for new files would work
  4103. as "LG*", but not if there were other commands following it.  The "*", or
  4104. any other description, is read in as a "word" and therefore needs a white-
  4105. space character to separate it from anything that follows.  It should 
  4106. instead be "LG* ".
  4107.  
  4108.  
  4109. Arguments
  4110. ---------
  4111. Arguments may have BBS information dynamically inserted into them.  If, 
  4112. for example, you wanted to pass the user's name to a game, you could say:
  4113.  
  4114.         RAW - "playgame \"½FULLNAME╗\""
  4115.  
  4116. That would be an example of a straight copy.  There are also conditionals, 
  4117. which insert the first following ½╗-type string if the flag is on, and the 
  4118. second if the flag is off, ie:
  4119.  
  4120.         RAW - "playgame \"½FULLNAME╗\" ½ANSI╗½╗½NOANSI╗"
  4121.  
  4122. ...which would give something like 'playgame "Brian Fehdrau"' for my 
  4123. configuration, and 'playgame "Joe No-Ansi" NOANSI' for someone who doesn't
  4124. want ANSI graphics.  As you can obviously see, it's permissible to put
  4125. nothing between the "½╗"'s in a conditional argument.  It's easiest to 
  4126. think of conditionals like this: "½if this flag is on╗½then insert this╗
  4127. ½else insert this╗".
  4128.  
  4129. There are also prompt arguments, which ask the user for a certain kind
  4130. of command with a given prompt.  The ½╗ string following the argument 
  4131. contains the prompt.  ie.:
  4132.  
  4133.         V CON CM "ppdecrunch \"½FILEPATH╗½AGETWORD╗½View which file? ╗\""
  4134.  
  4135. (That would be used to V)iew a PowerPacked text file in the current file
  4136. area.)
  4137.  
  4138. All dynamic arguments come between a '½' and a '╗'.  On my usa1 keymap, 
  4139. these are typed with alt-'9' and alt-'0'.  I picked these because they 
  4140. weren't too likely to be needed on the command line.  If, however, you do 
  4141. need them, you can enter "½½" for a single '½', and '╗' is fine by itself.
  4142.  
  4143. Note that these arguments may also be used in MACROs.
  4144.  
  4145. Here is a list of dynamic arguments, without "½╗"'s (Note that these ARE
  4146. case-sensitive, and therefore MUST be entered in uppercase):
  4147.  
  4148.     Argument types:
  4149.     ---------------
  4150.     s  = string
  4151.     d  = 16 bit signed integer
  4152.     ld = 32 bit signed integer
  4153.     u  = 16 bit unsigned integer
  4154.     lu = 32 bit unsigned integer)
  4155.  
  4156.     Straight copy arguments
  4157.     -----------------------
  4158.     FIRSTNAME   s   The user's first name, ie. "Brian"
  4159.     LASTNAME    s   The user's last name, ie. "Fehdrau"
  4160.     FULLNAME    s   The user's full name, ie. "Brian Fehdrau"
  4161.     CITY        s   User's city/area, ie. "Saskatoon, SK"
  4162.     PASSWORD    s   The user's password (be careful!) ie. "(yeah, right!)"
  4163.  
  4164.     TOTALTIME   d   User's total time on to date, in minutes
  4165.     TODAYTIME   d   Time of previous calls today, in minutes
  4166.     CALLTIME    d   Unmodified time allowed per call, -1 if unlimited
  4167.     DAYTIME     d   Time allowed per day, -1 if unlimited
  4168.  
  4169.     TOTALDOWN   ld  User's total downloads to date, in kilobytes
  4170.     TODAYDOWN   ld  Total downloads today, in kilobytes
  4171.     CALLDOWN    ld  Unmodified download allowed per call, -1 if unlimited
  4172.     DAYDOWN     ld  Download allowed per day, -1 if unlimited
  4173.  
  4174.     TOTALUP     ld  User's uploads on to date, in kilobytes
  4175.  
  4176.     CALLS       u   Number of times user has called to date
  4177.     MSGS        u   Number of messages user has entered to date
  4178.  
  4179.     FILEAREA    u   The user's current file area
  4180.     FILEPATH    s   The path to user's current message area
  4181.                     Note that this path is available from any menu.
  4182.     MSGAREA     u   The user's current message area
  4183.     MSGPATH     s   The path to user's current message area
  4184.                     Note that this path is available from any menu.
  4185.  
  4186.     LASTCALL    lu  The user's last call, in seconds since 00:00 1 ??? ????
  4187.     CREDIT      lu  Mail credit, presently in cents
  4188.     WIDTH       u   Width of screen, in columns
  4189.     HEIGHT      u   Length of screen, in rows
  4190.  
  4191.     LEVEL       u   Userlevel, 0-5 (TWIT,DISGRACE,NORMAL,PRIVIL,ASSIST,SYSOP)
  4192.     HELP        u   User help level, 0-2 (NOVICE,REGULAR,EXPERT)
  4193.  
  4194.     USERNUM     d   User's number in user.bbs file, starting with 1, not 0
  4195.     USERDIR     s   Path to directory containing user.bbs file
  4196.  
  4197.     Conditional arguments
  4198.     ---------------------
  4199.     IBMCHARS        Does the user support the upper (128-255) IBM chars?
  4200.     LINEEDIT        Line editor vs. screen editor
  4201.     DESTR_BS        Are the user's backspaces destructive?
  4202.     NOCOLOR         Does the user want ANSI color filtered out?
  4203.     CLEAR           Does the user want screen clearing?
  4204.     FEEDS           Does the user need linefeeds?
  4205.     ANSI            Does the user want ANSI?
  4206.     MORE            Does the user want more prompts?
  4207.  
  4208.     Prompt arguments
  4209.     ----------------
  4210.     GETLETTER   s   Get a letter/command, same stacking as in BBS
  4211.     GETNUMBER   s   Get a number, same stacking as in BBS
  4212.     GETWORD     s   Get a word, same stacking as in BBS, ie. a filename
  4213.     GETSENTENCE s   Get a number, same stacking as in BBS
  4214.     GETSTACK    s   Get entire stack or command line with no parsing
  4215.  
  4216.     These prompts will not accept a blank answer.  They will insert a blank
  4217.     string if the user hits return.  If you prepend an "A" to the string, 
  4218.     ie. "AGETWORD", it will take a blank string from the user as a signal 
  4219.     to abort the command.  Remember that any error- or range-checking is up
  4220.     to you (ie. look out for "#?"s or "*"s in filenames).
  4221.  
  4222. An unrecognized argument is just printed out verbatim, ie. "½ZOT╗" would 
  4223. come out as "ZOT".
  4224.  
  4225.  
  4226. Note on help files
  4227. ------------------
  4228. By default, a menu's helpfile will be looked for as HELP/<label>help.bbs, 
  4229. which in this case of a Utilities Menu would be HELP/utilitieshelp.bbs.  
  4230. However, you can set it up to look for a different name like this:
  4231.  
  4232.         HELPFILE <filename>
  4233.  
  4234. Which would then be looked for as HELP/<filename>.
  4235.  
  4236.  
  4237. What Kinds of Programs to Use and What Kinds Not to Use
  4238. -------------------------------------------------------
  4239. When Falcon detects that a user is too inactive or has run out of time
  4240. altogether, it sends what is called a C break signal to the program, 
  4241. which is exactly the same as if you had typed control-C when the program 
  4242. was running in a normal CLI or shell.  This is how Falcon regains control.
  4243. If a program will not exit cleanly and reasonably promptly (no more than 
  4244. 10-30 seconds at the outside) on a control-C signal, you should avoid 
  4245. using it.  Note that this break signal is only sent to the program which
  4246. most recently had some I/O.
  4247.  
  4248.  
  4249. Warnings
  4250. --------
  4251. Do not use ARun to run Falcon under 2.0.  ARun disagrees with the system
  4252. call Execute(), which is used to run external programs.  You'll probably
  4253. get an odd-address exception guru if you do.
  4254.  
  4255. Be careful when linking (with GOTO) into and out of built-in menus.  You 
  4256. should not, for instance, link out of the Sysop, UserEdit, Subop, or 
  4257. Librarian menus, since they have special exits that can save changed 
  4258. config files.
  4259.  
  4260.  
  4261. Suggestion
  4262. ----------
  4263. I suggest making your Run and NewShell commands resident (automatic under 
  4264. 2.0).  Run is used once for every NIL program, and twice in a RAW or CON 
  4265. program along with NewShell:  Run is used once by the system call 
  4266. Execute(), and both are used in the command that is Execute()d.  Actually, 
  4267. come to think of it, Execute() may not know about resident commands under 
  4268. 1.2/1.3.  I'm not sure.  Maybe put it in RAM: if your drive (whatever 
  4269. sort) is slow.  This is to reduce overhead.
  4270.  
  4271.  
  4272. Notes About DLG Doors
  4273. ---------------------
  4274. DLG Pro, another Amiga BBS, uses similar doors.  If they do not access the
  4275. DLG userlog or data structures directly, you can use them with Falcon.  
  4276. You will need to figure out the conversion from their arguments to mine,
  4277. since I don't currently know anything more than their %1 corresponds to
  4278. my ½FULLNAME╗.  Shouldn't be too hard, though.  You may need to set up a
  4279. directory or two, but nothing painstaking.
  4280.  
  4281. Apparently, DLG has a DF command that other programs can Execute() to type 
  4282. a file.  I understand that the DF command interprets their %x codes.  
  4283. Just replace their DF program with Type.  And, no, I do not interpret their 
  4284. %x codes.  You see, they don't seem to want to tell me what they are so 
  4285. that we could, say, form a standard interface.  Tom Conroy said something 
  4286. to the effect of "We don't want to give away trade secrets."  Unimpressed, 
  4287. I replied with a comment about his evidently expanding hat size.
  4288.  
  4289.  
  4290. Sample External Menu
  4291. --------------------
  4292. MENU External
  4293.     TWIT        M GOTO      MAIN
  4294.                 G GOODBYE
  4295.     DISGRACE    S CON CM    "status full"
  4296.                 I CON CM    "info"
  4297.                 A CON CM    "avail"
  4298.     NORMAL      E RAW -     "rawedit \"some text file\""
  4299.                 C BATCH     "cuss.fbat"
  4300.                 P RAW -     "execute SomeRawGame_Setup_Then_Run ½FULLNAME╗"
  4301.     SYSOP       B NIL       "copy LOG:log.bbs LOGBACK:log.bak"
  4302.                 N CON C     "" ; newshell
  4303. MENU Main
  4304.     TWIT        X GOTO      EXTERNAL
  4305.  
  4306. Editing the HELPDIR's externalhelp.bbs file would be up to you.
  4307.  
  4308.  
  4309.  
  4310. 13.  Batch File
  4311. ===============
  4312.  
  4313. You'll probably find a file called "fbatch" in your distribution archive.
  4314. Fbatch is the batch file I've used so far.  However, fbatch is going to be a 
  4315. problem.  It really only works in the ARP Shell, and the Arp Shell doesn't 
  4316. work under 2.0.  I'm going to have to dump it.  I think I'm just going to
  4317. distribute Falcon without an example batch file and let the user work it 
  4318. out, since it's bound to end up very personalized when they're through 
  4319. anyway.  As I've suggested elsewhere, you should take a look at Robert 
  4320. Williamson's Roof shell, which is meant for BBSs (FidoNet BBSs, to be 
  4321. exact).  However, I'm still going to include the documentation I wrote for 
  4322. fbatch as long as I'm including it.  Really, though, you'd be much better 
  4323. off writing you own.
  4324.  
  4325. Falcon's Batch File
  4326. -------------------
  4327. "FBATCH" is the file that runs my point (if you don't interface with 
  4328. FidoNet and you don't run any other schedules, you don't need fbatch or any
  4329. other batch file).  It is written for the ARP shell.  I'm not sure if it 
  4330. could be made to work under the regular CBM shell (which the ARP shell is a 
  4331. superset of).
  4332.  
  4333. The batch file and several of the example packer/mailer config files require 
  4334. BBS: to be assigned to the directory Falcon is run from, LOG: where you want 
  4335. the BBS's, the mailer's, and the batch file's log, MAIL: to the directory 
  4336. which holds the message area directories, LOGBACK: to where ever you want to 
  4337. keep backups of the log.bbs file, MAILIN: to the place where the mailer will 
  4338. put incoming mail packets and archives, and MAILOUT: to your MATRIX 
  4339. directory.  So put something like the following in your startup-sequence, 
  4340. (it's basically what I use with my 590HD):
  4341.  
  4342.     assign BBS:     DH0:bbs
  4343.     assign LOG:     BBS:
  4344.     assign LOGBACK: BBS:logs
  4345.     assign MAIL:    BBS:msgs
  4346.     assign MAILOUT: MAIL:matrix
  4347.     makedir         RAM:inbound     ; you may want to use a MAIL:inbound
  4348.     assign MAILIN:  RAM:inbound     ;   dir instead, esp. with big echoes
  4349.  
  4350. Note that the environment variable "fret" is set by Falcon on exit, usually 
  4351. based on schedules from sched.bbs.  It may be set to "quit" on a manual 
  4352. exit, or "exit" if it has been spawned from a front door (though in that 
  4353. case it hardly matters).  The type of environment variable is determined by 
  4354. the presence (or absence) of the CBMENV keyword.
  4355.  
  4356. Note that at least one event (newlog) has an alternative (commented out)
  4357. that would make use of the ARP Shell's pipes.  It is in the form of a 
  4358. $(date) command in this case, which inserts the result of the 'date' command 
  4359. into a filename.  In order to use this, one must have not only the ARP 
  4360. Shell, but must have PIP: mounted as well.  PIP: is a pipe that comes with 
  4361. ConMan that ARP also uses.  Instructions on its installation should be found 
  4362. in both the ARP and ConMan documentation.  It is not required, but it is 
  4363. useful.
  4364.  
  4365. The file can be run with an event name (ie. "run fbatch mail") and it should 
  4366. act as if Falcon had signalled for that event to happen.  Afterwards, it 
  4367. will return to Falcon or exit if called with the THENQUIT switch (ie. "run 
  4368. fbatch import thenquit").  Remember to set the S (script) protection bit.  
  4369. If not, you'll have to change the command to "run execute fbatch ...".
  4370.  
  4371.  
  4372.  
  4373. 14.  Suggestions and Hints
  4374. ==========================
  4375.  
  4376.  o  Run in "tiny" (WorkBench idiot bar) mode whenever you are not actively
  4377.     watching or using the program.  Scrolling a three bitplane hires screen,
  4378.     especially if it is visible, is very slow, not only because of the 
  4379.     actual data-movement, but also because displaying a three+ bitplane 
  4380.     hires screen steals CPU time and bogs down the system.  If you leave the 
  4381.     display open, the serial output will be slowed down visibly.  I can't 
  4382.     help this.  (For the same reason, you should always leave the 
  4383.     TRANSFER_TWOPLANES flag in your falcon.cfg file.)
  4384.  
  4385.  o  If you do have the full display going, do not keep the status window on.
  4386.     It partitions the scrolling, which also slows things down horribly.  Try
  4387.     it:  you'll see what I mean.  I can't help this either.
  4388.  
  4389.  o  If you want to remove the file areas altogether or restrict them to 
  4390.     registered users, you must remove all links to the File Menu or set them 
  4391.     to the appropriate level.  These links include, at present, the F and J 
  4392.     commands from the Main Menu, and the J command from the Message Menu.  
  4393.     You can do this like so in the menus.bbs configuration file:
  4394.  
  4395.         ; to remove
  4396.         MENU Main NOT F J
  4397.         MENU Message NOT J
  4398.  
  4399.         ; to restrict
  4400.         MENU Main PRIVIL F J
  4401.         MENU Message PRIVIL J
  4402.  
  4403.     See the documentation on menus.bbs for more information.
  4404.  
  4405.     Note that yanking up area 1's level is not sufficient to restrict access 
  4406.     to the file menu, because the user can always get into area 1.  Even if 
  4407.     they try to change areas, they can still hit return to drop back into 
  4408.     their current area (usually 1) when they see that no areas are 
  4409.     available.
  4410.  
  4411.  o  Do not use external message renumbering programs.  Unless they say they 
  4412.     will update Falcon's user pointers, chances are that they won't, and 
  4413.     your users will be left with inaccurate last-read pointers.
  4414.  
  4415.  o  Try using Robert Williamson's ROOF shell if you need scripts to do 
  4416.     something more complex than automatically running the BBS at startup.  
  4417.     My ARP-Shell-based scripts will be useless under 2.0, because the ARP 
  4418.     Shell does not work under 2.0, and 2.0 is due out in a few weeks at the
  4419.     time I'm writing this.  As Robert uses Falcon, among other things, you 
  4420.     should be able to work from his example scripts.  (NOTE:  At this time, 
  4421.     I don't think he's released a version (with samples) since receiving 
  4422.     Falcon.  Ask him...?)
  4423.  
  4424.  o  If you're running on floppies, use a reasonable number of disk buffers.  
  4425.     This will help with loading commonly-used overlays and with reading the 
  4426.     brief-help portion of the prompt for users with a help level of NOVICE.  
  4427.     Getting FaccII would be a good idea.  Another thing you should remember
  4428.     when you're running on floppies is that LIBS: must be assigned to a disk
  4429.     in a drive, or else the program will not be able to load the XPR 
  4430.     libraries.
  4431.  
  4432.  o  If you're running on any slow drive, most notably floppies (but some 
  4433.     hard drives too), you should increase your serial read buffer's size 
  4434.     (from Preferences).  Ideally, it should be big enough so that it won't 
  4435.     overflow while the protocol stops to dump some data to disk.  This 
  4436.     should also reduce or even prevent RTS/CTS pausing on high-speed modems, 
  4437.     which pause instead of letting the buffer overflow.  How big the buffer 
  4438.     should be depends on how fast the transfer is and how slow the drive is.  
  4439.     Experiment.
  4440.  
  4441.  o  Try to avoid modifying files and/or paths in file areas more often than
  4442.     you need to.  Scanning areas for new files is done by looking at the 
  4443.     directory, and if it has been modified since the last call, then the 
  4444.     entire directory is scanned to see if there are any non-"files.bbs" 
  4445.     files that have been modified since the last call (it's weird, but it 
  4446.     works well enough and works within the files.bbs concept).  Therefore,
  4447.     if you modify the directory, the entire thing has to be scanned (like
  4448.     the AmigaDOS List command would do) and that slows things down a bit.
  4449.     Modifying a file will, obviously, make it "new" even though it
  4450.     probably isn't.
  4451.  
  4452.  
  4453.  
  4454. 15.  Miscellaneous/Technical Information
  4455. ========================================
  4456.  
  4457. Workbench/Kickstart 2.0
  4458. -----------------------
  4459. Falcon works under 2.0.  It even works with wacky system fonts.  The last 
  4460. time I had someone run it under Enforcer in front of me, we could only find 
  4461. one hit, and it was a safe and easily-fixed bug (basically a strcpy(NULL,
  4462. NULL), in case you're wondering).  He's never reported any hits since then, 
  4463. but I don't know how often he runs Enforcer.
  4464.  
  4465.  
  4466. Overlaid vs. Pure Executables
  4467. -----------------------------
  4468. The executable file is actually about 30% larger than the entire memory 
  4469. required (data space included) during a waiting-for-call, tiny-WorkBench-
  4470. window situation because Falcon uses overlays for most sections (config file 
  4471. reader, each menu, the editors, etc).  They are loaded at need and unloaded
  4472. when not in use, which is sensible because most are mutually exclusive.  On 
  4473. a hard drive, the load time for each section should be practically nil.  
  4474. Someone using a floppy shouldn't notice too much, especially if they usually 
  4475. have a reasonable number of buffers.  Most sections, if not all, are less 
  4476. than 20K or even 10K.
  4477.  
  4478. However, if you are going to run Falcon several times at once, you will 
  4479. probably want the re-entrant/pure/resident-able version.  It takes up more 
  4480. memory if you're only running it once, but on subsequent invocations it only 
  4481. needs enough memory for the stack and variables/data.  If you need this 
  4482. version, please contact me and we'll see if we can get it to you.  I did not 
  4483. want to include it in the general distribution archive because it's a fairly 
  4484. sizable file and most people will not want it.
  4485.  
  4486.  
  4487. bf.library
  4488. ----------
  4489. "Why do we have to have another library?" you ask.  Well, at the moment
  4490. Falcon is only really meant for a single-line system (although it can be
  4491. used for multi-line, albeit somewhat shakily).  However, it is being adapted 
  4492. for a secure multi-line environment, which will require the program to be 
  4493. broken in two:  first, a server program, which will read the configuration 
  4494. files and control access to message areas and such, and a client program, 
  4495. which will sign on with the server and actually run the system.  In order to 
  4496. avoid duplication of code between the two programs, a library with a single, 
  4497. re-entrant copy of the code was created.  Some of the functions are generic 
  4498. enough (ie. a fully-featured, re-entrant printf()) that I may make the 
  4499. library format public for doors to use.
  4500.  
  4501.  
  4502. Using a Nodelist
  4503. ----------------
  4504. In order to access a nodelist from the BBS, you must have traplist.library,
  4505. version 4+, and the TrapList program that comes with it.  Unfortunately,
  4506. neither has been released to the general public.  *** Max has just announced
  4507. that TrapDoor 1.80 will be released on October 1st, which, coincidentally
  4508. enough, is the day I'm releaseing Falcon 1.00.  That's a convenient 
  4509. coincidence.  At any rate, if you've got the necessary stuff, and you set up 
  4510. the nodelist directory properly in Falcon.cfg, Falcon will start using the 
  4511. nodelist.
  4512.  
  4513.  
  4514. Refreshing the Display
  4515. ----------------------
  4516. When Falcon refreshes the display when returning to full-screen mode from
  4517. tiny mode, what it does is print the last (1.25*lines_in_screen) lines that 
  4518. were displayed, or however many came after the last screen clear if that was 
  4519. more recent.  This can be problematical during a full-screen edit, since 
  4520. there aren't many "lines".  A "line" in this case is a string which ends 
  4521. with an end-of-line character, and there just aren't many output in most 
  4522. full-screen editors (including mine).  It may take a bit of time to print 
  4523. out what the BBS sees as a rather longish line which, will probably include 
  4524. much of your editing, depending on how large the review buffer is.  
  4525. Confused?  Oh well.
  4526.  
  4527.  
  4528. Editing File Lists
  4529. ------------------
  4530. In case you want to edit the files.bbs file lists in your file areas, this
  4531. is how they are interpreted:
  4532.  
  4533.   - If line starts with illegal file start, or <space>, '=', or '-', it is 
  4534.     considered a comment.  Note that if you want to use ANSI color in the 
  4535.     comment, you may need to reset it at the start of every line because all 
  4536.     comments are initially set to cyan.
  4537.   - Otherwise, Falcon gets all characters up to the first whitespace and
  4538.     uses them as the filename, then gets the file size and date from disk 
  4539.     and displays them (or "MISSING ??-???-??" if it could not find the 
  4540.     file), then a '*' if file is new since last time file area was listed, 
  4541.     then displays the rest of the line as comment.  Note that the file 
  4542.     comment will be wrapped to fit a column underneath its normal position 
  4543.     if it is too long and the caller's screen is wide enough to accommodate 
  4544.     a decently-sized column (otherwise it'll just print the entire line all 
  4545.     at once).
  4546.  
  4547. Falcon considers the following to be illegal file starts:  "\:/#*?[]()><|".
  4548. Naturally, there are others, like carriage returns or escapes, but those are
  4549. the ones that may not have been obvious.  This is useful to know, since 
  4550. the files.bbs listing decides whether or not a line is a comment or a file
  4551. based on whether or not the first character of that line is an illegal file
  4552. start (as well as space, '-', or '=').  Therefore you can use those 
  4553. characters in a comment without having to put a space at the start.
  4554.  
  4555.  
  4556. The Quote File
  4557. --------------
  4558. The quotes.bbs file is made up of a number of quotes, separated by lines 
  4559. with nothing but "---" on them.  It is found in the TEXTDIR.
  4560.  
  4561. If the quotes.bbs file can't be found, it says:
  4562.  
  4563.         "A wise man knows when there is something wrong with his
  4564.          quoting facility."
  4565.  
  4566. The quote is selected by dropping in at a random position and finding the
  4567. start of the quote it drops into.  This results in larger quotes being
  4568. picked more often, but it's the simplest way to do it.
  4569.  
  4570.  
  4571. The Log File
  4572. ------------
  4573. This file will not show up unless specified in Falcon.cfg.
  4574.  
  4575. It comes out in this format:
  4576.  
  4577.     <char> <datestamp>  <comment>
  4578.  
  4579. Where <char> describes the comment type:
  4580.  
  4581.     "?" = Program error
  4582.     "!" = User did something naughty
  4583.     "*" = Noteworthy user action
  4584.     " " = Nothing special
  4585.  
  4586. The datestamp is a message-style datestamp, with the date and time.
  4587.  
  4588. The comment is the actual reason the entry has been made.  It may be
  4589. indented somewhat:  2 spaces for things that occur while Falcon is
  4590. running, 2 more for things that happen during a call, and a little
  4591. more yet for transfer file lists.
  4592.  
  4593.  
  4594. Text Files
  4595. ----------
  4596. When transmitting a text file, if Falcon encounters a ^B (ASCII 2) character,
  4597. it will toggle ^C breaking on or off, depending on what it is at that time.
  4598. The default at the start of the file is to permit breaking.  This is useful
  4599. if you want new users to sit through your entire warning/whatever to them,
  4600. but don't be a jerk and put one into the start of your 23K animated ANSI 
  4601. sequence.  If I get complaints about this sort of thing from users, I'll just 
  4602. take it out, since I'm more a user than a sysop and will side with them.
  4603.  
  4604. It should also be pointed out that some .bbs text files have .gbs 
  4605. counterparts.  These are displayed, if available, to users with ANSI.  If 
  4606. they aren't available, the usual .bbs file is sent, as it would be to a non-
  4607. ANSI user.
  4608.  
  4609.  
  4610. Help Files
  4611. ----------
  4612. Menu help files have a special format.  Note that this only applies to help 
  4613. files specifically for menus, and not to text files used for, say, the long
  4614. help in FRED.  These help files are arranged in lines, as follow:
  4615.  
  4616. line 1:  Regular level help.  Each letter is checked to see if the
  4617.          is available to the user.  This text is read at program
  4618.          startup and cached, to avoid pauses.  For NOVICE level help
  4619.          a pause seems negligible, but for one line, it's annoying.
  4620. line 2:  Column width (note that this is only used for calculation
  4621.          of current line width and that each command must have
  4622.          spaces to pad to the column width).  This is needed because
  4623.          ANSI can make strings look longer to the computer than they
  4624.          are when displayed.
  4625. line 3+: Groups of three, like so:
  4626.          line A:  First letter of command, used to figure availability
  4627.          line B:  Brief help, out put in columns of width from line 2
  4628.          line C:  Line-long help.  Not used yet as of 0.27.  Should be 
  4629.                   less than about 70 characters
  4630.  
  4631. For example, to make a menu which would look like this in REGULAR level 
  4632. help...
  4633.  
  4634.         THE MENU: A B C D  ?
  4635.         Select:
  4636.  
  4637. ...and like this is NOVICE level help...
  4638.  
  4639.         THE MENU: 
  4640.         A)Go Here   B)Go There  C)Go Home   D)Go Away   
  4641.         ?)This Help 
  4642.  
  4643. ...you would have a help file (thehelp.bbs) that looked like this in the 
  4644. HELPDIR specified in falcon.cfg:
  4645.  
  4646.         A B C D  ?
  4647.         12
  4648.         A
  4649.         A)Go Here   
  4650.         Go to this place
  4651.         B
  4652.         B)Go There  
  4653.         Go to that place
  4654.         C
  4655.         C)Go Home   
  4656.         Go to your residence
  4657.         D
  4658.         D)Go Away   
  4659.         Go to hell
  4660.  
  4661. As you may have noticed, the name of the menu determines the name of its
  4662. help file.  It's always HELPDIR/<menu_name>help.bbs, with the one exception
  4663. of the Message Menu's msghelp.bbs file.
  4664.  
  4665.  
  4666. The Numeric Keypad
  4667. ------------------
  4668. In some parts of the program, the numeric keypad has special functions for
  4669. the following keys: '0..9', '.', '-', and their shifted versions.  You
  4670. can use the number pad in the normal manner by typing control-NumL (the
  4671. left parenthesis on a 500/2000/3000 keypad, use control-'-' on a 1000) to
  4672. toggle modes.  You can also toggle modes on the fly by using the control key
  4673. with one of the keys above, to get what the key would be if the current mode 
  4674. was reversed.  The pad defaults to "special" mode.
  4675.  
  4676.  
  4677. Remote VT100 Keys
  4678. -----------------
  4679. The following VT100 key strings are accepted by the BBS and used where 
  4680. applicable:
  4681.  
  4682.     Cursor-Up               "<CSI>A"
  4683.     Cursor-Down             "<CSI>B"
  4684.     Cursor-Right            "<CSI>C"
  4685.     Cursor-Left             "<CSI>D"
  4686.     Shifted-Cursor-Up       "<CSI>T"
  4687.     Shifted-Cursor-Down     "<CSI>S"
  4688.     Shifted-Cursor-Right    "<CSI> @"
  4689.     Shifted-Cursor-Left     "<CSI> A"
  4690.     End (Keypad 1)          "<CSI>K"
  4691.     Home (Keypad 7)         "<CSI>H"
  4692.  
  4693. Where <CSI> is one of "<esc>[", "<esc>O", or ASCII $9b.
  4694.  
  4695.  
  4696. ANSI Used in Output 
  4697. -------------------
  4698. Falcon, if the appropriate modes are on, uses the following set of ANSI 
  4699. codes (where "<CSI>" is presently "<esc>["):
  4700.  
  4701.     Basic ANSI                                FRED Msg General
  4702.     ----------------------------------------------------------
  4703.     <CSI><n>C       move right n chars          *   *
  4704.     <CSI>H          home                        *   *   *
  4705.     <CSI><r>H       move to column 1, row r     *   *
  4706.     <CSI><r>;<c>H   move to column c, row r     *
  4707.     <CSI>K          clear from cursor to eol    *   *   *
  4708.     <CSI>J          clear from cursor to eod    *   *   *
  4709.     <CSI><???>m     color/style                 *   *   *
  4710.  
  4711.     The <???> field in the color/style code can be zero or more of the 
  4712.     following, separated by ";"'s:
  4713.  
  4714.         0 ...... Reset
  4715.         1 ...... Bold on
  4716.         5 ...... Blink on
  4717.         30-37 .. Change foreground color to n-30
  4718.         40-47 .. Change background color to n-40
  4719.  
  4720. (If anyone wants to know, the screen clear sequence I use is the following:  
  4721. "<ASCII 12><esc>[H<esc>[J" which works out to "formfeed, ANSI cursor-to-home 
  4722. code, ANSI clear-to-end-of-display code".  That should clear ANY screen.)
  4723.  
  4724. The following ANSI controls are not supported by all terminals.  They are by 
  4725. any Amiga term which uses the console.device.  Also JRComm (IBM-ANSI mode) 
  4726. for the Amiga, Telix for MS-DOS, and apparently ZTerm for the Macintosh.  
  4727. They are not required to use Falcon, but enhance its operation if you use 
  4728. certain modes.
  4729.  
  4730.     Special ANSI                              FRED Msg General
  4731.     ----------------------------------------------------------
  4732.     <CSI>M          delete one line             *   *
  4733.     <CSI><n>M       delete n lines              *
  4734.     <CSI>L          insert one line             *
  4735.     <CSI><n>L       insert n lines              *
  4736.     <CSI>P          delete one char             *
  4737.     <CSI><n>P       delete n chars              *
  4738.     <CSI>@          insert one char             *
  4739.     <CSI><n>@       insert n chars              *
  4740.  
  4741.  
  4742. Those "stat.dat" Files and the "systemstat.dat" File
  4743. ----------------------------------------------------
  4744. Each area/stat.dat file caches (saves) the values one sees upon entry to the
  4745. Message menu.  These include the number of messages and the highest message
  4746. in that area.  It also includes two highwater marks should an echomail 
  4747. processor ever decide to use them, and a fair deal of expansion space for 
  4748. later usage.  The reason these values are cached is that is takes time to 
  4749. scan a directory to figure them out, especially if the program is running on 
  4750. floppies.  Such a scan is only done if the directory has been modified since 
  4751. the stat.dat file was last written out.
  4752.  
  4753. The systemstat.dat in the config directory holds the system's birthday, 
  4754. number of calls, last-user and current-user information, the most recent 
  4755. MSGID serial number and the number of messages entered to date.  Don't 
  4756. delete it if you can help it.
  4757.  
  4758.  
  4759.  
  4760. 16. FidoNet-Specific Technical Information
  4761. ==========================================
  4762.  
  4763. For people who care, and I imagine that excludes the majority of you, here 
  4764. are the ways Falcon supports various mail-related items:
  4765.  
  4766. Quoting
  4767. -------
  4768.   - New quotes are read in as lines a fair bit narrower than the usual 
  4769.     screen width of 80 (I know, a magic number, how hideous).  Then each 
  4770.     line has a space, at most two initials, a '>', and another space added 
  4771.     to the start.  Blank lines are left alone.
  4772.   - Old quotes are left alone.  As for identifying them, I look for a '>' in 
  4773.     the first 6 characters of each line.  Simplistic, but it works 
  4774.     remarkably well.  There is one exception:  it is not a quote is there is 
  4775.     a '<' before the '>', because "<grin>" is a common thing to find at the 
  4776.     start of a line.
  4777.  
  4778. Quoting a message from me with quotes from somebody else's message might 
  4779. look like this:
  4780.  
  4781.   (Left edge)
  4782.     |_______________________________________________________________
  4783.     |
  4784.     | >  SE> So how do you quote?
  4785.     | > 
  4786.     | > ^^^^^ Like this.
  4787.     |
  4788.     | SE> I hate your quoting style!  You are such 
  4789.     | SE> a moron!
  4790.     |
  4791.     | BF> It looks better than yours.
  4792.     |
  4793.     |I agree.
  4794.     |_______________________________________________________________
  4795.  
  4796. I currently prepend a header, like so:
  4797.  
  4798.     "In a message dated Wed 12 Dec 90 04:49, Brian Fehdrau wrote:"
  4799.  
  4800. I think I shall change that to:
  4801.  
  4802.     "On Wed 12 Dec 90 01:51, Brian Fehdrau wrote:"
  4803.                                            ^^^^^^ implies "to All"
  4804.  
  4805.     "On Wed 12 Dec 90 04:49, Brian Fehdrau wrote to Maximilian Hantsch:"
  4806.                                            ^^^^^^^^ not a reply
  4807.  
  4808.     "On 14 Dec 90 01:23:45, Maximilian Hantsch replied to Brian Fehdrau:"
  4809.                                                ^^^^^^^^^^ a reply
  4810.  
  4811. ...and then again with a blank line, converting any original Fido two-space 
  4812. style datestamps ("dd mmm yy  hh:mm:ss") to one space to save a little room 
  4813. (oh boy, one byte).         ^^
  4814.  
  4815. I still haven't done this, though.
  4816.  
  4817.  
  4818. Netmail/Echomail Kludge/Control Lines
  4819. -------------------------------------
  4820. Falcon supports the following kludge lines:
  4821.  
  4822.     N E KLUDGE <parameters>
  4823.     - - ------------------------------------
  4824.     *   FMPT OrigPoint
  4825.     *   TOPT DestPoint
  4826.     *   INTL Dest.3D Orig.3D
  4827.     *   GATE: Dest.5D Orig.5D
  4828.     * * MSGID: Orig.?? SerialNumber.Hex8
  4829.     * * REPLY: Dest.?? SerialNumber.Hex8
  4830.     *   MSGTO: Dest.5D
  4831.     * * PID: Falcon <version> <number>
  4832.  
  4833.  
  4834. Notes on Kludges
  4835. ----------------
  4836.   - .3D = Zone:Net/Node
  4837.     .5D = [Zone:]Net/Node[.Point][@Domain]
  4838.     .?? = Pretty much any kind of address.  Usually a .5D address, but could 
  4839.           very well be something like a UUCP site, like "weyr.fidonet.org".
  4840.   - Falcon can also read .5D as [Domain#][Zone:]Net/Node[.Point], but does 
  4841.     not write them that way.
  4842.   - Falcon will write the minimum amount of a 5D address that it has to.  
  4843.     Meaning, if it doesn't know the domain, it won't include one, and if the 
  4844.     point is 0, it'll be omitted because that would be redundant (since
  4845.     "zone:net/node" is equal to "zone:net/node.0").
  4846.   - Falcon does not currently do its own packing.  Therefore PATH lines
  4847.     aren't my problem.
  4848.   - Serial numbers generated by Falcon always increase.  If you want to know 
  4849.     exactly how they are determined, they are the C time() value (seconds 
  4850.     since a certain date), and incremented by one if that value has already 
  4851.     been used.
  4852.   - REPLY and MSGTO are mutually exclusive.
  4853.   - INTL's, FMPT's and TOPT's can have colons (ie. "INTL:") in them and 
  4854.     Falcon can still read them.  They will be written without, at least 
  4855.     until FTS-0001 says otherwise.  As a side note, any other keyword can be 
  4856.     read without a colon, though this is probably not encouraged.
  4857.   - INTL's can be .5D addressed (like GATE) and Falcon can still read them.  
  4858.     It will not, however, write them that way.
  4859.   - GATE is only included when the domains are both non-blank and do not 
  4860.     match.
  4861.   - Presence of a GATE or MSGID/REPLY/MSGTO combination does not exclude 
  4862.     INTL, FMPT, TOPT.  And it won't until somebody declares them obsolete in 
  4863.     favor of GATE/etc.  A little redundancy won't hurt too much, whereas a 
  4864.     message not getting to its destination might.
  4865.   - At the moment, I don't read origins to help find the originating node.  
  4866.     This is due to laziness, not an actual decision, although I don't really 
  4867.     trust origins anyway.
  4868.   - I do not intend to support EID and RID.  MSGID and REPLY do the job 
  4869.     better and easier.
  4870.   - I don't know if I'm doing GATE right.  I don't know what the actual 
  4871.     message (binary header) should be addressed to.
  4872.  
  4873.  
  4874. Datestamps
  4875. ----------
  4876. Falcon supports two styles, configurable at run-time by the sysop.
  4877.  
  4878.     SEAdog:    "Wkd dd Mmm yy hh:mm"    ie. "Tue  1 Jan 91 01:23"
  4879.     Fido 11w:  "dd Mmm yy  hh:mm:ss"    ie. "01 Jan 91  01:23:45"
  4880.  
  4881.  
  4882.  
  4883. 17.  Yet to Come
  4884. ================
  4885.  
  4886.  o  The setup needs to be modified into a server-program/client-program
  4887.     arrangement.  You can probably run a multi-line system with Falcon, but
  4888.     there is no explicit support for it.  I've tried to make message-saving
  4889.     robust enough to work with a multi-line setup, but two users saving a
  4890.     message at exactly the same time, give or take a quarter second, could 
  4891.     probably still mess things up.  Also, the message area stats could be
  4892.     obsolete occasionally for one line (actually, this is standard behaviour
  4893.     for some programs, but I'd rather do it right when I get to it).  
  4894.     Therefore a server is required to track the number of messages and write-
  4895.     access to areas, not to mention other stuff line linking the lines for 
  4896.     chats and so on.  I've done some work on this, but none of it is actually 
  4897.     in the program you have.
  4898.  
  4899.  o  english.bbs is not complete.  One time, when I was less busy, I started
  4900.     exporting strings from the program into this language file, which could
  4901.     then be replaced later with a different language.  However, things came
  4902.     up and I only got a small amount of the text transferred.  I'll work
  4903.     on it later.  It's probably just as well, since the text came out of
  4904.     what is probably the only source file which doesn't change much anymore.
  4905.  
  4906.  o  Aliases or Alias message areas.  I'll either add an overall-alias to
  4907.     the user record, or perhaps just have Opus-style alias areas, where the
  4908.     user has the ability to enter the From: name of a message.  
  4909.  
  4910.  
  4911.  
  4912. 18.  ICK!  BUGS!  (And other caveats)
  4913. =====================================
  4914.  
  4915. Some known bugs╣ and caveats as of 17 Sep 91:
  4916.  
  4917.   - Don't ARun the program under 2.0.  ARun, I think only with the NOIO
  4918.     option set, messes up if the program tries to call the Execute()
  4919.     function.  Messes up, as in Gurus.  This is an ARun thing, not a
  4920.     Falcon thing, but I thought you should know.
  4921.   - Because of the ^A kludge lines written out when an echo or matrix
  4922.     message is saved, U)pdating such messages is currently not at all
  4923.     safe to do.  Regular users are banned from doing it, and you should
  4924.     not do it either.  I'm going to have to find some way to work
  4925.     around this.  For the time being, you can do this if you need to
  4926.     edit an echo or matrix message:  start a new message (enter or
  4927.     reply), import (^Q^F) the ???.msg file of the message to be updated,
  4928.     paste it in, kill the header and kludge lines (don't worry, the 
  4929.     unprintable bits of the binary header didn't get read in), make any 
  4930.     changes, save it, and delete the original.  It's messy, but it has 
  4931.     the desired effect.  If you're calling from remote, just ASCII 
  4932.     capture the message and re-upload it instead of importing it.
  4933.   - The first mouse click on the Falcon screen is supposed to be absorbed
  4934.     (as in MicroEmacs) so that the window can be activated without
  4935.     messing anything up.  Sometimes the first click doesn't need to be
  4936.     absorbed, though, and that can lead to annoyance when your it-should-
  4937.     be-noticed-damn-it click doesn't do anything.  But no harm is done.
  4938.   - Not really a bug, but the Bytes/sec field in an XPR _send_ can be
  4939.     awfully high, at least at first.  This is because the output is
  4940.     buffered, and the entire first block _seems_ to XPR to have been 
  4941.     sent out in the blink of an eye.  So we're talking about 1024 
  4942.     bytes/sec on a 2400 baud transfer in the first block.  It'll smooth
  4943.     out as more blocks are sent, but it'll always be high.  The after-
  4944.     transfer CPS rates shown underneath a terminal transfer and in the
  4945.     S)tatus command for a BBS transfer are more accurate.  Unless you
  4946.     want clunky & chunky Zmodem transfers, this one won't be "fixed".
  4947.   - For some reason I haven't figured out yet (obviously), FTerm sometimes
  4948.     misses a short block of characters (like 5-10).  Beats me why, but
  4949.     then again, I'm not really here to write a terminal anyway.
  4950.   - Download limits don't actually do anything (download capability is
  4951.     instead based on time).  I no longer like the way I was originally
  4952.     going to do them, so they don't do anything just now.
  4953.   - Falcon disables DOS requesters so that disk-full errors and the like 
  4954.     will simply return an error to Falcon without making it hang while it 
  4955.     waits for a gadget click from the user.  This is good, because it means 
  4956.     your BBS will never lock up, but it's bad because a software error will 
  4957.     always go straight to the blinking red alert instead of possibly going 
  4958.     to the task-held-etc. requester.  In other words, even a tame error like 
  4959.     a divide by zero will take the entire system down.  Now, Falcon is 
  4960.     really quite clean, but it could die through no fault of its own, as 
  4961.     another program could be randomly trashing memory which happens to 
  4962.     belong to Falcon.  Just so you know.  There's nothing to be done, 
  4963.     really.  It's a problem every BBS program has.
  4964.  
  4965.  
  4966. ╣ Some bugs are mentioned because they may be a while in being fixed.
  4967.   The rest are just to inform the new sysop of what I'm aware of.
  4968.