
          Windows 3.1 and QEMM Advanced Troubleshooting

 Quarterdeck Technical Note #207             Filename: WINFLOW.TEC
 by Andy Buck                              CompuServe: WINFLO.ZIP
 Last revised: 11/01/95                      Category: QEMM

 Subject:  A step-by-step troubleshooting guide for solving
           conflicts between Microsoft Windows 3.1 and QEMM.

 This Quarterdeck technical note has been written to help you
 troubleshoot and fix almost all Windows 3.1 and 3.11 problems
 which relate to the use of QEMM.  If you have an older version
 of QEMM or Windows, you should upgrade to the current versions
 before engaging in extensive troubleshooting.

        TIPS AND QUICK FIXES FOR POTENTIAL WINDOWS CONFLICTS
        ----------------------------------------------------

 Conflict:  Opening multiple applications causes Windows to give
            a General Protection Fault in GDI.EXE or RSRCMGR.DLL.

 Solution:  Try running the QEMM Setup program (QSETUP) from
            Windows, click on the "Windows" tab, and disable
            Resource Manager. Click "Save", then click "Restart."
            It is not necessary to re-run Optimize when altering
            this feature.  If you are unable to run QSETUP,
            try removing the reference to RSRCMGR.DLL on the
            drivers= line of the [boot] section in your Windows
            SYSTEM.INI file.

 Conflict:  Opening multiple applications causes Windows to give
            a General Protection Fault in FREEMEG.DLL, or large
            graphical documents stop displaying on the screen.

 Solution:  Try changing the resolution of your video driver to a
            lower resolution (i.e., changing from 65k to 256).
            If making this change does not resolve the conflict,
            switch to the Windows standard VGA driver and restart
            Windows.  If this does not resolve the problem, run
            the QSetup program from Windows, click on the
            "Windows" tab, and disable FreeMeg.  Click "Save",
            then click "Restart."  It should not be necessary to
            re-run Optimize when altering this feature.

 Conflict:  A CD-ROM drive will not function properly inside of
            MS Windows.

 Solution:  Try editing the AUTOEXEC.BAT file and add "/E" (no
            quotes) to the end of the line that contains the
            MSCDEX.EXE driver.  This will move the CD-ROM buffers
            into expanded memory and will reduce the size of the
            MSCDEX drive, possibly allowing it to be loaded
            properly and function in MS Windows.


 Conflict:  MS Windows video is distorted or unreadable.

 Solution:  Using MS Windows SETUP, configure MS Windows to use
            the standard VGA driver.  If this allows MS Windows
            to display graphics correctly, then QEMM may be
            recovering parts of the video area that the video
            driver needs to access.  Adding the following
            parameters to the end of the QEMM386.SYS device line
            in the CONFIG.SYS file will configure QEMM not to
            touch the video area on most systems:

            XST=C000 X=A000-C7FF

            These parameters may reduce the available upper
            memory by 64k, so if conventional memory is low, the
            troubleshooting flowchart (below) should be followed.

 Conflict:  MS Windows fails to load, and displays an error
            message that begins as follows:

            "Windows cannot set up an upper memory block at segment
            B000."

 Solution:  This conflict occurs because the video driver that MS
            Windows is using needs to use the monochrome text
            area. Edit the CONFIG.SYS file and add the following
            parameter to the end of the QEMM386.SYS device line:

            X=B000-B7FF

            Alternately, you can install MONOUMB2.386 on your
            system. MONOUMB2.386 is a driver provided with
            Windows that allows memory managers like QEMM to use
            the monochrome text area for High RAM, even if the
            video driver is attempting to access that range.  For
            instructions regarding the installation of
            MONOUMB2.386, please refer to the README.WRI file
            included with your Windows installation.

 Conflict:  After using MS Windows for a while, the system either
            locks or a "General Protection Fault" error occurs.

 Solution:  MS Windows may be running low on System Resources. Here
            are some tips to maximize the amount of free resources:

            * Do not load fonts that are seldom used.
            * Use a small tiled bitmap for the wallpaper instead of a
              large wallpaper bitmap.
            * Minimize groups not frequently used, or those with many
              icons in them.
            * Because resources cannot be returned once they are used,
              do not open and close resource-hungry programs.
            * If you are not loading QEMM 8's Resource Manager, do
              so by running QEMM Setup.  Resource Manager is
              designed to alleviate resource shortages.
            * Keep an eye on your system resource with the QEMM
              memory reporting utility, or the Manifest program,
              both in your Windows QEMM program group.


 Conflict:  MS Windows fails to start properly.

 Solution:  Start MS Windows with the "/B" (no quotes) parameter.
            MS Windows will write any errors encountered while
            attempting to start to a file in the Windows
            directory called BOOTLOG.TXT. This is a list of what
            the error codes reported in BOOTLOG.TXT mean:

            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 MS Windows version
            11 Invalid .EXE file
            12 OS/2 application
            13 MS-DOS 4.0 application
            14 Unknown .EXE type
            15 Attempt in protected mode to load an .EXE file
               created for an earlier version of MS 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

           The BOOTLOG.TXT file lists the files and drivers that MS
           Windows loads when starting, and the success or failure of a
           driver or file to load is recorded in this file and may yield
           informative results as to the nature of the conflict.

                    *****************************
                    * TROUBLESHOOTING FLOWCHART *
                    *****************************

 INSTRUCTIONS:  In each of the following steps you will either
 edit a file or run a program from the DOS prompt.  Look for the
 ??? in each step, as these will guide you through the
 appropriate troubleshooting procedures. This technical note
 consists of four TESTs, which will identify what is causing the
 conflict, followed by four STEPs, which will help you resolve
 the conflict.

 This troubleshooting procedure will isolate and resolve the
 conflict most effectively if you are able to reproduce the
 conflict at will (you know of a specific action or series of
 actions that will cause the conflict to occur). The reason for
 this is that this procedure follows a logical set of tests to
 determine when a conflict is occuring and when it is not.  A
 conflict that randomly occurs is difficult to troubleshoot
 because you do not know for sure when a configuration is being
 used that resolves the conflict.

                              TEST 1

         CONFIGURE WINDOWS TO AVOID CONFLICTS WITH QEMM
         ----------------------------------------------

 *NOEMMDRIVER*

 Edit the SYSTEM.INI file and locate the section titled [386enh].
 Look in this section for a line that looks as follows:

 NoEmmDriver=True

 ???  If this line exists in the [386enh] section, erase the line.
      QEMM is an expanded memory driver and this line conflicts
      with MS Windows when using any expanded memory driver.  Try
      to reproduce the conflict.

   ???  If the conflict goes away, congratulations!  You have
        resolved the conflict and are finished with this technical
        note.

   ???  If the conflict still exists then continue with the next step,
        *MS WINDOWS TROUBLESHOOTING PARAMETERS*.

 ???  If there is no line in the SYSTEM.INI that reads
      "NoEmmDriver=True," continue with the next step, *MS WINDOWS
      TROUBLESHOOTING PARAMETERS*.
                                                                       
 *MS WINDOWS TROUBLESHOOTING PARAMETERS*

 To determine whether a MS Windows setup problem is causing a
 conflict, start MS Windows with the following parameters:

 WIN /D:FSVX

 ???  If MS Windows functions properly with the above switches,
      then adding the appropriate settings to the SYSTEM.INI file
      will resolve the conflict.  Go to STEP A.

 ???  If the conflict still occurs then the MS Windows
      configuration is not causing the conflict.  You should
      continue with the next step, *WIN.INI*.

 *WIN.INI*

 It it possible that a driver in the WIN.INI file is causing the
 conflict. To determine if this is the case, rename the WIN.INI
 file to WIN.OLD.

 Start MS Windows and attempt to reproduce the conflict.

 ???  If the conflict goes away then go to STEP A.

 ???  If the conflict still exists then go to TEST 2.


                             TEST 2

                CREATE A CLEAN ENVIRONMENT FOR QEMM
                -----------------------------------

 In order to ensure that the MS Windows conflict is not being
 caused by another program in memory, temporarily disable all
 lines in the CONFIG.SYS and AUTOEXEC.BAT files that are not a
 part of QEMM and are not needed to start MS Windows.  To do
 this, place the word REM in front of the line and attempt to
 reproduce the conflict.  Please note that if your hard drive is
 compressed or requires a driver to be loaded then those drivers
 should not be REMarked out.

 Some conflicts require other drivers or TSRs to be loaded in
 order to attempt to reproduce the conflict; these drivers should
 NOT be REMarked out. For example, if the conflict is related to
 a CD-ROM, the drivers for the CD-ROM must be loaded. These
 drivers should NOT be REMarked out.

 Once the REMark statements have been added to both the
 CONFIG.SYS and AUTOEXEC.BAT files, reboot the system and attempt
 to reproduce the conflict.

 ???  If the conflict goes away, go to STEP B.

 ???  If the conflict still exists, go to TEST 3.

                             TEST 3

                        SIMPLYFYING QEMM
                        ----------------

 Because QEMM is extremely thorough when recovering and using
 upper memory, it is possible that one of QEMM's advanced features
 is adding to the conflict with MS Windows.  Please follow steps a)
 through e) to disable these features.

 a) To ensure that there is no conflict in upper memory, you should
    eliminate all High RAM and test the system.  Run QEMM Setup
    in Windows and choose the option "Fill upper memory with RAM"
    (In DOS, select "Review or change QEMM parameters", and then
    the "Fill upper memory with RAM" option. You should select
    "NO" to ensure that QEMM will not create High RAM.

 b) To disable Stealth, select "Stealth system and video ROMs" from
    the QEMM Features tab in QEMM Setup ("Review or change QEMM
    parameters" in the DOS version of QSETUP).  You will be
    presented with the following options:

    Stealth Off
    Stealth Mapping
    Stealth Frame

 ???  If the "Stealth Off" option is highlighted then Stealth is
      not currently enabled and is not adding to the conflict. Make
      a note that you were not using Stealth and proceed to step c)
      below.

 ???  If either "Stealth Mapping" or "Stealth Frame" are
      highlighted then you should make a note of the Stealth mode
      that you were using and highlight the "Stealth Off" option to
      temporarily disable Stealth.

 c) The QEMM Setup program can also place QEMM in a
    troubleshooting mode, adding many troubleshooting parameters
    to the QEMM386.SYS device line.

    To add the troubleshooting parameters select Troubleshooting
    Parameters (In DOS, the "Review or change QEMM parameters"
    QSETUP menu, hit <Page Down> twice and select "Set up QEMM for
    troubleshooting".)  This will add all of the general
    troubleshooting parameters to the QEMM386.SYS line.

 d) QEMM's DOS-Up feature can load more of DOS into upper memory
    than DOS itself, freeing more conventional memory.  It is
    possible that a program is expecting most of DOS to be in
    conventional memory, and disabling DOS-Up will eliminate that
    conflict.  In Windows, select "Do not use DOS-Up" from the
    DOS-Up property page.  In DOS, from the QSETUP Main Menu,
    select "Enable or disable DOS-Up," followed by "No."

 e) To disable QEMM's Stealth D*Space feature from the QSETUP main
    menu, select "Enable or disable Stealth D*Space" and make note
    of whether you are using Stealth D*Space (if "Yes" is
    highlighted) or not (if "No" is highlighted).  Set this option
    to "No."

 f) To disable QEMM's MagnaRAM, FreeMeg, and Resource Manager, edit
    the SYSTEM.INI file, and search the [Boot] section for the line:

         drivers=freemeg.dll rsrcmgr.dll

    and remove "freemeg.dll" and "rsrcmgr.dll" from the line.  Then
    search the [386Enh] section for the line:

         device=C:\QEMM\MAGNA31.VXD

    and place a semi-colon in front of the word "device".  Save the file
    with the corrections.

 After the changes in steps a) through f) have been made, save the
 configuration and allow the Optimize program to run.

 Once Optimize has completed, try to reproduce the conflict.

 ???  If the conflict goes away then reconfiguring QEMM will
      resolve it. Go to STEP D below.

 ???  If the conflict still exists, go to TEST 4.
    
                          TEST 4

         USE DOS'S MEMORY MANAGERS INSTEAD OF QEMM
         -----------------------------------------

 If all of the above tests fail to resolve the conflict, there may
 be an incompatibility with DOS that is not related to QEMM.  You
 need to ensure that the system is functioning properly with ANY
 memory manager.

 The QEMM386.SYS driver should be REMarked out of the CONFIG.SYS to
 disable QEMM.

 Next, add DOS's memory managers, HIMEM.SYS and EMM386.EXE, at the
 beginning of the CONFIG.SYS as follows:

 EXAMPLE:

 DEVICE=C:\DOS\HIMEM.SYS
 DEVICE=C:=DOS\EMM386.EXE RAM 1024
 REM DEVICE=C:\QEMM\QEMM386.SYS <troubleshooting parameters>

 NOTE: The RAM and 1024 parameters should be added to the
       EMM386.SYS device line.

 Save the configuration, reboot the system, and test to see if the
 conflict still exists.

 ???  If the conflict goes away, go to STEP D.

 ???  If the conflict still exists then it is unrelated to QEMM.
      Since the conflict exists without QEMM loading,
      troubleshooting QEMM further will not affect the conflict. We
      recommend that you contact the manufacturer of the
      application that is failing, or contact Microsoft if MS
      Windows itself is not operating correctly.  You are finished
      with this technical note.

 /<*>\/<*>\/<*>\/<*>\/<*>\/<*>\/<*>\/<*>\/<*>\/<*>\/<*>\/<*>\/<*>\


                             STEP A

                      CONFIGURING MS WINDOWS
                      ----------------------

 ???  If the /D:FSVX switch resolved the conflict:

      Each of the letters in the parameter "FSVX" represent a
      different SYSTEM.INI setting:

      SWITCH   SYSTEM.INI SETTING
      ------   ------------------
       /D:F     32BitDiskAccess=FALSE
       /D:S     SystemROMBreakPoint=FALSE
       /D:V     VirtualHDIRQ=FALSE
       /D:X     EMMExclude=A000-FFFF

      Test MS Windows with only one of the above switches at a time
      to determine the setting that needs to be added to the
      [386enh] section of the SYSTEM.INI file. Once you have
      determined the switch that resolves the conflict, add the
      corresponding SYSTEM.INI setting the the [386Enh] section of
      the SYSTEM.INI file.  You are finished with this technical
      note.

 ???  If renaming WIN.INI to WIN.OLD resolved the conflict:

      You have isolated the conflict to something loading in the
      WIN.INI file.  To determine exactly which program is causing
      the conflict, rename the WIN.OLD file back to WIN.INI, edit
      the WIN.INI file, and locate the lines that begin with
      "LOAD=" (in the [Windows] section). Disable the "LOAD=" lines
      one at a time (by placing a ; at the beginning of the line)
      and try to reproduce the conflict.  When the conflict goes
      away, the last line that was disabled contains the driver
      that is causing the conflict.  You are finished with this
      technical note.

                             STEP B

                   RESTORING FROM A CLEAN BOOT
                   ---------------------------
                             
 One of the drivers or TSRs that you have placed a REM statement in
 front of is causing the conflict.  In order to identify which
 driver or TSR is causing the conflict you should remove the REMark
 statements from the beginning of each line in the CONFIG.SYS and
 AUTOEXEC.BAT files one at a time.  By rebooting and trying to
 reproduce the conflict after each change you can identify the
 program that is conflicting with MS Windows.

 When the conflict reoccurs, the program loading on the last line
 that you removed the REMark statement from is causing the
 conflict.  Contacting the manufacturer of the program is the
 easiest way to resolve the conflict; however, Quarterdeck
 Technical Support has found that the following suggestions resolve
 many other programs' incompatibilities:

 o  Configure the program NOT to use expanded memory.  Some
    programs misuse expanded memory, and by configuring them to use
    extended or conventional memory the conflict with MS Windows
    may be avoided.  Consult the program's documentation for
    configuration options.

 o  Try loading the program low.  Some programs are written with
    the assumption that they will be loaded in conventional memory
    and fail to function properly when loaded into upper memory. If
    the program is able to load itself into uppper memory, disable
    this feature to ensure that it is not adding to the conflict.

 o  Contact the manufacturer of the program to acquire the latest
    version of the program.  Newer versions may contain
    compatibility fixes for known conflicts.

 You are finished with this technical note.


                             STEP C

                        REBUILDING QEMM
                        ---------------

 *HIGH RAM*

 The first step in rebuilding the system is to allow QEMM to create
 High RAM. To do this, run QSETUP, select "Review or change QEMM
 parameters" followed by "Fill upper memory with RAM."  Save this
 configuration, reboot the system, and try to reproduce the
 conflict.

 ???  If the conflict does NOT occur then there is no upper memory
      conflict.  Go to the next section, *STEALTH*.

 ???  If the conflict reappears then the conflict is related to
      upper memory.  The technical note EXCLUDE.TEC in the
      \QEMM\TECHNOTE directory will help you isolate the area in
      upper memory that is causing the conflict and help you
      correct the problem.  You are finished with this technical
      note.

 *STEALTH*

 In this step you will determine if QEMM's STEALTH feature is
 causing the conflict.

 ???  If you noted in TEST 3 that Stealth was NOT being used then
      there is no need to test Stealth.  Proceed to the next
      section, *DOS-UP*.

 ???  If you noted in TEST 3 that the Stealth feature was being
      used then the next step in rebuilding QEMM is to enable
      Stealth and see if the conflict occurs.  Run QSETUP, select
      "Review or change QEMM parameters" followed by "Stealth
      system and video ROMs."  Select the appropriate Stealth mode
      based upon the mode that you noted in TEST 3.  Save this
      configuration, reboot the system, and try to reproduce the
      conflict.

 ???  If the conflict does not occur, go to the next step, *DOS-Up*.

 ???  If the conflict recurs then the conflict is related to
      Stealth. The Stealth troubleshooting technical note
      STEALTH.TEC is available in the \QEMM\TECHNOTE directory, and
      should be followed in order to fine tune Stealth to avoid the
      MS Windows conflict.  You have identified the conflict and
      are finished with this technical note.

 *DOS-UP*

 To determine whether the DOS-Up feature is adding to the conflict,
 you should enable this feature again.

 From the QSETUP Main Menu, select "Enable or disable DOS-Up"
 followed by "Yes." This will fully enable the DOS-Up feature. Save
 the configuration, allow Optimize to run, and try to reproduce the
 conflict.

 ???  If the conflict does not occur then the DOS-Up feature is not
      adding to the conflict.  You may proceed to next step,
      *Stealth D*pace*.

 ???  If the conflict recurs then DOS-Up is adding to the conflict.
      By partially enabling the DOS-Up feature you can still
      receive the benefits of DOS-Up while avoiding the conflict
      with MS Windows.

      From the QSETUP main menu, press the "U" key to "Enable or
      disable DOS-Up," then the "P" key for a "Partial" DOS-Up
      configuration. This brings you to the DOS-Up Options screen
      which allows you to turn on or off the loading high of the 4
      parts of DOS.

                1 = DOS Resources No
                2 = COMMAND.COM   No
                3 = DOS Data      No
                H = DOS=HIGH      No

      Test the system by enabling only one of these options at a
      time, rebooting, and trying to reproduce the conflict after
      each change to isolate which part of DOS-UP is causing the
      conflict.  Once the option that is causing the conflict is
      isolated, setting the option to "No" in QSETUP will ensure
      that this part of DOS-Up will not be enabled by QEMM's
      Optimize program in the future.  You are finished with this
      technical note.

   *STEALTH D*SPACE*

 This test will determine if the Stealth D*Space driver is adding
 to the MS Windows conflict.

 ???  If you noted in TEST 3 above that you were using the Stealth
      D*Space feature then run QSETUP, select "Enable or
      disable Stealth D*Space," and set this option to "Yes."  Save
      the configuration, reboot the machine, and try to reproduce
      the conflict.

 ???  If the conflict recurs then the Stealth D*Space feature is
      adding to the conflict.  A common cause of conflicts with the
      Stealth Doublespace driver is programs that misuse expanded
      memory.  Try configuring other device drivers and TSRs on the
      system to NOT use expanded memory.  You may need to consult
      the documentation for the programs that you are loading to
      learn how to do this.

 ???  If you noted in TEST 3 that you were NOT using Stealth
      D*Space OR if setting the Stealth D*Space option to "Yes" did
      not cause a conflict, the QEMM troubleshooting parameters
      resolved the conflict.  The following is a list of the
      troubleshooting parameters that QSETUP added:

      DB:2 RH:N SH:N TM:N XBDA:N TR:N CF:N FILL:N MR:N BE:N

      You may remove one of these parameters at a time, save the
      file, reboot the system, and attempt to reproduce the
      conflict.  When the conflict occurs then you know that the
      LAST parameter that you removed was necessary to avoid the
      conflict and you should keep that parameter and remove the
      rest.  You are finished with this technical note.


                              STEP D

                   CONTACTING TECHNICAL SUPPORT
                   ----------------------------

 The conflict that MS Windows is experiencing requires further
 troubleshooting techniques and investigation, and contacting our
 technical support department is the quickest and easiest way to
 resolve the conflict.  Please mention that you have followed this
 technical note and were instructed by STEP D to contact
 Quarterdeck for additional troubleshooting steps.

 Our technical support department is easily reached via electronic
 channels such as CompuServe (GO QUARTERDECK), Internet (mail
 support@qdeck.com or the comp.os.msdos.desqview Usenet newsgroup),
 the Quarterdeck BBS (310-309-3227), or fax (310-309-3217).  When
 contacting Quarterdeck, be sure to fully explain the symptoms of
 the conflict, the results of the tests performed while following
 this technical note, and include the following information:

 CONFIG.SYS     (in the root directory, usually C:\)
 AUTOEXEC.BAT   (in the root directory, usually C:\)
 SYSTEM.INI     (in the MS Windows directory, usually C:\WINDOWS\)
 WIN.INI        (in the MS Windows directory, usually C:\WINDOWS\)

 You can also call our Technical Support line at 310-309-4250 for
 further assistance.  When you call, please be at the machine that
 is experiencing the conflict.

 ******************************************************************
 *      Trademarks are property of their respective owners.       *
 *   This and other technical notes may be available in updated   *
 *     forms through Quarterdeck's standard support channels.     *
 *          Copyright (C) 1996 Quarterdeck Corporation            *
 ******************** E N D   O F   F I L E ***********************

