Omikron-Basic 5.02

Der neue OMIKRON-BASIC-Editor 5.02 vom 19.05.96 ist endlich auf dem Markt. In Anbetracht der Tatsache, dass GFA-Basic derzeit nicht weiterentwickelt wird, ist dieses Produkt interessanter denn je.

Omikron Basic 5.02 hat im wesentlichen zwei Zielgruppen: ehemalige GFA-BASIC-Anwender und Anwender älterer OMIKRON-Versionen. Nachdem nun das GFA BASIC - leider - definitiv nicht mehr erscheint, ist es nur natürlich, dass sich die GFA-BASIC-Anwender nach Alternativen umschauen. Insbesondere dann, wenn die Alternative unter MagiC und MagiC Mac lauffähig ist, wird die Sache interessant. Und für OMIKRON- Anwender ist die Sache noch einfacher. Beide profitieren jedenfalls davon, dass ihr ATARI-Know-how dank MagiC und insbesondere MagiC Mac - z.B. auf den neuen schnellen Power Macs - auch weiterhin nutzbar bleibt. Omikron Basic 5 wurde für die Benutzung unter MagiC bzw. MagiC Mac konzipiert. Es kann aber auch unter Single TOS gestartet werden. Jedoch mit der Einschränkung, dass der RUNKERN nicht direkt vom Editor aus aufgerufen werden kann, da der RUNKERN als eigenständige Applikation gestartet werden muss. Der Erwerb von MagiC bzw. MagiC Mac ist also für ein sinnvolles Programmieren unerläßlich, zumindest wenn man "de facto" damit arbeiten möchte.

Omikron Basic 5 unter altem Singletask-TOS

Um ein Programm im Interpreter ausführen zu lassen, muss man unter TOS erst das Programm speichern, den Editor verlassen und anschließend den RUNKERN starten, indem man das Basicprogramm auf den RUNKERN zieht. Diese Prozedur ist etwas umständlich, so dass man um MagiC bzw. MagiC Mac wohl nicht umhin kommt.

OMIKRON unter MagiC und MagiC Mac

Möchten Sie Ihr Programm auf MagiC Mac portieren, weil Sie nun schon viele Jahre mit Omikron Basic gearbeitet haben? Andernfalls müssten Sie möglicherweise auf Ihre wertvollen Programme verzichten und würden so vielleicht um Jahre in ihrer Arbeit zurückgeworfen. Für die Portierung auf den Apple Power Mac dürfen Sie keine FPU-Befehle benutzen. Konkret heißt dies, dass das entsprechende Compiler-Steuerwort also nicht gesetzt werden darf.

Bedingung für das Arbeiten unter MagiC und MagiC Mac sind 2 MB RAM oder mehr. Andernfalls beschwert sich Omikron Basic zu recht über den knappen Speicher und gibt folgende Meldung aus: "Programm kann wegen Speichermangel nicht gestartet werden." Theoretisch könnten sie noch die Datei "NEWOMBAS.INF-Datei" löschen oder umbenennen, damit können Sie den Speicherbedarf reduzieren.

Als vorübergehende Notlösung bis zum Einbau von zusätzlichen RAM ist dies vielleicht sinnvoll, als Dauerlösung jedoch nicht zu empfehlen.

Das OMIKRON-Userinterface

OMIKRON stellt Dialoge alle (!) in zeitgemäßen Fenstern dar und beherrscht unter MagiC und MagiC Mac das Iconify von Fenstern. Diese Dialogfenster können mit dem Schiebebalken bewegt werden. Sofern die Eingaben für den weiteren Programmablauf nicht zwingend erforderlich sind, können die Dialoge jederzeit durch Mausklick in ein anderes Fenster verlassen werden. Die Dialogfenster können erfreulicherweise während der Arbeit am Programm geöffnet bleiben.

Was hat sich in der 5.0 Version geändert ?

Das Programm wurde an MagiC und MagiC Mac angepaßt und intern um eine Menge Features erweitert. Ein Beispiel: Variablen, Funktionen, Prozeduren und Labels können jetzt auch alle ASCII-Zeichen ab 128 enthalten. Außerdem sind nun Unterstriche zulässig. Basic-Befehle können nun auch mit einem Punkt abgekürzt werden. Wenn die Abkürzung nicht eindeutig ist, wählt Omikron Basic automatisch den Befehl mit dem niedrigsten Tokencode aus. Möchte man mit langen Variablennamen arbeiten, so kann man sich in Zukunft viel unnötige Tipparbeit elegant ersparen. Hierzu kann man die Tasten 0 bis 9,*,- und + auf der Zehnertastatur in Kombination der <CONTROL>-Taste nutzen oder optional <SHIFT> + <TAB>.

Anstatt beispielsweise "ATARI-Inside-Abo-Anzahl" einzutippen, geben Sie nur "ATARI" ein und drücken anschließend "CTRL " oder "SHIFT TAB". Der Editor forscht nun in der Variablentabelle nach Einträgen, die mit "ATARI" beginnen. Falls der Editor einen Eintrag gefunden hat, wird der komplette Name auf dem Bildschirm dargestellt. Ist das gefundene Resultat falsch, da es z.B. "ATARI-CD-NR" lautet, so können Sie den Editor durch sukzessives Drücken von "CTRL" bzw. "SHIFT TAB" oder "CTRL+" veranlassen, weitere Vorschläge zu machen. Wobei mit <CTRL> + <-> in der Variablenliste rückwärts gegangen werden kann.

In der Info-Zeile eines Fensters werden die Cursorposition und die Pro- grammgröße - angezeigt sowie die Speichermenge, die für dieses Programm reserviert und noch frei ist. Ein Mausklick auf die Anzeige Y= ... bewirkt das gleiche wie der Menüpunkt "Gehe zu". Es öffnet sich ein Dialogfenster, in welches man das Sprungziel eingeben kann. Tritt bei der Eingabe ein Syntaxfehler auf, so wird die Eingabezeile rot bzw. grau auf Monochrommonitoren markiert und in der Info- Zeile eine Meldung ausgegeben, die den Fehler näher spezifiziert.

Beim Start von Omikron Basic 5 erscheint eine Dialogbox, in die man den Namen des neuen Programms eintragen kann. Außerdem müssen für den Programmcode Speicher und Zeilen reserviert werden. Da man in einem Stück kaum mehr als 65536 Bytes bzw. 1024 Zeilen programmieren wird, reicht die Voreinstellung im allgemeinen aus. Weiterhin kann festgelegt werden, ob mit oder ohne Zeilennummern gearbeitet werden soll (läßt sich auch später ändern).

Standardmäßig stellt der Editor long-integer Variablen ohne Postfixe dar. Wer dies ändern möchte, kann hier gleich entsprechende Eintragungen vornehmen.

Die Speichereinstellungen unter Omikron Basic 5

Es erscheint eine Dialogbox, in der die Einstellungen vorgenommen werden können, für die Omikron Basic Speicher reservieren muss. Der Listbuffer wird benutzt, um bei den Suchfunktionen die gefundenen Einträge zu speichern. Außerdem nutzt der Compiler den Listbuffer für seine Ausgaben. Omikron Basic kann maximal 16384 Variablen, Prozeduren bzw. Funktionen verwalten.

Selbst besonders umfangreiche Programme, also solche mit über 500 KB Tokencode, bringen es in der Regel auf nicht mehr als 2000 Variablen, so dass man hier keine zu große Einstellung vorsehen muss. Die Anzahl der Basic-Zeilen kann maximal 65536 betragen.

Wie lang Ihre Programme werden, wissen Sie sicher selbst am besten. Der Codespeicher kann im ST-RAM oder im TT-RAM angelegt werden. Da der Editor im Omikron Basic 5 neu programmiert wurde, kann er in beiden Speicherbereichen arbeiten. Wenn Sie auf einem ATARI über TTRAM verfügen oder einen Apple Mac mit mehr als 16 MB RAM besitzen, sollten Sie dies auch nutzen. Zum einen läuft der Editor auf einem ATARI dann schneller, zum anderen bleibt wertvolles ST-RAM für den RUNKERN frei. Dieser kann nämlich nach wie vor nur im 24-Bit-Adreßraum operieren.

In einer Multitasking-Umgebung darf sich ein Programm nicht den gesamten verfügbaren Speicher allocieren, sonst wären andere Programme nicht mehr lauffähig, ohne dass OMIKRON 5 beendet würde. Um eine Zersplitterung des Speichers durch dauernde Speicheranforderungen zu vermeiden, wird am Anfang ein zusammenhängender Speicherblock reserviert. Dieser wird dann von Omikron Basic in eigener Regie verwaltet, so dass ein total durchlöcherter Speicher - quasi wie ein Schweizer Käse - vermieden wird. Der in der Menüzeile angezeigte Speicher meint diesen Speicherblock und nicht den de facto freien Gesamtspeicher. (Andere Programme benötigen unter MagiC und MagiC Mac ja auch noch Speicher.)

Editoreinstellungen:

center

Es erscheint eine Dialogbox mit allerlei Default-Einstellungen. "Voreinstellungen bei Neu" entspricht exakt den Einstellungen, die Sie in der Dialogbox vornehmen können, die sich öffnet, wenn Sie den Menüpunkt "Neu" anwählen. "Voreinstellungen bei Öffnen" ermöglicht es, festzulegen, wieviel Speicher und wieviel Zeilen zusätzlich reserviert werden sollen, wenn Sie ein Programm laden. Mit dem Menüpunkt "ASCII speichern" kann ein Programm ausgelistet und als ASCII-COde gespeichert werden. Da hierbei die Zeichen 10,13 und 26 als Steuerzeichen verwendet werden, kommt es beim Laden solcher als ASCII gespeicherten Programme zu Problemen, wenn die Programme diese Zei- chen im Quellcode enthalten. Um diese Schwierigkeiten zu vermeiden, wurde ein neues Dateiformat definiert, das diese Schwierigkeiten vermeidet.

Diese Dateien können allerdings nicht mehr mit einem fremden Editor geladen werden. Darum können Sie mit dem Schalter "Neues ASCII Format" wählen, ob dieses oder das normale benutzt werden soll.

Das Starten von Programmen

Das Programm, das sich im getopten Fenster befindet, wird unter dem Namen PROGRAMM.BAS in den Ordner OM-BASIC.TMP gespeichert. Hier befindet sich also immer das zuletzt gestartete Basicprogramm. Danach wird der RUNKERN als weitere Applikation gestartet. Der RUNKERN über nimmt dann dieses Programm automatisch und führt es aus. Der Editor läuft also im Hintergrund weiter. Bei Beendigung des Basicprogramms wird auch der RUNKERN terminiert und man befindet sich wieder im Editor. Tritt während der Ausführung des Basicprogramms ein Fehler auf oder wird es durch "STOP" unterbrochen, so gelangt man in den Direktmodus des RUNKERNS. Hier kann man sich wie bisher Variableninhalte anzeigen oder Befehle direkt ausfahren lassen, um der Fehlerursache auf den Grund zu gehen.

Durch Drücken der -Taste wird der RUNKERN beendet und ist nun wieder in dem neuen GEM Editor. Mittels kann man auch noch wie in älteren OMIKRON-BASICVersionen vom Direktmodus in den Full- Screenmodus des alten Editors gelangen.

Das Compilieren von Programmen unter Omikron Basic 5

Der Compiler ist schnell und exzellent. Im Gegensatz zu früheren OMIKRON-BASIC-Versionen ist der Compiler aber kein eigenständiges Programm mehr, sondern wurde elegant in den Editor integriert. Mit dem Menüpunkt "Compilieren" wird das Programm, das sich in dem obersten Fenster befindet, compiliert. Dazu öffnet der Compiler ein neues Fenster für die Ausgaben. Undefinierte bzw. unbenutzte Statements werden aufgelistet, so dass man einen Überblick Über etwaige Probleme erhält.

Nach Beendigung des Compiliervorgangs können die entsprechenden Programmstellen durch Anklicken im Compilerfenster angesprungen werden. Die Compilierung wird durch die <ESC>-Taste jederzeit gestoppt. Das Window mit den Compilerausgaben kann sogar abgespeichert oder ausgedruckt werden. Ist das Programm überwiegend fehlerfrei, so ist es sinnvoll, mittels der entsprechenden Compiler-Optionen dafür zu sorgen, dass ohne TRACE, Zeilennummern und Exceptions compiliert wird. Auf diese Weise wird ein teilweise außergewöhnlicher Performancezuwachs erzielt, da nun im Code eine Menge Anweisungen nicht mehr benötigt werden und so ein optimaler Code entstehen kann.

Die neueste Version der Library liegt nun auch im LIBRARY-CODE- Format vor, so dass das umständliche Nachladen mittels MERGE nicht mehr nötig ist. Auf das sehr nützliche Utility MY-LIB können Sie verzichten, falls Sie die ".LIB-Version" verwenden. Die ASCII-Version ist zusätzlich weiterhin auf der Diskette vorhanden, so dass Sie bei Interesse die Library analysieren und daraus lernen können.

Sehr sinnvoll ist, dass der Compiler automatisch nicht benötigte Prozeduren und Funktionen aus der Library entfernt, so dass ein optimaler Zielcode entsteht, der nur noch de facto benötigte Informationen enthält. Dies macht die Entwicklung Ihres Programms noch ein bißchen einfacher, denn das umständliche und zeitraubende Entfernen nicht mehr benötigter Programmteile entfällt.

Libraries

OMIKRON-BASIC-Libraries haben die Endung ".LIB". Die GEM-Library heißt auf Diskette z.B. "GEM.LIB".

Libraries lädt man mit dem Befehl LIBRARY.

Beispiel:
LIBRARYGEM
"C-.\OMIKRON5\GEM.LIB".

Zuerst wird der Name der Library angegeben, dann der'Dateiname, unter dem die Library abgelegt ist. Die LIBRARY-Befehle stehen am Anfang des Programms. Wird das Programms zum ersten Mal ausgeführt, so lädt der LIBRARY-Befehl die Library automatisch nach. Das Laden benötigt einen kurzen Moment, was aber nicht weiter ins Gewicht fällt. Nach dem Laden stehen die Libraries in der letzten Zeile (65534) als LIBRARY CODE. Sollten Sie also die Zeile 65534 entfernen, so würde somit die gesamte Library entfernt! Aufgrund der Tatsache, dass beim Spei- chern eines OMIKRON-BASIC-Programms ungenutzte Variablen wieder gelöscht werden, verzögert sich das Speichern nur unwesentlich. Gleiches gilt nach dem Löschen der Library. Es ist also sinnvoll, Ihr Programm zusammen mit der Library zu speichern.
Einige Library-Prozeduren oder -Funktionen rufen selbst wieder Teile des Programms auf, z.B. die RedrawRoutine für Userfenster in EasyGEM oder die Schnittstellenfunktionen der Numeric-Library. Wenn der aufrufenden Library- Funktion ein Feld oder mehrere Felder übergeben wurden, dann darf in der Schnittstellenfunktion kein DIM, OPEN oder CLOSE ausgeführt werden.

Wollen Sie Programme weitergeben, die OMIKRON-Libraries nutzen, sollten Sie dafür Sorge tragen, dass diese gegen Mißbrauch geschätzt sind. Dies erreichen Sie folgendermaßen:

  1. Sie compilieren Ihr Programm.
  2. Mittels des kleinen Tools PROTECT.BAS von der Demodiskette schützen Sie Ihr Programm vor dem Auflisten.
  3. Sie löschen die Library aus dem Sourcecode.

Aus lizenzrechtlichen Gründen müssen GEM-Programme in der INFO-Box auf die Verwendung von OMIKRONLibraries, z.B. der "EasyGEM-Library", hinweisen.

Fazit

Omikron Basic ist ein exzellentes Basic für Single Task-TOS, MagiC und MagiC Mac. Wahrscheinlich läuft es auch unter MagiC PC, aber ich möchte nichts behaupten, was ich selbst, mangels MagiC PC, nicht testen konnte. Es macht in der Testphase einen ausgereiften und sorgfältig entwickelten Eindruck.

Ausblick:
Es wäre schön, wenn in Zukunft die Anzahl der verfügbaren Zeilen nicht mehr auf 65536 beschränkt wäre. Darüber hinaus können wir wohl davon ausgehen, dass Omokron Basic auch in Zukunft weiterentwickelt wird, so dass für Basic-Fans eine Programmierplattform mit Zukunft besteht.

Fillpe Pereira Martins

Bezugsquelle:
Hans Richter Distributor
Hagener Straße 65
58285 Gevelsberg



Aus: ST-Computer 11 / 1996, Seite 19

Links

Copyright-Bestimmungen: siehe Über diese Seite