Lost multitasking DOS, and that's not all...
May 25, 2022 7:03 AM   Subscribe

If you ever fiddled with DoubleDOS you may be surprised (as I was) to learn of Wendin-DOS. The fact that a multitasking DOS was a derivative of a kit built for an x86 Unixalike, years before the beginnings of Linux, is a weird bonus. Or anti-bonus. I don't know now. The main article is a touch cagey about linking the disk images, (though TBH I've failed with VirtualBox and those images)
posted by pompomtom (32 comments total) 11 users marked this as a favorite
 
Shout out to acb who retweeted a thing that made me regret so many hours of my 80s life being confused about multitasking.
posted by pompomtom at 7:05 AM on May 25, 2022 [1 favorite]


you may be surprised (as I was) to learn of Wendin-DOS

I remember looking at it when it first came out and being moderately impressed.

I remember being more impressed by Mortice Kern Systems' MKS toolkit, though.

At the time I was a diehard 68000-family bigot, doing my best to ignore the IBM PC and all its bastard offspring. I still don't like x86 much.
posted by flabdablet at 7:06 AM on May 25, 2022 [5 favorites]


Thank you now I will have to spend the next ten minutes lighting incense and meditating to re-purge DESQview and QEMM from my brain
posted by phooky at 7:13 AM on May 25, 2022 [11 favorites]


MKS toolkit

Cygwin for DOS?
posted by pompomtom at 7:16 AM on May 25, 2022


Hey, now. DESQview had its quirks but it didn't crash and freeze all the time like Windows did.
posted by flabdablet at 7:16 AM on May 25, 2022 [8 favorites]


(I mean: c for d: cool! not c for d: ??)
posted by pompomtom at 7:17 AM on May 25, 2022


Arrrgh, y'all made me remember real mode!
posted by genpfault at 7:18 AM on May 25, 2022 [2 favorites]


real mode

YOU WANT THE POKE? YOU CAN'T HANDLE THE POKE.
posted by pompomtom at 7:29 AM on May 25, 2022 [5 favorites]


If this is abandonware, surely there's no barrier to archive.org putting it up, and even providing one of their WebAssembly-based PC emulators to let you play with it in your browser.
posted by acb at 7:31 AM on May 25, 2022


YOU CAN'T HANDLE THE POKE.

If you really can, there's always TempleOS, the world's first sacred operating system, built to praise a God who abhors memory protection. (Which also comes with a nifty JIT-compiled C variant it is almost entirely written in.)
posted by acb at 7:34 AM on May 25, 2022 [3 favorites]


Did you mean to post a different link for Wendin-DOS, maybe something that explains what it is? You have two links to the disk image.
posted by Nelson at 7:48 AM on May 25, 2022


I remember trying (and failing) to do this sort of thing on the C64.
posted by MtDewd at 7:53 AM on May 25, 2022


This was floating around twitter last night, I assume it's the article that pompomtom meant to link in the post.
posted by Kyol at 8:12 AM on May 25, 2022 [1 favorite]


Because DOS programs can and usually do bypass OS calls, many programs must be "patched" in order to work.

What is old is new, I feel like I run into this all the time. Like reading the magazine article about Doubledos is like reading HackerNews or Lobste.rs.

Oh your new Rust/Typescript compiler solves all of your npm issues? Oh you can't use legacy stuff at all. Oh you created it all from scratch and your base library can't even do simple string stuff? Oh you actually just solved one tiny problem germane only to your problem domain? Okay cool I'll use Kubernetes, it says it can take care of the legacy stuff you can't. Oh but only if you're running the latest version of .Net... so then it really doesn't mean just any .Net program. And even then there are limitations? And I just wasted a day when I could have spun an uncool VM with a couple of PowerShell scripts and called it done.

I don't know about anyone else but most projects I've seen with good developers are really unsexy. I keep hoping to joining a project and seeing some really creative use of a tool I never thought of or a process that's really novel, or "just commit your code and we'll magically do blue/green deployment and rollbacks and you can watch it unfold on a dashboard!" But no it usually is a hodgepodge of emails announcing a deployment to a cluster I never heard of, another person asking to not do it since there's an update to an unrelated mobile app and a thousand alerts, finally an email from yet another team that the deployment was successful and error rate is low and you have no idea what happened.

No leetcode fancy pants algorithms, no Doubledos, just kind of a slow lurch.
posted by geoff. at 8:27 AM on May 25, 2022


All I can say is, it must not have worked very well. I don't see how it possibly could have lived up to the hype.

In 1986, the bleeding edge of high-performance DOS-compatible 80x86 computing was cutting the leads on your 8MHz master clock, replacing it with a 10-MHz crystal, and hoping the result was not too unstable. (That was overclocking, kids.)

The PC/AT machines of 1986 had a weird crippled notion of virtual memory that assumed nobody would ever care about a data object larger than 64K. It was the fucked-upedness of this architecture that doomed OS/2. Anyway, nobody ever ran any AT-class machines in protected mode, it was always real mode, and that meant you had 1M of physical address space, with 384K of it reserved for system functions, a 18.5 Hz (IIRC) clock, and no memory protection or re-entrancy for any of the system code. The multitasking you could do with this would be at best like AmigaOS or early MacOS.

It would have sucked. The kind of thing alleged here became feasible with 80386s and was done by other systems mentioned here, 5-6 years later.

I suspect it was vaporware.
posted by Aardvark Cheeselog at 9:12 AM on May 25, 2022 [2 favorites]


I worked with many multiuser DOS clones in the day. Mainly Concurrent DOS XM and Concurrent DOS 386 from Digital Research. Get a normal PC with a board inside that had 8 serial ports on it, hang 8 Wyse dumb terminals off it in a star topology and have 8 people all running Wordperfect 5.1
posted by GallonOfAlan at 9:48 AM on May 25, 2022 [1 favorite]


I ran into GEM more than I did any other DOS-based multitasking environment. Some OEMs actually shipped it instead of or alongside Windows in the early 90s.
posted by wierdo at 10:04 AM on May 25, 2022 [1 favorite]


No love for DESQview 386? Solid multitasking on a 386DX40. Could run my BBS and play 3D Tetris at the same time! Simple, menu-based interface — none of that wasteful GUI stuff. And came packaged with QEMM, the best MS-DOS memory manager ever made! What more could you ask for?
posted by panama joe at 10:21 AM on May 25, 2022 [5 favorites]


Should the post have had a link to this article published to Medium yesterday, instead of two links to the disk image?
posted by fantabulous timewaster at 10:24 AM on May 25, 2022 [1 favorite]


It's funny that you say "made me remember real mode", because the whole point of all these increasingly complex virtual memory and multithreading schemes is to allow each individual program to believe that it's operating in (essentially) real mode, as that's the computing model most languages are built around. Every C program ever written is basically playing make believe that it's running in real mode. Meanwhile, even $1 microcontrollers now often have four or five high speed cores running simultaneously with a bunch of different memories and caches....
posted by phooky at 10:35 AM on May 25, 2022


Thank you timewaster, that's the link I was looking for. I guess now we know what Metafilter looks like when not only no one read the article but there's not even an article to read.

The article is good! Read it! No, Wendin-DOS was not vaporware. I can't comment on how well it worked but as the article says they shipped it and some updates. Then it all stopped when Microsoft hired the talent. Ah, early days.

What strikes me most about this company is how incredibly small these operating systems were. A team of three engineers managed to build meaning VMS, Unix, and DOS clones all in just a couple of years on 1986 hardware. An amazing accomplishment on their part but also only possible because these systems used to be so much smaller and simpler. Now I can't even run a chat app without consuming 50MB of RAM and it's all running on a browser OS on a virtual OS on a real OS on a hardware OS and running in a p-code environment with JIT compiling. And that's not even mentioning any of the useful code.
posted by Nelson at 10:35 AM on May 25, 2022 [1 favorite]


@Nelson

I read that article.

In case I wasn't clear, I was there in 1986, digging through the ads in the back of Byte and Dr Dobbs. I was one of the kids who knew how every IRQ line and DMA channel and I/O port base address was assigned on my IBM PC, and I can assure you, the functionality described could not have worked on any hardware you could buy before 1988. And after that, the things that did work were not Wendin DOS.
posted by Aardvark Cheeselog at 11:26 AM on May 25, 2022


(I mean: c for d: cool! not c for d: ??)

This second floppy drive needs a hard drive in her first floppy drive.
posted by Your Childhood Pet Rock at 11:36 AM on May 25, 2022


Oh, glad you read the article! I only learned about it after it was posted in the comment here.

I'm not so sure it was impossible. My memory of all this is vague but I think there were some semi-cooperative multitasking systems that could (sorta) run multiple DOS programs without any hardware support. (You could task switch poorly at every interrupt.) The 286 architecture was shitty, yes, but did make more tricks possible. And then PCs with a 386 with proper multitasking support came out in 1986. I don't know what Wendin-DOS did, the article is short on technical details, but I don't think it's impossible. Particularly if you only care that a few specific apps work (which the ad copy hints at.)

See also: DESQview, which did a variety of heroic multiuser DOS tricks going back to 1984. What's unusual about Wendin-DOS is how obscure it is. Certainly this post is the first I heard of it!
posted by Nelson at 11:41 AM on May 25, 2022 [2 favorites]


obscure x86 trivia? that's where I'm a viking!

Unfortunately I spent far too much of my time still living in the real mode since I hack on early boot firmware security. Need to know about the interaction of SMM region mapping registers with the IOAPIC? Curious about far pointer address computation with a local descriptor table and the A20 gate? Those bits of absurd things are still occasionally relevant to my interests.

One of the more cursed bits of x86 is the way the Bootguard authenticated code module has been grafted into the boot sequence: the CPU loads the hardcoded GDT from the flash region pointed to by the FIT and runs the ACM in protected 32-bit mode (but with no RAM available, so everything executed must fit in inside of the L3 cache in no-evict mode or else there's a TOCTOU attack). This relatively modern code checks SHA256 signatures on the rest of the flash, then returns to 16-bit real mode in order to jump to the legacy reset vector at 0xF:FFF0, which is either the last 16-bytes before the 1 megabyte boundary of the 20-bit address space, or the the top of 4 gigabytes, depending on how you ask, but also weird since there still isn't any memory anyway until the FSP has been called to initialize and train the DRAM links.

Why do they do this? So that your modern Skylake can still use legacy BIOS to boot DOS and run Windows 3.11, I guess. Hurrah for backwards compatibility!
posted by autopilot at 12:31 PM on May 25, 2022 [6 favorites]


My memory of all this is vague but I think there were some semi-cooperative multitasking systems that could (sorta) run multiple DOS programs without any hardware support. (You could task switch poorly at every interrupt.)

The problem wasn't the context switching it was the memory protection. Yes whatever was handling the multiple processes could just attach itself to the timer interrupt and force a context switch to emulate a preemptive timeslice but you then had the problem of whatever else was running possibly crapping all over your zero page and the interrupt vector table since in real mode everything is ring 0.

That's why V86 mode was so important. If whatever you were running hosed conventional memory entirely it didn't matter because its address space was virtual and entirely its own.
posted by Your Childhood Pet Rock at 1:18 PM on May 25, 2022 [1 favorite]


Speaking of real mode context switching, I'm reminded of a high school acquaintance who always had a raft of TSRs that he wrote in BASIC running in the background doing various ridiculous things, including one that would constantly shift the VGA color palette so everything on screen in text mode had this crazy shifting rainbow effect.
posted by wierdo at 1:25 PM on May 25, 2022 [2 favorites]


Mortice Kern Systems
DESQview
QEMM
Digital Research


Jesus. Jesus Christ. Is there a word for "Reading a name you haven't seen in thirty years and having a sudden palpable wave of memory and nostalgia"?

I bet it's German.
posted by Mr. Bad Example at 2:09 PM on May 25, 2022 [2 favorites]


Jesus. Jesus Christ. Is there a word for "Reading a name you haven't seen in thirty years and having a sudden palpable wave of memory and nostalgia"?

I bet it's German.


Weltschmerz.
posted by Your Childhood Pet Rock at 2:40 PM on May 25, 2022 [2 favorites]


a sudden palpable wave of memory and nostalgia?
natsukashi - A uniquely Japanese take on nostalgia - BBC Travel.
posted by zengargoyle at 3:12 PM on May 25, 2022 [2 favorites]


OMG yes, I messed up the link. Thanks Kyol and Nelson!.
posted by pompomtom at 4:18 PM on May 25, 2022


> I keep hoping to joining a project and seeing some really creative use of a tool I never thought of or a process that's really novel, or "just commit your code and we'll magically do blue/green deployment and rollbacks and you can watch it unfold on a dashboard!"

Heh, I worked somewhere that built this sort of thing! I've missed it since, as it's too heavyweight to justify for hobbyist stuff.
posted by Pronoiac at 7:42 PM on May 25, 2022


« Older No pants where worn in the making of this film   |   Farewell Traitors; Hello Liberty et al Newer »


This thread has been archived and is closed to new comments