BASIC 3.5

Aus C64-Wiki
Zur Navigation springenZur Suche springen

BASIC der Version 3.5 ist im C16/116 und Plus/4 als Betriebssystem eingebaut. Es baut auf das CBM-BASIC der Version 2.0 auf, das im C64 und VC20 eingesetzt wird, und erweitert die Computer der 264er Reihe um einige nützliche BASIC-Befehle bei der Grafik-, Sound- und Floppyprogrammierung, sowie bei der Erstellung (Programmierlogik und Schleifen) und Fehlersuche in BASIC-Programmen.


Startbildschirm des C16 bzw. C116 mit BASIC 3.5
Startbildschirm des Plus/4 mit BASIC 3.5



Weitere Befehle des BASIC 3.5:


kurze funktionale Charakterisierung und Gruppierung der zusätzlichen BASIC 3.5 Befehle[Bearbeiten | Quelltext bearbeiten]

Ablaufsteuerung (Schleifen)[Bearbeiten | Quelltext bearbeiten]

  • DO der Beginn einer Schleife
  • LOOP das Ende einer Schleife
  • UNTIL Schleife mit Abbruchbedingung (läuft bis die Bedingung erreicht ist (d.h. "wahr" wird)); kopf- oder fußgesteuert möglich
  • WHILE Schleife mit Fortführungsbedingung (läuft solange die Bedingung "wahr" ist); kopf- oder fußgesteuert möglich
  • EXIT vorzeitiges Verlassen der Schleife; jederzeit möglich

Grafikbefehle[Bearbeiten | Quelltext bearbeiten]

  • GRAPHIC schaltet die hochauflösenden Grafik ein; kann sie gleichzeitig initialisieren (d.h. Bildschirm löschen)
  • SCNCLR ScreenClear löscht den aktuellen Bildschirm der hochauflösende Grafik, oder auch den Textbildschirm
  • SCALE benutzt ein Standardkoordinatensystem von dann 1024×1024 (logischen) Pixeln für jede Auflösung
  • COLOR legt den Farbwert einer Zeichenfarbe fest (aus 16 Grundfarben, mit jeweils 8 Helligkeitsabstufungen)
  • LOCATE setzt den Pixelcursor (unsichtbar) an eine neue Position
  • DRAW zeichnet einen Punkt oder eine Linie; als DRAW x1,y1 TO x2,y2 TO x3,y3 auch als Linienzug
  • BOX zeichnet ein Rechteck, wahlweise auch gedreht um einen beliebigen Winkel
  • CIRCLE zeichnet einen Kreis, oder ein Kreissegment, oder eine Ellipse, oder gar ein Polygon
  • PAINT füllt einen Bereich mit Farbe aus

Die eigentliche Macht dieser Zeichenbefehle liegt in der Möglichkeit Koordinaten wahlweise entweder in absoluter Form anzugeben ODER relativ zur Position des Pixelcursors oder wahlweise auch als Vektorkoordinaten. D.h. sie werden dann nicht als ((+-)X,(+-)Y) gelesen, sondern als (Länge;Winkel), wenn der Trenner ein Semikolon ist. Damit sind auch alle die Grafiken möglich, durch die LOGO so bekannt geworden ist.

  • GSHAPE zeichnet ein SHAPE auf den Bildschirm
  • SSHAPE nimmt einen Bildschirmausschnitt als SHAPE auf

SHAPEs sind quasi Bildschirmausschnitte und werden in einfachen Stringvariablen gespeichert, welche dann die Bildinformationen enthalten.

  • CHAR druckt einen Buchstaben auf einen Grafikbildschirm
  • RGR liest den aktuellen Grafik Modus (read graphic)
  • RCLR liest den Farbwert einer Zeichenfarbe (read color) (Umkehrung zu COLOR)
  • RLUM liest den Helligkeitswert einer Zeichenfarbe (read luminance) (Umkehrung zu COLOR)
  • RDOT liest die aktuelle Postion des Pixelcursors (X oder Y Wert) (Umkehrung zu LOCATE) oder die Farbe an genau dieser Position

Diskettenbefehle[Bearbeiten | Quelltext bearbeiten]

  • RENAME benennt eine Datei um
  • COPY legt eine Kopie einer Datei unter einem neuen Namen an (inkl. Combine- und Append-Funktion)
  • SCRATCH löscht Dateien
  • HEADER ACHTUNG(!), formatiert die Diskette
  • COLLECT  versucht Blockzuordnungsfehler (in der BAM) zwischen Dateien und Inhaltsverzeichnis zu korrigieren
  • BACKUP funktioniert nur mit einem Doppellaufwerk; macht dort eine 1-zu-1-Kopie einer Diskette

Soundbefehle[Bearbeiten | Quelltext bearbeiten]

  • VOL legt die Lautstärke von 0 − 7 fest; ohne vorheriges VOL 7 hört man keinen SOUND
  • SOUND spielt einen Ton (auf Kanal 1 und 2) oder ein Rauschen (auf Kanal 3)

erweitertes BASIC[Bearbeiten | Quelltext bearbeiten]

  • ELSE fügt dem IF-THEN einen ELSE-Zweig hinzu (der aber auf eine BASIC-Zeile beschränkt bleibt)
  • DEC ermittelt den Dezimalwert einer als String übergebenen Hexadezimalzahl; PRINT DEC("FFFF") ... 65535
  • HEX$ das Gleiche nur andersherum, ermittelt den Hexadezimalwert einer Dezimalzahl; HX$=HEX$(65535) ... HX$ enthält danach "FFFF"

Eingabe und Ausgabe[Bearbeiten | Quelltext bearbeiten]

  • PRINT USING formatiertes Ausgeben von Zahlen, wobei mit einer Formatmaske das Aussehen der Zahl genau festgelegt werden kann
  • PUDEF erlaubt Umdefinieren von Komma, Tausendermarkierung, Leerzeichen und Währungssymbol für PRINT USING

Editierhilfen[Bearbeiten | Quelltext bearbeiten]

  • AUTO erzeugt automatisch eine Zeilennummer für die nächste Zeile beim Eingeben des Programms
  • RENUMBER nummeriert Zeilen oder Zeilenbereiche neu; Abstand ist festlegbar
  • DELETE löscht eine Zeile oder einen Bereich von Zeilen
  • KEY zeigt die Belegung der Funktionstasten an oder belegt diese mit neuem Inhalt

Fehlerbehandlung[Bearbeiten | Quelltext bearbeiten]

  • EL diese Systemvariable enthält die Zeilennummer eines aufgetretenen Fehlers
  • ER Systemvariable mit der letzten Fehlernummer
  • ERR$ Funktion, welche Fehlermeldung als String passend zur Fehlernummer ER mittels ERR$(ER) ermittelt.
  • HELP zeigt nach einem Fehler die zugehörige Zeile an und mit blinkendem Text die Stelle
  • TRAP Programm an anderer Stelle fortsetzen, wenn ein Fehler auftritt
  • RESUME Programm aus einer TRAP-bedingten Unterbrechung in der TRAP-Behandlungsroutine wieder fortsetzen
  • TRON Trace-Modus aktivieren, damit wird eine Zeilennachverfolgung am Schirm möglich, was für ein Debugging bzw. die Fehlersuche hilfreich ist
  • TROFF Trace-Modus abschalten

Besonderes[Bearbeiten | Quelltext bearbeiten]

  • MONITOR schaltet den Maschinensprachmonitor TEDMON ein; wieder verlassen mit x  gefolgt von RETURN .