Функции BIOS для LPT-порта
BIOS обеспечивает поддержку LPT-порта, необходимую для организации вывода по интерфейсу Centronics. В процессе начального тестирования POST BIOS проверяет наличие параллельных портов по адресам 3BCh, 378h и 278h и помещает базовые адреса обнаруженных портов в ячейки BIOS Data Area 0:0408h, 040Ah, 040Ch, 040Eh. Эти ячейки хранят адреса портов LPT1-LPT4, нулевое значение адреса является признаком отсутствия порта с данным номером. В ячейки 0:0478, 0479, 047А, 047В заносятся константы, задающие тайм-аут для этих портов. Поиск портов обычно ведется достаточно примитивно - по Обнаруженные порты инициализируются - записью в регистр управления формируется и снимается сигнал lnit#, после чего записывается значение OCh, соответствующее исходному состоянию сигналов интерфейса. В некоторых случаях сигнал lnit# активен с момента аппаратного сброса до инициализации порта во время загрузки ОС. Это можно заметить по поведению включенного принтера во время перезагрузки компьютера - у принтера надолго гаснет индикатор On-Line. Следствие этого явления - невозможность распечатки экранов (например, параметров BIOS Setup) no клавише Print Screen до загрузки ОС. Программное прерывание BIOS INT 17h обеспечивает следующие функции поддержки LPT-порта:
Перехват прерывания INT 17h является удобным способом внедрения собственных драйверов принтера. Потребность в них может возникать при подключении к порту принтера с интерфейсов ИРПР или необходимости перекодировки символов.
|