;************************************************************************/ ;* */ ;* 8 Bit CRC (1-wire) */ ;* */ ;* Author: Peter Dannegger */ ;* danni@specs.de */ ;* */ ;************************************************************************/ ; .device AT90S1200 .def crc = r16 .def a0 = r17 .def a1 = r18 ;input: a0 = data ; crc = crc ;output: crc = crc crc8: eor a0, crc ldi crc, 0 sbrc a0, 0 ldi crc, 0x5E ldi a1, 0xBC sbrc a0, 1 eor crc, a1 ldi a1, 0x61 sbrc a0, 2 eor crc, a1 ldi a1, 0xC2 sbrc a0, 3 eor crc, a1 ldi a1, 0x9D sbrc a0, 4 eor crc, a1 ldi a1, 0x23 sbrc a0, 5 eor crc, a1 ldi a1, 0x46 sbrc a0, 6 eor crc, a1 ldi a1, 0x8C sbrc a0, 7 eor crc, a1 ret ;-------------------------------------------------------------------------