Z80 port map
Number | Read | Write |
$00 | Read sound code from 68k | Clear sound code buffer |
$08 | NMI enable | |
$04~$07 | YM2610 I/O | |
$08 | Set $F000~$F7FF bank | |
$09 | Set $E000~$EFFF bank | |
$0A | Set $C000~$DFFF bank | |
$0B | Set $8000~$BFFF bank | |
$0C | Reply to 68k | |
$18 | NMI disable |
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)