Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ZX Spectrum для пользователей и программистов.doc
Скачиваний:
56
Добавлен:
28.09.2019
Размер:
1.92 Mб
Скачать

_____________________________Немаскируемые прерывания

Немаскируемое прерывание вызывается при поступлении сигнала на вход NMI процессора. При этом выполнение основной программы приостанавливается, и управление передается на ячейку с адресом 102 (#66) (выполняется команда CALL 102).

В ZX Spectrum немаскируемое прерывание не задействовано, но оно может вызываться некоторыми внешними устройствами. При этом вместо стандартной «прошивки» подключается ПЗУ вызвавшего прерывание устройства, в котором записана программа обработки прерывания. Этот принцип используется, например, в дисковой системе Beta Disk фирмы Technology Research и интерфейсе Multiface One фирмы Romantic Robot.

При входе в немаскируемое прерывание сбрасывается триггер IFF, и, следовательно, запрещается вызов маскируемых прерываний.

Возврат из немаскируемого прерывания и восстановление состояния регистра IFF происходит по команде процессора RETN.

Следует отметить, что на самом деле Z80 имеет два триггера, участвующих в обработке прерываний: IFF1 и IFF2. Триггер IFF1 используется для управления разрешением маскируемых прерываний, a IFF2 хранит его состояние при обработке немаскируемых. Состояние триггера IFF2 отражается битом P/V флагового регистра после выполнения команд LD А,I или LD A,R.________________

*) Фирмой Zilog были разработаны микросхемы, входящие совместно с Z80 CPU в комплект под общим названием Z80.

Состояния триггеров IFF1 и IFF2 в различных режимах работы процессора приведены в табл. 4.

Таблица 4. Состояния триггеров IFF1 и IFF2.

Действие

IFF1

IFF2

Примечание

_____________

сигнал RESET

0  IFF1

0  IFF2

устанавливает режим 0

команда DI

0  IFF1

0  IFF2

запрещает прерывания

команда EI

1  IFF1

1  IFF2

разрешает прерывания

_______

сигнал INT

0  IFF1

0  IFF2

маскируемое прерывание

команда RETI

IFF2  IFF1

не изменяется

возврат из маскируемого прерывания

_______

сигнал NMI

0  IFF1

IFF1  IFF2

немаскируемое прерывание

команда RETN

IFF2  IFF1

не изменяется

возврат из немаскируемого прерывания

команда LD А,I

не изменяется

не изменяется

IFF2  P/V

команда LD A,R

не изменяется

не изменяется

IFF2  P/V