[Coco] 6809 / General CPU question
Mike Rowen
mike at bcmr3.net
Sat Feb 19 22:46:01 EST 2011
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
>
More information about the Coco
mailing list