Actions

SCHG

Difference between revisions of "VDP Documentation/General/Direct Memory Access"

From Sonic Retro

(Initial DMA page.)
 
(Zero-length DMA quirk.)
Line 2: Line 2:
 
{{SCHG VDP}}
 
{{SCHG VDP}}
 
Direct Memory Access, or DMA, allows the VDP to copy data from the main 68000 memory to VRAM directly without interference from the CPU. It also provides VRAM-to-VRAM copy and VRAM fill operations that can take place while the CPU is performing other tasks.
 
Direct Memory Access, or DMA, allows the VDP to copy data from the main 68000 memory to VRAM directly without interference from the CPU. It also provides VRAM-to-VRAM copy and VRAM fill operations that can take place while the CPU is performing other tasks.
 +
 +
=DMA Quirks=
 +
A well-known quirk with DMA memory-to-VRAM copy occurs when the source length is set to 0. The DMA functionality in the VDP decrements the source length before checking if it's hit zero, so setting the source length to 0 results in a transfer of 65,536 words instead of a null transfer.
 +
 +
Memory-to-CRAM and Memory-to-VSRAM copies are not affected, since the VDP automatically stops the transfer if the destination address counter reaches 0x80 or 0x50, respectively.

Revision as of 18:28, 13 September 2010

Template:SCHG VDP Direct Memory Access, or DMA, allows the VDP to copy data from the main 68000 memory to VRAM directly without interference from the CPU. It also provides VRAM-to-VRAM copy and VRAM fill operations that can take place while the CPU is performing other tasks.

DMA Quirks

A well-known quirk with DMA memory-to-VRAM copy occurs when the source length is set to 0. The DMA functionality in the VDP decrements the source length before checking if it's hit zero, so setting the source length to 0 results in a transfer of 65,536 words instead of a null transfer.

Memory-to-CRAM and Memory-to-VSRAM copies are not affected, since the VDP automatically stops the transfer if the destination address counter reaches 0x80 or 0x50, respectively.