CP/M's open-source status clarified after 21 years
- Reference: 1657897209
- News link: https://www.theregister.co.uk/2022/07/15/cpm_open_source/
- Source link:
It's not often that we update a news story from 21 years ago. Bryan Sparks, then [1]CEO of Caldera spin-off Lineo , gave [2]Tim Olstead permission to redistribute the OS, both as source and binaries. Sadly, Mr. Olstead passed away from cancer aged just 51. Back then, we wrote that [3]the Unofficial CP/M Web Site was back , as Mr. Sparks changed the permissions from the former owner himself to the site as a whole.
For clarity, that's a very good thing – Lineo was under no obligation to do this – but restricting redistribution to one person or one site was limiting.
[4]
Lineo in turn spun off DRDOS, Inc., which ended up owning the Digital Research intellectual property. That company is still around, and Mr Sparks is its president. This month, retired programmer Scott Chapman managed to contact Sparks and request clarification of whether anyone else was allowed to redistribute CP/M, and Sparks has [5]granted free rein.
You can now legally run the raw unbridled power of CP/M 2.2 anywhere you like
As we reported in 2014, the source code is easy enough to find: the [6]Computer History Museum makes several versions available . The new license just permits developers to do more with it.
What prompted this is that the restrictions of the 2001 agreement have already brought about the creation of an ingenious workaround called [7]CP/Mish by retrocomputing boffin [8]David Given , known to Youtubers as [9]Hjalfi .
[10]
[11]
Given cleverly exploited CP/M's modularity. Back in the day, so many replacement parts for various elements of CP/M were published that it was possible to build a complete OS without using any Digital Research code. CP/Mish's BDOS (loosely, its "kernel") is [12]ZSDOS , its command prompt is [13]ZCPR , and there are some other parts to glue it all together, as he documents on [14]GitHub .
(UNIX graybeardy types might be reminded of [15]4.4BSD-Lite at this point. And if you remember 4.4BSD, we're sorry, but you're a graybeard even if you don't actually have a beard.)
[16]
Now, thanks to the new license, Given can legally [17]integrate actual DR code into CP/Mish. Soon we can look forward to a significantly improved OS for the [18]Amstrad NC200 laptop , the Kaypro II, and several models of Brother word-processor.
[19]Linux Mint 21 hits beta, and it's looking fresh
[20]X.org servers update closes 2 security holes, adds neat component tweaks
[21]Linux laptop vendor Slimbook updates its ranges
[22]'Unbreakable' Oracle Linux 9 is a RHEL rebuild with built-in Btrfs support
CP/Mish isn't the only modern CP/M-alike. Due to its tiny size and extreme simplicity, these days it's fairly straightforward to hand-build your own Z80 computer from parts – on a [23]breadboard , or from a kit, of which the [24]RC2014 is a popular example. The RC2014 can run several ROMs and OSes, including [25]RomWBW , which allows you to boot a choice of CP/M relatives: CP/M 2.2, ZXDOS 1.1, NZCOM, CP/M 3, and ZPM3, among others.
[26]
A 21st century CP/M computer, the RC2014 Pro (Credit: z80kits.com)
If hand-soldering even a small computer together sounds too daunting, there's [27]RunCPM , which can run CP/M and its apps on Windows, Linux or macOS. A standalone computer is more fun, though, and thanks to [28]FabGL , RunCPM can run on the [29]ESP32 from [30]Expressif . That means you can turn several tiny, cheap development boards into self-contained CP/M computers – a good ready-to-use example is Lilygo's [31]TTGO VGA32 , which has two PS/2 ports, VGA and headphone sockets, and a microSD slot, and costs about $22. Guido Lehwalder offers [32]instructions to get one going.
The Spectrum Next also runs CP/M, if you're lucky enough to have one. This vulture is still waiting for his to arrive, and is considering an [33]N-GO in the interim.
CP/M first appeared in 1974, only one year after the first version of UNIX written in C. The difference is that even then, UNIX was rather complex, whereas CP/M is tiny. Twenty years later, Dave Baldwin offered an eloquent [34]explanation of why that makes it interesting. There are reams of information about it online, and John Elliott's encyclopedic [35]page is a great place to start.
[36]Youtube Video
Bootnote
We are aware that CP/M isn't just a Z80 OS and also ran on the Intel 8080. True, it did, but many of the third-party extensions and software use the extra Z80 opcodes. More importantly, multiple Z80 variants are still in production, so all the modern hobbyist kit that we've seen so far uses Zilog-family chips. This includes the [37]Z180 , and even the 16-bit Z280 – for example, the [38]ZZ80MB , and the [39]ZZ80RC , which slots into an RC2014 backplane.
Get our [40]Tech Resources
[1] https://www.theregister.com/2000/03/06/lineo_pitches_linuxbased_ce_clone/
[2] http://www.cpm.z80.de/tim.htm
[3] https://www.theregister.com/2001/11/26/cp_m_collection_is_back/
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YtGPHZVlYAfNJHQGPXK7AQAAAA4&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[5] http://www.cpm.z80.de/license.html
[6] https://www.theregister.com/2014/10/02/cpm_source_code_release/
[7] http://cowlark.com/cpmish/
[8] http://cowlark.com/
[9] https://www.youtube.com/user/hjalfi
[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YtGPHZVlYAfNJHQGPXK7AQAAAA4&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[11] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YtGPHZVlYAfNJHQGPXK7AQAAAA4&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[12] http://www.gaby.de/ftp/pub/cpm/znode51/specials/zsdossrc/zsdos.htm
[13] http://gaby.de/ftp/pub/cpm/znode51/articles/tcj/tcj54.ws
[14] https://github.com/davidgiven/cpmish
[15] https://gunkies.org/wiki/4.4BSD_Lite
[16] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YtGPHZVlYAfNJHQGPXK7AQAAAA4&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[17] https://github.com/davidgiven/cpmish/blob/master/third_party/dr/COPYING.md
[18] https://www.theregister.com/2011/11/10/portable_writing_tool/
[19] https://www.theregister.com/2022/07/14/mint_21_beta/
[20] https://www.theregister.com/2022/07/13/xorg_servers_updated/
[21] https://www.theregister.com/2022/07/13/slimbook_linux_laptop_update/
[22] https://www.theregister.com/2022/07/12/oracle_linux_9/
[23] http://searle.x10host.com/cpm/index.html
[24] https://rc2014.co.uk/
[25] https://github.com/wwarthen/RomWBW
[26] https://regmedia.co.uk/2022/07/15/rc2014pro-2.jpg
[27] https://marcelofdantas.wixsite.com/runcpm
[28] http://www.fabglib.org/
[29] http://esp32.net/
[30] https://www.espressif.com/en/products/socs/esp32
[31] http://www.lilygo.cn/prod_view.aspx?TypeId=50063&Id=1083
[32] https://lehwalder.wordpress.com/2021/04/07/runcpm-on-the-lilygo-ttgo-vga32-v1-4/
[33] https://manuferhi.com/p/n-go-board
[34] http://seasip.info/Cpm/whycpm.html
[35] http://seasip.info/Cpm/index.html
[36] https://youtu.be/FGWshrMZcCc
[37] https://www.z80.no/projects/Z180.html
[38] https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:zz80mb:zz80mbr3
[39] https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:zz80rc
[40] https://whitepapers.theregister.com/
[Author here]
Thank you. :-) Glad you liked it.
I rather fancy the idea of a 16-bit modern Spectrum compatible, with the graphics provided by a Yamaha 9958 -- as used in the MSX 2 Turbo R machnes, and the last of the line that was used in the TI-99/4A.
I am not sure my soldering or programming skills are up to it, though!
There is nifty stuff happening in the CP/M world.
WHAT DO YOU WANT THE REGISTER TO DO FOR YOU?
Where’s the “All of the above” option ???
Ah, the memories!
Yes, I am that old.
128 Mbytes!
The picture shows a 128Mbyte drive on a CP/M machine. Wow. I built mine with a huge 8 inch floppy disk drive that was double density and double sided giving me a massive 1Mbytes of non volatile storage. This made my friend very jealous as he only had a 5 1/4 inch floppy so was limited to 87.5Kbytes, and that normally needed to include the CP/M OS as well as programs and data.
Cool! :)