An apparatus comprising a DMA controller and a memory, the DMA controller having registers including a list address register, the memory including list entries arranged to include an address field, a length field and a status field, the list address register adapted to store a memory address pointing to one of the list entries, wherein for at least some of the values of the status field, the address field indicates a location of an associated buffer in the memory, wherein the DMA controller is adapted to store a block of data from a peripheral device into more than one buffer such that, as long as no terminate signal is received, each buffer is filled with data, but when a terminate signal is received from the peripheral device indicating the end of a block, only the remaining data for that block is stored in the buffer, and if more data is being sent a new buffer is used.