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