Command: udma.sys / udmajr.sys
UDMA.SYS / UDMAJR.SYS are DOS hard-disk caching driver for UltraDMA
hard-disks. UDMA.SYS / UDMAJR.SYS has to be loaded in CONFIG.SYS /
When FreeDOS is already running, you can load UDMA.SYS / UDMAJR.SYS
later with DEVLOAD.
UDMA.SYS / UDMAJR.SYS are out of date. There is NO MORE support
by the author! You should use UIDE.SYS instead.
DEVICE[HIGH] = [path]UDMA.SYS [/A] [/Q] [/R] [/Sn] [/U]
DEVICE[HIGH] = [path]UDMAJR.SYS [/A] [/Q] [/R] [/Sn] [/U]
UDMA.SYS / UDMAJR.SYS normally needs no switches. Its switch options
are as follows:
/A Specifies use of the old alternate EIDE controller addresses,
01E8h-01EFh on the primary channel, and 0168h-016Fh on the
secondary channel. If /A is omitted, the driver will use
normal controller addresses of 01F0h-01F7h or 0170h-0177h.
/A is only for an "odd" SATA BIOS or other unusual cases.
/Q Enables awaiting "data request" before starting UltraDMA data
transfers. /Q must be OMITTED with a SATA-to-IDE adapter
by Sabrent etc., as such cards do not emulate data request
from SATA disks! /Q is not needed with newer controllers
or IDE disks. It is for "old" systems and should be used
only if UDMA loads O.K. but seems unable to transfer data.
/R Restricts UDMA to "regular" memory and avoids the HMA for its
binary-search table. /R may be required with DOS systems
that will NOT allocate memory until after CONFIG.SYS loads
drivers! /R is unneeded with V7.10 MS-DOS, V6.22 MS-DOS,
V7.1 PC-DOS, PTS-DOS, or EDR-DOS. /R is REQUIRED to work
with ROM-DOS! Other DOS variants should be tested first.
/Sn Specifies the desired cache size, as follows:
/S0 5-MB cache, 1280-byte table size, 8K blocks.
/S1 10-MB cache, 2560-byte table size, 8K blocks.
/S2 20-MB cache, 2560-byte table size, 16K blocks.
/S3 40-MB cache, 2560-byte table size, 32K blocks.
/S4 80-MB cache, 2560-byte table size, 64K blocks.
/S5 120-MB cache, 3840-byte table size, 64K blocks.
/S6 160-MB cache, 5120-byte table size, 64K blocks.
/S7 200-MB cache, 6400-byte table size, 64K blocks.
/S8 250-MB cache, 8000-byte table size, 64K blocks.
/S9 400-MB cache, 12800-byte table size, 64K blocks.
/SL 750-MB cache, 24000-byte table size, 64K blocks.
When /S is omitted, /S4 is assumed. The driver logic and
stack take a fixed 2544 bytes along with the binary-search
table sizes above. UDMA sets its binary-search table and
1088 bytes of logic in the HMA unless /R is given or under
3648 bytes of HMA are free (2368 bytes with /S0), in which
case regular memory will be used. When not enough HMA or
regular memory for a given /S is "free", the largest cache
that fits in "free" memory is used. UDMA loads in 4K, so
at least a 5-MB cache in regular memory can always be set.
The 400-MB and 750-MB caches cannot use the HMA and always
take 15K or 26K of regular memory. For no UltraDMA disks
UDMA dismisses its UltraDMA logic during init, to save 368
bytes of HMA. For an old V2.0 XMS manager (ROM-DOS etc.)
the maximum is /S3 or 40-MB. /S0 is for ancient 8-MB DOS
systems and may lose efficiency caching today's big files.
At least /S1 is recommended. Enough free XMS memory must
be available for the cache size to be set, or UDMA aborts!
/U Requests the "stand alone" UltraDMA driver only (no caching),
which may be of help in running a disk diagnostic program.
For each switch, a dash may replace the slash, and lower-case letters
may be used.
UDMA.SYS is offered for those who wish to remain "compatible" with
older versions of that driver. It uses the same 640 byte resident
"core" as UDMA2.SYS or UDMAJR.SYS. As with all prior versions,
UDMA.SYS is the only driver in the set which displays the UltraDMA
controller "names" and PCI-bus data at load-time, for those desiring
to see which chip will be run. UDMA.SYS offers the full set of load-
time tests same as UDMA2.SYS.
UDMAJR.SYS is offered for "RAM disk" or "embedded" systems which
require an absolute minimum-size UltraDMA driver. It has the same
640 byte resident "core" as UDMA2S.SYS or UDMA.SYS with the same
UDMAJR.SYS omits an 80386 test, "read tests" and the controller and
disk "names" at load-time (the controller I/O address IS shown!),
thus it achieves an object-file size of 2048 bytes.
In CONFIG.SYS / FDCONFIG.SYS:
Copyright (C) 2007 Jack Ellis, updated 2011 by W. Spiegl.
This file is derived from the FreeDOS Spec Command HOWTO.
See the file H2Cpying for copying conditions.