;
                                     PACK                                     

             Size (recs) CRC   Version    Author/Latest Issue      Disk
               5k (36)   396D  1.0b       Michael Broschat 7/89    Z3COM7

  1- Syntax/Options  2- Notes  3- File List  4- Messages  5- Examples of Use  


   PACK rearranges data on disks so that all data associated with each file is
contiguous.  This reduces  disk  head movement when  that file is subsequently
read  or  modified.  The user  can  specify  certain files which should not be 
moved, and can specify priorities among  the remaining files, so that the most 
frequently accessed  files are  moved close to  the disk directory for reduced 
access time.  

   Pack Vs 1.0 by Frank Cringle.
:1

   Syntax   PACK <flist> <options>

<flist> is required and  is the name  of the file containing the list of fixed 
and mobile file patterns.  The possible options are:

  Options   Dx  <-- pack disk x (default is the disk on which flist resides)
            S   <-- display statistics only.  No packing takes place.
            V   <-- be verbose.  The file patterns extracted from <flist> are
                    displayed, and then the group permutation table (mainly 
                    for debugging).
:2
 PACK Notes - 1/2 

   a. PACK requires  ZCPR3  with  CP/M 2.2  or ZRDOS, and  a Z80 or compatible 
      processor.  It will only run if the user has wheel priviledge.

   b. Before using PACK, you must make a list of fixed and priority files for
      the disk.  Backup the disk, sort the directory, and then run PACK.

   c. Backing up the disk...  You should  do this regularly, and always before 
      running PACK.  Not that a disk crash is more probable while running PACK
      than at  other times, but  it  is more certainly catastrophic if it does 
      happen.  You will definitely  have to  restore the disk from your backup 
      copy (floppies or tape) if the system crashes due  to a power failure or 
      inadvertent reset while PACK is running.

   d. Sorting the directory... Use  CLEANDIR  or  SAP  to  sort  the directory 
      entries on  the  disk.  The file  list given  to PACK preempts directory 
      order, but within  each  group of files which match an entry in the file 
      list directory order determines the order in which the data is packed.
 PACK Notes - 2/2  

   e. Version 1.0b is an  assembled version of the  same source code linked to 
      the new version (V4LIB) of SYS-, Z3-, V- libs.  Assembly and linking was
      with the SLR Systems tools, Z80ASM and SLRNK. 
:3
 The file list 

   PACK requires  an input  file which  specifies which files on the disk must 
remain where they are and which of  the remaining files should be moved to the 
beginning of the disk.  The structure of this file is a sequence of file names
and file classes, one to a line.  File classes (fixed or mobile) are specified
by a line beginning with a semi-colon.  So a typical file list might be:

     ; Fixed             <-- All files  in any  user  area  matching !!*.* and
     *:!!*.*                 BADSECT*.* remain fixed (on  my  system these are
     *:BADSECT*.*            PluPerfect DateStamper and Backgrounder files and
                             files which lock out flakey sectors).
     ; Mobile            <-- The LBR containing less-frequently used COM files
     CMD:COMMAND.LBR         is moved to  the front, followed by  all files in
     ROOT:*.*                the  ROOT  directory.  PACK automatically appends
                             *:*.* to  the  end  of the  mobile  list, so  all
                             remaining files on the disk follow on.

   Case is not significant and blank lines are ignored.  DU: or DIR: is okay.
* or ? means all user numbers.  A disk specified implicitly or explictly must 
correspond to the disk specified on the command line (see D option).
:4
 Messages - 1/2 

   Ready to pack disk x                            
   Are you sure you wish to proceed? (y/n) - 
   Disk packed
   nnnn group reads and mmmm group writes required to pack disk.   
   PACK: interrupted by user          - you pressed ^C
   Option not recognized: x
   No such disk: x
   Disk specification missing

Problems with <flist>
   Line xxxx: invalid filename
   Line xxxx specifies disk x (y expected)
   Line xxxx: can't interpret directory specification
   Line xxxx too long: truncated.

Disk read/write errors:
     Can't read directory               - disk read error
     read error at group gggg:ss        - group cannot be read/written,
     write error at group gggg:ss       - see PACK.DOC for recovery
 Messages - 2/2 

General problems:
     PACK requires CP/M 2.2 (or ZRDOS)
     Can't find <flist>
     Disk x is set read only
     Out of memory                      - you have a tiny TPA
     Disk overflow (can't happen!)      - more groups are allocated in 
                                          the directory than there are
                                          groups on the disk
:5
 Examples of Use 

   a. B>PACK FLIST.C DCS       - display number of allocation groups that 
                                 would have to be read and written to 
                                 pack disk C according to the file list 
                                 FLIST.C

   b. B>PACK FLIST.C DC        - as before, but 'for real'


   PACK will  ask for  confirmation before  proceeding  to pack the disk.  The 
process takes anywhere from a  few seconds to maybe  half an hour depending on 
how much data must  be moved  and  how fast your disk hardware is.  If you get 
impatient, on  no account switch  off or reset the machine.  If you hit ^C the 
program will attempt  to  cut short  the packing process, but it may take some 
time to reach a convenient consistent state.
