Normally, DMA accesses continuous areas, but it is possible to access addresses at regular intervals by setting an address addition value. This function is effective when you want to change some of the parameters that are continuously arranged like the command table of VDP1. As an example, assume that there are 32 blocks with 20H bytes from address 5C00000H as one table. Consider changing the parameter of the 8th byte of each block at once. The change parameter is assumed to be 40H bytes from the address 6000000H, and when transferring with level 0 DMA, set according to the following procedure and execute the transfer process.
(1) Read address 6000000H is read and written to address register D0R.
(2) Write the write address 5C00008H to the write address register D0W.
(3) Write the transfer byte count 40H to the transfer byte count register D0C.
(4) Write address addition value 105H to address addition value register D0AD. Of these, the lower 3 bits (5 = 101B) are
Represents updating dresses by 20H.
(5) Set the DMA mode to 0, set the address update bit and DMA activation factor as necessary, and set the mode / address update / DMA
Write to activation factor register D0MD. For example, address update is set to the hold mode and V-blank-IN is started.
場合 Write 0 to D0MD when it is a movement factor.