Программирование модемов
© Александр Фролов, Григорий Фролов
Том 4, М.: Диалог-МИФИ, 1993, 236 стр.
Перед записью байта данных в регистр
передатчика необходимо убедиться в том, что
регистр хранения передатчика свободен, то есть
убедиться в том, что передача предыдущего
символа завершена.
Признаком того, что регистр передатчика
свободен, является установленный в 1 бит 5
регистра состояния линии с адресом baseadr + 5.
Следующая функция ждет окончания передачи
текущего символа, затем посылает в асинхронный
адаптер следующий символ:
/**
*.Name aux_outp
*.Title Вывод символа в асинхронный адаптер
*
*.Descr Эта функция дожидается готовности
* передатчика и посылает символ.
*
*.Proto void aux_outp(char chr, int port);
*
*.Params char chr - посылаемый символ;
*
* int port - номер асинхронного адаптера:
* 0 - COM1, 1 - COM2
*
*.Return Ничего
*
*.Sample aux_test.c
**/
#include <stdio.h>
#include <conio.h>
#include "sysp_com.h"
void aux_outp(char chr, int port) {
unsigned status_reg, out_reg;
status_reg = 0x3fd - 0x100 * port;
out_reg = status_reg - 5;
while( (inp(status_reg) & 0x20) == 0 );
outp(out_reg, chr);
}
|