|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Разделы сайта | Cтатьи. |
Статистика сайта.
Посещений за день: 250 Баннеры. Статистика в картинках. Погода.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Прерывания IM2 на Z80.
Некоторые умы утверждают, что IM2 - это самое сложное, что есть в Z80. Если честно, я в этом не уверен, по-моему, это самое простое. ORG 25000 DI ; перед включением IM2 прерывания нужно запретить LD A,#FD ; в аккумулятор кидаем #FD, это число и будет ; указывать на адрес, в котором лежит метка LD DE,30000 ; метку (30000) засовываем в регистр LD (#FDFF),DE ; саму метку кидаем по адресу #FDFF LD I,A ; #FD из A копируем в I IM 2 ; включаем IM2 EI ; разрешаем прерывания RET ; и вываливаемся из программы А по адресу 30000 нам нужно расположить СУПЕРВИЗОР. ORG 30000 DI ; запрещаем прерывания PUSH AF ; сохраняем все регистры на стеке PUSH BC PUSH DE PUSH IX PUSH IY PUSH HL ............. ; ваша программа POP HL ; вытаскиваем все регистры обратно POP IY POP IX POP DE POP BC POP AF EI ; разрешаем прерывания RET ; возврат Теперь 50 раз в секунду будет выполняться ваша программа обработки прерываний. Если вам нужно завязать все это с IM1, то вместо команд EI и RET в конце нужно поставить JP 5B. Я, к примеру, так в БЕЙСИК вешал музон на AY. При необходимости нужно сохранять и альтернативные регистры. Для чего все это надо? С помощью IM2 можно организовывать параллельные процессы, к примеру, на IM2 очень часто вешают музыку AY. Кстати, если вам неохота засовывать метки в ОЗУ, то можно воспользоваться готовыми метками в ПЗУ, там ведь тоже есть адреса, которые оканчиваются на #FF. По этому поводу я нарисовал таблицу. I обозначает, какое число засовывать в регистр I, адрес обозначает, по какому адресу нужно располагать программу обработки прерываний.
Если вы вообще ничего не поняли из того, что здесь написано, то можете подваливать к "экрану", и там вам все разжуют... >> |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| BitByByte, 2000 г. (2026). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||