Ref: 22140006 Title: Problems with QEMM 5.1, Windows 3.0a, and DOS Workstations Date: 03/18/91 Copyright 3Com Corporation, 1991. All rights reserved. A problem has been noted using Quarterdeck's QEMM386 memory manager and Microsoft Windows 3.0a in enhanced mode. Workstations will display the Windows start screen and then dump back to DOS. Here are two possible causes and their workarounds: Possible cause #1: There may be a conflict between the video card and QEMM--the video card may be using an "extra" 32 KB of memory to perform bank switching for increased speed or resolutions. QEMM does not expect this and maps that region (usually between B000-B7FF) as high memory. When Windows tries to start up, the video card up goes after the extra 32 KB, finds it has been taken over by QEMM, and crashes. The solution to this problem is to insert the line "x=B000-B7FF" in the QEMM386 options and reboot. This will not allow QEMM to map the 32 KB region. Possible cause #2: If the version of QEMM386.SYS is time-stamped 5:10 AM, 5:11 AM or 5:12 AM (corresponding with release versions 5.10, 5.11, and 5.12), QEMM386.SYS will need a patch. Note: The patch *must* be applied to STANDARD MODE Win 3.00a users. The patch is required because, starting with QEMM-386 5.00, QEMM-386 supports both EMS (Expanded Memory Specification), which governs access to expanded memory, and XMS (Extended Memory Specification), which governs access to extended memory. Requests for EMS and for XMS memory are both filled from the same pool of QEMM-managed memory, and EMS and XMS "handles" are managed together by QEMM-386. (Handles are numbers returned to a program by the memory manager when the program takes a chunk of memory, so that the program can quickly identify the chunk when it next communicates with the memory manager.) Both EMS and XMS contain a call that programs can use to reallocate blocks of memory; that is, to take a handle that the program has already received and increase or decrease the chunk of memory to which the handle refers. Users of QEMM-386 versions 5.00 through 5.12 may sometimes experience system instability when a program makes an EMS or XMS call to increase the size of a handle. The symptom is likely to be a system crash or a reboot. Users of versions of QEMM-386 after version 5.12 should not experience this problem. To patch QEMM386.SYS versions 5.10, 5.11, or 5.12, follow these steps: Caution: Do NOT use this patch for QEMM-386 5.00. 1. Make a backup copy of the QEMM386.SYS file in your QEMM directory. COPY C:\QEMM\QEMM386.SYS C:\QEMM\QEMM386.OLD (If your QEMM386.SYS is not located in the QEMM directory of the C drive, change the path accordingly.) 2. Go to the DOS directory on the hard disk. Type DEBUG C:\QEMM\QEMM386.SYS and press Enter. (If your QEMM386.SYS is not located in the QEMM directory of the C drive, change the path accordingly.) You should see the DEBUG prompt, which is a hyphen. 3. At the DEBUG prompt, type S 100 L F000 75 6 1 0E and press Enter. DEBUG should return a segment address and an offset: xxxx:yyyy 4. At the DEBUG prompt, use the segment address and offset that was returned in step 3 to give the DEBUG command: E xxxx:yyyy EB Press Enter. The DEBUG prompt will return. 5. At the DEBUG prompt, type W and press Enter. DEBUG will announce that it is writing a certain number of bytes, then it will return the DEBUG prompt. 6. At the DEBUG prompt, type Q and press Enter to exit DEBUG and return to DOS. 7. To double-check your patch, type the following from the DOS prompt in your DOS directory: COMP C:\QEMM\QEMM386.SYS C:\QEMM\QEMM386.OLD (If your QEMM386.SYS is not located in the QEMM directory of the C drive, change the path accordingly.) Press Enter. COMP should return: C:QEMM386.SYS and C:QEMM386.OLD Compare error at OFFSET xxxx File 1 = EB File 2 = 75 Eof mark not found Compare more files (Y/N)? (The value xxxx after OFFSET will vary, depending on the version of QEMM 5.1.) The message indicates that there is exactly one byte difference between the files, and the differing byte is EB in QEMM386.SYS and 75 in QEMM386.OLD. If COMP returns the message "Files compare ok" then you probably did not use DEBUG's W command to save your change, or you have compared the wrong files. If COMP returns more than one compare error, or if the bytes returned by the compare error do not match those in the above example, the procedure has failed. In this case, use the DOS command "COPY C:\QEMM\QEMM386.OLD C:\QEMM\QEMM386.SYS" to restore the original file, and follow steps 1-7 again. If the patch was successful, reboot the system and test the patched version of QEMM386. If the patched version of QEMM386 fails, restore your original copy and follow steps 1-7 again.