DMA - sjsoftware/centurion-cpu6 GitHub Wiki
DMA Instructions
There are ten DMA instructions.
| Selector | Opcode | Description |
|---|---|---|
| 0 | DMA SAD | Store word register to DMA Address register |
| 1 | DMA RAD | Read word register from DMA Address register |
| 2 | DMA SCT | Store word register to DMA Count register |
| 3 | DMA RCT | Read word register from DMA Count register |
| 4 | DMA SDV | Set DMA device. Device is constant in register nibble |
| 5 | DMA RDV | Set DMA device. Device is read from register in register nibble. Will always use the low byte even if a high byte register is provided. Note that the assembler will only allow an even register (or register pair) as valid syntax. (note CPU5 this is Read Device) |
| 6 | DMA EAB | Enable DMA |
| 7 | DMA DAB | Disable DMA |
| 8 | DMA SMN | DMA Store Map Number. Load low three bits of Internal Status Register from register. Will always use the low byte even if a high byte register is provided. Note that the assembler will only allow an even register (or register pair) as valid syntax. CPU6 only |
| 9 | DMA RMN | DMA Read Map Number. Store Internal Status Register to register. This instruction is buggy and will only store some of the bits depending on the register provided (the status register is masked on the inverse of the register number). Best results will be with AH. Will always use the low byte even if a high byte register is provided. Note that the assembler will only allow an even register (or register pair) as valid syntax. CPU6 only. |