Z80 port map: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 7: | Line 7: | ||
|Read sound code from 68k | |Read sound code from 68k | ||
|Clear sound code buffer | |Clear sound code buffer | ||
|- | |- | ||
|$04~$07 | |$04~$07 | ||
Line 17: | Line 13: | ||
|$08 | |$08 | ||
|Set [[Z80 memory map|$F000~$F7FF]] bank | |Set [[Z80 memory map|$F000~$F7FF]] bank | ||
| | |Enable NMI | ||
|- | |- | ||
|$09 | |$09 | ||
Line 36: | Line 32: | ||
|- | |- | ||
|$18 | |$18 | ||
| | |Disable NMI | ||
|} | |} | ||
Revision as of 16:54, 18 December 2013
Number | Read | Write |
$00 | Read sound code from 68k | Clear sound code buffer |
$04~$07 | YM2610 I/O | |
$08 | Set $F000~$F7FF bank | Enable NMI |
$09 | Set $E000~$EFFF bank | |
$0A | Set $C000~$DFFF bank | |
$0B | Set $8000~$BFFF bank | |
$0C | Reply to 68k | |
$18 | Disable NMI |
Bank selection is made by reading ports. SNK used an obscure feature of the Z80: when accessing ports, the entire address bus is set, not only the lower 8 bits.
The banks can then be chosen by putting the bank number in B, the port number in C and doing IN A,(C). Or by putting the bank number in A and doing IN A,(Port). (to verify)