DESQview/X: Forgotten mid-1990s OS from the future
lunduke.substack.com
lunduke.substack.com
My uncle, Gary Pope, co-founded the company. I grew up with DESQview and QEMM as two of our primary pieces of software running on our computers.
I moved onto Linux many years later, and used to have a Linux box as my primary machine, but with a DOS computer sitting next to it, DESQview/X loaded up, and would use DESQview/X as a makeshift second monitor by using it as an X11 display server.
DESQview/X was based on X11R5, I believe, rather than X11R6, so I was a bit limited in terms of which software worked, but terminals were just fine.
Anyway...
A while back, I assembled all the DESQview/Quarterdeck material I had sitting around and put it up for others to look at. There's some stuff in here that you won't find anywhere else:
https://www.dropbox.com/sh/htvf2edf3mrx0be/AABllqVhf0BzOytup...
There's a README with some background, screenshots, marketing material, photos, product reviews, and even a paper that my mom wrote up about DESQ (the precursor to DESQview and DESQview/X), with a little bit of background on its development, back in 1984.
Hope it proves interesting! :)
The company was sold to Symantec back in the late 90s, I believe, and he retired (for the most part). At that point, he no longer had the source code. Symantec eventually closed it down. Given the state of things like version control back then, I would be surprised if anybody has that source.
If I thought I could get it, I'd have asked for it loooong ago :)
https://slashdot.org/story/02/01/27/1950244/desqviewx-night-...
Looks like I commented on that thread way back then. And I think my comment there was at least mostly correct. I was always under the impression that much of the core of the product, the interesting bits, was done in assembly, or a layer on top of assembly (they used something called SYMPL in the DESQ and DESQview eras, but I'm not sure about DESQview/X). This would have been for performance and memory constraints.
I'll have to call and get clarification on all that. I might be mistaken.
In the later years, Quarterdeck transitioned to building DOS and Windows applications like CleanSweep. That was the era when Symantec bought them. I always got the impression that DESQview wasn't really an interest of theirs. It would be interesting to know what they would have done with the source in that era.
device=qemm.sys
next up: xtree!
It's impressive that this software is long deceased and still people hold it dear - that's QUALITY, hard to find in today's world of half-baked, half-finished things designed to fail as soon as they're out of warranty.
On the technical side I wonder how the pre-emptive multi-tasking was realised without a MMU, i.e. pre-386? I heard QMX also had that, but it seems tricky to provide that in a stable manner without memory protection.
But it's true that, without memory protection, a bug in one program can corrupt all the other programs, too. The 286 did have memory protection, FWIW, and arguably an on-chip MMU: https://en.wikipedia.org/wiki/Intel_80286#Protected_mode https://retrocomputing.stackexchange.com/questions/7683/how-... http://www.rcollins.org/articles/pmbasics/tspec_a1_doc.html
EUMEL and Oberon handled this by implementing memory protection in the compiler, but obviously that doesn't help with existing MS-DOS applications unless your compiler's source language is 8086 machine code. That's more or less the approach VMWare and QEMU used to virtualize non-virtualizable hardware. Not sure about Soft-ICE.
Also, btw, the 80386 came out in 01985, and DESQview/X came out 7 years later, in 01992.
It's on my task list for the holidays.
There is some ongoing work to get this working in DOSEMU2.
Would you consider asking your family if they would be up for opening the source code for Desqview/X ?
Early in my career, I did work with a former employee of my uncle’s, who worked on DESQview/X back in the day, and we spoke a lot about that time. If he had the source stashed away someplace, he never admitted it.
I wish I could offer more hope than that. I want it too :/
DesqView/X: A Technical Perspective [book] - https://news.ycombinator.com/item?id=7061438 - Jan 2014 (0 comments)
I remember being impressed by the fact that I could run multiple applications at the same time and switch between them. I think I ran a BBS at the time (a combination of Frontdoor and something else... the memory is thin).
I vaguely remember excitingly showing my parents, probably my mother, "Look! I can run multiple applications and switch between them!!!", and she gave me a confused look of "what the hell is this boy going on about".
I played with but didn't run it - I was running Maximus on OS/2 at the time :)
DESQview was a huge help maintaining the board while it was actually running, and especially for the nightly tasks.
edit: I should add, the BBS software was Maximus.
I bet I still have all the floppies I saved everything to in my garage. Alas, the SyQuest 88MB removable disk drive (in all its SCSI glory) that I eventually ran everything off of once that "huge" 20MB Seagate drive filled up bit the dust a few years ago.
thank you!
UPT! No kidding. That's a blast from the past. Sadly, I only remember a few particular people from that time. I got to meet just a few of them IRL. I was slightly too young to go to the various 'cons, etc, before the Internet came storming-in and killed the BBS scene.
We all thought we were pretty cool, but of course, there was an even sub-er subculture that was doing the UPT thing but on BBSs set up on X.25 networks; that's how you get to, for instance, the 8lgm people.
There was a conversation on HN a couple of years ago where somebody posted a particular old X.25 NUA (ending in "..0177") that brought back a flood of memories. There was quite a thrill in "exploring" back then (wardialing, scanning the X.25 networks, messing with voicemail systems, etc). I never did get into that SCO Unix box that purported to be in a local Taco Bell... >smile<
You should post a link!
Every once in a while when I'm using a common unix command, I find myself randomly re-encountering the frame of mind that I was in, the world outlook I had, and the sense of amazement I experienced when I first learned it as a kid. A sudden and explicable feeling awe at the breathtaking pervasive power of "cat" or "ls" or "echo" and how they fit together, and the very idea of a shell with commands and files and directories that you could name, look at, change, and move around. Remembering the excitement of discovering and fitting a new important puzzle piece into the growing model of what I was learning.
I was smarter as an 18 year old than I am now, though! That's a thing my IRC friends from the time constantly talk about today; the people we were when we were shouting each other out in 1990s Phrack issues seem a lot sharper than we are now. We used to hang out and build "protected mode program loaders" for fun. You know, operating systems.
Youthful energy? Or maybe the limitations of the tech made us work cleverly and thus made us prouder of the result.
I did indeed run a BBS on OS/2 and played X-Wing vs. Tie-Fighter while people were dialing in without a hitch.
At least that's how I want to remember it. Surprisingly I never tried DesqView but it looks great!
I think they leveraged this to do stuff like update the appearance of buttons on click in the higher priority event process (and then send an event), to give a more responsive feel to the UI.
I also remember Mosaic once had a use after free bug on graphics contexts and would occasionally render a web page in another window.
OS/2 had great multitasking, but I remember its driver support being limited for multiport serial boards. I had an Arnet Smartport 8 and couldn't move from DesqView to OS/2 because there was no support for it.
I ended up running OS/2 Warp when it came time to run my own BBS. :)
There was another oddball multitasking OS out there from the late 1980s as well: VM/386. It was originally developed by Softguard (better known for floppy-disk copy protection schemes) and then sold to and launched by IGC. It used the 386's virtual 8086 mode to run virtual machines, a far predecessor to VT-x and AMD-V. I never saw it in action, though. It ran separate DOS instances in each VM, but the 386 only supported real-mode VMs.
Yes.
In fact, I once ran it on an original 4.77MHz 8088. Just as an experiment, I ran two copies of BASICA in two separate windows. The two interpreters ran in parallel, and thanks to DesqView's lack of memory protection, it was possible to send data from one to the other via a simple form of shared memory IPC. (DEF SEG to pick a common memory segment between the two, and POKE/PEEK to send/receive data.)
The trouble with the 8088/286 class machines was really the lack of memory to run multiple applications and the fact that most serious DOS code assumed direct hardware access. Both of these made useful multitasking difficult. DesqView/386 fixed this by using QEMM to run the 386 in protected mode. This gave access to much more memory (if you could afford it), as well as memory protection and V86 multitasking. Fixed most of the significant issues with smaller systems.
(Video of someone doing two users on a CoCo: https://www.youtube.com/watch?v=deBPEPPIdwk)
I got it at the COMDEX Chicago show where they were doing their first demos (nothing for sale today, sorry) and the GEOS booth got kidnapped by the AOL team for their deal. Nearly had to tackle the guy for it but I just knew that this was a "damn that shoulda worked" doomed product right then.
Edit: As I recall, they were far more interested in playing with their R/C blimp that morning than in talking to customers. I had a spiel all wound up about "I can put copies of your software in $X offices this month, if it works for our app: gimme a demo copy" but never got to deliver it.
It is disappointing about the booth personnel's lack of interest, but you did at least milk a blimp out of them, right? IIRC, we had about as much engagement when we talked to them, but at least we got swag (granted, the "R" in "R/C" stood for "wired remote", not "radio"). Stopped at McDonald's on the way home to Indianapolis to fill it with helium. Played with it for a month, then lost interest, like most swag. Still, probably the best swag we've received.
I used DESQview for years, but the /X was doomed to fall under the wheels of the Windows 95 marketing machine, or just the MS marketing machine in general. Even I didn't use it all that much, having moved on to OS/2 Warp when it came out.
In X, the server is the graphical terminal (i.e. your computer) and the client is the remote computer executing the program. The idea is that display and UI devices are the static resources being served to any number of programs.
It’s not technically accurate to say that this or that computer is the server or client, the X architecture isn’t about hardware, it’s about software components. You often run both the X server and several X client applications on the same box for example.
https://en.wikipedia.org/wiki/X_Window_System#Software_archi...
I mean, sure, you can call your laptop the client all day long, but in X windows terminology the laptop is the X server. So you'd be wrong. :-)
Even Windows and Mac have a concept of a display server which is pretty closely the same. Yet people don't seem to criticize that?
I mostly find it confusing that people find X11 client / server technology confusing The client is the one asking for updates on the screen, the server is the one updating the screen. OK, in X11 the server is the think closest to the user, maybe that's what's so confusing?
So, Wildcat! or PC-Board?
I think Renegade's non-warez scene competition was TAG, WWIV, Wildcat and (of course) Telegard. I kind of liked all of them for various reasons!
Edit: my first BBS ran on an Atari 800XL with software written by Jeff Minter. Had to hack up a ring detector for the lame Atari 1200 baud modem. Lol!
DV was everything a UI should be. Incredibly fast and responsive. Keyboardable for everything. And it stayed the hell out of the way unless you asked it for something. It unlocked the potential of the 80386, and finally gave us the multitasking we'd been promised for years. Better yet, I could use all my same software; it successfully merged my single-purpose DOS applications into a multi-purpose environment that I could use for every aspect of my daily tasks.
Windows was a sorry joke in comparison. The DOS experience on Windows was second-class, and terminal software for Windows was never as good or as flexible as Telemate. I only begrudgingly installed Windows because it was required to play with all this "winsock" software I'd been hearing about, since I had no clue how to set up TCP/IP on DOS. (There might've been tutorials in places I didn't know to look, but Windows advice was everywhere.) And single-session BBSing was rapidly going the way of the dodo, so with it went DV.
The irony here is that DV/X would've allowed me to do all the things Windows was offering, probably in a better way, if only I'd realized that at the time.
More's the pity.
http://www.ka9q.net/code/ka9qnos/
There were other ways too, but i found that code so valuable several times
https://en.wikipedia.org/wiki/Minnesota_Internet_Users_Essen...
hex viewer :-)
That's literally how Windows has worked since 1.0. You can still resize and move windows without leaving the keyboard. The shortcut key is Alt-Space if you're curious.
Old keyboard shortcuts stop working as applications implement their own UI controls through Electron and similar systems. Keyboard shortcuts work inconsistently or completely because the developers of the necessary UI frameworks don't know or don't care about them, Microsoft itself included.
The legacy systems and functionality of windows are being removed as programs are turned into apps. I think that's a real shame.
> Old keyboard shortcuts stop working as applications implement their own UI controls through Electron
How are these related to the keyboard support in the OS?
> Microsoft itself included
Can you give an example where Microsoft stopped caring about keyboard shortcuts?
> it would be quite nice to be able to run DESQview using newer graphics cards (read: higher resolution)
This was by far it's biggest limitation. At the time interest in higher than SVGA resolution was just beginning. Support for the latest high resolution cards/modes was limited (though I think later versions had generic VESA driver support which helped somewhat. Don't forget your monitor also had to support higher resolutions and large high resolution monitors were very expensive.
That didn't work out so well. Good to learn those lessons young.
would be curious if it actually would work with remote x clients on the unix machines of the time. (assuming they had complete X11 implementations)
The PC market had X servers like Exceed, but in 1990 it was uncommon for a PC to have enough RAM to run DOS, a TCP stack and X11. Also the TCP stack was $400 per seat.
As PCs got more powerful, Windows 3 fitted most people’s needs much better, and came with Solitaire.
The workstation market was hot around then. Even Atari and Commodore tried to bring out lower end 68020 & 68030 Unix workstations. Until Windows 95 and NT rolled out it seemed like maybe the future belonged to Unix. But that didn't pan out, really, not til later anyways.
Re: price $275 in 1992, it seems: https://techmonitor.ai/techonology/quarterdecks_desqviewx_du...
So not cheap, but not insanely priced.
But in 1993 I was also installing Linux for free on my 486. And I even had a working X11 environment.
Universities in the early 90s had networked X services everywhere.
I was definitely born a little bit too late. I started university in the very-late 90s, and nearly all the "public" (as in, open to all students) computer labs ran Windows NT (and later Win2k). (At least they were set up with networked home directories, so students could easily access saved coursework wherever they were.)
But there was one lab in particular that I enjoyed, though: one of my professors had a computer lab that he had de-facto control over, and all the machines ran FreeBSD (his one true OS love). I would ssh back into my dorm-room computer (running Red Hat, I think?), so I could run my personal X11 apps on the X server on the FreeBSD box I was using. Unfortunately I only had access to that lab for a few semesters, as access was granted only while taking some particular classes. Those machines had a bunch of hardware design simulators and Verilog & VHDL compilers on them; it was mainly an ECE hardware design lab.
Some universities did. Mine had computer labs with non-networked PC's running DOS and a single machine with a printer attached that you lined up for so you could take your turn to print. But to be fair it was a liberal arts school with no computer sciences or engineering program.
$275 misses the big investment in hardware over just DOS or even Win3. Other folks have mentioned the investments in CPU, RAM, and Graphics that would need to be made to be productive, and these were all expensive then. I'd guess you'd be looking at $1000+ which is about $2000+ today.
Most businesses didn't absolutely need it, and worse was better unfortunately.
Being able to run X Windows programs an DOS and Windows 3 is amazing. I am sure there are lots of ways it could have been taken advantage of. The majority of potential customers were just too dumb though.
There doesn't always need to be a good reason for something to be unpopular. Sometimes, it's just because the flock of sheep were going in a different direction. Maybe they were going that way because the shepard got a bribe.
1) Running X and DOS applications was an interesting concept in a world (i.e. x86 PCs) where no standard GUI had yet dominated. The concept that Quarterdeck was likely banking on was that DOS apps would continue to be the standard on the PC with more 'enterprisey' applications running on big iron Unix systems for corporations/government/education. Unfortunately for Quarterdeck, this didn't happen the way they thought/hoped it would as X never really got traction beyond the workstation market until Linux took off. As we all know now, the way most users ended up interacting with Unix/Linux systems is via a web browser... no X required.
2) This was right around the time Windows was starting to take off. While Windows didn't do nearly as good a job at multitasking DOS applications (i.e. it didn't provide them as much conventional memory and the task switching was quite chunky) it provided enough of a stop-gap solution while Microsoft pushed what would become MS Office hard. So within about a year of it being released, the question was transitioning from 'will it run my DOS applications' to 'will it run my Windows applications' for many. On the X side, by 1994 Linux had both X (client and server) support and a networking stack, performed better and was free. So both sides of the value proposition (multitasking DOS apps and being an X server) were rendered moot.
3) Unlike other desktop OS's, DESQView/X didn't have many 'native' applications since very little software was ever ported to run client-side. So for the majority of users who didn't need to run X applications across a network, it was really just a DOS multitasker with a nice (for its time) GUI.
It’s the same position Coherent was in; sure, it was cool technology at the time, but Linux was also available and was underselling the competition. The only PC OS anyone was paying money for in 1995 was Windows 95 or Windows NT; Windows 95 had killed OS/2 Warp at this point, and proprietary UNIX and UNIX-like stuff on PCs was already being edged out by Linux.
Although, I can't imagine that this use-case was all that popular. It was a great glimpse of what was possible on the hardware of the day, but still seemed like more of a gimmick. But given that we run everything on virtual servers these days, it was really ahead of its time.
[1] PCBoard, if you want to know. Writing door programs in the PCBoard language was my first real taste of programming.
Back in the day I ran a multi-node BBS and like the vast majority of BBSes in my area, they were all DOS-based applications[0]. I had written my own BBS software, originally a Telegard 2.4(3?) hack.
It was basically impossible to get a multi-node system working purely with DOS/Windows[1]. The (few useless) options for multi-tasking were nearly non-functional and this became monumentally worse when I had re-written the library which put text on the screen with some fancy assembly language that made everything positively fly on my 80486.
Enter Desqview/X -- for the DOS era, it was crazy. It just worked. Very few things other than the simplest in DOS "just worked". Aside from the odd interface (which wasn't all that much more odd than Windows 3.x) it performed exceptionally well, managing three active nodes without choking. Meanwhile, dear old Dad could fire up Lotus 1-2-3 while the BBS was running and didn't have to take the whole setup down[2].
[0] Telegard (later Renegade) and T.A.G. were the most common in my area code. I ran custom software that I wrote.
[1] Not entirely true, I know before I ran Desqview/X I was doing something else to make everything work, but it fell apart when I altered the software to improve screen writing performance.
[2] My dad was a small business owner who did his and the businesses taxes, himself. So February~AprilI had to figure what to do with my time since the computer was occupied during most non-school hours by my dad.
>X will not run in these 4 bit overlay planes. This is because I’m using Motif, which is so sophisticated it forces you to put a 1" thick border around each window in case your mouse is so worthless you can’t hit anything you aim at, so you need widgets designed from the same style manual as the runway at Moscow International Airport. My program has a browser that actually uses different colors to distinguish different kinds of nodes. Unlike a PC Jr, however, this workstation with $150,000 worth of 28 bits-per-pixel supercharged display hardware cannot display more than 16 colors at a time. If you’re using the Motif self-abuse kit, asking for the 17th color causes your program to crash horribly.
As a matter of fact, the mess with widgets and X APIs was the turning point for me where I started to understand why these suits spent so much damn $$$ on Win32
The window borders are 5px, vs. Motif's 6px (in your screenshot). The Motif button borders are actually thinner (2px vs. 3px). The Motif frames around lists are thicker (2px vs. 1px).
Instant, retro style, modern guts UNIX laptop.
It allowed for a lot of things that you'd take for granted today-- like logging into an additional local-only node in the background to reply to messages, or doing file management while you had users online.
Hell, even load up some less-intensive games in the foreground and carefully set up DV's preemptive levels to minimize the slowdown to the BBS.
We started with QuickBBS but migrated to RemoteAccess later when QBBS went through a major stall and never recovered. As far as I understand, QuickBBS suffered from a major problem with leadership/ownership-- I don't remember specifics but I do remember that there was maybe one or two releases after that got cleared up but QBBS had already died off by that point. Since RemoteAccess was nearly 1:1 compatible and still getting upgraded, the decision was pretty obvious.
I still remember arguing w someone who said "preemptive multitasking was something the average user will never want." <sigh>
A decade later when I got to CMU for grad school I was talking to a professor when I saw he was using DESQview/X as his desktop OS…in 2004.
I thought that was wild until I met a cluster of folks at IBM Research still running OS/2 in 2012 when my office got moved to Yorktown Heights.
Such pleasant memories…but I think I’ll stick with modern desktop environments.
My colleagues and I had 1 MiB 386 DOS machines for writing and cross-assembling Z80 software. I was inspired by a shoot-out article in one of the PC magazines that compared DesqView, Windows 3.0, and TopView. Apparently it wasn't widely known in 1990 that Windows 3.0 DOS boxes were preemptively multitasked in 386 enhanced mode, with one of those DOS boxes being used for Win16. (This is a fair but radically simplified description of Windows 3.0) The author of the shoot-out pointed out that you could multitask DOS programs this way. So I got approval to install an additional 4 MiB of RAM and Windows 3.0 on my system. Once I got that booted up I started a program build in one DOS box and the text mode source editor in another. I had never had the chance to multitask in this way before, so I stared at the source code, trying to decide what to do. Until the makefile automatically tried to load the binary into the Z80 debugger. The PC locked up.
Since my assumption had been that this method would work out of the box, it was clear that it wasn't time yet for this. I did enough to conclude that the serial port code in the host code of the Z80 debugger was the issue, but not enough to figure out exactly where the bug was.
DesqView and TopView would have been equal to Windows at doing what I was trying to do, but I think Windows was close to the same cost and also had some other potential benefits.
I used my enhanced machine to enhance some tools that benefited from having "lots" of RAM, and gradually my colleagues added the RAM and ran those tools and modified others, and that was the direction the experiment went until I moved on to another company.
DesqView/X was the same product bundled with some very good X server/client components. Think of it as an X client as well as a local system manager running any x86 component.
The shit was really ahead of it’s time.
Edit: Oh, you asked about resource requirements. Yes, and yes. Fortunately, DOS binaries aren’t large, but it’s all relative.
Around that time I found a PC running NT in a lab with 20MB in it (cobbled together from two PCs) and thought it was astounding.
This is quite reasonable for 1992, and the extra ram was likely needed only for the graphics. DESQView itself could run on an 8088 system and didn't even require EMS (although if you did have an EMS board, and configured the system so that the EMS board backfilled the latter 512K, it could multitask much larger programs at the same time as that enabled it to swap entire programs in/out of lower address space instantly).
I've been a low-level 8088 coding hobbyist for many years, and DESQView is still incredibly impressive to me, especially since I know what it has to do under the hood to work and be stable.
So that is when MS started on Windows 95. I thought not accepting the offer was a mistake, curious what would have happened if they did sell out.
(Assuming it used a lot less resources than NT, Win 2000 didn't arrive until 2000ish, XP 2001ish.)
In Portugal it was mostly bundled with Phillips PCs.
But... IIRC that was just the default look/theme, and you could switch between a hand full of (only) slightly different ones.
In the 80's I built a multi-line electronic claims submission host for a local insurance company that ran the same app 4 times under Desqview (not X). Each app talked to different port of a 4-port serial card, each port hooked to a 2400 baud modem. I had to write an ISR in assembly to handle the incoming serial data because the drivers for the serial card couldn't do the job, but other than that, the Desqview APIs were all I needed.
Ehhh.. DOS isn't much of an OS-- more of an abstraction layer over hardware. Desqview provided a significant extension by providing multitasking services and abstraction of the display device.
Netware was another server OS that reused it. I think even some Linux utils could load it from DOS. Both loaded themselves directly into memory right over DOS if memory serves, because it had no ability to stop you. So yes, an OS, at least the 99% that matters.
No. A BIOS wrapper with an ABI.
I did end up running a bunch of surplus X terms in my home lab, MIPS R4400 based with 32MB of ram. It was glorious.
Edit: Nevermind, i was running the older, DOS-based version
Then I got a copy of os/2 warp and never looked back, only moving on when I received an infomagic 4 cd set of linux distros.
https://news.ycombinator.com/item?id=16045149
http://cs.gettysburg.edu/~duncjo01/archive/patterns/OEM/DVX/
'DESQView/X 2.1 (x86) Motif running under VirtualBox'