Z80
Jump to navigation
Jump to search

The Z80 is a 8-bit little-endian CPU designed by Zilog.
It is used in NeoGeo systems as a sub-CPU to handle sound and music playback. It runs at 4MHz and only has access to the YM2610, the M1 ROM (or Z80 files), and its own RAM. It communicates with the 68k CPU via a single-byte channel.
Because it doesn't share a RAM area with the 68k CPU like on the Sega Genesis, it can't be used efficiently to offload game computation tasks from the main CPU.
Also see:

Interrupts
- IRQs (address $38) are triggered by the YM2610 timers, if enabled.
- An NMI (address $66) is triggered when the 68k sends a command byte, if enabled (see Z80 port map).
Memory map

Cartridge systems
| Start | End | Size | Description |
| $0000 | $7FFF | 32KiB | Static main code bank (start of the M1 ROM) |
| $8000 | $BFFF | 16KiB | Bankswitching window 3 |
| $C000 | $DFFF | 8KiB | Bankswitching window 2 |
| $E000 | $EFFF | 4KiB | Bankswitching window 1 |
| $F000 | $F7FF | 2KiB | Bankswitching window 0 |
| $F800 | $FFFF | 2KiB | Work RAM |
CD systems
CD systems only have 64KiB of RAM dedicated to the Z80. There's no bankswitching.
It seems that NEO-SUD allows loading Z80 files accross the whole range, and locks $0000~$F7FF as read-only to simulate ROM during execution.
Pinout
Datasheet
Z8400 datasheet: [[1]]