home *** CD-ROM | disk | FTP | other *** search
/ PC-Online 1998 February / PCOnline_02_1998.iso / filesbbs / dos / nbeta087.exe / NANOBBS.DOC < prev    next >
Encoding:
Text File  |  1996-10-27  |  228.1 KB  |  6,747 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.      ▄█████▄  ▄█████▄  ▄█████▄   ▄████▄  ▄█████▄  ▄█████▄    ▄████▄
  10.      ▄▄▄ ▀███ ▄▄▄ ▀███ ▄▄▄ ▀███ ▄▄▄ ▀███ ▄▄▄  ██▀ ▄▄▄  ██▀ ▄▄▄  ▀▀▀
  11.      ███  ███ ███  ███ ███    ███ ███  ███ ██████▄  ██████▄    ▀████▄
  12.      ███  ███ ████████ ███    ███ ███▄ ███ ███  ███ ███  ███ ▄▄▄  ███
  13.      ███  ███ ███  ███ ███    ███  ▀████▀  ██████▀  ██████▀    ▀████▀
  14.  
  15.                 NanoBBS 2.00
  16.             Copyright 1993-1996 Whirlwind Software
  17.                  All Rights Reserved
  18.  
  19.              Programs and Documentation
  20.                      by
  21.                   Gerald T. Albion
  22.  
  23.                - Additional Code by -
  24.               Mark Dignam and Mark May
  25.  
  26.                   - Beta Testers -
  27.           None!  Beta Team applications now being accepted.
  28.  
  29.         - Numerous Helpful Suggestions Provided by -
  30.             Allen Walker  Patrick Wilson
  31.                Ryan Clifford  Brent Boudreau
  32.  
  33.                 - This product uses -
  34.      JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner,
  35.                    Mats Birch, Mats Wallin.
  36.                    ALL RIGHTS RESERVED.
  37.  
  38.                 - Special thanks to -
  39.              The users of THC BBS, Victoria, BC
  40.       for their endless patience and priceless assistance in the
  41.                development of UFO and NanoBBS.
  42.  
  43.          This document contains references to many trademarks.
  44.          Whirlwind Software acknowledges ownership of all such
  45.              trademarks by their respective owners.
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.     NanoBBS 2.00 Documentation                Page 01
  61.  
  62.     CONTENTS
  63.  
  64.     Introduction  ........................................
  65.     Version Numbering  ...................................
  66.     System Requirements  .................................
  67.     Setting Up NanoBBS  ..................................
  68.       - 10 Step Installation  ............................
  69.       - Command Line Switches  ...........................
  70.     The Configuration File    ..............................
  71.     Message Areas  .......................................
  72.       - Examples  ........................................
  73.       - Keyword Reference  ...............................
  74.     File Areas  ..........................................
  75.       - Examples  ........................................
  76.       - Keyword Reference  ...............................
  77.     Doors  ...............................................
  78.     The Black Art of Batch File Writing  .................
  79.     NanoBBS Utility Programs  ............................
  80.     External Files    ......................................
  81.       - Various Configuration Files  .....................
  82.       - FILES.BBS  .......................................
  83.       - Semaphores    ......................................
  84.       - ASCII/ANSI/RIP files in /BBS/MISC  ...............
  85.       - NanoCHAT external files  .........................
  86.     Keys While The User Is Online  .......................
  87.     A Tour of the WFC (Waiting For Call) screen  .........
  88.     A Tour of the user editor  ...........................
  89.     A Tour of NanoBBS's canned main menu interface .......
  90.     Language Files - Customizing almost Everything!  .....
  91.     Embedded Colour Commands  ............................
  92.     NanoCHAT - Setting up NanoBBS as a chat system    ......
  93.     Glossary  ............................................
  94.     Contact Information  .................................
  95.     The Trouble with Trouble Reporting ...................
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.     NanoBBS 2.00 Documentation                Page 02
  121.  
  122.  
  123.     ╔═╦═══════════════════════════════════╦═╗
  124.     ║ ║ Introduction:  What -is- NanoBBS? ║ ║
  125.     ╚═╩═══════════════════════════════════╩═╝
  126.  
  127.  
  128.     NanoBBS is a highly configurable BBS package.  Its features
  129.     include:
  130.  
  131.     - User-visible output is configurable via language files
  132.     - UFO, a powerful scripting language with access to virtually
  133.         all system and user variables
  134.     - Built-in NanoCHAT, a teleconferencer based on Whirlwind's
  135.       TommCHAT teleconference door.  You don't pay extra for
  136.       multiuser chat with NanoBBS!
  137.     - Your choice of *.MSG, Squish, or JAM message bases
  138.     - Up to 65535 message areas and 65535 file areas
  139.     - Full internal support for CD-ROMs including a fast
  140.         copy-to-temporary-file function and alternate FILES.BBS
  141.         directories
  142.     - Users can embed colours in messages
  143.     - An internal full screen message editor
  144.     - High speed file searching and new-file scans
  145.     - Works up to 115200 bps with or without a FOSSIL
  146.     - Convenient internal user editor
  147.     - Sysop-definable time limits by access level
  148.     - Account expiry can be set for any date
  149.     - Doors can be age-restricted, no worries about minors playing
  150.         adult doors!
  151.     - File areas and message bases can be restricted by age - give
  152.         users adult access on their 21st birthday automatically!
  153.     - Message bases can be restricted by gender, for "ladies only"
  154.         echoes etc.
  155.     - Users may logon with real name, pseudonym or user number,
  156.         whichever is easiest!
  157.     - New User Password and System Password features add virtually
  158.         impenetrable extra security to private systems!
  159.     - SysOp can select between a canned hardcoded BBS or build a
  160.         completely new one using UFO scripting
  161.     - Lists (file areas, message areas, users, etc) can be
  162.         automatically displayed in one, two or three columns
  163.     - Multi-node aware and Desqview friendly!  Node numbers can even
  164.         be passed to doors!
  165.  
  166.  
  167.     APPEARANCE: IF UNIQUENESS IS IMPORTANT TO YOU!
  168.  
  169.     Although NanoBBS excels in many areas, it is designed first to
  170.     give its sysop the maximum flexibility in configuring the
  171.     function and appearance of the BBS.  The UFO scripting language
  172.     allows you to build entire menus and call upon virtually all
  173.     functions of the BBS from within a text file!  And, the messages
  174.     that would normally be hardcoded in other BBSes are located in a
  175.     RAM-based language file which can be modified or totally
  176.     rewritten as the SysOp sees fit!  What's more, NanoBBS does not
  177.     require an ANSI driver like so many other lesser BBSes, in fact
  178.  
  179.  
  180.     NanoBBS 2.00 Documentation                Page 03
  181.  
  182.     it doesn't even need separate ANSI and ASCII files for system
  183.     text files, although it does allow the separate files.    If a
  184.     user has ANSI turned off, the BBS can strip ANSI codes on the
  185.     fly, and even expand horizontal ANSI cursor movements into
  186.     spaces or backspaces as needed!  Of course, automatic ANSI
  187.     detection is standard and can be turned off if desired!  Random
  188.     welcome screens are also a supported standard feature!    And a
  189.     comprehensive RIPScrip suite is built into the UFO script
  190.     language and in the system language files, so that you can make
  191.     RIPScrip screens in plain English without buying an expensive "Rip
  192.     Draw" type of program.  And, there are forty sysop-definable
  193.     sysop keys for ultimate convenience!
  194.  
  195.     SECURITY: TAKE CONTROL OF YOUR BBS!
  196.  
  197.     NanoBBS is also designed with security in mind, with NUPs and
  198.     system passwords, and the ability to restrict message areas
  199.     based on age and sex, and file areas based on age.  These
  200.     features alone make NanoBBS ideal for an adult BBS or an
  201.     exclusive private system, but once you've moulded NanoBBS's form
  202.     and performance to your ideal image you'll want to put it online
  203.     for everyone to use!  The BBS also supports "expiring" accounts
  204.     which allow a time-limited access level, which takes all the
  205.     work out of keeping track of accounts on pay systems!  You can
  206.     set accounts to expire anywhere from a day to 50 years in the
  207.     future, or you can have no expiry date at all! You can also
  208.     select which questions in the new-user questionnaire are
  209.     required and which ones are optional, and even which ones will
  210.     be asked at all!  All file areas can have a different directory
  211.     set for uploads than for downloads, allowing the sysop to screen
  212.     uploads in private before making them available to users!  This
  213.     prevents pirated programs from being distributed on your BBS
  214.     without your knowledge!  There are also "barricades" which let
  215.     you unobtrusively and judiciously remove certain individuals
  216.     from certain message areas without otherwise lowering anyone's
  217.     access.  A programmable "trashcan" and "message censor" round out
  218.     the list of features designed to protect you and your BBS from
  219.     abuse!
  220.  
  221.     HIGH SPEED FILE SECTIONS!
  222.  
  223.     NanoBBS is also designed with very large file sections in mind!
  224.  
  225.     With the author's own BBS totalling over 2 gigs online, the
  226.     problems of quickly finding and accessing files on a large
  227.     system are all too evident.  So, a number of special caching
  228.     routines and high-speed file indices have been implemented to
  229.     give the maximum search and retrieval speed possible!  If you
  230.     run a small or average BBS, searches will be nearly
  231.     instantaneous.    The author's BBS has some 25,000 files and any
  232.     one can be located in seconds!
  233.  
  234.     In addition, you can set any file area to be a CD-ROM area!  You
  235.     can set a directory for FILES.BBS that is separate from the CD
  236.     so that you will be able to remove files that you don't want
  237.     users to access, or change the descriptions!  Downloads from
  238.  
  239.  
  240.     NanoBBS 2.00 Documentation                Page 04
  241.  
  242.     CD-ROM areas are accomplished by first copying the file(s) from
  243.     the CD to a temporary directory, to minimise the problems of
  244.     speed and system resource usage that arise from directly
  245.     downloading from a CD.    SysOps who want to preview a CD without
  246.     taking the BBS down can hit a "CD OUT" key at the wait-for-call
  247.     screen, and immediately all CD file areas are shut off, allowing
  248.     you to change the CD and examine another one without worrying
  249.     about a user trying to access a file on the one you just took
  250.     out...
  251.  
  252.     Of course, file upload/download ratios by kilobyte are also
  253.     supported, giving you complete control over file leeches!
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.     NanoBBS 2.00 Documentation                Page 05
  301.  
  302.     ╔═╦═══════════════════╦═╗
  303.     ║ ║ Version Numbering ║ ║
  304.     ╚═╩═══════════════════╩═╝
  305.  
  306.     NanoBBS version numbers can be used to distunguish one version
  307.     from another in the following ways:
  308.  
  309.                      1.00a
  310.                      | |||
  311.                      | |||
  312.          Major Revision ---------' |||
  313.          Minor Revision -----------'||
  314.          Maintenance Release -------'|
  315.          Bug Fix --------------------'
  316.  
  317.     So, for example, 2.00a differs from 1.00a in that 2.00a is a
  318.     Major Revision, for example the structure of one or more data
  319.     files has changed, or some new feature or set of features has
  320.     been added that drastically improves or changes NanoBBS's
  321.     appearance and function.
  322.  
  323.     Likewise, 1.10a is different from 1.00a in that 1.10a has new
  324.     features, for example a new file searching mode or a new message
  325.     base format.
  326.  
  327.     1.02a is different from 1.00a in that 1.02a is a maintenance
  328.     release.  This means some improvement to the existing function
  329.     of the BBS, for example the reduction of memory usage for a
  330.     particular function or the improvement in the speed of some part
  331.     of the BBS.
  332.  
  333.     1.00b is different from 1.00a in that 1.00b contains fixes for
  334.     bugs that existed in 1.00a.
  335.  
  336.     The "Maintenance Release" part of the version number is always
  337.     an even digit (0, 2, 4, 6, or 8) if the version is a full public
  338.     release of the software, and is always odd if the version is a wide
  339.     beta or a private beta.  Thus, 1.14 is an official release, whereas
  340.     1.15 is a beta that will eventually become 2.00.
  341.  
  342.     All these are just examples.  As NanoBBS evolves, there will no
  343.     doubt be many different version numbers.
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.     NanoBBS 2.00 Documentation                Page 06
  361.  
  362.     ╔═╦═════════════════════╦═╗
  363.     ║ ║ System Requirements ║ ║
  364.     ╚═╩═════════════════════╩═╝
  365.  
  366.     - An 80286 or better IBM compatible computer with at least 512k RAM
  367.     - At least 20 megabytes of hard disk space (recommended)
  368.     - A modem, any speed (at least 14400 recommended)
  369.     - A standard serial port, or a multi-serial board with a special
  370.         FOSSIL driver
  371.     - A FOSSIL is NOT required! But is supported if you have it.
  372.     - A flat-ASCII text editor such as QEdit or the DOS full screen
  373.         editor is a must for editing configuration files
  374.     - An external Message Editor such as MsgEd or GoldEd is
  375.         recommended
  376.     - An external File Area Manager such as FEBBS or Fido-Fam is
  377.         recommended
  378.     - A RAM Disk of at least 400k for each node is highly
  379.         recommended for swapping.
  380.     - If you have Multi-user chat, you should also have 256k of ramdisk
  381.         plus 64k for each node.  Define lots of files too.
  382.  
  383.     NanoBBS uses 16-bit 80286 code.  It will not run on an 8088 or
  384.     other 8-bit machine.
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.     NanoBBS 2.00 Documentation                Page 07
  423.  
  424.     ╔═╦════════════════════╦═╗
  425.     ║ ║ Setting up NanoBBS ║ ║
  426.     ╚═╩════════════════════╩═╝
  427.  
  428.     NanoBBS can be run "out of the box" by taking a few very simple
  429.     steps.
  430.  
  431.     OK, if you're totally new at this, then maybe the steps won't seem
  432.     all that simple, so I will try and make this as painless as
  433.     possible.  Because it is impossible for me to predict the numerous
  434.     configurations of computers, software, and paths that NanoBBS will
  435.     be installed on, I can only give general installation instructions.
  436.  
  437.     If you find you just can't get NanoBBS going no matter what you do,
  438.     first re-read these instructions and make sure you haven't missed
  439.     something, then if that doesn't succeed ask someone else who is
  440.     running NanoBBS if they have had a similar problem and how they
  441.     solved it.  If that doesn't work (or if you can't find someone else
  442.     who runs the software successfully) then feel free to drop me a
  443.     line by netmail or on my BBS (see the "Contact Information" at
  444.     the end of this document).  Be specific about what's happening
  445.     with your system - I may ask for copies of your config files
  446.     etc. To contact me, see the netmail address and BBS phone number
  447.     at the end of this file.
  448.  
  449.     If this is the first time you have installed NanoBBS, be warned
  450.     that NanoBBS will try to install itself in the C:\BBS directory.
  451.     You can move it to another directory after it is installed, but
  452.     you'll need to change the paths in all of your configuration
  453.     files if you do this.
  454.  
  455.     Before you install NanoBBS, make sure your system meets the
  456.     following minimum requirements:
  457.  
  458.         - You need a hard disk with at least several megs free.
  459.         - You need about 380 kilobytes of RAM free.  This is
  460.           inconsequential for most installations, but it might
  461.           be an issue if you are using a multitasker such as
  462.           DesqView.
  463.         - You need a FOSSIL driver, revision 5 or later.
  464.           Several common FOSSILs are X00, BNU, and OpusComm.
  465.           The FOSSIL must be installed and available before
  466.           NanoBBS is able to run.  Check your FOSSIL
  467.           documentation for installation instructions.
  468.         - You need to be running DOS, either MS-DOS or PC-DOS.    I
  469.           have received mixed reviews of NanoBBS's installability
  470.           under Win95 and OS/2 Warp, so your mileage may definitely
  471.           vary.  Good thing NanoBBS is shareware!  However, because
  472.           I don't use Win95 or Warp, I cannot offer support for
  473.           NanoBBS installations under these operating systems.
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.     NanoBBS 2.00 Documentation                Page 08
  483.  
  484.     ┌──────────────────────┐
  485.     │ 10 Step Installation │
  486.     └──────────────────────┘
  487.  
  488.      ┌───┐
  489.      │ 1 │ To install NanoBBS, just run INSTALL.EXE.  The install
  490.      └───┘ program will unpack the program files, and will then
  491.            determine whether it needs to also install the ASCII and
  492.            ANSI and RIP files, and whether it should install default
  493.            configuration files.  It will also install and compile the
  494.            language files.
  495.  
  496.            Once INSTALL is complete, you need to take the following
  497.            general steps, which will be explained in much greater
  498.            detail later in this manual...
  499.  
  500.      ┌───┐
  501.      │ 2 │ Edit NODE1.CTL (using an ASCII text editor or word
  502.      └───┘ processor in ASCII mode) to your specifications.  Set the
  503.            proper paths, com ports, baud rates, modem control and
  504.            response strings, default access levels, events, and
  505.            everything else that needs to be adjusted to your
  506.            requirements.  NODE1.CTL is the main configuration file
  507.            containing most of the general setup of the BBS.  See the
  508.            chapter titled "The Configuration File" for a complete
  509.            explanation of the use of this file.  Since NanoBBS is a
  510.            multi-line system, NODE2.CTL is also installed by the
  511.            INSTALL.EXE program.  Both control files are automatically
  512.            edited by the INSTALL.EXE program to fit the path you have
  513.            chosen for the BBS's "system" directory.
  514.  
  515.      ┌───┐
  516.      │ 3 │ Edit MSGAREA.CTL to your specifications.  MSGAREA.CTL is
  517.      └───┘ the file which defines your message areas.  Make sure to
  518.            specify correct paths, access levels, and to use the message
  519.            base type (Squish, JAM or *.MSG/Fido) which best suits your
  520.            needs.  And of course feel free to add or remove as many
  521.            message areas as you like; there can be up to 65,536 of
  522.            them!  See the chapter titled "Setting Up Message Areas" for
  523.            a complete explanation of this file.
  524.  
  525.      ┌───┐
  526.      │ 4 │ Edit FILEAREA.CTL to your specifications.  FILEAREA.CTL
  527.      └───┘ is the file which defines your file transfer areas.  As in
  528.            the message area file, make sure you specify all the right
  529.            paths and access levels.  Make sure all those paths exist
  530.            and that there is a FILES.BBS file in each one containing a
  531.            list of all the files in the area and their descriptions.
  532.            As with the message areas, there can be up to 65,536 file
  533.            areas!  See the chapter titled "Setting Up File Areas" for a
  534.            complete explanation of this file.
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.     NanoBBS 2.00 Documentation                Page 09
  543.  
  544.      ┌───┐
  545.      │ 5 │ Edit DOORS.CTL to your specifications.  DOORS.CTL is the
  546.      └───┘ file which defines your "Doors" or external programs which
  547.            are accessible by the users.  Doors are usually games but
  548.            they can also be interfaces to special databases, "expert"
  549.            advisory systems, call-back verifiers, or have any number of
  550.            other functions.
  551.  
  552.      ┌───┐
  553.      │ 6 │ Type CONFIG NODE1 at the DOS prompt and hit Enter.  This
  554.      └───┘ will convert the four files I just described into a form
  555.            that is more readily usable by NanoBBS.    This process is
  556.            called "compiling configuration".  If you already have files
  557.            in the file areas you have defined, then you must also type
  558.            BBS /F at the DOS prompt to create the file area indexes
  559.            that allow your callers to find files for downloading.
  560.  
  561.  
  562.      ┌───┐
  563.      │ 7 │ Once this is complete, if all the paths are correct (and
  564.      └───┘ they all exist) you should be ready to go.  Note that the
  565.            paths do not HAVE to all be defined; NanoBBS will warn you
  566.            wherever it cannot find a specified path.  Now, just type
  567.            BBS at the prompt and go through the new-user login
  568.            procedure.  Make an account for yourself.  Most sysops
  569.            traditionally make the first account in the system theirs;
  570.            that makes you user 0 (zero).
  571.  
  572.      ┌───┐
  573.      │ 8 │ Try logging in; you should be able to navigate the system
  574.      └───┘ as a new user right away.  Hit Alt-E to enter the user
  575.            editor and give yourself SysOp access (the access and keys
  576.            you have defined in NODE1.CTL for SysOp access) or better!
  577.  
  578.            Don't be surprised if NanoBBS says it can't find your
  579.            message areas and that it's trying to create them.  This is
  580.            normal the first time out, or whenever the message areas
  581.            don't actually exist yet.
  582.  
  583.      ┌───┐
  584.      │ 9 │ If you're only going to run one node, you can skip this
  585.      └───┘ step. If you run more than one node, you can run multiple
  586.            copies in the same system directory (the directory specified
  587.            by the SYSPATH statement in NODE1.CTL) but each copy has to
  588.            have its own config file.  So, for example, if you are
  589.            running two nodes, you should make a copy of NODE1.CTL and
  590.            call it NODE2.CTL (Or use the NODE2.CTL that is included and
  591.            edit it to fit your needs).  Edit NODE2.CTL so that its node
  592.            number, com port and modem settings match those of your
  593.            second node, and compile it by typing:
  594.  
  595.             CONFIG NODE2 /Q
  596.  
  597.            at the DOS prompt.  The /Q tells CONFIG to ignore the
  598.            MSGAREA.CTL, FILEAREA.CTL and DOORS.CTL files as these can
  599.  
  600.  
  601.  
  602.     NanoBBS 2.00 Documentation                Page 10
  603.  
  604.            be shared between the two nodes.  If you've just compiled
  605.            all these area files, you don't need to do it again until
  606.            you edit them.
  607.  
  608.            Repeat this procedure for as many nodes as you have.  If
  609.            your nodes are spread out across a LAN, make sure each one
  610.            specifies a local com port and that all the system and
  611.            similar paths point to the system directory on one central
  612.            machine.  Otherwise NanoBBS will start creating user log
  613.            files all over the LAN and the nodes won't be able to
  614.            communicate with each other.
  615.  
  616.     ┌────┐
  617.     │ 10 │ Now create the batch file(s) necessary to run the BBS.
  618.     └────┘ If you are running under DesqView or another multitasking
  619.            environment like OS/2, you should predefine special task
  620.            configurations for each node.  To run each node, you should
  621.            have a batch file for each one, and each node must be called
  622.            with a /C command line parameter specifying the compiled
  623.            configuration file that the node should use.
  624.  
  625.            This is all covered exhaustively in "The Black Art of Batch
  626.            Files", elsewhere in this manual.
  627.  
  628.     Once all of this is done, you should be able to run your BBS
  629.     reliably from your main BBS/Mailer batch file or by running your
  630.     multitasker (if its default macro calls the batchfiles for each
  631.     node).    You will, of course, want to customize the ASCII, ANSI
  632.     and RIP files in the MISC directory so that they reflect the
  633.     character and style of your BBS!
  634.  
  635.     ┌───────────────────────┐
  636.     │ COMMAND LINE SWITCHES │
  637.     └───────────────────────┘
  638.  
  639.     /F{filename.dat} builds the index files necessary for the speed
  640.        performance of NanoBBS's high-speed file finding functions.
  641.        Without running BBS /F, NanoBBS will still be able to find
  642.        files the old-fashioned way (by actually reading through
  643.        every line of the FILES.BBS files) but this process is much
  644.        slower. Once the index files are in place, NanoBBS will only
  645.        be able to find files which are listed in the indices.  This
  646.        means that newly-uploaded files won't be available until
  647.        BBS/F is run again. If you don't have a huge file section you
  648.        may be able to get away with running BBS /F each time NanoBBS
  649.        exits after each call, but on many systems this will take too
  650.        long and is better left to a nightly event.    The filename.dat
  651.        is the file name of the compiled file area file, usually
  652.        FILEAREA.DAT.
  653.  
  654.       If the filename is left off, the program assumes FILEAREA.DAT.
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.     NanoBBS 2.00 Documentation                Page 11
  663.  
  664.     /R This builds a special version of MASTER.FIL called CDROM.FIL.
  665.        CDROM.FIL lists all the files in all the areas you have marked as
  666.       "CDROM".  While CDROM.FIL is not used directly by the BBS, it is
  667.       "imported" into MASTER.FIL when you run BBS /F.  This way, you
  668.       need only index the CD-ROMs once - saving a great deal of time
  669.       whenever you need to re-index the whole file base.  This feature
  670.       is extremely useful if you have many CD-ROM drives or if your
  671.       CD-ROM drives are slow.
  672.  
  673.       Each time you add or change CD's, update the file area config
  674.       file and recompile it with MFB.  Then run BBS /R to index the
  675.       CD-ROM areas.  Then run BBS /F to incorporate the CD-ROM areas
  676.       into the main MASTER.FIL.
  677.  
  678.      ┌─────────────────────────────────────────────────────────────┐
  679.      │ If your users report mysterious bogus files in a FILES.BBS  │
  680.      │ listing, especially at the beginning, this is an indication │
  681.      │ that the File Indices have fallen out of sync with the      │
  682.      │ FILES.BBS.  The solution is to run BBS /F.               │
  683.      └─────────────────────────────────────────────────────────────┘
  684.  
  685.     /E Invokes the user editor.
  686.  
  687.     /T{time} indicates to NanoBBS that the mailer needs to be back
  688.       online in {time} minutes - this is used to force mail events.
  689.       If necessary, NanoBBS will adjust the user's time online and
  690.       advise her accordingly.
  691.  
  692.     /C{config.ext} will cause NanoBBS to load the compiled config file
  693.       specified.  If this is omitted, NODE1.DAT is assumed.  If no
  694.       extension is provided, .DAT is assumed.  So, BBS /Cnode2 would
  695.       run the BBS using NODE2.DAT which contains the parameters of
  696.       NODE2.CTL.
  697.  
  698.     /W causes NanoBBS to wait for a caller.
  699.  
  700.     /A causes NanoBBS to go into "NanoWatch" - a multi-node status
  701.        monitor.  From NanoWatch you can monitor the activity of up to
  702.        20 nodes, or log in locally with Alt-L, or enter the user editor
  703.        with Alt-E.
  704.  
  705.     /B specifies a baud rate.  This is used when passing off from a
  706.        mailer or other front end.  You should have a SPAWN.BAT or
  707.        similar batch file generated by your mailer which specifies,
  708.        among other things, this baud rate.    When this switch is
  709.        used, the connection is assumed already made and the BBS goes
  710.        directly to the logon procedure.
  711.  
  712.     If neither the /A or /B or /W switches are used, NanoBBS assumes
  713.     this means it is a local session - it will not use the modem at
  714.     all, but will get its input solely from your keyboard and will send
  715.     its output solely to your monitor.
  716.  
  717.     /S selects "stealth mode" - the user will not show up in caller
  718.        logs, or be visible in the multi-user chat system's "/S"
  719.        display. The user will still be able to participate in chat if
  720.        she wishes.    This should only be used by the sysop in local
  721.        logons.
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.     NanoBBS 2.00 Documentation                Page 12
  730.  
  731.     ╔═╦════════════════════════╦═╗
  732.     ║ ║ The Configuration File ║ ║
  733.     ╚═╩════════════════════════╩═╝
  734.  
  735.     COMPILING THE CONFIGURATION FILE
  736.  
  737.     NanoBBS uses a flat ASCII text file for system configuration, as
  738.     this approach provides the greatest flexibility and the ability
  739.     to add comments, so that you can rationalise your choices later.
  740.  
  741.     By default, NanoBBS uses the file NODE1.DAT - referring to the
  742.     fact that by default NanoBBS is node 1 of a multi-user system,
  743.     even if your BBS has only one line.
  744.  
  745.     To create NODE1.DAT, you must first compile NODE1.CTL with the
  746.     CONFIG.EXE program.  CONFIG reads the configuration file, line by
  747.     line, and compiles the text file into a fast machine-readable file
  748.     format and writes it out to a .DAT file.
  749.  
  750.     To make multiple nodes you need a config file for EACH node.
  751.     So, for example, if you have two nodes, you would first edit
  752.     NODE1.CTL to your specifications for Node 1, including the com
  753.     ports and the external events you want that node to process.
  754.     Then, make a copy of NODE1.CTL, and name the copy NODE2.CTL.
  755.     Now edit NODE2.CTL to the parameters required for Node 2,
  756.     including the com port, baud rate and so forth.
  757.  
  758.     Once this is complete, you must then run the CONFIG program once
  759.     for each config file.  It is worth noting that you can save some
  760.     time by only doing a "full" config on one node.  Allow me to
  761.     illustrate:
  762.  
  763.         C:\>config node1
  764.  
  765.         C:\>config node2 /q
  766.  
  767.     If you type these two commands at the dos prompt, CONFIG.EXE
  768.     will first compile NODE1.CTL into NODE1.DAT, and will also
  769.     configure the message area files, file area files and door
  770.     configuration files by calling the MMB.EXE, MFB.EXE and
  771.     MAKEDOOR.EXE programs for you.    The second command just compiles
  772.     NODE2.CTL into NODE2.DAT.  The /q parameter tells CONFIG.EXE not
  773.     to bother compiling the file areas and other files a second
  774.     time, which is unnecessary when these files are to be shared
  775.     between nodes - the normal multi-node operating mode.
  776.  
  777.  
  778.     SYNTAX OF THE CONFIGURATION FILE
  779.  
  780.     The configuration file itself is a plain ASCII text file with
  781.     one command per line.  "Commented" lines are ignored, as are
  782.     blank lines and lines which start with unrecognised words.  The
  783.     best way to comment out a line is to start the line with a
  784.     semicolon ";".  Several options (like WIDEOPEN) come commented
  785.     out by default; to activate such options you have to "uncomment"
  786.     them by deleting the leading semicolon.  The commands are not
  787.  
  788.  
  789.     NanoBBS 2.00 Documentation                Page 13
  790.  
  791.     case sensitive, but take care to type the text parameters (such
  792.     as the BBS name in the SYSTEMNAME line) exactly as you want
  793.     users to see them.
  794.  
  795.     Examples:
  796.  
  797.     ;This line is commented out.
  798.     This line is not.
  799.  
  800.     The sample configuration file is commented with explanations of
  801.     those commands which I do not consider self-evident, but I will
  802.     explain each one in depth here.  I'll include at least one
  803.     example for each one.
  804.  
  805.     ┌─────────────────────────────────────────────────────────────┐
  806.     │            General System Options              │
  807.     └─────────────────────────────────────────────────────────────┘
  808.  
  809.     The NODE parameter specifies which node number the BBS will use
  810.     for multi-user functions such as NanoCHAT.  If you are running a
  811.     one-line BBS this should be set to 1.
  812.  
  813.     Node        1
  814.  
  815.  
  816.     The SYSTEMNAME parameter is the name of your BBS as you want it
  817.     passed to doors in the DORINFO1.DEF file, and in other places
  818.     yet to be supported...
  819.  
  820.     SystemName    Whirlwind BBS
  821.  
  822.  
  823.     The SYSTEMCITY parameter is the location of your BBS; this
  824.     should be the city and state or country it is located in, e.g.
  825.     "Victoria, B.C." or "Peoria, Illinois" or "Paris, France".
  826.  
  827.     SystemCity    Victoria, B.C.
  828.  
  829.  
  830.     The SYSTEMPHONE parameter is your BBS's phone number.  If you're
  831.     running a multi-line BBS with more than one phone number, I see
  832.     no reason why you can't have a different number for each node.
  833.  
  834.     SystemPhone    604-361-4549
  835.  
  836.  
  837.     The SYSOP parameter is your name (or pseudonym).  This is the
  838.     name to which Feedback or and private message to "SYSOP" will be
  839.     addressed.  It is also used by the DORINFO1.DEF door file.
  840.  
  841.     Sysop        Tommy
  842.  
  843.  
  844.     The SHOWUPLOADER parameter tells NanoBBS to include the name of
  845.     the person who uploaded a file in that file's description. If the
  846.     SHOWUPLOADER keyword is commented out, NanoBBS will not
  847.  
  848.  
  849.     NanoBBS 2.00 Documentation                Page 14
  850.  
  851.     automatically append the line "Uploaded By: {UserName}" to file
  852.     descriptions that are uploaded by users.  By default this feature
  853.     is ON, i.e. users get public notice for uploads.  This is a
  854.     GoodThing(tm) since it encourages uploading.
  855.  
  856.     showuploader
  857.  
  858.  
  859.     This is the definition of the "Spinny Cursor" used in long
  860.     message searches.  This example gives a classic "twirling stick"
  861.     spinning cursor which rotates counter-clockwise.  This can be up
  862.     to 16 characters long.
  863.  
  864.     Spin        \-/|
  865.  
  866.  
  867.     This determines whether you want to enable multi-user chat
  868.     features.  This should be commented out if you are running a
  869.     1-line system or if you do NOT want to use multi-node chat!
  870.  
  871.     MultiNode
  872.  
  873.     ┌─────────────────────────────────────────────────────────────┐
  874.     │              Paths and Filenames              │
  875.     └─────────────────────────────────────────────────────────────┘
  876.  
  877.     The SYSPATH is the path to the BBS executables, language files,
  878.     user log, and all miscellaneous system files.  The INSTALL.EXE
  879.     may automatically change this (and several other paths derived
  880.     from it) to the one you select when you first install NanoBBS.
  881.     Note; if this is missing the BBS will try to read everything
  882.     from the directory where the executable lives.    I have not
  883.     tested this eventuality extensively but it does seem to work for
  884.     me, however I wouldn't recommend relying on it.  Use this
  885.     parameter!
  886.  
  887.     SysPath     C:\BBS\
  888.  
  889.  
  890.     This is the path to the .ASC, .ANS, .RIP and compiled UFO (.BBS)
  891.     files.    It is also the path to the NanoCHAT help files and the
  892.     NanoCHAT /m and /i info files and messages.
  893.  
  894.     TextPath    C:\BBS\MISC\
  895.  
  896.  
  897.     The SWAPPATH is the path to a directory where you want Swapping
  898.     files to go.  Each time NanoBBS runs a door or other external
  899.     program such as an archiver, it tries to swap itself out to EMS
  900.     (if the SwapEMS parameter is active) or to disk.  This sets the
  901.     path for disk swaps.  If you have enough memory but not EMS, use
  902.     a RAM disk - it is still much faster than swapping to disk!
  903.  
  904.     SwapPath    F:\
  905.  
  906.     SwapEMS
  907.  
  908.  
  909.     NanoBBS 2.00 Documentation                Page 15
  910.  
  911.     This is the path to the IPC files.  If you don't use multi-user
  912.     chat you needn't concern yourself with this, however if you do,
  913.     then this should DEFINITELY be a RAM disk or a directory
  914.     thereof!
  915.  
  916.     IPCPath     F:\
  917.  
  918.  
  919.     The TEMPPATH is a directory where files from a CD-ROM are copied
  920.     to before downloading.    Most CD-ROMs are very slow compared to
  921.     hard drives, so the user will find downloads faster and you will
  922.     run less risk of file sharing problems if CD-ROM downloads are
  923.     copied to a temporary disk directory and downloaded from there
  924.     instead.  If you're running a multi-node BBS, you should have a
  925.     separate TEMPPATH for each node on your system.  This is because
  926.     the BBS deletes the entire contents of the temporary directory
  927.     after each logoff, to avoid filling your hard disk with files
  928.     from the CD.
  929.  
  930.     TempPath    C:\TEMP1\
  931.  
  932.     The SCANPATH is the path to the individual user scan files.
  933.     NanoBBS lets users select which message areas to include in QWK
  934.     packets and global new-scans, and stores the list of included
  935.     areas in a file for each user.    Since a great many users could
  936.     end up using this feature, a separate directory is necessary for
  937.     these Scan files.
  938.  
  939.     ScanPath    C:\BBS\MSGSCAN\
  940.  
  941.     NanoBBS allows you to completely build a BBS from scratch in the
  942.     UFO scripting language.  Prior to version 1.11, this was
  943.     accomplished (and largely under-documented) by placing UFO
  944.     tokens in the LOGO and WELCOME files, bypassing the standard
  945.     canned interface.
  946.  
  947.     Starting with version 1.11, NanoBBS now supports two UFO files
  948.     which actually override the logon process and the canned main
  949.     menu (from which all other canned functions are launched).  The
  950.     STARTFILE is intended to replace the logon procedure: it should
  951.     contain keywords to first identify your BBS and greet the user,
  952.     and then prompt for a username and a password, followed by a
  953.     [loguser] keyword to actually log the user on.    You can invoke
  954.     the canned logon procedure from here or the canned new-user
  955.     questionnaire (see UFO.DOC for information on the keywords
  956.     needed to accomplish this) or use UFO to write completely
  957.     original logon protocols!  Similarly, the MAINFILE replaces the
  958.     Main Menu.  It is called right after the logon procedure (or the
  959.     STARTFILE if you're using one).  The MAINFILE might be something
  960.     as simple as a data "answering machine" in which the only option
  961.     is sysop feedback, or it could be a totally custom full-featured
  962.     BBS, making use of canned features and your own custom versions
  963.     as you see fit!
  964.  
  965.     If these keywords are active, the files are used, otherwise
  966.     NanoBBS uses the canned equivalents.  If you want to run a
  967.  
  968.  
  969.     NanoBBS 2.00 Documentation                Page 16
  970.  
  971.     canned NanoBBS, leave these commented out!
  972.  
  973.     StartFile matrix.bbs
  974.     MainFile  mainmenu.bbs
  975.  
  976.     ┌─────────────────────────────────────────────────────────────┐
  977.     │              Modem Configuration              │
  978.     └─────────────────────────────────────────────────────────────┘
  979.  
  980.     You can embed special functions in all the modem commands.  In the
  981.     modem strings below, "|" (pipe) means carriage return, "~" (tilde)
  982.     means delay 1 second, "'" (apostrophe) means delay 1/20 second, "^"
  983.     (caret) means DTR up and "v" means DTR down...
  984.  
  985.     The COMPORT parameter specifies the com port, e.g. 1 for COM1:. It
  986.     goes without saying that this should be different for each node.
  987.     If this is set to 0 only local logons will be possible.
  988.  
  989.     ComPort     1
  990.  
  991.     SLOWBAUD is the slowest baud rate allowed.  I run a pretty
  992.     easygoing system so I allow all baud rates, but you may not want
  993.     slower modems tying up your shiny new V.34, so you can set a
  994.     minimum (say, 2400 or 9600) using this command.  If this command is
  995.     commented out, all baud rates are allowed.  This example allows
  996.     baud rates as low as 300.
  997.  
  998.     SlowBaud    300
  999.  
  1000.     INITBAUD is the "default" baud rate; it is the baud rate to
  1001.     initialise the modem and wait for a call.
  1002.  
  1003.     InitBaud    38400
  1004.  
  1005.     INIT is simply the string to initialise the modem.  If your modem
  1006.     has an NV-RAM feature and is properly configured you should only
  1007.     need to use "ATZ|".  This example does just that but also forces
  1008.     the speaker off.  Consult your modem manual for an explanation of
  1009.     its commands!
  1010.  
  1011.     Init        ATZ|~ATM0|
  1012.  
  1013.       Here's a modem init string which you might find suitable if your
  1014.       modem doesn't have an NV-RAM.  In order of appearance, its
  1015.       function is to: Turn the speaker off, turn on "echoing" of modem
  1016.       commands, set verbose result code reporting, turn on normal
  1017.       carrier detection (many modems default to "carrier detect ON all
  1018.       the time no matter what the real carrier state is"), and set the
  1019.       modem to hang up if DTR is dropped.
  1020.  
  1021.       Init          ATM0E1X4&C1&D2|
  1022.  
  1023.     INITRETRY is the number of times to attempt initialisation
  1024.     before returning a "Can't initialise the modem" error.
  1025.  
  1026.     InitRetry    5
  1027.  
  1028.  
  1029.     NanoBBS 2.00 Documentation                Page 17
  1030.  
  1031.     RING is the string returned by the modem when the line rings.
  1032.     When NanoBBS detects this string from the modem while it's
  1033.     waiting for a call, it gets ready to answer the phone...
  1034.  
  1035.     Ring        RING|
  1036.  
  1037.     RINGS is the number of rings to wait before answering - 1 will
  1038.     answer on the first ring etc.  If you have Caller ID this MUST be
  1039.     set to 2 or more, so that the CID data stream can come through.
  1040.     Otherwise 1 is the best choice for most direct dial-in lines.
  1041.  
  1042.     Rings        2
  1043.  
  1044.     ANSWER is the command to send to the modem to cause it to answer
  1045.     the phone.
  1046.  
  1047.     Answer        ATA|
  1048.  
  1049.     This is the string returned by modem when the modem has
  1050.     initialised OK.  When NanoBBS tries to initialise the modem it
  1051.     expects to get this string back; if it doesn't then there may be
  1052.     something wrong.
  1053.  
  1054.     OK        OK|
  1055.  
  1056.     NOCARRIER is the string returned by modem when an incoming
  1057.     call's connection fails before NanoBBS gets out of waiting-for
  1058.     caller mode.  If it receives this it will immediately go back to
  1059.     waiting for a call.
  1060.  
  1061.     NoCarrier    NO CARRIER|
  1062.  
  1063.     INITTIME is the number of minutes between each re-initialisation
  1064.     of the modem.  This should be done periodically just to make
  1065.     sure all is well with the modem.  Every 10 or 20 minutes is
  1066.     fine.
  1067.  
  1068.     inittime    10
  1069.  
  1070.     If uncommented, NOFOSSIL will force NanoBBS to not use a FOSSIL
  1071.     even if one is loaded.    If you have a FOSSIL loaded, NanoBBS will
  1072.     try to use it unless you use this keyword!  When this keyword is in
  1073.     effect, NanoBBS uses its own serial driver.
  1074.  
  1075.     nofossil
  1076.  
  1077.     The PORT keyword defines the address and IRQ of com ports used by
  1078.     the internal serial driver.  You can define ports 1 thru 16.  The
  1079.     first parameter after PORT is the com port number (one-based!),
  1080.     followed by the hexadecimal port address, followed in turn by the
  1081.     IRQ.  The defaults are given here.  I do not recommend using COM5
  1082.     and up with these defaults, and you should check the hardware
  1083.     settings for COM3 and COM4 carefully before you use this table
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.     NanoBBS 2.00 Documentation                Page 18
  1090.  
  1091.     as-is.    These settings are only used by NanoBBS's internal comm
  1092.     routines and have no effect if you are using a FOSSIL.
  1093.  
  1094.     Port 1 03F8 4
  1095.     Port 2 02F8 3
  1096.     Port 3 03E8 4
  1097.     Port 4 02E8 3
  1098.     Port 5 0000 0
  1099.     Port 6 0000 0
  1100.     Port 7 0000 0
  1101.     Port 8 0000 0
  1102.     Port 9 0000 0
  1103.     Port 10 0000 0
  1104.     Port 11 0000 0
  1105.     Port 12 0000 0
  1106.     Port 13 0000 0
  1107.     Port 14 0000 0
  1108.     Port 15 0000 0
  1109.     Port 16 0000 0
  1110.  
  1111.     ┌─────────────────────────────────────────────────────────────┐
  1112.     │             Baud Rate Definitions              │
  1113.     └─────────────────────────────────────────────────────────────┘
  1114.  
  1115.  
  1116.     In the baud rate definitions, the SET parameter selects the baud
  1117.     rate to reset the modem port to upon connection (this should be
  1118.     set to your locked baud rate for all bauds if your port is
  1119.     locked).  The RATE parameter determines the rate used for
  1120.     calculating transfer times etc., the DISPLAY parameter is the
  1121.     rate as shown to the user, and the CONNECT parameter is the
  1122.     modem response string by which NanoBBS can recognise the baud
  1123.     rate.
  1124.  
  1125.     There should be one baud rate defined for each one that your
  1126.     modem supports.  For example, a 2400 baud modem should be set up
  1127.     to recognize 300, 1200 and 2400 baud callers, even if you won't
  1128.     be allowing 300 baud.  In fact, especially if you won't be
  1129.     allowing 300 baud; after all you want the BBS to be able to tell
  1130.     the prohibited baud rates when it sees them!
  1131.  
  1132.     Each baud rate is defined with a BAUD parameter followed by
  1133.     several subparameters and then terminated with an END.    The
  1134.     following examples illustrate:
  1135.  
  1136.     Baud 0
  1137.         Set    0
  1138.         Rate    300
  1139.         Display 300
  1140.         Connect CONNECT|
  1141.     end
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.     NanoBBS 2.00 Documentation                Page 19
  1150.  
  1151.     Baud 1
  1152.         Set    0
  1153.         Rate    1200
  1154.         Display 1200
  1155.         Connect CONNECT 1200|
  1156.     end
  1157.  
  1158.     Baud 2
  1159.         Set    0
  1160.         Rate    2400
  1161.         Display 2400
  1162.         Connect CONNECT 2400|
  1163.     end
  1164.  
  1165.     Baud 3
  1166.         Set    0
  1167.         Rate    4800
  1168.         Display 2400
  1169.         Connect CONNECT 2400/MNP5
  1170.     end
  1171.  
  1172.     ; and so on until...
  1173.  
  1174.     Baud 11
  1175.         Set    0
  1176.         Rate    28800
  1177.         Display 28800
  1178.         Connect CONNECT 28800
  1179.     end
  1180.  
  1181.     ; The sample NODE1.CTL has all the baud rate definitions needed
  1182.     ; by a system served by a 28800 V.FC modem.
  1183.  
  1184.     ┌─────────────────────────────────────────────────────────────┐
  1185.     │             Time Limits                  │
  1186.     └─────────────────────────────────────────────────────────────┘
  1187.  
  1188.     USRSTART is the starting time of the period when NanoBBS will
  1189.     answer the phone.  This and USREND are useful for part-time
  1190.     BBSes.    USREND is the ending time; after this NanoBBS will
  1191.     indicate that the phone has rung but will not answer.  If these
  1192.     times are the same, then users are always allowed.
  1193.  
  1194.     UsrStart    00:00
  1195.     UsrEnd        00:00
  1196.  
  1197.  
  1198.     PAGESTART and PAGEEND define the starting and ending times when
  1199.     users will be allowed to make noise on your speaker by paging
  1200.     you.  Outside these hours, the user will still be allowed to
  1201.     page, will still be asked for a reason, will still be logged,
  1202.     and the blinking "Paged" will still appear on the SysOp bar, but
  1203.     no sound will be made!    Very useful for sysops who have to sleep
  1204.     in the same room with the computer!
  1205.  
  1206.     PageStart    08:00
  1207.     PageEnd     23:00
  1208.  
  1209.     NanoBBS 2.00 Documentation                Page 20
  1210.  
  1211.     LOGONTIME is the amount of time given to users to complete a
  1212.     logon after connection.  This is in minutes.
  1213.  
  1214.     LogonTime    10
  1215.  
  1216.     TIMEOUT is the number of minutes NanoBBS should wait at a prompt
  1217.     without any keyboard input from the user before it "times out"
  1218.     and terminates the session.
  1219.  
  1220.     Timeout     3
  1221.  
  1222.  
  1223.     These are the maximum numbers of minutes which can be deposited
  1224.     and withdrawn from the time bank.
  1225.  
  1226.     max withdraw 60
  1227.     max deposit 60
  1228.  
  1229.  
  1230.     This keyword will cause NanoBBS to freeze the timer during
  1231.     message posting.
  1232.  
  1233.     post freeze
  1234.  
  1235.  
  1236.     This will include private messages and feedbacks when rewarding
  1237.     for posts.  The POST FREEZE directive must also be active for
  1238.     this to have an effect.
  1239.  
  1240.     post reward private
  1241.  
  1242.  
  1243.     This keyword specifies the parameters for post rewards.  The
  1244.     first number is the number of minutes to award for a short
  1245.     message.  The second number is the number of minutes to award
  1246.     for a long message.  The third number is the number of lines for
  1247.     a message to count as "long".
  1248.  
  1249.     This example gives a reward of 5 minutes online time for a post
  1250.     1 to 7 lines long, and 10 minutes for a post 8 lines or longer.
  1251.  
  1252.     post reward 5 10 8
  1253.  
  1254.  
  1255.  
  1256.     ┌─────────────────────────────────────────────────────────────┐
  1257.     │               Security                  │
  1258.     └─────────────────────────────────────────────────────────────┘
  1259.  
  1260.     With all the competition out there on the BBS software market to
  1261.     have the most iron-fisted security, I thought it would be a nice
  1262.     complement to the security features to include an optional
  1263.     "UnSecurity" feature.  By default it is commented out.
  1264.  
  1265.     The WIDEOPEN token will cause NanoBBS to skip the user logon
  1266.     process in the canned startup.    You must use a logon UFO token
  1267.  
  1268.  
  1269.     NanoBBS 2.00 Documentation                Page 21
  1270.  
  1271.     to log users on or else all posts and log entries will be for
  1272.     user #0 "???".  In the default file this is commented out, as in
  1273.     this example.
  1274.  
  1275.     ;WideOpen
  1276.  
  1277.  
  1278.     The NUP is the New User Password.  If it is uncommented this
  1279.     password will be required for all new callers to be able to
  1280.     register as a new user.  This is useful for invitation-only
  1281.     private systems.  Since most BBSes are public, this option is
  1282.     "commented out" by default.
  1283.  
  1284.     ;NUP         PASS
  1285.  
  1286.  
  1287.     This is the system password.  It can be used as a security
  1288.     adjunct to the regular user passwords but its usefulness is more
  1289.     important in applications where there is no actual user logon,
  1290.     such as in an AE or other anonymous environment or a
  1291.     fast-turnover information providing system such as would be used
  1292.     on a 1-800 line.  Used in conjunction with the WIDEOPEN
  1293.     parameter it can be used to create a very faithful emulation of
  1294.     AE.  If commented out it is not used.
  1295.  
  1296.     ;SysPass     CHANGEME
  1297.  
  1298.     The ECHOCHAR is the character echoed to the user when asking for
  1299.     a password.  This applies to passwords at logon as well as to
  1300.     passwords asked when changing passords.
  1301.  
  1302.     EchoChar    $
  1303.  
  1304.  
  1305.     PASSWORDTRIES is how many tries a user gets at entering a
  1306.     password before being logged off and hung up on.  To be fair to
  1307.     users, it should be at least 3 tries.
  1308.  
  1309.     PasswordTries    3
  1310.  
  1311.  
  1312.     This is the access level needed to use the ! prompt:
  1313.  
  1314.     Access Bang    20
  1315.  
  1316.  
  1317.     This is the access level given to new users:
  1318.  
  1319.     Access New    10
  1320.  
  1321.  
  1322.     This is the key set given to new users.  If commented out or if
  1323.     no keys are specified, then no keys are set for new users.  In
  1324.     this example, keys 1, 2, 5, A, and C are set.
  1325.  
  1326.     NewKeys     125AC
  1327.  
  1328.  
  1329.     NanoBBS 2.00 Documentation                Page 22
  1330.  
  1331.  
  1332.  
  1333.     This is the access level needed to use various sysop functions.
  1334.  
  1335.     Access SysOp    5000
  1336.  
  1337.  
  1338.     And the SYSOPKEYS parameter is the key set needed to use SysOp
  1339.     functions.
  1340.  
  1341.     SysOpKeys    DEF
  1342.  
  1343.  
  1344.     This is the access level needed to get into the canned file
  1345.     section.
  1346.  
  1347.     Access Files    10
  1348.  
  1349.  
  1350.     This is the access level needed to get into the canned email
  1351.     menu.
  1352.  
  1353.     Access Email    10
  1354.  
  1355.  
  1356.     This is the access level needed to use the canned "read
  1357.     messages" menu option
  1358.  
  1359.     Access Read    10
  1360.  
  1361.  
  1362.     This is the access level needed to use the canned doors menu.
  1363.  
  1364.     Access Doors    10
  1365.  
  1366.  
  1367.     This is the access level needed to list today's calls.
  1368.  
  1369.     Access Todaylist 10
  1370.  
  1371.  
  1372.     This is the access level needed to list users.
  1373.  
  1374.     Access Userlist 10
  1375.  
  1376.  
  1377.     This is the access needed to use the batch files menu.
  1378.  
  1379.     Access Batch    10
  1380.  
  1381.  
  1382.     This is the access needed to access NanoCHAT.
  1383.  
  1384.     Access Chat    10
  1385.  
  1386.  
  1387.  
  1388.  
  1389.     NanoBBS 2.00 Documentation                Page 23
  1390.  
  1391.     This is the string used instead of the user's name when s/he
  1392.     posts anonymously. This can be up to 36 characters and may
  1393.     include embedded colours.
  1394.  
  1395.     anonymous    ~E<~M<~O< ~PAnonymous ~O>~M>~E>
  1396.  
  1397.     The HIDESYSOP keyword is used by itself.  When present, it
  1398.     instructs NanoBBS to "hide" logons by the sysop in both the
  1399.     callers-today list and the daily totals.  The fact of the logon
  1400.     is still recorded in the NANOBBS.LOG and is also recorded in
  1401.     SECURITY.LOG.  Off the record, this was added when the author
  1402.     noticed that he was inflating the daily call count by a factor of
  1403.     two during a brief period where he was cheating at a certain door
  1404.     game <grin>.
  1405.  
  1406.     hidesysop
  1407.  
  1408.     The NEW keywords define which new-user questions will be asked,
  1409.     and which ones will be "optional".  Note that there is no real
  1410.     privacy justification for making the technical questions (lines,
  1411.     columns, ANSI, editor, language) optional so the option setting
  1412.     for those will be ignored by NanoBBS: either they're asked or
  1413.     they're not.
  1414.  
  1415.     .-----------------------------------------------------------------.
  1416.     | A little explanation: in most other BBS software, all of the      |
  1417.     | new-user questions are mandatory - the user has to answer each  |
  1418.     | question in order to proceed to the next and may not skip any.  |
  1419.     | This fact is annoying to some sysops, particularly those of      |
  1420.     | NirvanaNet(tm), a small FTN made up of "open systems" which the |
  1421.     | author briefly belonged to.  To paraphrase their policy, if      |
  1422.     | your BBS software doesn't support making questions like phone   |
  1423.     | number, age and address optional or nonexistent, then you're    |
  1424.     | expected to abandon it in favour of one that does.  So, these   |
  1425.     | keywords were created to fill that need.  I may not be in      |
  1426.     | NirvanaNet(tm) anymore, but my software is NirvanaNet(tm)      |
  1427.     | friendly!                              |
  1428.     |                      -=( Tommy )=-          |
  1429.     `-----------------------------------------------------------------'
  1430.  
  1431.     Valid options are DONTASK and OPTION.  If a question is not
  1432.     present or commented out, it is both asked and required.  By
  1433.     default, all of these are commented out, so that NanoBBS asks
  1434.     all of the questions and requires answers to all of them.  This
  1435.     is the behavior of most other BBS programs.
  1436.  
  1437.     ; new realname option
  1438.     ; new location option
  1439.     ; new phone option
  1440.     ; new birthdate option
  1441.     ; new sex option
  1442.     ; new screen dontask
  1443.     ; new editor dontask
  1444.     ; new chknew dontask
  1445.     ; new language dontask
  1446.  
  1447.  
  1448.  
  1449.     NanoBBS 2.00 Documentation                Page 24
  1450.  
  1451.     This is the message area number of the default private message
  1452.     area.  This is the message area to which Feedback is saved, where
  1453.     the BBS checks for new mail (if the user is set to check for mew
  1454.     mail at logon), and where the E-Mail area operates.  By default it
  1455.     is 0 (zero) but there is no reason why it couldn't be set to some
  1456.     other area number.  Make sure this area exists in your MSGAREA.CTL.
  1457.  
  1458.     Private     0
  1459.  
  1460.     Uncomment this if you want credits to be deducted for time online
  1461.     If this is uncommented NanoBBS will behave like online services
  1462.     that charge by time online... The actual credit consumption rate is
  1463.     defined in LIMITS.CTL.    Most BBSes do not need to uncomment this!
  1464.  
  1465.     ; Credit
  1466.  
  1467.     This is the "ratio threshold", or how much a user can download
  1468.     without uploading, before NanoBBS starts to enforce download:upload
  1469.     ratio limits.  It is in kilobytes, so in this example a new user
  1470.     could download a total of up to 500 kilobytes before her file
  1471.     ratios are even checked.
  1472.  
  1473.     Threshold    500
  1474.  
  1475.     This sets the amount of time, in percent, to give back to a user
  1476.     who has just successfully completed an upload.    It is a percentage
  1477.     of the actual time spent uploading.  A ULReward of 100 gives back
  1478.     100% of the time spent uploading, or in other words the user will
  1479.     have as much time left after an upload as before the upload.  In
  1480.     this default example we give a somewhat generous 300% time reward
  1481.     for uploading.
  1482.  
  1483.     ULReward    300
  1484.  
  1485.     Normally, when a user uploads, the BBS gives the user an extra time
  1486.     reward immediately.  However, you can set the BBS to deposit this
  1487.     credit to the user's time bank by using the BANKUPLOAD keyword.
  1488.     This will give you some control over the use/abuse of the upload
  1489.     credit.
  1490.  
  1491.     BankUpload
  1492.  
  1493.     This is the amount of time (in milliseconds) to wait for ANSI
  1494.     auto-detection.  If your system is very slow you may want to extend
  1495.     this. Otherwise, set it as low as you can get away with without
  1496.     causing NanoBBS to fail to detect ANSi.  A good default is about
  1497.     500 milliseconds.
  1498.  
  1499.     AutoANSi    500
  1500.  
  1501.     This is the number of seconds the user should have left when
  1502.     NanoBBS issues its first warning that the user is running out of
  1503.     time.  It is entered in seconds, and in this example we have set it
  1504.     to 300 seconds, for a 5 minute first warning.
  1505.  
  1506.     Warn First    300
  1507.  
  1508.  
  1509.     NanoBBS 2.00 Documentation                Page 25
  1510.  
  1511.     This is the number of seconds the user should have left when
  1512.     NanoBBS issues its second and final warning that the user is
  1513.     nearly out of time.  It is also in seconds, and this example of
  1514.     60 seconds provides a 1 minute final warning.
  1515.  
  1516.     Warn Final    60
  1517.  
  1518.     If this is uncommented (default) Nano will ask the user to hit
  1519.     Enter upon connection.    This is useful for when ANSi detection
  1520.     chronically fails due to slow modem responses.
  1521.  
  1522.     HitEnter
  1523.  
  1524.     ┌─────────────────────────────────────────────────────────────┐
  1525.     │               Languages                  │
  1526.     └─────────────────────────────────────────────────────────────┘
  1527.  
  1528.     You can have up to 32 languages.  Each language is identified by
  1529.     its base filename.  For example, the language ENGLISH would
  1530.     refer to a pair of files called ENGLISH.LNG and ENGLISH.LDX,
  1531.     which are the message text and index files for the ENGLISH
  1532.     language.  If the user has RIPScrip enabled, ENGLISH will refer
  1533.     to a different pair of files: ENGLISH.RNG and ENGLISH.RDX.
  1534.  
  1535.     NanoBBS needs to have a default language, so that it can display
  1536.     information before a user logs on.  This is set to ENGLISH by
  1537.     default.  ENGLISH is the only language file included with this
  1538.     version of NanoBBS, but third-party language files for other
  1539.     languages are encouraged.
  1540.  
  1541.     defaultlang    english
  1542.     language 1    english
  1543.     ;language 2     hoser
  1544.     ;language 3     abusive
  1545.     ;language 4     r0dent
  1546.     ;language 5     francais
  1547.     ;language 6     deutsch
  1548.  
  1549.  
  1550.     ┌─────────────────────────────────────────────────────────────┐
  1551.     │           Main Menu Command Overrides              │
  1552.     └─────────────────────────────────────────────────────────────┘
  1553.  
  1554.     You can add or redefine up to 100 keys in the canned main menu
  1555.     to activate UFO script files.  The UFO script files listed here
  1556.     must be found in the text file directory as specified above, and
  1557.     will have the .BBS extension appended automatically.  Do not
  1558.     include the extension or path here.
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.     NanoBBS 2.00 Documentation                Page 26
  1570.  
  1571.     There are a couple of examples in the default NODE1.CTL file,
  1572.     and they are included here:
  1573.  
  1574.     ;
  1575.     ; Example:
  1576.     ;
  1577.     ; OVRKEY    !  MODBANG
  1578.     ;
  1579.     ; This example replaces the canned bang prompt with
  1580.     ; MODBANG.BBS.
  1581.     ;
  1582.     ; You can also deactivate a main menu option by setting its
  1583.     ; filename to NIL, like this:
  1584.     ;
  1585.     ; OVRKEY    D  NIL
  1586.     ;
  1587.     ; This deactivates the canned doors menu off the canned
  1588.     ; main menu.
  1589.     ;
  1590.  
  1591.     ┌─────────────────────────────────────────────────────────────┐
  1592.     │           File Menu Command Overrides              │
  1593.     └─────────────────────────────────────────────────────────────┘
  1594.  
  1595.     FOVRKEY is like OVRKEY except that the keys override those in the
  1596.     canned File Section.  There can be up to 30 FOVRKEYs.  The example
  1597.     below displays the compiled UFO file IPLAQ.BBS when the user hits $
  1598.     at the file menu.
  1599.  
  1600.     FOVRKEY $ IPLAQ
  1601.  
  1602.     What is this feature useful for?  Well, if you wanted to run a
  1603.     custom file database door or a door for a CD-ROM which is not
  1604.     directly NanoBBS compatible, you can now make those things options
  1605.     from the file menu where they belong.
  1606.  
  1607.     To add a CD-ROM door to the file menu, take the following steps:
  1608.  
  1609.     [1] Set up the door according to the door's instructions.
  1610.  
  1611.     [2] Create an entry in DOORS.CTL for the door and compile it with
  1612.         MAKEDOOR.
  1613.  
  1614.     [3] Verify that the door works properly by entering it from the
  1615.         door menu.
  1616.  
  1617.     [4] Create a UFO script to call the door.  You may want to put in
  1618.         tokens to restrict the use of the door.  You will need to use
  1619.         the [rundoor] token to actually run the door.
  1620.  
  1621.     [5] Compile the UFO file.  Make sure it's in your misc directory!
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.     NanoBBS 2.00 Documentation                Page 27
  1630.  
  1631.     [6] Edit your NODE1.CTL (and all other node config files!) to
  1632.         include the following entry:
  1633.  
  1634.         FOvrKey # CDROMDOR
  1635.  
  1636.         The above example will display/run CDROMDOR.BBS when the user
  1637.         hits # at the file menu.
  1638.  
  1639.     [7] Run CONFIG NODE1 (and again for each other node config file).
  1640.  
  1641.     [8] You should now have a working CD-ROM door in your file menu!
  1642.  
  1643.     ┌─────────────────────────────────────────────────────────────┐
  1644.     │             QWK Parameters               │
  1645.     └─────────────────────────────────────────────────────────────┘
  1646.  
  1647.     This is the path where QWK packets are assembled, disassembled,
  1648.     uploaded and downloaded.  NOTE: This path should be unique to
  1649.     each node if you are running a multi-node system, or else some
  1650.     really weird crosslinks could occur if two users try to build
  1651.     QWK packets simultaneously...
  1652.  
  1653.     qwk path    c:\bbs\qwk\node1
  1654.  
  1655.  
  1656.     This is the base filename of QWK packets.  This can be up to 8
  1657.     characters.
  1658.  
  1659.     qwk bbsid    NANOBBS
  1660.  
  1661.  
  1662.     Here are the compression program definitions.  Although the
  1663.     external compression is mainly used by QWK, these same
  1664.     definitions are also used by the FILE_ID.DIZ extraction
  1665.     sub-system.
  1666.  
  1667.     The NAME is the archiver name as you want the user to see it,
  1668.     the Extension is the normal file extension by which files of
  1669.     that type are known.
  1670.  
  1671.     The ADD and EXTRACT commands must include the full path and .EXE
  1672.     or .COM extension in order to work.  Since the compression is
  1673.     (in this version) only used for QWK processing, the ADD command
  1674.     should (ideally) specify "move"ing files into the archive rather
  1675.     than simply adding them, and the EXTRACT command should
  1676.     (definitely!) specify overwriting existing files.
  1677.  
  1678.     The ID bytes are as follows: the fist numeric parameter is the
  1679.     number of bytes from the first one where we are to find a string
  1680.     of bytes equal to the remaining specified bytes.  0 means the
  1681.     first byte. -1 means the last byte in the file, -2 means the
  1682.     second to last and so on.  The remaining bytes are what the BBS
  1683.     searches for to identify the file type. A number of known
  1684.     archiver IDs are included in this sample file. You can specify
  1685.     up to 8 bytes to search for the ID.  Byte values are in vanilla
  1686.     decimal, no hex here!  There can be up to 16 compression
  1687.     programs defined, from 1 to 16.
  1688.  
  1689.     NanoBBS 2.00 Documentation                Page 28
  1690.  
  1691.     The syntax of the compression definitions is as in these
  1692.     examples.  Start the definition with the COMPRESS command and
  1693.     the "slot" number for the compression definition.  After
  1694.     you've specified the name, extension, ID bytes and the add and
  1695.     extract commands, end the definition with END.
  1696.  
  1697.     compress 1
  1698.         name        PKWare's PKZip
  1699.         extension    ZIP
  1700.         add        c:\bin\pkzip.exe -m %a %f
  1701.         extract     c:\bin\pkunzip.exe -oe %a %f
  1702.         id        0 80 75 03 04
  1703.     end
  1704.  
  1705.     compress 2
  1706.         name        PKWare's PKZip - Maximum Compression!
  1707.         extension    ZIP
  1708.         add        c:\bin\pkzip.exe -ex -m %a %f
  1709.         extract     c:\bin\pkunzip.exe -oe %a %f
  1710.         id        0 80 75 03 04
  1711.     end
  1712.  
  1713.     {Several examples from the default NODE1.CTL are deleted here
  1714.     for brevity}
  1715.  
  1716.     compress 7
  1717.         name        Rahul Dhesi's ZOO
  1718.         extension    ZOO
  1719.         add        c:\bin\zoo.exe -m %a %f
  1720.         extract     c:\bin\zoo.exe -e:O %a %f
  1721.         id        0 90 79 79
  1722.     end
  1723.  
  1724.     If you're running a multi-line system, it might be a good idea to
  1725.     put the compression configuration keywords in a separate file
  1726.     called COMPRESS.CTL and then put an INCLUDE keyword in each of your
  1727.     node configuration files pointing to COMPRESS.CTL.  See the example
  1728.     below:
  1729.  
  1730.     Include Compress.Ctl
  1731.  
  1732.     ... this would take the place of all of the above if you have it
  1733.     all in a file called COMPRESS.CTL.  Effective with verion 1.14,
  1734.     NanoBBS actually comes configured this way.  You can move any part
  1735.     of the NanoBBS config file to another file by using Include
  1736.     directives.  This would be useful for just about any config
  1737.     information that is global - the same for every node.
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.     NanoBBS 2.00 Documentation                Page 29
  1750.  
  1751.     ┌─────────────────────────────────────────────────────────────┐
  1752.     │            Internet Arcana               │
  1753.     └─────────────────────────────────────────────────────────────┘
  1754.  
  1755.     If your BBS is not in the Internet, you need not concern
  1756.     yourself with any of this.  Most of this is included for future
  1757.     expansion only.  While NanoBBS will write a valid RFC-1036
  1758.     header to messages where required, there is no other direct
  1759.     support for the Internet or for Usenet.  If you can get Internet
  1760.     running with these parameters using external programs, terrific!
  1761.     Otherwise, true internet support -is- forthcoming in a future
  1762.     version.
  1763.  
  1764.     If you use the RFC-1036 message header in any of your message
  1765.     areas, you should set all of these parameters to values which
  1766.     are valid for your system.
  1767.  
  1768.  
  1769.     This is the internet address of the system.  There should be no
  1770.     @ in this IF YOU HAVE NO DOMAIN ADDRESS COMMENT THIS OUT!
  1771.  
  1772.     ; internet address horse.hockey.bull.roar.com
  1773.  
  1774.     This is used to build Usenet RFC1036 path header info.
  1775.  
  1776.     ; internet machine thc
  1777.  
  1778.     This is the time zone definition.  The first parameter is
  1779.     timezone code as you want it displayed in RFC-1036 headers.  The
  1780.     second parameter is the offset in hours from UTC in standard
  1781.     time, and the third is the offset from UTC in daylight time.
  1782.     These latter two parameters are not yet used by NanoBBS.
  1783.  
  1784.     timezone PST -8 -7
  1785.  
  1786.     ┌─────────────────────────────────────────────────────────────┐
  1787.     │         Hooks to MFB, MMB and MAKEDOOR           │
  1788.     └─────────────────────────────────────────────────────────────┘
  1789.  
  1790.     These commands, if present, will call MMB.EXE, MFB.EXE or
  1791.     MAKEDOOR.EXE and conveniently compile those as well.  It also
  1792.     lets you specify the use of non-standard filenames for these
  1793.     files, allowing you to associate a different set of file and
  1794.     message areas to different config files.
  1795.  
  1796.     uses files    filearea.ctl
  1797.     uses message    msgarea.ctl
  1798.     uses doors    doors.ctl
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.     NanoBBS 2.00 Documentation                Page 30
  1810.  
  1811.     ┌─────────────────────────────────────────────────────────────┐
  1812.     │                 EVENTS                  │
  1813.     └─────────────────────────────────────────────────────────────┘
  1814.  
  1815.     Here are the "event" definitions.  The first parameter is the
  1816.     absolute event record; it can be from 1 to 32.    The second
  1817.     parameter is the day of the week the event is scheduled to take
  1818.     place (or "all" if the event should take place every day) and
  1819.     the third is the time, it 24-hour format. The fourth parameter
  1820.     is the errorlevel NanoBBS should exit with, and the remainder of
  1821.     the line (up to 60 characters) is the name of the event.
  1822.  
  1823.     You can signal that an event is "forced" - a user's time online
  1824.     may be adjusted to ensure the event occurs on time - by placing
  1825.     a $ (dollar sign) as the first character of the name.  The
  1826.     CONFIG.EXE compiler will automatically strip this character for
  1827.     you.
  1828.  
  1829.     NanoBBS events have a unique feature: you can have up to 32
  1830.     unique times at which each event can execute.  Unlike most other
  1831.     BBSes, you can specify more than one time of day for each event
  1832.     to occur, and you can even have the same event occur several
  1833.     times in the same day if you desire!
  1834.  
  1835.     These are just examples; you should adjust the times, days,
  1836.     names and errorlevels to suit your system best.  See the chapter
  1837.     titled "The Black Art of Batch File Writing" for examples of how
  1838.     to use the errorlevels.
  1839.  
  1840.     Here are two nice normal events which occur once per night at
  1841.     the same time.    The first event is forced; a user online will
  1842.     have her time limit adjusted if the call is close enough to
  1843.     midnight!
  1844.  
  1845.     event 1 All 00:00 100 $Midnight Door Updates
  1846.     event 2 All 04:00 110 Nightly Maintenance
  1847.  
  1848.     Here is an event which occurs at 4:30am Thursday and 5:00am
  1849.     Sunday.  Note that on the second line the errorlevel and name are
  1850.     not needed.
  1851.  
  1852.     event 3 Thu 04:30 120 Semi-Weekly Maintenance
  1853.     event 3 Sun 05:00
  1854.  
  1855.     This event runs three times a day at 2:00am, 10:00am and 6:00pm.
  1856.  
  1857.     event 4 All 02:00 130 Galactic Empire Update (Thrice Daily!)
  1858.     event 4 All 10:00
  1859.     event 4 All 18:00
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.     NanoBBS 2.00 Documentation                Page 31
  1870.  
  1871.     ┌─────────────────────────────────────────────────────────────┐
  1872.     │               OTHER KEYWORDS                  │
  1873.     └─────────────────────────────────────────────────────────────┘
  1874.  
  1875.     If uncommented, the EMAILSCAN GLOBAL option will cause NanoBBS to
  1876.     search all the areas the user has defined for global scans when
  1877.     checking for new email at each logon.  By default (commented out)
  1878.     NanoBBS will only scan the defined private email base for new
  1879.     personal mail.
  1880.  
  1881.     emailscan global
  1882.  
  1883.     Normally, when a caller returns to the BBS from a door, the screen
  1884.     is restored to the way it was when the user went into the door.
  1885.     This makes things more visually pleasing for the sysop, but
  1886.     unfortunately, it can mask any error codes the door may display at
  1887.     exit.  The use of the NODOORSCREENRESTORE keyword suppresses this
  1888.     feature so that you can more easily debug your door setup.
  1889.  
  1890.     nodoorscreenrestore
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.     NanoBBS 2.00 Documentation                Page 32
  1937.  
  1938.     ╔═╦══════════════════════════╦═╗
  1939.     ║ ║ Setting Up Message Areas ║ ║
  1940.     ╚═╩══════════════════════════╩═╝
  1941.  
  1942.     Message areas are defined in the MSGAREA.CTL file.  Like the
  1943.     system configuration file in the previous chapter, this is a
  1944.     flat ASCII file which can be edited with any ASCII text
  1945.     processor.
  1946.  
  1947.     Once you have edited MSGAREA.CTL to your needs, you must then
  1948.     compile the message base configuration file into the MSGAREA.DAT
  1949.     file which NanoBBS can more easily read.  This can be done in
  1950.     two ways.  The simplest is to run the CONFIG program as you did
  1951.     for the NODE1.CTL general config file.    Tbis will also compile
  1952.     the MSGAREA.CTL file.  The other way is to run the MMB.EXE
  1953.     program like so:
  1954.  
  1955.         MMB MSGAREA
  1956.  
  1957.     This compiles your MSGAREA.CTL into MSGAREA.DAT the same way
  1958.     that CONFIG.EXE did, because CONFIG actually calls MMB.EXE in
  1959.     the process of configuring everything.    However this way will
  1960.     only compile the message areas; file areas, doors and general
  1961.     configuration remain unaffected when you use MMB.
  1962.  
  1963.     Each message area is defined by a set of lines in the
  1964.     MSGAREA.CTL file.  The first line of each area's definition
  1965.     starts with MSGAREA and the area's number, and ends with END.
  1966.  
  1967.     ┌─────────────────┐
  1968.     │ A basic example │
  1969.     └─────────────────┘
  1970.  
  1971.     msgarea         1
  1972.         name        Ye Public Roaste
  1973.         type        squish
  1974.         public
  1975.         access        10
  1976.         path        c:\bbs\msg\public
  1977.     end
  1978.  
  1979.     In the above example, we are defining Message Area 1 (hence the
  1980.     first line).
  1981.  
  1982.     Its name is "Ye Public Roaste", as defined by the NAME command.
  1983.  
  1984.     It is a Squish type message base, as defined by the TYPE
  1985.     command.
  1986.  
  1987.     It is a public message area, as defined by the existence of the
  1988.     PUBLIC command.  This means that private messages are not
  1989.     possible in the area.
  1990.  
  1991.     The minimum access needed to use this area is 10, as defined by
  1992.     the ACCESS command.
  1993.  
  1994.  
  1995.  
  1996.     NanoBBS 2.00 Documentation                Page 33
  1997.  
  1998.     The messages themselves are stored in the directory C:\BBS\MSG\,
  1999.     and the base filename of the Squish files for this base is
  2000.     PUBLIC.  This is defined by the PATH command. It is worth noting
  2001.     that in a Squish or JAM base, the base filename is included in
  2002.     the path.  That means that if the PATH is C:\BBS\MSG\PUBLIC and
  2003.     this is a Squish area, NanoBBS will use the following files:
  2004.  
  2005.         C:\BBS\MSG\PUBLIC.SQI
  2006.         C:\BBS\MSG\PUBLIC.SQD
  2007.         C:\BBS\MSG\PUBLIC.SQL
  2008.         and C:\BBS\MSG\PUBLIC.SQB
  2009.  
  2010.     A similar mechanism is used to define the base filename for JAM
  2011.     message areas.    However, for *.MSG areas this defines the full
  2012.     directory name where all of the message files live.  In *.MSG
  2013.     there is one file for every message, plus several auxiliary
  2014.     files (most notably the LASTREAD file) so each *.MSG area must
  2015.     be in its own directory to avoid a serious and acute
  2016.     crosslinking problem!
  2017.  
  2018.     ┌───────────────────────────────┐
  2019.     │ A real-world Echomail example │
  2020.     └───────────────────────────────┘
  2021.  
  2022.     msgarea         5
  2023.         name        Chatter Echo
  2024.         type        JAM
  2025.         path        c:\bbs\msg\chatter
  2026.         access        10
  2027.         postaccess    15
  2028.         realname
  2029.         echomail
  2030.         address     1:340/26
  2031.         Origin        NanoBBS in '95!  604-361-4549
  2032.         public
  2033.         qwkname     Chatter
  2034.         barricade
  2035.         censor
  2036.     end
  2037.  
  2038.     This is message area 5, named "Chatter Echo".  It is a JAM type
  2039.     area which lives in C:\BBS\MSG\ and its files start with the
  2040.     base filename CHATTER.    Users need access level 10 to use the
  2041.     message area but only users with access level 15 can post
  2042.     messages there.  This area will use the user's "Real Name"
  2043.     instead of the "User Name".  It is an echomail area - perhaps
  2044.     this is why you would want to force the use of a real name.  The
  2045.     Fidonet address used in the Origin line and elsewhere in the
  2046.     message is 1:340/26.  The origin line itself will read:
  2047.  
  2048.         * Origin: NanoBBS in '97!  604-361-4549 (1:340/26)
  2049.  
  2050.     This is a "Public" area, and it is subject to the Barricade file
  2051.     (see the section on miscellaneous external files).  When the
  2052.     user downloads messages from this area into a QWK packet, the
  2053.  
  2054.  
  2055.  
  2056.     NanoBBS 2.00 Documentation                Page 34
  2057.  
  2058.     BBS will associate the name "Chatter" with the area in the QWK
  2059.     packet.  And, the Message Censor will be applied to all messages
  2060.     posted by your users in this area.
  2061.  
  2062.     ┌────────────────────────┐
  2063.     │ An example of a     │
  2064.     │ specialty message area │
  2065.     └────────────────────────┘
  2066.  
  2067.     msgarea         49
  2068.         name        Adult Network Ladies Only Base
  2069.         path        c:\bbs\msg\ladies
  2070.         access        20
  2071.         postaccess    20
  2072.         age        21
  2073.         type        Squish
  2074.         public
  2075.         femaleonly
  2076.         qwkname     LadiesOnly
  2077.     end
  2078.  
  2079.     This is Message Area 49, which as you can see is open only to
  2080.     women over 21 - and the BBS will enforce this for you!    Most
  2081.     BBSes do not have this possibility.
  2082.  
  2083.     ┌──────────────────────────────────────────────────────────┐
  2084.     │                               │
  2085.     │ There are several more examples in the MESSAGES.CTL file │
  2086.     │           that comes with NanoBBS.           │
  2087.     │                               │
  2088.     └──────────────────────────────────────────────────────────┘
  2089.  
  2090.     ────────────────────────────────────────────────────────────
  2091.  
  2092.     ┌────────────────────────────────────┐
  2093.     │ A complete listing of all of the   │
  2094.     │ available keywords for MSGAREA.CTL │
  2095.     └────────────────────────────────────┘
  2096.  
  2097.     INCLUDE {filename}- This tells MMB to open the specified
  2098.        filename and take its input from that file - or in other
  2099.        words, "include" it.
  2100.  
  2101.     MSGAREA {number} - Starts a message area definition.  Every
  2102.        message area starts with this.
  2103.  
  2104.     MSGAREA @NEXT - Starts a message area definition, gives the new
  2105.        area an area number one higher than the last one. Use this
  2106.        instead of an area number to auto-number your message areas
  2107.        (this makes inserting new ones in the middle a breeze!)
  2108.  
  2109.     MSGAREA @NEXT 10 - Starts a message area definition, gives the new
  2110.        area an area number 10 higher than the last one.  You can
  2111.        specify any number here.
  2112.  
  2113.  
  2114.  
  2115.  
  2116.     NanoBBS 2.00 Documentation                Page 35
  2117.  
  2118.     NAME {Area Name} - Defines the message area's name as the user
  2119.        sees it.  This can be up to 60 characters long, and it may
  2120.        contain embedded colours!
  2121.  
  2122.     QWKNAME {Name}     - Defines the area name as it is seen in the
  2123.        user's QWK reader.  Due to a limitation of the .QWK standard,
  2124.        the QWKNAME must be 12 characters or less.  This in fact is
  2125.        the main reason why NanoBBS lets you define this name
  2126.        separately.
  2127.  
  2128.     NEWSGROUP {news.group} - Defines the Usenet Newsgroup (if any)
  2129.        associated with this message area.  This is just a usenet
  2130.        newsgroup name in a format like: comp.bbs.nanobbs This can be
  2131.        up to 80 characters in size.
  2132.  
  2133.     TYPE {type}     - Defines the message base type, either SQUISH,
  2134.        JAM or *.MSG.  Squish and JAM are the recommended types, with
  2135.        *.MSG included for completeness and backward compatibility.
  2136.  
  2137.     PATH {path}     - Defines what directory the area lives in. For
  2138.        Squish and JAM areas this also includes the base filename.
  2139.        If this is a *.MSG area, the .MSG and other files are in this
  2140.        directory.
  2141.  
  2142.     ATTACH PATH {path} - This defines the path where file attaches
  2143.        in this area will be stored.  If this path is not defined,
  2144.        file attaches will not be allowed.  File attaches are an
  2145.        advanced feature that lets users send each other files via
  2146.        your system.
  2147.  
  2148.  
  2149.     ATTACH ACCESS {ac} - This defines the access level needed to
  2150.        post file attaches to this area.  If the user doesn't have
  2151.        this access level or higher, s/he is never even asked if a
  2152.        file attach is wanted.  This option has no effect unless the
  2153.        ATTACH PATH is also defined.
  2154.  
  2155.     ACCESS {access}  - Defines the access needed to read messages.
  2156.  
  2157.     POSTACCESS {ac.} - Defines the access needed to post messages.
  2158.  
  2159.     PRIVATE      - Only private messages are allowed.
  2160.  
  2161.     PUBLIC         - Only public messages are allowed.  If neither
  2162.        this nor PRIVATE is used, the user is asked if the message
  2163.        should be private.
  2164.  
  2165.     RFC1036      - This causes an RFC-1036 Usenet message header
  2166.        to be prepended to the message text.  This is used in
  2167.        conjunction with external Usenet processors.
  2168.  
  2169.     AGE {age}     - Minimum age required for access to the area
  2170.  
  2171.     FEMALEONLY     - Only females may read or post to the area.
  2172.  
  2173.     MALEONLY     - Only males may read or post to the area.
  2174.  
  2175.  
  2176.     NanoBBS 2.00 Documentation                Page 36
  2177.  
  2178.     READONLY     - This is a read-only area - only the sysop can
  2179.        post!  This may be somewhat redundant as it has the same
  2180.        effect as setting POSTACCESS to the sysop access level. This
  2181.        is useful for setting up an announcements area or a
  2182.        file-distribution area (using file attaches).
  2183.  
  2184.     ECHOMAIL     - This command simply indicates that this is a
  2185.        Fidonet echomail area, so that NanoBBS will attach the
  2186.        necessary Echomail information to the message when it is
  2187.        saved.
  2188.  
  2189.     NETMAIL      - This command simply indicates that this is a
  2190.        Fidonet netmail area, so that NanoBBS will attach the
  2191.        necessary Netmail information to the message when it is
  2192.        saved.
  2193.  
  2194.     ADDRESS {z:n/n.p}- The originating Fidonet type address for this
  2195.        area.  This is needed for all Echomail and Netmail areas.
  2196.        This is in the standard 4D format, examples: 1:340/26
  2197.        69:3601/1 89:688/13.2  64:819/17.12
  2198.  
  2199.     ORIGIN {OrgLine} - The text of the Origin Line for this area
  2200.  
  2201.     KLUDGE REALNAME  - The user's real name will be hidden in a ^A
  2202.        kludge line prepended to the message text.
  2203.  
  2204.     INTERNET EMAIL     - The area is intended for Internet email.
  2205.  
  2206.     INTERNET DIVERT {area} - If the user enters a To: that appears to
  2207.        be intended for an Internet address (the presence of @, period
  2208.        or exclamation point will trigger this), then NanoBBS will
  2209.        divert the message to the specified area number - if the user
  2210.        has access!
  2211.  
  2212.     KEYS {keys}     - The user key(s) required for access
  2213.  
  2214.     POSTKEYS {keys}  - The user key(s) required to post messages
  2215.  
  2216.     REALNAME     - Always post with the user's real name
  2217.  
  2218.     ANONYMOUS     - Allow anonymous posting
  2219.  
  2220.     CENSOR         - Use the built-in message censor in this area.
  2221.  
  2222.     BARRICADE     - This will enable a check of the barricade
  2223.        file MESSAGES.BAR before changing to this area.  If the user
  2224.        is barricaded from this area, this must be active in order
  2225.        for the barricade to work!
  2226.  
  2227.     END         - End the area's definition.
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.     NanoBBS 2.00 Documentation                Page 37
  2237.  
  2238.     You may also demarcate message areas by content type, network
  2239.     affiliation or whatever criterion you like by grouping them
  2240.     together and partitioning them with dividers.  A divider is just a
  2241.     "break" in the area list.  You can put a divider anywhere between
  2242.     area definitions in the MSGAREA.CTL file.
  2243.  
  2244.     DIVIDER       - Start a divider definition (no parameters)
  2245.  
  2246.     DISPLAY       - Text to display in the divider (see SysMsg 340
  2247.        in the language file)
  2248.  
  2249.     FILENAME {name}   - Display filename specified by {name} instead of
  2250.        SysMsg 340
  2251.  
  2252.     MALEONLY
  2253.     FEMALEONLY
  2254.     AGE {age}
  2255.     ACCESS {access}
  2256.     KEYS {keys} - AGE, ACCESS, KEYS, MALEONLY and FEMALEONLY enable or
  2257.        suppress the divider in much the same way they do for message
  2258.        area definitions
  2259.  
  2260.     END          - End the divider's definition
  2261.  
  2262.     ╔═╦═══════════════════════╦═╗
  2263.     ║ ║ Setting Up File Areas ║ ║
  2264.     ╚═╩═══════════════════════╩═╝
  2265.  
  2266.     File areas are defined in the FILEAREA.CTL file.  Like the
  2267.     system configuration file and message area configuration file in
  2268.     the previous chapters, this is a flat ASCII file which can be
  2269.     edited with any ASCII text processor.
  2270.  
  2271.     Once you have edited FILEAREA.CTL to your needs, you must then
  2272.     compile the file area configuration file into the FILEAREA.DAT
  2273.     file which NanoBBS can more easily read.  This can be done in
  2274.     two ways.  The simplest is to run the CONFIG program as you did
  2275.     for the NODE1.CTL general config file.    Tbis will also compile
  2276.     the FILEAREA.CTL file.    The other way is to run the MFB.EXE
  2277.     program like so:
  2278.  
  2279.         MFB FILEAREA
  2280.  
  2281.     This compiles your FILEAREA.CTL into FILEAREA.DAT the same way
  2282.     that CONFIG.EXE did, because CONFIG actually calls MFB.EXE in
  2283.     the process of configuring everything.    However this way will
  2284.     only compile the file areas; message areas, doors and general
  2285.     configuration remain unaffected when you use MFB.
  2286.  
  2287.     Each file area is defined by a set of lines in the FILEAREA.CTL
  2288.     file.  The first line of each area's definition starts with
  2289.     FILEAREA and the area's number, and ends with END.
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.     NanoBBS 2.00 Documentation                Page 38
  2297.  
  2298.     ┌─────────────────┐
  2299.     │ A basic example │
  2300.     └─────────────────┘
  2301.  
  2302.     FileArea        1
  2303.         access        10
  2304.         name        General Upload Files
  2305.         Download    c:\file\upload\
  2306.         Upload        c:\file\upload\
  2307.     end
  2308.  
  2309.     In this example, we are defining file area 1.  Its name is
  2310.     "General Upload Files" and the user must have access level 10 or
  2311.     above to use the area.    The FILES.BBS file and the actual files
  2312.     are in the C:\FILE\UPLOAD\ directory, and that is also where
  2313.     uploads are saved.  There is otherwise nothing special about
  2314.     this area.
  2315.  
  2316.     ┌──────────────────────────────────┐
  2317.     │ A slightly more involved example │
  2318.     └──────────────────────────────────┘
  2319.  
  2320.     FileArea        3
  2321.         access        20
  2322.         name        Naughty Adult Pictures
  2323.         download    c:\bbs\files\adult\
  2324.         upload        c:\bbs\files\screen\
  2325.         age        21
  2326.     end
  2327.  
  2328.     Note that in this example the DOWNLOAD and UPLOAD directories
  2329.     are different.    The files and the FILES.BBS file are in
  2330.     C:\BBS\FILES\ADULT\, but uploaded files are saved in
  2331.     C:\BBS\FILES\SCREEN\.  When a user uploads a file to this area,
  2332.     not only does the file end up in the UPLOAD directory, but any
  2333.     description the user enters for the file goes in a FILES.BBS
  2334.     located in the UPLOAD directory.  Also in this example, a lower
  2335.     age limit of 21 years is specified, and an access level of 20 is
  2336.     required.
  2337.  
  2338.     ┌───────────────────────┐
  2339.     │ Defining CD-ROM areas │
  2340.     └───────────────────────┘
  2341.  
  2342.     filearea 2001
  2343.         name    Alt Operating Sys.
  2344.         upload c:\file\upload\
  2345.         download g:\001a\
  2346.         access    10
  2347.         cdrom
  2348.         filesbbspath    c:\cdrom\001a\
  2349.     end
  2350.  
  2351.     In this example, area 2001 is on a CD.    Note that there are
  2352.     three different paths.    The DOWNLOAD path is the actual
  2353.     directory on the CD where the files reside.  The UPLOAD path is
  2354.  
  2355.  
  2356.     NanoBBS 2.00 Documentation                Page 39
  2357.  
  2358.     where uploads go.  Of course, CD-ROMs are not writeable, so it
  2359.     is very important that you specify an upload path that is on a
  2360.     writeable disk!  The third path, FILESBBSPATH, is the location
  2361.     of the FILES.BBS file.    This is where the file names and
  2362.     descriptions are kept.    This feature is useful for allowing you
  2363.     to "remove" files from CD directories that you don't want users
  2364.     to access, or to allow you to change the description of a file
  2365.     on a CD.
  2366.  
  2367.     An alternative for CD-ROM areas is to use the NOUPLOADS keyword.
  2368.     Instead of shuttling uploads to some other directory, NOUPLOADS
  2369.     will actually refuse to accept an upload if the user is in a
  2370.     file area that has this keyword.  I think that it is much more
  2371.     user-friendly to allow users to upload regardless of the area
  2372.     they're logged to, using the UPLOADPATH keyword.
  2373.  
  2374.     Note the use of the CDROM keyword.  This instructs NanoBBS to
  2375.     first copy the requested file or files from the CD to a
  2376.     temporary directory (the one specified in your general config
  2377.     file) before downloading.  The files are then downloaded from
  2378.     the hard disk - or RAMdisk if you're fortunate enough to have one
  2379.     large enough to practically handle this job.  This greatly
  2380.     reduces the overhead caused by CD-ROM accesses.
  2381.  
  2382.     ┌────────────────────────────────────────────────────────────┐
  2383.     │ Note to LAN users: If you are using a slow LAN (2 MBPS or  │
  2384.     │ less) you may want to consider using the CDROM keyword for │
  2385.     │ any areas that live across the LAN from the machine the    │
  2386.     │ user logs onto, even if they're on a hard disk.  This can  │
  2387.     │ cut down on LAN overhead quite a bit.              │                      │
  2388.     └────────────────────────────────────────────────────────────┘
  2389.  
  2390.     The best way to deal with a CD that already has FILES.BBS files
  2391.     is to simply make a mirror of the CD's directory tree on your
  2392.     hard disk.  Then copy all the FILES.BBS files to the hard disk
  2393.     mirror and set the FILESBBSPATH for each area on the CD to the
  2394.     relevant mirror directory.
  2395.  
  2396.     Making a mirror directory is easy.  ALl you need to do is
  2397.     (something like) this:
  2398.  
  2399.         C:\> xcopy g:\files.bbs c:\cdrom\ /s /e
  2400.  
  2401.     ... in this simple DOS example, we're asking XCOPY to make
  2402.     copies on the hard disk of all the FILES.BBS files on the CD,
  2403.     creating the directories as needed, and in fact building an
  2404.     empty copy of the whole directory tree.  For most CDs the hard
  2405.     disk usage by this technique should be negligible.
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.     NanoBBS 2.00 Documentation                Page 40
  2417.  
  2418.     ┌─────────────────────────────────────┐
  2419.     │ A complete listing of all of the    │
  2420.     │ available keywords for FILEAREA.CTL │
  2421.     └─────────────────────────────────────┘
  2422.  
  2423.     INCLUDE {filename}- This tells MFB to open the specified
  2424.        filename and take its input from that file - or in other
  2425.        words, "include" it.  This is useful for rotating CD-ROMs
  2426.        where you have several CDs defined but only one drive: you
  2427.        could rotate them by simply commenting out the include name
  2428.        for the outgoing CD, uncomment the include for the incoming
  2429.        CD, and then just swap the CDs themselves.  Voila!
  2430.  
  2431.     FILEAREA {number} - Starts a file area definition.
  2432.  
  2433.     NAME {Area Name } - Defines the file area's name
  2434.  
  2435.     DOWNLOAD {path}   - Defines where the files themselves exist
  2436.  
  2437.     UPLOAD {path}      - Defines where files should be uploaded
  2438.  
  2439.     FILESBBS {path}   - Defines where the FILES.BBS file lives. This
  2440.        is optional; if it is not used FILES.BBS will be expected in
  2441.        the same directory as DOWNLOAD.
  2442.  
  2443.     AGE {age}      - The minimum age needed to access the area
  2444.  
  2445.     CDROM          - This means the area is on a CD.  Files are
  2446.        copied to a temporary directory prior to downloading.
  2447.  
  2448.     ACCESS {access}   - Defines the access needed to use the area.
  2449.  
  2450.     ULACCESS {access} - Defines the access needed to upload in the area.
  2451.  
  2452.     DLACCESS {access} - Defines the access needed to download in the area.
  2453.  
  2454.     KEYS {keys}      - Defines the key(s) needed to use the area.
  2455.  
  2456.     ULKEYS {keys}      - Defines the key(s) needed to upload in the area.
  2457.  
  2458.     DLKEYS {keys}      - Defines the key(s) needed to download in the area.
  2459.  
  2460.     NOUPLOADS      - Uploading is not allowed in the area.
  2461.  
  2462.     PCBSTYLE      - This indicates that the FILES.BBS file in this
  2463.                 area includes the file date and size (regular
  2464.                 FILES.BBS files do not).  Since NanoBBS already
  2465.                 displays this information, this keyword causes
  2466.                 NanoBBS to strip the redundant information from
  2467.                 the FILES.BBS when it is displayed.  This
  2468.                 keyword gets its name from the fact that the
  2469.                 extra information stripped by this keyword is
  2470.                 the only important difference between FILES.BBS
  2471.                 and the PC-Board DIR* files - thus you can use
  2472.                 the DIR files found on some CD-ROMs with little
  2473.                 or no modification.
  2474.  
  2475.  
  2476.     NanoBBS 2.00 Documentation                Page 41
  2477.  
  2478.     INDENTDESC      - Some CD-ROMs use a slightly different way of
  2479.                 indicating a continued long file description -
  2480.                 they indent the continued description several
  2481.                 columns rather than using a special character
  2482.                 as NanoBBS does.  By using this keyword, such
  2483.                 FILES.BBS files can be used unmodified and will
  2484.                 have properly wrapped descriptions.  Do not use
  2485.                 this keyword indiscriminately - it can cause
  2486.                 problems with indented comment lines!
  2487.  
  2488.     END          - End the area's definition.
  2489.  
  2490.     ╔═╦══════════════════════════╦═╗
  2491.     ║ ║    Setting Up Doors     ║ ║
  2492.     ╚═╩══════════════════════════╩═╝
  2493.  
  2494.     "Doors" are external programs, usually games, that can be called
  2495.     up by the BBS for users to use while they are online.  Whirlwind
  2496.     Software's Rancho Nevada, Galactic Empire, The Streets,
  2497.     S.T.U.P.I.D., and others, are examples of popular door programs
  2498.     compatible with NanoBBS and many other BBSes.
  2499.  
  2500.     Having only been sysoping for the last seven years or so, I
  2501.     can't claim to be an authority on this, but I believe the term
  2502.     "Door" originated on BBSes that were arranged to be like
  2503.     buildings in a text adventure game.  The "Door" was a doorway
  2504.     out of the BBS and into another game altogether.  Please don't
  2505.     flame me if I'm out to lunch on this.
  2506.  
  2507.     Doors are defined in the DOORS.CTL file. Like the system
  2508.     configuration file and message area/file area configuration
  2509.     files in the previous chapters, this is a flat ASCII file which
  2510.     can be edited with any ASCII text processor.
  2511.  
  2512.     Once you have edited DOORS.CTL to your needs, you must then
  2513.     compile the doors configuration file into the DOORS.DAT file
  2514.     which NanoBBS can more easily read.  This can be done in two
  2515.     ways.  The simplest is to run the CONFIG program as you did for
  2516.     the NODE1.CTL general config file.  Tbis will also compile the
  2517.     DOORS.CTL file.  The other way is to run the MAKEDOOR.EXE
  2518.     program like so:
  2519.  
  2520.         MAKEDOOR {filename}
  2521.  
  2522.     ...where {filename} is the file name of the doors file you want
  2523.     to compile.  It is usually DOORS.CTL.
  2524.  
  2525.     This compiles your DOORS.CTL into DOORS.DAT the same way that
  2526.     CONFIG.EXE did, because CONFIG actually calls MAKEDOOR.EXE in
  2527.     the process of configuring everything.    However this way will
  2528.     only compile the doors configuration; file areas, message areas
  2529.     and general configuration remain unaffected when you use
  2530.     MAKEDOOR.
  2531.  
  2532.     Each door is defined by a set of lines in the DOORS.CTL file.
  2533.     The first line of each door's definition starts with DOOR and
  2534.     the door's number, and ends with END.
  2535.  
  2536.     NanoBBS 2.00 Documentation                Page 42
  2537.  
  2538.     Here is a basic example:
  2539.  
  2540.       door 1
  2541.           path c:\doors\rancho\
  2542.           command rancho.exe -l -a
  2543.           flavour dorinfo1.def
  2544.           access 50
  2545.           realname
  2546.       end
  2547.  
  2548.     The preceding example calls Rancho Nevada.  It logs to the
  2549.     directory C:\DOORS\RANCHO\, and calls RANCHO.EXE with the -l -a
  2550.     command line parameters.  It requires an access level of 50 to
  2551.     access, uses a DORINFO1.DEF door info drop file, and will
  2552.     substitute the user's real name for the username.
  2553.  
  2554.       door 2
  2555.           path c:\doors\hiq\
  2556.           command %C /C hiq.bat
  2557.           flavour dorinfo1.def
  2558.           access 10
  2559.           lastname NLN
  2560.       end
  2561.  
  2562.     This example calls Hi-Q.  It logs to the C:\DOORS\HIQ\ directory
  2563.     and calls up COMMAND.COM, which in turn calls up HIQ.BAT.  We
  2564.     assume in this example that there is already a HIQ.BAT in place
  2565.     which takes the appropriate steps to run Hi-Q.    Access level 10
  2566.     is needed, and if the user is using a one-word pseudo, the last
  2567.     name NLN will be forced.
  2568.  
  2569.     ┌────────────────────────────┐
  2570.     │ A Complete Listing of      │
  2571.     │ All the Keywords Available │
  2572.     │ for DOORS.CTL          │
  2573.     └────────────────────────────┘
  2574.  
  2575.     PATH specifies the path where NanoBBS should change to before
  2576.          running the door.
  2577.  
  2578.     COMMAND specifies the executable filename and command line
  2579.         parameters needed to run the door.  Use %c /c to specify
  2580.         a fully pathed COMMAND.COM for running batch files.
  2581.  
  2582.         In the COMMAND parameter, you can substitute %n for the
  2583.         node number, %c for the COMMAND.COM comspec (which you
  2584.         need to execute batch files).  These will be translated
  2585.         into their full form when the door is run, e.g. if the
  2586.         user is on node 10, %n is translated automatically into
  2587.         10.  If you're running 4DOS, %c might translate into
  2588.         C:\4DOS\4DOS.COM.  Under plain vanilla DOS, %c would
  2589.         likely translate into C:\COMMAND.COM or perhaps
  2590.         C:\DOS\COMMAND.COM.  Note that to run a batch file, you
  2591.         MUST include the /C command line switch after the
  2592.         COMMAND.COM (or %c) and before the batch file name.
  2593.  
  2594.  
  2595.  
  2596.     NanoBBS 2.00 Documentation                Page 43
  2597.  
  2598.     FLAVOUR can be either DORINFO1.DEF, DORINFOX.DEF or DOOR.SYS.
  2599.         DORINFOX.DEF is a special "flavour" where the node
  2600.         number is built into the filename, e.g. DORINFO2.DEF,
  2601.         DORINF25.DEF, DORIN132.DEF etc.
  2602.  
  2603.     AGE is the minimum age a user has to be to use the door.
  2604.  
  2605.     ACCESS is the minimum access level a user must have to use the door
  2606.  
  2607.     REALNAME tells NanoBBS to use the real name instead of the user
  2608.         name
  2609.  
  2610.     LASTNAME tells NanoBBS what to put in for a last name if the
  2611.          user has a one-word handle.  If this statement is
  2612.          missing, the last name is left blank.
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.  
  2654.  
  2655.  
  2656.     NanoBBS 2.00 Documentation                Page 44
  2657.  
  2658.     ┌─┬─┬─┬─┬─┬─────────────────────────────────────┬─┬─┬─┬─┬─┐
  2659.     │ │ │ │ │ │ THE BLACK ART of BATCH FILE WRITING │ │ │ │ │ │
  2660.     └─┴─┴─┴─┴─┴─────────────────────────────────────┴─┴─┴─┴─┴─┘
  2661.  
  2662.     The Basics - Why Batch files?
  2663.  
  2664.     Batch files are an important part of any true DOS BBS, whether
  2665.     it be NanoBBS, Maximus, RemoteAccess, Opus, or any one of dozens
  2666.     of others on the market today.    Once you're inside the BBS,
  2667.     NanoBBS takes care of itself for you, but how you enter the BBS
  2668.     is under the control of your DOS batch files.
  2669.  
  2670.     There are several ways in which you can enter NanoBBS.
  2671.  
  2672.     - You can just type BBS at the prompt.    Assuming everything's OK
  2673.       configuration-wise, NanoBBS will assume you're in local mode
  2674.       and will present you with the logon prompt.  You may have to
  2675.       hit [Enter] first depending on your choice for that option.
  2676.       You can then log on, do your thing and log off, all the time
  2677.       never even looking at the modem.  And once you're done, you're
  2678.       back at the DOS prompt where you started.
  2679.  
  2680.     - You can put NanoBBS into its Wait-For-a-Call (WFC) mode.  This
  2681.       is achieved simply by typing BBS /W at the DOS prompt.
  2682.       NanoBBS will enter its WFC mode and will wait for one of the
  2683.       following:
  2684.  
  2685.         o An incoming modem call
  2686.         o An event
  2687.         o A local logon (using Alt-L)
  2688.         o An ESC key from the keyboard, indicating that it's
  2689.           time to exit.
  2690.  
  2691.       After any of the above are completed, NanoBBS exits back to
  2692.       DOS.
  2693.  
  2694.     - You can start up NanoBBS "Hot" from a mailer or as a sort of
  2695.       door.  This is done by specifying a baud rate with the /B
  2696.       command line switch.    When this switch is used, NanoBBS
  2697.       assumes that the modem is active and that a connection has
  2698.       already been made, and it begins an online session at the
  2699.       specified baud rate.    Once the session is finished, NanoBBS
  2700.       exits back to DOS.
  2701.  
  2702.     All of these methods basically call up NanoBBS once, run through
  2703.     a single online (or local) session, and then exit back to DOS.
  2704.     Of course, you want to be able to handle many calls in a row, so
  2705.     just using these methods by themselves isn't practical.
  2706.  
  2707.     This is where the batch files come in.    In an unattended BBS you
  2708.     need the BBS to go back to a Fidonet mailer or go back to
  2709.     waiting for a call after an online session is complete.
  2710.  
  2711.     This is done with batch files.
  2712.  
  2713.  
  2714.  
  2715.  
  2716.     NanoBBS 2.00 Documentation                Page 45
  2717.  
  2718.     ┌─────────────────────────┐
  2719.     │ The Simplest Batch File │
  2720.     └─────────────────────────┘
  2721.  
  2722.     Here is the simplest possible example of an unattended BBS batch
  2723.     file.  It makes some assumptions.
  2724.  
  2725.         BBS /W
  2726.         RUNBBS.BAT
  2727.  
  2728.     Firstly, it assumes that its own name is RUNBBS.BAT.  The second
  2729.     line re-cycles the batch file by non-recursively calling itself.
  2730.     It also assumes that your BBS.EXE is on the DOS path (see your
  2731.     PATH statement in AUTOEXEC.BAT).
  2732.  
  2733.     The problem with this batch file is that there's no way to get
  2734.     out of it unless you're REALLY quick with the Ctrl-Break key!
  2735.     It doesn't check to see if you had hit [Esc] to exit WFC
  2736.     (Waiting For Caller), nor does it try to process events.  All it
  2737.     can do is keep fielding calls.
  2738.  
  2739.     This problem is overcome with...
  2740.  
  2741.     ┌─────────────────────┐
  2742.     │ NanoBBS Errorlevels │
  2743.     └─────────────────────┘
  2744.  
  2745.     DOS provides a way for programs to communicate with DOS after
  2746.     the program has finished.  This is called an ERRORLEVEL.  What
  2747.     this is, is a number that the program passes back to DOS on
  2748.     completion, which is supposed to be a "what went wrong" code.
  2749.  
  2750.     NanoBBS doesn't use errorlevels the way the DOS programmers had
  2751.     in mind.  Instead, it uses the errorlevel to tell your batch
  2752.     file how the program finished: Did it exit normally?  Did the
  2753.     SysOp hit the Escape key?  Is an event being run?
  2754.  
  2755.     NanoBBS has two hardcoded errorlevels, and lets you define
  2756.     errorlevels for your events.  They are:
  2757.  
  2758.       SysOp hit ESCAPE at the WFC screen    : Errorlevel 1
  2759.  
  2760.       BBS Exited normally after an
  2761.       online or local session        : Errorlevel 0
  2762.  
  2763.       An Event is being run         : Errorlevel 2 thru 255
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.     NanoBBS 2.00 Documentation                Page 46
  2777.  
  2778.     Let's translate this into another example, this one of a much
  2779.     more practical (but still very simple) batch file:
  2780.  
  2781.         @ECHO OFF
  2782.         :TOP
  2783.         C:
  2784.         CD\BBS
  2785.         BBS /W
  2786.         IF ERRORLEVEL 2 GOTO TOP
  2787.         IF ERRORLEVEL 1 GOTO FINISH
  2788.         GOTO TOP
  2789.         :FINISH
  2790.         @ECHO BBS OFFLINE!
  2791.  
  2792.     This example uses two of DOS's batch file commands.  They are
  2793.     the GOTO command and the IF ERRORLEVEL command.
  2794.  
  2795.     Let's look at this example line by line.
  2796.  
  2797.         @ECHO OFF
  2798.     This just turns off DOS echoing, so that the appearance is
  2799.     neater when the batch file runs.
  2800.  
  2801.         :TOP
  2802.     This is a "label" declaration.  Later in the batch file there is a
  2803.     GOTO TOP command.  It will cause the batch file to go to this
  2804.     line and continue running from here.
  2805.  
  2806.         C:
  2807.         CD\BBS
  2808.     These lines just make sure that DOS is logged to the right
  2809.     directory.  It is possible for doors and external programs to
  2810.     change the current directory while the online BBS session is
  2811.     running, so we include these two lines to set right any such
  2812.     discrepancy.  Of course this is only an example; if you run your
  2813.     BBS in a directory other than C:\BBS\, you must change these
  2814.     lines to suit your paths.
  2815.  
  2816.         BBS /W
  2817.     This calls NanoBBS in WFC (Waiting For Call) mode.  When NanoBBS
  2818.     is finished it will present a DOS errorlevel which can be
  2819.     checked by the following two lines:
  2820.  
  2821.         IF ERRORLEVEL 2 GOTO TOP
  2822.     This checks the DOS errorlevel.  The errorlevel might be
  2823.     anywhere from 0 to 255.  However, all the errorlevels above 1
  2824.     are reserved for the events, so in this batch file we need only
  2825.     be concerned with errorlevels 0 and 1.    What this line does is
  2826.     check to see if any errorlevel ABOVE 1 (meaning from 2 to 255
  2827.     inclusively) is there.    If so, it uses the GOTO TOP part to
  2828.     "go" to the :TOP label above.  In this batch file, that means it
  2829.     will "loop" and call the BBS again.  If the errorlevel is below
  2830.     2, the batch file simply goes to the next line...
  2831.  
  2832.         IF ERRORLEVEL 1 GOTO FINISH
  2833.     This is similar to the above line.  Technically, this checks to
  2834.  
  2835.  
  2836.     NanoBBS 2.00 Documentation                Page 47
  2837.  
  2838.     see if the errorlevel is 1 or higher, but since the above line
  2839.     would've transferred control to the :TOP label, this line can
  2840.     really only do the GOTO FINISH if the errorlevel is exactly 1.
  2841.     Note that Errorlevel 1 is returned when you escape from WFC
  2842.     modem by hitting escape.  This line, then, breaks out of the
  2843.     "loop" formed by the batch file.  If you hit Escape at WFC,
  2844.     you'll get the DOS prompt back.  If NanoBBS exits for any other
  2845.     reason, it re-cycles - and calls itself again.
  2846.  
  2847.         GOTO TOP
  2848.     This "goes" back to the :TOP label.  Because the above IF
  2849.     ERRORLEVEL lines have checked all other errorlevels, this line
  2850.     can only be reached if the errorlevel is zero.    Errorlevel 0 is
  2851.     returned after an online session, so we want to "loop" back to
  2852.     the :TOP label.
  2853.  
  2854.         :FINISH
  2855.     This label indicates where the batch file should "GOTO" when
  2856.     you exit NanoBBS by hitting Escape at the WFC (Wait for Call)
  2857.     screen.  See the IF ERRORLEVEL 1 GOTO FINISH line a couple of
  2858.     lines up.
  2859.  
  2860.         @ECHO BBS OFFLINE!
  2861.     This is just a cosmetic line to indicate that the batch file has
  2862.     terminated normally.  If this example is run as shown, you
  2863.     should only see this if you actually hit Escape at the WFC
  2864.     screen.
  2865.  
  2866.     ┌────────────────────────────────────────────────────────────────┐
  2867.     │ IMPORTANT NOTE ABOUT ERRORLEVELS:                 │
  2868.     │                                 │
  2869.     │ Many DOS commands will change or clear the value of DOS's      │
  2870.     │ errorlevel variable.    For this reason, you MUST place your IF  │
  2871.     │ ERRORLEVEL checks immediately after the BBS call in the batch  │
  2872.     │ file.  If any DOS commands or other programs are used after     │
  2873.     │ the BBS, they may change the errorlevel and the result is that │
  2874.     │ the series of IF ERRORLEVEL statements will be invalid, and     │
  2875.     │ your batch file will not work properly.             │
  2876.     └────────────────────────────────────────────────────────────────┘
  2877.  
  2878.  
  2879.     ┌────────────────────────────────────────┐
  2880.     │ Using The Errorlevels Passed By Events │
  2881.     └────────────────────────────────────────┘
  2882.  
  2883.     Now that we have established the basic use of errorlevels, let
  2884.     us examine a more advanced example, which processes events.
  2885.  
  2886.     Here are the event examples in NODE1.CTL:
  2887.  
  2888.       event 1 All 00:00 100 $Midnight Door Updates
  2889.       event 2 All 04:00 110 Nightly Maintenance
  2890.       event 3 Thu 04:30 120 Semi-Weekly Maintenance
  2891.       event 3 Sun 05:00
  2892.       event 4 All 02:00 130 Galactic Empire Update (Thrice Daily!)
  2893.       event 4 All 10:00
  2894.       event 4 All 18:00
  2895.  
  2896.     NanoBBS 2.00 Documentation                Page 48
  2897.  
  2898.     So we have four events, and therefore four event errorlevels.
  2899.     Let's have a look at a batch file that would process these
  2900.     errorlevels.  I have included line numbers in {curly brackets}.
  2901.     You wouldn't actually use these line numbers in a real batch
  2902.     file...
  2903.  
  2904.         @ECHO OFF                        {1}
  2905.                                 {2}
  2906.         :TOP                        {3}
  2907.         C:                            {4}
  2908.         CD\BBS                        {5}
  2909.         BBS /W                        {6}
  2910.         IF ERRORLEVEL 131 GOTO TOP                {7}
  2911.         IF ERRORLEVEL 130 GOTO GALACTIC            {8}
  2912.         IF ERRORLEVEL 120 GOTO SEMIWEEKLY            {9}
  2913.         IF ERRORLEVEL 110 GOTO NIGHTLY            {10}
  2914.         IF ERRORLEVEL 100 GOTO MIDNIGHT            {11}
  2915.         IF ERRORLEVEL 1 GOTO FINISH             {12}
  2916.         GOTO TOP                        {13}
  2917.                                 {14}
  2918.         :GALACTIC                        {15}
  2919.         C:                            {16}
  2920.         CD\DOORS\GALACTIC                    {17}
  2921.         G.EXE /M                        {18}
  2922.         GOTO TOP                        {19}
  2923.                                 {20}
  2924.         :SEMIWEEKLY                     {21}
  2925.         C:                            {22}
  2926.         CD \ECHOMAIL                    {23}
  2927.         SQPACK *.SQD                    {24}
  2928.         CD \                        {25}
  2929.         VOPT                        {26}
  2930.         GOTO TOP                        {27}
  2931.                                 {28}
  2932.         :NIGHTLY                        {29}
  2933.         C:                            {30}
  2934.         CD \                        {31}
  2935.         SCAN C: D: E: F:                    {32}
  2936.         GOTO TOP                        {33}
  2937.                                 {34}
  2938.         :MIDNIGHT                        {35}
  2939.         C:                            {36}
  2940.         CD \BBS                        {37}
  2941.         BBS /F                        {38}
  2942.         GOTO TOP                        {39}
  2943.                                 {40}
  2944.         :FINISH                        {41}
  2945.         @ECHO BBS OFFLINE!                    {42}
  2946.  
  2947.     If you're new at this, this example may seem a bit complex and
  2948.     overwhelming!  But in reality, many BBS batch files are even
  2949.     more complicated than this.  And really, if you break it down,
  2950.     it's not so difficult.
  2951.  
  2952.     This batch file is basically similar to the previous example.
  2953.     The first six lines are the same, establishing the :TOP label
  2954.  
  2955.  
  2956.     NanoBBS 2.00 Documentation                Page 49
  2957.  
  2958.     and calling the BBS in WFC mode.
  2959.  
  2960.     Lines 7 through 13 handle the errorlevels.
  2961.  
  2962.     In line 7, any errorlevel above 130 (the highest errorlevel
  2963.     defined in the EVENT statements) causes the batch file to loop
  2964.     back to :TOP.
  2965.  
  2966.     In line 8, the batch file checks for errorlevel 130.  If the
  2967.     errorlevel is exactly 130, the batch file transfers to the
  2968.     :GALACTIC label.
  2969.  
  2970.     In line 9, if the errorlevel is 120, the batch file goes to the
  2971.     :SEMIWEEKLY label.
  2972.  
  2973.     In line 10, if the errorlevel is 110, the batch file goes to the
  2974.     :NIGHTLY label.
  2975.  
  2976.     In line 11, if the errorlevel is 100, the batch file goes to the
  2977.     :MIDNIGHT label.
  2978.  
  2979.     Line 12 should loo familiar.  It checks for errorlevel 1, which
  2980.     is returned when you hit Escape in the WFC screen.  If the
  2981.     errorlevel is 1, the batch file exits.
  2982.  
  2983.     Line 13 simply loops back to the :TOP label.
  2984.  
  2985.     Lines 15 through 19 make up what happens when the errorlevel
  2986.     from BBS.EXE is 130.  In line 8, if the errorlevel is 130 the
  2987.     batch file branches to the :GALACTIC label, on line 15.  Here,
  2988.     several DOS commands change the directory to C:\DOORS\GALACTIC
  2989.     and run G.EXE.    After this is done, the GOTO TOP returns to the
  2990.     :TOP label, to await another call.
  2991.  
  2992.     Similar groups of lines, starting with a label and ending with
  2993.     GOTO TOP, make up the commands that are called for each
  2994.     errorlevel.
  2995.  
  2996.     Finally, at line 41, we have the :FINISH label, and the way out.
  2997.  
  2998.  
  2999.     ┌─────────────────────────────────────┐
  3000.     │ Using batch files with Fido mailers │
  3001.     └─────────────────────────────────────┘
  3002.  
  3003.     One important thing that the above examples have in common is
  3004.     that they are all meant for stand-alone BBSes - BBSes which
  3005.     answer the phone themselves and don't have to use a mailer
  3006.     program like Binkleyterm or Frontdoor.    However, when you use a
  3007.     mailer, the batch mechanism is usually quite different.
  3008.     Different mailers have different ways of passing off information
  3009.     such as baud rate, time remaining, etc. to the BBS.
  3010.  
  3011.     Generally, your batch file calls up the mailer instead of the
  3012.     BBS, and looks for the mailer's errorlevels instead of your
  3013.     BBS's errorlevels.
  3014.  
  3015.  
  3016.     NanoBBS 2.00 Documentation                Page 50
  3017.  
  3018.  
  3019.     Here is an example batch file called RUN.BAT which works with
  3020.     BinkleyTerm.
  3021.  
  3022.         @echo off
  3023.         :top
  3024.         c:
  3025.         cd\bink
  3026.         bt
  3027.         if errorlevel 144 bbsbatch.bat
  3028.         if errorlevel 120 bbsbatch.bat
  3029.         if errorlevel 100 goto mail
  3030.         if errorlevel 96 bbsbatch.bat
  3031.         if errorlevel 79 goto domaint
  3032.         if errorlevel 72 bbsbatch.bat
  3033.         if errorlevel 48 bbsbatch.bat
  3034.         if errorlevel 24 bbsbatch.bat
  3035.         if errorlevel 12 bbsbatch.bat
  3036.         if errorlevel 3 bbsbatch.bat
  3037.         if errorlevel 1 goto done
  3038.         goto top
  3039.  
  3040.         :domaint
  3041.  
  3042.         @echo *** Now Doing Daily Maintenance
  3043.         call c:\flit\filelist.bat
  3044.         call c:\batch\msgmaint.bat
  3045.         goto top
  3046.  
  3047.         :mail
  3048.         c:
  3049.         cd\squish
  3050.         squish in out squash
  3051.         goto top
  3052.  
  3053.         :done
  3054.  
  3055.     In the example on the previous page, we check for errorlevels
  3056.     passed by BinkleyTerm. One of BinkleyTerm's features is that
  3057.     when there is a BBS connect (that is, when the user hits Escape
  3058.     upon connection to BinkleyTerm) Binkley exits with an errorlevel
  3059.     which is based on the connect baud rate.  This errorlevel is the
  3060.     baud rate divided by 100, e.g. errorlevel 24 for 2400 baud,
  3061.     errorlevel 96 for 9600 baud, etc.
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.     NanoBBS 2.00 Documentation                Page 51
  3077.  
  3078.     ┌───────────────────────────────────────────────────────────────┐
  3079.     │ Aside:                            │
  3080.     │                                │
  3081.     │ Remember I mentioned that errorlevels can be from 0 to 255?    │
  3082.     │ This is true, but it's not a problem to pass, or check for,   │
  3083.     │ an errorlevel above 255.  What happens is that the errorlevel │
  3084.     │ is "rolled over" so that it is less than 255.  In technical   │
  3085.     │ terms, the errorlevel is handled by DOS as if it were modulo    │
  3086.     │ 256, or the remainder of the actual errorlevel divided by 256.│
  3087.     │                                │
  3088.     │ So, if you have a V.34 modem, Binkley may try to pass     │
  3089.     │ errorlevel 288 - for 28800 baud.  This is fine, and you can    │
  3090.     │ legally use a statement like IF ERRORLEVEL 288 with no    │
  3091.     │ problems but be cautioned that errorlevel 288 is the same as    │
  3092.     │ errorlevel 32 as far as DOS is concerned!  288 modulo 256 is    │
  3093.     │ 32.  So if you wanted to use errorlevel 32 for something else,│
  3094.     │ you would run into a conflict here.                │
  3095.     │                                │
  3096.     │ As long as you are aware of this potential conflict, you can    │
  3097.     │ write your batch file so as to avoid it.            │
  3098.     └───────────────────────────────────────────────────────────────┘
  3099.  
  3100.     In the above example, we start off by changing to the
  3101.     BinkleyTerm directory and running BT.EXE.
  3102.  
  3103.     After that, the IF ERRORLEVEL statements check for numerous
  3104.     errorlevels.  Binkley generates a different errorlevel for each
  3105.     baud rate and this batch file checks for errorlevels 144, 120,
  3106.     96, 72, 48, 24, 12 and 3.  Since all of these errorlevels
  3107.     indicate a BBS session rather than a BinkleyTerm event, they all
  3108.     cause the same thing to occur: a batch file called BBSBATCH.BAT
  3109.     is called.  We'll look at BBSBATCH.BAT momentarily; it is a very
  3110.     important part of this method.
  3111.  
  3112.     The other errorlevels have various functions.  Errorlevel 100
  3113.     causes a jump to the :MAIL label, where several DOS commands
  3114.     pack and unpack echomail using Lanius' SquishMail system.
  3115.     Errorlevel 79 jumps to the :DOMAINT label, which in turn calls a
  3116.     couple of other batch files (using the dos CALL command) which
  3117.     might in turn call numerous daily maintenance routines.  In both
  3118.     cases, the batch file returns to :TOP to call up Binkley again.
  3119.  
  3120.     BinkleyTerm generates a one line batch file called BBSBATCH.BAT.
  3121.     This is called by the batch file above, and it looks something
  3122.     like this:
  3123.  
  3124.         SPAWNBBS 14400 14400 1 46 /Arq
  3125.  
  3126.     But what is SPAWNBBS, you may ask?  If you guessed it's another
  3127.     batch file, you're right!  You may be thinking that this is
  3128.     getting unnecessarily complicated, but this actually gives the
  3129.     mailer incredible flexibility in dealing with different BBSes.
  3130.  
  3131.     Before we look at SPAWNBBS.BAT, let's examine the above
  3132.     one-liner.  The first 14400 is the baud rate.  We can pass this
  3133.     on to NanoBBS using the /B switch, and in fact we must in order
  3134.  
  3135.  
  3136.     NanoBBS 2.00 Documentation                Page 52
  3137.  
  3138.     for it to work from a mailer.  We can ignore the second 14400
  3139.     for now.  The third parameter, 1, is the com port. NanoBBS gets
  3140.     its com port information from its config file so this is not
  3141.     needed either.    After that is the time left until the next
  3142.     mailer event, in minutes.  This can be passed to NanoBBS using
  3143.     the /T command line switch, so that NanoBBS enforces your
  3144.     mailer's events for you.  The last parameter is the connect
  3145.     information passed back by the modem, e.g. CONNECT 14400/ARQ
  3146.     would produce the /Arq shown above.
  3147.  
  3148.     Unfortunately, Binkley is fixed in the format of this batch
  3149.     file, so we need a third batch file to translate it into
  3150.     something NanoBBS can be called from.  This is where
  3151.     SPAWNBBS.BAT comes in.    Here is an example SPAWNBBS.BAT:
  3152.  
  3153.         c:
  3154.         cd\bbs
  3155.         bbs -cnode2 -b%1 -t%4
  3156.         c:
  3157.         cd\bink
  3158.         run
  3159.  
  3160.     See the parameters in line 3?  -cnode2 tells NanoBBS to use
  3161.     NODE2.DAT (which means you have to CONFIG NODE2), and -b%1 means
  3162.     that NanoBBS is to use the %1 DOS variable with the -b
  3163.     (baudrate) switch.  And, -t%4 means that NanoBBS is to use the
  3164.     %4 DOS variable with the -t (time left) switch.
  3165.  
  3166.     What does that mean?  Well, DOS lets you pass parameters to
  3167.     batch files.  Up to 9 of them.    So, let's look at BBSBATCH.BAT
  3168.     again and its parameters:
  3169.  
  3170.               %1    %2  %3 %4  %5
  3171.              ----- ----- - -- ----
  3172.         SPAWNBBS 14400 14400 1 46 /Arq
  3173.  
  3174.     When we call SPAWNBBS.BAT like this, as this BBSBATCH.BAT does,
  3175.     %1 contains the value 14400.  %4 contains the value 46.
  3176.  
  3177.     This means that the line
  3178.  
  3179.         bbs -cnode2 -b%1 -t%4
  3180.  
  3181.     really means
  3182.  
  3183.         bbs -cnode2 -b14400 -t46
  3184.  
  3185.     and NanoBBS will run at 14400 bps, on whatever com port is
  3186.     defined in NODE2.CTL, and will impose a 46 minute maximum limit
  3187.     so that the mailer's event can run on time.
  3188.  
  3189.     Note that after the BBS runs, no errorlevel checking is done.
  3190.     This is because NanoBBS events are really only relevant to WFC
  3191.     mode, which is nonexistent when you run NanoBBS this way.
  3192.  
  3193.     Once the BBS has finished running, the SPAWNBBS.BAT logs back to
  3194.  
  3195.  
  3196.     NanoBBS 2.00 Documentation                Page 53
  3197.  
  3198.     the mailer directory and calls up the original RUN.BAT again.
  3199.  
  3200.  
  3201.     Let's break this whole complicated mess down into steps.
  3202.  
  3203.          ┌───────────────────────────────────────┐
  3204.          │ RUN.BAT - Runs the mailer, and checks │
  3205.          │ errorlevels for mailer events or BBS  ├<───┐
  3206.          │ callers.                 │    │
  3207.          └───────────────────┬───────────────────┘    │
  3208.                     \│/              /│\
  3209.          ┌───────────────────┴────────────────────┐   │
  3210.          │ Mailer generates one-line BBSBATCH.BAT │   │
  3211.          └───────────────────┬────────────────────┘   │
  3212.                     \│/               │
  3213.             ┌────────────────┴────────────────┐       │
  3214.             │ BBSBATCH.BAT calls SPAWNBBS.BAT │      /│\
  3215.             └────────────────┬────────────────┘       │
  3216.                     \│/               │
  3217.           ┌──────────────────┴─────────────────────┐  │
  3218.           │ SPAWNBBS.BAT takes the %1 and %4 batch │  │
  3219.           │  variables and passes them to NanoBBS. │  │
  3220.           └──────────────────┬─────────────────────┘  │
  3221.                     \│/              /│\
  3222.           ┌──────────────────┴─────────────────────┐  │
  3223.           │ Once NanoBBS is finished, SPAWNBBS.BAT │  │
  3224.           │   returns to the RUN.BAT batch file.   ├──┘
  3225.           └────────────────────────────────────────┘
  3226.  
  3227.     Here is another example of a batch file that works with
  3228.     Binkleyterm, but it can do the whole thing in one batch file,
  3229.     without needing the SPAWNBBS.BAT file or Binkley's BBSBATCH.BAT
  3230.     file.  It is slightly less sophisticated in that it is oblivious
  3231.     to Binkley's events and will not try to force them.  If you must
  3232.     force BinkleyTerm events, don't write your batch file this
  3233.     way...
  3234.  
  3235.             @echo off
  3236.             :top
  3237.             c:
  3238.             cd\bink
  3239.             bt
  3240.             if errorlevel 144 goto bbs14400
  3241.             if errorlevel 120 goto bbs12000
  3242.             if errorlevel 100 goto mail
  3243.             if errorlevel 96 goto bbs9600
  3244.             if errorlevel 79 goto domaint
  3245.             if errorlevel 72 goto bbs7200
  3246.             if errorlevel 48 goto bbs4800
  3247.             if errorlevel 24 goto bbs2400
  3248.             if errorlevel 12 goto bbs1200
  3249.             if errorlevel 3 goto bbs300
  3250.             if errorlevel 1 goto done
  3251.             goto top
  3252.  
  3253.             :bbs14400
  3254.                           (continued next page)
  3255.  
  3256.     NanoBBS 2.00 Documentation                Page 54
  3257.  
  3258.     (continuing from previous page)
  3259.  
  3260.             c:
  3261.             cd\bbs
  3262.             bbs.exe -cnode1 -b14400
  3263.             goto top
  3264.             :bbs12000
  3265.             c:
  3266.             cd\bbs
  3267.             bbs.exe -cnode1 -b12000
  3268.             goto top
  3269.             :bbs9600
  3270.             c:
  3271.             cd\bbs
  3272.             bbs.exe -cnode1 -b9600
  3273.             goto top
  3274.             :bbs7200
  3275.             c:
  3276.             cd\bbs
  3277.             bbs.exe -cnode1 -b7200
  3278.             goto top
  3279.             :bbs4800
  3280.             c:
  3281.             cd\bbs
  3282.             bbs.exe -cnode1 -b4800
  3283.             goto top
  3284.             :bbs2400
  3285.             c:
  3286.             cd\bbs
  3287.             bbs.exe -cnode1 -b2400
  3288.             goto top
  3289.  
  3290.             :bbs1200
  3291.             c:
  3292.             cd\bbs
  3293.             bbs.exe -cnode1 -b1200
  3294.             goto top
  3295.             :bbs300
  3296.             c:
  3297.             cd\bbs
  3298.             bbs.exe -cnode1 -b300
  3299.             goto top
  3300.  
  3301.             :domaint
  3302.  
  3303.             @echo *** Now Doing Daily Maintenance
  3304.             call c:\flit\filelist.bat
  3305.             call c:\batch\msgmaint.bat
  3306.             goto top
  3307.  
  3308.             :mail
  3309.             c:
  3310.             cd\squish
  3311.             squish in out squash
  3312.             goto top
  3313.  
  3314.             :done
  3315.  
  3316.     NanoBBS 2.00 Documentation                Page 55
  3317.  
  3318.     See what the preceding batch file does?  It actually goes to a
  3319.     different part of the batch file for each baud rate.  Thus the BBS
  3320.     is called with the right baud rate based on the errorlevel Binkley
  3321.     passes.
  3322.  
  3323.     ┌──────────────────────────────────────────────────────────────┐
  3324.     │ Similar batch files are possible with virtually any DOS      │
  3325.     │ mailer you can imagine.  In particular, Front Door will work │
  3326.     │ with the first set of example batch files with only minor    │
  3327.     │ modifications to the batch files.  Remember, READ YOUR       │
  3328.     │ MAILER INSTRUCTIONS, particularly the part dealing with      │
  3329.     │ errorlevels and BBS Batch Files, before you write a batch    │
  3330.     │ file you will be relying on!                       │
  3331.     │                                   │
  3332.     │ And very importantly, TEST your batch files.    If you have    │
  3333.     │ more than one line, call your BBS on the other line, at      │
  3334.     │ various baud rates, and just make sure everything's OK. Get  │
  3335.     │ a friend with a mailer to send you netmail.  Watch it come   │
  3336.     │ in and make sure it unpacks.    You should comment out the     │
  3337.     │ @echo off statements while you're debugging your batch files │
  3338.     │ so that you can see what's going on.                         │
  3339.     │                                   │
  3340.     │ Don't be afraid to ask for help from other SysOps!           │
  3341.     └──────────────────────────────────────────────────────────────┘
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353.  
  3354.  
  3355.  
  3356.  
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  
  3371.  
  3372.  
  3373.  
  3374.  
  3375.  
  3376.     NanoBBS 2.00 Documentation                Page 56
  3377.  
  3378.     ╔═╦══════════════════════════╦═╗
  3379.     ║ ║ NanoBBS Utility Programs ║ ║
  3380.     ╚═╩══════════════════════════╩═╝
  3381.  
  3382.     CONFIG.EXE    - The NanoBBS General Configuration Compiler.
  3383.               See the chapter entitled "The Configuration
  3384.               File" for complete details on the use of this
  3385.               program.
  3386.  
  3387.     MMB.EXE     - The NanoBBS Message Base Configuration Compiler
  3388.  
  3389.     MFB.EXE     - The NanoBBS File Base Configuration Compiler
  3390.  
  3391.     MAKEDOOR.EXE    - The NanoBBS Doors Configuration Compiler
  3392.  
  3393.     ┌─────────┐
  3394.     │ UFO.EXE │
  3395.     └─────────┘
  3396.  
  3397.     UFO.EXE compiles the text source files for UFO scripts into .BBS
  3398.     files which are readable by NanoBBS.  Please see the section on
  3399.     UFO commands for more information on the structure and syntax of
  3400.     the source files.
  3401.  
  3402.     UFO.EXE has only one parameter, that is the filename to be
  3403.     compiled.  There are no command line switches or other options.
  3404.     If the filename has no path, the current path is assumed.  If it
  3405.     has no extension, .UFO is assumed.
  3406.  
  3407.     ┌─────────────┐
  3408.     │ VIEWUFO.EXE │
  3409.     └─────────────┘
  3410.  
  3411.     VIEWUFO.EXE emulates the BBS's UFO syntax parser (in fact it
  3412.     contains a copy of the UFO kernal).  It is used for previewing
  3413.     your UFO scripts without having to fire up the BBS and log in,
  3414.     possibly having to wade through many menus to get to the one
  3415.     piece of UFO code you want to test.  With VIEWUFO that is not
  3416.     necessary; you can supply the name of any .BBS file on the
  3417.     command line.  If no path is given, VIEWUFO first looks in the
  3418.     current directory and then in the "textpath" directory defined
  3419.     in the config control file NODE1.CTL (or whatever you've chosen
  3420.     to name it).  The file name is, of course, mandatory but you
  3421.     have another optional parameter: You can emulate the session
  3422.     with any user in your user file by supplying the /U parameter
  3423.     after the filename.  The /u should be immediately followed by
  3424.     either the user's number or name if it's a one word pseudo.
  3425.  
  3426.     Examples: VIEWUFO MENU will view a file called MENU.BBS.
  3427.  
  3428.           VIEWUFO MENU /U0 will load the first user record
  3429.                    (should be the sysop!!!) and treat
  3430.                    all functions with that user's access
  3431.                    level, flags and other variables.
  3432.  
  3433.           VIEWUFO MENU /UTommy will load "Tommy" (if present).
  3434.  
  3435.  
  3436.     NanoBBS 2.00 Documentation                Page 57
  3437.  
  3438.           VIEWUFO MENU /UJohn Smith is invalid and will attempt
  3439.                         to find a user whose whole
  3440.                         name is just "John".  I
  3441.                         might do something about
  3442.                         this in the next version.
  3443.  
  3444.     ┌───────────┐
  3445.     │ NCOMP.EXE │
  3446.     └───────────┘
  3447.  
  3448.     NCOMP.EXE is the NanoBBS language compiler.  It is NOT the same
  3449.     as UFO.EXE and its function should not be confused with UFO.EXE.
  3450.     Where UFO compiles scripts which are used to alter and augment
  3451.     NanoBBS's function, NCOMP is used to configure the low-level
  3452.     system messages, such as the prompts, headers, footers, list
  3453.     formats, menus, and so forth.  NCOMP compiles flat text files
  3454.     which are named filename.TXL.  It will generate filename.LNG and
  3455.     filename.LDX files which are used by NanoBBS directly.    Embedded
  3456.     colours and a number of other embedded commands are allowed in
  3457.     language files, but UFO syntax is not and will be simply written
  3458.     in an ugly manner as though it were text.
  3459.  
  3460.     ┌─────────────┐
  3461.     │ DISTILL.EXE │
  3462.     └─────────────┘
  3463.  
  3464.     This program should be used VERY SPARINGLY - only when absolutely
  3465.     necessary.  It scans the USERFILE.DAT file (which contains all the
  3466.     user records) and physically removes any records which are marked
  3467.     "Deleted".  I do not recommend running this program because
  3468.  
  3469.         (1) Users above the ones you delete will get new user
  3470.             numbers, which will cause confusion, and
  3471.  
  3472.         (2) As a result of the new user numbers, many users'
  3473.             messagebase Last-Read pointers will be incorrect,
  3474.             causing unbelievable confusion and resulting in a flood
  3475.             of repetitive and negative feedback, and
  3476.  
  3477.         (3) You can always go on an advertising blitz and let the
  3478.             resulting influx of new users overwrite the ones you've
  3479.             marked deleted.
  3480.  
  3481.     Nevertheless, if you have a pressing need to reduce the physical
  3482.     size of your user file, this program will do it (provided you have
  3483.     marked the accounts you want to delete as "deleted").
  3484.  
  3485.     I have written this program against my better judgment, only
  3486.     because a great number of sysops have requested it.  I still think
  3487.     I should have left it to a third party author. Beware!
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.     NanoBBS 2.00 Documentation                Page 58
  3497.  
  3498.     ╔═╦════════════════════════╦═╗
  3499.     ║ ║ External Control Files ║ ║
  3500.     ╚═╩════════════════════════╩═╝
  3501.     ┌─────────────────────┐
  3502.     │ CONFIGURATION FILES │
  3503.     └─────────────────────┘
  3504.     ┌────────────┐
  3505.     │ LIMITS.CTL │
  3506.     └────────────┘
  3507.  
  3508.     This file defines the time limits and download limits for each
  3509.     access level.  Make sure that all access levels which are in use
  3510.     on your system are included in this file or else you will find
  3511.     some users not getting the access they deserve.  The exact
  3512.     syntax of this file is laid out in the example file which comes
  3513.     with NanoBBS.
  3514.  
  3515.     ┌────────────┐
  3516.     │ EXPIRY.CTL │
  3517.     └────────────┘
  3518.  
  3519.     This file defines what happens when a user's account expires.
  3520.     The syntax of this file is explained in the example file.
  3521.  
  3522.     ┌────────────┐
  3523.     │ CENSOR.CTL │
  3524.     └────────────┘
  3525.  
  3526.     This is a list of words which will be censored out of messages
  3527.     posted to areas with the CENSOR option turned on.  The example
  3528.     file lists just a few words that I think most sysops will not
  3529.     want to have posted in most areas.  You can add or delete any
  3530.     words you like.
  3531.  
  3532.     ┌──────────────┐
  3533.     │ TRASHCAN.CTL │
  3534.     └──────────────┘
  3535.  
  3536.     This is a list of unacceptable user names.  If a new user's name
  3537.     is the same as any line in this file the account will not be
  3538.     created and the user will be hung up on.  If a line starts with
  3539.     @ (the at sign) then the rest of the line is taken as a
  3540.     substring instead of doing an exact search.
  3541.  
  3542.     Examples:
  3543.  
  3544.     Say your TRASHCAN.CTL file contains:
  3545.  
  3546.     @CRAP
  3547.     @FRUG
  3548.     ALL
  3549.  
  3550.     It will disallow someone named "Joe Crapola" or "Motherfrugger"
  3551.     or "All" but will allow "Allison Smith".  For historical
  3552.     reasons, it is a good idea to make "ALL" an unacceptable name.
  3553.  
  3554.  
  3555.  
  3556.     NanoBBS 2.00 Documentation                Page 59
  3557.  
  3558.     ┌──────────────┐
  3559.     │ FIDOCOST.CTL │
  3560.     └──────────────┘
  3561.  
  3562.     This nifty little file is how NanoBBS can do Fidonet netmail
  3563.     costing without a nodelist!  Of course, it is left to your
  3564.     mailer to determine whether any of the nodes provided by your
  3565.     users really exist.  The syntax is quite simple and is described
  3566.     in full in the FIDOCOST.CTL example included with NanoBBS.
  3567.  
  3568.     ┌────────────┐
  3569.     │ COOKIE.CTL │
  3570.     └────────────┘
  3571.  
  3572.     This is an example input file for the [cookie] UFO keyword.  It
  3573.     has a few dozen memorable quotes and song lyrics, and is the one
  3574.     I use personally on THC Freedom Online BBS.
  3575.  
  3576.     ┌───────────┐
  3577.     │ NODE1.CTL │
  3578.     └───────────┘
  3579.  
  3580.     This is the general configuration file for the BBS.  See the
  3581.     included NODE1.CTL file for a full explanation of all the
  3582.     options in this file.  It must be compiled with the CONFIG.EXE
  3583.     program in order for NanoBBS to be able to use it.  This file
  3584.     can have any name, but to use any name other than NODE1, you
  3585.     must use the /C command line option.
  3586.  
  3587.     ┌─────────────┐
  3588.     │ MSGAREA.CTL │
  3589.     └─────────────┘
  3590.  
  3591.     This is the message area configuration file for the BBS.  See
  3592.     the included MSGAREA.CTL file for examples and a syntax
  3593.     explanation.  It must be compiled with the MMB.EXE program
  3594.     (which is called by the CONFIG.EXE program for your convenience)
  3595.     in order for NanoBBS to be able to use it.
  3596.  
  3597.     ┌──────────────┐
  3598.     │ FILEAREA.CTL │
  3599.     └──────────────┘
  3600.  
  3601.     This is the file area configuration file for the BBS.  See the
  3602.     included FILEAREA.CTL file for examples and a syntax
  3603.     explanation.  It must be compiled with the MFB.EXE program (also
  3604.     called by CONFIG.EXE) in order for NanoBBS to be able to use it.
  3605.  
  3606.     ┌───────────┐
  3607.     │ DOORS.CTL │
  3608.     └───────────┘
  3609.  
  3610.     This is the configuration file for doors (external games,
  3611.     utilities, etc) for the BBS.  See the included DOORS.CTL file
  3612.     for examples and a syntax explanation.    It mist be compiled with
  3613.     the MAKEDOOR.EXE program (also called by CONFIG.EXE) in order
  3614.  
  3615.  
  3616.     NanoBBS 2.00 Documentation                Page 60
  3617.  
  3618.     for NanoBBS to be able to use it.
  3619.  
  3620.     ┌──────────┐
  3621.     │ CHAT.CTL │
  3622.     └──────────┘
  3623.  
  3624.     This is the NanoCHAT configuration file.  Unlike the other
  3625.     configuration files, it does not need to be "compiled", and so
  3626.     no compiler is included with it.  Please see the NanoCHAT
  3627.     chapter for full details on the syntax and usage of this file.
  3628.  
  3629.     ┌──────────────┐
  3630.     │ MESSAGES.BAR │
  3631.     └──────────────┘
  3632.  
  3633.     This is the "Barricade File."
  3634.  
  3635.     Why barricades?
  3636.  
  3637.     Picture this situation: You have a user who's been well-behaved
  3638.     for the most part, perhaps she's uploaded a lot of stuff and
  3639.     sent you a donation.  But she happens to get on the wrong side
  3640.     of the moderator of a local echo conference and before she knows
  3641.     it she's barred from posting to that conference.  The moderator
  3642.     "directs" you to remove the user's access to the conference, but
  3643.     you don't want to delete the user from your system or reduce her
  3644.     access level; after all she's been a good and valued member of
  3645.     your board.
  3646.  
  3647.     What do you do?
  3648.  
  3649.     Well, in many other BBS programs you'd be between the rock and a
  3650.     hard place; you'd either have to swallow a big lump and reduce
  3651.     the user's access or you'd face the wrath of the moderator and
  3652.     the echomail hub.  But NanoBBS has a much less obnoxious
  3653.     solution.  It is the "barricade file."
  3654.  
  3655.     The barricade file is a a flat text file containing a list of
  3656.     message areas and the users who are NOT allowed to access them.
  3657.     It takes the following syntax (this is an example):
  3658.  
  3659.         Area  1
  3660.         The Hacker
  3661.         Joe Schmoe
  3662.         Dave Rhodes
  3663.         Area  15
  3664.         Tom Vu
  3665.         William J. Clinton
  3666.         Area  16
  3667.         Dave Rhodes
  3668.         Charlie Manson
  3669.  
  3670.     In this example, "The Hacker", "Joe Schmoe" and "Dave Rhodes"
  3671.     are not allowed to access message area #1.  "Tom Vu" and
  3672.     "William J. Clinton" are not allowed to access area 15.  Note
  3673.  
  3674.  
  3675.  
  3676.     NanoBBS 2.00 Documentation                Page 61
  3677.  
  3678.     that "Dave Rhodes" is not allowed to access area 1 nor 16.
  3679.  
  3680.     There is one more step required to activate a barricade for an
  3681.     area.  In addition to including the area number and the names of
  3682.     the barred users in MESSAGES.BAR, you also must include the
  3683.     BARRICADE parameter in the area's definition in the MSGAREA.CTL
  3684.     file.  Don't forget to run MMB or CONFIG when you make this
  3685.     change.  The reason for requiring this keyword is that we don't
  3686.     want to check the barricade file _every_ time we change area,
  3687.     only when we are changing to a barricaded area.  By imposing
  3688.     this small extra requirement the system can eliminate some
  3689.     unnecessary overhead and will run faster.
  3690.  
  3691.     ┌───────────┐
  3692.     │ FILES.BBS │
  3693.     └───────────┘
  3694.  
  3695.     This is the file used in the file sections to keep track of the
  3696.     files availabel for downloading, and their descriptions.  It
  3697.     follows the basic format used in many BBS software packages,
  3698.     with some extensions.
  3699.  
  3700.     Each line in the FILES.BBS is either a file entry or a
  3701.     "comment."  To make a line a comment, just make the first
  3702.     character of the line a space.
  3703.  
  3704.     A file entry line starts with the filename and extension (e.g.
  3705.     FILENAME.ASC) followed by a general description of the file.  In
  3706.     the classic FILES.BBS scheme, the description must fit on one
  3707.     line, but NanoBBS offers two methods to get around this limit,
  3708.     which we will get to briefly.
  3709.  
  3710.  
  3711.     Here is an example of the FILES.BBS format.
  3712.  
  3713.      This is a comment line.
  3714.     FILENAME.ZIP A generic file listing entry
  3715.     NANOBBS.ZIP  NanoBBS, The Ultimate BBS Software Achievement!
  3716.      This is another comment line.    Here are some more files.
  3717.     CATCLOCK.ANS An ANSI animated cat clock.
  3718.     MODEMSET.TXT How to set up your high speed modem.
  3719.     NEWGAME.ZIP  The latest VGA Shootemup from Violence Games, Inc.
  3720.  
  3721.     Notice how the comment lines are indented?  As long as the
  3722.     first character is a space, NanoBBS will display the comment
  3723.     line without trying to find a file.  If you inadvertently put in
  3724.     a comment line without the leading space, what will happen is
  3725.     that NanoBBS will attempt to find a file with a filename equal
  3726.     to the first word in your comment.  In the above examples, if
  3727.     the comment lines were not indented, NanoBBS would in each case
  3728.     try to find a file called THIS.  It would very likely report
  3729.     this file missing.
  3730.  
  3731.  
  3732.  
  3733.  
  3734.  
  3735.  
  3736.     NanoBBS 2.00 Documentation                Page 62
  3737.  
  3738.     EXTENDED FILE DESCRIPTIONS IN FILES.BBS
  3739.  
  3740.     Tilde-style extended descriptions:
  3741.  
  3742.     In FILES.BBS you can have descriptions on the same line up to
  3743.     240 characters (and they will be automatically word-wrapped),
  3744.     but that's not all!  By appending a tilde '~' character to a
  3745.     description, you can indicate that the following line, in its
  3746.     entirety, is also part of the description of the same file!  It
  3747.     too will be auto-wrapped and will appear to the user to be one
  3748.     long description.
  3749.  
  3750.     Here is an example, suppose this is a segment from a FILES.BBS:
  3751.  
  3752.     NANOBBS.ZIP  NanoBBS: Simply the most flexible BBS on the market!~
  3753.     Loaded with features! Internal X-Y-Zmodem and SEAlink transfers,~
  3754.     high speed file searching, internal QWK, an internal full screen~
  3755.     editor, and the legendary UFO scripting language only begin to~
  3756.     list the multitude of features in this amazing package! Shareware,~
  3757.     $69 for one or two nodes. From Whirlwind Software!
  3758.  
  3759.     Notice that the last line does not end in a tilde.  This is very
  3760.     important, because if it did, the next line would be counted as
  3761.     part of the description for NANOBBS.ZIP, even if it's really the
  3762.     FILES.BBS entry for the next file in the list!    Always remember
  3763.     never to put a tilde on the last line of an extended
  3764.     description!
  3765.  
  3766.     Now, this will come out looking something like this when the user
  3767.     lists the area:
  3768.  
  3769.     NANOBBS.ZIP  760348 94-12-01 NanoBBS: Simply the most flexible
  3770.                      BBS on the market! Loaded with
  3771.                      features! Internal X-Y-Zmodem and
  3772.                      SEAlink transfers, high speed file
  3773.                      searching, internal QWK, an
  3774.                      internal full screen editor, and
  3775.                      the legendary UFO scripting
  3776.                      language only begin to list the
  3777.                      multitude of features in this
  3778.                      amazing package! Shareware, $69 for
  3779.                      two nodes. From Whirlwind Software!
  3780.  
  3781.     Pretty neat, eh?  You can have descriptions of virtually
  3782.     limitless length using this technique, which is fortunate since
  3783.     so many FILE_ID.DIZ's seem to be just that: endless!
  3784.  
  3785.     Pipe-style extended descriptions:
  3786.  
  3787.     There is another format supported by NanoBBS for extended
  3788.     descriptions.  This is sometimes used on CD's, particularly on
  3789.     the Night Owl series.  After a FILES.BBS filename and
  3790.     description, the description can be continued by prepending a
  3791.     pipe symbol "|" to the following line.  As a matter of practice
  3792.     this should be further prepended with a space but NanoBBS does
  3793.     not require this.
  3794.  
  3795.  
  3796.     NanoBBS 2.00 Documentation                Page 63
  3797.  
  3798.     Here is an example of a valid pipe-style extended description:
  3799.  
  3800.     NANOBBS.ZIP  NanoBBS: Simply the most flexible BBS on the
  3801.      | market! Loaded with features! Internal X-Y-Zmodem and SEAlink
  3802.      | transfers, high speed file searching, internal QWK, an
  3803.      | internal full screen editor, and the legendary UFO scripting
  3804.      | language only begin to list the multitude of features in this
  3805.      | amazing package! Shareware, $69 for one or two nodes. From
  3806.      | Whirlwind Software!
  3807.  
  3808.     This example produces a description that looks identical to that
  3809.     of the tilde-style example shown previously.
  3810.  
  3811.     Tilde and Pipe style continuations can be used interchangeably
  3812.     within the same FILES.BBS file but not within the same extended
  3813.     description of an individual file.  Although the pipe style is more
  3814.     commonly used by other BBSes, the tilde style is considerably
  3815.     faster, due to the internal structure of the BBS.
  3816.  
  3817.     When NanoBBS extracts a FILE_ID.DIZ to its FILES.BBS file, a
  3818.     pipe-style extended description is generated with a pipe
  3819.     starting each line from FILE_ID.DIZ except the first.
  3820.  
  3821.     ┌────────────┐
  3822.     │ SEMAPHORES │
  3823.     └────────────┘
  3824.  
  3825.     When the user does certain things which are likely to require
  3826.     the services of an external program after s/he logs off (e.g.
  3827.     uploading a file, posting echomail etc.) there has to be a way
  3828.     for the BBS to pass this fact off to the batch file which called
  3829.     it, so that the batch file can in turn call the appropriate
  3830.     upload processor, echomail processor, news mangler, etc.
  3831.  
  3832.     The traditional way that most BBSes accomplish this is through
  3833.     errorlevels.  Unfortunately there are only 256 errorlevels, and
  3834.     with five special exit conditions and the possibility of more
  3835.     errorlevels being used by UFO scripts, it quickly becomes
  3836.     apparent that the errorlevel method is inadequate.  Therefore,
  3837.     NanoBBS uses semaphores to communicate with the batch file.
  3838.  
  3839.     A semaphore is simply a zero-length file that the batch file
  3840.     checks with an IF EXIST ... line.  If the file exists, NanoBBS
  3841.     is indicating a condition.  There can be a virtually unlimited
  3842.     number of semaphores versus 256 errorlevels.
  3843.  
  3844.     All of the semaphores are written to the system directory. Here
  3845.     are the possible semaphores implemented so far, where xxx is the
  3846.     node number of the node which generated the file:
  3847.  
  3848.     UFILExxx.SEM - when a user has uploaded any files during the
  3849.     call.  You can then run BBS /F to reindex the file section
  3850.     between calls - this is important if reindexing takes a while
  3851.     due to a large file count.
  3852.  
  3853.  
  3854.  
  3855.  
  3856.     NanoBBS 2.00 Documentation                Page 64
  3857.  
  3858.     EECHOxxx.SEM - when a user has entered Fidonet echomail.  You
  3859.     can use this to signal to the batch file that it should call
  3860.     Squish, Fastecho, Confmail, TosScan, or whatever you use to pack
  3861.     up your echomail.
  3862.  
  3863.     ENETMxxx.SEM - when a user has entered Fidonet netmail.
  3864.  
  3865.     EMAILxxx.SEM - when a user has entered Internet email.
  3866.  
  3867.     ENEWSxxx.SEM - when a user has entered Usenet news.
  3868.  
  3869.     ╔════════════════════╗
  3870.     ║ Files in /BBS/MISC ║
  3871.     ╚════════════════════╝
  3872.  
  3873.     Please note that in this early release of NanoBBS, most of the
  3874.     .RIP files do not yet exist.  NanoBBS will automatically
  3875.     substitute a .ANS or a .ASC file where a .RIP is expected and
  3876.     not found.
  3877.  
  3878.  
  3879.     FSEDHELP.ANS
  3880.  
  3881.     This is only available as a .ANS file, as it is the help screen
  3882.     for the NEd (NanoBBS EDitor) full-screen message editor, which
  3883.     requires ANSI.
  3884.  
  3885.     ┌───────────────────────────────────────────────────────────────┐
  3886.     │ Where the following files are concerned, NanoBBS is VERY    │
  3887.     │ flexible and VERY forgiving.    First, NanoBBS looks for a    │
  3888.     │ compiled UFO file, with an extension of .BBS.  Note that    │
  3889.     │ NanoBBS doesn't come with .BBS files for these files; if you  │
  3890.     │ want this option, you must create your own .UFO files and    │
  3891.     │ compile them. Anyhow, if NanoBBS does not find the .BBS file, │
  3892.     │ it then looks for a .RIP, .ANS, or a .ASC file, as is     │
  3893.     │ appropriate for the graphics standard the user is using, and    │
  3894.     │ it will fall back within these three, e.g. if a .RIP file is    │
  3895.     │ called for and not found, NanoBBS will look for a .ANS and    │
  3896.     │ then a .ASC.    Failing these, it tries .TXT, then no extension,│
  3897.     │ and only after all these have been exhausted does it finally    │
  3898.     │ give up and log an error.                    │
  3899.     └───────────────────────────────────────────────────────────────┘
  3900.  
  3901.     BADNAME.BBS
  3902.     BADNAME.RIP
  3903.     BADNAME.ANS
  3904.     BADNAME.ASC
  3905.  
  3906.     This file is displayed when a user applying for a new account
  3907.     enters a name that has been locked out in TRASHCAN.CTL.  You can
  3908.     transplant compiled UFO code into this file.
  3909.  
  3910.  
  3911.  
  3912.  
  3913.  
  3914.  
  3915.  
  3916.     NanoBBS 2.00 Documentation                Page 65
  3917.  
  3918.     BYE.BBS
  3919.     BYE.RIP
  3920.     BYE.ANS
  3921.     BYE.ASC
  3922.  
  3923.     This is the file that is displayed when a normal logoff occurs;
  3924.     it is a sort of "Goodbye, see you soon!" message.  You can
  3925.     transplant compiled UFO code into this file.
  3926.  
  3927.  
  3928.     DOORS.BBS
  3929.     DOORS.RIP
  3930.     DOORS.ANS
  3931.     DOORS.ASC
  3932.  
  3933.     This is the file that is displayed when the user goes into the
  3934.     Doors menu.
  3935.  
  3936.  
  3937.     FILEHELP.BBS
  3938.     FILEHELP.RIP
  3939.     FILEHELP.ANS
  3940.     FILEHELP.ASC
  3941.  
  3942.     This provides detailed help for the file section.  It can
  3943.     contain UFO syntax.  Only FILEHELP.BBS is included.
  3944.  
  3945.  
  3946.     MAINHELP.BBS
  3947.     MAINHELP.RIP
  3948.     MAINHELP.ANS
  3949.     MAINHELP.ASC
  3950.  
  3951.     This provides detailed help for the main menu.    It can contain
  3952.     UFO syntax.  Only MAINHELP.BBS is included.
  3953.  
  3954.  
  3955.     LOGO.BBS
  3956.     LOGO.RIP
  3957.     LOGO.ANS
  3958.     LOGO.ASC
  3959.  
  3960.     This is the file which is displayed when the user first
  3961.     connects.  It is commonly called the "logo screen."
  3962.  
  3963.  
  3964.     WELCOME.BBS
  3965.     WELCOME.RIP
  3966.     WELCOME.ANS
  3967.     WELCOME.ASC
  3968.  
  3969.     This is the file which is displayed after the user has
  3970.     successfully logged on.  It is commonly called the "welcome
  3971.     screen."
  3972.  
  3973.  
  3974.  
  3975.  
  3976.     NanoBBS 2.00 Documentation                Page 66
  3977.  
  3978.     ULPOLICY.BBS     DLPOLICY.BBS
  3979.     ULPOLICY.RIP     DLPOLICY.RIP
  3980.     ULPOLICY.ANS     DLPOLICY.ANS
  3981.     ULPOLICY.ASC     DLPOLICY.ASC
  3982.  
  3983.     These are the files displayed immediately prior to uploading
  3984.     and downloading, respectively.    Normally they would contain
  3985.     advice pertaining to acceptable uploads, ratio enforcement, etc.
  3986.  
  3987.  
  3988.     ┌────────────────────────────────────────────────────────────────┐
  3989.     │ Random Logo/Welcome Screens!                     │
  3990.     │                                 │
  3991.     │ Random welcome/logo screens are a popular feature of many     │
  3992.     │ BBSes, but few seem to support it internally as NanoBBS does.  │
  3993.     │                                 │
  3994.     │ You can randomize the "logo" files by using the LOGO-RIP.LST,  │
  3995.     │ LOGO-ANS.LST and LOGO-ASC.LST files.    You can also randomize     │
  3996.     │ the "welcome" files by using the WELC-RIP.LST, WELC-ANS.LST    │
  3997.     │ and WELC-ASC.LST files.  These are plain text files which     │
  3998.     │ contain a list of the files to be randomly chosen from. If you │
  3999.     │ want to use random welcome files, the LOGO-*.LST files should  │
  4000.     │ be present in your system directory (your "syspath").  If      │
  4001.     │ present, NanoBBS will, instead of displaying a LOGO.* file,     │
  4002.     │ will instead randomly choose a filename from the list.     │
  4003.     │ Otherwise it just uses the appropriate LOGO.* file.  The     │
  4004.     │ "welcome" files work in just the same way! Here is an          │
  4005.     │ example of LOGO-ANS.LST, as used on THC Freedom Online BBS.     │
  4006.     │                                 │
  4007.     │    THCLOGO1.ANS                         │
  4008.     │    THCLOGO2.ANS                         │
  4009.     │    THCLOGO5.ANS                         │
  4010.     │    THCLOGO6.ANS                         │
  4011.     │    THCLOGO7.ANS                         │
  4012.     │    THCLOGO8.ANS                         │
  4013.     │    THCLOGO9.ANS                         │
  4014.     │    THCLOGOA.ANS                         │
  4015.     │                                 │
  4016.     │ If the filenames in the list have no extension, NanoBBS     │
  4017.     │ assumes that they are located in the same directory with the     │
  4018.     │ other system text files documented in this section (your     │
  4019.     │ "textpath").                                                   │
  4020.     └────────────────────────────────────────────────────────────────┘
  4021.  
  4022.  
  4023.     EXPIRED.BBS
  4024.     EXPIRED.RIP
  4025.     EXPIRED.ANS
  4026.     EXPIRED.ASC
  4027.  
  4028.     This file is displayed when a user logs on whose account has
  4029.     just expired.  This file is not required as SYSMSG 50 in the
  4030.     language file is used for the same purpose (sysmsg 50 is
  4031.     displayed first).
  4032.  
  4033.  
  4034.  
  4035.  
  4036.     NanoBBS 2.00 Documentation                Page 67
  4037.  
  4038.     NEWUSER1.BBS
  4039.     NEWUSER1.RIP
  4040.     NEWUSER1.ANS
  4041.     NEWUSER1.ASC
  4042.  
  4043.     This is the file displayed prior to the user entering the "new
  4044.     user registration" procedure.
  4045.  
  4046.     NEWUSER2.BBS
  4047.     NEWUSER2.RIP
  4048.     NEWUSER2.ANS
  4049.     NEWUSER2.ASC
  4050.  
  4051.     This is the file displayed after the user completes the "new
  4052.     user registration" procedure.
  4053.  
  4054.     NEWS.BBS
  4055.     NEWS.RIP
  4056.     NEWS.ANS
  4057.     NEWS.ASC
  4058.  
  4059.     This is a "what's new" file displayed right after the "welcome"
  4060.     file has been displayed.
  4061.  
  4062.  
  4063.     ┌────────────────┐
  4064.     │ NanoCHAT Files │
  4065.     └────────────────┘
  4066.  
  4067.     $I0.BBS $I1.BBS $I2.BBS $I3.BBS $I4.BBS $I5.BBS $IZ.BBS
  4068.  
  4069.     These are the files displayed when a user types /I in NanoCHAT.
  4070.     For example, if the user types /I0, the file $I0.BBS is
  4071.     displayed.  Similarly, /I3 would invoke $I3.BBS.  /I can be used
  4072.     to invoke files up to six distinct characters long, e.g. /IRULES
  4073.     would invoke a file called $IRULES.BBS, and /ISYSOPS would
  4074.     invoke $ISYSOPS.BBS.  Note that these files can be UFO scripts
  4075.     (hence the .BBS extension).  You can create as many /I files as
  4076.     you want.
  4077.  
  4078.  
  4079.     $MA.BBS $MB.BBS $MC.BBS $MY.BBS $MZ.BBS
  4080.  
  4081.     These are the files displayed when a user types /M in NanoCHAT.
  4082.     Their operation is identical to the /I files above, except of
  4083.     course that /M files are periodically displayed to the user
  4084.     automatically.    Again, full UFO syntax is A-OK, names up to six
  4085.     characters long are fine, and you can have as many as you want.
  4086.  
  4087.  
  4088.     ACTION.HLP
  4089.  
  4090.     This is the help file for actions in NanoCHAT.    It isn't a UFO
  4091.     script but it can contain embedded colour codes.
  4092.  
  4093.  
  4094.  
  4095.  
  4096.     NanoBBS 2.00 Documentation                Page 68
  4097.  
  4098.     ACTION.LST
  4099.  
  4100.     This is a short list of actions for NanoCHAT.
  4101.  
  4102.  
  4103.     NANOCHAT.HLP
  4104.  
  4105.     This is the help file for NanoCHAT.  It is displayed when the
  4106.     caller types /?
  4107.  
  4108.     CHATCMD.CTL
  4109.  
  4110.     This is the control file which defines the command aliases use in
  4111.     NanoCHAT. This file contains a list of /commands that allow users
  4112.     to call up various functions from within NanoCHAT.
  4113.  
  4114.     This file's syntax is trivial: the command (up to 8 characters)
  4115.     followed by the filename of a compiled UFO file to call.  Non-UFO
  4116.     files can be called but they won't do much... Where no path is
  4117.     specified, the BBS assumes the SYSPATH as per the main config file.
  4118.     Where no extension is specified, the BBS assumes '.BBS' but will
  4119.     retry with other extensions if the file is not found.  You do not
  4120.     need to put the leading / on the command but the BBS will strip it
  4121.     for you if you do.
  4122.  
  4123.     You can optionally provide up to 14 parameters, which are mapped to
  4124.     up to the first 14 global UFO variables.  So the first parameter
  4125.     specified is mapped to [var01], the second to [var02] etcetera.
  4126.     Parameters are delimited by spaces; if you want to have spaces
  4127.     within a parameter, substitute underscores ("_") and the BBS will
  4128.     replace them with spaces.
  4129.  
  4130.     Examples:
  4131.  
  4132.     In the following example you may call a UFO file that contains only
  4133.     the canned "Today's Caller List" token.
  4134.  
  4135.     today    today.bbs
  4136.  
  4137.     This one might call a UFO file that calls up a door, for example
  4138.     Rancho Nevada.    Note that these aliases do not check for user
  4139.     access, keys, gender, age, etc, it's the responsibility of the UFO
  4140.     file to reject users who are not qualified to use a particular
  4141.     function.
  4142.  
  4143.     rancho    rancho.bbs
  4144.  
  4145.     This one might call up the entire files section canned menu!  But
  4146.     be very careful where you put this filename, because FILES.BBS is
  4147.     used for other things!    This might be considered an example of what
  4148.     NOT to do!
  4149.  
  4150.     files    files.bbs
  4151.  
  4152.     And this one illustrates the use of parameters.  Note that there
  4153.     are five parameters, and that the last one will have three spaces
  4154.     mapped into it...
  4155.  
  4156.     henry    henry.bbs    I'm 'enery the eighth I_am_I_am
  4157.  
  4158.     In the above example, the first five UFO variables will contain the
  4159.     following values when HENRY.BBS is run:
  4160.  
  4161.               [var01]    I'm
  4162.               [var02]    'enery
  4163.               [var03]    the
  4164.               [var04]    eighth
  4165.               [var05]    I am I am
  4166.  
  4167.     Note that in [var05] above the underscores have been changed into
  4168.     spaces...
  4169.  
  4170.         Those are direct parameters, but you can also specify user
  4171.         parameters with the following syntax:
  4172.  
  4173.         nuke    nuke.bbs        %1 %2 %3
  4174.  
  4175.         In the above example, the user can enter up to 3 parameters and
  4176.         they will be copied to VAR01, VAR02 and VAR03. e.g. the user could
  4177.         type:
  4178.  
  4179.                         /nuke tommy now please
  4180.  
  4181.         and it would execute NUKE.BBS with the following values:
  4182.  
  4183.                           [var01]       tommy
  4184.                           [var02]       now
  4185.                           [var03]       please
  4186.  
  4187.         User parameters and literals as in the previous example can be
  4188.         mixed and put in any combination, and note that regardless of what
  4189.         position they are used in, the user parameters always indicate
  4190.         which ordinal parameter the user typed, e.g. %3 is always the third
  4191.         user parameter even if it is used first or 43rd...
  4192.  
  4193.  
  4194.     NanoBBS 2.00 Documentation                Page 69
  4195.  
  4196.     ╔═╦═══════════════════════════════╦═╗
  4197.     ║ ║ KEYS WHILE THE USER IS ONLINE ║ ║
  4198.     ╚═╩═══════════════════════════════╩═╝
  4199.  
  4200.     ┌───────┐
  4201.     │ Alt-C │ Chat with the user.  ESC exits from Chat.  In chat,
  4202.     └───────┘ you can activate a capture buffer (for recording those
  4203.           "memorable" chat sessions) with the Alt-L (Chat
  4204.           Logging) key.
  4205.  
  4206.     ┌───────┐
  4207.     │ Alt-H │ Hangs up on the user.
  4208.     └───────┘
  4209.  
  4210.     ┌───────┐
  4211.     │ Alt-S │ Change the SysOp bar.  The sysop bar has several
  4212.     └───────┘ modes which display different information.  This key
  4213.           cycles through them.
  4214.  
  4215.     ┌───────┐
  4216.     │ Alt-E │ Invoke the user editor.  The user record of the user
  4217.     └───────┘ currently online will be presented but you can change
  4218.           to another user and you have access to all the
  4219.           functions of the BBS/E user editor.
  4220.  
  4221.     ┌───────┐
  4222.     │ Alt-F │ "Freeze" or "Unfreeze" time.  This key toggles between
  4223.     └───────┘ frozen and unfrozen time.  When time is frozen, time
  4224.           limits are not checked and the clock does not tick...
  4225.           however dead-man keyboard timeouts are still in full
  4226.           force.
  4227.  
  4228.     ┌───────┐
  4229.     │ Alt-J │ "J"ump to DOS.  This gets the path and filename for your
  4230.     └───────┘ command.com file straight from the COMPSPEC environment
  4231.           variable so it's automatic.  It swaps the program and
  4232.           all its variables out to a swap file (which can take a
  4233.           second or so) giving you the biggest DOS memory window
  4234.           possible.
  4235.  
  4236.     ┌──────┐
  4237.     │ PgDn │ Takes 5 minutes off the user's time remaining.
  4238.     └──────┘
  4239.  
  4240.     ┌──────┐
  4241.     │ PgUp │ Adds 5 minutes to the user's time remaining.
  4242.     └──────┘
  4243.  
  4244.     ┌────────────┐
  4245.     │ Down-arrow │ Takes 1 minute off the user's time remaining.
  4246.     └────────────┘
  4247.  
  4248.     ┌──────────┐
  4249.     │ Up-arrow │ Adds 1 minute to the user's time remaining.
  4250.     └──────────┘
  4251.  
  4252.  
  4253.  
  4254.     NanoBBS 2.00 Documentation                Page 70
  4255.  
  4256.     ┌─────┐
  4257.     │ ESC │ Aborts any file transfer in progress when the current
  4258.     └─────┘ block finishes.  In streaming protocols the BBS will
  4259.         wait for the block to be acknowledged by the other
  4260.         end before aborting the transfer, so this may not
  4261.         occur instantly - one end may be several blocks ahead
  4262.         of the other, depending on your FOSSIL buffer size.
  4263.  
  4264.     ┌────────────────────────┐
  4265.     │ F1 ... F10         │
  4266.     │ Shift-F1 ... Shift-F10 │
  4267.     │ Ctrl-F1 ... Ctrl-F10     │
  4268.     │ Alt-F1 ... Alt-F10     │
  4269.     └────────────────────────┘
  4270.  
  4271.     These are 40 sysop-definable keys each of which causes a
  4272.     compiled UFO file (ending in .BBS) to be run.  If the file for a
  4273.     particular key is not found an error message will be displayed
  4274.     to the sysop console only.  Here are the keys and the filenames
  4275.     they invoke (all the files must be in the BBS System directory):
  4276.  
  4277.      ╔═════════════════════╦═══════════════════════╗
  4278.      ║   Key      Filename ║   Key         Filename  ║
  4279.      ╠══════════╤══════════╬═══════════╤═══════════╣
  4280.      ║   F1     │ F1.BBS   ║ Shift-F1  │ SF1.BBS   ║
  4281.      ║   F2     │ F2.BBS   ║ Shift-F2  │ SF2.BBS   ║
  4282.      ║   F3     │ F3.BBS   ║ Shift-F3  │ SF3.BBS   ║
  4283.      ║   F4     │ F4.BBS   ║ Shift-F4  │ SF4.BBS   ║
  4284.      ║   F5     │ F5.BBS   ║ Shift-F5  │ SF5.BBS   ║
  4285.      ║   F6     │ F6.BBS   ║ Shift-F6  │ SF6.BBS   ║
  4286.      ║   F7     │ F7.BBS   ║ Shift-F7  │ SF7.BBS   ║
  4287.      ║   F8     │ F8.BBS   ║ Shift-F8  │ SF8.BBS   ║
  4288.      ║   F9     │ F9.BBS   ║ Shift-F9  │ SF9.BBS   ║
  4289.      ║   F10    │ F10.BBS  ║ Shift-F10 │ SF10.BBS  ║
  4290.      ╚══════════╧══════════╩═══════════╧═══════════╝
  4291.      ╔═════════════════════╦═══════════════════════╗
  4292.      ║   Key      Filename ║   Key         Filename  ║
  4293.      ╠══════════╤══════════╬═══════════╤═══════════╣
  4294.      ║  Alt-F1  │ AF1.BBS  ║  Ctrl-F1  │ CF1.BBS   ║
  4295.      ║  Alt-F2  │ AF2.BBS  ║  Ctrl-F2  │ CF2.BBS   ║
  4296.      ║  Alt-F3  │ AF3.BBS  ║  Ctrl-F3  │ CF3.BBS   ║
  4297.      ║  Alt-F4  │ AF4.BBS  ║  Ctrl-F4  │ CF4.BBS   ║
  4298.      ║  Alt-F5  │ AF5.BBS  ║  Ctrl-F5  │ CF5.BBS   ║
  4299.      ║  Alt-F6  │ AF6.BBS  ║  Ctrl-F6  │ CF6.BBS   ║
  4300.      ║  Alt-F7  │ AF7.BBS  ║  Ctrl-F7  │ CF7.BBS   ║
  4301.      ║  Alt-F8  │ AF8.BBS  ║  Ctrl-F8  │ CF8.BBS   ║
  4302.      ║  Alt-F9  │ AF9.BBS  ║  Ctrl-F9  │ CF9.BBS   ║
  4303.      ║  Alt-F10 │ AF10.BBS ║  Ctrl-F10 │ CF10.BBS  ║
  4304.      ╚══════════╧══════════╩═══════════╧═══════════╝
  4305.  
  4306.  
  4307.  
  4308.  
  4309.  
  4310.  
  4311.  
  4312.  
  4313.  
  4314.     NanoBBS 2.00 Documentation                Page 71
  4315.  
  4316.     ╔═╦═════════════════════════════════════════════╦═╗
  4317.     ║ ║ A TOUR OF THE WFC (WAITING FOR CALL) SCREEN ║ ║
  4318.     ╚═╩═════════════════════════════════════════════╩═╝
  4319.  
  4320.     When NanoBBS is waiting for a user, a screen called the WFC
  4321.     (Waiting for Call) screen is displayed.  The WFC, done up in
  4322.     stylish shades of blue, is designed to be informative and
  4323.     functional.  From the WFC, you can edit users, log on locally,
  4324.     temporarily disable the CD-ROM, and quickly exit back to DOS (much
  4325.     more quickly than most other BBSes!)
  4326.  
  4327.     The WFC displays a lot of information.
  4328.  
  4329.     Most noticeable is the time-of-day clock, with its 6-character-high
  4330.     digits.  If the BBS were ever to lock up in WFC, you'd have little
  4331.     trouble telling when it happened.
  4332.  
  4333.     Immediately below the time-of-day clock is a black bar which
  4334.     displays every character that comes in from the modem.    This is
  4335.     called the modem viewport.  This lets you see what's really going
  4336.     on when NanoBBS answers a call or initializes the modem, so that
  4337.     you can debug your configuration armed with as much information as
  4338.     possible.  Control characters, especially Carriage Returns and Line
  4339.     Feeds, are "expanded" into a human-readable form.
  4340.  
  4341.     Below the modem viewport is a 5-line status display.  This tells
  4342.     you what NanoBBS is doing at the present moment - initializing the
  4343.     modem, waiting for a call, executing an event, answering the phone,
  4344.     and so on.  Most of the time, it says "Now awaiting a call."
  4345.  
  4346.     Below the status display is the Next Event indicator.  This lets
  4347.     you know which event is scheduled to be run next and at what time
  4348.     it will run.  If you have no events defined, it just says "None."
  4349.  
  4350.     Below the Next Event Indicator, to the left, is a summary of the
  4351.     day's activity.  Some information about what happened yesterday is
  4352.     also shown, in parentheses.  This summary informs you of the total
  4353.     number of calls to date, the number of calls today (and yesterday),
  4354.     the number of connections today (and yesterday) - including those
  4355.     that don't result in an actual logon, the number of messages posted
  4356.     today (and yesterday), the number of files uploaded today (and
  4357.     yesterday), the number of files downloaded today (and yesterday),
  4358.     the time of the last connection, and the total number of user
  4359.     records in USERFILE.DAT.
  4360.  
  4361.     To the right of the daily summary is a log of the last eight calls
  4362.     to the BBS, including the node number, the username of the caller,
  4363.     the baud rate the user was calling at, the time of the call, and
  4364.     the number of times that user has called in total.
  4365.  
  4366.  
  4367.  
  4368.  
  4369.  
  4370.  
  4371.  
  4372.  
  4373.  
  4374.     NanoBBS 2.00 Documentation                Page 72
  4375.  
  4376.     There are several keys you can use to perform various functions in
  4377.     the WFC.  In brief, they are:
  4378.  
  4379.         Alt-C - This toggles the "CD-ROM Out" flag so that users
  4380.             cannot download or list files on your CD-ROMs.
  4381.             This way, you can use your CD-ROM drive for other
  4382.             purposes temporarily - perhaps to play a game or
  4383.             set up a new CD.
  4384.  
  4385.         Alt-E - This invokes the User Editor.  The user editor
  4386.             allows you to edit every important field in each
  4387.             user's record.  See the next chapter for details on
  4388.             the User Editor.
  4389.  
  4390.         Alt-H - This hangs up the modem.  If you have Caller ID and
  4391.             you can see on the display that someone undesirable
  4392.             is trying to connect, you can hang up on them
  4393.             before the modems have even finished negotiating.
  4394.             Or, if (for whatever reason) the BBS exits without
  4395.             hanging up, you can use this to quickly hang up.
  4396.  
  4397.         Alt-I
  4398.           or
  4399.         Alt-R - Either of these keys will re-initialize the modem.
  4400.             Some modems don't always reset properly, with this
  4401.             key you can force a re-initialization and then use
  4402.             the modem viewport and status display to verify
  4403.             that the modem is initialized properly.
  4404.  
  4405.         Alt-L - Local logon.  This lets you log on just like a
  4406.             user, only all input and output is to the local
  4407.             console only rather than to the modem.
  4408.  
  4409.         ESC   - Escape to DOS.
  4410.  
  4411.  
  4412.  
  4413.  
  4414.  
  4415.  
  4416.  
  4417.  
  4418.  
  4419.  
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.  
  4427.  
  4428.  
  4429.  
  4430.  
  4431.  
  4432.  
  4433.  
  4434.     NanoBBS 2.00 Documentation                Page 73
  4435.  
  4436.     ╔═╦═══════════════════════════╦═╗
  4437.     ║ ║ A TOUR OF THE USER EDITOR ║ ║
  4438.     ╚═╩═══════════════════════════╩═╝
  4439.  
  4440.     The NanoBBS internal User Editor is a convenient way to inspect and
  4441.     edit user accounts.
  4442.  
  4443.     When you enter the User Editor from the WFC, you are presented with
  4444.     a display of the first user record in the user file - normally your
  4445.     own.  However, if you enter the user editor while a caller is
  4446.     online, the editor shows you the user record for that user instead.
  4447.  
  4448.     There is a great deal of information shown in the user editor
  4449.     screen.  In the upper left hand corner, the user's record number
  4450.     and the total number of users is shown, along with the date and
  4451.     time of the first and most recent calls the user has made to your
  4452.     system.
  4453.  
  4454.     Below that is the editable information.  Each editable field is
  4455.     preceded with a key, shown in a 3-D highlight, which you can press
  4456.     to edit that field.  For example, to edit the user's username, hit
  4457.     the 1 key.  The user name field will turn red and blank out, and
  4458.     the cursor will appear there.  You can now type in a new name and
  4459.     hit Enter to store it, or you can skip it (preserving the name) by
  4460.     just hitting Enter.
  4461.  
  4462.     The fields are more or less self-explanatory, here is a list:
  4463.  
  4464.     [1] User Name.    This is the user's name or pseudonym, and is
  4465.         how the user is normally known to other callers.
  4466.  
  4467.     [2] Real Name.    This is the user's real name.  It can be the same
  4468.         as the User Name.  This is the name that is used in message
  4469.         areas that have the REALNAME keyword active, and is, of
  4470.         course, useful for security purposes.
  4471.  
  4472.     [3] Password.  This is the user's password to get into the system.
  4473.         Although the BBS requires users to select a password of four
  4474.         letters or more when they first log on, you can set the
  4475.         password to be any length in the User Editor.  You can even
  4476.         create "open" accounts that have no password, just by blanking
  4477.         the password out!
  4478.  
  4479.     [4] Location.  This is usually the city and state or province or
  4480.         country the user is calling from.  It's always nice to know
  4481.         when callers enjoy your system enough to call long distance.
  4482.  
  4483.     [5] Telephone Number.  This is self explanatory.  If a user ever
  4484.         loses her password or appears to have been hacked, you'll want
  4485.         to phone her.
  4486.  
  4487.     [6] Access Level.  This is the main way in which privilege is
  4488.         dispensed on a NanoBBS system.  Generally speaking, the higher
  4489.         the user's access level, the more she can do.  You can set
  4490.         minimum access levels for many functions in the BBS.  See
  4491.         LIMITS.CTL and the various message base and file area control
  4492.         files for more information.
  4493.  
  4494.     NanoBBS 2.00 Documentation                Page 74
  4495.  
  4496.     [7] Birthdate.    This is stored as a string because DOS dates start
  4497.         in 1980.  The format is YY-MM-DD.
  4498.  
  4499.     [8] Sex.  This can be Male, Female or Undisclosed.  Hitting the 8
  4500.         key toggles between the three choices.  If a user is
  4501.         undisclosed, she will have some privacy but she will not be
  4502.         able to enter any message bases that are limited to one sex.
  4503.         Nobody said that privacy is without cost!
  4504.  
  4505.     [9] Keys.  There are 32 "keys" which are just boolean flags - on or
  4506.         off.  They are designated by a letter or number, 0 to 9 and A
  4507.         to V.  They are used to give access to certain functions to
  4508.         specific individuals regardless of (or in concert with) the
  4509.         access level.  To edit this just hit 9 and type all the keys
  4510.         you want turned on, leaving out the keys you want off.
  4511.  
  4512.     [A] Downloads.    This is the number of kilobytes the user has
  4513.         downloaded.  It is with this field that you can identify
  4514.         "leeches."
  4515.  
  4516.     [B] Uploads.  This is the number of kilobytes the user has
  4517.         uploaded.
  4518.  
  4519.     [C] Downloads Today.  This is the number of kilobytes the user
  4520.         downloaded today, or if she has not called today, then it is
  4521.         the number of kilobytes downloaded on the last date the user
  4522.         did call.
  4523.  
  4524.     [D] Total Calls.  This is the number of times the user has logged
  4525.         onto your BBS.  As the sysop, you yourself will probably have
  4526.         the highest "total calls" count in the user file.
  4527.  
  4528.     [E] Calls Today.  This is the number of times the user has called
  4529.         the BBS today, or if she has not called today, then it is the
  4530.         number of times she called on the last date on which she did
  4531.         call.
  4532.  
  4533.     [F] Time Today.  This is the number of minutes the user has been
  4534.         online today, or on the last date on which the user called.
  4535.  
  4536.     [G] Columns.  This is simply the number of columns - the screen
  4537.         width.  For most callers it should be 80.
  4538.  
  4539.     [H] Lines.  This is the number of lines to be displayed between
  4540.         pauses (the "More? (Y/N)" prompts).  This is usually 24.
  4541.  
  4542.     [I] Messages Posted.  This is the total number of messages the user
  4543.         has entered.
  4544.  
  4545.     [J] Account Expiry.  This is the date the user's account "expires"
  4546.         - or is transformed according to the relevant entry in
  4547.         EXPIRY.CTL.  See EXPIRY.CTL for more information.  If this is
  4548.         set to 70/01/01 (in other words, a value of zero) then the user
  4549.         will never expire.
  4550.  
  4551.  
  4552.  
  4553.  
  4554.     NanoBBS 2.00 Documentation                Page 75
  4555.  
  4556.     [K] Account Credit.  If you have the "Credit System" option set in
  4557.         your NODE1.CTL and other config files, then this field holds
  4558.         the amount of credit remaining.  It is expressed in cents.
  4559.  
  4560.     [L] Time Bank Balance.    Users can deposit time into a "time bank"
  4561.         for later use when they're caught short.  This field is the
  4562.         number of minutes the user has stored.
  4563.  
  4564.     [F1] This is the "Suspended" key.  It (with the other F-Keys) is a
  4565.          toggle between "on" and "off".  When "on" the user may not log
  4566.          on, but the account is otherwise untouched.
  4567.  
  4568.     [F2] This is the "No Limit" key.  The user can download as long as
  4569.          she wants and she will never run out of time.  Use this toggle
  4570.          exceedingly sparingly!
  4571.  
  4572.     [F3] This is the "No Ratio" key.  The user is not subject to
  4573.          upload/download ratios and may download until her modem
  4574.          croaks.
  4575.  
  4576.     [F4] This is the "Rodent" key.  All it does is refrain from
  4577.          sounding the chat paging noise when the user tries to page.
  4578.          Most useful for annoying users who, for one reason or another,
  4579.          you don't want to take more drastic action against.
  4580.  
  4581.     [F5] This key toggles ANSi graphics on and off.
  4582.  
  4583.     [F6] This is the "Toast" key.  This key allows the user to log on
  4584.          one last time.  Before she gets to the main menu prompt,
  4585.          however, a message is displayed stating that "This account has
  4586.          been terminated by the management" (you can make it more or
  4587.          less diplomatic as you choose) and then the user is
  4588.          disconnected and the account is deleted.  This is to be used
  4589.          when you want a user to -know- she's been deleted - simply
  4590.          deleting a user might leave them wondering if they've
  4591.          forgotten the password.
  4592.  
  4593.     [F7] This key toggles whether or not NanoBBS will check for
  4594.          personal mail for the user each time she logs on.
  4595.  
  4596.     [F8] This key toggles whether the user uses the Full Screen Editor
  4597.          or the Line Editor when entering messages.
  4598.  
  4599.     [Del] This key marks the user "deleted."  The user's account isn't
  4600.           really physically erased, but the user can no longer log on
  4601.           and the account is subject to being overwritten by new users.
  4602.           If you change your mind before a new user account overwrites
  4603.           this one, you can toggle the delete bit off with the same
  4604.           key.
  4605.  
  4606.     That's it for the editable fields!  There are some more keys,
  4607.     though, and they are:
  4608.  
  4609.     Left-arrow
  4610.        and
  4611.     Right-arrow: The arrow keys let you move to the next or previous
  4612.              user record.
  4613.  
  4614.     NanoBBS 2.00 Documentation                Page 76
  4615.  
  4616.     Home and End: These keys select the first and last record
  4617.               respectively.
  4618.  
  4619.     Alt-S: This prompts to search for a user.  The first time you use
  4620.            this key, NanoBBS needs you to enter a name or partial name
  4621.            to search for.  After that, if you just hit [Enter] at the
  4622.            name-search prompt, it will continue looking for the same
  4623.            string.
  4624.  
  4625.     Alt-B: This "blanks out" the currently shown user record, but as a
  4626.            safety measure it will only do this if you have already
  4627.            marked the account "deleted".
  4628.  
  4629.     Alt-R: This "reviews" new users.  The BBS quasi-intelligently
  4630.            determines which users are "new" to the system and displays
  4631.            a few important characteristics about each new user,
  4632.            prompting you to promote, erase, skip or edit each one.
  4633.  
  4634.     [S]:   This swaps the user's real name and username.  Sometimes
  4635.            users get these mixed up.  Here you have a one-key fix!
  4636.  
  4637.     [X]:   This "mixedcases" the real name and username.  Sometimes
  4638.            users enter their information in uppercase characters,
  4639.            resulting in a very unpretty user record.  And here you have
  4640.            another one-key fix.
  4641.  
  4642.     [Ins]: This creates a new blank record at the end of the user file.
  4643.            You have to edit its parameters before it'll be much use to
  4644.            anyone.
  4645.  
  4646.     [?]  : Hit ? to get a trippy tie-dyed help screen!
  4647.  
  4648.     [Esc]: Hit Escape to get out of the user editor.
  4649.  
  4650.     [Alt-F1] [Alt-F6]
  4651.     [Alt-F2] [Alt-F7]
  4652.     [Alt-F3] [Alt-F8]
  4653.     [Alt-F4] [Alt-F9]
  4654.     [Alt-F5] [Alt-F10]
  4655.  
  4656.     These are sysop-defined macro keys.  They simply call up compiled
  4657.     UFO files as specified in the node control file.  They can be used
  4658.     to perform complex operations on the user currently being viewed in
  4659.     the editor, for example you could assign a single key to upgrade a
  4660.     user's access, set her expiry date, and toggle one or more keys all
  4661.     at once!  Very convenient.
  4662.  
  4663.  
  4664.     NanoBBS 2.00 Documentation                Page 77
  4665.  
  4666.     ╔═╦════════════════════════════════════════════════╦═╗
  4667.     ║ ║ A Tour of NanoBBS's canned main menu interface ║ ║
  4668.     ╚═╩════════════════════════════════════════════════╩═╝
  4669.  
  4670.     Here is an explanation of each of the main menu commands. This
  4671.     is taken directly from the MAINHELP.TXT file which is displayed
  4672.     to users who select the "H" (detailed help) option.  Because of
  4673.     this, the help is written in a to-the-user perspective.
  4674.  
  4675.     "A" - Jump to a message area.
  4676.  
  4677.     This changes the message area, and is directly synonymous with
  4678.     the "J" command.  It is included for the benefit of callers who
  4679.     are used to using "A" to change areas on other BBSes.  See
  4680.     the "J" command help (coming up) for more information.
  4681.  
  4682.     "C" - Page SysOp to Chat
  4683.  
  4684.     This option will, during reasonable hours, cause NanoBBS to
  4685.     play a little tune to get the sysop's attention.  It is only
  4686.     necessary to page once as a flashing yellow "Paged" will appear
  4687.     on the sysop's console until you log off.  The sysop can set
  4688.     the hours during which this option will make noise, so it's
  4689.     probably not a good idea to page late at night.
  4690.  
  4691.     If the Sysop notices that you have paged, and feels like
  4692.     chatting, s/he'll activate "chat mode" which will allow you to
  4693.     communicate directly with the sysop in real time by typing back
  4694.     and forth at one another.
  4695.  
  4696.     "D" - DOORS - Games and other external programs
  4697.  
  4698.     This option will present you with a menu of "doors."
  4699.  
  4700.     Doors are external programs which the BBS can call up for you to
  4701.     use.  Most doors are multi-player games.  Some of the most
  4702.     popular door games are Barren Realms Elite, Tradewars, Galactic
  4703.     Empire and Rancho Nevada.  Each game has its own set of rules
  4704.     and features, and help is (hopefully) available in each one.
  4705.     Detailed help with doors is beyond the scope of this document;
  4706.     ask your sysop or, if there is a message base dedicated to the
  4707.     doors, post a public message there and someone will likely have
  4708.     an answer to your question.
  4709.  
  4710.     "E" - EMAIL - Non-public "electronic mail"
  4711.  
  4712.     This option allows you to send and check for "electronic mail"
  4713.     to other users.  NanoBBS's e-mail technology is such that true
  4714.     privacy cannot be guaranteed - the sysop can and probably does
  4715.     read any email on the BBS!  However other users cannot read
  4716.     email that is not addressed to them.  If privacy is a concern,
  4717.     you should use a program like PGP to encrypt your private mail
  4718.     before sending it to the BBS.  Make sure your sysop allows
  4719.     encrypted messages before you try this!
  4720.  
  4721.  
  4722.  
  4723.  
  4724.     NanoBBS 2.00 Documentation                Page 78
  4725.  
  4726.     "F" - FILES - File Transfers
  4727.  
  4728.     On most BBSes this is the most popular place!  This is where you
  4729.     can "download" programs, pictures and textfiles (and much more)
  4730.     from the BBS to your computer!    You can also "upload" files from
  4731.     your computer to the BBS, which will improve your
  4732.     "download:upload ratio" which the sysop can use to limit
  4733.     excessive downloading.    NanoBBS has seven widely-used transfer
  4734.     protocols, and supports advanced features like batch transfers
  4735.     (many files downloaded or uploaded at once) and new-file scans!
  4736.     More help is available at the file transfer menu.
  4737.  
  4738.     "G" - GOODBYE - Log off the BBS
  4739.  
  4740.     Use this command when you are finished using the BBS and want to
  4741.     log off.  NanoBBS is robust software; you could just hang up and
  4742.     nothing would be damaged, but it is considered impolite to log
  4743.     off that way, so please use "G"oodbye to log off!  This command
  4744.     is available at most menu prompts in the system for your
  4745.     convenience.
  4746.  
  4747.     "H" - HELP - Advanced Help.
  4748.  
  4749.     Advanced Help is what you are reading now.
  4750.  
  4751.     "I" - INFORMATION - Information on various topics
  4752.  
  4753.     This option presents you with a menu of information files for
  4754.     your enlightenment and entertainment.  Since this section of the
  4755.     BBS is entirely defined by the Sysop it could contain nearly
  4756.     anything, but normally this will have information about the BBS,
  4757.     its rules, how to subscribe, perhaps a list of other BBSes, etc.
  4758.  
  4759.     "A",
  4760.     "J" - JUMP - "Jump" to another message area
  4761.  
  4762.     This option lets you select which message area you are reading.
  4763.     Most BBSes separate messages into "areas" by subject matter, so
  4764.     if you wish to read messages on a particular subject, use this
  4765.     command to select that subject.  These groupings of message
  4766.     topics are called "message areas".
  4767.  
  4768.     "K" - KILL - "Kill" or erase a message
  4769.  
  4770.     This option lets you erase messages written by you.  It may
  4771.     occur that you write a message which you later want to erase
  4772.     (for example, you posted a message with hockey scores or other
  4773.     information which you later find out to be incorrect).    This
  4774.     command can be a real life-saver in some situations!
  4775.  
  4776.     "L" - LIST CALLS - Display a list of all today's calls to the BBS
  4777.  
  4778.     This option lets you see a list of everyone who's called the BBS
  4779.     since midnight.  This is simply for your information.
  4780.  
  4781.  
  4782.  
  4783.  
  4784.     NanoBBS 2.00 Documentation                Page 79
  4785.  
  4786.     "N" - NEW SCAN - Globally scan for new messages
  4787.  
  4788.     This is an extremely powerful messaging command!  It displays
  4789.     every new message entered since your last call, in every message
  4790.     area.  You can re-read or reply to any of the messages
  4791.     displayed.
  4792.  
  4793.     "O" - OPTIONS - User config options
  4794.  
  4795.     This option gives you a menu of options you can set.  It lets
  4796.     you configure the way the BBS looks and behaves when you call.
  4797.     For example, you can change screen size, turn colour on or off,
  4798.     or even change your password!
  4799.  
  4800.     "P" - POST - Post or enter a message in the current message area
  4801.  
  4802.     This command lets you enter a new message in the current file
  4803.     area.  You will be prompted for a subject (for example, if you
  4804.     are posting in the fishing echo, you might enter a subject
  4805.     something like "question about bait".  The subject is a very
  4806.     brief summary of the message to make it easy for other users to
  4807.     quickly find messages they are interested in.
  4808.  
  4809.     You will also be prompted for an intended recipient.  You can
  4810.     put any person's name or handle here, or if the person is a
  4811.     member of the BBS, you can enter their user number.  You can
  4812.     also just enter "All" if the message is public and you aren't
  4813.     sending it to any particular person.
  4814.  
  4815.     After that, you will be able to type in your message.  The
  4816.     message editors have advanced help screens of their own.  Once
  4817.     you are done entering your message, you can save it, edit it, or
  4818.     drop it ("abort").
  4819.  
  4820.     "Q" - QWK OPTIONS - Interface with the message base via a QWK
  4821.                 reader
  4822.  
  4823.     If you have a QWK message reader, you can save a lot of time by
  4824.     downloading messages and reading them off-line in your message
  4825.     reader.  You can also reply to these messages in the reader and
  4826.     upload your replies.  This has the advantage of letting you use
  4827.     your favourite message editor to enter messages instead of the
  4828.     BBS's line and full-screen editors.  It also saves more online
  4829.     time for downloading, playing games, and even for letting other
  4830.     users into the BBS!  If you don't have a QWK message reader, you
  4831.     will need one for this menu to be of use to you.  Your sysop may
  4832.     have one or more reader software packages available for you to
  4833.     download; if not, try another BBS, such software is widely
  4834.     available!
  4835.  
  4836.     "R" - READ MESSAGES - Read messages in the current area
  4837.  
  4838.     This lets you read and reply to messages in the current message
  4839.     area.
  4840.  
  4841.  
  4842.  
  4843.  
  4844.     NanoBBS 2.00 Documentation                Page 80
  4845.  
  4846.     "S" - SETUP SCANS - Set up the areas you want included in
  4847.                 message scans.
  4848.  
  4849.     This lets you define which areas should be included when you do
  4850.     a global [N]ew scan or download messages from the [Q]wk menu. By
  4851.     default ALL messages that you have access to are turned on.
  4852.  
  4853.     "U" - USER LIST - Display a list of users
  4854.  
  4855.     This command lets you look up users on the BBS.  It will tell
  4856.     you the user number of a particular user, when s/he last called,
  4857.     and where they are from.  You can enter a partial username to do
  4858.     a search for one or more users, or you can just hit Enter and
  4859.     get a list of every user on the system!
  4860.  
  4861.     "W" - WHO'S ONLINE
  4862.  
  4863.     If the BBS has more than one line and the sysop has enabled
  4864.     multi-user operation, this will let you know who is also using
  4865.     the BBS on the other nodes.  It will also let you know roughly
  4866.     what they are doing and how long they've been online.
  4867.  
  4868.     "Y" - YOUR STATISTICS
  4869.  
  4870.     This command displays practically everything the BBS knows about
  4871.     you.  It will tell you how much you have uploaded, downloaded,
  4872.     and posted, how much time you have banked and how much netmail
  4873.     credit you have left, how many days are left in your
  4874.     subscription, your access level, and much more!  If you have a
  4875.     question about your account, check this command before you ask
  4876.     your sysop.
  4877.  
  4878.     "/" - NanoCHAT - Enter the multi-user chat system!
  4879.  
  4880.     If the BBS has more than one line and if the SysOp has enabled
  4881.     multi-line operation, this command will take you into the
  4882.     NanoCHAT multi-user chat system!  There is ample help available
  4883.     on the particulars of multi-user chat once you get into that
  4884.     section.
  4885.  
  4886.     "?" - COMMAND SUMMARY - Get a quick list of commands
  4887.  
  4888.     This command is the quick way to remind yourself of the
  4889.     command key for a particular function.
  4890.  
  4891.     "!" - BANG PROMPT - Change the "Bang" prompt
  4892.  
  4893.     This lets you change the one-line message displayed at the main
  4894.     menu command prompt.  It is called the "bang" prompt because the
  4895.     exclamation point key used to invoke it is sometimes called a
  4896.     "bang"...
  4897.  
  4898.     "[", "]", "0"..."65535" - QUICK AREA CHANGE
  4899.  
  4900.     In addition to the formal [J] command (change area) mentioned
  4901.     previously, NanoBBS also has two ways to quickly change message
  4902.  
  4903.  
  4904.     NanoBBS 2.00 Documentation                Page 81
  4905.  
  4906.     areas right from the main menu.  The open and close square
  4907.     brackets move you down and up one area respectively.  Or, you
  4908.     can type in the area number directly.  NanoBBS will let you type
  4909.     in up to 5 digits for the area number when it detects that a
  4910.     number key has been pressed!
  4911.  
  4912.  
  4913.  
  4914.  
  4915.  
  4916.  
  4917.  
  4918.  
  4919.  
  4920.  
  4921.  
  4922.  
  4923.  
  4924.  
  4925.  
  4926.  
  4927.  
  4928.  
  4929.  
  4930.  
  4931.  
  4932.  
  4933.  
  4934.  
  4935.  
  4936.  
  4937.  
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957.  
  4958.  
  4959.  
  4960.  
  4961.  
  4962.  
  4963.  
  4964.     NanoBBS 2.00 Documentation                Page 82
  4965.  
  4966.     ╔═╦═════════════════════════════════════════════╦═╗
  4967.     ║ ║           Language Files        ║ ║
  4968.     ║ ║ Customize (almost) all of NanoBBS's Output! ║ ║
  4969.     ╚═╩═════════════════════════════════════════════╩═╝
  4970.  
  4971.     NanoBBS has the capacity to be a fully multi-lingual BBS.  It
  4972.     offers the additional flexibility of having separate ANSI/ASCII
  4973.     and RIP versions of each language.  There can be up to 32
  4974.     languages.  See the section titled "The Configuration File" for
  4975.     information on configuring your language files.
  4976.  
  4977.     NanoBBS comes with two language files, but they are not "ready"
  4978.     when you unpack the BBS.  These two language files are the
  4979.     ANSI/ASCII and RIPscrip versions of the standard English text
  4980.     for NanoBBS.  All language files come in pairs, an ANSI/ASCII
  4981.     version and a RIPscrip version.  If the user has RIP but NanoBBS
  4982.     can't find the RIP version of the language file, it'll try to
  4983.     fall back on the ANSI/ASCII version instead.
  4984.  
  4985.     The NanoBBS distribution archive stores the default language as
  4986.     "Update" files, called ENGLISH.UPD for the ASCII/ANSI version
  4987.     and ENGLISH.RPD for the RIPscrip version.  When you run
  4988.     INSTALL.BAT, these files are copied into the ENGLISH.TXL and
  4989.     ENGLISH.RXL files, which are the raw language source files.  The
  4990.     UPDLNG.EXE program is used to update the language files, so that
  4991.     new versions of the BBS with additional language strings can be
  4992.     integrated with your existing custom language files.
  4993.  
  4994.     All language files end in either .TXL for the "Text" version
  4995.     (the ANSI/ASCII version) and .RXL for the "Rip" version.  These
  4996.     files are like the system configuration files in that NanoBBS
  4997.     cannot use them by themselves.    They must be "compiled."  The
  4998.     program which does this is the NCOMP.EXE program.
  4999.  
  5000.     To compile the English language files, just type
  5001.  
  5002.         NCOMP ENGLISH
  5003.  
  5004.     at the DOS prompt.   It will compile both the ANSI/ASCII and the
  5005.     RIP versions of the ENGLISH languagefile.  It creates a pair of
  5006.     files for each version.  ENGLISH.LNG and ENGLISH.RNG are the
  5007.     actual compiled text for each version of the language files, and
  5008.     ENGLISH.LDX and ENGLISH.RDX contain the index pointers NanoBBS
  5009.     needs to find the language strings within the .LNG and .RNG
  5010.     files.
  5011.  
  5012.     The .LNG and .RNG files are loaded whole into memory for maximum
  5013.     speed.    Because of this, there is a maximum size of 65520 bytes.
  5014.     If NCOMP compiles a .LNG or .RNG and the resulting file is
  5015.     bigger than 65520 bytes, it'll be unceremoniously truncated, and
  5016.     calls to chopped-off strings will have unpredictable results.
  5017.     Caveat SysOp!
  5018.  
  5019.     Like the configuration files, the .TXL and .RXL files are just
  5020.     plain ASCII text files.  Colour and RIP graphics are achieved by
  5021.     means of embedded colour codes and RIP UFO keywords.  See the
  5022.  
  5023.  
  5024.     NanoBBS 2.00 Documentation                Page 83
  5025.  
  5026.     next chapter, "Embedded Colour and Effect Codes", for much more
  5027.     information about these codes and how to use them.
  5028.  
  5029.     Of the UFO keywords, only those dealing with RIPscrip are
  5030.     supported in the language files.  You cannot use UFO system
  5031.     variables in the language file with RIPscrip tokens but you can
  5032.     use numeric constants.    RIPscrip tokens should not be used in
  5033.     the ANSI/ASCII .TXL file.
  5034.  
  5035.     If you need to be able to access the resources of a UFO script
  5036.     from within a language file string, an embedded command exists
  5037.     that will let you "link" to a UFO script.  See the Embedded
  5038.     Colour and Effect Codes chapter, and UFO.DOC, for more
  5039.     information.
  5040.  
  5041.     Here are the first few strings from ENGLISH.TXL, with brief
  5042.     explanations:
  5043.  
  5044.  
  5045.     [languagefile english]
  5046.  
  5047.     [comment the language file must begin with a "languagefile"
  5048.      statement as above, which indicates the language this file
  5049.      represents.  Other languages might have a "languagefile
  5050.      francais" or "languagefile deutsch" line instead.]
  5051.  
  5052.     [comment comments appear in a comment statement like this.  All
  5053.      comments must begin and end with square brackets as this one
  5054.      does.]
  5055.  
  5056.     [comment this is the first system message in the file.    Although
  5057.      other strings can be physically located in random order, this
  5058.      must be physically the first string.  It indicates an error
  5059.      condition, that a system string was not found.  The ~. (tilde
  5060.      period) embedded command indicates the system string number in
  5061.      question. ]
  5062.  
  5063.     [sysmsg 1]
  5064.     ~PSysMsg Error!  Message ~. does not appear in the language file!
  5065.     Please report to sysop!
  5066.     [end]
  5067.  
  5068.  
  5069.     [comment this is used at logon to ask the user for a password.
  5070.      Note the use of embedded commands.  The ~@ (tilde at-sign)
  5071.      forces non-stop mode on for the duration of the string, the ~M
  5072.      (tilde M) sets the colour to a nice light blue colour, and the
  5073.      ~■ (tilde, followed by ASCII 254) is a special effect which
  5074.      makes a nice prompt.]
  5075.  
  5076.     [sysmsg 2]~@
  5077.     ~MPassword ~■[end]
  5078.  
  5079.     [comment This is displayed when the user gets the wrong password
  5080.      at logon.  Note the use of a ~V1 embedded command.  This is a
  5081.      variable parameter which is context sensitive.  In this string,
  5082.  
  5083.  
  5084.     NanoBBS 2.00 Documentation                Page 84
  5085.  
  5086.      it contains the number of tries the user has made at guessing
  5087.      the password.    It might have some totally different value or
  5088.      might not even be a number in other strings.  But in this case
  5089.      it's a retry counter provided for your convenience.]
  5090.  
  5091.     [sysmsg 3]
  5092.     ~JPassword incorrect. ~G(Try #~L~V1~G)[end]
  5093.  
  5094.     [comment This asks the user for a username, pseudonym, real
  5095.      name, user number, NEW or BYE.  In the case of NEW NanoBBS will
  5096.      take the caller through the new-user signup procedure.  In the
  5097.      case of BYE, NanoBBS will immediately hang up.  If the user is
  5098.      not found, NanoBBS will ask if the spelling is correct - if it
  5099.      is, NanoBBS goes through the new-user signup.    Otherwise it
  5100.      goes back to this string and asks the user again.]
  5101.  
  5102.     [sysmsg 4]~@
  5103.     ~MNew Users: Just type your name or pseudonym to log on!
  5104.     ~OPlease enter your Name, User Number or Handle ~■[end]
  5105.  
  5106.     [comment Here's the string that asks the user if she is a
  5107.      new user.  This is displayed when the user's name or number is
  5108.      not found.
  5109.  
  5110.      Note the use of ~V1.  In this case it contains the username
  5111.      that was entered at the sysmsg 4 prompt.  Totally different
  5112.      from its value in the "Password Incorrect" string!  That's what
  5113.      I mean by "context sensitive."]
  5114.  
  5115.     [sysmsg 9]~@
  5116.  
  5117.     ~L~V1 ~Gnot found.  Do you want to register as a new member? [end]
  5118.  
  5119.     ┌───────────────────────────────────────────────────┐
  5120.     │ Special Embedded Commands for Language Files Only │
  5121.     └───────────────────────────────────────────────────┘
  5122.  
  5123.     The following is a long list of special embedded commands that
  5124.     you will find useful - many are already in use in the language
  5125.     files.    These commands resemble the embedded colour commands
  5126.     used throughout NanoBBS, but these commands can only be used in
  5127.     the language file.  See the next chapter, "Embedded Colour and
  5128.     Effect Codes" for more information on using and entering
  5129.     embedded codes.
  5130.  
  5131.  
  5132.     ~mF : Displays the "From:" (sender) of the current message
  5133.     ~mT : Displays the "To:" (recipient) of the current message
  5134.     ~mS : Displays the Subject of the current message
  5135.     ~mH : Displays the time of the current message
  5136.     ~mD : Displays the date of the current message
  5137.     ~mR : Displays the number of the message to which this one is a reply
  5138.     ~mA : Displays the Number of the Next Reply to the current message
  5139.     ~mC : Displays the Fido Cost (if any) of the current message
  5140.     ~mO : Displays the Fido Origin Address of the Current Message
  5141.     ~mP : Displays the Fido Destination of the Current Message
  5142.  
  5143.  
  5144.     NanoBBS 2.00 Documentation                Page 85
  5145.  
  5146.     ~mX : Displays Message Number of the Current Message
  5147.     ~mY : Displays Message Area's number
  5148.     ~mZ : Displays Message Area's name
  5149.     ~m1 : Indicates if the current message is private
  5150.     ~m2 : Indicates if the current message has been read
  5151.     ~m3 : Displays the message number of the last message read
  5152.     ~m4 : Displays the number of messages in the message base
  5153.     ~m5 : Displays the highest message number
  5154.  
  5155.     ~q1 : Displays the time of day in 12-hour HH:MM format
  5156.     ~q2 : Displays the time of day in 12-hour HH:MM:SS format
  5157.     ~q3 : Displays the time of day in 24-hour HH:MM format
  5158.     ~q4 : Displays the time of day in 24-hour HH:MM:SS format
  5159.     ~q5 : Displays am if time is 00:00-11:59, pm if time is 12:00-23:59
  5160.     ~q6 : Displays the time of day in MM:SS format
  5161.     ~q9 : Displays the user's time left in 24-hour HH:MM format
  5162.     ~qA : Displays the user's time left in 24-hour HH:MM:SS format
  5163.     ~qC : Displays the user's time left in MM:SS format
  5164.     ~qF : Displays the user's time online in 24-hour HH:MM format
  5165.     ~qG : Displays the user's time online in 24-hour HH:MM:SS format
  5166.     ~qI : Displays the user's time online in MM:SS format
  5167.  
  5168.     ~u1 : Displays the user's username
  5169.     ~u2 : Displays the user's real name
  5170.     ~u3 : Displays a pseudo-intelligently determined first name of the
  5171.           user from the username.  Words like "The" and "Mr." don't
  5172.           count.
  5173.     ~u4 : Displays the user's gender
  5174.     ~u5 : Displays the user's birthdate
  5175.     ~u6 : Displays the user's city/location
  5176.     ~u7 : Displays the user's phone number
  5177.     ~u8 : Displays the user's per-call time limit
  5178.     ~u9 : Displays the user's per-day time limit
  5179.     ~u0 : Displays the user's required upload/download ratio
  5180.     ~uA : Indicates if the user has clear-screens activated
  5181.     ~uB : Displays the user's access level
  5182.     ~uC : Displays the user's downloads in kilobytes
  5183.     ~uD : Displays the user's uploads in kilobytes
  5184.     ~uE : Displays the user's downloads today in kilobytes
  5185.     ~uF : Displays the total number of calls the user has made to
  5186.           the system
  5187.     ~uG : Displays the number of calls the user has made to the
  5188.           system today
  5189.     ~uH : Displays the amount of time the user has been online today in
  5190.           previous calls, but not including this call.
  5191.     ~uI : Indicates if the user has ANSI turned on
  5192.     ~uJ : Displays the number of messages the user has posted
  5193.     ~uK : Displays the user's actual call:post ratio
  5194.     ~uL : Displays the user's actual download:upload ratio
  5195.     ~uM : Displays the number of columns the user has set
  5196.     ~uN : Displays the number of lines the user has set
  5197.     ~uO : Displays the user's expiry date (if any)
  5198.     ~uP : Displays the number of days until the user's expiry
  5199.     ~uQ : Indicates if the user has no limits
  5200.     ~uR : Indicates if the user has no required ratios
  5201.     ~uS : Displays the date and time of the user's first call
  5202.     ~uT : Displays the date and time of the user's most recent call
  5203.     ~uU : Displays the user's user number
  5204.     ~uV : Displays the verbal description (from LIMITS.CTL) of the
  5205.           user's access level
  5206.  
  5207.     NanoBBS 2.00 Documentation                Page 86
  5208.  
  5209.     ~uW : Displays the user's maximum daily download limit in kilobytes
  5210.     ~uX : Indicates whether the user has "More?" prompts activated
  5211.     ~uY : Indicates if the user is checking for new mail at each logon
  5212.     ~uZ : Inidcates if the user has linefeeds activated (should
  5213.           always be Yes!)
  5214.     ~u& : Indicates if the user has the Full Screen Editor activated
  5215.     ~u, : Displays the language selected by the user
  5216.     ~u; : Displays the user's preferred archiver method
  5217.     ~u. : Displays the user's preferred transfer protocol
  5218.  
  5219.         ~pA : Displays this user's Profile Answer #1
  5220.         ~pB : Displays this user's Profile Answer #2
  5221.         ~pC : Displays this user's Profile Answer #3
  5222.         ~pD : Displays this user's Profile Answer #4
  5223.         ~pE : Displays this user's Profile Answer #5
  5224.         ~pF : Displays this user's Profile Answer #6
  5225.         ~pG : Displays this user's Profile Answer #7
  5226.         ~pH : Displays this user's Profile Answer #8
  5227.         ~pI : Displays this user's Profile Answer #9
  5228.         ~pJ : Displays this user's Profile Answer #10
  5229.         ~pK : Displays this user's Profile Answer #11
  5230.         ~pL : Displays this user's Profile Answer #12
  5231.         ~pM : Displays this user's Profile Answer #13
  5232.         ~pN : Displays this user's Profile Answer #14
  5233.         ~pO : Displays this user's Profile Answer #15
  5234.         ~pP : Displays this user's Profile Answer #16
  5235.         ~pQ : Displays this user's Profile Answer #17
  5236.         ~pR : Displays this user's Profile Answer #18
  5237.         ~pS : Displays this user's Profile Answer #19
  5238.         ~pT : Displays this user's Profile Answer #20
  5239.         ~pU : Displays this user's Profile Answer #21
  5240.         ~pV : Displays this user's Profile Answer #22
  5241.         ~pW : Displays this user's Profile Answer #23
  5242.         ~pX : Displays this user's Profile Answer #24
  5243.  
  5244.         ~pa : Displays the Profile Prompt #1
  5245.         ~pb : Displays the Profile Prompt #2
  5246.         ~pc : Displays the Profile Prompt #3
  5247.         ~pd : Displays the Profile Prompt #4
  5248.         ~pe : Displays the Profile Prompt #5
  5249.         ~pf : Displays the Profile Prompt #6
  5250.         ~pg : Displays the Profile Prompt #7
  5251.         ~ph : Displays the Profile Prompt #8
  5252.         ~pi : Displays the Profile Prompt #9
  5253.         ~pj : Displays the Profile Prompt #10
  5254.         ~pk : Displays the Profile Prompt #11
  5255.         ~pl : Displays the Profile Prompt #12
  5256.         ~pm : Displays the Profile Prompt #13
  5257.         ~pn : Displays the Profile Prompt #14
  5258.         ~po : Displays the Profile Prompt #15
  5259.         ~pp : Displays the Profile Prompt #16
  5260.         ~pq : Displays the Profile Prompt #17
  5261.         ~pr : Displays the Profile Prompt #18
  5262.         ~ps : Displays the Profile Prompt #19
  5263.         ~pt : Displays the Profile Prompt #20
  5264.         ~pu : Displays the Profile Prompt #21
  5265.         ~pv : Displays the Profile Prompt #22
  5266.         ~pw : Displays the Profile Prompt #23
  5267.         ~px : Displays the Profile Prompt #24
  5268.  
  5269.     ╔═╦══════════════════════════════════╦═╗
  5270.     ║ ║ Embedded Colour and Effect Codes ║ ║
  5271.     ╚═╩══════════════════════════════════╩═╝
  5272.  
  5273.     These are available in both the UFO script language and as
  5274.     embedded commands in the language files!  Just type in the
  5275.     command as shown below - they all start with the ~ tilde
  5276.     character.  On most enhanced AT keyboards, the tilde is the key
  5277.     to the left of the 1 key, a shifted back-quote.  The following
  5278.     diagram illustrates where the Tilde key is located...
  5279.  
  5280.     LOCATION OF THE TILDE KEY ON (MOST) AT KEYBOARDS: ─┐
  5281.     (Remember this is a SHIFTed key!)           │
  5282.      ┌─────────────────────────────────────────────────┘
  5283.      │
  5284.      │     ___ ___ ___ ___ ___ ___ ___ ___
  5285.      └─>  | ~ | ! | @ | # | $ | % | ^ |
  5286.           |_`_|_1_|_2_|_3_|_4_|_5_|_6_|_
  5287.           |     |Q    |W  |E    |R  |T    |
  5288.           |_Tab_|___|___|___|___|___|_
  5289.           | Caps |A  |S  |D  |
  5290.           |_Lock_|___|___|___|__
  5291.           |        |
  5292.           |_Shift__|  <───── Remember to use the Shift key!
  5293.  
  5294.  
  5295.       COLOURS:
  5296.  
  5297.       background      foreground
  5298.  
  5299.       ~a Black       ~A Black       ~I DkGray
  5300.       ~b Red       ~B Red       ~J LtRed
  5301.       ~c Green       ~C Green       ~K LtGreen
  5302.       ~d Brown       ~D Brown       ~L Yellow
  5303.       ~e Blue       ~E Blue       ~M LtBlue
  5304.       ~f Magenta       ~F Magenta       ~N LtMagenta
  5305.       ~g Cyan       ~G Cyan       ~O LtCyan
  5306.       ~h Lt.Gray       ~H LtGray       ~P White
  5307.  
  5308.       Special ANSi functions and effects:
  5309.  
  5310.       ~1          Clear to End of Line
  5311.       ~2          Clear Screen
  5312.                (Social Statement: It would be a good idea not to let
  5313.             your callers know about the Clear Screen code)
  5314.       ~6          Blink On
  5315.       ~7          Clear Attributes
  5316.  
  5317.  
  5318.  
  5319.  
  5320.     NanoBBS 2.00 Documentation                Page 87
  5321.  
  5322.       Fade-in:     ~< Start    ~> End
  5323.       Gray 3D:     ~( Start    ~) End
  5324.       Cyan 3D:     ~{ Start    ~} End
  5325.       Prompt :     ~■ (ASCII 254)
  5326.  
  5327.       Embedded CR/LF:            ~/
  5328.       Nondestructive clear to beginning:    ~\
  5329.       Destructive clear to beginning:    ~|
  5330.  
  5331.       Do a CR/LF only if the cursor is
  5332.       not already at the leftmost column:    ~,
  5333.  
  5334.     The following embedded commands are ONLY available in the language
  5335.     file, and may be interpreted literally or give strange results if
  5336.     used in a .UFO script:
  5337.  
  5338.       "Hit Any Key" prompt                  ~R
  5339.       Send a random cookie:         ~&
  5340.       Send the bang Prompt:         ~!
  5341.       Make output non-abortable:        ~@
  5342.       Send a beep (^G) to REMOTE user:    ~#
  5343.       Embedded CR only (no LF)        ~<
  5344.  
  5345.       Automatic two-column alignment:    ~>
  5346.       Automatic three-column alignment:    ~; {semicolon}
  5347.       Automatic five-column alignment:    ~` (backward apostrophe)
  5348.  
  5349.       Tab: ~tnn where nn is column,  e.g.    ~t45
  5350.         This example moves the cursor to
  5351.         column 45.
  5352.  
  5353.       Name of current message area:     ~i
  5354.       Number of current message area:    ~j
  5355.       Name of current file area:        ~n
  5356.       Number of current file area:        ~o
  5357.  
  5358.       Go to to another SysMsg:        ~k###
  5359.  
  5360.         Example: ~k123    goes to SysMsg #123.  The SysMsg number
  5361.         must be terminated with a non-numeric character.
  5362.  
  5363.       Call a UFO script (a .BBS file):    ~lfilename.bbs
  5364.  
  5365.         Example: ~lextrahlp.bbs   runs a compiled UFO script called
  5366.         EXTRAHLP.BBS.  The filename must be terminated with a
  5367.         space.    This extremely powerful command effectively gives
  5368.         you the full power of UFO from within language files!
  5369.  
  5370.       Languagefile Parameter (can be 1 to 9): ~Vx
  5371.  
  5372.         Example: ~V9 shows parameter 9.
  5373.              ~V1 shows parameter 1.
  5374.  
  5375.         These parameters are sensitive to context and have specific
  5376.         values for each SysMsg, or may be undefined if the SysMsg
  5377.         does not use parameters.  See the language files to get an
  5378.         idea of the context for each SysMsg's parameters.
  5379.  
  5380.     NanoBBS 2.00 Documentation                Page 88
  5381.  
  5382.     ╔═╦═══════════════════════════════════════════════════════════╦═╗
  5383.     ║ ║ NanoCHAT - Setting up NanoBBS as a multi-user chat system ║ ║
  5384.     ╚═╩═══════════════════════════════════════════════════════════╩═╝
  5385.  
  5386.     ┌──────────────┐
  5387.     │ The IPC Disk │
  5388.     └──────────────┘
  5389.  
  5390.     IPCs are "Inter Process Communications", which are files shared
  5391.     between nodes in a multi-user system.  IPCs are the key to
  5392.     NanoCHAT's operation.
  5393.  
  5394.     NanoCHAT uses IPC files instead of shared memory schemes (which
  5395.     require special device drivers and are NOT always reliable) in
  5396.     order to make NanoCHAT runnable on nearly any system.  However,
  5397.     since communications are handled by passing files, DOS can
  5398.     impose quite a burden unless you take steps to speed the files
  5399.     up as much as possible.  The best way to do this is to use a
  5400.     RAM Disk.  This has the added advantage of not imposing a lot of
  5401.     wear on your hard disk.  A NanoCHAT system with several users
  5402.     online can easily created, write, read and then delete dozens of
  5403.     files per second.  The wear this would cause an uncached hard
  5404.     disk is extreme.  Therefore a RAM disk is essential.  The
  5405.     largest possible RAM Disk you can manage should bs used, and
  5406.     your RAMDRIVE.SYS line in CONFIG.SYS should stipulate a large
  5407.     number of files, perhaps 512 or 1024.
  5408.  
  5409.     If you're using a LAN and some of your BBS nodes are on a
  5410.     different machine from the RAM disk, make sure your RAM disk is
  5411.     set up as a network drive so that it is accessible.
  5412.  
  5413.     ┌───────────────────────────────────────────────────────────────┐
  5414.     │ To enable NanoCHAT and define the path to your RAM disk (or    │
  5415.     │ whatever other kind of disk you may choose to place your IPCs │
  5416.     │ on) you need to include the following lines in your NanoBBS    │
  5417.     │ config file (NODE1.CTL):                    │
  5418.     │                                │
  5419.     │ multiuser                            │
  5420.     │ ipcpath   f:\                         │
  5421.     │                                │
  5422.     │ The MULTIUSER command instructs NanoBBS to allow the use of    │
  5423.     │ multi-user chat and IPC related functions.            │
  5424.     │                                │
  5425.     │ The IPCPATH command specifies the drive and directory where    │
  5426.     │ the IPC files can be found.  It goes without saying that your │
  5427.     │ config files for each node must specify the same IPC path or    │
  5428.     │ else the nodes will not be able to communicate with one    │
  5429.     │ another.                            │
  5430.     └───────────────────────────────────────────────────────────────┘
  5431.  
  5432.     ┌───────────────────────────────────┐
  5433.     │ NanoCHAT configuration - CHAT.CTL │
  5434.     └───────────────────────────────────┘
  5435.  
  5436.      There are three options to the PROMPT option.    ON will display
  5437.      a colourful prompt to remind the user that s/he can type here.
  5438.  
  5439.  
  5440.     NanoBBS 2.00 Documentation                Page 89
  5441.  
  5442.      OFF will more faithfully emulate Diversi-Dial and leave the
  5443.      user's cursor at the leftmost position with no prompt at all.
  5444.      TIME gives the user a unique prompt which displays the current
  5445.      time.
  5446.  
  5447.      prompt off
  5448.  
  5449.      ──────────────────────────────────────────────────────────────
  5450.  
  5451.      The timeout is the amount of time, in minutes, that the user
  5452.      can leave her keyboard idle before NanoCHAT will cut her off.
  5453.  
  5454.      timeout 10
  5455.  
  5456.  
  5457.      ──────────────────────────────────────────────────────────────
  5458.  
  5459.      This is the interval, in minutes, between automatic postings of
  5460.      the /M messages.
  5461.  
  5462.      msginterval 5
  5463.  
  5464.      ──────────────────────────────────────────────────────────────
  5465.  
  5466.      The SPEED command sets the interval between checks of the stack
  5467.      files. Generally speaking, this is the "heartbeat" of the
  5468.      program. The interval is in 100'ths of a second, so a speed of
  5469.      100 would mean that the stacks are checked once every second.
  5470.      A speed of 50 is twice a second and so forth.    If NanoBBS Chat
  5471.      places a big drag on your system's overall speed with a low
  5472.      "speed" setting, try slowing it.  I have found 15 works fine on
  5473.      my BBS.
  5474.  
  5475.      speed 15
  5476.  
  5477.      ──────────────────────────────────────────────────────────────
  5478.  
  5479.      This is the number of "votes" required to eject a user in a
  5480.      TeleTrial.
  5481.  
  5482.      teletrial     3
  5483.  
  5484.      ──────────────────────────────────────────────────────────────
  5485.  
  5486.      These are the access levels passed by the BBS and how they
  5487.      relate to NanoCHAT's six access classes.  Any level below that
  5488.      defined for NORMAL is deemed to be m0e access (undesirable or
  5489.      unvalidated users).
  5490.  
  5491.      access  normal    40
  5492.      access  vip       98
  5493.      access  moderator 200
  5494.      access  c0       400
  5495.      access  sysop       1000
  5496.  
  5497.      ──────────────────────────────────────────────────────────────
  5498.  
  5499.  
  5500.     NanoBBS 2.00 Documentation                Page 90
  5501.  
  5502.      As in other chat systems, NanoBBS Chat allows you to quickly
  5503.      indicate a user's "rank" by the brackets around the node number
  5504.      in the /s and other displays
  5505.  
  5506.      brackets     m0e         ~E: ~E:
  5507.      brackets     normal      ~G( ~G)
  5508.      brackets     vip         ~O{ ~O}
  5509.      brackets     moderator     ~L< ~L>
  5510.      brackets     c0         ~P[ ~P]
  5511.      brackets     sysop         ~J█~b ~7~J█
  5512.  
  5513.      ──────────────────────────────────────────────────────────────
  5514.  
  5515.      The following are the maximum time limits for each access
  5516.      class. All time limits are in minutes.
  5517.  
  5518.      time     m0e         5
  5519.      time     normal      60
  5520.      time     vip         120
  5521.      time     moderator     180
  5522.      time     c0         1440
  5523.      time     sysop         1440
  5524.  
  5525.      ──────────────────────────────────────────────────────────────
  5526.  
  5527.      Access restrictions - any channels not defined here will be
  5528.      assumed open to everyone!
  5529.  
  5530.      Syntax: Channel {channelnumber} {accessrequired}
  5531.  
  5532.      Example:
  5533.  
  5534.      channel 69 50
  5535.  
  5536.      This sets a minimum access level of 50 to access channel 69...
  5537.  
  5538.      ──────────────────────────────────────────────────────────────
  5539.  
  5540.     ┌─────────────────────┐
  5541.     │ Actions and COMPACT │
  5542.     └─────────────────────┘
  5543.  
  5544.     Actions are one of the most popular features of advanced chat
  5545.     systems.  Basically, actions let you (virtually) -do- things
  5546.     with other users.  NanoCHAT's SmartActions contain a library of
  5547.     actions which can be publicly or secretly, adjusting
  5548.     grammatically for the person you're sending to (this is why
  5549.     NanoCHAT needs to know each user's sex).  Generic Actions are
  5550.     nowhere near as advanced as SmartActions but they can be made to
  5551.     "do" just about anything.  In this section we will concentrate
  5552.     on configuring SmartActions.
  5553.  
  5554.     SmartActions are defined in the file ACTIONS.CTL.
  5555.  
  5556.  
  5557.  
  5558.  
  5559.  
  5560.     NanoBBS 2.00 Documentation                Page 91
  5561.  
  5562.     In order for actions to be used, they must first be compiled
  5563.     with the COMPACT (COMPile ACTions) program.  Just type COMPACT
  5564.     when you've finished making your changes to ACTIONS.CTL.
  5565.  
  5566.     There can be up to 256 actions from 0 to 255.
  5567.  
  5568.     Let's have a look at an example from the default ACTIONS.CTL:
  5569.  
  5570.     action    1
  5571.         command     wink
  5572.         access        10
  5573.         see me        You wink.
  5574.         see me2     You wink at ~r.
  5575.         see all     ~s winks seductively!
  5576.         see all2    ~s winks seductively at ~r!
  5577.         see all3    ~s winks knowingly at everyone!
  5578.         see you     ~s winks seductively at you~t!
  5579.         see noaccess    Your eyelids seem to be stuck!
  5580.     end
  5581.  
  5582.     As you can see, each action is started with the keyword ACTION
  5583.     followed by the action number (0 to 255).
  5584.  
  5585.     The COMMAND keyword specifies the /a command necessary to invoke
  5586.     the action.  In this case the command is "wink" so the user
  5587.     would type:
  5588.  
  5589.         /a wink
  5590.  
  5591.     ...to activate the command and wink at everyone.
  5592.  
  5593.     The "See" fields can be up to 80 characters including embedded ~
  5594.     codes.
  5595.  
  5596.     SEE ME pertains to what you see when you perform your action for
  5597.     no recipient or for ALL.
  5598.  
  5599.     SEE ME2 pertains to what you see when you perform your action
  5600.     for a specific user.
  5601.  
  5602.     SEE ALL pertains to what everyone sees when the user types the
  5603.     command with no recipient.  This may mean the action is done to
  5604.     all users, to nobody, or to the user herself.
  5605.  
  5606.     SEE ALL2 pertains to what everyone sees when the user types the
  5607.     command with a specific person as the recipient.  For example:
  5608.  
  5609.         /a wink tommy
  5610.  
  5611.     ...would cause everyone to see:
  5612.  
  5613.         Joanie winks seductively at Tommy!
  5614.  
  5615.     ...except Tommy who would see:
  5616.  
  5617.         Joanie winks seductively at you!
  5618.  
  5619.  
  5620.     NanoBBS 2.00 Documentation                Page 92
  5621.  
  5622.  
  5623.     (see SEE YOU below).
  5624.  
  5625.     SEE ALL3 pertains to what everyone sees when ALL is the
  5626.     recipient.  This means that the action is performed for everyone
  5627.     present.
  5628.  
  5629.     SEE YOU pertains to what the recipient of an action sees.  See
  5630.     the SEE ALL2 example above.
  5631.  
  5632.     SEE NOACCESS is what the user sees if s/he tries to use an
  5633.     action they don't have access for.
  5634.  
  5635.  
  5636.     There are several ~ codes peculiar to intelligent actions (these
  5637.     only work within actions):
  5638.  
  5639.            ~r - Recipient's handle
  5640.            ~s - Sender's handle
  5641.            ~t - " secretly" if secret, nothing otherwise
  5642.            ~u - selected sender pronoun/noun
  5643.            ~U - selected recipient pronoun/noun
  5644.  
  5645.        Pronouns by number:
  5646.  
  5647.        If user is male/female:
  5648.  
  5649.            1: he/she
  5650.            2: his/her
  5651.            3: his/hers
  5652.            4: him/her
  5653.            5: boy/girl
  5654.            6: girl/boy
  5655.            7: man/woman
  5656.            8: woman/man
  5657.            9: dude/babe
  5658.  
  5659.     These pronouns can also be specified by name if typed exactly as
  5660.     shown above.  See ACTIONS.CTL for several live examples of the
  5661.     use of selected pronouns.  Grammaticists:  Yes, I know most of
  5662.     these are nouns - we hackers like to suppose things to save
  5663.     time...
  5664.  
  5665.  
  5666.     ┌──────────────────────────────────┐
  5667.     │ User and VIP Functions In Detail │
  5668.     └──────────────────────────────────┘
  5669.  
  5670.      The most important key for users, VIPs and co-sysops is the
  5671.      forward slash key "/".  All commands are preceded by the slash,
  5672.      and all are illustrated in this manual with the slash and
  5673.      command as they should be typed.
  5674.  
  5675.  
  5676.  
  5677.  
  5678.  
  5679.  
  5680.     NanoBBS 2.00 Documentation                Page 93
  5681.  
  5682.         ┌─────────────┐
  5683.         │ Public Chat │
  5684.         └─────────────┘
  5685.  
  5686.         Public "Chat" is the most basic function offered by
  5687.         NanoCHAT.  Anything you type that is not preceded by the
  5688.         slash ("/") character is presumed by NanoCHAT to be a
  5689.         public statement.
  5690.  
  5691.         For example, if you were to simply type:
  5692.  
  5693.              Hello There.
  5694.  
  5695.         Everyone on your channel would see "Hello There." along
  5696.         with your handle and node number.
  5697.  
  5698.         ┌──────────────────┐
  5699.         │ Private Messages │
  5700.         └──────────────────┘
  5701.  
  5702.         Often it is desirable for users to carry on private
  5703.         conversations without leaving public channels.    This can
  5704.         be accomplished by using the /p command.  For example,
  5705.         if there is a user on line 12, and you wanted to
  5706.         privately say "Hi, Chuck!" to that user, you would type:
  5707.  
  5708.              /p12 Hi, Chuck!
  5709.  
  5710.         That user would see your message, along with your
  5711.         handle and node number, and would be informed that it is
  5712.         a private message.
  5713.  
  5714.         If there is no-one on the node you specify, NanoCHAT
  5715.         will inform you of this fact.
  5716.  
  5717.         ┌───────────────────┐
  5718.         │ Changing Channels │
  5719.         └───────────────────┘
  5720.  
  5721.         /t - Change "Channel" - NanoCHAT supports 256 "channels"
  5722.              so that separate discussions can be carried out
  5723.              without interference or confusion with other
  5724.              conversations.  Include the channel number you want
  5725.              to change to, example:
  5726.  
  5727.             /t42
  5728.  
  5729.              ... this will take you to channel 42.  Only other
  5730.              users on channel 42 will be able to see what you
  5731.              publicly type.  By default, you start out on
  5732.              Channel 1.
  5733.  
  5734.  
  5735.  
  5736.  
  5737.  
  5738.  
  5739.  
  5740.     NanoBBS 2.00 Documentation                Page 94
  5741.  
  5742.         ┌─────────────────┐
  5743.         │ Generic Actions │
  5744.         └─────────────────┘
  5745.  
  5746.         /ga- "Generic Action" - crudely mimics a popular feature
  5747.              of other chat systems.  This command causes the
  5748.              system to make a third-party statement about you.
  5749.  
  5750.              Here is an example:
  5751.  
  5752.             /a is laughing her fool head off!
  5753.  
  5754.              This might cause the following to be
  5755.              displayed to everyone on your channel:
  5756.  
  5757.             Pebbles is laughing her fool head off!
  5758.  
  5759.         ┌───────────────┐
  5760.         │ Smart Actions │
  5761.         └───────────────┘
  5762.  
  5763.         Here is a list of default available actions:
  5764.  
  5765.         agree  back  bearhug   beer  beg  belch  bite  blush
  5766.         bonk  bow  brb    cheer  chill  chuckle  claw  comfort
  5767.         cough  crotchkick  cry     curtsy  dance    demand    duck
  5768.         duh   embrace    evilgrin   faint   fallinlove    fart
  5769.         finger     flash     flirt    french     frown    gasp   glare
  5770.         grin  groan  gross  handshake  hi5  impure  innocent
  5771.         kick   kickass    kill   kiss  laugh  lick  lie  loogy
  5772.         look   love   lust  moan  moo  moon   naked  niceass
  5773.         nod   puke   punch   purr   re     rip   rose   scream
  5774.         secret    shrug  sing   smack   smirk   smoke   smooch
  5775.         snicker   spank  streak   strip   thank  think    toke
  5776.         tongue    trudeau  ttyl  wave  wink  yawn
  5777.  
  5778.         /a    Invoke an action.  You can invoke actions with no
  5779.               parameters, or you can specify a user (by name or
  5780.               node) you wish to perform the action on, or you
  5781.               can specify ALL to do it to everyone on your
  5782.               channel!    You can also do an action to a user
  5783.               secretly!
  5784.  
  5785.         Exemplia:
  5786.  
  5787.         /a hug Tommy
  5788.  
  5789.         This might produce the following output for all users:
  5790.  
  5791.         Cuddlez hugs Tommy close!
  5792.  
  5793.         ...except for the recipient who sees...
  5794.  
  5795.         Cuddlez hugs you close!
  5796.  
  5797.  
  5798.  
  5799.  
  5800.     NanoBBS 2.00 Documentation                Page 95
  5801.  
  5802.         /a tickle Cuddlez secretly
  5803.  
  5804.         This would not produce a message for anyone except the
  5805.         recipient and the sender.  The recipient would see
  5806.         something like this:
  5807.  
  5808.         Tommy is secretly tickling you silly!
  5809.  
  5810.  
  5811.         /a bonk all
  5812.  
  5813.         ...this might produce something like...
  5814.  
  5815.         Tommy is bonking everyone over the head!
  5816.  
  5817.         SmartActions might use personal pronouns like She or He
  5818.         - these are automatically inserted correctly for the
  5819.         sending and receiving party's gender!
  5820.  
  5821.         If you would like to experiment with SmartActions, try
  5822.         performing them on yourself or in public on an empty
  5823.         channel, so as not to clutter busy channels...
  5824.  
  5825.         Type /al for a list of actions.
  5826.  
  5827.         Note: As of version 1.16, NanoCHAT supports an abbreviated
  5828.         version of the /a (action) command.  Now, all the user has
  5829.         to do is type / followed by the action command to activate
  5830.         the action.
  5831.  
  5832.         So,
  5833.             /kiss Lisa
  5834.  
  5835.         is functionally identical to
  5836.  
  5837.             /a kiss Lisa
  5838.  
  5839.         ┌──────────────────┐
  5840.         │ Aliased Commands │
  5841.         └──────────────────┘
  5842.  
  5843.         You can add virtually any function to NanoCHAT you want by
  5844.         using Aliased commands.
  5845.  
  5846.         How they work is fairly simple.  You define an aliased
  5847.         command in CHATCMD.CTL (see that name in the section of
  5848.         this document titled "External Files") by specifying the
  5849.         command, a compiled UFO file that the command invokes, and
  5850.         a number of parameters to place in the global UFO variables
  5851.         before calling the file.
  5852.  
  5853.         The user invokes the command by simply typing / followed by
  5854.         its name.  If an aliased command is the same as an action
  5855.         command, the alias takes precedence over the action.
  5856.  
  5857.         Example:
  5858.  
  5859.             /today
  5860.  
  5861.         If you configure "today" in CHATCMD.CTL to invoke a
  5862.         compiled UFO file called "TODAY.BBS", then that file will
  5863.         be run.  It might contain a [canned_callstoday] keyword,
  5864.         conveniently providing callers with a list of who's called
  5865.         today.    Or it could contain considerably more complicated
  5866.         UFO code, depending on what you want this command to do.
  5867.  
  5868.         Please see the instructions for CHATCMD.CTL in the section
  5869.         titled "External Files" for detailed information on how to
  5870.         set up chat command aliases.
  5871.  
  5872.         ┌────────────┐
  5873.         │ Squelching │
  5874.         └────────────┘
  5875.  
  5876.         /x - "Squelch" - Disallows /p messages from a user.  To
  5877.              sqelch someone type /x followed by their node
  5878.              number, e.g.
  5879.  
  5880.             /x2
  5881.  
  5882.              This will stop whomever is on node 2 from sending
  5883.              you /p messages.  To allow a user to /p again, or
  5884.              "unsquelch", simply repeat the command, e.g. /x2
  5885.              a second time will unsquelch node 2.
  5886.  
  5887.         /xa- "Squelch All" - Disallows /p messages from all
  5888.              users!  This will actually squelch everyone who is
  5889.              on at the time, however if someone logs off and
  5890.              comes back, they will be able to /p you again.  You
  5891.              can unsquelch everyone by typing /xa again, and you
  5892.              can selectively unsquelch certain users using the
  5893.              above /x command.
  5894.  
  5895.         ┌─────────────────┐
  5896.         │ System Messages │
  5897.         └─────────────────┘
  5898.  
  5899.         /mxxx
  5900.  
  5901.         This displays one of the system messages which are
  5902.         automatically displayed from time to time.  xxx can be
  5903.  
  5904.  
  5905.     NanoBBS 2.00 Documentation                Page 96
  5906.  
  5907.         any combination of 1 to 7 alphanumeric characters.  This
  5908.         is called the "slot name" of the message.  It
  5909.         corresponds to a textfile on disk.  If a message is
  5910.         displayed as /ma, its filename is MA.TCH.
  5911.  
  5912.         Example:
  5913.  
  5914.              /ma
  5915.  
  5916.         will display the /ma message (if present).
  5917.  
  5918.         Users can be assigned message slots online using the
  5919.         co-sys0p command /ka (see the "Sysop and Co-Sys0p
  5920.         Functions" section of this manual).  A user who has been
  5921.         assigned a slot may edit its contents by typing
  5922.  
  5923.              /m+ xxx
  5924.  
  5925.         ... where xxx is the slot name.  If the user specifies the
  5926.         wrong slot name an error is reported.
  5927.  
  5928.         Once this command is accepted, the user then sends up to
  5929.         16k of ASCII or ANSI text terminated by ^Z (ASCII 26).
  5930.         When the system receives the ^Z the message is saved.
  5931.         It can then be seen by typing /mxxx (xxx being the
  5932.         name) and will appear automatically during the random
  5933.         /m messages.
  5934.  
  5935.         There is a special kind of system message called an
  5936.         information file.  This is exactly the same as a /m
  5937.         message except that it cannot be assigned to a user.  It
  5938.         is accessed by typing
  5939.  
  5940.              /ixxx
  5941.  
  5942.         ...where xxx is the name, similar to /m messages.  /i
  5943.         messages are used for static information about the chat
  5944.         system, e.g. its rules, its technical information, etc.
  5945.  
  5946.         /m messages are normally displayed at random during
  5947.         regular intervals, defined by the SysOp.  Users can turn
  5948.         these automatic messages off by typing:
  5949.  
  5950.                     /m-
  5951.  
  5952.         ┌────────────┐
  5953.         │ Tele-Trial │
  5954.         └────────────┘
  5955.  
  5956.         /tt nnn
  5957.  
  5958.         A TeleTrial is a quick-and-dirty vote taken by ordinary
  5959.         users to have an annoying user ejected from the system,
  5960.         where nnn is the node number of the user to be booted.
  5961.         Once enough votes are cast, the user is history.  Only
  5962.         one vote per user.
  5963.  
  5964.  
  5965.     NanoBBS 2.00 Documentation                Page 97
  5966.  
  5967.  
  5968.         ┌────────────────────────────────────┐
  5969.         │ Summoning Callers Outside NanoCHAT │
  5970.         └────────────────────────────────────┘
  5971.  
  5972.         /pg
  5973.         or page
  5974.  
  5975.         By typing the word page by itself in NanoCHAT, the caller
  5976.         can invoke the user paging feature, in which the caller can
  5977.         "page" another caller to NanoCHAT.
  5978.  
  5979.         /tg
  5980.         or telegram
  5981.  
  5982.         By typing the word telegram by itself in NanoCHAT, the
  5983.         caller can send a user on another node a 255-character
  5984.         "telegram".
  5985.  
  5986.         ┌─────────────────────────┐
  5987.         │ Miscellaneous Functions │
  5988.         └─────────────────────────┘
  5989.  
  5990.         /? - This command displays the user help file,
  5991.              with a concise explanation of each command.
  5992.  
  5993.         /q - "Quit": This command exits NanoCHAT and returns
  5994.              the caller to the BBS.
  5995.  
  5996.         /s - "Status": This command displays a brief summary
  5997.              of all users who are using NanoCHAT.  It displays
  5998.              the channel number, node number, and handle of each
  5999.              user as well as indicating which nodes are squelched
  6000.              or muted, and which ones have the caller squelched.
  6001.  
  6002.         /sm - "Show Members": This command displays a list of all
  6003.              users in NanoCHAT's user database.
  6004.  
  6005.         /h - "Handle": This allows the caller to change her/his
  6006.              handle.  It can be changed for the current call only,
  6007.              or saved permanently in the user database, if the
  6008.              caller chooses.  Users may include embedded colour
  6009.              codes in handles.
  6010.  
  6011.         /u1 - "Hello Message": This allows the caller to change
  6012.               the message displayed by the system when s/he logs
  6013.               on.  It may contain embedded characters and can be
  6014.               up to 6 lines.
  6015.  
  6016.         /u2 - "Goodbye Message": This allows the caller to
  6017.               change the message displayed by the system when
  6018.               s/he logs off.  Like the "Hello" message it can
  6019.               contain up to 6 lines.
  6020.  
  6021.  
  6022.  
  6023.     NanoBBS 2.00 Documentation                Page 98
  6024.  
  6025.     ┌─────────────────────────────────────┐
  6026.     │ SysOp and "c0" (Co-SysOp) Functions │
  6027.     └─────────────────────────────────────┘
  6028.  
  6029.         There are 6 access classes in NanoCHAT:
  6030.  
  6031.             Sys0p    (highest)
  6032.             Co-Sys0p
  6033.             Moderator
  6034.             VIP
  6035.             Normal
  6036.             m0e    (lowest)
  6037.  
  6038.           ┌────────────────────┐
  6039.           │ Moderator commands │
  6040.           └────────────────────┘
  6041.  
  6042.             /k?      Display a command list for moderators,
  6043.                   c0-sys0ps, and sys0ps.
  6044.  
  6045.             /kx nnn   Eject user on node nnn - This will
  6046.                   inform the user in question that
  6047.                   s/he's being tossed, and will then
  6048.                   exit the chat door.
  6049.  
  6050.             /kj nnn   Jail user on node nnn - This will
  6051.                   prevent the user from changing to
  6052.                   another channel
  6053.  
  6054.             /km nnn   Mute user on node nnn - This will
  6055.                   cause the user's task to ignore any
  6056.                   public messages, private messages, or
  6057.                   actions s/he may attempt.
  6058.  
  6059.           ┌───────────────────┐
  6060.           │ Co-Sys0p commands │
  6061.           └───────────────────┘
  6062.  
  6063.         (Note: Co-Sys0ps also have access to moderator commands)
  6064.  
  6065.             /k+ nnn   Promote user on node nnn -
  6066.                   This temporarily increases the user's
  6067.                   access level to the next class.  M0es
  6068.                   are made normal, normals VIP, and VIPs
  6069.                   moderators.  The maximum level allowed
  6070.                   by this command is Moderator.
  6071.  
  6072.             /k- nnn   Demote user on node nnn -
  6073.                   This has the opposite effect of /k+.
  6074.                   Other c0-sys0ps (and sys0ps) are
  6075.                   unaffected by this command.
  6076.  
  6077.             /ky nnn   Rudely eject user on node nnn -
  6078.                   This is very similar to /kx, but it
  6079.                   will simply hang up on the user
  6080.                   without an explanatory message of any
  6081.                   sort.
  6082.  
  6083.     NanoBBS 2.00 Documentation                Page 99
  6084.  
  6085.             /ka nnn yyy  Set /m slot for user on node nnn -
  6086.                   This will assign a message slot to the
  6087.                   user on nnn, where yyy is the message
  6088.                   name.  yyy can be from 1 to 7
  6089.                   alphanumeric characters in length.
  6090.                   This assignment is saved in the user's
  6091.                   userbase record and is the only field
  6092.                   editable by non-Sys0p c0's.
  6093.  
  6094.             /ka nnn   Revoke /m slot for user on node nnn
  6095.                   /ka with no slot name will render the
  6096.                   user unable to modify any /m slot!
  6097.  
  6098.             /kd nnn   De-stat user on node nnn
  6099.                   This is a somewhat technical command
  6100.                   which should be used when, for
  6101.                   whatever reason, a user leaves chat
  6102.                   but still shows up in the /s list.
  6103.                   That non-user could continue receiving
  6104.                   messages from other nodes until the
  6105.                   IPC drive fills, which would cause
  6106.                   problems for the whole system,
  6107.                   therefore c0's may forestall such
  6108.                   problems with this command.  It will
  6109.                   also delete any dead IPCs which have
  6110.                   accumulated for the user.
  6111.  
  6112.             /kh nnn <handle>  Temporarily change handle of
  6113.                   user on node nnn to <handle>. This is
  6114.                   useful when a user chooses an
  6115.                   unacceptable handle.
  6116.  
  6117.             /kt nnn ttt  Temporarily change user's channel
  6118.                   to channel ttt (where ttt is a valid
  6119.                   channel from 1 to 255).  You can keep
  6120.                   the user there by "Jailing" her.
  6121.  
  6122.             /kv nnn   "Vanish" a user, as if she had logged on
  6123.                   in Stealth Mode (see "Command Line
  6124.                   Parameters").  Specify the user's node
  6125.                   with nnn.  Do it again to un-vanish her.
  6126.  
  6127.           ┌────────────────┐
  6128.           │ Sys0p commands │
  6129.           └────────────────┘ (Note: Sys0ps have access to ALL system
  6130.             functions including moderator and co-sys0p functions)
  6131.  
  6132.             /k* nnn   Temporarily grant/revoke Co-sys0p
  6133.                   access for node nnn.    When access is
  6134.                   revoked the user's access returns to
  6135.                   the access level the user logged in
  6136.                   with.
  6137.  
  6138.             /kb nnn   "Bar" a user on node nnn and eject.
  6139.                   This is identical to /ky except that
  6140.                   prior to hanging up on the user, the
  6141.                   system will add the user's BBS name to
  6142.                   a "barred" file or blacklist will then
  6143.                   prevent the user from using NanoCHAT
  6144.                   again until the name is removed from
  6145.                   the blacklist.  The blacklist is a
  6146.  
  6147.  
  6148.     NanoBBS 2.00 Documentation                Page 100
  6149.  
  6150.                   simple textfile which can be edited in
  6151.                   any text editor (you may add, remove,
  6152.                   or modify names this way) with the
  6153.                   filename NANOCHAT.BAR.
  6154.  
  6155.             /ke uuu   Edit user record for user number uuu
  6156.                   uuu is a user record number, not a
  6157.                   node number!    You can edit any user
  6158.                   this way, regardless of whether s/he
  6159.  
  6160.                   is online at the time.  If the user is
  6161.                   online, the changes you make will
  6162.                   apply to them immediately!  To find a
  6163.                   user's user number, the user command
  6164.                   /sm will display the user number of
  6165.                   each user.
  6166.  
  6167.             /ks      System Status.  This will display the
  6168.                   number of callers online, the number
  6169.                   of bytes free on the IPC and system
  6170.                   drives, the size of available memory,
  6171.                   the number of /m messages available,
  6172.                   and the total number of users in the
  6173.                   userbase.
  6174.  
  6175.  
  6176.  
  6177.  
  6178.  
  6179.  
  6180.  
  6181.  
  6182.  
  6183.  
  6184.  
  6185.  
  6186.  
  6187.  
  6188.  
  6189.  
  6190.  
  6191.  
  6192.  
  6193.  
  6194.  
  6195.  
  6196.  
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  
  6202.  
  6203.  
  6204.  
  6205.  
  6206.  
  6207.  
  6208.     NanoBBS 2.00 Documentation                Page 101
  6209.  
  6210.     ╔═╦═══════════════════════════════════════════════════════════╦═╗
  6211.     ║ ║                GLOSSARY                  ║ ║
  6212.     ╚═╩═══════════════════════════════════════════════════════════╩═╝
  6213.  
  6214.     Here is a list of some of the technical terms used in the
  6215.     NanoBBS documentation, along with some terms you're likely to
  6216.     encounter as a sysop.
  6217.  
  6218.     ARC - An older archiving program by SEA (System Enhancement
  6219.           Associates).  This program is no longer widely used to
  6220.           archive software on BBSes but is still the only recognized
  6221.           archiver for FidoNet echomail transfers.
  6222.  
  6223.     ARJ - An archiving program by Robert K. Jung.  Not as widely
  6224.           used as ZIP, its compression and speed are competetive and
  6225.           its registration price is a little cheaper.
  6226.  
  6227.     ANSI - This term is a sort of misnomer.  In sysop usage, it
  6228.            refers to IBM's colour version of the DEC VT-100 terminal
  6229.            command language.  This protocol is what gives most BBSes
  6230.            their colour menus and screens.    Virtually all terminal
  6231.            programs written for the IBM PC support this standard and
  6232.            default to it.
  6233.  
  6234.     "Banked" Time - NanoBBS has a "Time Bank" which lets users
  6235.           "deposit" unused minutes to be used another day.  There are
  6236.           typically restrictions that you can place on the amount of
  6237.           time that can be "desposited" and "withdrawn", as determined
  6238.           by the external file BANK.CTL.  When a user "deposits" time, it
  6239.           is stored in the Time Bank and is counted against the user's
  6240.           daily time limit at that time.  Conversely, when the user
  6241.           "withdraws" time that time does not count against the user's
  6242.           daily time limit.
  6243.  
  6244.     Baud - A term which refers to a change in the signal state in a
  6245.            modem's modulation.  Baud and BPS (modem speed) used to
  6246.            be the same quantity when 300 baud was standard, but
  6247.            today's advanced modulation schemes are able to attach
  6248.            many bits to each baud to increase real speed (BPS).
  6249.            Baud and BPS are still used interchangeably in common
  6250.            conversation, but they are no longer the same and you'll
  6251.            likely be indignantly corrected by certain smug gurus if
  6252.            you should accidentally post something which suggests
  6253.            that they are...
  6254.  
  6255.     BBS - Bulletin Board System.  An online service, usually run on
  6256.           a single PC or a local area network of PCs.  NanoBBS is a
  6257.           software program which can turn your system into a BBS.
  6258.  
  6259.     BPS - Bits per Second.    The speed of your modem.  This is not to
  6260.           be confused with Baud, which is an inaccurate name for
  6261.           modem speed.  Nevertheless, Baud is more commonly used so
  6262.           it's generally acceptable to talk about a "14400 baud"
  6263.           modem even though there's no such thing.  It's 14400 BPS,
  6264.           but only 2400 baud (it moves 6 bits per baud)
  6265.  
  6266.     Chat - There are two types of Chat.  The kind most sysops are
  6267.            familiar with is "sysop chat" where the sysop hits Alt-C
  6268.            and "breaks in" to type in real time to the user, who can
  6269.            type back.  NanoBBS also supports "teleconference chat"
  6270.            via NanoCHAT.  The best BBS software packages support
  6271.            teleconference chat, and most BBSes with two or more
  6272.            lines have it implemented in one form or another.  NOTE:
  6273.            There are so many technical and not-so-technical terms
  6274.            dealing with teleconference chat that I could devote a
  6275.            whole glossary to just them.  However, they are well
  6276.  
  6277.  
  6278.     NanoBBS 2.00 Documentation                Page 102
  6279.  
  6280.            covered in the chapter on NanoCHAT.
  6281.  
  6282.     Doors - Doors are external programs, usually games, that the
  6283.         user can run from the BBS.  The attraction to doors is
  6284.         that they allow many people to play the same game and
  6285.         compete with each other, while most video games are
  6286.         limited to one or two players. Although most doors are
  6287.         games, many have other functions such as taking surveys,
  6288.         match-making, and providing a .QWK mail interface, to
  6289.         name but a few.
  6290.  
  6291.     Download - Downloading is what happens when the BBS sends the
  6292.            user one or more files at her request.
  6293.  
  6294.     Echomail - A type of shared message area.  Through the use of a
  6295.            Fidonet Technology Mailer and an Echomail Packer, you
  6296.            can "share" message areas with other BBS, so that
  6297.            your users and users of other BBSes can converse on
  6298.            the same subject without all the parties having to
  6299.            call all the BBSes.    A message posted on one BBS in
  6300.            the echo network is automatically posted to the same
  6301.            area on all the other participating systems. Some
  6302.            echoes are very popular and are shared by hundreds of
  6303.            systems, and have hundreds of messages posted to them
  6304.            every day!
  6305.  
  6306.     Echomail Processor - This is a program which, after your Fidonet
  6307.                  mailer has received echomail packets, unpacks
  6308.                  the packets and processes them into a form
  6309.                  useable by NanoBBS.  It also checks the
  6310.                  message bases to see if you or your callers
  6311.                  have entered any new messages, and if any new
  6312.                  messages exist, it packs them up and prepares
  6313.                  them to be sent out to the net by your mailer.
  6314.  
  6315.     FILE_ID.DIZ - This is a small text file that is often found inside
  6316.               ZIP archives.  It is used to describe the contents of
  6317.               the ZIP archive and is usually imported directly into
  6318.               the BBS's FILES.BBS file lists.  The extension DIZ
  6319.               stands for "Description In Zip".
  6320.  
  6321.     FOSSIL - A FOSSIL is a standard serial port device driver.  The
  6322.          word FOSSIL is an acronym which stands for Fido Opus
  6323.          Seadog Standard Interface Layer.  In the early days of
  6324.          Fidonet, many computers were only partially IBM
  6325.          compatible, and serial port compatibility among these old
  6326.          machines was a particularly difficult point.  So, it was
  6327.          decided by several online software authors (among them
  6328.          Fido, Opus and SEADog) to create a standard serial port
  6329.          interface for which any software could be written.  The
  6330.          interface is serviced by a device driver - the FOSSIL.
  6331.          Then, the creation of FOSSILs was left to the
  6332.          manufacturers and users of the various quasi-compatible
  6333.          machines, and the end result was that if a FOSSIL existed
  6334.          for your machine, it could run any FOSSIL based software.
  6335.          Today, FOSSILs are used mainly for the convenience of BBS
  6336.          and door authors, but they still serve their original
  6337.  
  6338.     NanoBBS 2.00 Documentation                Page 103
  6339.  
  6340.          purpose now that FOSSILs are being written for
  6341.          non-standard multi-port serial cards.    X00 by Ray Gwinn
  6342.          and BNU by David Nugent are perhaps the two most widely
  6343.          used FOSSIL drivers.
  6344.  
  6345.     "Frozen" Time - When you hit Alt-F you "freeze" time for the user,
  6346.           so that the timer no longer counts down for her and she
  6347.           effectively has no time limit.  You can unfreeze the timer by
  6348.           hitting Alt-F again.  Time spent in this condition is called
  6349.           "frozen" time and is accounted for in the user's session time
  6350.           report, and does not count against her daily time limit.
  6351.  
  6352.     FSE - Full Screen Editor.  This is a part of NanoBBS that lets
  6353.           you enter messages in a convenient full-screen environment
  6354.           similar to a word processor.  The alternative is an
  6355.           old-fashioned line-by-line editor, akin to DOS's Edlin
  6356.           program.    Some other BBSes need an external program to
  6357.           support an FSE, but NanoBBS has one called NEd
  6358.           (NanoEditor) built in!
  6359.  
  6360.     FTN - Fidonet Technology Network.  This is a network of BBSes
  6361.           which uses the protocols and software developed originally
  6362.           for Fidonet.  There are many FTNs including, of course,
  6363.           Fidonet.    These networks cover the spectrum from general
  6364.           interest chat type networks to very specialized subject
  6365.           matter.  Joining an FTN requires, at minimum, a mailer
  6366.           such as BinkleyTerm or Intermail, an echomail processor
  6367.           such as Squish or FMail, and a Fidonet compatible BBS such
  6368.           as Maximus-CBCS.
  6369.  
  6370.     "Granted" Time - This is time that the BBS has awarded the user for
  6371.           uploading files, or time that you give to her by hitting PgUp
  6372.           (5 minutes of granted time each time you do this).  This time
  6373.           is accounted for in the user's session time report and does
  6374.           not count against the user's daily time limit.
  6375.  
  6376.     .GZ - GZip is a portable compression method used mainly on Unix
  6377.           systems.    An MS-DOS version is available on many FTP sites.
  6378.  
  6379.     Leech - A derogatory term used by sysops to describe users who
  6380.         only download and never post messages or upload.  This
  6381.         term is used mainly by sysops who run free BBSes.  If
  6382.         you're running a BBS for profit, you need to take a
  6383.         whole different attitude.
  6384.  
  6385.     LZH - An archiving method by Haruyasu Yoshizaki (the program is
  6386.           called LHA, even though the file extensions are LZH).
  6387.           Competitive compression and speed, and freely
  6388.           distributable and usable by noncommercial users!
  6389.  
  6390.     Mailer - Sometimes called a Front End Mailer or a Front Door (hence
  6391.          the name of that particular mailer product).  A Mailer is
  6392.          a system which is responsible for communicating with
  6393.          Fidonet and other fidonet-technology networks.  Usually,
  6394.          it answers the phone, determines whether the call is a
  6395.          mail call or a BBS call, and brings up the BBS if it's a
  6396.          BBS call.  If it's a mail call, the mailer will receive
  6397.          any incoming mail, send any outgoing mail that may be
  6398.          waiting to go to the system that is calling, and then
  6399.          finish the call, exit the mailer back to a batch file,
  6400.          which runs other programs necessary to process the mail.
  6401.          If you are in Fidonet you will need a mailer and an
  6402.          echomail processor in order for NanoBBS to properly handle
  6403.          Fidonet netmail and echomail.
  6404.  
  6405.     Modem - The device which converts digital data into audible
  6406.         sounds (or their electrical equivalents) which can be
  6407.         transmitted over the phone lines, and then back into data
  6408.         again.    One of the most basic hardware requirements for a
  6409.         BBS.
  6410.  
  6411.     NanoBBS 2.00 Documentation                Page 104
  6412.  
  6413.     Offline Reader - This is a program which lets a user read her
  6414.              messages after she has logged off of the BBS
  6415.              where the messages came from.    The user logs on
  6416.              to the BBS, downloads all the new messages at
  6417.              once, then logs off and uses the offline reader
  6418.              to read them at her leisure.  This cuts down on
  6419.              connect time, and is more convenient for the
  6420.              user.
  6421.  
  6422.     Page - The act of summoning someone on a BBS for live "chat".
  6423.            NanoBBS has two kinds of page: SysOp paging, in which
  6424.            NanoBBS plays a little tune to get an inattentive sysop's
  6425.            attention, and user chat, in which callers can
  6426.            electronically page each other online and rendezvous in
  6427.            NanoCHAT.
  6428.  
  6429.     QWK - A message format developed for PC-Board systems.    This
  6430.           format is mainly used for offline readers (see above).
  6431.           NanoBBS supports this, of course.
  6432.  
  6433.     RIP - Remote Imaging Protocol.    This is a graphics display
  6434.           protocol used in some of the more recent BBS and terminal
  6435.           programs - including NanoBBS.  RIP allows you to build
  6436.           highly complex graphical menus and screens, and lets your
  6437.           user point-and-click their way around your BBS.  If you
  6438.           want your BBS to appeal to the "all thumbs" type user, you
  6439.           definitely should seriously consider setting up NanoBBS
  6440.           for RIP support!
  6441.  
  6442.     Semaphore - A semaphore is a file, usually zero bytes in size, that
  6443.             is written to indicate to a batch file or to another
  6444.             program that the other program has to do something.
  6445.             Often semaphores are the only way for unrelated
  6446.             programs to communicate with each other.
  6447.  
  6448.     Shareware - A try-before-you-buy software marketing concept.
  6449.             Software is distributed publicly with little or no
  6450.             documentation and usually with several important
  6451.             features disabled.    If users like the program they
  6452.             are expected to pay for the full version, which is
  6453.             normally shipped by mail with the full packaging,
  6454.             documentation, technical support and other goodies.
  6455.             NanoBBS is distributed as shareware.
  6456.  
  6457.     SysOp - The person who runs the BBS.  In short, YOU.  This word
  6458.         is a contraction of SYStem OPerator.  You may elect to
  6459.         appoint co-sysops, who have equal control over the BBS,
  6460.         assistant sysops who are able to carry out basic
  6461.         housekeeping functions, and moderators, which are really
  6462.         just regular users who can delete messages from other
  6463.         users and are politically empowered by you to maintain
  6464.         decorum.
  6465.  
  6466.  
  6467.  
  6468.  
  6469.  
  6470.  
  6471.     NanoBBS 2.00 Documentation                Page 105
  6472.  
  6473.     Telegram - a short message (under 255 characters) sent from one
  6474.            user to another while both are online on a multi-node
  6475.            system. Telegrams are a one-shot alternative to going
  6476.            into chat and let users communicate while they're
  6477.            browsing in menus.
  6478.  
  6479.     Terminal - That's the program a user uses to call your BBS.
  6480.            Some of the best are QmodemPro from Mustang Software,
  6481.            and Telix from DeltaComm.  Both are promoted heavily
  6482.            on BBSes by their publishers.  Special-purpose
  6483.            terminals like RipTerm should always be made easily
  6484.            accessible to users if your BBS supports their
  6485.            special protocols.  Make sure you have the shareware
  6486.            test-drive versions of major terminal programs easily
  6487.            available to new users, so that they can upgrade
  6488.            right away from the second-rate terminal programs
  6489.            that usually come with modems at the time of
  6490.            purchase.
  6491.  
  6492.     Trashcan - A control file used by your BBS to detect problem
  6493.            users and reject them.  When you have to remove a
  6494.            problem user, you put her name and known aliases in
  6495.            this file and the BBS will reject any logon with
  6496.            those names.  It is considered a measure of a sysop's
  6497.            success as a diplomat if her trashcan is empty...
  6498.  
  6499.     Twit - A term used by sysops to describe a problem user.  Not to be
  6500.            confused with Hacker.
  6501.  
  6502.     Upload - Uploading is when a user sends the BBS one or more
  6503.          files.
  6504.  
  6505.     Usenet - A set of "newsgroups" which are actually not unlike FTN
  6506.          echoes, but are usually moderated.  These are
  6507.          propagated through the internet rather than through
  6508.          phone lines as FTN echoes are.  Usenet newsgroups exist
  6509.          for virtually every conceivable field of interest.  If
  6510.          you have a full Usenet feed, your users will never have
  6511.          a shortage of messages to read, but you may develop a
  6512.          shortage of disk space!
  6513.  
  6514.     UUEncode - This is a commonly used method of converting binary
  6515.           files, such as programs or pictures, into ASCII text suitable
  6516.           for transmission via e-mail.  NanoBBS actually allows users
  6517.           to download binary files using the ASCII protocol, by
  6518.           UUEncoding the binary file on the fly.
  6519.  
  6520.     WFC - Waiting For Call.  This is what the screen displayed by
  6521.           the BBS while waiting for a call is called.  If your BBS
  6522.           is successful, you'll see very little of the WFC screen.
  6523.  
  6524.     Xmodem - A very old file-transfer protocol, Xmodem is nearly
  6525.          extinct.  It is a block transfer protocol which sends
  6526.          files in blocks of 128 bytes, waiting for
  6527.          acknowledgement (and a checksum) before sending the
  6528.          next block.  In the real world, the best efficiency you
  6529.          can hope for is about 75%, but it's usually worse than
  6530.          that.    Users should be discouraged from using Xmodem -
  6531.          point them to a terminal program that supports Zmodem,
  6532.          and ask that they download (and use) it.  Once the user
  6533.          has tried Zmodem, she'll never want to go back - mention
  6534.          something to that effect while you're trying to talk
  6535.          the user into changing terminals!
  6536.  
  6537.     NanoBBS 2.00 Documentation                Page 106
  6538.  
  6539.     .Z - Files compressed by Unix systems often have a .Z extension.
  6540.          There are Unix uncompressors for most platforms including
  6541.          MS-DOS.
  6542.  
  6543.     ZIP - A file compression method developed by Phil Katz.  This is
  6544.           probably the most common method used by PC users.
  6545.           Compression ratios in the latest versions are excellent;
  6546.           this format is well worth standardizing your BBS to.  Some
  6547.           BBSes will not accept uploads with any other archiver!
  6548.  
  6549.     Zmodem - A very popular file-transfer protocol.  Zmodem
  6550.          automatically transfers files from one computer to the
  6551.          other with full filename and date preservation, and
  6552.          includes a "resume" feature in case the transfer is cut
  6553.          off.  It is also very efficient, because it is a
  6554.          "streaming" protocol - it doesn't wait for
  6555.          acknowledgement of each block before sending another.
  6556.          This allows efficiencies very close to 100%.
  6557.  
  6558.     Zoo - A very portable compression method.  You might see files
  6559.           created on Macintosh, Amiga or Unix-based computers but
  6560.           intended for multiple platforms, compressed in this
  6561.           format.  It's slow and not as efficient as other archivers
  6562.           but it's available for nearly every platform I've seen.
  6563.  
  6564.  
  6565.  
  6566.  
  6567.  
  6568.  
  6569.  
  6570.  
  6571.  
  6572.  
  6573.  
  6574.  
  6575.  
  6576.  
  6577.  
  6578.  
  6579.  
  6580.  
  6581.  
  6582.  
  6583.  
  6584.  
  6585.  
  6586.  
  6587.  
  6588.  
  6589.  
  6590.  
  6591.  
  6592.  
  6593.  
  6594.  
  6595.  
  6596.  
  6597.     NanoBBS 2.00 Documentation                Page 107
  6598.  
  6599.  
  6600.  
  6601.  
  6602.  
  6603.  
  6604.  
  6605.  
  6606.  
  6607.  
  6608.  
  6609.  
  6610.  
  6611.  
  6612.  
  6613.  
  6614.  
  6615.  
  6616.  
  6617.      ▄█████▄  ▄█████▄  ▄█████▄   ▄████▄  ▄█████▄  ▄█████▄    ▄████▄
  6618.      ▄▄▄ ▀███ ▄▄▄ ▀███ ▄▄▄ ▀███ ▄▄▄ ▀███ ▄▄▄  ██▀ ▄▄▄  ██▀ ▄▄▄  ▀▀▀
  6619.      ███  ███ ███  ███ ███    ███ ███  ███ ██████▄  ██████▄    ▀████▄
  6620.      ███  ███ ████████ ███    ███ ███▄ ███ ███  ███ ███  ███ ▄▄▄  ███
  6621.      ███  ███ ███  ███ ███    ███  ▀████▀  ██████▀  ██████▀    ▀████▀
  6622.  
  6623.                 NanoBBS 2.00
  6624.             Copyright 1993-1996 Whirlwind Software
  6625.                  All Rights Reserved
  6626.  
  6627.     ───────────────────────────────────────────────────────────────
  6628.  
  6629.     Contact Information:
  6630.  
  6631.     Mail:
  6632.  
  6633.             Whirlwind Software
  6634.             P.O. Box 5874
  6635.             Victoria, B.C.
  6636.             Canada      V8R 6S8
  6637.  
  6638.     E-mail: ue075@freenet.victoria.bc.ca
  6639.  
  6640.     CompuServe: 76722,2330
  6641.  
  6642.     Fidonet: 1:340/26
  6643.  
  6644.     BBS: +1 604 361 4549 (300-33600 bps, 24 hours)
  6645.  
  6646.  
  6647.  
  6648.  
  6649.  
  6650.  
  6651.  
  6652.     NanoBBS 2.00 Documentation                Page 108
  6653.  
  6654.  
  6655.     THE TROUBLE WITH TROUBLE REPORTING
  6656.     A frank discussion.
  6657.  
  6658.  
  6659.     Although I have taken great pains to ensure that NanoBBS is
  6660.     bug-free, the reality is that no software is ever completely free
  6661.     from inconsistencies and bugs.    Thus, NanoBBS is a constantly
  6662.     improving product.  In order to make NanoBBS a better program, I
  6663.     need to know when you are having problems with it.
  6664.  
  6665.     Most problems with BBS software are due to configuration errors or
  6666.     user errors, however sometimes bugs also cause problems.  The first
  6667.     two can be solved in future versions by clarifying the BBS
  6668.     documentation; the latter takes programming.  Both are easy for me
  6669.     to do, but the hard part is figuring out what to change and where.
  6670.  
  6671.     However, the most important thing in solving any problem is the
  6672.     information at hand.  The more information about the problem you
  6673.     can give me, the sooner (and the more likely at all) I can solve it
  6674.     for you - and for others who may have the same problem.
  6675.  
  6676.     If you have trouble with NanoBBS, I need a specific, detailed
  6677.     description of:
  6678.  
  6679.         - The exact nature of the problem you are having
  6680.         - The steps you have already taken to try to fix it
  6681.         - The exact version number of NanoBBS and the Beta number
  6682.              if it is a wide beta.
  6683.  
  6684.     Without a good description of a problem I cannot solve it.  It's
  6685.     just that simple.  Here's a few examples of poor problem reports
  6686.     that will not help me solve problems:
  6687.  
  6688.        "The BBS won't start!"
  6689.  
  6690.        "No-one can get in!"
  6691.  
  6692.        "I can't access messages / doors / files" etc.
  6693.  
  6694.     I get many problem reports like these and I often have to be
  6695.     forceful in my efforts to get more information.  You need to tell
  6696.     me because my tech support line is not connected to the psychic
  6697.     friends line!  The little details very often provide the clues that
  6698.     pinpoint the problem and suggest a solution by themselves.
  6699.  
  6700.     If the BBS won't start, what does that mean?  Are you getting an
  6701.     error?    A DOS error?  A "Runtime Error?"  Is it just freezing up?
  6702.     What's on the screen when it happens?  Does the screen clear?  Does
  6703.     it display a copyright notice?    Does the cursor change colour?
  6704.  
  6705.     If no-one can get in, what's happening?  Do they get a copyright
  6706.     notice?  A [Hit Any Key] prompt?  A welcome screen?  A logon
  6707.     prompt?  If they get all these, does it let them enter their name
  6708.     and password?  Do they see nothing at all but you get the text on
  6709.     your end?
  6710.  
  6711.     If you can't access messages or doors or files, how does this
  6712.     problem show itself?  Are you unable to get into (for example) the
  6713.     file section menu at all?  Are there any file areas?  Does it put
  6714.     you in the (void) area?  Can you list files with the L command?
  6715.     Find them with F?  Download them once flagged?    Flag them?  Do you
  6716.     get an error message or some similar message telling you the file
  6717.     could not be found?  And how about doors.  Does the door appear to
  6718.     run at all?  Does it lock up?  Give the user all garbage?  Always
  6719.     run in local mode?  Not even respond to the key to activate it?
  6720.     And so with messages.  Have you checked the paths?  A one-letter
  6721.     misspelling of a path or Squish filename will cause doors, messages
  6722.     and files to be totally unknown or inaccessible to the BBS.  Have
  6723.     you compiled the config files?
  6724.  
  6725.  
  6726.     A good trouble report will get you a reply with a solution much
  6727.     more quickly, with less farting around trying different things and
  6728.     fewer expensive phone calls or netmail calls.  Here is an example
  6729.     of a good trouble report:
  6730.  
  6731.     "I am running NanoBBS 2.00 Wide Beta 1B068 and I noticed that some
  6732.     users can't get in.  I just got a new USR Sportster with 33600
  6733.     baud.  I can see the RING and CONNECT 31200 and CONNECT 33600
  6734.     messages in the black bar but although it answers, it never goes
  6735.     out of the WFC screen and the caller never gets anything after he
  6736.     connects, not even a copyright banner.    Callers at 28800 and below
  6737.     don't seem to have this problem."
  6738.  
  6739.     This example is so detailed it points straight at the solution: the
  6740.     sysop doesn't have the highest speeds of his new modem set up as
  6741.     baud rate entries in his config file.  Each baud rate has to be set
  6742.     up in the config file but the two new high speeds didn't "come
  6743.     with" the BBS.
  6744.  
  6745.  
  6746.  
  6747.