top | item 39999159

Running DOS Apps on Windows from 1.0 to 95 (2020)

72 points| andrea76 | 1 year ago |gekk.info

33 comments

order

JayGuerette|1 year ago

"I'm not sure why it is that Windows 3.1 is the go-to when people name a Windows OS of this era."

It's because business was the primary market for PCs and Windows 3.11 added a network stack and changed everything. Networking was no longer an arcane science that required 3rd party software. Office networks became almost trivial to set up. The impact of this on the world is impossible to overstate. Everybody who used Windows in this era used Win 3.1(1).

dleslie|1 year ago

Windows 3.1 also hit a sweet spot for OEMs; with RAM becoming larger and cheaper, and 486 PCs delivering speed. That was when PC games that targeted Windows started to arrive in reasonable numbers.

exe34|1 year ago

> no longer an arcane science

No, it became what some of us called "plug and pray". You plug it in, and it's supposed to work. You install the driver, reboot, uninstall the driver, reboot, clear some temporary files, re-install the driver, try a slightly different driver on the same disk, uninstall the driver, reboot, re-install the driver, and it suddenly works! Then you reboot it and it stops working again.

caspper69|1 year ago

I remember it differently, as I rarely encountered office networks then, and when I did, they were still 3rd party (Netware mostly).

The reason I always remember 3.1 is that 3.0 was a "big" upgrade, but it was a dog, so they released a vastly-improved 3.1 pretty quickly, so many people got that as the default, and the upgrade was pretty widespread.

This was over maybe a 4-year period in the mid-90s. My memory may be hazy, and I was a university student, so my exposure may have been limited, but myself and my friends never really reference 3.11 because it wasn't used/needed, and indeed most of us used Trumpet Winsock as a TCP/IP stack (3rd party) until the release of Windows 95.

wizzwizz4|1 year ago

I always enjoy this article when it makes the rounds, but I'm still unreasonably annoyed about two points.

> Despite this capability being mentioned in countless reviews of the success story of Windows, the actual functionality of it is almost entirely undocumented online.

Much of this was already documented online in 2020. https://devblogs.microsoft.com/oldnewthing/20111107-00/?p=91... and https://retrocomputing.stackexchange.com/q/791/278 are examples. (https://devblogs.microsoft.com/oldnewthing/20211129-00/?p=10... came after this article was written, but is worth reading too.)

> while you can probably tell me the name of the OS installed on Macs in 1985, and you can definitely name the most popular way to run multiple DOS programs on the PC in 1995, you almost certainly can't name a DOS task switcher or multitasking environment offhand.

DoubleDOS. And I've never used it: I know it by reputation alone.

porbelm|1 year ago

DesqView. Used it for BBS stuff, like being logged into admin at the same time as having a user on AND running Norton Commander or whatever at the same time.

Brian_K_White|1 year ago

Came here exactly to say "Wasn't Desqview quite well known?" I never even used it myself (except indirectly as a bbs user) yet even I a non-user knew about it.

Maybe it doesn't fall into the same category and works more like an actual os with a kernel? Like I said, never used it so idk.

mrlonglong|1 year ago

All that magic in Windows 386 were made possible through the VXDs. Virtual device drivers that shuffled the programs access to the physical devices. They had some very very very good programmers back then.

andrepd|1 year ago

Has the quality of the average programmer dropped? I look at the state of software I use in my day-to-day, in computers 100,000x more powerful than the computers which ran Win3.1...

anthk|1 year ago

Get ReactoS' ntvdm.exe from the nightly ISO (it's under a big CAB file, the biggest one) and use it under a 32/64 bit Windows. If any, place it in the same folder of the DOS game.

livrem|1 year ago

One thing I remember and even used quite recently, is that you could C-z out of emacs in MS-DOS to get a new COMMAND.COM for running other applications, then exit back to emacs. I think this was some kind of feature of later versions of MS-DOS, that an application could open a child-COMMAND.COM and put itself in the background using some interrupt? Anyway that was great for running compilers and doing other tasks without having to ever exit emacs.

Anyway it was a very interesting read. I don't think I ever used Windows to run DOS applications. I used to start Windows 3.x now and then to run some Windows application, but then I exited out to COMMAND.COM again where I spent most of my time. And then when Microsoft tried to get everyone to switch to Windows 95 I installed Linux instead.

andrepd|1 year ago

You might be thinking of "terminate and stay resident" programs, like Borland Sidekick :p

1970-01-01|1 year ago

Although it required bit of OS hacking, real mode DOS was used all the way to the often forgotten Windows Me.

https://en.wikipedia.org/wiki/Windows_Me#Real_mode_DOS

exe34|1 year ago

Mistake edition. I had a very underpowered celeron running ME, and I got another two years of life out of that laptop by switching to vector Linux, which was incredibly fast. Only issue was that I think the migration from Oss to alsa was happening at the time, so had quite a bit of issues with Skype.

Dwedit|1 year ago

Not continuing through the NTVDM era?

miffe|1 year ago

A bit off topic, but does anyone know if you can do asynchronous disk access somehow in dos?

I'm writing a game and it would be nice to load resources for the next level in the background.

actionfromafar|1 year ago

Sort of ... but I think it's easier to do the disk access as usual, but move your real-time game code (updating graphics, taking care of input) to a timer interrupt.

Edit: then you effectively have your main loop doing IO and such, while your game loop is a co-routine in modern parlance. The game loop can write a global variable which the main code takes as a hint to start loading file data.

andrea76|1 year ago

An interesting overview on how Windows (from 1.0 to 95) executes DOS apps with all the challenges