
                               Binary File Compare

  This program compares multiple binary files in the same way as  the  "FC /B"
DOS command does but much faster.



  1. Usage

  The parameter syntax is the following:

  BFC <filename1> <filename2> [-|/<options>]

  <filename1>:
  This is the full name of the original files. You can use wildcards and  long
file names, as well. If this parameter ends with a backslash, it  specifies  a
directory in which all files will be compared.

  <filename2>:
  This is the full name of the files to be compared. You can use wildcards and
long file names, as well.

  The program can fetch either or both file names from environment  variables,
as well, thus circumventing the length limitation of the command line. Specify
the file name(s) in the form "%<environment variable name>" (in  batch  files,
use double percent marks). Note that the search for environment  variables  is
case-insensitive. Also, you may not  mix  environment  variables  with  string
constants in file names; you have to put  the  complete  file  name  into  the
environment variable.

  <options>:
  - F: Displays no "FILENAME.EXT not found" error messages. Useful if you  are
       comparing a set of files with their subset.
  - H: Includes hidden and system files, which are filtered out by default, in
       the comparison.
  - L: Display the full file names rather than cutting them to  fit  into  the
       line.
  - P: Displays no percentage. Useful if you redirect the output into a file.
  - Q: Turns quiet mode on which means that only  the  number  of  differences
       will be displayed, the different bytes themselves not.
  - S: Traverses through subdirectories and compares  files  inside  them,  as
       well.

  The following error levels are returned at the end of the program:

  - 0: All original files (first parameter) had a pair to compare with (second
       parameter) and all originals matched their pairs.
  - 1: All original files had a pair but one or more original  files  did  not
       match their respective pairs.
  - 2: One or more original files did not have a pair but all  existing  pairs
       matched their respective originals.
  - 3: One or more original files did not have a pair and one or more original
       files did not match their respective pairs either.
  - 4: There were not enough parameters were specified on  the  command  line,
       only the usage was printed onto the screen.



  2. Error messages

  - FILENAME.EXT not found
    The specified files do not exist.
  - No files to compare
    No matching files were found that should have been compared.
  - Out of memory
    The program could not allocate buffers for the comparison. Try freeing  up
    memory by uninstalling some resident programs.



  3. Copyright and legal issues

  The source of this program is public domain and provided here "as  is"  -  I
don't feel like commenting it but if you have problems then feel free  to  ask
me. If you derive your own program from the source or put a part of the source
into your own program, please, give me a credit and send a copy to me.



  4. The author

  If you're interested in some similarly useful utilities you can  contact  me
at sta@c64.org or visit my homepage at http://sta.c64.org.

  Thanks to W. Curtiss Priest for the initial ideas  of  fetching  file  names
from environment variables and returning various error levels. Thanks to  Jeff
Shaddix for the initial idea of filtering out hidden and system files from the
comparison and adding a command line option to include them.

  Joe Forster/STA
  6th August, 2006
