Document 1303
Third Party Memory Managers


Description:

Relocating the Kernel

When you use a memory manager from another vendor, you can gain
additional conventional memory space by relocating the DR DOS
kernel to upper or high memory. The third-party memory manager
must support the XMS specification, and upper or high memory
must be available. To relocate the kernel, insert the statement:

        DEVICE=C:\DRDOS\HIDOS.SYS

after the statement that loads the third-party memory manager.

HIDOS.SYS attempts, by default, to relocate the DR DOS kernel to
upper memory. If upper memory is not supported or not available,
the kernel is placed in high memory. You can force the kernel to
high memory by using the following DEVICE statement:

        DEVICE=C:\DRDOS\HIDOS.SYS /BDOS=FFFF

The following examples show how and where to add the statement
when loading Qualitas 386MAX or the Quarterdeck QEMM or QRAM
drivers.

Qualitas 386MAX

        DEVICE=C:\386MAX\386MAX.SYS [...etc.]
        DEVICE=C:\DRDOS\HIDOS.SYS [...etc.]
        DEVICE=C:\386MAX\386LOAD.SYS [...etc.]

Quarterdeck QEMM.386

        DEVICE=C:\QEMM\QEMM.SYS [...etc.]
        DEVICE=C:\DRDOS\HIDOS.SYS [...etc.]
        DEVICE=C:\QEMM\LOADHI.SYS [...etc.]

Quarterdeck QRAM (with Intel AboveBoard)

        @SCREEN = DEVICE=C:\ABOARD\EMS.SYS AT 208 MC
        DEVICE=C:\QRAM\QRAM.SYS.
        DEVICE=C:\DRDOS\HIDOS.SYS
        DEVICE=C:\QRAM\LOADHI.SYS [...etc.]

Note:

EMM386.SYS cannot be used with other memory managers.

When a third-party memory manager is loaded, the following
config.sys statements have no effect:

HIINSTALL 
HIDEVICE

If a user loads a third party memory manager which creates and
makes available XMS upper memory blocks compatible with the 2.0
specification, HIDOS=[ON|OFF] itself will relocate DR DOS 6.0
data structures in upper memory. Those blocks will appear as
"XMS UMB"'s from within any memory mapping utilities provided
with the third party memory manager. However, HILOAD, HIDEVICE,
and HIINSTALL commands have no effect.  Most memory managers
offer equivalent commands that you can use.

Quarterdeck DESQview

When running the Quarterdeck DESQview proggram under the DR DOS
6.0 operating system, use the QEMM386.SYS driver as the primary
memory management driver instead of EMM386.SYS provided with the
DR DOS 6.0 operating system. When QEMM386.SYS loads from the
config.sys file, it then becomes responsible for controlling
both the upper memory area, between 640 Kytes and l Mbyte, and
the high memory area, the first 64 Kytes above l Mbyte.

Move device drivers and memory resident software to upper memory
using the normal QEMM LOADHI commands. After loading
QEMM386.SYS, the operating system kernel can still be moved to
upper memory or high memory by loading the DR DOS HIDOS.SYS
driver in the config.sys file right after the QEMM386.SYS
driver. To move the kernel to upper memory, use the option
/B=AUTO at the end of the HIDOS.SYS line in config.sys.  

To specify that the kernel should be placed in high memory,
leaving more upper memory available for device drivers and
memory resident programs, use the option /B=FFFF.

Depending on the configuration of DESQview, a gain in available
memory might not be seen after loading HIDOS.SYS. DESQview uses
the high memory for 63Kbytes of code that normally sit in
conventional memory, while HIDOS.SYS moves approximately
45Kbytes into that area. Because the high memory area can be
used by only one application at a time, experiment with /B=AUTO,
/B=FFFF, or do not load HIDOS.SYS. These different options can
be quickly tested using the DR DOS 6.0 question mark option (?)
in config.sys. Placing a ? in front of any line in config.sys
displays that line at boot-up and then you can select Y(es) or
N(o) to execute that instruction. 

You might insert the following lines while experimenting:

?"Do you want to avoid moving the KERNEL (Y/N)"GOTO SKIP 
?"Kernel in Upper Memory (Y/N)"  
DEVICE=C:\DRDOS\HIDOS.SYS /B=AUTO 
?"Kernel in High Memory (Y/N)" 
DEVICE=C:\DRDOS\HIDOS.SYS /B=FFFF  
:SKIP

Refer to Chapter 11 of the DR DOS 6.0 User Guide for a full
discussion of this feature.

If you are running QEMM386.SYS without DESQview, you should
always move the kernel to high memory.
