home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2004 September
/
PCWorld_2004-09_cd.bin
/
software
/
vyzkuste
/
stehujemewin
/
stehujemewin.exe
/
udma68.exe
/
UDMA.TXT
< prev
next >
Wrap
Text File
|
2004-01-28
|
9KB
|
153 lines
========================
UltraDMA Drivers for DOS
========================
This is a "package" of UltraDMA hard-disk drivers for DOS. All of the
drivers run UltraDMA disk(s) on PC motherboards having a "South Bridge"
controller chip made by Intel, VIA, SiS, ALi and other vendors. These
drivers are NOT for use by "add-on" IDE adapters made by Promise, SiiG,
HighPoint, or others, as such adapter cards already support UltraDMA in
their own on-board BIOS logic. The purpose of these drivers is to use
the motherboard UltraDMA controller and AVOID needing an "add-on" card!
There are two drivers in the package. UDMA supports one to four disks
of any size, including new models above 128 GiB. Its resident code is
592 bytes. UDMAJR ("Junior UDMA") is a smaller version of UDMA, whose
object-file size is only 2048 bytes by omitting some load-time messages
and the disk read speed and verify test. It has all run-time features
of UDMA (the resident coding is identical). It is intended for use by
embedded systems "ROM disk" whose files must be kept to a minimum size.
UDMA and UDMAJR can be used in "DMA only" mode, for minimum DOS systems
which do not load an XMS driver. Without XMS, UDMA/UDMAJR have no I-O
buffer and "pass back" to the BIOS those I-O requests which do not meet
DMA requirements (see below). Since such I-O is rare, UDMA/UDMAJR in
"DMA only" mode is still useful on minimum systems. The resident size
of the driver is reduced to 528 bytes in this case.
UDMA and UDMAJR also include a full set of driver return codes, to show
the exact cause of any error. The larger UDMA will display load-time
diagnostic messages for each of these return codes, if any error occurs
during the "comparison reads" between the driver and BIOS or during the
"read speed" test of each UltraDMA disk. These tests are done only at
load-time by UDMA and only where it is loaded with an XMS driver (these
tests are written to use XMS memory). If no XMS driver is present, or
when the smaller UDMAJR driver is run, the "comparison reads" and "read
speed" tests are omitted. Users who may be having problems can forego
UDMAJR and run the full UDMA as a diagnostic aid. The UDMA and UDMAJR
driver return codes (available after any I-O), and the message displays
for UDMA load-time errors, are as follows:
Code 08h - DMA timed out
0Fh - DMA error
20h - Controller busy before I-O
21h - Controller busy after I-O
80h - First DRQ timed out
AAh - Disk not ready before I-O
ABh - Disk not ready after I-O
CCh - Write FAULT before I-O
CDh - Write FAULT after I-O
E0h - Hard error at I-O end
FEh - BIOS/driver read MISMATCH (init only)
FFh - XMS memory error
For optimum and error-free performance, we recommended that you install
a single hard-disk as the "master" on the primary IDE channel. With a
disk that runs an UltraDMA mode higher than 2 (ATA-33) you MUST use 80-
conductor IDE cable. Also, note the following comments, from the ATA/
ATAPI-7 specification:
The host shall be placed at one end of the cable. It's recommended
that for a single device configuration the device be placed at the
opposite end of the cable from the host. If a single device
configuration is implemented with the device not at the end of the
cable, a cable stub results that may cause degradation of signals.
Single device configurations with the device not at the end of the
cable shall not be used with Ultra DMA modes.
UDMA mode is set to the highest common mode, supported by your disk and
chipset. This value should be initialized by your BIOS, even where the
BIOS itself does not do UltraDMA I-O. The drivers handle only read or
write requests. All other requests (seeks, etc.) are "passed back" to
the BIOS or some other driver for handling.
The disk is checked to support standard LBA mode (63 sectors, 255 heads
and its designed number of cylinders). The driver supports LBA mode for
MS-DOS 7.0+, PC-DOS 7.1, ROM-DOS, FreeDOS, new DR-DOS 7.0 versions, and
PTS-DOS 32 (the latter is untested). CHS mode is also supported for the
MS-DOS 6.x and below. This mode requires that all user files are on the
first 8 GiB of the drive. More data, if present, must be in other drive
partitions and accessed via other operating system supporting LBA mode.
If the buffer for an I-O request is not DWORD-aligned, fails a VDS lock
or crosses a 64K physical memory boundary, the request shall go through
a 64K buffer in XMS memory, using Ultra DMA I-O to and from the buffer.
Minimum DOS systems running UDMA/UDMAJR in "DMA only" mode shall "pass"
these requests back to the BIOS for execution. Not crossing a 64K DMA
boundary is required by the Bus Master IDE specification, and alignment
to a DWORD (4-byte) boundary is required by some Intel "South Bridges".
Also, I-O requests for more than 64K (over 128 sectors) of data will be
"passed" back to the BIOS. DOS should never issue such a request.
Please be sure to set up the hard disk in your BIOS correctly. Set it
to "Auto", "LBA", or "LBA Assisted". DO NOT set it to "CHS", "ECHS",
"Revised ECHS", "Bit Shift", "User Cylinders/Heads/Sectors", or "None".
If the BIOS has a setting such as "UDMA Capable" for a disk, enable it.
Any power-saving features like a "drive spin-down timeout", etc. should
be disabled, or driver read-write requests may time out!
The UDMA/UDMAJR drivers are written for systems using "legacy" UltraDMA
controller mode. The drivers will NOT "recognize" controllers set to
"native PCI" mode, only "legacy" IDE mode! Also, the motherboard is
expected to use a "standard" BIOS program, one that supports "EDD" BIOS
calls and provides "DPTE" data for "legacy" UltraDMA disks as described
in the Phoenix EDD BIOS specifiction Ver 1.1 (9 May 1995). It's through
such BIOS logic that UDMA/UDMAJR determine which disks to use, and what
their physical parameters are.
However, there are some "old" motherboards (pre-1998) that run UltraDMA
disks but have NO "EDD" BIOS. There are also some NEW systems (Compaq
and H/P) which offer both a serial ATA and parallel IDE controller, but
their BIOS in fact DOES NOT give proper "DPTE" data for "legacy" disks!
For such "old" and improper-new systems, UDMA/UDMAJR starting with V6.8
shall do a "hardware only" scan for UltraDMA disks, if the drivers find
NO disks to use through standard BIOS logic. The drivers will re-scan
the system WITHOUT using any EDD BIOS logic, and will expect to find:
BIOS unit 80h = Primary Master disk, UltraDMA disk #1.
unit 81h = Primary Slave disk, UltraDMA disk #2, if present.
unit 82h = Secondary Master disk, UltraDMA disk #3, if present.
unit 83h = Secondary Slave disk, UltraDMA disk #4, if present.
The "hardware only" scan REQUIRES that UltraDMA disk #1 be the primary-
master, a second UltraDMA disk to be the primary-slave, etc. If ATAPI
devices (ZIP, CD-ROM) are also present, they must use an IDE cable slot
AFTER all UltraDMA disks! ATAPI devices normally occupy the SECONDARY
channel for such systems. Note that, if a SCSI controller is present,
its on-board BIOS chip (if any) must be set DISABLED! This is so the
motherboard's main BIOS will not "install" any SCSI drives ahead of the
UltraDMA hard disks. This also demands that an UltraDMA disk, not a
SCSI or CD-ROM, must be the system "boot" disk. On systems that need a
"hardware only" scan with UDMA/UDMAJR, SCSI disks may still be accessed
by a DOS SCSI driver appropriate for the controller and its disks.
NOTE that these limits of attaching the UltraDMA disks first on the IDE
controller are required ONLY to deal with a missing/invalid "EDD" BIOS.
If a valid "EDD" BIOS is present as on most good "modern" systems, user
disk drives (both IDE and SCSI) may be configured in ANY desired order.
Load the driver through your "CONFIG.SYS" file after any memory-manager
(EMM386.EXE, etc.) but PRIOR to any disk-cache program (NCACHE2, etc.).
You should use a command-line similar to the following:
DEVICE[HIGH]=[path]UDMA.SYS
For example: DEVICE=C:\DOS\UDMA.SYS, DEVICEHIGH=C:\BIN\UDMAJR.SYS etc.
There are NO command-line options for any of the drivers, they all find
which hard-disks to use automatically, and they all run equally well in
conventional or upper memory.
Spread & enjoy!
Jack & Luchezar