Turbo-Pascal-Quelltexte

Auch wenn wohl nur noch wenig DOS-Programme eingesetzt werden, ist es für Anfänger, z.B. auch für Schüler im Informatikunterricht sehr sinnvoll, sich zunächst der Turbo-Pascal-Entwicklungsumgebung zu bedienen, um sich mit einer Programmiersprache vertraut zu machen. Pascal ist insbesondere aus didaktischen Gesichtspunkten eine gute Wahl.
Turbo-Pascal lässt sich problemlos auch in einer Windows-Umgebung installieren und nutzen. Bei Windows 98, 2000, XP, sowie Windows 7 und 8 in der 32-bit-Version funktioniert das direkt. Auf 64-bit-Systemen (Windows 7 und 8) kann man es unter der DOSBox laufen lassen (weitere Informationen).
Die Vers. 5.5 steht übrigens kostenlos zur Verfügung.

Probleme mit compilierten Pascal-Programmen auf schnellen Rechnern

Als Turbo-Pascal auf den Markt kam, waren die Rechner noch sehr viel langsamer als heute. Die übliche Taktfrequenz für 286-CPUs war 8 MHz, die für 486-CPUs 33 MHz. Dass die Rechner einmal viel schneller würden, hat man damals leider beim Programmieren der Bibliotheken nicht vorausgesehen.
Wenn man jetzt auf einem schnelleren Rechner ein mit den Originalbibliotheken übersetztes Programm (Exe-Datei) laufen lässt, führt das sofort zu dem Laufzeitfehler Runtime Error 200: Division by zero. Ursache dafür ist der Initialisierungsteil der Unit CRT. Hier wird für den Delay-Befehl ein von der Taktfrequenz des Rechners abhängiger Schleifenzähler ermittelt.
Bis Turbo-Pascal 6 wurde dafür ein 16-bit-Wert verwendet, der bereits bei einem Takt von ca. 20 MHz überläuft. Bei Turbo-Pascal 7 wurde er daher auf 32 Bit vergrößert. Das sollte eiegentlich noch bis zu sehr viel höheren Taktfrequenzen ausreichen, trotzdem gibt es bereits bei Taktfrequenzen ab ca. 200 MHz einen Fehler. Ursache dafür ist eine nachfolgende Division durch 55, die einen Überlauf verursacht (das Ergebnis ist größer als 16 Bit). Fälschlicherweise wird dies dann als "Division durch 0" gemeldet.

Es gibt verschiedene Möglichkeiten, dieses Problem zu beheben:

Patch für die ausführbaren Programme

Der folgende Patch kann auf alle mit TP/BP 6.0/7.00/7.01 compilierten Pascal-Programme angewendet werden. Er fügt die erforderlichen Änderungen in die Exe-Datei ein. Eine Beschreibung in Deutsch und Englisch ist in dem von Andreas Bauer bereitgestelltem Paket enthalten.

Patch für die Bibliotheken

Wenn man die Quelltexte hat und diese neu compilieren will, benötigt man eine geeignet gepatchte Bibliothk Turbo.tpl.

Weitere Informationen

Turbo-Pascal Units

Beschreibung Version Größe Download
Sammlung von Unteroutinen für verschiedene Zwecke
Stringverarbeitung, Dateinamen zerlegen und zusammensetzen, blockweises Lesen und Schreiben von Dateien, Routinen für nullterminierte Strings, mathematische Funktionen
Dez. 2001 20,4 kB units.zip
Datentransfer über die serielle Schnittstelle
Pascal-Version: Eine Schnittstelle (COM1,..,COM4), interruptgepuffertes Lesen und Schreiben, Beispielprogramme
Apr. 2001 6,59 kB comdrv.zip
Datentransfer über die serielle Schnittstelle
TSR-Version: Pascal-Interface zu Assembler-TSR-Programmen (in den Speicher ladbare Programme) für 1 bis 8 serielle Schnittstellen
Sep. 2000 60,7 kB comxdrv.zip

Turbo-Pascal Programme

Beschreibung Version Größe Download
Ausdrucken von Turbo-Pascal-Programmen
Erweiterte Ausdruckmöglichkeiten innerhalb der IDE (Seitenformatierung, Postscript-Ausgabe)
Apr. 1994 17,1 kB tpr.zip
Festplattenwerkzeuge:
Sichern und Zurückspeichern des Master-Boot-Records (MBR), Rekonstruktion der Partionierung einer Festplatte
Jun. 2008 18,5 kB part-tools-s.zip

Weitere interessante Informationen zu Turbo-Pascal