ID Number: Q82298
3.10
WINDOWS
Summary:
Windows 3.1 standard mode is compatible with expanded memory managers
such as EMM386, 386MAX, and QEMM386. However, there are several
problems with the Virtual Control Program Interface (VCPI) used by
these products to provide access to extended memory in standard mode.
Under most circumstances, users of machines with 386 or higher
processors and with more than 2 megabytes (MB) of memory installed
should use enhanced mode rather than standard mode.
More Information:
Windows 3.1 can run in standard mode when an expanded memory manager
(EMM) is active. An EMM uses the paging mechanism of the 386 or higher
processor to map extended memory blocks, as EMS pages, into the first
megabyte of address space where no real memory is present. To do so,
the EMM puts the processor into protected mode, and keeps the emulated
upper memory block (UMB) and EMS page frames always available for
processes designed for real mode (such as MS-DOS), installed device
drivers, and terminate-and-stay-resident (TSR) programs. When one of
these processes is running, the processor is in virtual-8086 (v86)
mode, with paging on and the address mapping specified by the EMM.
In this configuration, the EMM services request to enter and leave
protected mode using the VCPI. The EMM may also allocate extended
memory. The standard mode MS-DOS Extender, DOSX, uses VCPI to switch
to protected mode and to v86 mode. Therefore, in standard mode, the
EMM remains active and continues to run "underneath" Windows. In
enhanced mode, the EMM is deactivated for the duration of the Windows
session.
Several questions have arisen regarding "VCPI support" under
standard-mode Windows. If no EMM is installed, more extended memory
and more total memory is available to Windows. An EMM uses a
considerable amount of extended memory to store itself and its tables.
The system incurs additional overhead because paging must be active at
all times. Unless an EMM is absolutely necessary, possibly because an
MS-DOS application will not run without EMS, Windows will probably run
better without an EMM. Windows enhanced mode runs on a machine with 2
MB of RAM memory installed if no EMM is present.
Windows standard mode does not support an MS-DOS application that is a
DPMI (MS-DOS Protected Mode Interface) client. However, if the EMM
also provides DPMI services, DOSX will not interfere with these
services.
The standard-mode task switcher attempts to arbitrate extended memory
use between Windows and MS-DOS applications. It performs this
arbitration by hooking the XMS function dispatcher. This does not work
properly if an EMM is installed, primarily because the extended memory
portion of the address space in standard mode is not accessible to the
MS-DOS portion of the switcher. For this reason, when an EMM is
present in standard mode, users will experience the following types of
problems:
- Performance degradation when the system switches between tasks
because the task switcher cannot use XMS memory for swap space.
- Applications, such as AutoCad and Lotus 1-2-3, that include an
MS-DOS extender will not run.
Because the standard-mode task switcher can't access Windows's
extended memory, it can't use extended memory for swap space when an
EMM is present. Users may experience some performance degradation
switching between MS-DOS applications in this configuration. Enhanced
mode is recommended to run many MS-DOS applications under Windows.
Windows standard mode does not specifically prevent VCPI applications
from running. However, because the task switcher cannot effectively
use extended memory provided by an EMM, an MS-DOS application that
uses extended memory probably will fail to run in the standard-mode
MS-DOS box. This applies equally to applications that use XMS, VCPI,
and DPMI. While it may be possible to run an MS-DOS application that
uses extended memory in an MS-DOS box under standard-mode Windows,
there is no general solution to the problems involved.
The VCPI specification is maintained by Phar Lap Software, Inc., and
Quarterdeck Office Systems. Windows 3.1 standard mode complies with
version 1.10 of the VCPI specification. Because many commercial EMM
products can be configured to not provide EMS, DOSX will attempt to
use VCPI if the following are true:
- The INT 67h vector is not null
- A device named "EMMXXXX0" is present
- The VCPI detection call (INT 67h, AX=DE00h) succeeds
In particular, DOSX does not require the presence of a LIM 4.0
(Lotus/Intel/Microsoft expanded memory specification) driver or a LIM
3.2 page frame.
Additional reference words: 3.10