fachat wrote:
I'm also planning to keep all the current opcodes, but include 2, maybe 3 extra 16-bit registers (U,V,W) with extra opcodes for stuff like
Code:
LDU $1234
LDA U,X
using a 16 bit ALU to reduce invalid memory cycles.
Having thought about this a bit more I am more and more thinking about just extending the current registers to 16 bit, with the original opcodes just affecting the lower 8bit. The additional opcodes working on the 16bit values would then look like
Code:
INYW
ASLW
This probably helps in reducing the necessary opcode count if I could just reuse
Code:
LDA ABS,Y
opcodes, when Y is 16 bit. After RESET the high byte of the extended registers would always be zero, and not affected by any "original" 8bit opcode - so the Y- and X-indexed opcodes would be extended in a backward compatible way.
I'd loose extra registers I could reuse for e.g. a blitter though. But on the other hand, adding the originally mentioned U,V,W registers feels like just adding a separate 16bit CPU and not extending the 6502...
I've written up some thoughts on this on my sneak preview page
http://www.6502.org/users/andre/sneak.html#fpga
André