ATAprobe v1.0
(c)1995,96 by PAP den Haan
pieterh@sci.kun.nl
http://thef-nym.sci.kun.nl/~pieterh

This program is freeware.  It functions as expected on all systems
tested, and every effort has been made to ensure that it will behave
well under all conditions.  Nevertheless the author can accept no
responsibility for damages incurred, either direct or indirect,
through the use of this program and the information it displays.


Contents

   Contents
   What is ATAprobe?
   What does it cost?
   How do I use it?
   Feedback
   What does its output mean?


What is ATAprobe?

   ATAprobe is yet another program which displays drive information
   based on the Identify command.  An attempt was made to sift the
   essential information from the less important (ofttimes simply
   obsolete or incorrect) data.  Another distinguishing feature is
   that it detects ATAPI devices such as CD-ROMs and tapes.

   In contrast to many other utilities of its ilk, it closely
   follows the ATA,-2,-3 and ATAPI 1.2 & 2.5 specifications and
   should work with all equipment conforming to these standards,
   plus most hardware which does not.  Unfortunately, many "ATAPI"
   devices in particular violate the ATAPI standard in all kinds of
   interesting ways.

   Although ATAprobe is a self contained and (hopefully!) useful
   program, it is actually a spinoff from a much larger one still
   under development.  This way it is possible to make some nice
   functionality available early.  Since any improvement to ATAprobe
   is an improvement to its larger brother, it allows vital parts of
   the latter to mature early.


What does it cost?

   Nothing.


How do I use it?

   Run ATAprobe from plain DOS.  Running from a DOS session under
   the Win95 graphical shell or an OS/2 DOS box will generally NOT
   work reliably.  The 32-bit protected mode features of these
   environments may prevent ATAprobe from directly accessing your
   hardware.

   Simply running "PROBE" will already do more or less what you'd
   expect.  There are a number of command line options you can add:

   /P

     Pauses after displaying the info for each drive. Nice if half
     the message scrolls off the top of the screen, and you have no
     pager except MSDOS' inconvenient MORE.COM.

   /EXPERT

     Expert mode gives you more detailed information.

   /DUMP

     Dump mode dumps the full Identify data. You should pipe this
     to MORE or a file---the /P option does not work right with
     /DUMP.

   /MEGA

     This program normally works with ISO standard megabytes of
     1,000,000 bytes.  If you're used to "binary" megabytes of
     1024*1024 bytes, use this option.  This definition of a
     megabyte is often used in system software, such as the BIOS
     setup.

   /PRIMARY
   /SECONDARY
   /TERTIARY
   /QUATERNARY

     Tells ATAprobe to probe only these ports (you can specify as
     many as you like).  Without any of these options, it will probe
     all four.  Use this if one of the probes conflicts with some
     other hardware.

   /RESET

     Gives ATAprobe permission to issue a Soft Reset to the
     interfaces.  This often helps if some devices remain
     undetected, but takes more time.

   /HELP

     Like all other unrecognized options, this causes a short help
     text to be displayed.


   To save the output of ATAprobe in a file, use the output
   redirection symbol ">":

        PROBE.EXE > OUTPUT.TXT

   will send its output to the file OUTPUT.TXT.  You can insert any
   of the switches described above right after PROBE.EXE.  Do not
   use the /P switch unless you enjoy hitting enter for no obvious
   reason.


Feedback

   Bug reports are more than welcome at pieterh@sci.kun.nl.  Please
   include the full expert and dump mode output from the program
   with your report:

        PROBE /EXPERT /DUMP > BUGREPT.TXT

   will generate a file BUGREPT.TXT with all info.

   It has not been possible to test all types of devices and some
   data may be displayed incorrectly.  I would be very interested in
   reports of success or failure with ATAPI CD-ROMs and tapes, ATA-3
   and ATAPI 2.x equipment.

   Suggestions for improvements and functionality enhancements are
   also welcome.  The basic concept of the program is unlikely to
   be modified much, though; more ambitious ideas will be considered
   for implementation in its big brother.


What does its output mean?

   Messages starting with the word 'error' mean that either your
   equipment, or my program refused to work as expected.  Either
   way, you have moral obligation to send me a bug report (see
   Feedback).

   For more information on some of the following terms, see also the
   Enhanced IDE FAQ (available for instance from my homepage).


   location

     Gives the IDE/ATA port the device is connected to, and tells
     you if the device is master or slave.  In expert mode, you get
     to see the two base addresses of the I/O ports in hex.

   device type

     The following types are recognized:

      * MFM/RLL: older 'dumb' devices
      * (E)IDE/ATA: standard (E)IDE harddisks
      * IDE/ATAPI: ATA Packet Interface equipment.  For example, all
        "(E)IDE" CD-ROMs.  Modern tape devices connected to the IDE
        cable also use ATAPI.  'Floppy' tapes are not ATAPI.
      * (unknown): an error made detection impossible.

   protocol version (expert only)

     This gives, as precisely as possible, the revision of the
     protocol (ATA-1, ATA-2, ATAPI) supported by the device.

   capabilities

     The following are displayed:

      * LBA: this is merely a more straightforward way of
        addressing sectors on the disk.  Unfortunately it has become
        inextricably mixed up with ways to break the 504/528 MB
        barrier with harddisks.  With some half-baked BIOSes the
        harddisk MUST support LBA in order to be used in full.
      * IORDY (expert only): this is a way for the device to throttle
        the data flow. In order for the faster PIO transfer modes to
        work well, the interface MUST support IORDY.
      * standby timer (expert only): the drive supports the standard
        way of programming the standby timer.
      * command overlap (expert only): the device supports overlapping
        of commands. Normally, only one device on an IDE/ATA channel
        can be busy executing a command at a given time. This affects
        performance in multitasking environments. Command overlap
        remedies this.
      * proxy interrupt (expert only): a shared interrupt technique
        which may be defined in future standards.
      * interleaved DMA (expert only): a way of using DMA with
        overlapped commands, to be defined in future standards.

   model
   serial number (expert only)
   firmware (expert only)

     The model number is the brand and type designation of the
     device.  The serial number should be unique to each individual
     drive.  Finally the firmware revision is the version number of
     the software executed by the drive's onboard microcontroller.

   pio modes
   dma modes

     The Programmed I/O and multiword DMA transfer modes supported
     by the device.  The modes vary from up to 3.3MB/s (PIO mode 0)
     to 16.6MB/s (PIO mode 4, DMA mode 2).  These figures only give
     the speed at which the device CAN transfer its data.  However,
     in most cases, not the PIO mode is limiting performance, but
     the physical properties of the device itself.  For example,
     with most harddisks you won't get much of a performance boost
     beyond PIO mode 2.

     On some controllers, the lowest mode common to both devices on
     a channel determines the transfer mode employed. In such cases,
     an old PIO mode 0 harddisk can badly affect the performance of
     a modern harddisk which can transfer 5MB/s or more.  PIO mode 0
     will throttle the throughput down to 3MB/s or so.  One of the
     uses of this utility is to spot this situation.

     See the Enhanced IDE FAQ for a listing of modes and more info.

   pio timing (expert only)

     Minimum cycle times with and without IORDY support.  On most
     drives, this is a good illustration of the importance of IORDY
     support.

   dma timing (expert only)

     Minimum and recommended cycle times. The minimum cycle time is
     merely the time at which the device still functions; however,
     it may be necessary for the device to heavily throttle the data
     flow at this speed which may negatively affect performance.
     Maximum throughput is obtained at the recommended time, so no
     MB/s figure is shown for the minimum cycle time.

   geometry

     the default geometry (cylinders, heads and sectors) as reported
     by the harddisk.  Some disks also report the currently valid
     geometry.  Note that modern 'translating' BIOSes may represent
     the drive using a geometry different from this.

   command sets

     This relates to enhanced features found on newer harddisks.

      * self monitoring (SMART): Self Monitoring Analysis and Report
        makes the drive able to warn you about some forms of
        impending failure.
      * security: security features implement a simple password
        scheme in the drive firmware.
      * removable: the (supposedly removable) drive implements
        commands supporting the use of removable media.
      * power management: the drive implements advanced power
        management features.

   security status

     If security is supported and enabled, this gives the security
     status of the drive.

   buffersize

     The usable size of the drive's onboard buffer. This may be
     lower than advertised because the drive firmware tends to
     consume a bit of onboard RAM as well.

   block mode

     A feature allowing the drive to send more than one sector's
     worth of data per interrupt. This cuts down on the number of
     time-consuming interrupts generated. Transfer rate will
     usually be raised slightly and CPU usage reduced.

     Some drives allow large block sizes. This is generally not
     recommendable, for three reasons:

      - Above a moderate number (4-16) of sectors per block, the
        law of diminishing returns makes its effect felt.
      - Large blocks take more time to transfer. During transfer,
        interrupts such as those from the serial ports will not
        be serviced. This may lead to CRC errors with high-speed
        modems.
      - Some drives allow a block size as large as the buffer
        size. Probably because this interferes with the drive's
        ability to streamline data flow, this often causes a
        performance drop.

     If the drive allows, the current number of sectors per
     interrupt is also displayed.

   packet interface (expert only)

     The packet interface is the protocol used to send commands
     to ATAPI equipment such as "IDE" CD-ROMs. The DRQ type
     determines how the drive will react to a packet command,
     and how efficiently the operating system can handle it:

       * microprocessor DRQ: the driver polls the device for
         up to 3 milliseconds, waiting for it to react to a packet
         command.
       * interrupt DRQ: the device sends an interrupt when it is
         ready. It is not necessary to poll, which reduces CPU
         usage.
       * accelerated DRQ: the device reacts to a packet command
         within 50 microseconds. This keeps both CPU usage and
         response time low.

     The packet size, which should be 12 bytes for CD-ROMs, is also
     displayed.

   For an explanation of the dump output, please read the ATA-3
   specification.
