Readit News logoReadit News
jhallenworld · 3 years ago
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):

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..

usr1106 · 3 years ago
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.

dhosek · 3 years ago
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.
hdjjhhvvhga · 3 years ago
> In high school in 1980 we had Commodore PETs. They had no tangible OS, just a BASIC interpreter in ROM.

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.

salmo · 3 years ago
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.

mongol · 3 years ago
I always booted mine while pressing the Commodore key. Waste of money.
rasz · 3 years ago
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!
elvis70 · 3 years ago
skywal_l · 3 years ago
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.

Doctor_Fegg · 3 years ago
Yeah, I used it a fair bit on the CPC.

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.

PaulHoule · 3 years ago
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.
boffinAudio · 3 years ago
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. ;)

lproven · 3 years ago
Symbian OS is something entirely different: a native ARM OS written in C++ for smartphones.

You're probably thinking of SymbOS:

http://www.symbos.de/

taffronaut · 3 years ago
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.
shadowofneptune · 3 years ago
CP/M was at one point the native platform of Turbo Pascal. It only got fine-tuned for MS-DOS in later versions.
defined · 3 years ago
Yeah, I wrote quite a bit of Turbo Pascal code on CP/M on a Radio Shack TRS80 Model II. I loved TP and CP/M, especially TP.
billforsternz · 3 years ago
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.
jstanley · 3 years ago
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".

[0] https://rc2014.co.uk/

stevekemp · 3 years ago
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.

Deleted Comment

omega1 · 3 years ago
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.
sedatk · 3 years ago
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 :)
marktangotango · 3 years ago
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.
zekica · 3 years ago
Me too. I used it only for copying floppy disks. I didn't know better at the time.
dividuum · 3 years ago
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 :)
atq2119 · 3 years ago
I remember using Wordstar and Turbo Pascal (version 3.0, I think?) via CP/M on a CPC.
wazoox · 3 years ago
There was a famous tracker for the CPC6128 that ran on CP/M. The name escapes me ATM.
lproven · 3 years ago
Do you mean back then, or now?
kriro · 3 years ago
That is cool news because it's probably a nice starting point for osdev projects. At least more code to read :)

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

Communitivity · 3 years ago
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:

* 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

OnlyMortal · 3 years ago
4mhz CPU?

Luxury super computer!

varjag · 3 years ago
3.5-4Mhz was standard for most Z80 based systems.
jfengel · 3 years ago
Plus an RS-232 for your modem and an IEEE 488 for your printer.

That CPU lacked a multiply instruction, so you had to implement that yourself.

veltas · 3 years ago
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.
zabzonk · 3 years ago
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.

jstanley · 3 years ago
Source has been available for years, it just hasn't been clear whether it was legal to redistribute it. Now it's clear :).
bornfreddy · 3 years ago
...clearer (if at all). The proper license, whatever it is, is still missing. Sorry. :)
kazinator · 3 years ago
> 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.

doctor_eval · 3 years ago
Why about MP/M. I loved having more than one user on a 8080.
dfawcus · 3 years ago
doctor_eval · 3 years ago
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?