I'm not as familiar with the 6809 as I am with the
6502... what differences
in architecture make it better? Larger stack frame? More (and larger)
registers?
Yes, and more...
The 6809 is a pseudo-16-bit chip in many ways. OK, it's only got an 8 bit
data path, but a lot of instructions operate on 16 bit data.
IIRC, the registers are :
A, B (2 accumulators, 8 bits each) which can be jointly called D (16 bit
accumulator)
U, S, 2 stack pointers (16 bits each, none of the 6502 problems of a
stack in page 1 only)
X, Y, 2 index registers, also 16 bits each
P (Program counter, 16 bits)
S (Status register, 8 bits)
DP (Direct page register, 8 bits. This forms the 8 byte in 'direct page
addressing mode', which is like zero page on a 6502, except it can refer
to any page in memory).
Also, the instruction set is orthogonal (very). There are few
restrictions on what can be done to each register, and which addressing
modes can be used with each instruction. IIRC, on the 6502 you can't
transfer (driectly) between just any 2 registers, you can't push just any
register onto the stack, etc.
And there are relative addressing modes for jumps, calls and data access,
allowing position-independant code.
-tony