home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / ZOODOC.ZIP / ZOO.DOC < prev    next >
Text File  |  1986-08-24  |  39KB  |  861 lines

  1.                                     Zoo
  2.  
  3.                             A Fast File Archiver
  4.                Version 1.10 - 24 August 1986
  5.  
  6.                                      by
  7.  
  8.                                 Rahul  Dhesi
  9.  
  10.  
  11.                                 INTRODUCTION
  12.  
  13. Zoo is a utility for creating and maintaining libraries or archives of files
  14. in compressed form.  It requires a computer system with MS-DOS version 2.00
  15. or greater.  IBM compatibility is not a requirement.
  16.  
  17. Zoo is a 29 kilobyte executable file.  It can extract archived files in
  18. about 80 kilobytes of available memory, and can function fully in about 110
  19. kilobytes of available memory.
  20.  
  21. A companion program, Ooz, is also provided.  All that Ooz can do is extract
  22. files from Zoo archives, but it occupies less disk space (about 11 kilo-
  23. bytes) and needs less available memory (about 60 kilobytes).
  24.  
  25. Also provided is AtoZ, a batch program that will convert a subdirectory full
  26. of files in other formats (especially *.LBR or *.ARC) to Zoo archives.
  27.  
  28. Versions 1.x of Zoo, Ooz and AtoZ are in the public domain.  This means that
  29. you can freely use them, make copies, give them away, and even sell them.
  30. The source code is not being distributed, but version 2.00 of Zoo, when it
  31. appears, will be accompanied by generic source code in C.
  32.  
  33.  
  34.                                  DISCLAIMER
  35.  
  36. Zoo, Ooz, and Atoz are provided to you on an "as is", "you owe me nothing, I
  37. owe you nothing" basis.  If this warranty gives you any specific legal
  38. rights, I would like to know what they are, especially if they vary from
  39. state to state.
  40.  
  41.  
  42.                               COMMAND SUMMARY
  43.  
  44. Zoo has two types of commands:  Expert commands, which consist of one com-
  45. mand letter followed by zero or more modifier characters, and Novice com-
  46. mands, which consist of a hyphen ("-") followed by a command word that may
  47. be abbreviated.  Novice commands let you begin using Zoo quickly.  Unlike
  48. Expert commands, which are case-sensitive, Novice commands can be given in
  49. any combination of upper- and lowercase characters.
  50.  
  51. Expert commands are cryptic but offer you many more flexible options.  Start
  52. with the Novice commands and switch to using the Expert commands as soon as
  53. you can.
  54.  
  55.  
  56. 1.   Zoo Novice Command Format:
  57.  
  58.      ZOO cmd archive[.ZOO] [file] ...
  59.  
  60. The "archive" is the filename of the archive you want to use, and the
  61. program will assume an extension of ".ZOO" if you do not supply one.  The
  62. "file" is any filespec.
  63.  
  64. Both the "archive" and the "file" names may be pathnames.  Pathnames may
  65. contain both "/" and "\" characters.  The "file" name (but not the "archive"
  66. name) may also contain the standard DOS-style wildcard characters "*" and
  67. "?".  The "..." means that several filespecs may be given, separated by
  68. spaces.
  69.  
  70. A filespec ending with "/" or "\" is assumed to refer to all files in that
  71. directory.
  72.  
  73. Each Novice command works in two stages.  First, the command does its inten-
  74. ded work.  Then, if the result was that one or more files were deleted in
  75. the specified archive, the archive is packed to recover space.
  76.  
  77. If packing occurs, an unpacked backup copy of the archive is always left
  78. behind, with an extension of ".bak".  The packed archive always appears in
  79. the current directory, even if the original archive was on a different disk.
  80. This is intended to allow you to economize on disk space by simply using two
  81. disks if there is not enough space on a single disk to hold both the archive
  82. and its backup copy.
  83.  
  84. Novice                                                     Equivalent
  85. Command       Description                                  Expert Command
  86. -------       -----------                                  --------------
  87. -add          add files to archive                           aP
  88. -extract      extract files from archive                     x
  89. -move         move files to archive                          aMP
  90. -test         test archive integrity                         xNd
  91. -print        extract files and send to standard output      xp
  92. -delete       delete files from archive                      DP
  93. -list         list information about archived files          l
  94. -update       update archive by adding new or newer files    aunP
  95. -freshen      freshen archive by adding newer files          auP
  96. -comment      allows user to attach comments to files        c
  97.  
  98. Novice commands may be abbreviated as much as you wish, up to a minimum of a
  99. hyphen ("-") followed by at least one command character.  For example, the
  100. novice command "-extract" may be abbreviated to "-ext", "-ex", or "-e".
  101. Novice commands are described in more detail later.
  102.  
  103.  
  104. 2.   Zoo Expert Command Format:
  105.  
  106.      ZOO {acDehlPTuUvx}[dEfnMNoOpPquv1] archive[.ZOO] [file] ...
  107.  
  108. The characters enclosed within {} are commands.  Choose any one of these.
  109. The characters enclosed within [] just to the right of the {} are modifiers
  110. and zero or more of these may immediately follow the command character.  All
  111. combinations of command and modifier characters may not be valid.
  112.  
  113. In general, [] encloses something that may (sometimes) be omitted and {}
  114. encloses a set of items from which exactly one must be selected.  The
  115. archive and file names are as described for Novice commands above.  The
  116. archive and file names may be in any combination of upper- and lowercase
  117. characters, but the command and modifier characters are case-sensitive.
  118.  
  119. Invoking Zoo as "zoo h" will give a help screen.  Zoo Expert commands are
  120. described in detail later.
  121.  
  122.  
  123. 3.   Ooz Command Format
  124.  
  125. The Ooz command format is as follows:
  126.  
  127.      OOZ archive[.ZOO] [file] ...
  128.  
  129. Ooz is trivial to use;  just give it the name of the archive and it will
  130. extract all files from it, or specify which files you want to extract and
  131. only those will be extracted.  All extracted files go into the current
  132. directory.
  133.  
  134.  
  135.                               NOVICE COMMANDS
  136.  
  137.  
  138. 1.   Adding Files to an Archive
  139.  
  140. Format:  ZOO -add archive[.ZOO] file ...
  141.  
  142.      The specified files are added to the archive.  If all specified files
  143.      were added without any error, and if this resulted in deletion of a
  144.      file that was already in the archive, the archive is packed.  If
  145.      packing of the archive occurs, the unpacked archive is renamed to have
  146.      an extension of ".bak" and the packed archive always appears in the
  147.      current directory on the current disk.
  148.  
  149.      For example, the command "zoo -add qmodem *.com *.00? \doc\q*.doc"
  150.      would add the following files to archive "qmodem.zoo":  all files of
  151.      the form *.com and *.00? in the current directory, and all files of the
  152.      form q*.doc in the \doc subdirectory.
  153.  
  154.      The archive can be in a different directory or on a different disk.
  155.      Thus "zoo -add c:\scandals\misc \fortran\ \cobol\*.doc" adds files to
  156.      the archive "misc.zoo" in the directory "c:\scandals".  The files added
  157.      are:  all files in the directory "\fortran" and all *.doc files in the
  158.      directory "\cobol".
  159.  
  160.      If the filespecs given match duplicate filenames, each matching
  161.      filename is used only once.  This is true even if the duplicate
  162.      filenames refer to different files in different directories.
  163.  
  164.      Zoo will not add an archive to itself, nor add the archive's backup to
  165.      itself, nor add the temporary file {zoo}.@@@ to an archive, nor add any
  166.      other file that has the same name as these.
  167.  
  168.  
  169. 2.   Extracting Files from an Archive
  170.  
  171. Format:  ZOO -extract archive[.ZOO] [file] ...
  172.  
  173.      The specified files are extracted from the archive.  If no file was
  174.      specified, all files are extracted from the archive.  All extracted
  175.      files go into the current directory.
  176.  
  177.      If a file being extracted would overwrite an already-existing file of
  178.      the same name, Zoo asks you if you really want to overwrite it.  You
  179.      may answer the question with "y", which means yes, overwrite; or "n",
  180.      which means no, don't overwrite; or "a", which means assume the answer
  181.      is "y" for this and all subsequent files.
  182.  
  183.  
  184. 3.   Moving Files to an Archive
  185.  
  186. Format:  ZOO -move archive[.ZOO] file ...
  187.  
  188.      -Move works just like -add, except that after all files have been
  189.      added, if no error occurred, the added files are deleted from disk.
  190.  
  191.  
  192. 4.   Testing an Archive
  193.  
  194. Format:  ZOO -test archive[.ZOO]
  195.  
  196.      This is equivalent to the -extract command, except that extracted files
  197.      are not saved.  If no CRC error or other error occurs during execution
  198.      of the -test command, this indicates with a high degree of confidence
  199.      that the archive is not corrupted.
  200.  
  201.  
  202. 5.   Printing Files from an Archive
  203.  
  204. Format:  ZOO -print archive[.ZOO] [file] ...
  205.  
  206.      This option extracts specified files from the archive and sends the
  207.      extracted data to standard output, which is normally the screen.  The
  208.      output may be directed to a printer or a disk file using DOS's redirec-
  209.      tion character ">".
  210.  
  211.      Zoo precedes the data of each extracted file by a brief header
  212.      displaying the name of the file.
  213.  
  214.      Error messages are piped to standard output as well.  However, if a bad
  215.      CRC is detected, the bad CRC message is sent both to the screen and to
  216.      the standard output.
  217.  
  218.  
  219. 6.   Deleting Files in an Archive
  220.  
  221. Format:  ZOO -delete archive[.ZOO] file ...
  222.  
  223.      The specified files are deleted from the archive, and then the archive
  224.      is packed to recover space that was occupied by the deleted files.
  225.  
  226.      As a safety feature, if the user deletes all files in an archive, no
  227.      packing of the archive is done and the deleted files may be recovered
  228.      with the Expert command U (undelete).  To delete an archive entirely,
  229.      use DOS's "del" or "erase" command.
  230.  
  231.  
  232. 7.   Listing Files in an Archive
  233.  
  234. Format:  ZOO -list archive[.ZOO] [file] ...
  235.  
  236.      This gives a list of the specified files along with information about
  237.      each file's original size, size as stored in the archive, compression
  238.      factor, and date.  If no files are specified, all files in the archive
  239.      are listed.
  240.  
  241.      If a file would need to be extracted with a version of Zoo higher than
  242.      the current version, Zoo displays the minimum version number needed.
  243.  
  244.      A summary line displays a count of files listed, the total of all
  245.      original sizes and current sizes, and a net compression factor.  The
  246.      actual size of an archive is always somewhat greater than the total of
  247.      the current sizes of files in it because of the directory information
  248.      that is also kept in the archive.
  249.  
  250.  
  251. 8.   Updating an Archive
  252.  
  253. Format:  ZOO -update archive[.ZOO] file ...
  254.  
  255.      This command is like -add, except that if a file being added is already
  256.      in the archive, it is added only if the copy being added is newer than
  257.      the copy already in the archive.  The -update commands adds all the
  258.      files that the -freshen command would add (below) and also adds any
  259.      files that are not already in the archive.
  260.  
  261.  
  262. 9.   Freshening an Archive
  263.  
  264. Format:  ZOO -freshen archive[.ZOO] file ...
  265.  
  266.      This command is like -add, except that a file is added only if it is
  267.      already in the archive, AND if the copy being added is newer than the
  268.      copy already in the archive.
  269.  
  270.      The -freshen command simply brings archived files up to date without
  271.      adding any files that weren't already in the archive.
  272.  
  273.  
  274. 10.  Adding comments to an Archive
  275.  
  276. Format:  ZOO -comment archive[.ZOO] file ...
  277.  
  278.      Zoo allows each archived file to have an optional attached comment.
  279.      Any comment attached to a file is listed when the Novice -list command
  280.      is given.  The -comment command allows comments to be attached,
  281.      removed, and updated.
  282.  
  283.      When invoked with the -comment command, Zoo goes through the specified
  284.      archive and for each matching file, shows you the comment (if any) and
  285.      allows you to type a replacement comment.  Your choices are:
  286.  
  287.      o    Type a carriage return alone to leave unchanged any attached
  288.           comment.
  289.      o    Type "/END" and carriage return to remove any comment attached to
  290.           the file.
  291.      o    Type a comment of up to 65,535 characters long.  Terminate it by
  292.           typing "/END" by itself on the last line.  The new comment will
  293.           replace any previous comment.
  294.  
  295.      For better formatting in listings, keep each line of the comment to 77
  296.      characters or less.  Since comments are not compressed, they should not
  297.      be excessively long.
  298.  
  299.      It is possible to create a file of comments with a text editor and give
  300.      it to Zoo as input using DOS's input redirection character "<".  In
  301.      this case, the comments in the file must be in exact sequence.  If this
  302.      input file has fewer comments than Zoo expects, comments for remaining
  303.      matching files will be left unchanged.
  304.  
  305.      If end-of-file is reached before all comments have been accounted for,
  306.      Zoo simply leaves all remaining files' comments unchanged.  End-of-file
  307.      can be caused by the user typing a control Z interactively or the
  308.      redirected input being smaller than Zoo expects.
  309.  
  310.      Examples:  "zoo -comment batch *.bat" shows any comment that may be
  311.      attached to each *.bat file in the archive "batch.zoo", allows you to
  312.      type a new comment.  Type as many lines as you wish, then type "/END"
  313.      by itself on a line to terminate the comment.  If, however, you want to
  314.      leave the original comment unchanged, just hit return.  You may type
  315.      control Z at any point to leave all remaining files' comments
  316.      unchanged.
  317.  
  318.      "zoo -comment qmodem *.doc *.00? <qcomment.txt" makes Zoo read new
  319.      comments from the file "qcomment.txt".  For each file matching *.doc
  320.      and *.00?, Zoo reads data from qcomment.txt and reacts exactly as with
  321.      interactive input:  an empty line (carriage return alone) in
  322.      "qcomment.txt" leaves the original comment unchanged;  "/END" by itself
  323.      removes the original comment;  any other text terminated by "/END" on a
  324.      separate line replaces a comment.  If "qcomment.txt" ends prematurely,
  325.      all remaining files have their comments left unchanged.
  326.  
  327.  
  328.  
  329.                               EXPERT COMMANDS
  330.  
  331. 1.   Adding Files to an Archive
  332.  
  333. Format:  ZOO {au}[cfMnPqu] archive[.ZOO] file ...
  334.  
  335. Command characters:
  336.  
  337.      a    Add files to archive.  If "a" is used by itself, each file is
  338.           added either in compressed or in uncompressed form, whichever is
  339.           smaller.  To add files without compressing them, use the "f"
  340.           (fast) modifier.  If a file with the same name as one being added
  341.           is already present in the archive, it is marked as deleted.  For
  342.           more information about deleted files, see the D (delete), U
  343.           (undelete), and P (pack) commands.
  344.  
  345.           If the filespecs given match duplicate filenames, each matching
  346.           filename is used only once.  This is true even if the duplicate
  347.           filenames refer to different files in different directories.
  348.  
  349.           Zoo will not add an archive to itself, nor add the archive's
  350.           backup to itself, nor add the temporary file {zoo}.@@@ to an
  351.           archive, nor add any other file that has the same name as these.
  352.  
  353.  
  354.      u    Update archive.  A specified file is added to the archive if
  355.           a copy of it is already in the archive and the copy being added is
  356.           newer than the copy already in the archive.
  357.  
  358. Modifiers:
  359.  
  360.      c    Add comments when adding files.  After each file is added, the
  361.           user is prompted for a comment.  If the file being added has
  362.           replaced a file already in the archive, any comment attached to
  363.           the replaced file is shown to the user and becomes attached to the
  364.           newly-added file unless the user changes it.  Responses are exac-
  365.           tly as for the Novice -comment command and the Expert c command:
  366.           hit carriage return to leave any previous comment unchanged;  type
  367.           "/END" to leave the file without any comment; or type a comment
  368.           and terminate with "/END" on a line by itself.
  369.  
  370.           If the user types control Z in response to a request for a com-
  371.           ment, Zoo will no longer ask for comments for any subsequent files
  372.           and their previous comments, if any, will remain unchanged.
  373.  
  374.           Note:  Since comments for replaced files become automatically
  375.           attached to corresponding newly-added files, the freshening of an
  376.           archive with the Novice -freshen command or the Expert au command
  377.           does not cause loss of comments.
  378.  
  379.      f    Do a fast add/update by not compressing files as they are added.
  380.  
  381.      M    Move files to archive.  This makes Zoo erase the original files
  382.           after they have been added to the archive.  Files are erased after
  383.           addition of files to the archive is complete, and after any
  384.           requested packing of the archive has been done, and only if Zoo
  385.           detected no errors.
  386.  
  387.      n    Add new files only.  A specified file is added only if it isn't
  388.           already in the archive.
  389.  
  390.      P    Pack archive after files have been added.  Normally, when Zoo adds
  391.           a file to an archive and if there was already a copy of the file
  392.           in the archive, the old copy is marked as being deleted.  This
  393.           does not actually remove the old copy;  it exists in the archive
  394.           and may be undeleted or extracted.  Packing the archive permanen-
  395.           tly removes all deleted files from it and recovers the space they
  396.           were using.
  397.  
  398.           The original archive is never changed during the packing process
  399.           except that it is renamed to have an extension of ".bak".  The
  400.           packed archive always appears in the current directory on the
  401.           current disk.
  402.  
  403.      q    Be quiet.  Normally Zoo lists the name of each file as it is
  404.           added.  The q modifier suppresses this.  Any error messages are
  405.           always shown.
  406.  
  407.      u    Update archive.  This has exactly the same effect as when used as
  408.           a command character (see above).
  409.  
  410. All combinations of the [cfMnPqu] modifiers are valid.  The combination of n
  411. and u together adds a file to the archive either if the file is not already
  412. in the archive, OR if the file is already in the archive but the archived
  413. copy is older than the copy being added.
  414.  
  415. Examples:
  416.  
  417.      "zoo a pascal *.*" adds all files in the current directory to the ar-
  418.           chive called "pascal.zoo".  If the archive does not already exist,
  419.           it is created.  Each file is added in compressed or uncompressed
  420.           form, whichever is smaller.
  421.  
  422.      "zoo aM pascal *.*" adds the same files and then deletes the original
  423.           unarchived files.
  424.  
  425.      "zoo af pascal *.*" adds the same files without any compression.
  426.  
  427.      "zoo aP pascal *.pas" adds all files matching "*.pas" to the archive
  428.           "pascal.zoo".  After all specified files have been added, Zoo packs
  429.           the archive if it finds any deleted files in it.
  430.  
  431.      "zoo aPc pascal *.pas" does exactly the same but also prompt the user
  432.           for a comment for each file after it is added.
  433.  
  434.      "zoo nfP a:/archives/cobol /cobol/" adds all files in the the /cobol
  435.           subdirectory on the current disk to the archive "cobol.zoo" in the
  436.           subdirectory "a:/archives", without doing compression.  After the
  437.           files have been added, if Zoo finds any deleted files in the
  438.           archive, it packs the archive.  Packing leaves the original
  439.           archive unchanged but renamed to have an extension of ".bak".  A
  440.           new packed copy of it appears in the current directory of the
  441.           current disk.
  442.  
  443.      "zoo uq silence silence.com / c:\bin\*.exe" adds the following
  444.           files to archive "silence.zoo":  (a) the file "silence.com";
  445.           (b) all files in the root directory;  (c) all files in the direc-
  446.           tory c:\bin that have the extension ".exe".  However, since the
  447.           command u was used, no file is added unless a copy of it is
  448.           already present in the archive.  Because of the q modifier, Zoo
  449.           does not list names of files as they are added.
  450.  
  451.  
  452. 2.   Extracting Files from an Archive
  453.  
  454. Format: ZOO {ex}[dNoOpq] archive[.ZOO] [file] ...
  455.  
  456. Command characters:
  457.  
  458.      x    Extract files.  Files that were compressed during addition to the
  459.           archive are decompressed during extraction.  All extracted files
  460.           go into the current directory on the current disk.  Not giving a
  461.           filespec is equivalent to giving "*.*" as the filespec.
  462.  
  463.      e    Extract files.  Synonym for x.
  464.  
  465. Modifiers:
  466.  
  467.      d    Extract deleted files also.  Normally, deleted files are not
  468.           extracted.  The d modifier causes deleted files to be extracted in
  469.           addition to the normal files.  Giving the d modifier twice (e.g.
  470.           "zoo xdd archive") makes Zoo extract only deleted files.
  471.  
  472.      N    Send extracted data to Neverland.  The data are extracted as
  473.           without the N modifier but they are not sent to disk.  This tests
  474.           the integrity of an archive.  Any error messages will appear on
  475.           the screen as usual.  The absence of any CRC or other error mes-
  476.           sage indicates with a high degree of confidence that the archive
  477.           is not corrupted.
  478.  
  479.           The q modifier may be used in addition to prevent filenames being
  480.           listed on the screen.  Error messages are never suppressed.
  481.  
  482.           If any filespecs are supplied, the "zoo xN ..." command will
  483.           attempt to extract only the specified files.
  484.  
  485.           The integrity of deleted files will not be checked unless the d
  486.           modifier is also used.  Thus to fully check an archive that
  487.           contains deleted files, use the format "zoo xNd archive".
  488.  
  489.      O    Overwrite files.  Normally, if a file being extracted would over-
  490.           write an already-existing file of the same name, Zoo asks you if
  491.           you really want to overwrite it.  You may answer the question with
  492.           "y", which means yes, overwrite; or "n", which means no, don't
  493.           overwrite; or "a", which means assume the answer is "y" for this
  494.           and all subsequent files.
  495.  
  496.           The O modifier makes Zoo assume that files may always be
  497.           overwritten.  It may not be combined with the N or p modifiers.
  498.  
  499.      o    The o modifier is equivalent to the O modifier if and only if it
  500.           is given at least twice.  Thus "zoo xoo ..." is equivalent to "zoo
  501.           xO ...".  Otherwise it is ignored.
  502.  
  503.      p    Pipe extracted data to standard output.  Instead of being sent to
  504.           individual disk files, all extracted data are concatenated and
  505.           sent to the standard output, which is normally the screen.  The
  506.           output may be redirected to any other destination such as a prin-
  507.           ter, a communications port or a disk file of your choice, by using
  508.           the MS-DOS redirection character ">".
  509.  
  510.           When thus piping data, Zoo precedes the data of each extracted
  511.           file by a brief header displaying the name of the file.  The q
  512.           modifier suppresses this header.
  513.  
  514.           Error messages are piped to standard output as well.  However, if a
  515.           bad CRC is detected, the bad CRC message is sent both to the screen
  516.           and to the standard output.
  517.  
  518.      q    Be quiet.  Normally Zoo lists the name of each file as it is
  519.           extracted.  The q modifier suppresses this.  (Error messages are
  520.           always shown.)  When used in combination with the p modifier, the
  521.           q modifier suppresses the filename header preceding each extracted
  522.           file's data.
  523.  
  524. Examples:
  525.  
  526.      "zoo x qmodem" extracts all files from the archive "qmodem.zoo",
  527.           listing on the screen the name of each file as it is extracted.
  528.  
  529.      "zoo xq qmodem" is equivalent to "zoo x qmodem" except that filenames
  530.           are not listed on the screen as files are extracted.
  531.  
  532.      "zoo x qmodem *.com *.00?" extracts all *.com and *.00? files from
  533.           "qmodem.zoo".
  534.  
  535.      "zoo xp zoo *.doc >zoo.txt" extracts all *.doc files from the archive
  536.           "zoo.zoo" and sends them, concatenated together and with each file
  537.           being preceded by a header identifying it, to the file "zoo.txt".
  538.  
  539.      "zoo xpq zoo *.doc >zoo.txt" does the same except that file data are
  540.           not preceded by an identifying header.
  541.  
  542.      "zoo xNd procomm" extracts all files, including deleted files, from the
  543.           archive "procomm.zoo" but the extracted data are discarded.  Any
  544.           CRC or other errors will be reported on the screen.  The absence
  545.           of any error message indicates with a high degree of confidence
  546.           that the archive is not corrupted.
  547.  
  548.  
  549. 2.   Listing Files in an Archive
  550.  
  551. Format:  ZOO {lv}[dfv] archive[.ZOO] [file] ...
  552.  
  553. Command characters:
  554.  
  555.      l    List filenames in archive.  A list of all filenames in the archive
  556.           is presented, including the date and time of each file, its origi-
  557.           nal size, its current size as stored in the archive, and the per-
  558.           centage size decrease due to compression (called CF or compression
  559.           factor).  If no filespec is supplied, all files in the archive are
  560.           shown except deleted files.  Optionally, deleted files may be
  561.           listed;  see the description of the d modifier.
  562.  
  563.           If a file would need to be extracted with a version of Zoo higher
  564.           than the current version, Zoo displays the minimum version number
  565.           needed.
  566.  
  567.           A summary line displays a count of files listed, the total of all
  568.           original sizes and current sizes, and a net compression factor.
  569.           The actual size of an archive is always somewhat greater than the
  570.           total of the current sizes of files in it because of the directory
  571.           information that is also kept in the archive.
  572.  
  573.      v    Verbose list.  Equivalent to l but also shows any comment attached
  574.           to each file.  Version 2.00 of Zoo is expected to allow the user
  575.           to specify that only the first n lines of each comment be shown.
  576.  
  577. Modifiers:
  578.  
  579.      d    List deleted files also.  Normally, only files that have not been
  580.           deleted are shown.  The d modifier gives a combined display inclu-
  581.           ding both deleted and not deleted files.  Deleted files are marked
  582.           in the normal listing with "DEL".  Giving the the d modifier at
  583.           least twice (e.g., "zoo ldd archive") displays only deleted files.
  584.  
  585.      f    Fast listing.  The listing gives a multicolumn display of only the
  586.           filenames, followed by a count of deleted files.  Overrrides the v
  587.           command and the v modifier and prevents any comments from being
  588.           listed.
  589.  
  590.      v    Verbose list.  Equivalent to the v command.
  591.  
  592. The d modifiers may be separately combined with the f and v modifiers.  If
  593. the f and v modifiers are used together, f overrrides v.
  594.  
  595.  
  596. 3.   Deleting Files in an Archive
  597.  
  598. Format:  ZOO D[Pq1] archive[.ZOO] file ...
  599.  
  600. Command character:
  601.  
  602.      D    Delete files.  The specified files are marked as being deleted.
  603.           The file remains in the archive, however, and may be listed and
  604.           extracted.  The file does not permanently disappear until the
  605.           archive is packed (see the P modifier below and the P command
  606.           elsewhere).  If there are multiple instances of the file in the
  607.           archive, all are deleted;  the 1 modifier will prevent this.
  608.  
  609. Modifiers:
  610.  
  611.      P    Pack archive.  After the delete command has taken effect, and if
  612.           at least one file was deleted, Zoo proceeds to pack the archive.
  613.           Packing the archive permanently removes all deleted files from the
  614.           archive.  The packed archive always appears in the current
  615.           disk/directory and the original unpacked archive is renamed to
  616.           have an extension of ".bak".  (To not keep the backup copy, use
  617.           the P command described elsewhere.)  See also the P modifier to
  618.           the a command.
  619.  
  620.           As a safety feature, if the user deletes all files in an archive,
  621.           no packing is done and the deleted files may be recovered with the
  622.           U command.  To delete an archive entirely, use DOS's "del" or
  623.           "erase" command.
  624.  
  625.      q    Be quiet.  As files are deleted, their names are normally listed
  626.           on the screen.  The q modifier suppresses this information.  Error
  627.           messages are always shown.
  628.  
  629.      1    One file only.  This option (the digit one, not the letter ell)
  630.           makes Zoo delete at most one file, regardless of how many file-
  631.           names match the supplied filespecs.  This option allows the user
  632.           to selectively delete only the first of multiple occurrences of
  633.           the same file.  See also the 1 modifier to the U (undelete)
  634.           command.
  635.  
  636.  
  637. 4.   Undeleting Files in an Archive
  638.  
  639. Format:  ZOO U[q1] archive[.ZOO] file ...
  640.  
  641. Command character:
  642.  
  643.      U    Undelete files.  The specified files are marked as being no longer
  644.           deleted.  If there are multiple instances of the same deleted
  645.           file, all are undeleted;  the 1 modifier will prevent this.
  646.  
  647. Modifiers:
  648.  
  649.      q    Be quiet.  As files are undeleted, their names normally are listed
  650.           on the screen.  The q modifier suppresses this information.  Error
  651.           messages are always shown.
  652.  
  653.      1    One file only.  This option (the digit one, not the letter ell)
  654.           makes Zoo undelete at most one file.  Regardless of how many files
  655.           match the filespec(s) supplied, Zoo stops after undeleting one.
  656.  
  657.           Every time a file is added to an archive, any (one) previous
  658.           archived file having the same name is marked deleted.  If the same
  659.           file is repeatedly added to an archive, multiple deleted instances
  660.           of the file appear in the archive.  Any one of these may be
  661.           selectively extracted by careful and patient successive use of the
  662.           1 option combined with the U (undelete) and D (delete) commands.
  663.  
  664.  
  665. 5.   Adjusting the Timestamp of an Archive
  666.  
  667. Format:  ZOO T[q] archive[.ZOO]
  668.  
  669. Command character:
  670.  
  671.      T    Zoo normally tries to always keep time and date stamp of archives
  672.           to be the same as that of the newest file in the archive.  The T
  673.           command allows this to be done manually at any time.  An
  674.           informative message is given.
  675.  
  676.           The T command is useful if you have downloaded an archive via
  677.           telecommunications and you want to fix its timestamp to reflect
  678.           the age of the newest file in the archive.
  679.  
  680. Modifier:
  681.  
  682.      q    The q modifier suppresses the informative message.
  683.  
  684.  
  685. 6.   Packing an Archive
  686.  
  687. Format:  ZOO P[EPq] archive[.ZOO]
  688.  
  689. Command character:
  690.  
  691.      P    When Zoo adds a file to an archive, any previous instance of that
  692.           file in the archive is marked as deleted but remains in the ar-
  693.           chive.  The P command packs an archive and permanently removes all
  694.           deleted files from it.  Unless the user specifies otherwise, the
  695.           original archive is renamed to have the extension ".bak" and
  696.           remains otherwise unchanged.  The packed archive always appears on
  697.           the current disk/directory.
  698.  
  699.           Files appearing in the packed archive will retain any attached
  700.           comments.
  701.  
  702.           Floppy disk users who pack an archive that takes up more than half
  703.           the disk space should keep the original archive on a disk differ-
  704.           ent from the current disk.  The packed copy of the archive will
  705.           appear on the current disk.
  706.  
  707.           Zoo archives can pick up garbage at the end because of Xmodem file
  708.           transfers or due to being stored on certain computer systems that
  709.           round up file size to a power of two.  The P command will truncate
  710.           such an archive to its proper size.
  711.  
  712.           If packing an archive would result in nothing being left in the
  713.           archive, the packing leaves the archive unchanged.
  714.  
  715. Modifiers:
  716.  
  717.      E    When an archive is packed, the original copy of the archive is
  718.           normally not deleted but simply renamed to have the extension
  719.           ".bak".  For example, packing "apple.zoo" will give a new packed
  720.           archive called "apple.zoo", and a backup copy "apple.bak" that is
  721.           identical to the original archive.  The user may specify deletion
  722.           of the backup copy with the E modifier.
  723.  
  724.      P    Normally, if Zoo finds that a backup copy of an archive already
  725.           exists, it will refuse to pack the archive again, for that would
  726.           mean losing the old backup copy.  The P forces Zoo to proceed with
  727.           packing and delete the old backup copy.  For example, suppose both
  728.           "london.zoo" and "london.bak" exist.  Zoo will give an error
  729.           message in response to the command "zoo P london";  however, it
  730.           will pack the archive if the command "zoo PP london" is given.
  731.  
  732. When packing is done, the packed archive is initially created as a temporary
  733. file called "{zoo}.@@@".  After successful packing, this temporary file is
  734. renamed to the name of the original archive while the original archive is
  735. renamed to have an extension of ".bak".  If archive packing is aborted for
  736. any reason, the temporary file "{zoo}.@@@" is left in the directory.  This
  737. file also appears if, after packing is completed, Zoo is unable to rename
  738. this file to the name of the original archive.
  739.  
  740.  
  741.                          DISK SPACE CONSIDERATIONS
  742.  
  743. When Zoo is adding files to an archive, it gives an error message and exits
  744. as soon as disk space is too low to add the next specified file.
  745.  
  746. When Zoo is extracting files from an archive, however, it attempts to go on
  747. as long as it can.  If a file being extracted would exceed the space avail-
  748. able on disk, Zoo gives an error message but goes on to attempt to extract
  749. the next matching file.  It aborts entirely only if the disk becomes
  750. completely full.
  751.  
  752. Archive packing requires enough disk space to create a new copy of the
  753. archive.  The archive to be packed may be kept on a disk other than the
  754. current disk.  The packed archive appears on the current disk.
  755.  
  756.  
  757.                         INTERRUPTING WITH CONTROL C
  758.  
  759. Zoo may be interrupted with control C at any time.
  760.  
  761. Aborting operation with control C should not result in any damaged files.
  762. Rapid repeated hitting of control C could potentially leave files in an
  763. inconsistent state, although it has not been observed to happen.  (If you
  764. hit control C once and Zoo doesn't seem to notice, it probably missed it;
  765. it should be safe to wait about five seconds and try again.)
  766.  
  767. Because of the way MS-DOS handles user interrupts, it was found necessary,
  768. to preserve archive integrity, that Zoo disable break status (shown and set
  769. by the DOS "break" command).  Zoo 1.03N does not restore break status to its
  770. original value when it exits;  version 2.00 is expected to do so.
  771.  
  772.  
  773.                                 EXIT STATUS
  774.  
  775. Zoo returns an exit status of 0 if no errors occurred, and 1 if an error
  776. occurred or if no files matched when listing an archive.  This exit status
  777. may be tested in a batch file using the DOS "if errorlevel 1 goto ..."
  778. statement or from an executing parent process using DOS system call 4D
  779. hexadecimal.
  780.  
  781.  
  782.                              ARCHIVE INTEGRITY
  783.  
  784. When Zoo adds a file to an archive, it is always appended to the end of the
  785. archive, so a system crash should not normally affect the integrity of the
  786. archive.  If Zoo is interrupted while adding a file to an archive, the added
  787. file may not show up as being in the archive but some or all of its data
  788. will have been appended to the archive.  The P (pack) command will restore
  789. the archive to its original size.
  790.  
  791. When Zoo appends a file to an archive and a previous instance of the same
  792. file exists in the archive, the previous instance is marked deleted.  This
  793. involves a direct (random) access write to the archive.  In theory, if there
  794. were a system crash while the disk hardware was writing an updated directory
  795. entry in an archive, damage to the archive could occur.  In practice, this
  796. is likely to be very rare.
  797.  
  798. It is recommended that backup copies be always kept of valuable archives.
  799.  
  800.  
  801.                 CONVERSION FROM OTHER FORMATS TO ZOO FORMAT
  802.  
  803. The batch program ATOZ.BAT can help you convert a subdirectory full of files
  804. in another format (such as *.LBR and *.ARC) to Zoo format.  See ATOZ.DOC for
  805. instructions.  Due to differences between the batch languages of DOS 3.x and
  806. DOS 2.x, Atoz 1.00 works only with DOS 2.x.
  807.  
  808.  
  809.                            VERSION COMPATIBILITY
  810.  
  811. Zoo 1.10 can add information to an archive in the form of attached comments
  812. that earlier versions of Zoo cannot interpret.  Earlier versions of Zoo will
  813. list and extract files from version 1.10 archives and delete and undelete
  814. files in them.  But to avoid any loss of information, earlier versions of
  815. Zoo will refuse to modify version 1.10 archives in any other way.  Instead,
  816. the following message will be given:  "Version 1.10 of Zoo is needed to
  817. fully manipulate this archive."
  818.  
  819.  
  820.                                 VERSION 2.00
  821.  
  822. Version 2.00, when released, is expected to have the following additional
  823. features:
  824.  
  825. 1.   Filename listings will be alphabetized.
  826.  
  827. 2.   Source code in (fairly) generic *NIX-compatible C will be available.
  828.  
  829. 3.   A listing of files in the archive will show the first N lines of the
  830.      comment for each file, N being specified by the user.
  831.  
  832. 4.   Multiple instances of the same file in an archive will be properly
  833.      handled, each being identified by a version number.
  834.  
  835. 5.   It will be possible to execute archived programs.  Zoo will directly
  836.      extract the program into memory and execute it rather than creating a
  837.      temporary file first.
  838.  
  839.  
  840.                               ACKNOWLEDGMENTS
  841.  
  842. Zoo uses a dynamic Lempel-Ziv-Welch data compression procedure adapted from
  843. assembly routines written by Tom Pfau.
  844.  
  845. Ball State University and its Department of Computer Science provided me
  846. with a working environment, software, and other support.
  847.  
  848.  
  849.                                   FEEDBACK
  850.  
  851. Bug reports and other feedback should be directed to me at these electronic
  852. mail addresses.
  853.  
  854. GEnie:              DHESI
  855. People/Link:        OLS806
  856. Arpanet/CSnet:      dhesi%bsu@csnet-relay.ARPA
  857. UUCP:               ...!seismo!csnet-relay.ARPA!bsu!dhesi
  858.  
  859. Telephone calls are not encouraged but if absolutely necessary, try
  860. (317) 285-8641 during working hours, Eastern Standard Time.
  861.