from the where-are-the-redacted-chapters-of-Gary's-posthumous-memoir-at dept.
The Eerie Linux blog (also in Gemini) has a longer post about how to actually get started using CP/M, the Control Program for Microcomputers.
This article is just what the headline promises: an introduction to the CP/M operating system. No previous knowledge of 1970s and early ’80s operating systems is required. However, some familiarity with Linux or a BSD-style operating system is assumed, as the setup process suggested here involves using a package manager and command-line tools. But why explore CP/M in the 2020s? There are (at least) two good reasons: 1) historical education 2) gaining a better understanding of how computers actually work.
Last year I wrote two articles about CP/M after having taken a first look at it:
A journey into the 8-Bit microcomputing past: Exploring the CP/M operating system – part 1
A journey into the 8-Bit microcomputing past: Exploring the CP/M operating system – part 2These were written with a focus on the first reason; I had (partially) read the manuals and tried out a few commands in an emulator (as well as done a little bit of research). I wrote an outsider’s look at CP/M and covered the various versions that were released and some of their notable features.
This article is different. It’s for readers who want to get started with CP/M themselves. Expect a practical introduction to get familiar enough with the platform to be able to explore a wealth of historic software, often enough ground-breaking and influential.
CP/M was of great importance back during the 8-bit microcomputer era. It was ubiquitous in small businesses and government offices for a while. It ran on the Zilog Z80 and Intel 8080 hardware architectures. MicroPro International's WordStar and Ashton Tate's dBase II were among the killer apps of the era. Networking was by sneakernet or, maybe, if your cable smithing skills were up to it, by null modem.
Previously:
(2024) Complete WordStar 7.0 Archive
(2024) End of an Era: End-Of-Life for the Venerable Zilog Z80
(2024) Intel 8080 Emulator. 19th IOCCC. Best of Show.
(2022) Z80—The 1970s Microprocessor Still Alive
(2016) Portion of Gary Kildall's Memoir Made Public
Related Stories
The Computer History Museum has released part of the memoir of Gary Kildall. Kildall founded Digital Research, Inc., co-hosted The Computer Chronicles on television and wrote CP/M, the first operating system for personal computers. The extract from his memoir Computer Connections can be downloaded after agreeing to a lengthy EULA (Javascript required). It was provided by Kildall's family, who wrote
We have chosen to release only the first portion of his memoir. Unfortunately Gary's passion for life also manifested in a struggle with alcoholism, and we feel that the unpublished preface and later chapters do not reflect his true self.
In related news, a presentation comparing the source code of MS-DOS to that of CP/M will be given at the museum, in Mountain View, California, on Saturday during the Vintage Computer Festival.
additional coverage:
An interesting, and very brief, history of the Zilog Z80 microprocessor from the IEEE Computer Society's IEEE Micro magazine:
[...] At the beginning [1974], Faggin intended to develop a single-chip computer (microcontroller), but soon realized that it is difficult to compete in the microcontroller market with a company who has its own semiconductor fabrication facility. [...] Faggin came up with an idea of developing a 5-V microprocessor, which was machine core compatible with then popular Intel 8080, and adding most of the functionalities available in Motorola 6800, so that they could pinch both markets. [...]
Zilog managed to introduce the first working prototype of Z80 on March 9, 1976, created by an 11-member team, exactly on the scheduled date. [...] The developed Z80 microprocessor had an 8-bit data bus and a 16-bit address bus with the capability of running all 78 instructions of Intel 8080 and additional instructions. It had 20 × 8-bit registers and 4 × 16-bit registers and could handle up to 64k bytes of memory.
[...] Z80 was very popular as a microprocessor not only in PC applications, but also in industrial embedded applications, and some of the big manufacturers have Z80 core inside their ASIC chips still today or use enhanced versions of Z80 in consumer electronic devices. [...] To this day, Zilog produces a range of Z80-based microprocessors and intelligent peripheral controllers, and they are available from reputed electronics component suppliers. This microprocessor is one of the longest living microprocessors of all time.
Not too shabby for the first product out of a new company. These days it would probably be developed as a Kickstarter.
https://nanochess.org/emulator.html
After winning the IOCCC for the first time, I had the idea of writing an emulator of the 8080 processor in 2000 characters of C, after patterning experimentally the more than 200 instructions and doing measures of byte count, I realized that it was possible and I made it. Then I added CP/M support as a extra feature. I was completely astonished when I won Best of Show of 19th IOCCC :).
[...] This emulator was developed eighteen years ago when the computers had 32-bit processors and it used a hole in the C language syntax where you could pass a pointer on an integer. In fact, this is the IOCCC objective: make C compilers to do things these shouldn't be supposed to do.
However, the C compilers for 64-bit processors don't allow it any more as pointers are 64-bit and the int types are 32-bit, so compilers stop with an error (especially in macOS because clang).
https://hackaday.com/2024/04/19/end-of-life-for-z80-cpu-and-peripherals-announced/
Zilog To End Standalone Sales Of The Legendary Z80 CPU
Zilog's parent company Littelfuse has notified customers and distributors that it's end of life for the good ol' Z80. In a End of Life / Last Time Buy notification (https://www.mouser.com/PCN/Littelfuse_PCN_Z84C00.pdf ) they state:
"Please be advised that our Wafer Foundry Manufacturer will be discontinuing support for the Z80 product and other product lines."
You can place a final order up until 6/14, if you need to stock up on Z80s.
Arthur T Knackerbracket has processed the following story:
End of an Era: End-Of-Life for the Venerable Zilog Z80
Production of some models of Z80 processor – the chip that helped spark the PC boom of the 1980s – will cease in June 2024 after an all-too-brief 48 years.
The Z80 debuted in 1976, using a 4-micron process. Readers will doubtless be aware that some modern silicon is made on a 4-nanometer process – meaning elements are 1,000 times smaller than those etched into a Z80.
Zilog will accept orders for the device until June 14, 2024. After that, it's the end for the eight-bit CPU – or at least the ZC8400 range. Zilog appears to still make the Z180 and eZ80 – successors that added lots of whistles and bells and are often packaged into SoCs.
The original Z80 packed just 8,500 transistors and chugged along at 2.5Mhz, but that was enough to power lots of fun stuff – helped by the fact that it was compatible with Intel's 8080 processor and sold at a cheaper price.
The Sinclair ZX range was perhaps the most famous application of the Z80, using it to power affordable and accessible machines that introduced many Register readers (and writers) to tech. The chip also found its way into arcade games such as Pac Man, and early Roland synthesizers.
But Zilog was overtaken by Intel in the PC market, and by the 1990s decided to focus on microcontrollers instead. The Z80 was one of its key offerings, and over the years was adapted and enhanced: we even spotted a new variant of the chip in 2016!
That sort of upgrade helped the processor and its heirs to hold on in some consumer-facing applications such as graphing calculators like the TI-84 Plus CE. But it mostly disappeared into industrial kit, where it hummed along reliably and offered developers a tried-and-true target for their code.
Perhaps someone will place a giant order for ZC8400s to hoard them, so that those committed to the platform can continue to get kit – a plausible scenario given the likelihood the processor retains a hidden-but-critical role in defense or some legacy tech that will persist for decades.
Or perhaps there's one last batch of ZX Spectrums to be made!
See also:
- https://www.techspot.com/news/102684-zilog-discontinuing-z80-microprocessor-after-almost-50-years.html
- https://www.mouser.com/PCN/Littelfuse_PCN_Z84C00.pdf
As you all know, I [Robert J. Sawyer] continue to use WordStar for DOS 7.0 as my word-processing program. It was last updated in December 1992, and the company that made it has been defunct for decades; the program is abandonware.
There was no proper archive of WordStar for DOS 7.0 available online, so I decided to create one. I've put weeks of work into this. Included are not only full installs of the program (as well as images of the installation disks), but also plug-and-play solutions for running WordStar for DOS 7.0 under Windows, and also complete full-text-searchable PDF versions of all seven manuals that came with WordStar — over a thousand pages of documentation.
I've also included lots of my own explanations on how to use and customize WordStar, many WordStar-related utility programs, and numerous other goodies.
Carolyn Clink kindly did the scanning of the manuals. When she was done, I said to her, "Countless WordStar users will thank you." She replied, "Oh, I think I can count them." ;)
And it's true that the WordStar die-hard community is pretty small these days (George R.R. Martin still uses the even-older WordStar 4.0). But the program has been a big part of my career — not only did I write all 25 of my novels and almost all of my short stories with it (a few date back to the typewriter era), I also in my earlier freelance days wrote hundreds of newspaper and magazine articles with WordStar.
I wanted there to be a monument to this, the finest word-processing program ever created. As Anne Rice said, "WordStar was magnificent. I loved it. It was logical, beautiful, perfect. Compared to it, Microsoft Word is pure madness."
And, I suppose I'm thinking a bit about my legacy, too. Once I'm gone, my literary estate will need to deal with my electronic manuscripts, and my executor should be able to work with them on her own computer rather than just mine. Also, there are countless other writers who are no longer with us who wrote with WordStar, including Arthur C. Clarke; I hope this archive I've created will be of use to scholars.
Anyone can have WordStar for DOS 7.0 up and running on a Windows computer in a matter of minutes using this archive; with just a little bit more work, WordStar for DOS 7.0 also runs just fine under Linux and Mac OS.
Here's the link to the full 680-megabyte archive:
(Score: 1, Funny) by Anonymous Coward on Saturday August 30 2025, @04:45AM (2 children)
... and why does he have memories after his death?
(Score: 3, Insightful) by Anonymous Coward on Saturday August 30 2025, @05:57AM
The story of his unpublished memoir was old news before your teacher was born.
(Score: 0) by Anonymous Coward on Tuesday September 02 2025, @02:37PM
See:
(Score: 5, Funny) by stormreaver on Saturday August 30 2025, @11:29AM (7 children)
I remember building my null modem cables for my CoCo 3's serial port. I forgot how much it boosted my speed, but it was substantial. Then I graduated to building a null modem cable for the printer port. The speed boost was supposed to be gigantic (115Kb/s). I was so excited by this prospect that I rushed home from the local Radio Shack after buying the parts. I rushed so much that I got pulled over for speeding. The cop wasn't nearly as excited about my project as I was, and I got my first speeding ticket (the bastard!).
To make matters worse, I don't think I ever got that cable working. Fines and points on my license for nothing!
(Score: 2, Funny) by Anonymous Coward on Saturday August 30 2025, @12:42PM (1 child)
Ahh no CoCo glasshopper, you rearn many valuable ressons that day.
no ethnic disparagement intended, rather just poking fun at various actors who (fairly badly) played "Oritental" parts, such as "Kwai-Chang Caine" on TV show "Kung Fu".
(Score: 0) by Anonymous Coward on Saturday August 30 2025, @02:43PM
Is that you Master Po? I see, no offense, your speech to text works great!
(Score: 3, Informative) by VLM on Saturday August 30 2025, @03:14PM (3 children)
For the folks who aren't in on the joke, the coco series shipped with a bit-bang serial port (win-rs232 LOL) where the CPU had to toggle the rs-232 port lines. Good enough for slow serial printers that took a couple of seconds to print a line anyway, slow for everything else. Good luck pushing more than 1200 baud or so with that thing LOL, especially if you were using multitasking OS-9 as your operating system or trying to do anything else other than run xmodem, I guess.
RS (and many others) sold a hardware RS-232 plug in expansion pack that had hardware RS-232 and IIRC working flow control. That thing could fly.
The pinout of course was different LOL. So you'd get a hardware RS-232 pack, solder new cable ends on, and reconfigure OS-9 to print to the serial printer on the expansion pack not the built-in pit bang port.
I suppose you'd explain a bit-banged RS-232 port as being something like doing I2C by writing your own software to toggle GPIO ports complete with timing loops whereas having a hardware UART chip would be similar to having a microcontroller with a built in hardware I2C bus where you just "Send it".
(Score: 2) by sgleysti on Saturday August 30 2025, @04:08PM (2 children)
It's the exact same thing, just for UART instead of I2C. I've bit banged I2C before; it's pretty easy due to the separate clock and data lines. Bit banging UART would be complicated. You'd need really good timing. I'd be worried about interrupts ruining it.
(Score: 2) by VLM on Saturday August 30 2025, @04:43PM
Oh I assure you having been there, the bit banged RS-232 on the coco barely worked as a single tasking slow speed serial printer output.
The CPU ran around 1 MIP but the interrupt latency could be brutal, yup. Could easily mess up and only ran at relatively low speeds.
When disk access or just being slow stopped feeding data to the hardware UART in the RS-232 expansion pack, thats OK, there's just a gap between characters, but on the coco you "really couldn't" print in the background to the bit bang port while continuing to edit in a word processor or otherwise mess around on the machine because odds are the interrupt would be during a bit-time gap not between bytes.
The coco really was an example of a system where the software was WAY ahead of what the hardware could support. From the mid-80s until early 90s linux era going from OS-9 on a coco to late-80s IBM PCs was a pretty severe downgrade at least on the software side even if the hardware was 10 to 100 times "better" in theory.
(Score: 2) by ncc74656 on Tuesday September 02 2025, @08:01PM
I've bit-banged 1-Wire [analog.com] on the Apple II [alfter.us]. Depending on the application, bit-banging a serial port should be about the same level of complexity.
(Score: 1, Interesting) by Anonymous Coward on Saturday August 30 2025, @03:16PM
We had a CP/M S-100 bus machine in the early 1980s and a 1200 baud modem. While the Z-80 wasn't very good for number crunching, we had an account on a VAX that was. Simulation/optimization code written locally was uploaded to the VAX (about 400 miles away) to compile & run, then the results files came back by modem. Results plots were slow to come out of the dot matrix printer!
Our choice of text editor? Mince, by Mark of the Unicorn (Mince Is Not Complete Emacs).
(Score: 5, Interesting) by SemperOSS on Saturday August 30 2025, @01:04PM
One of my earliest consulting jobs was writing a CP/M BIOS for a small company making Z80-based computers. It went well and soon we created a new version with an intelligent video card based on the same Eurobus motherboard as the computer itself. I had built in a status line at the bottom of the video output with a clock showing the time of day. You had to set the clock every time you turned on the computer as there was no hardware time-keeping circuitry. The clock used the sync timing of the video as time reference. Definitely not precise as the clock drifted a lot with even small temperature changes, but better than the competition that had no status line and definitely no clock.
Open Source Solutions and Digital Sovereignty is the new black
(Score: 3, Insightful) by VLM on Saturday August 30 2025, @02:48PM
For the "historical education" I'd make an analogy with archeology that you can learn a lot from old tech if you'll bother to put in the time. Old lessons learned can sometimes be figured out a lot faster than re-learning from the start in the present day.
Education in general, not historical education. Its small enough an individual can realistically understand how all the parts work together and this is of educational value. Its easier or more realistic to teach someone everything about a small system rather than a huge system like "all of linux" or "all of windows" or "all of osx".
Its a fun puzzle. If you want a picture of dogs playing poker, its a hell of a lot easier to find one and download it from the internet or order a beautiful high res poster online, than to put together a 1000 piece puzzle. Making an old system do something interesting is likewise a puzzle with a lot of small, satisfying parts.
There are different ways to "retrocompute". This article is about being a tourist with an experienced tour guide. This leads to
Another way to retrocompute is to "do something" with it. Go solve fizzbuzz in Turbo Pascal for CP/M or go solve some Project Euler challenges using MS FORTRAN-80 (which was a thing, and the 80 IIRC was the copyright date, it was NOT a F77 god help you IIRC it was a FORTRAN-IV like using a PDP-8 in the mid 60s two decades earlier) IIRC F-80 was only restored and make operational again around 2020 so this is semi-cutting-edge in 2025. For a few decades if I felt like running F-IV I "had to" use a PDP-8 emulator. Write software using overlays (a lost art since at least Y2K... I'd explain it to noobs by saying something like what if you had a system without VM but VERY manually implemented virtual memory in your own program, kind of...)
There are also people who get into end-user software instead of small time sysadmin stuff. Some "applications" were pretty interesting. Editor/word processors, spell checkers operating in ridiculously limited memory, very early database stuff was cool. Early BBSes and related terminal programs (I didn't get into this until 1984 or so, which is a bit after the CP/M in the article).
Another fertile field of experiment is retrocomputing people like small time first time user sysadmin stuff. Now try something exotic like setting up an in-memory print buffer or using multi-user CP/M 3 or that mystifying network/LAN/server system for CP/M that I never really got into but knew about. Go a little further than typing "DIR", interesting as that might be for total noobs, were not all total noobs forever and there's a lack of "advanced" content.
(Score: 5, Insightful) by VLM on Saturday August 30 2025, @03:03PM
Based on some distant memories and recent gossip, I was motivated enough to find CP/NET from 1980 with is an official DRI product and it was kernel native networking with drivers that could use anything not just null modems. Now a days people like using microcontroller hardware as a protocol converter (toss a packet at a ESP32 or wiznet module and it chucks it on the ethernet for you)
http://sebhc.durgadas.com/CPNET-docs/cpnet.html [durgadas.com]
If you remember how TCP/IP worked, or maybe more like how Novell worked, on earlier MSDOS this will all seem EXTREMELY familiar because a decade or two later the dos people were basically copying DRI's architecture and ideas from 1980. I messed around with novell (without a "real" license LOL) back when it was a new thing or at least a commercial thing (there were people running Novell networks up until 1990, surely, and probably past that) and CP/NET on CP/M feels very familiar to running Novell on dos other than add about three zeros to disk capacity etc.
DRI or Digital Research Inc should sound familiar, thats the CP/M dudes. Yup, toward the end of CP/M dominance in the early 80s they sold what amounted to CP/M 2.2 plus plus plus that had kernel-level networking.
And this stuff works in 2025 if you google for it. Mostly people are simulating but there are hardware implementations as I understand.
In my infinite spare time I should set up a CP/NET server in a docker container to serve files to my machines, that would be hilarious.
(Score: 3, Interesting) by Rich on Monday September 01 2025, @10:29PM
A bit late to the party for this article now, as well as when I got a cheapo Z-80 softcard clone for my Apple II to run dBase II after I saw that on a Kaypro in late '84. Aside from dBase and WordStar, there was TurboPascal, which was the only practical high-level language option for the base kit (In my view, UCSD failed with its ultra crude file-system and had to use slow p-code vs. the native Z80 executable because the 6502 absolutely objects to compilers generating code for it). I wrote a little BBS that I ran on my telephone line in Turbo Pascal in '85. But beyond being a launcher for these killer apps, CP/M was crap. It couldn't even shrink files (and iirc only CP/M 3, which no one had, allowed to manually set a "file length" attibute). OS/9 (or even just the ProDOS/SOS file system) was light years ahead.
But following the links and looking at how crude the crap back then was and what prices they demanded (like CP/M 86 for the 5150... $240 or something), I wonder if I could just have done something utterly boring and hit it big. Like doing a WordStar clone for the 6502, or doing some nice little language that'd appeal to both hackers and educators. It looks easy from today's perspective, but apparently was near impossible with my knowledge back then. And for everyone else, too, or we would have seen examples. For example floating point was black magic (I assert that Gates had never made it anywhere if Monte Davidoff hadn't written the FP logic for him). On the other hand, on some family visit, I got bored and in one evening hacked together a trivial text editor on a Dragon 32 that I encountered. The guy who owned the machine apparently added a few touches and turned it into a small scale product.