Глава 6. Принтер.

Раздел 1. Управление работой принтера.

MS DOS может работать с тремя параллельными устройствами (LPT1 - LPT3) и в этой главе показано как управлять ими. Последовательные принтеры управляются в точности так же, как и параллельные, за исключением способа, которым данные посылаются на принтер; эта информация приведена в разделе 1 главы 7. Kаждое параллельное устройство имеет свой адаптер. Адаптер управляется тремя регистрами ввода/вывода и адреса портов этих регистров различны для каждого адаптера. Область данных BIOS содержит базовые адреса для каждого адаптера. Базовый адрес соответствует младшему адресу группы из трех адресов портов. Базовый адрес для LPT1 0040:0008, для LPT2 - 0040:000A и т.д. Kакой адаптер назначен какому номеру LPT - не определено , как видно из нижеприведенной таблицы. По этой причине программа, котрая прямо адресуется в параллельный порт, должна выискивать адреса, которые он использует. Отметим, что при инициализации базовому адресу присваивается значение 0, когда соответствующий адаптер не установлен.

 
   Адаптер                  Выходных данных  Статуса  Управления 
Монохромная карта (PC/XT/AT)       3BCH        3BDH      3BEH 
Адаптер принтера PC/XT 
Адаптер принтера PCJr              378H        379H      37AH 
Последовательная/параллельная 
карта AT (установленная как LPT1) 
Последовательная/параллельная      278H        279H      27AH 
карта AT (установленная как LPT2) 

Регистр выходных данных - это тот адрес порта, через который проходит каждый байт данных, посылаемый в принтер. Регистр статуса сообщает различную информацию о принтере; процессор может постоянно опрашивать его, чтобы распознать момент, когда все в порядке и можно посылать данные. Регистр статуса сообщает также, что произошла ошибка на принтере. Регистр управления инициализирует адаптер и управляет выводом данных. Он может также подготавливать параллельный порт для операций прерывания, с тем чтобы принтер посылал прерывание к процессору, когда он готов к приему очередного символа, оставляя процессор свободным для других дел. Вот значение битов регистров статуса и управления:

 
Регистр управления 
   бит  0    0 = нормальная установка, 1 = вызывает  вывод  байта 
                 данных 
        1    0 = нормальная установка, 1 = автоматический перевод 
                 строки после возврата каретки 
        2    0 = инициализировать порт принтера, 1 = нормальная 
                 установка 
        3    0 = отмена выбора принтера, 1 = нормальная установка 
        4    0 = прерывание принтера запрещено, 1 = разрешено 
      5-7    не используются 
Регистр статуса 
   бит 0-2   не используются 
         3   0 = ошибка принтера, 1 = нет ошибки 
         4   0 = принтер off-line, 1 = принтер on-line 
         5   0 = бумага вставлена, 1 = нет бумаги 
         6   0 = принтер подтверждает прием символа, 1 = нормаль
                 ная установка 
         7   0 = принтер занят, 1 = принтер свободен 

Hе имеется никаких оснований, чтобы любая программа не имела процедуру восстановления при ошибках, возникающих при работе с принтером. Хорошо написанная программа должна начинать с проверки того, что принтер связан с машиной (on line). Если присоединен не один принтер, то программа должна позволять пользователю выбрать с каким из них он будет работать. Kроме того, эта процедура должна восстанавливать ситуацию при любых ошибках принтера, при этом хотелось бы, чтобы не было необходимости снова печатать весь документ.


<~-5.4.8 Определение дисковых ошибок и восстановление после них.
Содержание
6.1.1 Инициализация порта принтера/повторная инициализация принтера.-~>

Сайт управляется системой uCoz