GFA-Basic 3.0 - ein Genie-Streich

Schneller und besser, vor allem aber komfortabler sollte sie sein: die Version 3.0 von GFA-Basic.

Umfangreicher als die vorangegangene Version ist sie. Doch ist sie wirklich komfortabler und vor allem auch wesentlich besser?

Was die Befehlsvielfalt betrifft, da ist GFA-Autor Frank Ostrowski (siehe Seite 140) ein weiter Wurf nach vorn geglückt. Immerhin hat GFA-Basic 3.0 einen Umfang von fast 400 Befehlen. Zum Vergleich: Die Vorgängerversion 2.0 hatte gerade mal etwas über 200 Befehle.

Das neue GFA-Basic hat beispielsweise viele neue Befehle, die sich mit der Programmierung von GEM befassen, zum Beispiel »APPL__ INIT«, »OBJC_DRAW« oder »WIND_CALC«. Bevorzugen Sie die komfortable Bedienung mit der Maus in Ihren Programmen, dann haben Sie in GFA-Basic 3.0 eine wahre Fundgrube. Aber auch Befehle, die schon sehr in die Tiefen des Computers gehen, finden sich im neuen Basic, wie zum Beispiel »BCLR« (Bit löschen), »SWAP« (oberes Byte und unteres Byte eines Wortes vertauschen) oder »SHL« (verschiebe nach links). Dies sind Befehle, die man normalerweise nur in Assembler verwendet und die sehr fehleranfällig sind, benutzt man sie im falschen Augenblick.

In Version 3.0 sind die guten Eigenschaften vieler Programmiersprachen, zum Beispiel Pascal, C und Assembler, vereinigt. GFA-Basic 3.0 ist eine neue Programmiersprache, vergleichbar mit Pascal, jedoch ohne dessen Schwächen. Weil diese neue Basic-Version wesentlich komplexer geworden ist, ist sie für den Einsteiger schwieriger zu erlernen. Die Befehlsvielfalt ist sehr verwirrend.

Der Editor: praktisch und gut

Der Umfang des Interpreters hat um fast 30 KByte zugenommen. Trotzdem ist GFA-Basic nach wie vor genauso schnell geblieben. Man hat sogar das Gefühl, der Editor ist gegenüber der Version 2.0 etwas schneller. Wie gewohnt, findet man am oberen Bildschirmrand die Kopfzeile mit ihren elementaren Bedienungsfunktionen. Die sind weiterhin über die Funktionstasten zu erreichen. In der linken Ecke ist das Atari-Zeichen hinzugekommen, mit dem man auf einen GEM-Bildschirm mit Menüleiste umschalten kann. In der rechten Ecke sind es eine Uhr und die Anzeige der aktuellen Zeile, in der sich der Cursor im Moment befindet.

Prima Prozeduren und Funktionen

Von der Menüleiste des zweiten Bildschirms (hinter dem Atari-Zeichen) aus sind die Accessories erreichbar, die jetzt endlich auch unter GFA-Basic verwendbar sind. Unter dem Menütitel »GFA-Basic« findet sich neben »Save« und »Load« auch »Deflist«, mit dem man das Aussehen des Basic-Listings bestimmt. Zum Beispiel können alle Basic-Befehle und Funktionsnamen in Großbuchstaben dargestellt werden.

Eine weitere praktische Eigenschaft des Editors ist die Funktion, Prozeduren auf- und zuzuklappen. Dazu fährt man einfach mit dem Cursor auf eine Prozedur, drückt die < Help > -Taste und schon ist der gesamte Inhalt der Prozedur, bis zum nächsten »Return«, vom Bildschirm verschwunden. Natürlich ist der Inhalt noch vorhanden, aber eben nicht mehr sichtbar. Das komplette Programm wird trotzdem so abgearbeitet wie sonst auch. Dies macht ein Programm um ein Vielfaches lesbarer. Bei der Fehlersuche kann man getestete Prozeduren einfach ausblenden, und sieht auf dem Bildschirm nur noch eine Prozedur. So kann man sie testen und danach unsichtbar machen und die nächste vornehmen.

Frank Ostrowski gab seinem neuen Basic eine weitere gute Eigenschaft mit auf den Weg: die Interruptprogrammierung. Bisher die Domäne der Assembler-Programmierer. Die beiden Befehle »EVERY« und »AFTER« machen nichts anderes, als nach (AFTER) einer bestimmten verstrichenen Zeit, oder in einem bestimmten Zeitintervall, immer wieder (EVERY) eine Prozedur aufrufen. Damit können Sie bestimmte Abfragen zu einem festen Zeitpunkt ausführen lassen, egal was das Programm ansonsten gerade macht. Zum Beispiel wollen Sie jede Sekunde einmal die Maustasten abfragen:

EVERY 200 GOSUB maustastentest
PROCEDURE maustastentest

Der Interruptzähler zählt alle 200stel Sekunde um eins weiter. Schreibt man also EVERY 200, dann ist dies eine Sekunde.

Neue Befehle erleichtern die Ablaufsteuerung eines Programms. Sie kennen das Problem: In einem Programm müssen Sie verschiedene Kriterien abfragen, zum Beispiel Abfragen bei der Tastatureingabe. Bei der früheren Version mußten Sie sich mit endlosen IF.THEN-Abfra-gen behelfen. Dieses Verfahren machte ein Programm unübersichtlich und fehleranfällig. GFA-Basic 3.0 bietet die aus C bekannte CASE-Funktion. GASE ist nichts anderes als viele IF.THENs hintereinander geschaltet, nur eleganter und übersichtlicher.

Schleifen in großer Auswahl

Neben der CASE-Funktion bietet die 3.0-Version auch noch weitere »Mehrfachentscheidungsanweisungen« wie SELECT, DEFAULT, END-SELECT und CONT.

In der vorhergehenden Basic-Version gab es schon einige Schleifen-Typen. Diese sind um die DO- und LOOP-Schleifen erweitert worden. Während es vorher nur DO..LOOP gab, gibt es in der Version 3.0 die Form DO..WHILE und DO..UNTIL sowie LOOP.WHILE und LOOP.UNTIL. Diese neuen Schleifenfunktionen sind aber im Prinzip unnötig, da man mit der DQ.LOOP-Schleife genausogut programmieren kann.

Eine lobenswerte Erweiterung sind dahingegen die Funktionen. Basic kennt ja bekanntlich DEFFN als Definition einer einzeiligen Funktion, die anschließend mit FN aufzurufen ist. Die meisten Basic-Dialekte haben DEFFN implementiert, so auch die alte GFA-Basic-Version. Besonders interessant sind ' aber mehrzellige Funktionen, die man mit FUNCTION definiert, so wie Sie es auch von Pascal her kennen. Prinzipiell ist FUNCTION eigentlich nichts anderes als eine PROCEDURE, nur daß die FUNCTION einen Wert zurückliefert, nämlich das Ergebnis der Funktion. Die Funktionen können auch sich selbst aufrufen (ineinander ver-schachteln), arbeiten also rekursiv. Die umfangreichste Erweiterung des Basic ist die Einbindung der GEM-Funktionsaufrufe. Jetzt kann man ohne Aufwand Programme entwickeln, die eine GEM-Bedienungs-oberfläche besitzen. Neben den umfangreichen Grafik-Befehlen zum Definieren von Farbe oder Mausform, Zeichnen von Linien, Ellipsen und Kreisen, Bestimmen von Bildschirmausschnitten, gibt es auch Befehle zur Fenster- und Ereignisverwaltung. Zum Beispiel die Menüverwaltung mit den ON MENU-Befehlen.

Zu den neuen Befehlen gehören die LINE-A-Aufrufe. Diese besonderen Grafik-Routinen des Betriebssystems waren bisher nur von wenigen Programmiersprachen unterstützt, meist mußte man die Aufrufe in Assembler programmieren.

GEM ganz einfach programmiert

Entscheidend für eine GEM-Bedienerführung sind die sogenannten AES-Bibliotheken, die ein Teil des Betriebssystems sind. Hier geht es um Fensteraufbau, Aufbau eines Menüs, Ereignisverwaltung und Grafikbibliothek. In den älteren Versionen des GFA-Basic mußte man häufig mit PEEK- und POKE-Befeh-len arbeiten, um ähnliche Ergebnisse zu erhalten, wie es jetzt mit dem GFA-Basic 3.0 zu realisieren ist.

Da fast alle AES-Befehle im neuen Basic integriert sind und man diese recht einfach aufrufen kann, wird GEM-Programmierung schon fast zum Kinderspiel.

Doch wer braucht die Befehle? Der Einsteiger wird von der Funktionsvielfalt überfordert. Ohne gute Kenntnisse in Basic (zum Beispiel von einem anderen Computer) oder einer anderen Programmiersprache (wie Pascal, Modula 2 oder C) sollte er sich nicht an GFA-Basic 3.0 heranmachen.

Der Profi-Programmierer und auch viele ernsthaft am Programmieren Interessierte hingegen lächeln über Basic sowieso und halten GFA-Basic darüber hinaus für ungeeignet, weil man auf einen Computer beschränkt ist. Sie ziehen C oder Modula 2 als Hochsprachen vor. Wenn es wirklich sein muß, dann programmiert man .auch mal in Assembler. Bei Spielen ist es sowieso schon zur Pflicht geworden. Selbst das sehr schnelle GFA-Basic ist für wirklich anspruchsvolle und vor allem sehr schnelle Spiele viel zu langsam. Das war bei der Version 2.0 so und ist bei der Version 3.0 nicht anders.

Ideal für Anwender, die C nicht mögen

Nur für die engagierten Hobby-Programmierer und semiprofessionellen Anwender, die sich bestimmte Programme oder Programmteile selbst schreiben wollen, ohne auf C ausweichen zu können, ist GFA-Basic 3.0 die ideale Programmierumgebung.

Für Besitzer der alten Version 2.0 stellt sich aber die Frage, ob sie umsteigen sollen. Kurze Hilfsprogramme, für die man keine größeren Pläne machen muß und keine GEM-Bedienung braucht, die man einfach mal schnell eintippt und dann laufen läßt, kann man auch weiterhin mit GFA-Basic 2.0 schreiben. Für umfangreiche Programm-Projekte ist hingegen die Version 3.0 sinnvoll, will man sich von GFA-Basic unbedingt trennen.

Kompatibel oder nicht?

Der Austausch von Programmen zwischen der Version 2 und der Version 3 ist relativ einfach. Man speichert das Version-2-Programm als LST-Datei (SAVE.A) und lädt es anschließend in der 3.0-Version mit dem Befehl MERGE. Einige Befehle funktionieren allerdings nicht mehr so wie früher, vor allem die Grafik-Befehle. Hier muß man die Anpassung dann per Hand vornehmen. Bei Programmen, die GEM-Funktionsaufrufe beinhalten, ist die Umsetzung problematischer. Wenn nichts läuft, bleibt keine andere Wahl als die entsprechenden Prozeduren und Befehle zu ersetzen.

Wir werden auch in Zukunft Basic-Listings in der Version 2 veröffentlichen und nur in Ausnahmefällen in der Version 3. Wir werden in Zukunft unsere Programme so gestalten, daß sie in beiden Versionen laufen. So müssen Sie auch zukünftig nicht auf gute Programme verzichten, (kl)

Auf einen Blick

Name: GFA-Basic 3.0

Lieferumfang: Diskette und Handbuch (450 Seiten)

Preis: 198 Mark

Uns gefällt: guter Editor, Nutzung der Accesso-ries, viele neue sinnvolle Befehle

Uns gefällt weniger: Uhr im Editor nicht abschaltbar, AES-Befehle sind immer aktiv und verbrauchen Speicher, auch wenn sie nicht genutzt werden, nicht voll aufwärtskompatibel

Wertung: • • • (von 6)

Kaufen oder nicht kaufen?

GFA-Basic 3.0 ist gut. Nur die Strategie, die dahintersteckt, nicht. Dem Verbraucher wird mit viel Wirbel etwas Neues für viel Geld angedreht, was so neu nicht ist. Von den neu implementierten Befehlen sind 10 Prozent wirklich sinnvoll, die anderen 90 Prozent braucht man nicht unbedingt. Wer schon die Version 2.0 von GFA-Basic besitzt, sollte das Geld für die 3.0-Version besser in einen Assembler oder C-Compiler investieren. In GFA-Basic hat man nämlich nicht alle GEM-Funktio-nen zur Verfügung, wie das bei C oder Assembler der Fall ist.


Thomas Kaltenbach
Aus: Happy Computer 07 / 1988, Seite 129

Links

Copyright-Bestimmungen: siehe Über diese Seite