2 ; Ullrich von Bassewitz, 2009-08-17
4 ; CC65 runtime: multiplication for ints. Short versions.
7 .export tosumula0, tosmula0
8 .export mul8x16, mul8x16a
13 ;---------------------------------------------------------------------------
14 ; 8x16 routine with external entry points used by the 16x16 routine in mul.s
19 mul8x16:jsr popsreg ; Get left operand
22 ldy #8 ; Number of bits
23 ldx sreg+1 ; Get into register for speed
24 beq mul8x8 ; Do 8x8 multiplication if high byte zero
26 sta ptr4+1 ; Clear byte 2
28 lsr ptr4 ; Get first bit into carry
34 txa ; hi byte of left op
45 lda ptr4 ; Load the result
48 ;---------------------------------------------------------------------------
49 ; 8x8 multiplication routine
52 lsr ptr4 ; Get first bit into carry
61 lda ptr4 ; Load the result