The IBM PC, Part 3

16 May

In November of 1979, Microsoft’s frequent partner Seattle Computer Products released a standalone Intel 8086 motherboard for hardcore hobbyists and computer manufacturers looking to experiment with this new and very powerful CPU. The 8086 was closely related to the 8088 that IBM chose for the PC; the latter was a cost-reduced version of the former, an 8-bit/16-bit hybrid chip rather than a pure 16-bit like the 8086. IBM opted for the less powerful 8088 partly to control costs, but also to allow the use of certain hardware that required the 8-bit external data bus found on the 8088. But perhaps the biggest consideration stemmed, as happens so often, from the marketing department rather than engineering. The 8086 was such a powerful chip that an IBM PC so equipped might convince some customers to choose it in lieu of IBM’s own larger systems; IBM wanted to take business from other PC manufacturers, not from their own other divisions.

The important thing to understand for our purposes, though, is that both chips shared the instruction set, and thus could run the same software. Everyone wanted to run CP/M on the SCP boards, but CP/M existed only for the Intel 8080 and Zilog Z80. Thus, SCP had the same problem that Sams and IBM would face months later. Digital Research repeatedly promised an 8086/8088 version of CP/M, but failed to deliver. So, in April of 1980 Tim Paterson of SCP decided to write his own 8086/8088 operating system. He called it QDOS — the “Quick and Dirty Operating System.”

The ethicality or lack thereof of what Paterson did has been debated for years. Gary Kildall stridently claimed many times that he ripped off the actual CP/M source code, but this is a very problematic assertion. There is no evidence that he even had access to the source, which Digital, like most companies then and now, guarded carefully. On the other hand, Paterson freely admits that he pulled out his CP/M reference manual and duplicated each of its API calls one by one. On the other other hand, and while it may not have reflected much originality or creative thinking, what he did was pretty clearly legal even by the standards of today. Courts have ruled again and again that APIs cannot be copyrighted, only specific implementations thereof, and that reverse engineering is therefore allowed. (Well, there is patent law, but that’s a swamp we’re going to stay well away from…) Food for thought for open-source advocates and Microsoft haters: if QDOS was ethically wrong, then Linux — largely a reimplementation of the Unix standards — must be equally wrong. Paterson claims that he had a good reason to copy CP/M so closely: he wanted to make it as easy as possible for programmers to move existing CP/M software over to QDOS. He also claims that beneath the surface, where he could get away with it, he substantially improved upon his model, notably in disk- and file-handling.

In the meantime Gates was wondering how the hell he was going to come up with an operating system for IBM in the time frame they wanted. Then one day Paterson called Paul Allen of Microsoft to tell him about QDOS, just in case Microsoft was interested in writing some software for it or using it in-house. Gates, just the man to recognize an out-of-the-blue savior when he saw one, called Sams, asking, “Do you want to get [it], or do you want me to?” Sams’s answer to that question would cost IBM billions and billions over the decades to come. “By all means, you get it,” he said. Recognizing that PC software was far from his realm of expertise, Sams had already pretty much thrown all of his systems-software problems into Microsoft’s lap, and he saw no reason to change course now. “We wanted this to be their problem,” he later said. Microsoft’s “problem” would in a few years become a big, big problem for IBM.

On September 30, Gates, Ballmer, and Bob O’Rear flew down to Florida to make their final proposal to IBM. For Sams, who wanted to essentially foist the software problem on someone else, their plan sounded ideal. Microsoft would take responsibility for providing an operating system, four programming languages (BASIC, COBOL, FORTRAN, Pascal), and a range of other software to be available at launch (including our old friend Microsoft Adventure). One point Gates carefully stipulated: Microsoft would license all of this to IBM, not outright sell it to them, and would expect to be paid on a per-copy royalty basis. IBM, feeling there was opportunity enough for everyone to do well out of this and that it couldn’t hurt to have Microsoft’s own fate tied so closely to that of the IBM PC, agreed. This huge company, legendarily risk-averse and conservative, elected to place the fate of one of their biggest projects ever in the hands of a 24-year-old. If Microsoft failed to come through, the IBM PC itself would be stillborn. On November 6, Microsoft and IBM officially signed the contract, which immediately paid Microsoft $700,000 to begin porting all of this disparate software to the new architecture. Ironically, by that time both Lowe and Sams, who had played such prominent roles in everything that came before, had been transferred to other divisions. Project Chess may have been an Independent Business Unit, but it obviously wasn’t entirely immune to the fickle ways of the IBM bureaucracy. Don Estridge took over leadership of the project.

While the software deal was being finalized, Project Chess had not been idle. That same November Microsoft received its first two prototype machines. IBM, desperately concerned about secrecy, demanded they keep them in a windowless vault secured with locks they themselves provided. Microsoft and IBM’s Project Chess, just about as physically far apart as two organizations can be and still be in the United States, nevertheless developed a working relationship that seems similar to those of today, when geography matters far less. They communicated constantly through telephone and (especially) a special email system they set up, shuttled packages back and forth via an overnight service, and visited one another frequently — and sometimes without warning. (This became a particular concern for Microsoft; IBM had a habit of dropping in unannounced to see if all of their byzantine security procedures were being practiced.) The IBM team of course had plenty to keep them busy, but Microsoft were truly up against it. Thanks to all of the negotiations, they were according to Gates already “three months behind schedule” the day the contract was finalized. Everyone worked months of seven-day weeks. Most didn’t even take Christmas off.

The first goal had to be to get the machine running in its two modes of operation: BASIC and the disk-based operating system. The former Microsoft could handle on their own, but the latter left them dependent on Seattle Computer Products. Even as Microsoft had been finalizing their deal with IBM and starting to work, Paterson and SCP had been continuing their own work, refining QDOS from a “quick and dirty” hack into an operating system they could sell. Along the way they renamed it, for obvious reasons, to 86-DOS. As 1980 drew to a close, they at last had a version they felt was suitable for the outside world.

Until this point, Bill Gates has basically behaved himself, acting like a hard-driving but straightforward businessman. Now, however, we start to see some of that legendary Gates shiftiness come out. He wanted for Microsoft a royalty-based agreement that would let them share in the hoped-for success of the IBM PC. But he wasn’t ready to share those fruits with SCP, who still had no idea that the IBM project was even happening or that their modest little one-man-authored operating system was key to the plans of one of the biggest companies in the world. Gates wanted to keep them in the dark, but he needed 86-DOS, like, yesterday. He therefore needed to pry 86-DOS out of their hands without letting them know why he wanted it.

Paul Allen negotiated an agreement with SCP owner Rod Brock in January, implying that Microsoft had a whole stable of customers eager to run 86-DOS. The deal would essentially allow Microsoft to act as middleman — or, if you like, retailer — in these transactions. For each customer to whom they sold a license for 86-DOS, they would pay SCP $10,000, or $15,000 if the license also included the source code. They would also pay SCP an initial fee of $10,000 to begin the agreement. For SCP, a much smaller, hardware-focused company without the reach or marketing skills of Microsoft, the agreement sounded great — especially because business lately had not been particularly good. Microsoft seemed convinced that they could sell quite a few licenses, bringing in effortless money for SCP for this operating system Paterson had begun almost on a lark. One clause buried in the contract might have raised a red flag: “Nothing in this licensing agreement shall require Microsoft to identify its customer to Seattle Computer Products.” Brock later said, “That seemed strange to us, but we agreed to go along.” In reality, of course, Microsoft had no stable of eager licensees. They had just one, the biggest fish of all: IBM. Microsoft sold just one license under the agreement, acquiring IBM’s operating system for them complete with source for just $25,000.

In February, Bob O’Rear of Microsoft got 86-DOS to boot for the first time on one of the prototype machines:

“It was like the middle of the night. It was one of the most joyous moments of my life, to finally after all the preparation and work, and back and forth, to have that operating system boot up and tell you that it’s ready to accept a command. That was an exciting moment.”

IBM was soon requesting a number of changes to 86-DOS. Microsoft thus found themselves in the awkward position of having to go back to Paterson, who of course knew 86-DOS far better than anyone else and whom they had signed to a consulting contract, to request changes without telling him where the requests were really coming from. In the end they convinced him to leave SCP and come to work for them full-time. “It’s IBM!” they told him as soon as he worked through the door on his first day as an employee. Ironically for Paterson, who has spent decades battling critics who claim he ripped off CP/M, many of the changes IBM requested actually made 86-DOS look even more like CP/M. For instance, the command prompt showing the current drive — i.e., “A>” — was the result of one of IBM’s requests, and a carbon copy of CP/M’s. Paterson says it made him “want to throw up,” but of course on this project what IBM requested IBM generally got.

IBM planned to announce the IBM PC in August of 1981 — as per the original plan, which gave Project Chess exactly one year to complete its work. They weren’t interested in postponing, so everyone in Boca Raton and especially at Microsoft just worked harder as smaller deadlines were missed but the biggest one just stayed fixed. They also began confidentially approaching other developers, of software such as VisiCalc and the word-processing package Easy Writer, to add to Microsoft’s lineup of applications and games. They even arranged to make another of our old friends, the UCSD Pascal P-System, available for those who wanted to run it in lieu of 86-DOS or the Microsoft BASIC environment. Incredibly given its expanding scope, the project remained a complete secret for quite a long time. But finally in June InfoWorld printed a detailed article that described the entire plan down almost to the last detail, even mentioning that the operating system would not be CP/M but would be “CP/M-like.” They missed only the planned announcement date, saying it would happen in July rather than August. The Datamaster, the earlier “PC-like” project that had provided technology and personnel to Project Chess, did make its own belated debut that month. Many assumed that the project InfoWorld had scooped was the Datamaster, and thus that the magazine had gotten it all quite wrong. Those better connected, however, knew better by this time.

Then on July 27, 1981, barely two weeks before the planned announcement, Bill Gates made what has often been called the deal of the century.

Rod Brock at SCP was a disappointed man. The legion of 86-DOS licensees he had anticipated following the Microsoft deal hadn’t materialized, and now he had lost Paterson, the one software guy at his hardware-focused company, to Microsoft. It was pretty obvious by now who the one 86-DOS sub-licensee must be, but SCP was strapped for cash and lacked the ability to support an operating system. He started to shop 86-DOS around a bit, looking for someone willing to take over support in return for an exclusive license to it. Gates pounced immediately, offering SCP a much-needed $50,000 for the deal — with one crucial difference. He stipulated that Microsoft would not be buying an exclusive license, but would be buying the software itself, outright. They would then grant the exclusive license to SCP, essentially turning the deal on its head. Brock was uncertain, but he really did need the money, and he didn’t quite know what to do with 86-DOS himself anyway…

He signed the agreement, making Microsoft the sole owner of 86-DOS — or, as it was immediately renamed, MS-DOS. It’s yet another example of the terrible financial decision-making that was so endemic to the early microcomputer industry, as hackers who knew everything about bits and bytes but nothing about business suddenly found themselves running companies. These were the kinds of mistakes that Gates never made, but knew how to exploit and even engender in others. When dealing with innocents like Brock, it was as easy as leading the proverbial lambs to slaughter. MS-DOS, purchased for $50,000, was earning Microsoft more than $200 million per year by 1991. Even more importantly, it was the key building block in the Microsoft monopoly that would absolutely dominate business computing by the mid-1980s, and dominate virtually all computing throughout the 1990s. This decision, more than any other, is the one that made Microsoft the giant it still is today.

But Microsoft (and IBM) suddenly had one more legal hurdle to clear. By this time, with the IBM PC becoming more and more of an open secret in the industry, Gary Kildall had seen a copy of 86-DOS/MS-DOS in action. He was convinced that Paterson had stolen his operating system, that he had somehow gotten a copy of the source code, made only those changes needed to get it running on the Intel 8086/8088, filed off the digital serial numbers, and sold it to IBM. Now he began to threaten legal action, and (perhaps of more concern to IBM) to cause a huge stink in the press that could cast a cloud over the upcoming announcement. He and Gates met for lunch to try to hash things out, but to no avail. “It was one of those meetings where everybody was nice to each other, then everyone shouted at each other, then everyone was nice to each other, then everyone shouted at each other,” recalled John Katsaros, a Digital Research colleague who was also there. And so IBM stepped in to make a deal. They would also offer CP/M-86, the 8088-compatible version of the operating system which Digital were still messing about with, on the IBM PC just as soon Kildall could give them a completed version. Kildall, at least somewhat placated, accepted. The IBM PC, which IBM had from the start envisioned as a true “anything machine,” would now have no fewer than four available operating paradigms: the ROM-hosted BASIC, MS-DOS, CP/M, or UCSD Pascal.


Tags: , ,

12 Responses to The IBM PC, Part 3

  1. matt w

    May 18, 2012 at 11:54 am

    This is great! But I humbly suggest that when you publish it in book form, you expand on the third paragraph a bit — I know I really ought to understand what “duplicated each of its API calls one by one” means, but I don’t.

    • Jimmy Maher

      May 18, 2012 at 12:23 pm

      A quick rundown:

      “API” stands for “Application Programming Interface.” It’s the way that an application talks to the operating system to make requests of it. For instance, let’s say that I want to open a file to read in a database (or for any other purpose, really). I accomplish this via the appropriate API call, telling the OS what file I want to open, whether I want to read from or write to it (or both), etc. Then the OS answers me, telling whether it can accommodate me. If so it passes me a hook to the file that I can use in my program. If not, it hopefully tells me why (the file doesn’t exist, I don’t have permission to access it, etc.).

      Modern APIs are mostly enormously complex, both because modern OSs do so damn much and because there’s often a lot of legacy cruft that never gets cleaned out. The modern MS Windows API, for instance, consists of thousands upon thousands of available functions, built in layers upon layers, some new, some dating back over 20 years. In the case of CP/M, however, there were only on the order of 25 to 30 API calls even available, most just dealing with very basic disk operations like the one I’ve just described — because that’s ultimately about all that CP/M really did. Thus it wasn’t such a big deal for Paterson to systematically duplicate them for QDOS.

      What this got him was a degree of CP/M compatibility. Because CP/M programs ran on an entirely different architecture at this time, you couldn’t just stick the executables into QDOS and expect them to run. However, if you had the source code you could very easily recompile them to run in QDOS, possibly with no changes at all — because all of the API calls would be exactly the same. Further, someone who knew how to program for CP/M would automatically be able to program for QDOS. It’s the same reasoning that leads so many modern programming languages to adapt a “C-like” syntax, because just about every professional programmer knows him some C.

  2. Lisa

    June 11, 2012 at 7:18 pm

    Have you made some change in the RSS feed settings? With “IBM PC part 2” they suddenly started coming through as complete posts rather than only links. I think that’s great – keep it that way, if you did something! :)

    • Lisa

      June 11, 2012 at 7:19 pm

      That is, looks like some old things are getting republished because of it – but if it holds going forward, that’ll be cool.

      • Jimmy Maher

        June 12, 2012 at 6:09 am

        I updated to a newer version of WordPress a few days ago. That must be the source of the disruption. Sorry about that.

        I didn’t intentionally change any settings that I’m aware of, but if you’re happy with the new format I guess we can leave well enough alone. :) No one has complained so far…

  3. Milan Kovac

    November 15, 2012 at 4:21 pm


    “if QDOS was ethically wrong, then Linux — largely a reimplementation of the Unix standards — must be equally wrong.”

    well… NOT.

    reimplementation of CP/M (aka QDOS) had objective to make money (or at least: Bill Gates do it that way)


    reimplementation of UNIX had for objective something quite opposite to proprietary QDOS: to “Open” software.

    • Giuseppe

      April 22, 2013 at 12:13 am

      That’s a difference that makes no difference.

      • hjp

        June 6, 2017 at 8:21 pm

        There is a more important difference, though: Kildall apparently intended the CP/M API to be proprietary. But AT&T had different plans for Unix: Not only had they licenced it to a whole bunch of other vendors (and universities like Berkeley), they even turned it into a standard. When Linux was developed, the POSIX standard existed, and implementing it was not only allowed, but encouraged!

        (That said I think that APIs must not be copyrightable and recent court decisions overturning that long tradition are worrying.)

  4. Bruce

    December 20, 2012 at 2:27 pm

    A nit. Since DOS didn’t get directories until much later, the prompt would have been simply > in fact this didn’t stop being the default until DOS 4 or 5.

    • Bruce

      December 20, 2012 at 2:28 pm

      Simply A> rather. Sorry, autocorrect.

    • Jimmy Maher

      December 20, 2012 at 2:41 pm

      Thanks! I made a correction in the text.

  5. G Grobbelaar

    August 31, 2015 at 11:05 pm

    Dos, o Dos! I started my PC experience on a 086, but “de-grade” down to a XT – 2 floppies! That dos promt has the nagging ability to stay! Even win7 and 8 still has it as one use it to PING the internet! But to see it from what really happen to get the PC’s in a home is quite exciting! As I stated in an earlier post, I never really had connections to PC’s until 91 when I met my wife via my sister that worked at the same company. What also fascinate me now is how, when windows 3.1 came out in its 2 flavours, how quickly people forgot the dos commands! Its literally the same as what cell phones did! How many numbers could one remember when it was still the old rotary or push button phones? Yes we had a phone book, but our friend numbers we could easily recall those 7 numbers! Same with DOS – scandisk, fxdisk, copy A: *.* to C: … You catch my drift, not to talk of bootdisks and recovery disks! We are not that inclined to remember that much anymore, do we? Any case its just my few bits for this bytes, actually mega bytes! BTW, so many people still don’t understand why 1mb is 1024 and not 1000! But here I think its a moot point as everyone here knows the reason!


Leave a Reply

Your email address will not be published.