Back to Top Last Update : Friday, 09-Sep-2011 23:59:01 HKT

XMGR- XMS Memory Manager
UIDE- "Universal IDE" caching driver
RDISK- 2-Gigabyte "RAM Disk" Driver
Last Update: 2011-09-09

Binary : drivers.zip ( 187.2 Kb )
Configuration Sample : dos710.zip ( 1.7 Kb )
XMGR, RDISK, and UIDE are DOS drivers for an 80386+ system using MS-DOS V5.0+, FreeDOS, and all similar DOS variants.

XMGR is a DOS XMS memory manager. It supports V3.70+ UMBPCI by Uwe Sieber and can load directly into UMBPCI upper-memory. XMGR also runs with JEMM386/JEMMEX, MS-DOS V4.49/V4.95 EMM386 or other similar "EMS managers". It is written to V3.0 XMS Specifications and supports up to 4-GB of memory.

RDISK is a DOS RAM-disk driver, which creates a "fast" disk drive using 2 Megabytes to 2 GIGABYTES of XMS memory! It loads as a system driver in CONFIG.SYS, or it can load later in AUTOEXEC.BAT or by user command. DOS can copy critical programs or data files to the RAM-disk and access them much faster. RDISK takes only 656 to 752 bytes of upper- or DOS memory. RDISK is a small "load it and forget about it" driver, for users who do not need resizing or other features.

UIDE is a "Universal IDE" caching driver for DOS. It has internal support for SATA and UltraDMA disks on up to 10 "Legacy" or "Native PCI" IDE controllers. It intercepts and caches DOS Int 13h I-O requests for up to 34 BIOS disks, including A: and B: diskettes. UIDE "calls the BIOS" to handle I-O for SCSI and other non-IDE disks, and it caches their data when I-O is complete. DOS Int 13h drivers for other disks can load before UIDE, and it will cache their data as well. (Drivers using "ASPI" or I-O schemes other than Int 13h are unsupported).

UIDE also supports up to 8 CD/DVD drives, which may be SATA, UltraDMA, or old "PIO mode" models. It accepts file-input requests by SHCDX33E and other CD "Redirectors", and it automatically caches all file data for CD/DVD drives. Data files, audio CD "playback", and "trackwriter" input can all be handled simultaneously on different drives (audio or trackwriter data is not cached).

UIDE caches 5 Megabytes to 4 GIGABYTES of data! It uses 5328 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 3792 bytes of upper-memory.

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.

UIDE can also be called by a user driver to cache data for its read and write requests. Read the file UIDE.TXT for all details.

There are two special "UIDE variants". UIDE2 has old style protected-mode caching (binary-search table in memory, not XMS!) for faster speed if using JEMM386 or other protected-mode schemes. UIDE-S is a smaller size driver that can be used on systems with limited HMA space. Read the initial comments in the UIDE2.ASM or UIDE.ASM source files for full details (UIDE-S is assembled from UIDE.ASM). The standard UIDE driver should work O.K. on most DOS systems.

The small UIDEJR driver ["junior" UIDE] is available. UIDEJR has no caching or diskette support, but it still handles up to 10 controllers, 32 BIOS disks and 4 CD/DVD drives, with a /U8 switch for 8 CDs/DVDs. The full UIDEJR for disks/CDs/DVDs takes only 3148 bytes of memory, or only 768 if using "free HMA" space. It has /N1 "CD/DVD only" and /N2 "disk only" switches that cause it to omit unneeded logic -- The "CD/DVD only" UIDEJR using HMA space takes only 176 bytes of memory and directly replaces old XCDROM/GCDROM drivers! UIDEJR usually requests 128K of XMS to use as an I-O buffer, so "misaligned" or other I-O unsuitable for UltraDMA can still be done through the buffer at full UltraDMA speeds.

"Free use" sources are offered with the XMGR, RDISK and UIDE binary files. See their README file for full details about these drivers.

Revision History
9-Sep-11 UIDE2 using fast protected-mode caching re-added. UIDE-S or UIDE2 handle 6 CD/DVD drives, not 4. Minor UIDE and UIDEJR logic reductions, other drivers re-dated only.
22-Jul-11 UIDE /E switch added to handle DOS "emulators" (VirtualBox etc.). Other drivers unchanged (re-dated only).
11-Jun-11 UIDEJR error detecting multiple CD/DVD units is corrected. No change to UIDE or other drivers (re-dated only).
7-Jun-11 UIDE and UIDE-S /X switch deleted. UIDE /M switch added, to save HMA but avoid speed loss! UIDE-S size reduced. Other drivers unchanged (re-dated only).
20-May-11 UIDE-S ("short" UIDE) added, for systems with limited HMA. See the initial UIDE.ASM comments, for details. Other drivers unchanged (re-dated only).
16-May-11 More "code mod" init errors corrected in XMGR/UIDE/UIDEJR. RDISK unaffected. The author's apologies; users should update NOW to the 16-May-2011 drivers!
14-May-11 UIDE/UIDEJR disk "timeout" now 7 seconds (was 0.4 sec) for "laptop" disk spin-ups. Disk-only UIDEJR at 1504 bytes (was 1600!) in memory, still 688 bytes using /H. Other drivers unchanged (re-dated only).
10-May-11 UIDEJR sizes minimized! "CD/DVD only" UIDEJR in HMA space (/N1 /H switches) takes 176 upper-memory bytes, directly replaces "old" XCDROM/GCDROM drivers! UIDEJR now runs 4 CD/DVD drives, new /U8 switch runs 8 when needed. Other drivers unchanged (re-dated only).
2-May-11 UIDE corrected to flush its cache before CD/DVD input on a "VDS Lock" error (unlikely; 5-year UIDE "bug", NO report of trouble!). /X switch added to UIDE. Other drivers unchanged (re-dated only).
25-Apr-11 BAD initialization error is corrected in UIDE, UIDEJR, and RDISK (XMGR not affected)! The author's apologies -- Users should update NOW to the new 25-Apr-2011 drivers!
16-Apr-11 UIDE user-driver caching improved and re-added. Read the file UIDE.TXT for all details. Other drivers unchanged (re-dated only).
5-Dec-10 UIDE/UIDEJR /R15 and /R63 switches added to handle old DOS "games" (many thanks to Guillermo Grana Gomez!). Other drivers unchanged (re-dated only).
28-Nov-10 Minor updates: UIDEJR audio track-number error corrected, XMGR protected-mode speed improved. /Z switch added in both XMGR and UIDE. RDISK unchanged (re-dated only).
15-Aug-10 UIDE audio track-number error corrected (Thanks, Nagatoshi Uehara!). UIDE speed improved, from faster cache-table updates. Other drivers unchanged (re-dated only).
10-Aug-10 UIDE binary-search buffer added. UIDE has > 96% speed of prior /PM cache! Using $ in CD/DVD names fixed in UIDE and UIDEJR (Thanks, Japheth!). Other drivers unchanged (re-dated only).
4-Aug-10 Much-improved UIDE speed in protected mode (JEMM386 etc.). UIDE /HL /K /L /P /PM deleted, both "protected mode" and "memory only" caches removed (now unneeded)! UIDE /N4 switch added. Oher drivers unchanged (re-dated only).
25-Jul-10 UIDE error in 38/46-bit LBA logic fixed. NO user effect, as DOS still handles 32 bits! Other drivers unchanged (re-dated only).
17-Jul-10 UIDE /PM cache-data entries minimized and /L switch added. "Memory only" caches can now be 400-MB! Other drivers unchanged (re-dated only).
13-Jul-10 Fast UIDE "memory only" cache added via /PM switch. Other drivers unchanged (re-dated only).
11-Jul-10 UIDE size reduced, I-O "calls" made more efficient for all but /HL mode. Other drivers unchanged (re-dated only).
4-Jul-10 README file updated -- XMGR/UIDE can use "Native IDE" mode same as "Legacy"/"Compatibility" mode, if offered for an AHCI mainboard. NO driver changes (re-dated only).
28-Jun-10 XMGR updated for AHCI use. See the README section 7, for full details. Other drivers unchanged (re-dated only).
16-Jun-10 UIDE /E switch and external-entry logic summarily deleted. Other drivers unchanged (re-dated only).
10-Jun-10 UIDE now ignores a "removable HARD disk" (some USB units!) due to likely media-change trouble! UIDE size reduced. Other drivers unchanged (re-dated only).
19-May-10 UIDE speed slightly improved, /K switch re-added to assist protected-mode speed (but see the NOTE about /K usage in the README!). Other drivers unchanged (re-dated only).
27-Nov-09 UIDE /HL switch added, for protected-mode caches to 255-MB on V7.10 MS-DOS and 425-MB+ on others. UIDE /N3 switch error fixed. Other drivers unchanged (re-dated only).
22-Nov-09 UIDE uses more-optimal cache blocks, UIDE /F switch added. UIDE/UIDEJR are no-longer packed by UPX, to avoid loader problems. XMGR/RDISK unchanged (re-dated only).
16-Nov-09 UIDE now caches 4 GIGABYTES of data! UIDE /P switch added for more protected-mode speed. XMGR/UIDE/UIDEJR now run 32 BIOS disks (not 40) as DOS has only 32 drive letters. RDISK unchanged (re-dated only).
4-Nov-09 Fixed UIDE "cache flush" error. Added UIDE /E switch and 25/50-MB caches, deleted all reassembly options. Other drivers unchanged (re-dated only).
19-Oct-09 UIDEJR "VDS lock" error fixed: CD/DVD logic now dismissed only by its /N2 switch. UIDE logic reduced, its source has added re-assembly options. Other drivers unchanged (re-dated only).
15-Oct-09 XMGR/UIDE /K switch deleted, as Win95/98 do NOT like using protected-mode move "calls"! Thanks to Japheth for his "warning"! Other drivers unchanged (re-dated only).
6-Oct-09 UIDE/UIDEJR are back to using normal memory, due to MS-DOS V7.10 kernel "bugs" that cause CRASHES! /R deleted, /H now requests HMA usage "at the user's own risk"! Other drivers unchanged (re-dated only).
3-Oct-09 Fixed UIDE handling of cache XMS errors, NOT a big problem since XMS memory almost never fails! Minor UIDE/UIDEJR size changes. Other drivers unchanged (re-dated only).
7-Sep-09 BAD protected-mode cache init error fixed in UIDE! Other drivers unchanged (re-dated only). UIDE users who load JEMM386 or other protected-mode handlers should download the 7-Sep-09 drivers immediately!! Users who load only UMBPCI (real-mode) are not affected.
3-Sep-09 XMGR now does protected-mode move "calls" (as in UIDE) for faster speed using RDISK, etc. XMGR /K switch added to request "normal" XMS moves, when needed. Other drivers unchanged (re-dated only).
02-Sep-09 README file updated -- FreeDOS users who desire full upper memory must omit UMBPCI and load JEMM386 or JEMMEX only. NO driver changes, all are still dated 30-Aug-2009.
30-Aug-09 BAD "VDS init" ERROR fixed in UIDE/UIDEJR! Other drivers unchanged (re-dated only). Users of UIDE/UIDEJR should download the 30-Aug-09 drivers immediately!
23-Jun-09 RDISK now a .COM file, loadable by CONFIG.SYS or AUTOEXEC. RDISK /: switch added to use any free drive letter, when loaded thru AUTOEXEC or later. RDISKON program added. Corrected UIDE CD/DVD handling of VDS errors. XMGR and UIDEJR unchanged (re-dated only).
9-Jun-09 UIDE/UIDEJR /N3 switch added for no XMS memory. Override of /D: name with UIDE$/UIDEJR$ added if no CD/DVD drives are found. XMGR/RDISK unchanged (re-dated only).
1-Jun-09 UIDE optimized for JEMM386, UIDE /K switch added. JEMM386 is now recommended with UIDE. See the README "Technical Notes" for full details. Other drivers unchanged.
27-May-09 UIDE now uses 992 upper-memory bytes (external-entry logic made an assembly option). UIDE move-memory logic fixed for older 80386/80486 CPUs. CD/DVD entry code in UIDE/UIDEJR improved. XMGR/RDISK unchanged.
19-May-09 Fixed RDISK clear-memory error and added removable-inquiry support. Other drivers unchanged (re-dated only).
15-May-09 Added the RDISK driver, which creates a 2-MB to 2-GIGABYTE "fast" RAM-disk using XMS memory! XMGR/UIDE unchanged.
6-May-09 Added the non-caching UIDEJR ["junior" UIDE] driver, using only 768 upper-memory and 2528 HMA bytes! UIDE/UIDEJR now run up to 10 controllers, 36 disks, 8 CD/DVD drives.
1-May-09 Fixed XMGR "Port 92h" logic error. Added XMGR /PA and /PN switches to control use of "Port 92h" logic.
28-Apr-09 Fixed UIDE save/restore error during CD/DVD init messages.
25-Apr-09 XMGR/UIDE license and FreeDOS prohibition deleted, drivers and sources are again available to all. Corrected UIDE error in posting CD/DVD "return codes". UIDE /R switch re-added to support ROM-DOS.
21-Apr-09 Minor UIDE error (disk "A20 error" code not set) is fixed.
17-Apr-09 UIDE now caches 2 GIGABYTES, using 992 upper-memory bytes and 3760 HMA bytes for any cache size; search tables now use XMS! /L deleted. Fixed BAD audio byte-count error.