[Coco] CoCo 32k rom architecture

Barry Nelson barry.nelson at amobiledevice.com
Wed Jan 27 13:59:44 EST 2016


Repeated attempts to put the Arkanoid code into a rom and have it run on an actual CoCo 3 have failed, although the image runs fine on an emulator, I am wondering if the Akanoid cartridge might tie SELNB to the CTS line? Otherwise maybe the internal rom might still be active?

> RETRO Innovations go4retro at go4retro.com 
> Tue Jan 26 22:07:17 EST 2016
> 
> On 1/26/2016 5:36 PM, Robert Gault wrote:
> > OK, after writing an ml routine to print data to the screen I can 
> > report what a Coco3 sees in the external ROM with 16k / 16k internal 
> > external and 32k external.
> >
> > The most reasonable way to present this is that the 32k ROM always 
> > exists from $8000-$FF00 and when the Coco3 is in standard 16k internal 
> > 16k external mode, it sees the second half of the external ROM.
> > So my program when using 16k/16k saw the Extended Basic ROM at $8000 
> > and the second half of the cart ROM at $C000. When the program set 32k 
> > external, then it saw the first half of the external ROM at $8000 and 
> > the same data (second half ROM) at $C000.
> > Can I prove that a ROM reader would see the same thing? No I can't, 
> > but I expect it would. It makes sense because it is the only way a 32k 
> > ROM would not get lost when switching from 16k/16k to 32k external.
> >
> > And then how does this relate to .ccc files? These files do NOT 
> > present the ROM as seen by a Coco3. The halves are reversed with the 
> > second half preceding the first!
> > This makes no sense to me but someone must have decided that one of 
> > the emulators JVC, MESS, or VCC could handle a 32k ROM cart more 
> > easily in this fashion. That format then became the standard for .ccc 
> > files regardless if it was reasonable.
> >
> > Robert
> >
> >
> I assume the ccc file is this way because then the code could always 
> assume the first byte goes at $c000 in the ROM virtual memory space of 
> the emulator and then if the counter rolled over 16kB, then it would 
> stuff it into another array that represents $8000
> 
> Strange ccc format, though
> 
> Jim



More information about the Coco mailing list