ID:DR DR-DOS 6 and Quarterdeck Products
Quarterdeck Technical Note #215 Filename: DRDOS6.TEC
by Quarterdeck Testing & Compatibility CompuServe: DRDOS6.ZIP
Last revised: 2/13/92 Category: SW3
Subject: A discussion of the use of Digital Research's DR DOS 6.0 with
DR-DOS 6 & QUARTERDECK PRODUCTS
DR-DOS 6 is an operating system alternative to MS-DOS 5.00. It claims to
be completely compatible with MS-DOS 5.00 and offer enhancements. Its memory
manager has more capabilities. Quarterdeck has had no experiences that call
into question its MS-DOS compatibility. This technote will only address the
issue of compatibility with Quarterdeck products.
QUARTERDECK MEMORY MANAGERS AND ENHANCER AND DR-DOS 6
This section of the technote will address general features common to
memory management/enhancement of all three Quarterdeck memory manager/enhancer
products: QEMM-386, QEMM-50/60, and QRAM.
1) HIDOS=ON is a CONFIG.SYS instruction in DR-DOS that causes
the kernel to be loaded into a UMB or the HMA. This instruction
also allows the internal features of DR-DOS that load themselves
high in the CONFIG.SYS (BUFFERS, Drive Specifiers, HISTORY,
FASTOPEN) to do so as well. This must be used with QEMM-386, QEMM
50/60, or QRAM for the kernel and these features to be loaded high
if you do not use DR's memory manager. The default is HIDOS=OFF so
HIDOS=ON must be used to load these features high. The DR-DOS
manual says that HIDOS=ON cannot be used with third-party memory
managers but our experience at Quarterdeck is that it works just
If you wish, you may use DEVICE=C:\DRDOS\HIDOS.SYS in the
CONFIG.SYS in addition to HIDOS=ON. This gives you the option of
telling the kernel where to load:
loads the kernel into the first UMB at least 37K large;
where "xxxx" is a hexadecimal address below FFFF loads the kernel at
loads the kernel into the HMA.
HIDOS.SYS uses no memory to remain resident so no memory is
lost by using it in addition to HIDOS=ON, nor is there any
reason to load it high. HIDOS.SYS must be loaded after QEMM-
386 to load the kernel into a UMB or the HMA. It must be
loaded after QEMM-50/60 or QRAM to load the kernel into a
UMB. It must be loaded after QEXT.SYS on a 286 system to
load the kernel into the HMA.
DR-DOS has an advantage over MS-DOS 5 in that it allows the
kernel to be loaded into a UMB as well as into the HMA. Since the
kernel does not use the whole HMA this allows users with HMA users
that use a larger portion of the HMA (DESQview is the only program
that uses the entire HMA.) to have more conventional memory if they
load the kernel into a UMB rather than the HMA.
2) LOADHI.SYS will not load HISTORY or FASTOPEN because they
are internal instructions to DR-DOS. This causes no problems
because OPTIMIZE makes not attempt to load them high. DR-DOS can load
them high itself
3) HIBUFFERS is the DR-DOS command to load buffers into the
HMA. It will use the HMA even if the kernel is not loaded in the
HMA. The BUFFERS command of DR-DOS causes the buffers to be loaded
into UMBs (If HIDOS=ON is set.) Each buffer takes an individual
UMB. The BUFFERS.COM program from Quarterdeck works with DR-DOS;
using the LOADHI.COM program with BUFFERS.COM will cause the buffers
to be loaded into a single UMB. Use HIBUFFERS only if you are
loading the DR-DOS kernel into the HMA, otherwise the HMA will be
used for nothing but buffers.
4) HILOAD, HIDEVICE, and HINSTALL are the DR-DOS internal
commands that load TSRs and device drivers high. They do not work
with QEMM-386, QEMM-50/60, or QRAM. LOADHI.COM, LOADHI.SYS, and
INSTALL=LOADHI.COM/TSR, which, respectively, perform the same
functions, should be used instead.
5) SSTORDRV.SYS is a disk-compression utility that DR bundles
with DR-DOS. It loads part of itself high. The remainder cannot be
loaded high, either with QEMM-386, QEMM-50/60, QRAM, or DR-DOS's
EMM386.SYS. If you use EMM386.SYS it merely loads low without
notification; if you use QEMM-386 and LOADHI.SYS it does not load at
all. OPTIMIZE will try to load it high, this must be reversed, or
as an alternative, SSTORDRV.SYS may be entered in the file
OPTIMIZE.EXC, keeping OPTIMIZE from trying to load it high.
6) There are other DR-DOS utilities that load themselves high,
such as SUPER PC-KWIK and DELWATCH. They are polite enough to allow
LOADHI.COM to load them high in the same manner as they themselves
would load themselves high; this allows them to be included by
OPTIMIZE in its calculations. This is done automatically and does
not require any attention from the user.
Brilliant Quarterdeck technicians have discovered an easier method for
using OPTIMIZE with SUPERSTORE. See below.
1) There is a new command, CHAIN, in DR-DOS. This command
allows the CONFIG.SYS to pass control to another CONFIG.SYS-like
file. DR-DOS uses it on installation if you choose to install
SUPERSTORE. OPTIMIZE does not follow this passing of control to
another file. If you are using CHAIN you must combine the two (or
more) CONFIG.SYS (or CONFIG.SYS-like) files into one for the
duration of the OPTIMIZation process.
2) The kernel of DR-DOS, sstordrv.sys, and buffers load
themselves high. OPTIMIZE does not take the High RAM used by self-
loaders high into consideration in its calculations so this can
throw it off making the best configuration. See the READ.ME file
for information on how best to accommodate self-high-loaders.
Quarterdeck's BUFFERS.COM program works with DR-DOS 6 and OPTIMIZE
will automatically try to use it to load BUFFERS high. This is
preferable because the memory used by BUFFERS will be included in
3) SUPERSTORE does work with OPTIMIZE, but SUPERSTORE adds a
device driver to your CONFIG.SYS called DEVSWAP.COM. The line
DEVSWAP.COM is a non-resident program that switches the drive
designations. This is a convenience if you installed SUPERSTORE on a
drive that already had programs so you don't have to re-write your
batch files and reconfigure your software to run from a different
drive. See your DR-DOS manual for information on the use of
DEVSWAP.COM. Most commonly your hard disk originally was drive C:.
SUPERSTORE creates a new, compressed drive, to which the letter D:
is assigned. DEVSWAP.COM switches these assignments. This will be
presumed for the rest of this section of this explanation of how to
use OPTIMIZE with SUPERSTORE. If you are compressing more than one
physical drive you must modify this information in consideration of
the compressed drives created and designations swapped.
When running OPTIMIZE, DEVSWAP.COM must be remarked out or
removed from the CONFIG.SYS. Also all references to drives C: in
the AUTOEXEC.BAT and in the CONFIG.SYS after the DEVSWAP.COM line
need to be changed to drive D:. Conversely, all references to drive
D: should be changed to drive C:.
The next step is to create a QEMM sub-directory on the
uncompressed drive. This is typically drive D: when the DEVSWAP.COM
device driver is loaded in your CONFIG.SYS. The following files
need to be in the QEMM sub-directory in order to run OPTIMIZE
properly: QEMM386.SYS (or QEMM.SYS if you are running QEMM-50/60 or
QEMM-386 version 5.0, or QRAM.SYS if you are loading QRAM),
OPTIMIZE.COM, LOADHI.SYS, LOADHI.COM, LOGOPT.COM, BUFFERS.COM (if
you are using DOS 2.x or 3.x), RSTRCFG.SYS, MCA.ADL (if you are
running on a Microchannel machine), and WINHIRAM.VXD if you are
planning on running Windows 3.0 in enhanced mode.
Once you have done this, you should reboot before running
OPTIMIZE so that the drives are set up correctly. Now you will be
able to run OPTIMIZE normally. After OPTIMIZE has run, you may edit
your CONFIG.SYS and restore the DEVSWAP.COM line. After you do
this, you must edit your CONFIG.SYS and AUTOEXEC.BAT to restore the
drive specifications to what they were before; e.g. change all
references to drive D: to drive C: and all references to drive C: to
drive D:. As mentioned above, if SSTORDRV.SYS is being loaded high,
you must change it to load low because it won't work when loaded
high. Reboot again. You are now getting the most out of your
AN ALTERNATIVE METHOD FOR USING OPTIMIZE WITH DR-DOS'S SUPERSTOR
Start with QEMM386.SYS (or QEMM.SYS or QRAM.SYS) on an uncompressed drive.
Leave about one megabyte of space on the uncompressed drive. No other
Quarterdeck files but QEMM386.SYS (or QEMM.SYS or QRAM.SYS) are needed from
the QEMM directory.
The first line in DCONFIG.SYS, which is the config.sys first read on bootup,
should be DEVICE=C:\QEMM\QEMM386.SYS RAM, assuming that QEMM386.SYS is in the
QEMM directory of the same drive that DCONFIG.SYS is on. The entire
DCONFIG.SYS will normally be
Now, move DEVICE=C:\QEMM\QEMM386.SYS to the CONFIG.SYS chained to from
MAKE CERTAIN THAT THE QEMM DEVICE LINE IS NO LONGER IN DCONFIG.SYS.
When you're through running OPTIMIZE, move the DEVICE=C:\QEMM\QEMM386.SYS line
back to the DCONFIG.SYS file.
That's all there is to it. You don't have to get rid of DEVSWAP or change the
Lastdriv.com is a program that comes with QEMM-386, QEMM-
50/60, and QRAM that allows drive specifiers to be loaded
at the DOS prompt. This allows QEMM-386, QEMM-50/60, and QRAM to
load them high. DR-DOS 6 does not seem to recognize drive
specifiers loaded by Lastdriv.com, whether loaded high or low.
DR-DOS loads its drive specifiers high by itself, when
the HIDOS=ON instruction is used, so Quarterdeck's
Lastdriv.com is not necessary to load drive specifiers high.
Unlike MS and IBM DOS, there are no DOS stacks in DR-DOS 6.
There are programs that may malfunction when DOS does not allocate
stacks, such as Ventura running in QEMM-386 with Stealth. Such
users must contact DR to request that they add a STACKS feature to their
QEMM-386 provides all the memory management capabilities of EMM386.SYS,
plus creating more High RAM through the Stealth feature, having OPTIMIZE to
automatically configure your system to use that High RAM most efficiently, and
Manifest, the system diagnostic utility. Microsoft Windows can be run in
standard mode with QEMM-386 while QEMM creates High RAM and provides Expanded
memory. Windows cannot run in standard mode with DR-DOS's EMM386.SYS if it
creates any High RAM, and its Expanded memory manager is turned off while you
are in standard mode.
DR-DOS creates UMBs on the same hardware that QRAM creates them on: EMS
cards that map address space outside the page frame and above conventional
memory, and the same varieties of ShadowRAM (NEAT, LEAP, SCAT, and AT/386) so
that QRAM is not necessary to create UMBs or load anything high on DR-DOS.
QRAM does come with OPTIMIZE, which allows you to configure your config.sys
and autoexec.bat automatically so that the most possible resident programs are
loaded high and Manifest, Quarterdeck's system diagnostic utility.
DR-DOS comes with an Expanded Memory Manager for XMA boards which creates
Expanded Memory on some of the same cards that QEMM-50/60 works on. It does
not create any UMBs (High RAM) though so users of these boards need QEMM-50/60
in order to load programs high.
DR-DOS comes with a program called MEMMAX that allows the user to turn
off the extending of conventional memory into the video area if previously
mapped by their memory manager. This feature does not work without their
memory manager. VIDRAM works just fine. Users of any Quarterdeck memory
manager or enhancer should use VIDRAM instead of MEMMAX.
1) For purposes of identifying its level of API support, DR-DOS
reports itself as version 3.31 of DOS. It loads an environment
variable that causes VER to report that it is DR-DOS version 6 but
MANIFEST reports its response to the DOS API call that identifies
the version for API purposes. For all programming purposes, DR-DOS
6 is version 3.31. There is no SETVER command, nor is it
2) DR-DOS converts FCBS to FILE handles so MANIFEST and
FILES.COM will report the total number of FILE handles to be the sum
of the two. The minimum number of FILE handles is 20 and the
minimum number of FCBS is 4. This conflation of FCBS and
FILE handles causes Manifest to report that there is only one
FCB. MANIFEST reports that there is only one FCBS but it is
1) The HISTORY feature does not work inside DESQview. There
is no work-around.
2) DR-DOS allows the kernel and buffers to be loaded into UMBs.
It also allows them to be loaded into the HMA. DESQview uses the
entire HMA while DR-DOS cannot. (DR-DOS's kernel uses 37K, and
HIBUFFERS can fit only 35 buffers into the HMA along with the
kernel. Each buffer uses .5K when loaded into a UMB or low, so DR-
DOS can use only 54.5K of the HMA, 9.5K less than DESQview.) Since
the HMA cannot be shared, any unused portion is wasted. DESQview
users will have more memory available if DESQview uses the HMA
rather than DR-DOS.
3) The task switcher, TaskMAX, will not run in DESQview.
There is no work-around.
4) There is no SETVER command, nor is it necessary, as
explained in the MANIFEST section of this technote.
*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) 1991-2 by Quarterdeck Office Systems *
************************ E N D O F F I L E *************************