Поддержка последовательного порта
на уровне BIOS u DOS.
BIOS:
Int 0x14,
Функция 0 - инициализация порта
DX – номер порта
0 – COM1
1 – COM2
AL – параметры инициализации
Недостаток: скорость обмена может быть установлена только из
стандартного набора.
Функция 1 – передача
байта
DX - номер
порта;
AL - байт;
На выходе: если в AH бит 7 =1, то истекло время ожидания.
Функция 2 – посылка байта
Функция 3 – получить состояние порта
на выходе AH – регистр состояния линии
AL – регистр состояния модема
DOS:
Int 0x21 – не имеет средств
инициализации порта, но при запуске ОС com порт инициализируется по
умолчанию.
- Скорость обмена : 2400
- Нет паритета
- 1 стоп бит
- 8 бит
Функция 40 – послать массив
байт (для COM1)
Функция 4F – получить массив
байт (для COM1)
Для DOS версии 3.* и выше COM1 имеет имя AUX.
В Си : COM1 – stdaux, порт используется как файловое устройство, с
дискриптором №3
printf
write
scanf
read
(читают 1
символ) (за 1 прием
несколько байт)
Для
использования COM2, COM3, COM4 следует в области данных BIOS
подменить базовый адрес порта, т.к. DOS не использует аппаратноее
прерывание последовательного порта. После этого обязательно его
восстановить.
Замечание: на уровне командной строки
доступны все COMы.
COPY AUX CON // данные поступающие в
послед. порт выводятся на экран
COPY COM1 CON
COPY COM2 CON
В Си имеется библиотека для работы с портами ASYNC PROFESSIONAL.