Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ e386.exe(CMD) — OpenDesktop 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought


 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


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026