Commodore BASIC ist ein Dialekt der Programmiersprache BASIC, die in Commodores 8-Bit-Heimcomputern - beginnend 1977 mit dem PET 2001 bis zum C128 im Jahre 1985 - eingesetzt wurde. Später kam noch eine für den C65 gedachte Version hinzu, die aber nicht mehr fertiggestellt wurde. Das Basic basierte auf 6502-Microsoft BASIC, das von Microsoft für eine Einmalzahlung lizenziert wurde. Einige andere BASICs für 6502-Rechner, beispielsweise Applesoft BASIC, beruhen auf der gleichen Codebasis und sind daher sehr ähnlich.
In den ersten Versionen war das System stark kassettenorientiert. Der Interpreter enthielt Funktionen zur Ansteuerung der "Commodore Datasette".
Commodore BASIC arbeitet mit Zeilennummern im Bereich 1 bis 65535. Befehle für strukturierte Programmierung waren in den ersten Versionen so gut wie nicht vorhanden. Die Steuerung des Programmflusses erfolgt durch die Befehle GOTO, GOSUB/RETURN, IF...THEN...ELSE und ON, die jeweils Zeilennummern als Sprungziel erwarten. Nur der Schleifenbefehl FOR/NEXT war eine halbwegs strukturierte Anweisung.
Bekannte Datentypen sind 40-Bit-Gleitkommazahl, 16-Bit-Integer und Zeichenketten mit variabler Länge bis zu 255 Zeichen. Einfache Variablen müssen nicht deklariert werden; sie beginnen zu existieren, wenn sie benutzt werden. Sie sind mit einem Buchstaben oder einem Buchstaben gefolgt von einem weiteren Buchstaben oder einer Zahl benannt; weitere alphanumerische Zeichen können folgen, werden aber ignoriert, sodass zum Beispiel LACH und LABER die gleiche Variable LA bezeichnen. Die meisten Programme verwenden daher grundsätzlich keine Variablennamen von mehr als zwei Zeichen Länge. Die Suffixe $ (Dollarzeichen) und % (Prozentzeichen) machen aus der Variablen, die ansonsten eine Gleitkommazahl aufnehmen würde, eine Zeichenkette beziehungsweise einen Integer; da alle Berechnungen jedoch im Gleitkommaformat durchgeführt werden und alle einfachen Variablen gleich viel Speicher brauchen, wurde durch Integervariablen die Ausführung nicht beschleunigt, sondern sogar verlangsamt, weshalb sie nur selten benutzt wurden. Arrays können durch die DIM-Anweisung deklariert werden; als Arrays sind Integervariablen auch sinnvoll, da sie in diesem Fall nur 40 % des Speichers belegen, der für ein gleich großes Gleitkomma-Array gebraucht wird. Zeichenketten legt der Interpreter hintereinander im Arbeitsspeicher ab. Gelöschte Zeichenketten werden nicht sofort entfernt. Bei Speichermangel wird eine automatische Speicherbereinigung (englisch garbage collection) gestartet, die bei exzessiver Benutzung von Zeichenketten minutenlang dauern konnte. Spätere Versionen (ab 4.0) speichern Rückzeiger mit den Zeichenketten, welche unnötige Zeichenketten unmittelbar erkenntlich machen und die automatische Speicherbereinigung in Sekundenbruchteilen ablaufen lassen.
Die Funktion PEEK und der Befehl POKE ermöglichen ein direktes Lesen beziehungsweise eine direkte Manipulation des Arbeitsspeichers; aufgrund des unterschiedlichen Speicheraufbaus ist diese Verwendung jedoch nicht kompatibel zwischen den verschiedenen Modellen. Einige systemnahe Funktionen, für die es keine eigenen Befehle gibt, sind sogar nur über diese Befehle nutzbar. Für die Arbeit mit Programmen in Maschinensprache stehen der Befehl SYS und die Funktion USR zu Verfügung.
WAIT 6502,x ein (für x beliebige Zahl einsetzen), so erscheint x-Mal das Wort "MICROSOFT!" auf dem Bildschirm
DLOAD, DSAVE, COPY, SCRATCH, etc (15 im ganzen)
DS, DS$ (DS enthält die Fehlernummer, DS$ die Fehlermeldung im Klartext)
JOY
DEC(),HEX$()
RESTORE *
INSTR
PRINT USING,PUDEF
ELSE
DO,LOOP,WHILE,UNTIL,EXIT
KEY
AUTO,DELETE,RENUMBER
TRAP,RESUME,ERR$()
TRON,TROFF
BEGIN, BEND
POT, PEN
XOR
POINTER
WINDOW
SLEEP
SLOW, FAST
GO64
BANK, STASH, FETCH, SWAP
BOOT, BLOAD, BSAVE, DVERIFY, DCLEAR
RREG (ermittelt den Inhalt der CPU-Register nach einem SYS)
OFF, QUIT
GENLOCK
MOUSE, RMOUSE
TYPE
FIND/CHANGE
FRE-Funktion zur Bestimmung des freien Speichers
PALETTE
DMA
PAINT, PASTE, CUT, LOCATE, SCALE, WIDTH, QUIT, OFF, SET, VIEWPORT
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Commodore BASIC".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world