

              CMFloppy: A Three-in-One Utility for Floppy Diskettes

                            by Charles F. Martin


     CMFloppy v.1.7 is a menu-driven or command-line-driven shareware program
     for DOS, for copying, formatting and scanning floppy diskettes of format
     3.5" or 5.25" DSDD or DSHD (360k, 1.2M, 720k or 1.44M).  CMFloppy is
     distributed as shareware.  You are licensed to use it for evaluation for
     60 days.  After 60 days, you must register it by sending $10 to 
     NoVaSoft, 3239 Riverview Dr., Triangle, VA 22172-1421.

     CMFloppy is most often distributed as a .ZIP compression or .EXE self-
     extracting compression.  Extract the file set to a disk, and select that
     disk and directory as the DOS default.


     - RUNNING WITH NO COMMAND LINE PARAMETERS:

     At the DOS prompt, just type CMFLOPPY.  An opening screen asks if you
     want to copy, format or scan a diskette, or exit.  Make your choice by
     pressing the appropriate letter.

     -- Diskette Copying:

     After pressing C to select diskette Copy, CMFloppy will ask if you want to
     use a diskette image file as the master.  If this is the first time you
     have used CMFloppy, the answer is certainly No (the default).  Press N or
     Enter.

     CMFloppy next asks which hard disk (or RAM disk, if you have one big
     enough) to use for the scratch file which will be created and will become
     the master diskette image.  Press a drive letter C or above.  (A and B
     are always taken to be floppy drives.)  CMFloppy will create a file
     called SCRATCH.TMP on the root of the requested drive, and make sure
     there is enough room for a 1.44M floppy image.

     Next CMFloppy asks which floppy drive to use for copying.  The only
     answers recognized are A and B.  After pressing A or B, CMFloppy tells
     you to insert the master diskette in the drive and press Enter.  This
     diskette is read and written into the scratch file.

     After successfully reading the diskette and writing the scratch file
     image, CMFloppy will ask if you want to save the image permanently to the
     same disk for reuse at a later date.  The default is No.  If you answer
     Y, you will be asked to enter a file spec for the image to be saved.
     Omit the drive letter and colon, but include a path (optional) and
     filename (necessary).  The scratch file will be renamed as you specify.
     (CMFloppy uses the DOS "rename" function to rename and move the file to
     the directory you specify, and this function does not work across disks.
     Therefore use as the "scratch" disk the hard drive you intend the image
     to be saved on.)

     Next CMFloppy will ask how many copies to make.  The defauly is 1.  Press
     Enter if you want to make just one copy, or use + or - to adjust the
     selection before pressing Enter.  You will be asked if you want to verify
     each track as it is written as a check of the data integrity (the default
     is Y), and then you will be asked to insert a blank diskette in the
     specified drive and press Enter to continue, Esc to quit.

     You may use formatted or unformatted disks as the target for diskette
     copying.  CMFloppy first checks to see if the diskette is already
     formatted, and, if it is, warns you that all its data will be destroyed
     during the diskette copy and requests confirmation to proceed.  CMFloppy
     counts down through the number of copies you specified as disks are
     successfully duplicated, but you may decide to stop after any copy by
     pressing Esc instead of Enter.

     If the copy routine runs into any error which indicates that the target
     diskette magnetic media itself is defective, it stops trying to make the
     copy, and warns you not to use the diskette.  You should simply throw
     away any diskette that produces such an error.  With quality floppies
     available at low prices these days, this is cheap insurance against
     defective media.

     -- Diskette Scanning:

     The scanner function reads in a diskette in the same way as the copier,
     including offering you the choice of using an image file to start with,
     and making an image file after reading a diskette.  After reading the
     diskette, it displays the diskette contents three sectors (3x512 bytes)
     at a time, starting with the boot sector, track 0, head 0, sector 1.
     (Tracks and heads are numbered from 0, sectors are numbered from 1.)
     Parameters for the recognized diskette formats are:

     Format    Tracks           Sectors         Heads     Size 

     5.25 DD   40 (0-39)        9  (1-9)        2 (0-1)   360k 
     5.25 HD   80 (0-79)        15 (1-15)         "       1.2M 
     3.5  DD   80 (0-79)        9  (1-9)          "       720k 
     3.5  HD   80 (0-79)        18 (1-18)         "       1.44M 

     The scanner display shows the ASCII character corresponding to each byte
     in each sector.  Executable code and numerical data just looks like hash,
     but text is quite readable.  The scanner is good for looking at a
     diskette to see if there is information on the diskette not shown as part
     of files in the directory lists.  (The DOS delete function leaves data in
     diskette sectors alone, and only changes the directory table and FAT.)

     The keys PgUp/Dn and Ctrl-PgUp/Dn navigate through the diskette three
     sectors and one track at a time, repectively.  Esc leaves the scanner
     back to the CMFloppy main menu.
     -- Diskette Formatting:

     The CMFloppy formatter overwrites all information on a diskette with the
     format fill character, F6 hex.  There is no way to unformat a diskette
     once formatted by CMFloppy.  While this may seem a drawback, the
     advantage of using the CMFloppy formatter is that there is no risk of
     having an sensitive data left on the diskette after formatting.

     The formatter asks which drive to use for formatting, A or B, and then
     which density, Double or High (D or H).  After selecting, insert a
     diskette to be formatted and press Enter.  If the diskette is already
     formatted, CMFloppy will alert you to this fact, remind you that all data
     will be destroyed, and ask for confirmation to proceed.  The default is
     No.  As formatting proceeds, CMFloppy shows you the progress.

     As in the diskette copier, if CMFloppy encounters an error formatting or
     verifying a track, it will stop formatting and warn you not to use the
     diskette.

     -- Creating Diskette Images:

     CMFloppy can also be used just to create diskette image files on a hard
     drive.  The keystroke from the main menu is G (for imaGe), and the action
     is identical to scanning,except that the diskette image is not displayed.


     - RUNNING WITH COMMAND LINE PARAMETERS:

     CMFloppy may optionally be driven by command line parameters, for
     convenience in constructing batch files.  The command line convention is
     case-insensitive, and the syntax is:

     CMFLOPPY /commands FloppyDrive: HardDrive:ImageFileSpec

     All arguments are optional.  CMFloppy will simply ask you for any missing
     information.

     The command arguments which follow the slash can be any number from 1 to
     99 anywhere in the string, and any combination of the following letters,
     all run together with no spaces:  fcsxhdvni.

     -- Operation Code:  f,c, s or g defines the operation: format, copy, scan
     or make image file.  One of this group should be the first member of the
     string.  If more than one is specified, CMFloppy picks out the last in
     the string.

     -- Auto Exit:  x tells CMFloppy to exit immediately after completing the
     operation.

     -- Format Density:  h or d defines the diskette density, high or double
     density, during format.

     -- Track Verification:  v or n tells CMFloppy to verify each track after
     writing during diskette copy, or to not verify.  Verifying is slightly
     safer, though most errors caused by defective diskette media seem to get
     detected during the format or write steps.

     -- Warning Override:  i tells CMFloppy to ignore the warning normally
     issued when a previously formatted diskette is being used as the object
     in a format or copy operation.

     -- Drive and File Specifications:

     FloppyDrive is the single letter A or B, and must be followed by a colon.
     It tells CMFloppy which drive to use for formatting/scanning/copying.

     HardDrive is a letter C or higher, and ImageFileSpec is the optional spec
     to a file on the hard drive that will be used as the diskette image for
     copying, if it already exists and meets the size requirement for validity
     (i.e., exactly 360k, 720k, 1.2M or 1.44M); or that the image made from a
     master floppy diskette will be named after reading if it does not already
     exist.

     -- Examples:

     The following are all examples of valid command lines:

     CMFLOPPY /f5d a:

          (This command formats 5 disks in A drive at double density,
     prompting each new diskette insertion.) 

     CMFLOPPY /10CVIX B: C:\IMAGE

          (Assuming the file C:\IMAGE does not exist, this command reads a
     master diskette in drive B, creating an image on drive C as \IMAGE, makes
     10 copies in drive B at the same density, prompting each diskette
     insertion, ignoring the warning if formatted disks are inserted,
     verifying each track as it is written, and then exits CMFloppy
     immediately.)

     cmfloppy /cn3 c:\image

          (Assuming C:\IMAGE now exists and is of a size exactly corresponding
     to one of the floppy formats supported by your system, this command first
     determines which floppy drive to use, then makes three copies in that
     drive, prompting each diskette insertion, giving a data destruction
     warning if a formatted diskette is inserted, not verifying each track as
     it is written, and staying in the program after completion.)


     - ERROR DETECTION:

     CMFloppy reports any error returned by the BIOS (Basic Input/Output
     System) diskette services, and the operation during which the error
     occurred.  The following is a listing of the errors the BIOS may report,
     in hexadecimal format, as relayed by CMFloppy.  It is included here for
     completeness.  CMFloppy will ask you if you want to try another master if
     an error occurs during diskette reading, and will advise you not to use
     the partially copied or formatted diskette if the error occurs during
     diskette format/write/verify:

          Error Code:      Error Description:
          02h              Address mark not found
          03h              Attempt to write on write-protected diskette
          04h              Sector not found
          0Ch              Media type not found
          20h              General controller failure
          40h              Seek operation failed
          80h              Timeout (no diskette in drive)

     The only error you will likely ever see is 80h, if you forget to put a
     diskette in the drive.


     - REGISTRATION:  Reason and benefits:

     CMFloppy is distributed as shareware.  It is not "freeware" or public
     domain software, but is made available to you, the user, for evaluation
     for 60 days under the shareware principle of "try before buy".  CMFloppy
     is protected under copyright law the same as retail software, and may not
     be used beyond this evaluation period.

     If you wish to use CMFloppy beyond the 60-day evaluation period, you are
     required to register your copy.  Registration benefits include a copy of
     the registered edition of the current version of CMFloppy on disk, along
     with a bonus shareware collection of NoVaSoft's highly versatile CMFiler
     file manager (evaluation edition), and Stiller Research's incomparable
     Integrity Master anti-virus/data integrity program (evaluation edition).

     Registration fee for CMFloppy is $10.00, and may be remitted using the
     form below to:

          Charles F. Martin NoVaSoft 
          3239 Riverview Dr. 
          Triangle, VA  22172-1421  USA

     Author may be contacted by telephone at (703) 221-1833.

     -----------------------------------------------------------------------

                            CMFloppy v.1.6 Registration 

               NoVaSoft, 3239 Riverview Dr., Triangle, VA  22172-1421

               (Please remit cash or make checks payable to NoVaSoft)



     ________________________________________________       ________________ 
     Name                                                   Date 


     _______________________________________________________________________
     Address


     _______________________________________   _________   _________________
     City                                      State       ZIP 


     Enclosed is $10 in US currency, check or money order to register
     CMFloppy.

     I understand NoVaSoft will send me the current registered edition of
     CMFloppy on diskette, along with the current shareware editions of
     CMFiler (from NoVaSoft) and Integrity Master (from Stiller Research) for
     my evaluation.

     I further understand that if I register CMFiler within 60 days of
     receipt, my full CMFloppy registration fee will be applied to the $30
     CMFiler registration fee as a $10 discount.


     --------(Tear off and save to submit with CMFiler registration) --------



     ________________
     Date

     This coupon is a reminder for NoVaSoft that


     _________________________________________________ 
     Name 

     is a registered user of CMFloppy and is entitled to a $10 discount on the
     enclosed CMFiler registration.  This discount has been taken in the form
     of a reduction in remitted payment for CMFiler registration.

