Thanks for the mention, Ed.
BigEd wrote:
no simple 3-byte pointer support
Yes and no. To use a 24-bit address you need an extra instruction to load one of the bank registers beforehand. But that's pretty easy to tolerate, given that
KK can load a bank register in as little as 2 cycles -- just as fast as a load to A, X or Y. The available address modes are Immediate, Absolute, Zero-page and Zero-page,X. (see the
KK Instruction list)
In the following example K2 is loaded using immediate mode. IOW the high-address byte going into the bank register is stored as part of the LDK2 instruction. This is a good choice when the subsequent instruction(s) will use Absolute mode -- where, again, the address bytes are stored as part of the instruction.
Code:
;;;;;;;;;;;;;;;; we all know how to use a 16-bit address
LDA $3456 ; (4 cycles) get what's at $3456
;;;;;;;;;;;;;;;; here's the KK equivalent for a 24-bit address
LDK2 #$12 ; (2 cycles) load K2 (one of the four bank registers)
LDA_K2 $3456 ; (4 cycles) get what's at $123456
cheers,
Jeff
[Add code example. Other edits.]
_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html