Turbo Pascal - Spezial


Warum TurboPascal-Compilate nicht auf neueren Systemen laufen, und was man dagegen unternehmen kann.

"Hilfe - meine Pascal-Programmme laufen nicht mehr !" , E-Mails mit diesen und ähnlichen Inhalt erreichten mich in letzter Zeit sehr häufig.

Viele Besucher von Programmer's World berichteten mir davon, daß ihre Programme, welche sie mit Turbo Pascal 7.0 geschrieben hatten, nicht mehr auf neueren Systemen funktionieren würden.

Nach langer Recherche und der kräftigen Mithilfe von Ihnen, liebe Besucherin/lieber Besucher, konnte ich die Lösung des Problems ausfindig machen.

Rechnersysteme, welche als CPU den Pentium II nutzen, führen bei TurboPascal-Compilaten ab der Version 7.0 zu Fehlfunktionen. Aufgrund der hohen Rechnergeschwindigkeit kommt es zu fehlerhaften Resultaten, bei wichtigen Berechnungen ( zB : beim DELAY() - Befehl ).

Dieser Fehler ist mit einen Patch, welcher u.a. auf folgenender URL zu finden ist, behebbar :
http://www.geocities.com/SiliconValley/Hills/1207/files/tp7patch.zip

Im folgenden können Sie einen Auszug aus einen Bericht, der C't lesen, welcher sich ebenfalls mit der Thematik beschäftigt.

Borland-Zeitbombe, c't 7/97, S. 232, gs

Mit dem Pentium II verwandeln sich bislang einwandfrei laufende Programme, die mit Borland Pascal in der Version 7.0 erstellt wurden, in Fehler-Generatoren. Statt wie auf einem Pentium oder Pentium Pro zu laufen liefern sie nur noch einen Runtime Error 200.

Will man auf ältere BP7-Programme nicht verzichten und den Rechner nicht künstlich ausbremsen, sind verschiedene Wege möglich. Wer BP7.0x samt Run Time Library (RTL) und die Programmsource besitzt, kann in CRT.ASM die fehlerhafte Routine korrigieren und mit Make die TPL-Dateien neu erstellen.

Im Regelfall verfügt man jedoch nur über die EXE-Datei. Hier hilft ein einfacher Patch eines Bytes weiter: statt durch 55 teilt man durch einen größeren Wert. Dadurch wird Delay zwar etwas verlangsamt, was sich aber nur in den seltensten Fällen kritisch auswirken dürfte. Ich schlage gleich eine Verdopplung von 55 auf 110 vor, dann hat man ein wenig Reserve. Das kann man mit einem Debugger machen, oder mit diversen Patch-Tools. Zum Beispiel mit dem c't-Programm SAR.


Special Thanks to :
  • GD
  • Thomas Pilgrim
  • Oliver Lind


    Turbo Pascal Teil 6 | Inhalt