#include #include #include #define BLEN 8 extern "C"{ short crctrig_(short*, short*); } short crctrig_(short *oldCRC, short *newCRC) /* void crctrig_(short *old,short *new) */ { union crctrig_data { short word; struct bit_field { unsigned b0:1; unsigned b1:1; unsigned b2:1; unsigned b3:1; unsigned b4:1; unsigned b5:1; unsigned b6:1; unsigned b7:1; } bit; } c,d,r; c.word = *oldCRC; d.word = *newCRC; r.word = 0; r.bit.b0 = c.bit.b7 ^ c.bit.b6 ^ c.bit.b0 ^ d.bit.b0 ^ d.bit.b6 ^ d.bit.b7; r.bit.b1 = c.bit.b6 ^ c.bit.b1 ^ c.bit.b0 ^ d.bit.b0 ^ d.bit.b1 ^ d.bit.b6; r.bit.b2 = c.bit.b6 ^ c.bit.b2 ^ c.bit.b1 ^ c.bit.b0 ^ d.bit.b0 ^ d.bit.b1 ^ d.bit.b2 ^ d.bit.b6; r.bit.b3 = c.bit.b7 ^ c.bit.b3 ^ c.bit.b2 ^ c.bit.b1 ^ d.bit.b1 ^ d.bit.b2 ^ d.bit.b3 ^ d.bit.b7; r.bit.b4 = c.bit.b4 ^ c.bit.b3 ^ c.bit.b2 ^ d.bit.b2 ^ d.bit.b3 ^ d.bit.b4; r.bit.b5 = c.bit.b5 ^ c.bit.b4 ^ c.bit.b3 ^ d.bit.b3 ^ d.bit.b4 ^ d.bit.b5; r.bit.b6 = c.bit.b6 ^ c.bit.b5 ^ c.bit.b4 ^ d.bit.b4 ^ d.bit.b5 ^ d.bit.b6; r.bit.b7 = c.bit.b7 ^ c.bit.b6 ^ c.bit.b5 ^ d.bit.b5 ^ d.bit.b6 ^ d.bit.b7 ; return r.word; /* *old = r.word; */ }