The Rise of Microsoft Windows Part 3: Windows 3.0
Microsoft's unloved operating system finally starts to take off
In spite of the considerable odds against it, Windows had managed to slowly improve its sales to the point where it was at least a modest success by the very low standards of graphical user interfaces. It wasn’t setting the world on fire, but the four different editions of Windows 2 had been more-or-less well received, with even its critics admitting that at the very least, they were significant improvements over the original release of Windows.
More importantly, Gates’ decision to do a special version of Windows 2.0 and 2.1 for the powerful new 386 based computers that were starting to hit the upper end of the PC market had been richly rewarded. Windows/386 gave these new machines a way to overcome some of the crippling limitations of MS-DOS, and the press had responded favorably to it. Microsoft had even managed to get some good press for what was eventually called Windows/286, which, while not as fancy as Windows/386 still had a neat feature or two that received favorable publicity, especially its ability to give back up to 64k of RAM for applications to use.
An interesting sidenote on Windows/286’s memory management that I ran across in an InfoWorld article1 from May 21, 1990, stated that Windows/286’s high memory management still had enough issues with handling memory hogs such as Lotus 1-2-3 that Microsoft actually eventually licensed Qualitas Inc’s confusingly named 386 Max memory manager and started including that with shipping versions of Windows/286.
InfoWorld even quoted Russ Werner, the general manager for the Microsoft business unit overseeing DOS and Windows, as saying that running 386 Max under Windows/286, (yes Windows/286 not Windows/386), “gives you a smaller Windows profile, [and] installing for extended memory is a piece of cake”.”2
Werner did say that the next version of Windows would fix this issue however, and be able to correctly manage memory without requiring the use of a third party add-on such as 386 Max.
RAM was a perennial problem for the first two major versions of Windows, with InfoWorld commenting that ““out of memory” messages popped up out of nowhere all too frequently and slow operations due to low residual memory were the norm.”3
However, thanks to Windows/386 in particular, Microsoft was actually seen as bringing some genuine innovation to the space. Windows modest sales still represented at least a partial vindication of Gates' decision to keep the project alive, even if it was far below OS/2 and Presentation Manager in Microsoft's priorities.
However there was still the lawsuit from Apple hanging over Microsoft’s head, and even though most of the original claims had been thrown out, the case was still dragging its way through the courts and showed no sign of ending anytime soon.
Gates decided to double down however, and the next version of Windows, version 3, would become the most significant release of Windows to date…by a long shot. Version 3 of Windows would become the first release to actually break through to the mainstream and firmly set Windows on the path to global domination.
Windows 3.0 Development
As the lawsuit with Apple ramped up, there was some very good news on the Windows front. And to really understand what happened, we need to introduce one of the whiz kids that Microsoft picked up in the Dynamical Systems Research acquisition…David Weise. And Weise is extremely important to Windows’ history because he was the one who figured out how to get Windows over the memory barrier that was Windows' primary limitation.
Windows 1 and 2 had any number of issues, but the memory hacks and kludges that had to be implemented in order to deal with DOS’s 640k memory barrier especially stood out. Windows 2’s support for Extended Memory had been somewhat of an improvement over Windows 1, but it was still, well, pretty kludgy.
Weise himself had apparently said that while he enjoyed being employed by Microsoft, his initial impression of Windows was that “it was dorky”, and had three big problems, “memory, memory, memory”.4 Both the standard and the 386 versions of Windows 2 had been able to utilize EMS 4.0 memory thanks to his work, something that he had received industry awards for successfully pulling off.
But Weise wanted Windows 3.0 to be able to utilize the 386’s fully implemented protected mode in order to access all RAM above 640k without using a clunky workaround or hack.
And the 286 of course had a crippled way of accessing protected mode, but it could still use it and thus would also greatly benefit from Windows gaining full access to it. An additional benefit of this would be making Windows extremely attractive to the large body of consumers buying the 286 based AT line of PCs and compatibles.
Being able to do this would drastically simplify getting Windows applications to be able to use memory capacities above 640k, and make it very attractive to developers who were getting tired of slamming their heads into the 640k ceiling or getting their fingers smashed trying to use any one of the different workarounds, hacks, and kludges to access higher RAM, each with their own drawbacks and frustrations.
In June of 1988, at a Friday night Microsoft party, Weise met up with Murray Sargent, a long-time friend of his, who had created Weise’s favorite debugger, Scroll Screen Tracer or SST.5
Sargent was a physics professor at the University of Arizona, but during his summer break that year, he was over at Microsoft working to add the ability to use a DOS extension that enabled extended memory usage to Microsoft’s own CodeView debugger so that programmers could use it to add EMS functionality to their applications.
However EMS was still a kludge, and required the applications to be specifically written to utilize it anyhow. To properly fulfill Steve Ballmer’s 1985 proclamation that developers would be able to just write their programs for Windows and get trouble free access to protected mode, more would be required, a lot more.
As they chatted at the party, Sargent teased Weise about Windows/286 only being able to access a measly 64k of additional RAM, and then jokingly suggested that Weise should use SST’s new capabilities to get Windows to be able to use protected mode. Rising to the occasion, Weise challenged Sargent to leave the party right then and there with him and see if they could solve the protected memory problem on Windows once and for all.
Sargent agreed and the two promptly headed back to Weise’s office in Microsoft’s campus to start work. But Weise decided to keep this attempt quiet and under the radar, telling Sargent: “We’re not gonna ask anybody, and then if we’re done and they shoot it down, they shoot it down.”6
So far as I can tell, the direct Windows programming effort was done entirely by Weise, but he worked in close collaboration with Sargent. It was a collaboration that worked out perfectly and one that required both men’s efforts so Sargent absolutely deserves, and needs, to be remembered for his contribution.
Sargent was basically side by side with Weise for at least a month, as they tag teamed the problem, Weise solving one problem after another in Windows, and Sargent adding one feature after another in SST that Weise could immediately use to get around whatever wall he had slammed into.
This is something that at least one major source, Paul Carroll’s otherwise excellent book Big Blues: The Unmaking of IBM gets wrong, as he credits Sargent alone with solving Windows’ memory issues and doesn’t even mention Weise’s name at all.
Weise was very pleased to find out that the Windows 2 kernel that Steve Wood had passed off to him already was part way to where it needed to be, saying “It turned out Steve Wood who I’d inherited the kernel from had structured the whole thing to wanna be [in protected mode]”.7
Still, it was a daunting task. But Weise, a former professional blackjack player who understood the value of patience and effort, was undaunted. He just methodically went about solving things one problem at a time, or in his words again: “There are all these little gotchas throughout it, but basically you just work through the gotchas one at a time, you just close your eyes, and you just charge ahead. You don’t think of the problems, or you're not gonna do it…it’s fun. Piece by piece it’s coming. Okay, here come the keyboard drivers, here come the display drivers, here comes GDI-Oh, oh, look, here’s USER! Without that debugger running in protected mode with the DOS extender I could not have done it.”8
And by the way…when I say that Weise was a former professional blackjack player, I mean that he was one of the members of the MIT blackjack team in the early 1980s, although not one of the founding ones as some sources claim.9 I suspect the confusion arises from the fact that there was a “Dave” as part of the original team in the 1970s, it just wasn’t Weise10, who was actually a Princeton alumni.
To be clear, what Weise and Murray were working on was getting Windows/28611 specifically and the Windows 2.1x kernel in general to access all of the computer’s memory from either a 286 or a 386 running in protected mode, the main task being rewriting Windows’ memory manager.12
They were not working with Windows 3.0 yet as it did not exist. This is a distinction that some otherwise excellent sources, such as Gates, fail to make clear. Windows 2.1 had only just been released, and Weise and Murray were working with what they had. And their success in doing so was going to be critical to Windows 3.0’s capabilities and success in the marketplace.
One other note. While Weise and Murray had gotten the proof of concept working on Windows 2.x, I don’t believe it was ever incorporated into any update to any version of Windows 2.x, it stayed purely in-house.
According to a comment left by Murray himself on an article he wrote covering his and Weise’s work: “Please note that Windows 386 provided the capability to run multiple DOS applications simultaneously in extended memory. It did not enable Windows to use all of memory. Windows itself was still stuck in one of those DOS windows until Windows 3.0 was released...Also the way we generalized Windows to use all of memory, it could do so on the 286 as well as on the 386. This was important at the time, since 286 machines were prevelant(sic).”13
I am interpreting this quote as both versions of Windows/386 could utilize extended memory to run multiple DOS sessions, but could not necessarily access all RAM on the computer. However, when it was released Windows 3.0 could use all installed RAM, whether it was running on a 386 or the older 286 that most PC users still had. So far as original PC owners went…well we’ll get to that. Let’s just say that you really didn’t want to be running Windows 3.0 on an original PC.
There is also an article on Microsoft.com from Weise himself that is fun to read, and he comes off as a really nice guy who just couldn’t resist a fun programming challenge.14
Thanks to Weise and Murray, Windows had just gotten a huge jump forward in capability and a feature that was going to be music to developers ears. In Weise’s own words, “So we did it, and suddenly people’s applications started working better on Windows. More and more applications migrated over to Windows, and more and more end users started using their applications within Windows rather than switching back and forth between Windows and DOS. Sure, there were lots of other features in Windows and lots of other factors that contributed to its success, like the improvements to the user interface, but I think that solving this little problem really opened up the floodgates and got the momentum going for the platform.”15
And so it did. When the new feature was presented to Gates at an all hands design review, it dovetailed perfectly with the goal that Gates had given to Windows 3.0 product manager Russ Werner, to…”just make it great.”16
As a top tier programmer himself, Gates knew exactly what Weise and Sargent had done for Windows 3.0 and what a huge competitive advantage it was going to have. Understandably, Gates was extremely happy, seeing this as a huge step forward, and quickly gave the order to go ahead and implement protected memory access into Windows 3.0.
Granted, since this meeting with Gates took place sometime in summer of 1988 Windows 3.0’s development was still going to take close to two more years, however all the necessary pieces for success were there in at least embryonic form. As one source says “memory, graphics, and speed were what people wanted-and now Windows had them all.”
But Windows 3.0 now needed serious resources poured into its development in order to produce a working retail product and IBM also presumably needed to be kept at arm's length, a task that was going to require some serious diplomatic skills.
Gates gave a smirk when Ballmer asked him what they were going to tell IBM, and said “That’s your problem Steve.”17 Or at least that’s what the book Gates says.
Another book, Barbarians Led By Bill Gates describes the scene with a completely different tone, saying: “”What do we tell IBM?” Ballmer asked. Gates hunched over and leaned towards Ballmer. “I don’t know Steve. That’s your problem.””18
Whichever tone Gates took, whether cheerfully or worriedly dumping the problem on Ballmer, he knew that IBM was not going to be happy about this new feature. Why? Because IBM’s perspective, helped along by Gates at every opportunity of course, was to not really see Windows as much of a threat. IBM generally perceived Windows as more of an intermediate step between DOS and Presentation Manager, a graphical user interface that would kind of scratch people’s itch for a GUI until they decided to start using a real GUI…Presentation Manager.
But now Windows 3.0 had been given the ability to significantly undercut OS/2 and Presentation Manager by giving users an affordable way to stick with DOS, get a pretty GUI to run on top of it, and also overcome the crippling memory limitations caused by the 640k RAM limit. If developers could easily target the huge installed base of DOS machines by writing for Windows AND get protected memory access for basically free…well that was going to pour a lot of cold water all over IBM’s plans for moving people to OS/2 and Presentation Manager.
Thanks to being able to operate in three different modes, Windows 3.0 would be capable of managing the memory of a standard PC of the era, whether it was a slow 8088, a faster 286, or a speedy 386…and it would do it with a reasonable degree of transparency to the user, at least by the standards of 1990 computing.
With Gates putting more focus on Windows 3.0’s development, additional resources were poured into it. This was going to be a game changing release, it was going to smoke the competition, and it was going to be a fresh start and introduction for Windows. And to go with all the new features under the hood, a nice fresh coat of paint was being applied to the vehicle itself. While Microsoft’s in-house designer, Virginia Thornton, focused on colors and fonts, and did things like add a neat looking 3D look to all the buttons, Microsoft also brought in a big gun…none other than Susan Kare, to do the buttons and icons themselves.
And who was she? Well among other things, Susan Kare was the lady behind the Macintosh’s buttons and icons. You heard right, smack in the middle of an on-going lawsuit with Apple over whether Microsoft had copied the look-and-feel of the Macintosh, Gates brought on the woman who had given the Mac so much of its distinctive look…and set her to work making Windows 3.0 look friendly. And just like with everything else she did, she did a phenomenal job.19
Windows 3.0 actually looked quite inviting to potential users, with bright colors, friendly looking buttons, and a whole unified look and feel that, while still not quite a match for the Macintosh, was much, much closer than it had ever been before.
And the new underlying features…they were starting to get a lot of attention too.
In the words of one source: “Word went out to independent developers: Take another look at Windows. You might be surprised. It doesn't have OS/2’s computer-sciency threads and semaphores and names pipes, and its multitasking isn’t quite as sexy. But: It’ll do what most users want. It’ll run on machines with a lot less memory than PM needs. It’ll cost a third of what OS/2 does. It’ll look better than PM too. And it's coming soon, certainly by Fall Comdex 1989, maybe even earlier.”20
The result? Unlike with the previous Windows versions, independent developers were comparatively eager to develop applications for Windows 3.0, without Microsoft needing to do much, if any, begging and pleading. And as more and more developers climbed on board, their numbers kept building as more and more developers saw what was going on and wanted to start developing their own applications as well. Plus there was an expectation that Windows 3.0 would have a free runtime just like all three previous versions of Windows had possessed. Put a pin in this, we will revisit it in a minute.
As the hype and interest steadily built, it was very very evident to everybody, even IBM, that Windows 3.0…well it was almost certainly going to be flying off the shelves in a way that OS/2 definitely wasn’t. Windows 3.0 was going to make a splash, not vanish with only a gentle ripple into the pool of PC users the way previous Windows versions had done.
And then came the Windows 3.0 beta releases that Microsoft actually seems to have done a good job of pushing out. Actually there were two types of Windows 3.0 floating around the industry by mid-1989. First of all were the pre-release versions of Windows 3.0 that Microsoft seeded to at least 900 different software and hardware developers. These were not technically betas (betas are feature complete, but buggy), as they lacked some of Windows 3.0’s new features, but were stable enough for developers to use to develop new applications.
Then there were the beta releases, which in theory should be feature complete, but buggy. In a May 1989 article, InfoWorld21 stated that the number of actual beta testers was much smaller than the number of people using the pre-release version of 3.0, but no further details were given. So your guess is as good as mine, but it's probably safe to assume that at least a couple hundred users were testing the Windows 3.0 beta by summer of 1989.
By January of 1990, InfoWorld was reporting that the newest beta of 3.0 was considerably improved boasting “smoother, more elegant performance”, with testers “pleased with the stability of the program and the progress of driver development. They were also impressed with the program’s overall likeness to the OS/2 Presentation Managers interface.”22
InfoWorld also noted that the 3.0 beta came on a dozen floppy disks, had significantly increased memory requirements over previous versions of Windows, and had compatibility issues with Windows 2.1 applications unless the user explicitly ran 3.0 in real mode. I assume 2.1 was singled out because Windows 1 had basically no applications and Windows 2.1 was the target for most existing Windows applications.
The memory requirements of the 3.0 beta were also singled out, with one analyst stating that 3.0 was going to basically require the user to have at least a 286 packing at least 2 MB of RAM.23
As you might expect, all of this newfound hype and buzz around Windows 3.0 didn’t exactly bring a sense of warmth, good cheer, and comradeship to the IBM/Microsoft relationship. However, Gates still outwardly gave the impression that OS/2 was most likely going to be the overall winner once it finally got itself sorted out. Barbarians led By Bill Gates puts it that, “[e]ven if there were now to be another version of Windows-one that would operate in a protect mode-Gates was still betting that OS/2, not Windows, was Microsoft’s future. At least outwardly, Gates still described Windows as a placeholder until OS/2 hit the market. The only difference now was that the placeholder was a little bit better.”24
However I personally think it’s pretty clear that Gates very quickly moved away from thinking that OS/2 was the future and started shifting the bulk of his focus to Windows, while just stringing IBM along while he figured out a way to exit with as little damage as possible.
Otherwise his actions to delay OS/2 development, crush potential competition from IBM, and not only pour development resources into Windows 3.0 but also pour marketing efforts into making people aware of Windows 3.0’s upcoming release and get as many developers on board as possible…I’m pretty sure he wouldn’t have thrown himself into it so thoroughly if he had still felt that OS/2 was going to be a guaranteed success.
With the fall edition of Comdex coming up in November of 1989, Gates made strenuous, and ultimately successful efforts to squash a potential Windows rival from IBM called Presentation Manager Lite, or just PM Lite. Basically, IBM’s OS/2 developers over in Hursley, England had come up with a plan to take the Presentation Manager graphical interface and bolt it on top of DOS directly.
This was almost the exact same plan that Gates had been pushing IBM to do previously (some might say that that’s all Windows 1 and 2 were), just with, you know, Presentation Manager instead of Windows driving things. As Gates puts it: “You could almost hear IBM’s Ballmerian pitch to programmers: “Develop for OS/2 PM and your developing for DOS PM.””25
Gates went on all out offensive, determined to prevent the upcoming Windows 3.0 from getting squashed by an affordable version of Presentation Manager running on top of DOS. He spent most of a month in New York in lengthy meetings with IBM, agreeing to anything and everything needed to get IBM to cancel PM Lite. He succeeded yet again, although in my opinion there was little to fear from any attempt by IBM to bring an affordable GUI for DOS to the market.

