Startseite | Links | Kontakt | Der WebMaster |
| Know How |
| Tutorials |
| Quelltexte |
Turbo Pascal - SpezialWarum 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 ). 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 :
|