Up-Case Table Directory Entry

Offset Size Description Comments
0 (0x00) 1 EntryType 0x82
1 (0x01) 3 Reserved1
4 (0x04) 4 TableChecksum Up-case Table checksum
8 (0x08) 12 Reserved2
20 (0x14) 4 FirstCluster
24 (0x18) 8 DataLength

The checksum is calculated against DataLength bytes of Up-case Table according to the following code:

UNIT32 UpCaseTableChecksum(constunsignedchardata[], intbytes)
{
UINT32 checksum = 0;
for (inti = 0; i < bytes; i++)
checksum = (checksum<< 31) | (checksum>> 1) + data[i];
return checksum;
}