Skip to content
This repository has been archived by the owner on Jun 1, 2022. It is now read-only.

DMA Copy Engine

James Coon edited this page Mar 21, 2017 · 1 revision

A fast DMA Copy Engine that can copy memory around with Unpacking and Packing capabilities.

Address Description
$E040 Status/Command
$E041 Address (Source)
$E043 Address (Target)
$E045 Length

Status/Command:
Read: 0 if last command was carried out, otherwise 255
Write: A bitmask of what operation to perform:
[00000001] Target packing: 0=Packed, 1=Unpacked
[00000010] Source packing: 0=Packed, 1=Unpacked
[00000100] Direction: 0=Forwards, 1=Backwards

Packed addresses will read from the same address in memory while Unpacked addresses will advance to the next address in memory.
Forward copies will copy from Address to Address+Length-1.
Backward copies will copy from Address+Length-1 to Address.

Source Address, Target Address, and Length are all unsigned 16bit little endian values describing what portion of memory a command will operate on.

While the DMA Copy Engine is processing memory, the CPU will be inactive and available cycles per tick will be consumed.

Clone this wiki locally