v3.24 CPDRead - Copy Protected Disk Reader
                Copyright (c) 1995,96 Ulrich Doewich


-\\- DISCLAIMER

    This software is provided as is. The author accepts no responsibility
    for damages occurring as a direct or indirect result of using this
    software.


-\\- Minimum Requirements

    386 based PC
    MS-DOS v2.0
    5.25", 3.5" or 3" disk drive
    EGA/VGA

    The EXE and CFG files can be located anywhere on the PATH, but must
    reside together in the same directory.

    Do NOT attempt to use CPDRead under any other OS than MS-DOS. CPDRead
    programs the floppy disk controller of the PC directly and this could
    lead to unpredictable results under operating systems that use special
    drivers for floppy disk access (eg. Windows95).


-\\- Introduction

    CPDRead was created to provide an easy method of transferring data from 
    the CPC to the PC. To this end, CPDRead allows you to read any kind of 
    data from either 3", 3.5" or 5.25" floppy disks and convert it into a 
    DSK image. CPDRead v3.xx generates images in the extended DSK format. 
    This format provides greater flexibility with CPC disks that use 
    varying sector sizes.

    CPDRead attempts to create an accurate representation of the original
    disk and retains any copy protection that might be present. Should you
    encounter a disk that CPDRead cannot transfer, please send me an e-mail
    describing your problems.


-\\- Usage

    There are two possible ways of reading CPC disks: either you hook up a
    3" drive to the PC (please see the comp.sys.amstrad.8bit FAQ, available
    at ftp.ibp.fr in /pub/amstrad for installation instructions), or you
    will have to copy the data onto a 3.5" or 5.25" disk. The latter
    requires you to have a secondary drive of either format connected to
    your CPC (once again, see the FAQ for details on how to do this).

    Before you use CPDRead, you should verify that the defaults given in
    the CPDREAD.CFG file match your particular setup. The configuration
    file consists of a few keywords denoted my the # character. These
    keywords are case insensitive. They should be followed by their
    corresponding value, separated from the keyword by spaces, tabs or
    equal signs. Comments start with a semicolon (;), anywhere on the line.
    Keywords may also be commented out.

  PLEASE NOTE:

    * If you are using 360K floppy disks in a 1.2MB 5.25" disk drive, the
      #STEP setting needs to have a value of 2.
    * If you are using a 3" drive, the #STEP value needs to be 2.


    CPDRead is command-line driven - type CPDREAD without parameters to get
    the proper syntax:

    CPDREAD.EXE filename <tracks - 1 to 80> <B - drive B> <S - 2nd side>

    'filename' is mandatory and specifies what you would like to call the
    output file (you may also specify a path along with the filename). No
    '.DSK' extension should be given since it is automatically appended by
    CPDRead. The other switches are optional and can be given in any order.
    'B' and 'S' respectively specify that you'd like to read from drive B
    and/or the second side.

    Transfer commences immediately after execution, so the disk to be read
    should already be in the drive. During processing CPDRead will display 
    the current settings on the left, and the physical track/sector layout 
    on the right. Please note that CPDRead only displays the layout of the
    first 45 tracks. When the process has completed, press any key to get 
    back to the DOS prompt.

    That's it! Have fun with your new DSK image.. <g>


-\\- Feedback

    I welcome any suggestions for improvements and any bug reports you
    might have.. You can reach me at the following addresses:

    snail-mail:
    Ulrich Doewich
    112 Tea Rose Street
    Markham, Ontario L6C 1X3
    CANADA

    e-mail:
    ulrich.doewich@shaw.wave.ca


-\\- Acknowledgments

    I would like to thank the following people who helped me with the
    development of this utility:

    Sergio Bayarri  - for his endless testing sessions of yet _another_
                      CPDRead version. Thanks - without your help it
                      wouldn't be what it is today!

    Kevin Thacker   - for putting me on the right track and pointing out
                      the general order of how things should be done..
                      (K.E.W.Thacker@cs.cf.ac.uk)

    David Wykes     - for giving me constant feedback during the beta stage
                      of CPDRead v3.xx.. Thanks to you it should now work
                      on everybody's machine!

    And of course a big thanks to my faithful -BETA- Team:

        Sergio Bayarri (root@aiind.upv.es)
        Diederick Langenberg
        Noel Llopis-Artime (llopis@cs.unc.edu)
        Philippe Meseure (meseure@lifl.fr)
        Emmanuel Roussin (roussin@blaise.ibp.fr)
        David Wykes (bsc4074@dcs.napier.ac.uk)


-\\- History

v3.16   First BETA release of third generation code - 100% Assembly.

v3.17   Corrected command-line scanning for EXE path - now it also works
        with MS-DOS versions below 7.00. Put in extra code to prevent
        premature drive motor shut-down.

v3.18   Implemented dynamic buffer allocation which cuts the executable
        size by about 24K.

v3.19   Complete new visual front-end with custom font and colors. Displays
        sector layout during processing. Looks much better now.. <g>

v3.20   Reworked FDC initialization routine according to Intel databook
        specs on the 82077AA. Corrected some minor cosmetic bugs. Fixed the
        problem that made the disk drive unusable under DOS when CPDRead
        finished.

v3.21   Extended the code that sends and receives bytes from the FDC to
        check for valid data direction. Made the exit routine more generic.
        Wrote a new error handler - indicates FDC timeouts (ie. no floppy
        disk in the drive).

v3.22   Made it more user-friendly by adding .CFG file parsing. Defaults
        may now be specified in CPDREAD.CFG - keyword handling is more
        flexible than in previous versions.

v3.23   Added the #STEP keyword to the config file to allow the use of 3"
        drives. CPDRead now aborts if the DSK to be written already exists.

v3.24   Extended maximum track value to 80, and changed the #SIDE keyword
        in the config file to specify if one or both sides of the disk are
        to be read. This allows reading of extended CPC disk formats (eg.
        Vortex, ROMDOS, etc.). The overwrite warning now queries the user
        if it is OK to proceed.

