plays well with others

The Z80's compatibility made it a shoe-in for system upgrades.

Instruction set: runs all 8080 software,
but adds many instructions , thus Z80 only CP/M programs.

Interrupt mode 0, 1, 2

mode 0: Intel 8080 compatibility:
The interrupting device places an instruction on the data bus during the interrupt-acknowledge bus phase.
RST instructions are ideal for this:
they're one byte and allow for pseudo-vectored interrupts.
This way a Z80 CPU board in non-Z80 systems such as S100 interfaces directly to Intel legacy peripherals.

mode 1: as simple as can be:
jump to subroutine at address 38h.
Ideal for simple embedded systems.
Don't forget to use NMI (non maskable interrupt) too!
By the way, interrupt mode 1 is the same as mode 0 given a reply of 0xFF: restart 0038h

mode 2: Zilog native mode.
The device responds to the
interrupt-acknowledge bus phase
with a 7 bit interrupt vector.

The I (interrupt) register forms the upper 8 bits,
the vector reply forms the lower 8 bits
for a JSR to the A jump to subroutine is taken to

This is where Zilog's Z80 native peripherals really shine.
They self arbitrate their interrupt priority using a daisy-chain.
(no interrupt controller needed like the PC,
thus only 8 interrupts on the PC-XT, 15 on the PC-AT)