This file contains some answers to frequently asked questions about
PKZIP 2.x, and hints for most efficient use of the software.


Q:  Is PKZIP and PKUNZIP compatible with older versions?

A:  PKZIP and PKUNZIP are backward compatible. In other words, 
    PKUNZIP 2.x will uncompress .ZIP files created by older versions
    of PKZIP. However, if you do compress something with PKZIP 2.x,
    be aware that you will need PKUNZIP 2.x or later to extract it. 


Q:  I get "Warning, I don't know how to handle" when trying to
    extract files.

A:  Most likely you are using PKUNZIP 1.1 or an earlier version to
    attempt to extract a .ZIP file created by PKZIP 2.x or later.
    Make sure that you are using the latest version of PKUNZIP. Also
    be sure you do not have multiple copies of pkunzip in different
    directories on your machine. It may find and use an older version
    before it finds the newer version.


Q:  How do I make self-extracting files?

A:  This is a two step process. First create a .ZIP file normally
    with PKZIP, and then use ZIP2EXE to create a self extracting
    .EXE file. For example, if you have a .ZIP file called STUFF.ZIP
    and then entered:
   
      zip2exe stuff
     
    it would create STUFF.EXE which is a PKSFX self-extracting file.


Q:  I get "Bad command or File name" when I type in PKZIP or PKUNZIP.

A:  This is a DOS error message, and means that PKZIP/PKUNZIP is
    not in the current directory, or cannot be found by the DOS PATH
    variable. Consult your DOS manual for appropriate use of the PATH
    statement.


Q:  I get "Error in zip, use pkzipfix", when attempting to compress
    files.

A:  This may be the result of an incorrect command line. The name of
    the .ZIP file you are creating needs to be BEFORE the names of 
    the file you want to compress. For example, if you want to 
    compress FILE1 and FILE2 into STUFF.ZIP, use:
   
      pkzip stuff file1 file2
   
    and not:
   
      pkzip file1 file2 stuff


Q:  How can I use PKZIP to create full and incremental backups?

A:  When creating a full backup with PKZIP, use the -a+ option.
    This will turn off the file's archive bit after it is compressed.
    For example:

      C:\> pkzip a:fullback -&s -a+

    will backup the entire C: drive to a multi-disk .ZIP file called
    FULLBACK.ZIP on the A: drive.

    Then, whenever a file is updated or created by DOS, it will turn
    on the file's archive bit, indicating that the file has changed
    since it was last backed up. You may create an incremental backup 
    set with PKZIP by using the -i switch to only compress files    
    that have their archive bit set, and turn off the archive bit 
    after it is compressed. For example:

      C:\> pkzip a:incback1 -&s -i

    will backup all the files on drive C: that are new or have been
    modified since the last backup was performed.


Q:  What is an AV?

A:  The Authenticity Verification (i.e. AV) feature allows you to 
    create .ZIP files that PKUNZIP or PKSFX may test for authenticity
    while extracting. This provides for detection of tampered, 
    hacked, or virus infected files.


Q:  How do I use my AV?  Where is my AV?

A:  The first thing you need to do is fill out AUTHVERI.TXT included
    in the PKZIP distribution package with the necessary information
    and mail or FAX this to PKWARE. We will then process your
    information and send you back the information needed to use with
    the PUTAV to install your AV information. AV numbers are not the
    same as your serial number on the diskette.


Q:  I ran PUTAV.EXE on the new PKZIP but it did not work, Why?

A:  First of all, you need to make sure that you are using the
    PUTAV.EXE from the registered 2.x version. You can not use
    the PUTAV.EXE from 1.1, to try and install the AV numbers into
    version 2.x of PKZIP. The AV process has changed and you need to
    use the PUTAV.EXE from version 2.x. Also, PUTAV.EXE will not   
    work with the shareware version of PKZIP.EXE, you need to have   
    the registered PKZIP.EXE file.


Q:  I extracted a .ZIP file, but it didn't recreate the directory
    structure stored in the .ZIP file.

A:  First make sure the files were compressed using the -rp option
    in PKZIP. Furthermore, be sure you use the PKUNZIP option -d when
    extracting files. The -d option tells PKUNZIP to re-create stored 
    directories on extraction.


Q:  I lost the last diskette, or have errors on the last diskette
    in my backup set; or lost or have problems with one or more other
    diskettes in my backup set; or I hit Ctrl C and aborted PKZIP
    while I was creating the backup set. How can I recover the files
    that are still intact in the backup set?

A:  PKZIPFIX may be used to restore the .ZIP file index after
    the .ZIP files on each diskette have been concatenated into one
    .ZIP file. Starting with the lowest number backup diskette
    (normally disk #001, PKZIP places the volume label PKBACK# nnn
    onto each disk, where nnn is the disk number), copy this file
    to your hard disk (or network disk). For example, say the .ZIP
    filename for the backup set is BACK1.ZIP, on drive B:. Enter:

      copy b:back1.zip

    Then, insert each diskette in ascending numerical order and 
    enter:

      copy/b back1.zip+b:back1.zip

    After you have gone through the all the disks in the backup set,
    then use PKZIPFIX on this file by entering:

      pkzipfix back1

    This will create the file PKFIXED.ZIP which may then be extracted
    by PKUNZIP. Any files that were on missing or damaged diskettes
    will most likely have errors, but any files that were wholly
    contained on intact diskettes can conceivably be extracted. This
    procedure will also work on a subset of the backup set, if for
    example, you only wanted to recover the files on disks 10 through
    15.


Q:  When is it valid to use a '-' or '+' switch at the end of a
    option?

A:  With PKZIP and PKUNZIP certain options may be followed by a
    trailing - or + to modify the original option. The basic rule to
    follow in knowing whether a - or + will effect the original 
    option is, if the option may be modified in the PKWARE.INI file,
    then a - or + will effect it.

    Below is a list of some of the options that may be affected by a
    trailing '-' symbol. Consult your manual for more information
    about individual switches.

    OPTION           MEANING
    ------           -------
    -i-             Do not clear the archive attribute
    -k-             Override ZIPDATE=KEEP in pkware.ini
    -m-             Do not remove directories after compression
    -o-             Override ZIPDATE=LATEST in pkware.ini
    -p-             Override PATHS=ALL or PATHS=RECURSE
    -q-             Override ANSI=ENABLED
    -r-             Override RECURSE=ON
    -(-             Override SLOWMEMCPY=ON
    -&f-            Override FORMAT=ON
    -&l-            Override BACKUP=LOW
    -&s-            Override BACKUP=FULL
    -&u-            Override BACKUP=UNCONDITIONAL
    -&v-            Override BACKUP=VERIFY
    -&w-            Override BACKUP=WIPE
    -&-             Turns off all BACKUP= options

    Here is a list of some of the options that may be modified by a
    trailing '+' symbol.

    OPTION           MEANING
    ------           -------
    -a+             Clear archive attributes for files archived
    -3+             Override 386=DISABLED (also in PKUNZIP)
    -++             Override EMS=DISABLED (also in PKUNZIP)
    --+             Override XMS=DISABLED (also in PKUNZIP)
    -~+             Override NETWORK=DISABLED
    -)+             Override DPMI=DISABLED (also in PKUNZIP)


Q:  What is the difference between the PKZIP option -b and
    the PKTMP= environment variable?

A:  PKZIP creates two different types of temporary files, and allows
    you to specify the location of these two types separately. The 
    two situations where PKZIP creates temp files are:

      *  When a file is being compressed by PKZIP
      *  When an existing .ZIP file is being modified

    When PKZIP is in the process of compressing a file, it might
    need to create a temporary file to store information that does
    not fit in memory. PKZIP will create these temporary files
    in the directory pointed to by the PKTMP= environment variable,
    or in the current directory if this variable is not present.
    For example, the command:
   
      set pktmp=d:\
   
    will tell PKZIP to create these temporary files on the D:\ drive.
    In general, you may get the best performance from PKZIP by having
    PKTMP= point to a RAM disk or very fast disk on your system,   
    unless you are creating or updating a .ZIP file on a Novell   
    network drive (see the question regarding Netware support    
    earlier in this document).

    When PKZIP updates an existing .ZIP file, it creates a new
    temporary .ZIP file and copies files from the existing .ZIP file
    or (re)compresses files into this new file. If the PKZIP process
    were to be interrupted in any way, the original .ZIP file is   
    still intact.
   
    Once the new .ZIP file is created, PKZIP deletes the old .ZIP   
    file and renames the new temporary .ZIP file to the original   
    name. This, however, requires that at least twice the size of    
    the original .ZIP file be free on the drive where the .ZIP file 
    resides. If you had a 400K .ZIP file on a 720K diskette, you will 
    get an "insufficient disk space" error when trying to modify this
    .ZIP file, even if you only wanted to add one small file. The -b
    option tells PKZIP to create the new temporary on a drive 
    different from where the original .ZIP file is located, and then
    copy the new .ZIP file to the destination drive when done. For
    example:
   
      pkzip b:stuff *.bat -bc:
     
    Tells PKZIP to add the files *.BAT to the file B:STUFF.ZIP, and
    create the new temporary .ZIP file on drive C:. Using the -b
    option slows down PKZIP, but allows you to update .ZIP files that
    are larger than the available free space on a disk.


Q:  PKZIP/PKUNZIP 2.x have several options for DPMI, EMS, XMS, 386,
    NETWARE, etc. What are these things and why does PKZIP/PKUNZIP
    use them?

A:  DPMI stands for DOS Protected Mode Interface. It is a facility
    that allows standard DOS programs to execute code in 32-bit
    protected mode, and have access to protected mode resources in
    the computer. Protected mode code runs faster than corresponding
    real mode code. PKZIP/PKUNZIP use DPMI to execute some code in
    protected mode for better speed. With DPMI, PKZIP/PKUNZIP may   
    run up to 25% faster or more using 32-bit protected mode code   
    versus using 16-bit real mode code.

    EMS and XMS stand for Expanded Memory Specification and eXtended
    Memory Specification respectively. These are implemented using a
    memory manager on an 80386 or 80486 CPU, or using memory   
    management hardware on an 8088 or 80286 system. EMS and XMS   
    allows standard DOS programs to use memory outside of the 
    conventional 640K memory space. PKZIP/PKUNZIP will use this 
    memory in order to allow the software to run in less 
    conventional memory. This is most useful when shelling out of 
    other applications to run PKZIP or PKUNZIP and there is very 
    little conventional memory free.

    PKZIP and PKUNZIP support 80386 and 80486 CPU's and has special
    code that takes advantages of these chips. This code runs   
    fastest in protected mode with DPMI (see above). However, even
    when running in real mode PKZIP/PKUNZIP will use 32-bit code for
    better speed. Using 32-bit code can allow PKZIP/PKUNZIP to run
    up to 10% faster or more compared to executing 16-bit code.

    PKZIP also is Novell Netware aware. When creating or updating
    .ZIP files on a network drive, use of Novell functions may make
    PKZIP run several times faster than it would otherwise. To get
    maximum performance when creating or updating a .ZIP file on
    a network drive, make sure that the PKTMP= environment variable
    points to a drive on the same server as the .ZIP file; or if you
    do not have the PKTMP= environment variable set, that the current
    directory is on a drive that is in the same server as the .ZIP   
    file.


Q:  PKZIP says it detects certain versions of DPMI, EMS, or XMS that
    are different than the version numbers for my memory manager or
    driver. Why is this?

A:  There is a difference between the version number of a driver and
    the version of the DPMI/EMS/XMS specification that it supports.
    For example, QEMM version 6.02 supports version 3.00 of the XMS
    specification and version 4.00 of the EMS specification. QDPMI
    version 1.01 supports version 0.90 of the DPMI specification. The
    version of the specification supported affects what functions   
    that driver will support. PKZIP/PKUNZIP display the version of   
    the specification supported, not the version of the memory   
    manager or driver that provides this support.


Q:  PKZIP/PKUNZIP display different DPMI/EMS/XMS versions when in
    Windows than outside of Windows. Why is this?

A:  Windows provides its own support of DPMI, EMS and XMS, regardless
    of any memory managers or drivers loaded prior to running Windows.
    The specification versions supported by Windows may be different
    than those supported by memory managers or device drivers loaded
    prior to Windows, and hence PKZIP/PKUNZIP will display different
    specification versions inside of Windows than in DOS.

Q:  I've installed PKZIP 2.50 for DOS and my previously configured
    settings are no longer being used. Why?

A:  PKZIP for DOS version 2.50 uses a new initialization file for
    storing configuration settings. PKZIP 2.04g stored its 
    configuration settings in an initialization file named PKZIP.CFG.
    PKZIP 2.50 stores this same information in an initialization file
    named PKWARE.INI. This PKWARE.INI file stores settings for both
    PKZIP and PKUNZIP in separate sections. You may convert an 
    existing PKZIP 2.04g initialization file (i.e. PKZIP.CFG) into a
    PKZIP 2.50 compliant initialization file (i.e. PKWARE.INI) by 
    running the CNVCFG.BAT file. This CNVCFG.BAT file is included 
    with the PKZIP 2.50 for DOS file set and should be located in the
    installation directory. The CNVCFG.BAT file will analyze your 
    PKCFG.CFG file and automatically output a comparable PKWARE.INI
    file.
