[Coco] 6809 / General CPU question
Bob Devries
devries.bob at gmail.com
Sat Feb 19 23:15:16 EST 2011
Other parts of the hardware implementation will ensure that when the vector
at $FFFe and $FFFF are fetched, they will contain a viable 16 bit address.
Some systems do this by "ghosting" the internal ROM to that address.
In the Coco, if you examine the address (in the Color basic ROM) at $BFFE
and $BFFF, you will find the bytes $A0 and $27, forming the address of the
cold/warm start routine in the Color Basic ROM.
As an aside, all the CPU vectors reside at the top of that ROM, $BFF2
through $BFFF.
Regards, Bob Devries
Dalby, QLD, Australia
----- Original Message -----
From: "Mike Rowen" <mike at bcmr3.net>
To: "CoCoList for Color Computer Enthusiasts" <coco at maltedmedia.com>
Sent: Sunday, February 20, 2011 1:46 PM
Subject: Re: [Coco] 6809 / General CPU question
> Well, so far I think that everyone is in agreement that when the 6809 is
> powered on, it loads the address stored at FFFE & FFFF into the program
> counter, thus pointing it to the first instruction to be executed. While
> the
> CoCo is one model to reference, it still leaves the original question. How
> does a memory address get into these locations, CoCo or otherwise? All
> 6809
> based systems that I've looked up, appear to load the initial PC register
> with these bytes at these locations. So it appears that is part of the
> internal 6809 architecture. While I find lots of references to the FFFE &
> FFFF addresses, still nothing to indicate how these addresses are
> populated
> with the bytes of the first address. Since every machine does not have 64k
> installed, it seems to me that these addresses are reserved and masked in
> hardware somehow. If someone were designing a 6809 computer, they would
> have
> to know how this works and how to do it. :)
>
> -Mike
>
>
> On Sat, Feb 19, 2011 at 10:24 PM, Darren A <mechacoco at gmail.com> wrote:
>
>> On 2/19/11, Stephen H. Fischer wrote:
>> >
>> > The CoCo 2 manual says "if the CPU reads FFFF it will actually read the
>> > contents of BFFF".
>> >
>> > If the ROM is switched out will BFFF come from RAM?
>> >
>> ---
>>
>> Yes and no. If the SAM is put in ALL RAM mode then reading directly
>> from BFFE and BFFF will read the RAM (assuming the CoCo has 64K RAM).
>> But when the CPU reads from FFFE and FFFF, the SAM will always output
>> a device code to select the ROM. So the RESET vector (and all
>> Interrupt vectors) are always read from ROM even when the CoCo is in
>> ALL RAM mode.
>>
>> A cartridge can override the internal Reset and Interrupt vectors by
>> decoding those addresses and asserting SLENB* to prevent selection of
>> the internal ROM.
>>
>> Darren
>>
>> --
>> Coco mailing list
>> Coco at maltedmedia.com
>> http://five.pairlist.net/mailman/listinfo/coco
>>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
More information about the Coco
mailing list