
















                    Ŀ
                                 BJTables v1.7            
                                                          
                               Annandale Software         
                    


















                         Copyright Annandale Software
                                                          


















                                          i








                                 TABLE OF CONTENTS

          I.  INTRODUCTION  . . . . . . . . . . . . . . . . . . .    1
               I.i  WHAT IS BJTABLES? . . . . . . . . . . . . . .    1
               I.ii  WHO IS BJTABLES FOR? . . . . . . . . . . . .    1
               I.iii  SPECIAL FEATURES  . . . . . . . . . . . . .    2
               I.iv  CONDITIONS FOR USE . . . . . . . . . . . . .    3

          II.  INSTALLING BJTABLES  . . . . . . . . . . . . . . .    3
               II.i  SYSTEM REQUIREMENTS  . . . . . . . . . . . .    4
               II.ii  FILES INCLUDED WITH THE CURRENT RELEASE . .    5
               II.iii  UP AND RUNNING . . . . . . . . . . . . . .    6

          III.  PLAYING BJTABLES  . . . . . . . . . . . . . . . .    6
               III.i  THE BJTABLES SCREEN . . . . . . . . . . . .    7
               III.ii  ISSUING COMMANDS . . . . . . . . . . . . .    7
               III.iii PROGRAM SPEED AND PAUSING  . . . . . . . .   10
               III.iv SUPERVISOR MODE . . . . . . . . . . . . . .   11

          IV.  CONFIGURING BJTABLES . . . . . . . . . . . . . . .   11
               IV.i  THE STRATEGY TABLES  . . . . . . . . . . . .   11
               IV.ii Loading Strategies . . . . . . . . . . . . .   12
               IV.iii  CREATING NEW STRATEGIES  . . . . . . . . .   13
               IV.iv  THE FORM OF THE STRATEGY TABLES . . . . . .   14

          V.  CUSTOMIZING THE COUNT METHOD  . . . . . . . . . . .   20
               V.i  LOADING THE CARD COUNT FILE . . . . . . . . .   20
               V.ii  SETTING UP THE CARD COUNT FILES  . . . . . .   20

          VI.  MODIFYING THE RULES OF PLAY AND THE BANKROLL . . .   24

          VII.  COMMUNICATING WITH ANNANDALE SOFTWARE . . . . . .   26

          VIII.  ACKNOWLEDGEMENTS . . . . . . . . . . . . . . . .   26

          IX.  BIBLIOGRAPHY . . . . . . . . . . . . . . . . . . .   26
















                                       ii








                              I.  INTRODUCTION
                              


          I.i  WHAT IS BJTABLES?
          

          BJTables is a program which emulates the game of casino
          blackjack, and allows the player to play a realistic
          form of casino blackjack.  The purpose of the program
          is to help the user develop blackjack skills,
          particularly as far as card counting abilities are
          concerned.  Casino blackjack is the only gambling game
          where a skilled player can actually turn the odds to
          his advantage, and play a game with favorable odds. 
          This program is intended to allow a skilled player a
          way to effectively practice his game before venturing
          out into the casino.

          BJTables software reads in modifiable strategy tables
          and has a customizable card-counting scheme.  The user
          can try out different card-counting strategies and
          decide which is best for him.


          I.ii  WHO IS BJTABLES FOR?
          

          BJTables is intended for people who already know
          something about the rules of blackjack.  No attempt is
          made in this manual to teach the rules of the game.  
          (There are many useful books on the subject, and
          pamphlets are available from the casinos.  See the
          references at the end of this manual).  Someone with a
          card-counting method in mind will particularly profit
          from the program, since it keeps an internal card
          count.  The program can also be taught a strategy which
          is based on the count, and help the player in mastering
          a particular counting system.

          BJTables requires only a small amount of communication
          between the player and the program.  The input to
          BJTables is primarily through short "mnemonics" which
          are key sequences entered through the keyboard.  No use
          is made of a mouse.

          BJTables does not use extremely fancy graphics and
          sound.   Rather, programming resources have been spent
          on the making the program valuable for the
          card-counting blackjack enthusiast.  In particular,
          features such as customizable card counting and

                                     1







          strategy tables make the program ideal for practicing
          different strategies before venturing out to the
          casino.


          I.iii  SPECIAL FEATURES
          

          A list of the most interesting features of this program
          is given here.  First, a note about terminology:

          In this document, "player" refers to one of the players
          sitting at the table (excluding the dealer).  In the
          current version of the software, there are always three
          players.  "User" refers to the player position which is
          controlled by the person operating the software.  The
          user occupies the center position in the three player
          game.

          Some of the special feature of the program are:

           A separate strategy can be chosen for each of the
          players.

           The program allows the user to implement his own
          card-counting scheme in a rather general way.  The card 
          count is maintained by the program for reference by the 
          user.

           The program will provide information on the correct
          moves at the request of the user.

           The program supports surrender.

           The blackjack rules can be modified.

           The dealer can deal from a shoe consisting of from 1
          to 4  decks.  The user can select approximately when
          the dealer will shuffle up.
          
          New for version 1.6 are:

           More on-screen prompts.

           The program supports a supervisor mode.  The program
          will "beep" when the player makes an incorrect move.

           Implementation of "quick key" access to the current
          card count and correct action.

           The ability to select program pausing, and the
          ability to control program speed.

                                     2







          New for version 1.7:

           Help screen pops up immediately on entering a bad
          blackjack command.

           Bets are echoed.  Backspace key is used for editing.

           Double down and split pair bets are placed automatically.

           The amount in the player's bank can be selected. 
          When the  program is terminated, the amount in the bank
          is saved to a file.  The next time the program is
          started, this latest bank amount is where the player
          starts (unless changed between playing sessions).

          Additional features apply to the registered version of
          BJTABLES,  known as version 2.0.  See the readme.txt
          file for details.


          I.iv  CONDITIONS FOR USE
          

          This program is distributed as "freeware": it is free
          to any one  who wants to use it, but we retain the
          copyright.  However, if the software is registered,
          additional benefits are available, as described in the
          readme.txt file.  Anyone who uses this software on a
          regular basis is strongly encouraged to register their
          copy.

          The file REGISTER.TXT has addresses which can be used for
          registering your copy with Annandale Software.
          
          This software cannot be sold for profit without the
          express permission of Annandale Software.  It can be
          distributed or copied freely as long as it unmodified. 
          All references to Annandale Software must be retained. 
          A nominal fee covering the cost of distribution and a
          reasonable profit for the distributor is acceptable.


                           II.  INSTALLING BJTABLES
                           

          The BJTables program package consists of 15 files. 
          There is the  executable file, a manual, the strategy
          tables, count files and  options files.  The latter
          three are ascii files and are meant to be changed if
          desired.  Installing the program is simple.  Copy the
          15 files to a directory of your choice on a disk of
          your choice, and you're ready.  The program always

                                     3







          looks for its files in the default directory (the
          directory you were in when you started the program).

          The manual for the program (this file) can be printed
          from the  DOS command line or read in a word-processing
          program or text editor.  This manual is a DOS text file
          (ASCII file).

          EXAMPLE: Installing BJTables on a hard disk.

          1)   Create a special subdirectory for the program:
                    C>mkdir \BJTABLES

          2)   Copy all the files to your hard disk.  If the 
                    files came from the A: drive, do this:
                    C>copy A:\*.* C:\BJTABLES\*.*

          3)   Set your default directory to the BJTABLES
               subdirectory:
                    C>cd \BJTABLES

          4)  To start the program, type BJTABLES:
                    C>BJTABLES

          Computer users with Hercules graphics should read the 
          special note below.


          II.i  SYSTEM REQUIREMENTS
          

          The BJTables program is graphics-based.  It can be run
          in monochrome or color modes.  It has been tested with
          the following graphics standards:

               a. VGA (16 colors out of 256).
               b. EGA 16 colors.
               c. EGA monochrome.
               d. CGA monochrome.
               e. Hercules graphics (see special note below).

          Most IBM-Compatible computers should suffice to run
          this program.

          Not much memory is required; although I do not know the
          "minimum" necessary, it is likely that any computer
          with more than 384K of memory will suffice.






                                     4








          *******************************************************
          SPECIAL NOTE FOR HERCULES GRAPHICS USERS: the file
          MSHERC.COM must be run before the program is run.  To
          do this, type "msherc" at the DOS prompt:
                    C>msherc
          *******************************************************


          II.ii  FILES INCLUDED WITH THE CURRENT RELEASE
          

          There are 17 files included with the current release of
          BJTables.  Not all of these files are necessary for the
          program to run.  A brief listing of these files
          follows.  More detail can be found in following
          sections.

          LIST OF FILES INCLUDED WITH BJTABLES V1.7
          

              BJTABLES.EXE -- the executable file.
              MANUAL.TXT   -- the program manual.
              README.TXT   -- information to read before
               installing BJTables.
              REGISTER.TXT -- information on registering your
               copy of BJTables.
              OPTIONS.DAT  -- an ASCII file containing program
               options.
              COUNT.DAT    -- an ASCII file containing instructions
               for configuring the card-counting method.
              COUNT.SMP    -- a particular card-counting method (the
               "simple point count" of reference 2).
              COUNT.MNC    -- another card-counting method (the
               "main-count" system described in reference 1).
              BASICSTR.DAT -- the standard "basic strategy" strategy
               encoded in tabular form.  This is an ASCII file.
              MAINCNT.DAT  -- the "main count" strategy encoded in
               tabular form.  This strategy is discussed in reference
               1.
              MAIN_2.DAT   -- the "main count" strategy for a certain
               set of rules (doubling down after splitting is
               allowed).  Again, see reference 1.
              BJSTRAT.1    -- the strategy table for player 1. 
               This is the same as the basic strategy initially.
              BJSTRAT.2    -- the strategy table for player 2 (user). 
               This is the same as the basic strategy initially.
              BJSTRAT.3    -- the strategy table for player 3. 
               This is the same as the basic strategy initially.
              HEROES.DAT   -- A file containing names of
               registered users who have elected to have
               their contribution to BJTABLES acknowledged.

                                     5







              MSHERC.COM   -- driver file for Hercules graphics  
               users.
              TMSRB.FON    -- font file for the program.


          All of the above files are plain DOS text files (ASCII
          files) except for executable file, MSHERC.COM and
          TMSRB.FON.

          Two additional files are created after BJTABLES is run. 
          These files (named $BJT2$.$$$ and $BJT$.$$$) are for
          backing up the OPTIONS.DAT files when it is updated. 
          See the section on configuring BJTABLES for more
          details.

          II.iii  UP AND RUNNING
          

          BJTables is a highly customizable program, but it comes
          ready to run.  The following files are necessary before
          the program can be run:

                   BJTABLES.EXE
                   TMSRB.FON
                   OPTIONS.DAT
                   COUNT.DAT
                   BJSTRAT.1
                   BJSTRAT.2
                   BJSTRAT.3

          These files can be used in their initial form, or they
          can be modified.  But they all must be present in the
          same subdirectory for the program to function.  To get
          BJTables running, simply make sure all of these files
          are together in the same subdirectory.  Then, change
          your default to that subdirectory and simply type
          BJTABLES at the DOS prompt.

          SPECIAL NOTE: for HERCULES graphics, the file
          MSHERC.COM must be executed or the program will not
          function properly.  Simply type MSHERC at the DOS
          prompt before running BJTables.

          To understand how to modify or interpret the last 5
          files, see the section entitled "Customizing BJTables".

          As shipped, BJTables is configured to use the so-called
          "basic strategy" as described in reference 1.  The card
          counting method configured in COUNT.DAT is the "simple
          count" described in Edward O. Thorpe's book (see
          Reference 2 and the COUNT.DAT file).  There are three
          players sitting at the table, one of them controlled by

                                     6







          the user.  The casino rules follow the Reno convention. 
          This can be changed.  See the OPTIONS.DAT file and the
          section on customization to see what the rules are.


                          III.  PLAYING BJTABLES
                          

          This section of the manual describes how to operate the
          program.  Operation has been kept simple because, in a
          real game, you are worrying about the count and the
          strategies, rather than the mechanics of the game.


          III.i  THE BJTABLES SCREEN
          

          The screen is divided into 4 basic areas:

               1)  The play box.
               2)  The bet box.
               3)  The bank box.
               4)  The dealer area.

          The play box is the large rectangle vertically centered
          on the screen.  There is one for each player.  This is
          where the players are dealt their cards.  The bet box
          is the small rectangle sitting just above the play box. 
          This is where the bets are placed and where the payoffs
          are received.  The bank box is the rectangle below the
          play box.  This is where the players bankroll is
          registered.  It is updated automatically when bets are
          made and payoffs received.

          The dealer area is at the top of the screen.  It is
          where the dealer's cards are dealt.

          The above are the "permanent" screen areas.  There are
          also "pop-up" screens, which come from two sources: the
          help window, and the insurance-bet box.  The latter
          presents itself when the dealer up-card is an ace, and
          insurance is available.  There is also a small red
          "prompt" message which appears at the lower left when
          necessary.


          III.ii  ISSUING COMMANDS
          

          The user interacts with BJTables via alphanumeric
          keyboard input. 


                                     7







          There are two general classes of input:

               1)   Commands which allow the user to play the
                    game of blackjack.
               2)   Commands which control unique BJTables features,
                    such as the help system and "quick keys".

          All input is received only when it is the user's turn
          to take some action, such as betting or playing.

          The blackjack game commands are divided into two
          categories: bets and plays.

          BETS
          

          The following rules apply to bets:

                   Bets must be EVEN whole numbers (no decimal 
                              places).
                   Bets must be in the range 2-98.
                   Are entered from the keyboard or numeric 
                              keypad (NUM LOCK on).
                   Are terminated with either a period (".") or
                              by hitting the <ENTER> key.
                   If an error is made during bet entry, the
                    backspace key can be used to correct the bet.

          If an odd bet is placed, the program will subtract a
          bet unit to convert the bet to an even number (unless
          the bet is 1, which will be converted to a bet of 2). 
          Note that certain bet amounts are required in
          blackjack, and for doubling down and splitting pairs
          the program will supply these automatically.  For
          example, when doubling down, the doubling bet will be
          placed after the double down action is selected. For
          insurance, the bet must be half the original bet.  This
          bet is not supplied automatically, but the program will
          automatically correct the bet if it is incorrect.
          
          PLAYS
          

          Plays are commands about specific actions you wish to
          take, for example: "Hit", "Stick", "Double Down", etc. 
          Each play is selected by a keyboard mnemonic,
          consisting of one or two letters.  There is no visual
          feedback about the letters you have entered.  The set
          of commands is:




                                     8








                         Command        Press
                           HIT           h
                           STICK         st
                           DOUBLE DOWN   dd
                           SPLIT PAIR    sp
                           SURRENDER     su
                           INSURE        i (or 'y')
                           BLACK JACK    bj


          If ERRORS are made during keyboard input, just hit the
          <ENTER> key.  This "clears out" any incomplete or
          invalid entries you have made so far.  As long as no
          valid command string was entered, you have a chance to
          recover.  But, as in the real game,  YOU CAN'T TAKE
          BACK MOVES!

          When a bet is expected, a prompt message appears in the
          lower left corner of the screen.  At this point, you
          can place a bet or ask for assistance in a variety of
          ways (see below).  Bets are occasionally placed
          automatically (such as for double down and split pair).


          COMMANDS CONTROLLING THE HELP SYSTEM
          

          Now commands which allow the user to get assistance and
          control certain BJTables features will be discussed. 
          This essentially involves calling up the "help window"
          or activating "quick keys",  which provide help or
          change a program mode.
          
          The help window has five commands:

          1)   Count:  the user can request the card count when it is
               his/her turn to make a play.

          2)   Action: the user can request to see what action
               should be taken, based on the current card count
               and strategy being used.

          3)   Help:  this command gives the user information
               about the keyboard mnemonics for the different
               plays.  The help will discuss betting when a bet
               is expected.

          4)   Resume: leave the help box and resume play.

          5)   Quit: quit the program.


                                     9







          Hitting the escape key when the help window is active
          will also remove the help box.

          The help box can be summoned by hitting the slash,
          question-mark of F1 function keys ('/' or '?' or F1). 
          The help box may also pop up if the program senses the
          user is completely lost and a certain number of
          nonsense commands have been entered.

          Once the help window is displayed, it is a simple matter to
          actually get help:

          GETTING HELP:  A choice in the help box may be selected
          in one of two ways:  

          1)   The choice can be "highlighted" using the up/down
               cursor keys.  A  highlighted choice has the double
               ">>" symbol in front of it.  Once the desired kind
               of help is highlighted, the choice can be executed
               by pressing <ENTER>.

          2)   The first letter of the desired choice can be input.

          For example, to view the current count, the user can
          either press the letter "c" when the help box appears,
          or the user can use the up/down cursor keys to
          highlight the "Count" command.  Then, pressing <ENTER>
          will display the current point count.

          QUICK KEYS FOR COUNT AND PLAY ACTION ASSISTANCE
          

          There is a way to obtain the count and the correct play
          which does not involve the help window.  This is by the
          use of the "quick key" combinations Alt-A and Alt-C
          (press the ALT key simultaneously with the C or A key). 
          Pressing Alt-A provides the correct action which should
          be taken based on the programmed strategy.  Pressing
          Alt-C displays the count and number of remaining cards.

          III.iii PROGRAM SPEED AND PAUSING
          
          
          The speed at which the software operates is selectable
          at start-up.  The fastest speed (9) is faster than a
          real game and the slowest speed  (0) is slower than a
          real game. At any speed, when practicing card counting
          and strategies, it is easy to get confused.  Therefore,
          the program has a special "pause mode".   When this
          mode is activated, the program stops to allow the
          player as much time as he/she needs to calculate the
          count or just figure out what is going on.  When the

                                     10







          program has paused, a message appears in the lower left
          corner of the screen.  To get the program moving again,
          just tap a key, such as the spacebar or enter key. 
          This resumes play.  Note that if a key is tapped before
          the program has paused, it will have no effect.   Tap
          the key again.

          Pause mode can be selected at program start-up time. 
          It can also be toggled during play.  When input is
          expected from the user, the user can press Alt-P.  This
          will toggle pause mode.  If it was on, it will be
          turned off.  If off, it will be turned on.  A message
          in the lower left corner displays the status of pause
          mode when is changed.


          THE PLAY MARKER
                                                        
      
          A small question mark ('?') is placed at the bottom of
          each hand,  which indicates that the hand is active. 
          When the question mark disappears, the hand is
          inactive. The question mark is an aid in keeping track
          of the activities of the other players as well as of
          your own hand.
           
          
          III.iv SUPERVISOR MODE
          

          BJTABLES features a "supervisor" mode, also called
          "beep" mode.When this mode is active, the program will
          not allow the user to make incorrect plays.  This
          applies to regular plays as well as insurance.  If the
          user attempts an incorrect move, the program will
          "beep" and not allow the move.  This mode is an
          excellent tool for learning the card-counting system
          which has been installed.

          Beep mode can be selected at program start-up time.  It
          can also be toggled using the Alt-B quick key.  When
          the mode is toggled,  a message in the lower left
          corner informs the user what the current mode is.
          

                           IV.  CONFIGURING BJTABLES
                           

          This section will discuss a very important subject: how
          BJTables software can be customized.  We will cover
          three areas: generating custom strategy tables,


                                     11







          generating custom card- counting techniques, and
          configuring certain aspects of the rules of play.


          IV.i  THE STRATEGY TABLES
          

          BJTables software can be programmed to use a wide
          variety of blackjack strategies.  In particular, the
          strategy of each player can be selected by the user. 
          Three DOS text files are used to specify a strategy. 
          Each file controls the strategy for one player.  The
          strategy for the automatically-controlled players
          determines how they actually play their hands.  The
          strategy for the user-controlled player determines what
          actions will be recommended when the user chooses the
          "Action" command from the help box.

          The tables encode the strategy in a well-defined
          manner. The tables corresponding to two "published"
          strategies are included with the program: the "basic"
          strategy, which is the optimal strategy presuming the
          player does NOT count cards; and the "main count"
          strategy developed by Tulcea in his book (reference 1). 
          Note that the latter strategy assumes a certain card
          counting technique.  

          It is possible to "mix and match" strategies for the
          different players.  That is, each player can be playing
          his own strategy.   The card-counting technique,
          however, must be common to all three players.  The
          strategy for each player is contained in the files
          named BJSTRAT.1, BJSTRAT.2 and BJSTRAT.3 for each of
          the three players.  The three strategy tables included
          in the program are called BASICSTR.DAT, MAINCNT.DAT and
          MAIN_2.DAT.  All of these strategies are based on
          tables published in Tulcea's excellent book.


          IV.ii Loading Strategies
          

          The first step in loading a strategy is preparing the
          strategy tables.  To load the strategy, the file
          containing the strategy table must be given the correct
          name.  The strategy file for the first user is always
          given the name BJSTRAT.1.  The files for the second and
          third users are BJSTRAT.2 and BJSTRAT.3 respectively. 
          Each of these files can be different from one  another,
          or they can be the same.



                                     12







          As an example, suppose we wanted to have all the
          players play the basic strategy.  Then, we could issue
          three commands at the DOS prompt to achieve this:

               C>copy basicstr.dat bjstrat.1


          This command copies the basic strategy tables contained
          in the file basicstr.dat to the table file used by the
          first player.  Similarly, for players 2 and 3 we would
          type

               C>copy basicstr.dat bjstrat.2
               C>copy basicstr.dat bjstrat.3

          Thus, all the strategy files loaded by the program
          contain the same basic strategy tables.  If we desire
          to have the third player play a different strategy (say
          the "main count" strategy    described in Tulcea's
          book), then we would just copy that file over as
          follows:

               C>copy maincnt.dat bjstrat.3

          Of course custom strategy tables can (and should!) be
          built.  The same procedure is followed to load these
          files for the particular player who is to use it. 
          Remember that the user of the software always uses the
          strategy table contained in the file called bjstrat.2.

          STRATEGY TABLES INCLUDED WITH THE CURRENT RELEASE
          

          BASICSTR.DAT  The basic strategy as described in
          Tulcea (or slightly differently in Thorpe).  This
          strategy table is generally used when card counting is
          not being done.  It is the best strategy when the
          player is not counting cards.
          
          MAINCNT.DAT  Tulcea "Main Count" system when doubling
          down after splitting IS NOT allowed.  This rendition of
          the tables applies when the dealer stands on soft 17.
          
          MAIN_2.DAT  Tulcea "Main Count" system when doubling
          down after splitting IS allowed.  Again, the dealer is
          assumed to stand on soft 17.







                                     13








          IV.iii  CREATING NEW STRATEGIES
          

          For most purposes, the basic strategy is a good
          starting point for play.  This strategy gives a good
          play level for most situations.  However, to truly gain
          a high skill level in blackjack, the next step is to
          employ some form of card-counting.  And when
          card-counting is used, the best strategies available
          are strategies which depend on the count of the cards. 
          Therefore, the strategy tables do not merely encode
          actions the player should take based on the lay of the
          cards alone; the strategy table must also encode the
          correct strategy for whatever the count happens to be. 
          Generally, there is a particular counting method
          associated with a given set of tables.  This counting
          method is also customizable (see below).

          Before discussing the way the strategy tables are
          constructed, we must refine our definition of what we
          mean by the "value" of a hand, since strategy decisions
          must be based on the sum total (or value) of the
          player's hand.  We will define what we mean by the
          numerical "value" of a hand.  This leads us into the
          meaning of "hard" and "soft" hands.  Our definitions
          will follow those in Tulcea's book (reference 1).

          DEFINITION 1: The "value" of a hand.
               For a hand which contains no aces, the value of a
               hand is the sum total of the values of the
               individual cards in the hand.   Remember that all
               face cards have the value of 10.  If a hand
               contains aces, count one ace as 11 if this keeps
               the total less than 21.  Count the ace as 1 if
               necessary to avoid busting (sum exceeds 21).

               EXAMPLES: hand=2,2,K has a value of 14.
                         hand=2,A,5 has a value of 18.
                         hand=2,A,A has a value of 14. 
                         hand=8,9,A has a value of 18.

          DEFINITION 2: The meaning of "hard" and "soft" hands.
               A "hard hand" is one which has no aces, or counts
               ALL aces in it as having the value of 1.  A "soft
               hand" has one ace counting as 11 when determining
               the value.

               EXAMPLES: hand=2,2,K is a hard hand (no aces).
                         hand=2,A,5 is soft because the ace can
                              be counted as 11 without busting.
                         hand=2,A,A is soft because one ace can be 11.

                                     14







                         hand=8,9,A is hard because the ace MUST count
                              as 1.


          IV.iv  THE FORM OF THE STRATEGY TABLES
          

          Let's discuss the form a strategy table must take.  A
          strategy table must provide the correct action for
          whatever card totals or pairs the player has (whether
          hard or soft hand), and for whatever up-card is shown
          by the dealer.  Therefore, the two "dimensions" for a
          table are provided by those quantities.  Each column of
          the table corresponds to a specific dealer up-card; the
          rows of the table correspond to a particular value for
          the player's hand (recall our definition of value
          defined above).   Or, in the case of pairs, the rows
          are labelled by the possible pairs in the hand.

          Each entry in the table is a number.  When a card
          counting scheme is used, this number is used along with
          the current card count to determine the appropriate
          action.  When a table is intended to be used without a
          card count, the count can be assumed to be zero for the
          purposes of reading the table.

          Strategy tables are used to answer "yes/no" questions. 
          There is a different table for each type of move a
          player can make.  The table answers the question
          "Should I make the move or not?".   This is a yes or no
          question.  To use the tables correctly, you have to
          know what specific question is being asked.  
          Specifically, there are separate tables which answer
          the following questions:

          SURRENDER: should I surrender ("yes") or not ("no").

          SPLIT PAIR: if I have a pair, should I split it ("yes")
          or not ("no").

          DOUBLE DOWN: if allowed, should I double-down ("yes")
          or should I not ("no").

          STAND/HIT: should I stand pat or not?  In other words,
          should I stand ("yes") or take another card ("no").








                                     15







         
     *****************************************************************
          IMPORTANT: Please note that, for the hit/stand decision,
          "yes" means STAND.  As in "yes, I will stand", and "no, I
          will not stand" (that is, I will hit).
         
     *****************************************************************

          Once we know what questions are being answered by the
          tables, we have to determine how the table provides us
          with the answer.  A certain position in the table
          corresponds to a particular dealer up-card and a
          particular value (or total) for the player's hand. 
          This number has to be translated into a "yes" or "no"
          statement.  How is this done?  Very simply: IF THE CARD
          COUNT IS GREATER THAN OR EQUAL TO THE NUMBER IN THE
          TABLE, the answer is "yes".  IF THE COUNT IS LESS THAN
          THE NUMBER IN THE TABLE, the answer is "no".

          When a strategy table is to be used without reference
          to a card count (such as the so-called "basic"
          strategy), just assume the count is always zero.
                                     
     *****************************************************************
          IMPORTANT NOTE: Strategy tables always work within the
          context of a certain order in decision making.  It
          could happen that two tables might give the answer
          "yes" for the same situation.  THIS SHOULD NOT CAUSE
          CONFUSION. The order in which to exercise play
          decisions is the same order as that shown above.  That
          is, first consider surrender, then pair splitting (if
          possible),  then doubling down, and finally stand/hit. 
          If any of the answers are YES along the way, do it!
     *****************************************************************


          TABLE EXAMPLE 1: the "basic" strategy and the hit/stand
          decision.

          By way of an example, we present a table from
          BASICSTR.DAT, the file containing the table for the
          basic strategy (see below).  This particular table is
          for the STAND/HIT decision when the player has a hard
          hand (no possibility of using an Ace as either a one or
          11  using it as 11 would bust the hand).  The numbers
          on the left, before the colon, represent the value of
          the player's hand.  The sequence of numbers to the
          right of the colon (separated by commas) are the table
          values corresponding to every possible up card for the
          dealer, from 2 to A (all face cards count as 10 of
          course).  In the real strategy files, the columns are


                                     16







          not labelled.  The labels are shown below for clarity
          in this discussion.

                <Dealer's Up Card>
                2    3    4    5    6    7    8    9   10    A

          hit_stand_hard
          17:  98,  98,  98,  98,  98,  98,  98,  98,  98,  98
          16:-100,  98,  98,  98,  98,  98,-100,-100,-100,-100
          15:-100,  98,  98,  98,  98,  98,-100,-100,-100,-100
          14:-100,  98,  98,  98,  98,  98,-100,-100,-100,-100
          13:-100,  98,  98,  98,  98,  98,-100,-100,-100,-100
          12:-100,-100,-100,  98,  98,  98,-100,-100,-100,-100
          11:-100,-100,-100,-100,-100,-100,-100,-100,-100,-100

          Let's see what this table says about hitting and
          standing.  

          Suppose the player's hand has a value of 13, and the
          dealer is showing a Jack (which counts as 10).  Then,
          the number corresponding to this situation is -100
          (ninth number over on the row labeled by 13).  Since
          the basic strategy does not use a count, we can assume
          the count is zero.  Thus, the "count" is GREATER than
          the number of the table, and this means "yes".   Thus,
          the player should stand.  That is, when the player has
          the hand value of 13 and the dealer shows a Jack, the
          table says the player should stand.

          At first glance, the table appears incomplete.  What
          happens if the player's hand has a value of 18 or more? 
          Or what if the value is 10 or less?  The answer to this
          question is this: the "missing" rows of the table
          replicate the last row at each end.   For example, the
          rows for the values 18 through 20 look exactly the same
          as that for 17 (of course, the total of 21 is an
          exception).  Similarly, the rows for totals 10 and
          below are the same as the row for value 11.  So, the
          strategy for hand values of 18-20 are exactly the same
          as the strategy for a hand value of 17.  The strategy
          for hand values 10 and below are the same as the
          strategy for the hand with value of 11.

          Now, let's look at a table for splitting pairs.  For
          the basic strategy, the table is:

                   <Dealer's Up Card>
                   2    3    4    5    6    7    8    9   10    A
          sp
          1,1:  -100,-100,-100,-100,-100,-100,-100,-100,-100,-100
          10,10:  98,  98,  98,  98,  98,  98,  98,  98,  98,  98
          9,9:    98,-100,-100,-100,-100,-100,  98,-100,-100,  98

                                     17







          8,8:  -100,-100,-100,-100,-100,-100,-100,-100,-100,-100
          7,7:    98,-100,-100,-100,-100,-100,-100,  98,  98,  98
          6,6:    98,  98,-100,-100,-100,-100,  98,  98,  98,  98
          5,5:    98,  98,  98,  98,  98,  98,  98,  98,  98,  98
          4,4:    98,  98,  98,  98,  98,  98,  98,  98,  98,  98
          3,3:    98,  98,  98,-100,-100,-100,-100,  98,  98,  98
          2,2:    98,  98,  98,-100,-100,-100,-100,  98,  98,  98

          In this table, the rows are labelled by all the
          possible pairs held by the player.  As for all the
          tables, the columns are for the dealer's up card, in
          the order 2-A.  Let's suppose the player holds a pair
          of sixes, and the dealer shows an 8.  The number in the
          table is 98.  Since the count is zero (i.e. there is no
          count for the basic strategy), the count is LESS than
          the number in the table.  Therefore, the table's answer
          is "no".  In this case, it means "No, I should not
          split my pair of sixes".

          Now, suppose the dealer were showing a 7 instead. 
          Then, the number in the table is -100.  Here, the count
          (= 0) is GREATER than the table entry.  Therefore, the
          table provides the answer "Yes" and the player SHOULD
          split the pair of sixes.

          Similar rules apply to all of the tables.  See the
          BASICSTR.DAT file for all of the tables.

          TABLE EXAMPLE 2: The Main-Count System

          The rules for interpreting the tables are the same if a
          card counting scheme is used.  Let's use an example for
          the main-count strategy table included in the file
          MAINCNT.DAT  (the main-count system is discussed in
          reference 1).  This table, transcribed from reference 1
          and included with the program, applies when the dealer
          stands on soft-17.  Here is the hit-stand table for
          hard hands:

                <Dealer's Up Card>
                2     3     4     5     6     7     8     9    10    A

          hit_stand_hard
          18: -999, -999, -999, -999, -999, -999, -999, -999, -999, -999
          17: -999, -999, -999, -999, -999, -999, -999, -999, -999,  -23
          16:  -32,  -35,  -40,  -45,  -50,  30,    23,   17,    1,   28
          15:  -21,  -24,  -27,  -32,  -33,  34,    30,   26,   12,   28
          14:  -12,  -15,  -20,  -24,  -24,  51,   999,   41,   24,   42
          13:   -4,  -8,   -11,  -14,  -15, 999,   999,  999,  999,  999
          12:    9,   5,    -1,   -6,   -3, 999,   999,  999,  999,  999
          11:  999, 999,   999,  999,  999, 999,   999,  999,  999,  999


                                     18







          Note how this table has many different numbers in it. 
          The main count system is associated with a particular
          card counting method, as configured in the file
          COUNT.MNC (such files are discussed later).  Let's take
          an example.  Suppose the dealer shows a 6, and the
          player has a hard hand value of 13.  Then, if the count
          is -15 or above, the answer is "yes": that is the
          player should stand.  Otherwise, the player should
          "hit" or draw a card.


          SYNTAX RULES FOR STRATEGY FILES
          

          Now that you understand the rules for the tables, you
          can make your own strategy files or change the files
          that have been provided.  It is important that the
          syntax rules of the strategy files are followed
          exactly.  These rules are:

          1)   The strategy files are standard DOS text files.

          2)   The individual tables within the files must have
               one of the following titles, spelled out exactly
               and placed just before the first row of the table
               (use lower-case letters and the underscore
               character only!).  The table titles for each of
               the relevant situations are:

                    hit_stand_hard
                    hit_stand_soft
                    dd_hard
                    dd_soft
                    sp
                    surrender
               
               Note there MUST be a separate table for hard and
               soft hands.   See the definitions above.  ALL
               TABLES MUST BE INCLUDED IN A STRATEGY FILE.

          3)   The rows of the tables are labeled by the value of
               the players' hand followed by a colon.  (See the
               definition of "value" we discussed above.)  The
               exception is the split-pair table, which is
               labelled by every possible card pair.  Count
               values are separated by a comma (see the examples
               provided).

          4)   The order of the rows is important.  Always put
               the rows in decreasing order as shown in the
               examples.  In the split-pair table, the ace pair
               comes first.

                                     19







          5)   The numbers following the colon determine what
               answers the table will give.  There is one number
               for each possible value of the dealer's up-card,
               in the sequence 2 to A (all face cards and 10 take
               up one column).  The tables entries are separated
               by commas.  You can get these numbers from
               different published strategies, or you can make up
               your own.

          6)   If all possible player values are not represented
               in the table rows, it is assumed that the values
               above and below the table are continuations of the
               top or bottom row, respectively.   For example, in
               the hit_stand_hard table shown above for the main
               count system, the row for the totals 19-21 looks
               like the row for the total 18, the topmost row
               shown.  Also, the rows for totals 10 and below
               look like that for row 11.


                        V.  CUSTOMIZING THE COUNT METHOD
                       

          For advanced players, counting cards is an important
          part of the game.  The card count is a way of keeping
          track of which cards have been played from the deck and
          which cards remain in the deck.  The references contain
          more information about particular counting strategies. 
          This section of the manual explains how BJTables can be
          used to calculate a particular card count.


          V.i  LOADING THE CARD COUNT FILE
          

          The count method is determined by the file called
          COUNT.DAT.  This file is automatically read by the
          program when it starts.  It should contain information
          on the card counting method.  This file does not
          contain tables; it contains "keywords" and "values". 
          Setting these up for a particular counting scheme is
          discussed below.

          To load a particular counting method, the user can
          manually edit the file COUNT.DAT, or the user can copy
          one of the supplied files to the file name COUNT.DAT. 
          For example, to use the "main count" system discussed
          in reference 1, simply execute the following DOS
          command at the DOS prompt:

               C>copy COUNT.MNC COUNT.DAT


                                     20







          When this is done, the information originally in
          COUNT.DAT is replaced by the counting scheme
          represented in COUNT.MNC.  If the original COUNT.DAT
          information is to be saved, the file must be copied to
          some other name before the above operation is
          performed.


          V.ii  SETTING UP THE CARD COUNT FILES
          

          The BJTables program keeps track of the count along
          with the user.  That is, BJTables keeps track of your
          count.  (Each player "sees" a slightly different counts
          since different players have seen different cards at
          any given time).  The reason BJTables keeps track of
          your count is so that it can advise you on what
          strategies to pursue.  Also, knowledge of the count can
          help your betting decisions.  Before placing a bet, you
          may ask BJTables what the count is.

          Central to the idea of card counting is the assignment
          of a number to each card type.  For example, the cards
          2-5 might be assigned the values -1 and the cards 9-A
          might be assigned the values +1.  Every time a card is
          turned up and revealed to the player, the card count
          changes.  For example, if an A is revealed, the count
          might change by +1 (increase).  If a 3 is revealed, the
          count will change by -1 (decrease).  This sort of
          scenario leads to a "running total" type of count.

          Many counting schemes are "normalized", that is, they
          require that a ratio be calculated to get the count. 
          (The "main count" scheme of Tulcea is like that). 
          Typically, the "running total" is divided by the number
          of unseen cards.  Or some other running total might be
          divided by the number of cards seen etc.

          If all this seems very confusing, check out the
          examples below.  They are quite understandable.

          In order to handle general situations, the BJTables
          program can handle counts which are ratios, as well as
          running totals.  The scheme used by BJTables is based
          on keeping two counts going at once.  These two counts
          are called the "numerator count" and the "denominator
          count".  The actual count computed by the program is
          given by the ratio:

               card_count = (numerator count)/(denominator count)



                                     21







          Both the numerator and denominator counts have initial
          values which are user-specified.  The counts are then
          changed every time a card is revealed (turned up).  How
          the two counts change depends on two "arrays" or
          sequences of numbers, which contain the count increment
          for each possible card.  These arrays are called
          "numerator_array" and "denominator_array".  The first
          number in the sequence tells how to change the count
          for a 2 card, and the numbers follow all the cards in
          turn up to the Ace. 
          One array applies to the numerator count, and the other
          applies to the denominator count.

          In addition to these arrays which express how the count
          changes when a card is revealed, the numerator and
          denominator count must be given initial values.  These
          have the names "initial_count_numerator" and
          "initial_count_denominator".  For the
          "initial_count_denominator", a value of zero has a
          special meaning.  It means "set the initial denominator
          value equal to the number of cards in the deck".

          Please see the file COUNT.DAT for more instructions. 
          This file contains comments and information about the
          structure of the count files.

          Before this gets too bewildering, let's focus on some
          specific examples.  These are taken from counting
          methods discussed in Tulcea's book.


         
     *****************************************************************
          CARD COUNTING EXAMPLE 1: the "running count" of the
          Main Count System given in reference 1.  In this
          system, each card is assigned a value, and the count
          rises and falls by an amount which depends on which
          card was revealed last.  The initial value of the count
          is zero:

               initial_count_numerator = 0
                  
          The increments and decrements for each card (called
          "weights") are defined by Tulcea as follows:

          
               CARD    2  3  4  5  6  7  8  9  10  A                   
       
               WEIGHTS 1  1  2  2  2  1  0  0  -2 -1                   
       



                                     22







          Thus, for the program to keep track of the count, the
          numerator of card_count must change according to the
          card weight.  So the numerator array is given by the
          sequence                      
          
                                                                       

               numerator_array = 1, 1, 2, 2, 2, 1, 0, 0, -2, -1        
       
                                                                       

          (Recall that the first number in the sequence
          corresponds to the "2" card and the last number
          corresponds to the Ace.  All face cards count as 10).

          NOW WAIT A MINUTE!  Computation of the running count doesn't
          involve any division, but the card_count number calculated
          by BJTABLES has both a numerator and a denominator.  It is
          easy to handle this situation.  First, we set the initial
          value of the denominator to 1:

               initial_count_denominator = 1

          Then, we don't allow it to change no matter what card
          is revealed.  Thus, the denominator_count remains 1 and
          does not affect our result: dividing by the number 1 is
          the same as not doing the division at all!  So, for the
          running count, the denominator array would be:   

               denominator_array = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0        
       
                                                                       

          with an initial value of 1.  
                                                                       
          CARD COUNTING EXAMPLE 2: the "running index" of the
          Main-Count system (again, see Tulcea).  This is a true
          normalized count,  since a non-trivial division is
          necessary.  The numerator is the running count, and so
          is decided similarly to example 1.  But further
          calculation is necessary.  The "running index" is the
          "running count" divided by the number of unseen cards,
          and the whole result multiplied by 100.  So, the
          running index has the same numerator_array as before,
          with each number multiplied by 100: 

            numerator_array = 100, 100, 200, 200, 200, 100, 0, 
                              0,-200, -100  

          Now, the denominator must keep track of the number of
          unseen cards.  The initial value of the denominator


                                     23







          should be the number of cards in the deck (this depends
          on the deck size used).

               initial_count_denominator = 0

          Remember that the value of 0 is treated specially: it
          means "use the number of cards in the deck".  (This
          special rule applies for the initial denominator count
          ONLY.)

          To compute the number of unseen cards, set up the
          denominator array to give each member of the array the
          same value of -1:
                                                                       

             denominator_array =-1, -1, -1, -1, -1, -1, -1, -1, -1, -1 


          Every time a card is revealed, the denominator count
          decreases by one.

          Each time a card is revealed, the number of unseen
          cards decreases by one, and so does our denominator. 
          This construction gives the correct running index.      
                                     
     *****************************************************************


          See the files COUNT.MNC and COUNT.SMP for two examples
          of card counting strategies.  These files also contains
          comments which help explain how to initialize the
          different keywords.

          COUNTING METHODS INCLUDED IN THE CURRENT RELEASE


          COUNT.DAT  The REQUIRED file is used by BJTABLES for
          configuring the count method.  It also contains useful
          information.  It is originally set up for the "simple
          count" described by Thorpe.  See COUNT.SMP below.

          COUNT.MNC  The "Main Count" as described in Tulcea. 
          Should be used with appropriate strategy table to
          emulate Tulcea's system.

          COUNT.SMP  The "simple count" described in Thorpe's
          book.  This count can be used with the basic strategy
          as described by Thorpe, and encoded in the file
          BASICSTR.DAT.  Essentially, this counting method is
          only used as a guide for how large the bets should be.



                                     24








          Note about the counting scheme:

          The BJTABLES software maintains only a single
          card-count.  This count is valid from the point of view
          of the "user".  The count for the other players will be
          slightly different, depending on when the cards are
          revealed and what each player holds in his hand. 
          Therefore, if a count-based strategy is chosen for the
          other players, the count used to determine the strategy
          will be in error by a small amount.  This effect is not
          large and should not affect the overall playing
          experience.  NOTE: the advanced simulation software
          BjLab also offered by Annandale Software maintains a
          separate card-count for each player in the simulation.


             VI.  MODIFYING THE RULES OF PLAY AND THE BANKROLL
             

          There is some flexibility in choosing the casino rules. 
          This affects such things as whether or not the dealer
          will draw or stand to soft 17.  Other options are
          discussed here also.

          In addition, the bankroll used by the player can be
          chosen (the bankroll is how much money the player
          brings to the table).  This bankroll will be
          automatically updated in the OPTIONS.DAT file at the
          end of play.

          Play options are set by editing the OPTIONS.DAT file. 
          This file is always read by the program for the purpose
          of setting up the rules of play and the player's
          bankroll.  This file contains "keywords" which are
          assigned different values.  These keywords and the
          allowed values are discussed next.  See the included
          version of the OPTIONS.DAT file for concrete examples. 
          This file contains helpful comments.
          
          LISTING OF KEYWORDS IN THE OPTIONS.DAT FILE
          

          KEYWORD NAME:  RULE.
          VALUES:   "RENO": dealer draws to soft seventeen.  
                    "ATLANTIC_CITY" and "LAS_VEGAS": dealer
                    stands on soft seventeen.
          What the dealer does when he/she has soft seventeen
          (seventeen with an ace counted as 11).  Some casinos
          have the dealer draw on soft seventeen, some don't.



                                     25







          KEYWORD: DD_AFTER_SPLIT
          VALUES:   YES or NO.
          Doubling down after splitting a pair.  Some casinos
          allow the player to double on hands which come after
          splitting a pair.  This option can be either YES or NO. 

          KEYWORD: SURRENDER
          VALUES: YES or NO.
          Surrender.  Some casinos don't allow a player to
          surrender.  This can be set to YES or NO.

          KEYWORD: NUMBER_OF_DECKS
          VALUES: 1 to 4.
          Number of decks.  Casinos typically use between 1 and 4
          decks in a game.  BJTables can be requested to use
          between 1 and 4 decks.

          KEYWORD: SHUFFLE_UP
          VALUES: 0 to 3/4 of the number of cards in the game (52
          times the number of decks).
          Set this value to the number of cards left in the deck
          which triggers shuffling of the deck.  Many casinos do
          not deal until the entire deck is depleted,
          particularly when more than one deck is used.  Note
          that if the end of the deck is reached during a hand,
          the dealer will shuffle up because it is necessary. 
          This will reset the card count.

          KEYWORD: BANK
          VALUES: -32000 to +32000.  These values are the
          player's bankroll when the games starts.  The bankroll
          is automatically updated at the end of each game.  It
          can be changed manually in-between games by editing the
          OPTIONS.DAT file.

          Please see the OPTIONS.DAT file for more information.

          NOTE: when the OPTIONS.DAT file is automatically
          updated, two files are created for backup purposes. 
          The file $BJT2$.$$$ is the same as the OPTIONS.DAT
          before updating.  Should a problem occur during the
          update, this file can be used to re-create the original
          OPTIONS.DAT file.


                    VII.  COMMUNICATING WITH ANNANDALE SOFTWARE
                    

          The file REGISTER.TXT contains information on how to
          register BJTABLES.  There are many benefits to registering! 
          See the file readme.txt for information.


                                     26







          Please send suggestions and/or comments and/or bug reports
          to:

          U.S. MAIL:     Annandale Software
                         1012 Fair Oaks Ave., Suite #134
                         South Pasadena, CA 91030

          COMPUSERVE E-mail: 71543,3000
          
          DELPHI E-mail: MANNUCCI



                            VIII.  ACKNOWLEDGEMENTS
                            

          The author would like to  thank Daniel Goldman for his
          assistance with the questions concerning the rules and
          play of blackjack.

                              
                              IX.  BIBLIOGRAPHY
                              

          [1]  C. Ionescu Tulcea, "A Book on Casino Blackjack", Pocket
          Books, New York, 1983.

          [2]  Edward O. Thorpe, "Beat the Dealer", Vantage Books, New
          York, 1966.

                                     
                                     





















                                     27
