В IM 1, при обнаружении ожидающего прерывания (которое выбирается по переднему фронту последнего цикла перед концом кода операции; в отличие от NMI линия IRQ просто выбирается), IFF1 и 2 очищаются и RST 38h
выполнен.Таким образом, у вас должен получиться ПК с разрешением 0x38, прерывания отключены и счетчик старой программы на вершине стека.Вы захотите сделать все, что вам нужно, чтобы ответить на прерывание, а затем выполнить EI, RET
или EI, RETI
(здесь нет никакой разницы, потому что два флага IFF имеют одинаковое значение после подтверждения прерывания).
На Z80 ПК устанавливается в 0 после включения или сброса, так что, вероятно, у вас уже есть некоторый контроль над кодом внизу на этом конце памяти.Точный синтаксис зависит от вашего ассемблера, но вы, вероятно, хотите что-то вроде:
org 0
; setup initial state here, probably JP somewhere at the end
; possibly squeeze in another routine if you've the space
org 0x38
; respond to interrupt
EI
RET