Bueno, al parecer el ciclo nunca termina porque al inicializar Last1 y Last2 de esa manera, ambos quedan con una precisión de 1 que no alcanza ni para un entero de tres dígitos.
Lo he podido hacer así:
Código Delphi
[-]
var
s,t,u: TBcd;
begin
NormalizeBcd(IntegerToBcd(1), s, 21, 0);
NormalizeBcd(IntegerToBcd(1), t, 21, 0);
BcdAdd(s, t, u);
while Length(BcdToStr(u)) <= 20 do
begin
s := t;
t := u;
BcdAdd(s, t, u);
end;
Edit1.Text := BcdToStr(t);
end;
// Saludos