The 6509 would have been overwhelmingly easier to code for than the C128's MMU. The C128 was also wedge-shaped, as was the C64c.
True, although they sported color and good-for-the-time sound, which the B128 didn't.
Despite the inadequacies, I still loved the C128.
I never found the MMU at all difficult to work with. In pure M/L applications, I'd read out and store the contents of the four preconfig registers and load my own values. I'd also define a small common area at the top of RAM to facilitate cross-bank transfers. When the program terminated I'd restore the default memory map, reload the original preconfig values and BASIC would be none the wiser.
The reality is that any banked architecture is going to pose a certain set of challenges. That's what separates the men (women) from the boys (girls) in assembly language development.
Of course, nothing can beat the 65816 at what people are genuinely looking for though -- true 6502 compatibility and 16MB address space with linear addressing for data (modulo data alignment issues).
To me, the main selling points of the '816 are the ability to move direct (zero) page to a convenient location if desired, as well as having 16 bit registers and stack pointer available if needed. The business of MUXing the A16-A23 address component on D0-D7 is, to me, a nuisance feature requiring special hardware logic to correctly implement. I would rather see an '816 package where A16-A23 are present on separate pins and valid any time A0-A15 are valid. Of course, the result would not be truly 65Cxx hardware compatible, but, then, the '816 isn't pin compatible with any eight bit 65xx MPU.
Though, considering the contemporary pricing for FPGAs, I'd just burn my own CPU right into the FPGA and hang my desired logic off the CPU bus internally. Personally, I'd use a 32-bit stack architecture now-a-days.
Yes, but could you call it a 65xxx something with a clear conscience?
