                               COPYFLOP
                      A Diskette Copying Utility


What is COPYFLOP?
=================
COPYFLOP is a quick-and-dirty disk copier.  It copies diskettes
track-for-track, and can create image files of diskettes which can be
used to produce multiple copies quickly.  It can either copy an
entire disk, or copy only tracks which are used, allowing you to
quickly copy a disks that are not completely full.


Making One Copy of a Disk
=========================
If the user only specifies the drive letter of the diskette to be
duplicated, COPYFLOP will simply duplicate the diskette in the
specified drive.  For example:

        COPYFLOP A:

would duplicate the diskette in the A: drive.  The user will first be
prompted to insert the source diskette, which is then read.  The user
is then asked to insert a target diskette, which is then written.

Several options are available for simple duplication:

The /FORMAT option will cause the target diskette to be formatted
unconditionally.  Typically it is not necessary to specify this
option, because COPYFLOP will sense unformatted diskettes and format
them automatically during copying.  It does this by attempting to
write a track, and if the write fails, it formats the track and
retries the write.  For unformatted diskettes, this is slower than
simply formatting unconditionally.  Use the /FORMAT option when you
know the target disk is unformatted.

The /VERIFY option causes each track written to be verified.  This
uses the simple DOS CRC check that's built in, so there's still some
remote chance that data can be written in error and not be detected.
Use this option when copying to an old diskette.  Since each track is
verified after it is written, this slows down the copy process
considerably.

The /FAST option causes COPYFLOP to copy only tracks that contain
data.  This speeds up the copy process considerably on diskettes that
aren't completely full.  When the target disk is written, unused
tracks are not touched, so a clever person with a disk editor like
Norton DISKEDIT may be able to see old data on the diskette, even
though you cannot see old files using the DIR command.  Also, this
option assumes that the FATs (File Allocation Tables) on the diskette
are accurate.  You may wish to run a utility like Norton Disk Doctor
against the diskette to verify this.

The /WIPE option causes COPYFLOP to write 0's into any tracks left
unwritten by the /FAST option.  This solves the above-mentioned
problem of leaving old data on the diskette.  Note that this wiping
method is not extensive, and does not meet any government standards
(i.e. it only writes 0's one time, where a more thorough wiping
program may make three passes writing 0's and 1's).

Here are a few examples of the options in use:

        COPYFLOP A: /FAST
        Copies the diskette in drive A: by reading and writing only
        tracks which contain data.  This is the fastest way to use
        COPYFLOP.

        COPYFLOP A: /FAST /WIPE
        Quickly copies the diskette in drive A: and clobbers the
        unused areas of the target diskette.  Special note: you can
        quickly wipe the unused areas of any diskette by using this
        form to copy the disk to itself.

        COPYFLOP A: /FORMAT /VERIFY
        Copy the diskette in drive A: to a new, unformatted diskette.
        Verify each track as it is written.


Using COPYFLOP to Make Multiple Copies
======================================
COPYFLOP can read a diskette and create an image file of it.  The
image contains information about the disk's format, and it actual
contents.  You can then use this image file to make any number of
exact duplicates of the original diskette, even though you may no
longer have it.  That being said, please read "Having a Conscience"
below.

To read the diskette in drive B: and put its data into MYDISK.IMG,
type the following:

        COPYFLOP B: /READ MYDISK.IMG

This will copy the entire diskette to the image file.  If you wish to
copy only the track which contain data, do this:

        COPYFLOP B: /READ MYDISK.IMG /FAST

This will not only be faster, but will also produce a smaller image.

Now, to make a copy of the diskette from the saved image, do this:

        COPYFLOP B: /WRITE MYDISK.IMG

This will write the contents of the image file to the diskette in
drive B:.  If you wish to format the diskette while copying, you may
specify the /FORMAT option as follows:

        COPYFLOP B: /WRITE MYDISK.IMG /FORMAT

You may also specify the /VERIFY option, if you want each track to be
verified while writing.

If the image was created with /FAST, COPYFLOP will only write (and
optionally format) tracks which will contain data on the target
diskette.  If the disk is unformatted, that will leave tracks
unformatted on the diskette.  If you do not write to the new
diskette, this will not be a problem.  However, if you start adding
files to the diskette, DOS may try to write to an unformatted track
and it will choke.  I'll probably fix this in a later release.

You may also specify the /WIPE option, to direct COPYFLOP to wipe
unused areas of the target disk.  This is really only useful when the
image was created using the /FAST option, but doesn't hurt anything
if it wasn't.

If you want to use COPYFLOP in a batch file, you may use the /BATCH
option to suppress the prompts for disk insertion.  This is a bit
dangerous in conjunction with /WRITE, because COPYFLOP will just
merrily start writing to the diskette that's in the drive.  Better
make sure it's the right one!

You can make multiple copies quickly using a simple batch file like
this one:

        LOOP:
        PAUSE Insert TARGET disk in drive A:
        COPYFLOP A: /WRITE FOOBAR.IMG /FORMAT /VERIFY
        GOTO LOOP

The /QUIET option will suppress most of the messages COPYFLOP prints
to the screen, including the startup banner.


Return Values
=============
The value of ERRORLEVEL when COPYFLOP exists is as follows:

        0       Successful operation.
        1       Invalid command line argument(s).
        2       Problem reading/writing image file.
        3       Out of memory.
        4       Problem reading/writing diskette.


Revision History
================
1.0     11/13/93        First release.


Having a Conscience
===================
COPYFLOP is intended for quick duplication and backup of diskettes
which contain important programs and data.  Since it knows nothing of
the contents of the diskette, it cannot know whether the contents are
copyrighted or not, and could therefore be used to produce perfect
duplicates of commercial software distribution diskettes.  THE AUTHOR
EXPRESSLY FORBIDS THE USE OF COPYFLOP FOR COPYING OF COPYRIGHTED,
PROPRIETARY OR OTHERWISE PROTECTED SOFTWARE EXCEPT AS PROVIDED IN THE
LICENSE AGREEMENT FOR THE SOFTWARE BEING COPIED.  Many software license
agreements allow you to make a copy of the distribution diskettes for
backup purposes (in case you have a fire, lightning strikes, or your
son steals them to store his X-rated GIFs); you may use COPYFLOP to do
this only in accordance with that agreement.

Copying software illegally only costs you in the end.  Like any
business, the cost of losses is ultimately extended to the customers in the
price.


More Legal Stuff
================
You may use COPYFLOP free of charge, provided you do not use it for
any commercial purposes.  If you would like to use it for commercial
use, please contact me at the net mail address at the end of this
documents (I promise I'll be reasonable).

COPYFLOP IS PROVIDED WITHOUT WARRANTIES OF ANY KIND, EXPRESSED OR
IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT
SHALL THE AUTHOR, HIS HEIRS OR ASSIGNS, BE LIABLE FOR ANY LOSS OF
PROFIT OR ANY OTHER DAMAGE, INCLUDING BUT NOT LIMITED TO SPECIAL,
INCIDENTAL, CONSEQUENTIAL, OR OTHER DAMAGES.


Contacting the Author
=====================
You may contact me with comments, flames, bug reports, praise,
feature requests, whatever, via Internet mail to
"prigney@well.sf.ca.us", or via CompuServe mail to 70761,2034.



