Zeichenspeicher

Aus C64-Wiki
Wechseln zu: Navigation, Suche

Der Zeichenspeicher oder Zeichen-ROM (im englischen Char-ROM) beinhaltet alle 256 Zeichen des C64. Ein Zeichen benötigt genau 8 Bytes im Speicher und somit benötigt ein kompletter Zeichensatz 256×8 Bytes = 2048 Bytes = 2 KByte. Da man beim C64 zwischen zwei Zeichensätzen umschalten kann, ist das Zeichen-ROM insgesamt 4 KByte groß. Der erste Zeichensatz (der nach dem Einschalten aktiv ist) enthält Großbuchstaben und Grafiksymbole. Der zweite Zeichensatz enthält Groß- und Kleinbuchstaben (und dafür weniger Grafiksymbole) und wurde vom Commodore-Marketing auch als "Business-Mode" bezeichnet.

Um eigene Zeichen zu definieren (siehe Beispiel), kann man dem VIC-II-Chip im Speicherkontrollregister $D018 mitteilen, an welcher Position innerhalb der aktuell gewählten VIC-Bank (16 KByte) die eigenen Zeichen im RAM abgelegt wurden. Dies funktioniert mit folgendem BASIC-Befehl:

POKE 53272,(PEEK(53272) AND 240) OR A

Hierbei kann die Variable A folgende Werte annehmen:

Variable A Startspeicheradresse (hex) Anmerkung
0 0 ($0000) RAM
2 2048 ($0800) RAM
4 4096 ($1000) Grundeinstellung
Zeichensatz 1 (Großbuchstaben und Grafik)
(nur in VIC-Bank 0 und 2)
6 6144 ($1800) Zeichensatz 2 (Groß- und Kleinbuchstaben)
(nur in VIC-Bank 0 und 2)
8 8192 ($2000) RAM
10 10240 ($2800) RAM
12 12288 ($3000) RAM
14 14336 ($3800) RAM

Der Zeichenspeicher ist für Programme nicht sichtbar, aber für Zugriffe des VIC-Chips (nur bei Bank 0 und 2) erreichbar. Aus CPU-Sicht kann aber das Zeichensatz-ROM in die Speicherlandschaft (im I/O-Bereich) eingeblendet werden, indem die Speicherkonfiguration über den Prozessorport $01 entsprechend geändert wird (siehe auch PLA).