That is very true!
But I suggest RISC-V RV32I or RV32E [1] is a great option too. Only 37 instructions that a compiler would generate from C (etc), mostly simple register-to-register arithmetic and control flow, plus byte/half/word load/store with only one addressing mode.
It's actually, I would say, slightly simpler to learn what the instructions are than 6502 or Z80, and *vastly* easier to use to write useful programs with.
And it's not only for emulator, you can buy a vast range of new hardware today, ranging from 10c microcontrollers (with 2k RAM, 16k flash for the program, 48 MHz) up to a $2500 64 core 2 GHz 128GB RAM workstation, with in the middle ESP32s for a couple of bucks, Raspberry Pi Pico 2 or Milk-V Duo (Linux! In 64MB at 1.0 GHz) for $5, and on to quad core 1.5 or 1.6 GHz Linux SBCs for $20 (VisionFive 2 Lite), $30-$50 (Orange Pi RV or RV2 with 2-8 GB RAM) and so on.
Online tutorial:
https://dramforever.github.io/easyriscv/#my-first-risc-v-ass...
[1] 16 registers instead of 32, as seen in e.g. the $0.10 CH32V003 microcontroller
Heh .. Keith has got it covered too ...
https://www.chibialiens.com/riscv/
Was there ever any doubt?
> It's actually, I would say, slightly simpler to learn what the instructions are than 6502 or Z80,
It is far more complicated than 6502 or even Z80. Just compare the Easy6502 with EasyRiscV tutorials if you don’t believe me.
I'm familiar with both those tutorials, and indeed have been programming the 6502 for 45 years (and Z80 for 44).
HOW is RV32I more complicated than 6502 or Z80? I sure can't see it, please explain.
There are more registers, but that's not complicated because they all behave exactly the same as each other (with the sole exception of the Zero register always reading as 0) and every register can be used for any operand of any instruction.