Порты принтера
8.1. Порты принтера
DOS может работать с тремя параллельными принтерами, именуемыми LPT1, LPT2, LPT3. Каждый принтер имеет по три порта: порт вывода (базовый порт), порт состояния и порт управления. Адреса портов строго не фиксированы. В области данных BIOS по адресам 0040:0008, 0040:000A, 0040:000C содержатся адреса базовых портов для LPT1, LPT2, LPT3 соответственно. Адрес порта состояния - на 1 больше базового, порта управления - еще на 1 больше.
Самая первая операция, которую мы рассмотрим для принтера, - определение его состояния. Разряды байта, считываемого из порта состояния принтера, интерпретируются следующим образом:
| 0 | - 2 - не используются, обычно установлены в 1; |
| 3 | - ошибка принтера - нет/есть (0/1); |
| 4 | - принтер подключен/не подключен (1/0); |
| 5 | - бумага есть/нет (0/1); |
| 6 | - принтер выводит очередной символ/готов (0/1); |
| 7 | - принтер занят/свободен (0/1). |
При возможных расхождениях в интерпретации этого байта для разных принтеров наиболее информативен, по-видимому, бит 3, его установка в 1 говорит о готовности принтера.
Программа примера 8.1 предлагает проверить байт состояния при некоторых, наиболее вероятных состояниях принтера. Для сравнения программа выдает байт стандарта Epson.