Сообщение от
Error404
Конкретно для Спека, где надо по первому такту проца сгерить прерывание и уже через 2 такта Z80 выдать результат из таблицы состояний, надо к схеме контроллера добавить всего лишь один 8-битный регистр с Z-состоянием (ИР22/23/33): контроллер по прерыванию в нее пишет как успеет, а Спек из него читает когда хочет, управляя Z-состоянием (Z80.RD->ИР23.OE).
При такой реализации не важно сразу ты отработаешь прерывание от ZX и запишешь в регистр, или по приоритетам спустя несколько милисекунд, или отвлекаясь на обработку USB. Ибо регистр хранит данные уже актуальные (если успели ответить) или предыдущего "запроса" (если моментально ответить не успели). Т.е. опять все тот же некритичный (для человеческого восприятия) случай когда со стороны ZX-хоста выглядит что кнопка нажата или отпущена на пару милисекунд позже чем есть.