ARP 1.1 (Disk 85) (Mar 1988) : DiskFormatCopy / README

/*
 *   This program will not prompt you to insert the disks if it doesn't
 *   need to, so have the correct disks in the correct drives before
 *   hitting the `Go' gadget!
 *
 *   This is dfc, a disk copying and formatting utility written by Radical
 *   Eye Software.  This program is in the public domain; anyone can do
 *   anything they want with it.  This software is made available on an as-is
 *   basis; don't come to me if you destroy your entire fish disk library
 *   with it!  Of course, it was tested rather extensively before it was
 *   released . . .
 *
 *   This code was written with Manx 3.4b on February 8, 1988.
 *
 *   dfc is meant to replace both format and diskcopy, and be smaller than
 *   either.  It is meant to work exactly the same as either, depending on
 *   the command line arguments you give it.  In addition, it has several
 *   additional options, such as buffering of a disk for a quick additional
 *   copy, the ability to toggle verify mode on and off, and the ability to
 *   write to multiple disks at the same time.  It also has a nice Intuition
 *   interface.  It will not replace the `DiskCopy' or `Format' options from
 *   the workbench, however; these have to work with the Workbench startup
 *   message, which this program does not.
 *
 *   This program can be invoked with no command line options.  In this case,
 *   it defaults to a diskcopy from df0: to df1: with verify on and buffering
 *   on.  All keyword options can be preceded by a dash, for you Unix lovers
 *   out there, and can be abbreviated to one character.  The following
 *   parameters are accepted:
 *
 *   f[rom] disk       Use `disk' as the source drive.  The format for disk
 *                     is completely free; only the numerals in the argument
 *                     are looked at.
 *   t[o] disks        Use `disks' as the destination drives.  Again, the
 *                     format is unspecified.
 *   v[erify]          Verify all writes (default).
 *   nov[erify]        Turn off the verify mode.
 *   b[uffer]          Use extra buffer memory.  If your system has enough
 *                     memory, an entire disk will be cached in RAM.
 *                     Otherwise, almost all of the system memory will be
 *                     used.
 *   nob[uffer]        Do not buffer; use minimum memory.  (Default.)
 *   n[ame] diskname   Format the destination disk with name `diskname'.
 *                     Otherwise a diskcopy is assumed.
 *   d[...]            A drive argument.  Might not have a d; simple numbers
 *                     work as well.  The first occurance of such an argument
 *                     sets the source and destination fields; a subsequent
 *                     occurance only sets the destination.
 *
 *   Thus,
 *      dfc df0: name "Foo bar baz"
 *   formats drive df0: and names the resultant disk "Foo bar baz".
 *      dfc df0: df1:
 *   diskcopies from df0: to df1:.
 *      dfc -nov 0 123
 *   diskcopies from drive 0 to drives 1, 2, and 3, with verify turned off.
 *      dfc from df0: to df0:,df1:,df2:,df3:
 *   diskcopies from drive df0: to all four drives.
 *      dfc name Foo
 *   formats drive df1 with the name "Foo".
 *
 *   Once the program opens its window up, you will have a bunch of gadgets.
 *   The left-most column of gadgets is the source selection; here you can
 *   choose either format, or one of the four drives.  The next column is
 *   the destination column; choose any combination of the four drives by
 *   clicking on the gadgets.  Lines will be drawn between these two columns
 *   indicating the current selections.  If a drive is not available, no line
 *   will be drawn to it.
 *
 *   The topmost gadget is the name gadget.  This is used to set the name of
 *   your disk while formatting.
 *
 *   The `Go' gadget starts the program up; you had better have the disks in
 *   the drives when you hit this gadget!  The `Again' gadget makes another
 *   copy of the last disk, if buffering is on and enough buffers were
 *   allocated for an entire disk.  This gadget requires all destination
 *   disks to be in their drives already.
 *
 *   The `Retry' gadget tells the system to retry after a disk error.  The
 *   `Quit' gadget tells the system to abort an operation; you can hit this
 *   at an error, which aborts the current operation; you can hit this during
 *   a copy or format operation, which does the same; or you can hit this
 *   with the drives inactive, which exits the program.
 *
 *   The `Verify' gadget turns the verify mode on and off.  The `Buffer'
 *   gadget turns buffering on and off.
 *
 *   All of these gadgets have keyboard shortcuts which are simply the first
 *   letter of the gadget name.  The source gadgets can be selected with the
 *   digits `0', `1', `2', or `3'; the destination gadgets with the shifted
 *   versions of these keys (')', `!', `@', and `#'.)  The carriage return
 *   key is a synonym for `Go', for added diskcopy and format compatibility.
 *
 *   Enjoy this program!  Please send any bug reports to Tomas Rokicki,
 *   Box 2081, Stanford, CA  94309.
 */