Hi Dimitry, I found a problem with the compiled code for GCC 3.2.3.
If a structure is less than or equal to 128 bytes, an array of structures is accessed using shifts and adds to calculate the offset into the array. However, if the structure is more than 128 bytes the multiplier is used for these calculations. When shifts and adds are being used things work OK. When the multiplier is used the offset is calculated incorrectly.
Regards, Steve