Obviously that line is a bit fuzzy, because I'm not talking about going down to the levels of Turing Machines or An unfortunately named esoteric programming language, so I'm thinking this will be a somewhat subjective discussion. Rephrased another way to allow for said subjectivity:
What's the simplest subset of the 6502 architecture that you feel would still be reasonably useful in a real-world use-case?
To be clear I am talking about strict subsets of one of the 65C816 or 65C02. You're not allowed to alter or add anything, only take things away; what you end up with must still be binary compatible with an existing 65C02 or 65C816 program which doesn't use the removed capabilities. I would expect most solutions to be based on 65C02 since its already simpler, but I'm including 65C816 as an acceptable starting point because you might feel that one of the 65C816's new features can replace several features of the 65C02's, thuse giving a smaller subset overall.
---
My own initial thoughts are:
- Start with 65C02 as the basis.
- Trim down to 8-bit addresses and we can dispense with absolute addressing modes entirely and only use ZP-related modes.
- We don't need both X and Y, though I'm not sure which I'd prefer to keep as both are useful in different ways.
- Don't need interrupts, both hardware and software. Saves some instructions and removes the I flag.
- If we don't have interrupts, we don't strictly need a stack either, so the S register can go.
- As there's no stack, can't have hardware-assisted subroutines, so those instructions can go too.
- V and N flags are not really necessary, so they and their associated Set/Clear and Branch instructions can go.
Now, certainly the above isn't going to hold a candle to a full 6502, but I'm thinking it could be useful as a little co-processor or I/O controller of some kind. Wozmon fitted in 250 bytes of ROM, so I'm sure you could do something useful with (say) 224 bytes of ROM, and 16 bytes each of RAM and I/O space. Heck if you really needed more RAM you could always hook some up indirectly with a PIA or VIA through the I/O space.
---
Very interested to hear all of your thoughts!