Farb-RAM

Aus C64-Wiki
(Weitergeleitet von Farbram)
Zur Navigation springenZur Suche springen
Farb-RAM Speicherbaustein auf einer C64-Platine

Das Farb-RAM, Color-RAM oder der Farbspeicher des C64 liegt fest bei den Speicheradressen 55296 ($D800) bis 56295 ($DBE7) und umfasst 1000 × 4 Bits. Der Speicher ist bis einschließlich der Hauptplatine ASSY 250466 als zusätzlicher SRAM-Baustein mit Kapazität 1024 × 4 Bit ausgeführt, der vier eigene Dateneingänge in den VIC besitzt. Bei der letzten Version der C64-Platinen, der ASSY 250469 ab Revision B, ist das Farb-RAM in den 64-Pin-Multifunktions-Chip integriert[1].

  • Im Textmodus kann hierüber jede Bildschirmposition (40 Zeichen pro Spalte: Spalte 0-39, und 25 Zeilen: Zeile 0-24) direkt angesprochen und das Zeichen an dieser Position in einer von 16 möglichen Farben eingefärbt werden. Dies geschieht mit dem BASIC-Befehl POKE, z.B. färbt POKE 55296,1 das linke obere Zeichen weiß ein.
  • Im Multicolor-Modus bestimmt der Wert aus dem Farb-RAM die Farbe der Punkte, die durch das Bit-Paar "11" in der zugeordneten Zeichen- oder Grafik-Kachel gekennzeichnet sind.
  • Im Hires Bitmap-Modus wird das Farb-RAM nicht genutzt.

Im Adressraum des Farb-RAMs ist nur das untere Nibble jeder Speicherstelle ansprechbar. Die oberen vier Bits sind nicht definiert und haben zufällige Werte. Der Speicherbereich des Farb-RAM ist unabhängig von den normalen 64 KByte RAM des C64. Wird er per $01 ausgeblendet (von BASIC aus nicht möglich), wird ab $D800 das normale RAM sichtbar. Der C64 hat also, genau betrachtet, ca. 64,5 KByte RAM.

Die niederwertigen 4-Bits der Speicherstellen 56296 ($DBE8) bis 56319($DBFF), also 24×4 Bit stehen an sich zur freien Verfügung und können ohne optische Nebenwirkungen als Speicher verwendet werden. Dennoch ist Vorsicht geboten, wenn mit Grafikerweiterungen und sonstigen Grafikroutinen zusammen gearbeitet wird, die diesen Bereich bei Farbänderungen oder bei der Initialisierung der Videoumgebung allzu großzügig "überschreiben" könnten.

Die Zeropage-Adressen 243 und 244 ($F3 und $F4) enthalten die jeweilige Adresse im Farb-RAM, die zur aktuellen Bildschirmposition gehört. Das gilt aber nur, wenn die Bildschirmausgabe durch das Betriebssystem (PRINT-Befehl oder Kernal-Routine) erfolgt.


Die Max Machine und der VC20 haben ebenfalls ein 512-Byte-Farb-RAM. Beim C128 wurde dafür ein 2-KByte-RAM eingebaut, das aber nur halb ausgenutzt wird, das jeweils obere Nibble bleibt unbenutzt.


Test[Bearbeiten | Quelltext bearbeiten]

Beim C64 kann das Farb-RAM mit den typischen Dead Test-Steckmodulen sowie dem folgenden BASIC V2-Programm getestet werden:

10 f=55296-1024
20 a=1:fori=1024to2047:pokei,a:pokei+f,a:next
30 fori=55296to56319
40 fora=1to16step0
50 if(peek(i)and15)<>athen80
60 a=a+a:pokei,a:next
70 next:print"ok!":end
80 print"error at"i", expected"a", got"peek(i)and15

Das Programm füllt den Bildschirm erst mit As, färbt die Zeichen dabei weiß und beginnt oben links mit dem Test des Farb-RAMs; getestete Zellen erscheinen schwarz. Es werden dabei auch die Zellen des nichtsichtbaren Bereichs geprüft, um das gesamte Farb-RAM abzudecken.
Für die kompletten Test braucht das Programm etwa 71 Sekunden.

Schlägt der Test fehlt, ist wahrscheinlich das Farb-RAM oder IC U16 (ein CD4066, der das Farb-RAM an den CPU-Datenbus ankoppelt, bei Hauptplatine ASSY 250469 in PLA integriert) defekt.

Weblinks[Bearbeiten | Quelltext bearbeiten]

Wikipedia: 2114

Quellen[Bearbeiten | Quelltext bearbeiten]

  1. Diskussion: Zitat: Beim ASSY 250469 Rev.3, Rev.4 und Rev.A findet man das Farb-RAM mit der Aufschrift "MN2114-2" oder "LC3514A-15" gleich rechts neben dem 64-poligen Hybrid-Chip "251715-01".