The story of how MS-DOS became the industry standard for the 16-bit business computers at the expense of Digital Research’s CP/M is somewhat of a legend among fans of computing history. The event has been described in books, articles and documentaries, with most of them focusing on entertaining details such as corporate drama, back-stabbing and nepotism.
Some of the more serious accounts mention one important detail of the story: DRI was late with the port of the CP/M to the Intel 8086. When IBM representatives visited in August of 1980, looking for an operating system for their upcoming PC, only the 8-bit version of CP/M could be demonstrated. IBM eventually turned to Microsoft and selected what became MS‑DOS.
In this article, we will examine why CP/M‑86 was delayed and, in the end, speculate how much that delay actually mattered.
To understand why the CP/M port to the Intel 8086 was delayed, we need to go back to 1978. The current version of CP/M was 1.4, and it was already the industry standard as an operating system for 8-bit business microcomputers.
At the time, Digital Research founder Dr. Gary Kildall felt that microcomputers needed a high-level application language - something better suited to application development than his PL/M, which was essentially a systems language. At first, he considered Pascal. Then he received a call from Boston‑based computer scientist Dr. Robert Freiburghouse, who invited him to join an ANSI standards committee working on the PL/I‑G dialect. Kildall was familiar with PL/I and did not have a good opinion of it, but after attending several committee meetings he realized he liked the “Subset G” proposal and decided to implement a compiler.
The plan was to complete the new compiler in nine months. Instead, development stretched to more than two years; the compiler was finally released in late 1980 under the name PL/I‑80.
DRI’s PL/I received praises for its quality - after all compilers were Gary Kildall’s core expertise - yet it saw little adoption and no real market success. Commercial applications for microcomputers continued to be written mostly in assembly languages for another decade. Kildall himself later described the PL/I project as a “huge diversion”.
Worse, prioritizing the PL/I-G project at the expense of CP/M led to a major crisis.
Originally, CP/M was written as a monolithic piece of software. Once it began to be adopted to various Intel-based microcomputers, Kildall decomposed it into the part that was hardware-independent (BDOS) and the part that had to be re-written for each new machine (BIOS). In theory, a computer manufacturer (OEM) could implement its own BIOS using the documentation without any help from DRI. This modular design was another factor that helped CP/M gain popularity.
Unfortunately, certain assumptions about the disk geometry remained hard-coded into BDOS: the system assumed single‑sided, single‑density 8″ floppy disks with 77 tracks, 26 sectors per track and 128 bytes per sector. Then, larger disks appeared: double‑density 8″ disks, 5.25″ disks with capacities above 300 KB, and most importantly hard disks started to get used with microcomputers. CP/M 1.4 was quickly becoming inadequate.
Kildall realized that the solution required another redesign, with the disk characteristics moved from BDOS to BIOS so OEMs could define them. The actual implementation of the new design still required time and effort, and customers were growing impatient.
At that point, DRI had only one technical employee besides Gary Kildall: John Pierce, whose main responsibility was customer support. Fortunately, the finances looked good, so Kildall went to his former employer, Naval Postgraduate School (NPS) and recruited an old friend: Kathryn “Kathy” Strutynski - in his words, “an astute programmer”. Strutynski became DRI’s fourth employee, and soon she was busy working on CP/M 2.
According to Strutynski, they had only one computer with a hard drive. She would work on it until 2 A.M., and then Kildall would take over. It took the two of them about six weeks to complete the 2.0 release. After that, Kildall went back to his PL/I project, and Strutynski wrote an improved version, CP/M 2.2, that became the most popular edition of the operating system ever released. She earned the nickname “Mother of CP/M 2”.
From that point on, Kathy Strutynski was in charge of CP/M, and the next step in its evolution was a port to Intel’s new 16-bit CPU, the 8086.
This was the first attempt to port CP/M to another microprocessor. The operating system had originally been developed for the 8-bit Intel 8080, and until then it had been released only for that instruction set architecture, even though most CP/M machines built after 1977 used the more advanced Zilog Z80.
The scope of the project was intentionally limited: CP/M-86 was envisioned as a pretty much direct translation of CP/M 2.2 to the 8086 architecture. The only significant new feature would be the use of the much larger address space of the 16‑bit processor. That allowed multiple programs to be loaded into memory simultaneously, even though they could not run concurrently. Major new features such as multitasking and networking were left to separate projects called MP/M and CP/NET, led by another of Kildall’s friends and new employee of DRI, Tom Rolander.
Given the modest project goals and the proven capabilities of its lead, the original estimate for its release (by the end of 1979) looked reasonable. The 8086 had been designed specifically to make the migration straightforward: translation tables were provided by the Intel manuals. In fact, DRI later released a source-to-source compiler from 8080 to 8086 assembly called XLT86.
Yet the deadline slipped by more than a year. Ironically, the main reason was the success of CP/M 2.2. Strutynski had to spend way too much time helping OEMs adapt CP/M to their hardware. Because of the modular design of the operating system, the manufacturers were in theory able to write their own BIOS. In practice, they needed a lot of handholding from DRI, and most of that work fell on Strutynski.
Among the multitude of customers that asked her for help was Microsoft. After seeing VisiCalc on an Apple II, Paul Allen realized the potential of the machine which was previously used mostly in education and by hobbyists. Instead of porting all existing Microsoft products to the 6502-based computer, Allen came to an idea to develop a hardware card that would contain a Z80 processor and turn the Apple II into a CP/M compatible computer. The device was named SoftCard and was initially prototyped by a small hardware manufacturer called Seattle Computer Products (SCP). CP/M was licensed from DRI and it was Strutynski who worked closely with Allen to adapt the operating system to the new card.
I went to Microsoft and my daughter went and we worked on the SoftCard and she slept on Paul Allen’s couch and I worked on trying to get the code tight enough to fit on the card.
Kathryn Strutynski
The SoftCard was a surprising success. For a time it was not only the major source of revenue for Microsoft, but (according to Bill Gates) the most popular hardware platform on which CP/M ran. In fact, many Apple II users believed CP/M was a Microsoft product (the copyright message displayed by the card mentioned Microsoft, but not DRI) which later caused confusion when IBM representatives began searching for an operating system for the IBM PC.
All these success stories helped establish CP/M 2.2 as the de-facto standard for the eight-bit business computers in the early 1980s. Unfortunately, they also drained DRI’s limited engineering resources, and CP/M‑86 slipped behind schedule.
In hindsight, it is easy to criticize DRI for investing effort on projects such as PL/I and MP/M instead of focusing on CP/M-86. However, in 1979/1980 it was not clear how close the shift to 16-bits was and which CPU was going to lead. Intel was the first to market with the 8086, but Zilog soon followed with the Z8000 architecture, and then in late 1979 Motorola released the excellent 68000, which IBM even considered for the PC.
Few OEMs were asking for an 8086 version of CP/M. One that did was SCP - the same company that helped Microsoft design SoftCard. They needed a disk operating system for their 8086 board released in November 1979. In April 1980, after CP/M-86 was still nowhere to be seen, they lost patience and asked their young engineer Tim Paterson to develop a “quick and dirty” OS similar to CP/M that would hopefully boost the sales of their board. That little operating system, officially named 86-DOS, was eventually purchased by Microsoft and renamed MS-DOS. Paterson has stated on multiple occasions that he would never have begun developing it had CP/M‑86 been available on time.
When CP/M‑86 finally appeared in early 1981, it initially sold well. DRI’s newsletter “Digital Research News” for the fourth quarter of 1981 came with an article titled “CP/M-86 Captures Leading Share in 16-Bit World Market” which estimated that 25% of 16-bit microcomputers were using CP/M-86. The situation quickly changed after IBM PC was released with “IBM PC DOS” (rebranded MS-DOS) being offered for a fraction of the price of CP/M-86.
Although CP/M-86 was never given a fighting chance against PC DOS, the 8-bit versions of CP/M (renamed CP/M-80) continued to sell well for a while. DRI’s revenues were $6 million in 1981 and grew to $44.6 million in 1983. The company’s headcount peaked at over 500 employees, including staff in three international offices.
However, by 1985 it was clear that MS-DOS on PC-compatible computers had won. DRI faced layoffs and the departure of many key employees, including Kathy Strutynski who returned to NPS seeking a more secure employment. She passed away in 2010. Reduced in size, DRI remained in business until 1991 when it was acquired by Novell. The sale made Gary Kildall very rich, but not happy; he died in 1994 at the age of 52, embittered and struggling with alcoholism.
Some analysts believe that releasing CP/M-86 in December 1979 as planned would have forced IBM to strike a deal with DRI, preventing 86‑DOS from ever being created. In that scenario, DRI could have followed up with the multitasking Concurrent CP/M and with the addition of the GEM desktop environment, the PC industry would have had a true multitasking graphical OS by 1985.
In my opinion, a timely release of CP/M-86 would have changed little. The reasons DRI and IBM were not able to reach the deal were complex and the readiness of CP/M-86 would have done little to resolve them. Microsoft would simply have developed a new operating system from scratch to keep the IBM PC project alive - something they were perfectly capable of doing. They had already created (but never released) M-DOS for the 8-bit computers that was more advanced than CP/M, and their Standalone Basic, which included a FAT filesystem, had already been ported to the 8086. After all, the early disk operating systems consisted of just a few kilobytes of machine code.