Z80

From NeoGeo Development Wiki
Jump to navigation Jump to search
Z80 in a surface mount package, as found on some MVS and CD boards.

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:

Z80 in DIP package, as found on AES boards.

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

Visualization of the Z80's memory map (proportional areas).

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]]