[Coco] Coco 3 Memory Map Questions

Darren A mechacoco at gmail.com
Tue Feb 9 16:22:32 EST 2016


On Tue, Feb 9, 2016 at 1:49 PM, Arthur Flexser wrote:

> I'm not sure I understand the testing that led you to arrive at this
> conclusion.
>
> I'm a bit hazy on the order of the 2 halves of the 32K internal ROM.  Am I
> correct that the half with Extended Basic and Color Basic is the lower
> 16K?  If so, is it then the case that the 32 bytes in the ROM from $FFE0 to
> $FFFF (upper 16K) are duplicated at $BFE0-BFFF (lower 16K), the ending
> bytes of Color Basic?  If these two 32-byte ranges are exact duplicates of
> one another, how can you tell which is determining the hardware vectors,
> without burning a replacement ROM that modifies some bytes at one address
> or the other?  Or did you in fact do that?  (In your last sentence, you say
> this "could be done" by someone, which seems to imply that you did not do
> so.)
>


The entire 32 bytes are NOT duplicated in both locations of the ROM. Only
the last 14 bytes which correspond to the 6809 vectors have the same values.

The 6309 utilizes one additional vector at FFF0-FFF1 for the Illegal
Instruction exception.  This value is $0000 at the end of the ROM ($FFF0),
but is $A681 in the lower location (at $BFF0).  When an illegal instruction
is executed on a CoCo3 with a 6309, execution transfers to $0000, so that
vector at least is coming from the upper-most location. It's pretty
unlikely that only the 14 bytes from $FFF2-$FFFF would be mapped
differently, especially since there isn't any reason to do so.

- Darren


More information about the Coco mailing list