3 ms·
Great article! It actually makes an interesting point about the Z80 interrupt system: the Z80 does have an extremely powerful interrupt mode IM2 which supports
by flohofwoe 2y ago
Great article! It actually makes an interesting point about the Z80 interrupt system: the Z80 does have an extremely powerful interrupt mode IM2 which supports an interrupt vector table with up to 128 entry points anywhere in memory and (theoretically) any number of prioritized interrupt sources, but this capability was not properly supported in western home computers (at least as far as I'm aware from the Speccy, CPC and MSX), in East German home computers (Z1013, Z9001, KC85/2..4) this mode was fully supported - which is interesting because those designs were much inferior to western home computers (at least when it comes to features required for video games).
The reason is that IM2 requires interrupt sources to implement a fairly complex 'daisy chain protocol'. Support chips are supposed to place the low byte of a 16-bit interrupt vector address on the data bus when the Z80 starts handling an interrupt, the Z80 will read that byte, and combine it with the special I register as high byte to build a 16-bit address which points into the interrupt vector table. Next the Z80 will read the 16-bit value from that address - which is the entry point of the interrupt service routine - and jump there.
Interrupt priorities are hardwired via the above mentioned 'daisy chain', and this prioritization is what makes the interrupt support logic complicated because pending interrupt requests should not get lost while a higher priority interrupt is serviced (it's all described here in detail: http://www.z80.info/1653.htm http://www.z80.info/1653.htm).
The standard Z80 family chips (CTC, PIO, SIO) all supported this complex protocol, but not any of the custom chips in western home computers. East German home computers used TTL logic and Z80 family chips instead of custom chips and thus could make full use of the Z80 interrupt capabilties, while western designs typically didn't (I would have taken sprites and hardware-scrolling any day over powerful IM2 interrupts though).