Here is a fully working program, written in assembly, that uses block-based DMA to transfer audio data in from the codec and out again. It's fast, but it is very basic - no error checking. However, a good basis to build up more useful programs.
P.PDF