====================================================================== Microsoft Product Support Services Application Note (Text File) WW0525: Troubleshooting 386 Enhanced Mode Problems ====================================================================== Revision Date: 3/92 No Disk Included The following information applies to Microsoft Windows version 3.1. -------------------------------------------------------------------- | 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 MS-DOS(R) | | 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, MS-DOS, and the Microsoft logo are registered | | trademarks and Windows is a trademark of Microsoft Corporation. | -------------------------------------------------------------------- Introduction ------------ Microsoft Windows version 3.1 has two modes of operation: standard and 386 enhanced modes. 386 enhanced is the highest-level mode of operation because it utilizes the virtual mode of the 80386i processor. However, you may experience the following problems when attempting to run Windows 3.1 in 386 enhanced mode: - Windows stopping or returning to the MS-DOS prompt - General protection faults (GPFs) - Windows defaulting to standard mode when you type "win" (without the quotation marks) at the MS-DOS prompt Troubleshooting Procedure ------------------------- The following steps may correct or reduce these problems: 1. Ensure that the system has the minimum configuration required to run Windows 3.1 in 386 enhanced mode. These requirements are: - An 80386 or faster processor - 200K of free conventional memory - 1024K of free extended memory - 2 MB of free disk space 2. Try to force Windows into 386 enhanced mode by typing "win /3" (without the quotation marks). If this is successful, the computer probably has available less than the 1024K of extended memory required for Windows to default to 386 enhanced mode on startup. Verify that you are running an extended memory manager (HIMEM.SYS is the extended memory manager that comes with Windows 3.1). If so, you should free up extended memory so that Windows can default to 386 enhanced mode. The best way to accomplish this is to start your computer with minimal CONFIG.SYS and AUTOEXEC.BAT files. Using a text editor such as Notepad, comment out any lines that load extraneous device drivers, terminate-and-stay-resident (TSR) programs, and so forth, that are not required to run your machine. To comment out a line, type "rem" (without the quotation marks) at the beginning of the line. Caution: If you do not know the purpose of a line in your CONFIG.SYS or AUTOEXEC.BAT file, leave that line as is. Other things that might help free up extended memory include reducing the size of any disk cache, such as SMARTDRV.EXE, or RAM drive. Although you can force Windows into enhanced mode if there is less than 1024K of extended memory, this is not recommended because this condition can adversely affect the performance of Windows. 3. Try starting Windows by typing: win /d:xvs If this is successful, try each of the following switches individually to see which is required: WIN /D:X This switch excludes the entire upper memory block region from A000-FFFF. It is functionally equivalent to adding EmmExclude=A000-EFFF to the [386enh] section of the SYSTEM.INI file. NOTE: If any upper memory block (UMB) provider is installed in the CONFIG.SYS file, this switch has no effect in the region the UMB provider is using. The UMB provider has priority in the UMB area. For this reason, you should disable the UMB provider (such as EMM386.EXE), restart the system, and then try the WIN /D:X switch. WIN /D:V This switch is equivalent to adding the line VirtualHDIrq=OFF to the [386enh] section of the SYSTEM.INI file. For more information about the VirtualHDIrq= setting, consult the SYSINI.WRI file in the \WINDOWS directory. WIN /D:S This switch is equivalent to adding the line SystemROMBreakPoint=OFF to the [386enh] section of the SYSTEM.INI file. After determining which switch, or combination of switches, allows Windows 3.1 to successfully start in 386 enhanced mode, use a text editor such as Notepad to add the corresponding line, or lines, to the [386enh] section of the SYSTEM.INI file. 4. Create a BOOTLOG.TXT file by typing "win /b" (without the quotation marks) to start Windows. This switch will create a file called BOOTLOG.TXT in the \WINDOWS directory. Once this file has been created, you can view it using any text editor (such as Notepad). In this file, Windows creates a list of the basic Windows drivers as they are loaded. If there is a problem with one of these drivers loading, a statement will appear in the BOOTLOG.TXT file showing which driver could not load. This information is valuable in determining which component of Windows is not able to function properly. NOTE: This switch will append new information to the end of an existing BOOTLOG.TXT file. Therefore, you may want to rename or delete any existing BOOTLOG.TXT file in the \WINDOWS directory before using the /B switch. The following is a list of error codes that may appear in the BOOTLOG.TXT file: 0 Out of memory 2 File not found 3 Path not found 5 Attempt to dynamically link to a task 6 Library requires separate data segments for each task 8 Insufficient memory to start application 10 Incorrect Windows version 11 Invalid .EXE file (non-Windows .EXE file or error in .EXE file image) 12 OS/2 application 13 MS-DOS 4.0 application 14 Unknown .EXE file type 15 Attempt in protected (standard or 386 enhanced) mode to load an .EXE file created for an earlier version of Windows 16 Attempt to load a second instance of an .EXE file containing multiple writeable data segments 17 Attempt in a large-frame EMS mode to load a second instance of an application that links to certain nonshareable DLLs already in use 18 Attempt in real mode to load an application marked for protected mode only 5. At the MS-DOS prompt, change to the \WINDOWS directory before starting Windows. When Windows starts, it reads the .INI files that specify the locations of many of the files that Windows needs in order to start. When Windows reads the .INI files, it looks for the specified files in the following locations: a. The current directory b. The \WINDOWS directory c. The \WINDOWS\SYSTEM subdirectory d. All of the directories listed in the PATH environment variable in the AUTOEXEC.BAT file e. All of the directories in the list of directories mapped on a network For example, if there is an outdated MOUSE.DRV file (the Windows Microsoft Mouse driver) in the current directory, Windows may not be able to start. 6. Verify that Windows can run in standard mode by typing "win /s" (without the quotation marks) at the MS-DOS prompt. If Windows can run in standard mode, you may have installed a mouse, keyboard, video, or printer driver designed for a previous version of Windows, or you may have made an incorrect selection for your hardware. To change the printer driver, start the Control Panel and choose the Printers icon. To change the mouse, keyboard, video, or network driver, from the Program Manager File menu, choose Run, type "setup," (without the quotation marks) and choose the OK button. This command brings up the System Information screen; from the Options menu, choose Change System Settings. Also, check the "Microsoft Windows Version 3.1 Hardware Compatibility List" that ships with Windows to see if your computer requires special handling. If it does, exit Windows and then reinstall it, using only a minimum of drivers (use no mouse or network driver and use the lowest resolution video driver) and the SETUP /I switch. Another option is to delete Windows and reinstall it using the SETUP /I switch, along with the minimal configuration described above. This may be necessary if it is not possible to determine which component of Windows is preventing proper operation. 7. Check your AUTOEXEC.BAT and CONFIG.SYS files for TSR programs, sufficient buffers, files, and environment space. Some TSR programs are not compatible with Windows 3.1 and may need to be commented out during Windows operation. Again, if you do not know the purpose of a line, do not comment it out. 8. Disable the autoswitching or autosensing feature on the video card if applicable. Verify that you are using the latest version of the BIOS (basic input/output system) for that video card (see step 13). 9. Disable system or video ROM shadowing if it is supported by the system. 10. Verify that you are using the correct version of MS-DOS for the system. You should be using a version of MS-DOS that is 3.1 or later and is designed for the machine. Do NOT use an original equipment manufacturer (OEM) version of MS-DOS on a computer that was not manufactured by that OEM (for example, do not use COMPAQ MS-DOS on an IBM computer). 11. Ensure that HIMEM.SYS loads successfully. If it does not, or if a problem is suspected, try ALL A20 handlers available to the version of HIMEM.SYS being used. The DEVICE=C:\HIMEM.SYS line in your CONFIG.SYS file should include the /M:x switch, where x denotes a handler number. For example, if you are using a PS/2, this line should read DEVICE=C:\HIMEM.SYS /M:2. For more information about the /M switch, see pages 543–547 of the version 3.1 "Microsoft Windows User's Guide." NOTE: Some A20 handlers may lock up your computer, so it is important to have a system MS-DOS floppy disk available that contains an ASCII text editor (such as Edlin or Edit) should this problem occur. 12. Install Windows in an empty directory. Do not install Windows version 3.1 over a 2.x version, because some files and drivers may not be updated properly. 13. Confirm that you are using a system BIOS that is dated 1988 or later. If you are using a BIOS with a date earlier than 1988, you may encounter problems when trying to run Windows 3.1 in 386 enhanced mode. The BIOS date will vary depending on the brand of your BIOS and the manufacturer of your machine. The BIOS version and date are typically displayed when you first start up the system. If the date is not displayed when the system is started, or if you have any questions about the compatibility of your BIOS with Windows 3.1, you should contact your hardware manufacturer. 14. Remove any additional hardware from the system (mouse, network card, fax board, modem, and so forth). After all the nonessential hardware has been removed, restart the system, and run Windows 3.1. If you can now run in 386 enhanced mode, it is likely that an interrupt request line (IRQ) conflict exists. Replace one piece of hardware at a time, restarting the machine after each new piece of hardware is replaced, and run Windows in 386 enhanced mode. Do this until the symptom reoccurs, at which point you've most likely found an IRQ conflict. For more information on how to deal with IRQ conflicts, contact the manufacturer of the piece of hardware in question. 15. If none of the above steps has corrected the problem, you may want to contact your hardware manufacturer for additional information.