;
; Ullrich von Bassewitz, 13.08.1998
+; Christian Krueger, 11-Mar-2017, added 65SC02 optimization
;
; CC65 runtime: multiplication for long (unsigned) ints
;
.import addysp1
.importzp sp, sreg, tmp1, tmp2, tmp3, tmp4, ptr1, ptr3, ptr4
+ .macpack cpu
+
tosmul0ax:
tosumul0ax:
+.if (.cpu .bitand ::CPU_ISET_65SC02)
+ stz sreg
+ stz sreg+1
+.else
ldy #$00
sty sreg
sty sreg+1
+.endif
tosmuleax:
tosumuleax:
mul32: sta ptr1
stx ptr1+1 ; op2 now in ptr1/sreg
+.if (.cpu .bitand ::CPU_ISET_65SC02)
+ lda (sp)
+ ldy #1
+.else
ldy #0
lda (sp),y
- sta ptr3
iny
+.endif
+ sta ptr3
lda (sp),y
sta ptr3+1
iny