Critikon Ltd
Host Communications Reference Manual
0xFB,0x6A,0x9A,0x0B,0x39,0xA8,0x58,0xC9,
0x28,0xB9,0x49,0xD8,0xEA,0x7B,0x8B,0x1A,
0xEF,0x7E,0x8E,0x1F,0x2D,0xBC,0x4C,0xDD,
0xE5,0x74,0x84,0x15,0x27,0xB6,0x46,0xD7,
0x22,0xB3,0x43,0xD2,0xE0,0x71,0x81,0x10,
0xA1,0x30,0xC0,0x51,0x63,0xF2,0x02,0x93,
0x66,0xF7,0x07,0x96,0xA4,0x35,0xC5,0x54,
0x6C,0xFD,0x0D,0x9C,0xAE,0x3F,0xCF,0x5E,
0xAB,0x3A,0xCA,0x5B,0x69,0xF8,0x08,0x99,
0x78,0xE9,0x19,0x88,0xBA,0x2B,0xDB,0x4A,
0xBF,0x2E,0xDE,0x4F,0x7D,0xEC,0x1C,0x8D,
0xB5,0x24,0xD4,0x45,0x77,0xE6,0x16,0x87,
0x72,0xE3,0x13,0x82,0xB0,0x21,0xD1,0x40,
0x50,0xC1,0x31,0xA0,0x92,0x03,0xF3,0x62,
0x97,0x06,0xF6,0x67,0x55,0xC4,0x34,0xA5,
0x9D,0x0C,0xFC,0x6D,0x5F,0xCE,0x3E,0xAF,
0x5A,0xCB,0x3B,0xAA,0x98,0x09,0xF9,0x68,
0x89,0x18,0xE8,0x79,0x4B,0xDA,0x2A,0xBB,
0x4E,0xDF,0x2F,0xBE,0x8C,0x1D,0xED,0x7C,
0x44,0xD5,0x25,0xB4,0x86,0x17,0xE7,0x76,
0x83,0x12,0xE2,0x73,0x41,0xD0,0x20,0xB1,
};
#define DATASIZE (sizeof(xxx.NonWFData)+ \
sizeof(xxx.WFData[15]))
unsigned char Data[DATASIZE];
unsigned char crc = 0;
CalcCSum() // Calculate the checksum
{
int i;
for(i=0; i<DATASIZE; i+=1)
{
crc = CSumTbl[crc ^ Data[i]];
}
}
“ocoSeqNum” — This member is the ones-complement of
“xxx.SeqNum”. “xxx.ocoSeqNum” is used along with
“xxx.SeqNum” to establish and verify block
synchronization. See the discussion of block
synchronization.
“ocoSeqNum” is calculated as follows:
8555ER Rev 03 Page 39 of 47
26 March 2009