Contents of the DVSCODE.DOC file
Desqview Extended Scan Code Reference
(c) Daniel T. Travison Jr., 1987
GEnie Email: D.TRAVISON
Hotel Henge 518-399-3073 (10pm-10am)
P.O. Box 165
Burnt Hills, NY 12027
DVSCODE is an extended scan code reference for Quarterdeck's Desqview
version 2.0. It is designed to provide the same information as is
found in the Basic 3.0 reference manual for the extended scan codes.
Since I refer to that page quite frequently I decided to put together
this program for easier reference. Those of you that have tried
DVASCII.COM may notice a similarity. This program was created using
the same source code with only a few modifications to account for the
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
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.
I put this little program together recently while working on a
another unrelated project. I found myself constantly refering
to the reference provided in the Basic 3.0 manual and felt that
I had a perfect candidate for a small quick reference to run in
The information following is the same as found in the documentation
for DVASCII.COM with minor modifications for account for the
differences between DVASCII.COM and DVSCODE.COM.
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.
Most of the speed is derived from the fact that each screen is hard
coded in memory and simply copied to the buffer provided by Desqview.
The extra memory required for this is offset by the memory saved by
restricting the screen size in the setup. The program only uses
an area 18 rows by 24 columns. You will notice the setup has the
maximum size set to these values as well. Desqview allocates 864
bytes for the screen buffer as opposed to 4000 bytes for a full
screen buffer. The program itself runs in a 4k window. Total memory
to run the program totals 9k. This includes the screen buffer as well
as memory needed for shell.com and other Desqview features.
Another benefit of this method is that all the code normally included
for determining the Video mode and the refresh logic is eliminated.
This proved a major benefit since I have just started to learn assembler
and have enough to worry about.
Desqview 2.0 :You MUST have this version or later
Dvscode.com :the executable program
Co-pif.dvp :the program information file used by desqview
(see next section)
Reasonable compatability with the 'standard' IBM is assumed when
running this program. I use interupt 16h to check for key
strokes pending and to retrieve the same.
Program information file:
I have provided the 2 screens from change a program to illustrate the
required settings should the At-pif.dvp be missing or incorrect.
Five points should be noted:
1: Memory size is set to 4k. More is not needed, less will
produce an error message.
2: Maximum and starting screen size is set to 17 for the height
and 43 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.
3: 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.
4: 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. The saves a nice
chunk of memory that would otherwise be wasted.
5: The program will appear on the Add a program (other)
menu as Desqview Scan Code. Keep this in mind in case
you have a problem finding it.
Change a Program
Program Name............: Desqview Scan Code
Keys to Use on Open Menu: CO Memory Size (in K): 4
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.: 43 Starting Width.: 43 Starting Column: 1
Close on exit to DOS.........: [Y] Uses its own colors.........: [N]
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
Three keys are used to control the program function.
** 1: Page Down: Displays the next page of the Reference
** 2: Page Up: Displays the previous page of the Reference.
3: Escape: Exits the program. Close the window when
the 'Close on exit to DOS' option is set to Y.
** NOTE: Paging is circular in that paging down when on the
last chart page returns to the first page. Paging up when
on the first display page will move to the last page.
This program has been successfully run on the following
1: Compaq 386 (color)
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 and the BIOS is by PHEONIX
I have written this program because I have not found a
satisfactory alternative. I have learned a little about
assmebler 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.