Pascal zum Spartarif - KatCE-ST

Pascal-Programmierer auf ST-Computern haben seit langem die Wahl zwischen mehreren vorzüglieben Entwicklungspaketen. Um so erstaunlicher, daß ein neues Pascal-System für einige Überraschungen gut ist. Die Rede ist hier von »KatCe-ST«, einem in vielen Aspekten ungewöhnlichen Pascal-Entwicklungspaket.

In einer Datei von nur 85 KByte Länge sind Editor, Compiler, Assembler und, Monitor zusammengefaßt. Alle Module bleiben während der Programmentwicklung speicherresident. Nicht gerade alltägliche Werte deklarieren die Hersteller hinsichtlich der Compilierungs-Geschwindigkeit. Der Compiler soll 300 Zeilen Quelltext pro Minute übersetzen können.
Ursprünglich für den EinplatinenComputer »ct KatCe« entwickelt (daher auch der Name), wurde KatCe-Pascal im Laufe der Zeit auf andere Computer wie beispielsweise Gepard oder EPAC umgesetzt. Die hier getestete Implementation für den Atari ST stellt eine stark erweiterte Version dieses Programmes dar.

Zum Lieferumfang von KatCe-ST (Preis: 100 Mark) gehören eine Diskette und ein etwa 170 Seiten starkes Handbuch. Das knappe Handbuch enthält ausreichende Informationen für einen erfahrenen Programmierer. Anfänger in der TOS/GEM-Programmierung unter Pascal sollten sich allerdings mit Zusatzlektüre eindecken. Besonders die systemspezifischen Funktionsaufrufe (etwa AES, VDI, BIOS) sind nur referenzartig aufgeführt. Mit zunehmender Arbeit und Erfahrung erweist sich das Handbuch jedoch gerade wegen seiner präzisen, gerafften Darstellungsweise als kompaktes Nachschlagewerk. Auf der Diskette befinden sich neben dem Pascal-System einige Beispielprogramme, die die Benutzung der umfangreichen Bibliotheken in Programmierung und Funktion exemplarisch vorführen sowie einige notwendige Hilfsprogramme zum Wandeln der eigenwilligen Dateiformate, die KatCe-ST erzeugt und verwendet. Die Quelltexte sind nämlich in einem kompakten Format gespeichert, mit dem die Texte nur in vollständigen 512 Byte langen Blöcken abgelegt werden. Ein Text von 520 Byte Länge erzeugt auf der Diskette also eine 1024 Byte große Datei. ASCII-Texte lassen sich mit dem KatCeST nicht laden. Damit man nicht völlig vom Rest der Pascal-Welt abgeschnitten ist, liegen zwei Hilfsprogramme als Quelltexte bei, die Formatwandlungen zwischen ASCII- und KatCe-ST-Format vornehmen. Dabei gehen diese Programme allerdings sehr geruhsam zu Werke, denn beim Umwandeln von umfangreichen Texten sind die Kaffeepausen gleich mit einprogrammiert. Nervöse PascalProgrammierer sollten sich der vorliegenden Quelltexte bedienen und die Konvertierungsprogramme verbessern.

Auch die assemblierten und compilierten Binärdateien folgen einem speziellen »Strickmuster«. KatCe-ST speichert sie nämlich nicht als eigenständig laufende Programme. Daher muß man Pascal-Programmen erst die Runtime-Library hinzufügen, Assembler-Programme ohne Zugriffe auf Routinen der RuntimeLibrary benötigen den 28 Byte langen TOS-Header. KatCe-ST besteht aus den Modulen Editor, Pascal-Compiler, Assembler und Monitor. Nach dem Systemstart präsentiert sich eine eigene Benutzeroberfläche mit Textmenüs in mehreren Ebenen, aus denen die einzelnen speicherresidenten Systemmodule aufzurufen und zu steuern sind. Mausbedienung ist nicht vorgesehen.

Auf den ersten Blick glaubt man, vor Turbo-Pascal zu sitzen, bei genauerem Hinsehen sind außerdem Ähnlichkeiten mit UCSD-Systemen unverkennbar. Leider läßt die Benutzerfreundlichkeit der KatCe-ST- Oberfläche in einigen Punkten zu wünschen übrig. Dies liegt weniger daran, daß die Programmierer auf den Komfort von GEM völlig verzichtet haben. Vielmehr tauchen immer wieder kleine Ungereimtheiten in der Benutzerführung auf, die bei der Arbeit mit dem Pascal-System unangenehm ins Gewicht fallen. So läßt sich beispielsweise im Hauptmenü der Directory-Pfad festlegen. Hat man den richtigen Pfadnamen jedoch vergessen und ruft hoffnungsvoll die integrierte Directory-Funktion auf, so macht sich Enttäuschung breit: Im Direktory erscheinen lediglich die Dateinamen, Ordnernamen sind dort nicht verzeichnet.

Auf Tastendruck gelangt man, anders als bei Turbo-Pascal, nicht direkt in den Editor, sondern zunächst in ein Editor-Untermenü, aus dem die Dateioperationen Laden, Speichern und Löschen von Texten zugänglich sind. Selbstverständlich kann man in diesem Menü auch den Editor aufrufen. Das Untermenü erweist sich bei der Programmierarbeit als wahrer Bremsklotz. Aufruf und Verlassen des Editors laufen unvermeidbar über dieses Menü. Wesentlich bequemer wäre die Integration der Untermenüfunktioneu in das Hauptmenü gewesen.

Dem Editor ist sofort anzumerken, daß Turbo-Pascal beim Entwurf des KatCe-Systems Pate stand. Nahezu alle Tastaturkommandos entsprechen diesem Vorbild. Da sich Turbo-Pascal sehr stark an die Wordstar- Bedienung anlehnte, dürfte die große Schar der CP/Mgeschulten (Alt- )Anwender an diesem Editor ihre nostalgische Freude haben. Die GEM- verwöhnten Mausfetischisten dagegen müssen leider erst einmal zum Handbuch greifen, um Tastaturkommandos zu lernen. Da aber viele Edito- ren der Atari-Welt (beispielsweise GFABasic, Tempus) ebenfalls viele WordstarKommandos benutzen, dürfte die Einarbeitung recht schnell vonstatten gehen.

Der Pascal-Compiler stellt das Prunkstück des Paketes dar. Bei der im Handbuch angegebenen Compilierungs-Geschwindigkeit von 300 Zeilen/Minute scheint es sich um die Untergrenze zu handeln. Im Test wurde der angegebene Wert häufig überboten, jedoch nie unterschritten. Statt dessen konnten wir einen durchschnittlichen Durchsatz von 350 Zeilen/Minute messen.

Der Sprachumfang des Compilers weist keine besonderen Erweiterungen gegenüber dem von anderen Pascal-Implementationen auf dem ST gewohnten Standard auf. So lassen sich die meisten ST-Pascal-Quelltexte ohne Anpassung mit KatCe-ST neu compilieren. Alle üblieben Datentypen stehen zur Verfügung. Die Fließkommazahlen werden mit 13stelliger Genauigkeit (8 Byte Speicherplatz) berechnet. Integer-Zahlen belegen prinzipiell 4 Byte, Zwei-Byte-Integer sind nicht vorgesehen. KatCe-ST bietet ein umfangreiches Library-Angebot. Neben den normalen Pascal-Funktionen wie READ, WRITE oder RESET sind bis auf einige fehlende LINE-A-Routinen alle Systemaufrufe verfügbar, die GEMDOS, BIOS, XBIOS, LINE-A, AES und VDI anbieten. Im Gegensatz zu anderen PascalPaketen auf dem ST lassen sich die Routinen ohne vorherige Namensdeklaration direkt aufrufen.

Weitere Funktionen dienen der Programmierung auf Maschinenebene. Hier fällt auf, daß die ursprüngliche Heimat des KatCe-ST ein Einplatinencomputer war. So kann man zum Beispiel auf die Prozessorregister zugreifen oder die Interruptmaske des 68000-Prozessors verändern.

Maschinenroutinen sind unter KatCePascal auf verschiedene Weise zugänglich. Die Pascal-Funktion CALL ruft Routinen an einer absoluten Adresse auf. Dies ist vor allem dann nützlich, wenn auf die in einer Sprungtabelle organisiertcn Monitorroutinen von KatCe-ST zugegriffen werden soll, zum Beispiel zum Einsprung in den Disassembler und/ oder in den Editor. Im Zusammenhang mit logischen Verzweigungskonstrukten ergeben sich völlig neue Perspektiven für das Debugging eines Programmes während der Laufzeit.

Eigene Assembler-Routinen sind als Funktion aufrufbar. Neben den in der Assembler-Routine verwendeten Parametern muß man den Namen der an dieser Stelle einzubindenden Binärdatei angeben. Solche Dateien lassen sich mit dem integrierten Assembler entwerfen. Eleganter wäre es sicherlich, im PascalText den Namen der entsprechenden Assembler-Quelltext-Datei oder den Assembler-Text selbst einzugeben, den der residente Assembler beim Compilieren assembliert und in den Programmcode einfügt.

Mit der Verarbeitung von quasi-parallelen Prozessen hat KatCe-ST etwas Besonderes zu bieten. Darunter ist natürlieb nicht zu verstehen, daß der ST sich in eine Multitasking-Maschine verwandelt. Immerhin lassen sich aber Prozesse mit gestaffelten Prioritäten starten und stoppen. Bei wenig rechenintensiven Hintergrundprozessen macht sich der Geschwindigkeitsverlust im Hauptprogramm kaum bemerkbar.

Der Assembler gehört nicht zu den Prunkstücken seiner Art. So verwendet er nicht immer die von gängigen 68000-Assemblern her gewohnten Pseudo-Opcodes. Statt EVAN erwartet er zum Beispiel den Begriff SYNC. Wer Anwendungen schreiben will, die auch ohne das KatCe-ST-System lauffähig sind, darf in seinen Programmen ausschließlich relative Adressierungen verwenden, da der Assembler (der Compiler übrigens auch) keine TOS- kompatiblen Relokations-Informationen erzeugt.

Bei der Assembler-Programmierung darf ein Debugger nicht fehlen. Auch damit wartet das KatCe-ST-System auf. Allerdings handelt es sich dabei eher um einen Maschinensprache-Monitor, da die Debugging- Funktionen auf einen TraceBefehl beschränkt sind. An weiteren Funktionen stehen das Disassemblieren, der Hexdump sowie das Verschieben, Vergleichen und Ändern von Speicherbereichen zur Verfügung. Zusätzlich bietet der Debugger sogar einige wichtige Grundroutinen von Computer- Betriebssystemen wie Zeichen-Ein- und Ausgabe oder einen Editoraufruf. Für große Softwareprojekte ist KatCeST in seiner vorliegenden Form kaum geeignet. Dazu fehlt es dem Paket noch zu sehr an der Kompatibilität zum »Rest der (Programmiersprachen-)Welt« auf STComputern. Studenten und Schüler, die eine Pascal-Maschine benötigen, mit der sie Hausaufgaben aus dem Informatikunterricht, kleinere Projekte oder Forschungsarbeiten zu Programmiersprachen bewältigen wollen, sind allerdings mit unserem Testkandidaten bestens bedient. Aber auch Software-Tüftler, die »mal eben« den neuesten AlgorithmenKniff ausprobieren wollen, haben sicherlich ihre Freude an den niedrigen Turnaround-Zeiten dieses speicherresidenten Kompaktsystems. Die Pascal-Programmierumgebung, die dem Arbeitsverhalten eines Interpreters sehr nahe kommt, und nicht zuletzt der angenehm niedrige Preis des Paketes machen KatCe-ST zu einer guten Empfehlung.

W. Fastenrath/uh



Aus: ST-Magazin 09 / 1988, Seite 129

Links

Copyright-Bestimmungen: siehe Über diese Seite