Neues ST-Pascal von CCD

In der Februar-Ausgabe berichteten wir über dem ST-Pascal-Compiler von CCD. Seit einiger Zeit gibt es eine neuere Version, die einige nützliche Erweiterungen enthält. So wurde diese Version (1.4) um Grafikoperationen bereichert, die Line-A-Routinen, die einfache Grafiken ohne Benutzung von GEM-Prozeduren ermöglichen, sowie einige Befehle zur Dateibearbeitung (SEEK, CLOSE, HANDLE) und zur Abfrage der Uhrzeit.

Der Linker wurde durch einen neuen (’FASTLINK“) ersetzt, der wie sein Name schon sagt, um einiges schneller arbeitet als sein Vorgänger. In Kombination mit einer Ramdisk gehen der Compilier- sowie der Linkvorgang sehr schnell vonstatten. Eventuell auftretende Fehlermeldungen können dabei neben dem Bildschirm auch auf dem Drucker oder auf ein Diskettenfile protokolliert werden.

Den Besitzern der alten Version wurde die verbesserte Version zum Selbstkostenpreis automatisch zugeschickt; ein erfreulicher Service.

Die LINE-A-GRAFIK

LINE-A stellt den Grafikkern des ST dar, in ihm sind elementare Routinen enthalten, auf die auch die GEM-Routinen zurückgreifen. Diese Grafikroutinen sind das auffallendste an der neuen Pascal-Version. Sie ermöglichen eine bequeme Programmierung von einfachen und schnellen Grafiken, ohne Zugriffe auf die VDI-Bibliothek, und werden wie normale Pascal-Prozeduren aufgerufen.

Insgesamt sind es 13 neue Routinen, die die Programmierung von Grafik unterstützen:

Die Prozedur PUT___PIXEL setzt einen Bildschirmpunkt an eine durch eine x- und eine y-Koordinate bestimmte Stelle, wobei je nach Bildschirmauflösung die Farbe bzw. Schwarz oder Weiß gewählt werden kann. Das Gegenstück dazu stellt die Funktion GET___PIXEL dar; sie prüft, ob ein Punkt gesetzt ist, und welche Farbe ihm zugeordnet ist.

Die Prozedur LINE verbindet, wie der Name schon sagt, zwei Punkte miteinander. Die Form der entstehenden Linie ist dabei frei wählbar. So können gepunktete, gestrichelte Linien oder sonstige Linienformen, beispielsweise Hilfslinien bei technischen Zeichnungen, erzeugt werden. Weiterhin kann man durch einen Parameter den Grafikmodus, in dem die Linie gezeichnet wird, festlegen (Überschreiben, Mischen, Revers oder XOR).

Die Funktion HLINE zieht eine horizontale Linie. Diese Prozedur unterscheidet sich von LINE durch zwei Punkte. Zum einen arbeitet sie bedeutend schneller und zum andern bietet sie die Möglichkeit zum Erzeugen von Füllmustern. FILL___RECTANGLE zeichnet ein ausgefülltes Rechteck, dessen Farbe und Füllmuster frei wählbar sind.

Zum Zeichnen eines beliebigen Vieleckes dient die Prozedur FILL_POLYGON, sie verbindet eine beliebige Anzahl von Punkten miteinander und füllt die entstehende Fläche aus. Auch hier wird das Füllmuster in der entsprechenden Anzahl Parameter festgelegt sowie der Grafikmodus.

Die Prozedur SET__CLIPPING legt einen Bildschirmbereich fest, der bei allen Bildschirmausgaberoutinen nicht verlassen werden kann. Dies ist sehr nützlich, da sich der Rechner bei zu großen Koordinaten sehr gerne verabschiedet und den Benutzer mit einer ’Bombenreihe’ zum Neubooten auffordert. Die Textausgabe wird durch die Prozedur PUT CHAR unterstützt. Sie gibt ein Zeichen an einer definierten Stelle in alle bekannten Schriftarten aus (z. B. Kursiv- oder Fettschrift). Dabei sind 24 Kombinationen möglich, die zusätzlich noch durch verschiedene Schriftgrößen und Schriftwinkel ergänzt werden. Zur Steuerung der Maus sind die Prozeduren SHOW___MOUSE, LODE___MOUSE und NEW_MOUSE vorhanden, die den Mauszeiger sichtbar bzw. unsichtbar machen sowie ihm eine neue Form verleihen.

Dazu müssen zwei 16 Wort lange Variablen übergeben werden. Die erste legt das Muster der neuen Maus fest, die zweite verändert den unter der Maus liegenden Hintergrund insofern, daß die Maus auch auf gleichfarbenen Hintergrund gut erkennbar bleibt.

Neben der Maus wird auch die Programmierung von 'Sprites’ unterstützt. Dazu sind die Funktionen DRAW_SPRITE und UNDRAW_SPRITE vorgesehen. Das Muster des Sprites (16 ★ 16 Punkte) wird in einer Variablen, samt den Farbinformationen des Musters, übergeben.

Nutzung einiger LINE-A Routinen

Ein schneller Linker

Die Version 1.4 verfügt über einen neuen, schnelleren Linker, der bei der Arbeit mit Diskettenlaufwerk mehr als doppelt so schnell ist wie der alte. Bei Benutzung einer Ram-Disk ergibt sich nochmal ein Beschleunigungsfaktor von fast 12! Es werden nun ca. 2 200 Zeilen pro Minute gelinkt. Der Einsatz einer Ram-Disk zahlt sich auch beim Com-pilieren aus, wobei aber ein Geschwindigkeitsgewinn von 'nur' ca. 300 % erreicht wird, bei einer Compiliergeschwindigkeit von etwa 300 Zeilen pro Minute. Die ist im Zugriff auf das normale Laufwerk begründet, da das Programm bei jedem Compiliervorgang prüft, ob die Originaldiskette vorhanden ist. Vielleicht ändert sich das später auch noch einmal.

Die Entwicklung geht weiter

Es sind mit der vorliegenden Version 1.4 weitgehend alle Einschränkungen beseitigt worden, die die Version 1.0 kennzeichneten. Doch CCD gibt sich damit keinesfalls zufrieden. Wohl auch durch die angekündigte Version 4.0 des Turbo-Pascal von Borland für die ST-Serie wird an einer neuen ST Pascal-Version gearbeitet, die alles übertreffen soll: Das ST-Pascal + .

Es wird nach Angaben von CCD bei Erscheinen dieser Ausgabe der ’ST-Computer’ (Ende April) erhältlich sein. Die Arbeiten an dieser Version sind zur Zeit so gut wie abgeschlossen, wobei nur das Handbuch noch seine Zeit benötigt. Dies ist auch leicht zu verstehen, denn es soll seinen Namen nun zu recht tragen. Es ist ein Umfang von 200-300 Seiten geplant!

Die trotz der vielen Verbesserungen immer noch recht umständliche Bedienung der einzelnen Funktionsmodule des ST-Pascal soll mit einer Turbo-Pascal-ähnlichen Benutzeroberfläche wesentlich erleichtert werden (EASYPAS läßt grüßen!). Wie bei Turbo-Pascal wird bei Auffinden eines Fehlers direkt in den Editor gesprungen.

Die zweite Verbesserung wird durch das Einbinden fast aller GEM-Routinen erreicht, die dann, ähnlich der Line-A-Routinen, eine bequemere Programmierung der Grafikmöglichkeiten des ST ermöglicht. Zusätzlich wird der lange angekündigte Optimizer geliefert, der den Programmcode in Hinsicht auf Speicherplatz und Geschwindigkeit optimiert. Die Möglichkeit, von Pascal aus Peeks und Pokes benutzen zu können, ist von CCD erwogen worden. Es würde zwar bei Benutzung dieser Routinen keine Portabilität der Software zu anderen 68000-Systemen mehr bestehen, jedoch hätte man ein Mittel in der Hand, zusätzliche oder selbstentwickelte Hardware zu programmieren.

Die endgültige Entscheidung darüber ist noch nicht gefallen. Das ST-Pascal + wird bei Erscheinen jedem Benutzer einer alten Version gegen einen Aufpreis von ca. 100,— DM geliefert. Der Normalpreis wird bei ca. 298,- DM liegen.

Mit diesem Pascal-Compiler könnte es CCD wirklich gelingen, sich im 68000-Bereich gegen Turbo-Pascal zu behaupten und neuen Standard zu setzen.

(JM)



Aus: ST-Computer 05 / 1986, Seite 54

Links

Copyright-Bestimmungen: siehe Über diese Seite