Scanline DMA support with optional callback

Here's a reference for how it currently works (at the time of Dave posting)