Hacker News new | ask | show | jobs
by kodis 366 days ago
Very interesting, and a classy move by DR, although the original text files would have been much more interesting to play with.
4 comments

I'm sympathetic to that, and it would make a modern reconstruction easier to create, but it's also nice to see the the rubber stamps and the other ephemera to get an idea of how the process worked. Plus, quite possibly the files in their original form no longer exist.
You can find (compilable) versions of CP/M on github hosted by many people.

I've referred to them a fair bit in recent times as I've been fighting to get my golang CP/M emulator working on a couple of stubborn binaries.

(Downside is that many of the versions of CP/M sources you see use the weird intel-style of assembly rather than the more typical Z80 opcodes. Still that's not a real blocker.)

Those are usually disassembled binaries, not the original source code. Which used Intel style assembly and PL/M.

And Z80 syntax may be more common today, but Zilog made some rather bad choices IMO. If "LD A,(HL)" loads a byte from memory address HL, then you would expect "JP (HL)" to load the address to jump to from memory instead of directly from the HL register. "PCHL" is a lot clearer. Also in 8080 syntax, one mnemonic => one addressing mode and base opcode. No surprising syntax errors because some operand combination isn't allowed, or 4 clock penalty to fetch a prefix byte...

There are inconsistencies, to be sure, for both sides.

I guess it mostly depends which you grew up with, or were otherwise exposed to first, which determines which one makes most sense to you.

DR is long gone. The license holder for the DR assets was Caldera (via Novell) though I have no idea what happened after that. Most of the DR stuff was GPL'd back around Y2K, so I don't know if these particular releases are new or if they were just covered under the original GPLing back then?
I wonder if there are no text files to provide.