I started learning 6502 assembly language at the end of 2018, and to get a better understanding of how it works I started building a 6502 simulator using BlitzMax.
There are already hundreds of simulators available, but creating my own helped me to memorize opcodes.
The 6502 chip is well documented and has a solid community. 6502.org in particular has an amazing amount of information, and there’s an entire forum dedicated to building simulators.
There are a total of 56 instructions, but each one has several different modes
so there are around 150 different opcodes to implement. For example,
with carry) has 8 different modes so requires 8 opcodes in the simulator.
Implement all opcodes
Release the simulator + source
Pass a test suite