cbmeeks wrote:
Are there any OS's for the 6502 (better yet, the 65C02) that are on par with CP/M?
As Ed noted, CP/M is really not much of an operating system, at least not in terms of what we would consider an operating system these days. CP/M was little more than a program loader and a BIOS, and lacked a sophisticated filesystem, along with other services we'd expect from a modern computer. I worked with CP/M in the early 1980s, and was by and large unimpressed, especially since I had, by then, some exposure to UNIX.
Canadian computer whiz Craig Bruce had developed a UNIX-like operating environment back in the latter 1980s, written entirely in 6502 assembly language, that ran on the Commodore 128. He had it up on his website at one time, available for download. I don't have a current link, so I don't know if it's still available.
Quote:
And as a side question, why was CP/M never ported to 65C02 systems?
Probably because by the time the 65C02 entered mainstream computing (c. 1984, in the Apple II
c and II
e units) CP/M was nearly moribund. A native CP/M system would have had to be nearly scratch-written to run on the 'C02, as it is a fundamentally different MPU than the Intel 8080 and Zilog Z80. There was no economic justification do engage in such a task.
You have to understand that the CP/M BIOS and BDOS were not at all portable. Each had to not only be written in the assembly language of the target MPU, each had to be tailored to the specific hardware on which it ran. For example, CP/M for a Kaypro was not directly runnable on an Osborne, due to architectural differences in the two machines. Also, CP/M was never written in any kind of a portable language, such as C (indeed, C was largely unknown outside of AT&T at the time CP/M was developed), so it wasn't just a case of changing a few equates in a source file and then compiling.
When Commodore decided to bundle CP/M Plus with the C-128 they went the route of including a Z80 in the hardware, along with a complicated logic system to make either the Z80 or the 8502 the active MPU. It was not a good setup and relatively few C-128s were run on CP/M. The Xetec Lt. Kernal could support CP/M on the C-128 but that was something that was never fully exploited.