Цитата Black_Cat (
)
позволяет одновременно обрабатывать до двух независимых прерываний в режиме IM2 процессора - прерывание от YMF278B ZXM-MoonSound, и кадровое прерывание компьютера
осталось только решить проблему большой загрузки процессора в режиме работы IM2
Цитата Black_Cat (
)
#FF - запрос прерывания от кадрового прерывания компьютера или от неизвестного источника;
Запрос это сигнал INT (16 вывод CPU) Почему неизвестного - сама шина данных источник
Добавлено (16.07.2015, 12:43)
---------------------------------------------
Режим IM0
Этот режим включается сразу после включения питания и полностью аналогичен применяемому в микропроцессоре INTEL
8080. При каждом поступлении сигнала прерываний (INT),устройство вызвавшее прерывание, должно было бы выдать на шину данные
(код команды перехода) после чего должна исполнятся программа обработчика прерывания. В Спектруме на шину данных вечно выдается
код #FF что соответствует команде (RST #38), поэтому режим IM0 почти эквивалентен IM1.
Режим IM1
Этот режим стандартно включает операционная система Спектрума. По получении сигнала прерываний процессор
передает управление на адрес #38, т.е выполняется команда RST #38, где в Спектруме находиться Стандартная процедура
обработки прерываний (опрос клавиатуры) .
Режим IM2
Этот режим дает возможность программисту указывать адрес обработки прерываний.
При поступлении сигнала прерывания Младший байт вектора прерывания берется с
шины данных а старший байт перед этим записывают в регистр I. Далее по
полученному адресу из памяти считывается значение, которое является адресом программы обработки
прерываний.
Возврат из маскируемых прерываний следует выполнять командой RETI