; want to compute m*n
lda #0
bra m0
lp asl n
m0 lsr m
bcc m1
clc
adc n
m1 bne lp
; result is in A
if you can store m inverted, you can avoid the clc in the loop:
lda m
eor #$ffff
sta m
lda #0
bra m0
lp asl n
m0 lsr m
bcs m1
adc n
m1 bne lp
It's not clear which is going to be faster, as the cutoff is about 6 bis set
in m. If you can arrange to have the input code do the EOR then the cutoff is
two bits set and that's a pretty clear win.
Todd Whitesel
toddpw @ tybalt.caltech.edu