GARTHWILSON wrote:
The normal thing to do in NMOS 6502 interrupt-service routines was to start it with CLD, which unfortunately increases the interrupt overhead, along with having to put X and Y through A to push them.
A clock cycle here and a clock cycle there...and before you know it, you're into some serious processing time. (A paraphrase of something said at a U.S. congressional hearing about cost overruns in the space program.)
Quote:
Quote:
My opinion is that there is absolutely no earthly reason to use the NMOS hardware for any new design. The 65C02 and 65C816 address a number of errata present in the NMOS parts and also support higher clock speeds (officially up to 14 MHz). In fact, for a new design, I recommend starting with the 65C816, which can be run in 8 bit emulation mode until one gets sufficiently familiar with it to switch to native mode.
I might go even further, and say that unless you're running legacy '02 code, there may no reason not to just put the '816 in native mode immediately in the reset routine and leave it there permanently.
My only caveat for the first-time builder is that the '816 native mode interrupt handlers are potentially more complicated, depending on what is being accomplished. For the purposes of debugging the hardware, remaining in emulation mode may make things a little easier.
Quote:
RichTW wrote:
To add to Garth's list, the most useful feature for me was the unindexed zero page indirect mode
Definitely another valuable one. I couldn't think of them all at once when I was writing.
In the '816, stack pointer relative addressing modes and the stack push instructions
PEA,
PEI and
PER are quite useful, even in emulation mode. I hasten to add that a 65C816 newbie doesn't have to use any of that stuff, and can stick with the basic 6502 instruction set while getting to know the processor. However, once the programmer does gain familiarity, he'll wonder how he ever got along without the new instructions.