Friday, May 8, 2015

The weirdness of 64k in the CoCo

Although I've been playing around with vintage computers for a while now, I'm very much new to both the Tandy Color Computer and the 6809 platform.  Now every system has its oddities, but I have to admit that the way the CoCo handles 64k is the oddest thing I've seen with any vintage computer.

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.

But as the CoCo's production run wore on and ram chips fell in price, they started putting fully functioning 64k chips in, but still only advertised them as 32k machines and still only made one bank immediately addressable.  So even if you have a 64k CoCo, it will actually appear at first glance that you have a 32k machine.  For example, the screen shot to the right is from XRoar, but it's setup as a 64k CoCo, not 32K as the 24871 free ram might suggest.

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