Uknc Resources chapter2
Это — часть книги Ресурсы УКНЦ.
Глава 2. Общие принципы экранного вывода в УКНЦ
Contents
§4. Программные прерывания EMT И TRAP
4.0 Команды-прерывания
Среди множества команд микропроцессора 1801 есть несколько команд, действие которых состоит в следующем: вызывается прерывание по фиксированному адресу (адрес вектора прерываний — а.в.п.). Вот эти команды:
Таблица 4.0. Команды-прерывания
Команда | Код | А.В.П. |
---|---|---|
BPT | 000003 | 14 |
IOT | 000004 | 20 |
EMT | 104xYZ | 30 |
TRAP | 104XYZ | 34 |
Пример 11. Упражнение с командами-прерываниями IOT и EMT.
Команда IOT (Input-Output Trap) вызывает прерывание с адресом 20. В Системе этот а.в.п. никак не используется. Восполним же этот пробел. Работаем в ОЗУ ПП:
20: 000240 240: 104044 EMT 44 163573 "* ЗАГРУЗКА ИЗ СЕТИ *" 000002 RTIТеперь в любую свободную ячейку запишите число 4 (код IOT) и запустите с этого адреса. Ну, а если Вам наскучит играться с этой надписью, в приложении найдите другую, и адрес ее запишите после кода EMT 44. А еще лучше — читайте дальше.
Первые две команды (BPT и IOT) нам неинтересны, хотя при желании и их можно пустить в дело. Две остальные — EMT и TRAP — представляют некоторый интерес.
Старший байт этих команд содержит код команды (по нему процессор опознает их), а младший может быть любым. Такая организация команд позволяет нести в себе полезную информацию. Чтобы реализовать эту информацию, надо к каждому прерыванию подвесить свои программы обработки прерываний, которые называются диспетчерами.
Это название связано с тем, что в зависимости от кода в младшем байте, эти программы передают управление разным подпрограммам, выполняющим каждая свое действие. Это позволяет использовать команды EMT и TRAP как однословные команды вызова подпрограмм.
Рассмотрим реализацию обоих диспетчеров в Системе.
4.1 EMT-диспетчер
TODO