Не такой уж и редкий. За спек не скажу - не копенгаген, а вообще типа "правило хорошего тона".
Да и вообще, прямой запрет прерывания много где нужен, по хорошему, когда требуется "атомарность" процедуры.
Да тот же мапер перещелкнуть и т.п.
Вид для печати
ЕМНИП, в толмуде первого тома комплекта чипов серии Зю80, выходит, что это как-то связано с режимами отличными от IM0, когда в момент операции с режимом прерывания, возможен его "повторный захват" (мера, схожая с таблицей вектора, для машин с "нестабильной" шиной).
null_device, однако в ПЗУ этого нет Di отсутсвует
и в поздних играх, Joffa например, тоже экономит байт от DI
или даже сразу делает EI
Только в этом случае)
Но вряд ли в тех примерах, на которые ссылается автор, такой вызов использовался.
- - - Добавлено - - -
Мы говорим именно 'за спек'.
На спектруме этого делать не нужно. Прерывания запрещаются автоматически.
Возможно, люди, которые так делают, просто не читали подробно документацию, вот и перестраховываются)
Этого делать не нужно на любом компе на Z80, не только на спеке. Интересно, существуют ли процессоры, в которых нет автоматического запрещения прерываний при подтверждении прерывания и переходе к обработчику?
Во многих микроконтроллерах обработчик может быть прерван другим прерыванием с более высоким приоритетом. Но прерывания от того же источника обычно все-таки запрещаются. А еще бывает NMI, Даже на Z80. Правда, в современных системах NMI от внешнего устройства (т.е. прерывание, а не исключение) обычно не используются, т.к. вложенность обработчика может привести к сбою, а пользы от "истинного" NMI не просматривается. С одной стороны, хорошо иметь такое прерывание, которое сработает в случае любого сбоя программы; с другой стороны, обработчик такого прерывания ничего не сможет сделать для восстановления. С тем же успехом можно просто осуществить сброс. Ну и еще есть вариант использования NMI для отладки и/или сохранения краш-дампа. Сброс - он всё-таки затирает состояние процессора, а при NMI состояние сохраняется.