Beiträge von Mike im Thema „farbinformationen besser speichern?“

    Zitat von mc71

    Weil das gefordert war, und weil Farb-RAM nicht zwingend 4 Bit breit ist: Vielleicht landen die Daten im Hauptspeicher und sollen entpackt abgespeichert werden, vielleicht läuft das Programm auf einem 264er und die Helligkeitswerte kommen in einem zweiten Durchgang, evtl. sogar als Einblend-Effekt, etc. pp.

    Also, ich habe den Startpost so verstanden, daß da Werte für ein 4 Bit breites Farb-RAM aus einem Entwicklungssystem herausgezogen und kompakter abgespeichert werden sollen und später aus dem komprimierten Bereich direkt in das Farb-RAM geschrieben werden. Und dann ist das AND #$0F vor STA schlicht überflüssig.

    Sollten die Werte für ein 8 Bit breites Farb-RAM gemeint sein, dann geht allenfalls noch was über eine Tabelle - wenn maximal 16 Farben vorkommen. Da wird man dann i.A. nicht drum herum kommen, den Index in diese Tabelle zuvor mit einem AND #$0F einzufangen, wenn man gerade das untere Nibble beackert (und nach 4x LSR A für's obere Nibble wäre es wieder überflüssig).

    Diese Spielart des Problems wäre aber auch mit Sicherheit im Startpost erwähnt worden. Ist sie aber nicht.

    Zitat von Squidward

    Wieso lese ich 30 Posts später immer noch was von AND #$0F beim FarbRAM..?
    Bitte melde dich an, um dieses Bild zu sehen.

    +1

    Und wenn man zuerst das Low-Nibble wegschreibt, steht der kombinierte Wert immer noch im Akku, man braucht ihn also kein zweites Mal laden und kann dann nach 4x LSR A das High-Nibble wegschreiben, s.o. :P

    Umgekehrt, beim Laden aus dem Farb-RAM, ist man natürlich gut beraten, das Low-Nibble mit AND #$0F herauszuholen, da das High-Nibble nur Busrauschen liefert. Das zeigt der Gegenpart zu meinem Post Bitte melde dich an, um diesen Link zu sehen.:

    Daß die komprimierten Farb-RAM-Daten jetzt bei $2000 und nicht bei $2110 landen, ist Absicht.

    Was mal ein konkretes Beispiel angeht, so hab' ich das "Zusammenschieben" der zwei Farb-RAM-Nibbles in ein Byte mal für ein Grafik-Format auf dem VC-20 gemacht. Die Bilder sind mit RUN ausführbar (wenn man sie mit ",8" und mind. einer +8K RAM-Erweiterung lädt), dank einer integrierten Anzeige-Routine. Die Farb-RAM-Daten wurden von 240 Bytes auf 120 Bytes eingedampft, witzigerweise ist die Anzeige-Routine ebenfalls 120 Bytes groß. :)

    Der hier relevante Teil der Farb-RAM-Entpackschleife sieht dort so aus:

    Das untere Nibble wird also zuerst geschrieben, wobei das Farb-RAM das obere Nibble ignoriert, dann wird das Byte 4x nach rechts ("unten") geshiftet und dann in's nächste Farb-RAM-Byte geschrieben. Die Adressierung war hier relativ easy, da Ein- und Ausgangsdaten in eine Page passen. Wird aber auch nicht viel komplizierter, wenn man mehr Daten hat.