# MI_HBlankDmaCopy*

## Syntax

  `#include <nitro/mi.h>`
  `void MI_HBlankDmaCopy32( u32 dmaNo, const void* src, void* dest, u32 size );`
  `void MI_HBlankDmaCopy16( u32 dmaNo, const void* src, void* dest, u32 size );`
  `void MI_HBlankDmaCopy32If( u32 dmaNo, const void* src, void* dest, u32 size );`
  `void MI_HBlankDmaCopy16If( u32 dmaNo, const void* src, void* dest, u32 size );`

## Arguments

dmaNo | DMA channel used.
src | The transfer source address.
dest | The transfer destination address.
size | Transfer size.

## Return Values

None.

## Description

This function uses DMA to copy a H-Blank. When a H-Blank starts, DMA starts.

When using this mode, set the access right to main memory to `ARM9` priority. Otherwise, the screen may not display properly because of a delay as ARM7 accesses main memory and starts up DMA memory. The access right priority can be specified with `MI_SetMainMemoryPriority()`.

The functions `MI_HBlankDmaCopy32If` and `MI_HBlankDmaCopy16If` generate DMA interrupts when DMA terminates.

## Internal Operation

Uses the following IO registers: DMAn source register (0x40000B0 + 12n), DMAn destination register (0x40000B4 + 12n), and DMAn control register (0x40000B8 + 12n). (n is the DMA channel used.))

## See Also

`MI_DmaCopy*
` `MI_SetMainMemoryPriority
`

## Revision History

2004/08/26 Added description about the setting of the ARM9 priority to access the main memory when using DMA memory.
2003/12/01 Initial version.

CONFIDENTIAL