24 ms·
Running DOS Apps on Windows from 1.0 to 95 (2020)
- mrlonglong 2y agoAll 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 2y agoHas 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...
- mschuster91 2y agoI'd say so. Up until the Visual Basic era that was accessible even for literal children (like me), you'd need deep C/C++/ASM knowledge to churn out a program that was reasonably performant, and the rise of the Web+JavaScript expanded accessibility even more as you didn't need an expensive IDE+compiler. The result of programming getting more accessible obviously leads to a decrease in average quality/skill.
- jonhohle 2y agoThe computers are 100,000x more powerful and electron apps can bring multi core systems with 16GB of memory to their knees. Coming from a 25MHz 486SX with 1MB of RAM to now, it’s disheartening that as a profession we’ve prioritized developer convenience over user experience. That system ran Netscape, Word, Paint Shop Pro, Doom, could play video, music (wav, midi, CD), and more.
- Krssst 2y agoLooking at today's mainstream software it feels that management agenda (pushing unneeded product X by disrupting user experience) and advertisement are also strongly prioritized over user experience.
- 1970-01-01 2y ago>Has the quality of the average programmer dropped? Yes and no. An average programmer today does not know nor care about size, speed, compatibility, portability, IRQ interrupts.. we needed to know how to manage all the things. However, back then there were no security bugs other than bypassing passwords and copy protection.
- andrea76 2y agoAn interesting overview on how Windows (from 1.0 to 95) executes DOS apps with all the challenges
- deleted 2y ago[deleted]
- wizzwizz4 2y agoI 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=9183 https://devblogs.microsoft.com/oldnewthing/20111107-00/?p=91... and https://retrocomputing.stackexchange.com/q/791/278 https://retrocomputing.stackexchange.com/q/791/278 are examples. (https://devblogs.microsoft.com/oldnewthing/20211129-00/?p=105979 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 2y agoDesqView. 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 2y agoCame 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.
- caspper69 2y agoPC Magazine (and others I'm sure) used to regularly do "showdowns" with DOS multitasking environments and upcoming GUIs. There was a time when none of this stuff was settled and a lot of folks threw their hat into the ring. I used to love the writeups as a bbs operator, lol!
- miffe 2y agoA 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 2y agoSort 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.
- rzzzt 2y agoThe timer interrupt could also do the loading: - maintain a, say, ring buffer :) for I/O commands (operation, file handle, offset, buffer address, callback address) - add requests to the buffer from the game loop - timer wakes up periodically, splits requests into palatable chunks, completes a portion of the requested work, when it reaches the end it either sets a flag on the request to signal its completion and/or jumps to its callback address - game loop can periodically check and empty the request buffer or set the requests to self-destruct on completion
- actionfromafar 2y agoYeah either way, my hunch was just I wouldn’t want to drop frames in the game, so it’s nice have a timer on the graphics.
- turol 2y agoThat does not really work since the only IO was the BIOS-provided one that was 1. synchronous and 2. really slow. If you tried to do that you'd just get insanely bad pauses.
- deleted 2y ago[deleted]
- anthk 2y agoGet 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.
- JayGuerette 2y 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).
- caspper69 2y agoI 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.
- dleslie 2y agoWindows 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.
- 0xcde4c3db 2y agoMicrosoft also made a big push at this time for preinstalled Windows to be considered the baseline configuration instead of treating it as an optional upsell. It probably also didn't hurt that 3.1 was when Windows was seen as having properly matured (cf. Vista vs. 7). Basically, the 3.1 era was when Windows went from being a novelty/luxury to being everywhere practically overnight.
- dleslie 2y ago
- deleted 2y ago[deleted]
- livrem 2y agoOne 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.
- deleted 2y ago[deleted]
- andrepd 2y agoYou might be thinking of "terminate and stay resident" programs, like Borland Sidekick :p
- neckro23 2y agoIt wasn't quite a TSR, it was more like a subshell. I remember using a similar feature in Telix in the early 90s. It was a bit limited because you were still restricted to the usual 640kB memory space, and the original program remained in memory, so you typically didn't have a lot to work with. You could do things like file management while still connected to a remote BBS though.
- Dwedit 2y agoNot continuing through the NTVDM era?
- 1970-01-01 2y agoAlthough 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 https://en.wikipedia.org/wiki/Windows_Me#Real_mode_DOS
- exe34 2y agoMistake 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.