[Coco] [!! SPAM] Re: 6809 / General CPU question
William Astle
lost at l-w.ca
Thu Feb 24 14:36:20 EST 2011
On 2011-02-24 11:24, jdaggett at gate.net wrote:
> In the case of the COCO3, the vector addresses can point to RAM location at $FFE0 to $FFEF if the GIME is setup for ram at this address. In this case the vectors can be altered by a user program. Otherwise these are in ROM if I remember correctly. This allows a program to have its own vector fetch region. In the case of the COCO1/2 this is always ROM if my memory serves me correctly.
Actually, there's nothing that allows revectoring to FFEx (at least not
in a standard COCO3). I think you might be thinking of the secondary
vector table at the top of FExx. In the interest of clarity for those
following along:
The ROM vectors in the COCO3 point to a secondary vector table at the
top of FExx which is set up using LBRAs (why they didn't use JMP is
beyond me - JMP is a cycle faster) to bounce to the 0100 interrupt
vectors used by DECB.
FExx is always RAM but it is usually configured as "constant" so that no
matter what the MMU is doing, the same memory appears at FExx which is
why that location was chosen for the secondary vector table.
OS9 and other software that doesn't use DECB can replace the LBRAs in
the secondary vector table to direct interrupts to their own code.
However, that secondary vector table cannot be used to intercept the
RESET signal.
More information about the Coco
mailing list