Though I have a IIc and a couple of II+ machines lying about (somewhere) not to mention a number of cards for the II+, I've never been an apple fan. I have a system that started out as a homebrew project and developed into a knock-off of the Digital Group architecture, though it was on a small card rather than the large boards DG prodouced.
My guess is that if I fire up any 6502 hardware it will be programmed using the cross-compiler (CC65) or one of the several cross-assemblers that run on the PC.
I say this because I've seen myself doing the same with other popular 8-bitters in recent years. For example, I found CP/M quite useful back in the late '70's and now occasionally fire it up on one of its native boxes when I'm trying to prove something works more than anything else, and, when I'm modifying code/drivers for that setup, I run a simulator on the PC, which is many times faster, and somewhat more convenient, than using the tools (compilers, compilers & assemblers) I already had back then.
Though there probably were some ppassable OS's for the various 6502 machines that were offered back in the '80's, I'm not sure any of them were particularly good, and certainly Apple DOS wasn't particularly good, being thoroughly wedded to Apple features, partiularly that FDC and memory map of theirs, but none is particularly general in nature, hence likely to be ported to another environment.
As I've said before, one of these days I may very well sit down with the PL/M sources to CP/M, the PLM2C translator, and a few weeks' time and attempt to translate the CP/M OS, which is quite general and, above all, widely understood, and see what pops out the other end. The main goal that would fall out of this, of course, is portability of both code and diskettes from one environment to another.
What makes me take this position is that I find the OS's for 6502 systems are almost always wedded in some awkward way to the concept of a demo or game environment around which nearly all 650x machines were originally designed. That's how they ended up with memory mapped peripherals stuck in the middle of their memory maps or scattered randomly and often redundantly (meaning they used more than the required minimum of memory space for a given peripheral in order to save decoding logic) scattered throughout the upper half of their memory map, e.g. JOLT, KIM, SYM, AIM, among others.
I've always believed that I/O ought to be mapped exclusively into the upper two pages of memory right along with, or on top of, the EPROM code, or, when needed for performance, right into page zero. That way one can use the rest of memory as a contiguous block, making it possible to run code written for nearly anything without having to worry about stepping on someone's video memory or VIA or whatever.
I'm not sure this will ever happen, i.e. I probably will not have time for it, but maybe, with some serendipitous coincidence of events, I may be stuck at home with the flu or some such (don't count on it, I haven't gotten a flu shot this year, and the only times in the past decade and a half that I've had the flu have been the two times I did get the flu innoculation.)
What does make the Aztec 'C' compiler interesting for the 6502 is that it's a dialect, (if it really is a version of the "real" Aztec 'C' rather than something they bought from some struggling company that needed money desperately, of a very popular compiler for CP/M. That could make for code that's portable from one CPU to another, and I like that.
I've tinkered with a disk controller design that would make it possible to read/write standard (FM/MFM) formats using an Apple controller, and, conversely, read/write Apple and other odd formats on a more or less standard controller. It's not trivial, and, probably would be limited to a fairly modern PC. Nonetheless, it would be useful for writing diskettes readable by nearly any machine of yesteryear. Having Apple diskettes to translate to another format would provide a motivation to complete that work. This will have to be accompanied with a bunch of code for the PC that will provide the ability to generate a proper and clock-coherent bitwise format for whatever medium is being aliased.
It would be interesting to see the doc's for that Apple version of Aztec 'C' to compare the dialect with the popular CP/M version. I'm told that it was ultimately sold to Lattice Software at the starting point for their PC-targeted 'C' compiler. Perhaps that's the case, which would make the Apple compiler even more interesting.
Thanks for clearing up the question of whether there actually ever was a complete 'C' compiler for the 6502 itself. The next question will be whether there ever was a "real" OS for the 6502. What do you know about that?
Uli
|
|