Да, можно и без контроллера, уже испытал на своём аппарате. По количеству диодов не считал, но по тройному элементу ИЛИ на прерывание нужно. Легенда такова:
- выделяется в ПЗУ некая область памяти для векторов переходов. Старший байт записывается жёстко (в моём случае) и объявляется процессору при инициализации, а младшие делаются диодными матрицами;
- при наступлении прерывания на элемент ИЛИ заводятся сигналы /М1, /IORQ и сигнал прерывания с вызывающего устройства. На моей схеме ( http://rw6hrm.qrz.ru/pics/z80new.gif ) это (без дополнительного сигнала прерывания) сделано на элементе D8.1. Он и выдаёт диодами младший адрес вектора прерывания на шину данных. В моём случае, для испытания, дополнительный сигнал прерывания брался с вывода 8 D18.2, а вместо двухвходовой ЛЛ1 использовалась ЛЕ4 с дополнительным инвертором на выходе (почему только для испытания думаю понятно, поскольку если аналогичное прерывание будет выдаваться не клавиатурой, а ВВ51, то оно не сработает, нужен ещё один блок ИЛИ с диодами).
Либо в качестве кучи диодов ставим ПЗУ. Но в обоих случаях придётся считаться с тем, что все прерывания будут равноправными, что иногда может привести к коллапсу системы. Поэтому делать несколько прерываний без отдельного "умного" контроллера, раскидывающего прерывания по ранжиру, можно только для очень простых компиков...
Вот так, немного взбалмошно.





Ответить с цитированием