Nice tutorial. But doesn't self revive need to be DMAed? Or atleast just seems to work better as DMA.