Here ya go..!
I'll let you figure out how to send your original data with the final result, but there's your C-to-BASICCode:Poly con $8408 ' CRC polynomial I VAR BYTE pData VAR BYTE X VAR BYTE CRC VAR WORD C_Data VAR WORD VAL VAR BYTE[3] ' Holds 3 values passed to CRC routiine VAL[0] = $AA VAL[1] = $05 VAL[2] = $01 Begin: CRC = $FFFF for X = 0 TO 2 pData = VAL[X] gosub Calc_CRC next X CRC = ~CRC hserout [IHEX CRC.LowByte,IHEX CRC.HighByte,13,10] pause 1000 goto Begin Calc_CRC: C_Data = $00FF & pData CRC = CRC ^ C_Data for I = 0 to 7 if CRC.Bit0 = 1 then CRC = (CRC >> 1) ^ Poly else CRC = CRC >> 1 endif next I return
conversion. Much easier than the assembly routine, but still easier in C....;o]




Bookmarks