Folgende Situation:
Ich will den Character für jede Position auf dem Screen auslesen.
Dann will ich in einer Tabelle "colors" an der Position, die dem Wert des Chars entspricht, eine Farbe holen.
Diese Farbe soll dann im Color RAM an der Stelle dieses Chars gesetzt werden.
Beispiel: Jedes A wird rot, jedes B wird grün, jedes C gelb usw.
Mein Vorgehen:
1. In Schleife Char aus Screen RAM holen
2. Den Wert des Chars als Offset für die Color Tabelle nehmen
3. Wert aus Color Tabelle holen
4. Wert aus Color Tabelle ins Color RAM speichern
Hier mein Code, der für eine Zeile funktioniert:
drawCol:
ldx #39 ; Zeile X
-
txa ; X -> A
pha ; A -> Stack
lda SCREENRAM,x ; A = char an position x
tax ; char als position im color table
lda colors,x ; A = Farbe die ins COLRAM muss
tay ; A -> Y wegparken
pla ; alten loop Wert holen
tax ; und in X
tya ; Y wieder nach A
sta COLORRAM,x ; und A ins COLRAM and Pos Y
dex ; Ende der Zeile?
bne - ; nein
rts
Alles anzeigen
Zwei Probleme:
1. Es funktioniert nur für eine Zeile.
2. Es erscheint mir wahnsinnig umständlich
Für jede Hilfe bin ich dankbar.
Ich bin schon wieder mächtig eingerostet beim Assembler coden.
Vielen Dank.