But Windows 3.xx ran on non-Microsoft versions of DOS. They tried to stop this with the release of 3.1 but ultimately failed. DR-DOS was a popular way to run Windows (although piracy was rampant, and many simply pirated MS DOS instead of buying the Cheaper DR-DOS).
The CON hack was just business as usual, and hacks to keep the hacks working, like this, were stock-in-trade for people obliged to work in it the environment. Microsoft was directly responsible for a two-decade regression of progress in software system design. They did not just displace better systems; they got everyone convinced that their stuff was normal.
$155 million and Bill Gates: "You never sent me a response on the question of what things an app would do that would make it run with MSDOS and not run with DR-DOS. Is there feature [sic] they have that might get in our way?"
says there was https://www.itprotoday.com/windows-78/microsoft-settles-dr-d...
OS/2, for example, ran on the same machines as W95, and was fully modern. It was easy to keep an OS/2 system running for months without a crash. But few would develop for it, because few had it.
People paid absolutely through the nose for all the effort needed to keep anything working at all. Disk de-fragmenting, for example, was a Windows-only phenomenon.
Consider all the Free Software we use today, that just works without attention, year after year. People had to pay high prices for Windows software because it took so much effort to get it to work at all, and to keep working when the tide changed.
The MS system software of that era is a prime example of how worse is better for software products.
How? Defragmenting is needed because random access on hdd is much, much slower than sequential. It's not something the os or fs can fix.
We’d be discussing this on a Prodigy forum if the incumbents had their way.
People did buy the products rather than better stuff. However there were monopolist practices that stopped that and monopolist practices are hard to spot when there is hype and a new industry people know nothing about. If you are trying to play catch up to get on board this tech train you don't know that it's a con.
I believe Microsoft's 'regression of progress' goes further back. BASIC is the real culprit. Nobody needed line numbers and goto statements, yet hobby and home computers from the 8 bit era were invariably burdened with lousy variants of MicroSoft BASIC. Including the Commodore things, even if they did not say Microsoft on boot up, they were.
Fundamentally there was open source ethos at the computer club of lore, where it all started. Bill Gates cloned Basic from the PDP-11 he had access to then made people pay for it rather than just copy it. He kind of invented the notion of software piracy being evil and morally wrong.
The UK home computing scene had BBC BASIC and Sinclair BASIC that were not directly derived from Microsoft's effort. The Sinclair contrivance was a super cheap BASIC hat needed the funny keyboard mappings, the BBC BASIC was actually a decent real programming language rather than just the lame Microsoft idea of what BASIC should be.
The only BASIC most users knew was 'LOAD""' followed by a press of the cassette play button to load a game.
MS-DOS was acquired and repurposed, sold to IBM with BASIC doing the groundwork - Bill Gates did not have an OS before then.
So computing was half way there towards being open source before Bill Gates ruined it by making people pay for his clone of PDP-11 BASIC.
Computers were also fundamentally networked before MS-DOS came along. Bill Gates kept it as personal computing, fleece everyone rather than share resources.
The Atari 800 series had a unique BASIC with unusual string-handling conventions and graphic and sound commands miles ahead of the vanilla Commodore (pre-7.0) dialects.
I don't blame them for line numbers. Remember that the earliest hobbyist machines were going to be connected to who-knows-what display devices, even literal teletypes, where you might not have been able to support a full-screen editor or a convenient way to differentiate immediate versus program commands. Line numbers give you workarounds to those problems.
It could be argued they languished too long-- perhaps BASICA/GWBASIC, built for a machine with standard robust display controllers and ample ROM and address space-- should have been more like QuickBasic-- but f you wanted a box-checking 8k BASIC for your new microcomputer, it's not an awful choice.
And in any case, it would be up to DR-DOS to emulate whatever MS-DOS was doing.
In 3.1. Before that Windows ran fine on other vendor's versions of DOS.
I've never worked at Microsoft, but I have read that teams at Microsoft have been (historically, at least) very disjointed and uncooperative towards each other (No idea whether that's true, but the existence of Powershell in spite of cmd was given as an example)
Not sure if this is related or even reality, my memory wasn't so great even when I was young.
The real reason someone might need to do this hack is that there were in fact many versions of "DOS" not made by Microsoft. These included Zenith, Compaq, Digital Research and IBM. Each of these each had their own subversions.
However, Windows 3.1 relies on an utterly absurd hack to determine size of entries in the MS-DOS System File Table, despite the fact that MS-DOS and Windows are both under control of the same company.
It scans raw memory looking for three instances of the string "CON", assumes this is the location the SFT, and uses the distance between the first two CONs as the size of a SFT entry.
The hack breaks if the SFT has been moved to high memory, which prevents Windows from running. The workaround is to put three CON instances in conventional memory, correctly spaced, before starting Windows.