16位CP/M的迟到 – 尼曼贾·特里夫诺维奇 著
The Late Arrival of 16-Bit CP/M

原始链接: https://nemanjatrifunovic.substack.com/p/the-late-arrival-of-16-bit-cpm

## 错失的机会:MS-DOS 如何超越 CP/M MS-DOS 成为主导的个人电脑操作系统,是一个关于时机和优先级的经典故事。1980 年,Digital Research 的 CP/M 是 8 位电脑的行业标准,但未能及时移植到新的 Intel 8086 处理器却至关重要。当 IBM 为即将推出的 PC 寻找操作系统时,DRI 无法演示一个可用的 16 位版本,从而为微软的 MS-DOS 打开了大门。 这一延迟源于 DRI 创始人 Gary Kildall 专注于开发新的 PL/I 编译器,从而转移了 CP/M 发展的资源。虽然 CP/M 2.2 蓬勃发展,但将其适应新的磁盘技术和 8086 处理器,在人员有限的情况下证明具有挑战性。讽刺的是,微软在 Apple II 上 CP/M 卡的成功进一步耗尽了 DRI 的资源。 最终,Seattle Computer Products 的一位工程师创建了 86-DOS,作为其 8086 板的临时解决方案,微软购买并将其重新命名为 MS-DOS。尽管 CP/M-86 最终发布,但为时已晚;IBM 采用 MS-DOS 巩固了其主导地位。虽然 DRI 最初仍然盈利,但 PC 兼容机的兴起导致其衰落并最终被收购。 尽管有猜测认为,及时发布 CP/M-86 可以改变历史,但许多人认为微软无论如何都有能力开发竞争性的操作系统,考虑到他们现有的能力。

这场黑客新闻的讨论围绕着IBM的个人电脑战略,以及他们未能完全控制是否是故意的。许多评论员认为,IBM *战略性地* 允许克隆生态系统发展,优先定义16位PC标准,并保持十年的控制权——这一目标在微软的配合下得以实现。 对话强调了IBM进入之前,基于CP/M的8位PC市场的混乱和开放性,并将其与IBM对标准化的渴望进行对比。微软预见指数级市场增长,并专注于商业领域(具有可预测的更新周期)的远见,也被强调为他们成功的关键。 一些评论指出,IBM后来试图通过PS/2系列及其专有的Micro Channel总线来重新获得控制权,但最终失败了。总之,这场讨论表明,IBM最初的方法,虽然看似放弃了控制,但实际上是为统治新兴的PC市场而采取的计算好的行动,如果IBM没有采取行动,很可能会有其他人填补这个空缺。
相关文章

原文

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.

联系我们 contact @ memedata.com