Цитата Сообщение от Uzix Посмотреть сообщение
Неплохой вариант, но если прерывание программно отключено, то импульс INT растянется вплоть до EI. Если EI произошёл в середине кадра, то обработчик прерывания будет вызван дважды за кадр.
Этого можно избежать, если ограничить максимальную длительность INT в случае отсутствия подтверждения (напр. в "Орель БК-08" это было 28 тактов, что гарантирует срабатывание разрешенного прерывания, т.к. самая медленная команда Z80 исполняется за 23 такта).

Но я бы так не делал, а позволил бы импульсу прерывания растянуться, если прерывания запрещены. Не обязательно до следующего кадра, но все же. На каких-нибудь 200-1000 тактов хотя бы. Ведь часто в программах бывает такое, что прерывания запрещаются на короткое время (для обеспечения синхронной передачи данных между фоновой программой и процедурой обработки прерывания). И обидно, если прерывания были запрещены на каких-нибудь 40 тактов, а за это время как раз пришел импульс, и мы его "проспали".