На всякий случай привожу фрагмент своего кода.

var i, j, Addr: Cardinal;
pc: array[0..127] of Char;
val: cardinal;
znak: byte;
Exponent: byte;
Mantiss: word;
Result: real;
temp: word;
begin
StatusBar1.Panels[0].Text:='';
StatusBar1.Panels[1].Text:='';
try
Addr:=StrToInt(edAddr.Text);
except
exit;
end;
// 'c.sP' Уставка Целый с десятичной точкой
i:=0;
try
i:=ReadUInt(Addr, 0, 'c.sP', val, -1);
except
end;

znak:=Hi(val) and ($80);
Exponent:=Hi(val) and ($70);
Mantiss:=(val and $0FFF);
{}
Result:=Mantiss;
for j:=1 to Exponent do
Result:=Mantiss/10;
if znak=1 then Result:=Result * (-1);
{}
lblUstavka.Caption:=FormatFloat('0.00', Result);
{}
LastErrToStr(pc);
lblErr1.Caption:=IntToStr(i)+' '+pc;
StatusBar1.Panels[0].Text:=IntToStr(i);
StatusBar1.Panels[1].Text:=pc;