Command: uide.sys / uidejr.sys
UIDE.SYS / UIDEJR.SYS is a DOS "Universal IDE" caching driver, which
supports IDE and SATA-HDs, CD and DVD.
UIDE.SYS / UIDEJR.SYS has to be loaded in CONFIG.SYS / FDCONFIG.SYS.
When FreeDOS is already running, you can load UIDE.SYS / UIDEJR.SYS
later with DEVLOAD.
As UIDE.SYS is still under development, it may happen that some
options / switches are not available in the actual version. Please
have a look at the actual help file in this case.
DEVICE = [path] UIDE.SYS [/A] [/B] [/D:DeviceNm] [/F] [/H] [/N1]
[/N2] [/N3] [/N4] [/Q] [/Rnn] [/Snnnn] [/UX] [/Z]
DEVICEHIGH = [path] UIDE.SYS [/A] [/B] [/D:DeviceNm] [/F] [/H] [/N1]
[/N2] [/N3] [/N4] [/Q] [/Rnn] [/Snnnn] [/UX] [/Z]
UIDE.SYS usually needs only its /Sn size switch and /D: to specify
a device name for the SHSUCDX CD-ROM Redirector.
UIDE.SYS switch options are:
/A Specifies use of ALTERNATE "legacy IDE" I/O addresses. The
first legacy controller will use alternate 01E8h/0168h
addresses, and a second legacy controller uses normal
01F0h/0170h addresses. If /A is omitted, the first
controller uses normal and the second uses alternate
addresses, as is usual for most BIOS programs and mainboards.
/A is for "odd" cases where "legacy IDE" addresses are REVERSED.
/A does not affect "native PCI" controllers.
/B For UIDE only, requests a basic "stand alone" UltraDMA driver
for disks or CD/DVD drives (no cache or diskettes). This
may help in tests or diagnostics. The basic UIDE can use
128K of XMS memory and can now load in HMA space. UIDEJR
will ignore /B.
/D: Specifies the desired device name, used by SHSUCDX to access
the CD/DVD drives.
Example: /D:CDROM1 /D:MYCDROM etc.
Device names must be from 1 to 8 bytes valid for use in DOS
filenames. If /D: is omitted, or the device name after a
/D: is missing or invalid, UDVD1 is used as the default.
When disks/diskettes are present but no CD/DVD drives, the
name UIDE$ or UIDEJR$ shall override any /D: name.
/E For UIDE only, makes the driver "call the BIOS" for all hard-
disk I-O. /E avoids setup problems with some "emulators"
(VirtualBox, etc.) that do NOT emulate all hardware logic!
/E still permits UIDE to cache hard-disk data (unlike /N1,
that does no hard-disk handling). UIDEJR will ignore /E.
***** NOTE *****
Use of /E on protected-mode systems (JEMM386 etc.) may run
VERY slow! Many "El Cheapo" BIOS programs omit DOS "VDS"
logic for hard-disks, and in protected-mode, they can only
do old "PIO mode" data transfers, not UltraDMA! If /E is
needed for UIDE, users should set up their system in real-
mode (UMBPCI, etc.) whenever possible.
/F For UIDE only, requests a "fast" cache using 32K cache blocks
with 40-MB or 50-MB caches and 64K cache blocks with 80-MB
caches or more. Without /F, 40-MB to 1023-MB caches have
16K blocks, and 1024-MB to 2047-MB caches have 32K blocks,
for up to 25% more cache capacity due to less "lost space"
in a file's last cache block. /F gives up a small amount
of capacity for greater speed, from handling fewer blocks.
/F is ignored with 2048-MB caches (2-Gigabytes) and up, as
they must use 64K blocks. UIDEJR will ignore /F.
/H Requests use of "free" HMA space for most of the driver. /H
makes UIDE use only 944 bytes or makes UIDEJR use only 768
bytes of upper-memory. /H must NOT be used with ROM-DOS,
which has no HMA! When /N3 is also given, /H is ignored.
***** NOTE *****
MS-DOS kernels have ERRORS in posting free HMA space which
can give CRASHES! Specifying /H is "At the user's risk"!
No such crashes are noted for other DOS kernels, but users
should TEST a system, before giving /H or /HL with UIDE or
/N1 Requests NO handling of any hard-disk drives. /N1 is meant
for diagnostics or special situations, not for normal use!
/N2 Requests NO handling of any CD or DVD drives. For UIDEJR
only, all CD/DVD logic will be dismissed, saving 1680 HMA
bytes!/N2 is meant for diagnostics or special situations,
not for normal use!
/N3 Requests no XMS memory. /N3 requires loading in low memory,
or the driver aborts. For UIDE, its /B "basic" driver is
used. /N3 loses much speed, as "misaligned" or other I/O
unsuited to UltraDMA must use BIOS logic for disks or "PIO
mode" for CD/DVD input.
/N4 See /Z below.
/Q Enables awaiting "data request" before starting UltraDMA disk
transfers. /Q is for "old" systems and must be used only
if UIDE loads O.K. but seems unable to transfer data. /Q
must be OMITTED with a SATA-to-IDE adapter from Sabrent or
others, as such cards do not emulate "data request" from a
SATA disk! /Q does not affect CD/DVD drives.
/R15 Sets the driver's XMS memory at 16-MB or 64-MB. /R15 shall
/R63 reserve 15-MB of XMS, and /R63 shall reserve 63-MB of XMS,
for old DOS "game" programs which require XMS memory below
16-MB or 64-MB! UIDE/UIDEJR must be able to reserve this
memory, reserve their required XMS above that, then "free"
the reserved XMS. If not, the driver displays "XMS init
error" and aborts! /R15 or /R63 require that UIDE/UIDEJR
load after the user's XMS manager (XMGR, HIMEMX, etc.), so
another driver cannot take any XMS first, and the reserved
XMS is just beyond the HMA area. See section 7 of the
README file for further details.
/Sn For UIDE only, specifies the desired cache size, in megabytes
of XMS memory. Values for /S are 5, 15, 25, 40, 50, and
any number from 80 to 4093. /S1024 or more gives a 1- to
4-GIGABYTE cache! Use as much cache as possible, to deal
with today's BIG data files --
Below 128-MB memory: Use /S5 /S15 /S25 or /S40
With 128-MB memory: Use /S25 /S40 /S50 or /S80
With 256-MB memory: Use /S80 up to /S127
With 512-MB memory: Use /S160 up to /S255
With 1-GB memory: Use /S320 up to /S511
With 2-GB memory: Use /S640 up to /S1023
With 4-GB memory: Use /S1280 up to /S3072
Small systems may prefer /S25 or /S50 which set 1600 cache
blocks and are more efficient. If /S is omitted/invalid,
an 80-MB cache is set. Except for 25 or 50, values below
80 are "rounded" to 40- 15- or 5-MB. UIDE displays "XMS
init error" and aborts when not enough XMS memory is free!
If so, a smaller cache must be requested. For older V2.0
XMS managers (ROM-DOS etc.), only /S5 to /S50 may be used.
UIDEJR will ignore /S.
/U8 For UIDEJR only, handles up to 8 CD/DVD drives, not 4. This
adds 80 bytes to UIDEJR's size. /U8 is rarely needed, as
few PCs have over 4 CDs/DVDs. UIDE and UIDE2 will ignore
/U8, since they always handle up to 8 CD/DVD drives.
/UX Disables all CD/DVD UltraDMA, even for drives that can do it.
PIO-mode is then used on all CD/DVD requests. Except for
some "unusual" drives by Sony, etc. that do not follow all
ATAPI "rules", /UX is rarely needed. /UX does not affect
/Z For XMGR or UIDE only, limits their XMS moves to a maximum 2K
bytes in protected-mode, not 64K. /Z is ignored by real-mode
systems (UMBPCI etc.) and is not needed if JEMM386 or EMM386
handle protected-mode. Systems using other VCPI/DPMI/EMM
drivers must be TESTED, to see if /Z is needed by XMGR or UIDE
-- BAD schemes allowing NOT enough interrupts in an XMS move
may still exist! UIDE's old /N4 switch is the same as /Z and
can still be given. UIDEJR ignores /Z or /N4 and always
issues standard XMS calls.
For each switch, a dash may replace the slash, and lower-case letters
may be used.
UIDE.SYS is a DOS "Universal IDE" caching driver. It intercepts
"Int13h" BIOS I/O requests and caches data for up to 34 BIOS units,
including A: and B: diskettes if present, and including up to 2 TB
disks. UIDE.SYS accepts 48-bit LBA and 24-bit CHS I/O calls by new
or old DOS systems.
It uses its own UltraDMA logic for SATA or IDE hard-disks and will run
up to 10 "Legacy" or "Native PCI" IDE controllers. All possible I/O is
done in its cache memory for fast speed. UIDE "calls the BIOS" for
diskettes, SCSI, and other disk models, so it can cache ALL disks on a
DOS system! "Int 13h" drivers can load before UIDE, and it will
intercept and cache I/O for their disks, also. ("ASPI" and other
drivers that do not use Int 13h I/O are unsupported).
UIDE also supports up to 8 CD/DVD drives, including SATA, IDE, or older
"PIO mode" drives. On loading, it checks up to 10 "Legacy" or "Native
PCI" IDE controllers and runs the first 8 CD/DVD drives found. UIDE
does file input for SHCDX33E or other "CD-ROM Redirectors" like MSCDEX,
and it caches all file data and directories for faster speed! It also
supports DOS "audio" requests and will "play back" an audio CD. Data,
audio playback, and "trackwriter" programs can be handled by UIDE using
multiple drives on one system. Audio and "trackwriting" is uncached.
UIDE caches 5 Megabytes to 4 GIGABYTES of data! It uses 5344 bytes of
upper-memory for any size cache. All its cache tables and data are in
XMS memory. A "stand alone" UIDE (/B switch, no caching or diskettes)
can be used for tests/diagnostics and takes 3824 bytes of
UIDE can also load in 640K DOS memory, and its /H switch can be used
to put most of the driver in free HMA space, thus taking only 944
bytes of upper- or DOS memory.
UIDEJR.SYS ("junior UIDE) omits caching but it still runs up to 10
SATA/IDE controllers, 32 SATA/IDE hard-disks and 8 SATA/IDE/"PIO mode"
You should load an XMS manager (e.g. XMGR.SYS, HIMEMX or JEMMEX
In CONFIG.SYS / FDCONFIG.SYS:
DEVICE=C:\FDOS\BIN\XMGR.SYS /N128 /B
DEVICEHIGH=C:\FDOS\DRIVERS\UIDE.SYS /S125 /D:MYDVD
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.