INT — вход запроса маскируемого прерывания
В последнем такте каждого машинного цикла, после проверки сигнала запроса управления магистралью, микропроцессор проверяет состояние входа /INT. Если система прерываний включена (IFF = 1), а /INT = 0, микропроцессор выполняет изменённый цикл выборки команды. Вместо /MREQ он выдаёт /IORQ, а также автоматически вставляет два такта ожидания между T2 и T3. Поскольку сигнал /RD не формируется, ни одно устройство ввода не может передать информацию по шине данных.
Микропроцессор Z80 не формирует сигнал подтверждения прерывания напрямую: его получают логическим умножением сигналов /M1 и /IORQ. На краевом разъёме ZX SPECTRUM этот сигнал обозначен как /IORQE.
Существуют три режима приёма прерываний. Сигнал /RESET устанавливает режим 0. Переключить режим позволяют следующие команды:
IM 0— режим 0IM 1— режим 1IM 2— режим 2
В режиме 0 прерывание принимается следующим образом: сигнал подтверждения прерывания заставляет внешнее устройство выставить соответствующую команду на адресную шину.
В режиме 1 микропроцессор автоматически выполняет переход к подпрограмме, расположенной по адресу 38 hex (56 dec).
В режиме 2 перед его установкой необходимо поместить в память таблицу переходов к процедурам обработки прерываний. Область памяти, в которой находится эта таблица, определяется содержимым восьмибитного регистра I. В нём хранятся восемь старших битов адреса таблицы переходов. Сигнал подтверждения прерывания заставляет внешнее устройство выставить на шину данных восемь младших битов адреса. Объединение содержимого регистра I с адресом, переданным источником прерывания, указывает адрес начала программы обработки прерывания. Таким образом, приём прерывания /INT в режиме 2 состоит в следующем:
- сохранении содержимого
PC; - сбросе триггера
IFF; - записи в
PCадреса начала обработчика прерывания.
Сигнал /RESET обнуляет регистр I, а команда LD I,A загружает в I содержимое аккумулятора. Обратную операцию выполняет команда LD A,I.
Приём прерывания /INT зависит от состояния триггера прерываний IFF. Его состояние можно менять командами EI — включить прерывания — и DI — выключить прерывания. Триггер сбрасывается сигналом /RESET и при приёме любого из прерываний, кроме /NMI, которое сохраняет состояние триггера IFF в его вспомогательном триггере. Команда LD A,I записывает состояние этого триггера во флаг чётности P/V, а RETN выполняет возврат из прерывания и восстанавливает прежнее состояние триггера прерываний IFF.
NMI — вход запроса немаскируемого прерывания
Приём прерывания /NMI приводит к переходу на подпрограмму, начинающуюся по адресу 66 Hex (102 Dec). Одновременно сбрасывается триггер IFF; его прежнее состояние восстанавливается командой возврата из немаскируемого прерывания /NMI (RETN).
RESET — вход сброса
Вход, добавленный только в более поздние версии Z80 силами PENTAGON, PENTAGRAM и NATO. Его назначение настолько секретно, что даже старейшие жители деревни этого уже не помнят. За подробностями обращайтесь к Pyza, после чего бегите в горы, спасаясь от людей из КГБ. Главный редактор принесёт информацию в зубах, но за её разглашение потребует 1000 zł...
WAIT — вход сигнала ожидания
Между тактами T2 и T3 каждого цикла процессора можно вставить любое количество тактов ожидания, установив этот вход в низкий уровень. Процессор проверяет состояние входа в такте T2, по спадающему фронту сигнала синхронизации. Если /WAIT = 0, следующий такт становится тактом ожидания. В этом такте процессор снова проверяет вход /WAIT. Если /WAIT = 0, ситуация повторяется. Если /WAIT = 1, процессор переходит к такту T3. Во время такта ожидания сигналы, формируемые процессором, остаются неизменными.
HALT — выход сигнала остановки
Сигнализирует о переходе процессора в состояние останова (команда HALT).
RFSH — выход сигнала регенерации памяти
Выход, предназначенный для регенерации динамической памяти.
ROMCS — вход отключения ПЗУ
Входной сигнал, отключающий внутреннее ПЗУ компьютера.
Видеосигналы и тактовый сигнал
U— красный дифференциальный сигналV— синий дифференциальный сигналY— сигнал яркости и синхронизацииVIDEO— полный видеосигналCK— тактовый сигнал процессора (генерируется ULA)
Если ты чего-то не понял из описания (и имеешь на это полное право), пиши мне по моему адресу.
Также призываю писать мне побольше писем, ведь именно вы, читатели, должны выбирать темы статей.
Mały
Поделитесь вашим мнением о статье