;
; Ullrich von Bassewitz, 27.09.1998
+; Christian Krueger, 11-Mar-2017, added 65SC02 optimization
;
; CC65 runtime: modulo operation for long unsigned ints
;
- .export tosumodeax
- .import getlop, udiv32
- .importzp sreg, tmp3, tmp4, ptr2
+ .export tosumod0ax, tosumodeax
+ .import getlop, udiv32
+ .importzp sreg, tmp3, tmp4, ptr2
+
+ .macpack cpu
+
+tosumod0ax:
+.if (.cpu .bitand ::CPU_ISET_65SC02)
+ stz sreg
+ stz sreg+1
+.else
+ ldy #$00
+ sty sreg
+ sty sreg+1
+.endif
tosumodeax:
- jsr getlop ; Get the paramameters
- jsr udiv32 ; Do the division
- lda tmp3 ; Remainder is in ptr2:tmp3:tmp4
- sta sreg
- lda tmp4
- sta sreg
- lda ptr2
- ldx ptr2+1
- rts
+ jsr getlop ; Get the paramameters
+ jsr udiv32 ; Do the division
+ lda tmp3 ; Remainder is in ptr2:tmp3:tmp4
+ sta sreg
+ lda tmp4
+ sta sreg+1
+ lda ptr2
+ ldx ptr2+1
+ rts