Цитата:
Контроллер клавиатуры в МС1502 существенно отличается по принципам построения и работы от аналогичного узла IBM PC. В последнем клавиатура представляет собой законченный функциональный узел на базе однокрис- тапльной микро-ЭВМ. Клавиатура работает совершенно независимо от главного процессора и передает ему коды нажимаемых клавиш по специализированному последовательному интерфейсу. В МС1502 функции контроллера клавиатуры выполняетсам главный процессор. Для этого имеется специальная схема, при
нажатии любой клавиши генерирующая запросы прерывания IRQ2. По каждому такому запросу процессор через микросхему КР580ВВ55А (порты с адресами 68Н. 69Н и 6АН) опрашивает клавиатуру и. определив, какие клавиши нажаты, формирует их скэн- коды. Эти коды, представляющие собой условные номера клавиш, заносятся в порт с адресом 60Н. Затем программно имитируется запрос прерывания IRQ1 (INT 9Н).
Дальше все происходит точно так же, как в IBM PC. Подпрограмма BIOS, обслуживающая прерывание 9, считывает скэн-код из порта 60Н, преобразует его в ASCII-код символа, соответствующего данной клавише или комбинации клавиш, и записывает этот код в находящийся в ОЗУ буфер клавиатуры. Прерывание 16Н читает символы из этого буфера и передает их прикладным программам. Разработчикам компьютера МС1502 удалось добиться хорошей совместимости с IBM PC всех функций обслуживания клавиатуры. Единственное отличие, которое удалось обнаружить, заключается в том, что не различаются левая и правая клавиши Shift так как в использованной в компьютере клавиатуре МС7007 контакты этих клавиш соединены параллельно.
А по факту IRQ1 нормально вызывается аппаратно через JK триггер DD16 (К561ТВ1). Для работы этого триггера необходимо подать на вход С (нога 13) тактовые импульсы. Их взяли с выхода вертикальной развертки видеоадаптера ( меандр 50Hz). Но вот на кой ляд эти же импульсы отправили на вход IRQ2 контроллера прерываний мне совсем не понятно. Наверное была религиозная необходимость, ничем другим это объяснить не могу. Отрезав подачу этих импульсов я получил рабочую клавиатуру и свободный IRQ2 ( можно каскадно добавить второй контроллер прерываний по образу и подобию