    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