2 ; Ullrich von Bassewitz, 2010-11-03
4 ; CC65 runtime: 16x16 => 32 unsigned multiplication
7 .export umul16x16r32, umul16x16r32m
9 .include "zeropage.inc"
12 ;---------------------------------------------------------------------------
13 ; 16x16 => 32 unsigned multiplication routine.
15 ; lhs rhs result result also in
16 ; -------------------------------------------------------------
17 ; ptr1 ax ax:sreg ptr1:sreg
27 ldy #16 ; Number of bits
30 ror ptr1 ; Get first bit into carry
48 sta sreg ; Save byte 3
49 lda ptr1 ; Load the result