grzeg wrote:
Dr Jefyll wrote:
(The scheme used by the 6509 is flawed, IMO.)
-- Jeff
I've never run a 6509, but Steve Gray ( sjgray ) answered some of my questions over in the
6509 lookalike thread.
What we want -- or at least what
I want -- is a 16 MB space. What the 6509 gives you is a pair of IO registers, then 65,534 bytes, then the same pair of IO registers, then 65,534 bytes, then the same pair of IO registers....
OK, so we lose 512 bytes out of the overall 16M -- not a problem in itself. But the space is all broken up into pieces!
There's no easy way to code an application that uses a big data structure -- like, say, an array of 20 or 30 elements, each of them 40K in size. Or maybe you're doing digital audio, and want to hold a stream of 90,000 or 190,000 bytes in memory. An '816 can easily hold and address a big array like that, as can my
KK computer. But on 6509 the same application would be much harder (or impossible) to write.
The solution I'd try is to make the IO registers appear
or not depending on the instruction and addressing mode that generates the bus access. Most instruction/mode combinations would see the registers, but bus accesses caused by $B1 and $91 would not. Maybe the 6509 already does it this way, but indications are that it doesn't. They came so close!
ETA: the fix seems tolerably easy for us to include, and it doesn't break compatibility with CBM-II programs. Even though MOS didn't include it, we could.
-- Jeff
_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html