Puh, ich hab das einfach nur abgeschrieben bzw. angepaßt
Code:
'Checksumme berechnen
Clc: 'Init
'A. Init BccLo=0xFF, BccHi=0xFF
Bcclo = &HFF 'setze high
Bcchi = &HFF 'setze high
'B Für jedes Byte das gesendet und empfangen wird
New = &B11011001 'lade byte
New = New Xor Bcclo 'new=new XOR BccLo
Tmp = New
Shift Tmp , Left , 4 'Tmp = New << 4
New = Tmp Xor New 'New = Tmp Xor New
Tmp = New
Shift Tmp , Right , 5 'Tmp = New >> 5
Bcclo = Bcchi 'Bcclo = Bcchi
Bcchi = New Xor Tmp 'Bcchi = New Xor Tmp
Tmp = New
Shift Tmp , Left , 3 'Tmp = New << 3
Bcclo = Bcclo Xor Tmp 'Bcclo = Bcclo Xor Tmp
Tmp = New
Shift Tmp , Right , 4 'Tmp = New >> 4
Bcclo = Bcclo Xor Tmp 'Bcclo = Bcclo Xor Tmp
'C. Negieren Bit by Bit BccLo & BccHi: CLC_L=~BccLo CLC_H=~BccHi
Clc_l = Bcclo Xor &HFF
Clc_h = Bcchi Xor &HFF
Wenn du mehrere Byte checkst, mußt du zuerst A) initialisieren,
dann für jedes Byte einmal B)
und am Schluß einmal C)
wenn ich das richtig verstehe
Lesezeichen