From Wikipedia, the free encyclopedia
Jump to: navigation, search

The name EMM386 was used for the expanded memory managers of both Microsoft's MS-DOS and Digital Research's DR-DOS, which created expanded memory using extended memory on Intel 80386 CPUs. There also is an EMM386.EXE available in FreeDOS.[1]

The technique probably first appeared with the development of CEMM, included with Compaq 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 in 1989; the more flexible EMM386.EXE version appeared in MS-DOS 5.0 in 1991.

Just as the other expanded memory managers, EMM386 uses the processor's virtual 8086 mode. It temporarily shuts down during a Windows session in 386 Enhanced mode, with Windows' protected mode kernel taking over its role.

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.

Global EMM Import Specification (GEMMIS) is supported via a document available to a select number of memory-manager vendors ("Windows/386 Paging Import Specification").[2][3]

See also[edit]


  1. ^ Platt, Robert; Spiegl, W. (2008) [2003]. "Command: EMM386". Retrieved 2015-10-21. 
  2. ^ Okazaki, Taku; Schulman, Andrew (1994). "The Windows Global EMM Import Interface". Dr. Dobbs Journal. Undocumented Corner (9). Retrieved 2015-10-21. 
  3. ^ Lespinasse, Michel. "How to kick out a memory manager". Amiens, France: Walken / Impact Studios. Retrieved 2015-10-21.