CP/M Is Now Freer Than It Was

It’s easy to think of the earlier history of desktop computing operating systems in terms of DOS, Windows, and Mac OS with maybe a bit of AmigaOS, TOS, or RiscOS thrown in. But the daddy of desktop computing, the OS that put word-processors and spreadsheets in 1970s offices and had a huge influence on what followed, isn’t among that list. Digital Research’s CP/M ran initially on Intel 8080-based machines before losing out to MS-DOS as IBM’s choice for their PC, and then gradually faded away over the 1980s. Its source has been available in some form with a few strings for a long time now, but now we have confirmation from Digital Research’s successor company that it’s now available without restrictions on where it can be distributed.

For years it was something an operating system that had been bypassed by the hardware and hacker communities, as the allure of GNU/Linux was stronger and most available CP/M capable machines were also 1980s 8-bit gaming platforms. But with the more recent increased popularity of dedicated retrocomputing platforms such as the RC2014 it’s become a more common sight in our community. Brush up your command line skills, and give it a go!

Header: Michael Specht, CC BY-SA 3.0.

32 thoughts on “CP/M Is Now Freer Than It Was

  1. The website linked above says “Let this paragraph represent a right to use, distribute, modify, enhance, and otherwise
    make available in a nonexclusive manner CP/M and its derivatives.”
    It is still unclear where to draw the line or when a derivative is no longer a derivative. CP/M, MP/M, CP/M-86, MP/M-86, Concurrent CP/M-86 and CP/M-68k either have that “CP/M” in their name or are closely related, but what about the later versions like Concurrent DOS, FlexOs and DR DOS?

    1. I see that as at least a free ride ticket for CP/M up to 3.0, so everything 8-Bit should be fine.
      But i would guess that they won’t be running after you if you port and distribute any 68k or 8086 version that is still the original CP/M.
      DR-DOS/NovellDOS is another thing, tough, as these are (MS-)DOS and not CP/M.

      1. In 1983 an MS-DOS emulation API was added to Concurrent CP/M and the resulting product was renamed to Concurrent DOS. The CP/M API was removed from the later single-user DR DOS, but probably not from multiuser variants. So what makes an OS CP/M? Technology, API or name?

        1. Don’t know about all those other versions but i think ye olde CP/M 2 and 3 lines, which i assume would be the most interesting to most folks, are safe under this license.
          So for example packing CP/M 2.2 with some Z80 emu running on a RP2040 with video out is fine.

        2. DOS Plus 1.2 (not 2.1) was available for rare systems like the BBC Master 512, but also sold with the popular PC compatibles Amstrad/Schneider PC1512 and PC1640 and included an internal DOS 2.x emulator named “PC MODE”.
          That one was mature enough to run GEM 1.x, which was a normal DOS application (it could run with the supplied MS-DOS 3.x as well)

          DOS Plus 1.x really was CP/M-86 in disguise, I think.
          It could read both FAT and CP/M file systems, also.

          And use DOS devices like COM, LPT, PRN.
          (Ironically, MS-DOS and PC-DOS were supporting CP/M stuff themselves. The AUX device comes from CP/M and is equal to COM1 in DOS. DOS Plus supports AUX, too.)

          Too bad this OS was so shortlived.
          The sub directories were virtual, I think, so DOS Plus didn’t have MS-DOS’ same directory depth limitation.

          DOS Plus 2.x is another beast. It totally lost the ability to run both DOS and CP/M-86 programs equally. :(

          https://en.wikipedia.org/wiki/DOS_Plus
          https://www.seasip.info/Cpm/dosplus.html

          https://www.youtube.com/watch?v=V15vk2043mI

          https://www.youtube.com/watch?v=uJXiMNPAmXw

          https://www.youtube.com/watch?v=D1v3e-pF4Kg

          1. CP/M 2.2 BDOS had logical devices as pseudofiles, too… just not as flexibly as the unix-style ones in MD-DOS. Acually, they were somewhere between drives and files.
            CON, LST, RDR, PUN.
            That is, CONsole, LiST, ReaDeR, PUNch.

            If CP/M had gotten the nod from IBM, we’d likely have seen directory structures added (beyond the clumsy USER number system… Wish I’d known about that in 1984…)

    2. The rest of the paragraph immediately after that sentence:

      “This right comes from the company, DRDOS, Inc.’s purchase of Digital Research, the company and all assets, dating back to the mid-1990’s. DRDOS, Inc. and I, Bryan Sparks, President of DRDOS, Inc. as its representative, is the owner of CP/M and the successor in interest of Digital Research assets.””

      Makes where the line is drawn very clear: if the license for the CP/M version in question was owned by Digital Research, it is now free. This covers any DR produced versions of the OS, and any licensed versions where the license was held by DR. The DR DOS license is clearly owned by DRDOS Inc., but FlexOS appears to be owned by a Aptiv so likely is not covered.

      1. I’d suggest definitely not including FlexOS.

        As Novell sold it to ISI around 1995, and I recall my employer getting Beta release of FlexOS from ISI sometime before end of 97. ISI was then bought by Wind River, which in turn was bought by Intel, the Wind River spun out to Aptiv (via another company).

        So as to if FlexOS stayed as part of the package which Aptiv acquired, or hung around in Intel, or was disposed of elsewhere from Intel is anyone’s guess.

        All one can be confident about is that it wasn’t part of what Novell passed to Sparks’ company, as it was instead sold to ISI.

        Besides which FlexOS wasn’t a derivative of CP/M (nor MP/M), really being a re-implementation in C of some of the RT kernel concepts of the latter, but more influenced by RSX-11M rather than RSX-11D.

  2. Why not test a CP/M PDA?
    That could be a low power device while still being very useful.
    Think about all the languages CP/M offers plus WordStar and friends, …

    62k TPA is too small?
    Well … what about CP/M-68k on e.g. a TI Voyage 200?

    Sure too much for one oldtimer alone, but I’d get some TIs if…

    1. Well … what about CP/M-68k on e.g. a TI Voyage 200?

      bear in mind that cp/m-68k is written in c. it’s an older dialect, but it is possible to shove it through gcc with some work. i have made it run on arm.

        1. have had no good way to distribute it until this change; hopefully, soon. however, the hardware i used was a now-discontinued ti cortex-m3 dev kit. i hope to make it run on the rpi2040, but that won’t happen any time soon.

          1. iirc (it’s been a while since i looked), cpm.z80.de has sources for cp/m-68k 1.3. i used 1.2 for my arm port, because it was what i could find when i started it. there are also docs at cpm.z80.de.

    2. I have often thought about this possibility, but have been put off by the lack of a browser and the need to SLIP or PPP. I guess one might be able to kludge together something around shared memory access or dual ported RAM and an ESP32 as a side loader. Be a lot better than ‘nothing’ and fine for plain text email/calendar/doc sync. I guess any sort of hires images would need a proxy and more hacking around display management.

    1. I do remember CP/M and DOS feeling like a clone of what DEC had on the PDP8 – maybe Dec’s version was called RT-11? I had the feeling that they just totally ripped-off everything from DEC. I was thinking the other day of how DEC could still be around today if they had just given priority to their microcomputer LSI line rather than their much pricier mini-computers. What they had at the time on the LSI was enough to blow everyone else out of the water – it could run Unix with memory management and act just like the minicomputer PDP-11/23. Nobody else at the time could touch this – CP/M and DOS were just primitive single tasking O.S.’s – it would take years until Windows 3.0 came out – much longer until it worked right.

      1. I do remember CP/M and DOS feeling like a clone of what DEC had on the PDP8 – maybe Dec’s version was called RT-11?

        rt-11 was for the pdp-11. you’re probably thinking about os/8. like cp/m, os/8 does not need interrupts to run (rt-11 does).

  3. Because anybody issuing a DMCA takedown or trying to extract money or such like from those Vintage enthusiasts keeping alive a 40 year old OS should be ashamed of themselves.

    1. Okay then, plug this in somewhere..
      “Amstrad gulled millions of neophytes into becoming CP/M users under the premise of selling them a standalone word processor a decade after CP/M first saw light.”

  4. The OS itself (CP/M 2.2 for 8080) was tiny: 2 kB for a command processor that could be overwritten by programs, 7 kB typically for combined BIOS and BDOS. CP/M came with a text editor, an assembler, a manual, and sample BIOS source code.

    1. +1 I second that. Though 32, 48 or 64KB RAM was no luxury for a CP/M-80 machine. Useful applications grew so quickly.. Bank-switching soon became in handy. What DOS users later knew as Expanded-Memory (EMS) really was a mature mechanism of the CP/M times. MP/M and CP/M Plus (aka CP/M 3) did value the bank-switching scheme, too.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.