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

  • "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).

  • 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.

  • 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.

  • 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.

  • 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.

  • 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

  • Not continuing through the NTVDM era?

  • 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.

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