home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / vrac / zback1.zip / ZBACK.DOC < prev    next >
Text File  |  1994-06-18  |  24KB  |  600 lines

  1. ------------------------------------------------------------
  2. -- ZBACK.DOC for ZBACK.EXE version 1.0 -- June 1994       --
  3. -- A Public Domain backup utility using PKZIP version 2.x --
  4. ------------------------------------------------------------
  5.  
  6. 0.   Table of contents.
  7.      I.   Introduction.
  8.      II.  Syntax.
  9.      III. Use.
  10.           A.   How often to back up.
  11.           B.   How much to back up.
  12.           C.   How many diskettes to use.
  13.           D.   The backup pattern.
  14.      IV.  Recovering from file loss.
  15.           A.   Single file recovery.
  16.           B.   Total recovery.
  17.           C.   Problems and solutions.
  18.      V.   Environment and operation.
  19.      VI.  Modifying ZBACK.
  20.      VII. Further suggested reading.
  21.      VIII.Disclaimer, author, and credits.
  22.  
  23.  
  24. I.  Introduction.
  25.  
  26.     PKZIP 2.x has been enhanced over PKZIP 1.1 to include a
  27. feature called "disk spanning," by which a single ZIP may
  28. be created on several floppies.  This feature might be
  29. called a "poor man's" backup.  However, even poor men (or
  30. women) prefer to avoid command lines with lots of switches.
  31.  ZBACK eliminates the command line switch problem inherent
  32. with PKZIP and for that matter most commercial backup
  33. packages.
  34.  
  35.     ZBACK.EXE, is a simple, easy to use and modify backup
  36. utility which takes care of the piddling details and
  37. attempts both to enable and encourage responsible data
  38. protection.
  39.  
  40.     ZBACK 1.0 is designed to be an inexpensive (free if you
  41. already own PKZIP 2.x) direct replacement for the MS-DOS
  42. BACKUP utility, without the need to remember any command
  43. syntax.  Any options are handled via a simple dialog box.
  44. Enhanced features include fewer diskettes required to
  45. perform a backup, enhanced error detection, simpler syntax,
  46. and (in my opinion) easier recovery procedures with more
  47. options.
  48.  
  49.     ZBACK startup defaults cannot be preconfigured, if you
  50. tire of always changing the default then a configurable
  51. version of ZBACK is available from the Author for a fee.
  52. See Section VI: Modifying ZBACK.
  53.  
  54.     This document describes ZBACK and its use.  It also
  55. discusses backup strategy and data recovery using worked
  56. examples to illustrate key concepts.
  57.  
  58.  
  59. II.  Syntax.
  60.  
  61.      ZBACK.EXE has no complicated syntax.(Easy)  The
  62. command syntax is:  ZBACK
  63.  
  64.     Instead Dialog boxes are shown, where SOURCE is the
  65. drive to be backed up (*without* the colon, ex: 'C', not
  66. 'C:'), TARGET is the drive to be backed up onto (again,
  67. *without* the colon), and the optional box TYPE indicates
  68. what kind of backup to perform.
  69.  
  70.     TARGET can be any available hard or floppy drive. I
  71. recommend it be a removable drive (read: floppy). Due to
  72. the locked in default's for running PKZIP (format switch
  73. set to "f"), this facility cannot be used for "Tape" drives
  74. which require the PKZIP "w" switch. Restrictions also apply
  75. when using low density floppies on a high density drive.
  76. Make sure disks have been preformatted before usage. The
  77. configurable version of ZBACK resolves all these
  78. limitations.
  79.  
  80.      There are three kinds of backups.  The first is a
  81. total or FULL backup.  This backup backs up all files on
  82. the source drive, as specified in PKZIP.CFG or the
  83. program's defaults, and then resets the archive bit on all
  84. files backed up.  (Normally, PKZIP skips any files with
  85. Hidden or System attributes set.) Thus, performing the
  86. command:
  87.  
  88.     ZBACK
  89.     then set the dialog box : Type   = Full
  90.                               Source = C
  91.                               Target = A
  92.  
  93. would correspond to the MS-DOS commands:
  94.  
  95.           VERIFY   ON
  96.           FORMAT   A: /Q
  97.           BACKUP   C:\*.*   A:   /S   /F
  98.  
  99.      The second backup is an incremental backup or WEEKLY
  100. backup. This backup backs up all files modified since the
  101. latest FULL or WEEKLY backup (whichever was performed most
  102. recently) and then resets the archive bit on all files
  103. backed up.  Thus, performing the command:
  104.  
  105.     ZBACK
  106.     then set the dialog box : Type   = Weekly
  107.                               Source = C
  108.                               Target = A
  109.  
  110. would correspond to the MS-DOS commands:
  111.  
  112.           VERIFY   ON
  113.           FORMAT   A /Q
  114.           BACKUP   C:\*.*   A:   /S   /M   /F
  115.  
  116.      The third backup is a DAILY backup.  Like the WEEKLY
  117. backup, this backup backs up all files modified since the
  118. latest FULL or WEEKLY backup (whichever was performed most
  119. recently), however this backup does not reset archive bits
  120. on any files backed up. Thus, the command:
  121.  
  122.           ZBACK
  123.           then set the dialog box :Type   = Daily
  124.                                    Source = C
  125.                                    Target = A
  126.  
  127. would correspond to the MS-DOScommand(s):
  128.  
  129.           FORMAT   A:
  130.           XCOPY   C:\*.*   A:   /S   /A   /V
  131.  
  132. (assuming all files to be backed up would fit on a single
  133. floppy.)  After each of the backups completes, ZBACK
  134. performs an optional verify pass on the backup set.
  135.  
  136.  
  137. III. Use.
  138.  
  139. A.   How often to back up.
  140.  
  141.      A fundamental question of data protection is: "How
  142. often should I perform backups on my system?"  The long
  143. answer is that you should back up frequently enough to
  144. recover quickly and completely with a minimum of re-entry
  145. should data loss of any sort occur.  However, there are a
  146. couple of relative terms in the long answer, open to
  147. interpretation, confusion, and perhaps disaster, so go with
  148. the short answer: "Every time you use it." If you are
  149. entering data, downloading files, writing letters, or
  150. sometimes just playing games, the data files on your system
  151. change.  You should establish a practice of backing up
  152. before shutting off the system for the day.  For purposes
  153. of discussion, we will assume that the computer is used
  154. daily.
  155.  
  156.  
  157. B.   How much to back up.
  158.  
  159.      If a backup requires daily 20 diskettes and an hour of
  160. your time, you will not do it.  An "ideal" backup might
  161. require one minute and one diskette, so ZBACK was written
  162. to try to approach that "ideal."  In the scheme presented
  163. below, a "full" or total system backup would be performed
  164. once every 28 days. Thereafter (assuming normal use), much
  165. smaller, quicker, partial backups would suffice.
  166.  
  167.      In this scheme, there are 10 separate backup sets.
  168. One set, labeled "F1", would be large enough to perform a
  169. FULL backup, and nine smaller sets of the same size,
  170. labeled "W1" through "W3" and "D1" through "D6" for WEEKLY
  171. and DAILY sets, respectively.
  172.  
  173.  
  174. C.   How many diskettes to use.
  175.  
  176.      The FULL set would require (assuming a common file
  177. mix) approximately the number of diskettes which can be
  178. determined by this formula:
  179.  
  180.      number_of_diskettes = (FS / (CR * MS)) (rounded up)
  181.  
  182. where:
  183.  
  184.      FS   (File Size) is the number of bytes to back up
  185.           (which can be determined by using MS-DOS CHKDSK)
  186.  
  187.      CR   (Compression Ratio) is how well PKZIP performs
  188.           compressing files.  Depending on you file mix,
  189.           this can vary between 1.0 (the worst possible) to
  190.           1.5 (poor) to 2.0 (excellent) or higher.  A value
  191.           of 1.7 is typical. When in doubt, use that.
  192.  
  193.      MS   (Media Size) is the number of usable bytes on a
  194.           floppy. The figure can be rounded to simplify
  195.           arithmetic. (Remember this is an approximate
  196.           calculation.)  Use the table below (Table 1):
  197.  
  198.  
  199.      Table 1: Approximate file bytes on common media.
  200.  
  201.      Media size     Recording method    Usable bytes
  202.      ----------     ----------------    ------------
  203.      3-1/2"         DSDD                  720,000
  204.      3-1/2"         DSHD                1,440,000
  205.      5-1/4"         DSDD                  360,000
  206.      5-1/4"         DSHD                1,200,000
  207.  
  208.  
  209.      Suppose you have a 104 MB partition as drive C: and
  210. MS-DOS CHKDSK indicates you are using 55,000,000 bytes
  211. (FS=55,000,000), and that your floppy drive A: is a high
  212. density 5-1/4" drive (and that you will be using high
  213. density floppies (MS=1,200,000). Applying the formula with
  214. a 1.7 compression ration (assuming a typical file mix --
  215. CR=1.7):
  216.  
  217.      number_of_diskettes = (55,000,000 / (1.7 * 1,200,000))
  218.                               (rounded up)
  219.                          = 26.96 (rounded up)
  220.                          = 27
  221.  
  222.      A WEEKLY or DAILY set is harder to estimate, since it
  223. depends on the number and size of files modified.  Start by
  224. assuming each set requires two diskettes and be prepared to
  225. revise upwards.  Using these assumptions, the number of
  226. diskettes to buy initially for this example is shown in
  227. Table 2:
  228.  
  229.      Table 2: Diskettes required for backup sets (worked
  230.                example).
  231.  
  232.     Backup type  Sets needed  Diskettes/set  Total diskettes
  233.     -----------  -----------  -------------  ---------------
  234.      FULL            1             * 27           = 27
  235.      WEEKLY          3             *  2           =  6
  236.      DAILY           6             *  2           = 12
  237.      -----          --                            ----
  238.      TOTAL          10                              45
  239.  
  240.      If you buy your diskettes in lots of ten, hold your
  241. nose and buy 50.  Remember, this is *still* better than
  242. MS-DOS BACKUP which would require about 46 or 47 diskettes
  243. just for the FULL backup alone.
  244.  
  245.      WARNING: If you are using low density diskettes in a
  246. high density drive (ex: 360 KB DSDD floppies in a 1.2 MB HD
  247. drive) then YOU MUST FORMAT THEM LOW DENSITY BEFORE USING
  248. PKBACKUP. Otherwise, PKZIP will format them high density.
  249.  
  250.  
  251. D.   The backup pattern.
  252.  
  253.      Why these three kinds of backups?  ZBACK was written
  254. with the following scheme in mind.  Initially, you would
  255. perform a FULL backup on a disk.  This would back up all
  256. files, and form a basis for all further backups in the
  257. series.  We will call this "day zero."  For the next 6
  258. days, you would perform DAILY backups, using backup sets D1
  259. through D6. On day seven, you would perform a WEEKLY backup
  260. using backup set W1.  On days eight through thirteen you
  261. would do DAILY backups, reusing backup sets D1 through D6.
  262. On day fourteen you would perform a WEEKLY backup using
  263. backup set W2.  On days fifteen through twenty you would
  264. perform DAILY backups again on D1 through D6.  On day
  265. twenty-one you would perform a WEEKLY backup on backup set
  266. W3.  Finally, for days twenty-two through twenty-seven you
  267. would do DAILY backups again on D1 through D6.  Day 28
  268. would be day zero of the next cycle, and the process would
  269. repeat. Graphically, this might be represented as shown in
  270. Table 3 (below):
  271.  
  272.    Table 3: Sequence of backups in a 28-day backup scheme.
  273.  
  274.      Type           Set       Day
  275.      ----           ---       ---
  276.      FULL           F1        day 0
  277.          DAILY      D1-6      days 1 to 6
  278.        WEEKLY       W1        day 7
  279.          DAILY      D1-6      days 8 to 13
  280.        WEEKLY       W2        day 14
  281.          DAILY      D1-6      days 15 to 20
  282.        WEEKLY       W3        day 21
  283.          DAILY      D1-6      days 22 to 27
  284.  
  285.      This scheme has the following characteristics:  It is
  286. always possible to restore files for the previous seven
  287. days, and before that, at one week intervals.  Therefore,
  288. if you back up at the end of a day, and file loss occurs at
  289. noon on day 18 (before backup on that day), then the
  290. following backups would be available, as shown in Table 4
  291. (below).
  292.  
  293.  
  294.      Table 4: Backups available on day 18 in a 28 day backup
  295.                scheme.
  296.  
  297.      Number         Type      Set       Day performed
  298.      ------         ----      ---       -------------
  299.      1              FULL      F1        day 0
  300.      2              WEEKLY    W1        day 7
  301.      3              DAILY     D4        day 11
  302.      4              DAILY     D5        day 12
  303.      5              DAILY     D6        day 13
  304.      6              WEEKLY    W2        day 14
  305.      7              DAILY     D1        day 15
  306.      8              DAILY     D2        day 16
  307.      9              DAILY     D3        day 17
  308.  
  309.      NOTE: The method described above can be adapted to
  310. work for other time frames just as easily.  If backups are
  311. performed weekly, then 17 backup sets consisting of one
  312. FULL set, 12 monthly sets and 4 weekly sets will back up an
  313. entire year. Other schemes are possible.  The important
  314. part is that there must be an initial FULL backup, followed
  315. by WEEKLY backups at specified intervals and DAILY backups
  316. between them.
  317.  
  318.  
  319. IV.  Recovering from file loss.
  320.  
  321.      Sooner or later, it will be necessary to restore one
  322. or more files from backup.  Whether from accidental
  323. deletion of a single file (oops) all the way up to
  324. catastrophic disk failure (ARGH! *SOB*), ZBACK creates
  325. backup sets capable of recovery.
  326.  
  327.      To illustrate recovery methods, we will continue use
  328. of the 28 day backup scheme described earlier and examine
  329. recovery techniques used if data loss occurred after backup
  330. on day 17. (See section III D for details).  (Remember that
  331. for this discussion drive C: is backed up onto drive A:)
  332.  
  333.      NOTE: Before attempting recovery of any sort, you
  334. should be familiar with PKUNZIP.  The more you know about
  335. this utility, the more options for recovery you will have.
  336. See Section VII for suggested reading.
  337.  
  338.  
  339. A.   Single file recovery.
  340.  
  341.      Suppose a single file named C:\GONE\BYE.BYE was
  342. accidently deleted at noon on the eighteenth day as
  343. described in Section III D.  Table 4 (above) shows the nine
  344. backups available.  BYE.BYE should be on at least one of
  345. them (see IV C -- Problems and Solutions, below), and might
  346. be on several or all, depending on whether the file was
  347. modified.  In this case we would want the youngest (most
  348. recently modified) copy.  Therefore we would start with the
  349. latest backup, backup number 9 (performed on day 17), and
  350. search the backups in reverse chronological order.  To
  351. search a backup for a file, place the LAST disk of the set
  352. (yes, you heard me correctly!) in the floppy drive and
  353. (assuming that it is drive A:) type in the following
  354. command:
  355.  
  356.           PKUNZIP   -v   a:*.zip   bye.bye
  357.  
  358. (If you forget, and put the first floppy of the set in the
  359. drive, PKUNZIP will prompt you to put the last floppy of
  360. the set in the drive.  All you will have lost is some
  361. time.)  It is not necessary to give the full path of the
  362. file, the true name of the ZIP file, or even the full name
  363. of the file itself, since wildcards can be used in the
  364. filename.  Any file matching a specification will be
  365. displayed along with "directory-like" information such as
  366. size, attributes, date and time of creation/last update,
  367. full path name, and a few other fields which will not be
  368. important to the restoration process.  If the file is not
  369. in the backup set, PKUNZIP will issue a warning.  If
  370. several files match the specification, they will all be
  371. displayed.  It is your responsibility to determine which,
  372. if any, is the file you want.  If the file is not found in
  373. backup 9, continue the search using backup 8, and so on.
  374.  
  375.      Once the right backup set has been determined,
  376. restoring a single file can be done using the following
  377. command, assuming C: is the backup drive and A: is the
  378. floppy drive.
  379.  
  380.           PKUNZIP   -d   -o-   a:*.zip   filename.ext   c:\
  381.  
  382. so in our example we would type:
  383.  
  384.           PKUNZIP   -d   -o-   a:*.zip   BYE.BYE   c:\
  385.  
  386. If more than one file matches a specification, all files
  387. will be restored. If a file already exists by the same
  388. name, PKUNZIP will skip the file. (This would almost
  389. certainly mean that the specification was incorrect or
  390. there was more than one file with that name in the backup.)
  391. If no files could be restored, PKUNZIP would issue a
  392. warning.
  393.  
  394.  
  395. B.   Total recovery.
  396.  
  397.      Suppose the very worst has happened, and the disk is
  398. lost. After replacing or reformatting the disk and
  399. installing a minimum amount of the operating system, if
  400. necessary (you did have a rescue disk of some kind around,
  401. didn't you?) we must restore the latest DAILY backup, then
  402. all WEEKLY backups in reverse chronological order, then
  403. finally the FULL backup.  In our worked example, assuming
  404. loss on day 18, we would restore backups 9, 6, 2, and 1 in
  405. that order.  (See table 4.)  Assuming that drive C: was
  406. lost, and that enough of MS-DOS has been installed (and in
  407. the SAME place as before), we could enter the following
  408. command:
  409.  
  410.           PKUNZIP   -o-   -d   a:*.zip   c:\
  411.  
  412. for each backup set (even from another drive) and only
  413. those files which had not yet been restored would be
  414. written to the hard drive.
  415.  
  416.  
  417. C.   Problems and solutions.
  418.  
  419.      ZBACK, like MS-DOS BACKUP, requires a file's Archive
  420. bit to be set before it will back it up in a WEEKLY or
  421. DAILY backup. Therefore, if one resets the Archive bit with
  422. the MS-DOS ATTRIB command, performs a regular MS-DOS
  423. BACKUP, renames an already backed up file (which will not
  424. affect the Archive bit), or anything else which messes with
  425. the Archive bit for a file, then that file will not be
  426. backed up, or possibly it may be backed up though it does
  427. not need to be.  If this represents a problem for you, then
  428. maybe you ought to be using a different method for
  429. performing backups.
  430.  
  431.      On the other hand, with a little care and attention to
  432. detail this should not be a serious problem.  Don't use
  433. both MS-DOS BACKUP and PKBACKUP.  Don't use XCOPY's /M
  434. switch.  Don't use ATTRIB to clear the Attribute bit of a
  435. file unless you know EXACTLY what you are doing. Instead of
  436. RENaming a file, COPY it, then DELete the original.  (Be
  437. aware that the file with the original name may exist on a
  438. backup, which might cause a problem if a total recovery is
  439. necessary.)  Remember that a file created and deleted
  440. between backups cannot be recovered using techniques
  441. described here.
  442.  
  443.      A different problem is that ZBACK may back up certain
  444. files not desired or may skip other files.  There are
  445. frequently files or directories  on the root directory
  446. which are useless for backup purposes since they relate to
  447. file undeletion, format recovery, antiviral protection, or
  448. some other utility purpose. If that is the case, then ZBACK
  449. can be modified to exclude such files.  Another possible
  450. problem is that, by default PKZIP (and therefore ZBACK)
  451. does not back up any file with the Hidden or System file
  452. attributes set.  This is probably the way you want it
  453. anyway, but if necessary ZBACK can be modified to back
  454. these up as well.
  455.  
  456.  
  457. V.   Environment and operation.
  458.  
  459.      ZBACK is designed to run under MS-DOS 3.0 (preferably
  460. MS-DOS 3.3) or later.  It uses PKZIP 2.0x to perform
  461. backups.  (I have done all testing using PKZIP 2.04g,
  462. registered version.)  No other programs are used -- all
  463. functions are performed by batch commands.  PKBACKUP has
  464. been tested under MS-DOS 6.2 on a 386 clone with 4 MB RAM
  465. memory with EMS and XMS support. Your mileage may vary, but
  466. it worked fine for me. ZBACK tries to be tolerant about
  467. uppercase/lowercase, and provides default operation if
  468. omitted.  It does careful checking as to legal SOURCE and
  469. TARGET drives, and provides an informative usage message if
  470. a violation is discovered.  If a runtime error occurs,
  471. ZBACK attempts to diagnose the problem and present an
  472. appropriate error message.
  473.  
  474.      NOTES: ZBACK will switch to the drive which is being
  475. backed up, uses Maximum compression, MS-DOS VERIFY ON, and
  476. uses PKZIP or system defaults to determine memory usage.
  477. It will span disks, if necessary, and always starts out by
  478. formatting each floppy it uses.  It does a quick format, if
  479. possible.  The ZIP file produced has the following name on
  480. all floppies in a backup set:
  481.  
  482.           Type           Name
  483.           ----           ----
  484.           FULL           full_X.zip
  485.           WEEKLY         week_X.zip
  486.           DAILY          day__X.zip
  487.  
  488. where X is the SOURCE drive from the invocation.
  489.  
  490.     Zback makes no permanent changes to your environment
  491. settings or default directory.
  492.  
  493.  
  494. VI. Modifying ZBACK.
  495.     No modifications can be done. However ZBACK will
  496. recognize any PKZIP related environment settings or
  497. configurations you have established for PKZIP.
  498.  
  499.     A configurable version of ZBACK is offered for a
  500. modest fee. This is our Purchased Version called ZBACK 2.0
  501.     (See Section VIII for Information)
  502.  
  503.     ZBACK 2.0 has been written with the certainty of
  504. change as a design criteria.  Dialog box defaults may be
  505. altered by use of a variety of dialog and option box
  506. selections. It is a simple matter to change default Backup
  507. Type or source or target drives, or default disk or tape
  508. format operation. The use of the MS-DOS VERIFY is
  509. selectable.
  510.  
  511.     An additional area of improvement for ZBACK 2.0 is the
  512. option to select the PKZIP compression method. ZBACK uses
  513. the PKZIP eXtra compression to reduce the number of
  514. diskettes. If you have a slow machine (I have a 20 mhz 386
  515. Clone), then it may be worth it to you to use a different
  516. or faster compression level and use more floppies.
  517.  
  518.  
  519. VII. Further suggested reading.
  520.  
  521.      If you are interested and want to know more about
  522. concepts described in this document, I would suggest
  523. reading the "PKZIP 2 for DOS Manual" which is given with
  524. every registered copy of PKZIP 2.x.  (Don't just use the
  525. shareware version, buy the real thing.) There is a section
  526. in the book called "Tutorial" which has a subsection
  527. "Storing and Rebuilding Directory Structures" which I
  528. recommend.  Also, when in doubt, consult the help screens
  529. for PKZIP and PKUNZIP.
  530.  
  531.  
  532. VIII.     Disclaimer, author, and credits.
  533.  
  534.      ZBACK.EXE and this file ZBACK.DOC are not public domain.
  535. There is no charge or fee expected for this program. You may
  536. use them, modify them, and/or abuse them as you see fit.
  537. If however you wish, include them as part of a package you sell
  538. please bear in mind that Derbyshire Associates retains all rights
  539. as Author of the product.
  540.  
  541.     Naturally, I assume no liability for ANYTHING that goes
  542. wrong, either directly or indirectly. If you want a
  543. warranty, go to someone else, or purchase Zback 2.0.
  544.  
  545.     On the other hand, if you want to thank me (the author)
  546. or obtain the Purchased Version which permits alterations
  547. to defaults plus other goodies (including support) send
  548. $20.00. This should get my attention. I can be reached at
  549. the following address:
  550.  
  551.                 Robert Derbyshire
  552.                 43 Lehar Crescent
  553.                 Willowdale, Ont
  554.                 M2H 1J4
  555.  
  556. Email : Robert.Derbyshire@CRS.COM
  557.  
  558. Zback 2.0 will be mailed on 5.25" disk media unless
  559. otherwise specified. Licencing of ZBACK 2.0 will be for one
  560. machine only. Single-site licence is available for only
  561. $3.00 per machine on top of the regular fee.
  562.  
  563. Note: Canadian Individual Residents can forget the GST and
  564. PST. I will eat this. Canadian Corporations/Business's
  565. please send the GST and PST (PST Ontario). (You might as
  566. well in light of the fact its deductable or just a pass
  567. through)
  568.  
  569.  
  570.  
  571.  
  572. Special Acknowledgement to:
  573.           Phil Hair
  574.           961 Reynolds Rd., #125
  575.           Toledo, OH  43615
  576. Author of PKBackup.BAT and PKBACKUP.DOC (a batch file PKZIP
  577. backup utility). Phil's concept gave me the idea to create
  578. ZBACK as a dialog driven EXE.
  579.  
  580.  
  581. PKZIP and PKUNZIP are registered trademarks of PKWARE, Inc.
  582.  
  583. MS-DOS is a registered trademark of Microsoft Corporation.
  584.  
  585. IBM, IBM PC/AT, and PC-DOS are registered trademarks of
  586. International Business Machines Corporation.
  587.  
  588.     The author is not associated with PKWARE, Inc.
  589.  
  590. -----------------------------------------------------------
  591. ------------------ END OF DOCUMENT ------------------------
  592. -----------------------------------------------------------
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.