;
                                     FF.COM                                   

             Size (recs) CRC   Version    Author/Latest Issue      Disk
               4k (31)   A609  2.4        Al Hawley 1/91           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*").  

   Version 2.4 adds several new  options,  and  makes all options configurable
with ZCNFG.   Uses SYSLIB4C routines,  including  the sort routines to make FF
noticeably faster.  Source code revised for brevity, clarity, and code optimi-
zation.  Command  line  syntax  relaxed.  Still  compatible  with  Z3PLUS  and
DosDisk. 
: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 - Toggle inclusion of System files based on default
                configuration (see below).  System files are never
                included unless the Wheel byte is set.
 Usage - 2/2 
  
   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 (By default, register 0 is used, but the register to be used can be
configured.  See "Configuration").

   If a drive or drive list is not  included  on  the command line, the drives
set in the drive vector are automatically scanned.  The first  drive,  DU:, or
DIR: reference in the list of files to seek restricts the search to that drive
only. Others, including the  optional  drive  list,  are  ignored.   The drive
specification may be part of ANY of the file specifications and is NOT limited
to being part of the first file listed as  implied by the  Syntax description.

   The '/' before the non-drive options may be preceded by spaces,  and may be
replaced with  a  space.  Spaces  may  also  be  present  around the non-drive
options.

   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.
:2
 Configuration 

   FF24 is configurable with ZCNFG V1.7.   Defaults for the three command line
non-drive options may be  configured.   The  command  line options then toggle
these defaults for the duration of a single execution of FF.

   The list of drives (drive vector) is also configurable with ZCNFG,  a major
improvement over the former patching method.

   Two new default drive search vectors may be  configured,  one  based on the
currently logged drives and the second  based on drives represented by entries
in the current NDR  (named directories).   The use of named directories may be
subject to wheel byte status.   These  configuration  options  are  useful for
ensuring system security in a  RAS  environment,  and  for  helping to prevent
access to empty floppy drives.

   Help screens in the configuration file give more details of the options and 
their configuration.
:3
 FF Notes - 1/7 

   a. Version 2.4x3 updates (1/19/91, Al Hawley):
      - Added configuration option to restrict search to named directories for
        non-wheels and within drive  map  constraints.  Passworded directories
        are not searched.
      - Modified pagination algorithm so that the 'more' message is not issued
        when there is no more to display.   This happened in previous versions
        when the display exactly filled the screen.
      - Added option to remove display of "DISC --" title lines.
      - Revised drive select option logic for  functional modularity & logical
        conciseness.
      - Revised memory allocation so that the FN table and the ORDER table are
        dynamically sized to minimize memory usage.
      - Replaced filename parsing code in  GETFN  with  a  call to ZFNAME from
        Z3LIB.   Removed unneccessary code and  optimized  code in a number of
        places.   Moved all code for console display  from other routines into
        the PRFILES routine.   Simplified  memory  allocation  by using Z3LIBs
        GZMTOP routine.
 FF Notes - 2/7 

   b Version 2.4x2 updates (1/3/91, Joe Wright):
      - Provided code for Type 1 or  Type 3  header.   Removed  code  to save/
        restore current drive (not needed).  Use ANDHD and ORHD from SYSLIB in
        a couple of places.  Help screen to show drives like AB_D_. instead of
        ABD.

  c. Version 2.4x1 updates (12/30/90, Al Hawley; x1 means Beta version 1):
      - FF24 has been made configurable with ZCNFG.  The current configuration
        option settings are reflected in the  HELP screen.   Changed the drive
        vector back to the structure used by BDOS and the ZCPR3x extended env.
        The 'human' oriented structure is  no  longer  needed  now  that ZCNFG
        makes it easy and natural to modify the drive vector.
      - Most of the sorting code has been  removed and  replaced with calls to
        the sort routines in SYSLIB4C.  These  new  syslib  routines  are MUCH
        faster than the old ones.
      - The source has been  extensively  edited,  with  a  view toward better
        readability.  Archaic comments were  removed,  and some new ones added
        where comprehension could be enhanced.
 FF Notes - 3/7 

      - The command line syntax  has  been  relaxed a bit to allow white space
        AFTER the drive list,  and  the  '/'  before  the  option field may be
        replaced with white space. 
      - Included Z3PLUS code  optimization  from  the  unreleased  version 2.3
        which deletes unnecessary BIOS selects.

   d. Version 2.2 updates (1/12/90, Howard Goldstein):
      - 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, Gene Pizzetta):
      - 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 - 4/7 

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

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

   f. Version 1.8 updates (03/09/89, Carson Wilson):
      - 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, Carson Wilson):  
      - 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 - 5/7 

   h. Version 1.6 updates (03/02/89, Carson Wilson): 
      - 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, Carson Wilson):
      - 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, Carson Wilson):
      - 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 - 6/7 

   k. Version 1.41x updates (2/1/89, Howard Goldstein):
      - Fixed use of  system  valid  drive  vector.  It is now logically ANDed
        with the table in the program.

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

   m. Version 1.2 updates (02/29/88, Bridger Mitchell):
      - Adds extended environment valid-drive vector.

   n. Version 1.1 updates (11/14/87, Bridger Mitchell):
      - 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 - 7/7 

   o. Version 1.0 (03/14/88,, Jay Sage):
      - 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.
      