ID:WT Windows 3/QEMM386 Trouble-shooting
Quarterdeck Technical Note
by Stan Young

QEMM-386 version 5.10 and above supports Windows 3.0 in all of 
its processing modes:  Real, Standard and 386 Enhanced.

The QEMM-386 upgrade booklet gives some specific instructions for 
the set up of QEMM-386 to ensure Windows compatibility. Most 
users who follow these instructions should find that Windows 3.0 
will operate correctly with QEMM-386 in all three modes.  For the 
most part, we have not seen problems which relate to QEMM-386 
setup when running in Real or Standard modes.

However, due to the broad range of hardware and software which 
may be combined in some systems, we have seen configurations 
which have experienced various problems when trying to run 
Windows 3.0 in 386 Enhanced mode.  

These problem include: Failure of Windows to start up in Enhanced 
mode, system crashes when exiting Windows in Enhanced mode, and in 
some cases problems while running Windows which do not occur when 
you are not loading QEMM-386.

IF WINDOWS 3.0 WILL NOT START IN ENHANCED MODE 
OR CRASHES ON EXIT:

Initial Check List:

The first thing to do if you are having trouble starting Windows 
3.0 in Enhanced mode, or upon exit from Windows, is to check your 
system to be sure that it has been set up as suggested in the QEMM 
5.1 Upgrade Booklet.  Following are some items that are important 
to Enhanced mode operations.

1.  Be sure the statement which loads QEMM-386 in your CONFIG.SYS 
file is using the "RAM" parameter or that if you are not using 
the RAM parameter, you should use "X=B000-B7FF" to exclude QEMM's 
use of the monochrome video area.  Additional information on this 
is given in the Upgrade Booklet on page 4.

2.  If you are running on a machine which has different speeds of 
memory, you will need to use the NOSORT (NS) parameter.  If you 
are running on a machine which would normally have less than 640K 
of conventional memory and where QEMM-386 is filling the memory 
to 640K, you must use the NOFILL (NO) parameter.  In both these 
cases, QEMM-386 cannot support these features while Windows 3.0 
is in Enhanced mode.  This is because QEMM-386 must be in an "ON" 
state to manage these sorted memory and memory filling. Windows turns 
QEMM-386 "OFF" when it starts up in Enhanced mode.  QEMM-386 does not 
have to be turned off when Windows is in Real or Standard modes, 
therefore machines that required these features could run in those 
modes.  If you are not sure whether your machine has differing speeds 
of memory, or has 640K of conventional memory, try the parameters 
anyway.  They will have no negative effect if they don't apply.

3.  If you are running QEMM-386 version 5.10 instead of 5.11 or 
later and you have a machine, such as a PS/2 or microchannel 
compatible , which has an extended BIOS data area, you must use 
the NOXBDA (NX) parameter so that the extended BIOS data area 
will not be moved.  QEMM-386 version 5.11 and later do not 
require this parameter and if you are a registered owner of QEMM 
5.10, you may obtain an update, at no charge to version 5.11 by 
sending a request for the update to Quarterdeck along with your 
registered serial number.  If you have not yet registered, you 
may request the update when you send in your registration card.  
Also, if you are getting paging errors from Windows, an upgrade 
to 5.11 may be necessary.  

PROBLEMS OR CRASHES WHILE RUNNING WINDOWS 
IN ENHANCED MODE:

Problems or crashes which occur while running Windows 3.0 in 
Enhanced mode are typically not the fault of QEMM-386, because 
while Windows is in Enhanced mode, QEMM is completely disabled.
In that state, QEMM-386 can neither cause problems or prevent 
them if they occur.  However there may be changes to the system 
which QEMM-386 has made before being disabled which may later 
cause problems for Windows.  If you encounter problems while 
running Windows, you should naturally consult with Microsoft 
Technical Support to see if they have a solution to the problem.

If you suspect that QEMM-386 is somehow involved, try disabling 
QEMM entirely (by putting the word "REM" before the line which 
loads the QEMM386.SYS driver in your CONFIG.SYS).  Leave all 
other resident programs or drivers installed and see if the 
problem persists.  If it does, then the problem is not related to 
QEMM.  If removing QEMM seems to correct the problem, restore 
QEMM and then try undoing some of the changes that QEMM has made.
For instance, try loading QEMM, but do not load any of your 
resident programs into high RAM.  Also, if you are using 
FILES.COM or BUFFERS.COM, try loading normal files and buffers.  
By the way, Windows 3.0 seems to require a minimum of at least 25 
file handles, so if you are allocating fewer than 25, increase 
the number.

WINDOWS 386 ENHANCED MODE CONFLICTS 
WITH OTHER SOFTWARE AND HARDWARE:

Windows 386 Enhanced mode may have conflicts with certain types 
of hardware, or software which are not related to QEMM-386.  
These problems are best addressed by consulting with Microsoft or 
the manufacturers of the problem hardware or software.  However, 
here are some of the areas where there might be conflicts:

1.  NETWORKS

Windows 3.0 currently supports ONLY the following networks:

     LAN Manager v1.0 or 100% compatibles
     LAN Manager v2.0 Basic or 100% compatibles
     LAN Manager v2.0 Enhanced or 100% compatibles
     Microsoft Network or 100% compatibles
     Novell Netware v2.1 or Netware 386*

*Note: Use with Netware requires that you use 3.01 of the IPX and 
NETx software.  Contact Novell for this.

If your LAN is not one of the above or a compatible, then it 
probably will not work properly with Windows.  Even if it is one 
of the above, there may be problems you may have to discuss with 
Microsoft or your LAN vendor.  Network support has been one of 
the problem areas of the initial release of Windows 3.0.

2.  EXPANDED MEMORY TSRs

If you are using TSRs before Windows which use expanded memory 
( disk caches, network drivers, ram disks or pop-up programs 
which swap themselves to expanded memory), these may not be 
compatible with Windows 3.0.  Microsoft publishes a document for 
software developers that lists a number of EMS functions which 
may not be exercised by programs that are resident before 
Windows.  In the past, some of these operations have been fairly 
commonplace, so it map prove that many TSRs that use expanded 
memory will be incompatible with Windows 3.0 -- at least in the 
enhanced mode.  If you encounter problems running TSRs that use 
expanded memory before Windows 3.0, you should contact the 
manufacturer of the TSR to see if the EMS functions they use meet 
the limitations as outlined by Microsoft.

3.  BUS-MASTERING DEVICES

Bus-mastering devices are ones which do their own direct memory 
addressing (DMA).  DMA is done without going through the 
machine's processor.  The most common bus-mastering devices we 
see currently are SCSI hard disk controllers, but technically, 
other types of devices could be bus-mastering as well.  

The problem with these devices is that they put data into 
absolute memory addresses and assume that the contents of those 
memory addresses will always remain constant.  However, when 
running Windows 3.0 in enhanced mode, this can often be 
an incorrect assumption.  In Enhanced mode, the same physical 
memory addresses can, at any given moment hold different data, 
depending on which virtual machine is current.

To run Windows 3.0 properly with these devices, you should obtain 
a driver from the manufacturer of the device which meets the VDS 
(Virtual DMA Services) specification.  With such a driver, 
Windows 3.0 should be able to operate with your bus-mastering 
device.

When you are not running Windows 3.0 in Enhanced mode, QEMM-386's 
DISKBUF (DB) parameter can be used to work around these problems.  
But again, since QEMM-386 must be disabled when Windows Enhanced 
mode is active, the DISKBUF parameter will have no effect.

IF WINDOWS RUNS SLOWLY IN ENHANCED MODE:

A full hard disk will probably impair Windows' paging ability and 
reduce the size and number of programs you can run in Windows. 
This symptom may look more pronounced with QEMM present.  If your 
operations in Windows seem to be slower than they were 
previously, or you find yourself running out of memory, check to 
be sure you have plenty of free disk space.  This should be at 
least 2MB (preferably more) on the drive that pointed to by the 
TEMP environment variable.  Speed may also be affected by 
fragmentation of your hard drive and in these cases, setting up a 
permanent Windows swap file, as outlined on page 522 of the 
Windows manual might be useful.

IF THE PRECEDING SUGGESTIONS FAIL:

In particularly difficult cases getting Windows 3.0 to run in 
Enhanced mode, here are some things to check and try:

1.  If the system has Shadow RAM, try QEMM-386's NOSHADOWRAM 
(NOSH) parameter.  If you are not sure, try it anyway.  The 
parameter will have no harmful effect if your system does not 
have Shadow RAM.

2.  Try using the X=F000-FFFF parameter to exclude any QEMM 
mapping in the F000-FFFF area.

3.  If, when starting Windows enhanced, you get a bunch of 
garbage on the display and beeping, and Windows goes back to the 
DOS prompt, check to see that there is a file called WINHIRAM.VXD 
in the QEMM directory, on your hard disk.  Be sure also that this 
file is identical to the one on the disk that contains the 
version of QEMM that you are currently running.  Versions of this 
file may be specific to the QEMM-386 version with which they 
shipped.

4.  Run the Windows SETUP program from the DOS prompt,(not the 
Setup which runs inside of Windows) and be sure you have properly 
identified your machine to Windows.  The default SETUP selection 
specifies "MS-DOS or PC-DOS System", and many users may tend to 
take this option.  However, Windows provides specific setups for 
many common PC compatibles like AST, NCR, NEC, Toshiba, Everex, 
and Hewlett-Packard.  Check this list if you are having problems.
If your machine is on the list, use that selection.

5.  Windows Enhanced mode may not like an EMS Page Frame at 9000.
Check the location of the frame by running QEMM.COM.  If the 
frame is at 9000, see if you can move it somewhere between C000 
and E000.  If 9000 was the default selected by QEMM, you may have 
to relocate installed hardware boards to free up a contiguous 64K 
memory block in high memory.  Be careful you are not forcing the 
Page Frame over an installed device, or you will also have 
problems.  If you have a Page Frame at 9000, problems are likely 
to show up when running DOS programs that use expanded memory in 
Windows 3.0 . 

6.  If you are running QEMM-386 v5.10 and have trouble running 
Novell's XMSNET, or anything that uses the XMS memory, before 
Windows enhanced, get the update to QEMM-386 v5.11.

7.  In some cases the following modifications to the Windows 3.0 
SYSTEM.INI file, which can be found in the WIN directory have 
proven to solve problems.  Edit the file with a text editor 
(Windows Notepad will do) and following the line that says 
"[386Enh]", add a line which says "DualDisplay=True", followed by 
a line which says "EMMExclude=E000-EFFF". 

8.  Some users have reported that they don't get print options 
inside Windows.  If you are having this problem, either remove 
the SET TEMP= environment variable that the Windows Setup program 
puts in your AUTOEXEC.BAT file, or make sure that the directory 
that it is pointing to actually exists and that there is space on 
the drive specified.  

9.  For problems running Windows standard or Windows real problems in 
DV, try changing our DVP's to load WIN /R or WIN /S instead of 
SYSTEM\KERNEL.EXE or SYSTEM\DOSX.EXE.

        Copyright (C) 1990 by Quarterdeck Office Systems
             * * *   E N D   O F   F I L E    * * * 
