EMS40.SYS Device Driver Douglas Boling 1989 No. 12 (Utilities) Purpose: A device driver that emulates the Lotus/Intel/Microsoft Expanded Memory Specification, Version 4.0, in software, permitting extended memory in AT-class machines to be used as expanded memory. Format: DEVICE=[d:\][path\]EMS40.SYS [nnn] Remarks: EMS40.SYS is installed by being listed in the CONFIG.SYS file. The drive and path information must be supplied if needed by DOS to find the driver at boot-up. Once installed, EMS40.SYS cannot be removed from memory without rebooting. The optional nnn parameter allows the user to specify the amount of extended memory, in KB, that will be used as expanded memory by EMS40.SYS. If omitted, the default value is 384 KB. By setting nnn to a smaller value than that of the extended memory installed, space can be reserved for extended memory programs such as VDISK. EMS40.SYS maps extended memory into four contiguous 16 KB pages in conventional DOS memory, permitting access to large spreadsheets and other data that would otherwise result in a "Memory Full" error. While not as fast in operation as a dedicated LIM/EMS board and driver, it implements, within the limitions of a software emulation, all 28 functions specified in LIM/EMS 4.0. (It does not attempt to emulate the DMA functions included in Function 28, Alternate Map Register Set, however.) Available for downloading from PC MagNet (see the EMS40 by Modem sidebar in the main article), EMS40.SYS is already compiled and ready to run. As an alternative, EMS40.SYS can be created from either of two program files that are printed in the article and are also available for downloading from PC MagNet. EMS40.BAS will automatically create EMS40.SYS when run once in BASIC. To create EMS40.SYS from the EMS40.ASM source code requires use of a macro assembler (IBM or Microsoft, Version 2 or later) and the following commands: MASM EMS40; LINK EMS40; EXE2BIN EMS40 EMS40.SYS; ®MDNM¯