Порты принтера
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.