print in assembler - ich verzweifle

1, 2

von HiassofT » Di 8. Aug 2006, 12:09
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

von Schmutzpuppe » Di 8. Aug 2006, 12:19
HiassofT hat geschrieben: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.[/quote]

Ha, das meine ich als ich sagte das ich vielleicht etwas offensichtliches übersehen hätte :lol:
Klar, das wird es wohl gewesen sein, guter Tipp.
Also lösche einfach das dezimalflag am Anfang von print_armor_weapon Heaven, dann wird es wohl funktionieren.

von Schmutzpuppe » Di 8. Aug 2006, 12:26
An der Stelle:

Code: Alles auswählen
;now check if new level is reached
;all checks in BCD!

setzt du das Dezimalflag, löscht es aber unter umständen nicht wieder.
Daher solltest du vor dem rts bei expend noch mal ein cld setzten.

von Heaven_tqa » Di 8. Aug 2006, 13:03
aaaaarg... 3 wochen graue haare wegen dem scheiss D-flag? ich brech ab....

das kann ja heiter werden... wenn ich nicht aufpasse, da ich mal in BCD mal in HEX bin...

von Heaven_tqa » Di 8. Aug 2006, 21:42
http://www.atariage.com/forums/index.ph ... 809&st=525

ist der "latest" build, korrigiert und derzeit alle debug stuff ausgeschaltet...
1, 2