PaulHoule 7 hours ago

Going to the 65C816 CPU like the Apple // would be an obvious choice but a terrible choice. In particular the 65C816 had a 24-bit address space but only had 16-bit index registers

https://en.wikipedia.org/wiki/WDC_65C816

also you still have too few registers and not enough addressing modes so compilers for languages like Pascal and C are still problematic. [1] The 6502 never got a good extension to the 24-bit world, and of course not to 32-bits. There's a commonly discussed alternate timeline where Apple had skipped the Mac and shipped the //gs a year earlier; superficially the //gs looked like a mac, even though the software development situation was atrocious for the Mac in the first two years, mac programmers had a decent compiled Pascal whereas the most popular Pascal on the ][ used a bytecode interpreter. The 6502 did not have a good forward compatible story to go into the future, any more than did the PDP-11.

The Z-80 in the C-128 was little used. Around that time CP/M was drying up but hardware was getting cheaper so getting access to all that business software had some appeal. The way it was wired into the machine to share the video memory cut drastically into the effective speed of the CPU, I don't know what could have been done about it.

The Z-80 did have good extensions into the 24-bit world though, today we have

https://en.wikipedia.org/wiki/Zilog_eZ80

(since 2001) which extends all the registers to 24 bit so you can do address arithmetic, plus the Z-80 always had more registers and better addressing modes so it better supported compiled languages. Some of the best contemporary retrocomputers use it

https://www.olimex.com/Products/Retro-Computers/AgonLight2/o...

At the time there was a Z180, Z280, etc. I can certainly imagine a timeline where Zilog's priorities were a little different and something like the eZ80 came out circa 1984 and that would have made for a sweet machine.

[1] you could move the zero page around though which could have maybe been used to give each subroutine an activation record of 256 bytes