CRC

First, think of a CRC as a kind of signature.
Suppose I have a directory containing 3 files. I run the CRC program as follows:

C:\FRED\>crc *.*

--> FILE: CRC    .EXE    CRC = 9D 19
--> FILE: SWEEP  .COM    CRC = 7D 12
--> FILE: FANG   .TXT    CRC = 06 E7

DONE

C:\FRED\>

You can see that the CRC program has calculated and displayed a CRC for each of the three files.
Now with the use an optional command line parameter, those calculated CRCs will be stored in a dedicated file for later reference.

C:\FRED\>crc *.* f

--> FILE: CRC    .EXE    CRC = 9D 19
--> FILE: SWEEP  .COM    CRC = 7D 12
--> FILE: FANG   .TXT    CRC = 06 E7

DONE

C:\FRED\>

Note the "f" on the end of the command.
What has happened now is that the CRC program (because of the "f") has created a file named CRCKLIST.CRC in the directory, and that file records the CRC that was calculated for each of the three files.

C:\FRED\>type crcklist.crc

--> FILE: CRC    .EXE    CRC = 9D 19
--> FILE: SWEEP  .COM    CRC = 7D 12
--> FILE: FANG   .TXT    CRC = 06 E7

C:\FRED\>

At any time in the future, I can run the CRC program with no command line parameters, and it will look in CRCKLIST.CRC, and for each file listed, compare the CRC recorded there to what the CRC is now.

C:\FRED\>crc

Searching for "CRCKLIST" file    Checking with file: CRCKLIST.CRC

CRC    .EXE - 9D 19 *Match*
SWEEP  .COM - 7D 12 *Match*
FANG   .TXT - 2A 65 <-- is, was --> 06 E7

DONE

Quantity of file CRC that matched - 2
Quantity of file CRC that did not match - 1

C:\FRED\>

In the example above, the contents of FANG.TXT have changed since the CRCKLIST.CRC file was generated.

Below is a link to the CRC program.

CRC.EXE