Commodore BASIC
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.
Ein aus Sicht der damaligen Zeit besonderer Vorteil des im ROM eingebauten Basic-Interpreters ist der integrierte Fullscreen-Editor, der ein komfortables Bearbeiten von Programmen oder sofortiges Ausführen von Befehlen ohne umständliche Edit-Kommandos ermöglicht. Programmzeilen werden durch Betätigen der RETURN Taste teilweise compiliert - gefundene Schlüsselwörter übersetzt der Editor in Token von einem Byte Länge - und dann im Arbeitsspeicher abgelegt.
In den ersten Versionen ist das System stark kassettenorientiert. Der Interpreter enthält Funktionen zur Ansteuerung der Commodore Datasette.
Commodore BASIC arbeitet mit Zeilennummern im Bereich 1 bis 65535. Befehle für strukturierte Programmierung sind in den ersten Versionen nicht vorhanden. Die Steuerung des Programmfluss erfolgt durch die Befehle GOTO, GOSUB / RETURN, IF...THEN...ELSE und ON, die jeweils Zeilennummern als Sprungziel erwarten.
Bekannte Datentypen sind Fließkommazahl, 16 Bit Integer und String. Einfache Variablen können nicht deklariert werden, sie beginnen zu existieren, wenn sie benutzt werden. Sie sind benannt mit einem Buchstaben oder einem Buchstaben gefolgt von einem weiteren Buchstaben oder einer Zahl; weitere alphanumerische Zeichen werden ignoriert. Die Zusätze $ und % machen aus der Varialbe, die ansonsten eine Fließkommazahl aufnehmen würde, einen String bzw. einen Integer. Arrays können durch die DIM Anweisung deklariert werden. Strings legt der Interpreter hintereinander im Arbeitsspeicher ab. Gelöschte Strings werden nicht sofort entfernt. Bei Speichermangel wird eine Garbage Collection gestartet.
Die Funktion PEEK und der Befehl POKE ermöglichen ein direktes Lesen bzw. eine direkte Manipulation des Arbeitsspeichers. 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.
Besondere Eigenschaften
Versionen (chronologisch, mit den jeweils neuen Features)
WAIT 6502,x
ein (für x beliebige Zahl einsetzen), so erscheint x-Mal das Wort "MICROSOFT!" auf dem BildschirmDLOAD, DSAVE, COPY, SCRATCH,
etc (15 im ganzen)
DS, DS$
(DS enthält die Fehlernummer, DS$ die Fehlermeldung im Klartext)JOY
DEC(),HEX$()
RESTORE [linenumber]
INSTR
PRINT USING,PUDEF
ELSE
DO,LOOP,WHILE,UNTIL,EXIT
KEY
AUTO,DELETE,RENUMBER
TRAP,RESUME,ERR$()
TRON,TROFF
POT,PEN
XOR
POINTER
WINDOW
SLEEP
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