int bioscom(int cmd, char byte, int port)
unsigned _bios_serialcom(int cmd, int port, char byte)
Эти функции не определены стандартом ANSI С.
Функции bioscom() и _bios_serialcom() используются для манипуляций асинхронным коммуникационным портом RS232, задаваемым в параметре port. Их операции определяются параметром cmd, чьи величины показаны ниже, как и их макроэквиваленты, определенные в файле bios.h.
| cmd | Макрос | Значение | 
|---|---|---|
| 0 | _COM_INIT | Инициализировать порт | 
| 1 | _COM_SEND | Послать символ | 
| 2 | _COM_RECEIVE | Получить символ | 
| 3 | _COM_STATUS | Возвратить статус порта | 
Перед использованием последовательного порта может возникнуть необходимость инициализировать его каким-либо образом, отличным от установок по умолчанию. Для этого установим параметр cmd равным 0. Точный способ установки порта определяется значением параметра byte, кодирующегося инициализирующими параметрами, как показано ниже:
	
Скорость передачи в бодах кодируется, как показано ниже:
| Скорость | Битовый шаблон | 
|---|---|
| 9600 | 1 1 1 | 
| 4800 | 1 1 0 | 
| 2400 | 1 0 1 | 
| 1200 | 1 0 0 | 
| 600 | 0 1 1 | 
| 300 | 0 1 0 | 
| 150 | 0 0 1 | 
| 110 | 0 0 0 | 
Разряды паритета кодируются, как показано ниже:
| Паритет | Битовый шаблон | 
|---|---|
| Без паритета | 0 0 | 
| Нечетный | 0 1 | 
| Четный | 1 1 | 
Число стоп-битов определяется вторым битом байта, инициализирующего последовательный порт. Если он равен 1, то используются два стоп-бита, в противном случае используется один стоп-бит. И наконец, число бит данных устанавливается с помощью кода в нулевом и первом бите инициализирующего байта. Из четырех возможных битовых шаблонов действительными являются только два. Если первый и нулевой биты содержат шаблон 1 0, то используются 7 бит данных, если они содержат 1 1, то используются 8 бит данных.
Например, если необходимо установить порт на скорость в 9600 бод с четным паритетом, одним стоп-битом и восемью разрядами данных, то следует использовать следующий битовый шаблон:
	
В десятичном представлении это дает 251.
Возвращаемое значение функции bioscom() и _bios_serialcom() всегда является 16-разрядной величиной. Старший байт содержит разряды статуса, принимающие следующие значения:
| Разряд | Значение в случае установки | 
|---|---|
| 0 | Данные готовы (data ready) | 
| 1 | Ошибка наложения (overrun error), когда несчитанные данные заменяются новыми | 
| 2 | Ошибка четности | 
| 3 | Ошибка кадра (framing error) | 
| 4 | Обнаружено состояние брейк (break-detect error) | 
| 5 | Промежуточный регистр передачи пуст | 
| 6 | Сдвиговый регистр пуст | 
| 7 | Ошибка тайм-аут (time-out error) | 
Если параметр cmd установлен в 0, 1, 2 или 3, то младший байт кодируется следующим образом:
| Разряд | Значение в случае установки | 
|---|---|
| 0 | Изменение состояния CTS (clear-to-send) | 
| 1 | Изменение в готовности приема данных | 
| 2 | Детектор конца посылки вызова | 
| 3 | Изменение сигнала DCD (несущей) | 
| 4 | Свободен для передачи (clear-to-send) | 
| 5 | Готов принимать данные (data-set-ready) | 
| 6 | Индикатор вызова | 
| 7 | Обнаружен сигнал на линии | 
Когда параметр cmd имеет значение 2, младший байт содержит принятое через порт значение.
