Page 1 of 1

Yet another 6502 reference

Posted: Thu Apr 28, 2016 12:22 pm
by heardtheword
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.

Re: Yet another 6502 reference

Posted: Thu Apr 28, 2016 12:30 pm
by FrankenGraphics
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?'

Re: Yet another 6502 reference

Posted: Thu Apr 28, 2016 12:38 pm
by Joe
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.

Re: Yet another 6502 reference

Posted: Thu Apr 28, 2016 2:33 pm
by heardtheword
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...

Re: Yet another 6502 reference

Posted: Fri Apr 29, 2016 5:36 pm
by mikejmoffitt
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.

Re: Yet another 6502 reference

Posted: Sat Apr 30, 2016 5:08 am
by tepples
You mean like this?

Code: Select all

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]

Re: Yet another 6502 reference

Posted: Sat Apr 30, 2016 5:14 am
by rainwarrior
I think if you're trying to illustrate what it does for a beginner you might sacrifice accuracy for simplicity:

Code: Select all

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".