Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
Expanded memory (EM) is an overarching or umbrella term for several technology variants that do not necessarily work with each other or are directly related to each other. However, these technologies were meant to solve the same problem, the 640 KB limit on usable memory for programs in the DOS operating system. The most widely used expanded memory variant was the Expanded Memory Specification (EMS) or the LIM EMS.
Expanded memory refers to various methods for allowing the use of more than the default 640 KB limit imposed by the DOS operating system. The most widely used expanded memory system was the specification jointly developed by Lotus Software, Intel and Microsoft, which was simply called the Expanded Memory Specification. But to differentiate it from the others, it was sometimes referred to as the LIM EMS to denote the developers. The first widely used version was the EMS 3.2, which was able to support up to 8 MB of expanded memory.
Another expanded memory technology was developed by AST Research, Ashton-Tate and Quadram, the Extended EMS (EEMS) and competed directly with the LIM EMS 3.x. EEMS allowed any 16 KB region in the lower RAM to be mapped to expanded memory, so long as it was not directly associated with CPU interrupts or dedicated I/O memory used by video and network cards. This meant that programs could be switched in and out of the extra RAM. However, practically all features of EEMS were incorporated into LIM EMS.
IBM also had their own expanded memory specification, which they called the Expanded Memory Adapter (XMA). They used expansion boards that could be addressed by either an expanded memory model or extended memory. These boards did not work with EMS out of the box and the IBM DOS driver used for it was the XMAEM.SYS, but a later driver called XMA2EMS.SYS gave the XMA boards EMS emulation.