Difference between revisions of "Z80 port map"

From NeoGeo Development Wiki
Jump to: navigation, search
m
m
Line 7: Line 7:
 
|Read sound code from 68k
 
|Read sound code from 68k
 
|Clear sound code buffer
 
|Clear sound code buffer
|-
 
|$08
 
|
 
|NMI enable
 
 
|-
 
|-
 
|$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
|NMI disable
 
 
|}
 
|}
  

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)