Ahora puede resultar curioso o lejano, pero hubo un tiempo en que Lotus (ahora IBM), Intel, y Microsoft, se unieron para desarrollar la especificación que posteriormente se denominaría LIM, como acrónimo de sus siglas: Lotus-Intel-Microsoft.

Hablamos del año 1984, dónde por primera vez la frase de que 640 Kb. deberían ser suficientes, deja de ser válida, gracias a la hoja de cálculo Lotus 1-2-3, que en determinados ámbitos, se quedaba corta de memoria RAM para almacenar la matriz de filas y columnas.

Así surge LIM EMS 3.2, el estándard de memoria expandida, que mediante un tarjeta de expansión ISA, permite ampliar la memoria de cualquier PC, para ser usada por programas diseñados a tal efecto.

EMS funcionaba paginando bloques, por lo que su uso no era tan directo como el de la memoria convencional, sin embargo las necesidades obligaron, de manera que software tan conocido como el citado 1-2-3, Wordperfect, o Pkzip, enseguida tomaron partido para aprovecharla. En la revisión 4, EMS llegó a soportar hasta 32 Mb. de memoria.

Con la difusión del 286, y sobre todo el lanzamiento del 386 que soportaban modo protegido por hardware, se propueso XMS (memoria extendida), que se implementaba directamenteen la placa, y que a nivel de programación no sólo era mucho más flexible y algo más sencillo, sino también más rápido.

No obstante, para mantener la compatibilidad con aplicaciones que sólo aprovechaban EMS, se popularizó CEMM (Compaq), 386Max (Qualitas), QEMM (Quarterdeck), y luego EMM386 (de MS-DOS 4 y DR-DOS 5), que emulaban por software la API EMS sobre XMS.

Por nostalgia, y motivos históricos, os dejo la especificación 4.0 de octubre de 1987 aquí (59 Kb. en formato ZIP).