Eh, I'm not sure I would agree, about the 6502 specifically. It's a pretty bad match to C since e.g. it doesn't have a relocatable stack and common pointer-based operations are quite clunky despite the provision for several address modes. FORTRAN-like languages really do match quite a bit better. In a different way, so does FORTH.
Also, plenty of people did have fun writing assembly code for the MC68k, which is a 32-bit CISC architecture. It's really only x86 (and maybe VAX) that tends to be a bit clunkier.
Personally if I'm going to have fun writing assembly for a project like this, I'm not too picky about the particular architecture.
So for 6502 I would rather not be writing C.
Check out PLASMA. That is being used to develop the game lawless legends. It's pretty damn impressive.
Newer experimental 6502 languages either forbid recursion (cowgol) or limit parameters passed to functions (C02), but I can see a language using a hybrid of stack and zero page to keep locals and parameters.
The drawback of high-level programming on the 6502 is you are always looking for ways to make it better... :)
;-)
(No, I never worked on such a system... but my mother did.)
With the 128KB +3A model you could use CP/M, which had a better compiler available, still a pseudo C toy compiler versus the real thing on UNIX.
We only used such compilers for homework assignments.
Also, some of the newer ones have small amounts of nonvolatile FRAM instead of separate SRAM and Flash banks.
I guess each to their own though.
You can really do this on any modern platform as well. It just takes a bit of effort. Understanding performance characteristics can be an order of magnitude harder, though.