ich habe mich mal daran versucht, bekomme aber kein richtiges Ergebnis.
Da haperts wahrscheinlich noch an der Übersetzung C->BASCOM...

mein bisheriger Fortschritt:
Code:
$regfile = "m32def.dat"

Declare Function Crc_sae(byref Datapointer As Word , Byval Datalength As Byte) As Byte

Dim Ar(10) As Byte , Pointer As Word
Dim Crc As Byte

Ar(1) = &HB2
Ar(2) = &HD0
Ar(3) = &HE0
Ar(4) = &H70
Ar(5) = &H00
Ar(6) = &H00
Ar(7) = &H00
Ar(8) = &H00
Ar(9) = &H00
Ar(10) = &H00
Pointer = Varptr(ar(1))

Crc = Crc_sae(pointer , 10)
Print Crc

End


Function Crc_sae(byref Datapointer As Word , Byval Datalength As Byte) As Byte
   Dim Temp As Byte , Temp2 As Byte
   Dim I As Byte , J As Byte , Crc_reg As Byte , Poly As Byte
   Crc_reg = &HFF

   For I = 1 To Datalength
      Temp = Inp(datapointer)
      Incr Datapointer
      For J = 7 To 0 Step -1
         If Temp.j = 1 Then
            Temp2 = Crc_reg And &H80
            If Temp2 <> 0 Then
               Poly = 1
            Else
               Poly = &H1C
            End If
            Shift Crc_reg , Left , 1
            Crc_reg = Crc_reg Or 1
            Crc_reg = Crc_reg ^ Poly
         Else
            Poly = 0
            Temp2 = Crc_reg And &H80
            If Temp2 <> 0 Then Poly = &H1D
            Shift Crc_reg , Left , 1
            Crc_reg = Crc_reg ^ Poly
         End If
      Next
   Next
   Crc_reg = Not Crc_reg
   Crc_sae = Crc_reg
End Function
mfg