As Garth has revealed this (interesting) thread I like to throw in my 2 cents
sark02 wrote:
Every chip is interesting, and I hope I don't come across as rude for challenging, but if you've chosen the '816 over ARM or MIPS, I'm curious as to why. What makes the '816 desirable, interesting or even essential in your projects? Is it instruction set familiarity, compatibility with your existing libraries of work, hardware features such as 5V tolerance or bus architecture, other? I'm genuinely interested to hear your stories.
First of all, the '816 is the only publicly available "official" successor of the 6502. There may other variants of this CPU being embedded somewhere, I don't know. Being an old fellow of the 6502 I cannot but take a look at that beast
. To be honest - when I read the Byte article (198?) about the '816 I found it disgusting - yes! Being strongly influenced by CPUs like 68000 and Z8000 (only books) this '816 thing was no match. OK, the backwards compatibility could be nice - but who wants to run old 8 bit stuff anymore? Then these mode flags!! Oh no! After all this trouble with the D-flag now more of that?
But then:
Dr Jefyll wrote:
sark02 wrote:
if you've chosen the '816 over ARM or MIPS, I'm curious as to why.
sark02 wrote:
It's the 16-bit version that I'm curious about, and I do wonder what the attraction is.
Hm, did the question shift? Hope I'm not OT if I make a remark contrasting the 6502 with the 65816.
For me there was a
big light bulb that went on when I realized that a
TSC instruction followed by a
TCD puts your Direct Page on stack. Suddenly Direct Page ceases to be a crowded place! And you get some amazing new address-mode flexibility -- for example
being able to use a three-byte indirect pointer that's on-stack.
My admiration for the '816 designers went up several notches. The 256 super-flexible processor registers that Garth mentioned can be a stack frame! Despite certain downsides it's an idea which IMO gives '816 programming a whole new level of sophistication as compared to 6502/65C02.
And, speaking of 3-byte pointers: the "16-bit version" generates 24-bit addresses, so that's a
huge step up from what the '02 and 'C02 can do!
-- Jeff
THIS nifty trick did raise my acceptance of the '816 significantly. This means a reasonable C compiler (or similar stack oriented languages) could produce acceptable results. And although here and there some 16 bit limits were present they can circumvented using long pointers and long addressing. As for
fun building a sort of a home computer using a '816 (something like a "Mensch computer", just a little updated) seems to be a long range goal.
In the daily business there is no room for 65xx(x) stuff. Too expensive, outdated, difficult to use, poor tools,... Perhaps for educational purposes these basic components are of some use.