From: Andrew Collier <[EMAIL PROTECTED]>
> It seems my code was reading the status register, and jumping for LINEint
> correctly, but performing the wrong test for FRAMEints and jumping to the
> FRAMEint handler iff the corresponding status register bit was high.
>
> My guess is that on a real Sam, this would work because (after deciding
> that FRAME interrupts weren't interesting after all) the interrupt would
> still be active and the code would immediately jump back to 56, and do it
> all again, until eventually there comes a point when the FRAMEint bit goes
> high again and the interrupt gets handled properly.
>
> What we also found was that after a line interrupt had been properly
> handled, in SimCoupe the frame interrupt routine was being called. So
> presumably the interrupt must still have been active but the LINE bit of
> the status register had gone high.

[rest snipped]

Err... we fixed that bug a few years back :)

It was one of the first weird cases that we handled. Darren thingybob's
Mosaic game or something like that had it.

So Allan had to add in interrupt length timing code. And the code for that
(from what I've seen) is absolutely correct...

Soooooo.... dunno what's happening here.

Simon (NSFMSFT)

Reply via email to