Article ID: 78557 - View products that this article applies to.
This article was previously published under Q78557
If this article does not describe your hardware-related issue, please see the following Microsoft Web site to view more articles about hardware:
The following topics are discussed in this article:
IF EMM386.EXE LOCKS UP THE COMPUTERIf EMM386.EXE locks up the computer, follow these troubleshooting steps:
HOW EMM386.EXE LOCATES UMBs AND THE EMS PAGE FRAME
UMA Scanning AlgorithmBy default EMM386.EXE scans the following UMA region:
MS-DOS 5.0: C800-DFFF Windows 3.1, Windows for Workgroups 3.1: C600-DFFF MS-DOS 6.0 and later, Windows for Workgroups 3.11 and later: C000-EFFF
The E000-EFFF region is handled differently on certain hardware (see the following section).
Under MS-DOS 6.0 and later and Windows for Workgroups 3.11, the F000-F7FF range can be included by using the HIGHSCAN switch.
EMM386.EXE and the E000 SegmentOn Compaq machines, the E000 segment has either shadow RAM or the segment is unused. For shadow RAM, the shadow area is reclaimed by EMM386.EXE if the Int 10 vector has not been hooked before EMM386.EXE loads. This is because the shadow region contains a remapped copy of the video ROM from the C000 region.
EMM368.EXE excludes E000 on MCA machines (IBM PS/2s) since the E000 segment has the system ROM.
On other machines, E000 may be excluded by default. If you think the E000 range is available, you can explicitly include the E000 segment by adding I=E000-EFFF to the DEVICE=EMM386.EXE command in the CONFIG.SYS file.
NOTE: When EMM386.EXE encounters the include switch, it includes the region without scanning it for potential conflicts.
COMMON EMS ISSUES
WARNING: Unable to Set Page Frame Base Address--EMS UnavailableThis error is displayed if EMM386.EXE cannot locate a 64K contiguous "hole" in the UMA for the EMS page frame.
According to the LIM 3.2 specification, a page frame consists of four contiguous 16K pages, and a LIM provider must set the page frame.
According to the LIM 4.0 specification, an EMS provider need not set a 64K page frame, but it should set a 16K page at the minimum.
Although EMM386.EXE conforms to the LIM 4.0 specification, it does not load as an EMS provider if it does not find a 64K contiguous hole that can be used for the page frame. This is because the majority of LIM 3.2 applications assume the existence of a page frame.
EMM386.EXE can be forced to load without a LIM 3.2 (64K) page frame by using the Pn parameters. If you force EMM386.EXE to load as a LIM 4.0 provider, do not attempt to run LIM 3.2 applications. Consult with your application vendor to determine the required LIM version.
NOTE: If you require a LIM 3.2 (64K) page frame, it may be necessary to modify the settings on your hardware devices to free a contiguous, 64K region in the UMA.
Size of Expanded Memory Pool AdjustedThis error message is displayed if EMM386.EXE cannot provide all the EMS memory requested on the command line. For example, if you use the DEVICE=EMM386.EXE 2048 and your computer only has 1024K of XMS memory, EMM386.EXE displays this error message and provides as much EMS as possible. (Note that EMM386.EXE uses some XMS memory for its own code and data, and this reduces the amount of XMS memory available for EMS.)
Windows Cannot Provide EMS with the NOEMS SwitchAccording to the LIM 4.0 specification, an EMS page can also reside in conventional memory (0-640K). The EMM386 EMS line starts at 256K by default. If the NOEMS option is specified, all the holes in the adapter region A000-FFFF are used for UMBs, and EMM386.EXE does not provide any EMS.
Once Windows 3.0 is started and an MS-DOS session is started, EMM386.EXE may or may not be able to provide EMS. If Windows is running in 386 enhanced mode, EMM386.EXE can provide EMS in an MS-DOS session; however, the EMS pages are in conventional memory. This can cause problems because of the behavior of LIM 3.2 applications as described above.
In a Windows 3.1 386 enhanced mode MS-DOS session, EMS is not provided.
EMM386.EXE VERSION HISTORY
Some of the products included here are manufactured by vendors independent of Microsoft; we make no warranty, implied or otherwise, regarding the performance or reliability of these products.
MS-DOS 5.0 4.20 MS-DOS 5.00a 4.33 MS-DOS 6.0 4.45 MS-DOS 6.2 4.48 MS-DOS 6.21 4.48 MS-DOS 6.22 4.49 Windows 3.1 4.44 Windows 3.11 4.44 Windows for Workgroups 3.1 4.44 Windows for Workgroups 3.11 4.48 Windows 95 4.95 Windows 98 4.95
Article ID: 78557 - Last Review: January 18, 2007 - Revision: 3.1