-
Notifications
You must be signed in to change notification settings - Fork 8
DMA Copy Engine
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.