Some of the OSHS binary file formats use somewhat strange length specifications. They are only 8-bit but allow the user to specify sizes up to 4GB. The actual 32 bit value may be computed from the 8 bit one using this function:
uint32 UnpackLength(uint32 Length)
{
uint32 Count;
uint32 Shift;
uint32 Add;
Count=(Length % 16) + 1;
Shift=Length / 16;
Add=((1 << Shift) - 1) << 16;
return((Count << (Shift + 12)) + Add);
}