Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Commodore BASIC – Wikipedia
Commodore BASIC – Wikipedia
Verlinkung mit einem vorgelesenen Text des Seiteninhalts als Audio-Datei.
aus Wikipedia, der freien Enzyklopädie
Typische Büroanwendung in Commodore BASIC auf dem CBM 3032
Screenshot vom Commodore BASIC V2 auf dem C64

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] 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.[2]

Besondere Eigenschaften

[Bearbeiten | Quelltext bearbeiten]

Ein aus Sicht der damaligen Zeit besonderer Vorteil des im ROM eingebauten Commodore-BASIC-Interpreters gegenüber denen anderer Hersteller war der integrierte, so genannte Fullscreen-Editor („Vollbildschirm-Editor“), der ein komfortables Bearbeiten von Programmen oder sofortiges Ausführen von Befehlen[3] ohne umständliche EDIT-Kommandos, Copy-Cursor-Funktionen, ESCAPE-Tastensequenzen oder sonstige Umwege ermöglichte. Der Editor konnte auch mehrere Bildschirmzeilen zu einer Programmzeile verbinden; die maximal nutzbare Anzahl von Bildschirmzeilen je Programmzeile war modellabhängig. Programmzeilen werden durch Betätigen der Eingabe-Taste („Return“) teilweise kompiliert – gefundene Schlüsselwörter übersetzt der Editor in Tokens von nur einem Byte Länge – 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 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 (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 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, so dass 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 einer Variablen, die normalerweise 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 sinnvoll, da sie in diesem Fall nur 40 Prozent 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 und den Benutzer oft einen Systemabsturz vermuten ließ. 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. Besonders bei den frühen BASIC-Versionen 1.0 und 2.0 sind diverse systemnahe Funktionen, für die es noch keine eigenen Befehle gab, sogar nur über diese Befehle nutzbar. Für die Arbeit mit Programmen in Maschinensprache stehen der Befehl SYS und die Funktion USR zur Verfügung.

Versionen (chronologisch, mit den jeweils neuen Eigenschaften)

[Bearbeiten | Quelltext bearbeiten]

V1.0

[Bearbeiten | Quelltext bearbeiten]

Version V1.0 für 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)
  • Merkwürdigkeit: Im Textmodus des Bildschirms arbeitet die Shift-Taste umgekehrt, ungedrückt ergeben sich Großbuchstaben, gedrückt Kleinbuchstaben.

V2.0

[Bearbeiten | Quelltext bearbeiten]

Version V2.0 für 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 für Anzeige und Manipulation des RAM
  • Nur PET/CBM: Easter Egg: Gibt man WAIT 6502,x ein (für x beliebige Zahl einsetzen), so erscheint x-Mal das Wort MICROSOFT! auf dem Bildschirm.[4]
  • Tastaturfunktion bezüglich Shift-Taste gegenüber V1.0 normalisiert
  • IEEE-488 Unterstützung
  • Verbesserte Garbage Collection[5]

V4.0

[Bearbeiten | Quelltext bearbeiten]

Version V4.0 für CBM 4000, 8000 Serie und später PET 2001

  • Disketten-Befehle: DLOAD, DSAVE, COPY, SCRATCH, etc. (15 im ganzen)
  • Systemvariablen für Disketten-Fehlerkanal: DS, DS$ (DS enthält die Fehlernummer, DS$ die Fehlermeldung im Klartext)
  • Da diese Version mehr ROM-Speicher benötigte, wurde gegenüber dem PET 2001 ein weiterer ROM-Sockel ($Bxxx) fest belegt, so dass nur noch zwei freie Sockel für Erweiterungen bereitstanden und die ROM-Kapazität auf 18 KB wuchs.

Version V4.0+ für CBM-II Serie (CBM 500, 6x0, 7x0)

  • Verwendung des erweiterten Adressraumes mittels Bank Switching: BANK
  • Zusätzliche Disketten-Befehle: BLOAD, BSAVE, DCLEAR
  • Zeichenketten-Suchfunktion: INSTR
  • Formatiertes Ausdrucken: PRINT USING,PUDEF
  • Alternative Befehlsausführung: ELSE
  • Funktionstastenzuweisung: KEY
  • Zusätzlicher Editor-Befehl: DELETE
  • Dynamische Fehlerbehandlung: TRAP,DISPOSE,EL,ERR$(),RESUME

V3.5

[Bearbeiten | Quelltext bearbeiten]

Version V3.5 für 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 Befehlsausführung: ELSE
  • Zusätzliche Schleifenbefehle: DO,LOOP,WHILE,UNTIL,EXIT
  • Funktionstastenzuweisung: KEY
  • Zusätzliche Editor-Befehle: AUTO,DELETE,RENUMBER
  • Dynamische Fehlerbehandlung: TRAP,RESUME,ERR$()
  • Debugging: TRON,TROFF

V7.0

[Bearbeiten | Quelltext bearbeiten]

Version V7.0 für 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 für 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
  • Zusätzliche Disketten-Befehle: BOOT, BLOAD, BSAVE, DVERIFY, DCLEAR
  • Systembefehle: RREG (ermittelt den Inhalt der CPU-Register nach einem SYS)
  • Definierte, aber nicht implementierte Befehle: OFF, QUIT

V10

[Bearbeiten | Quelltext bearbeiten]

Version V10 für C65[6]

  • Nicht fertiggestellt, viele Bugs
  • Ähnlich 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 für DMA-Operationen: DMA
  • Definierte, aber nicht implementierte Befehle: PAINT, PASTE, CUT, LOCATE, SCALE, WIDTH, QUIT, OFF, SET, VIEWPORT

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ 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).
  2. ↑ Microsoft BASIC 6502 timeline. Zeitleiste BASIC 1975–1982, online auf Weihenstephan.org, abgerufen am 27. Januar 2017 (PDF; 37 kB, englisch).
  3. ↑ C128 System Guide: Section 3. Abgerufen im 1. Januar 1 
  4. ↑ Bill Gates’ Personal Easter Eggs in 8 Bit BASIC. pagetable.com, abgerufen am 4. März 2014 (englisch). 
  5. ↑ Commodore technical support bulletin
  6. ↑ Fred Bowen: System Specification for C65. Hrsg.: COMMODRE BUSINESS MACHINES, Inc. 1. März 1991, S. 147–207 (Online [PDF; 15,5 MB; abgerufen am 11. August 2021]). 
Commodore-Produktübersicht
V – D
PET/CBM

KIM-1 • PET 2001 • CBM 3000 • CBM 4000 • CBM 8000 • CBM 8032 • MMF 9000

Logo von Commodore
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 • A1060

Peripherie
Laufwerke

Datasette • CBM-Diskettenlaufwerke • VC15xx (VC1540/41, VC1551, VC1570/71, VC1581) • SFD100x (SFD1001, SFD1002) • CBM 2020 bis 8250 • CBM 4040 • A570 • A590 • A3070

Drucker

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 4023

Sonstige Hardware

CBM-Bus • Zorro-Bus • Uhrenport • WOM • RAM Expansion Unit • Turbokarte • Mäuse: 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† • Chessmate

Chips

MOS Technology • 6502 • 6510 • VIC • VIC II • TED • VDC • SID • PIA • VIA • RIOT • TPI • CIA • ACIA • Agnus (Blitter, Copper) • Paula • EHB-Modus • HAM-Modus

Chipsätze

OCS • ECS • AGA • AAA • Chip-RAM und Fast-RAM

Software

Commodore BASIC • Commodore Basic V2 • Kernal • CBM-ASCII (PETSCII) • GEOS • Commodore DOS • AmigaOS • Kickstart • Workbench • ARexx • AmigaGuide • AMIX

†: Spielkonsole ‡: nur Prototyp

Dieser Artikel ist als Audiodatei verfügbar:

  •  |
  • Speichern |
  • 08:08 min |
  • 3,8 MB |
  • Text der gesprochenen Version (14. Februar 2015)

Mehr Informationen zur gesprochenen Wikipedia

Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Commodore_BASIC&oldid=244106863“
Kategorien:
  • Wikipedia:Gesprochener Artikel
  • BASIC
  • Historische Software
  • Commodore
Versteckte Kategorie:
  • Wikipedia:Vorlagenfehler/Vorlage:Cite web/temporär

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id