[Coco] CoCo 32k rom architecture

Darren A mechacoco at gmail.com
Tue Jan 26 12:54:37 EST 2016


On Tue, Jan 26, 2016 at 9:48 AM, Barry Nelson wrote:

> Ok, but…
>
> How does the rom map both before and after those bits are set? Does it
> start out with the top 16k half of the 32k rom mapped at $C000, or the
> lower half? After the bits are toggled, the rom maps to $8000-$FDFF,
> correct? At that point does the lower half of the rom map to $8000-$BFFF
> and the top half maps to $COOO-$FDFF? How does this all line up with the
> format of a .ccc file? Does the file have the lower address half first or
> does it start with the part of the rom that maps at $C000? Does the
> cartridge need any special wiring or special hardware?
>


The only thing affected by the ROM Map bits in $FF90 is the address range
that will cause the CTS* signal to be asserted on the cartridge port (as
opposed to the internal ROM select line).  In the normal 16K Internal / 16K
External mode only $C000-FDFF assert CTS*. In the 32K External mode
$8000-FDFF will assert CTS*. Unless you have the address pins of your ROM
wired in an unusual way, $C000-FDFF should always access the upper half and
$8000-BFFF the lower half when enabled.

Although I have never tried it, it may also be possible to gain access to
the last 512 bytes using $7E00-7FFF by writing $3F into MMU slot 3. That is
based on information posted at <
http://www.cocopedia.com/wiki/index.php/MMU_RAMROM_Mode>.  You may actually
be able to have the entire 32K ROM at $0000-7FFF and use $8000-FEFF for
accessing RAM.


- Darren


More information about the Coco mailing list