HOME

TheInfoList



OR:

CEMM, for
Compaq Compaq Computer Corporation was an American information technology, information technology company founded in 1982 that developed, sold, and supported computers and related products and services. Compaq produced some of the first IBM PC compati ...
Expanded Memory Manager was the first so-called PC " memory manager" for
Intel 80386 The Intel 386, originally released as the 80386 and later renamed i386, is the third-generation x86 architecture microprocessor from Intel. It was the first 32-bit computing, 32-bit processor in the line, making it a significant evolution in ...
CPUs, able to provide
expanded memory In DOS memory management, expanded memory is a system of bank switching that provided additional memory to DOS programs beyond the limit of conventional memory (640 KiB). ''Expanded memory'' is an umbrella term for several incompatible tech ...
(EMS) emulation by using the
virtual memory In computing, virtual memory, or virtual storage, is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a ver ...
features and the
virtual 8086 mode In the 80386 microprocessor and later, virtual 8086 mode (also called virtual real mode, V86-mode, or VM86) allows the execution of real mode applications that are incapable of running directly in protected mode while the processor is running ...
of the CPU. It was present in Compaq DOS 3.10, shipping with the
Compaq Deskpro 386 The Deskpro 386 is a line of desktop computers in Compaq's Deskpro range of IBM PC compatibles. Introduced in September 1986, the Deskpro 386 was the first personal computer to feature Intel's 32-bit 80386 microprocessor. It also marks the fir ...
in September 1986.


Overview

In 1986, Compaq was the first vendor to ship a PC compatible computer with a 386 CPU, the Deskpro 386, and it was natural for them to develop solutions leveraging the specific features of their new hardware and in this case allowing existing EMS-compatible DOS programs to access all the memory. The implementation was not without its drawbacks. Although CEMM was called an "expanded memory manager", it was really a tiny,
protected mode In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs). It allows system software to use features such as Memory_segmentation, segmentation, virtual mem ...
, single tasking operating system kernel, also called a
virtual machine monitor A hypervisor, also known as a virtual machine monitor (VMM) or virtualizer, is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called ...
(VMM). It had to catch all the interrupts and all the exceptions, and to ''reflect'' them to the
virtual machine In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
where DOS ran. This slowed the machine down a little, increased the latency of interrupts and changed the behavior of DOS programs trying to execute invalid machine instructions. Implementing a VMM was not CEMM's raison d'etre, but EMS emulation required paging, and paging required protected mode. The only way to run existing real-mode DOS and BIOS code was therefore through a VMM. Because CEMM put the CPU into protected mode, other programs (''
DOS extender A DOS extender is a computer software program running under DOS that enables software to run in a protected mode environment even though the host operating system is only capable of operating in real mode. DOS extenders were initially developed ...
s'') could not do this anymore by themselves. A special API, the VCPI, had to be developed to allow running DOS extender programs. The first CEMM compatible with VCPI was 4.0, provided with Compaq DOS 4.01. Compaq filed for a patent on the technology in 1987. The patent was granted in 1990 and probably expired in 2007. Compaq was the creator of this technology and the first company to use it. However, over time,
QEMM Quarterdeck Expanded Memory Manager (QEMM) is a memory manager produced by Quarterdeck Office Systems in the late 1980s through the late 1990s. It was the most popular third-party memory manager for the MS-DOS and other DOS operating systems. ...
and 386MAX became the standard packages. Windows/386 and later releases contained a built-in expanded memory manager (
EMM386 EMM386 is the expanded memory manager of Microsoft's MS-DOS, IBM's PC DOS, Digital Research's DR-DOS, and Datalight's ROM-DOS which is used to create expanded memory using extended memory on Intel 80386 CPUs. There also is an EMM386.EXE avail ...
) available during Windows sessions and otherwise used for running ''multiple'' DOS virtual machines.
MS-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few op ...
4.01 (in 1989) and
DR-DOS DR-DOS is a disk operating system for IBM PC compatibles, originally developed by Gary A. Kildall's Digital Research, Inc. and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86. Upon its introduction in 198 ...
5.0 (in 1990) popularized the technology outside of the Windows context. Microsoft's EMM386 implementation was based on CEMM.


See also

*
QEMM Quarterdeck Expanded Memory Manager (QEMM) is a memory manager produced by Quarterdeck Office Systems in the late 1980s through the late 1990s. It was the most popular third-party memory manager for the MS-DOS and other DOS operating systems. ...
*
EMM386 EMM386 is the expanded memory manager of Microsoft's MS-DOS, IBM's PC DOS, Digital Research's DR-DOS, and Datalight's ROM-DOS which is used to create expanded memory using extended memory on Intel 80386 CPUs. There also is an EMM386.EXE avail ...
*
Real mode Real mode, also called real address mode, is an operating mode of all x86-compatible CPUs. The mode gets its name from the fact that addresses in real mode always correspond to real locations in memory. Real mode is characterized by a 20- bit s ...
* Unreal mode *
Protected mode In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs). It allows system software to use features such as Memory_segmentation, segmentation, virtual mem ...
*
Virtual 8086 mode In the 80386 microprocessor and later, virtual 8086 mode (also called virtual real mode, V86-mode, or VM86) allows the execution of real mode applications that are incapable of running directly in protected mode while the processor is running ...
*
Conventional memory In DOS memory management, conventional memory, also called base memory, is the first 640 kilobytes of the memory on IBM PC or compatible systems. It is the read-write memory directly addressable by the processor for use by the operating system ...
*
Extended memory In DOS memory management, extended memory refers to memory above the first megabyte (220 bytes) of address space in an IBM PC or compatible with an 80286 or later processor. The term is mainly used under the DOS and Windows operating systems. D ...
(XMS) *
Expanded memory In DOS memory management, expanded memory is a system of bank switching that provided additional memory to DOS programs beyond the limit of conventional memory (640 KiB). ''Expanded memory'' is an umbrella term for several incompatible tech ...
(EMS) *
High Memory Area In DOS memory management, the high memory area (HMA) is the RAM area consisting of the first 65520 bytes above the one megabyte in an IBM AT or compatible computer. In real mode, the segmentation architecture of the Intel 8086 and subseque ...
(HMA) *
Upper Memory Area In DOS memory management, the upper memory area (UMA) is the memory between the addresses of 640  KB and 1024 KB ( 0xA0000–0xFFFFF) in an IBM PC or compatible. IBM reserved the uppermost 384 KB of the 8088 CPU's 1024 KB ...
(UMA)


References


External links

*{{US patent, 4926322 - ''Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management'' Expanded memory managers