HP should open OS/8 and RT-11, the two big influences on CP/M. OS/8 is kind of remarkable, running on a system arguably less powerful than the first 8-bit home computers (I would say they are closer to PIC microcontrollers, but with more RAM):
PDP-8 memory is heavily paged. There are 128 word pages- direct addresses can only reach within the current page, and literals (immediate data including addresses to other pages) have to be allocated out of this current page along with the instructions. Second, there are 4K-word fields. So you need to use far jumps and returns to access outside the current field. This is just like PIC microcontroller pages.
OS/8 reserved only two pages for itself. Things like the command interpreter were swapped out to disk or DECTape.
If the application needed device drivers, it got to choose which pages the drivers would occupy- meaning the device drivers had to be written as position independent code. Also I think each driver was limited to two pages..
In high school in 1980 we had Commodore PETs. They had no tangible OS, just a BASIC interpreter in ROM. There was an easter egg that made it say Microsoft or wasn't it spelled MicroSoft? Either way a company nobody had ever heard of.
CP/M had the aura of being something for real pros. Read some journal articles and it looked really complicated. But without suitable hardware I had never any chance to touch it.
In 1983 I went to university where beginner courses happened on VAX/VMS and my definition of "pro" got shifted.
The early microcomputer OSes were little more than program loaders and only came into play if you had a disk drive. Even MS DOS was not much more than a program loader for most of its existence. It was a little jarring when making the transition from a TRS-80 or Apple ][ or Commodore computer to something running MS-DOS or CP/M that you could no longer just type 10 PRINT "HELLO, WORLD!" to start writing a program.
I inherited one of these from a friend in 2000. The ‘l’ key switch was broken. It (like most) were only booted into C64 mode and used for Batman and stuff. ‘L’ was broken because of ‘load’? I think that was the command. It’s been too long.
I passed it on, but wish I didn’t. At this point, I probably could have replaced the switch.
128 was a scam. It was a way for Commodore to get rid of unused sunk cost R&D (MOS 8563). Buyers were promised C64, but twice the number so must be 2x better, received C64 with another almost separate computer glued to its ass. Second graphic chip requiring expensive monitor, second CPU. As a bonus manufacturing C128D was more expensive than Amiga 500!
I remember, when I was a kid, having a CP/M diskette for the Amstrad CPC. It was provided with the machine. Every now and then I would try it out, not really understanding what it was about.
Years later I learned, reading about it, that it was some sort of "professional" OS on which productivity software would be used.
Does anyone actually used that OS on CPC or any other 8bits machine of the 80s to do anything remotely useful? Genuinely interested.
There was huge amounts of CP/M software, much of it distributed for the CPC by "public domain libraries", who'd send you a disk of stuff by post for a small fee. (I ran one such!) But, to be frank, it was a minority taste because there were often faster, more graphical native programs available - i.e. running under the CPC's ROM-based firmware. For example, why would you use a CP/M wordprocessor when you could use Protext? Why would you use a CP/M assembler when you could use Maxam? And so on.
So CP/M programs on the CPC tended to flourish in areas where there wasn't much decent native software. Comms programs, for example - dialling up to a BBS, or even running one. (There were a couple of BBSs run on CPCs using the ROS software under CP/M.) Languages other than BASIC or assembler. Compression/archiving.
CP/M was a bigger thing on the Amstrad PCW because it didn't really have native firmware, and because the hardware was closer to a decent CP/M machine.
CP/M was a lot like MS-DOS. People used the Wordstar word processor on it, you could run a BASIC interpreter and compiler on it. There was an upgraded version called ZCPR3 that was used on a BBS server in my town where you could log in and use the command line.
Wrote thousands and thousands of lines of code on CP/M, back in the day - not on an Amstrad CPC back then, rather some other strange machine - but it opened the door for a lot of great work in the decades that followed.
In my retro collection I currently have a CPC6128 that boots CP/M and for which I have Turbo C and Turbo Pascal installed.
I prefer to run SymbianOS on it though - it has multitasking, a network stack and a working GUI. ;)
I worked on an industrial process monitoring system using CP/M in the 80s. It wasn't on CPC. It ran on a professional Z80-based S100 bus system with lots of I/O cards.
My first job straight out of engineering school in 1983 was developing Z80 embedded code. My 'development system' was some kind of semi home made floppy disk based CP/M computer with 48K of RAM and the native Dev tools including ED a command line editor and ASM an 8080 assembler (which was basically sufficient if not ideal for writing Z80 code). For the first few days I recall being confused about the difference between the ED command line and the CP/M command prompt. In other words, I was all at sea. But it was basically being thrown into the deep end and I learned fast. Within a year or so I was writing my own BIOS for an Intel bubble memory based customer CP/M computer that we were embedding into a field application. I didn't have the proper OEM documentation, but if you understood the CP/M architecture you didn't really need it.
I haven't used a real 80s computer (except in a museum). I've used CP/M a fair amount on an RC2014[0], but never for anything you might describe as "useful".
Same here, I've been running a single-board Z80-based system with 64k and CP/M 2.x
I worked my way through the various infocom adventures, and even wrote my own trivial text-based adventure game in Z80 assembly language - later porting it to the ZX Spectrum (which was the actual computer of my youth).
It's fun to play with these systems, and I've rebuilt the CP/M from sources a few times to add simple changes and new built-in commands.
I did, on a Czechoslovak 8080-based machine called TNS: I have written & cross-compiled a fulltext screen editor for another 8080 machine. It was written in the assembly language, and the resulting product had less than 2 KB.
Yes, I remember using Dr.Logo on CP/M on my friend’s CPC6128 and being very impressed with the capabilities of the language compared to BASIC. I also loved how detailed were the help text for the CLI tools. I remember reading HELP pages. I used to like command-line option syntax in brackets too. It felt very thorough and professional compared to AMSDOS :)
There was a category of med/high range microprocessor machines ($10k+) that used it a lot, like Z-80 S100 machines with a bunch of "custom" expansion cards. I don't recall any of their names now, but if you look at the ads in late 70's Byte magazine you'll see them.
Same here. Had it on the CPC464. Had no idea what to do with it other than IIRC loading an image editor whose highlight (for me) was a brush in the form of a propeller fighter plane :)
I remember CP/M with fondness. My father gave me an Osborne 1 for my first computer when I was 12 (41 years ago). It came with CBASIC2 as well as MBasic, and I managed to find a Lisp (I forget what flavor). To put the Osborne 1 in perspective, the stats:
The multiply instructions on later CPUs were implemented as microcode programs on the silicon, so sometimes it was faster to write your own or a specialised routine anyway.
Lots of the source of CP/M came with the distribution, and it wasn't hard to dis-assemble specific bits you were interested in.
Some CP/M software (I'm thinking of WordStar specifically here, but no doubt others) almost required you to write a keyboard and display handler in Z80/8080 machine code to get decent performance over the generic CP/M code - been there on Research Machines 380Zs.
> 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
What the Wikipedia says, if you piece it together is that Bryan Sparks founded Caldera in the mid 1990's, which bought Digital Research. Around the time Caldera went defunct in 2002, Sparks started DeviceLogics which got renamed to DRDOS Inc. So that must have inherited the Caldera assets, including the Digital Research stuff.
That is so cool. I'm not really a retro-computing guy and am unlikely to ever run this code, but it does bring back memories of bringing home an old unsold box from work, sitting on the garage floor, writing a program in unfamiliar 8080 mnemonics, and getting two terminals to chat to one another. OTOH it might be fun to get something working on a Z80 SOC. Or something like this https://hackaday.com/2017/01/02/retrocomputing-for-4-with-a-...
Has anyone ever trans-compiled Z80 assembly to a microcontroller? Is that even a thing?
https://www.pdp8online.com/os/os8/index.shtml
PDP-8 memory is heavily paged. There are 128 word pages- direct addresses can only reach within the current page, and literals (immediate data including addresses to other pages) have to be allocated out of this current page along with the instructions. Second, there are 4K-word fields. So you need to use far jumps and returns to access outside the current field. This is just like PIC microcontroller pages.
OS/8 reserved only two pages for itself. Things like the command interpreter were swapped out to disk or DECTape.
https://en.wikipedia.org/wiki/DECtape
If the application needed device drivers, it got to choose which pages the drivers would occupy- meaning the device drivers had to be written as position independent code. Also I think each driver was limited to two pages..
CP/M had the aura of being something for real pros. Read some journal articles and it looked really complicated. But without suitable hardware I had never any chance to touch it.
In 1983 I went to university where beginner courses happened on VAX/VMS and my definition of "pro" got shifted.
Five years later the Commodore 128 appeared. It had the best of both worlds: could run all C64 games and CP/M. These were magic times.
I passed it on, but wish I didn’t. At this point, I probably could have replaced the switch.
Years later I learned, reading about it, that it was some sort of "professional" OS on which productivity software would be used.
Does anyone actually used that OS on CPC or any other 8bits machine of the 80s to do anything remotely useful? Genuinely interested.
There was huge amounts of CP/M software, much of it distributed for the CPC by "public domain libraries", who'd send you a disk of stuff by post for a small fee. (I ran one such!) But, to be frank, it was a minority taste because there were often faster, more graphical native programs available - i.e. running under the CPC's ROM-based firmware. For example, why would you use a CP/M wordprocessor when you could use Protext? Why would you use a CP/M assembler when you could use Maxam? And so on.
So CP/M programs on the CPC tended to flourish in areas where there wasn't much decent native software. Comms programs, for example - dialling up to a BBS, or even running one. (There were a couple of BBSs run on CPCs using the ROS software under CP/M.) Languages other than BASIC or assembler. Compression/archiving.
CP/M was a bigger thing on the Amstrad PCW because it didn't really have native firmware, and because the hardware was closer to a decent CP/M machine.
In my retro collection I currently have a CPC6128 that boots CP/M and for which I have Turbo C and Turbo Pascal installed.
I prefer to run SymbianOS on it though - it has multitasking, a network stack and a working GUI. ;)
You're probably thinking of SymbOS:
http://www.symbos.de/
[0] https://rc2014.co.uk/
I worked my way through the various infocom adventures, and even wrote my own trivial text-based adventure game in Z80 assembly language - later porting it to the ZX Spectrum (which was the actual computer of my youth).
It's fun to play with these systems, and I've rebuilt the CP/M from sources a few times to add simple changes and new built-in commands.
Deleted Comment
I feel like the code was available before and I read parts of it but I may remember it wrong.
Edit: Yes it was indeed "just" a license clarification. Link to the source: http://www.cpm.z80.de/source.html
* 64kb memory (yes that's kilobytes)
* 2 5 1/4 floppy disks
* No hard disk
* 5" monochrome green screen monitor
* 4 MHz CPU
* 37 watt power supply
* weighed ~25 pounds
Luxury super computer!
That CPU lacked a multiply instruction, so you had to implement that yourself.
https://m.youtube.com/watch?v=ue7wM0QC5LE
;)
Some CP/M software (I'm thinking of WordStar specifically here, but no doubt others) almost required you to write a keyboard and display handler in Z80/8080 machine code to get decent performance over the generic CP/M code - been there on Research Machines 380Zs.
What the Wikipedia says, if you piece it together is that Bryan Sparks founded Caldera in the mid 1990's, which bought Digital Research. Around the time Caldera went defunct in 2002, Sparks started DeviceLogics which got renamed to DRDOS Inc. So that must have inherited the Caldera assets, including the Digital Research stuff.
http://www.cpm.z80.de/source.html
http://www.cpm.z80.de/binary.html#operating
Search for MP
Has anyone ever trans-compiled Z80 assembly to a microcontroller? Is that even a thing?