 IMP 1.12  User's Manual                                       January 21, 2000

 Introduction
 
   IMP is a file archiver capable of compressing thousands of files into one
   archive at high speed and with a high compression ratio. Archives can be
   split across more than one volume on more than one drive. The error-recovery
   feature enables repair of archives damaged by corrupt disk media, which is
   not uncommon on floppy disks. Individual volumes of multiple volume archives
   can be repaired. IMP can also unzip files from ZIP archives created by
   PKZIP, WinZip or other ZIP programs.
   
   Please read the license agreement in LICENSE.DOC. Use of IMP indicates
   acceptance of the agreement.

   IMP is copyright (c) 1998-2000 Technelysium Pty Ltd. It is freeware, and
   may be distributed without limitation, provided that it is unmodified and
   includes this file and the file LICENSE.DOC that is included in the package
   distributed by Technelysium Pty Ltd. WinImp, the Windows GUI version of IMP,
   is shareware and requires registration after the trial period. Use of a
   graphical user interface with this command-line version of IMP for creation
   of IMP archives requires registration of WinImp.
   
 Contact Information
 
   Web Site: www.technelysium.com.au
             www.winimp.com
   E-mail: imp@technelysium.com.au
   Postal address:
     Technelysium Pty Ltd
     PO Box 247
     Helensvale Qld 4212
     Australia

 Installation
 
   Once the files in the self-extracting archive have been extracted to a
   directory, just add the directory to the PATH statement in your AUTOEXEC.BAT
   file. It may also be advisable to specify a directory for temporary files
   (see the description of the "-w" switch below).

 Memory Requirements
 
   IMP initially uses about 540kb of memory for the program and associated
   data. When creating an archive, an additional 13 bytes plus the filename
   length is required for each file added to the archive. When updating or
   freshening an archive (see the "u" and "f" commands below), the requirement
   is 21 bytes plus the filename length. Data is compressed in blocks of up to
   1000kb, and the memory requirement for compression is five times the block
   size for new archives and six times the block size for updating existing
   archives. Compression generally improves with larger block sizes. The
   default blocksize depends on the amount of physical memory installed in the
   computer:
   
     Memory (Megabytes)   Block size (kilobytes)   Memory use (kilobytes)
        16 or more                1000                     5000
          12-16                    800                     4000
           8-12                    600                     3000
           6-8                     400                     2000
       less than 6                 200                     1000

   Extraction requires little more memory that the block size for algorithm 1,
   and five times the block size for algorithm 2. An archive compressed with
   algorithm 1 can be extracted on computers equipped with less memory than the
   one used to create it. This is not necessarily the case for algorithm 2.

   As the archive is built, IMP also uses a small amount of memory to store the
   archive directory, and error recovery data if applicable. If this runs out,
   the remaining data will be stored in a temporary file, which will be deleted
   after the archive is completed. See the description of the "-w" switch to
   find out how to specify a directory where temporary files will be created.

 User Prompts
 
   You will be prompted if a file to be created already exists, or if an
   archive volume does not appear to be the correct one. The prompt will
   contain a list of allowed responses, and a case-insensitive single character
   answer is required. Possible responses are "y" for yes, "n" for no, "a" for
   all, "o" for none and "r" for rename. Answering "a" to a file overwrite
   prompt causes all files to be overwritten for the remainder of the
   operation. Answering "o" automatically prevents file overwriting, and "r"
   allows the file to be created under a new name instead of overwriting the
   existing one. Ctrl-C can be pressed at any time to abort the operation and
   terminate the program. 

 Command-line Syntax
 
   IMP [command] [-<switches...>] <archive name> [@listfile] [files...]
   
   The command is the first argument not preceded by a "-" or a "@". The "a"
   command can be omitted as long as the archive name is not the same as a
   valid command (see the list of commands below).
   
   Switches must be preceded by a dash. Several switches can be grouped
   together after one dash, but note that some switches (eg. "-i") can be
   followed by string parameters and therefore must be the last in a group, and
   some switches can be followed by an optional parameter and therefore cannot
   be followed by certain switches (eg. "-cu500" will not set the block size to
   500kb).

   The first filename must be the archive name. For the "a", "f", and "u"
   commands, subsequent filenames specify files to read from disk, and for the
   "c", "d", "e", "l", and "v" commands they specify files to search the
   archive for. These filenames may contain the wildcards "*" and "?". If the
   name is a directory name ending in a slash, it selects all files in that
   directory. Filenames containing spaces must be enclosed in quotes. If no
   filenames are supplied, the default is all files, except when using the "d"
   command. All files matching the names specified are referred to as "matching
   files" for the remainder of this document.

   A file containing a list of names can be specified using the "@" character
   (without a dash) followed by the name of the list file, which must contain
   one filename per line. Do not use quotes in these filenames as they are not
   necessary, even if the names contain spaces.
   
 Configuration File
 
   Default switches can be supplied in a file named "imp.cfg" in the same
   directory as the IMP executable file. Each line in the file must specify
   which command the switches will apply to, followed by an "=" sign and the
   switches themselves. The commands are specified using the following
   keywords:
   
     GlobalOptions
     AddOptions
     RebuildOptions
     CommentOptions
     DeleteOptions
     ExtractOptions
     FreshenOptions
     ListOptions
     UpdateOptions
     RepairOptions
     
   Switches after the "GlobalOptions" keyword apply to all commands. Examples:
     
     GlobalOptions=-g -wC:\TEMP
     AddOptions=-u500 -s1

 Commands
 
   a  Add files
   
     If the archive does not exist, it will be created. All matching files will
     be added, replacing any files of the same name that already existed in the
     archive.
     
   b  Rebuild archive
   
     Builds a valid archive out of one that is damaged. Undamaged files are
     copied to the new archive, and if the archive directory is damaged,
     missing entries are rebuilt from information stored locally with each
     file, however the dates and attributes will be lost. To rebuild a
     multiple-volume archive, it must first be joined into a single-volume
     archive.
     
   c  Comment archive and/or files
   
     The default action enables you to edit the comments for all matching
     files. If you specify the -i switch, only the archive comment will be
     edited. Specify -ci to edit both individual file comments and the archive
     comment.
     
   d  Delete files
   
     Delete all matching files from the archive.
     
   e  Extract files
   
     Extract all matching files from the archive. Stored path names will be
     created unless you use the -r- switch. The destination is the current
     directory unless the -o switch is used. If a file already exists, you will
     be given the option to overwrite it or rename the extracted file. Use the
     -y switch to overwrite all files. The -yr switch is required to overwrite
     all read-only files. The extract command can also be used to unzip ZIP
     files. The .zip extension must be included if an IMP file of the same name
     exists. Note: encyrpted ZIP files are not yet supported.
     
   f  Freshen files
   
     Existing files in the archive will be replaced if a newer version is
     among those specified on the command line. Files that do not exist in the
     archive will not be added.
     
   g  Enter registration details after registering IMP.

   j  Join archive
   
     Joins the volumes in a multiple-volume archive together into a single
     file. The joined archive will be created in the current directory, which
     must be different to the existing archive's directory. This function can
     join corrupted multiple-volume archives, creating a single archive which
     can be rebuilt with the "r" command.
     
   l  List archive contents
   
     List the size, creation and modification dates, attributes and file name
     for all matching files in the archive. See the description of the -s
     switch for obtaining sorted output.
     
   r  Add, delete or use error recovery data

     The default action is to use the error recovery data (if present) to
     repair as much archive damage as possible, and save the repaired archive
     as "recover.imp". The number of damaged sectors found and the number
     repaired will be displayed. The -e switch adds error recovery data to an
     existing archive, and the -d switch removes the error recovery data. See
     the description of the -e switch below for more details on error recovery.
     If the archive spans multiple volumes, individual volumes will be repaired
     and you will prompted to insert a new disk and specify a path. Otherwise,
     a new archive "recover.imp" will be created, and if it already exists you
     will be asked whether to overwrite it or choose a new name.

   t  Test archive
   
     Tests the integrity of all files in the archive.
     
   u  Update archive
   
     Same as Freshen, except that files that do not exist in the archive will
     be added.

   v  List archive contents verbosely
   
     The name, comment, creation and modification dates, attributes, host OS
     and unit number is listed for all files matching the names given on the
     command line.
     
 Switches
 
   -0  Store without compression
   
     All files are stored as is, without any compression. This is fast, and is
     useful for files that are already compressed, eg. archives and some image
     formats.
   
   -1  Algorithm 1
   
     Uses algorithm 1 for compression. This gives very good compression for a
     wide range of files and is the default algorithm. This switch is only
     required if -2 is specified in the configuration file.
     
   -2  Algorithm 2
   
     Uses algorithm 2 for compression. This gives excellent compression for
     documents and some bitmap images. It may also give better compression
     for other types of files, so if you regularly compress a particular type
     if file it may be worth trying this algorithm on it. Note: some files
     containing large blocks of data repeated one or more times are compressed
     slowly using this algorithm. IMP will switch to the other algorithm if
     this occurs. It does not normally occur for documents.
     
   -a  Select required attributes for file to be added or updated.
 
     One or more of the following file attributes must be specified:
     
     a Archive
     h Hidden
     r Read-only
     s System
     
     If an attribute is followed by a "1", only files with that attribute will
     be added. If followed by a "0", files with that attribute will not be
     added. If no digit is present, a "1" will be assumed. Examples:
     
     -aa1h0  Only add files with archive bit set and exclude hidden files
     -ar     Only add read-only files
     
   -b0  Clear archive bit

     Clears the archive bit of files added to an archive, or extracted from an
     archive. The archive bit flags files which are new or have been modified.
     Clearing it enables you, at a later date, to identify files which have
     been modified since the last backup. You can then use the -aa switch to
     add only these files to the archive.
     
   -b1  Set archive bit
   
     Same as -b0, but sets the archive bit instead of clearing it.
     
   -c  Comment new files
   -cu Comment new and updated files
   -ca Comment all files
   
     For each file, you will be prompted for a single-line comment of up to 78
     characters. Comments will be displayed when listing the archive directory
     or extacting files. Note: for the "c" command, the above three switches
     are equivalent.
     
   -d  Delete files after adding/delete error recovery data
     
     For the add, update or freshen commands, this switch will cause all files
     successfully added to the archive to be deleted after the archive is
     closed and tested. For the recover command, this switch removes the error
     recovery data from the archive.
     
   -e  Add error recovery information
     
     This is designed to enable repair of archives slightly damaged by faulty
     media, usually floppy disks, but hard disks can occasionally suffer damage
     as well. If the archive is 30kb or larger, the error recovery data will be
     less that 2.06% of the archive size. For very large archives it approaches
     0.4%. The maximum number of damaged sectors recoverable is the archive
     size divided by 40960, rounded to the nearest whole number greater than
     zero, and limited to 128 sectors.
     
   -f  Freshen existing files on extraction

     Each file will only be extracted if a file of the same name with an earlier
     date exists on the disk.
     
   -g  No progress monitor
   
     Do not display the percentage progress of archive creation and updating
     operations.

   -i  Specify archive comment
   
     You will be prompted to enter a multi-line comment for the archive. Entry
     will finish when two blank lines are entered, or the comment size exceeds
     4096 bytes. You can specify a file from which to read the comment by
     typing its name after the switch, for example:
     
       -icomment.txt   read archive comment from file "comment.txt"
       
   -l  Create a list of filenames found
   
     All files to be added, deleted or extracted will be listed either to the
     screen or to a file if a name is specified immediately after the switch
     (with no preceeding space). This will be done instead of the actual
     adding, deleting or extracting of files, and the archive will not be
     modified in any way. An archive name must be supplied, but if it does not
     exist, it will not be created.
     
   -m<1/2/3>  Method 1,2,3

     Set the compression level for algorithm 1. Level 1 is the fastest, 3 gives
     the best compression. The default is 2. This switch has no effect on
     algorithm 2.
     
   -mm Multimedia filter
   
     Applies to algorithm 1 only. Enables the multimedia filter which improves
     compression of some audio (eg. WAV) files and uncompressed images (eg.
     Windows bitmap files). It may also improve compression of other file
     types, for example some executable files.

   -n  New files only
   
     If adding files to an archive, only add files that do not exist in the
     archive.
     
   -o  Specify output path
   
     For archive creation or updating, specifies the directory within the
     archive where files will be stored. For extraction, specify the
     destination directory to which files will be extracted (this can include
     a drive specifier). Example:
     
       imp -odocuments backup *.txt
       
     adds all files ending in ".txt" to "documents" directory in archive
     "backup.imp".
     
   -p  Store or create paths recursed into
   -pl Store relative path
   -pf Store full path

     The default action during archive creation and updating is to store the
     path of files from directories recursed into, relative to the specified
     path. The -p- switch strips the path information. The -pl switch includes
     the path specified on the command line, for example:

       imp -pl backup src\*.c   stores the files in a directory named "src"
                         
     If the path contains a relative path specifier, eg. "." or "..", the
     stored path will begin after it, for example:
     
       imp -pl backup src\.\dos\*.c   stores the files in "dos", not "src\dos"
       
     Becuase a single dot means "current directory", it does not affect the
     meaning of the directory path. The -pf switch stores the full path
     (excluding the drive specifier and leading backslash) of each file.
     
     During extraction, the stored directory structure will be recreated unless
     the -p- switch is used, which causes all files to be extracted to the same
     directory. The -p switch is not necessary except to override the
     configuration file.

   -pt<path> Truncate path

     When adding files to an archive, the path component matching the path
     specified in <path> will be truncated from the beginning of the stored
     directory path. If the -pf or -pl switch is used, it will be applied
     before the path is truncated. When extracting, <path> will be truncated
     from each file's stored directory path before the file is created. For
     example, the following commands store the files in "1999\accounts", and
     then remove "1999\" before extraction:
     
       imp -pl -ptdocuments backup \documents\1999\accounts\*.*
       imp e -pt1999 backup
     
   -q  Query on each file
   
     Prompt before adding, deleting or extracting each file. This enables you
     to select files individually.
     
   -r  Recurse subdirectories
   -rw Only recurse wildcards

     When adding and updating files to an archive, search all subdirectories
     of every directory from which files are taken. Unless the -rw switch is
     used, recursion works for names of individual files as well as wild-cards.
     Recursion in not enabled by default.
     
     When extracting, commenting, or listing files, recursion is on by default.
     If a filename is specified without a path, all directories within the
     archive are searched unless recursion is turned off using the -r- switch.
     
   -s  Set solid unit size/set sorting options
   
     IMP combines files into a unit and compresses them as a one continuous
     block of data to improve compression. The larger the unit size, the better
     the compression, but the catch is that to extract a single file, on
     average, half the unit must be extracted first, depending on the location
     of the file in the unit. So if speed of extraction of individual files is
     very important, use a small unit size. Another drawback is that if a
     compressed unit is damaged (usually caused by a corrupt floppy disk), then
     all files after the point of damage will probably be lost. This can be
     countered by adding error recovery data (see the -e switch). The -s switch
     must be followed by a digit 0-4 or a specific unit size. The pre-defined
     unit sizes are:
     
       0  Compress files individually
       1  64kb unit size
       2  256kb unit size
       3  4Mb unit size
       4  16Mb unit size
       
     Specific unit sizes can be followed by "k" to indicate kilobytes
     (1024 bytes).
     
     For the "l" or "v" listing commands, the -s switch causes the output to
     be sorted according to an optional sort-by parameter:
     
       -sn  sort by name
       -se  sort by extension, then by name
       -sd  sort by date of last modification
       -ss  sort by size
       
     The "r" parameter before or after the sort-by parameter reverses the
     direction of sorting. Sorting by name is assumed if no sort-by parameter
     is given.
     
   -t  On or after date/time
   
     Only add, delete, extract, comment or list files dated at or later than the
     specified date and time. The date must be in the form YYMMDD, optionally
     followed by a 24-hour time in the form HHMMSS. Example:
     
       -t9802012030  Add files dated on or after 8:30pm, February 1, 1998
       
     If the date and time is omitted, 0:00 (12am) on today's date is assumed.
       
   -tb Before date/time

     Same as -t, except file date and time must be earlier than that specified.
     
   -ts Set archive time stamp
   
     Set the modification time of the archive to that of the most recently
     modified file in the archive.

   -u  Specify block size for compression
   
     The compression algorithms used in IMP deal with blocks of data, giving
     better compression from larger blocks. The -u switch must be followed by
     a number indicating the block size in kilobytes, between 100kb and 1000kb
     (do not put a 'k' after the size). The memory requirement for compression
     is five times the block size for archive creation, or six times the block
     size for updating existing archives.
     
   -v  Multiple volume options
   
     If the destination disk runs out of space during archive creation, you
     will be asked if you want the archive to be split into multiple volumes
     (note: do not swap disks before prompted to do so). The -v switch
     effectively answers "yes" to this question and you will automatically be
     prompted for a second disk. The -v- switch disables multiple volumes and
     if the disk becomes full, an error occurs. The volume size can be
     set by supplying a number after the -v switch, optionally followed by a
     "k" to signify kilobytes (1024 bytes). If the disk is full, or a volume
     size has been set and there is insufficient room for the next volume, you
     will be asked to insert a new disk and either press enter to continue, or
     type 'p' to specify a new path for the volume, which can be on a different
     drive. You can even split an archive across two or more hard drives.
     
   -vp Always prompt for next volume
   
     During archive creation, you will always be prompted before creating the
     next volume even if there is enough room for it on the current destination
     disk. A dash after the "p" turns off prompting, so if the disk is full the
     operation will fail. During extraction, you will be prompted for the next
     volume if IMP cannot find it in the current directory. You can use the -vp
     switch to force prompting for the next volume, or the -vp- switch to
     prevent prompting, which will cause the operation to fail if a volume
     cannot be found.
     
   -vs Start at volume
   
     During extraction or listing, this switch specifies the volume number at
     which to begin the operation. The switch must be followed by the volume
     number to start at. Any files belonging to a unit which starts in a
     previous volume will be excluded. Note that since all files in an archive
     can belong to a single unit, it is possible for all files to be excluded
     by specifying volume 2.

   -w  Specify working directory
   
     IMP stores temporary data in the working directory during creation and
     updating of archives. Also, modification of existing archives is achieved
     by creating a new archive under a temporary name, then deleting the old
     archive and renaming the new one. If the archive is on a removeable disk
     of size 2.88Mb or less, the new archive will be created in the working
     directory and copied to the disk when complete. If your C:\AUTOEXEC.BAT
     file contains a path setting for the "IMPTMP","TEMP", or "TMP" environment
     variable, the working directory will be set to that path. Otherwise, it
     is set to "C:\". Use the -w switch followed by a path to use a different
     working directory.
     
   -wu Use working directory
   
     Forces the temporary archive to be created in the working directory
     instead of the archive's directory. Note that the working directory cannot
     be called "u" because of this switch.
     
   -x  Exclude files
   -x@ Exclude list of files
   
     All files matching the name specified afer the switch will be excluded
     from being added, updated, deleted, extracted, listed or commented. Wild-
     cards are allowed. If adding files to the archive, and the exclude
     filename contains a path, it must match the path of the filenames to add,
     for example:
     
       imp test -xc:\documents\document1.doc c:\documents\*.doc   correct
       imp test -x\documents\document1.doc c:\documents\*.doc     will not work
     
     If you use the -pf switch, the path must be the full path. If no path is
     supplied, the filename can match files from any path. If an exclusion
     specification matches the name of a subdirectory, that directory and all
     of its subdirectories will be excluded.
     
     You can specify a "@" and a filename to supply a file of names, containing
     one name per line. Do not use quotes in these names as they are not
     necessary, even if the names contain spaces. Example:
     
       imp -x@exclude.lst -r backup c:\*    excludes all files in "exclude.lst"
     
   -y  Answer Yes to questions
   
     On extraction, overwrites existing non-read-only files without query. Use
     -yr to overwrite read-only files. When adding or updating files to an
     archive and the -d (delete) switch is specified, the -yr switch causes
     read-only files to be deleted without prompting. The -y switch also causes
     overwriting of an exisiting file specifed with the -l switch, and any
     existing archive volumes when creating a multiple volume archive.

 Return Codes
 
    0  Success
    1  A warning was issued
    2  User error eg. invalid switch
    3  No files found to add/update/extract/delete
    4  A newer version of IMP is required
    5  The archive is damaged
    6  Unknown archive format
    7  Cannot open the archive
    8  Out of memory
    9  Disk full
   10  A disk read/write error occurred
   11  User break

 Error Messages
 
   #1  Out of memory.
   
     Not enough memory to complete the operation. If compressing, try setting
     a smaller block size using the -u switch.
   
   #2  Unknown switch <switch>
   
     The switch is not defined. See above for a list of valid switches and a
     description of their use.
   
   #3  Cannot use switch <switch> with command <command>
   
     The switch is not defined for the specified command, but is valid for
     other commands. See the list of switches above.
   
   #4  Wrong parameter <switch parameter>
   
     The parameter is not correct for the switch preceding it. See the
     description of the switch for valid parameters.
   
   #5  Invalid date <date string>
   
     The date format is incorrect. See the description of the -t switch above.
   
   #6  More than one list file not supported.
     
     Only one list of files to add, update, freshen, extract, delete, list,
     comment or test may be supplied.
   
   #7  List file <filename> exceeds 1Mb
   
     The list of files is limited to 1 Megabyte.
   
   #8  No archive name specified.
   
     An archive name must be supplied, even if it is a dummy name used with the
     -l switch to list files that would be added to the archive.

   #9  Too many arguments.
   
     No other filenames other than the archive name may be specified for the
     b, k, r and t commands, and the c command if not editing file comments.
   
   #10 Cannot open <filename>
   
   #11 Cannot create <filename>
   
   #12 Insufficient disk space to create an archive.
   
     More than 50 bytes are required to created an archive.
   
   #13 Cannot create temporary file in <path>
   
     Cannot create a temporary file for the new archive when modifying an
     existing archive.
   
   #14 Cannot create swap file. Using memory instead.
   
     Cannot create a file for temporary data during archive procesing. The data
     will be stored in memory instead, if there is room.
   
   #15 Cannot read <filename>
   
   #16 Cannot read swap file.
   
   #17 Cannot write <filename>
   
   #18 Cannot write swap file.
   
   #19 Cannot write swap file. Using memory instead.
   
   #20 Seek error on <filename>
   
     Cannot change the file's read-source/write-destination pointer.
   
   #21 Seek error on swap file.
   
   #22 Cannot create directory <path>
   
   #23 Cannot delete <filename>
   
   #24 Cannot rename <filename>
   
   #25 Cannot delete original archive. Updated archive saved as <filename>
   
     The original archive must be deleted before the updated version's
     temporary name can be changed to the archive's name. If deletion fails,
     the updated version retains the temporary name.
   
   #26 Cannot rename updated archive. It is saved as <filename>
   
     The updated archive's temporary name could not be changed to the archive
     name.
   
   #27 Cannot get modification date of <filename>
   
   #28 Cannot set modification date of <filename>
   
   #29 Cannot set attributes of <filename>
   
   #30 Cannot get full path name for <filename>
   
   #31 Cannot close <filename>
   
     Could not close a file after writing. This may mean there was an error
     writing cached data before closing.
   
   #32 File <filename> is not an IMP archive, or is corrupted.
   
     The file is not recognisable as an IMP archive. If it is an IMP archive,
     it may have been damaged by a corrupt disk or error in transmission.
   
   #33 File <filename> is not an IMP or ZIP archive, or is corrupted.
   
     Same as for #32, except this error occurs on extraction, and therefore
     includes ZIP archives.
   
   #34 Archive directory is damaged.

     Same as #35, except this indicates that the directory of files in the
     archive is damaged.
     
   #35 Archive data is damaged.
   
     The archive has been damaged, probably by a corrupt disk or transmission
     error. Use the b command, or r command if possible, to recover files from
     the archive.

   #36 Unexpected end of file in <filename>
   
     More data is expected. Probably caused by corrupt disk or error in
     transmission.
     
   #37 File fails error check.
   
     An extracted file fails an error check. See #35.
     
   #38 Archive <filename> contains no error recovery data.
   
   #39 Cannot find error recovery data. It may be damaged.
   
     The archive header indicates error recovery data is present, but it cannot
     be found. This error also occurs if the header is corrupt and the archive
     does not contain error recovery data.
   
   #40 Error recovery data damaged. Archive is not repairable.
   
     The archive is not repairable if the error recovery data itself is
     damaged. You can use the b command to build a valid archive containing
     any undamaged files in the damaged archive.
   
   #41 This archive requires IMP version <number> or higher.
   
     A later version of IMP is required to work with this archive.
   
   #42 Cannot extract <filename> - PKZIP format version greater than 2.0.
   
     Currently, all versions of PKZIP greater than 2.0 create archives in
     2.0 format. This error will occur if a new format version is introduced.
     It could also occur if the zipfile directory entry is corrupt.
   
   #43 Cannot extract <filename> - Shrink and Reduce not supported.
   
     The Shrink and Reduce methods used by older versions of PKZIP are not
     supported in this version of IMP.
   
   #44 Cannot extract <filename> - ZIP decryption not supported.
   
     Decryption of ZIP files will be supported in a later version of IMP.
   
   #45 Name too long: <filename>
   
     Filenames must not exceed 259 characters.
   
   #46 Path too long: <path>
   
     Path names must not exceed 259 characters.
   
   #47 <filename> exceeds 2Gb-284 size limit - skipping.
   
     The maximum file size supported by IMP is 2 Gigabytes minus 284
     (2,147,483,364) bytes.
   
   #48 Archive size limit of 2Gb-1 exceeded.
   
     The maximum archive size is 2 Gigabytes minus 1 byte
     (2,147,483,647 bytes).
   
   #51 Modification of multiple volume archives not supported in this version.
   
   #52 Rebuilding of multiple volume archives not supported in this version.
   
   #53 Limit of 999 volumes exceeded.
   
   #54 Destination (current) directory same as source directory.
   
     When joining a multi-volume archive into a single volume, the archive must
     not be in the current directory, which is where the single-volume archive
     will be created.

   #55 Deciphering not supported in this version of IMP.
   
     The archive was enciphered by an earlier version of IMP, and it cannot be
     deciphered.
     
   #56 Switch "-s" requires a parameter 0-4 or unit size

 Warning Message

   #100 Cannot add more than one file named <filename>
   
     A file of the same name has already been selected for adding to a
     particular directory in the archive. For example, if you turn on
     subdirectory recursion with the -r switch but prevent the storage of paths
     using the -p- switch, and there is a file in a subdirectory with the same
     name as one in the current directory, the file in the subdirectory will
     not be added, and you will get this warning.
     
 Acknowledgements

   Algorithm 1 is based on the LZ77 algorithm invented by J. Ziv and A. Lempel.
   Algorithm 2 is based on the Burrows-Wheeler Transform compresssion method
     developed by Mike Burrows and David Wheeler.
