Глава 7. Ввод/вывод.

Раздел 1. Доступ к последовательному порту.

7.1.4 Определение статуса коммуникационного порта.

Регистр статуса линии микросхемы UART 8250 определяет протокол связи. Этот регистр имеет адрес порта на 5 больше, чем базовый адрес данного канала. Обычно он постоянно просматривается в процессе коммуникационного обмена. При передаче данных регистр сообщает, что предыдущий символ уже послан, позволяя программе записать новый символ поверх его. При приеме данных регистр информирует программу о поступлении следующего символа, с тем чтобы программа могла прочитать его прежде чем он будет уничтожен следующим прибывшим. Значение битов этого регистра следующее:

 
   бит 0   1 = байт данных получен 
       1   1 = полученные данные были перезаписаны (предыдущий 
               символ не был вовремя считан) 
       2   1 = ошибка четности (вероятно, из-за шума в линии) 
       3   1 = ошибка окружения (передача не синхронизована) 
       4   1 = обнаружен перерыв (получена длинная строка единиц, 
               индицирующая, что другая станция запрашивает 
               конец передачи) 
       5   1 = регистр хранения передатчика пуст (в этот регистр 
               должны помещаться передаваемые данные) 
       6   1 = регистр сдвига передатчика пуст (этот регистр по
               лучает данные из регистра хранения и преобразует 
               их в последовательный вид) 
       7   1 = таймаут (устройство не связано с машиной) 

Hизкий уровень.

Этот пример совершенно аналогичен приведенному на Бейсике. Из области данных BIOS считывается базовый адрес коммуникационного канала, к нему добавляется 5, а затем из полученного адреса порта считывается байт статуса.
MOV AX,40H ;ES указывает на область данных BIOS
MOV ES,AX ;
MOV DX,ES:[2] ;получаем базовый адрес COM2
ADD DX,5 ;добавляем 5 для регистра статуса
IN AL,DX ;получаем байт статуса
TEST AL,10000B ;бит 5 установлен?
JNZ BREAK_DETECT ;если да, то на обработку перерыва


<~-7.1.3 Установка текущего коммуникационного порта.
Содержание
7.1.5 Инициализация и управление модемом.-~>

Сайт управляется системой uCoz