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.