The Zilog Z80 is an 8-bit microprocessor sold from July 1976 onwards. The Sinclair Spectrum had a Z80-A clocked at 3.5Mhz; not exactly fast by today’s standards but fairly fast for the day.

Z80 PROCESSOR PIN ASSIGNMENTS

  • A0-15: Address lines
  • D0-D7: Data lines
  • CLK: Clock (rising edge trigger)
  • INT: Interrupt request
  • NMI: Non-maskable interrupt request
  • HALT (active low)
  • MREQ: Memory request (active low)
  • IORQ: IO request (active low)
  • REFSH: Refresh timing (active low)
  • MI: Maskable interrupt request (active low)
  • BUSRQ: Bus request
  • BUSAK: Bus acknowledgement (active low)
  • WR: Write (active low)
  • RD: Read (active low)
  • GND/+5V: Power

 

Z80 Operation

The chip has 16 address lines (A0-15) that enable the chip to address 64K of memory (a 16 bit word can represent a number between &0000 and &FFFF or from 0 to 65535). The 8 data lines (D0-D7) enable the chip to read or write 8 bits of data at a time

The Z80 is externally clocked; a crystal on the Spectrum motherboard provides a square wave at 14Mhz (+5V amplitude). This is the master clock for the ULA and is divided down by 4 (3.5Mhz) and connected to the CLK line of the CPU. The Z80 will perform a single machine cycle when it detects the rising edge of this wave.

The Z80 starts as soon as it’s got power (GND / +5V) and it is reset (RESET line is held low momentarily). It starts executing code at address &0000 (A0-A15 are all low). This is the reason why the Spectrum ROM starts at &0000.

Opcodes

A full set of opcodes can be found here.