Выполнить тестирование COM порта методом записи / чтения со сравнением.
Программа:
program test_com_port;
uses dos,crt_;
var
r:registers;
i,res,ident1,ident2:word;
t1,t2:boolean;
adr:word;
x:byte;
BEGIN
ident1:=0; ident2:=0;
adr := 0;
if(memW[$40:$00] = $03F8) then begin
writeln('COM1 PORT WORKING!');
ident1 := 1;
end else writeln('COM1 PORT NOT WORKING!');
if(memW[$40:$00] = $02F8) then begin
writeln('COM2 PORT WORKING!');
ident2 := 1;
end else writeln('COM2 PORT NOT WORKING!');
if (ident1 = 1) OR (ident2 = 1) then begin
writeln('Viberite com port dlya testirovaniya 1 ili 2');
writeln('Najmite etu cifru: ');
readln(x);
if (x=1) then adr := $03F8
else if (x=2) then adr := $03F8
else writeln('Nepravilniy vibor');
if (adr <> 0) then BEGIN
port[adr+3]:= port[adr+3] OR $80;
port[adr]:= 115200 DIV 10000;
delay(5);
port[adr+3]:= port[adr+3] AND $7F;
port[adr+3]:= port[adr+3] OR $1F;
port[adr+4]:= port[adr+4] OR $10;
for i:=50 to 75 do begin
t1:=false;
repeat if (port[adr+5] AND $20 <> 0) then
port[adr] := i; t1:=true;
until t1;
t2:=false;
repeat if (port[adr+5] AND $01 <> 0) then
res := port[adr]; t2:=true;
until t2;
write('Peredavaemiy simvol -', chr(i));
if (i = res) then writeln(' - OK!') else writeln(' - ERROR!');
end;
end;
end;
writeln(' TEST! Finish!');
readln;
END.
Результат работы программы:
Данная программа протестировала COM порты методом записи/чтения со сравнением и получила положительные результаты, поэтому данный порт COM1 рабочий, а порта COM2 не имеется в наличии.