

NOVELL TECHNICAL INFORMATION DOCUMENT

DOCUMENT PROCESSING INFO:  Replaces Document FYI-M-1302
TITLE:  Troubleshooting Memory Conflicts
DOCUMENT ID:  TID800077
DOCUMENT REVISION:  A
DATE:  22AUG94
AUTHOR:  KBANTA;DPARTRID
ALERT STATUS:  Yellow
DISTRIBUTION:  Public
INFORMATION TYPE:  Symptom Solution
README FOR:  NA
NOVELL PRODUCT CLASS:

Desktop Products

NOVELL PRODUCT and VERSION:

DR DOS 6.0

CATEGORY:

Memory

ABSTRACT:

NA

-----------------------------------------------------------------
DISCLAIMER
THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO NOVELL. 
NOVELL MAKES EVERY EFFORT WITHIN ITS MEANS TO VERIFY THIS INFORMATION. 
HOWEVER, THE INFORMATION PROVIDED IN THIS DOCUMENT IS FOR YOUR INFORMATION
ONLY.  NOVELL MAKES NO EXPLICIT OR IMPLIED CLAIMS TO THE VALIDITY OF THIS
INFORMATION.
-----------------------------------------------------------------

SYMPTOM

Insufficient conventional memory.

SOLUTION

SOLUTION

After using the DR DOS 6.0 memory management system to increase
conventional memory, there should not be a problem due to insufficient
memory.  However, if a large number of device drivers or TSRs are in use,
this problem may still occur.  

Try the MEMMAX +L command in case an earlier command or batch file
disabled available low memory.  Finally, if the application does not use
the graphics display area, try the /V switch of the DR DOS 6.0 memory
manager, followed by MEMMAX +V before loading the application.

SYMPTOM

HILOAD, HIINSTALL, and HIDEVICE do not appear to work.


SOLUTION

Each of these commands requires the availability of UMBs (Upper Memory
Blocks.  Verify that the UMBs are available by using the DR DOS MEM /B or
/U command to see a report of the memory usage.  Available UMBs will be
marked as FREE under the TYPE column in the MEM listing.

The HILOAD, HIINSTALL, and HIDEVICE commands require prior installation of
the EMM386.SYS or HIDOS.SYS driver. If the MEM report shows that upper
memory is not being used, check the CONFIG.SYS to make sure the driver has
been properly installed and that the option switches have been entered
correctly.  If they are set, pay particular attention to the /FRAME,
/AUTOSCAN, /INCLUDE, /BDOS, and /EXCLUDE switches to ensure that any upper
memory addresses specified by these switches have been correctly set (a
common error is using an "oh" instead of a zero).  If you do not require
the use of expanded memory, set the /FRAME switch to /FRAME=NONE.

The HILOAD command must be invoked before using the MEMMAX -U command
(which disables upper memory).  Use the MEMMAX +U command to re-enable
upper memory, if necessary.  Note that the DR DOS installation program
automatically inserts the MEMMAX -U command in the AUTOEXEC.BAT file. 
Therefore, you must either put HILOAD above it, or use MEMMAX +U to enable
upper memory.

If there appears to be sufficient upper memory available, but HILOAD,
HIINSTALL, or HIDEVICE fail to put a particular TSR or driver into upper
memory, it may be because some device drivers and TSR programs expand when
they initialize and take up considerably more RAM than they will
ultimately need. 

SYMPTOM

Computer will not boot, or locks up.

SOLUTION

Reboot the computer with a bootable floppy disk in drive A:.  Edit the
CONFIG.SYS and/or AUTOEXEC.BAT files to turn off and isolate those lines
in the files that could be causing the problem.

The most probable cause is that the DR DOS 6.0 memory manager has moved
something into a region of upper memory required by a hardware device
driver attempting to use the same areas of memory.  Use the /EXCLUDE
option switches to remedy the problem.

If a hardware device is not causing the conflict, and the lockup occurs
with a particular program, this program may become confused about when
upper or low memory is available.  Try using the command MEMMAX -U and/or
MEMMAX -L before loading the program.

SYMPTOM

Inability to log onto networks; inability to access hard or floppy disk
drives; error messages such as "card not found".

SOLUTION

The computer or its accessories may be using upper memory addresses that
are also being accessed by the DR DOS 6.0 memory manager. To prevent this,
exclude EMM386.SYS or HIDOS.SYS access to the upper memory address range
that is causing the conflict.  The following recommendations apply to the

EMM386.SYS driver for 386 and 486 computers, or the HIDOS.SYS driver on
286 computers with shadow RAM.

A good starting place to check for upper memory usage is the documentation
for any accessory boards or drivers you have installed.  If upper memory
is required it is usually indicated in the  ocumentation.

If you encounter such problems and suspect that upper memory conflicts are
the cause, first REM out the memory manager line in the CONFIG.SYS file. 
If the problem disappears, you know that the memory driver is part of the
conflict and you can begin to look at changing switches to correct the
problem.  If the EMM386.SYS /BDOS option is set to /BDOS=AUTO, switch it
to /BDOS=FFFF.  Save CONFIG.SYS and reboot the computer to retest.

If the problem recurs, change the /R=AUTO setting to /R=NONE, and then
save the CONFIG.SYS file, and reboot the computer to retest.


NETWORK HARDWARE INTERFACING.  It is common for network hardware to
utilize areas of upper memory and thus conflict with MemoryMAX allocations
of that memory.  If this occurs, you may be unable to log onto the network
or random lockups could occur. 

Another possible cause of network problems is that the network driver is
designed for use with MS-DOS versions other than versions 3.3+. Network
drivers designed for use with MS-DOS versions 4.0+ and 5.0 would not be
appropriate for the DR DOS 6.0 operating system. 


INABILITY TO ACCESS HARD OR FLOPPY DISK DRIVES.  If you have installed
Super PC-Kwik and have enabled the /D+ switch, the disk controller must be
100% IBM compatible.  Reset the /D+ switch to /D- (the /D# switch works on
some controllers) to turn off PC-Kwik's advanced caching for the floppy
drives (advanced caching for the hard drive remains in effect).

The DR DOS 6.0 operating system supports virtual DMA and bus master
controllers.  Any problem with SCSI drives is probably due to an memory
conflict. 

SYMPTOM

Not enough (or no) EMS memory available; or lockup when executing a
program.

SOLUTION

If a program that requires EMS memory reports that no EMS is available or
locks up when executed, the problem could be that the application assumes
that the LIM page frame starts at a specified address. 

Remedy this problem by ensuring that the LIM page frame defined in the
application's SETUP program or documentation matches the settings in
EMM386.SYS or EMMXMA.SYS.  The /F= switch defines the start of the LIM
page frame.

Another cause of insufficient LIM memory occurs if you are using TaskMAX
in expanded memory and too many tasks have been loaded. Unload a few of
the tasks and restart the program.


SYMPTOM

Video problems

SOLUTION

If you experience problems with the video display after installing
MemoryMAX drivers, a possible cause is that the video adapter is
attempting to use some of the same upper memory addresses being allocated
by EMM386.SYS or HIDOS.SYS.

A quick way to determine if the current memory setup is causing a conflict
with a video (or other device) board is to turn off the entire memory
driver line in the CONFIG.SYS file by using the REM command or the "?"
technique.  If the problem does not recur with the memory driver "turned
off," the cause of the problem is probably an upper memory conflict. 

Use the EMM386.SYS or HIDOS.SYS /VIDEO option to reserve graphics memory
addresses normally occupied by video display adapters.  If the /VIDEO
option is set, and the video corruption is occurring with a graphics
program, be sure that the MEMMAX -V switch is operative.  When only text
displays are required, the MEMMAX +V switch can borrow some of the
graphics memory areas and add it to conventional memory, providing more
space for text applications. However, if an application requires graphical
displays, you must be sure this memory area is
available to video by issuing the MEMMAX -V command.

If the video display is corrupted only during use with the DR DOS TaskMAX
task switcher, refer to the README file (in the DR DOS directory) or the
DR DOS 6.0 Release Notes for instructions on how to use the TaskMAX /F
switch.

SYMPTOM

Error message: "PACKED FILE IS CORRUPT."

SOLUTION

This error can occur when the first 64 Kbytes of conventional memory
(called low memory) have been made available through the use of MemoryMAX. 
Normally, the operating system occupies this entire area.  Some
applications were written using packing utilities that become confused
when run in low memory.  If this happens, the following message appears:
Packed file is corrupt.

For an easy workaround, use the MEMMAX -L command to disable low memory
before running the application.  Then load and run the application.  After
exiting the application, use MEMMAX +L to enable the low memory area once
again.

This problem can occur with other memory managers, including QEMM386.  The
application vendor may be able to supply you with an updated application
that does not exhibit this problem. 

You can also use the /EXCLUDE switch to exclude an area of upper memory
that the /AUTOSCAN feature detects as being available but, in fact, is
actually in use by another device, such as a network card.

SYMPTOM

General problematic behavior


SOLUTION

Isolate the problem with the following techniques:

USING REM

Before experimenting with the CONFIG.SYS and AUTOEXEC.BAT files, create a
bootable floppy disk  containing the unedited, original versions of the
CONFIG.SYS and AUTOEXEC.BAT.  This way if there is the need to reboot the
computer from the A: drive.  The most recent configuration is available. 
The original CONFIG.SYS and AUTOEXEC.BAT files could then be copied back
to the boot disk. 

After turning off the suspect lines with a REM statement, reboot the
computer to retest the driver/application with which you first encountered
the memory problem.  If the system runs correctly, reenter the CONFIG.SYS
or AUTOEXEC.BAT file and remove the REM command from one line and then
reboot and reload the application. Continue this process until you again
encounter the memory problem. When it recurs, you will have isolated the
line in the CONFIG.SYS or AUTOEXEC.BAT file that is causing the memory
conflict.  You can now take action to resolve the conflict.

DEVICE = C:\DRDOS\EMM386.SYS /F=AUTO /K=2024

add the REM comment to the beginning of the line:

REM DEVICE = C:\DRDOS\EMM386.SYS /F=AUTO /K=2024

If a particular line is not causing a problem it can be reactivated by
removing the REM statement.


USING ?

You can also use the DR DOS conditional "?" statement to
activate/deactivate CONFIG.SYS line commands.  If you use this option,
make careful note of whether you answered "yes" or "no" to loading each
line.


USING THE /EXCLUDE OPTION

If the hardware documentation does not specify a memory range to be
excluded, you can use the /EXCLUDE option to discover if there is an upper
memory conflict.  This option is used to systematically exclude sections
of upper memory from being used by EMM386.SYS.  For example, use this
method to exclude the top half of the upper memory range first, reboot the
computer and test the problem.  Then, if the problem recurs, change the
/EXCLUDE setting to exclude the lower half of upper memory and reboot to
retest.

After discovering in which half of upper memory the conflict resides,
repeat the process by dividing that memory range in half.  You can use
this technique to break down the entire upper memory range, half-by-half,
until you pinpoint the area of conflict.

Note that sometimes, you will not be able to determine which "half" the
problem exists in, because the problem area may be right around the
half-way point.  In this case, you may need to exclude the entire upper
memory range.

You must use the hexadecimal notation of the memory address with the
/EXCLUDE switch.  The following brief explanation is provided for those
unfamiliar with using the hexadecimal system.

HEXADECIMAL ADDRESSES

The 384 Kbyte range of upper memory resides between the hexadecimal memory
addresses of A000 and FFFF.  The upper half of this range lies between the
addresses D000 and FFFF; the lower half lies between A000 and CFFF. 
Because A000 to BFFF is typically reserved for video display, you will
normally work only with addresses C000 to FFFF.

To exclude the lower half of the C000 to FFFF range, enter the following
/EXCLUDE command in the EMM386.SYS or HIDOS.SYS line in the CONFIG.SYS
file:

/E=C000-DFFF

Then, reboot the computer to test the exclusion.  If the problem persists,
edit the /EXCLUDE switch to exclude the other half of the C000 to FFFF
range by entering the following in the CONFIG.SYS file:

/E=E000-FFFF

Continue excluding a smaller and smaller range of memory until you have
found the smallest possible exclusion, which still permits proper
functioning.

NOTE:  The first address in each range of memory (EXCLUDE, INCLUDE, etc.)
must end in "00" and the second must end in "FF."  You can also exclude
multiple memory ranges with the /EXCLUDE switch by separating the ranges
with a comma, e.g., /E=D000-D7FF,DA00-DBFF. 

The chart below shows how this process works, and shows the memory address
for the 64 Kbyte range in the "D" segment of upper memory.

D000-DFFF = 64K = D000-D7FF = 32K + D800-DFFF = 32K = 64K TOTAL
D000-D7FF = 32K = D000-D3FF = 16K + D400-D7FF = 16K = 32K TOTAL
D800-DFFF = 32K = D800-DBFF = 16K + DC00-DFFF = 16K = 32K TOTAL
D000-D1FF = 8K + D200-D3FF = 8K = 16K TOTAL
D400-D5FF = 8K + D600-D7FF = 8K = 16K TOTAL
D800-D9FF = 8K + DA00-DBFF = 8K = 16K TOTAL
DC00-DDFF = 8K + DE00-DFFF = 8K = 16K TOTAL

(The first "D" in each hex address above can be replaced with C, E, or F
when working with those segments.)

Once you find the conflicting range of upper memory, permanently exclude
it from being used by EMM386.SYS or HIDOS.SYS by using the /EXCLUDE
switch.


ADDITIONAL REFERENCES:  DR DOS 6.0 USER GUIDE - Chapters 7, 10, 11; TIDs-
800021, 800072, 800073, 800074, 800058; DR DOS 6.0 OPTIMIZATION AND
CONFIGURATION TIPS; README FILE IN THE DRDOS DIRECTORY; RELEASE NOTES

-----------------------------------------------------------------
Any trademarks referenced in this document are the property of their
respective owners.  Consult your product manuals for complete trademark
information.
-----------------------------------------------------------------
