24*8-Bit-Multiplikationsroutine ($ce4e)
Rechnung: Reg1 = Reg2 * a + ($68)

8CE6: 85 40     STA $40          [Die Bits in $40 werden der Reihe nach

Einsprung von $8CF4:

8CE8: 46 40     LSR $40           getestet (Lo-Bit zuerst).
8CEA: 90 03     BCC $8CEF         Ist das Bit gesetzt,
8CEC: 20 4C 8D  JSR $8D4C         dann wird Reg2 zu Reg1 addiert.

Einsprung von $8CEA:

8CEF: 20 44 8D  JSR $8D44         Danach wird Reg2 *2 genommen und der
8CF2: A5 40     LDA $40           Vorgang wiederholt, bis kein 1-Bit mehr in
8CF4: D0 F2     BNE $8CE8         $40 ist. Reg2 wird also fuer Bit1 *1, fuer
                                 Bit2 *2, ... und fuer Bit7 *128 genommen
                                 (entsprechend der Wertigkeit der Bits).]
8CF6: A5 68     LDA $68          ($68) zu Reg1 addieren
8CF8: 18        CLC              [In $68 steht normalerweise die aktuelle
8CF9: 65 5B     ADC $5B           Position im Record]
8CFB: 85 5B     STA $5B
8CFD: 90 06     BCC $8D05        1. Uebertrag ? nein, ==>
8CFF: E6 5C     INC $5C
8D01: D0 02     BNE $8D05        2. Uebertrag ? nein, ==>
8D03: E6 5D     INC $5D

Einsprung von $8CFD, $8D01:

8D05: 60        RTS

    Previous Page / Next Page