An important fragment of PC history was unearthed a few days ago: An image of a Compaq Deskpro 386 supplemental disk from August 1986, containing among other things CEMM.EXE, Compaq’s original expanded memory emulator shipped with the Deskpro 386. The image is available on pcjs.org (in the 3.10 directory).
Why is CEMM important? It was essentially by definition the first publicly available utility using the 386’s new Virtual 8086 (V86) mode, and it was the first 386 memory manager. Eventually CEMM morphed into EMM386 shipped with DOS and was the “standard” counterpart to memory managers such as Quarterdeck’s QEMM, Qualitas’ 386MAX, or Helix’s Netroom. EMM386 née CEMM was itself a very important piece of software.
This early CEMM release is dated August 8, 1986 and reports version 3.20, presumably to match the then-current EMS (Expanded Memory Specification) version. It’s highly likely that this was the disk shipped with the first ground-breaking Compaq Deskpro 386 systems in September 1986.
This version of CEMM is strictly an EMS emulator with no support for UMBs. It uses V86 mode and paging to turn memory beyond the 1MB address line into expanded memory and maps it into and out of the EMS page frame (typically a 64K window located between 640KB and 1MB). When EMS is not in use, CEMM can “disappear” and run the processor in real mode. When EMS is used, the CPU must run in protected/V86 mode.
There is no support for VCPI or any similar interface in this CEMM release, but since there were no 386-specific applications yet when it was released, it would have been redundant.
Unfortunately, this CEMM version does not run on a generic 386 AT compatible. However, it can be convinced to run with a bit of hacking:
Perhaps one day pcjs will emulate the original Compaq Deskpro 386, especially now that it’s open and anyone can contribute to the project (it’s made great strides recently in emulating an IBM PC/AT). Then this version of CEMM and other Deskpro 386 utilities would be easy to run in any modern browser.
The exact history of CEMM is unclear. It is obvious that Intel must have been involved, but it’s uncertain whether Microsoft also took part in the initial development or only later on. Compaq and Microsoft did collaborate on the development of Windows/386, which shared a few similarities with CEMM/EMM386. Microsoft in turn slightly influenced Intel’s 386 design, and was one of the early 386 adopters (386 XENIX, Windows/386).
At any rate, this version of CEMM is a museum piece in every sense of the word—an important piece of the PC history puzzle, nearly 30 years old. And perhaps other versions of CEMM from 1987-1988 will surface in due time, too.