




                                                                  BCHECKERS |
                                                                            |
                                                                version 2.0 |
                                                                            |
                                                                            |
                            A multi-node checkers door for most BBS systems |
                                      Copyright 1995 by DIRT CHEAP SOFTWARE |
                                               Written in C by Bruce Bowman |
                                                                            |
                                                 Released December 21, 2000 |
                                                                            |
                               INTRODUCTION
                               ============                                                                          

 >Disclaimer<  Throughout this document, I have used the masculine gender
 when referring to a "generic" person.   This is only to avoid continuous
 use of such things as (s)he, which I find annoying. I have total respect
 for the females of the species; I even married one. So lighten up.   :^)

 >Disclaimer #2<  The author of this program, Bruce Bowman, promises only
 that this program will take up space on your hard drive (and perhaps not
 even that). I've put a lot of my time and sweat equity into this, and in
 return I ask only that you  try it and remit a token sum if you continue
 to do so. I make no claims for its suitability for a particular purpose,
 and guarantee nothing  whatsoever regarding potential damage to your own
 computer or hard-acquired files.  I can only suggest that you  do what I
 do, and back up  your hard drive frequently.  If the unthinkable happens
 and some terrible fate should befall you  as a direct or indirect result
 of using BCheckers, you will have my utmost sympathy -- but that's about
 all. So there.   :^)                                                    

 This software is COPYRIGHTED: You're subject to the associated penalties
 of law if you attempt to reverse-engineer it, hack the key routines,  or
 otherwise steal the benefits of all my aforementioned sweat equity.     
                                                                         
                               QUICK START                               
                               ===========                               
                                                                         
See the file QUICK_ST.ART for fast instructions on how to test and set up  
BCheckers. See also the WHATSNEW.140 file for new features in this version.                                                           
                                                                         
                                 OVERVIEW                               
                                 ========                                 
                                                                         
As a sysop of a FidoNet BBS, I was disappointed in the lack of a good    
checkers door. Sure, there were some that allowed internode play and the 
like, but these were expensive and few offered any decent ANSI graphics  
and the simple ability to have callers make moves on alternate logons. I 
also wanted to try my hand at programming in C, having learned a number of 
other programming languages. BCheckers is the result of this effort; and 
at only $5 is a bargain in shareware.

BCheckers offers the following sysop features (and more I've probably
overlooked in these docs):

-  As you would expect, BCheckers monitors carrier detect functions, to
   automatically recover when a user drops carrier.                    
                                                                       
-  Includes a fully-adjustable inactivity timeout monitor. A warning is
   sent 5 seconds before the caller is ejected.

-  Share-aware file i/o for use in multi-node BBS systems. You must have 
   DOS's SHARE.EXE loaded for multi-node use.             

-  Supports most popular BBS door information files, such as DORINFO1.DEF,
   EXITINFO.BBS, CHAIN.TXT, DOOR.SYS, etc.  

-  Full-screen chat, play-the-sysop mode, simple configuration, "multiple
   personality" system, session logging, paging hours, supports CUSTOM
   DROP FILE FORMATS, and MORE!

-  Displays and updates a QuickBBS-style status line, with information 
   available to the sysop such as user name, location, baud rate, time left, 
   function keys, ANSI and AVATAR settings, and so on.
   
-  Keeps track of a user "wants-chat" indicator, just like the one in
   RemoteAccess, QuickBBS and other BBS systems. Allows for sysop page from
   the door, and integrated chat mode.

-  Provides the sysop with all the standard function keys for adjusting user 
   time, hanging up on or even locking out the user -- and sysop shell to DOS.

-  Full support for locked baud-rates of up to 115200 baud, using the FOSSIL
   driver for maximum compatibility with any system. If a FOSSIL is not
   available, BCheckers will use its own communications routines. Auto-detect
   of local operation.

-  BCheckers is also DesqView and Windows aware. It will automatically check 
   for the presence of a multitasker, and if available, will perform all of 
   its screen output through the appropriate function calls.

-  Includes a play-the-computer mode, and internode play.

-  Automatically generates a netmail packet to notify callers when it's their
   turn to move.


                      CONVERTING FROM EARLIER VERSIONS
                        ---------------------------                                                   
 * * IMPORTANT!! * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * If you've been running any previous version of this program, you MUST *
 * run 10TO11.EXE and/or 15TO20.EXE in the BCHECKERS directory prior to  * 
 *                         running BCHECKERS 2.0!                        *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

The data file BCHECK.BBS in versions after 1.0 hold the players' comments 
to each other and a draw-request indicator. Each record is 78 bytes longer 
than in version 1.0. If you run later versions without running 10TO11.EXE, 
you will corrupt your BCHECK.BBS file and lose all games in progress. Your 
callers probably won't appreciate this! Similarly, BCHECK20.BBS contains
additional information that is not present in data files for previous
versions.

TO UPGRADE, DO THE FOLLOWING:
============================
Step 1: Overwrite your old copy of BCHECK.EXE with the new version (rename
        BCHECK20.EXE to BCHECK.EXE if necessary).
Step 2: If you are currently running version 1.0, copy the 10TO11.EXE file
        to the directory containing your BCHECK.BBS file.
Step 3: Close any tasks that might access the BCHECKERS program, then type
        the following at the DOS prompt:

           10TO11

Step 4: If you are running ANY previous version of BCheckers, repeat steps
        2 and 3 using the file 15TO20.EXE.

This will update all data files to the latest format. Once completed, you 
may delete the 10TO11.EXE and 15TO20.EXE programs. If you don't mind losing
all your games, just delete the BCHECK.BBS file from the DOS prompt. 

IF YOU'RE NOT RUNNING ANY PREVIOUS VERSIONS OF BCHECKERS, YOU DO *NOT* NEED
TO PERFORM THESE UPGRADE INSTRUCTIONS!

      
                          COMMAND LINE PARAMETERS
                          =======================

Most configuration is done via the configuration file. See the BCHECK1.CFG
file for an example and instructions on how to edit the paths and other
parameters for your own use. If running multi-node, you'll normally need to
create a separate config file for each node running the door.

Call the program with the following syntax. Only the <cfgfile> parameter is
required. Parameters indicated with an asterisk (*) can only be configured
in the registered version.
                                                                          

BCHECK <cfgfile> | LOCAL 
           
Where:

<cfgfile> REQUIRED: Name of the config file. Include the path, if necessary.
          The config file used will normally vary depending on the node 
          using the door. I usually set things up so the node number is 
          passed on the menu item command line, something like this:
          
                C:\BBS\DOORS\BCHECK.EXE C:\BBS\DOORS\BCHECK*N.CFG
          
          The *N parameter is a 'metacharacter' that the BBS software uses
          to provide the node number to the door. This allows you to set up
          a single menu item that will run the program for all nodes without
          resorting to batch files.

LOCAL     Optionally, you can replace the name of the config file with the
          LOCAL keyword. This allows you to play the game in local mode
          from the console, generally to try the game and see if you like it
          prior to setting it up for the BBS.

         
Examples:
--------

   BCHECK BCHECK1.CFG
   
         Bring up the door with the node 1 config file. This command assumes
         that you have already changed to the directory containing the
         executable and config files, so this would normally be used only
         when the door is run from a batch file.

   C:\BBS\DOORS\BCHECK.EXE C:\BBS\DOORS\BCHECK*N.CFG
   
         Run the door from node 2. This example uses the BBS metacharacter to
         select the appropriate config file for each node automatically. This
         command can therefore be placed directly into the BBS menu item.
         Once edited with your own directory paths, the above should work 
         for QuickBBS, RemoteAccess, and clones. Some BBS software will not
         allow you to omit the .EXE extension.
    
   C:\BBS\DOORS\BCHECK 
   
         ERROR. Config file name is REQUIRED.

   BCHECK LOCAL

         Runs BCheckers with sysop defaults. This mode does not require a
         configuration file or any door information (drop) files. It's
         mainly used to play with the door a little to see if you like it
         prior to setting it up. [If you will be running BCheckers on a
         local BBS node, it's better to actually use a config file and have
         the game read a door information file. This ensures correct user
         name entries in the hall of fame.]


                         OTHER COMMAND-LINE OPTIONS 
                         ==========================
         
    BCHECK DELETE 5        (Delete one game)
    
         Deletes game 5. This allows you to get rid of games played by twits
         or otherwise manually clean things up without adversely affecting 
         other callers' games. USE WITH CAUTION!

         If you wish to delete *all* the games, simply delete BCHECK20.BBS 
         from the command line. The file will be created as needed the next
         time the door is used.

    BCHECK FAME            (Hall of Fame Bulletin)

         Instructs BCheckers to read the BCHECK20.HOF file and send the Hall
         of Fame bulletin out the modem (and to the screen). BCheckers will
         pause for the ENTER key and immediately exit when this option is
         used, allowing the sysop to set up the hall of fame as a logon
         bulletin.


                              SYSOP FUNCTIONS
                              ===============
                              
Status Line - By default, the status line is ON. To turn it off, press F10.
The status line lists the name of the user currently on-line, his location, 
and baud rate (0 if the door is operating in local mode). You may also find
out how much time the user has left, check for indicators as to whether the 
user has ANSI and/or AVATAR modes on, etc.  If the user wishes to Chat with 
the sysop (ie: they have paged the sysop, but haven't received a response), 
a [Want-Chat] indicator will flash on the status line. 

The appearance of the status line varies with the "personality" setting 
chosen in the config file. The following is for the "Remote Access" style, 
but the other styles are similar.

[F1]..[F10] - The Function keys [F1] thru [F10] allows the sysop access to
              various types of information on the status line, or to turn 
              the status line off. These keys are as follows:

              [F1] -  Display basic door and user information
              [F2] -  Display phone numbers and important dates
              [F3] -  Display security flags and up/download info
              [F4] -  Display system information and current time
              [F5] -  Display message info and user's settings
              [F6] -  Display chat reason and sysop's comment
              [F9] -  Display help information for sysop
              [F10] - Toggle the status line on/off                               
              
The following other function keys are also available to the sysop:

[UP]/[DOWN] - Use the arrow keys to increase or decrease the amount of 
              time the caller has left in the door.

[Alt]-[C] -   Allows the sysop to break into chat with the caller at any 
              time. [Alt]-[C] again, or [ESC] will end chat mode. (Notice 
              that the Want-Chat indicator will also be turned off, if it 
              was flashing). If your door is running under Apex, Remote
              Access or QuickBBS, paging from within the door will also
              cause the Want-Chat indicator to stay lit when the user 
              returns to the BBS.

[Alt]-[J] -   Allows the sysop to shell to DOS, if enough memory is 
              available. Simply type EXIT to return to the door.

[Alt]-[H] -   Hang up on the user. Drops carrier and returns to the BBS.

[Alt]-[L] -   This key locks the user out of the BBS. It first hangs up 
              on the user, and then sets their security level to 0, to 
              prevent them from ever logging on again. This feature may 
              require use of the EXITINFO.BBS file, depending on what 
              system the door is running under.

[Alt]-[K] -   The "User Keyboard-Off" key allows the sysop to temporarily 
              prevent the user from typing anything on their keyboard. 
              This has no effect on the local keyboard, but causes the
              door to ignore any keystrokes from remote. This also toggles
              on and off during "play against the sysop" mode to lock out
              the user while you make your move.

[Alt]-[N] -   The "Sysop Next" key, this function reserves the system for 
              use by the sysop after the user logs off, if the door is 
              running under an Apex or RA 1.00 or later system.

[Alt]-[D] -   "Drop to BBS" key. This function allows the sysop to exit 
              the door and return the user to the BBS, without hanging up.

                                                      
                               USING THE DOOR
                               ==============
                               
The door is menu-driven, and most of the functions are self-explanatory. A 
brief overview will be given here.

The door conforms to Hoyle's rule for jumps (rather than "Huff or Blow"). If 
the caller has a capture, he *must* make a capture. If a new game is started, 
the player is assigned the Red pieces for his first move (in keeping with 
Checkers conventions). The opponent is "No One" until someone joins the game.
    
The opening screen allows the caller to perform most game operations, as
follows:

1) Make a Move -- The caller may make a move in a game in which he is
   already a player. These games are presented in a list, from which the 
   player chooses the game number. The game selected is then presented to 
   him. If his opponent is online, the caller is given the option of paging
   the opponent to complete the game in internode mode.

   If it isn't the caller's move, or the game has been completed, a message 
   to that effect will be displayed. 

   If it is the caller's move, the door will first check if his opponent
   has offered a draw. If so, he is allowed to accept or reject the offer. 
   If accepted, the game is drawn immediately...otherwise, the offer is 
   discarded and the game proceeds normally. The door then presents the
   caller with his opponent's message (if present), followed by a list of
   legal moves.
   
   The list of moves consists of a scrolling pick-list. The caller scrolls
   through the list with the space bar until the desired move is highlighted;
   then presses ENTER to make the move. This ensures that callers make only
   legal moves. Once a move is made, the door checks whether the opponent
   also has a legal move -- if not, the game is won!

   In pre-move mode, the caller also has the following options:

   <E>xit -- Abort and return to the game selection menu.
   <R>edraw Screen -- Use this if something messes up in data transmission
     and the screen needs to be cleaned up.           
   <F>orfeit -- Give up and let your opponent win. 

   After making a move, the caller is given the opportunity to offer a draw
   or leave a comment for his opponent. Bright red indicators clearly show
   the comment/draw status at all times.

   <S>end comment -- Saves a one-line comment to your opponent, normally
     used to brag, but can also be very handy as a chat replacement for
     internode play. Maximum of 73 characters.
     If you leave a comment, a bright red comment indicator will appear. To
     erase a comment before it is sent, re-enter a comment of zero length.
   <T>oggle draw -- Turns the draw-request indicator on and off. When the
     opponent calls back, he is told about the offer. If he accepts, the
     game is drawn. 
          
2) View Games in Progress -- Displays any game that has not been deleted. A
   list of current games is presented to the user so he may select one to
   view. The board position is then displayed along with status information.

3) Start a New Game -- Same as move option #1 above, but starts a new game.
   The caller is always given the Red pieces to start the game. Of course,
   the <F>orfeit and <D>raw options are not available, since the caller has
   no opponent yet.

4) Play the Computer -- Play a game (either normal or "giveaway") against the
   computer. The computer can play a pretty good game, so watch out! Note
   that only games played against real humans count in the Hall of Fame.

5) Blitz Game -- Page the sysop or another player online for a game. This
   allows callers to ask to play a game against you in REAL-TIME! To play
   the sysop, choose node 0; otherwise select the node number of your
   desired opponent. If he agrees to play you within two minutes, you then
   enter internode play.

   It's just like sitting across the board from your opponent and playing!
   However, keep in mind that someone is on the other end waiting for you.
   If you take more than 2 minutes to make a move, you opponent will be
   offered the option of exiting internode mode.

   The game is stored to disk after each move, and treated like any other
   game -- except callers can exceed their maximum games-per-player if you
   agree to accept a game. During your moves, the caller's keyboard is
   locked out. If one of the players loses carrier or falls asleep at the
   keyboard, the game can be resumed as a normal alternating-logon or
   internode game at some later time.

6) Checkers Rules and History -- Displays a 3-screen overview of Checkers
   rules and history. This has been paraphrased from Hoyle, and includes
   some animated help screens.

7) Door Help -- A succinct listing of non-obvious information that should
   prove useful to first-time users of the door. Very similar to what you
   are reading right now.

8) Display Hall of Fame -- A listing of top players and their win/loss
   records, sorted by percent of games won.

9) Page the Sysop -- The sysop can break into chat mode at any time with 
   Alt-C. This command allows the caller to REQUEST chat mode. Chat is 
   split-screen, and both the sysop and caller can type at the same time.   

!) Quit to the BBS -- Exit the door and return to the board.


                              REGISTRATION
                              ============

The key consists of a small file that resides in the same directory as
your game files (BCHECK20.BBS). Ordinarily, I would find this abhorrent -- 
but I'm just too stupid to figure out a way to patch the executable with 
a key entered in a config program (which would also require a config 
program!). The door is fully functional even unregistered. However, there
are some minor advantages to paying the five bucks.

Benefits of Registration
------------------------
1) The door will display a delay screen when the game opens until is it
   registered.

2) You cannot disable sysop paging or set paging hours unless registered.

3) The door will only allow up to 12 concurrent games until you register.
   Once registered, up to 200 games may be played.                

4) The door will display -= UNREGISTERED =- when returning to the BBS.

5) You will receive preferential support from the author. Unregistered
   people don't get much of my attention unless they report a bug.

6) You will have peace of mind, knowing that you are supporting shareware.

The key routine could probably be cracked eventually by someone with a hex 
editor and a lot of time on their hands. More elaborate protection schemes 
than mine have suffered this fate. However, I'm not asking much money for 
this -- so save yourself some effort and cough up the cash.

How do you register?  Send $5 (US) cash, check or money order, payable to
Bruce Bowman, to the following address:

                       DIRT CHEAP SOFTWARE
                       c/o Bruce Bowman
                       8364 S. State Road 39
                       Clayton, IN  46118

Allow 2 weeks for personal checks to clear. I'm told it's not a good idea 
to send cash via the mail, but I've never had problems with it. If you 
decide to do so, and the money gets ripped off, I will feel sorry for you 
but I won't waive your registration fee over it.

Accompany this with the form on the following page...or otherwise provide 
this information. Email to beb@lilly.com is fine. Registrations without this
information WILL be ignored (I will make a feeble attempt to contact you).

It is also a very good idea to send a copy of your BBS drop file with your
registration. Since the door reads data from your drop file to determine
if the key will work, it is very important that both the sysop name and
the BBS name be provided EXACTLY as present in your drop files. If you
cannot guarantee this, you should send me your drop files.

NOTE:
Registered keyholders receive FREE UPGRADES when they become available.
You will have to check in though, since I don't plan to notify everyone of
an upgrade individually.

                          BCHECKERS REGISTRATION 
                                Version 2.0
                              
IMPORTANT!  The BBS name and SYSOP name must match your door   IMPORTANT!
IMPORTANT! drop file EXACTLY, or your key won't work. Consider IMPORTANT! 
IMPORTANT!     sending us a copy of your BBS drop file(s)!     IMPORTANT!                    

*SYSOP NAME: ____________________________________________________________

ADDRESS: ________________________________________________________________

_________________________________________________________________________

_________________________________________________________________________

EMAIL ADDRESS (INTERNET): _______________________________________________

*BBS NAME: ______________________________________________________________

BBS Phone: ______________________________________________________________

BBS Software/Version: ___________________________________________________

NETWORK: _________________________________________ (FidoNet, etc, if any)

NETWORK NODE NUMBER: _______ : _________ / _________ (if above completed)

AMOUNT ENCLOSED: ________________________      NOTE: REGISTRATION IS $15!
                                                                    
HOW DO YOU WANT TO PICK UP THE KEY?

[ ] ... Email it to me at the Internet email address above (PREFERRED!!).

[ ] ... Here's $2.00 more...upload it to me as well as the latest 
        version.  Acount Information as Follows:

        Account Name:  Bruce Bowman
        
        Password: _______________________________________________________
        
        Miscellaneous Info: _____________________________________________

        _________________________________________________________________

[ ] ... Send on disk to the address above (very slow!) PLEASE ADD $5 to 
        cover disk, mailing costs, and my hassle.  
        Please ship my key and latest copy via   [ ] - 5.25"   [ ] - 3.5"
                                                                    
[ ] ... YES!! I WANT THE SPECIAL DEAL! Send me latest version of KaBoom!
        and its key for only $3 more!!

COMMENTS/SUGGESTIONS/BUGS: ______________________________________________

_________________________________________________________________________

____________________________________________________________________@t.ze  


                            TECHNICAL SUPPORT
                            ----------------- 

TECHNICAL SUPPORT IS PROVIDED ONLY THROUGH EMAIL OR OUR WEB PAGE! 

I have had people ask me to call them long-distance on my dime -- I simply 
don't make enough money on BCheckers to justify this. There seems to be a
perception amongst the sysop community that door authors are getting rich
selling their doors, but the truth is that most sysops never register their
doors. To provide some perspective, I've spent hundreds of hours programming
this door, and have yet to make $1/hour on it.

To obtain support, you must visit my web page, send me email, or snailmail me
at the address in the registration form. I also frequent the DOORGAMES echo
(FidoNet/Internet mailing list) and can often be found there.

                   DIRT CHEAP SOFTWARE
                   8364 South SR 39
                   Clayton, IN  46118
                   http://dcs.taciturn.net
                   beb@lilly.com
                   
If you are having problems with your key, you MUST give me a copy of your 
door drop files, or I won't be able to help you.
                             

                             FREQUENT COMMENTS
                             =================

Q: The door can't find the game file, or it can't find my key even though 
   I've registered. Help!
A: Run the door from the directory containing the game file and the key,
   or place the correct path in the config file under "DoorDir." The 
   executable can be anywhere on your path. Make sure BCheckers knows 
   where your drop files are from the "BBSDir" parameter. If your key is 
   named something else, be sure to rename it to BCHECK.KEY. Finally,
   try putting your system name and sysop name in the configuration file.
   
   If it still does not recognize your key, you either did not provide 
   the correct BBS and sysop names on your registration form, or your
   system is misconfigured so this information is not appearing in your
   drop files. Send me a copy of your drop files and a config file and
   we'll work on it.
   
Q: When I call the door, the status line quickly flashes on and comes back
   to the DOS prompt.
A: You are probably giving BCheckers a nonexistent config file name. Make
   sure you use the correct metacharacter in your menu, and that you 
   haven't misspelled anything.

Q: I know there's a game in there waiting for a new player, but the door
   won't let me make a move in that game. It doesn't even show up in the
   play list.
A: Use the "start a new game" function rather than "make a move."

Q: The game prints [2;4m brackets and other junk characters all over.
A: The door requires ANSI graphics capability. Exit the door and rectify 
   the situation.
  
Q: The file BCHECK20.BBS or BCHECK20.HOF exists, but I occasionally still
   get a message saying "Error opening BCHECK20.BBS/HOF!"
A: The door will try 40 times to open a file over a 10-second interval. If 
   this fails, BCheckers gives up with an error.    
   You may be running out of file handles. Increase the number of FILES in 
   your CONFIG.SYS. 
   It is also possible that one task in a multi-tasking environment opened
   the file, and then crashed without closing it. If so, you will probably
   have to reboot to clear the error.
   This may also rarely happen during intensive disk activity in a multi-
   tasking environment (for example, when copying files to/from floppies). 
   Use only programs that properly release time slices to your door.
   You may have a task suspended that has the file open. Make sure all your
   BBS nodes are set to continue to run in the background.
   You *do* have DOS's SHARE.EXE loaded, don't you?

Q: The door gives me the error message -- "Timeout on BCHECK20.BBS read 
   operation."  What does THAT mean?
A: As before, a task has grabbed exclusive access to the file and never
   closed it.

Q: BCheckers made me move somewhere I didn't want to move!
A: The door will not allow a caller to deviate from Hoyle's rules. Some of
   your callers may not be familiar with these rules.      

Q: The screen stays blank when I return from chat mode!
A: BCheckers allocates memory "on the fly" to save the screen contents before
   starting chat. If you don't have enough extra free memory (about 4k), 
   BCheckers can't save the screen. Usually, hitting ENTER will bring the
   screen back up.


PRODUCT HISTORY
---------------
1/81   Wrote my first Checkers game, in BASIC (of all things). Artificial 
       intelligence -- play against the computer. SLOW....
         
3/94   Decided to write BCheckers, as an exercise in teaching myself C.
       Found out I could port almost *none* of my original BASIC code.

4/94   First beta release of BCheckers (version 0.90). Many bugs.

6/94   Released version 1.0 (finally!). Fixed bug where the game always
       played in registered mode (boy, you guys would've loved that)!
       Apparently, fixing a drop file bug introduced another one. I 
       believe I have it now...

6/94   Released version 1.0a. Version 1.0 was never really hatched, but
       a few people did file request it. While it's highly unlikely you
       will experience problems running 1.0, 1.0a does include more 
       testing for file access conflicts in multi-node systems (and
       helpful error messages). Other minor cosmetic improvements (like
       stating that you are indeed being logged off when requested). 

7/94   Released version 1.1 -- some minor bug fixes, as follows:

       1) If more than 19 games, the <more> prompt is no longer displayed 
          on the same line as the 19th game. 
       2) The "taken pieces" display would sometimes overwrite part of the 
          "Checkers" logo if a player had crowned more pieces than his 
          opponent had captured (a *very* rare circumstance). Fixed.
       3) The game wouldn't recognize an upper case "Y" to verify a game 
          forfeit (it would stubbornly wait for a lower case "y"). Fixed.
       4) The color intensity on the remote screen would sometimes not be 
          set properly. Fixed.
          
       New stuff: 
       
       1) Added the game-draw function. I have visions of many people out 
          there playing version 1.0 with 1 king vs. 1 king, and no way to 
          bring the game to a satisfactory conclusion! Shame on me...
       2) Added the ability to set sysop paging hours.
       3) Added support for leaving a note to your opponent.
       4) Added the game status bulletin generator.
       5) Added the hall of fame bulletin generator.
       6) Added support for the RA 2.00 EXITINFO.BBS drop file format.
       7) Logoff key is now "!". It was too easy to accidentally hit "9" 
          rather than "8", and end up disconnecting rather than returning 
          to the BBS.    

7/94   Released version 1.1a. Found a minor bug in the Hall of Fame 
       bulletin and squashed it.

8/94   Released version 1.2. Added a carriage return to the bulletin code
       in case the caller does not have screen clearing turned on. Changed
       all "Press any key" prompts to "Press ENTER." This allows the user
       to still take advantage of type-ahead, while fixing a problem with 
       some modems sending a ^Q character when using XON/XOFF handshaking. 
       Speeded up both the main menu and the board drawing routines. Board
       display now shows the player's names on both sides of the board.

       Some drop file converters pad the BBS name or sysop name with extra
       spaces, which caused difficulties in key recognition. BCheckers now
       strips these spaces prior to applying the key recognition routine.
                                                    
       Made some minor changes in check for move legality in anticipation
       of a "play again the computer" mode for version 2.0.

8/94   I hate bug-fix releases! Version 1.2a was necessary to fix a bug 
       that kept the bulletin generators from working. Also added code to
       flush the keyboard buffer just before exiting.

3/95   BCheckers 1.3 parses multiple drop files more effectively. This
       should solve some rare/intermittent problems with key recognition.

       The QuickBBS format of EXITINFO.BBS file is now handled properly.
       This should fix the "time left" problem on returning to QuickBBS.

       Previous versions of BCheckers required XON/XOFF handshaking if a
       FOSSIL was not available. Hardware handshaking is now supported.

       Non-standard IRQs and base addresses are now supported if not using
       a FOSSIL.
       
       Cleaned up the Hall of Fame code so that players with a 1-0 record
       aren't listed above those with a 10-0 record just because both are
       100%.         
       
5/95   BCheckers 1.4 has lots of improvements!

       1) Configuration is now via a config file rather than the command line
       2) New LOCAL and interactive PLAY THE SYSOP modes!
       3) Replaced line chat with split-screen chat
       4) Fixed DOOR.SYS key recognition
       5) Added the status-line MULTIPLE PERSONALITY SYSTEM. Status line now
          stays on-screen by default
       6) Added session logging capability
       7) Set different paging hours for each day of the week and configurable
          page duration
       8) Added configurable transmit/receive and FIFO buffer sizes
       9) Added support for custom drop file formats
                    
6/95   BCheckers 1.5 is a bugfix for a problem with the inter-player comment
       code and RIP caller recognition.
       
1/96   BCheckers 2.0 introduces play-the-computer mode with several levels of
       difficulty.

       BCheckers now suspends the system clock during play-the-sysop mode.
       
12/00  MAJOR REWRITE:

       Reduced registration fee from $12 to $5.

       Hall of fame is now updated in real time and is available from the
       main menu. Can be run as a separate door (for example, as a login
       bulletin). Displays percentages to the nearest hundredth.

       Combined the "start new game" and "join game" functions.

       Added a play-the-computer mode and "giveaway" checkers.

       Added the "nogiveaway" and "nodeepening" config file options.

       The maintenance function is now run whenever BCHECK20.BBS is opened.
       There is no need to run it manually.

       The screen is no longer re-drawn between moves in "play the sysop"
       mode. Both the sysop and the remote user view the board from their
       own vantage point.

       Legal moves are now provided to the user in the form of a scrolling
       pick-list. The screen no longer flashes legal destination squares,
       which often confused callers.

       Changed inactivity warning so it's less likely to mess up the screen.

       Door logfile is now BCHECK20.LOG. File i/o errors now write a log
       entry to this file to assist with troubleshooting.

       A game's "time remaining to move" is now displayed in days/hrs/mins
       as appropriate.

       Games are saved from "play the sysop" and "internode" play (to be
       completed with normal, alternate-logon play).

       Added draw-request and comment-saved indicators for post-move options.

       Fixed split-screen chat so returning to the door is less likely to
       scroll and mess up the screen.

       Sysop can now cancel a "blitz" page with the ESC key.

       Added internode play in REAL TIME, and the ability to complete
       previously started games by internode play.

       Eliminated the game status bulletin. Instead, BCheckers can now
       output a FIDO-style message packet containing netmail to notify your
       callers when it's their turn to move.

                            FUTURE OF BCHECKERS
                            =================== 

Ultimately, I may add inter-BBS play and make the computer even more
difficult to beat. I'd welcome other ideas on how BCheckers can be improved.
