The many descendants of the CP/M operating system • The register
That says his new license “CP/M and its Derivatives” are free for anyone to modify and redistribute. but the Derivatives?
The original Intel 8080 version of CP/M had a relatively short reign: it appeared in 1974, just seven years before the IBM PC with PC DOS came out. The PC and its many clones running MS-DOS sold quickly, replacing CP/M.
Nevertheless, CP/M was the industry standard operating system for microcomputers for a while, making Digital Research a powerful and important company. Prosperous companies that lose dominance in a market they previously controlled are not inclined to simply give up. Digital Research invested significant R&D efforts in expanding and improving CP/M, creating a large family of operating systems. It had some significant 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’ edict of 2001 may have made them all open source.
The original CP/M was designed for the Intel 8080, although later most people ran it on Zilog’s improved chip, the Z80. That’s why CP/M ran on the Amstrad CPC, PCW and even the ZX Spectrum +3… and a compatible Operating system on MSX machines, mainly in Japan.
Later, when the operating system was ported and rewritten for different architectures, this original version was subsequently renamed CP/M-80. Despite some stories you may have read about Digital Research’s dealings with IBM, the 8086 version, CP/M-86, was one of the three original operating systems that IBM made, along with PC DOS and the UCSD p-System Pascal environment offered for the original PC.
Microsoft cleverly reserves the rights to license the DOS it has made available to IBM to other companies. This product, MS-DOS, was of course originally purchased anyway. Microsoft did not write (or even initially purchase) MS-DOS, but 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 a long way of upgrading and improving the functionality of its operating system to make it more competitive.
The DOS extended family
You may remember DR’s MS-DOS-compatible DR-DOS and how Microsoft got caught faking its incompatibility with Windows 3.1.
Novell bought Digital Research and then spun it off as part of its Caldera Linux division. Caldera later won a settlement from Microsoft worth over $155 million and open sourced the GEM desktop.
Caldera also short released open sourced the DR-DOS 7.01 kernel, then changed his mind and shut it down. Work on the open version continued for a while DR DOS Improvement Projectand it’s still out there.
DeviceLogics briefly sold DR-DOS 8.1, renamed DrDOS. The classic CP/M-style delimiter between directory columns betrays its origin.
After rediscovering backups of Novell’s later work, Caldera’s thin-client spin-off Lineo continued to sell DR-DOS. Versions 7.03 through 7.05 were licensed to OEMs such as Seagate, Nero, and Ontrack for use on boot disks.
After the gradual modernization of DR-DOS to support FAT32, disks larger than 8GB, the TaskMax multitasker, DPMI support and the ability to run it from ROM, Lineo offered DR-DOS 8.0 and then 8.1. However, the FreeDOS project found 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.
Stranded in real time
DR also offered far more powerful operating systems than DR-DOS.
The most significant change came from MP/M. As hard as it is to believe, in 2022 MP/M was a multi-user Operating system for 8-bit computers with 32 KB or more RAM. DR ported MP/M 2 to the 8086 and then merged it with CP/M-86 1 to create it Concurrent CP/M 3 – a multitasking multiuser operating system. In the 1980s, Concurrent CP/M turned a PC into a minicomputer: a “host” machine shared by multiple users at the same time, using text terminals on 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 these, 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 the story, the unofficial CP/M site has 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 powerful operating system, ideal for systems with multi-user accounts, it had one major limitation: it could only run CP/M-86 apps. Trouble was, while the MS-DOS app market was exploding, there weren’t many of those around. In response, DR “PC mode” (PDF): an add-on that allowed DOS 1.x programs to run on Concurrent CP/M.
(Readers with very long memories may remember DR’s DOSPluswhich shipped on BBC Master 512 and Amstrad PC1512. DOS Plus was a combination of CP/M-86 Plus with the PC mode emulator: a single-user operating system that could read MS-DOS disks and run some DOS apps. This eventually evolved into DR-DOS.)
Thanks to this new capability, DR renamed the operating system “Concurrent DOS” or CDOS for short in 1984. CDOS 3.2 could multitask CP/M-86 1 apps, concurrent CP/M 3 apps and PC/MS-DOS 2 apps, all at the same time. That introduced a new catch: they all had to share the 8086 PC’s notorious maximum of 640 KB of RAM.
DR rose to the challenge and rebuilt the operating system for what was (then 1982) billed as Intel’s New “super chip”: the 80286. As 1985 of BYTE magazine Write down said echoed by Reg contributor Chris Bidmead, Concurrent DOS-286 could use the new chip to multitask existing DOS apps.
CP/M open source status cleared after 21 years
This project hit a serious hurdle when Intel released a later stepping of the chip. While CDOS-286’s DOS multitasking worked on the ‘286’s B-1 stepping, Intel’s subsequent C-1 stepping worked broke the functionality. CDOS-286 worked on the shipping version of the chip, but could not multitask DOS apps. Intel promised to restore the missing capability in a future E-1 stepping.
Faced with an OS that couldn’t deliver its Flaship feature on most 286 kits, DR changed its marketing: CDOS-286 was renamed FlexOS-286 and sold for its real-time capabilities, as here brochure [PDF]. The version 1.31 Release Notes Carefully specify that an E-2 Stepping CPU is required for DOS compatibility.
FlexOS performed well in this niche and grew into several products that were improved and sold by several companies including Siemens’ COROS (PDF) and IBM 4690 operating system for his SurePOS tills. The latter is still supports from Toshiba.
Although the shipping version of Intel’s 80286 severely hampered CDOS-286’s capabilities, the 80286 was itself replaced by the Intel 80386 in the same year that CDOS-286 was released. Intel recognized that the dominant operating system for its processors was DOS, not Xenix or the long-delayed OS/2. So it gave the 386 the ability to create and multitask multiple 8086 “virtual machines” in hardware: not a true hypervisor, but a limited version that makes it relatively easy to multitask multiple DOS apps.
DR adapted this to create Concurrent DOS-386, announced 1987: A full 32-bit operating system with hardware-assisted multitasking of DOS apps. 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 the multiuser line was abolished. Three OEMs licensed the source code and continued to sell their own versions.
DataPac Australasia Pty sold Multiuser DOS 5, later renamed System Manager 7, until it was acquired by Citrix when the product was discontinued. Concurrent Controls Inc – later Applica Inc and later Aplycon Technologies – sold CCI Multiuser DOS 7 until about 2005. Intelligent Micro Software sold it as IMS Multiuser DOS, later renamed Real/32maybe as late as 2017. Some parts of IMS seem to still exist, including Integrated solutions.
CP/M has reached more places than you might think
The offspring of CP/M developed in several different directions. While DR-DOS was a strong seller for a time, leading to the Novell acquisition and its competition leading Microsoft itself to improve MS-DOS significantly, it was just one branch of a large family tree.
Although CP/M-68K wasn’t a huge success, its GEMDOS descendant, with an injection of DR-DOS technology, powered the Atari ST loved by millions. An open-source replica containing some of Caldera’s shared code is invoked EmuTOS. It runs on real Atari hardware, on various emulators and ironically even on the Amiga. There is also an all-FOSS multitasking operating system for later STs and emulators based on the MINT kernel and GEM called AFROS.
Concurrent DOS-286 evolved into a whole family of real-time and embedded operating systems, complete with their own multitasking GUI based on X/GEM, with apps written in Java. This ran on so many point-of-sales systems that there’s a good chance you’ve bought something anywhere in the world and your money went into a cash register running a DR operating system.
Meanwhile, the 32-bit version Concurrent DOS-386 evolved into Multiuser DOS and was sold by several companies worldwide. We have attempted to contact everyone we can identify who sold last generation DR products but to no avail.
Excitingly, all of these products could be called CP/M derivatives and as such are now covered by the new open CP/M license agreement. It would be great to see at least part of the source code for these products released and to see them up and running again today, expanded, improved and updated. ®