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

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

Жанры

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

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

Шрифт:

♦ 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-порт по протоколу ИРПР и даже через СОМ-порт), следует внимательно отнестись к битам возвращаемого байта состояния. При их неправильном формировании попытки вывода на печать могут приводить к ошибочным сообщениям.

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

Наследник павшего дома. Том II

Вайс Александр
2. Расколотый мир [Вайс]
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том II

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4

Матабар III

Клеванский Кирилл Сергеевич
3. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар III

Девятая Крепость

Катлас Эдуард
1. Акренор
Фантастика:
фэнтези
8.68
рейтинг книги
Девятая Крепость

Возвышение Меркурия. Книга 15

Кронос Александр
15. Меркурий
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 15

Наследник

Майерс Александр
3. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наследник

Имя нам Легион. Том 5

Дорничев Дмитрий
5. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 5

Сделай это со мной снова

Рам Янка
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сделай это со мной снова

Доктора вызывали? или Трудовые будни попаданки

Марей Соня
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки

Воевода

Ланцов Михаил Алексеевич
5. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Воевода

Черный Маг Императора 10

Герда Александр
10. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 10

Ведьмак. Перекресток воронов

Сапковский Анджей
Фантастика:
фэнтези
5.00
рейтинг книги
Ведьмак. Перекресток воронов

Курсант: назад в СССР 2

Дамиров Рафаэль
2. Курсант
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Курсант: назад в СССР 2