Аппаратное обеспечение персонального компьютера



           

Современные компьютеры


Современные компьютеры позволяют управлять скоростными характеристиками клавиатуры, а также зажигать или гасить светодиоды Scroll Lock, Num Lock и Caps Lock, расположенные на лицевой панели клавиатуры.

Для расширенного управления клавиатурой применяется порт 60h в режиме записи. Этот порт служит для управления подчиненным процессором Intel 8042, ответственным за обмен данными с клавиатурным компьютером, или его аналогом, установленным на системной плате компьютера.

При использовании порта 60h на запись программа дополнительно получает следующие возможности:

  • установка времени ожидания перед переходом клавиатуры в режим автоповтора;
  • установка периода генерации скан-кода в режиме автоповтора;
  • управление светодиодами, расположенными на лицевой панели клавиатуры.
  • Процессор 8042 обслуживает не только клавиатуру, но и другие системы компьютера. Через порт 64h, например, выполняется сброс (отключение) процессора 80286 для возврата из защищенного режима работы в реальный. Подробности об этом вы можете узнать из 6 тома «Библиотеки системного программиста», который называется «Защищенный режим процессоров Intel 80286/80386/80486».

    Перед тем как посылать команду процессору 8042, необходимо убедиться в том, что его внутренняя очередь команд пуста. Это можно сделать, прочитав слово состояния 8042 из порта с адресом 64h. Бит с номером 1 должен быть равен нулю.

    Приведем фрагмент программы, составленной на языке ассемблера, проверяющий состояние очереди команд процессора 8042:

    . . .

    ; Счетчик для ограничения времени ожидания готовности 8042

      mov  cx,0

    wait_loop:

    ; Читаем порт состояния процессора 8042

      in   al, 64h

      and  al, 00000010b  ; флаг готовности

    ; Ожидаем готовность процессора 8042 к приему команды

      loopnz  wait_loop

    . . .

    После того, как программа дождется готовности процессора 8042, она может послать ему команду, записав ее в порт с адресом 60h:

    mov   al,  cmd ; команда для 8042

    out   60h, al  ; вывод команды в 8042

    Некоторые команды состоят более чем из одного байта.


    Содержание  Назад  Вперед