Формат приказов ICW
Каждый приказ - 8 бит
ICW1 – определяет особенности и последовательность приказов. Отправляется в порт 20h.
Бит 0 = 1 – управляющее слово ICW4 будет в данной последовательности приказов.
Бит 1 = 0 – каскадное включение контроллеров, 1 – одиночное включение контроллера.
Бит 4 – «1» признак первого приказа.
Остальные биты не рассматриваются.
ICW2 – определение базового адреса векторов прерываний. Это слово отправляется в порт 21h.
В реальном режиме ОС это определено: для ведущего- 08h, для ведомого – 70h.
Для записи базового вектора используются биты 3,4,5,6,7.
ICW3 – определяет связь контроллеров. Приказ позволяет каскадировать контроллеры: выход ведомого подключается к одному из входов ведущего. Здесь надо указать, к какому входу подключать выход ведомого. Приказ отправляется в порт 21h.
Для ведущего контроллера формат приказа:
Если к входу irq2 подключен ведомый контроллер, то в
соответствующем разряде устанавливается «1».
«0» означает что к входу подключено внешнее устройство.
ICW3– для ведомого контроллера первые 4 разряда приказа отведены под запись того номера входа, к которому подключается выход ведомого.
ICW4 – приказ передается в порт 21h
Бит 0 – «1» режим 16-разрядного микропроцессора
«0» режим 32-разрядного микропроцессора
Бит 1 – «0» сброс бита в регистре ISR производит программа обработки,
«1» сброс этого бита осуществляет микропроцессор.
Бит 2 – «0» данный контроллер ведомый
«1» данный контроллер ведущий
Бит 3 – «0» системная шина не буферизирована
«1» системная шина буферизирована