Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Модемы и факс-модемы. Программирование для MS-DOS и Windows.

© Александр Фролов, Григорий Фролов
Том 16, М.: Диалог-МИФИ, 1993.

[Назад] [Содеожание] [Дальше]

5.7. Поддержка асинхронного адаптера в BIOS

В этом разделе мы опишем функции BIOS, облегчающие обслуживание асинхронного последовательного адаптера. Эти функции доступны через прерывание INT 14h.

Первая функция предназначена для инициализации портов асинхронного адаптера:

На входе: AH = 00h;

DX = номер порта: 0 - COM1, 1 - COM2, 2 - COM3, 3 - COM4;

AL = параметры инициализации (см. ниже).

На выходе: AH = состояние порта асинхронного адаптера;

AL = состояние модема.

При вызове этой функции регистр AL должен содержать параметры инициализации (x - состояние бита безразлично):

Биты

Смысл

D1 D0

Длина слова в битах:</p>

<p>00 - 5 бит;</p>

<p>01 - 6 бит;</p>

<p>10 - 7 бит;</p>

<p>11 - 8 бит

D2

Количество стоповых бит:</p>

<p>0 - 1 бит;</p>

<p>1 - 2 бита

D4 D3

Четность:</p>

<p>x0 - контроль на четность не используется;</p>

<p>01 - контроль на нечетность;</p>

<p>11 - контроль на четность

D7-D5

Скорость передачи данных:</p>

<p>000 - 110 бит/с</p>

<p>001 - 150 бит/с</p>

<p>010 - 300 бит/с</p>

<p>011 - 600 бит/с</p>

<p>100 - 1200 бит/с</p>

<p>101 - 2400 бит/с</p>

<p>110 - 4800 бит/с</p>

<p>111 - 9600 бит/с

После вызова функции в регистр AH записывается состояние порта асинхронного адаптера:

Бит

Смысл

D0

Тайм-аут, если установлен этот бит, другие биты не имеют значения

D1

Регистр сдвига передатчика пуст

D2

Буферный регистр передатчика пуст

D3

Обнаружено состояние BREAK

D4

Ошибка синхронизации

D5

Ошибка четности

D6

Ошибка переполнения входного регистра

D7

Данные готовы

Регистр AL содержит байт состояния модема:

Бит

Смысл

D0

Линия CTS изменила состояние

D1

Линия DSR изменила состояние

D2

Линия RI изменила состояние

D3

Линия DCD изменила состояние

D4

Состояние линии CTS

D5

Состояние линии DSR

D6

Состояние линии RI

D7

Состояние линии DCD

Для передачи байта используется следующая функция:

На входе: AH = 01h;

DX = номер порта: 0 - COM1, 1 - COM2, 2 - COM3, 3 - COM4;

AL = передаваемый байт.

На выходе: AL сохраняется;

AH = состояние порта асинхронного адаптера, если бит 7 регистра AH установлен в 1, произошла ошибка.

______________________________________

Функция 02h предназначена для приема байта:

______________________________________

На входе: AH = 02h;

DX = номер порта: 0 - COM1, 1 - COM2, 2 - COM3, 3 - COM4;

На выходе: AL = принятый байт;

AH = состояние порта асинхронного адаптера, если регистр AH не равен 0, произошла ошибка.

______________________________________

Состояние порта асинхронного адаптера можно узнать с помощью функции 03h:

______________________________________

На входе: AH = 03h;

DX = номер порта: 0 - COM1, 1 - COM2, 2 - COM3, 3 - COM4;

На выходе: AH = состояние порта асинхронного адаптера;

AL = состояние модема.

[Назад] [Содеожание] [Дальше]