КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Архитектурные компоненты IBM PC-совместимого компьютера

Данные помещаются в выходной регистр, и, дождавшись готовности принтера (снятия сигнала Busy), формируется строб.

АН = Olh — инициализация интерфейса и принтера (установка исходных уров¬ней управляющих сигналов, формирование импульса lnit#, запрет аппаратных прерываний и переключение на вывод двунаправленного интерфейса).

АН = 02h — опрос состояния принтера (чтение регистра состояния порта).
При возврате регистр АН содержит байт состояния, который собирается из бит регистра состояния SR [7:3] и программно формируемого флага тайм-аута. Биты 6 и 3 относительно байта, считанного из регистра состояния, инвертированы. Назна¬чение бит байта состояния:

бит 7 — не занято (сигнал Busy); нулевое значение означает, что принтер занят (буфер полон или состояние Off-Line, или ошибка);

бит 6 — подтверждение (сигнал Ack#); единичное значение означает, что прин¬тер подключен;

494
Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

бит 5 — конец бумаги (сигнал PaperEnd);

бит 4 — принтер готов (сигнал Select); нулевое значение означает, что принтер в состоянии Off-Line;

бит 3 — ошибка принтера (сигнал Error*); единичное значение соответствует ошибке;

биты 2:1=00 (не используются);

бит 0 — флаг тайм-аута, устанавливается при неудачной попытке вывода сим¬вола, если сигнал Busy не снимается в течение времени, определенного для дан¬ного порта в ячейках тайм-аута (в BIOS Data Area); в этом случае согласно протоколу Centronics строб данных не вырабатывается.
Перехват прерывания Int 17h является удобным способом внедрения собствен¬ных драйверов принтера. Потребность в них может возникать при подключении к порту принтера с интерфейсом ИPNP или необходимости перекодировки симво¬лов. Если разрабатываемый драйвер предназначен не только для перекодировки, но и изменения протокола (через Int 17h можно организовать вывод через LPT-порт по протоколу ИPNP и даже через СОМ-порт), следует внимательно отнес¬тись к битам возвращаемого байта состояния.

Hosted by uCoz