Now my understanding (and please someone correct me if I'm wrong) is that the CoCo does not directly address all 64k of ram, but instead effectively has two banks of 32k. I believe this comes from Tandy's decision to use non-functioning 64k chips in their early machine. When I say "non-functioning", I don't mean the chip doesn't work at all, just that not all the ram works. But if one of the 32k block works, then they put it in the machine as a 32k chip, and then just use a switch to tell the machine whether to use the upper or lower 32k block.

So how to tell if my machine is actually a functioning 64k CoCo? Well, as far as I understand, there's no easy way to tell. I could open the box and check out the chips inside, but even if it has 64k ram chips, that doesn't mean it's a fully-functioning 64k memory module. I also can't access all 64k from BASIC, so can't do anything there. The only way I'm aware of to check is to write an assembly program to do so, since assembly is the only the only way to access all 64k. But at present, I know almost nothing about 6809 assembly and even less about the intricacies of the CoCo architecture. So I guess that's a future project...
Still it just seems like such an odd architectural limitation of the CoCo platform. My understanding is that the CoCo 1 & 2 are basically the same, so I'm assuming the same limitation applies to both. I don't know about the CoCo 3, but I'm unlikely to ever get one so my interest is more academic than practical for that machine.
No comments:
Post a Comment