図2.8に示すように、ワークRAM領域(6000000H)からロングワード単位でデータを書き込みます。
図2.8 データ書き込み例
6000000H┏━━━━━━━━━━┓ ┐ ┃ 20H ┃ │ ←(転送バイト数) ┠──────────┨ │ ┃ 5C00000H ┃ │(a)←(転送元アドレス) ┠──────────┨ │ ┃ 4000000H ┃ │ ←(転送先アドレス) 600000CH┣━━━━━━━━━━┫ ┘ ┃ 10H ┃ │ ┠──────────┨ │ ┃ 6080000H ┃ │(b) ┠──────────┨ │ ┃ 5E00000H ┃ │ 6000018H┣━━━━━━━━━━┫ ┘ ┃ 15H ┃ │ ┠──────────┨ │ ┃ 6081000H ┃ │(c) ┠──────────┨ │ ┃ DA00000H ┃ │ ←8000000H+5A00000H 6000024H┣━━━━━━━━━━┫ ┘ (終了コード) (転送先アドレス) ┃ ┃
書き出しアドレスレジスタ(D0W)にDMAパラメータソースアドレス(6000000H)を書き込みます。
アドレス加算値(101H)をアドレス加算値レジスタD0ADに書き込みます。
(CPUからアドレス25FE000CHにアドレス加算値をロードします。アドレス加算値の詳細
は本項のアドレス加算値に記載します。通常のDMAで、アドレス加算値は101Hを指定します。)
DMAモードを1、アドレス更新ビットとDMA起動要因は必要に応じて設定し、
モード・アドレス更新・DMA起動要因レジスタD0MDに書き込みます。
例えば、アドレス更新を保持モードとし、V-ブランク-INを起動要因とした場合
、D0MDには1000000Hを書き込みます。
(CPUからアドレス25FE0014Hに1000000Hをロードします。)
DMAイネーブルビットに1をセットし、(4)で設定した起動要因が発生した場合 DMAが起動され、DMA終了コードを検出するまで、(a)〜(c)のDMA転送が順に実行 されます。DMA終了コードは、ワークRAM領域にのみ存在するDMA間接モードの 終了通知コードで、このビットの"1"が検出されない限り、DMA転送は続行され ます。
6000000H┏━━━━━━━━━━┓ ┃ 20H ┃ ┠──────────┨ ┃ 5C00000H ┃ ┠──────────┨ ┃ 4000000H ┃ 600000CH┣━━━━━━━━━━┫ ┃ 10H ┃ ┠──────────┨ ┃ 6080000H ┃ ┠──────────┨ ┃ 5E00000H ┃ 6000018H┣━━━━━━━━━━┫ ┃ 15H ┃ ┠──────────┨ ┃ 6081000H ┃ ┠──────────┨ ┃ DA00000H ┃ 6000024H┣━━━━━━━━━━┫ ┐ ┃ 30H ┃ │ ┠──────────┨ │ ┃ 6090000H ┃ │(d) ┠──────────┨ │ ┃ 5000000H ┃ │ 6000030H┣━━━━━━━━━━┫ ┘ ┃ 25H ┃ │ ┠──────────┨ │ ┃ 60A0000H ┃ │(e) ┠──────────┨ │ ┃ D100000H ┃ │ ←8000000H+5100000H 600003CH┣━━━━━━━━━━┫ ┘ (終了コード) (転送先アドレス) ┃ ┃
図2.10 アドレス加算値設定によるDMA転送実行例