[Назад] [Далее]

5.10.3. Параллельный порт

BIOS автоматически обнаруживает только три параллельных порта — с адресами 0378h – 037Ah (LPT1 или LPT2), 0278h – 027Ah (LPT2 или LPT3) и 03BCh – 03BDh (LPT1, если есть) — и записывает номера их базовых портов ввода-вывода в область данных BIOS по адресам 0040h:0008h, 0040h:000Ah, 0040h:000Ch соответственно. Если в системе установлен дополнительный параллельный порт, придется дополнительно записывать его базовый номер в 0040h:000Eh, чтобы BIOS воспринимала его как LPT4. Рассмотрим назначение портов ввода-вывода, управляющих параллельными портами на примере 0278h – 027Ah.

Чтобы послать байт в принтер, программа должна убедиться, что линия BUSY (бит 7 порта состояния) равна нулю, а линия АСК (бит 6 порта состояния) — единице. Затем надо послать символ на линии DATA (порт данных), не ранее чем через 0,5 мкс установить линию STROBE (бит 0 порта управления) в 0, а затем, не менее чем через 0,5 мкс, — в 1. В отличие от последовательных портов параллельные хорошо поддерживаются BIOS и DOS, так что программирование их на уровне портов ввода-вывода может потребоваться только при написании драйвера для какого-нибудь необычного устройства, подключаемого к параллельному порту, или, например, при написании драйвера принтера для новой операционной системы.


п»ї
"target=_blank><\/a>") //-->