home *** CD-ROM | disk | FTP | other *** search
- ID:QM QEMM-386 / LOADHI Error Messages
- Quarterdeck Technical Note #192
- by Todd Threadgill
- last revision: January 31, 1992
-
- 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: "QEMM386: 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: Be sure to remove any EXTMEM (EXT) or MEMORY (MEM)
- parameters that may reside on the QEMM386.SYS device line, as these
- parameters can easily prevent QEMM from loading when set incorrectly.
- Give QEMM-386 parameters that will cause it to use less memory. Such
- parameters include NOFILL (NO), NOROM (NR), and MAPS=0. If you have
- specified the ROM parameter, remove it. Also, 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.) The preferable
- solution to this 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: "QEMM386: 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 computer'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: "QEMM386: 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:\DOS\EMM386.EXE
- or 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: "QEMM386: 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 (310) 314-3217. 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 - (310) 314-3227.
- Quarterdeck also offers a Technical Note that discusses the MCA.ADL file
- in detail. You may obtain this document, MCA.TEC, through Quarterdeck's
- Q/FAX service -- call (310) 314-3214 from your fax machine and download
- document #223.
-
-
- MESSAGE #5: "QEMM386: Cannot find file MCA.ADL."
-
- With this message the QEMM386.SYS device driver is reporting that it cannot
- find the MCA.ADL file that it uses to determine memory locations used by
- adapter cards in Microchannel machines (see message above). QEMM386.SYS looks
- for MCA.ADL in the directory from which it was loaded in the CONFIG.SYS file
- (e.g. if your CONFIG.SYS contains a line that reads
- DEVICE=C:\QEMM\QEMM386.SYS, QEMM will look in the C:\QEMM directory for the
- MCA.ADL file).
-
- WHAT YOU CAN DO: Ensure that the MCA.ADL file is located in the
- directory that is specified on the QEMM386.SYS device line in your
- CONFIG.SYS file.
-
- MESSAGE #6: "QEMM386: 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. SPECIAL NOTE FOR 386 ADD-IN
- BOARD OWNERS: This error message may appear if QEMM386.SYS appears in the
- CONFIG.SYS file before the driver for your particular 386 add-in board.
- Put the board's driver before QEMM386.SYS in the CONFIG.SYS and the
- problem should go away.
-
- MESSAGE #7: "QEMM386: 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 #8: "QEMM386: Cannot load because QEMM is already loaded."
-
- QEMM-386 is a control program, that oversees virtually all aspects of the
- computer's operation. By definition there can only be one control program in
- charge of the system at any one time. As a result, QEMM-386 cannot be loaded
- on top of itself. QEMM-386 is intelligent, and can detect its own presence
- while loading. If it sees that it has already been loaded, it will abort with
- the above error message.
-
- WHAT YOU CAN DO: This error will only result if you have multiple lines
- in your CONFIG.SYS file that load the QEMM386.SYS device file. By
- removing all but one of these lines you will solve the problem.
-
-
- MESSAGE #9: "QEMM386: Disabling StealthROM:F because the page frame does not
- overlap any ROM."
-
- QEMM-386 Version 6.0's new Stealth technology "hides" ROM areas above 640K and
- allows them to be used as either High RAM or part of the EMS page frame. In
- order to use STEALTHROM:F, the page frame must be located atop a Stealthed ROM
- area. By default, QEMM will do its best to place the page frame properly.
- However, if the page frame has been explicitly set (by using QEMM's FRAME=
- parameter) at an address that is not occupied by a ROM, or if all ROMS have
- been excluded with the X= parameter, QEMM will disable ST:F and continue. This
- may result in an overall reduction of the amount High RAM created by QEMM-386.
-
- WHAT YOU CAN DO: Remove the FRAME= parameter from your QEMM386.SYS
- device line in your CONFIG.SYS file. If there are no FRAME= parameters
- on the device line, check for exclusions (EXCLUDE= or X= parameters) that
- may be "covering" ROM areas, remove them, and try again.
-
-
- MESSAGE #10: "QEMM386: Disabling StealthROM:M because there is no page
- frame."
-
- A page frame is required in order to use the ST:M parameter and take full
- advantage of Stealth.
-
- WHAT YOU CAN DO: Check your QEMM386.SYS device line in your CONFIG.SYS
- file for the following parameters:
-
- FRAME=NONE (FR=NONE)
- NOEMS
- FRAMELENGTH=x (FL=x) -- where x is a value less than 4
-
- If your QEMM386.SYS device line contains any of the above parameters,
- Stealth will be automatically disabled. To use Stealth, remove the
- appropriate parameters.
-
-
- MESSAGE #11: "QEMM386: Disabling Stealth because QEMM could not locate the
- ROM handler for INT xx."
-
- For best results when using Stealth, QEMM-386 must monitor some interrupts at
- all times. When these interrupts have been diverted by a program, QEMM-386
- will disable Stealth. As a result QEMM-386 should usually be loaded on the
- first line of your machine's CONFIG.SYS file, and this is practical in the
- vast majority of configurations. However, there are times when it is
- desirable to load other device drivers before QEMM386.SYS. When doing this,
- some device drivers may make it impossible for Stealth to "see" all of the
- activity in the machine, and problems can result.
-
- WHAT YOU CAN DO: If possible, place the QEMM386.SYS device line at the
- beginning of your CONFIG.SYS file. If this is not possible, use
- HOOKROM.SYS (included with QEMM-386 version 6.0 and later) -- this device
- driver must be placed at the beginning of the CONFIG.SYS file!
- HOOKROM.SYS acts as a secretary for QEMM-386, taking notes about the state
- of the machine as the CONFIG.SYS is processed, and then passing these
- notes to QEMM-386 so that it can operate properly with Stealth active.
- Please see the READ.ME file included with QEMM-386 for more information
- about HOOKROM.SYS.
-
- MESSAGE #11: "Cannot load because QEMM is not registered.
- Run the INSTALL program to register."
-
- The files on the QEMM-386 product diskette must be installed by running the
- INSTALL program -- they will not function properly when copied over by DOS'
- COPY command.
-
- WHAT YOU CAN DO: Run the INSTALL program from the QEMM-386 product
- diskette.
-
-
- MESSAGE #12: "CONTEXTS is no longer a QEMM parameter!" or
- "NAMES is no longer a QEMM parameter!"
-
- QEMM-386 versions 4.23 and earlier featured a CONTEXTS parameter, which allowed
- users to specify the maximum number of mapping contexts that QEMM-386 could
- save at one time. Mapping contexts are now determined by the number of HANDLES
- provided by QEMM-386 (ranging from 16 to 255, 64 by default). Similarly, it was
- determined that the function of the NAMES parameter (also from QEMM-386
- versions 4.23 and earlier), which specified the maximum number of named
- handles, could be included into the HANDLES parameter. As a result the CONTEXTS
- and NAMES parameters were determined to be superfluous and were abandoned in
- QEMM-386 version 5.0 and later.
-
- WHAT YOU CAN DO: Remove the CONTEXTS=xxx and MAPS=xxx parameters from
- your QEMM386.SYS device line in your CONFIG.SYS file.
-
-
- MESSAGE #13: "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 TSRs that aren't absolutely vital to your machine's operation,
- then replace each line of each file, one at a time, rebooting each time
- you make a change, until the conflicting driver or TSR is discovered.
-
-
- MESSAGE #14: "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).
-
-
- ************************************************************************
- *This technical note may be copied and distributed freely as long as it*
- *is distributed in its entirety and it is not distributed for profit. *
- * Copyright (C) 1990-2 by Quarterdeck Office Systems *
- ************************ E N D O F F I L E *************************
-
-