PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:diy:basic:uebersicht

Basic Programmierung auf dem Portfolio

Die Diskussion über Vor- und Nachteile von Interpretern oder Semicompilern soll hier nicht wieder aufgerollt werden. Es soll aber sehr wohl eine kurze Beschreibung folgen, um denen, die noch keine Programmier-Erfahrung auf dem Portfolio haben, die Unterschiede der einzelnen Basic-Dialekte und Plattformen darzustellen, um sich für die richtige zu entscheiden.

Viele haben bereits ihre Favoriten aus früheren Zeiten und von anderen Plattformen. Der Portfolio kann auch da mithalten, wenn auch oft mit ein paar Nachteilen.

Speziell für den Portfolio gibt es sechs Dialekte, die aber auch unterschiedliche Philosofien vertreten.

Portfolio Basics

Der bekannteste und warscheinlich meist verbreitetste Interpreter ist PBasic von B.J. Glaeson. Der Interpreter liest ASCII-Quelldateien, die mit dem eingebauten Editor geschrieben wurden. Anders als beim guten alten Microsoft Basic oder BASICA des IBM PC, gibt es keine Kommando-Zeile, es werden nur Dateien interpretiert.
Wie es sich für ein Portfolio-Programm gehört, unterstützt PBasic Portfolios eigene Funktionen, wie z.B.: AES-Fenster, Telefon-Wählfunktionen und vieles mehr, sogar das auslesen von WKS-Dateien! Der größte Nachteil ist, dass PBasic keine Random Access Files kennt. Wer also Datenbanken programmieren will wird Schwierigkeiten bekomen.
PBasic ist Freeware und läuft auf einem standard-Portfolio. Wer große Basic-Programme schreiben will sollte aber eine Speicherweiterung verwenden, sonst bekommt man schnell die Meldung „Out of Memory“. Die Syntax ist jedem der BASICA auf dem PC kennt sehr vertraut.

An zweiter Stelle sollte PowerBasic erwähnt werden. Es ist in gewisserweise DIE Programmiersprache für den Portfolio, sie ist dem Portfolio maßgeschneidert.
PowerBasic ist ein Basic-Compiler der, wie auch PBasic, ASCII Text-Dateien als Quelle nimmt, diese aber nicht Zeile für Zeile interpretiert und ausführt, sondern sie in ausführbare Programme umwandelt. Um wertvollen Speicher zu sparen, werden aber häufig verwendete Funktionen in einer Runtime-Library (wie die DLLs bei Windows) abgelegt, so sind die kompilierten Programme immer klein und der Code liegt nicht mehrfach auf dem Datenträger.
Programme die mit PowerBasic geschrieben wurden sind natürlich wesentlich schneller, und anders als PBasic, beherrscht PowerBasic Random Access Files. Wer also Datenbanken schreiben will, sollte PowerBasic wählen. Es gibt einen weiteren Grund: die mit PowerBasic kompilierten Programme können die Dateiendung „.RUN“ haben, das bedeutet, dass diese Programme direkt auf einer Speicherkarte in Laufwerk A ausgeführt werden können, ohne dass sie in den Speicher geladen werden müssen. Somit steht der gesamte vorhandene Arbeitsspeicher für Daten zur Verfügung.
PowerBasic ist keine Freeware, sie ist von Spectra Publishing und wurde von Atari vertrieben.

Swift!Basic wirkt auf den ersten Blick dem PowerBasic ähnlich, ist aber ein Semi-Compiler mit eigenem Editor. Programme werden in diesem Editor geschrieben und als .BAS-Datei gespeichert. Diese Basic-Programme können dann mit dem Interpreter DO.COM ausgeführt werden.
Swift!Basic selbst ist ein RUN-Programm, dass eine 64KB ROM-Karte füllt. Das Programm muss von dort ausgeführt werden (um Arbeitsspeicher zu sparen), ein Kartenwechsel ist nur beim Laden oder Speichern von Dateien erlaubt. Fertige Basic-Programme können dann mit DO.COM von jedem beliebigen Laufwerk ausgeführt werden (auch DO.COM kann auf einem beliebigen Laufwerk sein).
Swift!Basic ist in Assembler geschrieben und sehr schnell, der reine Interpreter (DO.COM) ist etwa 33KB groß. Vorteile gegenüber PowerBasic: mehr Grafik-Befehle (Ellipsen, Flächen füllen…)
Auch Swift!Basic ist keine Freeware und nicht billig. Es stammt von (Vorname?) Weber/Werner (Robert?) Zemanek aus Wien und war 1992 für 248 DEM erhältlich.

Es gibt drei weitere Basic-Dialekte für den Portfolio, die aber weniger bekannt sind:

Portfolio Basic von Sjoerd Spoelstra (Niederlande)
PBAS (Frankreich)
Pofo Basic (PFBAS.COM) von Harun Scheutzow (Deutschland) Homepage

Fremde Basics

Wer keinen neuen Dialekt lernen will, oder die Programme verwenden will, die er bereits vor Jahren geschrieben hat, wird auch seinen gewohnten Interpreter verwenden wollen. Von diesen wurden einige, mehr oder weniger erfolgreich, auf dem Portfolio getestet.

Der beliebteste oder meist verbreitetste wird wohl Microsofts GW-Basic sein. Wer behauptet, GW-Basic laufe nicht auf dem Portfolio, der hat recht. Man kann es aber zum Laufen bringen. Eine Anleitung dazu gibt es hier FIXME. Trotzdem muss man von Einschränkungen ausgehen, vor allem bei Hardwarezugriffen sollte man vorsichtig sein. Ein Überarbeiten der Quelldateien wird in den meisten Fällen unumgänglich sein.

ZBASIC von Li-Chen Wang bzw. Michael E. Sullivan läuft auf dem Portfolio, aber auch nicht ohne Probleme:
Der Bildschirm-Editor (F10) hakt manchmal, besonders wenn der Cursor über das Datei-Ende hinaus bewegt wird. Man sollte ein paar Leerzeilen am Ende einfügen und sehr oft speichern.
Grafik-Routinen dürfen nur die BIOS-Funktionen verwenden, und keine Hardwarezugriffe machen.
ZBASIC geht von einem Farbbildschirm aus und verwendet Attribute, manche Meldungen sieht man einfach nicht. Um dies etwas in den Griff zu bekommen sollte man den CONFIG-Befehl ausführen. Die normale Konfiguration ist:
14,6,6,2,0,49,I,n,y,y,y, BAS,25,300,n,n,n,y,y.
ändern sie die Werte um:
14,6,6,1,0,49,I,n,n,n,y,BAS,25,300,n,y,n,y,y.
Es gibt ein vor-konfiguriertes Programm namens ZDEMO.COM für den Portfolio von Skipp Miller.

TBASIC läuft prinzipiell auch. Es gibt aber kleinere Probleme, TBASIC kann zum Beispiel auf dem Portfolio keine Zufallszahlen generieren (RND(n) liefert immer 1). TBASIC ist mit 3KB der kleinste aller Interpreter, hat aber einen sehr eingeschränkten Umfang.

Wer Erfahrungen mit weiteren Basic Interpretern oder Compilern auf dem Portfolio macht, kann diese hier bekannt geben.

software/diy/basic/uebersicht.txt · Zuletzt geändert: 06/01/2023 22:01 von bttr