Structure of an .EXM File

The special C-language program startup situations for System Manager compliant applications are

External System Manager compliant applications must be small memory-model programs, with less than 64K of code and less than 64K of preallocated data, including the stack. Additional data space, up to available memory, can be dynamically allocated using the System Manager m_set_far_block or m_get_far_block functions.

The actual EXM file is identical to an EXE except the E2M utility uses the program's MAP file to determine the separation point between the code and data, and writes this into the EXE header. The System Manager uses that information to split the program's code from the data during the loading process. The data segment is allowed to move in memory, but the code segment is fixed.