Microsoft KB Archive/52195

= Exception Errors with EMM386.SYS / EMM386.EXE =

ID: q52195

The information in this article applies to:


 * Microsoft MS-DOS operating system versions 4.x, 5.0, 6.0, 6.2, 6.21, 6.22

SYMPTOMS
If you install the EMM386.EXE device driver included with MS-DOS, you may get the following error message:

EMM386 Exception error #13 @ xxxx:xxxxxxxx CODE xxxx PRESS ENTER TO REBOOT.

CAUSE
The error means that the 80386 microprocessor has encountered a general protection violation. Because the EMM386 driver operates the 80386 chip in virtual real mode, the microprocessor checks for valid memory accesses. If a program tries to access memory that it is not allowed to access, the 80386 chip generates an exception fault error, which is detected by EMM386. In essence, EMM386 is reporting an error detected by the CPU in virtual mode.

WORKAROUND
You should remove EMM386 to determine if problems still occur without it. If problems still occur, correct them and reinstall EMM386.

MORE INFORMATION
The 12 hexadecimal digits following the error (represented by x in the above error message) are the address of the machine language instruction following the instruction that caused the exception error. This number is given in CS:EIP format, where CS is the code segment, and the EIP is the instruction pointer (relative to the code segment). This value indicates where in memory the CPU was executing instructions when the exception occurred. It is sometimes possible to determine from this value what software caused the exception to occur.

This error should not occur on systems that are 100 percent IBM compatible. Because of the hardware-intensive nature of the EMM386 device driver, strict IBM hardware compatibility is required. If this error does occur on your system, the EMM386.SYS or EMM386.EXE device driver may need to be modified by your machine's manufacturer.

The following is a list of Intel 80386 protected mode exception errors and their names:

Code   Meaning ---

0      Divide error 1      Debugger interrupt 2      Nonmaskable interrupt 3      Breakpoint 4      Overflow interrupt 5      Array boundary violation 6      Invalid opcode 7      Coprocessor not available 8      Double fault 9      Coprocessor segment overrun 10     Invalid task state segment 11     Segment not present 12     Stack exception 13     General protection violation 14     Page fault 16     Coprocessor error KBCategory: kbref kbhw kberrmsg kb3rdparty KBSubcategory: msdos gpf win31 win30 wfw wfwg Additional reference words: 6.22 4.0 4.00 4.0a 4.00a 4.01 4.01a 5.00 5.00a 6 6.0 6.00 6.20 3.0 3.1 GP

Last Reviewed: December 21, 1994