About | Buy Stuff | News | Products | Rants | Search | Security
Home » Resources » Rants

640K is Not Enough?

Week of February 26, 2002
Comments on PC history as rewritten by Bill Gates.

It seems Bill Gates has been misinterpreted all these years. When he felled his (in)famous quote:

640K should be enough for anyone.

He was evidently being sarcastic - or so he wants us to believe.

Gates claims he has attempted to clarify his position on many occasions. Whatever - he's been trying again.

Lou Eggebrecht (who really designed the IBM PC original hardware) and I wanted to convince IBM to have a 32-bit address space, but the 68000 just wasn't ready. Lew had an early prototype but it would have delayed things at least a year.

The 8086/8088 architecture has a 20-bit address bus, and the instruction set only generates 20-bit addresses.

I and many others have said the industry 'uses' an extra address bit every two years, as hardware and software become more powerful, so going from 16-bit to 20-bit was clearly not going to last us very long. The extra silicon to do 32-bit addressing is trivial, but it wasn't there. The VAX was around and all the 68000 people did was look at the VAX! 2 to the 20th is 1 megabyte (1024K), so you might ask why the difference between 640K and 1024K — where did the last 384K go?

The answer is that in that 1M of address space we had to accommodate RAM, ROM, and I/O addresses, and IBM laid it out so those other things started at 640K and used all the memory space up to 1M. If they had been a bit more careful we could have had 800K instead of 640K available.

In fact, we had 800K on the Sirius machine, which I got to have a lot of input on (designed by Chuck Peddle, who did the Commodore Pet and the 6502, too). The key problem though is not getting to use only 640K of the 1M of address space that was available. It's the 1M limit, which comes from having only 20 bits of address space, which is all that chip can handle!

So, this limit has nothing to do with any Microsoft software.

There's some spectacular name dropping here, although of course it can be expected that Gates knew all these people, as IBM did in fact come to Microsoft and not the other way around. And Gates seems to come off with a facility for binary numbers and stuff - almost like a real geek. But unfortunately this is still a somewhat rose-coloured version of history that is wrong, and here is why.

  1. If IBM did in fact opt away from the Motorola processor only because it wasn't ready, then this decision is one of the luckiest in Big Blue's long and egregious career. The implications of the IBM PC were well known at the time - at least as they were presented to outsiders, at least as history has since written the story.

    IBM went with the 8088 primarily to accommodate existing CP/M software vendors. The entire spectre of the home computing market with its focus on CP/M forced IBM into a dramatic turnaround in its classic marketing strategy. Up to that point Big Blue had been entirely cloak and dagger in all they did. Everything was a big secret, only IBM software could be used on IBM machines, you could remove software from the IBM tapes but you were not allowed (per your very expensive support contract) to add any third party stuff (vis Amdahl's folly), the internals of these machines could change at a moment's notice and no one but no one was allowed to pry into them, etc. IBM was a single vertical monopoly vendor, supplying hardware and software both, and at one point they had over 95% of the total world-wide computer market. They would never have changed this strategy in a million moons.

    The home computer market was the antithesis of all this, and IBM's analysts saw that its very success was dependent not on secrecy but on open standards and a proliferation in both hardware and software manufacturing. The home computing market was a success precisely because there was no monopoly, precisely because you could buy the hardware from anybody (as long as it ran a Z80) and you could buy your software from anybody (as long as it ran on CP/M). Hardware vendors had an easy time of it - they didn't have to worry about the software, all they had to worry about was the lower half of CP/M, the half that was hardware dependent, and make sure their hardware ran right with it. Software vendors didn't worry about the hardware, they only made sure their stuff ran right with the upper half of CP/M. And so forth.

    IBM knew if they introduced a machine with no big ISV products they would be dead - which is precisely why they set about traveling all across the North American continent with PC prototypes and software engineers, traveling to CP/M software houses, giving these machines away and offering freely of their time, to show the software houses how easy it was to port their existing CP/M software to the new IBM PC platform.

    And because IBM is IBM, no software house refused. The IBM stamp of approval was enough to almost guarantee financial success.

    But all of this was dependent on one very crucial thing: Namely that the instruction set of IBM's new PC be backward compatible with that of the existing CP/M computers.

    Therein lies the stroke of genius on the part of IBM. Therein lies a cold-blooded and almost heroic decision by IBM - to blindly abandon tried and true marketing warfare in favour of what in essence is the complete opposite. As we know, they succeeded.

    Yet this would not have been conceivable had IBM wanted to go with a 32-bit processor. The 8088 was conceivable (and the obvious choice) because although it had 16-bit internal registers, it still had 8-bit bus addressing and therefore more compatibility with existing CP/M software.

    In fact the interrupt vector table of MS-DOS was deliberately designed to be backward compatible with CP/M, and this was to hold true for all versions of MS-DOS ever released - even 7.0 which is what is unofficially under Microsoft Windows 9x.

    This 'very friendly' interrupt vector table - inconceivable on any 32-bit processor platform - was there specifically to aid CP/M ISV software houses in porting their software to the new IBM platform.

  2. Even if the logic doesn't kill the illusions, IBM's financial record surely will. For the largest stockholder in Intel at this time was - you guessed it - IBM.

    At the peak of their investments IBM held 29% of the Intel stock, which is a WHALE of an investment. The analysts at the time had no difficulty finding sources within Big Blue to comment on this.

    IBM had namely come to the decision - long before meeting Gates - that they needed a Zilog or compatible processor, either the Z80 or the equivalent.

    IBM did in fact contact Zilog - Zilog was just three top Intel engineers who had run off with the booty, the same way Intel was three top engineers who had run away from William Shockley with the booty - but IBM also contacted Intel, and it was IBM's corporate decision that Intel would be easier to work with.

    As far as the processor lines went, IBM had no favourite. Zilog had another killer processor in the works, and it was good, but IBM was not going on processor quality - they were going on the feasibility of working with either of these processor manufacturers - and as we all know, IBM chose Intel.

Ultimately it's irrelevant who suggested poor people in Paris eat cake when they run out of bread, and who claimed five IBM mainframes would be enough processing power for the entire planet, and what IBM did with PC memory segments A through F. Bill Gates will always be castigated for that remark not because he was misunderstood - but because his company produces such crappy software.

About | Buy | News | Products | Rants | Search | Security
Copyright © Radsoft. All rights reserved.