CBCHKSUM 0.2  Copyright Rob Weir, 1994-96

CompuServe: 71165,2722
Internet: rweir@cybercom.net

This program is free for personal use.

=======================================================================
WARNING: This program modifies ChessBase data files, something
quite difficult, and quite undocumented.  This program seems to work for
me, but don't you think it would be better if you made a backup of your
BIG ChessBase database before using me?!
=======================================================================
Files you now have:

CBCHKSUM.TXT  the file you are reading
CBCHKSUM.EXE  the CBCHKSUM program

=======================================================================

New in version 0.2 32-bit

This 32-bit version should be functionally identical to the
previous 16-bit release.  What I have done is rewrite much of the file
access and sorting routines to take advantage of the capabilities of WIN32,
using virtual memory, memory-mapped files, etc.  
Also, I've added a "-p" "practice mode" flag.  If you run like this:

CBCHKSUM -practice mainbase.cbf

then CBCHKSUM will not fix games in the database, but will instead
give a list of what games it would have fixed.

Also, in this new version, CBCHKSUM modifies your original file rather
than writing out a new one, so be sure to backup your data first!

=======================================================================

The program CBCHKSUM takes a ChessBase data file and repairs game headers
which have an incorrect byte 13 in the header, the so-called checksum byte.

Why would you want a program like this?  I find it useful for several things:

If you run a program, like Andy Duplain's CBCHECK, on a ChessBase data
file you might get messages that say "checksum error".  This error could
mean two different things, depending on where your data originated.

Try this experiment: Open the the database in ChessBase, retrieve the
appropriate game and re-save it.  Then re-run CBCHECK.  If the error is gone,
then you most likely had a corrupted game, and have fixed it.

However, with some CB games (like Informant games) this solution doesn't work.
These games are coded to only work with a special ID key.  Because of this
copy  protection, some legitimate uses of the data are prevented, such as
modifying the games with non-ChessBase products such as my CBNORMAL, CBSTRIP,
etc.  The offending games cannot be retrieved and generate "Alien Data"
errors in ChessBase.

CBCHKSUM was designed to change these copy-protected games into regular
CB games, fixing the "Alien Data" problem.

=======================================================================

WARNING!!!!!

Besides serving as a form of copy-protection, by preventing users from
tampering with CB data, checksums also detect accidental modifications
of files due to file corruption caused by disk problems, bad file transfers,
etc.  When you run CBCHKSUM, you are overriding this protection.  Any real
corruption that might already be in the data might be made harder to detect.

So, don't automatically run CBCHKSUM against all your databases.  Use it
only in cases where the data seems O.K. (it retrieves without problems in
ChessBase, Fritz, etc.) but you get checksum or Alien Data Errors.  Using
this program indiscriminantly would be like taking Penicillin when you are
not sick -- it would reduce your immunity for when you are sick.

=======================================================================
CBCHKSUM is easy to run.  You just pass in the name of a ChessBase file
as an argument and let it run.

For example, if you have a ChessBase file of World Championship games
called WCH.CBI and WCH.CBF, you run CBCHKSUM like this:

CBCHKSUM WCH.CBF

If you just want to check for errors, but not fix them you can run in
"Practice Mode" like this:

CBCHKSUM -practice mainbase.cbf

=======================================================================


