The POINT:DATA_START parameter is a single signed integer value. This value is a pointer to the first block of the 3D/analog data section within the C3D file and must always be used to determine start of the data section. A C3D block is always 512 bytes long (256 sixteen-bit words). The first block is always block number one and contains data structures (header records etc.) that indicate the contents of the file.
Since the POINT:DATA_START parameter is a 16-bit signed integer parameter, this limits the location of the first block of 3D data storage to within the first 16Mb of the C3D file. By interpreting this parameter as an unsigned integer with a range of 0 to +65535 which extends the position of the start of the 3D/Analog data storage section to anywhere within the first 32Mb of the start of the C3D file. The use of an unsigned value for this parameter would be flagged if the parameter returned a negative value when read as a signed integer.
Although located in the POINT group, this parameter is required even when the C3D file only contains analog data, as analog data is stored in the 3D data section.
A copy of the DATA_START parameter value can also be found stored in word 9 of the C3D file header to enable software applications to quickly locate the start of 3D data without requiring them to read the entire parameter section. The POINT:DATA_START header value should always be identical to the parameter value.