                                         123456789abcdef0123456789abcdef012345678
                                         47A20193224B2A24B2A24B2A23F2A29C2A2B2130 
26B20 14000 3034445430                   47A20193224B2A24B2A24B2A23F2A29C2A2B2130 11920 03F66
26B20 35000 C0142434445464748494A4B4C4C0 47A20193224B2A24B2A24B2A23F2A29C2A2B2130 11920 0A23D
26B20 D3000 101410                       47A20193224B2A24B2A24B2A23F2A29C2A2B2130 11920 0508A00000000000000
01234 56789 abcdef                       0123456789abcdef0123456789abcdef01234567 89abc def012
0                                        1               2               3       
crc c000a 30
CRC from C000A -> C003A : 5DC5
CRC from C000A -> C0037 : 93D3

     0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
                     1               2               3               4

unsigned int crc ( word_20, int len)
{
  unsigned int crc = 0;
  unsigned int new_nib;

  while (len--)
   {
     new_nib = (crc ^ nib(addr++)) & 0xf;
     crc = crc >> 4;
     crc ^= (new_nib | (new_nib << 7) | (new_nib << 12));
   }
   return crc;
}
