home *** CD-ROM | disk | FTP | other *** search
-
- Exception #13 Advanced Troubleshooting
-
-
- This QEMM 7 technote is an abridged version of a technical
- bulletin that is available through our standard support channels.
- The information contained in this version pertains ONLY to QEMM
- version 7.0. If you need information relating to earlier versions
- of QEMM you can obtain the unabridged version from the following
- sources:
-
- Quarterdeck Technical Support BBS: EX13FLOW.TEC
- CompuServe: EX13FL.ZIP
- Q/FAX: #232
-
-
- Subject: A step-by-step, flowchart-like procedure for solving
- problems that generate Exception #12 or Exception #13 error
- messages.
-
-
- YES, this document IS long. PLEASE do not be intimidated by its
- length, as you will only need to refer to portions of it.
-
- PLEASE NOTE: Unless otherwise indicated, all references to the
- 80386 processor apply to any 386 OR HIGHER processor.
- ------------------------------------------------------------------
- Exception errors occur when your 80386 or higher processor
- receives an invalid instruction. QEMM has been designed to
- capture these exception errors and display them to you. If you
- were using a 386 computer WITHOUT QEMM, the same error would
- occur but your system would very likely hang as a result with no
- warning. If you are interested in a detailed, technical
- explanation of Exception Errors, refer to our technical bulletin
- EXCEPT13.TEC. You do not need an in-depth knowledge of the
- causes of such errors, however, in order to deal with them.
- ----------------------------------------------------------------
- This technical note will help you troubleshoot and fix most
- Exception #13 problems. We have included an example scenario for
- you to follow in order to make this technote as "user friendly"
- as possible. This troubleshooting procedure will take several
- steps to complete and you will be instructed to skip ahead to
- different sections depending on the results of previous steps.
- PLEASE FOLLOW ALL INSTRUCTIONS CAREFULLY. At the end of each
- step you will see three question marks (???) followed by a
- question. The answer to each question determines the next step
- you must follow.
-
- This Technote follows the same EXACT procedures our technical
- support staff uses to troubleshoot Exception #13 problems with
- QEMM.
-
- EXAMPLE Exception #13 PROBLEM SCENARIO: "I've installed QEMM and
- have run the OPTIMIZE program to load my TSRs and device drivers
- into High RAM. I'm running a scanner program from my network
- drive (drive F:). I get into the scanner program without a
- problem, but every time I start scanning I get an 'Exception #13'
- error and my system crashes."
-
- SCENARIO ASSUMPTIONS: QEMM has been loaded onto the local C:
- drive and QEMM is installed in the C:\QEMM subdirectory.
-
- (STEP 1)
-
- TRY TO RECREATE THE PROBLEM WITHOUT QEMM INSTALLED
- --------------------------------------------------
- QEMM will report an Exception #13 error message regardless of the
- cause of the error. We need to reboot your system WITHOUT QEMM
- and try to recreate the problem to determine if QEMM is involved.
- If QEMM is NOT loaded on your system and the software STILL has
- problems, then QEMM is not involved with the error and you will
- need to consult the documentation or contact the makers of the
- software that is making your system crash.
-
- ??? Does your program need expanded memory in order to operate
- properly? If so, please go to STEP 2. (Otherwise proceed with
- this STEP). Proceed with this step if you are uncertain if your
- program uses expanded memory.
-
- We will need to reboot your computer without QEMM loaded. To
- accomplish this, hold down the <Alt> key immediately after you
- hear a beep on bootup. QEMM will post a message telling you to
- press <Escape> to unload QEMM, or any other key to continue with
- QEMM. Press <Escape>, and run your Setup program. If you are
- using the DOS-UP feature from QEMM version 7.0 you will first see
- a message asking if you want to unload DOSDATA. Press <Escape> to
- unload DOS-UP, then hold down the <Alt> key again until you see
- the message telling you to press <Escape> to unload QEMM. Once
- you computer has rebooted without QEMM, try to recreate the
- Exception #13 problem.
-
- ??? If you do not have enough memory to run your program, go to
- STEP 2.
-
- ??? If the problem still exists, go to STEP B.
-
- ??? If the problem goes away, go to STEP 2.
-
- (STEP 2)
-
- QUICK-FIX TROUBLESHOOTING PARAMETERS FOR QEMM
- ---------------------------------------------
- This second step is intended for the advanced QEMM user who is
- familiar and comfortable with editing and adding parameters to
- the QEMM386.SYS line of the CONFIG.SYS file. If you are not
- familiar with this process, please skip ahead to STEP 3 now,
- where you will be given examples about how to edit and add
- parameters to QEMM.
-
- If the following two scenarios do not apply to your Exception #13
- problem or do not help RESOLVE the problem, then please go to
- STEP 3 (the next step) and remove the parameters specified below.
-
- Scenario #1: If, when your machine crashes, you notice that the
- video text or graphics is altered (you see a blank screen, part
- of the screen is altered, strange lines are displayed across the
- screen, the colors change) add the following parameters to the
- end of the QEMM386.SYS line of the CONFIG.SYS file:
-
- X=A000-C7FF VF:N VR:N
-
- Scenario #2: If, when your machine crashes, you notice that the
- hard disk (or floppy disk or CD-ROM) is being accessed, add the
- following parameters to the end of the QEMM386.SYS line of the
- CONFIG.SYS file:
-
- X=F000-FFFF X=C800-CFFF DB=4 ROM
-
- (If you already had the ROM parameter at the end of the
- QEMM386.SYS line, then REMOVE it from the QEMM386.SYS line at
- this time. If the scenario #2 parameters resolve your problem,
- try removing the X=C800-CFFF parameter. (Keep the other 3
- parameters for now.) If the problem now occurs, then put back
- the X=C800-CFFF parameter. Next try removing DB=4. If the
- problem does not reoccur, you do not need that parameter. If it
- does, then you do need it.
-
- If the above parameters eliminated the problem, refer to the
- instructions in STEP 6 to narrow down the areas of High RAM that
- must be excluded and reclaim as much High RAM as possible.
-
- (STEP 3)
-
- DETERMINING THE FREQUENCY OF THE PROBLEM
- ----------------------------------------
- Troubleshooting Exception #13 errors can be difficult if the
- problem occurs infrequently -- for instance, every couple of
- days/weeks with no discernable pattern. In order to troubleshoot
- ANY problem, you must be able to reproduce it. Otherwise, how
- can you know it is fixed when you fix it?
-
- If the Exception #13 error occurs every time you run a particular
- application or you have been experiencing Exception #13 errors
- regularly with a given application, then we can attempt to
- troubleshoot the problem systematically. If the problem occurs
- frequently, please go to STEP 4. If the problem is not frequent,
- you must try to determine a pattern by which you can recreate the
- error on a frequent basis and then proceed with this technote.
-
- PLEASE NOTE: Crashes which occur infrequently are usually
- hardware related problems. These random crashes cannot be
- resolved by reconfiguring or removing QEMM.
-
- (STEP 4)
-
- DETERMINING WHETHER STEALTH ROM IS INVOLVED
- -------------------------------------------
-
- In version 6.00 of QEMM, Quarterdeck introduced the Stealth ROM
- feature which can create nearly 100K more High RAM than earlier
- versions (or up to 115K more on PS/2 systems.) The Stealth ROM
- feature is invoked with the parameter ST:M or ST:F on the
- "DEVICE=C:\QEMM\QEMM386.SYS ..." line of your CONFIG.SYS file
- (located in the root directory of your bootup drive). Your
- Exception #13 problem may be related to the Stealth ROM feature
- of QEMM, if you are using it. Check your CONFIG.SYS file for the
- ST:M or ST:F parameter.
-
- ??? If the QEMM386.SYS line DOES NOT have the ST:M or ST:F
- parameter, go on to STEP 5.
-
- If you are using Stealth ROM, we need to remove all Stealth-
- related parameters (ST:M, ST:F, XST=, XSTI=, DBF=, FSTC, FRAME=)
- to test whether Stealth ROM is involved with your Exception #13
- problem. Here is an example:
-
- DEVICE=C:\QEMM\QEMM386.SYS R:1 RAM ROM X=D000-D3FF ST:M XST=C000
- <---delete-->
-
- Edit your CONFIG.SYS file and remove the Stealth-related
- parameter(s), then reboot your computer and try to recreate the
- Exception #13 error.
-
- ??? If the problem still exists, please go to STEP 5.
-
- ??? If the problem goes away, it was due to a conflict with
- Stealth ROM. At this point you should refer to our technical
- bulletin STEALTH.TEC, a troubleshooting guide for Stealth-related
- problems. This technote was installed in your QEMM\TECHNOTE
- directory when you installed QEMM 7.
-
- (STEP 5)
-
- DETERMINING THE MEMORY LOCATION OF THE EXCEPTION #13 ERROR
- ----------------------------------------------------------
- The memory address at which the Exception #13 error occurred may
- give us a clue as to what is causing the problem. The following
- is an example of an Exception #13 error message:
-
- QEMM: Exception #13 at C9F6:0173. <---------------------
- Error code: 0000
- AX=240A BX=0000 CX=0000 DX=0000 SI=0000 DI=0000 BP=0001
- DS=29F6 ES=29F6 SS=29F6 SP=D4F9 Flags=7202
- Instruction: 6F 72 20 72 65 61 64 69 6E 67 20 2E 53 59 4D
- Do you want to (T)erminate the program, (R)eboot,
- or disable QEMM and try to (C)ontinue?
-
- We are only concerned with the first line which gives us the
- address at which the error occurred. The address is always
- represented by four digits followed by a colon and four more
- digits. (XXXX:YYYY) In this case the address is C9F6:0173. We
- are only concerned with the XXXX number (in our example C9F6).
-
- ??? If the Hexadecimal number of XXXX is in the range from:
-
- 0000 through 9999 go to STEP 7.
- A000 through FFFE go to STEP 6.
- FFFF go to STEP 7.
-
- (STEP 6)
-
- AVOIDING HIGH RAM CONFLICTS
- ---------------------------
- Exception #13 errors in the range from A000 up to FFFE are
- located in the upper memory area between 640K and 1024K. They
- are usually caused by one of the following:
-
- The first situation involves a bus-mastering device (usually a
- SCSI drive controller or network card) which conflicts with
- areas of High RAM. Some of these devices come with a driver
- (called a VDS driver) written by the manufacturer. VDS
- drivers prevent memory conflicts between bus-mastering devices
- and memory managers.
-
- The second situation relates to conflicts between QEMM and an
- adapter ROM (or RAM) which are both trying to use the same
- memory addresses. For example: If you have a network card
- that takes up 16K of memory and QEMM fails to detect this,
- QEMM will create High RAM in the SAME memory location the
- network card is using. If your software then tries to access
- the network card, the network ROM/RAM code will not be found.
- (Instead, your software will try to execute the contents of
- the High Ram area, into which another program may be loaded,
- causing your machine to crash.)
-
- Adding the following two parameters to the QEMM386.SYS device
- line in of your CONFIG.SYS file can help in either case:
-
- 1) DB=4 [This parameter can solve problems with bus-mastering
- hard drive controller cards. It will not help if the bus-
- mastering device is something OTHER than a hard drive controller.
- In such cases your only recourse is to obtain a VDS driver from
- the manufacturer.]
-
- NOTE: Beginning with version 7.0, QEMM (by default) creates a
- 2K disk buffer (the equivalent of adding DB=2 to the QEMM
- line) when it detects a bus-mastering hard drive controller.
- There are situations under which such a device will not be
- detected, however.
-
- 2) Use one of the following:
-
- 'X=A000-AFFF' if the error occurs in the range of A000-AFFF or
- 'X=B000-BFFF' if the error occurs in the range of B000-BFFF or
- 'X=C000-CFFF' if the error occurs in the range of C000-CFFF or
- 'X=D000-DFFF' if the error occurs in the range of D000-DFFF or
- 'X=E000-EFFF' if the error occurs in the range of E000-EFFF or
- 'X=F000-FFFF' if the error occurs in the range of F000-FFFF
-
- Here is an EXAMPLE of what your QEMM device line looks like:
-
- DEVICE=C:\QEMM\QEMM386.SYS RAM AROM=C800-CBFF
-
- Using the EXAMPLE Exception #13 memory address from the last
- STEP, (at C9F6), we will edit the line as follows:
-
- DEVICE=C:\QEMM\QEMM386.SYS RAM AROM=C800-CBFF DB=4 X=C000-CFFF
-
- Save the CONFIG.SYS file. Now reboot your machine and try to
- recreate the Exception #13 problem.
-
- ??? If the problem still exists, go to STEP 7.
-
- ??? If the problem goes away, try removing the DB=4 parameter
- from the QEMM386.SYS line. If your machine crashes, then
- obviously you need this parameter. You may want to contact the
- manufacturer of the bus-mastering device to inquire about a VDS
- driver, which is a preferable solution. For a detailed
- description of VDS drivers and bus-mastering devices, refer to
- BUS-MAST.TEC technote. (See STEP 4 for information on obtaining
- technical bulletins.)
-
- Next try removing the X=C000-CFFF parameter (remember, the 'C' is
- an example. You may be using 'A','B','D','E', or 'F' instead. If
- your machine crashes, then obviously you need this parameter. If
- so, we will try to narrow down this area (which is 64K, a
- significant amount of memory) in order to create as much High RAM
- as possible.
-
- The best way to determine which area(s) should be excluded is to
- run QEMM's Analysis procedure. For a detailed description of
- Analysis, refer to chapter nine of your QEMM manual or see our
- technical bulletin EXCLUDE.TEC. Once you have performed an
- Analysis of your system and determined which area(s) need to be
- excluded, you should rerun Optimize.
-
- (STEP 7)
-
- CREATE A CLEAN ENVIRONMENT FOR QEMM
- -----------------------------------
- To determine whether QEMM is involved in the problem, we must
- create a clean environment by removing ALL lines from the
- CONFIG.SYS and AUTOEXEC.BAT files which are not necessary to
- create problem.
-
- First, make back-up copies of your CONFIG.SYS and AUTOEXEC.BAT
- files (which are located in the root directory) because we are
- going to modify these files. At the DOS prompt type:
-
- 1) C:
- 2) CD\
- 3) COPY CONFIG.SYS CONFIG.OLD
- 4) COPY AUTOEXEC.BAT AUTOEXEC.OLD
-
- Now edit your CONFIG.SYS file so that only the lines that are
- ABSOLUTELY necessary to recreate the Exception #13 error remain.
- You need the QEMM386.SYS line and the FILES= line as a minimum,
- but you should delete every other line unless it is ABSOLUTELY
- needed to recreate the problem.
-
- The following is an example CONFIG.SYS file for our example:
-
- #1 DEVICE=C:\QEMM\QEMM386.SYS RAM AROM=C800-CBFF
- 2 DEVICE=C:\UTIL\CACHE.SYS
- #3 FILES=25
- 4 BUFFERS=30
- #5 DEVICE=C:\QEMM\LOADHI.SYS /R:2 C:\SCAN\SCANNER.SYS 256
- 6 DEVICE=C:\DOS\ANSI.SYS
- 7 DEVICE=C:\FAXING\FAX.SYS
- #8 SHELL=C:\COMMAND.COM /P /E:768
- #9 DEVICE=C:\QEMM\LOADHI.SYS /R:3 C:\NETW\NETWORK.SYS
- 10 STACKS=0,0
-
- The # indicates lines which are ABSOLUTELY necessary to include
- in the CONFIG.SYS file in order to recreate the example problem.
- At this time you may want to refer to the example problem
- scenario located on the first page of this technote.)
-
- line 1) We NEED the QEMM driver to recreate the problem.
- line 2) A disk cache IS NOT necessary to recreate the
- problem.
- line 3) We NEED to include the FILES= statement.
- line 4) The BUFFERS statement IS NOT needed.
- line 5) The scanner IS part of our problem.
- line 6) ANSI.SYS IS NOT needed to recreate the problem.
- line 7) The fax board has NOTHING to do with the problem.
- line 8) The SHELL= statement tells DOS where the command
- processor is.
- line 9) We NEED to log on to the network to run the scanner
- program.
- line 10) The Stacks statement IS NOT necessary.
-
- If you are not sure if a line is absolutely necessary in your
- CONFIG.SYS or AUTOEXEC.BAT files, check your DOS manual or the
- documentation that came with your hardware and software for
- information.
-
- This leaves our CONFIG.SYS with:
-
- DEVICE=C:\QEMM\QEMM386.SYS RAM AROM=C800-CBFF
- FILES=25
- DEVICE=C:\QEMM\LOADHI.SYS /R:2 C:\SCAN\SCANNER.SYS 256
- SHELL=C:\COMMAND.COM /P /E:768
- DEVICE=C:\QEMM\LOADHI.SYS /R:3 C:\NETW\NETWORK.SYS
-
- Since you ran QEMM's OPTIMIZE program, some of your device
- drivers are loaded into upper memory. For now we want these
- drivers loaded low, as some drivers behave incorrectly when
- loaded high.
-
- DEVICE=C:\QEMM\LOADHI.SYS /R:2 C:\SCAN\SCANNER.SYS 256
- <------delete--------->
-
- Boost the FILES= to at least 40, and our final CONFIG.SYS looks
- like:
-
- DEVICE=C:\QEMM\QEMM386.SYS RAM AROM=C800-CBFF
- FILES=40
- DEVICE=C:\SCAN\SCANNER.SYS 256
- SHELL=C:\COMMAND.COM /P /E:768
- DEVICE=C:\NETW\NETWORK.SYS
-
- (Your CONFIG.SYS may only need the QEMM386.SYS and FILES=40 line.
- Do not be concerned if your CONFIG.SYS is not 5 lines long.)
-
- Save the CONFIG.SYS, and now we will modify your AUTOEXEC.BAT
- file. The following is an example AUTOEXEC.BAT file for our
- example:
-
- ECHO OFF
- PATH C:\;C:\DOS;C:\UTILS;C:\EDITOR;F:\SCANNER;
- C:\QEMM\LOADHI C:\UTIL\FASTKEYB
- PROMPT $P$G
- C:\QEMM\LOADHI /R:1 C:\NETW\LOGIN
- SET TEMP=F:\WINDOWS\TEMP
- FAXSETUP 125
-
- The only lines we need to keep are the PATH, PROMPT, and NETWORK
- LOGIN.
-
- This leaves our AUTOEXEC.BAT follows:
-
- PATH C:\;C:\DOS;C:\UTILS;C:\EDITOR;F:\SCANNER;
- PROMPT $P$G
- C:\QEMM\LOADHI /R:1 C:\NETW\LOGIN
-
- Again, some of our device drivers are loaded high as a result of
- Optimize. We need to remove the LOADHI information from these
- lines.
-
- C:\QEMM\LOADHI /R:1 C:\NETW\LOGIN
- <----delete------->
-
- This leaves our final AUTOEXEC.BAT with:
-
- PATH C:\;C:\DOS;C:\UTILS;C:\EDITOR;F:\SCANNER;
- PROMPT $P$G
- C:\NETW\LOGIN
-
- (Your AUTOEXEC.BAT may only need the PATH and PROMPT lines. Do
- not be concerned if your AUTOEXEC.BAT is not 3 or more lines
- long.)
-
- Save the AUTOEXEC.BAT file. Now reboot your machine and try to
- recreate the Exception #13 problem.
-
- ??? If the problem still exists, go to STEP 8.
-
- ??? If the problem goes away, go to STEP C.
-
- (STEP 8)
-
- MODIFY THE QEMM386.SYS LINE
- ---------------------------
- Now we will modify your QEMM386.SYS line in the CONFIG.SYS file
- by adding parameters (and possibly removing some of the
- parameters that are already on the line) to avoid POSSIBLE
- conflicts involving QEMM. Modify the line as follows:
-
- DEVICE=C:\QEMM\QEMM386.SYS X=A000-C7FF X=F000-FFFF FILL:N TM:N
- CF:N SH:NONE DB=4
-
- DO NOT ADD THE RAM PARAMETER TO THIS LINE.
-
- PLEASE NOTE: ALL parameters are typed ON THE SAME LINE, not on
- two lines as they appear in our document.
-
- ??? If you are using the Stealth ROM parameter (ST:M or ST:F), DO
- NOT include Stealth ROM at this time. BUT make a note of it, as
- you will add this parameter back to the QEMM386.SYS line in STEP
- 14. You will also want to remove any Stealth-related parameters
- you may be using at this time: XST=, XSTI=, DBF=, FSTC, FRAME=.
-
- If your QEMM386.SYS line previously contained a parameter to
- EXCLUDE an area of memory such as EXCLUDE= or X= or AROM= or
- ARAM=, you should also add this parameter to the end of the
- QEMM386.SYS line. DO NOT add any INCLUDE= or I= parameters, even
- if you previously used them. In our example, we previously had
- the AROM=C800-CBFF parameter. Adding this parameter to the above
- DEVICE line gives us the following QEMM line:
-
- DEVICE=C:\QEMM\QEMM386.SYS X=A000-C7FF X=F000-FFFF FILL:N TM:N
- CF:N SH:NONE DB=4 AROM=C800-CBFF
-
- (AGAIN, these parameters all go on one line.)
-
- Save the new CONFIG.SYS file and reboot your machine. Try to
- recreate the Exception #13 problem.
-
- ??? If the problem still exists, go to STEP 9
-
- ??? If the problem goes away, go to STEP 12.
-
- (STEP 9)
-
- TRY TO RECREATE THE PROBLEM WITHOUT QEMM INSTALLED
- --------------------------------------------------
- In order to determine whether QEMM is responsible for your
- problem we need to run your software without QEMM loaded. If
- your program uses expanded memory, then another memory manager
- (such as the ones that come with DOS 5/6 or Windows) must be
- loaded in place of QEMM.
-
- ??? Does your program need expanded memory in order to operate
- properly? If so, please go to STEP 10. (Otherwise proceed with
- this STEP).
-
- Reboot your machine without QEMM. To disable QEMM temporarily,
- hold down the <Alt> key immediately after you hear a beep on
- bootup. QEMM will post a message telling you to press <Escape>
- to unload QEMM, or any other key to continue with QEMM. Press
- <Escape>, and run your Setup program. If you are using the DOS-
- UP feature from QEMM version 7.0 you will first see a message
- asking if you want to unload DOSDATA. Press <Escape> to unload
- DOS-UP, then hold down the <Alt> key again until you see the
- message telling you to press <Escape> to unload QEMM. Once
- your system has rebooted without QEMM, try to recreate the
- Exception #13 problem.
-
- ??? If the problem still exists, go to STEP B.
-
- ??? If the problem goes away, go to STEP A.
-
- (STEP 10)
-
- USE ANOTHER EXPANDED MEMORY MANAGER INSTEAD OF QEMM
- ---------------------------------------------------
- The problem you are having may be related to the use of expanded
- memory, in which case the result would be the same regardless of
- which memory manager you use. If your system has problems with
- another expanded memory manager loaded, then your program has a
- problem with expanded memory in general and QEMM is not to blame
- for the crashes you have been experiencing. If this is the case,
- you should contact the publisher of your program for information
- on using it with an expanded memory manager.
-
- You probably have either DOS 5 or DOS 6 and you may have
- Microsoft Windows as well. All of these come with an expanded
- memory manager. Loaded together, HIMEM.SYS and either EMM386.SYS
- or EMM386.EXE provide services similar to those provided by QEMM.
- We will now modify your CONFIG.SYS to use these drivers instead
- of QEMM and try to recreate the problem. First, make a backup
- copy of the "clean environment" version of CONFIG.SYS file by
- entering the following 3 commands at the DOS prompt:
-
- 1) C:
- 2) CD\
- 3) COPY CONFIG.SYS CONFIG.Q
-
- HIMEM.SYS and EMM386.EXE are probably in your \DOS, \WINDOWS, or
- root directory. We will assume they are in the \DOS directory.
- Edit the CONFIG.SYS file as follows:
-
- DEVICE=C:\DOS\HIMEM.SYS
- DEVICE=C:\DOS\EMM386.EXE ON 4096 [Use a lower number if your
- FILES=40 system has less than four
- DEVICE=C:\SCAN\SCANNER.SYS 256 megs of RAM]
- SHELL=C:\COMMAND.COM /P /E:768
- DEVICE=C:\NETW\NETWORK.SYS
-
- Save the CONFIG.SYS, reboot, and try to recreate Exception #13
- problem.
-
- ??? If the problem still exists, then go to STEP B.
-
- ??? If the problem goes away, go to STEP 11.
-
- (STEP 11)
-
- CONFIGURE QEMM SIMILARLY TO THE OTHER DRIVERS
- ---------------------------------------------
- Now we want to configure QEMM to emulate HIMEM and EMM386.
- MANIFEST can provide the information we need. Reboot your
- computer and type the following:
-
- CD\QEMM
- MFT
-
- Tap the DOWN-ARROW key once to view the First Meg/Overview
- screen. The box in the center of the screen looks something like
- this:
-
- Memory Area Size Description
- 0000 - 003F 1K Interrupt Area
- 0040 - 004F 0.3K BIOS Data Area
- 0050 - 006F 0.5K System Data
- 0070 - 0FB0 61K DOS
- 0FB1 - 21F8 73K Program Area
- 21F9 - 9FFF 504K [Available]
- Conventional memory ends at 640K
- A000 - AFFF 64K VGA Graphics
- B000 - B7FF 32K Unused
- B800 - BFFF 32K VGA Text
- C000 - C7FF 32K Video ROM
- C800 - CFFF 32K Unused
- D000 - DFFF 64K Page Frame <---------------------
- E000 - EFFF 64K Unused
- F000 - FFFF 64K System ROM
-
- We will use the QEMM parameter FRAME= to place the Page Frame at
- the same memory address used by EMM386. In our example, the Page
- Frame begins at D000. Hit the ESCAPE key twice to exit MANIFEST
- and type the following commands at the DOS prompt:
-
- C:
- CD\
- REN CONFIG.SYS CONFIG.M [Saves the CONFIG.SYS w/other
- drivers]
- COPY CONFIG.Q CONFIG.SYS [Brings back the STEP-8 CONFIG.SYS]
-
- Add the following parameters to your QEMM device line:
-
- VF:N VR:N TR:N LD:Y XBDA:N MR:N RH:N VDS:N FRAME=XXXX
-
- Replace XXXX with the starting address of the Page Frame as set
- up by EMM386. In our example, this is FRAME=D000.
-
- The QEMM386.SYS line for our EXAMPLE now looks like this:
-
- DEVICE=C:\QEMM\QEMM386.SYS X=A000-C7FF X=F000-FFFF FILL:N
- TM:N CF:N SH:NONE AROM=C800-CBFF NV NVR NTR LD NX NR NRH
- NOVDS FRAME=XXXX
-
- (These parameters all go on the same line.)
-
- Reboot and try to recreate the Exception #13 problem.
-
- ??? If the problem still exists , then go to STEP A.
-
- ??? If the problem goes away, then go to STEP 12.
-
- (STEP 12)
-
- CREATING HIGH RAM FOR QEMM
- --------------------------
- We have properly configured QEMM without High RAM to work with
- your program. Now add the RAM parameter back to the QEMM386.SYS
- line in your CONFIG.SYS to create High RAM.
-
- Reboot your machine and try to recreate the Exception #13
- problem.
-
- ??? If the problem reoccurs, then go to STEP 13.
-
- ??? If the problem does not occur, then proceed below:
-
- At this point we want to recover as much high RAM as possible.
- Edit the QEMM device line and delete the following parameters
- from the QEMM device line in your CONFIG.SYS file ONE AT A TIME.
-
- X=A000-C7FF, X=F000-FFFF, and CF:N
-
- Each time you remove a parameter, save the revised CONFIG.SYS and
- reboot the machine, then try to recreate the problem. If
- removing a parameter does not cause the problem to reoccur, then
- you DO NOT need that parameter. Try the other two to determine
- whether you need them.
-
- ??? If the problem still does not occur and you WERE using the
- Stealth ROM feature (ST:M or ST:F) go to STEP 14.
-
- ??? If the problem still does not occur and you WERE NOT using
- the Stealth ROM feature (ST:M or ST:F) go to STEP C.
-
- (STEP 13)
-
- ELIMINATING HIGH RAM CONFLICTS
- ------------------------------
- A conflict appears to exist between one of your adapters and
- QEMM. QEMM is not recognizing that your adapter is using upper
- memory addresses and is mapping memory into the same space. We
- will exclude all High RAM areas to test this. If it is the case,
- we will systematically narrow down the area that needs to be
- excluded. At the DOS prompt type the following to start
- MANIFEST:
-
- CD\QEMM
- MFT
-
- Tap the DOWN-ARROW key once to see the First Meg/Overview screen.
- The box in the center of the screen will look something like
- this:
-
- Memory Area Size Description
- 0000 - 003F 1K Interrupt Area
- 0040 - 004F 0.3K BIOS Data Area
- 0050 - 006F 0.5K System Data
- 0070 - 0FB0 61K DOS
- 0FB1 - 21F8 73K Program Area
- 21F9 - 9FFF 504K [Available]
- Conventional memory ends at 640K
- A000 - AFFF 64K VGA Graphics
- B000 - B7FF 32K Unused
- B800 - BFFF 32K VGA Text
- C000 - C7FF 32K Video ROM
- C800 - CFFF 32K High RAM <------------
- D000 - DFFF 64K Page Frame
- E000 - EFFF 64K High RAM <------------
- F000 - FFFF 64K System ROM
-
- We want to exclude these areas of high RAM. For our example we
- would add the following to the QEMM device line:
-
- X=C800-CFFF X=E000-EFFF
-
- Add an EXCLUDE statement for each area of high RAM you see in the
- First Meg Overview screen. Save the CONFIG.SYS file, reboot the
- machine, and try to recreate the problem.
-
- ??? If the problem occurs, then go to STEP A.
-
- ??? If the problem goes away, you have a memory conflict and we
- must now narrow down the address range in upper memory that is
- causing the conflict. This will allow you to recover as much High
- RAM as possible. In our example the areas of high RAM are
- comprised of six different 16K areas: C800-CBFF, CC00-CFFF, E000-
- E3FF, E400-E7FF, E800- EBFF, EC00-EFFF. To narrow down the area,
- we use the X= parameter, trying all six of these combinations,
- one at a time. Most likely, you will need only one of the
- exclusions. In some cases, however, you may need to exclude more
- than a 16K block.
-
- ??? Once you have determined the area that needs excluding, if
- you WERE using Stealth ROM (ST:M or ST:F) go to STEP 14.
-
- ??? Once you have determined the area that needs excluding, if
- you WERE NOT using Stealth ROM (ST:M or ST:F) go to STEP C.
-
- (STEP 14)
-
- ADDING THE STEALTH ROM PARAMETER BACK
- -------------------------------------
- We have configured QEMM with High RAM to work with your program.
- We will now add Stealth ROM (and any Stealth-related parameters)
- to the QEMM device line. Reboot your machine and try to recreate
- the problem.
-
- ??? If the problem still does not occur, then go to STEP C.
-
- ??? If the problem does reoccur, then your Exception #13 problem
- is due to a conflict with Stealth ROM. You should refer to our
- Stealth ROM troubleshooting technical note (STEALTH.TEC) for
- further help. This technote can be found in your QEMM\TECHNOTE
- directory.
-
- Once you have resolved the Stealth-related problem go to STEP C.
- ------------------------------------------------------------------
-
-
- (STEP - A)
-
- Your problem requires further investigation. Please call our
- Technical Support line at (310) 392-9701 for further assistance.
- We will be happy to help out. When you call, please have the
- following information at hand:
-
- 1) Your original CONFIG.SYS and AUTOEXEC.BAT
- (now CONFIG.OLD and AUTOEXEC.OLD)
- 2) CONFIG.SYS (QEMM386.SYS and FILES=)
- 3) AUTOEXEC.BAT (PATH and PROMPT)
- 4) CONFIG.Q (If you have gone thru STEP 10)
- 50 CONFIG.M (If you have gone thru STEP 11)
-
- Be sure to mention that you have been using EX13FLOW.TEC.
-
- (STEP - B)
-
- The program in question has problems EVEN WHEN QEMM IS NOT
- LOADED. QEMM is not responsible for the system crashes you are
- experiencing. You should consult the documentation or contact
- the makers of the resident program or driver which is making your
- system crash.
-
- (STEP - C)
-
- CONGRATULATIONS! You have successfully configured QEMM and your
- program to work together. Enter the following six commands at
- the DOS prompt:
-
- C:
- CD\
- RENAME AUTOEXEC.BAT AUTOEXEC.Q
- COPY CONFIG.SYS CONFIG.Q
- COPY CONFIG.OLD CONFIG.SYS [Brings back your original
- file.]
- COPY AUTOEXEC.OLD AUTOEXEC.BAT [Brings back your original
- file.]
-
- Edit the CONFIG.SYS file and replace the original QEMM386.SYS
- line with the one you have created by using this technote (now in
- CONFIG.Q) and make sure FILES= at least 40. Reboot the machine
- and try to recreate the Exception #13 crash.
-
- ??? If the problem no longer occurs, it is solved.
-
- ??? If the problem now occurs, then go to STEP D.
-
- (STEP - D)
-
- Since your problem does not occur with the stripped down
- CONFIG.SYS and AUTOEXEC.BAT but does occur with a full CONFIG.SYS
- and AUTOEXEC.BAT file, there is a command line in one of these
- files that is causing the Exception #13 problem. To determine
- which file the command line is in, we will bring back the
- AUTOEXEC.BAT (Path and Prompt) that we previously created in STEP
- 7:
-
- Enter the following 4 commands at the DOS prompt:
-
- C:
- CD\
- COPY AUTOEXEC.BAT AUTOEXEC.OLD
- COPY AUTOEXEC.Q AUTOEXEC.BAT
-
- Reboot your machine and try to recreate the Exception #13 crash.
-
- ??? If the problem still exists, than we know that the command
- line giving us a problem is located in the CONFIG.SYS file. If
- the problem goes away, the command line is in the original
- AUTOEXEC.BAT file.
-
- Now you must systematically determine which command line is
- giving you trouble. Try deleting one line at a time (if you have
- a long CONFIG.SYS or AUTOEXEC.BAT file try deleting 2-3 lines at
- a time) until you find out which line is causing the problem.
- When you finally determine which line it is:
-
- 1) If the device driver or TSR is loaded into High RAM, use the
- procedure in STEP 7 to load it low and see if this corrects the
- problem.
-
- 2) Read the manual or call the technical support for the product
- which you are loading to determine where the problem might lie.
-
- 3) Some TSR's and device drivers can be configured to use
- conventional memory, XMS, EMS, or a combination of these. See
- how it is currently configured and try the other options.
-
- 4) You may need to permanently remove that line.
-
- ******************************************************************
- Trademarks are property of their respective owners.
- 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) 1993 by Quarterdeck Office Systems
- ******************* E N D O F F I L E ************************