unsigned short icrc1(unsigned short crc, unsigned char onech) { int i; unsigned short ans=(crc ^ onech << 8); for (i=0;i<8;i++) { if (ans & 0x8000){ #if defined(__DECC) ans <<= 1; ans = ans ^ 4129; #else ans = (ans <<= 1) ^ 4129; #endif } else ans <<= 1; } return ans; }