I was searching through the PICLIST archive for a CRC-16 routine for a project but found nothing useful. The only thing I found was a Dallas app note (#27) that uses a linear method, no table lookup and no loops. This translated well to PIC code. If there is still an interest I'll post it to the list. Here is a summary: ; CRC-16 (x^16+x^15+x^2+x^0) ; No tables, No loops, No temporary registers used. ; ; Input: W = Data byte for CRC calculation ; crc_hi:crc_lo 16 bit CRC register ; ; Output: crc_hi:crc_lo updated. ; ; 30 instructions, 31 machine cycles per byte. Charles.