www.wikidata.de-de.nina.az
Commodore BASIC ist ein Dialekt der Programmiersprache BASIC der in Commodores 8 Bit Heimcomputern beginnend 1977 mit dem PET 2001 bis zum C128 im Jahre 1985 eingesetzt wurde 1 Spater kam noch eine fur den C65 gedachte Version hinzu die aber nicht mehr fertiggestellt wurde Das BASIC basierte auf 6502 Microsoft BASIC das von Microsoft fur eine Einmalzahlung lizenziert wurde Einige andere BASICs fur 6502 Rechner beispielsweise Applesoft BASIC beruhen auf der gleichen Codebasis und sind daher sehr ahnlich 2 Typische Buroanwendung in Commodore BASIC auf dem CBM 3032Screenshot vom Commodore BASIC V2 auf dem C64 Inhaltsverzeichnis 1 Besondere Eigenschaften 2 Versionen chronologisch mit den jeweils neuen Eigenschaften 2 1 V1 0 2 2 V2 0 2 3 V4 0 2 4 V3 5 2 5 V7 0 2 6 V10 3 EinzelnachweiseBesondere Eigenschaften BearbeitenEin aus Sicht der damaligen Zeit besonderer Vorteil des im ROM eingebauten Commodore BASIC Interpreters gegenuber denen anderer Hersteller war der integrierte so genannte Fullscreen Editor Vollbildschirm Editor der ein komfortables Bearbeiten von Programmen oder sofortiges Ausfuhren von Befehlen 3 ohne umstandliche EDIT Kommandos Copy Cursor Funktionen ESCAPE Tastensequenzen oder sonstige Umwege ermoglichte Der Editor konnte auch mehrere Bildschirmzeilen zu einer Programmzeile verbinden die maximal nutzbare Anzahl von Bildschirmzeilen je Programmzeile war modellabhangig Programmzeilen werden durch Betatigen der Eingabe Taste Return teilweise kompiliert gefundene Schlusselworter ubersetzt der Editor in Tokens von nur einem Byte Lange und werden dann anhand der Zeilennummer an der richtigen Position in die verkettete Liste der Zeilen im Arbeitsspeicher abgelegt Bei der Ausgabe des Programms mittels LIST werden diese Tokens wieder expandiert In den ersten Versionen war das System stark kassettenorientiert Der Interpreter enthielt Funktionen zur Ansteuerung der Commodore Datassette Commodore BASIC arbeitet mit Zeilennummern im Bereich von 0 bis 63999 Befehle fur 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 ohne ELSE und ON GOTO ON GOSUB die jeweils Zeilennummern als Sprungziele erwarten Nur der Schleifenbefehl FOR NEXT war eine halbwegs strukturierte Anweisung Bekannte Datentypen sind 40 Bit Gleitkommazahl 16 Bit Integer und Zeichenketten mit variabler Lange bis zu 255 Zeichen Einfache Variablen mussen 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 konnen folgen werden aber ignoriert so dass zum Beispiel LACH und LABER die gleiche Variable LA bezeichnen Die meisten Programme verwenden daher grundsatzlich keine Variablennamen von mehr als zwei Zeichen Lange Die Suffixe Dollarzeichen und Prozentzeichen machen aus einer Variablen die normalerweise eine Gleitkommazahl aufnehmen wurde eine Zeichenkette beziehungsweise einen Integer Da alle Berechnungen jedoch im Gleitkommaformat durchgefuhrt werden und alle einfachen Variablen gleich viel Speicher brauchen wurde durch Integervariablen die Ausfuhrung nicht beschleunigt sondern sogar verlangsamt weshalb sie nur selten benutzt wurden Arrays konnen durch die DIM Anweisung deklariert werden als Arrays sind Integervariablen sinnvoll da sie in diesem Fall nur 40 Prozent des Speichers belegen der fur ein gleich grosses Gleitkomma Array gebraucht wird Zeichenketten legt der Interpreter hintereinander im Arbeitsspeicher ab Geloschte Zeichenketten werden nicht sofort entfernt Bei Speichermangel wird eine automatische Speicherbereinigung englisch garbage collection gestartet die bei exzessiver Benutzung von Zeichenketten minutenlang dauern konnte und den Benutzer oft einen Systemabsturz vermuten liess Spatere Versionen ab 4 0 speichern Ruckzeiger mit den Zeichenketten welche unnotige Zeichenketten unmittelbar erkenntlich machen und die automatische Speicherbereinigung in Sekundenbruchteilen ablaufen lassen Die Funktion PEEK und der Befehl POKE ermoglichen ein direktes Lesen beziehungsweise eine direkte Manipulation des Arbeitsspeichers aufgrund des unterschiedlichen Speicheraufbaus ist diese Verwendung jedoch nicht kompatibel zwischen den verschiedenen Modellen Besonders bei den fruhen BASIC Versionen 1 0 und 2 0 sind diverse systemnahe Funktionen fur die es noch keine eigenen Befehle gab sogar nur uber diese Befehle nutzbar Fur die Arbeit mit Programmen in Maschinensprache stehen der Befehl SYS und die Funktion USR zu Verfugung Versionen chronologisch mit den jeweils neuen Eigenschaften BearbeitenV1 0 Bearbeiten Version V1 0 fur PET 2001 mit Mickey Mouse Tastatur Bug Arrays waren auf 256 Elemente limitiert Bug Die PEEK Funktion funktioniert nicht bei Adressen oberhalb von C000 sollte das Auslesen der ROMs verhindern Merkwurdigkeit Im Textmodus des Bildschirms arbeitet die Shift Taste umgekehrt ungedruckt ergeben sich Grossbuchstaben gedruckt Kleinbuchstaben V2 0 Bearbeiten Version V2 0 fur PET 2001 mit Schreibmaschinentastatur und ROM Upgrade CBM 3000 Serie VC 20 C64 Die meisten Bugs aus V1 0 beseitigt Nur PET CBM Integrierter RAM Monitor namens TIM fur Anzeige und Manipulation des RAM Nur PET CBM Easter Egg Gibt man WAIT 6502 x ein fur x beliebige Zahl einsetzen so erscheint x Mal das Wort MICROSOFT auf dem Bildschirm 4 Tastaturfunktion bezuglich Shift Taste gegenuber V1 0 normalisiert IEEE 488 Unterstutzung Verbesserte Garbage Collection 5 V4 0 Bearbeiten Version V4 0 fur CBM 4000 8000 Serie und spater PET 2001 Disketten Befehle DLOAD DSAVE COPY SCRATCH etc 15 im ganzen Systemvariablen fur Disketten Fehlerkanal DS DS DS enthalt die Fehlernummer DS die Fehlermeldung im Klartext Da diese Version mehr ROM Speicher benotigte wurde gegenuber dem PET 2001 ein weiterer ROM Sockel Bxxx fest belegt so dass nur noch zwei freie Sockel fur Erweiterungen bereitstanden und die ROM Kapazitat auf 18 KB wuchs Version V4 0 fur CBM II Serie CBM 500 6x0 7x0 Verwendung des erweiterten Adressraumes mittels Bank Switching BANK Zusatzliche Disketten Befehle BLOAD BSAVE DCLEAR Zeichenketten Suchfunktion INSTR Formatiertes Ausdrucken PRINT USING PUDEF Alternative Befehlsausfuhrung ELSE Funktionstastenzuweisung KEY Zusatzlicher Editor Befehl DELETE Dynamische Fehlerbehandlung TRAP DISPOSE EL ERR RESUMEV3 5 Bearbeiten Version V3 5 fur Commodore 264 Serie C16 C116 Plus 4 Sound und Grafikbefehle Joystick Abfrage JOY Hexadezimal Umwandlung DEC HEX Flexibleres Daten Einlesen RESTORE linenumber Zeichenketten Suchfunktion INSTR Formatiertes Ausdrucken PRINT USING PUDEF Alternative Befehlsausfuhrung ELSE Zusatzliche Schleifenbefehle DO LOOP WHILE UNTIL EXIT Funktionstastenzuweisung KEY Zusatzliche Editor Befehle AUTO DELETE RENUMBER Dynamische Fehlerbehandlung TRAP RESUME ERR Debugging TRON TROFFV7 0 Bearbeiten Version V7 0 fur C128 Umfasste die Erweiterungen sowohl der Version 4 0 als auch der 3 5 Mehrzeiliges IF BEGIN BEND Mehr Sound und Grafikbefehle sowie zur Sprite Steuerung Paddle und Lichtgriffel Abfrage POT PEN Funktion fur Exklusives Oder XOR Ermittlung einer Variablenadresse POINTER Textfenster WINDOW Pausenbefehl SLEEP Verwendung der beiden Systemgeschwindigkeiten SLOW FAST Umschaltung auf C64 Modus GO64 Verwendung des erweiterten Adressraumes mittels Bank Switching BANK Verwendung einer Speichererweiterung REU STASH FETCH SWAP Zusatzliche Disketten Befehle BOOT BLOAD BSAVE DVERIFY DCLEAR Systembefehle RREG ermittelt den Inhalt der CPU Register nach einem SYS Definierte aber nicht implementierte Befehle OFF QUITV10 Bearbeiten Version V10 fur C65 6 Nicht fertiggestellt viele Bugs Ahnlich der Version 7 0 Verwendung der Genlock Funktion GENLOCK Maus Befehle MOUSE RMOUSE Anzeige einer SEQ Datei auf dem Bildschirm TYPE Suchen Ersetzen im Quelltext FIND CHANGE Speicherverwaltung erweiterte FRE Funktion zur Bestimmung des freien Speichers Farbdefinition PALETTE Befehl fur DMA Operationen DMA Definierte aber nicht implementierte Befehle PAINT PASTE CUT LOCATE SCALE WIDTH QUIT OFF SET VIEWPORTEinzelnachweise Bearbeiten User s Reference Manual Commodore BASIC Version 4 0 First Edition Commodore Business Machines Santa Clara Juli 1980 online auf Commodore ca abgerufen am 27 Januar 2017 PDF 521 kB englisch Microsoft BASIC 6502 timeline Zeitleiste BASIC 1975 1982 online auf Weihenstephan org abgerufen am 27 Januar 2017 PDF 37 kB englisch C128 System Guide Section 3 Abgerufen im 1 Januar 1 Bill Gates Personal Easter Eggs in 8 Bit BASIC pagetable com abgerufen am 4 Marz 2014 englisch Commodore technical support bulletin Fred Bowen System Specification for C65 Hrsg COMMODRE BUSINESS MACHINES Inc 1 Marz 1991 S 147 207 Online PDF 15 5 MB abgerufen am 11 August 2021 V DCommodore ProduktubersichtPET CBM KIM 1 PET 2001 CBM 3000 CBM 4000 CBM 8000 CBM 8032 MMF 9000 nbsp CBM II CBM 500 CBM 600 CBM 700 CBM 900 Heimcomputer VC 10 VC 20 C64 SX GS 264 Reihe C16 C116 Plus 4 C128 C65 Amiga 1000 Sidecar 500 500 Plus 2000 CDTV 600 3000 T UX 1200 4000 CD IBM kompatibel PC 1 PC 10 bis PC 70 x86LT A1060Peripherie Laufwerke Datasette CBM Diskettenlaufwerke VC15xx VC1540 41 VC1551 VC1570 71 VC1581 SFD100x SFD1001 SFD1002 CBM 2020 bis 8250 CBM 4040 A570 A590 A3070Drucker MPS Serie MPS 801 MPS 802 MPS 803 MPS 1000 MPS 1270 MPS 1500 C MPS 1550 C VC1520 CBM 8000 Serie CBM 4022 CBM 4023Sonstige Hardware CBM Bus Zorro Bus Uhrenport WOM RAM Expansion Unit Turbokarte Mause Commodore 1350 1351 Monochrom und Farb Monitore 1701 1702 1703 1801 1802 1081 1084 1084S 1085 1901 1942 Lautsprecher A10 Mehrfachbenutzersysteme MBS Historische Hardware Schreib und Tischrechenmaschinen LED Uhren 2000K 3000H ChessmateChips MOS Technology 6502 6510 VIC VIC II TED VDC SID PIA VIA RIOT TPI CIA ACIA Agnus Blitter Copper Paula EHB Modus HAM ModusChipsatze OCS ECS AGA AAA Chip RAM und Fast RAMSoftware Commodore BASIC Commodore Basic V2 Kernal CBM ASCII PETSCII GEOS Commodore DOS AmigaOS Kickstart Workbench ARexx AmigaGuide AMIX Spielkonsole nur Prototyp nbsp Dieser Artikel ist als Audiodatei verfugbar source source Speichern 08 08 min 3 8 MB Text der gesprochenen Version 14 Februar 2015 Mehr Informationen zur gesprochenen Wikipedia Abgerufen von https de wikipedia org w index php title Commodore BASIC amp oldid 232493330