Programmierung
Speicherbelegung
Der RAM Speicher des C64 umfasst 64K Byte. Der wichtigste Chip im C64 ist der
Video-Chip VIC-II. Dieser steuert die CPU, den kompletten Bildschirm, stellt die Zeichen,
die Sprites und die Bitmap-Grafik dar. Die 64K Byte RAM und das 4K Byte große
Character ROM ist für den VIC-II die Quelle von dem was dieser auf dem Bildschirm
anzeigen wird. Dieser holt sich die Sprite und Bitmap Daten aus dem RAM, und bei
veränderten Zeichensätzen die im RAM lagern, auch die Zeichen aus dem RAM. Das passiert
vollkommen automatisch. Doch wie funktioniert dieser automatische Prozess? In dem man
dem VIC-II sagt welchen Speicherbereich dieser für die Buchstaben, Sprites und
Bitmap-Grafik verwenden soll.
Der VIC-II kann von den 64K RAM des C64 16K nutzen. Diese 16K bezeichnet man als
BANK. Davon gibt es 4 Stück, denn 16K geteilt durch 64K sind 4 Bänke. Welche 16K RAM
Bank der VIC-II gerade nutzt, steuert der CIA 2 mit seinem PORT A und den Bits 0 und 1.
Um die Steuerung und Programmierung zu vereinfachen, habe ich einen visuellen Speicher-Konfigurator
erstellt, mit dem man mit ein paar Mausklicks die gewünschte Speicherbelegung festlegen
und sofort dazu der notwendige Code ausgegeben wird:
Hintergrund-Prozesse
Eines der wichtigsten Möglichkeiten des C64 ist es Programmcode zu einer bestimmten Zeit
ausführen zu lassen, in dem das Hauptprogramm unterbrochen wird (das nennt man Interrupt)
und über eine vorher definierte Sprungadresse zu dem Hintergrund-Programm gesprungen,
und anschließend zum Hauptprogramm zurückgekehrt wird.
Hier ist ein Beispiel:
Am häufigsten kommt der sogenannte "Rasterzeilen-Interrupt" zum Einsatz. Dabei wird
das Hauptprogramm unterbrochen wenn eine bestimmte Rasterzeile erreicht ist, und man
genau dann wichtige Änderungen vornehmen möchte, wie zum Beispiel die Rahmenfarbe zu
ändern:
Hier ist ein Beispiel: | | |  |
So kann auch ein Splitscreen geschaffen werden, bei dem oben eine Bitmap und unten Zeichen/Text angezeigt wird.
|