Поскольку расширение BIOS может и отсутствовать, имеется
Для эмуляции дисков на загружаемых CD-ROM к сервисам BIOS Int 13h
♦
♦
Подробнее расширенный сервис рассмотрен в [4].
12.8.4. Int 14h — поддержка СОМ-портов
СОМ-порты поддерживаются
Int 14h
, который обеспечивает описанные ниже функции.♦ 00h —
AL
; запрет источников прерываний). На сигналы DTR
и RTS
влияния не оказывает (после аппаратного сброса они пассивны).♦ 01h —
AL
(без аппаратных прерываний). Активируются сигналы DTR
и RTS
, и после освобождения регистра THR
в него помещается выводимый символ. Если за заданное время регистр не освобождается, фиксируется ошибка тайм-аута и функция завершается.♦ 02h —
DTR
(RTS
переходит в пассивное состояние), и ожидается готовность принятых данных, принятый символ помещается в регистр AL
. Если за заданное время данные не получены, функция завершается с ошибкой тайм-аута.♦ 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 бит.