			UltraDMA Driver for DOS
			~~~~~~~~~~~~~~~~~~~~~~~

This is a DOS driver, intended to run ONLY a single UltraDMA hard disk
on chipsets made by Intel, VIA, SiS, ALi, and other manufacturers. It
CANNOT be used with the add-on IDE controller cards having an on-board
BIOS that already supports UltraDMA like Promise, SiiG or Adaptec. The
disk must be the MASTER on the PRIMARY IDE channel. A primary slave is
assumed to be absent. Other IDE units (CD-ROM, ZIP, LS-120, etc.) must
use the secondary channel, and are assumed to be run by other drivers.

An "Identify Drive" command is sent to the disk when the driver loads.
Its mode is set to the highest supported. For older controllers which
won't run in this mode, the maximum mode can be specified by an option.
ATA-16 to ATA-133 hard disks may be used. This driver handles only read
and write requests to the PRIMARY MASTER disk. All other requests (seek
etc.) are "passed" back to the BIOS or some other driver for handling.

The disk is assumed to support standard LBA mode (63 sectors, 255 heads
and its designed number of cylinders). The driver supports 28-bit LBA
mode (BIOS commands 42h read, 43h write) and handles up to 128-GB disks
in MS-DOS v7.0+, PC-DOS 7.1 and FreeDOS. The old 24-bit CHS mode (BIOS
commands 2 read, 3 write) is still supported for MS-DOS v6.x and below.
CHS mode requires all user files to be on the first 8 GiB of the disk.
More data, if present, must be in other disk partitions, and accessed
via other operating systems which support LBA mode.

Version 2.0+ of this driver is changed so that if the user I/O buffer
is not DWORD-aligned, fails a VDS "lock" or crosses a 64K boundary, a
request shall be processed through a 4K driver buffer, using UltraDMA
I/O to and from the buffer. This prevents "passing" any I/O request
back to the BIOS for execution in slow PIO mode, as in older versions
of this driver. Not crossing a 64K DMA boundary is required by the Bus
Master IDE specification, and DWORD alignment - by the Intel chipsets.

With V3.1+, if the symbol QW is defined, the "Quick-Write" version of
this driver, with a 20K I/O buffer, shall be assembled. All output is
from its buffer, so this driver version need NOT wait for output end!
Used in systems which "gather" blocks of data for faster output, e.g.
with Symantec's NCACHE2 disk-cache, the "Quick-Write" driver can give
SIGNIFICANT speed increases as writes become OVERLAPPED! However, the
driver and cache EACH need a 20K buffer for best speed, output errors
CANNOT be reported before a subsequent I/O request, and its check for
I/O end does NOT check the DMA-interrupt flag, to avoid trouble by an
intervening BIOS request which might RESET the flag! Thus the "Quick-
Write" driver may not be used on old chipsets [e.g. Intel 82371] that
require use of the DMA-interrupt flag. The "Quick-Write" driver WORKS
on newer chipsets [e.g. VIA VT8235] and so is "Use At Your OWN Risk"!

The driver must be loaded from CONFIG.SYS after any XMS/UMB drivers,
but before any disk caching software, using the following line:

		  DEVICE[HIGH]=[path]UDMA.SYS [Mode]

"Mode" is a digit from 0 to 6 to set an UDMA mode limit (default is 6).
Any slash or dash is optional, i.e. "/4", "-4", "4" are all equivalent.
Unknown option characters are simply ignored without any error message.

Even if a maximum UDMA mode is specified, the UDMA mode will be set to
a LOWER value if the hard disk cannot handle that maximum! For example
specifying /5 (ATA-100) on a hard disk limited to Mode 4 (ATA-66) will
cause the driver to set the disk to Mode 4, the best the disk will do!
You don't normally need the Mode option; it'll be automatically set to
the highest mode of your disk. If your controller does NOT support it,
however, you MUST expressly set a limit by the Mode option! Modes are:
0.ATA-16, 1.ATA-25, 2.ATA-33, 3.ATA-44, 4.ATA-66, 5.ATA-100, 6.ATA-133.

Spread and enjoy!
Jack and Luchezar
