Чтение онлайн

на главную - закладки

Жанры

Аппаратные интерфейсы ПК. Энциклопедия

Гук Михаил Юрьевич

Шрифт:

♦ 03h — опрос состояния модема и линии (чтение регистров

МSR
и
LSR
). Эту гарантированно быструю функцию обычно вызывают перед функциями ввода-вывода во избежание риска ожидания тайм-аута.

При вызове

Int 14h
номер функции задается в регистре
АН
, номер порта (0–3) — в регистре
DX
(0 —
COM1
, 1 —
COM2
…). При возврате из функций 0, 1 и 3 регистр
АН
содержит байт состояния линии (регистр LSR),
AL
байт состояния модема (MSR). При возврате из функции 2 нулевое значение бита 7 регистра
АН
указывает на наличие принятого символа в регистре
AL
; ненулевое значение бита 7 — на ошибку приема, которую можно уточнить функцией 3.

Байт состояния линии (регистр

АН
) имеет следующий формат:

♦ бит 7 — ошибка тайм-аута (после вызова функции 2 — признак любой ошибки);

♦ бит 6 — регистр сдвига передатчика пуст (пауза передачи);

♦ бит 5 — промежуточный регистр передатчика пуст (готов принять символ для передачи);

♦ бит 4 — обнаружен обрыв линии;

♦ бит 3 — ошибка кадра (отсутствие стоп-бита);

♦ бит 2 — ошибка паритета принятого символа;

♦ бит 1 — переполнение (потеря символа);

♦ бит 0 — регистр данных содержит принятый символ.

Байт состояния модема (регистр

AL
при возврате из функций 0, 1, 3) имеет следующий формат:

♦ бит 7 — состояние линии

DCD
;

♦ бит 6 — состояние линии

RI
;

♦ бит 5 — состояние линии

DSR
;

♦ бит 4 — состояние линии

CTS
;

♦ бит 3 — изменение состояния

DCD
;

♦ бит 2 — изменение огибающей

RI
;

♦ бит 1 — изменение состояния

DSR
;

♦ бит 0 — изменение состояния

CTS
.

При инициализации порта биты регистра

AL
имеют следующее назначение:

♦ биты [7:5] — скорость обмена:

 • 000=110; 100=1200; 001=150; 101=2400;

 • 010=300; 110=4800; 011=600; 111=9600 бит/с;

♦ биты [4:3] — контроль паритета:

 • 01 — число единиц нечетное;

 • 11 — четное;

 • 0 и 10 — без контроля;

♦ бит 2 — количество стоп-бит: 0–1 бит, 1–2 бита (на скорости 110 бит/с — 1,5 стоп-бит);

♦ биты [1:0] — длина посылки: 00 — 5 бит, 01 — 6 бит, 10 — 7 бит, 11 — 8 бит.

В процессе начального тестирования POST BIOS проверяет наличие последовательных портов (регистров UART 8250 или совместимых) по стандартным адресам и помещает базовые адреса обнаруженных портов в ячейки

BIOS Data Area
0:0400, 0402, 0404, 0406. Эти ячейки хранят адреса портов с логическими именами
COM1
СОМ4
. Нулевое значение адреса является признаком отсутствия порта с данным номером. В ячейки 0:047С, 047D, 047Е, 047F заносятся константы, задающие тайм-аут для портов.

Обнаруженные порты инициализируются на скорость обмена 2400 бит/с, 7 бит данных с контролем на четность (even), 1 стоп-бит. Управляющие сигналы интерфейса

DTR
и
RTS
переводятся в исходное состояние («выключено» — положительное напряжение).

12.8.5. Int 17h — поддержка принтера

Сервисы BIOS

Int 17h
: обеспечивают инициализацию, вывод байта данных и опрос состояния принтера, подключенного к LPT-порту. При вызове функция задается в регистре
АН
, номер LPT-порта — в регистре DX.

♦ 

АН
= 00h — вывод байта из регистра
AL
по протоколу Centronics (без аппаратных прерываний). Данные помещаются в выходной регистр, и, дождавшись готовности принтера (снятия сигнала
Busy
), формируется строб.

♦ 

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

♦ 

АН
= 02h — опрос состояния принтера (чтение регистра состояния порта).

При возврате регистр

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

♦ бит 7 — не занято (сигнал

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

♦ бит 6 — подтверждение (сигнал

Ack#
); единичное значение означает, что принтер подключен;

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

PaperEnd
);

♦ бит 4 — принтер готов (сигнал

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

♦ бит 3 — ошибка принтера (сигнал

Error#
); единичное значение соответствует ошибке;

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

♦ бит 0 — флаг тайм-аута, устанавливается при неудачной попытке вывода символа, если сигнал

Busy
не снимается в течение времени, определенного для данного порта в ячейках тайм-аута (в BIOS Data Area); в этом случае согласно протоколу Centronics строб данных не вырабатывается.

Перехват прерывания

Int 17h
является удобным способом внедрения собственных драйверов принтера. Потребность в них может возникать при подключении к порту принтера с интерфейсом ИРПР или необходимости перекодировки символов. Если разрабатываемый драйвер предназначен не только для перекодировки, но и изменения протокола (через
Int 17h
можно организовать вывод через LPT-порт по протоколу ИРПР и даже через СОМ-порт), следует внимательно отнестись к битам возвращаемого байта состояния. При их неправильном формировании попытки вывода на печать могут приводить к ошибочным сообщениям.

Поделиться:
Популярные книги

Чужая семья генерала драконов

Лунёва Мария
6. Генералы драконов
Фантастика:
фэнтези
5.00
рейтинг книги
Чужая семья генерала драконов

Золушка вне правил

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.83
рейтинг книги
Золушка вне правил

Невеста снежного демона

Ардова Алиса
Зимний бал в академии
Фантастика:
фэнтези
6.80
рейтинг книги
Невеста снежного демона

Мастер темных Арканов 5

Карелин Сергей Витальевич
5. Мастер темных арканов
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Мастер темных Арканов 5

Идеальный мир для Лекаря 17

Сапфир Олег
17. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 17

Сирота

Ланцов Михаил Алексеевич
1. Помещик
Фантастика:
альтернативная история
5.71
рейтинг книги
Сирота

Герцогиня в ссылке

Нова Юлия
2. Магия стихий
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Герцогиня в ссылке

Идеальный мир для Лекаря 11

Сапфир Олег
11. Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 11

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5

Товарищ "Чума" 2

lanpirot
2. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 2

Жена моего брата

Рам Янка
1. Черкасовы-Ольховские
Любовные романы:
современные любовные романы
6.25
рейтинг книги
Жена моего брата

Вонгозеро

Вагнер Яна
1. Вонгозеро
Детективы:
триллеры
9.19
рейтинг книги
Вонгозеро

Газлайтер. Том 5

Володин Григорий
5. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 5

Семь Нагибов на версту

Машуков Тимур
1. Семь, загибов на версту
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Семь Нагибов на версту