ID:X2 XDV.COM/DV.COM vs. DV.EXE
Quarterdeck Technical Note #125 Filename: XDV.TEC
by Dan Sallitt CompuServe: XDV.TEC
Last revised: 02/13/92 Category: DV
Subject: Using DV.COM (also known as XDV.COM) to load portions of DESQview
into the HMA (the first 64K of extended memory) and/or into High RAM;
what to do if DV.COM hangs the system but DV.EXE works.
Q: Why does DESQview fail when I use XDV.COM or DV.COM but work correctly when
I use DV.EXE?
XDV.COM, which is usually renamed to DV.COM by the DESQview Install program
(before DESQview 2.26, the Install program did not automatically perform this
renaming, though Quarterdeck's documentation recommended that it be done
manually), is a loader that places bits of DESQview code in high memory areas.
It is useful on any system that has expanded memory, or on any system that has
extended memory and is using DESQview's QEXT.SYS driver, or on any system
using QEMM-386, QEMM-50/60, or QRAM. If DESQview loads successfully when
started with the DV.EXE file but not when started with XDV.COM or DV.COM,
there are two likely possibilities:
1) The expanded memory manager (EMM) has allowed DESQview to place a piece of
its code in an area between 640K and 1024K (known as the reserved memory area)
that is already being used by hardware in the system;
2) QEXT.SYS is conflicting with another program that is using the first 64K of
In the first case, one must determine which part of the area between 640K and
1024K is in conflict, then exclude it using the expanded memory manager's
parameters. If you know the hardware in the system, you should consult the
manuals (or the manufacturers) of the expansion boards in the machine to
determine the addresses that are being used for ROM extensions, buffers, etc.
If your system is a 386 running QEMM-386, the QEMM.COM Accessed screen (also
available as the Manifest QEMM-386\Accessed screen) can provide valuable hints
about what areas of memory are in use. To use the Accessed screen, remove the
RAM parameter (if it is in use) from the QEMM386.SYS line in the CONFIG.SYS
file, add the ON parameter, and reboot the machine. Any area that the
Accessed screen then shows as having been touched, but that the QEMM Type
screen shows as Mappable or Rammable, is a good candidate for exclusion.
The Quarterdeck Technical Bulletin #219, "Using QEMM-386's Analysis",
describes this process in greater detail.
Failing this, you should use the /X parameter to DV.COM or XDV.COM to exclude
different areas of reserved memory, making the exclusions smaller and smaller
until the conflict is pinpointed. Like most memory managers, DV.COM/XDV.COM
takes hexadecimal addresses; in hexadecimal, the range A000-FFFF represents
the addresses between 640K and 1024K. Thus the command line
prevents DESQview from putting its code anywhere between 640K and 1024K.
excludes the first half of this area, and
excludes the second half.
All the possible 16K areas that can be excluded on DV.COM/XDV.COM are listed
A000-A3FF A400-A7FF A800-ABFF AC00-AFFF
B000-B3FF B400-B7FF B800-BBFF BC00-BFFF
C000-C3FF C400-C7FF C800-CBFF CC00-CFFF
D000-D3FF D400-D7FF D800-DBFF DC00-DFFF
E000-E3FF E400-E7FF E800-EBFF EC00-EFFF
F000-F3FF F400-F7FF F800-FBFF FC00-FFFF
To exclude a number of these consecutive ranges, use the endpoints of the
first and last block that you want to exclude. For instance:
excludes the first three 16K areas above 640K.
To determine if QEXT.SYS is in conflict with anything in the system, use this
special exclusion on DV.COM or XDV.COM:
Since the Quarterdeck Expanded Memory Manager-386 (QEMM-386) and other
expanded memory managers for 80386 machines allow DESQview to place code in
the QEXT area without the actual presence of the QEXT.SYS driver, this
exclusion should be tried when troubleshooting 80386 machines in general.
If the /X:FFFE exclusion eliminates the problem, look in the CONFIG.SYS and
AUTOEXEC.BAT files for drivers or terminate-and-stay-resident programs that
may be using extended memory. If a program is in conflict with QEXT.SYS, the
program may take parameters that will prevent it from using the addresses
between 1024K and 1088K, which QEXT.SYS must use.
It sometimes happens that a problem with XDV.COM or DV.COM is not localized:
that is to say, almost any use of the .COM files to put DESQview code in
almost any area causes the problem. In such cases, one should probably look
for a low-level conflict, usually on the hardware level. One situation of
this sort occurs on 80286 (or lower) systems on which an expanded memory board
is used to backfill motherboard memory without the user having disconnected
the already existing motherboard memory. The resulting address conflict
causes immediate crashes with DV.COM or XDV.COM; DV.EXE will also crash in
this circumstance, but not until DESQview has to allocate expanded memory to
open multiple windows.
*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 *************************