A blog post by programmer Nemanja Trifunovic, The Late Arrival of 16-bit CP/M, is on the face of it an interesting little excursion into the late delivery of a long-forgotten bit of software – one that turned out to be pivotal for the entire computer industry.
It's the story of why the 16-bit version of Digital Research CP/M was late, but the delayed arrival of this now-obscure OS is what catalyzed the development of a different, but source-level compatible, OS. That OS started Microsoft on its way to its current $3.5 trillion capitalization, and is also what led to the development of OS/2, Windows, and indirectly Linux. There's a good chance that you already think you know how what happened, but if you reckon it's anything to do with DR's Gary Kildall being out flying a plane, that's not the true story, as The Register covered in 2011 (we'll get back to why not later in this piece). The real reason is the delay in delivering CP/M-86, and that's what Trifunovic covers in detail.
The CP/M-86 User Guide [PDF] bears a copyright year of 1981. The problem is it was designed for Intel's 8086 processor, and that shipped in 1978 – followed a year later by the budget model, the cut-down Intel 8088. In other words, the new edition of CP-M arrived about three years late. Its target, the 8086, was the exciting new 16-bit successor to the Intel 8080. As Intel's own page says:
It didn't revolutionize microprocessors – it created the microprocessor market.
This is no exaggeration, and a big reason it did so well was that it had a de facto standard OS: Digital Research's CP/M. CP/M was completely dominant. The early business microcomputer industry ran on it and essentially nothing else.
CP/M was an OS for business microcomputers costing thousands of dollars because it needed at least one floppy diskette drive. In turn, that's why BASIC interpreters running from ROM chips dominated the growing market for inexpensive home computers.
In the period between Intel launching the 8086 and Digital Research (DR) finally launching an OS for the new processor, the three computers of BYTE Magazine's "1977 Trinity" jointly created the home computer market: the Commodore PET, the Apple II, and Radio Shack's TRS-80.
There was another processor that ran CP/M: Zilog's Z80. Although a fine chip and still mourned today, the Z80 was very much an eight-bit device, limited to a total of 64 KB of memory (RAM and ROM put together) without complicated bank switching.
As memory grew more affordable, what businesses needed was a partly compatible successor to the 8080 that could handle more of it. Intel delivered that with the 8086, which, rather than being limited to 64 KB, could handle 16 separate segments of 64 KB – for a total of one whole megabyte of memory space.
The problem was that, unlike the Z80, the 8086 was not binary compatible with the 8080. You couldn't run the 8080 version of CP/M (soon renamed CP/M-80) on it, like you could with a Z80. To use the new chip, hundreds of thousands of CP/M users needed a new OS. DR originally promised it would deliver one by November 1979, but it didn't happen. Trifunovic's article explains why and how it slipped.
As a result, one of the hardware OEMs selling 8086 boards was more or less forced to develop its own independent, third-party-compatible OS. No, not Microsoft, and not IBM either. Back in 2007, Tim Paterson, the developer of that OS, wrote about how and why he did it. He called the result 86-DOS, and a couple of years ago, we covered the rediscovery of the oldest known version of that OS.
Paterson started work on 86-DOS in 1980 because CP/M-86 was already late. That was more than a year before IBM launched the first IBM PC – with the budget cut-down 8088, so it cost "only" $1,500.
As The Register put it back in 2011:
In fact, it's likely IBM selected CP/M-86 but was forced to look, at least temporarily, elsewhere as DR's effort to port CP/M to the Intel 8086/8088 CPU was taking longer than planned. Gates may well have pitched an alternative – IBM was already talking to Microsoft about using the latter's implementation of the Basic programming language – and appears to have won the deal in November 1980.
Not long after, Microsoft licensed 86-DOS from Seattle Computer Products (SCP), specifically to sub-license the OS to IBM in turn. 86-DOS had been created by SCP as a stand-in for CP/M-86 and was thus intentionally compatible with the DR OS.
In time, that made the fortune of Microsoft. Because IBM didn't get Microsoft to sign an exclusive deal, Microsoft was allowed to sell its DOS to whoever it wanted. That, together with cheaper IBM-compatible hardware, created the x86 PC industry.
The limitations of DOS, especially its memory management, are why Intel's successor chip, the 80286, was a bit of a flop. Although the 80286 had protected mode, which allowed it to support 16 MB of RAM and multitasking, this did little to help DOS — or IBM's new OS/2 1.0.
Here, too, DR missed out again. It had lost the deal to be the default OS on IBM's PC, but when Intel was developing the 80286, DR was ready for it.
It had already effectively merged its multiuser multitasking MP/M [PDF] OS into CP/M-86 to create the multitasking Concurrent CP/M. It then added MS-DOS compatibility to create Concurrent DOS. The problem was that you can't fit many DOS apps into the 640 KB of RAM in an 8088 or 8086 PC.
So DR enhanced Concurrent DOS to make a native Intel 80286 OS. Concurrent DOS 286 was able to use up to 16 MB of RAM, and multitask lots of DOS apps in all that room (IBM and Microsoft's OS/2 1.0 wouldn't follow for over two more years, and still couldn't multitask DOS apps when it did).
The issue was that DR developed Concurrent DOS 286 on pre-release Intel 286 prototypes. Although the 80286 was released in 1982, it reached the PC market with IBM's new PC/AT in 1984. The problem was that the shipping version of the 80286 chip removed some features Concurrent DOS 286 needed.
By 1985, Intel released a new stepping of the 80286, which replaced the missing features, but the damage was done. Once again, this seriously damaged DR, but it recovered. It turned CDOS into a real-time OS, FlexOS 286. Versions of this remained on sale well into the 21st century, including IBM 4690 OS [PDF], Toshiba 4690 OS [PDF], and Siemens S5-DOS/MT [PDF].
DR also continued to work on its pre-Windows GUI desktop GEM (in its early days, The Reg covered the news of GEM going FOSS). Late last year, Mr Trifunovic also published an excellent History of the GEM Desktop Environment, which we also recommend. Later versions of DR FlexOS and its derivatives included a multitasking version of GEM called X/GEM [PDF].
DR worked around the limitations of the 80286, and found ways to put them to good use. Microsoft, for the most part, did not. Even Windows/286 couldn't use most of the memory of an 80286 PC, as we looked at last year.
As a result of the limitations of Microsoft's DOS, the 80286 was mainly just used as a faster 8086. This drove Intel to develop its following generation of CPU, the 80386. This supported multiple hardware-assisted DOS VMs with memory protection – and even if you just ran plain old single-tasking DOS, that memory protection let you rearrange that crucial first megabyte of RAM to free as much as possible of the 640 KB which was all DOS could directly use.
Without widespread use of multitasking, let alone GUIs, on late-1980s PCs, the original all-32-bit 80386DX was too expensive – even without its theoretical 4 GB memory capacity. So, once again, it was the limitations of MS-DOS that drove Intel to develop the cheaper 16-bit-bus 80386SX. This created a market for cheap 386SX PCs with cheap 16-bit RAM and a low ceiling of just 16 MB.
That market of cheap commodity 386 PCs is the soil in which Linux grew and flourished. Early 1990s 386 PCs were not workstation-class hardware. They were never expected to multitask, and they didn't run GUIs very well, but they ran DOS just great... and even their low specs allowed Linux to thrive.
Yes, Gary Kildall was in his plane when IBM visited. No, he wasn't on a pleasure trip. He was flying to make a site visit with a very important business partner, Bill Godbout, for whom The Reg ran an obituary in 2018. Along on the trip was his colleague Tom Rolander, who has told this story repeatedly, including on video (from 17 minutes onward). Rolander has also told the story to industry commentator Robert Scoble (Scoble's interview can be found on the Wayback Machine).
DR was based in Pacific Grove, some 80 miles or nearly a 90-minute drive from Silicon Valley. Kildall often chose to fly. If you had that option, wouldn't you?
Kildall wasn't at the meeting with IBM because it was not his job – he was a programmer. His wife and business partner, Dorothy McEwen Kildall, co-founded DR and she handled corporate negotiations.
IBM wanted a harsh NDA and a one-off payment. She refused, which was a sensible call; DR dominated business computing, and IBM wasn't even in that market.
In other words, IBM tried to drive a tough deal with the big player that dominated the sector. It didn't work, so it negotiated poorly with a bunch of upstart kids: it let Microsoft keep a licence to resell DOS to other vendors. Two poor deals in a row show that it wasn't IBM being canny; it was merely IBM being bureaucratic and institutional, poor at negotiation and compromise. It handed Microsoft the keys to the bank, and the tiny startup used them.
We've even seen a perception that what the industry got from Microsoft was better: more capable and more open.
In fact, it was DR, consigned to second place, that worked harder. It delivered a small, fast, clean GUI with GEM. Abort Retry Fail has a good Short History of CP/M-86, which shows how DR delivered and continued to deliver. It had a multitasking CP/M-86 by 1982.
Alongside its PC efforts, DR also offered a version of CP/M for the Motorola 68000 as well, complete with GEM. A development of this became the standard OS of the Atari ST, a computer that outperformed the Mac and was better for music sequencing than the Amiga thanks to built-in MIDI ports as standard. A FOSS recreation of that OS called EmuTOS is still in active development today, as is a multitasking offshoot called FreeMINT. We wrote about how to get and run them in 2022.
The Motorola 68000 world matters today too. In part, it was because the mid-1980s offerings from Intel and Microsoft were so bland and uninspiring that Apple, Commodore, and Atari thrived, each with their own alternative platforms.
Its significance was explained on The Reg nearly 15 years ago by the late, great Chris Bidmead. The Mac, Amiga, and ST indirectly drove little British micro maker Acorn Computers to create the world's best-selling family of CPUs... because they were so unimpressed by the performance of the 68000 and its American contemporaries.
By 1984, Concurrent CP/M became Concurrent DOS, a true multitasking OS that could run MS-DOS apps. In 1985, DR released the C rewrite, Concurrent DOS 286, two years before IBM and Microsoft's combined effort. By 1987, when OS/2 staggered out, DR was offering Concurrent DOS 386, with built-in networking as well.
The Reg FOSS desk used and supported Concurrent DOS 386 in his first job, and it was remarkable. On his employer's demo machines, he used CDOS to generate large Mandelbrot sets, which took many hours, using Fractint – but with Fractint running in the background, and CDOS 386 running a copy of COMMAND.COM from IBM PC DOS 3.3 in the foreground session, so it looked exactly like a standard DOS computer and could be used as normal.
Without a time machine, we can't tell what DR would have done if it had delivered CP/M-86 on time. Perhaps it worked so hard on GEM, Concurrent DOS, DR-DOS, FlexOS, and so on because it ended up the also-ran. It worked very hard to rectify its mistakes, and if the PC industry had defaulted to DR OSes rather than Microsoft ones, it might have advanced rather faster. DR could have offered a multitasking 32-bit GUI OS with networking, able to run DOS apps, nearly a decade before Windows 95.
But it didn't. Squeezed out of the mainstream desktop OS market, it focused on multiuser, real-time, and point-of-sale systems instead. In the end, Novell acquired DR in 1991.
All because CP/M-86 was late. Trifunovic explains why and how that happened. That's vital info: it shaped the future of the PC industry, and trillion-dollar businesses hinged upon it. As wise people have noted, it's important to know your history.
Trifunovic's day job is at Ab Initio Software, which was founded by Sheryl Handler – founder and former CEO of Thinking Machines, the company that built Danny Hillis's Connection Machine – as partly co-designed by Richard Feynman – and also designed the DataVault, which has a claim to be the first ever RAID storage device. ®
Source: The register