Wieso lese ich 30 Posts später immer noch was von AND #$0F beim FarbRAM..?![]()
Ps: Abhängig von den dargestellten Screens und deren (fixer?) Reihenfolge könnte man auch Delta-Kompression nutzen. Oder gleich Exomizer, wenn es sich rechnet...
Wieso lese ich 30 Posts später immer noch was von AND #$0F beim FarbRAM..?![]()
Ps: Abhängig von den dargestellten Screens und deren (fixer?) Reihenfolge könnte man auch Delta-Kompression nutzen. Oder gleich Exomizer, wenn es sich rechnet...
das problem ist halt das wenn ich bei textlaenge 5, 6 farbbytes schreibe ich ja 1 farbbyte ueberschreibe und
so evtl bestehende grafik/text zerstoere. das mochte ich vermeiden wenn das ueberhaupt geht.
Naja, du hast bei Assembler ja immer mehrere Möglichkeiten.
Du könntest einen Counter mit der Länge der zu schreibenden Zeichen/Werte runterzählen, der dann ggfs. vorzeitig aus der Schleife springt.
Oder genau definieren, welche Zeichen überhaupt "einfärbwürdig" sind und dann vor dem Setzen des entspr. Farbrams erstmal schauen, ob es sich überhaupt noch um ein solches Zeichen handelt.
Vielleicht ist die auch Art, wie du die Farbwerte packst, nicht ideal. Evtl. wäre Bitte melde dich an, um diesen Link zu sehen. besser. Oder evtl. hat jedes Zeichen nur einen (immer gleichen) spezifischen Farbwert...
In einer Schleife musst du den Wert lesen (der ja für zwei Zeichen steht), dann am elegantesten (?) erst den frisch geladenen Wert zum Colorram des zweiten (!) Zeichens schreiben*, danach 4x lsr, um an das obere Nibble zu kommen. Diesen Wert dann zur ersten Colorram-Stelle schreiben. In der Schleife dann die Adresse zum Wert-Lesen um 1 erhöhen, die zum Schreiben um zwei. Du brauchst mehrere Loops für den gesamten Screen.
*das obere Nibble (vom ersten Beispiel $7e die $7) wird im Farbram ignoriert