EXchess v3.14 by Dan Homan, homan@brandeis.edu

=> For updates see:
    http://pc.astro.brandeis.edu/BRAG/people/dch/chess.html

This program is freeware, distributed under the GNU public
license.  See file "license.txt" for details.  I ask only that you 
e-mail me your impressions/suggestions so that I may 
improve future versions.

*** New: The opening book has an edit mode called by the "edit_book"
         command when run in console mode.  The opening book code
         also has a "GAMBIT_THRESHOLD" parameter (set in search.par file)
         which might prevent certain gambit moves from being played.

*** New: Several new parameters can now be set in the "search.par" file.
         These include hash table size and opening book file.

EXchess now supports endgame tablebases by Dr. Namilov.  Put the
endgame tablebase path and cache size in the "search.par" file.

EXchess has a logging function which can be turned on by 
setting the relevent parameters in the "search.par" file. 
When logging is "on", a new log file is created each time
the program is started.  To get separate log files for individual
game under winboard/xboard, use the "-xreuse" flag for 
winboard/xboard.  The "MAX_LOGS" number is the maximum number 
of log files that can be created.  No new log files will
be created beyond this number - you must delete the old log 
files first.

Some other values in the "search.par" can be used to modify how 
EXchess thinks!  

Notes on Win95/NT console version.
 - This version has a serviceable text interface or it can be run with
   Tim Mann's Winboard.

 - Setup will install menu functions for playing EXchess under 
   winboard or in console mode.  If you prefer to use the command
   line, read on....

 - To run it with Winboard, you need to execute the command:

   winboard -fcp "c:\directory\EXchess xb"

   The new versions (4.0) of Winboard and Xboard do not need the "xb". 

 - EXchess will look for the opening book and search.par files in the 
   same directory as the executable and then in the working directory.
   You should not need to put a copy of the book in the Winboard
   directory.

 - To run EXchess in text mode, just type "EXchess" in the EXchess 
   directory

 - There is an additional command line option "hash", you can set the
   hash size in megabytes like

   EXchess hash 4      (for a 4 megabyte hash file, for example)

   If this option is used with winboard, use the line

   winboard -fcp "c:\directory\EXchess xb hash 4"

   The default hash size is about 6 megabytes.  The size of the
   hash table may also be changed from within the program.

   Note: Don't set the hash table size too large.  Doing so may
   cause swapping to the hard disk and slow the program down considerably.
   One half the available RAM is a good maximum guideline.

 - Help is available by typing "help" at the command prompt.

 - The file "wac.epd" is a testsuite and can be run by the "testsuite"
   command.

 - The 'build' command lets you make your own opening book out of a pgn
   text file.  It requires 1-2 times the size of the pgn file in 
   temporary storage space on the disk.  The 'build' command can currently
   handle pgn files up to 60 MBytes in size... To use a larger file, you
   will need to modify some definitions in book.cpp and recompile.

Notes on the source code version.  
 - The file "exchess.cc" is provided which includes all the necessary 
   source to compile EXchess.

 - The source code is not as well commented as I would like it to
   be, but that will change with time.

 - Code is C++, but I make little use of the OOP features of C++.  This
   will change in future versions.  

 - This will produce a console (text) version that is compatitable
   with xboard (on unix) and winboard (on win95/NT).  Notes on the
   console version (given above) apply.

 - Once compiled (see notes below) you will need to build your 
   own book from a pgn file using the "build" command.  This
   is very easy.  I've provided an pgn file on my homepage, but
   you can put together your own, if you like.  

 - This should compile on almost any system with a C++ compiler.  There
   are compiler switches in "define.h" to select various systems.

   #define BORLAND  1      // Selects a win95/NT compiler if set to 1 
                           //  this should work with MSVC and others as
                           //  well
   #define DEC      0      // Set to 1 for certain DEC Unix systems, not
                           //  all will need it - some other unixes may
                           //  need this if there are errors in "book.cpp"
   #define UNIX     0      // Set to 1 for all Unix systems 

 - This should compile without further modifications, but if 
   further modifications are needed, the above variables will mark
   all of the system dependant stuff in the source code, so you can
   track down the necessary changes.

   NOTE:  I did have one problem an old Ultrix system where I needed
   to add the lines 

   #undef SIG_IGN
   #define SIG_IGN ((void (*)(int))( 1))

   at the end of the #includes in main.cpp.  I have not seen this
   problem anywhere else.

 - On my linux system, I compile using the command line...

   g++ -o EXchess exchess.cc -O -pipe -march=pentiumpro -lm

   Your command line and compiler options will likely be different.

 - I don't have much time to support the source code version, but
   please let me know if you successfully get this to compile on a
   system.  





