Line 25:
Line 25:
| 0x8100-0x93FF{{check}}
| 0x8100-0x93FF{{check}}
| 0x1300
| 0x1300
−
| DC registers 0x4100+
+
| DC write registers 0x4100+
|-
|-
| 0x9400-0x940F
| 0x9400-0x940F
Line 33:
Line 33:
| 0x9600-0xBFFF{{check}}
| 0x9600-0xBFFF{{check}}
| 0x2A00
| 0x2A00
−
| DC registers 0x5600+
+
| DC write registers 0x5600+
|-
|-
| 0xFFC0-0xFFFF
| 0xFFC0-0xFFFF
Line 39:
Line 39:
| Vectors
| Vectors
|}
|}
+
+
== DC interface ==
+
{{reglist|DC Interface Registers}}
+
{{rld|0x9402|8|Write Control|DMCU waits for the lowest bit to be set before performing any writes}}
+
{{rld|0x9404|32|Write Data|Little endian value which can be used to perform a 32-bit write}}
+
{{rld|0x9408|16|Read Address|Address divided by 4 to read from the DC}}
+
{{rld|0x940A|8|Read Control|DMCU waits for the lowest bit to be set before performing any reads}}
+
{{rld|0x940C|32|Read Data|Little endian value which contains the data from a 32-bit read}}
+
|}
+
+
To write to the DC, wait for the lowest '''Write Control''' bit to be set, then write a 8 bit value to any of the '''DC write registers'''. Writing 0xFF to a register triggers a 32-bit write using the '''Write Data''' register.
+
+
To read from the DC, write an address to '''Read Address''' and wait for the lowest '''Read Control''' bit to be set. '''Read Data''' now contains the data read.