Das neue ST-BASIC: Ein BASIC der Superlative?

Bild 1: Die 4 Fenster des BASIC

Wenn man sich heutzutage einen Home- oder Personalcomputer kauft, gehört es normalerweise fast schon zur Grundausstattung, daß vom Hersteller ein BASIC-Interpreter mitgeliefert wird. Dies war wegen Programmanpassungsschwierigkeiten bei der ATARI-ST-Serie bisher noch nicht möglich. Es wurden zwar schon mehrere immer wieder auf den neusten Stand gebrachte Vorabversionen zur Verfügung gestellt. Aber das endgültige BASIC ließ auf sich warten. Die Endversion erreichte uns nun kurz vor Redaktionsschluß und wurde natürlich sofort einem kritischen Test unterzogen. Enttäuschung machte sich allerdings breit, als wir feststellten, daß diese Version mit der bereits Anfang Oktober erhältlichen Vorabversion identisch war. Damit war sofort klar, daß noch einige kleine Mängel vorhanden sein dürften. Doch auf diese wird noch ein paar Zeilen später tiefer eingegangen werden. Mitgeliefert werden soll ein ausführliches deutsches Handbuch, das sich zur Zeit allerdings noch im Druck befindet, aber sobald wie möglich nachgeliefert wird. Uns stand deswegen nur die Fotokopie des englischen Originalhandbuchs zur Verfügung.

Im Gegensatz zu verschiedenen Gerüchten, die besagten, daß das ST-BASIC zusammen mit dem TOS im internen ROM, also in einem Mikrochip untergebracht, in den ATARI ST implementiert werden sollte, wird es nun doch nur auf Diskette ausgeliefert. Es ist allerdings durchaus denkbar, daß es später einmal als externes Steckmodul für den Cartridge-Schacht erhältlich sein wird.

Mehr Speicherplatz

Die von uns getestete endgültige ST-BASIC-Version ist mit 138 944 Bytes deutlich kürzer als ihre beiden Vorgänger, die ca. 150000 Bytes lang waren. Es bleibt allerdings das Speicherplatzproblem beim 260ST, dem nur 37 346 Bytes zur freien Verfügung bleiben. Hingegen der 520ST + mit seinen 528 864 Bytes schon mehr als reichlich versorgt sein dürfte. Sobald jedoch das TOS endlich in ROM-Form ausgeliefert wird, wird auch der Mangel an Speicherplatz behoben werden, da dann die über 200 KBytes des Betriebssystems dem BASIC zur Verfügung stehen.

Wer allerdings jetzt schon mehr Speicherplatz benötigt, der kann sich mit ein paar Tricks leicht bis zu ca. 70 KBytes verschaffen. Hierbei kann man auf zwei verschiedene Methoden Vorgehen.

Die erste Möglichkeit besteht darin, beim Laden des TOS von der Systemdiskette die DESK-Accessories wegzulassen. Dazu kopiert man am besten die Original-Systemdiskette (Die Erfahrung lehrt, daß es sich sowieso empfiehlt eine Sicherheitskopie anzulegen) und legt einen neuen Ordner an. In diesen Ordner kopiert man dann alle Dateien der Systemdiskette, die die Extension .ACC haben. Anschließend löscht man dieselben Dateien aus dem Hauptverzeichnis und behält somit eine Sicherheitskopie im Ordner zurück. Wenn man nun das System mittels des RESET-Knopfes neu startet, kann man feststellen, daß im Desktop die Einstellmöglichkeiten für die RS 232C-Schnittstelle, das Kontrollfeld und der VT52-Emulator fehlt. Dadurch gewinnt man über 20 KByte Speicher.

Bild 2: Das Edit-Fenster

Die zweite Möglichkeit besteht darin, den Grafik-Puffer im BASIC auszuschalten. Dazu geht man in das RUN-Menü des BASICs und findet dort den Menüpunkt BUF GRAPHICS. Ist nun vor diesem Punkt ein Häkchen, ist der Grafik-Puffer eingeschaltet. In diesem Falle schaltet man den Puffer mittels der Maus durch ein einfaches Anklicken aus (Dies ist bei einer Speicherkapazität von 512 KByte und dazugeladenen DESK-Accessories nicht mehr nötig, da der Puffer dann schon automatisch durch das BASIC ausgeschaltet wird). Der einzige Nachteil dieser Methode der Speicherplatzgewinnung ist, daß nun durch Fenster überlagerte Texte und Grafiken nicht mehr zwischengespeichert werden und somit leicht verloren gehen können. Wer einen 520ST + hat kennt sowieso keine Speicherplatzprobleme mehr. Für alle anderen ST-Besitzer empfiehlt es sich auf Dauer, den Rechner selbst oder durch geübte „Lötkolbenartisten“ auf ein Megabyte aufzurüsten. Wer jedoch diese Möglichkeit scheut, kann aus den unten stehenden Tabellen die Speicherplatzmöglichkeiten für beide Rechnertypen mit und ohne Grafik-Puffer bzw. DESK-Accessories entnehmen.

60ST und 520ST mit 512 KByte

  mit Grafik-Puffer ohne Grafik-Puffer
mit DESK-Acc.
ohne DESK-Acc.
nicht möglich 34178 Byte 37 346 Byte
66 946 Byte
520ST+ mit 1024 KByte
mit Grafik-Puffer

ohne Grafik-Puffer
mit DESK-Acc.
ohne DESK-Acc.
528 864 Byte 558 464 Byte 561 632 Byte
591232 Byte

Fenster im BASIC

Das ST-BASIC verfügt auf dem Bildschirm über vier verschiedene Fenster (siehe Bild 1), wobei das Vierte durch die drei Anderen überlagert ist. Die Fenster sind im einzelnen:

Das LIST-Fenster, in dem ein Programmlisting mittels des LIST-Befehls ausgegeben werden kann.

Das OUTPUT-Fenster, in dem sämtliche Ausgaben eines Programms erfolgen.

Das COMMAND-Fenster, das zur direkten Kommunikation mit dem BASIC-Interpreter dient.

Zu guter letzt das EDIT-Fenster, in dem Programme geschrieben und verändert werden können (siehe Bild 2). Dazu wäre noch zu sagen, daß man auch direkt im COMMAND-Fenster Programmzeilen eingeben kann. Dies bietet natürlich gute Programmiermöglichkeiten, da man alle vier Fenster gleichzeitig auf einen Blick darstellen kann.

Da das ST-BASIC voll GEM-unterstützt arbeitet, ist es auch möglich, mit der Maus jedes Fenster auf beliebige Größe zu bringen (siehe Bild 3). Man kann außerdem jedes Fenster gegenseitig überlagern oder wegklicken. Dieser GEM-Zugriff ist jedoch nicht nur über die Maus möglich, sondern es stehen dafür im BASIC-Befehlssatz die Befehle FULLW, CLEARW und CLOSEW zur Verfügung. Wie es unschwer zu erkennen ist, öffnet FULLW ein Fenster auf volle Bildschirmgröße. Des weiteren löscht CLEARW den Fensterinhalt vollständig. CLOSEW schließt ein Fenster. Um nun ein bestimmtes Fenster mit diesen Befehlen anzusteuern, sind ihnen Nummern zugeteilt worden, die man der folgenden Tabelle entnehmen kann.

EDIT-Fenster	=	0
LIST-Fenster	=	1
OUTPUT-Fenster	=	2
COMMAND-Fenster	=	3

Zusätzlich gibt es noch den ED- oder EDIT-Befehl, der das Edit-Fenster öffnet, sowie den LIST-Befehl, der ein Programmlisting im List-Fenster ausgibt. Diese beiden letzten Befehle werden allerdings nicht programmiert, sondern direkt im Command-Fenseter eingegeben.

Bild 3: Output-Fenster auf voller Größe

Pull-Down-Menüs

Dem Anwender stehen im ST-BASIC fünf verschiedene Pull-Down-Menüs zur Verfügung. Sie enthalten folgende Menüpunkte:

Von links nach rechts gelesen steht an erster Stelle das DESK-Menü, das die BASIC-Copyright-Meldung und die DESK-Accessories enthält. Danach folgt das FILE-Menü, mit dem die wichtigsten Floppy-Operationen gesteuert werden können. An dritter Stelle steht dann das RUN-Menü, das die Programmstart- und stopbefehle, sowie den Einzelschrittmodus und die Grafikpufferung beinhaltet. Das folgende EDIT-Menü bietet ein reichhaltiges Sortiment an Editierfunktionen (siehe Bild 4), die aber fast alle auch über die zehn Funktionstasten abgerufen werden können. Die Funktionstastenbelegung sieht im einzelnen folgendermaßen aus:

F1 = Eine Leerstelle einfügen
F2 = Einen Buchstaben löschen
F3 = Eine Zeile einfügen
F4 = Eine Zeile löschen
F5 = Eine Bildschirmseite nach oben blättern
F6 = Eine Bildschirmseite nach unten blättern
F7 = Ein Programm laden
F8 = Ein Programm abspeichern
F9 = Einen neuen EDIT-Puffer bereitstellen
F10 = Den EDIT-Modus abschalten

Auf das letzte Menü, das DEBUG-Menü wird dann ein paar Zeilen tiefer bei den Fehlersuchroutinen noch genauer eingegangen.

Der Befehlssatz

Wer schon jemals mit dem GWBASIC bzw. BASICA, die auf Personalcomputern wie IBM laufen, gearbeitet hat, dem werden schon viele Befehle des ST-BASICs sehr bekannt Vorkommen. Anders wird es den Käufern gehen, die von Commodores C 64 oder ähnlichen Computern um- bzw. aufgestiegen sind. Auf sie wird die Menge der Befehle und die Einfachheit, mit der man nun seine Programmierprobleme lösen kann, doch einigen Eindruck machen. Ein paar der Befehle mit ihren Möglichkeiten werden im weiteren kurz angesprochen.

Sehr viele gute Grafikmöglichkeiten bietet so zum Beispiel der COLOR-Befehl. Mit ihm kann man nicht nur die Text-, Füll- und Zeichenfarbe definieren, sondern auch noch mittels der beiden letzten Parameter auf die im Rechnerzeichensatz enthaltenen Füllmuster zugreifen. Ein deutliches Beispiel einer Anwendung dieses Befehls bietet das in diesem Heft enthaltene Grafikprogrammlisting. Wie die Muster im einzelnen abgerufen werden können, kann man dem Bild 5 genau entnehmen.

Bild 4: Das Edit-Menü

Natürlich noch ungewohnt ist die Arbeit mit dem GEM unter BASIC. Dazu dienen u. a. die oben schon besprochenen Fensterbefehle FULLW, CLEARW und CLOSEW. Doch genauso viel Beachtung fanden bei unserem Test die Befehle GEMSYS und VDISYS. Durch den GEMSYS-Befehl kann man auf die AES-(Application Environment Services) Kontrollfelder zurückgreifen und diese mit der Variablen GB und dem PEEK-Befehl auslesen. Dies erlaubt zum Beispiel eine Abfrage der Mauszeigerposition oder der Mausknöpfe. VDISYS dagegen erlaubt einen Zugriff auf das VDI (Virtual Device Interface). Im Gegensatz zu dem GEMSYS-Befehl kann bei Anwendung des VDISYS-Befehls auch in die Felder geschrieben werden. Dazu muß man einige vordefinierte Variablen benutzen. Zum Auslesen mit dem PEEK-Befehl lauten sie INTOUT und PTSOUT, zum Einlesen in den Speicher mit dem POKE-Befehl CONTRL, INTIN und PTSIN.

Weitere wichtige Befehle sind INP und OUT, die den Zugriff auf die einzelnen Schnittstellen ohne lästiges PEEK und POKE erlauben. Die Geräteadressen sind der folgenden Tabelle zu entnehmen:

Centronics-Schnittstelle = 0
RS 232C-Schnittstelle = 1
Tastatur und Bildschirm = 2
MIDI-Schnittstelle = 3
Tastaturport = 4

Auf jeden Fall muß man noch den PEEK- und den POKE-Befehl erwähnen, die bestimmt jedem BASIC-Programmierer von anderen Rechnern her geläufig sind. Beim ST BASIC gibt es allerdings einen wichtigen Unterschied zu den anderen BASIC-Versionen. PEEK und POKE lesen bzw. schreiben nämlich ein ganzes Wort (zwei Speicherzellen), was einer 16-Bit Zahl entspricht. Man muß also, wenn man nur eine Speicherzelle auslesen will, die andere mit einer logischen AND-Verknüpfung ausblenden.

Doch nicht nur Positives ist uns bei den Befehlen aufgefallen. So arbeitet der GOTOXY-Befehl leider immer noch nicht richtig. Er läßt sich zwar in Programmen verwenden, doch wenn man X um eins erhöht, gibt er statt-dessen auf dem Bildschirm eine Erhöhung um zwei aus. Dieser Befehl ist also mit Vorsicht zu genießen. Leider kann man ihn aber nur durch lästige TABs und SPCs umgehen. In Anbetracht dieser Tatsache ist es schon verwunderlich, daß ATARI dieses ST-BASIC als Endversion herausgibt, obwohl dieser Befehl (noch) nicht richtig funktioniert. Somit zunächst einmal genug zu den Befehlen. Den Befehlssyntax kann man ja dem beiliegenden Beiheft entnehmen.

Bild 5: Die Füllmuster des BASICs

Es gibt allerdings noch einige weitere kleine Unerfreulichkeiten über das ST-BASIC zu berichten. So lassen sich deutsche Umlaute nur bedingt verwenden, geschweige denn ausdrucken. Doch dies nur nebenbei. Viel wichtiger erscheint es uns darauf hinzuweisen, daß manche Labels einfach nicht akzeptiert werden und daß es mit der Rechengenauigkeit des ATARI ST-BASICs nicht allzuweit her ist. Bei einfacher Genauigkeit wird noch auf sechs Stellen genau gerechnet, was ja ganz akzeptabel ist. Doch bei doppelter Genauigkeit läßt sich das Ergebnis einer Rechenoperation nur um eine Stelle genauer berechnen.

Beim BASICA der IBM-Rechner läßt sich zum Vergleich eine Real-Zahl bei doppelter Genauigkeit mit 17 (in Worten siebzehn) Stellen Genauigkeit speichern. Dies ist ja doch schon ein kleiner Unterschied.

Die Fehlersuchroutinen (Debugging)

Die Fehlersuchroutinen sind dagegen wieder sehr luxuriös ausgefallen. Wenn man in das DEBUG-Menü des BASIC-Desktops geht, stechen einem sogleich die Befehle TRON, TROFF, TRACE und UNTRACE ins Auge. Mit ihnen werden die entsprechenden Modi ein- bzw. ausgeschaltet und der erfahrene BASIC-Programmierer weiß sofort, daß sie zur Fehlersuche, dem Debugging, dienen. Das einzige, was einen stutzig macht, ist, daß TRON die Abkürzung für TRACE ON und TROFF für TRACE OFF ist. Was sollen also zwei TRACE-Befehle? Die Praxis zeigt es sofort. Der TRON-Modus zeigt während eines Programmablaufs nur. die aktuellen Zeilennummern im COMMAND-Fenster an. TRACE dagegen liefert die komplette aktuelle Programmzeile. Außerdem bietet das ST-BASIC noch die Möglichkeit diese beiden Debug-Modi auf bestimmte Zeilen zu beschränken, was von ganz entscheidendem Vorteil ist. Denn wer jemals ein Programm mit TRACE bzw. TRON abarbeiten ließ, der weiß auch, daß diese beiden Modi den Programmverlauf stark verlangsamen. Man wartet bei langen Programmen schon mal ein paar Minuten bis man zur eigentlichen fehlerbehafteten Stelle kommt. Doch beim ST-BASIC läßt sich auch nur eine bestimmte Anzahl von Zeilen bzw. Zeilennummern anzeigen, so daß das Programm bis zu der bestimmten Stelle ganz normal abgearbeitet wird. Dazu kommt noch die Möglichkeit das Programm im STEP-Modus in Einzelschritten abzuarbeiten. Doch es gibt noch eine Debug-Möglichkeit mehr. Das BASIC bietet nämlich noch den FOLLOW-Modus. Mit ihm lassen sich die aktuellen Werte einzelner oder auch aller Variablen während des Programmverlaufs im COMMAND-Fenster anzeigen. Den Syntax für FOLLOW und seinem Gegenstück UNFOLLOW kann man wieder dem BASIC-Beiheft entnehmen.

Im Großen und Ganzen muß man aber doch sagen, daß mit dem ST-BASIC dem Anwender ein sehr leistungsfähiger BASIC-Interpreter in die Hand gegeben worden ist, der kaum noch Wünsche offen läßt. Er verarbeitet Labels, hat sehr gute Debug-Routinen und eine fast 180 Befehle umfassende Syntax. Seine Schnelligkeit bei Grafikbefehlen ist auch nicht zu unterschätzen, wie unser Programm-listing „Kontrolliertes Chaos“ in diesem Heft beweist. Nicht zu vergessen, daß er diverse logische Verknüpfungen beherrscht. Es bleiben da zwar noch die negativen Eigenschaften, aber die lassen sich bestimmt mittels eigener Maschinensprachroutinen, die man ja mit CALL oder USR aufrufen kann, beheben. Außerdem bleibt noch abzuwarten, ob die Softwarefirmen Erweiterungen für das ST-BASIC auf den Markt bringen. Nicht zuletzt kann man noch auf die wertvolle Arbeit von ST-Anwendern und -„Freaks“ hoffen, die schon jetzt teilweise recht interessante Programme geschrieben haben.

Für diese Grafik benötigte das BASIC ca. 120 Sekunden


Aus: ST-Computer 01 / 1986, Seite 39

Links

Copyright-Bestimmungen: siehe Über diese Seite