I wrote this a few years ago - it's ~500 lines taking advantage of the logic behind the instruction set (instead of a jump table) and it can run Apple I BASIC at least.
https://github.com/happycube/chadslab/tree/master/m6502
That is similar to my approach to emulating the Gameboy Color's Z80-like CPU. Not yet completed - probably never will be :(