;
                                     FF.COM                                   

             Size (recs) CRC   Version    Author/Latest Issue      Disk
               3k (24)   D4A8  2.2        Howard Goldstein 1/90    Z3COM3 

  1- Syntax  2- Configuration  3- Notes                                       

   FF is  a File-Find utility derived  from FINDF version 2.6.   It finds  all
files matching a list of file specs on all drives, a specific drive, or a list
of drives.  All file specs are automatically made wild (that is, "A.B" becomes
"A*.B*").

   A configuration word at the beginning of the code contains a  byte for each 
possible drive in a system.   When the user has not indicated a specific drive
to scan, each drive is checked against this table and  skipped  if  the bit is 
not set.  This allows FF to work in systems with holes (e.g., drives A, B, and
F) in which the BIOS hangs when a drive is accessed that does not exist or has
no disk. 
:1
   Syntax   FF [D: or DIR:]afn[,afn]... [d...][/o...]

  Options   (d) before slash:
            list of drivers to scan

  Options   (o) after slash:
            E - Exact matches only (no auto wildcarding)
            P - No Paging of output
            S - Include SYS files (Wheel byte must be set)
  
   Error flag is set to 0ffh if no  matching files  are found,  or to 1 if the 
program is aborted by the user.  The number of matching files found  is put in
a register (see "Configuration").

   Auto-scanned drives are: ABCDEFGHIJKLMNOP  (see "Configuration")

   Output  can  be  paged a line at a time by hitting the space bar or  can be 
aborted at a page break by hitting CTRL-C.

   All file specs are ambiguous (FF A = FF A*.*, FF A.B = FF A*.B*, etc.). 
:2
 Configuration 

   In the first record of the COM file are  three  ASCII labels for configura-
tion of FF.   The labels can  be easily seen using a patching utility, such as
ZPATCH, to configure the bytes immediately following each label.

   DRVTBL     Two bytes follow this label with  each  bit  corresponding to  a 
              drive (A-P) to be automatically scanned if no  drives  are given
              on the command line.   Drives  are scanned if the  corresponding 
              bit is set to (1).

   REG#       This byte sets the register number where  the number of matching
              files found is recorded.  The default is 0, but you can patch in
              any file number 0-9.   A number greater than 9 will disable this
              feature.

   SYSF       System files will be included by default if  this  byte  is non-
              zero, provided the Wheel byte is set.  If this byte or the Wheel
              byte is  zero,  system  files  are  excluded.   The  "S"  option 
              reverses the meaning of this byte.

                                 FFPATCH.ASM 

             Size (recs) CRC   Version    Author/Latest Issue      Disk
               1k (2)    4AF3  n/a        Gene Pizzetta 12/89      Z3COM3
==============================================================================

   FFPATCH is a simple patch to set the drive vector in FF (Find File).   Edit
it to reflect your system's drive arrangement, assemble it with just about any
assembler to a HEX file, and then MLOAD it over your copy of FF.COM.
:3
 FF Notes - 1/5 

   a. A program error flag is  set if no files  are found  and  cleared if the
      files are found.   The  nr of  files found  is stored in  a configurable 
      user register.  If the nr is more than 255, the value 255 is stored.

   b. Version 2.2 updates (1/12/90):
      - Exit logic modified so that nr of files found is placed in the 
      register even when the program is aborted by the user.  The error flag
      is set to 1 on user abort.
      - Further code crunching to get program back down to 3k.  
      - Logic fixed to allow one more line on first screen of paged output. 

   c. Version 2.1 updates (12/30/89):
      - Adds configuration  byte to include or  exclude  SYStem  files  as the
      default.   A non-zero  value  causes files  to be included, but the byte 
      will be ignored  if the  wheel byte is  off).   "S" option  now  toggles 
      current default.   Help screen modified to reflect default setting.  New
      doc file includes revision history from source.
 FF Notes - 2/5 

   d. Version 2.0 updates (11/26/89):
      - Fixes bug which caused  duplicate  listing  of  files  larger  than 32
      32 extents.

   e. Version 1.9 updates (03/18/89):
      - Release version.  Result of general code cleanup.

   f. Version 1.8 updates (03/09/89):
      - Corrects check  against MAXDRV byte  in  the  environment  descriptor.  
      Previous code  allowed one  drive  beyond  MAXDRV.   Extracts  new  MASK 
      routine from INIT so that it  can  be called after any drive options are 
      processed.   This enforces the  valid  drive vector from the environment 
      descriptor regardless of the setting of the MAXDRV byte.
  
   g. Version 1.7 updates (03/04/89):  
      - Fixes bug which caused 'FF /' command to list all files.  Only 'FF' or
      'FF,<one or  more  spaces>//'  (exactly)  now  gives  help.   'FF /'  or 
      'FF // ' are intrepreted as filespecs.
 FF Notes - 3/5 

   h. Version 1.6 updates (03/02/89): 
      - Changes page prompt to reflect multiple abort keys (says 'RETURN=page'
      instead  of 'OTHER=page').   Help is  no  longer  generated  by a single 
      slash as a parameter,  allowing files  beginning with '/' to be searched 
      for.

   i. Version 1.5 updates (02/26/89):
      - Adds REG# ASCII pointer to  the patch  byte controlling which register 
      is used to store the  number  of matches found.   The  default  is zero.  
      Register is changed  by substituting  a BINARY value from 1 to 9 at this 
      storage location.

   j. Version 1.4 updates (02/23/89):
      - Allows abort with  ^c, c, C, ^k, k, K, ^x, x, or X  between  pages  of 
      paged output.  System valid drive vector is now logically ANDed with the 
      table in the program.
 FF Notes - 4/5 

   k. Version 1.3 updates (07/04/88):
      - Exits with BIOS, then BDOS drive-select.

   l. Version 1.2 updates (02/29/88):
      - Adds extended environment valid-drive vector.

   m. Version 1.1 updates (11/14/87):
      - Adds compatibility with CPM/3 and DosDisk.  
      - Converts directory searches  to  BDOS  calls,  for  compatibility with 
      DosDisk and other BDOS emulators.   
      - Removes IX register use, for compatibility  with BIOS/DOS systems that 
      mistakenly fail to preserve Z80 registers.  
      - Adds check for presence of external environment.   
      - Uses full TPA if CCP is protected.   Search  every  valid  BIOS  drive 
      whose bit is  set  in  the  DRVTBL (previous  versions  aborted on first 
      invalid drive).
 FF Notes - 5/5 

   n. Version 1.0 (03/14/88):
      - Adds DRVTBL configuration word at  beginning of code which contains  a
      byte for each possible drive in a system.   As distributed, FF has FFFFh 
      in this word so that all drives up to  the  max drive specified  in  the 
      environment will be scanned.  
      - Output can now be paged a line at  a time  by hitting the space bar or 
      can be aborted at a page break by hitting ^C.
      - Enhanced syntax allows specifying  a list  of drives to  be scanned in 
      the option field.