    Use of the ATAHD.EXE program indicates acceptance of the end user
    license agreement as put forth in the file EULA.TXT. You must read
    EULA.TXT before using or distributing the program.

    If you have a question or problem, please see the QUESTIONS &
    ANSWERS section below. Following that is the HOW TO CONTACT ME
    section.

    This program is free and may be distributed freely as long as it is
    distributed in it's original, unaltered form, which shall consist of
    a single archive called ATAHD20.ZIP which must contain the
    following four unaltered files:

        ATAHD.EXE       ; the executable
        README.TXT      ; this file
        EULA.TXT        ; the end user license agreement
        TIMER.TXT       ; info on the timer functions used in ATAHD

    Any programmers interested in obtaining the library of high
    resolution timing functions used to create ATAHD, please see the
    file TIMER.TXT. The library supports C/C++, Pascal, Basic and
    Assembler.

    Since this program was originally designed as a troubleshooting tool
    to help identify hard disk problems, and works at the hardware
    level, it only runs under DOS.

    PLEASE NOTE: This program does not write to any sector on a hard
    drive. In fact it doesn't even READ from a sector. It moves the
    drives heads (via the SEEK command) but that's it.



----GENERAL FEATURES

    o  Shows which ATA/IDE ports are active and to which ports drives
       are connected.

    o  Will detect and display data for a drive when the drive has not
       yet been recognized by the BIOS.

    o  Will detect and display data for drives on an active ATA/IDE
       port, even if the primary port is disabled or non-functional.

    o  Reports on the "command queuing" capability of the newest drives.

    o  Reports the spindle rotation speed of almost all drives.

    o  Recognizes up to 8 ATA/IDE hard drives using the standard port
       addresses of 1F0h, 170h, 1E8h & 168h.

    o  Small, fast program will fit on just about anyone's emergency
       boot floppy.

    o  Supports drives larger than 8 gigabytes.


----HOW TO RUN ATAHD


    Type ATAHD at the DOS command line and hit <enter>. A list of
    active ATA/IDE ports will be displayed. If a hard drive is detected
    on one of these ports, it's model number will be displayed. A dashed
    line indicates that there is no hard drive connected to that port.

    Run ATAHD again with the "port/device" number found to the left of
    the drive's model number as a parameter to ATAHD. For instance, if
    a drive is found on the [primary master] port, type:

        ATAHD 0

    and hit <enter>. This will display the data for that drive.



----DRIVE REPORTED DATA


    Model number, Firmware revision, Serial number:

        Drive identification information.


    Onboard cache:

        The size of the drive's onboard memory cache. Also known as the
        drive's "buffer".


    LBA   - Logical Block Addressing When a drive is run in LBA mode,
            all sectors on the drive are assigned a unique number and
            are addressed sequentially.

    IORDY - Used by the drive to slow the interface, if needed, allowing
            the implementation of fast PIO modes.

    SMART - Self Monitoring And Reporting Technology Used to monitor the
            status of the drive's integrity.

    UDMA  - Ultra Direct Memory Access UDMA mode 2 transfers data at a
            maximum of 33 megabytes per second, UDMA mode 4 transfers
            data at a maximum of 66 megabytes per second.

    DMA   - Direct Memory Access DMA modes 0, 1 & 2 transfer data at a
            maximum of 4.2, 13.3 and 16.7 megabytes per second,
            respectively.

    PIO   - Programmed Input/Output PIO modes 0, 1, 2, 3, & 4 transfer
            data at a maximum of 3.3, 5.2, 8.3, 11.1 and 16.7 megabytes
            per second, respectively.


    Block mode transfer:

        Reports the maximum number of sectors that can be transferred in
        a single interrupt. Also known as "read/write multiple".


    Controller Interface:

        Reports the major version of the ATA specifications used to
        interface with the controller on this drive.


    Command Queuing:

        Reports whether command queuing is supported or, if it is,
        reports the maximum number of commands this drive can queue
        (queue depth). Queued commands are executed in a more efficient
        order, similar to a SCSI (Small Computer Systems Interface)
        drive.


    Capacity:

        Reports the drive capacity in megabytes (MB) or gigabytes (GB),
        depending on the size of the drive, and in bytes. If the drive
        is larger than 7.87 GB (8,455,200,768 bytes) then LBA mode MUST
        be used to achieve the full capacity of the drive. If this is
        the case, then two capacities are reported: one for LBA mode and
        one for CHS mode. As more and more drives are being manufactured
        with capacities larger than 7.87 GB, CHS mode is becoming
        obsolete but will still be around as long as older drives exist.


    Cylinders Heads Sectors (CHS):

        If the BIOS doesn't automatically recognize your drive, this
        info can be used to set up the BIOS parameters. Use 0 for "write
        pre-compensation" and the same value you used for cylinders
        under "landing zone" (the names might be slightly different).
        Also, see the note above.



----MEASURED DATA


    Track to Track Seek:

        Reports the amount of time required to move the drive heads from
        one track to the next, in milliseconds. On consecutive runs of
        ATAHD, slight fluctuations of this value are normal, some
        drives more than others.


    Average Seek:

        Reports the amount of time required for an average random seek,
        in milliseconds. On consecutive runs of ATAHD, slight
        fluctuations of this value are normal, some drives more than
        others.


    Spindle Rotation:

        Reports the spin rate of the drive platters in revolutions per
        minute.



----QUESTIONS & ANSWERS


    Q. Why is there a question mark following the "Onboard cache" field?

      A. Some drives don't properly report the amount of cache they
         actually have onboard. If the reported value looks suspicious,
         then it gets the question mark. This does not mean that the
         value is wrong, but in most cases, it is.


    Q. Why does it say SMART is not supported when I know that it is?

      A. This might occur on some of the earliest SMART capable drives.
         The ability of a drive to acknowledge it's SMART support wasn't
         implemented until ATA-3. If, under the "Controller interface"
         field, it says "ATA-2", then that's the reason.


    Q. Why is the spindle rotation speed "not supported" on my drive?

      A. Back in ancient times (early '90s) some drive manufacturers
         chose not to fully support the fledgling ATA specifications and
         hence do not support the method this program uses to measure
         the spindle rotation. Drives that exhibit this behavior are
         fairly rare.


    Q. ATAHD detected and displayed the data for my drive even though
       the BIOS doesn't recognize it, but why does the average seek time
       seem out of whack?

      A. Some older drives need to be initialized by the BIOS before the
         seek portion of this program can work properly. Newer drives
         don't have this problem but in any case, it's best to ignore
         the seek times until the drive has been set up in the BIOS.



----HOW TO CONTACT ME

    Before you e-mail me, please read the question & answer section
    above.

    Send comments, suggestions and bug reports to:

        mbmallory@netscape.net

    Or, if you prefer paper mail:

        M.B.Mallory
        P.O.Box 12412
        Lake Park, FL 33403
        U.S.A.


    Want to know more about ATA hard drives and how they work? Read the
    excellent "The Enhanced IDE/Fast-ATA FAQ" which can be found at:

        http://thef-nym.sci.kun.nl/cgi-pieterh/atazip/atafq.html

