Fun way to learn 6502 is to get the Stella emulator and write some demo code for the Atari 2600. Simple code and you can get the feedback on screen with immediacy.
A little sad to see the venerable Motorola 6809 dismissed with only "This was possibly the most sophisticated 8-bit architecture but had much more limited adoption than its competitors."
If we're using emulation anyway, does the installed base over 40 years ago really matter? Of course, I'm biased on this point because, by happenstance, I ended up with the 6809-based Radio Shack Color Computer. Basically, my parents weren't going to pay much for a home computer for my late-teen self in 1980 (because what would you even do with a such a thing?) Even the minimal 4K RAM version was $600 but via a tiny ad in the back of a magazine, I found a non-corporate franchise Radio Shack store out of state selling them for about $450 delivered (no sales tax!). I mailed the check off hoping I wouldn't get scammed.
The computer showed up and it turns out random luck paid off because the 6809 was a fantastic CPU to learn assembler on. It was the most powerful 8-bit CPU because it was really a hybrid 8-bit/16-bit CPU, much like it's later big brother the 68000 (a 16-bit/32-bit hybrid). It had a bunch of 16-bit registers, indexed and program counter relative addressing modes (enabling position independent, re-entrant, pre-emptive multi-tasking code), software and user stacks, layered interrupts and a beautifully orthogonal instruction set (definitely inspired by the PDP with some nods to the IBM 360). And, damn, was it powerful! With the Unix-like, multi-tasking OS-9 operating system you could service up to 8 simultaneous users on serial terminals in real-time on a literal "toy computer" with a 1.8MHZ 6809 and 64K RAM.
For the first several years I was learning assembler, I had no idea how lucky I was. Much later when I eventually looked at the Z80 and 6502, I was shocked how primitive they were. Apple even initially chose the 6809 for the Macintosh and early Mac prototypes were 6809-based before they migrated to the 68000. Even better, Radio Shack sold an assembler in a ROM cartridge so low RAM wasn't a problem. A television for display and an audio cassette recorder to save your programs completed your "software development environment" :-).
Okay, it's true not a lot of people know much about the 6809 today - but back in the day all the cool kids definitely knew it was a powerhouse compared to Commodore, Apple and Atari 8-bits CPUs. However, I think more people today might object to dismissing the 68000 family. The 68K is still legendary for being fun to program in assembler. Sure, it was CISC but it was CISC in perhaps its most mature, pure and idealized form. And while RISC eventually replaced CISC architectures because RISC was more scalable when Moore's Law eventually delivered ever more gates in the 90s, the very CISC 68K was designed to be human legible, expressive and even joyful to program in assembler by hand. Sure, RISC architectures can be hand programmed, but they were clearly conceived for compiler written code and higher level languages.
Learning assembler today is anachronistic anyway, so why not go for the gusto and relive an ISA that legendary OG giants of software seriously described as 'elegant' and 'beautiful'?
Here’s a talk by Will Lindsay that might inspire https://youtu.be/D3ZlyJEQW0w?si=__vC9YxnRICjZyH2
If we're using emulation anyway, does the installed base over 40 years ago really matter? Of course, I'm biased on this point because, by happenstance, I ended up with the 6809-based Radio Shack Color Computer. Basically, my parents weren't going to pay much for a home computer for my late-teen self in 1980 (because what would you even do with a such a thing?) Even the minimal 4K RAM version was $600 but via a tiny ad in the back of a magazine, I found a non-corporate franchise Radio Shack store out of state selling them for about $450 delivered (no sales tax!). I mailed the check off hoping I wouldn't get scammed.
The computer showed up and it turns out random luck paid off because the 6809 was a fantastic CPU to learn assembler on. It was the most powerful 8-bit CPU because it was really a hybrid 8-bit/16-bit CPU, much like it's later big brother the 68000 (a 16-bit/32-bit hybrid). It had a bunch of 16-bit registers, indexed and program counter relative addressing modes (enabling position independent, re-entrant, pre-emptive multi-tasking code), software and user stacks, layered interrupts and a beautifully orthogonal instruction set (definitely inspired by the PDP with some nods to the IBM 360). And, damn, was it powerful! With the Unix-like, multi-tasking OS-9 operating system you could service up to 8 simultaneous users on serial terminals in real-time on a literal "toy computer" with a 1.8MHZ 6809 and 64K RAM.
For the first several years I was learning assembler, I had no idea how lucky I was. Much later when I eventually looked at the Z80 and 6502, I was shocked how primitive they were. Apple even initially chose the 6809 for the Macintosh and early Mac prototypes were 6809-based before they migrated to the 68000. Even better, Radio Shack sold an assembler in a ROM cartridge so low RAM wasn't a problem. A television for display and an audio cassette recorder to save your programs completed your "software development environment" :-).
Okay, it's true not a lot of people know much about the 6809 today - but back in the day all the cool kids definitely knew it was a powerhouse compared to Commodore, Apple and Atari 8-bits CPUs. However, I think more people today might object to dismissing the 68000 family. The 68K is still legendary for being fun to program in assembler. Sure, it was CISC but it was CISC in perhaps its most mature, pure and idealized form. And while RISC eventually replaced CISC architectures because RISC was more scalable when Moore's Law eventually delivered ever more gates in the 90s, the very CISC 68K was designed to be human legible, expressive and even joyful to program in assembler by hand. Sure, RISC architectures can be hand programmed, but they were clearly conceived for compiler written code and higher level languages.
Learning assembler today is anachronistic anyway, so why not go for the gusto and relive an ISA that legendary OG giants of software seriously described as 'elegant' and 'beautiful'?