DESQview/X Software Ports
DESQview/X (a.k.a. desqview/x, dv/x, dvx) is no longer widely
available. So, in case that you have not seen it, or are new to
DESQview/X, I thought that I would try to give a brief answer to the
question "What is DESQview/X?"
DESQview/X was a product of a now-defunct software company called
Quarterdeck. Quarterdeck was bought by Symantec, which no longer
supports this product. For many people, DESQview/X is simply an X11R5
X-server. It turns any DOS-based 386-or-above PC into an X-terminal.
It's more than just an X-terminal, however. As I see it, the most
important additional features of DESQview/X are:
It extends DOS to a preemptive multitasking
operating system (as does another Quarterdeck product, DESQview).
Furthermore, Quarterdeck provides a free library for Version 1.12 of
the compiler djgpp, the
DOS version of gcc/gpp/g++. The library provides network and X
windows functions in C. Most of the programs available on this page
were compiled using this library. (Compiling Mosaic also required a
Motif library, which must be purchased separately from Quarterdeck.
You don't need this to run Mosaic, though.) The end result is an
operating system that is a cross between DOS and Unix, with the
largest differences being the DOS limitations on the format of file
names, and the lack of file ownership in DOS. One of the advantages
of using this operating system, as opposed to Linux, is that your DOS
programs and device drivers will work under DESQview/X.
It allows you to run Windows 3.1 (but not
Windows 95/98, NT, or 2000) in an X-window, and display on any
X-server. This means that while sitting at your Unix workstation you
can run Windows programs remotely over a network. Of course, the
display may also be on the machine running DESQview/X (either in an
X-window or in direct mode).
My port of Mosaic from 1996 (see below) is no longer adequate to
view many web sites. (It doesn't support frames, for example!) So
I've recently spent some time getting the
Arachne web browser to run under
DESQview/X. This didn't require any changes to Arachne -- just
careful management of conventional memory and proper configuration of
the network interfaces. The main difficulties are that Arachne
requires 500KB of conventional memory to run and that Arachne cannot
share the network interface card and driver that DESQview/X is using.
But I got it to work, and thought I would share the steps that I took.
- Here's the tricky part, and it was suggested to me by Gary Welles.
Install two network cards in your machine rather than just one. The
first one will be used by the DV/X network manager as usual. Once
you have started DV/X, open a DOS window and load a packet driver for
the second card in conventional memory. Then start the Arachne
browser from that window. When you configure DV/X and Arachne, select
different IP addresses for the two cards. (You'll have to figure out
whether you have two IP addresses available. If your machine sits
behind a firewall that performs network address translation, this
should be no problem.) I found that loading network drivers for both cards
before starting DV/X did not work -- in this case Arachne caused the
machine to crash when I started it.
- Arachne will take over the console when you run it. You can
switch back to the DV/X display by pressing ALT twice. I found
however, that if I tried to return to the Arachne window, the display
was not properly restored. So instead, it's better to press ESC to
exit Arachne, and then to restart it using the -r flag (for "resume")
from the same DOS window in which you loaded the packet driver. (The
-r flag resumes your browsing session at the last page that you
visited.)
I've also started running both Internet Explorer 4.0 and Netscape
Navigator Gold 3.04 under Windows 3.1, running in an X window. (I was
unable to get Netscape Navigator 4.07 to work.) The trick, as in
running Arachne, is to use separate network cards for Windows and
DESQview/X. To load the packet drivers for Windows, I modified
winx.dvp so that instead of launching winx.exe, it instead launches
WINX.BAT. This file first loads a packet driver for the second
network card, then loads the Trumpet virtual packet driver for
Windows, and finally runs WINX.EXE, as shown below.
C:3円C5903円C59XPD.COM /I=0x66
The same approach can be used to load a packet driver for Windows 3.1
when run from DESQview/X in "direct" mode.
The hints below may help you get the most out of DESQview/X, Version
2.10 (the most recent version).
- The newsgroup for DESQview/X is comp.os.msdos.desqview.
- Turn off reverse DNS lookups in the Network Manager. (Go to
DESQview/X Setup -> Advanced Network Setup -> Control Network Manager
-> Display Host Names, and set the value to "No".) I've found that
that the network manager somestimes crashes otherwise. (Ironically,
this happens when it attempts to resolve and display Akamai host names!)
- Use the right version of
go32.exe, Version 1.12special1. (See below.) DESQview/X tends to
crash when other versions are used.
- If you want to run DESQview/X at a resolution of 1280x1024 with
256 colors, you will have to choose your video card carefully. Cards
using the Cirrus Logic CL-GCD5434 chipset don't seem to work in this
mode. (These cards include the STB Nitro 64, and the Diamond
SpeedStar Graphics 2200.) Cards using the ATI mach64 chipset seem to
work. These include the ATI WIN TURBO, GRAPHICS PRO TURBO,
and GRAPHICS XPRESSION cards. (It is also likely that cards using the
ATI mach32 chipset will work. These cards include the ATI GRAPHICS
ULTRA PRO and GRAPHICS ULTRA+.)
- Download the patch lpdlpr.zip, which
fixes the print manager.
- Download the patch qpat3.exe,
which updates QEMM from version 7.5 to 7.53.
- Consider purchasing Helix's "Multimedia Cloaking"
software, which provides very compact replacement TSR's for MOUSE,
SMARTDRV, and MSCDEX. Running QEMM Version 7.53 on a 486 DX/2 system,
I had to add the options /USEVCPI /USEVDS /NOPENTIUM to the line that
loads cloaking.exe. Warning: The cloaked version of the CD-ROM
extensions MSCDEX seems to crash DESQview/X.
- To save conventional/upper memory, don't load MSCDEX before running
DESQview/X. If you need to access a CD-ROM drive while running DV/X,
open a new DOS window in DV/X, load MSCDEX into conventional memory,
and then launch the program that needs to access the disc from the DOS
window. MSCDEX is a particular problem because the "cloaked" MSCDEX
driver discussed above does not happily coexist with DV/X.
- Here's a more radical step for saving conventional memory
suggested in the old DV/X FAQ. The idea will be to load your network
drivers only in the memory space of the DOS window that is running the
DV/X network manager. Here's what to do. When DV/X starts, it uses
C:\DVX\DVPS\NETPTM.DVP to load the network manager, assuming you are
using the Novell network stack provided with DV/X. So, edit
NETPTM.DVP so that instead of running NETPTM.EXE, it runs NETPTM.BAT
(from directory C:\DVX\NETWORK). Also increase the amount of memory
allocated to the program from 240KB to 350KB.
Create a new file C:\DVX\NETWORK\NETPTM.BAT. It should load your
network drivers, and then execute NETPTM.EXE. Mine looks like this.
C:\NET\ODI\LSL.COM /C=C:\NET.CFG
Now you can remove the commands that load LSL.COM, 3C509.COM, and
TCPIP.EXE from your AUTOEXEC.BAT file (and rerun OPTIMIZE). These drivers
will no longer occupy any conventional or upper memory in DOS windows
that you open inside of DV/X.
- I use stacker to compress my hard drives, and the stacker driver
can potentially consume a lot of conventional/upper memory. To reduce
the amount of memory required, the cluster size for each compressed disk
should be kept as small as possible (I use 8K clusters). Also, before
loading stacker's "stachigh.sys" driver, a DPMS driver should be
loaded. Stacker provides one, but so does the cloaking software. If
you load the cloaking software first, you don't need to load stacker's
DPMS driver. (In fact it will detect the first driver and not load.)
You can tell that you've succeeded in using DPMS if stachigh.sys
consumes just 17K of conventional or upper memory (for 8K clusters).
The cluster size really matters -- when using 32K clusters
stachigh.sys consumes 40K of memory.
- Certain Windows programs (like Excel) rely on the DOS share
program, which provides file-sharing and locking capabilities. If you
want to run these programs while in DESQview/X, you should run
C:\DOS\SHARE.EXE before starting DESQview/X. (In order to run Excel,
you will also need around 460K of free conventional memory.)
- Besides using the Multimedia Cloaking software and QEMM's
OPTIMIZE program, conventional memory can be freed through the "Tune
Performance" section in DESQview/X setup. (My settings: Common Memory
32K, DOS I/O Buffer 0K, Font Cache Size 16K, Network Buffer 0K,
Virtual Memory 5120K, Reserved Memory 0K.)
- Allocate plenty of file handles. E.g., put FILES=50 in your
config.sys file. I also set STACKS=0,0 BUFFERS=10 FCBS=1.
- Remove the line "DOS=HIGH" from config.sys or autoexec.bat.
- Use program QSETUP to enable "DOS-UP" (Partial), and then run
OPTIMIZE. Note: If you manually make changes to your autoexec.bat and
config.sys files (which I sometimes do), you may accidentally make these
files inconsistent with file C:\QEMM\DOS-UP.DAT. This can lead to
mysterious crashes, whether you are running DOS, Windows, or
DESQview/X. Assuming that you specify multiple configurations in your
config.sys file, the solution is to delete the corresponding section
in C:\QEMM\DOS-UP.DAT, and then rerun OPTIMIZE.
- Remove the line that loads QDMPI from config.sys or autoexec.bat.
- When running multiple processes, DESQview/X will sometimes
temporarily freeze. Wait at least 30 seconds before pressing the
reset button on your computer.
The following programs all run under DESQview/X Version 2.10.
- go32.exe, Version 1.12special1. go32.exe is needed to execute
the ssh, Mosaic, Ghostview, Ghostscript, dvix, Emacs, xman, xcalc, and
xfig programs listed below. go32 provides a 32-bit runtime system for
programs compiled with djgpp, the DOS version of gcc, which was
created by D. J. Delorie. The compiler itself can be found at
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v1/. The newsgroup
for djgpp is comp.os.msdos.djgpp. This
version of go32.exe seems to work particularly well with DESQview/X.
I've had trouble with others.
- ssh, version 1.2.27. I have recently (May 2000) ported ssh
(secure shell) to DESQview/X. This is a cryptographically secure
replacement for telnet. For export control reasons, I can't make the
source or executable code available on the web. But if you would like
a copy and can convince me that you are in the U.S., I'll send you a
copy. Please send me email at bmm@cs.cmu.edu.
To use the port, you would type the following:
C:\> set DISPLAY=10.10.10.1:0
C:\> ssh -v bmm@mycomputer.myschool.edu xterm
In the first line, 10.10.10.1 is the IP address of the local host (the
machine running DESQview/X). The DISPLAY environment must be set if you
want to enter your passphrase without having it appear in the DOS
window, and also if you wish to have the program running on the remote
host display any X-windows on the local host.
In the second line both the user name, "bmm", and the command that is
to be run on the remote host, "xterm", are required. (-v indicates
verbose diagnostic output.) Username is required because the notion of
who the current user on a DESQview/X machine is a bit fuzzy to me.
The command is required because this port of ssh does not provide TTY
emulation. (The reason being that djgpp version 1.12 doesn't have a
TTY library.) But running xterm will do what you want it to do: run
an xterm on the remote machine, but have it display on the local host.
From this xterm you can then launch other programs on the remote
machine, and also have them display on the local host.
Not only does ssh make a connection to the remote host without sending
your password in the clear, it also cryptographically encodes all
of the data that is sent back and forth between the two machines
during the session. Furthermore, it automatically "tunnels" X traffic
through the connection in a secure fashion.
For all of this to work, you'll need to have sshd running on the
remote host. This is pretty standard these days on Unix systems.
A few other remarks: the port assumes that the files containing the
list of known hosts, the random seed, etc., are stored in /dot.ssh/ on
whatever disk you run ssh from, and will create this directory if it
doesn't exist. It also looks for some things in /etc/. It doesn't
have to find any files to run successfully, though.
I've noticed that DESQview/X behaves badly when you attempt to open
more sockets than the network manager allows. I bumped into the limit
because ssh will open two sockets to the local X server for each X
window that is displayed on the local host. So don't try to open too
many. But I'm able to get three xterms, an xemacs, an ical, and an
xbiff (running on two hosts) simultaneously.
- Mosaic, Version 2.7b5. Several small problems in the August
1996 port have been corrected (March 23, 1998). Please report any
bugs. Mosaic is the hugely successful web browser from NCSA (National
Center for Supercomputing Applications) at the University of Illinois.
This is the final version of Mosaic. It provides several new features
including backgrounds and some support for tables. Note: Gary Welles
suggests adding the following line to your Xresources file (mosaic.res)
for Mosaic: Mosaic*FrameHack: True.
mosaic.res 7K (sample Xresources file -- place in c:\dvx\app-defa)
xkeysymd.res 4K (activates various keyboard keys -- create directory c:\dvx\lib\x11 and place xkeysymd.res there)
m27port.txt
11K (describes what it took to port to DESQview/X)
- Mosaic, Version 2.5 (with support for in-line JPEG). This was my
first port of Mosaic to DESQview/X. This version is newer than the
one that Quarterdeck once made available, and several errors have been
corrected. In particular it is NOT necessary to place an xv.bat file
in your dvx directory. Important: Mosaic hangs on startup if you have
removed the line "device=rmgrdv.dvr" from file "dvdriver.lst" (if
you've done this to fix the print manager, download the patch qpat3.exe
instead).
mosaic.res 7K (sample Xresources file -- place in c:\dvx\app-defa)
m25port.txt
7K (describes what it took to port to DESQview/X)
- XEarth 1.0. This is a new (March, 1998) port by Gary Welles of
the latest and greatest XEarth. It supersedes a "bogus" version of
XEarth once available at Quarterdeck's web site. In this port, the
calls to sleep(wait_time) have been replaced with a timer function
that allows DV/X to treat XEarth as "waiting" rather than "slicing"
between updates. Also, a timeoffset resource has been added so that
XEarth gets UTC from the PC's local time.
- Ghostview, DV/X Version 1.4.1. This program provides a convenient
user interface for viewing postscript files. The version provided
here was ported to DESQview/X by David Ronis. It uses another program
called Ghostscript to actually display the files. Ghostview can be
used as an external viewer for Mosaic. In order to use this version
of Ghostview, you will need Ghostscript version 2.5.2, which is
available below. More recent versions of Ghostview and Ghostscript
(for other platforms), are available at http://www.cs.wisc.edu/~ghost/.
ghost.dvp 1K (place in c:\dvx\dvps and create directory c:\batch)
gsfonts.zip 1779K (Ghostscript fonts -- unzip in \usr\ghost)
gsps.zip 147K (auxiliary postscript files -- unzip in \usr\ghost)
- Ghostscript, Version 3.53. This is the latest version of
Ghostscript. It will work as a stand-alone viewer, but not in
conjunction with Ghostview. (Someday I'll get around to fixing this.)
I compiled it using a makefile for DESQview/X that was put together by
Tom Brosnan. To use Ghostscript, place gs.exe somewhere in your path.
I keep my .gsf fonts and the auxiliary postscript files in directory
d:\gs, and hence the line "SET GSFONTPATH=d:/gs" is included in my
autoexec.bat file.
gsps.zip 303K (auxiliary postscript files)
- xv, Version 3.00. This program allows you to view gif and jpeg
files and can be used as an external viewer for Mosaic. xv was
written by John Bradley. Recreational use of xv is free, but users
are encouraged to register. Non-recreational users are required to
register. More information about registration can be found by
pressing the "About xv" button while running the program. Other
versions are available via ftp://ftp.cis.upenn.edu/pub/xv".
xv.zip
1013K (executables and documentation; place xv.exe somewhere in your path)
- dvix. dvix is a program for viewing the .dvi files produced by the
TeX and LaTeX document processing programs. The version provided here
was ported to DESQview/X by Bruce Pike. I have fixed one or two small
bugs and changed the way dvix looks for its fonts. dvix understands
pk fonts. They should all be placed in the same directory, and have
their normal Unix names, without the final "pk" suffix. In order to use
dvix, you should add the following three lines to your autoexec.bat
file: "set TMP=c:\tmp", "set GO32TMP=c:/tmp", and "set
DVIX_FONTS=d:/texpkfnt". (The xdvi program has two constants,
FONT_DIRECTORY and DEFAULT_FONT_PATH, hardcoded to d:/texpkfnt, but
they can be overridden by setting DVIX_FONTS to something else.) dvix
can be used on its own, or as an external viewer for Mosaic. To use
it as an external viewer for Mosaic, change the name of the executable
from dvix.exe to xdvi.exe.
cmpk.zip 1106K (Computer Modern fonts, unzip in d:\)
amspk.zip 16092K (AMS fonts, REALLY HUGE, unzip in d:\)
- mpeg_pla. This program allows you to view mpeg motion video
files and can be used as an external viewer for Mosaic.
mpg20dvx.zip
168K (executagble and source; place mpeg_pla.exe somewhere in your
path)
- GNU Emacs, Version 19.30. DOS is now an officially supported platform
for Emacs, and so I was able to compile this version "out-of-the-box"
using djgpp Version 1.12maint4. Note, that my port runs entirely in a
DOS window, without taking advantage of any X-Windows
functionality. Complete source for Emacs is available via
ftp://prep.ai.mit.edu/pub/gnu. Place the following line in your
autoexec.bat file: "SET EMACSTOPDIR=C:/EMACS".
elisp.zip 5816K (emacs lisp files -- unzip in c:\emacs)
einfo.zip 795K (emacs help files -- unzip in c:\emacs)
etc.zip 989K (miscellaneous files -- unzip in c:\emacs)
- OEmacs, Version 4.1. This is a port of GNU Emacs version 19.19
that takes advantage of the X server in DESQview/X. All of the files
below should be unzipped from the same directory. Files will be
installed in a subdirectory called emacs-19.19. You should set the
current working directory to emacs-19.19/bin, and then use
emacnote.bat to start emacs. See the roadmap for more detailed descriptions of
the files below, and also the installation
instructions.
go32oe2.zip
247K (a special version of go32 required for oemacs only)
oe41min.zip
795K (minimum set of miscellaneous files needed to run oemacs)
oemacs.ini
5K (a sample .emacs file - rename it _emacs and place in emacs-19.19 directory)
- File and directory utilities. Gnu has developed a Unix-like set
of utilities for DOS for manipulating files and directories, including
programs for the following commands: rm, mv, cp, chmod, ls, sed, df,
du, cmp, and touch. Other useful utilities include zip/unzip,
gzip/gunzip and compress/uncompress (which Mosaic will invoke
automatically), tar, and grep.
gunzip.bat 1K (gunzip -- called by Mosaic, requires gzip)
decomp2.zip 17K (decompress -- decomp called by Mosaic)
- xman. xman is a program for viewing Unix-style man pages. Unlike
the Unix man command, however, xman is invoked without a file
argument. To use this command, add the following line to your
autoexec.bat file: "SET MANPATH = C:\USR\MAN". xman will look for man
pages in subdirectories of c:\usr\man named man1, man2, etc., so you
will need to create at least one of these subdirectories (e.g.,
c:\usr\man\man1) and place your man pages there. xman comes with a
help file named xman.hel, which I placed in c:\usr\man. To use this
help file, I invoke xman by typing "xman -helpfile
c:\usr\man\xman.hel". You may notice that some man pages contain
formatting directives such as ".SH NAME" that don't do anything except
to make the page difficult to read. The problem is that these pages
are in troff format. On a Unix system, xman would automatically
convert the page to man format by invoking a command like: "gtbl
sample.man | groff -Tascii -man> temp.man", where sample.man is the
page in question. The DESQview/X version of xman won't do this for
you, however, and fixing it would require interfacing xman and gtbl
and groff, which I didn't think was worth the effort. (At one time
ports of these utilities were available on the Quarterdeck ftp
server.) If these formatting directives bother you, I suggest that
you transfer the man page to a Unix system, convert it to man format,
and transfer it back.
- xcalc. xcalc is the familiar X calculator. It was ported to
DESQview/X by Bruce Pike.
xcalc.res 19K (required -- put in c:\dvx\app-defa)
xcalc.man 13K (man page -- put in c:\usr\man\man1)
- xfig. xfig is a program for drawing figures. It is similar to
the Macintosh program MacDraw. Some of the operations in xfig require
the use of the middle mouse button. If you don't have a middle
button, or your middle button isn't working, try pressing both the
left and right buttons simultaneously.
- A port of tclsh, tcl, wish, and wishx by Tom Poindexter.
-
DESQview-aware Video Display Editor.
- TeX,
LaTeX, BibTeX, and .dvi previewer for DOS.
-
Adobe Acrobat for DOS (for viewing .pdf files).
- Back to my home page.