Составители:
Рубрика:
84
Start:=Cur_Time; {Запомнить начало отправки кадра}
For i:=0 To COMFrameLen-1 Do {Цикл отправления запросного
кадра}
Begin
Symb:=TXBuf[i];
asm
mov dx, COMBase
mov al, Symb
out dx, al {Отправить очередной байт}
add dx, 5
@1:
in al, dx
test al, $40 {Сдвиговый регистр порта пуст?}
jz @1 {Нет}
end; { of asm }
If (Cur_Time-Start)>Time_Out Then Exit; {Отслеживание
Тайм-Аута}
End; { of For }
Send_Frame:=True;
End; { of Send_Frame }
Функция ожидания кадра (Poling)
Function Receive_Frame: Boolean;
{Ожидать кадр, пока не тайм-аут. Если принят – проверить КС}
Var Start_Time: LongInt;
Cnt, Symb: Byte; Got: Boolean;
Begin
Cnt:=0; Start_Time:=Cur_Time;
In_Buf.FT:=0;
While Abs(Cur_Time-Start_Time)<Time_Out Do
Begin
asm
mov dx, COMBase
add dx, 5
in al, dx
mov Got, 0
test al, $01
jz @1
mov Got, 1
mov dx, COMBase
in al, dx
Страницы
- « первая
- ‹ предыдущая
- …
- 82
- 83
- 84
- 85
- 86
- …
- следующая ›
- последняя »