Дипломная работа: Комп’ютерне моделювання роботи послідовного порта
010 = 300
101 = 2400
001 =150
100 = 1200
000=110
PAR1,0 (перевірка на парність) 00 чи 10 = немає перевірки
01 = непарна
11 = парна
STOP (кількість стопових бітів) 0 = 1
1 = 2
DA1,0 (довжина блоку даних) 10 = 7 біт
11 = 8 біт
Наступна програма на мові ТР6 робить те ж, що і команда DOSMODEСОМ1:96,n,8,1.
Procedureinitialize;
{СОМ1: 9600, без перевірки на парність, 0 біт даних, 1 стоповий біт.}
var
register: registers;
begin
with register do
begin
ah:=0; {Завантаження номера функції переривання.}
al:=128+64+32+0+0+0+2+1; {Завантаження ініціалізаційного коду 11100011B.}
dx:=0; {Номер порту: DX=0:COM1, DX=1:COM2 і т.д.}
intr($14,register); {Виклик переривання BIOS.}
end;
end;
Обмеження описаного методу полягає в тому, що можна задати швидкість тільки 9600 бод. UART 16450 здатний працювати зі швидкістю 115200 бод, це досягається безпосереднім звертанням до регістра. Третій, найбільш гнучкий метод конфігурує порт за допомогою запису даних у регістр формату даних UART(зсув 03h). Наступна програма на ТР6 дозволяє налаштувати сам регістр, для цього потрібна базова адреса порту, що конфігурується, швидкість, режим перевірки, довжина блоку даних і кількість стопових бітів. Процедура переводить задану швидкість у шістнадцятибітовий дільник і завантажує його у відповідні регістри.
(*-Бібліотека ресурсів № А9 (запис у регістр формату даних).-*)
Procedure Write_data_format (RS232_address, Baud, Parity, Data_bit,