HOME

TheInfoList



OR:

CEMM, for
Compaq Compaq Computer Corporation (sometimes abbreviated to CQ prior to a 2007 rebranding) was an American information technology company founded in 1982 that developed, sold, and supported computers and related products and services. Compaq produced ...
Expanded Memory Manager was the first so-called PC " memory manager" for
Intel 80386 The Intel 386, originally released as 80386 and later renamed i386, is a 32-bit microprocessor introduced in 1985. The first versions had 275,000 transistorsexpanded 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 tec ...
(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 very l ...
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 runnin ...
of the CPU. It was present in
Compaq DOS Compaq Computer Corporation (sometimes abbreviated to CQ prior to a 2007 rebranding) was an American information technology company founded in 1982 that developed, sold, and supported computers and related products and services. Compaq produced ...
3.10, shipping with the
Compaq Deskpro 386 The Deskpro 386 was a line of desktop computers in Compaq's Deskpro range of IBM PC compatibles. The computers featured Intel's 32-bit 80386 microprocessor. Introduced in September 1986, the Deskpro 386 was the first implementation of the 80386 ...
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 virtual memory, paging and safe multi-tasking d ...
, 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/emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hardw ...
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 develope ...
s'') could not do this anymore by themselves. A special API, the
VCPI In computing, the Virtual Control Program Interface (VCPI) is a specification published in 1989 by Phar Lap Software that allows a DOS program to run in protected mode, granting access to many features of the processor not available in real mode ...
, 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 Windows 2.0 is a major release of Microsoft Windows, a family of Graphical user interface, graphical operating system, operating systems for Personal computer, personal computers developed by Microsoft. It was Released-to-manufacturing, release ...
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 availa ...
) 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 ope ...
4.01 (in 1989) and
DR-DOS DR-DOS (written as DR DOS, without a hyphen, in versions up to and including 6.0) is a disk operating system for IBM PC compatibles. Upon its introduction in 1988, it was the first DOS attempting to be compatible with IBM PC DOS and MS-D ...
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 availa ...
*
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 seg ...
*
Unreal mode In x86 computing, unreal mode, also big real mode, huge real mode, flat real mode, or voodoo mode is a variant of real mode, in which one or more segment descriptors has been loaded with non-standard values, like 32-bit limits allowing access to ...
*
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 virtual memory, paging and safe multi-tasking d ...
*
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 runnin ...
*
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. DOS ...
(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 tec ...
(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 subsequen ...
(HMA) *
Upper Memory Area In DOS memory management, the upper memory area (UMA) refers to 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