Hi Pete! Please help to sort out this issue. This is my sample code in C# reading values from 0570 and 0574 offsets: 
	 
 
        int altInt = 0;
        int altFract = 0;
        public double GetAltitude (ref Fsuipc fsui)
        {
            int token = new int();
            bool result = new bool();
            int dwResult = -1;
            result = fsui.FSUIPC_Read(0x0574, 4, ref token, ref dwResult);
            result = fsui.FSUIPC_Process(ref dwResult);
            result = fsui.FSUIPC_Get(ref token, ref dwResult);
            altInt = dwResult;
            result = fsui.FSUIPC_Read(0x0570, 4, ref token, ref dwResult);
            result = fsui.FSUIPC_Process(ref dwResult);
            result = fsui.FSUIPC_Get(ref token, ref dwResult);
            altFract = dwResult;
            return CalculateNumber(altInt, altFract);
        }
        
        public static double CalculateNumber(int integerPart, int fractionPart)
        {
            return integerPart + fractionPart / (Math.Pow(10d, Math.Floor(Math.Log10(fractionPart) + 1)));
        }
	This code works fine except that cases when the fractial part is going negative and i receive such an output like this (where the "??????"  stands for NaN):
 
	-39.2589834903434;176.890642367512;1536.1331560448 
	-39.2589705535967;176.89063817336;1529.359530496 
	-39.2589521142119;176.890632849115;1523.1671954432 
	-39.2589391723849;176.890628650765;1516.1083768832 
	-39.2589209205589;176.890623346235;???????? 
	-39.2589085795789;176.890619044647;???????? 
	-39.2588956332209;176.890614866274;???????? 
	-39.2588744544625;176.890609329054;???????? 
	-39.2588562583823;176.890605053622;???????? 
	-39.2588435700205;176.890599573182;1479.275316736 
	-39.2588255948642;176.890595332712;1473.1923350528 
	-39.2588132538842;176.890590821005;1466.151519232 
	-39.2587958814971;176.890585272603;???????? 
	-39.2587833990929;176.890580778234;???????? 
	-39.2587573968074;176.890574983868;???????? 
	-39.258744840533;176.890570560876;????????
 
	Please help to sort out!