QEMM and 386MAX: Functionality and Compatibility with CVLast reviewed: July 17, 1997Article ID: Q75043 |
3.00 3.11 3.14 4.00 4.01 4.05 4.10
MS-DOS
kbtool
The information in this article applies to:
SUMMARYThe Quarterdeck Expanded Memory Manager (by Quarterdeck Office Systems), otherwise known as QEMM386, and 386MAX (by Qualitas) are memory managers providing support for expanded and VCPI-extended memory, the High Memory Area (HIMEM), and Upper Memory Blocks for machines using the 80386 or 80486 processor. Some customers have reported difficulties loading CodeView versions 3.x into extended memory when running under these managers. This article deals with the errors, difficulties, and solutions regarding compatibility issues among CodeView, QEMM, and/or 386MAX.
MORE INFORMATIONThe first thing to check is the version of CodeView in use. CodeView version 3.0 is not VCPI (Virtual Control Program Interface) compatible, and therefore cannot be loaded into extended memory when QEMM or 386MAX is resident. If you are using CodeView 3.0, you should upgrade to a later version that is VCPI-compatible. To make CodeView VCPI compatible, a change was necessary to allow access to the memory manager using that management scheme. Since VCPI is a superset of LIM 4.0, the first thing CodeView does is make a call to the LIM driver to determine if it exists. This call actually attempts to establish a 64K page frame. If this is not possible, CodeView assumes there is no VCPI driver and looks for other methods to load itself and the symbol table. The most common mistake with QEMM is to use either the FRAME=NONE or the NOEMS switch. In both cases, CodeView can't allocate the 64K EMS page frame it requires. The same problem occurs when using 386MAX with the NOFRAME or EMS=0 switch. The other switches in QEMM and 386MAX are compatible with CodeView. Care must be taken, however, to ensure that the allocation scheme leaves enough VCPI memory for CodeView. For example, if QEMM (or 386MAX) is configured so that there are four megabytes (MB) of extended memory available and no expanded memory, and a RAM drive is loaded to take up 3.5 MB, CodeView will not be able to load because there will not be enough available extended memory. Note that this is the simplest case and that there are many options and combinations of options that could cause this type of problem. The examples below illustrate various command-line options for CodeView, QEMM, and 386MAX along with the resultant output. Notes:
CV1301 Error: /X: CPU in protected or virtual mode
CONFIG.SYS with QEMM -> device=c:\qemm\qemm386.sys NOEMS CONFIG.SYS with QEMM -> device=c:\qemm\qemm386.sys FRAME=NONE CONFIG.SYS with 386MAX -> device=c:\386max\386max.sys EMS=0 command line -> cv /x test.exe CV1304 Error: /E: EMM driver not loaded
CONFIG.SYS with QEMM -> device=c:\qemm\qemm386.sys NOEMS CONFIG.SYS with QEMM -> device=c:\qemm\qemm386.sys FRAME=NONE CONFIG.SYS with 386MAX -> device=c:\386max\386max.sys EMS=0 command line -> cv /e test.exe CodeView hang at load time
CONFIG.SYS with QEMM -> device=c:\qemm\qemm386.sys FORCEEMS CONFIG.SYS with 386MAX -> device=c:\386max\386max.sys NOFRAME command line -> cv {/x | /e | /d} test.exe CodeView successfully loaded into extended memory
CONFIG.SYS with QEMM -> device=c:\qemm\qemm386.sys CONFIG.SYS with 386MAX -> device=c:\386max\386max.sys command line -> cv {/x} test.exe CodeView successfully loaded into expanded memory
CONFIG.SYS with QEMM -> device=c:\qemm\qemm386.sys CONFIG.SYS with 386MAX -> device=c:\386max\386max.sys command line -> cv /e test.exeCodeView successfully loaded using disk overlays or gives an "Out of Memory" error for large applications
CONFIG.SYS with QEMM -> device=c:\qemm\qemm386.sys NOEMS CONFIG.SYS with QEMM -> device=c:\qemm\qemm386.sys FRAME=NONE CONFIG.SYS with 386MAX -> device=c:\386max\386max.sys EMS=0 command line -> cv test.exe CONFIG.SYS with QEMM -> device=c:\qemm\qemm386.sys CONFIG.SYS with QEMM -> device=c:\qemm\qemm386.sys NOEMS CONFIG.SYS with QEMM -> device=c:\qemm\qemm386.sys FRAME=NONE CONFIG.SYS with 386MAX -> device=c:\386max\386max.sys CONFIG.SYS with 386MAX -> device=c:\386max\386max.sys EMS=0 command line -> cv /d test.exe |
Additional reference words: kbinf kbinf 3.00 4.00 4.10 QEMM-386 386-MAX
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |