Bill Gates Interview by (PC-Magazine) ------------------------------------------------------------------------ REMEMBERING THE BEGINNING ------------------------------------------------------------------------ PC MAGAZINE: 15 years is a surprising amount of time in some ways. Obviously the PC industry goes back further, but the IBM PC changed it a lot. It changed the way people thought about computers. BILL GATES : It absolutely did. For the IBM PC, the key market was a hobbyist market. We'd gotten floppy disks, so we'd start to get into some more serious applications. But, both the power of the machine, because it was the first 16-bit machine, and the endorsement by IBM of using a personal computer, and then the critical mass of software and distribution and peripherals that came along with that, makes it the biggest milestone in the history of personal computing. It was a sea change. Of course, one of the big developments around it was that before the IBM-PC came along, machines were essentially incompatible with each other. In those first few years, [we saw] the whole notion of how compatible was compatible, there were many different levels there. And a lot of hardware manufacturers still felt they had more freedom to deviate a little bit and do things that couldn't be virtualized by a common software interface. So, in those first two years a lot of key things were established: the idea of compatibility; MS-DOS as the primary system as opposed to CP/M-86 or UCSD P-System which were the prime competitors; and the whole thing about a broad software industry and using indirect distribution channels. Anyway, it was a monumental change. PC MAGAZINE: Let's go back -- go back to that first 1982 PC Magazine interview. You know, "The Man Behind the Machine." Microsoft was involved with IBM to what at the time was an unprecedented degree. You had written software for lots of other machines at that point, not operating systems but BASICs and things like that. How different was it? BILL GATES : Well, for IBM it was extremely different because this was a project where they let a supplier -- a partner, whatever you call us -- shape the definition of the machine and provide fundamental elements of the machine. When they first came to us, their concept was to do an 8-bit computer. And the project was more notable because they were going to do it so quickly and use an outside company. It wouldn't be a high-volume product. Their charge was to do a home and a very low-end business machine. They had the Data Master, which was 8085-based at the time, that they felt was covering part of the business market. Then they had the 5100, the machine that had both an APL and a BASIC interpreter, which was covering another part of the business market. So it was sort of a home-down business machine. And it was a very small team in Boca that wanted to prove that IBM could do a product, any kind of product, in about an 18-month cycle. And that was the most novel—that was going to be the novel thing was: could you work with outsiders, which in this case was mostly ourselves but also Intel, and do it quickly? And the key engineer on the project, Lou Eggebrecht, was fast-moving. Once we convinced IBM to go 16-bit (and we looked at 68000 which unfortunately wasn't debugged at the time so decided to go 8086), he cranked out that motherboard in about 40 days. It's one of the most phenomenal projects because there were very small resources involved and we had to ROM the BASIC which meant that it was essentially cast in concrete, so you couldn't make much in the way of mistakes. We actually did this clever thing where for disk versions of the system, we put enough hooks in the ROM that you could place reasonably modular parts of the ROM. So it was very lucky when it turned out about a year after the machine shipped, there was a floating point bug and the New York Times ran it, we could just issue a disk that patched out that part of the floating point package because virtually all the machines that had been shipped were disk-based,. What I had done was made the dispatch table hookable. It was a very tricky project because the machine had to boot running only BASIC, or if it detected a disk, it had to boot with the operating system. And if only the BASIC came in, the we had to do file management against the audiocassette. And they insisted that it run in a 48k configuration which was pretty tricky; we were hoping they'd insist on 64k. Now, it turned out most people bought 128k versions of the machine. PC MAGAZINE: Didn't the original machine come out with 16k? BILL GATES : The cheapest machine you could buy -- yeah you're right, you're right: if you were cassette only, it was 16. And then if you got the disk you could be 48. And, it was actually fairly complicated because the ROM is up in very high memory, that is, it's at a different segment address. The whole idea of where we use long addresses, where we use short addresses. The 8086 architecture -- now that we have flat memory model, people forget that a segmented memory model is a fairly complex thing to work with. It actually got worse before it got better. We went to the 286 which was very segment-oriented before we finally got just straight, linear address space in 1986. PC MAGAZINE: And not in the operating system until after that. BILL GATES : That's right. PC MAGAZINE: That's significant. BILL GATES : Well, people had written applications to use real addresses -- DOS applications depended on the fact that there was not a level of indirection: that is that you simply shifted the segment value and added it in. So we had to keep running Real Mode Applications—I mean today you can buy an IBM PC and run a Real Mode Application. I mean it'd actually be interesting to take those applications that shipped with the original PC and plug them in. I'm pretty sure they'd work. I admit I haven't tried it. The first applications were an adventure game from us, a typing tutor from us, and then VisiCalc. PC MAGAZINE: Yes and Easy Writer. BILL GATES : Was Easy Writer there at the very beginning? I think it was. So none of the early applications have successful follow-ons. Now the early language tools included our BASIC compiler, our FORTRAN, and actually at those times we offered a PASCAL and a COBOL compiler as well. PC MAGAZINE: Obviously, back then you were talking about DOS as the standard. I mean you were telling people to write to MS-DOS, not to go around it to the hardware and all that. Of course, the programs that became most successful in those days of the applications, did go around it. IBM became hardware-dependent, which of course was then copied a lot. Was that a surprise to you? BILL GATES : No, not at all. I mean, remember we were the big promoters of the bit-map graphics. We were really against this there were two video cards. There was CGA, which we pushed for, unfortunately only got 640 by 200 graphics into it and the palate was limited. It was just at the last minute they gave us a tiny bit of a palate where color 0 could be mapped to 16, and colors 1, 2 and 3 had a flip where they could be one set or another. Anyway, the character cells on the CGA were 8 by 8 so they didn't look as good as the Character Mode Only card. Because that was actually, although it didn't have bit-map graphics, what IBM calls All Points Address (APA) graphics. So it was actually 640 by 350 so the character cells were much larger and looked a lot better. It was the Display Writer character cell size. So IBM thought a lot of people would buy that character mode card, which meant you couldn't do graphs and things. But the only way to do graphics was to [write code directly to the hardware. So all our applications that did graphics did that as well. It was only later that we decided we could provide some high-level services and get enough efficiency that graphics applications would go through the operating system. The definition of what it means to be a graphics application changed. In the early days it meant you had a mode where a chart would come up. Like when you ran Lotus 1-2-3, most of the time you were in character mode, where the scrolling was very fast. Now at days we have processors that are fast enough to scroll the bit map display and you don't even think about it. Back then, just scrolling the display in graphics mode, was noticeably, significantly, painfully slower than scrolling the display in character mode because you have eight times as many bits to push around and these processors were quite slow processors.