[Coco] 6309 Interrupt Timing

Darren A mechacoco at gmail.com
Sun Jun 20 13:02:22 EDT 2010


I just encountered another difference between a 6309 running in native
mode versus emulation mode which I haven't seen mentioned before.  It
has to do with interrupt timing.

The 6809 imposes a one-cycle delay from the latching of an interrupt
(NMI, IRQ or FIRQ) before it will respond.  This means when an
interrupt is latched during the last cycle of an instruction, the
service routine will not be invoked until after the *following*
instruction has completed.

The 6309 behaves the same way when running in emulation mode but not
in native mode.  No delay is imposed in native mode.  This makes sense
since many instructions will execute in one cycle under native mode.
If the delay were to occur, you could not use NMI to implement a
hardware assisted single-stepper.

I would imagine that HALT is similarly affected, although I haven't
actually tested that.

Darren



More information about the Coco mailing list