home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / virus / zzap54a.lzh / ZZAP.DOC < prev    next >
Text File  |  1990-03-11  |  46KB  |  1,387 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.                    █████████   █████████      ███      ███████   
  25.                     ░░░░░██░░   ░░░░░██░░    ██░██░    ██░░░░██░ 
  26.                         ██░░        ██░░    ██░  ██░   ██░    ██░
  27.                        ██░░        ██░░    ██░    ██░  ██░   ██░░
  28.                       ██░░        ██░░     █████████░  ███████░░ 
  29.                      ██░░        ██░░      ██░░░░░██░  ██░░░░░░  
  30.                     ██░░        ██░░       ██░    ██░  ██░       
  31.                    █████████   █████████   ██░    ██░  ██░       
  32.                     ░░░░░░░░░   ░░░░░░░░░   ░░     ░░   ░░       
  33.  
  34.                                      Version 5.4
  35.  
  36.  
  37.                               ZIP/ZOO/ARC/PAK Converter
  38.                                      (And More!)
  39.  
  40.                                  Copyright (c) 1989
  41.                                Ross Neilson Wentworth
  42.                                  All Rights Reserved
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.                                   ZZAP Version 5.3
  50.                      Copyright (c)1989,90 Ross Neilson Wentworth
  51.                                  All Rights Reserved
  52.  
  53.  
  54.           =================================================================
  55.           License Agreement
  56.           =================================================================
  57.           ZZAP(tm) is copyright (c)1989 Ross Neilson Wentworth.  All rights
  58.           reserved.  You may use this program freely so long as it is in a
  59.           noncommerical environment.  Usage in a commercial environment
  60.           requires a payment of $20.00 per computer it will be used on.  A
  61.           commerical environment includes, but is not limited to, the
  62.           following:
  63.  
  64.               o  Usage by any for-profit organization.
  65.               o  Usage by any government agency, local, state, or federal.
  66.               o  Used as part of a company product support BBS (making this
  67.                  program available for downloading without charge is not
  68.                  construed as commerical use).
  69.               o  Used as part of a limited access, pay for membership, BBS
  70.                  system.
  71.                  Permission may be granted if the access fee is soley for
  72.                  BBS upkeep.  Contact me for verification.
  73.  
  74.           You may use this program freely so long as:
  75.  
  76.               o  It is for personal use only.   or -
  77.               o  It is used as part of a public access BBS system that is
  78.                  available without subscription fees.  or -
  79.               o  It is used by a non-profit organization.
  80.  
  81.           You may not sell this software under any circumstance without
  82.           prior written approval.
  83.  
  84.           Send all license fees or donations to:
  85.  
  86.                          Ross Neilson Wentworth
  87.                          1422 Elkgrove Circle, #3
  88.                          Venice, CA  90291
  89.                          (213)399-1244
  90.  
  91.           The latest version of ZZAP can be found on West Los Angeles BBS,
  92.           (213)838-9229 or by sending $10 to the above address.  The $20
  93.           fee mentioned above includes one free update.  Please let me know
  94.           what version you currently have.
  95.  
  96.           Even if you do not wish to register I would appreciate hearing
  97.           from you.  A simple postcard listing your likes, dislikes,
  98.           suggestions, and the version number is all that I ask.
  99.  
  100.           The terms "arc", "archive", "unarc", etc. are used throughout
  101.           this document.  They are considered generic terms for all
  102.           archiving types and formats.  Any declaration that any of these
  103.  
  104.  
  105.  
  106.           ZZAP                                                       Page 2
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.           terms are proprietary will be construed as a ridiculous statement
  114.           and be properly ignored.
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.           ZZAP                                                       Page 3
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.           =================================================================
  178.           FEATURES
  179.           =================================================================
  180.  
  181.               o  Automated conversion between the most common archive types
  182.                  (ARC, DWC, ICE, LBR, LZH, MD, PAK, SDN, ZIP, and ZOO).
  183.  
  184.               o  Automatically converts nested archives including nested
  185.                  archives of different types.  A switch is provided to
  186.                  disable this feature.
  187.  
  188.               o  Optionally convert archives in multiple subdirectories
  189.                  (subdirectory recursion).
  190.  
  191.               o  Accepts wildcard designations and multiple file names on
  192.                  the command line.
  193.  
  194.               o  Repack archives to same type.
  195.  
  196.               o  Renames or moves corrupted archive for later examination.
  197.  
  198.               o  User defined arcing and unarcing options.
  199.  
  200.               o  Can be run unattended during an "event".
  201.  
  202.               o  Deletes old archives by default, options to keep them.
  203.  
  204.               o  Optional logging of ZZAP activities to a text file.
  205.  
  206.               o  Optionally create a text file listing the archives
  207.                  converted, suitable for use by filter programs to update
  208.                  the file list as used by BBS programs.
  209.  
  210.               o  Flag archives containing files with Hidden, System, or
  211.                  ReadOnly attributes as "bad".
  212.  
  213.               o  Optionally strip Hidden, System, and ReadOnly attributes
  214.                  from files.
  215.  
  216.               o  Can automatically check an archive for viruses using the
  217.                  virus scanning program SCAN.EXE (version 39 or later) from
  218.                  McAfee Associates.
  219.  
  220.               o  Can take advantage of expanded memory (LIM 4.0 driver
  221.                  required) or extended memory (XMS driver required) to
  222.                  reduce the memory overhead while executing the archiving
  223.                  programs.
  224.  
  225.               o  Configurable for additional archiving programs.
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.           ZZAP                                                       Page 4
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.           =================================================================
  242.           DESCRIPTION
  243.           =================================================================
  244.           Currently, there are a multitude of mostly incompatible archiving
  245.           utilities available.  While a standard would be beneficial to the
  246.           BBS community, it's not likely to occur in the near future.
  247.  
  248.           To help cope with the different formats and to make conversion
  249.           from one to another easy I wrote ZZAP.  It allows conversion from
  250.           one format to another, quickly and painlessly.  ZZAP doesn't
  251.           actually do any conversion on its own.  Rather, it acts as a
  252.           shell around the archivers - automating the process.
  253.  
  254.           The archive programs and version numbers tested under are:
  255.  
  256.                DWC A4.95
  257.                ICE 1.14
  258.                LHARC 1.13
  259.                LUE 2.20 (extraction only)
  260.                MD (unknown version number - tested by user)
  261.                PAK 2.0
  262.                PKPAK/PKUNPAK 3.61 (a.k.a. PKARC/PKXARC)
  263.                PKZIP/PKUNZIP 1.02
  264.                ZOO 2.01
  265.  
  266.           Other formats should work if properly configured but there is no
  267.           guarantee.  If you run across an archiving program that does not
  268.           work under ZZAP I would like to hear about it so I can make the
  269.           necessary modifications.
  270.  
  271.           The archiving program GSARC 1.0 from NoGate Consulting can not be
  272.           used with ZZAP as it always forces the archive extension to ARC.
  273.           ZZAP uses the temporary extension Z!Z so that the original
  274.           archive is not overwritten until a repack is completed (when
  275.           converting an archive to the same type).  To reduce code
  276.           complexity I always use the temporary extension, regardless if
  277.           the program is repacking or converting.
  278.           =================================================================
  279.           CONFIGURATION FILE
  280.           =================================================================
  281.           ZZAP relies on a configuration file (ZZAP.CFG) to know how to arc
  282.           and unarc.  There are nine different commands allowed in the
  283.           configuration file, three of them are required (ARC=, UNARC=, and
  284.           DEFAULT=) and the rest are optional (LOG=, BADDIR=, SWITCH=,
  285.           FIXER=, FIXOPT=, and SCANOPT=).  The order of the commands are
  286.           unimportant.
  287.  
  288.           Each command is on its own line.  Placing multiple commands on a
  289.           single line will result in improper operation.  A configuration
  290.           file is included with this package that may be uses "as-is" or
  291.           may be modified for your personal preferences.
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.           ZZAP                                                       Page 5
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.           ARC=
  306.           ====
  307.           ARC= defines the command used to archive.  This command can
  308.           appear as many times as required to define all of the various
  309.           archive types you may use.  The syntax for this command is:
  310.  
  311.                     ARC=EXT PROGNAME OPTIONS
  312.  
  313.           EXT represents the filename extension used by this particular
  314.           archiver, PKZIP, for example, uses ZIP.  Do NOT include a leading
  315.           period.
  316.  
  317.           PROGNAME is the name of the actual archiving program.  If the
  318.           filename extension is not given the a search will be made for
  319.           both COM and EXE.  Including the extension will improve the
  320.           performance of ZZAP.
  321.  
  322.           OPTIONS is the command line options used to create an archive.
  323.           ZOO, for example, uses "-ADD" while PKPAK uses "-A".  Since some
  324.           archiving programs use both upper and lower case letters to
  325.           represent different actions, this item's case is left intact.
  326.           OPTIONS also may include the "%1" to indicate where the archive
  327.           files name should be placed on the command line.  If it is
  328.           omitted the file name will be appended to the end of the command
  329.           line.
  330.  
  331.           If you wish to redirect the display output of the archiving
  332.           program then put the redirection command at the end of OPTIONS.
  333.  
  334.           The following are all legal ARC= commands:
  335.  
  336.                     ARC=ARC PKPAK -A %1 *.*
  337.                     ARC=DWC DWC.EXE AZ %1 *.*
  338.                     ARC=PAK PAK A %1 *.*
  339.                     ARC=LZH LHARC.EXE a %1 *.*
  340.                     ARC=ZIP PKZIP -A -EX
  341.                     ARC=ZIP PKZIP.EXE -A %1 *.* >NUL
  342.                     ARC=ZOO ZOO.EXE -ADD %1 * >NUL
  343.  
  344.           The last two examples have their display output redirected to the
  345.           NUL device, resulting in the normal output to not be displayed.
  346.  
  347.           UNARC=
  348.           ======
  349.           The next command is UNARC=.  This is the commands to unarc the
  350.           various types of archives.  This command can appear as many times
  351.           as necessary to define all the archive types you may use.  The
  352.           syntax for this command is:
  353.  
  354.                     UNARC=EXT PROGNAME OPTIONS
  355.  
  356.           EXT is the extension used by this type of archive.
  357.  
  358.  
  359.  
  360.  
  361.  
  362.           ZZAP                                                       Page 6
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.           PROGNAME is the name of the program used to extract files in the
  370.           archive.
  371.  
  372.           OPTIONS is the command line options used to extract files from
  373.           the archive.  As with the ARC command, "%1" may also be included
  374.           to indicate the position of the archive file name.
  375.  
  376.           If you wish the dispaly output of the  unarcing program to be
  377.           redirected you should list the redirection command last.
  378.  
  379.           For unarcing to work with ZZAP it MUST extract all files in an
  380.           archive if a filename is not given after the archive name.
  381.  
  382.           The following are all legal UNARC commands:
  383.  
  384.                     UNARC=ARC PKXARC.EXE
  385.                     UNARC=DWC DWC E %1 *.*
  386.                     UNARC=LZH LHARC.EXE e
  387.                     UNARC=PAK PAK E %1 *.*
  388.                     UNARC=ZIP PKUNZIP.EXE %1 >NUL
  389.                     UNARC=ZOO ZOO -EXTRACT %1 >NUL
  390.  
  391.           The last two examples have their display output redirected to the
  392.           NUL device.
  393.  
  394.           DEFAULT=
  395.           ========
  396.           This is the default extension used to decide which archiving
  397.           format to convert to.  The extension given must match one of the
  398.           extensions given with the ARC= command.  If a match is not found
  399.           the program will halt with an error.  The syntax for this command
  400.           is:
  401.  
  402.                     DEFAULT=ext
  403.  
  404.           where ext is the file extension corresponding to an archive type.
  405.  
  406.           The following are legal DEFAULT commands:
  407.  
  408.                     DEFAULT=ZIP
  409.                     DEFAULT=ZOO
  410.                     DEFAULT=.ARC
  411.  
  412.           Note that the preceding period is optional.
  413.  
  414.           You can override DEFAULT= with the command line switch /E.
  415.  
  416.           BADDIR=
  417.           =======
  418.           Whenever an archive fails to unarc properly or fails the virus
  419.           check it will be renamed to have the extension ".BAD".  By
  420.           default the file is kept in its original subdirectory.  If you
  421.           wish bad archives to be placed in a special subdirectory you may
  422.           use the BADDIR= command.  Simply name the subdirectory you wish
  423.  
  424.  
  425.  
  426.           ZZAP                                                       Page 7
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.           to use.  This subdirectory must already exist for this option to
  434.           work properly.  Example:
  435.  
  436.                     BADDIR=C:\BAD
  437.  
  438.           The defined subdirectory can be on a different drive but if the
  439.           file move is unsuccessful the file will simply be renamed to have
  440.           the extension .BAD (the default mode).
  441.  
  442.           LOG=
  443.           ====
  444.           The final command allowed in the configuration file is LOG=.
  445.           This defines the path and file name of the log file (see below).
  446.           If you do not plan on using the log option then you may omit this
  447.           command.
  448.  
  449.           Its syntax is:
  450.  
  451.                     LOG=filename
  452.  
  453.           For example:
  454.  
  455.                     LOG=C:\DOCS\ZZAP.LOG
  456.  
  457.           This command is only necessary if you plan on using the /L
  458.           command line switch.
  459.  
  460.           SWITCH=
  461.           =======
  462.           Use this to specify your default command line switches.  For
  463.           example, if you always use the log and virus checking options you
  464.           can place this in your configuration file:
  465.  
  466.                     SWITCH=/L+/V+
  467.  
  468.           You can always override the options on the command line:
  469.  
  470.                     ZZAP /L-/V- file.ext
  471.  
  472.           The command line always takes precedence over the configuration
  473.           file.
  474.  
  475.           FIXER=
  476.           ======
  477.           Specify the name of your BBS download list fix-up program with
  478.           this command.  For example, if you are running a QuickBBS
  479.           bulletin board system you can specify FIXER=QFIX.EXE (included in
  480.           this package).
  481.  
  482.           This command is only needed if you plan on using the /C command
  483.           line switch.
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.           ZZAP                                                       Page 8
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.           FIXOPT=
  498.           =======
  499.           If you wish to pass any command line arguments or file names to
  500.           the program specified with the FIXER= command use this command.
  501.           For example, to automatically fix-up the description file used by
  502.           4DOS you would specifiy FIXOPT=DESCRIPT.ION here and specify
  503.           QFIX.EXE with the FIXER= command.  If the fix-up program you use
  504.           does not require any command line arguments you can omit this
  505.           command.
  506.  
  507.           This command is only needed if you plan on using the /C command
  508.           line switch.
  509.  
  510.           SCANOPT=
  511.           ========
  512.           Place, after this command, any command line options you wish
  513.           passed on to SCAN.EXE when it is executed.  The given options
  514.           will be added after the subdirectory to scan exactly as shown in
  515.           the configuration file.  For example, if you have this in the
  516.           configuration file:
  517.  
  518.                     SCANOPT=/A /NOMEM
  519.  
  520.           SCAN will be executed as:
  521.  
  522.                     SCAN pathname /A /NOMEM
  523.  
  524.           =================================================================
  525.           LOCATING ZZAP.CFG
  526.           =================================================================
  527.           ZZAP will try it's best to locate the configuration file.  Upon
  528.           execution it searches for the configuration file in the following
  529.           order:
  530.  
  531.              1.  The current subdirectory.
  532.              2.  The Subdirectory defined by the environment variable
  533.                  ZZAP=, e.g. ZZAP=C:\BIN.
  534.              3.  The subdirectory ZZAP.EXE resides in (DOS 3.x only).
  535.              4.  Each subdirectory defined by PATH in the environment.
  536.  
  537.           If you wish to keep the configuration file in a directory not on
  538.           the PATH and still be able to execute ZZAP from any subdirectory
  539.           you should set the environment variable:
  540.  
  541.                     SET ZZAP=C:\STUFF
  542.  
  543.           If the configuration file can not be found ZZAP will halt with an
  544.           error.
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.           ZZAP                                                       Page 9
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.           =================================================================
  562.           HOW TO RUN ZZAP
  563.           =================================================================
  564.           Running ZZAP is trivial.  Simply type ZZAP followed by the
  565.           filename (wildcards allowed).  The filename MUST have an
  566.           extension.  If the extension is wild (*) then all archive types
  567.           defined by UNARC= commands will be converted to the new archive
  568.           type as defined by ARC=.  The following are legal:
  569.  
  570.                     ZZAP *.ZOO
  571.  
  572.           Converts all ZOO files in the default subdirectory to the new
  573.           archive type.
  574.  
  575.                     ZZAP \UPLOADS\AFILE.ZIP
  576.  
  577.           Converts all ZIP files in the \UPLOADS to the new archiving type.
  578.  
  579.                     ZZAP *.*
  580.  
  581.           Converts all archive types to the new archive type (ignores the
  582.           new archive type when searching for archives to convert).
  583.  
  584.           ZZAP can also accept multiple file names on the command line:
  585.  
  586.                     ZZAP *.* \ARCHIVES\*.ZIP
  587.  
  588.           This example converts all archives in the current subdirectory to
  589.           the new archive type.  It also converts all ZIP files in the
  590.           subdirectory \ARCHIVES on the current drive to the new archive
  591.           type.
  592.  
  593.           If you wish to repack an archive to the same type you must
  594.           explicitly name the extension as the default archive type is
  595.           ignored when doing a wild card conversion (this is to avoid
  596.           repacking the same archives every time you run ZZAP).
  597.  
  598.           If your default archive type is LZH simply give that as the
  599.           extension to convert:
  600.  
  601.                     ZZAP *.LZH
  602.  
  603.           When repacking an archive, all archive and file comments are
  604.           lost.
  605.  
  606.           Note that the /P and /K options are ignored when doing a repack.
  607.  
  608.           =================================================================
  609.           Exit Codes
  610.           =================================================================
  611.           ZZAP will return exit codes upon termination.  These exit codes
  612.           can be used by a batch file to decide what steps should be taken
  613.           after running ZZAP.  The exit codes are:
  614.  
  615.  
  616.  
  617.  
  618.           ZZAP                                                      Page 10
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.                    0           Normal termination - no errors, viruses, or
  626.                                corrupted archives.
  627.                    1           Virus detected.
  628.                    2           Corrupted archive.
  629.                    3           Configuration file not found.
  630.                    4           Not configured for given extension.
  631.                    5           Couldn't create temporary directory.
  632.                    6           Other fatal error.
  633.  
  634.           There is a possibility for both a corrupted archive and a virused
  635.           archive to have been detected (bad day!).  In this case an exit
  636.           code of 1 (virus detected) will be returned, specifying the more
  637.           critical situation.
  638.  
  639.           =================================================================
  640.           NESTED ARCHIVES
  641.           =================================================================
  642.           It is not uncommon to find archives nested inside an archive.  A
  643.           program that includes source code may have the source code
  644.           archived and placed within the main archive.  ZZAP will properly
  645.           handle this situation and convert the nested archives to the new
  646.           format.  If fact, it will even convert nested archives of a
  647.           differing types.  Theoretically, an unlimited amount of nesting
  648.           can be handled, only limited by available memory, but this has
  649.           only been tested one deep.
  650.  
  651.           If you do not wish nested archives to be converted you should use
  652.           the /N- option on the command line or place it in the
  653.           configuration file using the SWITCH= command.
  654.           =================================================================
  655.           OPTIONS SUMMARY
  656.           =================================================================
  657.           There are a number of command line options that allow you to
  658.           customize the behavior of ZZAP.  These options can also be
  659.           declared in the configuration file using the SWITCH= statement.
  660.           Command line options override configuration file options.
  661.  
  662.           With the exception of the /E switch, each option is a forward
  663.           slash (/), a letter, and optionally followed by a plus (+) or
  664.           minus (-).  If the option is given but the plus or minus is
  665.           omitted then plus is assumed, e.g. /A is equivalent to /A+.  Plus
  666.           (+) turns the option on and minus (-) turns the option off.
  667.  
  668.                    /A          Flag archives with HIDDEN, SYSTEM, or READ-
  669.                                ONLY files (default ON).
  670.                    /C          Call the BBS file description updating
  671.                                program.
  672.                    /E          Extension of archive type to convert to.
  673.                    /F          Create a list of files that were converted
  674.                                (default OFF).
  675.                    /K          Keep the original archive (default OFF).
  676.                    /L          Log the activity to a text file (default
  677.                                OFF).
  678.  
  679.  
  680.  
  681.  
  682.           ZZAP                                                      Page 11
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.                    /N          Convert archives nested within archives
  690.                                (ON).
  691.                    /O          Stamp with the original archive date
  692.                                (default OFF).
  693.                    /P          Prevent overwriting existing archives
  694.                                (default OFF).
  695.                    /R          Recurse subdirectories (default OFF).
  696.                    /S          Strip HIDDEN, SYSTEM, and READ-ONLY
  697.                                attributes (default OFF).
  698.                    /V          Scan for viruses (default OFF).
  699.                    /X          Use expanded or extended memory when
  700.                                shelling (default ON).
  701.  
  702.           FLAG ODD ATTRIBUTES - /A
  703.           ========================
  704.           If this option is ON any archive that contains a file with the
  705.           HIDDEN, SYSTEM, or READ-ONLY attribute will be treated as a
  706.           corrupt archive and be renamed to ????????.BAD.  Currently, only
  707.           PKZIP, LHARC, and ICE support attributes within the archive.
  708.  
  709.           It is highly recommended that you have on either the /A or /S
  710.           command at all times since most archiving programs will
  711.           completely ignore hidden files, possibly resulting in lost files.
  712.  
  713.           The /S (strip attributes) command will override this command.
  714.  
  715.           CALL UPDATE PROGRAM - /C
  716.           ========================
  717.           Turning this option on causes the fix-up program named in the
  718.           configuration file (see FIXER=) to be executed after all
  719.           conversions have been completed.  This removes the necessity to
  720.           execute the program after running ZZAP.
  721.  
  722.           Turning this option on also forces the /F option on as well.
  723.  
  724.           TARGET EXTENSION - /E
  725.           =====================
  726.           Overrides the DEFAULT= option in the configuration file.  Follow
  727.           immediately with a three letter extension, for example:
  728.  
  729.                     ZZAP /EZIP *.LZH
  730.  
  731.           The above example will convert all LZH type archives in the
  732.           current directory to ZIP archives.
  733.  
  734.           Unlike the DEFAULT= configuration file option, you must not
  735.           precede the extension with a period.
  736.  
  737.           FILE LIST - /F
  738.           ==============
  739.           If the /F+ option is used the text file FILES.FIX will be created
  740.           that lists each of the files converted.  Each line contains a
  741.           single entry, first is the full path and file name of the
  742.  
  743.  
  744.  
  745.  
  746.           ZZAP                                                      Page 12
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.           original file, followed by a single space, and finally the new
  754.           file name (no path), for example:
  755.  
  756.                C:\ARCHIVES\MYARC.LZH MYARC.ZIP
  757.                C:\ARCHIVES\ANOTHER.ZOO ANOTHER.ZIP
  758.                C:\NEWSTUFF\JUNK.ICE JUNK.ZIP
  759.  
  760.           Files that are repacked to the same type (e.g. ZIP to ZIP) will
  761.           also be listed in this file.  Under some BBS list formats the
  762.           file size, date, time, etc. are also stored along with the file
  763.           name and description.  It is up to the programmer of the filter
  764.           to use or ignore unchanged file names as necessary.
  765.  
  766.           This text file can be used by a filter program to modify any file
  767.           list as used by most BBS systems to reflect the change of file
  768.           names.  Included with ZZAP is the program QFIX.EXE that modifies
  769.           the file list format used by QuickBBS and many other BBS systems
  770.           as well as the description file used by 4DOS.  See the QFIX
  771.           document file for additional information.
  772.  
  773.           A filter program for TBBS called DIRFIX has been written by Gary
  774.           W. Funk.  Look for DIRFIX.ZIP (or whatever extension it has!) on
  775.           a BBS near you.  It may be included in future releases of the
  776.           ZZAP package.
  777.  
  778.           I will be happy to provide some limited assistance in developing
  779.           filter programs for other BBS list formats.  If you develop a
  780.           filter program that would be of interest to others, send a copy
  781.           to me and I'll include it in future releases of ZZAP.
  782.           Appropriate acknowledgments will, of course, be given.
  783.  
  784.           KEEPING THE ORIGINAL - /K
  785.           =========================
  786.           By default the original archive is deleted after the new archive
  787.           is successfully created.  To prevent the old archives from being
  788.           deleted you need to turn ON the /K (keep) option.  For example:
  789.  
  790.                          ZZAP /K+ *.ARC
  791.  
  792.           This switch can be used in combination with any other option:
  793.  
  794.                          ZZAP /K+ /R+ C:\*.ARC
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.           ZZAP                                                      Page 13
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.           ACTIVITY LOG - /L
  818.           =================
  819.           If you wish ZZAP to run unattended (see EVENTS below) then you
  820.           may wish to log its activities.  Including the '/L+' on the
  821.           command line will turn on the logging option.  The following are
  822.           examples of using the log options.
  823.  
  824.                     ZZAP /L+ C:\UPLOADS\*.ARC
  825.                     ZZAP /K+/L+/R+ C:\*.ZOO
  826.  
  827.           You must use the "LOG=" in the configuration file to define the
  828.           log file path and name for this option to work.
  829.  
  830.           The first time the log option is used the log file is created.
  831.           On subsequent runs new information is appended to the end of the
  832.           file.
  833.  
  834.           The log file is a standard ASCII file that may be viewed, edited,
  835.           printed, etc..
  836.  
  837.           CONVERT NESTED - /N
  838.           ===================
  839.           If this option is on any archives nested within an archive being
  840.           converted will also be converted.  All nested archive types
  841.           supported will be converted to the default type.  Nested archives
  842.           are left unchanged if this option is off.
  843.  
  844.           TIME/DATE STAMP - /O
  845.           ====================
  846.           By default the time/date stamp of the newly created archive is
  847.           set to the time/date stamp of the NEWEST file contained within.
  848.           If you wish to retain the original time/date stamp of the archive
  849.           use the /O option.
  850.  
  851.                          ZZAP /O+ MYARC.ARC
  852.  
  853.           PREVENT OVERWRITING - /P
  854.           ========================
  855.           By default an existing archive can be overwritten when
  856.           converting.  For example, if both TEST.ZIP and TEST.LZH exist and
  857.           you convert TEST.LZH to a ZIP file, the original TEST.ZIP will be
  858.           replaced by the new ZIP file (formerly TEST.LZH).  If the /P
  859.           option is turned on it will prevent this from occurring, in fact,
  860.           any archive that would cause an overwrite would be completely
  861.           ignored, without any status message being displayed.
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.           ZZAP                                                      Page 14
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.           SUBDIRECTORY RECURSION - /R
  882.           ===========================
  883.           If you have multiple subdirectories with archives you need to
  884.           convert you can either process each subdirectory individually or
  885.           use the recursion feature of ZZAP.  Subdirectory recursion means
  886.           ZZAP will start at a given subdirectory and convert all archives
  887.           in it and all archives in any child subdirectories.  This feature
  888.           is especially handy when you have a Bulletin Board System with a
  889.           large number of specialized file areas.
  890.  
  891.           Subdirectory Recursion is invoked by the /R command line options.
  892.           The following are valid command lines:
  893.  
  894.                          ZZAP /R+ \FILES\T*.ZOO
  895.                          ZZAP /R+ \*.ARC
  896.                          ZZAP /R *.PAK
  897.                          ZZAP /R+/L+ *.*
  898.  
  899.           Strip Attributes - /S
  900.           =====================
  901.           The /S options will strip the HIDDEN, SYSTEM, and READ-ONLY
  902.           attributes from all files contained in the archive before adding
  903.           the files to the new archive.  Note that most archiving programs
  904.           do not support unusual attributes and will simply ignore files
  905.           containing these three attributes.  You should use either the /A
  906.           or /S command if there is any chance of any of these three
  907.           attributes being run across.
  908.  
  909.           Turning this option on will cause the /A option to be turned off.
  910.  
  911.           Virus Scan - /V
  912.           ===============
  913.           The /V option will enable the virus scan option.  You must have
  914.           version 39 or greater of McAfee Associates virus scanning program
  915.           SCAN.EXE placed on your execution PATH.  If a virus is detected
  916.           the archive will be treated as corrupted and an error message
  917.           will be displayed and placed in the log file (if enabled).
  918.  
  919.           See also the SCANOPT= configuration file command.
  920.  
  921.           Expanded/Extended Memory - /X
  922.           =============================
  923.           By default ZZAP will take advantage of expanded or extended
  924.           memory while shelling to an archive program.  This makes more
  925.           memory available to the archiver and may mean the difference
  926.           between success or failure in a tight memory system.  If you do
  927.           NOT wish expanded to be used include the /X- option on the
  928.           command line.
  929.  
  930.           To use expanded memory a LIM 4.0 driver be installed as well as
  931.           sufficient EMS to store the bulk of the program and data.
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.           ZZAP                                                      Page 15
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.           To use extended memory an XMS driver such as HIMEM.SYS (available
  946.           free from Microsoft) must be installed as well as sufficient
  947.           extended memory to store the bulk of the program and data.
  948.  
  949.  
  950.           =================================================================
  951.           CORRUPTED ARCHIVES
  952.           =================================================================
  953.           If a file is found to be corrupted further processing on that
  954.           file is halted and the archive is renamed to have the extension
  955.           "BAD". If the corrupted archive is nested only the parent archive
  956.           is renamed. You will have to manually unarc the archive to find
  957.           the actual problem.
  958.  
  959.           ZZAP assumes that a file is corrupted when the "EXIT CODE" for
  960.           the unarc program is nonzero.
  961.  
  962.           PAK version 1.0 is known to not return a proper error code so
  963.           ZZAP will not work with it.  I'm not sure which version they
  964.           fixed the bug in.  I do know that it works properly with PAK
  965.           version 1.6.
  966.  
  967.  
  968.           =================================================================
  969.           EXTERNAL EVENT CONVERSION
  970.           =================================================================
  971.           Some bulletin board systems support timed "events".  These events
  972.           are used to automate the operation of the board.  Using an event
  973.           can make it possible for the bulletin board to automatically
  974.           handle the conversion of any archive type to the type supported
  975.           by the board.  A BBS that automatically converts archive types
  976.           could allow the callers to upload archives of virtually any type.
  977.  
  978.           Under FrontDoor, for example, you can use an external event for
  979.           this process.  An external event causes FrontDoor to terminate
  980.           with a specified error level.  The error level can then be
  981.           queried to decide what should be done.
  982.  
  983.           Follows is a fragment from a possible batch file to do just this.
  984.           This example assumes all new uploads are placed in the
  985.           subdirectory "C:\UPLOADS".
  986.  
  987.                IF ERRORLEVEL 87 GOTO do_this
  988.                IF ERRORLEVEL 86 GOTO arc_convert
  989.                IF ERRORLEVEL 85 GOTO do_that
  990.  
  991.                REM convert all archive types to ZIP files
  992.                :arc_convert
  993.                  zzap /l+/f+ c:\uploads\*.*
  994.  
  995.                GOTO run_fd
  996.  
  997.           There is one problem with this type of system - what happens to
  998.           the descriptions?  Some BBS programs automatically place the file
  999.  
  1000.  
  1001.  
  1002.           ZZAP                                                      Page 16
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.           name and description in an ASCII file.  If the file is then
  1010.           converted the filename is changed and would no longer match the
  1011.           name given with the description.  The /F option and the QFIX
  1012.           program (included) handle the conversion for QuickBBS format file
  1013.           list.  See QFIX.DOC for further information.
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.           ZZAP                                                      Page 17
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.           =================================================================
  1074.           ACKNOWLEDGMENTS
  1075.           =================================================================
  1076.  
  1077.           Thanks to:
  1078.  
  1079.               o  Ken Doebler (1:102/345) for his many suggestions.
  1080.  
  1081.               o  Randall Greylock (1:321/202.4) for pointing out an oddity
  1082.                  with ZOO and many fine suggestions which were implemented.
  1083.  
  1084.               o  Charles Falconer (1:141/488) for pointing out that I
  1085.                  didn't handle unusual file attributes (which LHARC and
  1086.                  PKZIP archives may retain) and other suggestions.
  1087.  
  1088.           =================================================================
  1089.           Legal B.S.
  1090.           =================================================================
  1091.  
  1092.               -  DWC is copyright (c)1986,87,88 Dean W. Cooper.
  1093.               -  LHARC and ICE are copyright (c)1988,89 Haruyasu
  1094.                  Yoshizaki-san.
  1095.               -  LUE is copyright (c)1985 Vernon D. Buerg.
  1096.               -  PAK is copyright (c)1988,89 NoGate Consulting
  1097.               -  GSARC is copyright (c)1988 NoGate Consulting
  1098.               -  PKARC/PKXARC and PKPAK/PKUNPAK are copyright (c)1986,87,88
  1099.                  PKWare, Inc.
  1100.               -  PKZIP/PKUNZIP are copyright (c)1989 PkWare, Inc.
  1101.               -  ZOO is copyright (c)1988 Rahul Dhesi
  1102.               -  FrontDoor is copyright (c)1988,89 Scandinavian PC Systems
  1103.                  and InterZone Software, Inc.
  1104.               -  DIRFIX is copyright (c)1990 Gary W. Funk.
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.           ZZAP                                                      Page 18
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.           =================================================================
  1138.           VERSION HISTORY
  1139.           =================================================================
  1140.  
  1141.           Version 5.4 Changes
  1142.           ===================
  1143.  
  1144.               -  Added the /C command line option.
  1145.               -  Added the FIXER=, FIXOPT= and SCANOPT= configuration file
  1146.                  commands.
  1147.  
  1148.           Version 5.3 Changes
  1149.           ===================
  1150.  
  1151.               -  Added support for "%1" to allow the archive file names to
  1152.                  be in any position on the command line.
  1153.               -  Corrected a bug where the /N command line switch was being
  1154.                  ignored.
  1155.               -  Bug corrected where the state of Keep (/K+) and/or
  1156.                  PreventOverwrite (/P+) could be lost if more than one file
  1157.                  is given on the command line.
  1158.               -  On the switch status line, "on" is displayed in high-
  1159.                  intensity.
  1160.               -  Completely changed the way the /F option works and added
  1161.                  the QFIX program.
  1162.               -  Conversion of all archive types by indicating the wildcard
  1163.                  extension (e.g. '*.*' was not working, corrected as of
  1164.                  5.3b.
  1165.  
  1166.           Version 5.2 Changes
  1167.           ===================
  1168.  
  1169.               -  Fixed a bug where the stack would overflow and trash some
  1170.                  internal data.
  1171.               -  Fixed a bug where if /X- was used it wouldn't properly
  1172.                  execute the external programs.
  1173.               -  Removed the ZZAPARC= environmental variable, it is not
  1174.                  longer needed with the addition of the /E command line
  1175.                  switch.
  1176.               -  Added the /N switch (convert nested archives).  Default
  1177.                  ON.
  1178.  
  1179.           Version 5.1 Changes
  1180.           ===================
  1181.  
  1182.               -  Added the SWITCH= configuration file option.
  1183.               -  Changed the way command line options are used.
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.           ZZAP                                                      Page 19
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.           Version 5.0 Changes
  1202.           ===================
  1203.  
  1204.               -  Completely rewrote most of the file searching routines.
  1205.               -  Now supports repacking any archive type, e.g. ZIP to ZIP.
  1206.               -  Added a switch to prevent overwriting of existing
  1207.                  archives.
  1208.  
  1209.           Version 4.8 Changes
  1210.           ===================
  1211.  
  1212.               -  Added support for output redirection.
  1213.               -  ZZAP always thought the bad archive directory (BADDIR=)
  1214.                  didn't exist - whether it did or not.
  1215.               -  Now supports moving a BAD archive to a different drive.
  1216.               -  If BADDIR is defined and the subdirectory exists the file
  1217.                  will be moved their and the extension will NOT be changed
  1218.                  to .BAD.  The extension will be changed to .BAD if BADDIR
  1219.                  is not defined or does not exist.
  1220.  
  1221.           Version 4.7 Changes
  1222.           ===================
  1223.  
  1224.               -  Added the DEFAULT= command in the configuration file.
  1225.               -  Changed the ZZAPARC environmental variable so that it only
  1226.                  requires the file extension.
  1227.               -  Changed the ARC= command in the configuration file so that
  1228.                  multiple archiving programs can be listed.
  1229.               -  Added the /S (strip attributes) command line option.
  1230.               -  Added support for extended memory during archive program
  1231.                  executing.
  1232.               -  The BBS list routine was not working properly if the
  1233.                  filenames in the list file were not uppercase.
  1234.  
  1235.           Version 4.6 Changes
  1236.           ===================
  1237.  
  1238.               -  Added support for virus scanning using McAfee Associates
  1239.                  SCAN.EXE program.
  1240.               -  Added the BADDIR configuration option.
  1241.               -  Improved the error detection code.
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.           ZZAP                                                      Page 20
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.           Version 4.5 Changes
  1266.           ===================
  1267.  
  1268.               -  Added support for multiple file names on the command line.
  1269.               -  Removed bug where ZZAP returned an error message if no
  1270.                  file name was given on the command line.
  1271.  
  1272.           Version 4.4 Changes
  1273.           ===================
  1274.  
  1275.               -  ZZAP wasn't properly reading the exit code of the unarcing
  1276.                  programs.  This resulting in some bad archives slipping
  1277.                  by.
  1278.  
  1279.           Version 4.3 Changes
  1280.           ===================
  1281.  
  1282.               -  Cosmetic changes and code optimization.
  1283.  
  1284.           Version 4.2 Changes
  1285.           ===================
  1286.  
  1287.               -  Trivial B.S. hardly worth mentioning.
  1288.  
  1289.           Version 4.1 Changes
  1290.           ===================
  1291.  
  1292.               -  Corrected a fatal bug introduced in 4.0 that would cause
  1293.                  ZZAP to lose files under PKARC/PKPAK.
  1294.               -  Removed a bug which resulted in the "home" path (DOS 3.x
  1295.                  only) not being located properly.
  1296.  
  1297.           Version 4.0 Changes
  1298.           ===================
  1299.  
  1300.               -  Changed the "/I" option to "/A" - makes more sense.
  1301.                  Log more information about nonstandard file attributes in
  1302.                  the log file.
  1303.               -  Now supports expanded memory (LIM 4.0 only) when shelling,
  1304.                  thus making available more conventional memory when
  1305.                  running the archiving programs.
  1306.  
  1307.           Version 3.6 Changes
  1308.           ===================
  1309.  
  1310.               -  Now properly handles files with attributes of READ-ONLY,
  1311.                  HIDDEN, or SYSTEM, which could cause ZZAP to crash.
  1312.               -  Added the /I option.
  1313.               -  Fixed a bug with the FIXLIST option (/F).
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.           ZZAP                                                      Page 21
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.           Version 3.5 Changes
  1330.           ===================
  1331.  
  1332.               -  Mostly cosmetic changes.
  1333.               -  A minor bug in path searching was fixed.
  1334.  
  1335.           Version 3.4 Changes
  1336.           ===================
  1337.  
  1338.               -  Another minor bug fix, changes in version 3.3 resulted in
  1339.                  archive programs in the default directory not being found.
  1340.  
  1341.           Version 3.3 Changes
  1342.           ===================
  1343.  
  1344.               -  Added the environment variable ZZAPARC= which overrides
  1345.                  the ARC= command in the configuration file.
  1346.               -  The code was cleaned up a bit, as well.
  1347.  
  1348.           Version 3.2 Changes
  1349.           ===================
  1350.  
  1351.               -  Fixed a minor bug related to the environment variable
  1352.                  ZZAP=.
  1353.               -  Now aborts if the archiving (ARC=) program can not be
  1354.                  found.
  1355.               -  Displays an error message if any of the unarcing programs
  1356.                  (UNARC=) can not be found.
  1357.  
  1358.           Version 3.1 Changes
  1359.           ===================
  1360.  
  1361.               -  As of version 3.1 ZZAP will work with DWC.  Prior to this
  1362.                  version DWC would not work because of the way DWC handled
  1363.                  paths.  Most DOS programs support the "parent"
  1364.                  subdirectory path, "..\ARCHIVE.EXT". For some reason DWC
  1365.                  would not.  The parent subdirectory is now converted to a
  1366.                  qualified filename, e.g. "C:\ARCHIVES\MYARC.DWC".
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.           ZZAP                                                      Page 22
  1387.