Контроллер прерываний

## Описание 1

[1]
Схема контроллера прерываний приведена на листе 08. Контроллер прерываний выполнен на основе БИС КР580ВН59 (А08). Контроллер позволяет обслуживать 8 уровней прерываний от адаптеров периферийных устройств с фиксированными или циклически меняющимися приоритетами, маскировать отдельные уровни. Приоритеты запросов распределены следующим образом:

```
уровень 0 - запрос от дополнительных внешних устройств,
            подсоединенных к разъему "РАСШИРЕНИЕ";
уровень 1 - запрос от адаптера последовательного интерфейса
            ( готовность приема );
уровень 2 - запрос от адаптера последовательного интерфейса
            ( готовность передачи );
уровень 3 - запрос от адаптера локальной сети;
уровень 4 - запрос сигналом кадрового гасящего импульса КГИ
            с частотой 50 Гц;
уровень 5 - запрос от канала 2 программируемого таймера;
уровень 6 - запрос от ПУ;
уровень 7 - запрос от контроллера НГМД.

```

## Описание 2

[2]
Контроллер прерываний выполнен на микросхеме КР580ВН59 (D8 (лист 12)). Контроллер позволяет обслуживать 8 уровней прерываний от адаптеров периферийных устройств с фиксированными или циклически меняющимися приоритетами, маскировать отдельные уровни.
Приоритеты запросов распределены следующим образом:

```
уровень 0 - запрос от дополнительных внешних устройств, подключенных к разъему РАСШИРЕНИЕ;
уровень 1 - запрос от адаптера последовательного интерфейса (готовность приема);
уровень 2 - запрос от адаптера последовательного интерфейса (готовность передачи);
уровень 3 - запрос от адаптера локальной сети;
уровень 4 - запрос сигналом кадрового гасящего импульса VBL с частотой 50 Гц;
уровень 5 - запрос от канала 2 программируемого таймера;
уровень 6 - запрос от интерфейса принтера;
уровень 7 - запрос от контроллера НГМД.

```

## Регистры

```
Регистр:	SICP0
Микросхема:
Адрес:		0x28
Функция:

; КОНТРОЛЛЕР ПРЕРЫВАНИЙ
; Этот узел реализован на основе микросхемы КР580ВН59
; и обслуживает 8 запросов (уровней ) прерывания от
; контроллеров и адаптеров внешних устройств. В системе
; контроллер имеет два адреса для обращения со стороны
; процессора, а его внутренние регистры выбира-
; ются дополнительно разрядами данных при записи или
; их выбор определяется порядком обращения. Регистры
; делятся на регистры инициализации, регистры управ-
; ления и регистры ввода. После инициализации контрол-
; ер готов к работе с фиксированными приоритетами
; запросов ( 0 - высший, 7 - низший). Контроллер при
; возникновении прерывания генерирует код команды CALL
; с адресом, соответствующим обрабатываемому запросу.
; Адреса всех 8 команд CALL попадают в одну область
; памяти, заданную программистом, где с шагом 4 или 8
; ячеек должны располагаться команды переходов к подпро-
; граммам обслуживания запросов.

; Параметры для инициализации

SICP0   EQU     28H     ; Относительный адрес
                        ; первого регистра инициализации

ICW1    SET     00010010B ; Основная часть первого слова
                          ; инициализации
LADR    EQU     11100000B ; Маска разрядов A5...A7 адреса
                          ; таблицы переходов
SHORT   EQU     00000100B ; Интервал 4 байта

SICP1   EQU     29H     ; Относительный адрес
                        ; второго регистра инициализации

ICW2    SET     00000000B ; Второе слово инициализации
                          ; ( Старший байт адреса таблицы
                          ; переходов )

; Параметры для управления

; Любой запрос прерывания можно запретить путем установки
; разрядов специального регистра маски (первого регистра
; управления ). Этот регистр доступен для чтения.

MSKREG  EQU     29H     ; Относит. адрес регистра маски

;Маски для уровней прерывания

INT0    EQU     00000001B ; Запрет прерывания уровня 0
INT1    EQU     00000010B ; Запрет прерываний уровня 1
INT2    EQU     00000100B ; Запрет прерываний уровня 2
INT3    EQU     00001000B ; Запрет прерываний уровня 3
INT4    EQU     00010000B ; Запрет прерываний уровня 4
INT5    EQU     00100000B ; Запрет прерываний уровня 5
INT6    EQU     01000000B ; Запрет прерываний уровня 6
INT7    EQU     10000000B ; Запрет прерываний уровня 7
INTA    EQU     00000000B ; Разрешение всех прерываний

; Второй регистр управления позволяет задавать различные
; условия окончания обработки прерываний.

EIOREG  EQU     28H     ; Адрес регистра конца прерывания

; Константы условий окончания обработки прерываний

PRSHF   EQU     10000000B ; Циклический сдвиг приоритетов
SEOI    EQU     01000000B ; Признак указания сбрасываемого
                          ; уровня прерывания
EOI     EQU     00100000B ; Конец прерывания
LEVEL   EQU     00000111B ; Маска битов, указывающих
                          ; уровень, которому присва-
                          ; ивается низший приоритет

; Третий регистр управления позволяет задавать особые
; условия маскирования и осуществлять выбор одного из
; регистров ввода.

SELREG  EQU     28H     ; Адрес регистра выбора

SELRID  EQU     00001000B ; Признак адресации (идентифи-
                          ; катор) регистра выбора
SMEN    EQU     01000000B ; Разрешение управления спец.
                          ; маскированием
SMSET   EQU     00100000B ; Установка спецмаскирования

POLL    EQU     00000100B ; Режим опроса
SELEN   EQU     00000010B ; Разрешение выбора регистра
SELIRR  EQU     00000000B ; Выбор регистра запросов
SELISR  EQU     00000001B ; Выбор регистра обрабатываемых
                          ; прерываний

IRISRG  EQU     28H     ; Адрес регистров опроса, входных
                        ; запросов и обрабатываемых пре-
                        ; рываний

```

## Примечание

```
;------------------------------------------------------

; Кроме перечисленных выше, в ПЭВМ ПК8020 имеются
; следующие уровни прерывания:

AUXINT  EQU     0  ; Прерывание от внешних адаптеров
                   ; (через разъем расширения)
PERINT  EQU     4  ; Прерывание от кадровых импульсов
                   ; с частотой 50 Гц

```