You are currently offline, waiting for your internet to reconnect

Troubleshooting MS-DOS 6.x and EMM386.EXE

This article was previously published under Q98768
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.
You encounter unexpected behavior (for example, your system stopsresponding [hangs] or a program hangs) when using the version of EMM386.EXEincluded with the following products:
Product                              Version of EMM386.EXEMS-DOS 6.0                                    4.45MS-DOS 6.2 and 6.21                           4.48MS-DOS 6.22                                   4.49Windows for Workgroups 3.1                    4.44Windows for Workgroups 3.11                   4.48Windows 95                                    4.95				
Use the steps in the following sections to pinpoint and then correct theproblems.

Troubleshooting MS-DOS 6.x and EMM386.EXE

  1. Turn your machine off, then turn it back on (cold boot) to fully reinitialize the system.
  2. Start MS-DOS interactively by pressing the F8 key as soon as the text "Starting MS-DOS..." appears.
  3. When prompted to load EMM386.EXE, choose N for No. If the problem persists without loading EMM386.EXE, something other than EMM386.EXE is causing the problem.
  4. If the problem disappears when EMM386.EXE is not loaded, edit the CONFIG.SYS file as follows using an ASCII text editor (such as MS-DOS Editor):
       device=c:\dos\emm386.exe x=a000-f7ff nohi noems novcpi nomovexbda notr						
    NOTE: If the problem is specific to the use of the CTRL+ALT+DEL key combination (warm boot) and EMM386.EXE, add the ALTBOOT parameter to the above line.
  5. Cold boot the machine after making the above changes. If the problem persists, the system may have faulty RAM chips or may require a special machine switch for HIMEM.SYS. In addition, any CMOS settings (such as shadow RAM) may need to be disabled, or the system ROM BIOS may need to be upgraded for compatibility with MS-DOS 6.x. Consult the system vendor for information on CMOS settings and/or the availability of BIOS upgrades.
  6. If the problem disappears after loading EMM386.EXE as specified above, EMM386.EXE itself is not the source of the problem. Instead, the problem may be related to some service(s) that EMM386.EXE provides.
If the above procedure corrected the problem, remove each command-lineoption for EMM386.EXE one by one and cold boot the machine. If the problemreappears, use the information below to find a resolution.


If excluding the entire upper memory area (UMA) resolves a systemproblem, EMM386.EXE may be scanning too aggressively and setting upupper memory blocks (UMBs) on top of some adapter ROM or RAM. Use anyavailable hardware documentation (including documentation on theadd-on hardware devices such as video, network, and disk controllercards) to identify any ROM or RAM present in the UMA for that device,and exclude all pertinent regions. If the hardware documentation is notavailable or does not give the required information, you can use theMicrosoft Diagnostic Utility (MSD) to identify the memory regions.


EMM386.EXE has the ability to load a portion of itself into UMBs. Ifthe NOHI option corrects the problem with EMM386.EXE, EMM386.EXE maybe loading into an occupied UMB. (Excluding the appropriate ranges inthe UMA may correct this problem; see the "X=A000-F7FF" sectionabove.) If all such regions are excluded, EMM386.EXE cannot be loadedhigh on the system, and NOHI must be used. Contact the systemmanufacturer or vendor for additional information on compatibilitywith EMM386.EXE.


If the NOEMS parameter corrects the problem with EMM386.EXE,EMM386.EXE may be inadvertently conflicting with some hardware ROM orRAM address in the UMA when attempting to establish an expanded memory(EMS) page frame. If EMS is required to run MS-DOS-based applications,use the parameter FRAME= or M<x> (where <x> is the defined hexadecimaladdress) to explicitly specify placement of the EMS page frame in anonconflicting region. If no applications require EMS, simply continueto use the NOEMS parameter.


The NOVCPI switch disables Virtual Control Program Interface (VCPI)support and can be used only in conjunction with the NOEMS parameter.If using NOVCPI corrects the problem, the application may not be fullycompatible with the EMM386.EXE VCPI allocation scheme. Either continueusing the NOVCPI parameter, or do not load EMM386.EXE when using theapplication.


Some machines use the last kilobyte of conventional memory for anextended BIOS Data Area. By default, EMM386.EXE remaps this memoryarea into the UMA instead of conventional memory. If this causesunexpected system behavior, the NOMOVEXBDA parameter MUST be used.


EMM386.EXE has a detection code to search for the presence of a tokenring network adapter. This detection code may cause some computers tohang. The NOTR switch can be used to disable this search.
For more information about EMM386.EXE command-line parameters and syntax,refer to MS-DOS Help by typing "help emm386.exe" (without quotation marks)at the MS-DOS command prompt and pressing ENTER.
6.22 6.00 6.20 golden emm hang lockup crash tshoot conflict emm386

Article ID: 98768 - Last Review: 12/17/2000 15:51:00 - Revision: 1.0

  • Microsoft MS-DOS 6.0 Standard Edition
  • Microsoft MS-DOS 6.2 Standard Edition
  • Microsoft MS-DOS 6.21 Standard Edition
  • Microsoft MS-DOS 6.22 Standard Edition
  • Microsoft Windows for Workgroups 3.1
  • Microsoft Windows for Workgroups 3.11
  • Microsoft Windows 95
  • KB98768