make dma clock an object, new type, new globals, refactor both production and test code. passed.