ST-Pascal-Compiler von CCD

ST Pascal wird komplett auf einer Diskette und mit einem 45 Seiten ’dicken’ Handbuch geliefert, das dem Kunden auch gleich auf den ersten Seiten klarmacht, für welchen Kundenkreis es konzipiert ist. Der Pascal-Neuling sollte gar nicht erst versuchen, sich da hindurch zu kämpfen. Der Kauf eines ordentlichen Pascal-Lehrbuchs ist hier nicht zu umgehen.

Der Pascal Compiler ist mit einem Kopierschutz versehen. Es läßt sich zwar ein Backup erstellen welches aber nur in Verbindung mit der Originaldiskette lauffähig ist. Ein solches Backup stellt eine ausreichende Sicherheit dar und ist als eine akzeptable Lösung eines Kopierschutzes anzusehen.

Für den durchschnittlichen Benutzer des Atari ST, der nur über ein Diskettenlaufwerk verfügt, kommt nun der nächste Arbeitsschritt vor der eigentlichen Anwendung des Pascal-Systems: Man mache aus der Originaldiskette eine Compiler- und eine Linkerdiskette. Dies ist zum Glück nur einmal vonnöten und bleibt dem Besitzer eines zweiten Laufwerkes erspart.

Der Editor

Wenn dies alles vollbracht ist, kann es wirklich losgehen: Man legt die Compiler-Disk ein und lädt den vorhandenen Editor. Dessen Funktionen sind für die ordentliche Erstellung eines Pascal-Source Textes vollkommen ausreichend, wobei der automatische Tabulator zur übersichtlichen Gestaltung des Quelltextes sehr hilfreich ist. Nach der vollständigen Eingabe des Pascalprogrammes wird der Editor verlassen. Das editierte Programm wird als Datei abgelegt.

Der Compiler

Nun kann durch ein Batch-File der Compiler aufgerufen werden, der bei fehlerfreiem Quelltext eine Objektkode-Datei erzeugt. Der Compiler kann aber auch unter TOS Anwendung direkt aufgerufen werden.

Es sind auch einige nützliche Compileroptionen verfügbar, die die Programmerstellung vereinfachen. Es können aber auch Compileranweisungen direkt im Quelltext eingebettet sein. Sie werden durch ein nachgestelltes + oder - an- bzw. ausgeschaltet. Es existiert eine Auflistanweisung, die den Quellcode samt relativen Adressen auf dem Bildschirm ausgibt. Eine Einfügeanweisung, die es erlaubt, fremde Dateien in den Quellcode einzufügen. Eine Modulanweisung, die es ermöglicht Programmteile modular zu compilieren. Eine Debuganweisung sowie einige andere brauchbare Anweisungen, wie etwa Kontrolle auf Bereichsüberschreitung. Probleme gab es jedoch dabei, den Quellcode samt Compilerfehlermeldungen auf ein bestimmtes Ausgabegerät zu lenken. Der Compiler zeigt durch die LIST-Option zwar jede bearbeitete Zeile samt eventuell vorhandenen Fehlermeldungen auf dem Monitor, jedoch war es nicht möglich, in der kurzen Zeit, in der mit dem Compiler gearbeitet wurde, diese Ausgabe an einen Drucker oder eine Datei umzuleiten.

Dies ist vor allem bei der Erstellung komplexerer Programme ein großes Handicap, da der compilierte Text doch recht schnell über den Bildschirm huscht und die darin enthaltenen Fehlermeldungen für den normalen Menschen nicht gerade ersichtlich werden.

Der Compiler erzeugt ca. 150 verschiedene . Fehlermeldungen in englischem Klartext, was heute eigentlich schon Standard ist. In ST Pascal ist das komplette Standardpascal nach Wirth und Jensen implementiert, das um die OTHERWISE- und LOOP-Anweisung erweitert wurde.

Des weiteren unterstützt es Random-Access Dateien, erleichtert die Handhabung von Dateien im allgemeinen und ermöglicht mit Einschränkungen die Darstellung doppelt langer Inte-gers. GOTOs sind nur innerhalb von Blöcken erlaubt.

Mit CHAIN kann von Pascal aus in ein fremdes Programm übergewechselt werden und mit EXTERNAL können externe Funktionen oder Prozeduren aufgerufen werden. Außerdem können Funktionen und Prozeduren als Parameter übergeben werden, was bei den meisten anderen heute verfügbaren Pascalsystemen nicht möglich ist. Zusätzlich wurde fast das gesamte UCSD-Pascal implementiert, was vor allem bei der String-verarbeitung von unschätzbarem Vorteil ist. Es fehlen die UNIT-Anweisungen ganz, was jedoch absolut nicht von Nachteil ist, da sie sowieso nur bei sehr wenigen Systemen vorkommen und die bei ST Pascal mögliche modulare Compilierung diese Anweisungen voll und ganz ersetzt.

Ein großer Vorteil von ST Pascal ist die Möglichkeit Prozeduren und Funktionen, die in Assembler oder C geschrieben sind, zu integrieren.
Um etwa die VDI-Funktion ’set fill color index’, also setzen der Füllfarbe, aufzurufen, ist in ST Pascal folgende Befehlsfolge nötig: PROCEDURE vsf color(handle,color index: integer); C;
Um AES-Routinen aufzurufen, wird genauso verfahren. Weiterhin ist es möglich, GEMDOS- oder BIOS-Funktionen direkt von ST Pascal aus zu programmieren.

Um den Rechner z. B. in den Warmstart zu versetzen, genügt die Befehlsfolge:

FUNCTION warm; GEMDOS(O);

ST Pascal ist so konzipiert, das auf dem Atari ST erstellten Programme auf jeden 68 000-Rechner unter GEM lauffähig sind. Mit diesen Fähigkeiten ausgestattet, ist es eine wahre Freude, mit ST Pascal zu programmieren.

Die Compilergeschwindigkeit des ST Pascal liegt bei etwa 260 Zeilen pro minute, was zwar nicht sehr beeindruckend ist, aber sich beim Arbeiten als erträglich erwies.

Der von dem Compiler erzeugte Objektcode hat im allgemeinen eine bis zu doppelte Größe wie der entsprechende Sourcekode.

Der Linker

Nun muß bei nur einem Laufwerk die Objektdatei von der Compilerdiskette auf die Linkerdiskette kopiert werden. Danach wird mit ’Li’ oder ’LGM1’ der Linker aktiviert.

Bei zwei Laufwerken wird mit dem Batch-Aufruf ’CL2’ bzw. ’CLGM2’ das Quellprogramm in einem Durchgang compiliert und gelinkt.

Der Linker, der übrigens von Digital Research stammt, bindet die benötigten Objektmodule und GEM-Anwendungen aus den mitgelieferten VDI- und AES-Bibliotheken in das Objektprogramm ein und generiert ein ausführbares Programm. Das Linken kann dabei ein vielfaches der Compilierzeit erreichen.

Zusätzlich werden noch zwei Pascal-Programme im Sourcetext mitgeliefert, an denen sich der Anwender mit compilieren und linken vertraut machen kann.

Vor allem das Programm CDOS demonstriert sehr schön die Anwendung von GEM-Routinen unter Pascal. CDOS erzeugt eine Grafik auf dem Bildschirm, die zwar weder besonders schön noch besonders schnell ist, aber die grundlegenden Möglichkeiten von ST Pascal ersichtlich macht.

Die Compilierzeit von CDOS betrug ca. 57 Sekunden und das Linken benötigte nochmal ca. 2 Minuten und 49 Sekunden. Das Quellprogramm hatte einen Umfang von 252 Zeilen und benötigte einen Speicherplatz von 5 673 Bytes. Als prg.-File belegte es 9 128 Bytes an Speicher und ist direkt, also ohne irgend ein ’run-time-module’, Interpreter oder ähnlichem, ausführbar.

Einige kleine Benchmarks ergaben einen Geschwindigkeitsvorteil gegenüber dem ST Basic von nur dem vier-bis fünffachen und bei dem .Speicherbedarf verlangte ST Pascal gleich einen bis zu 40 mal größeren Bereich.

Wobei ST Pascal eine sehr viel höhere Rechengenauigkeit angerechnet werden muß und kein kodeverkürzender Interpreter benötigt wird. Von CCD ist zu dem Problem der Geschwindigkeit und des recht großen Speicherplatzbedarfs schon eine Lösung angekündigt: Der Compiler soll demnächst um die Option ’Optimize’ erweitert werden, wordurch effizienterer Objektkode erzeugt werden soll.

Ferner ist ein besseres Handbuch angekündigt, das näher auf die Eigenschaften von ST Pascal auf dem Atari ST eingehen wird. Das vorliegende Handbuch bezieht sich noch im wesentlichen auf das CP/M-68K-Pascal, worauf das ST Pascal im großen ganzen aufbaut.

Für dieses neue Handbuch liegt dem Programmpaket ein Gutschein bei, bei dessen Einsendung das neue Handbuch zugeschickt wird. Bei der Fertigstellung dieses Berichts war jedoch noch nichts eingetroffen.

Fazit

Alles in allem ist ST Pascal für den anspruchsvollen Pascalanwender ein mächtiges Programmierwerkzeug. Die Fähigkeiten des Atari ST lassen sich damit fast vollständig ausschöpfen.

Es besteht zwar eine gewisse Anwenderunfreundlichkeit vor allem bei Benutzung von einem einzelnen Laufwerk. (Es kann einen an den Rand des Wahnsinns bringen, festzustellen, daß nach Überwindung der Compilierphase, die schon nervenzerfetzend genug ist, und nach kopieren des Objektprogrammes und anschließendem Linken immer noch etwas nicht stimmt.)

Auch die permanente Zerstörungsgefahr, die bei der Benutzung der Originaldiskette immer bestehen bleibt, hinterläßt keinen guten Eindruck.
Folgende Verbesserungsvorschläge sind angebracht: Die Entwicklung eines zusätzlichen Speicher-Residenten ST Pascal-Compilers zur Austestung der Programme und eine Grafik-Bibliothek, da die GEM-Programmierung bestimmt nicht jedem liegt und doch recht kompliziert ist. Auch eine Version für den Besitzer eines doppelseitigen Laufwerkes, da dort auch das häufige Diskettenwechseln entfallen würde.

In seiner Grundstruktur ist der ST Pascal-Compiler zur Zeit die beste Lösung, um anspruchsvolle Software unter Pascal auf dem Atari ST zu entwickeln.
Einige Einschränkungen werden wohl hoffentlich bei der nächsten Version beseitigt sein.

Vor allem für den Besitzer von zwei Laufwerken ist ST Pascal zu seinem gegenwärtigen Preis von 249 DM wirklich unübertroffen. Abzuwarten bleibt jedoch, wie gut Borland darauf mit einer auf den ST angepaßten Version von Turbo-Pascal kontern kann...



Aus: ST-Computer 02 / 1986, Seite 14

Links

Copyright-Bestimmungen: siehe Über diese Seite