6 ms·
Windows 3.1 needs to manipulate the MS-DOS System File Table (the table that keeps track of open file handles) in order to facilitate multitasking applications.
by thought_alarm 7y ago
Windows 3.1 needs to manipulate the MS-DOS System File Table (the table that keeps track of open file handles) in order to facilitate multitasking applications. This is fine.
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.
- mhh__ 7y ago> despite the fact that MS-DOS and Windows are both under control of the same company. 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)
- simonsays2 7y agoWindows and MSDOS teams were very close, no issue there. 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.
- deleted 7y ago[deleted]
- LocalH 7y agoIBM DOS was basically MS-DOS (except IBM did do some of their own work of course). Pretty sure Zenith and Compaq DOSes were OEM MS-DOS (Zenith did have a "Z-DOS" but it was just another OEM version of MS-DOS for a non-IBM-compatible system). DR-DOS was of course a true third party DOS (one of the very few contemporary ones IIRC)
- ksaj 7y agoReading the source code (which is available on archive.org) you can see exactly this. Lots of IFDEF statements for compiling MSDOS and PCDOS differences. When I first saw that, I was really surprised.
- basilgohar 7y agoSadly, I don't have a reference handy, but I recall reading a while back that there was this toxic culture at Microsoft in the past where one of the easiest or least frictive ways to climb the ladder professionally was to undermine others due to the way performance was evaluated. Basically, something of a “cull the lowest performing members” model. Not sure if this is related or even reality, my memory wasn't so great even when I was young.
- chris_wot 7y agoThat was the model Ballmer implemented. When Satyer Nadeller took over they removed this insane and destructive system.
- Someone1234 7y ago> despite the fact that MS-DOS and Windows are both under control of the same company. 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).
- thought_alarm 7y agoIt seems doubtful that Microsoft would jump through such ridiculous hoops to ensure Windows ran on DR-DOS. They did the exact opposite, and added code to detect DR-DOS and disable Windows. And in any case, it would be up to DR-DOS to emulate whatever MS-DOS was doing.
- Someone1234 7y ago> They did the exact opposite, and added code to detect DR-DOS and disable Windows. In 3.1. Before that Windows ran fine on other vendor's versions of DOS.
- ncmncm 7y agoNo. There was never any intention to keep non-msdos systems working. Quite the contrary. But many, many users had add-on memory extenders to move things out of the memory ms-dos knew about, to leave more room for programs, or to speed up switching beween them. 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.
- stOneskull 7y agoi think that was a hidden cost in the decrease of computer hardware price. it's hard to know what would've happened without microsoft though. whether it would be we all used expensive hardware like macs and amigas (or ibm) or whether something like linux or a different ibm os would have become the huge thing. it was great how we could build our own inexpensive system, or buy an inexpensive ibm-compatible someone else made. i have felt grateful to microsoft for that but maybe i'm wrong and it would just be another company that ibm chose.