In einer Ära des digitalen Fortschritts und der kreativen Entfaltung, stand ein Gerät seiner Zeit weit voraus und ließ Generationen von Nutzern staunen: der Commodore 64. Erstmalig in den 80er Jahren veröffentlicht, eroberte dieser kleine, doch mächtige Computer die Welt im Sturm und etablierte sich als einer der beliebtesten Heimcomputer aller Zeiten. Nun, Jahrzehnte später, spüren wir immer noch die Auswirkungen dieses bahnbrechenden Geräts, und es bleibt ein geschätzter Teil der Technikgeschichte.

Vielleicht haben Sie Geschichten von den glorreichen Tagen des Commodore 64 gehört oder sind zufällig auf einen in einem alten Dachboden gestoßen. Vielleicht sind Sie auch ein leidenschaftlicher Technikliebhaber, der in die Fußstapfen der Computergeschichte treten möchte. Wo auch immer Sie herkommen, wenn Sie daran interessiert sind, mehr über den Commodore 64 zu erfahren und seine faszinierende Welt zu entdecken, sind Sie hier genau richtig.

In diesem Blogbeitrag werden wir uns auf eine Zeitreise begeben, um die Vergangenheit zu erkunden und das Erbe des Commodore 64 zu würdigen. Wir werden die technischen Aspekte durchleuchten, einige der bemerkenswertesten Spiele und Software vorstellen und Tipps für den Einstieg in die Nutzung und Sammlung dieses klassischen Computers geben. Es spielt keine Rolle, ob Sie ein völliger Neuling oder ein erfahrener Retro-Enthusiast sind, es gibt immer etwas Neues zu entdecken in der faszinierenden Welt des Commodore 64. Also lassen Sie uns gemeinsam diese Reise beginnen!

Die Technik

Der Commodore 64, liebevoll auch C64 genannt, war seinerzeit eine technische Meisterleistung. Herzstück des C64 ist der MOS Technology 6510-Prozessor. Dieser 8-Bit-Mikroprozessor, der mit einer Taktfrequenz von etwa 1 MHz betrieben wird, war damals eine Revolution und ermöglichte dem C64, eine Vielzahl von Aufgaben effizient auszuführen.

Was den C64 jedoch wirklich einzigartig machte, waren seine bemerkenswerten Grafik- und Audiofähigkeiten. Der VIC-II (Video Interface Chip) war für die Grafikausgabe zuständig und bot eine Palette von 16 Farben, eine Auflösung von bis zu 320×200 Pixeln und die Möglichkeit, Sprites zu verarbeiten – bewegliche Objekte, die in Spielen häufig verwendet wurden. Der Soundchip SID (Sound Interface Device) war ebenfalls ein Highlight, der dreistimmige Sound und vielfältige Klangeffekte ermöglichte, die die Musik und Soundeffekte in Spielen und Anwendungen des C64 unverwechselbar machten.

Der C64 verfügte standardmäßig über 64 Kilobyte (KB) Arbeitsspeicher (RAM), was für die damalige Zeit eine erstaunliche Menge war. Dieser Speicher wurde sowohl für den Code der laufenden Programme als auch für den Grafik- und Soundchip verwendet.

In Bezug auf die Software war der Commodore 64 ebenfalls führend. Das eingebaute Betriebssystem, das BASIC (Beginner’s All-purpose Symbolic Instruction Code) für die Anwendungsentwicklung und das Laden und Ausführen von Software nutzte, war benutzerfreundlich und zugänglich. Es ermöglichte es den Benutzern, eigene Programme zu schreiben und eine Vielzahl von Software auszuführen, darunter Spiele, Textverarbeitungsprogramme, Grafikeditoren und sogar Musikkompositions-Tools.

Zusammengefasst war der Commodore 64 ein Meilenstein der Computertechnologie, der sowohl in Bezug auf die Hardware als auch die Software neue Maßstäbe setzte. Die innovative Kombination aus leistungsstarkem Prozessor, fortschrittlichen Grafik- und Soundchips sowie einem benutzerfreundlichen Betriebssystem machte den C64 zu einer herausragenden Plattform, die die Art und Weise, wie wir Computer nutzen, grundlegend veränderte.

Let’s program: “Hello, World”

Grundlegend startet nach dem “Booten” des Commodore 64 eine Oberfläche, welche BASIC Befehle entgegen nimmt.

In meinem Fall ist dies der erweiterte ROM “JIFFYDOS”

BASIC, ein Akronym für Beginner’s All-purpose Symbolic Instruction Code, ist eine Programmiersprache, die speziell dafür entwickelt wurde, für Einsteiger in der Programmierung einfach zu lernen und zu nutzen. Der Commodore 64 verwendet eine Variante von BASIC, die als “Commodore BASIC V2.0” bekannt ist.

Commodore BASIC wurde von Microsoft unter der Leitung von Bill Gates und Paul Allen entwickelt und an Commodore lizenziert. Die Version 2.0, die im Commodore 64 verwendet wird, bietet eine Reihe von Funktionen für den Umgang mit der einzigartigen Hardware des C64, darunter Befehle für Grafik, Sound und den Zugriff auf die Diskettenlaufwerke.

Obwohl es für den Einstieg in die Programmierung entworfen wurde, hat Commodore BASIC einige Einschränkungen und Eigenheiten. Zum Beispiel hat es keine eingebauten Befehle für die Erstellung von benutzerdefinierten Funktionen oder Prozeduren, und es verwendet ein etwas ungewöhnliches System für die Fehlerbehandlung. Außerdem sind einige der erweiterten Funktionen des Commodore 64, wie zum Beispiel die Hardware-Sprites für die Grafik, nur über den Gebrauch von PEEK- und POKE-Befehlen zugänglich, was den Code komplizierter und schwieriger zu verstehen macht.

Trotz dieser Einschränkungen war Commodore BASIC eine äußerst populäre Sprache in den 1980er Jahren, und viele Menschen haben ihre ersten Erfahrungen mit der Programmierung auf einem Commodore 64 gemacht. Es gibt immer noch eine aktive Community von Commodore 64-Enthusiasten, die BASIC-Programme schreiben, und es gibt zahlreiche Ressourcen online für diejenigen, die lernen möchten, wie man mit Commodore BASIC programmiert.

Das bekannte Hello, World Programm für den Commodore schreibt sich wie folgt:

10 PRINT "HELLO, WORLD!"
20 END
“HELLO, WORLD” auf dem VICE Simulator

Und wie sieht das auf einem echten Commodore aus?

Ich habe keinen Commodore 64

Wer trotzdem sich mit dem Urgestein auseinandersetzen möchte, kann auf einen der vielen Emulatoren zurückgreifen. Wie man oben sieht wird hier der VICE (the Versatile Commodore Emulator verwendet) zu finden unter:
https://vice-emu.sourceforge.io

Der Prozessor: MOS 5610

Der MOS 6510-Prozessor, das Herzstück des Commodore 64, ist eine Weiterentwicklung des MOS 6502-Prozessors, der in vielen anderen Computern und Spielekonsolen der 70er und 80er Jahre eingesetzt wurde. Der 6510 fügt einige zusätzliche Funktionen hinzu, behält aber den 6502er Befehlssatz bei. Hier sind einige wichtige Punkte über den Befehlssatz des 6510:

Der 6510 ist ein 8-Bit-Mikroprozessor, was bedeutet, dass seine Register 8 Bits Daten speichern können, was einer Zahl von 0 bis 255 entspricht. Er hat drei Hauptregister: das Akkumulatorregister (A), das X-Indexregister und das Y-Indexregister.

Der Prozessor unterstützt eine Reihe von Befehlen, darunter:

  1. Lade-/Speicherbefehle (LDA, STA, LDX, STX, LDY, STY): Diese Befehle laden Daten in ein Register oder speichern Daten von einem Register an einer Speicheradresse.
  2. Arithmetische und logische Operationen (ADC, SBC, AND, ORA, EOR): Diese Befehle führen Grundoperationen wie Addition, Subtraktion und logische Operationen durch.
  3. Vergleichs- und Testbefehle (CMP, CPX, CPY, BIT): Diese Befehle vergleichen den Inhalt der Register mit den Daten an einer Speicheradresse oder mit einem unmittelbaren Wert.
  4. Inkrement-/Dekrementbefehle (INC, DEC, INX, DEX, INY, DEY): Diese Befehle erhöhen oder verringern den Wert in einem Register oder an einer Speicheradresse um eins.
  5. Rotations- und Verschiebebefehle (ASL, LSR, ROL, ROR): Diese Befehle verschieben die Bits in einem Register oder an einer Speicheradresse nach links oder rechts.
  6. Sprungbefehle (JMP, JSR, RTS, RTI): Diese Befehle ermöglichen es dem Programm, die Ausführung an einer anderen Stelle im Code fortzusetzen oder zu einer vorherigen Stelle zurückzukehren.
  7. Verzweigungsbefehle (BCC, BCS, BEQ, BMI, BNE, BPL, BVC, BVS): Diese Befehle erlauben es dem Code, abhängig vom Zustand des Prozessors, zu verzweigen.
  8. Prozessorstatusbefehle (CLC, SEC, CLD, SED, CLI, SEI, CLV): Diese Befehle setzen oder löschen bestimmte Statusflags im Prozessor.
  9. Stack-Befehle (PHA, PLA, PHP, PLP, TSX, TXS): Diese Befehle ermöglichen es dem Code, mit dem Stack des Prozessors zu arbeiten.
  10. Transferbefehle (TAX, TAY, TXA, TYA): Diese Befehle übertragen Daten zwischen den Registern.

Programming: Cheat Sheet

Der Commodore 64 nutzt eine spezielle Version der Programmiersprache BASIC, genannt Commodore BASIC V2. Hier ist ein kurzer Überblick über einige der grundlegenden Befehle und Strukturen in Commodore BASIC:

  1. NEW: Löscht den Speicher (! Nicht den Bildschirm)
  2. RUN: Startet die Ausführung eines Programms von Anfang an.
  3. STOP or END: Beendet das Programm.
  4. POKE: Schreibt einen Wert in einen bestimmten Speicherort. Zum Beispiel: POKE 53280,0 setzt die Hintergrundfarbe auf Schwarz.
  5. SYS: Springt zu einer bestimmten Speicheradresse und führt den dort befindlichen Maschinencode aus. Zum Beispiel: SYS 49152 springt zur Adresse 49152 und beginnt dort mit der Ausführung.
  6. LOAD: Lädt ein Programm vom Datenträger. Zum Beispiel: LOAD "SPIEL",8 lädt das Programm “SPIEL” von der Diskette im Laufwerk 8.
  7. LIST: Der BASIC-Befehl LIST dient der Ausgabe eines BASIC-Programms im Arbeitsspeicher in lesbarer Form als sogenanntes Listing. Als Spezialanwendungsfall ist hiermit auch das Inhaltsverzeichnis (Directory) von Disketten einsehbar, da dieses im Programmformat geladen werden kann.
  8. SAVE: Speichert das aktuelle Programm auf dem Datenträger. Zum Beispiel: SAVE "SPIEL",8 speichert das aktuelle Programm unter dem Namen “SPIEL” auf der Diskette im Laufwerk 8.
  9. PRINT: Zeigt Text oder Variablenwerte auf dem Bildschirm an. Zum Beispiel:PRINT "Hallo Welt" , PRINT CHR$(147) löscht den Bildschirminhalt (! Nicht den Speicher)
  10. INPUT: Fragt den Benutzer nach einer Eingabe. Zum Beispiel: INPUT A fragt den Benutzer nach einer Zahl und speichert sie in der Variable A.
  11. LET: Weist einer Variablen einen Wert zu. Zum Beispiel: LET A = 10 setzt den Wert von A auf 10. Beachten Sie, dass in Commodore BASIC das Schlüsselwort “LET” optional ist, Sie können also auch einfach A = 10 schreiben.
  12. IF…THEN: Führt eine Anweisung aus, wenn eine Bedingung erfüllt ist. Zum Beispiel: IF A > 10 THEN PRINT "A ist größer als 10"
  13. FOR…TO…NEXT: Führt eine Schleife eine bestimmte Anzahl von Malen aus. Zum Beispiel: FOR I = 1 TO 10 : PRINT I : NEXT I
  14. GOTO: Springt zu einer bestimmten Zeile im Programm. Zum Beispiel: GOTO 10 springt zur Zeile 10.
  15. REM: Fügt einen Kommentar zum Code hinzu. Zum Beispiel: REM Dies ist ein Kommentar

Wie geht es weiter?

Das aktuelle Setup umfasst einen SwinSID Nano (ob bereits als Ersatz für den original SID zu sehen – mal schauen was der kann), einen AV2HDMI Converter zum Anschluss eines HDMI Bildschirms (und Audio Ausgang), eine Laufwerkemulation mittels Pi1541 sowie das WiC64 Modul welches den Commodore 64 mit dem Internet (mittels WLAN: wer hätte das 1989 gedacht) verbindet und viele neue Funktionen mit sich bringt.

In den nächsten Beiträgen soll auf die einzelnen Komponente und einen einfachen Umgang damit eingegangen werden

Happy Hacking

Author

Write A Comment

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.