Expanded Memory for DOS Applications under MS Windows SOURCE: Customer Support Center/Atlanta USA The following information was obtained from Microsoft Online services. -------------------------------------------------------------------- | INFORMATION PROVIDED IN THIS DOCUMENT AND ANY SOFTWARE THAT MAY | | ACCOMPANY THIS DOCUMENT (collectively referred to as an | | Application Note) IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY | | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO | | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A | | PARTICULAR PURPOSE. The user assumes the entire risk as to the | | accuracy and the use of this Application Note. This Application | | Note may be copied and distributed subject to the following | | conditions: 1) All text must be copied without modification and | | all pages must be included; 2) If software is included, all files | | on the disk(s) must be copied without modification (the DOS | | utility DISKCOPY is appropriate for this purpose); 3) All | | components of this Application Note must be distributed together; | | and 4) This Application Note may not be distributed for profit. | | | | Copyright 1992 Microsoft Corporation. All Rights Reserved. | | Microsoft and the Microsoft logo are registered trademarks of | | Microsoft Corporation. | -------------------------------------------------------------------- ====================================================================== EXPANDED MEMORY FOR DOS APPLICATIONS ====================================================================== UNDER REAL MODE WINDOWS 3.00 ============================ Real mode Windows 3.00 and DOS applications can both use the same external Expanded Memory Manager (EMM). Expanded memory can be provided either by a physical expanded memory board, or by a 386 Expanded Memory Manager. Common expanded memory boards include the Intel Above Board and AST RAMpage. Common 386 Expanded Memory Managers include Microsoft EMM386.SYS (included with the Windows product), COMPAQ CEMM.EXE (included with COMPAQ 386 machines), Qualitas 386 to the Max (386MAX.SYS), and Quarterdeck QEMM.SYS. If a physical expanded memory board is used, you will get the best performance from real mode Windows by backfilling to provide large page frame LIM 4.0 support. Some boards do not have the hardware register support to provide large page frame LIM 4.0 -- only small page frame (see the "Expanded Memory" section of this application note). All 386 Expanded Memory Managers provide large page frame LIM 4.0 support. Remember that DOS applications require LIM 3.2 (a 64K contiguous page frame) to use expanded memory, but real mode Windows requires LIM 4.0 (does not require a 64K contiguous page frame). If you see expanded memory in Windows but not in your DOS applications, you probably do not have a 64K contiguous page frame (LIM 3.2), and you may need to rearrange adapter locations. Refer to the "Expanded Memory" section of this application note for more information. UNDER STANDARD MODE WINDOWS 3.00 ================================ As noted in the standard mode section of "Windows 3.00 Modes and Memory Usage" of this application note, Windows 3.00 standard mode does not use expanded memory. DOS applications running under standard mode can use expanded memory only with a physical expanded memory card such as an Intel Above Board or AST RAMPage. 386 Expanded Memory Managers cannot be used to provide expanded memory support for DOS applications running from standard mode. Still, 386-compatible EMMs can be loaded to provide DOS application expanded memory support outside of standard mode. UNDER ENHANCED MODE WINDOWS 3.00 ================================ Expanded memory emulation is provided internally for DOS applications running under enhanced mode. The only requirement is the presence of a 64K contiguous page frame. See the "Enhanced Mode and the 384K Reserved I/O Address Space" section of this application note for more information on page frame placement. Expanded memory for DOS applications can be allocated and/or limited via PIF parameters. EXTERNAL 386 EXPANDED MEMORY MANAGERS ===================================== Some 386 Expanded Memory Managers have a special feature that allows standard or enhanced mode Windows to turn them off when Windows is run. Memory managers with this capability are EMM386.SYS and CEMM.EXE. Windows can turn off EMM386.SYS even if expanded memory is in use at the time. CEMM.EXE requires that no expanded memory be in use when standard or enhanced mode Windows is run. Other memory managers such as 386MAX and QEMM cannot be loaded with standard or enhanced mode Windows. Some 386 Expanded Memory Managers provide the capability to load DOS device drivers into free areas of the 384K reserved I/O address space. This process works correctly under real mode Windows, and if you must run real mode, this is recommended for best performance. EMM386.SYS and CEMM.EXE do not provide this capability, but 386MAX.SYS and QEMM.SYS do. If you plan to switch back and forth between real mode and standard or enhanced mode Windows 3.00, we recommend using EMM386.SYS. Neither standard nor enhanced mode will run with 386MAX or QEMM. Using one of these memory managers requires you to reboot with a different CONFIG.SYS and AUTOEXEC.BAT to switch between Windows 3.00 operating modes. Using EMM386.SYS allows you to run whichever mode you want. ms-windows