Byte in Ziffernstring umwandeln ($e69b) E: a: Bytewert (von 0-99) y: Position, an der die Zahl in den Puffer geschrieben werden soll Byte in BCD umwandeln Einsprung von $A890, $A89A: A83E: 08 PHP i-Flag merken A83F: 78 SEI Interrupt sperren (damit die Dezimal- A840: AA TAX arithmetik aktiviert werden kann) A841: A9 00 LDA #$00 A843: F8 SED Einsprung von $A84C: A844: E0 00 CPX #$00 Schleife x-mal durchlaufen A846: F0 07 BEQ $A84F A848: 18 CLC X(binaer)-mal a erhoehen (BCD) A849: 69 01 ADC #$01 adc arbeitet im BCD-Modus A84B: CA DEX dex arbeitet im Binaer-Modus A84C: 4C 44 A8 JMP $A844 Einsprung von $A846: A84F: D8 CLD A850: 28 PLP BCD-Zahl in Ziffernstring umwandeln Einsprung von $A877: A851: AA TAX BCD-Zahl merken A852: 4A LSR Erst hoeherwertige Ziffer in Ausgabepuffer A853: 4A LSR schreiben A854: 4A LSR A855: 4A LSR A856: 20 5A A8 JSR $A85A A859: 8A TXA dann die niederwertige Ziffer BCD-Ziffer in Zeichen umwandeln Einsprung von $A856: A85A: 29 0F AND #$0F A85C: 09 30 ORA #$30 BCD-Ziffer + '0' ergibt '(Ziffer)' A85E: 91 CF STA ($CF),Y in Puffer schreiben A860: C8 INY A861: 60 RTS Previous Page / Next Page |