Enclosed are the source and binaries for programs used to ensure the integrity
of downloaded files.

CRCBUILD generates volume catalog files which contain (amongst other things)
computed CRCs (cyclic redundancy checksums) for the files in the volume.

CRCHECK.COM reads the catalog file and verifies that the CRCs shown in the
catalog match those obtained by reading the actual files.

CRC is a stripped-down version of CRCBUILD and is actually compiled from the
same source via the use of a compile-time option.  It doesn't generate a
catalog file; it just displays the information on the console.

As an integrity check device, The CRC is not perfect in that many different
files can generate the same CRC so if CRCHECK reports a match then there is a
small probability that the file is bad but just happens to yield the same CRC
as the one calculated when the catalog file was built.  This might seem to be
a flaw (and it is) but the CRC check it is quite good enough for our purposes.
It does offer a strong guarantee, namely that if the CRC calculated by reading
a file does not match the one stored in the catalog then the downloaded file is
definitely bad.

These programs are workalikes for similar ones from the SIG/M collection.  They
have been recoded in Hi-Tech C from scratch by me and adapted for my own needs.  The
only code which is not original is the CRCGEN algorithm.  That came from the
5th June 1979 edition of EDM magazine.  It was published in Intel mnemonics and
was transcribed from the magazine by Fred Gutman.  I just translated it to
Zilog mnemonics and added the Hi-Tech C code for function entry and exit.

Two submit files are supplied to build the programs from the source code.
MAKE2.SUB is for CP/M 2.x and MAKE3.SUB is for CP/M 3.x.  The only difference
is in the internal commands used to delete and rename files.

Jon Saxton
ex-Sysop of the long-defunct Tesseract RCPM+
tesseract@triton.vg
5th July 2013 
