
Сообщение от
ZXMAK
а в чём неправильность? LD A,I/R читает IFF2 (не путать с IFF1), это вроде даже в документации прописано.
Нужно это для того, чтобы в обработчике NMI можно было узнать состояние IFF1 до прерывания.
Это нужно, т.к. NMI срабатывает независимо от того - разрешены прерывания или нет.
Таким образом NMI обработчик имеет возможность корректно восстановить состояние прерываний после завершения своей работы.
Глюк процессора в том, что IFF2 не всегда читается, в частности он не читается когда INT активен и IFF1=1 (прерывания разрешены).
По крайней мере в ZXMAK2 такое условие эмуляции. Откуда это бралось уже не помню.
Был какой-то софт, который без эмуляции этой фишки не работал.