← Back to context

Comment by dale_glass

3 years ago

I remember somebody at Microsoft arguing that AARD had a sort of legitimate purpose -- Windows reached deep into DOS in ways that in modern times would be anathema, and did stuff that one couldn't expect to necessarily work properly on a DOS clone, since it wasn't part of the public API.

Still, that idea could have been better executed.

Aha, here:

https://learn.microsoft.com/en-us/archive/blogs/larryosterma...

> As a simple example, when Windows started up, it increased the size of MS-DOS’s internal file table (the SFT, that’s the table that was created by the FILES= line in config.sys). It did that to allow more than 20 files to be opened on the windows system (a highly desirable goal for a multi-tasking operating system). But it did that by using an undocumented API call, which returned a pointer to a set of “interesting” pointers in MS-DOS.

[...]

> But the problem was that the MS-DOS 4.0 SFT was 2 bytes larger than the MS-DOS 3.1 SFT. In order to get Windows to work, I had to change the DOS loader to detect when win.com was being loaded, and if it was being loaded, I looked at the code at an offset relative to the base code segment, and if it was a “MOV” instruction, and the amount being moved was the old size of the SFT, I patched the instruction in memory to reflect the new size of the SFT! Yup, MS-DOS 4.0 patched the running windows binary to make sure Windows would still continue to work.

So yeah, by modern standards the way old DOS software worked was all kinds of screwy.

It was later revealed exactly what the purpose was, when internal mail discussions came out in court.

"What the guy is supposed to do is feel uncomfortable, and when he has bugs, suspect that the problem is dr-dos and then go out to buy ms-dos. or decide to not take the risk for the other machines he has to buy for in the office."

-- Brad Silverberg, Microsoft, 1991, as quoted at https://www.theregister.com/1999/11/05/how_ms_played_the_inc... and in many other reports of the court case that one can still find.

That was the purpose.

  • Would it be legal to create similar incompatibilities if there is both a legal business justification (that particular solution can be implemented in X developer time and would cost us Y money which wins against a proper implementation) and an engineering justification (that particular solution would use X less bytes of disk/RAM and would run better on Y% of our customer's machines) for an implementation which heavily depends on undocumented internals of another product?

  • Or "Gaslighting" in modern idiom.

    • No, "gaslighting" is a term for specifically making somebody doubt their own sanity by sabotaging their perception of their own actions.

      It's not simply lying or creating fear, it's something a lot more insidious, and I don't think it can be really done on a non-specific target.

      Eg, an example would be intentionally hiding somebody's keys to convince them they can't keep track of anything, or scheduling an appointment the person is supposed to go to, never telling them about it, then arguing they were told several times, they're just dumb and forgot.

      1 reply →

  • Interesting! I stand corrected, though I think the MS explanation does sound plausible for the times.

    Can this "Windows poked around in the guts of DOS" and "DOS 4.0 patched Windows" sort of mechanic be verified elsewhere?

    • Sorry, you bought Microsoft lies hook, line, and sinker. No shame! Everybody did. That's why DR-Dos isn't with us any more.

      What they said it's entirely plausible is the problem, and that's why people bought it. Even if it was true, it's on Microsoft for doing that, not DR-Dos for being incompatible. It's like how you needed to be using IE6 to browse the web, or using Microsoft Word from Microsoft Office to edit your documents.

      What's really sad is how much things have shifted against Microsoft. Now it's Apple's turn on top, and people are buying that same line just as naively. iMessage this and iCloud that.

      5 replies →