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

Аппаратное обеспечение персонального компьютера

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

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

Функции BIOS для работы с последовательным асинхронным адаптером

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

Инииализация портов асинхронного адаптера

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

Регистры на входе:

AH = 00h;

DX = номер порта адаптера: 0 - COM1, 1 - COM2;

AL = параметры инициализации

Регистры на выходе:

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

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

Параметры инициализации, предаваемые в регистре AL, перечислены ниже:

Поле

Описание

0-1

Длина слова:

00 - 5 бит;

01 - 6 бит;

10 - 7 бит;

11 - 8 бит

2

Количество стоповых бит:

0 - 1 бит;

1 - 2 бита

3-4

Контроль четности:

X0 - контроль на четность не используется;

01 - контроль на нечетность;

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

5-7

Скорость передачи данных в бодах:

000 – 110;

001 – 150;

010 – 300;

011 – 600;

100 – 1200;

101 – 2400;

110 – 4800;

111 – 9600

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

Формат регистра:

Поле

Описание

0

Истекло время ожидания. Если установлен этот бит, другие биты не имеют значения

1

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

2

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

3

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

4

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

5

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

6

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

7

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

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

Формат регистра:

Поле

Описание

0

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

1

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

2

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

3

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

4

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

5

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

6

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

7

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

Передача байта

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

Регистры на входе:

AH = 01h;

DX = номер порта адаптера: 0 - COM1, 1 - COM2;

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

Регистры на выходе:

AL сохраняется;

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

Прием байта

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

Регистры на входе:

AH = 02h;

DX = номер порта адаптера: 0 - COM1, 1 - COM2;

Регистры на выходе:

AL = принятый байт;

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

Определение состояния асинхронного адаптера

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

Регистры на входе:

AH = 03h;

DX = номер порта адаптера: 0 - COM1, 1 - COM2;

Регистры на выходе:

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

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


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