Contents of the DVDUMP.DOC file
Desqview Memory Dump
(c) Daniel T. Travison Jr., 1987
GEnie Email: D.TRAVISON
Hotel Henge 518-399-3073 (8pm-12 midnight)
P.O. Box 165
Burnt Hills, NY 12027
You are granted permission to distribute this program with the
stipulation that NO remittance is accepted for either the program or
handling and distribution charges. This program may not be distributed
with other programs on disk if a charge is incurred for any program or
for the medium. In other words, if there is a charge involved then you
do not have permission to include this program, period!
The author makes no warranties expressed or implied as to the quality or
performance of this program. The author will not be held liable for any
direct, indirect, incidental or consequential damages resulting from
the use of this program. Your use of this program constitutes your
agreement to this disclaimer and your releasing the author from any form
of liability or litigation.
DVDUMP.COM is designed to allow the user to view memory in hexadecimal
and ascii format within Desqview window. It is inspired by John
Ferguson's Xray.com which he describes as a PC background monitor. It
is primarily designed as a aide for debugging to be used with your
favorite debugging tool such as DOS's Debug.com. It allows the user to
get a 'snapshot' view of memory and when combined with Desqview's cut
and paste features allows the user to grab snapshots of memory for
later use in problem determination.
Dvdump.com has two basic modes of operation, 'real-time' and 'freeze'.
In the 'real-time' mode, memory is updated continuously. In 'freeze'
mode, the program makes a call to Desqview to indicate a critical
routine has started. You will notice that all display updating stops
and other windows stop. At this point you may view memory at a given
instant or mark parts of the display for later transfering into an
editor for detailed diagnosis. I have not determined the full
implications of this call and as a result I suggest that it be used
sparingly since it does stop other programs and appears to lock the
system from time to time (probally an i/o or interrupt problem). Read
the section on the key commands for a alternate method of 'freezing' a
Paging through memory is handled using segment/offset addressing. When
the Segment address is set, the offset may be paged within the range of
0000h to FFFFh. Wrapping occurs at these boundries as well. A
segment/offset address may also be inputted using the insert key. This
will cause a 'jump' to that address and will also save the address for
future use. This provides a convenient method for jumping directly to
a specified address and later returning to that address.
The addressable memory range is 0000:0000 to FFFF:FFFF. Dvdump.com
does not support extended or expanded memory and has not been tested in
the 80386 protected mode.
Desqview routines used:
1: Checks for the presence of Desqview and exits with an error if
Desqview is not found.
2: The program writes directly to the screen buffer provided by
3: The program releases the rest of the time slice when ever it finishes
a screen and also after determining that no key has been pressed.
4: 'Start Critical' and 'End Critical'. These two calls are used to
toggle the 'freeze' option
1: Desqview 2.0: You MUST have this version or later otherwise I can not
guarantee the reliability of the program.
2: DVDUMP.COM: the executable program
3: DM-PIF.DVP: the program information file used by Desqview
(see next section)
4: Reasonable compatability with the 'standard' IBM is assumed when
running this program.
Program information file:
1: I have provided the 2 screens from change a program to illustrate the
required settings should the DM-PIF.DVP be missing or incorrect.
Five points should be noted:
2: Memory size is set to 3k. More is not needed, less will produce an
3: Maximum and starting screen size is set to 17 for the height and 77
for the width. Increasing values will distort the display.
Decreasing these values can cause serious problems when the program
tries to write to memory that is not allocated to it.
4: All memory options on the Advanced screen are set to zero. changing
this will only allocate memory to the program that will not be used
and is therefore wasted.
5: The close on exit to DOS option is set to yes. This allows Desqview
to use its own shell.com instead of command.com to load the program.
This saves a nice chunk of memory that would otherwise be wasted. In
addition, the escape key will close the window as well as exiting the
6: The program will appear on the Add a program (other) menu as Desqview
Memory Dump and will have the keys DM assigned as the startup keys.
Keep this in mind in case you have a problem finding it.
7: The program is currently set to not run in the background. You may
want to change this if you are testing another program in a
foreground window and wish to view both at the same time.
Change a Program
Program Name............: Desqview Memory Dump
Keys to Use on Open Menu: DM Memory Size (in K): 3
Writes directly to screen......: [N]
Displays graphics information..: [N]
Can be swapped out of memory...: [Y]
Requires floppy diskette.......: [N]
Press F1 for advanced options Press when you are DONE
Change a Program Advanced Options
System Memory (in K).......: 0 Maximum Program Memory Size (in K)..:
Script Buffer Size.......: 0 Maximum Expanded Memory Size (in K):
Text Pages: 1 Graphics Pages: 0 Initial Mode: Interrupts: 00 to FF
Maximum Height: 17 Starting Height: 17 Starting Row...: 1
Maximum Width.: 77 Starting Width.: 77 Starting Column: 1
Close on exit to DOS.........: [Y] Uses its own colors.........: [Y]
Allow Close Window command...: [Y] Runs only in foreground.....: [Y]
Uses math coprocessor........: [N] Keyboard conflict (0-4).....: 
Press F1 for standard options Press when you are DONE
* Up Arrow......Decrease OFFSET by 16 bytes
* Down Arrow....Increase OFFSET by 16 bytes
* Page Up........Decrease OFFSET by 256 bytes
* Page Down......Increase OFFSET by 256 bytes
^Page Up........Decrease SEGMENT address by 1000h
^Page Down......Increase SEGMENT address by 1000h
Home...........Set OFFSET to 0000h
^Home...........Jump to the SEGMENT/OFFSET address
stored by the insert option
Insert.........Input a SEGMENT/OFFSET address then
jump to that address. This address
will also be saved for use by the
F10............Toggle Freezing of all other
windows. This should be used
sparingly since processing in all
other windows halts! This is only
a 'test' option. I HIGHLY
recommend that you manually switch
to the window you want halted and
press the Ctrl-Numlock key (The
PAUSE key if your keyboard provides
Escape.........Exit the program.
* NOTE: The key commands for changing the OFFSET have no affect
on the SEGMENT. In other words, when the OFFSET reaches
FFFFh then it will wrap to 0000h and vise-versa.
This program has been successfully run on the following
1: Compaq 386 (CGA card, amber monitor and NOT in protected mode)
2: IBM 8mhz AT (monochrome graphics)
3: My 8mhz XT. (color) This machine is an example of the extreme in
that the parts were purchased from at least 7 different manufactures,
none of which are known for their large market share. The CPU is a
NEC V20, the BIOS is by PHEONIX (version 2.26), and the operating
system is MS DOS 3.1
I have written this program because I have not found a satisfactory
alternative. I have learned a little more about assembler along the
way and consider that sufficient compensation for the time and effort
spent on this program. I do have an EGO so feel free to send comments
using one of the methods provided above. Users that are in the same
stages of learning assembler as myself may have a copy of the source as
an example of actual uses for the routines Quarterdeck provides.
Experienced assembler programmer's will be bored and only point out all
the different areas where my ignorance of assembler really shines.