Низкоуровневое програмирование Главная - Реальный режим - Прерывания Bios - INT 14h: Ввод/вывод через COM порт.

INT 14h: Ввод/вывод через COM порт.

AHОписание функции
0инициализировать порт

Bход:
DX = номер порта (0-3)
AL = битовые флаги параметра инициализации:
  биты 0 и 1 : длинна слова:
    10 - 7 бит
    11 - 8 бит
  бит 2 : стоп-бит 0=1 бит 1=2 бита
  биты 3 и 4 : проверка на чётность (00, 10 - без проверки; 11 - нечёт; 01 чёт)
  биты 7-5 : скорость (БОД) :
    000 - 110
    001 - 150
    010 - 300
    011 - 600
    100 - 1200
    101 - 2400
    110 - 4800
    111 - 9600

Выход
АН = состояние порта
  бит 7: тайм-аут
  бит 6: регистр сдвига передатчика пуст
  бит 5: регистр хранения передатчика пуст
  бит 4: обнаружено состояние BREAK
  бит 3: ошибка синхронизации
  бит 2: ошибка четности
  бит 1: ошибка переполнения — данные потеряны
  бит 0: в буфере ввода есть данные
AL = состояние модема
  бит 7: Received line signal detect
  бит 6: Ring indicator
  бит 5: Data set ready
  бит 4: Clear to send
  бит 3: Delta data carrier detect
  бит 2: Trailing edge ring indicator
  бит 1: Delta data set ready
  бит 0: Delta clear to send
1записать байт в порт

Вход:
AL - передаваемый байт
DX = номер порта (0-3)

Выход:
AH - состояние порта (см. функцию 0)
2Читать байт

Вход:
DX = номер порта (0-3)

Выход:
AH - состояние порта (см. функцию 0)
AL - принятый байт
3Получить текущее состояние порта

Вход:
DX = номер порта (0-3)

Выход:
AL = состояние модема (см. функцию 0)
AH - состояние порта (см. функцию 0)
4Расширенная инициализация

Вход:
DX = номер порта (0-3)
AL - состояние BREAK (0 - не установлено, 1 - установлено)
BH - проверка на чётность:
  0 - без проверки
  1 - на нечётность
  2 - на чётность
  3 - стэковая на нечётность
  4 - стэковая на чётность
BL - стоп-биты (=0 : 1 бит, =1 : 2 бита для длинны слова 6-8 бит, и полтора для длинны слова 5 бит)
CH - длинна слова:
  0 - 5 бит
  1 - 6 бит
  2 - 7 бит
  3 - 8 бит
CL - скорость:
  0 - 110 бод
  1 - 150 бод
  2 - 300 бод
  3 - 600 бод
  4 - 1200 бод
  5 - 2400 бод
  6 - 6000 бод
  7 - 9600 бод
  8 - 19200 бод
  9 - 38400 бод
  Ah - 56000 бод
  Bh - 115000 бод

Выход:
AL = состояние модема (см. функцию 0)
AH - состояние порта (см. функцию 0)

Примечание:
Спецификация Embedded BIOS 4.1 утверждает, что для случая, когда длинна слова равняется 5 бит в BL бля полутора стоп-бит на слово необходимо указывать значение 2
5Расширенное управление модемом
ALОписание функции
0Прочитать управляющий порт модема

Вход:
DX = номер порта (0-3)

Выход:
BL - Значение в управляющем порту мадема
1Записать в управляющий порт модема

Вход:
DX = номер порта (0-3)
BL - Значение для записи

Выход:
AL = состояние модема (см. функцию 0)
AH - состояние порта (см. функцию 0)