"Архитектура ввода-вывода персональных ЭВМ IBM PC" - читать интересную книгу автора (Лукач Ю.С.) Бит 2 (ADI) используется только в ПЭВМ на базе микро-
процессоров Intel 8080/8085. Бит 1 (SNGL) указывает на наличие в системе одного контроллера (если равен 1) или каскада из нескольких контроллеров (если равен 0). Если этот бит равен 1, то ICW3 не выводится в процессе инициализации и следом за ICW2 сразу должно следовать ICW4. Бит 0 (IC4) определяет, будет ли выводиться ICW4. Если ICW4 не выводится (бит 0 = 0), то оно автоматически заполняется нулями. В описываемых ПЭВМ наличие ICW4 обязательно, т. к. тип микропроцессора 8086/8088 задается в нем значением 1 в одном из битов. Управляющее слово ICW2 задает номер вектора прерывания для прерываний уровня 0 (например 8 для IBM PC, у которых по уровню 0 происходят прерывания от таймера). Так как вектора аппаратных прерываний располагаются подряд друг за другом, вывод в ICW2 значения 8 не только задает восьмой вектор для таймера, но и девятый для прерываний уровня 1, десятый (0Ah) для прерываний уровня 2 и т. д. Управляющее слово ICW3 выводится только при наличии каскада и имеет разный формат для ведущего и ведомых контроллеров. ICW3 контроллеры, при этом соответствующие биты устанавливаются в 1. Остальные биты при этом равны 0. ICW3 следующего вида: A0 7 6 5 4 3 2 1 0 +————+————+————+————+————+————+————+————+————+ | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | +————+————+————+————+————+————+————+————+————+ задает, что в каскаде имеется 2 ведомых контроллера, подключенных к входам IR1 и IR4. ICW3 ведомого (подчиненного, slave) ПКП в трех младших битах задает номер уровня, на котором работает ведомый контроллер. Для ведомого контроллера, работающего на уровне 1 ICW3 будет выглядеть следующим образом: A0 7 6 5 4 3 2 1 0 +————+————+————+————+————+————+————+————+————+ | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | +————+————+————+————+————+————+————+————+————+ Если ведомый контроллер работает на уровне 4, то его ICW3 будет таким: |
|
|