As a result, Windows would need to be able to run existing DOS applications, which it did through a special application called WINOLDAPP (WINdow OLD APPlication) that rendered most popular character-based applications in a window. However, DOS applications were rarely well behaved in terms of using existing system resources since they typically ran one at time. Developers often used tricks or even existing bugs in the OS or processors in clever ways to get more memory or prevent running of unlicensed copies. Windows was intended to enable multiple applications to run at the same time, so it was difficult to support running existing applications while isolating them so their clever tricks would not corrupt other applications.
The dominance of existing non-Windows character-based DOS applications also required that Windows have a keyboard interface. Applications such as Lotus 1-2-3 already had elaborate keyboard interfaces that enabled users to quickly select functions. So while Windows incorporated the mouse as a standard part of its new interface, a comprehensive keyboard interface would necessary as well. In this case, Microsoft was able to recruit feedback from developers, most notably Lotus’s Ray Ozzie, who was formulating plans for a groupware program called Notes. His input was invaluable in determining what DOS application developers needed to transition to Windows.
Oh, did I mention that Ballmer had set Windows’ system requirements as a standard IBM PC with a minimum of 256 kilobytes (not megabytes) of RAM, two 5 1/4? floppy drives (no hard disk), and a CGA display? That last element was interesting since CGA graphics cards offered only 320-by-200 resolution and the pixels were rectangular (about 2x as high as they were wide), making a challenge for display of appealing graphics. The product also had to support the newer, more expensive IBM EGA display (with higher resolution and almost-square pixels) and the next most popular graphics card, the Hercules graphics adapter, which only displayed in black and white.
IBM AT systems that featured hard drives were just starting to be available so I was not permitted to consider that a minimum requirement. In any case, few people recognized that Microsoft had a harder time in developing Windows than Apple did with the Mac, since Apple controlled all the hardware its software ran on. Windows had the ambition to support “device independence,” which meant–in theory–it could support any display adapter or printer.
But by the early summer of 1985, we were still not close to being done, so Steve declared we should release a preliminary release that I dubbed the Premiere Edition, which we provided to key application vendors, analysts, and members of the press for feedback and in partial fulfillment of Ballmer’s promise to ship the product that summer. We worked all through the summer, typically seven days a week, to finalize things and thoroughly test the code. One of my program managers, Gabe Newell–now the head of the successful game company Valve–would pound on the software until late into the night and morning hours and then sleep in his office.
Then just at the point I was starting to feel more optimistic about wrapping things up the architect of the memory management code told me he found a critical defect in its design and would need to re-write it, basically rendering all testing to date useless. I pleaded with him to find an easier way, but after a thorough discussion there was no option other than to let him proceed and restart the testing process.