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