New value here
Vinit 00000011011x000...............xx
Vstart 00000011011x001...............xx
Vend 00000011011x010...............xx
Cinit 00000011011x011...............xx
SstartN 00000011011x100...............xx
SendN 00000011011x101...............xx
Sptr 00000011011x110xxxxxxxxxxxxxxxxx
Vptr
Cptr
Value in bits 2-16 is physical address divided by 16 => All values are in the lower 0.5 Mb of physical memory.
Video
Circular buffer from Vstart to Vend. Vptr is set to Vinit just before new display frame begins.
Cursor
Cptr is initialised to Cinit during video flyback, and data is read from here when cursor DMA is requested.
Sound
SstartN and SendN is start and end of the next sound buffer. When the VIDC has 'used up' the current buffer:
If next is valid (1st SendN and then SstartN set), it sets current = next, marks next as 'invalid' and triggers the sound interrupt.
Else it will go back to start of current buffer.
|
|
|