Wenn ich in einem Programm die Hintergrundfarbe ändern will, dann suche ich doch
im Monitor nach D020 bzw D021 und ändere dann in der Zeile darunter oder darüber den Wert.
Ich hab mir das Programm jetzt ein paar mal angeschaut, aber ich finde den Wert nicht.
Wie lautet denn da der Befehl davor?
Hallo Besucher, der Thread wurde 1,3k mal aufgerufen und enthält 3 Antworten
letzter Beitrag von Hexworx am
Assemblerbefehl für Farbwechsel gesucht?
- BananaJoe
- Erledigt
-
-
Im Monitor musst du aber nach $20$d0 suchen, bzw. $21$d0!
-
Hast Du im H Befehl auch die Adresse richtig eingegeben, d.h. das Low-Byte $21 zuerst und dann High-Byte $D0?
Geschrieben wird der Wert häufig mit STA ABS ($8D), es könnte auch ein STX ABS oder STY ABS sein. Und dann steht der Ladebefehl unmittelbar davor. Kann aber auch ganz anders sein, z.B. wenn die Register mit einer Schleife initialisiert werden.
Auf jeden Fall ist es sinnvoll, von der gelieferten Adresse nicht nur ein Byte abzuziehen, sondern ruhig so 16 Bytes. Mit dem D Befehl läßt Du dir dann die 5..6 Befehle vorher anzeigen um zu sehen, was Sache ist.
An dieser Stelle ist übrigens ein Disassembler, der keine illegalen Opcodes anzeigt von Vorteil, da er schneller wieder auf die Befehlssequenz "einschnappt" - Du hast bei der o.g. Methode den Umstand, daß eine ca. 50% Chance besteht, daß Du nicht ab einem Opcode-Byte disassemblierst, sondern einem Operanden-Byte. Das disassemblieren "raffiniertere" Disassembler dann gerne als Illegal, nicht als Einzel-Byte mit "???" und brauchen dann länger um die korrekte Befehlskette zu finden.
Jetzt alles klar?
-
Das einfachste wäre wohl einen Break-point in VICE z. B. zu setzen.