Quote:
Originally Posted by ross
This would collapse the discussion from the beginning.
Copper using Blitter by definition would take up most of the line DMA cycles making a stable raster bar virtually impossible
|
Nah. Your solution is better than you realyze.
After the first interrupt turn off copper and blitter DMA, "pausing" them both. Then do the STOP.. After second interrupt change background color and then "unpause" copper and blitter by turning their DMA back on. They'll continue from where they left off.
Besides, if the copper is running the blitter it's unlikely they're both stealing cycles at the same time. The CPU should have enough cycles available to handle the first int provided bp DMA isn't grabbing too much.
Here's what the bus looks like for an interrupt (from yacht.txt):
n nn ns ni n- n nS ns nV nv np np
Each symbol represents two CPU cycles. The CPU needs the bus for seven DMA cycles: three for the stack, two for the vector address, and two more to fetch the first instruction in the handler. Not too bad. Worst case move needs four more to turn off DMA. Just 11 memory accesses from int to DMA pause.