home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / extras / superduper / superduper.doc < prev    next >
Text File  |  1994-07-02  |  64KB  |  1,430 lines

  1.  
  2.  
  3. *
  4.  
  5.    This document describes `SuperDuper' 2.02, a freeware high-speed
  6. disk copier and formatter. Typical timings are less than 100s for a
  7. disk-to-disk verified copy, or 38s for a four disks non-verified format.
  8.  
  9.  
  10. Introduction
  11. *************
  12.  
  13.    `SuperDuper' is a disk copier/formatter that tries to be to disk
  14. handling what Mostra is to IFF displaying: a fast, compact,
  15. system-friendly tool which combines speed, features, and some bells and
  16. whistles to make your life easier.
  17.  
  18.    By "fast" I mean exactly what you're hoping--blazingly fast. A disk
  19. is usually copied and verified in less than 100s. Without verify, the
  20. time drops to 69s. You can buffer a disk in RAM in less than 36s, and
  21. then making a verified copy takes 67s, while a non-verified copy takes
  22. less than 36s. Adding another destination drive increases verified copy
  23. times by 34s, but hardly changes non-verified copy times (the Amiga can
  24. write more than one drive at a time; I just need a few tenths of a
  25. second in order to measure the drive speed and step the heads). Thus,
  26. if you really trust your drives and your media you can make four copies
  27. in 38s. These timings can vary with the system configuration, the
  28. multitasking overhead, the disposition of the blocks on the surface of
  29. the disk, the state of the DATE option (which requires a separate write
  30. on the root block track for each disk) and the DMA access of the custom
  31. chips (previous users of `SuperDuper' might think this release is
  32. slower than the previous one: it is really faster, but `SuperDuper' 1.0
  33. was a little bit optimistic about its copy times--the motor on/off
  34. delays were erroneously skipped).
  35.  
  36.  
  37. Changes
  38. ========
  39.  
  40.    `SuperDuper' 2.01 has almost no visible changes with respect to
  41. `SuperDuper' 2.0, apart from the extension of the ARexx macros, which
  42. is now `supdup' instead of `sd' in order to avoid conflicts with other
  43. programs.
  44.  
  45.    However, it was discovered that many flakey drives have power supply
  46. problems when four of them are connected to an Amiga. Sometimes the
  47. head of a drive won't step, and this error cannot be caught even by
  48. verifying, since the drive doesn't know where the head is--its position
  49. has to be tracked via software.
  50.  
  51.    In order to prevent this annoying phenomenon, which was the only
  52. known source of bad copies, the head moving strategy was slightly
  53. changed. `SuperDuper' no longer steps multiple heads at the same time.
  54. This marginally increases (about 3 tenths of second for each
  55. destination) the non-verified copy times, but gives you a 100%
  56. reliability even on out-of-specs systems.
  57.  
  58.    If something wierd happens in spite of this patch, it can be tracked
  59. at recalibration time. When a mismatch between `SuperDuper''s internals
  60. and the drive signals is detected, a requester `Error while
  61. recalibrating' is issued. In this case, you can try to slow down the
  62. head moves using the `SetTDDelay' utility which is supplied with
  63. `SuperDuper'.
  64.  
  65.    The only other noticeable enhancement is the fact that now
  66. `SuperDuper' checks the `NOCLICK' flag separately for each drive. If
  67. you have some drives which support `NOCLICK' and somes which don't,
  68. `SuperDuper' will click only the allowed drives. Previously, the
  69. information in the public unit of the drive 0 was used for all the
  70. drives. The utility `ToggleClick' which is supplied with `SuperDuper'
  71. allows to hush selectively any unit. Moreover, a new `noclick' ARexx
  72. command allows to force no-clicking selectively even under 1.2/1.3 
  73. (see Selection Commands).
  74.  
  75.    It should be remarked that `SuperDuper' is much less tolerant than
  76. trackdisk.device. Bad drives can work (almost) perfectly with
  77. trackdisk.device, because of its many, frequent cross checks. For
  78. instance, at each disk insertion some track is read by DOS, and if the
  79. track number doesn't match with trackdisk's internals, a recalibration
  80. is started. `SuperDuper' instead doesn't read anything before copying
  81. (for speed reasons); thus, if your drive has a flakey DSKTRACK0 signal
  82. `SuperDuper' could believe it's on track 0 while it isn't.
  83.  
  84.    `SuperDuper' 2.02 is a minor maintenance release. Let alone a couple
  85. of bug fixes (notably the French keyboard problem), support for Release
  86. 2 Public Screens was implemented (see The CLI Interface). Moreover, the
  87. `requesters' ARexx command, which has always been present, is now
  88. documented (see Selection Commands).
  89.  
  90.  
  91. Main Features
  92. ==============
  93.  
  94.    * `SuperDuper' copies, formats and checks from/to any combination of
  95.      Amiga drive(s).
  96.  
  97.    * `SuperDuper' has a switchable 880K RAM buffer that allows for any
  98.      number of duplications while reading the source disk only once.
  99.      The combination of destination drives can be changed at each pass.
  100.      If you have a hard disk, you can create on it an image file that
  101.      will act as a buffer. This file can be saved and reused many
  102.      times. Also, all kinds of virtual disks are supported for
  103.      buffering (VD0:, RAD:, FMS:...). Morever, a count is kept of the
  104.      copies generated by a buffered disk.
  105.  
  106.    * `SuperDuper' checksums the RAM buffer. If some badly written
  107.      program is trashing your memory, you are alerted. Thus, buffered
  108.      copies are as safe as direct copies.
  109.  
  110.    * `SuperDuper' also checks its internal DMA buffers at each write.
  111.  
  112.    * `SuperDuper' can allocate a buffer of less than 880K. In this
  113.      case, it will use real-time compression in order to do multiple
  114.      pass copies with maximum efficiency. Most disks can be wholly
  115.      buffered on a 1MB machine. You can also make multiple copies with
  116.      multiple passes. Copy times are (almost) unaffected.
  117.  
  118.    * `SuperDuper' will automatically retry tracks which produce a
  119.      verify error. The number of retries is programmable. A simple
  120.      visual clue is given to the position of the error, but on request
  121.      detailed error information printing is available.
  122.  
  123.    * `SuperDuper' is highly system-friendly--the use of CPU time is
  124.      negligible, so you can multitask efficiently.
  125.  
  126.    * `SuperDuper' has the option of incrementing the creation date of
  127.      the copy so AmigaDOS doesn't get confused. If, however, the option
  128.      is switched on and the disk is not an AmigaDOS disk, `SuperDuper'
  129.      won't increment the date.
  130.  
  131.    * `SuperDuper' is faster than diskcopy--actually it pushes the
  132.      drives to their limits. At the time of this writing, `SuperDuper'
  133.      is the fastest Amiga copier both from a "pure" (physical time) and
  134.      from a "per-copy" (real time for each copy when a big number of
  135.      copies of the same disk is produced) point of view.
  136.  
  137.    * `SuperDuper' alerts the user with sound (and optionally voice)
  138.      about the operations in progress--so you can really be doing
  139.      something else!
  140.  
  141.    * `SuperDuper' can format both OFS and FFS disks.
  142.  
  143.    * `SuperDuper' displays a list of the last few disks copied. If you
  144.      do a lot of copying, you'll find this feature more than a little
  145.      useful.
  146.  
  147.    * `SuperDuper' can manage the Amiga drives without help from the
  148.      trackdisk.device. Through the supplied utility `SDBootInstall',
  149.      you can create a boot disk which will keep the system away from
  150.      your drives, giving you back more than 30K per unit. This is very
  151.      useful when doing intensive buffered copying on a 1M machine.
  152.  
  153.    * `SuperDuper' can automatically start any copy or format operation
  154.      by monitoring the disks' extraction and insertion.
  155.  
  156.    * Almost all elements of the 3-D, Release 2-like graphical user
  157.      interface have keyboard equivalents. When possible, Release 2
  158.      features like TAB gadget cycling and window zooming were supported.
  159.  
  160.    * `SuperDuper''s window can be opened on any public screen under
  161.      Release 2.
  162.  
  163.    * The start/end cylinder of a copy is programmable.
  164.  
  165.    * Unique numbered names can be automatically generated while
  166.      formatting.
  167.  
  168.    * `SuperDuper' works under 1.2, 1.3 and 2.0.
  169.  
  170.    * `SuperDuper' has a time indicator.
  171.  
  172.    * `SuperDuper' has a beautiful name. 8^)
  173.  
  174.    * If this is not enough, an ARexx interface allows any kind of
  175.      customization. In particular, a startup ARexx script lets you set
  176.      up a custom configuration. Since `SuperDuper' can turn off its
  177.      graphical user interface via a command line switch, it is possible
  178.      to use `SuperDuper' as a CLI command by writing a suitable ARexx
  179.      macro. A switch allows you to shut down ARexx in order to gain
  180.      memory. ARexx macros can be launched via a file requester
  181.      (asl.library, arp.library and req.library are supported).
  182.  
  183.  
  184. First Steps
  185. ============
  186.  
  187.    To use `SuperDuper', you simply double-click on its icon. You will
  188. see five rows of gadgets. The first one has at most one gadget
  189. selected: it's the source. The second one lets you select the
  190. destination drive(s). The other lines contain option and action gadgets.
  191.  
  192.    Every gadget can be activated via mouse or keyboard (using the
  193. underlined letter). The line of destination drives can be controled by
  194. pressing SHIFT together with the underlined number. You can use `Q' or
  195. ESC to exit, instead of hitting the close gadget. Three of the string
  196. gadgets have underlined letters which activate them. Moreover, if you're
  197. running under Release 2, you can use `TAB' or `SHIFT-TAB' to pass from
  198. a string gadget to another one.
  199.  
  200.    To make your first copy, if you have two (or more) drives simply
  201. select in the first line the gadget for the drive which contains the
  202. source floppy, and in the second line the gadget(s) for the drive(s)
  203. containing the destination(s) (for the time being do not choose the
  204. same drive both as source and as destination). Then hit the GO gadget.
  205. After a while, the display will flash, a beep will be generated, and
  206. the copy will be finished. As each cylinder is copied, the elapsed time
  207. indicator is updated. Note that a first beep will be generated when the
  208. copy is almost finished, so you have time to prepare yourself.
  209.  
  210.    If you have only one drive, select it both as source and as
  211. destination. Then hit the BUFFER gadget, thus creating a RAM buffer.
  212. Depending on the memory available, it will be a full 880K buffer or a
  213. partial buffer. In the latter case, real-time compression will let
  214. `SuperDuper' get the best out of it. Now put in the source disk and hit
  215. the READ gadget: the buffer will be filled with the contents of the
  216. disk. If the progress bar reaches its maximum length, then the whole
  217. disk has been buffered. Pull out the source disk, put in the
  218. destination, and hit the GO gadget. The buffer will be written to the
  219. disk. If only a part of the source disk was buffered, put it in again,
  220. buffer it again (note that now the progress bar starts where it stopped
  221. before) and write it again. This process must be repeated until the
  222. whole disk has been copied. It is safer to set the write protect tab on
  223. the source disk, in order to avoid the unpleasing side-effects of
  224. source/destination mismatches.
  225.  
  226.  
  227. Gadgets
  228. ********
  229.  
  230.  
  231. The Action Gadgets
  232. ===================
  233.  
  234.    Four gadgets control `SuperDuper''s copy/format/check operations:
  235.  
  236. STOP
  237.      stops any operation. If pressed while the multi-pass real-time
  238.      compression buffer is selected and no operation is in progress, it
  239.      will empty the buffer and reset the pass count, thus allowing you
  240.      to buffer another source even if the previous one wasn't finished
  241.      (see The Buffering System). If you STOP immediately after starting
  242.      a copy operation and nothing has been drawn in the progress bar,
  243.      nothing has been written to the destinations.
  244.  
  245. READ
  246.      can be used only when a buffer is selected; it fills the buffer by
  247.      reading from the source drive.
  248.  
  249. GO
  250.      initiates a copy operation. If no buffer is selected, the source is
  251.      copied to the destination(s). If a buffer is selected, the content
  252.      of the buffer is written on the destination(s). If FORMAT is
  253.      selected, the destination drive(s) are formatted.
  254.  
  255. CHECK
  256.      is basically a READ without buffering. The source disk is scanned
  257.      for errors. No buffer is needed to use it. Note that `SuperDuper'
  258.      will detect trackdisk.device related errors, but it won't find DOS
  259.      checksum errors (for this purpose, for instance, you can use
  260.      `FixDisk').
  261.  
  262.    When `SuperDuper' starts an operation which involves reading a disk,
  263. i.e., READ, CHECK and non-buffered GO, it scrolls up the name list and
  264. marks the current drive as `<UNKNOWN>'. This happens because it can't
  265. know if the disk is a DOS disk before reading track 0. After less than
  266. a second, the track will be read, and the name will be changed to
  267. `<NDOS>' if the disk is not a DOS disk. Otherwise, as soon as the track
  268. 80 is read (the progress bar is in the middle) the name of the disk
  269. will be displayed. However, if for any reason the name is incorrect
  270. (wrong format, read error, etc.) `SuperDuper' will name the disk `<BAD
  271. NAME>'. In this case, it is very likely that the root block is a little
  272. bit scrambled, so it's probably a good idea to turn off the DATE option
  273. gadget. Beware: if you are using a multi-pass buffer, the name of the
  274. disk could be unavailable at the first pass.
  275.  
  276.    If `SuperDuper' finds an error on read (or verify), it will retry
  277. reading (writing) the track, each time incrementing the first number of
  278. the RTRY:ERR indicator. If after a number of retries specified in the
  279. gadget RETRY# the error remains, `SuperDuper' will increment the second
  280. number (the error counter), restore the original retry counter and
  281. continue. A little rectangle in the progress bar will point out where
  282. the error occured. It will be positioned horizontally, proportionally
  283. to the track number, and vertically, proportionally to the unit number
  284. (the first line of rectangles shows errors on unit 0 and so on). Note
  285. that while retrying `SuperDuper' can't be stopped: don't set the RETRY#
  286. gadget to 99 unless you really know that's what you want to do. At the
  287. end of the copy, the first number shows how many retries leading to a
  288. successful write were done, while the second one points out the number
  289. of tracks with an actual error. If you want to get a very detailed
  290. error report, you can set `printerrors on' from ARexx. A console window
  291. will appear, and every wrong read, write or retry will generate a
  292. message explaining what doesn't work. Usually you will get bad
  293. checksums, but if a track is really scrambled `SuperDuper' could be
  294. unable to get the first sector after a gap, in which case nothing at
  295. all is recovered.
  296.  
  297.    The progress bar is drawn in a different color if you're doing an
  298. read, a format or a copy operation--so you can be sure you read the new
  299. chunk in the buffer, and so you can avoid formatting your floppies when
  300. you think you're copying something to them. The gadget corresponding to
  301. the action currently executing will remain highlighted in order to
  302. remind you what you're doing. Note also that the progress bar and the
  303. elapsed time indicator are not updated if something locks the screen
  304. (like using menus). The update is delayed until the screen is unlocked
  305. (thus `SuperDuper' won't get stuck as will almost all programs which do
  306. any rendering to their windows).
  307.  
  308.    The volume of the beeps produced by `SuperDuper' while copying can be
  309. set with the ARexx `volume' command.
  310.  
  311.    If you specify start/end cylinders different from 0/79 in the SC and
  312. EC gadgets, only the part of the disk specified will be copied. The
  313. main use of this option is for retrying some lazy disk (usually on the
  314. last tracks) if you're not satisfied with the number of retries issued
  315. by `SuperDuper'. Please refer to the section on the buffering system
  316. for some subtle interactions between the RAM/HD/VDisk buffer and the
  317. start/end cylinder selectors.
  318.  
  319.    While doing buffered copies, at each successful copy (that is,
  320. without errors) the CPY# indicator will be incremented. Thus you can
  321. know precisely how many disks you copied. Moreover, the counter will be
  322. incremented only if the operation ended on the last track of the disk
  323. and started from the first track of the buffer. This allows you to
  324. manually retry spare tracks by changing the CS/EC gadgets without
  325. getting spurious increments, and if a multi-pass copy is in progress
  326. only the last pass will actually increment the counter.
  327.  
  328.  
  329. The Copy Options
  330. =================
  331.  
  332.    Five gadgets control the copy/format options.
  333.  
  334. VERIFY
  335.      turns verify on and off (you can also format without verifying).
  336.      However, turning off verify is not recommended.
  337.  
  338. DATE
  339.      toggles on or off the change of the date of an AmigaDOS disk. This
  340.      change is necessary so AmigaDOS can distinguish otherwise
  341.      identical disks; if two truly identical disks are inserted in the
  342.      drives, AmigaDOS gets confused and crashes. However, if for some
  343.      reason you want a "physical" copy, you would turn off this option.
  344.      DATE will be ignored for a non-AmigaDOS disk.
  345.  
  346. FORMAT
  347.      enables formatting. When you hit GO, all destination drives will
  348.      be formatted. To copy again, you must deselect FORMAT by clicking
  349.      it again. If VERIFY is selected, the format process is verified.
  350.      Note that when you hit READ, FORMAT is automatically deselected.
  351.      This happens in order to avoid the unpleasing error of thinking
  352.      you're writing a buffered disk, while actually formatting it.
  353.  
  354.      The gadget prefixed by LABEL: allows you to choose a name that
  355.      `SuperDuper' will use while formatting. The name must be chosen
  356.      before clicking GO--it is disabled (ghosted) during the formatting.
  357.  
  358. INCNAME
  359.      makes easy to format a bunch of disks with different, unique
  360.      names. If this gadget is selected while formatting, `SuperDuper'
  361.      will scan the Label string gadget searching for a numeric pattern
  362.      (i.e., one or more digits) and will increment the pattern value
  363.      for each disk formatted. In case more than one pattern is present,
  364.      the last one is used. For instance, if you format four disks with
  365.      label `Foobar.000', the disks will be named `Foobar.001',
  366.      `Foobar.002',... and at the end of the copy the label gadget will
  367.      contain `Foobar.004', thus being ready for the next formatting.
  368.      The more digits, the more unique names. Since you can start from
  369.      any number, and after 99...9 the numeration wraps around, if you
  370.      need to start with 00...0 you can put in something like
  371.      `Foobar.999': The first disk will be labeled with `Foobar.000'
  372.  
  373. FFS
  374.      enables the formatting of FFS disks; for copying it is ignored.
  375.  
  376.  
  377. The Buffering System
  378. =====================
  379.  
  380.    Three gadgets control the full-featured buffering system of
  381. `SuperDuper'. Buffering is useful when you have to do a lot of copies:
  382. you read a disk only once, and then you can make as many copies as you
  383. want without rereading it. It also has other uses: if you have to
  384. create distribution disks (for instance for a commercial package) you
  385. can create them using high speed virtual floppies, such as Commodore's
  386. RAD: or Matt Dillon/Jim Cooper's FMS: disk. `SuperDuper' can then read
  387. from those virtual disks and make many copies on floppies at high speed.
  388.  
  389.    Since data integrity is a primary issue, `SuperDuper' checksums the
  390. RAM buffer. The possibility of writing a munged track is very low.
  391. Strict control is also kept on the validity of the buffer--you can't
  392. write random data on your disks inadvertantly.
  393.  
  394. BUFFER
  395.      allocates a RAM buffer. `SuperDuper' will try to get an 880K
  396.      buffer: if you don't have enough memory, a warning will be issued,
  397.      showing the number of buffers allocated (each buffer is 11K) and
  398.      warning you that the real-time compression system is activated.
  399.      Beware of the fact that many programs tend to crash under
  400.      low-memory conditions, so if you have 1MB or less you should close
  401.      everything you can before hitting BUFFER, and you should possibly
  402.      also use KILLSYS (see The User Interface Gadgets).
  403.  
  404.      The memory allocated will be used as a buffer to make multiple
  405.      pass copies. If `SuperDuper' can find 880K, the process is very
  406.      simple and uses very little of the CPU, but if (for instance on a
  407.      1MB machine) it's impossible to buffer a whole disk this way,
  408.      `SuperDuper' will use a real-time compression algorithm. As the
  409.      disk is read in the buffer, it is compressed in a special format.
  410.      The gain in size is usually 35% for empty tracks, 20-30% for text,
  411.      15-25% for programs and 5-10% for IFF ILBM images. Tracks which
  412.      can't be compressed are simply stored. The only disks which can't
  413.      really be compressed are disks filled with compressed files, like
  414.      .lzh or .zoo files, but for the others the size gain is enough to
  415.      buffer a whole disk on a 1MB machine. 8^)
  416.  
  417.      Of course, the compression overhead eats a lot of CPU power. The
  418.      algorithm has been devised in such a way that compression and
  419.      decompression are absolutely real-time, i.e., you will notice no
  420.      slowdown. However, beware of the fact that while doing compression
  421.      `SuperDuper' always fully uses the CPU. Even moving the mouse can
  422.      slow down the operation in progress. Anyway, if you have all of
  423.      your memory allocated for the buffer, it is definitely not a good
  424.      idea to do anything besides waiting for the copy to finish.
  425.  
  426.      A little side-effect of the allocation of all of the available RAM
  427.      is that some requester could be turned into an alert, or could
  428.      even disappear without waiting for the user to acknowledge it.
  429.  
  430. HDBUF
  431.      creates an 880K file in the current directory of `SuperDuper', and
  432.      uses this file as a buffer, exactly like BUFFER does with RAM. Of
  433.      course you must use it only if you have a hard disk, and you
  434.      started `SuperDuper' from it. The file contains the 1760 blocks
  435.      which form a disk in their natural order. The READ operation will
  436.      be a little slower, but if you have a good hard disk you should be
  437.      able to make copies as fast as with a RAM buffer. The file is
  438.      named `SD_Buffer', and it's accessed only during the copy
  439.      operations. This means that you can read or write it using the CLI
  440.      commands, or the Workbench (but you will have to supply an icon).
  441.      You can easily write an ARexx macro which retrieves/stores binary
  442.      images of a disk from/to `SD_Buffer' (see ARexx). Then
  443.      `SuperDuper' will use the new contents when writing to floppies.
  444.  
  445.      If you put a file named `SD_Buffer' in `SuperDuper''s directory
  446.      *before* clicking HDBUF, then `SuperDuper' will assume this is a
  447.      buffer file and will use it. You can even write directly to
  448.      floppies without reading anything. Note that usually the buffer
  449.      file is deleted when the HDBUF gadget is deselected, but if you
  450.      supply a buffer file before activating the gadget your file will
  451.      be left untouched.
  452.  
  453. VDBUF
  454.      is probably `SuperDuper''s most esoteric feature. By typing a
  455.      device name in the string gadget named VDNAME, you can select any
  456.      device (`SuperDuper' needs the Exec device name, e.g.,
  457.      `ramdrive.device' for the RAD: AmigaDOS device). The unit number
  458.      is taken from the gadget with the label VDUNIT#. The device you
  459.      specified will be used as a buffer for your disks. `SuperDuper'
  460.      expects the device to behave like the trackdisk.device, namely it
  461.      must be able to write data at specific offsets. The main devices
  462.      you can use, with their respective names, are:
  463.  
  464.     RAD:
  465.           the recoverable RAM drive. Configure it in your mountlist as a
  466.           floppy, and you can use it as a buffer (Exec name:
  467.           `ramdrive.device').
  468.  
  469.     FMS:
  470.           Matt Dillon/Jim Cooper's virtual floppy-on-hard disk (Exec
  471.           name: `fmsdisk.device').
  472.  
  473.     VD0:, etc.
  474.           other recoverable, sector-oriented RAM drives.
  475.  
  476.      The device you specify is checked on opening to see if it has
  477.      enough space to contain a full disk. The check is done simply on
  478.      the number of sectors available--if there are enough sectors, and
  479.      they are arranged differently than on a floppy, you will be able
  480.      to use the device as a buffer, but don't expect AmigaDOS to get
  481.      anything meaningful from it.
  482.  
  483.      *Warning*: many of these devices are buggy and return *no error*
  484.      on unsuccessful opening or failed size test. Some of them in this
  485.      case will trash your memory. Be sure that the device is configured
  486.      properly--try an AmigaDOS command on it first.
  487.  
  488.      Of course, many people will find incredible ways to use this
  489.      feature (for techies: if you want try something weird, consider
  490.      that `SuperDuper' reads 512 bytes at offset 900608 on opening to
  491.      test for size, and then reads 1760 chunks of 512 bytes, one for
  492.      each sector, for every copy. The sectors are read sequentially as
  493.      they are distributed on the disk, so if the device ignores the
  494.      offset indication, you can feed it with 880K of a continuous bytes
  495.      stream. Buffering is another story though--the offset indication is
  496.      important because `SuperDuper' places the blocks on the device "in
  497.      the right place" as soon as it encounters them).
  498.  
  499.    A BUFFER is considered non-valid as soon as allocated, because it
  500. will contain random info. To make it valid, you must read in a floppy.
  501. VDBUF and HDBUF instead assume the buffer is always valid, because it
  502. could be externally fed. This mechanism allows you to prepare, for
  503. instance, a distribution disk at high speed in RAD: or in your hard disk
  504. using FMS:, and then to copy it to floppies directly.
  505.  
  506.    In the same vein, `SuperDuper' will act slightly differently when
  507. determining if a buffer contains a DOS disk (if not, the incrementing
  508. of the date is inhibited even if selected). At read time, the
  509. information is recorded, but if at write time the pass starts from
  510. track 0, `SuperDuper' will re-fetch the DOS mark from the buffer and
  511. check it again. This way if for instance you externally feed a
  512. ramdrive.device with a diskcopy command `SuperDuper' will be aware of
  513. it and will increment the date if requested to do so.
  514.  
  515.    Some care must be taken in order to obtain what you really want when
  516. mixing the buffering features and the selection of the start/end
  517. cylinder. `SuperDuper' implements a reasonable mean of flexibility and
  518. reliability for these kinds of operations.
  519.  
  520.    When using VDBUF or HDBUF, the read/write operations start and end
  521. exactly where you specify with the start/end cylinder gadgets. Since
  522. `SuperDuper' has no control over what you do to the virtual disk while
  523. it's not accessing it, it has to assume you made it right.
  524.  
  525.    When using a RAM buffer, `SuperDuper' can clearly make some
  526. assumptions on its validity. In particular, just after allocation or a
  527. stopped READ it assumes the buffer is not valid.
  528.  
  529.    If you have a valid buffer and you change the start/end cylinders,
  530. there are two cases: either the buffer range and the start/end range do
  531. not intersect, in which case an error message is issued if you try to
  532. write the buffer, or there is a non-empty intersection, in which case
  533. the intersection will be written, i.e., the starting track will be the
  534. greatest of the start of the buffer and the start cylinder, while the
  535. ending track will be the least of the end of the buffer and the end
  536. cylinder. Example: if you read something with SC=20, EC=30, then you
  537. set SC=10, EC=25 and hit GO, the range 20-25 will be written.
  538.  
  539.    There are however two subtle differences between the behaviour of a
  540. complete (880K) RAM buffer and a partial one. First of all, the track
  541. range chosen for reading in a complete RAM buffer is always the full
  542. start/end cylinder range, while if reading in a partial buffer
  543. `SuperDuper' will start from the last track of the previous buffer (of
  544. course, if the last track is past the end cylinder, it will start from
  545. the start cylinder). Moreover, if a long range of tracks is skipped
  546. (for instance, you read in a buffer range of 0-79 and you write 70-79)
  547. a few (less than 10) seconds will pass while `SuperDuper' unpacks the
  548. data you don't want to write--they have to be decompressed anyway.
  549.  
  550.    If all this scares you, don't fear: the buffer/range interaction
  551. will simply work just as you intuitively expect. I hope at least 8^).
  552.  
  553.  
  554. The User Interface Gadgets
  555. ===========================
  556.  
  557. TALK
  558.      activates `SuperDuper''s ability to give its status by voice.
  559.      Currently only English is supported.
  560.  
  561. AUTO
  562.      activates automatic operation starting. `SuperDuper' will monitor
  563.      disk insertion and ejection. When all destination(s) have been
  564.      ejected and re-inserted, a GO operation is started. If FORMAT is
  565.      selected, the destination(s) are formatted. Else, if a buffer is
  566.      selected, it is written to the destination(s). If neither
  567.      formatting nor buffering is requested, `SuperDuper' will monitor
  568.      the source, too, and will start a disk-to-disk(s) copy as soon as
  569.      the source and all destination(s) have been ejected and
  570.      re-inserted.
  571.  
  572.      *Warning*: especially on one-drive-only systems, AUTO can be
  573.      extremely dangerous. You'd better write-protect your source disks.
  574.  
  575. KILLSYS
  576. RESTORE
  577.      closes the Workbench and voice, flushes the memory and opens a
  578.      very small screen with only two colors. Moreover, the window is of
  579.      `SIMPLE_REFRESH' type rather than `SMART_REFRESH'. This way, the
  580.      maximum amount of memory for your system is at your disposal
  581.      (unfortunately, under 1.3 the window can be refreshed incorrectly
  582.      because of an Intuition bug). If the Workbench can't be closed for
  583.      some reason, a warning is issued (usually some application has a
  584.      window opened on the Workbench screen). When you want to get back,
  585.      hit the gadget again (this time it will be named RESTORE). This
  586.      feature is very powerful if coupled with `SDBootInstall' and with
  587.      the CLI option `LOWMEM'.
  588.  
  589.      *Warning*: If you grab the disk.resource (by selecting a source
  590.      and/or a destination) just after a disk was inserted, it's likely
  591.      the Workbench will be locked, waiting for you to unlock the drive
  592.      in order to load the icon of the disk. If in this moment you hit
  593.      KILLSYS, you will lock the entire system, since `SuperDuper' will
  594.      be waiting for the Workbench to close, while the Workbench will be
  595.      waiting for you to release the disk.
  596.  
  597.  
  598. The String Gadgets
  599. ===================
  600.  
  601.    The string gadgets have been more or less discussed in the previous
  602. sections. They are gathered here for sake of clarity.
  603.  
  604. SC
  605. EC
  606.      select the start and the end cylinders, respectively, for any
  607.      operation.
  608.  
  609. LABEL
  610.      lets you choose a name for the disks formatted by `SuperDuper'.
  611.      See The Copy Options, for the effect of the INCNAME gadget.
  612.  
  613. VDNAME
  614. VDUNIT#
  615.      select the name and the unit number of the Exec device that
  616.      `SuperDuper' will use as a virtual disk if the VDBUF gadget is
  617.      selected.
  618.  
  619. RETRY#
  620.      selects the number of read/verify retries on each track.
  621.  
  622.  
  623. Special requesters
  624. *******************
  625.  
  626.    When `SuperDuper' needs to inform the user about something, usually a
  627. requester with a message appears (if the TALK option is on the message
  628. is also read out loud). While most of the requesters are
  629. self-explanatory, some of them need a more detailed description.
  630.  
  631.    `Can't get disk.resource'
  632.  
  633.    The disk.resource is the Exec way of controlling the access to the
  634. low-level disk hardware. `SuperDuper' can't access the resource,
  635. probably because someone is already using it. If you suspect a
  636. particular program, close it and try again to select a disk gadget.
  637.  
  638.    `Please free disk.resource'
  639.  
  640.    (See also previous requester). If the disk.resource can't be
  641. grabbed, Exec won't give back the message passed by `SuperDuper' until
  642. the resource is free. Thus, until that moment `SuperDuper' can't exit.
  643.  
  644.    `Checksum error: buffer munged.'
  645.  
  646.    Someone wrote over `SuperDuper''s RAM buffer. The buffer is no
  647. longer valid, and the current copy is probably munged, too. You should
  648. probably reboot, because if something writes on someone else's memory
  649. it's likely it will do it again.
  650.  
  651.    `A track buffer has been munged.'
  652.  
  653.    Someone wrote on one of `SuperDuper''s track buffers. The same
  654. comments of the previous requester apply.
  655.  
  656.    `ARexx server not active'
  657.  
  658.    In order to use ARexx macros, the ARexx server has to be activated.
  659. Type `RexxMast' at a CLI prompt (if it's not in your path, you should
  660. locate it easily).
  661.  
  662.    `Error while recalibrating unit x.'
  663.  
  664.    `SuperDuper' found an error while recalibrating a drive head. The
  665. head was moved to track 0, but the drive signal `DSKTRACK0' wasn't
  666. activated. This means that either your drive has lazy signals, in which
  667. case there's nothing to worry about, or that some head step wasn't
  668. actually performed (possibly because of power supply reasons) in which
  669. case the last copy could be bad, even if VERIFY is on. Better CHECK it.
  670. Try also to increase the step and calibrate delays of the drive with
  671. `SetTDDelay'.
  672.  
  673.    `Better write-protect your sources.'
  674.  
  675.    This message is issued every time you select the AUTO gadget on a
  676. machine with a single drive (see The User Interface Gadgets).
  677.  
  678.  
  679. ARexx
  680. ******
  681.  
  682.    ARexx is the system macro language of the Amiga. It was originally
  683. developed by Bill Hawes (to whom every Amiga owner owes much more than
  684. he probably realizes) and was then included in the Release 2 of the
  685. operating system.
  686.  
  687.    ARexx is a beautiful interpreted language, with unique features such
  688. as syntax/semantics collapsing (for instance, you can ask the value of a
  689. variable given its name as a string) and, overall, the ability to
  690. interface itself with external applications. A single ARexx script can
  691. control several different programs and make them interact.
  692.  
  693.    The ARexx interface consists of a port, which is used for
  694. communications, and a set of commands that ARexx can issue to the
  695. application. For `SuperDuper', the port name is `SUPERDUPER', and the
  696. command set is described below. ARexx scripts written for `SuperDuper'
  697. should have extension `supdup', like `foobar.supdup'. This is in order
  698. to distinguish ARexx scripts written for different applications.
  699.  
  700.    ARexx provides at little or no implementation cost a powerful macro
  701. language which substantially increases the performance and the
  702. versatility of an application. Maybe some feature you would like to
  703. have is not in `SuperDuper' at this time, but it's very likely you'll
  704. be able to put it in via a suitable ARexx script.
  705.  
  706.  
  707. General Issues
  708. ===============
  709.  
  710.    Besides being able to execute commands issued by an ARexx macro,
  711. `SuperDuper' is also able to start an ARexx macro. This is indeed the
  712. purpose of the AREXX gadget (the last one in the last row). The gadget
  713. is activated if 1) the `rexxsyslib.library' is somewhere in your LIBS:
  714. directory and 2) you have a file requester. `SuperDuper' is able to
  715. recognize and use the ASL file requester (under Release 2), the ARP
  716. file requester or the req.library file requester (the first available
  717. in this order will be used). You can start any number of macros at the
  718. same time (beware of wild interactions though).
  719.  
  720.    `SuperDuper' commands generally correspond to gadgets, and are
  721. similarly named: for instance, the command `check' will check the
  722. source drive, while `vdunit 4' will set the virtual disk buffer unit
  723. number to 4. Commands are case insensitive, and only the first two or
  724. three letters are significant. So you can write `ch' instead of `check'
  725. but you have to write `rea' for `read', or you could make confusion
  726. with `restore' or `retry'.
  727.  
  728.    ARexx needs a console by which it communicates with the user. If you
  729. started `SuperDuper' from the CLI, the your original CLI will be used.
  730. Otherwise, a console window will be opened. Under 1.3, this window
  731. appears at the start of any ARexx macro and gets closed when there is
  732. no macro running. Under Release 2 it's always open, but it's an `AUTO'
  733. console window, so you can close it if you wish: it will be reopened as
  734. soon as something is printed into it.
  735.  
  736.  
  737. Action Commands
  738. ================
  739.  
  740.    The commands `go', `read', `check' and `stop' act just like their
  741. gadget counterparts, starting a copy (buffering, formatting) process or
  742. stopping it. The first three return at the end of the operation.
  743. However, for instance, if another task sends a `stop' command while a
  744. copy is in progress, the copy is interrupted and the `go' command
  745. returns. You can then check the `rc' variable to see what happened (see
  746. `The ARexx User's Reference Manual').
  747.  
  748.    The pair `killsys' and `restore' work like the corresponding gadget.
  749. The operations which are nonsense have no effect (i.e., if you send
  750. `killsys' and the system has already been killed, nothing happens).
  751.  
  752.    Finally, `rx STRING' executes the ARexx macro named STRING.
  753.  
  754.  
  755. Selection Commands
  756. ===================
  757.  
  758.    I list here for sake of completeness the whole group of selection
  759. commands. They could be easily deduced anyway from the gadget names,
  760. apart from `noclick', `volume', `printerrors' and `rx' which are
  761. available only through the ARexx interface. Here STRING is a string of
  762. characters and N is a nonnegative number. When `on/off' is specified as
  763. an argument, you have two ways of invoking the command: `COMMAND on'
  764. will switch the thing on, and `COMMAND off' will switch it off. Note
  765. that the ARexx interface of `SuperDuper' is rather lazy about
  766. syntax--strings too long will be silently truncated, and passing a
  767. non-numerical argument where N is required will usually produce a value
  768. of 0.
  769.  
  770. `source N'
  771.      Selects drive N as source;
  772.  
  773. `source off'
  774.      Turns off source drive;
  775.  
  776. `dest N'
  777.      Selects destinations using N as a bit mask. For instance, 0
  778.      selects no drive, 1 selects drive 0, 5 selects drives 0 and 2, 15
  779.      selects all destinations;
  780.  
  781. `buffer on/off'
  782.      Controls the RAM buffer;
  783.  
  784. `hdbuf on/off'
  785.      Controls the hard disk image file buffer;
  786.  
  787. `vdbuf on/off'
  788.      Controls the virtual disk buffer;
  789.  
  790. `verify on/off'
  791.      Turns on/off verify;
  792.  
  793. `date on/off'
  794.      Turns on/off date adaptation;
  795.  
  796. `incname on/off'
  797.      Turns on/off name increment while formatting;
  798.  
  799. `ffs on/off'
  800.      Selects Fast File System or Old File System while formatting;
  801.  
  802. `talk on/off'
  803.      Toggles talk mode;
  804.  
  805. `auto on/off'
  806.      Toggles auto mode;
  807.  
  808. `label STRING'
  809.      Sets the disk label
  810.  
  811. `retry N'
  812.      Sets the number of retries;
  813.  
  814. `vdunit N'
  815.      Sets the virtual disk unit number;
  816.  
  817. `vdname STRING'
  818.      Sets the virtual disk unit device name;
  819.  
  820. `scyl N'
  821.      Sets the start cylinder;
  822.  
  823. `ecyl N'
  824.      Sets the end cylinder.
  825.  
  826. `quit'
  827.      Quits the program.
  828.  
  829.    The following commands are only available through the ARexx
  830. interface:
  831.  
  832. `noclick N'
  833.      Forces `SuperDuper' to not click the drives specified by N as a
  834.      bit mask (the same format of `dest').
  835.  
  836. `printerrors on/off'
  837.      Opens/closes `SuperDuper''s detailed error report window;
  838.  
  839. `requesters on/off'
  840.      Inhibits the error requesters from popping up (mainly useful when
  841.      `SuperDuper' is in its no-GUI mode; see The CLI Interface).
  842.  
  843. `volume N'
  844.      Sets the volume of the beeps (0<=N<=64);
  845.  
  846.  
  847. Return Codes
  848. =============
  849.  
  850.    Commands issued by ARexx to an application should return useful
  851. values in order to tell what really happened. Generally, a command
  852. which fails returns an error level, while a successful command returns
  853. an error level of zero and, upon request of the caller via the `OPTIONS
  854. RESULTS' command, a result string which can be parsed in order to get
  855. useful information.
  856.  
  857.    `SuperDuper' returns an error code of 10 if the syntax of the command
  858. was wrong. This will cause ARexx to complain with an error message. An
  859. error code of 1 is returned if the syntax was right but the command
  860. couldn't be executed, but there is no real failure (for instance, if
  861. you send `go' while a copy is already in progress or if you try to
  862. select a ghosted gadget). An error of 30 is returned in extreme cases,
  863. for instance when you hit the close gadget and there are still some
  864. commands pending. No strings are ever returned, since we have only a
  865. few cases to differentiate. Return codes with special meanings are
  866. returned by the following commands:
  867.  
  868. `source'
  869. `dest'
  870.     2
  871.           The selected drive is not connected.
  872.  
  873.     5
  874.           The disk.resource is not available.
  875.  
  876. `buffer'
  877. `hdbuf'
  878. `vdbuf'
  879.     5
  880.           The buffer cannot be allocated.
  881.  
  882. `buffer'
  883.     2
  884.           A full buffer cannot be allocated. Compression is on, and
  885.           there is the possibility of multi-pass copies.
  886.  
  887. `go'
  888. `read'
  889. `check'
  890.     2
  891.           This pass is not the last one.
  892.  
  893.     3
  894.           Something is wrong with the chosen source, destination and
  895.           buffer options. For instance, you're trying to copy from df0:
  896.           to df0: without a buffer.
  897.  
  898.     4
  899.           The buffer is not valid.
  900.  
  901.     5
  902.           A unit is empty.
  903.  
  904.     6
  905.           A unit is write-protected.
  906.  
  907.     7
  908.           The start/end cylinders chosen are meaningless. This can
  909.           happen if the numbers are out of range, or (for a
  910.           RAM-buffered GO) if there is no intersection with the current
  911.           buffer.
  912.  
  913.     8
  914.           There were errors.
  915.  
  916.     9
  917.           There were errors. Moreover, this pass is not the last one.
  918.  
  919.     20
  920.           Someone munged the RAM buffer or the track buffer.
  921.  
  922. `talk'
  923.     5
  924.           The voice system cannot be activated.
  925.  
  926. `killsys'
  927. `restore'
  928.     20
  929.           The current window has been closed, but it was impossible to
  930.           open the new one. The program exits in this case.
  931.  
  932.  
  933. What Can I Do with ARexx?
  934. ==========================
  935.  
  936.    Basically you can expand `SuperDuper''s capabilities and/or make it
  937. interact with other programs. A couple of examples of the first case
  938. could be a `CheckAll.supdup' macro which checks all drives in sequence.
  939. The "native" `SuperDuper' can only check one drive at a time, but if
  940. you have two or more drives you can check many drives using a macro like
  941.  
  942.      /* CheckAll */
  943.      do i = 0 to 4
  944.         source i
  945.         if rc==0 then check
  946.      end
  947.  
  948.    After checking you should of course look at the return codes in the
  949. `rc' variable and decide upon appropriate actions.
  950.  
  951.    Suppose now you have four drives and you want to make a copy of two
  952. different floppies. You can put the sources in drives 0 and 1, the
  953. destinations in drives 2 and 3, and then
  954.  
  955.      /* DoubleCopy */
  956.      source 0
  957.      dest 4
  958.      go
  959.      source 1
  960.      dest 8
  961.      go
  962.  
  963.    (of course I'm assuming `SuperDuper' is in its default
  964. configuration). This will produce the two copies in a completely
  965. unattended way.
  966.  
  967.  
  968. The CLI Interface
  969. ******************
  970.  
  971. Line Command Options
  972. ====================
  973.  
  974.    When you start `SuperDuper' from the CLI, you have the chance to
  975. specify an option. The possible options are printed in the standard
  976. Amiga template format if you type `SD ?'. In this case, the following
  977. line
  978.  
  979.      PUBSCREEN/K,NOGUI/S,LOWMEM/S
  980.  
  981.    will be displayed. Its meaning is that `NOGUI' and `LOWMEM' are
  982. switches that you can activate, while `PUBSCREEN' must be followed by
  983. the name of an existing public screen. For instance, the command line
  984. `SD NOGUI' will invoke `SuperDuper' in its `NOGUI' mode. The two flags
  985. `NOGUI' and `LOWMEM' are mutually exclusive--if both are specified,
  986. only the first one counts.
  987.  
  988. `PUBSCREEN'
  989.      `SuperDuper' will open its window on the specified public screen.
  990.      This parameter is non functional under 1.3.
  991.  
  992. `NOGUI'
  993.      `SuperDuper' won't open its graphical user interface but you can
  994.      then control it through the ARexx interface. This makes possible
  995.      to write an ARexx macro allowing you to use `SuperDuper' from the
  996.      shell much as the diskcopy command. Moreover, the startup file
  997.      `Startup.supdup' is not executed, so that in your ARexx macro
  998.      which calls `SuperDuper' directly you can expect to get the
  999.      standard configuration.
  1000.  
  1001. `LOWMEM'
  1002.      This switch shuts down the ARexx port and the sound system.
  1003.      `SuperDuper' won't open either the ARexx port/rexxsyslib.library
  1004.      pair, or the audio.device. This mode is provided for user with 1M
  1005.      or less who want to have as much free memory as possible (read
  1006.      also the section about `SDBootInstall').
  1007.  
  1008.    These options are only available from the CLI.
  1009.  
  1010. The Startup File
  1011. ================
  1012.  
  1013.    At startup time, `SuperDuper' checks if ARexx is available, and in
  1014. this case it tries to start an ARexx macro named `Startup.supdup'. This
  1015. file should contain your usual settings: for instance, it's a very good
  1016. place where to put a `volume' command. The startup file is a regular
  1017. ARexx macro, just like any other one started by the AREXX gadget or by
  1018. the `rx' command. However, a couple of conventions were implemented in
  1019. order to get a better behaviour on systems without ARexx. In
  1020. particular, the absence of the ARexx server or the ARexx error message
  1021. `Program not found' will *not* be displayed if caused by the startup
  1022. file. Notice that the last message can also be caused by the first line
  1023. of `Startup.supdup' not being a comment (every ARexx macro must start
  1024. with a comment).
  1025.  
  1026.  
  1027. Performance
  1028. ************
  1029.  
  1030.  
  1031. `SuperDuper' and Your System
  1032. =============================
  1033.  
  1034.    `SuperDuper' has been written keeping in mind that a good program
  1035. doesn't have to eliminate everything from the system in order to work.
  1036. The Amiga has a very efficient multitasking kernel which allows for
  1037. resource arbitration.
  1038.  
  1039.    When `SuperDuper' is started, it won't allocate anything from your
  1040. system. As soon as a source/destination gadget is clicked, it will
  1041. inhibit all of the drives (so don't select a gadget while reading or
  1042. writing to floppies) and then will grab the disk.resource. Until the
  1043. resource is released, *no one else* can access the Amiga drives. This
  1044. is necessary in order to avoid unpredictable collisions with the system
  1045. or other programs. Inhibiting the drives is not enough, since some
  1046. other file system (like `CrossDOS') could access them.
  1047.  
  1048.    If you need to temporarily access your drives, you must simply
  1049. deselect all `SuperDuper' source/destination gadgets: the disk system
  1050. will be restarted (it will be re-grabbed on a gadget selection of
  1051. course). The heads will be moved to their original position, so that
  1052. you no longer need to eject the drives under 1.3.
  1053.  
  1054.    The CPU use of `SuperDuper' is almost unnoticeable. You can do
  1055. anything else, and you shouldn't notice any slowdown. In particular, if
  1056. no source/destination is selected `SuperDuper' is completely asleep.
  1057.  
  1058.    This however is not true if you use compression. In this case, not
  1059. only will the system be slowed down (a priority 0 task will almost
  1060. always be active), but *any* operation (including moving the mouse
  1061. pointer) will slow down `SuperDuper'.
  1062.  
  1063.    If you use the utility `ToggleClick' distributed with `SuperDuper'
  1064. (or any other utility which legally kills drive clicks under Release 2)
  1065. `SuperDuper' won't click empty drives (drive clicking is necessary for
  1066. monitoring disk insertion; using `ToggleClick' is good but you must be
  1067. sure your drives won't try to move past track 0 if asked to do so).
  1068. Anyway, you always have the chance to selectively force `NOCLICK' via
  1069. the corresponding ARexx command.
  1070.  
  1071.    You should avoid running `SuperDuper' while a 16 color hi-res screen
  1072. (or a 4-color ECS productivity mode screen) is displayed. The video DMA
  1073. access will interfere with the disk/CPU/Blitter access to the point
  1074. that copy times will rise to incredible values--reading and compressing
  1075. a disk in the buffer can take more than 100s.
  1076.  
  1077.  
  1078. `SuperDuper' and You
  1079. =====================
  1080.  
  1081.    "Well," you could say, "`SuperDuper' is a great copier--but how can
  1082. I trust it for making my copies? This guy diddles with hardware--maybe I
  1083. should use the system `DiskCopy' command."
  1084.  
  1085.    This is not a good idea. First of all, `SuperDuper' is *incredibly*
  1086. picky about verifying. You will get more verify error messages than
  1087. with the standard copy commands (for techies: `SuperDuper' verifies
  1088. also the MFM timing bits, not only the data bits; this means a 200%
  1089. efficiency improvement in catching verify errors and generally bad
  1090. media).
  1091.  
  1092.    Moreover, both the 1.3 and the 2.0 trackdisk.device have unpleasant
  1093. side-effects on frequently read/written tracks. These side-effects are
  1094. cleared when you do a copy of the disk with `SuperDuper' (for techies:
  1095. trackdisk.device doesn't check for MFM bits being read in correctly, and
  1096. doesn't re-MFM the track before writing it; it just re-MFMs the changed
  1097. sector. If a MFM timing bit is read wrong, it will stay wrong forever,
  1098. possibly causing read errors; but `SuperDuper' re-MFMs every track it
  1099. copies, thus restoring every MFM timing bit to its correct value).
  1100.  
  1101.    Finally, if you don't like coffee-breaks during your copies, you'd
  1102. better use the fastest copier available--namely `SuperDuper'. Note that
  1103. if you have four drives and you use top-quality disks, so you can skip
  1104. verify, the buffer system allows you to get a per-copy time of 9 1/2
  1105. seconds, which is definitely not bad.
  1106.  
  1107.  
  1108. `SDBootInstall'
  1109. ================
  1110.  
  1111.    When your system boots up (at power on or after a reset), the
  1112. operating system searches for available drives, and creates some
  1113. trackdisk.device tasks accordingly. These tasks take a lot of memory
  1114. for their buffers (>30K), but `SuperDuper' doesn't use them at all,
  1115. because it has its internal routines.
  1116.  
  1117.    If you have to do intensive copy work, and you have 1MB of memory or
  1118. less, you could find it useful to boot up your system in a special
  1119. configuration that will shut down almost all trackdisk.device tasks,
  1120. thus freeing a lot of memory.
  1121.  
  1122.    To accomplish this, do as follows:
  1123.  
  1124.   1. Make a copy of your usual Workbench 1.2 (or greater) disk (from
  1125.      now on we work on the copy).
  1126.  
  1127.   2. Delete some programs to make room--`preferences', `diskcopy' and
  1128.      `format' are good candidates. Moreover, delete the file
  1129.      `Disk.info'.
  1130.  
  1131.   3. Copy `SuperDuper' to the disk root directory (by dragging its icon
  1132.      on the disk icon or using the CLI).
  1133.  
  1134.   4. Edit the startup-sequence of the disk (it's in the `s' directory).
  1135.      Delete it entirely, and substitute it with
  1136.  
  1137.           SetPatch >NIL:
  1138.           Run >NIL: <NIL: SD LOWMEM
  1139.           EndCLI >NIL:
  1140.  
  1141.      If you're under 1.2, don't put in the first line (you don't have a
  1142.      `SetPatch' command).
  1143.  
  1144.   5. Now put the disk in df0:, and run the utility `SDBootInstall'. A
  1145.      special bootblock will be installed on the floppy. When booting
  1146.      from it, the operating system (and you) will be able to access
  1147.      only drive 0--the other ones will be for `SuperDuper''s use only.
  1148.      To get back to normality, a reboot is necessary. You will gain
  1149.      30/40K per drive using this method (for techies: it is perfectly
  1150.      legal--the bootblock simply AllocUnit()s the drives with ID>0).
  1151.  
  1152.  
  1153. A Word on Copy Protection
  1154. ==========================
  1155.  
  1156.    `SuperDuper' won't copy protected disks (or if it will it's just a
  1157. coincidence). I do not believe in copy protection. Scrambled tracks will
  1158. produce random data on the destination. If the read error goes beyond a
  1159. simple checksum error don't expect anything meaningful to be written on
  1160. the destination disks.
  1161.  
  1162.    However, `SuperDuper' will faithfully reproduce data block checksum
  1163. errors (`Disk foobar has a read/write error') or DOS checksum errors
  1164. (`Key 880 checksum error') on the source disk in disk-to-disk copies
  1165. (header checksum errors are fixed when renumbering the sectors). Thus,
  1166. if you got the typical `Key <n> checksum error' you can make a copy of
  1167. the disk before fixing it. `SuperDuper' won't do any surgery: use a
  1168. good tool (such as `DiskSalv' or `FixDisk') for that. Avoid
  1169. `DiskDoctor'. On the other hand, during buffered copies data block
  1170. checksums will be silently fixed by recalculating the right checksum.
  1171.  
  1172.  
  1173. Acknowledgments
  1174. ****************
  1175.  
  1176.    The first person I must thank a thousand times is Dirk Reisig. It
  1177. was by means of his suggestions that I sped up `SuperDuper' to the
  1178. current, amazing level. I wrote him a letter which he answered gently
  1179. with a long explanation of the optimizations performed by `PCopy'. The
  1180. first time I read the letter it seemed greek to me, but little by
  1181. little I learned all the mysteries of MFM encoding and disk direct
  1182. hardware driving. Moreover, I learned from the source code of
  1183. `TrackSalve' the usage of the blitter for MFM encoding and many other
  1184. subtle things. In other words, without the help of Dirk you would have
  1185. never seen anything after `DFC5' (for version 2.0, a new optimization
  1186. was introduced; it was suggested by Dan Babcock).
  1187.  
  1188.    The second guy behind the birth of `SuperDuper' is Tom Rokicki. He
  1189. pushed me to write a substitute for `TurboBackup', and overall
  1190. suggested the main thing--that on the Amiga it is possible to write
  1191. many disks at the same time. Without this trick, you could never do
  1192. four non-verified copies in 38s. Tom also tested all
  1193. pre-whatever-greek-letter versions, always giving useful comments...
  1194. and risking the life of his drives 8^). Moreover, I had time to work on
  1195. `SuperDuper' because the AmigaTeX system is so incredibly efficient I
  1196. got a lot of spare time while writing math papers...
  1197.  
  1198.    Last but not least, Randell Jesup at Commodore drove me through the
  1199. labyrinth of non-specified-specs, hardware quirks, strange behaviors,
  1200. and system esoteric features. Without his help `SuperDuper' could
  1201. probably work... but I wouldn't trust it for *my* copies 8^).
  1202.  
  1203.    The name `SuperDuper' popped up during a rather intensive BIX
  1204. discussion. Many other names were proposed, but in the end I chose this
  1205. one--it has symmetry, correctly defines the product and has a simple
  1206. shortening (SD). Thus, a thousand thanks to Kent Kalnasy and Dan
  1207. Barrans for suggesting this name.
  1208.  
  1209.    Many features were not my ideas. An incredible number of BIX users
  1210. came up with excellent suggestions, many of which were actually
  1211. implemented. Thanks to them you have support for buffering on any
  1212. device (I never use RAD: nor FMS:, so I didn't think it could be
  1213. useful).
  1214.  
  1215.    But, as always, the biggest *thanks* goes to the beta-testers of
  1216. `SuperDuper': Dennis Atkin, Michele Battilana, Vittorio Calzolari, Jim
  1217. Cooper, Doug Erdely, Charlie Fair, Blaine Gardner, Robert Jenks, John
  1218. Jones, Kent Kalnasy, Robert Kesterson, Paul King, Randy Menzer, Linda
  1219. Munson, Davide Repetto, Tom Rokicki, Sergio Ruocco, Carlo Santagostino,
  1220. Reinhard Spisser, Jeff Todd, Carlo Todeschini, Michael Scott Velez and
  1221. Marco Zandonadi. Beta-testing a copier is different from anything
  1222. else--if it doesn't work you won't get a marginally corrupted picture
  1223. on your display: rather, the Fish Disks it took an hour to copy could
  1224. be unusable. A special kind of patience is needed under these
  1225. conditions 8^).
  1226.  
  1227.  
  1228. Disclaimer and Author Info
  1229. ***************************
  1230.  
  1231.    `SuperDuper' is Copyright (C) 1991,1992 Sebastiano Vigna and it's
  1232. freely distributable as long as all of its files are included in their
  1233. original form without additions, deletions, or modifications of any
  1234. kind, and only a nominal fee is charged for its distribution. This
  1235. software is provided *AS IS* without warranty of any kind, either
  1236. expressed or implied. By using `SuperDuper', you agree to accept the
  1237. entire risk as to the quality and performance of the program; don't
  1238. come to me if you destroy your entire Fish Disk library with it! Of
  1239. course, it was tested rather extensively before it was released...
  1240.  
  1241.    Comments, complaints, desiderata are welcome.
  1242.  
  1243.          Sebastiano Vigna
  1244.          Via California 22
  1245.          I-20144 Milano MI
  1246.      
  1247.          BIX: svigna
  1248.          INTERNET: vigna@imiucca.csi.unimi.it
  1249.                    vigna@ghost.sm.dsi.unimi.it
  1250.          UUCP:cbmehq!cbmita!sebamiga!seba@cbmvax.cbm.commodore.com
  1251.               ...{uunet|pyramid|rutgers}!cbmvax!cbmehq!cbmita!sebamiga!seba
  1252.          FIDO: 2:332/607.28
  1253.  
  1254.  
  1255. Concept Index
  1256. **************
  1257.  
  1258.  
  1259.  
  1260.  <BAD NAME>                             The Action Gadgets
  1261.  <NDOS>                                 The Action Gadgets
  1262.  <UNKNOWN>                              The Action Gadgets
  1263.  ARexx                                  ARexx
  1264.  Acknowledgments                        Acknowledgments
  1265.  Address                                Disclaimer and Author Info
  1266.  Atkin Dennis                           Acknowledgments
  1267.  Babcock Dan                            Acknowledgments
  1268.  Bar color                              The Action Gadgets
  1269.  Barrans Dan                            Acknowledgments
  1270.  Battilana Michele                      Acknowledgments
  1271.  Buffer File                            The Buffering System
  1272.  Buffering                              The Buffering System
  1273.  CLI Options                            The CLI Interface
  1274.  CPU usage                              SuperDuper and Your System
  1275.  Calzolari Vittorio                     Acknowledgments
  1276.  Changes                                Changes
  1277.  Cooper Jim                             Acknowledgments
  1278.  Copy protection                        Copy Protection
  1279.  Copying                                First Steps
  1280.  DMA contention                         SuperDuper and Your System
  1281.  Disclaimer                             Disclaimer and Author Info
  1282.  Distribution                           Disclaimer and Author Info
  1283.  Drive inhibition                       SuperDuper and Your System
  1284.  E_mail                                 Disclaimer and Author Info
  1285.  Erdely Doug                            Acknowledgments
  1286.  Error Report                           Selection Commands
  1287.  Error reproduction                     Copy Protection
  1288.  Errors                                 The Action Gadgets
  1289.  Errors while recalibrating             Changes
  1290.  FMS:                                   The Buffering System
  1291.  Fair Charlie                           Acknowledgments
  1292.  Features                               Main Features
  1293.  First Steps                            First Steps
  1294.  Flakey drives                          Changes
  1295.  French keyboard                        Changes
  1296.  Gardner Blaine                         Acknowledgments
  1297.  Introduction                           Introduction
  1298.  Jenks Robert                           Acknowledgments
  1299.  Jesup Randell                          Acknowledgments
  1300.  Jones John                             Acknowledgments
  1301.  Kalnasy Kent                           Acknowledgments
  1302.  Kesterson Robert                       Acknowledgments
  1303.  Keyboard Usage                         First Steps
  1304.  King Paul                              Acknowledgments
  1305.  Low memory                             The CLI Interface
  1306.  Menzer Randy                           Acknowledgments
  1307.  Munson Linda                           Acknowledgments
  1308.  No clicks                              Selection Commands
  1309.  No clicks                              Changes
  1310.  NoGUI                                  The CLI Interface
  1311.  Performance                            Performance
  1312.  Public Screen                          The CLI Interface
  1313.  RAD:                                   The Buffering System
  1314.  Reisig Dirk                            Acknowledgments
  1315.  Repetto Davide                         Acknowledgments
  1316.  Requesters                             Special Requesters
  1317.  Retries                                The Action Gadgets
  1318.  Return codes                           Return Codes
  1319.  Rokicki Tom                            Acknowledgments
  1320.  Ruocco Sergio                          Acknowledgments
  1321.  Santagostino Carlo                     Acknowledgments
  1322.  Simple Refresh                         The User Interface Gadgets
  1323.  Smart Refresh                          The User Interface Gadgets
  1324.  Spisser Reinhard                       Acknowledgments
  1325.  Startup File                           The CLI Interface
  1326.  Timing bits                            SuperDuper and You
  1327.  Timings                                Introduction
  1328.  Todd Jeff                              Acknowledgments
  1329.  Todeschini Carlo                       Acknowledgments
  1330.  VD0:                                   The Buffering System
  1331.  Velez Michael Scott                    Acknowledgments
  1332.  Voice                                  The User Interface Gadgets
  1333.  Volume Control                         Selection Commands
  1334.  You                                    SuperDuper and You
  1335.  Zandonadi Marco                        Acknowledgments
  1336.  
  1337.  
  1338. Gadget Index
  1339. *************
  1340.  
  1341.  
  1342.  
  1343.  AUTO                                   The User Interface Gadgets
  1344.  BUFFER                                 The Buffering System
  1345.  CHECK                                  The Action Gadgets
  1346.  DATE                                   The Copy Options
  1347.  EC                                     The String Gadgets
  1348.  EC                                     The Action Gadgets
  1349.  EC                                     The Buffering System
  1350.  FFS                                    The Copy Options
  1351.  FORMAT                                 The Copy Options
  1352.  GO                                     The Action Gadgets
  1353.  HDBUF                                  The Buffering System
  1354.  INCNAME                                The Copy Options
  1355.  KILLSYS                                The Buffering System
  1356.  KILLSYS                                The User Interface Gadgets
  1357.  LABEL:                                 The Copy Options
  1358.  READ                                   The Action Gadgets
  1359.  RESTORE                                The User Interface Gadgets
  1360.  RETRY#                                 The Action Gadgets
  1361.  RTRY:ERR                               The Action Gadgets
  1362.  SC                                     The Buffering System
  1363.  SC                                     The Action Gadgets
  1364.  SC                                     The String Gadgets
  1365.  STOP                                   The Action Gadgets
  1366.  TALK                                   The User Interface Gadgets
  1367.  TALK                                   Special Requesters
  1368.  VDBUF                                  The Buffering System
  1369.  VDNAME                                 The Buffering System
  1370.  VDNAME                                 The String Gadgets
  1371.  VDUNIT#                                The Buffering System
  1372.  VDUNIT#                                The String Gadgets
  1373.  VERIFY                                 The Copy Options
  1374.  
  1375.  
  1376. ARexx Command Index
  1377. ********************
  1378.  
  1379.  
  1380.  
  1381.  `auto'                                 Selection Commands
  1382.  `buffer'                               Selection Commands
  1383.  `check'                                Action Commands
  1384.  `date'                                 Selection Commands
  1385.  `dest'                                 Selection Commands
  1386.  `ecyl'                                 Selection Commands
  1387.  `ffs'                                  Selection Commands
  1388.  `go'                                   Action Commands
  1389.  `hdbuf'                                Selection Commands
  1390.  `incname'                              Selection Commands
  1391.  `killsys'                              Action Commands
  1392.  `label'                                Selection Commands
  1393.  `noclick'                              Selection Commands
  1394.  `printerrors'                          Selection Commands
  1395.  `quit'                                 Selection Commands
  1396.  `rc'                                   Return Codes
  1397.  `read'                                 Action Commands
  1398.  `requesters'                           Selection Commands
  1399.  `restore'                              Action Commands
  1400.  `retry'                                Selection Commands
  1401.  `rx'                                   Action Commands
  1402.  `scyl'                                 Selection Commands
  1403.  `source'                               Selection Commands
  1404.  `source'                               Selection Commands
  1405.  `stop'                                 Action Commands
  1406.  `talk'                                 Selection Commands
  1407.  `vdbuf'                                Selection Commands
  1408.  `vdname'                               Selection Commands
  1409.  `vdunit'                               Selection Commands
  1410.  `verify'                               Selection Commands
  1411.  `volume'                               Selection Commands
  1412.  
  1413.  
  1414. Program Index
  1415. **************
  1416.  
  1417.  
  1418.  
  1419.  AmigaTeX                               Acknowledgments
  1420.  CheckAll.supdup                        ARexx Examples
  1421.  DiskCopy                               SuperDuper and You
  1422.  DoubleCopy.supdup                      ARexx Examples
  1423.  SDBootInstall                          SDBootInstall
  1424.  SetTDDelay                             Changes
  1425.  Startup.supdup                         The CLI Interface
  1426.  ToggleClick                            SuperDuper and Your System
  1427.  ToggleClick                            Changes
  1428.  TurboBackup                            Acknowledgments
  1429.  
  1430.