ID:QM QEMM-386 Error Messages Quarterdeck Technical Note by Todd Threadgill The Quarterdeck Expanded Memory Manager-386 (QEMM-386) is an extremely sophisticated utility program and, as such, may encounter a wide number of situations that can cause errors. In this document, QEMM-386's error messages are outlined and discussed. We will also present various troubleshooting tips that should solve the problem leading to the error message. MESSAGE 1: "QEMM: Cannot load because there is not enough memory" This error message can appear for several different reasons, often on machines with a total of one megabyte of RAM (640K conventional + 384K extended). When QEMM-386 starts up, it finds all of the memory in your system and puts it into one big pool. Then it checks the parameters that were specified in the QEMM-386 command line in the CONFIG.SYS file. If there is not enough memory available to provide all of the services requested by the user as well as those that QEMM-386 performs by default, QEMM-386 will terminate with this error message. WHAT YOU CAN DO: Give QEMM-386 parameters that will cause it to use less memory. Such parameters include NOFILL (NO), and NOROM (NR). If you have specified the ROM parameter, remove it. Finally, you may need to exclude some of your usable High RAM areas - on a EGA/VGA system, try X=B000-B7FF; on a Hercules system the NV parameter should be sufficient. If your system has Shadow RAM, QEMM-386 can usually use it as well, so enabling the shadow RAM is a good idea when this message appears. (Note that QEMM-386 is not able to detect and use all types of Shadow RAM.) Finally, try removing any MEMORY= parameter that may be on the QEMM-386 device line in the CONFIG.SYS. The preferable solution for the problem is to install more memory in the computer. This will allow QEMM-386 to perform all of its memory-enhancing functions, while also providing more expanded memory for applications that need it. MESSAGE 2: "QEMM: Cannot load because the processor is already in Virtual 86 mode" The Intel 386 processor can run in one of three different modes: Real mode, Protected mode, and Virtual 8086 mode. When QEMM-386 starts up, its default settings tell it to place the processor in Virtual 86 mode. Only one program can do this, and since QEMM-386 is a "control program" -- that is, it takes control of the whole machine's operation -- it is forced by the design of the 80386 processor to become the program that places the machine into Virtual 86 mode. QEMM-386 will not load if some other program has already done this. WHAT YOU CAN DO: First check to make sure that QEMM-386 is the first line in your CONFIG.SYS file. If it is not, then move the QEMM-386 line to the beginning of the file and see if QEMM-386 will load. If QEMM-386 still refuses to load, or it was the first program to load in your CONFIG.SYS, then you should check your machine's BIOS settings. Sometimes the BIOS may have certain settings (these may appear in the BIOS setup as "extended features") that may need to be turned off. *** WARNING *** Your system's BIOS is a highly sophisticated piece of software. Quarterdeck does not recommend experimenting with BIOS settings unless you are familiar with your BIOS' operation. If you are the least bit unsure of how to make changes to your BIOS setup, seek the assistance of a hardware technician before continuing, or consult the documentation for your computer. MESSAGE #3: "QEMM: Cannot load because an expanded memory manager is already loaded." Only one expanded memory manager can be present on the computer at any one time. When QEMM-386 initializes, it checks to see if another expanded memory manager has already been loaded into the system. If it detects the presence of such a memory manager, it will abort with this error message rather than attempt to install itself. Since QEMM-386 is designed to provide all of the features you need in an expanded memory manager, the old expanded memory manager is no longer needed. WHAT YOU CAN DO: Check your CONFIG.SYS for another expanded memory manager, or place QEMM-386 on the first line of the CONFIG.SYS. Expanded memory managers tend to have the letters "EMM" or "EMS" in their names, so if you see a line that looks like this: DEVICE=C:\REMM.SYS or DEVICE=C:\EMM.SYS or DEVICE=C:\EMS.SYS or DEVICE=C:\CEMM.EXE remove the line from the CONFIG.SYS file. MESSAGE #4: "QEMM: Unknown Microchannel Adapter ID: XXXX" On Microchannel computers, each installed adapter has its own ID number. This number is a four-digit alphanumeric code. When QEMM-386 initializes during boot-up, it notes the names of all of the adapters that are present and compares them to a list of adapters contained in its MCA.ADL file. If an adapter is present that is not listed in the MCA.ADL file, QEMM-386 will display the above error message. WHAT YOU CAN DO: Add the Microchannel Adapter ID information to your MCA.ADL file, following the information listed in Appendix D of the QEMM-386 manual. Alternatively, you may print out the @XXXX.ADF file (where XXXX represents the four-character alphanumeric code that appears in the error message) and fax it to Quarterdeck at (213) 399- 3802. We'll be happy to send you the additions you need to make or to translate your adapter's settings into the format needed by QEMM-386. Also, updated MCA.ADL files are available on CompuServe, BIX, and Quarterdeck's own Bulletin Board System - (213) 396-3904. MESSAGE #5: "QEMM: Cannot load because this is not an 80386." When QEMM-386 initializes, it checks the machine to ensure that a 386/486 processor is present. QEMM-386 cannot run on 80286, 8088, or 8086 machines. WHAT YOU CAN DO: If QEMM-386 displays this error on a 386/486 machine, you should re-install QEMM-386. If the message still appears, you should obtain a new copy of QEMM-386 and try again. MESSAGE #6: "QEMM: Cannot load because there is no room for a Page Frame." In order to create and utilize expanded memory, QEMM-386 must create a page frame that is 64K in size. By default, QEMM-386 attempts to put the page frame between A000 (640K) and F000 (960K). However, some configurations prevent QEMM-386 from placing a page frame above A000 by splitting, or fragmenting, the unused areas above A000 into chunks that are less than 64K in size. If QEMM-386 cannot place the page frame above A000, it will attempt to place it in conventional memory. When it cannot create a page frame at all, QEMM-386 will display the above error message. WHAT YOU CAN DO: Try re-arranging any adapters so that a 64K area above A000 is unused. This may involve changing physical switch settings on your machine's adapters, or, on PS/2 and other Microchannel machines, this will entail using the Reference Diskette. If rearranging the adapters' locations above A000 is not possible, remove any exclusions (X=xxxx-xxxx) statements that reference areas between 0000 and 9FFF. MESSAGE #7: "LOADHI: The high memory chain is corrupted!" QEMM-386 uses a collection of high memory areas called a "memory chain" to keep track of the TSR's and device drivers that are loaded high by the LOADHI programs. If there is a conflict in high memory, this chain can become corrupted. WHAT YOU CAN DO: This error message is usually accompanied by an address (for example, C800). You can frequently resolve the conflict with an exclusion on the QEMM-386 device line in the CONFIG.SYS file. Also, it is possible that other drivers or programs that are being loaded in the CONFIG.SYS or AUTOEXEC.BAT may be corrupting the high memory chain, in which case you should clean out your CONFIG and AUTOEXEC of any device drivers or TSR's that aren't absolutely vital to your machine's operation, then replace each line of each file, one at a time, until the conflicting driver or TSR is discovered. MESSAGE #8: "LOADHI: Cannot write to log file." Usually this error appears when there is a copy of the QEMM386.SYS device driver in the root directory of the hard drive, as well as in the QEMM subdirectory. This can cause confusion when loading high. WHAT YOU CAN DO: Make sure that QEMM386.SYS is only found in the QEMM subdirectory, and that the QEMM-386 device line in the CONFIG.SYS file specifically points to that subdirectory (i.e. DEVICE=C:\QEMM\QEMM386.SYS, vs. DEVICE=QEMM386.SYS). Copyright (C) 1991 by Quarterdeck Office Systems * * * E N D O F F I L E * * *