; ; Ullrich von Bassewitz, 2010-11-02 ; ; CC65 runtime: 8x8 => 16 multiplication ; .export umul8x8r16, umul8x8r16m .importzp ptr1, ptr3 ;--------------------------------------------------------------------------- ; 8x8 => 16 multiplication routine. ; ; lhs rhs result result also in ; ------------------------------------------------------------- ; ptr1-lo ptr3-lo ax ptr1 ; umul8x8r16: sta ptr3 umul8x8r16m: lda #0 ; Clear byte 1 ldy #8 ; Number of bits lsr ptr1 ; Get first bit of lhs into carry @L0: bcc @L1 clc adc ptr3 @L1: ror ror ptr1 dey bne @L0 tax stx ptr1+1 ; Result in a/x and ptr1 lda ptr1 ; Load the result rts ; Done