6502 was first. It is simple. And that makes it a lot of fun.
6809 is beautiful. I think it is the most powerful and elegant of the 8 bit CPUs. But that spoils a person too.
6502 is like whittling computing down to some useful nubs. There are enough subtleties to make it interesting too.
My two most memorable 6502 assembly projects were:
- Text-to-speech - GUI for entering rules to generate phonemes for a text-to-speech system
- 3D graphics - Switching the Vic-20's characters set from ROM to RAM so I could do high-resolution pixel-addressable graphics. I wrote a full set of 3D primitives to draw lines, circles, do perspective and rotations from 3D to 2D, all in 6502 assembly.
One summer holidays I transcribed the entire Vic-20 ROM disassemby into old exercise books, so I could learn how it worked. I remember a sense of victory after reverse-engineering the floating point format and how the transcendental math functions worked.
Happy days!
And doing something useful with 56 instructions, 8-bits at a time, is like solving a puzzle.
It's a detail that doesn't always come up in these threads but it's worth remembering how belligerently 8-bit a 6502 is. Not only are there next to no general-purpose registers but they're 8 bit and there are no pretend-two-registers-are-one-16-bit-register instructions at all. You can't put an address in a register. Compared to even other popular 8 bit CPUs of the time, that's a bit metal.
Combine that with the Apple I and II, and the 6502 was a major player, and the 6800 didn't have any massively compelling benefits.
The 6809 did have benefits over the 6502, and did get some design wins, including Commodore's SuperPET (which bizarrely had both a 6809 and a 6502), but I think the 6809 was too late - on the low end cheap machines like the VIC-20 and then C64 completely trounced the 6809 based machines, and so it just didn't get enough mindshare, and just a few years later it was effectively too late for it to get any traction in the home computer market.
I have not written much 6800 code, but have read a fair bit. Had it been more available to me, I would definitely enjoyed it
The 6809 is the Cadillac of 8 bitters. That is what makes it fun. One can pack a ton of features into small spaces and doing reentrant, relocatable code is very well supported.
Stack abuse gets one a really fast memory to memory move too.
Of course division was an art. That being said I enjoyed it alot and still know quite of the opcodes (hex) by heart + the clock count of many instructions.