The Expanded Memory Specification is the original method of memory management to make more memory available to a PC. It predates XMS and unlike that will work on any i86 processor.

The problem it was developed to solve was the fact that the original i86 processors could only address 1024 Kbytes of memory in 64K chunks. Of this 1024K much was spoken for (the old 640K Barrier for DOS and the space for the video memory etc.).

It worked by reserving an area of between 16K and 64K for itself (called the page frame) and then mapping in an identically sized piece of a large memory array held on a card (or later just in the memory above 1 Mbyte). This unfortunately gives the effect of accessing a large sheet of paper through a shield with a small hole cut in it (keyhole memory access). Programs had to be written to understand this and send instructions to the EMS driver/hardware to make the correct piece of memory available at the page frame. Originally this meant that the data had to transfer in over the ISA bus which ran slower that the system memory on most machines. This is why software EMS is normally faster.

Once processors that could address more that 1024K became available then XMS was developed which gave more direct access to the higher memory (without the keyhole). Unfortunately it did take a long time for EMS to finally die.

EMS is also an abbreviation for Enhanced Messaging Service, an extension to the mobile phone SMS or text message communication protocol. SMS is part of the GSM standard for mobile phone communication; EMS was designed by 3GPP (3rd Generation Partnership Project, a part of ETSI), the standardizing body responsible for GSM and SMS. EMS is designed to build on SMS to allow users to send melodies (like ringtones), graphics and animations, as well as formatted or unformatted text in excess of the 160-character limit imposed on SMS messages.

EMS is a universal standard, although that does not mean it is being implemented by all mobile phone vendors. Ericsson are keen on it as a means of overcoming Nokia's market dominance which is interrelated with Nokia's proprietary standards for messaging. In addition, Alcatel, Motorola and Siemens have all expressed their intention to support the format, having worked with Ericsson on its development. Nokia, being market leaders, would prefer to use their own systems.

EMS messages are designed so that a portion of the message will show up as a normal SMS on a phone without EMS capability, so they can be sent to any GSM mobile phone. The messages comprise three parts: an SMS header, a User Data Header including the media being transmitted, and a 160-character SMS-compatible text message.

It can be seen from the description that follows that the facilities in EMS are still quite limited compared to what people are used to sending in emails between desktop PCs. The successor to EMS will be MMS, Multimedia Messaging Service, which will offer more powerful facilities for sending audio and graphics over GPRS and 3G mobile phone networks.

Contents of EMS

There are ten predefined sounds that can be included in EMS messages:

These are sent as codes specified in the standard, but the actual noise is implementation-dependent.

Melodies are specified in the iMelody format, as notes and durations, similar to the system used for downloadable ringtones on existing mobile handsets. However, there are facilities to extend this to support polyphonic melodies (only monophonic are included initially) and other data formats such as MIDI. However, standardization is limited due to the widely varying audio capabilities of mobile phones.

Simple pictures can also be sent; each picture is a 1024-pixel block, with one bit per pixel representing either black or white. The dimensions are variable, but the maximum pixel limit must not be exceeded, giving a maximum size of 128 bytes. As an example a 32 x 32 pixel image is possible.

Animations are even more limited graphically. User-defined animations have a maximum of four 16 x 16 pixel frames. In addition, more complex predefined animations may be sent by transmitting an index number rather than an entire animation.

Styled text is another new feature, adding left/right/center alignment, three text sizes, bold, italic, underline and strikethrough.


Expanded Memory Specification - The original protocol for accessing more than 1 megabyte of RAM on an x86 class processor using an MSDOS or compatible system. The method was simple fast and efficient - an area in upper memory was defined as a page frame and could be mapped on the fly to reflect whatever memory address was needed.

EMS was originally tied to hardware implementations, however with the advent of the Intel 80286 CPU which could physically address much more than 1 megabyte of RAM, software EMS drivers were invented to allow the existing software to access such memory just as it would have done on an 8088 8086 or 80186 system.

Contrary to some other writeups I've seen, XMS was not faster, although it might have been marginally more easy to code for. XMS implementations for early processors actually copied data from spot to spot to allow it to be used, while EMS simply remapped the Page Frame to act as a pointer to the proper location for the next operation - EMS was thus several orders of magnitude faster and was preferred by competent coders for a period of several years.

Eventually, of course, MS-DOS became a mere emulation layer on newer boxen running newer Operating Systems and both protocols became equivalent virtualisations anyway.

Log in or register to write something here or to contact authors.