home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d5xx / d590 / superduper.lha / SuperDuper / SuperDuper.tex < prev    next >
Text File  |  1992-01-05  |  57KB  |  1,095 lines

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