Прерывания — различия между версиями
Zxdn (обсуждение | вклад) |
Alone (обсуждение | вклад) (→IM 0) |
||
Строка 4: | Строка 4: | ||
Сигнал маскируемого прерывания генерируется при начале отображения каждого нового кадра и имеет частоту около 50 Герц. Процессор [[Z80]] имеет три режима обработки максируемых прерываний, из которых в ZX Spectrum используется два. | Сигнал маскируемого прерывания генерируется при начале отображения каждого нового кадра и имеет частоту около 50 Герц. Процессор [[Z80]] имеет три режима обработки максируемых прерываний, из которых в ZX Spectrum используется два. | ||
=== IM 0 === | === IM 0 === | ||
+ | В цикле подтверждения прерываний Z80 считывает код команды с шины данных и исполняет её. Это режим по умолчанию после сброса. На ZX Spectrum нет устройств, дающих код команды на шину данных. Существует ли вообще возможность это сделать через стандартную ULA? | ||
+ | |||
=== IM 1 === | === IM 1 === | ||
=== IM 2 === | === IM 2 === |
Версия 19:23, 19 ноября 2009
Прерывания (Interrupts) — выполнение процессором специальной подпрограммы (обработчика прерывания) по приходу внешнего сигнала. В ZX Spectrum доступно два вида прерываний - маскируемое (INT) и немаксируемое (NMI).
Содержание
Максируемое прерывание
Сигнал маскируемого прерывания генерируется при начале отображения каждого нового кадра и имеет частоту около 50 Герц. Процессор Z80 имеет три режима обработки максируемых прерываний, из которых в ZX Spectrum используется два.
IM 0
В цикле подтверждения прерываний Z80 считывает код команды с шины данных и исполняет её. Это режим по умолчанию после сброса. На ZX Spectrum нет устройств, дающих код команды на шину данных. Существует ли вообще возможность это сделать через стандартную ULA?
IM 1
IM 2
Немаскируемое прерывание
Немаксируемое прерывание не используется в оригинальном ZX Spectrum, однако может использоваться дополнительными устройствами. В частности, контроллер дисковода Beta Disk Interface имеет кнопку Magic, генерирующую немаксируемое прерывание.
Особенности оригинального ZX Spectrum
Из-за ошибки в ULA на оригинальных моделях ZX Spectrum при установке вектора прерывания (регистр I процессора) в область медленной памяти на экране возникает эффект "снега". На ZX Spectrum 128K это также может привести к зависанию компьютера через некоторое время после установки вектора прерывания.