I've used several 6502 references over the past few months and haven't been happy with any of them. I wanted a reference that looks good on a mobile device and also focus on status flags rather than cycle counts/bytes. Here is what I came up with and maybe it will help someone else. You can expand each mnemonic for details on the opcodes and bytes/cycles used.
http://media.matttuttle.com/6502/If you come across something that isn't accurate or have an idea of how to make it better, let me know.
This looks very good and useful. Incidentally, i began to write a similar reference sheet in a note block to learn the flags just a few days ago.
Since it is interactive and all, maybe a filter or sorter when you click any or all of the flags could be helpful? To help answer questions like 'what may be altering carry in this case?'
heardtheword wrote:
If you come across something that isn't accurate
Bit 4 isn't a flag either; it only exists when the flags are pushed to the stack.
Great suggestions! I added filter buttons at the top for the status flags. I also added print styles if someone wanted to print it for some reason...
This is pretty clean. It would be a cool feature if it had a C-esque "psuedocode" description of the kind of pointer math the different addressing modes do, because for newbies looking at the Y vs X indexing for LDA ($AA, x) instead of LDA ($AAAA), Y can be confusing at first.
You mean like this?
Code:
LDA (dd),Y ; A = RAM[RAM[dd] + RAM[(dd + 1) % 0x100] * 0x100 + Y]
LDA (dd,X) ; A = RAM[RAM[(dd + X) % 0x100] + RAM[(dd + X + 1) % 0x100] * 0x100]
I think if you're trying to illustrate what it does for a beginner you might sacrifice accuracy for simplicity:
Code:
A = RAM[RAM[dd] + Y]
...is probably a lot clearer about what its function is. The page wrapping is a finer detail, much like flags and cycles and other stuff you wouldn't try to encapsulate in a "C illustration".