emm386.exe(CMD) 19 June 1992 emm386.exe(CMD) Name emm386.exe - simulate expanded memory Syntax device=[drive:][path]emm386.exe [on|off|auto][memory] [w=on|w=off] [mx|frame=address|/pmmmm] [pn=address] [x=mmmm-nnnn] [i=mmmm-nnnn] [b=address] [L=minXMS] [a=altregs] [h=handles] [d=nnn] [ram] [noems] Description EMM386.EXE uses extended memory to simulate expanded memory for programs that can use expanded memory. EMM386.EXE also makes it possible to load programs and device drivers into the upper memory area. Parameters [drive:][path] Specifies the location of the EMM386.EXE file. [on|off|auto] Activates the EMM386.EXE device driver (if set to on), or suspends the EMM386.EXE device driver (if set to off), or places the EMM386.EXE device driver in auto mode (if set to auto). Auto mode enables expanded-memory support only when a program calls for it. The default value is on. Use the emm386 command to change this value after EMM386 has started. memory Specifies the amount of memory (in kilobytes) that you want to allocate to EMM386.EXE. Values for memory are in the range 16 through 32768. The default value is 256. EMM386.EXE rounds the value down to the nearest multiple of 16. If you are using expanded memory, this value is in addition to the memory used for low-memory backfilling. Switches w=on|w=off Enables or disables support for the Weitek coprocessor. The default setting is w=off. mx Specifies the address of the page frame. Valid values for x are in the range 1 through 14. The following list shows each value and its associated base address in hexadecimal format: 1 => C000h 8 => DC00h 2 => C400h 9 => E000h 3 => C800h 10 => 8000h 4 => CC00h 11 => 8400h 5 => D000h 12 => 8800h 6 => D400h 13 => 8C00h 7 => D800h 14 => 9000h Values in the range 10 through 14 should be used only on computers with 512K of memory. frame=address Specifies the page-frame segment base directly. To specify a specific segment-base address for the page frame, use the frame switch and specify the address you want. Valid values for address are in the ranges 8000h through 9000h and C000h through E000h, in increments of 400h. /pmmmm Specifies the address of the page frame. Valid values for mmmm are in the ranges 8000h through 9000h and C000h through E000h, in increments of 400h. pn=address Specifies the segment address of a specific page, where n is the number of the page you are specifying and address is the segment address you want. Valid values for n are in the range 0 through 255. Valid values for address are in the ranges 8000h through 9C00h and C000h through EC00h, in increments of 400h. The addresses for pages 0 through 3 must be contiguous in order to maintain compatibility with version 3.2 of the Lotus/Intel/Microsoft Expanded Memory Specification (LIM EMS). If you use the mx switch, the frame switch, or the /pmmmm switch, you cannot specify the addresses for pages 0 through 3 for the /pmmmm switch. x=mmmm-nnnn Prevents EMM386.EXE from using a particular range of seg- ment addresses for an EMS page. Valid values for mmmm and nnnn are in the range A000h through FFFFh and are rounded down to the nearest 4-kilobyte boundary. The x switch takes precedence over the i switch if the two ranges over- lap. i=mmmm-nnnn Specifies a range of segment addresses to be used (included) for an EMS page or for random-access memory (RAM). Valid values for mmmm and nnnn are in the range A000h through FFFFh and are rounded down to the nearest 4-kilobyte boundary. The x switch takes precedence over the i switch if the two ranges overlap. b=address Specifies the lowest segment address available for EMS ``banking'' (swapping of 16-kilobyte pages). Valid values are in the range 1000h through 4000h. The default value is 4000h. L=minXMS Ensures that the specified amount (in kilobytes) of extended memory will still be available after you load EMM386.EXE. The default value is 0. a=altregs Specifies how many fast alternate register sets (used for multitasking) you want to allocate to EMM386.EXE. Valid values are in the range 0 through 254. The default value is 7. Every alternate register set adds about 200 bytes to the size in memory of EMM386.EXE. h=handles Specifies how many handles EMM386.EXE can use. Valid values are in the range 2 through 255. The default value is 64. d=nnn Specifies how many kilobytes of memory should be reserved for buffered direct memory access (DMA). Discounting floppy-disk DMA, this value should reflect the largest DMA transfer that will occur while EMM386.EXE is active. Valid values for nnn are in the range 16 through 256. The default value is 16. ram Provides access to both expanded memory and the upper mem- ory area. noems Provides access to the upper memory area but prevents access to expanded memory. Notes Must install HIMEM.SYS before EMM386.EXE You must include a device command for the HIMEM.SYS device driver in your CONFIG.SYS file before the device command for EMM386.EXE. Using EMM386.EXE memory switches Unless you want to use EMM386.EXE to provide access to the upper memory area, you need not specify memory switches on the device command line. EMM386.EXE usually runs properly with the default values. In some cases, however, you might want to control how EMM386.EXE uses memory. For exam- ple, some programs will run better if you allocate more expanded memory. Also, you can control where EMM386.EXE puts the EMS page frame, or which segments it uses for EMS pages. You can use as many of these memory switches as you want, in any order you want. _________________________________________________________________________ CAUTION Use EMM386.EXE parameters carefully. You can disable your system if you use them incorrectly. _________________________________________________________________________ Using EMM386.EXE to provide access to the upper memory area In addition to providing access to expanded memory, EMM386.EXE provides access to the upper memory area, which you can use to load certain pro- grams and device drivers. You must use either the ram or noems switch to provide access to the upper memory area. To give MS-DOS access to the upper memory area but not to expanded mem- ory, use the noems switch. To give MS-DOS access to both the upper mem- ory area and expanded memory, use the ram switch. The ram switch pro- vides access to less of the upper memory area for running device drivers and programs than does the noems switch. In either case, you must include the dos=umb command in your CONFIG.SYS file. The device command for EMM386.EXE must precede any devicehigh commands. If you are using a Virtual Control Program Interface (VCPI) application, such as Lotus 1-2-3 version 3.1, use the /ram switch to provide access to expanded memory. Inadequate space for page frame If EMM386.EXE is unable to find 64K of continuous space for the page frame, the following message is displayed: Unable to set base address Examples To start EMM386 as an expanded-memory emulator, using the default values, add the following lines to your CONFIG.SYS file: device=himem.sys device=emm386.exe Since no location is specified, MS-DOS searches for EMM386.EXE in the root directory of your startup drive. To allocate 4096K of memory to EMM386.EXE and specify that the EMM386.EXE file is located in the DOS directory on drive C, add the following line to your CONFIG.SYS file: device=c:\dos\emm386.exe 4096 To emulate expanded memory, specify the segment-base address D000h for the EMS page frame, and allocate 512K of memory to EMM386.EXE, use one of the following commands: device=emm386.exe 512 frame=d000 device=emm386.exe 512 p0=d000 p1=d400 p2=d800 p3=dc00 Suppose that, in addition to specifying the conditions set in the preced- ing commands, you want to prevent EMM386 from using the memory address E000h through EC00h. To do this and to specify that EMM386 can use 127 handles, add the following line to your CONFIG.SYS file: device=emm386.exe 512 frame=d000 x=e000-ec00 h=127 To provide access to the upper memory area but not emulate expanded mem- ory, add the following line to your CONFIG.SYS file: device=emm386.exe noems To provide access to the upper memory area and emulate expanded memory, add the following line to your CONFIG.SYS file: device=emm386.exe ram