Global EMM Import Specification
   HOME

TheInfoList



OR:

EMM386 is the expanded memory manager of Microsoft's MS-DOS, IBM's PC DOS, Digital Research's
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 ...
, 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 available in FreeDOS.


Overview

EMM386.EXE can map memory into unused blocks in the upper memory area (UMA), allowing device drivers and TSRs to be "loaded high", preserving conventional memory. The technique probably first appeared with the development of CEMM, included with Compaq MS-DOS 3.31 in 1987. Microsoft's version first appeared, built-in, with Windows/386 2.1 in 1988 and as standalone EMM386.SYS with
MS-DOS 4.01 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 oper ...
in 1989; the more flexible EMM386.EXE version appeared in
MS-DOS 5.0 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 ...
in 1991. Just as the other expanded memory managers, EMM386 uses the processor's virtual 8086 mode. This forces memory accesses made by DOS applications to go through the processor's MMU (introduced in the 386), and the page table entries used by the MMU are configured by EMM386 to map certain regions in upper memory to areas of extended memory (obtained by EMM386 through the extended memory manager HIMEM.SYS). This technique enabled both EMS (expanded memory) as well as UMBs - both of which appear to DOS applications to be memory in the upper area but are in fact mapped to physical memory locations beyond 1MB. It temporarily shuts down during a Windows session in ''386 Enhanced'' mode, with Windows'
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 ...
kernel taking over its role. Windows uses the GEMMIS API to take over memory management from EMM386.EXE. Global EMM Import Specification (GEMMIS) is supported via a document available to a select number of memory-manager vendors ("Windows/386 Paging Import Specification"). Only a few memory managers implemented the GEMMIS API, some of the ones that include it are: EMM386.EXE, Quarterdeck QEMM, Qualitas 386MAX, Helix Netroom and DOSBox builtin DOS. Notably missing are FreeDOS's memory managers. All of FreeDOS memory managers (HIMEMX.EXE, JEMM386.EXE, JEMMEX.EXE) do not implement the GEMMIS API and Windows fails to start when running in conjunction with JEMMxxx since Windows fails to take over the memory management role. Windows ME, Windows 98, Windows 95,
Windows for Workgroups 3.1 Windows 3.1 is a major release of Microsoft Windows. It was Released-to-manufacturing, released to manufacturing on April 6, 1992, as a successor to Windows 3.0. Like its predecessors, the Windows 3.1 series ran as a Shell (computing), shell ...
x, and Windows 3.xx, all will fail with JEMMxxx displaying: Cannot run Windows while the currently installed protected-mode software is running. Quit the protected-mode software, and then try again. You may need to restart your computer. With JEMMxx, it is possible to run Windows 3.x and Windows for Workgroups 3.1x in limited capabilities by forcing Windows to use Standard Mode; i.e. using 80286 Protected Mode, not 80386 Enhanced Mode. Three conditions are required: # limit total XMS to 64MB # EMS must be enabled, can't use NOEMS option. For example JEMMEX X2MAX=65422 # Windows operate in Standard Mode only, WIN /S or WIN /2 Note that Windows in standard mode is limited in functionality, it lacks virtual memory, it skips the 86Enhsection in SYSTEM.INI and any device drivers in 86Enhare not loaded.


See also

* Upper memory area (UMA) * Extended memory (XMS) * Expanded memory (EMS) * List of DOS commands


References

External DOS commands DOS memory management Expanded memory managers {{DOS-stub