Пластиковые карты с открытой памятью. Востриков А.А - 94 стр.

UptoLike

94
CurCOM:=Num;
COMInit:=True;
End; { of COMInit }
Function CheckLinkCRC : Boolean;
{ Посчитать контрольную сумму и записать в конец кадра}
Var i: Word;
Chk_Calc, Chk_Frame: Word;
Begin
Chk_Calc:=0;
For i:=0 To COMFrameLen-3 Do
Chk_Calc:=Word(Chk_Calc+RXBuf[i]);
Move(RXBuf[COMFrameLen-2], Chk_Frame, SizeOf(Chk_Frame));
If Chk_Calc=Chk_Frame Then CheckLinkCRC:=True Else
CheckLinkCRC:=False;
End; { of CheckLinkCRC }
Procedure CalcLinkCRC;
{ Проверить контрольную сумму}
Var i: Word;
Chk_Calc: Word;
Begin
Chk_Calc:=0;
For i:=0 To COMFrameLen-3 Do
Chk_Calc:=Word(Chk_Calc+TXBuf[i]);
Move(Chk_Calc, TXBuf[COMFrameLen-2], SizeOf(Chk_Calc));
End; { of CalcLinkCRC }
Procedure TickWait(Const Num: Byte);
{ Ожидание Num тиков, т. е. Num количеств инкрементов системного
счетчика}
Var StartTime: LongInt;
Begin
StartTime:=Cur_Time;
While (Cur_Time-StartTime)<>Num Do;
End; { of TickWait }
Function Send_Frame(FT: Byte; NA: tNA; Cmd: Byte; Status: Byte;
Data: tData): Boolean;
Продолжение прил.