The many derivatives of the CP/M operating system • The Register

His new license says that “CP/M and its derivatives” are free to modify and redistribute. But who derivatives?

The original Intel 8080 version of CP/M had a relatively brief reign: it appeared in 1974, just seven years before the launch of IBM PC with PC DOS. The PC and its many clones running MS-DOS quickly sold out and replaced CP/M.

Nevertheless, CP/M was, for some time, the industry standard microcomputer operating system, making Digital Research a powerful and important company. Wealthy companies that lose dominance in a market they previously controlled don’t tend to simply give up. Digital Research has made extensive R&D efforts to extend and improve CP/M, creating a large family of operating systems. He had major wins and big sales. Some of these products are still in use. All of these products are arguably “CP/M derivatives”, and as such Bryan Sparks’ 2001 edict might have made them all open source.

Origin story

The original CP/M was designed for the Intel 8080, although later most people ran it on Zilog’s improved chip, the Z80. This is how CP/M ran on the Amstrad CPC, PCW, and even the ZX Spectrum +3… and a compatible OS on the MSX machines, mainly in Japan.

Later, as the operating system was ported and rewritten for different architectures, this original version was retrospectively renamed CP/M-80. Despite some stories you may have read about Digital Research’s relationship with IBM, version 8086, CP/M-86, was one of three original operating systems that IBM offered for the original PC, alongside PC DOS and the UCSD p-System Pascal environment.

Microsoft cleverly retained the licensing rights to DOS that it provided IBM to other companies. This product, MS-DOS, was of course originally purchased anyway. Microsoft didn’t write (or even buy, at first) MS-DOS: it licensed it from Tim Paterson of Seattle Computer Products

However, DR’s CP/M-86 did not sell well. This is partly because it cost $240, while PC DOS was only $40. This sent Digital Research on a long road of upgrading and improving the features of its operating system to make it more competitive.

The extended DOS family

You may remember DR’s MS-DOS compatible DR-DOS and how Microsoft was caught faking its incompatibility with Windows 3.1.

Novell bought Digital Research, then spun it off as part of its Linux Caldera division. Caldera then won a settlement of over $155 million from Microsoft and made the GEM desktop open source.

Caldera also briefly released the DR-DOS 7.01 kernel as open source, then changed its mind and shut it down. Work on the open version was continued for some time by the DR DOS Improvement Project, and it is still around.

DeviceLogics briefly sold DR-DOS 8.1, renamed DrDOS.  The classic CP/M-style separator between directory columns reveals its ancestry.

DeviceLogics briefly sold DR-DOS 8.1, renamed DrDOS. The classic CP/M-style separator between directory columns reveals its ancestry.

After rediscovering backups of Novell’s later works, Caldera’s thin client spin-off Lineo continued to sell DR-DOS. Versions 7.03 through 7.05 have been licensed for use on bootable discs to OEMs such as Seagate, Nero and Ontrack.

After gradually modernizing DR-DOS to support FAT32, hard drives larger than 8 GB, TaskMax multitasking, DPMI support, and making it capable of running from ROM, Lineo came up with DR-DOS 8.0 then 8.1. However, the FreeDOS Project discovered that DR-DOS 8.1 contained FreeDOS code and the product was withdrawn from the market. The company then tried to sell the source code.

Abandoned in real time

DR also offered much more capable operating systems than DR-DOS.

The biggest change comes from MP/M. As hard to believe as in 2022, MP/M was a multi-user Operating system for eight-bit computers with 32 KB or more of RAM. DR ported MP/M 2 to 8086, then merged it with CP/M-86 1 to create Simultaneous CP/M 3 – a multitasking and multiuser operating system. In the 1980s, Concurrent CP/M transformed a PC into a minicomputer: a “host” machine shared by multiple users at the same time, using text terminals over RS-232 serial ports.

There were also 16-bit variants of CP/M for the Motorola 68000 family and Zilog’s Z8000 chips. To create them, the operating system was rewritten from a mixture of PL/M and assembly language into more modern high-level languages: initially DR’s own Pascal-MT+, then reimplemented in C .

And so far in history, the unofficial CP/M site contains source code for most operating systems of this generation. The catch is that after this point the story gets really interesting.

While Concurrent CP/M was a very capable operating system, ideal for multi-user account systems, it had one big limitation: it could only run CP/M-86 applications. The problem being that there weren’t many of them, while the market for MS-DOS applications was exploding. In response, DR developed “PC-Mode” (PDF): an add-on that allowed DOS 1.x programs to run on Concurrent CP/M.

(Readers with very long memories may recall DR’s DOS Plus, which shipped on the BBC Master 512 and Amstrad PC1512. DOS Plus was a combination of CP/M-86 Plus with the PC emulator Mode: A single-user operating system that could read MS-DOS diskettes and run some DOS applications. This is what eventually evolved into DR-DOS.)

With this new capability, in 1984 DR renamed the operating system to “Concurrent DOS”, or CDOS for short. CDOS 3.2 could run multitasking CP/M-86 1 applications, concurrent CP/M 3 applications and PC/MS-DOS 2 applications, All at the same time. This meant a new catch: they all had to share the 8086 PC’s notorious 640 KB maximum RAM.

DR took up the challenge and rebuilt the operating system for what was called (in 1982) Intel’s new “superchip”: the 80286. to existing multitasking DOS applications.

RC2014 Pro

CP/M’s open source status clarified after 21 years


This project hit a serious snag when Intel released a later version of the chip. While CDOS-286’s DOS multitasking ran on the ‘286’s B-1 stepper, Intel’s later C-1 stepper broke the functionality. CDOS-286 worked on the retail version of the chip, but it could not run multitasking DOS applications. Intel promised that the missing capacity would be restored in a future E-1 step.

Faced with an operating system that could not provide its flaship functionality on most 286 kits, DR changed its marketing: CDOS-286 was renamed FlexOS-286 and sold based on its real-time capabilities, such as in this booklet. [PDF]. The 1.31 release notes carefully state that an E-2 stepper processor is required for DOS compatibility.

In this niche, FlexOS did well and evolved into several enhanced products sold by several companies, including COROS from Siemens (PDF) and IBM 4690 OS for its SurePOS cash registers. The latter is still supported by Toshiba.

Switch to multi-user

Although Intel’s shipping version of the 80286 severely compromised the capabilities of the CDOS-286, the same year the CDOS-286 was released, the 80286 itself was supplanted by the Intel 80386. Intel s realized that the dominant operating system for its processors was DOS, not Xenix or the long-delayed OS/2. So this gave the 386 the ability to create and multitask multiple 8086 “virtual machines” in hardware at once: not a true hypervisor, but a limited version that makes multitasking across multiple DOS applications relatively easy.

DR adapted it to create Concurrent DOS-386, announced in 1987: a 32-bit operating system complete with hardware-assisted multitasking of DOS applications. Later versions incorporated some of the technology from the still new DR-DOS, updating the emulation from MS-DOS 2.11 to MS-DOS 3.3.

Around 1991, DR renamed the product Multiuser DOS…but soon after, Novell acquired DR, and the next year killed off the Multiuser line. Three OEMs licensed the source code and continued to sell their own versions.

IMS Real/32 might not look like much, but that status line at the bottom indicates that it's a multitasking operating system.

IMS Real/32 – the latest offshoot of Concurrent DOS

DataPac Australasia Pty sold Multiuser DOS 5, later renamed System Manager 7, until acquired by Citrix, when the product was discontinued. Concurrent Controls Inc – later Applica Inc, and still later Aplycon Technologies – sold CCI Multiuser DOS 7 until around 2005. Intelligent Micro Software sold it as IMS Multiuser DOS, later renamed Real/32, possibly until 2017. Parts of IMS still seem to exist, including the built-in solutions.

CP/M has reached more places than you think

The offspring of CP/M evolved in several different directions. While DR-DOS sold strongly for a time, led to the acquisition of Novell, and its competition led Microsoft itself to greatly improve MS-DOS, it was only a branch of a large family tree.

Although CP/M-68K was not a great success, with an injection of DR-DOS technology, its descendant GEMDOS powered the Atari ST, loved by millions. An open-source recreation, containing some of Caldera’s freed code, is called EmuTOS. It runs on real Atari hardware, various emulators, and even, ironically, Amiga. There is also an all-FOSS multitasking operating system for STs and later emulators, based on the MINT and GEM kernel, called AFROS.

FreeDOS includes the FreeGEM desktop, which restores all the functionality removed by Apple DR in the 1980s - and more.

FreeGEM on FreeDOS 1.3

The PC version of GEM has been updated by the FreeGEM community and is now part of the FreeDOS operating system.

Concurrent DOS-286 evolved into a whole family of real-time and embedded operating systems, with their own X/GEM-based multitasking GUI, with applications written in Java. It’s worked on so many POS systems that it’s very likely that wherever you are in the world, you bought something and your money went into a cash register running a DR OS.

Meanwhile, the 32-bit version, Concurrent DOS-386, evolved into Multiuser DOS and was sold worldwide by several companies. We tried to contact everyone we could identify who was selling one of the latest generation DR products, without success.

Curiously, all of these products could be described as CP/M derivatives and as such are now covered by the new CP/M open license agreement. It would be great to see at least some of the source code for these products released and to see them working again today, extended, improved and updated. ®

Comments are closed.