[Coco] 32kB carts on Coco 3

Darren A mechacoco at gmail.com
Tue Dec 29 18:42:41 EST 2015


On Tue, Dec 29, 2015 at 3:17 PM, RETRO Innovations wrote:

> Does anyone have a link to how it works?
>
> I read that it is the work of the GIME, and I assume it's the bank
> registers for task 0 and 1 (1 and 2?) that make it work, but I'm trying to
> understand what shows up on the cart port...
>
> Specifically, how does the upper 16kB of a 32kB cart get accessed from the
> cart port?  Is the 2nd 16kB mapped to $8000-$bfff?  If not, then where?
>
> Jim



The two low-order bits of the GIME's INIT0 control register (FF90)
determine the ROM mapping mode:

0x = 16K internal (8000-BFFF) and 16K cartridge (C000-FDFF)
10 = 32K internal (8000-FDFF)
11 = 32K cartridge (8000-FDFF)

It simply determines which address range causes the CTS* signal to be
asserted (C000-FDFF, never, 8000-FDFF). You also have to be in Map Type 0
for any ROM access to work, be it internal or cartridge. The exception is
FFE0-FFFF which is always mapped to the internal ROM regardless of INIT0 or
the Map Type, but you can assert SLENB* to override that.

- Darren


More information about the Coco mailing list