Microsoft KB Archive/62952

From BetaArchive Wiki

Enhanced EMM386.SYS Parameters PSS ID Number: Q62952 Article last modified on 02-17-1993 PSS database name: O_MSDOS

3.00 3.10 3.20 3.21 3.22 3.30 3.30a 4.00 4.00a 4.01

MS-DOS

The information in this article applies to:
- Microsoft MS-DOS operating system version 3.x and 4.x

Summary:

The Expanded Memory Manager 386 (EMM386.SYS version 4.10) extends the 640K memory limit of the 80386 Real Mode architecture using the EMS 4.0 standard for expanded memory. EMM386 also provides support for the Virtual Control Program Interface (VCPI), the Windows/386 Coexistence API, the Busmaster DMA API, and the Weitek coprocessor.

As a device driver, EMM386.SYS must be loaded from a device line in the CONFIG.SYS file using the following syntax

device=[drive][path]EMM386.SYS [AUTO | ON | OFF] [SIZE] [W=ON|W=OFF] [Mx|FRAME=mmmm|/Pmmmm] [Pn=mmmm] [X=mmmm-nnnn] [B=mmmm] [L=n] [A=n] [/Hnnn] [D=nnn]

where:

[AUTO|ON|OFF] Indicates the state of the machine when the driver returns to DOS. Auto is the default and means that the driver is loaded and listening, but the machine is left in real mode until the first Int 67h call is seen. Thus, we say the driver is inactive. The driver stays active with the machine in virtual mode as long as a handle is allocated. The affect of loading a TSR that allocates EMS is to cause the driver to go permanently active. ON indicates the machine is always in virtual mode and the driver is always active. Off indicates that the machine stays in real mode and the driver in inactive. All Int 67h calls will fail when in this mode.

[SIZE] SIZE is the amount of system memory in kilobytes (K) to be reserved for the common memory pool to be available as expanded memory or VCPI Memory. The amount defaults to 256K of system memory that is not already allocated. If there is not enough memory available to provide SIZE kilobytes of expanded memory, EMM386 will adjust SIZE.

[W=ON|W=OFF] Enables or disables the Weitek coprocessor support. The default value is OFF.

[Mx|FRAME=mmmm|/Pmmmm] Any one of these methods can be used to specify the location of the EMS 3.2 compatible page frame. This must be four contiguous pages in order to be compatible with EMS 3.2. It is not required that this parameter be specified because EMM386 will select a 64K contiguous region as a default. The default will be chosen by looking at E000h at each segment until C000h. The default will not be placed below C000h. These parameters are provided because it is not possible to absolutely identify adapter memory in all cases. When a conflict occurs, the user will need to force the page frame to some known location.

  mmmm - is a segment address between 4000h and EC00h, inclusive.

  Mx - Allows a user to specify the base address of the 64K Page
       frame.

       M1 = C000h      M8  = DC00h
       M2 = C400h      M9  = E000h
       M3 = C800h      M10 = 8000h*
       M4 = CC00h      M11 = 8400h*
       M5 = D000h      M12 = 8800h*
       M6 = D400h      M13 = 8C00h*
       M7 = D800h      M14 = 9000h*
       * - Options M10 - M14 may require the user to configure
           memory to have 512K or less.

  FRAME=mmmm - Frame allows the user to directly specify
               the segment base.

  /Pmmmm - a synonym for /FRAME.

[Pn=mmmm] This argument lets the user define the segment of a specific page. Page (n) gets placed at mmmm. If Mx or FRAME is specified, Pn is not allowed.

[X=mmmm-nnnn] This argument lets the user specify a segment address range that may not be used for an EMS page.

[B=mmmm] Allows the user to specify the lowest segment address. Default is B:4000h but mmmm can range from 1000h to EC00h, inclusive.

[L=n] Allows the user to specify the minimum amount of extended memory available after EMM386 is loaded, where n = the number of 1K blocks.

[A=n] Allows the user to specify the number of fast alternate register sets to allocate, where n = the number of fast register sets to allocate. The default is A=7.

[/Hnnn] Allows the user to specify the number of handles available for use from 1 to 255. The default is /H255.

[/D=nnn] This argument specifies the amount of memory to be reserved for buffering DMA operations, where nn = is the amount of memory in kilobytes to allocate for DMA. Valid parameters are { 16 <= nnn >= 256}. This parameter should reflect the largest DMA transfer that can occur while the driver is active.

Additional reference words: 3.00 3.10 3.20 3.21 3.22 3.30 3.30a 4.00 4.00a 4.01 noupd

Copyright Microsoft Corporation 1993.