Inhaltsverzeichnis
PBASIC - Der Basic Interpreter für den ATARI Portfolio
PBASIC ist ein Freeware BASIC-Interpreter, den B.J.Gleason speziell für den Portfolio geschrieben hat. Es ist ein reiner Interpreter der BASIC-Programme ausführt, die mit Portfolios Text-Editor geschrieben wurden. Eine Befehlszeile wie bei BASICA oder GW-BASIC gibt es nicht.
Die letzte Version ist PBASIC 5.0 und besteht aus folgenden Programmen:
Name | Größe | Datum | Beschreibung |
---|---|---|---|
PBASIC.EXE | 44.176 | 16.01.93 18:06 | Der Interpreter selbst |
PBDOC.EXE | 20.795 | 21.01.93 17:21 | PBASIC Handbuch |
ALTR.COM | 273 | 31.12.92 17:05 | TSR um PBASIC in der Textverarbeitung aufzurufen |
SPB.EXE | 10.944 | 31.12.92 17:05 | Schrumpft PBASIC-Dateien (entfernt Umbrüche, Kommentare…) |
PBCOMP.EXE | 17.842 | 31.12.92 17:05 | Komprimiert PBASIC Dateien und macht sie uneinsehbar. |
PBE.EXE | 29.508 | 01.12.91 01:50 | PBASIC-Editor für den PC |
Einsteiger Kurs
Für alle, die schon immer einmal programmieren wollten, sich aber immer vor Dingen wie Eingabe, Ausgabe, Variablen, Objektorientiert oder anderen Dingen die mit der Programmierung zu tun haben, gefürchtet haben dann ist dieser Kurs genau das Richtige für Sie!
Programmiersprachen gibt es eine ganze Menge, größtenteils laufen diese auch auf dem Portfolio™. Ich möchte aber, der Einfachheit halber mit Basic beginnen, da diese Sprache dem Programmierer die größten technischen Variationen bietet.
Das dies nicht immer Vorteile hat werden wir noch sehen…
Ein Beispiel: Man kann bei Basic die Befehle entweder alle mit Kommas getrennt hintereinander oder aber alle in einzelne Zeilen schreiben, letzteres ist natürlich weit übersichtlicher, braucht aber auch viel mehr Speicher. Die erste Methode mag zwar sparsamer sein, hat aber den entscheidenden Nachteil, daß von nach spätestens drei Wochen nicht mehr weiß, wo welcher Programmteil sitzt. Wie ergeht es nun erst denen, die den Code lesen und sich damit beschäftigen sollen? Damit wäre schon ein wichtiger Punkt geklärt! Man spricht bei dem chaotischen Code von „Spaghetticode“. Für den Portfolio gibt es nur zwei diskutable Basic Dialekte, der eine ist PBASIC von Bj. Gleason, ein Interpreter (frei kopierbar) oder das Portfolio Power Basic von Robert S. Zale welches übrigens kompatibel zu der PC Version ist. Wir werden aber mit dem PBASIC arbeiten, da sich dieses Basic jeder sehr einfach besorgen kann!
Dieser Kurs setzt PBASIC 5.0 voraus; fürs erste genügt auch eine ältere Version.
Beim Portfolio™ werden die Programme für Basic im Editor eingegeben. Die Bedienung des Editors setze ich an dieser Stelle voraus und werde darauf nicht näher eingehen. Die erstellten Dateien werden mit der Endung .bas
gespeichert. Und können dann mit der Eingabe pbasic [datei]
gestartet. Die Endung muß nicht angegeben werden, sofern sie .bas
lautet.
Zuerst beschäftigen wir uns mit der Ausgabe von Daten auf dem Bildschirm. Im Basic gibt es da einen zentralen Befehl.
Mit Print wird dem Programm die Möglichkeit gegeben dem Anwender eine Meldung zu übermitteln. Die Zeile:
PRINT "Hallo"
ergibt die Meldung Hallo
auf dem Bildschirm.
Damit können Sie jetzt ein wenig herum experimentieren bevor sie weiterlesen…
INPUT
Input fragt einen Wert (Text oder Zahen) vom Benutzer ab und legt diese in einer Variablen ab.
Bevor nun aber näher auf die Eingabe eingegangen wird, möchte ich noch etwas zu Variablen sagen. Anders als bei der Mathematik gibt es in der Programmierung unterschiedliche Arten von Varablen. Die einen können nur Zahlen verarbeiten, die anderen nur Buchstaben/Worte. Es gibt da noch weitere, auf die werde ich nun aber nicht näher eingehen. Im BASIC werden diese beiden Variablentypen durch einen Buchstaben1) bei den Numerischen Variablen und einem Buchstaben2) gefolgt von dem Zeichen „$“ (z.B. a$). Ich empfehle allen, bei Variablen einen Namen zu verwenden, dessen Bedeutung auch noch nach 4 Wochen erkennbar ist.
So, zurück zu der Eingabe.
Die Zeile
INPUT "Name";a$
ergibt die folgende Zeile auf dem Bildschirm:
Name? _
Wird statt des „;“ in der INPUT… Zeile ein „,“ gesetzt, so ergibt dies folgendes:
Name _
Komma oder Semikolon entscheiden, ob ein Fragezeichen gesetzt wird oder nicht.
Wie Sie bemerkt haben, ist die Wahl der Variablen für den Namen zu kurz. Besser wäre hier „name$“ gewesen.
So, jetzt können wir die beiden Befehle auch miteinander verknüpfen. Der Befehl PRINT
kann nämlich auch den Inhalt einer Variablen ausgeben.
PRINT "Ein kleiner Test" INPUT "Name";name$ PRINT "Ihr Name ist ";name$
Probieren Sie es einfach aus.
Wie Sie gesehen haben, ist vor dem Anführungszeichen in der letzten Zeile eine Leertaste. Diese ist wichtig, da das Semikolon vor „name$“ angibt, daß der Inhalt der Variablen direkt hinter den Anführungszeichen ausgegeben wird. Wird anstelle ein Komma eingesetzt, wird ein Platz gelassen.
Hinter der Variablen in der letzten Zeile muß aber nicht Schluß sein.
PRINT "Guten Tag ";name$;", wie geht es?"
Versuchen Sie mal ein paar Variationen.
Noch ein Beispiel3)
PRINT "Namensabfrage!" INPUT "Geben Sie Ihren Namen ein: ",name$ CLS PRINT "Die Eingabe war: ";name$
Möchten Sie in Ihrem Programmen Anmerkungen einfügen, die nicht auf dem Bildschirm erscheinen sollen, so können Sie dazu den Befehl REM
benutzen.
REM Abfrageroutine
Das Wort „Abfrageroutine“ erscheint zwar im Programmcode nicht jedoch auf dem Bilschirm. Als Abkürzung kann man auch das Zeichen „’“ verwenden.
print "Hallo" ' Abfrageroutine
So, als nächstes beschäftigen wir und mit Sprungmarken. Im PBASIC
werden diese durch Zeilennunmmern kenntlich gemacht. Der dazugehörige Befehl lautet GOTO
.
GOTO
Ohne lange Vorerklärung, tippen sie das folgende Programm einfach einmal ab. Sie werden sehen!
10 PRINT "Hallo" GOTO 10
Nun, damit hätten wir unsere erste Endlosschleife programmiert. Doch keine Angst! Drücken Sie einfach ATARI solange bis auf dem Bildschirm BREAK IN xxx
erscheint. Diese Break-Taste funktioniert übrigens immer und kann auch nicht durch einen Befehl abgeschaltet werden.
Wandeln wir das Programm minimal ab!
10 PRINT "Hallo", GOTO 10
Erklärung:
Das Komma hinter dem Anführungszeichen von PRINT
verhindert, daß ein Zeilenumbruch durchgeführt wird. Hier wird dann, wie bereits unter dem INPUT
-Befehl beschrieben, ein Platz gelassen. Natürlich könnte anstatt des Kommas auch wieder ein Semikolon gesetzt werden. Dann wird kein Platz gelassen und der Text direkt hintereinander geschrieben.
So, zum Schluß wollen wir uns dann noch mit einer kontrollieren Schleife beschäftigen. Es soll ja nicht immer die BREAK-Taste gedrückt werden. Vor allem, weil ja sonst das Programm danach nicht weiterlaufen könnte.
Die erste und wahrscheinlich am häufigsten verwende Schleife im Basic ist die IF THEN ELSE
-Schleife.
INKEY$
Bevor wir aber loslegen muß ich noch die Variable INKEY$
erklähren. Diese enthhält immer das zuletzt über die Tastatur eingegebene Zeichen. INKEY$
kann allerdings nur einmal ausgelesen werden.
Ein Beispiel:
30 IF INKEY$<>"x" THEN GOTO 30
GOTO
wird in diesem Programm nicht zwingend benötigt und kann auch weggelassen werden.
Diese Schleife wird solange durchlaufen, bis X gedrückt wird. Mit einer solchen Schleife können aber noch weitere Tasten abgefragt werden. Dazu wird allerdings ein weiterer Befehlt benötigt.
Dazu in einem anderen Kapitel…
So, jetzt ein komplettes Programm!
10 CLS REM Abfrageroutine INPUT "Name ";name$ INPUT "Straße ";str$ INPUT "PLZ ";plz INPUT "Ort ";ort$ PRINT PRINT "Sind die Eingaben korrekt (j/n)?" 20 ANTW$=INKEY$ IF ANTW$="" then 20 IF ANTW$="j" then 50 IF ANTW$="n" then 10 GOTO 20 50 CLS PRINT "Guten Tag ";name$ PRINT "Sie wohnen in ";plz;"";ort$ END
Die Variable für die Straße wurde nicht wieder verwendet. Das können Sie aber gerne noch nachtragen.
Mit END
wird das Programm beendet.
Arbeiten wir mit ELSE
, so könnte ein Programm so aussehen:
IF ANTW$="n" then 10 ELSE goto 20 ENDIF
Wichtig ist, daß hier der ENDIF
-Befehl gesetzt wird. Andernfalls kommt das Programm total durcheinander.
Handbuch
englisches Handbuch zum herunterladen:
MANUAL.ZIP
Quellcodes
- Animation mit GPRINT – RUNMAN.BAS
- Menüsteuerung – MENU.BAS
- Dateiauswahlmenü – FILES.BAS
- PBASIC Befehlszeile – CMDLIN.BAS