Author: jason (dnvrdslgw13poold17.dnvr.uswest.net)
Date: 09-29-2002 07:42
Timer B and HBL interupt code looks very similar. Both end in RTE (of course). Timer B code, though, also must clear the MFP in service bit on exit.
Do you wish to do one interupt at the top of the screen (scanline 0) and then one interupt at scanline 100? This isn't too hard to do. The MFP can even count the 100 lines so that your 2nd interupt occurs just where you want it to.
The interupt occurs at the left screen edge, it is triggered by the display enable signal from the glue, I believe. If you need it to occur at a rock solid point then you can use sync-lock tricks (the same used for Left/Right overscan code). These tricks involve using the video address register at $ffff8209 to introduce a delay into the code (jmp into nops or a LSL instruction) in order to lock the interupt code into sync with the video shifter. They are expensive in terms of processor time. Try to avoid them. Are you using the blitter? It can really mess up interupt timing, as it takes over the bus and leaves the poor processor frozen!
An ST scan line lasts about 512 cycles I believe. Even if your interupt code consumes 2 whole scan lines of processor time you should have about 99% left for other tasks.
I'll try to find some source code for you, but from there i'm afraid you'll have to figure out the rest.
-jason
|