home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d7xx / d767 / backup.lha / BackUP / BackUP.doc < prev    next >
Text File  |  1992-11-21  |  22KB  |  431 lines

  1. ----------------------------------------------------------------------------
  2. ******************************* Legal Stuff ************* November 8, 1992 *
  3. ----------------------------------------------------------------------------
  4.  
  5.                        BackUP V3.77 © Felix R. Jeske
  6.  
  7. BackUP is a shareware, freely distributable hard drive backup program for
  8. the Amiga under Workbench 2.0.  If you like BackUP and regularly use it, I
  9. would appreciate being sent a $15 contribution to the following address:
  10.  
  11.                               Felix R. Jeske
  12.                         3746 North Oleander Avenue
  13.                           Chicago, IL  60634-3210
  14.                                     USA
  15.  
  16.                      Usenet: fjeske@amiganet.chi.il.us
  17.  
  18. Contributors will receive the latest version of BackUP (I am already adding
  19. a few other goodies) plus a few other programs I've written but not
  20. published.  Contributors of $25 or more will receive the complete
  21. copyrighted source in C.
  22.  
  23. Suggestions, comments and criticisms (ouch) are also welcome at the above
  24. address or on Usenet.  I am quite proud of BackUP and gladly support it.
  25. If any problems are encountered, PLEASE report them!  The fastest way to
  26. get a problem report to me is by leaving e-mail at the above Usenet
  27. address.  I have sent out disks at my own expense to users who report
  28. problems to correct them.
  29.  
  30.                                 DISCLAIMER
  31.  
  32. FELIX R. JESKE MAKES NO WARRANTIES EITHER EXPRESSED OR IMPLIED, WITH
  33. RESPECT TO THIS SOFTWARE, ITS QUALITY, PERFORMANCE OR FITNESS FOR ANY
  34. PARTICULAR PURPOSE.  THIS SOFTWARE IS PROVIDED "AS IS."  THE ENTIRE RISK
  35. AS TO QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH THE USER.  IN NO
  36. EVENT WILL FELIX R. JESKE BE LIABLE FOR DIRECT, INDIRECT, INCIDENTAL OR
  37. CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT IN THE SOFTWARE.
  38.  
  39. ----------------------------------------------------------------------------
  40. ********************************* Credits **********************************
  41. ----------------------------------------------------------------------------
  42.  
  43. Many thanks go to the developers of ARP who have created an extremely
  44. useful collection of routines in one library and have made it easy to
  45. program as well.
  46.  
  47. Also, thanks go to Holger P. Krekel and Olaf Barthel for use of their
  48. lh.library.  This is an excellent version of the LZH compression algorithm
  49. that, again, is very easy to program.
  50.  
  51. ----------------------------------------------------------------------------
  52. *************************** System Requirements ****************************
  53. ----------------------------------------------------------------------------
  54.  
  55. BackUP requires Workbench 2.0, 1MB of RAM, a hard drive (obviously) and as
  56. many floppy drives as you can afford.  BackUP also requires arp.library V39
  57. (available on FF123, not distributed with BackUP) and lh.library V1
  58. (available on FF436, distributed with BackUP)
  59.  
  60. ----------------------------------------------------------------------------
  61. ***************************** Historical Info ******************************
  62. ----------------------------------------------------------------------------
  63.  
  64. BackUP was initially developed on a A500 under Aztec C 3.6a.  Workbench 2.0
  65. additions were made on a A3000 under Aztec C 5.2a.
  66.  
  67.    V3.77 -  Converted array indexing to pointers to save code
  68.  
  69.    V3.76 -  Fixed maximum number of files (2000) on restore problem
  70.  
  71.    V3.75 -  Fixed internal tracking of bad tracks
  72.  
  73.    V3.74 -  Added support for hard file links
  74.  
  75.    V3.73 -  Added optional bell on message and disk change requestors
  76.  
  77.    V3.72 -  Fixed disk labeling bug
  78.  
  79.    V3.71 -  Fixed directory selection bug and improved selection overall
  80.  
  81.    V3.70 -  Improved input-blocking code for multiple requests
  82.  
  83.    V3.69 -  Added status (Reading..., Writing..., etc.) display
  84.  
  85.    V3.68 -  Rearranged menu system
  86.  
  87.    V3.67 -  Added two different types of backup logs
  88.  
  89.    V3.64 -  Squashed file protection bug
  90.  
  91.    V3.63 -  Squashed empty file bug
  92.  
  93.    V3.62 -  Squashed CrossDOS incompatibility
  94.  
  95.    V3.61 -  Squashed drive motor bug
  96.  
  97.    V3.6  -  Added color requestor and support for high density drives
  98.  
  99.    V3.5  -  First public release
  100.  
  101.    V3.4  -  Added compression using lh.library
  102.  
  103.    V3.0  -  Discontinued use of req.library and added custom gadgetry
  104.  
  105.    V2.0  -  Added gadgets using req.library
  106.  
  107.    V1.0  -  Added primitive interface using autorequestors and the console
  108.  
  109.    V0.9  -  Initial development of the backup and restore engines
  110.  
  111. I started developing BackUP after my purchase of a $700 (groan) 30MB Supra
  112. hard drive.  Not wanting to spend any more money than I had to, I started
  113. on BackUP after reading about programming the trackdisk.device in an issue
  114. of Transactor for the Amiga by Bob Rakosky (August '89:  Vol. 2, Issue 5).
  115. After figuring out how to do raw reads and writes to the floppy drive, I
  116. learned about parsing a partitions directory structure.  I heard about ARP
  117. in another issue of Transactor and finally got my hands on it.  I
  118. incorporated req.library after buying CygnusEd which uses it quite heavily.
  119. The current version of the code is almost identical to that under
  120. req.library except for cosmetics.  I borrowed the current gadgetry style
  121. from AVS (Application Visualization System), a scientific visualization
  122. package I program and use at work on UNIX workstations.  Finally, I found
  123. lh.library on Fred Fish Disk #436 and included compression as an option.
  124.  
  125. ----------------------------------------------------------------------------
  126. ******************************** Benchmarks ********************************
  127. ----------------------------------------------------------------------------
  128.  
  129. The target machine for BackUP is any Amiga with at least two (2) floppy
  130. drives.  Being restricted to one floppy drive eliminates the continuous
  131. write feature.  BackUP does not support tape drives since I don't have one.
  132. Compression is only recommended for fast machines or if you really want to
  133. save disks (55% compression is typical) as the on-the-fly compression does
  134. slow down the backup.  Compression actually speeds up the restore since the
  135. speed bottleneck is the floppy read/write time.  The decompression process
  136. is so fast that reading in less data, decompressing it in memory and
  137. writing it out to the hard drive is faster than reading and writing out the
  138. original uncompressed data which took longer to load from the floppy.
  139.  
  140. My only real comparison of the capabilities of BackUP to other hard drive
  141. backup programs is my experience with HDBackup (shipped with my A3000) and
  142. other PD backup programs I've uploaded.  Since most of the PD backup
  143. programs I've obtained are CLI based, I only compare BackUP and HDBackup
  144. since the CLI is not well suited to perform such an operation.  Therefore,
  145. the following is a comparison of BackUP and HDBackup working on 294 files
  146. comprising about 1.1MB of data with compression and verify on.  It shows
  147. the following:
  148.  
  149.                          BackUP                        HDBackup
  150.                          ------                        --------
  151.  
  152. Executable Size            36K                            81K
  153.  
  154. Memory Usage              430K                           475K
  155. While Backing
  156.  
  157. Time to Backup            2:56                           4:03
  158.  
  159. Number of Disks             1                              3
  160.  
  161. I could not figure out why HDBackup needed three (3) disks to backup 1.1MB
  162. of data, especially when full compression was enabled.  In uncompressed
  163. form, it should have only occupied two disks.
  164.  
  165. ----------------------------------------------------------------------------
  166. ******************************* User Docs **********************************
  167. ----------------------------------------------------------------------------
  168.  
  169.                                   BACKUP
  170.  
  171. The backup procedure consists of selecting the partition to backup, the
  172. specific directories and files to backup within the partition, selecting
  173. which floppy drives to use during the backup and finally the swapping of
  174. disks in and out of the floppy drives.
  175.  
  176. When BackUP boots up, it polls the machine for all hard drive partitions
  177. and all floppy drives.  A gadget for each is created on the main screen.
  178. The user need only press on one of the labeled partition buttons to start
  179. reading the complete directory contents into memory.  When done, a standard
  180. file requestor displays the entire directory structure.
  181.  
  182. A few methods are available to the user as to how files are selected to be
  183. included in the backup.  The order of the methods chosen is important.  For
  184. example, selecting a particular file in a directory and then deselecting
  185. the entire directory will deselect that file.  The following lists the
  186. order in which the selection process should proceed.
  187.  
  188.    1) The Incremental/Full button changes whether files with their archived
  189.       bits set are included in the selected file list.
  190.  
  191.    2) The Include and Exclude wildcard patterns are convenient ways to
  192.       include/exclude large groups of files.  A file is selected for backup
  193.       if it matches the Include pattern and does NOT match the Exclude
  194.       pattern.  The ARP pattern matching system is used and therefore
  195.       asterisks (*) can be used in place of Commodore's global wildcard (#?).
  196.       Also patterns can be ORed together via the pipe (|) operator to form
  197.       more complex pattern such as:
  198.  
  199.                                *.(c|h)|*.doc
  200.  
  201.       which would match all files ending with either a .c, .h or .doc
  202.       extension.
  203.  
  204.    3) Whole directories can be manually included or excluded by single
  205.       clicking on them in the file requestor.  Directory names with a
  206.       highlighted background indicate that all the files in that directory
  207.       are selected.  Double clicking on a directory name changes to that
  208.       directory.  All non-empty directories have a much-greater-than sign
  209.       (») appended to their name denoting that they may be entered.
  210.  
  211.    4) Finally, individual files can be selected (unselected) by single
  212.       clicking on them in the file requestor.
  213.  
  214. After choosing the files to be backed up, the user can press the buttons for
  215. each of the floppy drives BackUP will use during the procedure.  It is
  216. recommended that as many drives be used as available.  BackUP automatically
  217. formats disks as it writes and also switches between drives without any user
  218. intervention (continuous write).  This speeds the process up by constantly
  219. writing to one drive while the user is changing the disk in another.
  220.  
  221. Finally, a number options may be set in the menu bar:  compression, verify,
  222. logs, beeping and the palette.  BackUP performs on-the-fly compression by
  223. reading in small (11K) blocks of files, compressing them and asynchronously
  224. writing them to disk.  The asynchronous part allows BackUP to read from the
  225. hard drive and write to the floppy drive simultaneously.  Compression can
  226. reduce the number of disks used by a factor of two (I have seen 2MB written
  227. to 1 disk).  Compression can, however, slow down the backup since the
  228. compression process takes time and degenerates the backup to a synchronous
  229. process (read, compress, write).
  230.  
  231. The verify option specifies whether a read pass of the tracks written to
  232. the floppy is made after the format/write pass.  The backup process is sped
  233. up considerably with verify off, however, it is not recommended since the
  234. integrity of the data is unknown.
  235.  
  236. Two types of backup logs are available:  sortable and printable.  The
  237. sortable type simply lists the file, its path, creation date, size and
  238. backup status in tab separated columns that can be passed onto other codes
  239. to be sorted at will.  The second backup log type lists by directory the
  240. same information.  As the name suggests, it is more appropriate to be
  241. printed for future reference.  The name of the backup log file can be
  242. chosen when either type log file is selected.  The current date may be
  243. automatically put into the name (in DD-MM-YY format) by placing a %s
  244. somewhere in the name.  Note also that this name is only a root name and
  245. that either .inc or .ful is appended to the log name depending on the
  246. backup type.
  247.  
  248. The beep option allows the user to choose whether or not an audible beep
  249. is made when a pop up message and/or a disk request is made.  This is useful
  250. if the user walks away from the machine during the backup or restore
  251. process.
  252.  
  253. Finally, the color palette may be changed to suit the user's preferences.
  254. As mentioned above, the gadgetry style was modeled off of AVS.  The default
  255. color map was chosen to enhance the 3D feel of the interface.  Please note
  256. that users should at least make colors 1 and 8 the same.  Complement mode
  257. highlighting is used and if these colors are not the same the background
  258. color of the buttons pressed in will change.  But then again, you may want
  259. this.
  260.  
  261. All of the options (include/exclude wildcards, compression state, verify
  262. state, backup type, etc.) can be saved as the defaults by choosing the
  263. "Save Configuration" option in the Options menu.  Upon subsequent boot ups,
  264. BackUP will load the configuration file and automatically set the
  265. previously saved defaults.
  266.  
  267. After all this is completed, the user need only press the "Start Backup"
  268. button and begin swapping disks.  During the backup, a fuel gauge bar fills
  269. representing the completion of the backup.  Also, the current file being
  270. backed-up as well the current disk being written to and the total number of
  271. files and bytes backed-up are constantly updated.  The disks should be
  272. labeled by date and disk number since BackUP will request numbered disks
  273. during the restore procedure.  The user may halt the process at any time by
  274. pressing the "STOP" button.  Note that the process will not actually stop
  275. until the current file is completely written.
  276.  
  277. After the files are copied to floppy, BackUP writes out the directory
  278. structure.  Only the directories that contain backed-up files are written in
  279. order to save space.  This means that, on full backups, empty directories
  280. will not be saved, and, therefore, cannot be restored.
  281.  
  282. ----------------------------------------------------------------------------
  283.  
  284.                                   RESTORE
  285.  
  286. The restore procedure is very similar to the backup procedure with the
  287. exception that the list of files is read from the floppy set instead of the
  288. hard drive.
  289.  
  290. When BackUP boots up, the user need only press the "Start Restore" button
  291. to have BackUP read a partition's directory structure off floppy.  BackUP
  292. will request that the last disk of a backup set be inserted into the first
  293. available drive to start this process.  BackUP may ask that the previous disk
  294. be inserted depending if the directory structure write overlapped multiple
  295. disks.  When finished, the user can select and deselect files just as in the
  296. backup procedure with the exception that the Incremental/Full button is not
  297. available.
  298.  
  299. After choosing which files to restore the user should press the "Start
  300. Restore" button again.  The same window with fuel gauge bar will appear
  301. and BackUP will request particular numbered disks to be inserted in the
  302. available drives.  Files are restored to their previous location with date
  303. stamp, file note and protection bits restored as well.  Directories will be
  304. made if necessary.
  305.  
  306. ----------------------------------------------------------------------------
  307. ***************************** Known Problems *******************************
  308. ----------------------------------------------------------------------------
  309.  
  310. There are two known problems with the program.  The first is that although
  311. a "CANCEL" button is included on a number of popup requestors, it is not
  312. always implemented and therefore pressing it just brings up the same
  313. requestor.  This is true only for requestors with red text (as opposed to
  314. white) that appear in the middle of screen that usually request that a disk
  315. be (re)placed in a drive (usually, truly canceling the request will destroy
  316. the backup or restore process).
  317.  
  318. This is not really a problem but a known bad interaction.  If BackUP is run
  319. with blitzdisk (V2.00 © 1989 Microsmiths), the read partition process is
  320. slowed down substantially (the other portions of the code don't seem to be
  321. affected).  I can only figure that both processes are contending with the
  322. CPU and therefore BackUP visibly slows down.  If anyone has any ideas as to
  323. a fix for this, I'd be happy to hear it.
  324.  
  325. ----------------------------------------------------------------------------
  326. ***************************** Release Notes ********************************
  327. ----------------------------------------------------------------------------
  328.  
  329. Release                              Comments
  330.  
  331.  V3.77      This version includes some optimizations of array addressing that
  332.             were converted to pointers.  For example, tracks[numtracks++]
  333.             was converted to *tracks++.  This and other small tweeks led to
  334.             1100 bytes of code being saved.  
  335.  
  336.  V3.76      This version fixes a bug concerning the maximum number of files
  337.             that can be restored.  In order to save memory, BackUP dynamically
  338.             allocates buffers to some initial size, then, whenever they are
  339.             about to be exceeded, they are resized.  BackUP forgot to resize
  340.             the file buffer (currently set to 1000 files).  It is resized
  341.             correctly during the backup procedure so an unlimited number of
  342.             files can be backed up (but not then restored).
  343.  
  344.  V3.75      This version fixes a long-standing bug that screwed up internal
  345.             tracking of bad tracks on backup floppies.  If a track refuses
  346.             to verify, internal updates are necessary to reflect the new
  347.             track numbers at which file data has been moved to.  Due to
  348.             the asynchronous operation, this becomes complicated since data
  349.             is buffered and verification of data lags behind writing of data.
  350.             Put simply, BackUP would determine track n-1 is bad when it is
  351.             ready to write out track n so it would have to move track n-1
  352.             data to wherever and track n data to wherever+1.
  353.              
  354.  V3.74      This version adds support for hard file links.  The link is
  355.             examined to determine where it is pointing to and this
  356.             information is save.  On restore, the link is restored via
  357.             MakeLink().  This, however, requires that the destination file
  358.             be present to be successful.  BackUP, therefore, restores all
  359.             real files first and then restores file links.  If the user did
  360.             not restore the destination file or else intentionally deleted
  361.             it, the MakeLink() will fail and the user will be informed.
  362.             Soft link are not yet supported.  Directory links are ignored.
  363.  
  364.  V3.73      This versions adds an optional audible bell cue when either
  365.             messages pop up or a disk change is requested.
  366.  
  367.  V3.72      This version fixed a bug in the labeling of disks.  Proper error
  368.             checking was not performed to ensure that the disk label was
  369.             actually written.  If a user popped out a disk during the
  370.             labeling process, the label was not written possibly corrupting
  371.             the backup set.
  372.  
  373.  V3.71      This version fixed the directory selection bug in which BackUP
  374.             lagged in noting when a directory was selected (i.e., all the
  375.             files in the directory were selected).  In addition, the
  376.             background color of a selected directory is changed to note its
  377.             state.
  378.  
  379.  V3.70      This version improves the manner in which input is blocked to
  380.             windows when they are superseded by another request.  Earlier
  381.             versions used a cumbersome system that failed to work on
  382.             multiple, overlapping user requests.
  383.  
  384.  V3.69      This version adds a flashing status display informing the user
  385.             of the exact operation being currently performed (Reading...,
  386.             Writing..., Compressing..., Decompressing... and Verifying...).
  387.             Note that Writing... and especially Verifying... flicker so
  388.             fast that they sometimes cannot even be seen.
  389.  
  390.  V3.68      This version reorganizes the menu system by adding a second menu
  391.             that is just for the growing list of backup options.  The first
  392.             menu is a standard Project menu.
  393.  
  394.  V3.67      This version adds two types of backup log files: sortable and
  395.             printable.
  396.  
  397.  V3.64      This version removes a bug with read protection on a file.  A
  398.             proper check was not made that an error did not occur during
  399.             the read of a file (as opposed to opening it which was checked).
  400.             This failure to check the read status also caused a problem if
  401.             a file was removed during the backup procedure.
  402.  
  403.  V3.63      This version removes a serious bug with empty files.  Backups
  404.             made prior to this release cannot restore empty files as they
  405.             crash the machine (oops!).  As a work around, users should
  406.             remove empty files from the restore list prior to restoring.
  407.             I found this one restoring my 50MB Quantum onto my new 236MB
  408.             ST3283N.  I also removed a few potential divide-by-zeros if the
  409.             user backs up zero bytes of files.
  410.  
  411.  V3.62      This version removes an incompatibility with CrossDOS.  The DIx:
  412.             and PCx: devices where found by BackUP which called up a system
  413.             requestor.
  414.  
  415.  V3.61      This version actually squashes two bugs 1) the drive motor was
  416.             left running when the user was informed that the current disk
  417.             was write protected and 2) a tab creeped into one of the messages
  418.             which printed as a square block in backup.font.
  419.  
  420.  V3.6       This version contains two additional features as per Olaf
  421.             Barthels request: a color requestor and support for high-
  422.             density drives.  I am uncertain of the latter since I do not
  423.             own such a drive and cannot, therefore, verify my implementation.
  424.             I would appreciate user feedback on this.  Questions I have
  425.             concern what happens when a user puts a low-density disk into
  426.             a high density drive?  I am not certain I handle this case
  427.             correctly since the code I inserted queries drive geometry not
  428.             disk geometry and I don't think a DD disk can be formatted as HD.
  429.  
  430.  V3.5       Original public release.
  431.