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

UptoLike

99
(In_Buf.Data[1]=sstCardIn) Then Present:=True
Else Exit;
End; { of Else }
End; { of If }
End; { of Check_Card }
Function Card_Write(Bank: Byte; Crypto: Boolean): Boolean;
{ Записать из содержания массива Dump на карту в соответствующий
банк.
rypto=False - без шифрования, Crypto=True - с шифрованием}
Begin
COMFrameLen:=75; Card_Write:=False;
Frame_FT:=COMFrameLen;
Frame_NA:=Note.Address;
If Crypto Then Frame_Cmd:=acmWriteWCoding Else
Frame_Cmd:=acmWriteWOCoding;
Frame_Data[1]:=Bank;
Move(Dump[Bank*64], Frame_Data[2], 64);
If Not Send_Frame(Frame_FT, Frame_NA, Frame_Cmd, Frame_Status,
Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If (In_Buf.Status<>astSuccessNote) or
(In_Buf.Data[1]<>sstSuccess) Then
Card_Write:=False
Else
Card_Write:=True;
If In_Buf.FT<>75 Then Card_Write:=False;
End; { of If }
End; { of Card_Write }
Function Card_Read(Bank: Byte; Crypto: Boolean): Boolean;
{ Прочитать с карты из соотв. банка в массив Dump.
Crypto=False - без расшифровки, Crypto=True - с расшифровкой}
Begin
COMFrameLen:=16; Card_Read:=False;
Frame_FT:=COMFrameLen;
Frame_NA:=Note.Address;
If Crypto Then Frame_Cmd:=acmReadWCoding Else
Frame_Cmd:=acmReadWOCoding;
Продолжение прил.