Archaeological dig of Ellis drivers

Last modified: 2023-05-28 08:40

0.  Content warning

This web page contains links to information sources in which the relevant factual information is mixed with ragey rants and verbal abuse that may be upsetting.

1.  Introduction

This page provides a graph of the history of the set of DOS drivers mostly known as "the Ellis drivers" after their originator, Jack R. Ellis.  The major functions provided by the drivers are the following:

  1. Ultra DMA (UDMA) driver for HDD or optical drives, replacing BIOS functions that use programmed I/O (PIO)
  2. Disk cache, replacing SMARTDRV.EXE
  3. CD/DVD-ROM device driver, replacing OAKCDROM.SYS or whatever
  4. Extended memory manager (XMM), replacing HIMEM.SYS
  5. Ramdisk, replacing RAMDRIVE.SYS

The graph does not include Ellis' version of SHSUCDX (CD/DVD-ROM redirector, replacing MSCDEX.EXE), which was forked from Jason Hood's SHSUCDX on 2005-05-22 and EOL on 2017-11-13.

2.  Locations of current drivers

As of 2023-03, there are two separate sets of drivers that could be called "current" in some sense:

  1. The primary site for the closed-source XHDD and XDVD2 is Johnson Lam's site.  XMGR and RDISK are also included.
  2. Beginning in 2019, some changes were backported to the open-source drivers that had been abandoned since the 2015-03-05 release, making them "somewhat current."  The primary site for UHDD and UDVD2 is the FreeDOS archive.  XMGR and RDISK are also included, but the versions in the closed-source archive linked above are newer.  UIDE was updated on 2020-07-07 but later deleted from

In addition, some derivatives of the 2006 generation of drivers are currently maintained by Japheth (Andreas Grech, Baron-von-Riedesel):

  1. Based on XDMA 3.3 (2006-02-15) and XCDROM 1.9 (2006-01-20), the 32-bit JEMM loadable modules XDMA32.DLL and XCDROM32.DLL remain in the current JEMM distribution.
  2. A separate fork from XDMA 3.3 began in 2022.

Note that the 2006 generation of drivers did not include a disk cache.

3.  Sources of historical information


A collection of old drivers is curated by FreeDOS maintainers on Ibiblio.  Some files and directories appear in more than one place.  The list below excludes some symbolic links, but the following redundancies remain (as of 2023-03):  1. ellis/drivers/2015/drivers-2015-03-05[b-d].zip are the same as udvd2/2015-03-05[b-d]/; 2. binaries included in ellis/drivers/20?? are repackaged separately with different documentation in ellis/{rdisk,uhdd,uide,xmgr}.

Internet Archive

For most of their history, there was a web page giving a link to the then-current version of the drivers along with a truncated change log.  Internet Archive captured many snapshots of these web pages and change logs.  Often, the download links can be followed to retrieve an archived snapshot of the software distributions as well, but the binary archive is less complete than the HTML.

Mailing list archives

Sometimes there are tidbits of useful information on the mailing lists, but the content warning applies.

4.  Data quality

Change logs

A single, complete, linear change log does not exist.  Although a change log was included in most of the software distributions and maintained on the primary web site, older and less important changes were routinely weeded out and history was occasionally rewritten as a result.  For example, in 2017-12, an embargo on public distribution of the drivers ended when a derivative of XHDD/XDVD2 was released as UHDD/UDVD2.  The change log entry at that time read:

2017-12-04  Initial release of the UHDD/UDVD2 driver set for all users, derived from the XHDD/XDVD2 drivers that are now PRIVATE!

But in 2018-04, the XHDD/XDVD2 drivers themselves were released publicly.  At that point, a string replacement occurred, and the entry for 2017-12-04 changed to read:

2017-12-04  Initial release of the XHDD/XDVD2 driver set for all users, derived from the XHDD/XDVD2 drivers that are now PRIVATE!

(Before; after)

To discover this 4-month incarnation of UHDD/UDVD2 and other short-lived drivers, you have to review snapshots of the logs or the software distributions themselves over time.

File modification dates

A more recent file modification date does not imply a newer version.  The maintainer made a practice of synchronizing file modification dates with the release date of the distribution:  "Other drivers unchanged, re-dated only."

5.  Stratigraphy

Date:  2003-02-22
Event:  Creation
In from Ibiblio, header comments in UDMA.ASM say:
; UDMA Driver for DOS. Base driver written 22-Feb-2003 by Jack R. Ellis.
; Detection, NASM Port, EDD Support and Options by Luchezar I. Georgiev.

⸻ U1 layer (UDMA, UDMA2) 2003–2005 ⸻

Date:  2005-06-15
Event:  Abandonment of U1 drivers

⸻ X1 layer (XDMA, XCDROM) 2005–2006 ⸻

Date:  2006-02-20
Event:  Abandonment of X1 drivers

⸻ Q layer (QHIMEM, QDMA, QCACHE, QCDROM) 2006–2007 ⸻

Date:  2007-04-19
Event:  Abandonment of Q drivers

⸻ U2 layer (UDMA, UDVD, UIDE, UHDD, UDVD2) 2007–2015 […2019–2021] ⸻

2008 records gap

Date:  2015-05-27
Event:  Abandonment of U2 drivers

Three of the "abandoned" U2 drivers received updates on Ibiblio between 2019 and 2021.

⸻ Dark age (no public releases) 2015–2017 ⸻

"Email me for binary"

⸻ Transition layer (UHDD, UDVD2) 2017–2018 ⸻

A derivative of XHDD/XDVD2 was released as UHDD/UDVD2 from 2017-12-04 until 2018-04-20, when releases of XHDD/XDVD2 began.

⸻ X2 layer (XIDE, XHDD, XDVD2) 2018– (technically 2015–) ⸻

X2 drivers were shared only with a closed group until 2018-04-20.

6.  Key to notation

7.  History graph

To reduce the width of the graph, the disconnected subgraphs of the XMM and ramdisk are drawn separately below the main graph.

Each node has a tooltip that gives metadata about the relevant driver.  For some reason, these tooltips don't display in Firefox unless you load the SVG as the main page.  To do this, click on the relevant graph.

UDMA driver, CD/DVD-ROM device driver, and disk cache

Extended memory manager (XMM)