PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:diy:basic:pbgk

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:diy:basic:pbgk [24/08/2008 02:08]
uxt ergänzt.
software:diy:basic:pbgk [24/08/2008 22:08]
uxt FIXME entfernt
Zeile 1: Zeile 1:
-====== 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| 
-FIXME 
- 
-===== Quellcode ===== 
-  * [[.diy:​Basic:​pbgk:​BASsrc:​menu|Menüsteuerung]] -- MENU.BAS 
-  * [[.diy:​Basic:​pbgk:​BASsrc:​cmdlin|PBASIC Befehlszeile]] -- CMDLIN.BAS 
- 
- 
-===== 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(tm). 
-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(tm) 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. ​ 
- 
- 
-==== PRINT ==== 
- 
-Mit Print wird dem Programm die Möglichkeit gegeben dem Anwender eine Meldung zu übermitteln. ​ 
-Die Zeile: 
- 
-<code freebasic>​ 
-PRINT "​Hallo"​ 
-</​code>​ 
- 
-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 Buchstaben((Oder eine Buchstabenkombination von bis zu 8 Buchstaben)) bei den Numerischen Variablen und einem Buchstaben((Oder einer Kombination mit bis zu 8 Zeichen)) 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 
- 
-<code freebasic>​ 
-INPUT "​Name";​a$ 
-</​code>​ 
- 
-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. 
- 
-<code freebasic>​ 
-PRINT "Ein kleiner Test" 
-INPUT "​Name";​name$ 
-PRINT "Ihr Name ist ";​name$ 
-</​code>​ 
- 
-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. 
- 
-<code freebasic>​ 
-PRINT "Guten Tag ";​name$;",​ wie geht es?" 
-</​code>​ 
- 
-Versuchen Sie mal ein paar Variationen. 
- 
- 
-Noch ein Beispiel((Achtung! Neuer Befehl CLS taucht auf, der dazu verwendet wird um das Display zu löschen und den Cursor in die erste Zeile und erste Spalte des Display zu setzen.)) 
- 
-<code freebasic>​ 
-PRINT "​Namensabfrage!"​ 
-INPUT "Geben Sie Ihren Namen ein: ",​name$ 
-CLS 
-PRINT "Die Eingabe war: ";​name$ 
-</​code>​ 
- 
-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. 
- 
-<code freebasic>​ 
-REM Abfrageroutine 
-</​code>​ 
- 
-Das Wort "​Abfrageroutine"​ erscheint zwar im Programmcode nicht jedoch auf dem Bilschirm. 
-Als Abkürzung kann man auch das Zeichen "​’"​ verwenden. 
- 
-<code freebasic>​ 
-print "​Hallo"​ ' Abfrageroutine 
-</​code>​ 
- 
- 
-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! 
- 
-<code freebasic>​ 
-10 PRINT "​Hallo"​ 
-GOTO 10 
-</​code>​ 
- 
-Nun, damit hätten wir unsere erste Endlosschleife programmiert. Doch keine Angst! Drücken Sie einfach <​key>​ATARI</​key>​ 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! 
- 
-<code freebasic>​ 
-10 PRINT "​Hallo",​ 
-GOTO 10 
-</​code>​ 
- 
-**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: 
- 
-<code freebasic>​ 
-30 IF INKEY$<>"​x"​ THEN GOTO 30 
-</​code>​ 
- 
-<note tip> 
-Der Befehl ''​GOTO''​ wird in diesem Programm nicht zwingend benötigt und kann auch weggelassen werden. 
-</​note>​ 
- 
-Diese Schleife wird solange durchlaufen,​ bis <​key>​x</​key>​ 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! 
- 
-<code freebasic>​ 
-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 
-</​code>​ 
- 
-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: 
- 
-<code freebasic>​ 
-IF ANTW$="​n"​ then 10 
-ELSE goto 20 
-ENDIF 
-</​code>​ 
- 
-Wichtig ist, daß hier der ''​ENDIF''​-Befehl gesetzt wird. Andernfalls kommt das Programm total durcheinander. 
- 
-===== FAQs ===== 
- 
- 
-===== Handbuch ===== 
-englisches Handbuch zum herunterladen:​\\ 
-{{:​software:​diy:​basic:​manual.zip|MANUAL.ZIP}} 
  
software/diy/basic/pbgk.txt · Zuletzt geändert: 24/08/2008 00:08 (Externe Bearbeitung)