The EMS Specification is a document that describes 30 functions and many subfunctions, which are called by DOS applications using software interrupt 67h. EMS creates memory objects in expanded memory and then provides mappings such that addressing below 1MB accesses parts of these expanded memory objects. At any given time, the 8086 application can directly access only 1MB of memory, but additional expanded memory can quickly be mapped into the addressable 1MB range. In effect, parts of the 8086 address space become moving "windows" into larger virtual memory objects.
The Intel 8086/8088 processors need special EMS memory adapters and are not part of the following discussion. Special EMS memory adapters are also required for 80286 machines. While certain software-based EMS emulation packages are available, which utilize the normal extended memory area above 1MB for that purpose, those emulations are relatively slow and unstable compared to "real" EMS hardware adapters. However, neither of the two types of EMS solutions was supported under previous versions of OS/2.