я по поводу последней статьи Я так и не понял что обозначает регистр iSr. т.е. я понял что он обозначает - номер текущей линии аппаратного прерывания. Что если номер установленного бита обозначает номер линии. В как быть со значением неопределённого сбороса 20h, там же выставлены биты 4 и 5 (5, 6). раньше никогда не задумывался об этом, выводил в порты 20 и А0 значение 20, а теперь замешательство, что за биты и зачем.
Все верно, isr обозначает in-service routine, т.е. номер линии, чей обработчик в данный момент выполняется. А 0x20 действительно значение непоределенного сброса -- сбрасывает самый приоритетный установленный бит в isr, без указания его конкретного значения. Я только не помню, возможна ли ситуация, когда в isr установлено несколько бит. Кажется, возможна.
Возможна, если сброщен флаг IFи произошло более приоритетное (с точки зрения контроллера) прерывание. В этом случае текущая обработка прерывания прервётся, будет вызван обработчик нового прерывания.
Про внешние прерывания в общем http://sergh.pisem.net/protected/05_external_interrupts.html#IDAWOA1D Про ПКП i8259A http://sergh.pisem.net/protected/05_external_interrupts.html#IDAZBA1D Там, правда, я не употребляю слово ISR.