Все контрольные являются типовым решением задания студента. © allcont.narod.ru 2010
 
 
 
 
Поддержка последовательного порта на уровне 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.
 


Hosted by uCoz