Schmutzpuppe hat geschrieben:
- Code: Alles auswählen
13 20 4923 LDA #$14 ; 2cyc ; A=9b S=f5 X=04 Y=06 P=--*BD-ZC
13 22 4925 CLC ; 2cyc ; A=14 S=f5 X=04 Y=06 P=--*BD--C
13 24 4926 ADC $C4 ; 3cyc ; A=14 S=f5 X=04 Y=06 P=--*BD---
13 27 4928 STA $C4 ; 3cyc ; A=69 S=f5 X=04 Y=06 P=--*BD--C
13 31 492A LDA $C5 ; 3cyc ; A=69 S=f5 X=04 Y=06 P=--*BD--C
13 35 492C ADC #$00 ; 2cyc ; A=4a S=f5 X=04 Y=06 P=--*BD--C
13 38 492E STA $C5 ; 3cyc ; A=51 S=f5 X=04 Y=06 P=--*BD---
Das ist der Debug Code aus dem Emu.
Wenn der Debug-Code vom Emu korrekt ist, dann ist das Dezimal-Flag gesetzt und die Additionen machen etwas ganz anderes als gedacht. Checkt mal, wie es zu dem gesetzten Dezimal-Flag kommt bzw macht testweise ein "CLD" davor.
Hint: Das OS kommt mit einem gesetzten Dezimal-Flag nicht wirklich klar, die meisten Routinen verlassen sich darauf, daß sich die CPU im Hex/Binär-Modus (oder wie auch immer der jetzt genau heisst) befindet.
so long,
Hias