Hi I've just made a programmable interrupt controller that works in mode 0 and possibly in mode 2, it based on the atmel 28c64, haven't couple it up to the computer yet as its on a bread board, but the idea is that you use the eprom as decoder, which a i wrote with a python script.
At the moment I am intending to only to use 8 interrupts but if the script was altered to as much as 16 on a 64k eprom as I am using the address line with an inverter on each line as an interrupt vector with with a 10k pullup resistor on each.
by encoding 255 distinct values interrupt 1 is always process first even if 2,3..8 are active and like wise the rest of the interrupts work the same ie 1,2,3..8.
by encoding the interrupt for example in mode 0 the correct value is placed on data bus so there can be processed although I am not sure if the over other remain interrupts will remain active as I have not hooked it up to the z80, though I will wirewrap a pcb board together soon and will post the python script has soon as i have comment the section user need to alter, so they can test it for then self