X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libsrc%2Fruntime%2Flmod.s;h=ab3d8c0b79d26b3fbdb2ebbab6f8f79c5884fbc6;hb=175cba57014842fa589658612e040933a3c5064a;hp=b3376b60fea5687e90a42752a04a341140989dd4;hpb=689202057c828f7e2a17ff36f1d388a10b13aa36;p=cc65 diff --git a/libsrc/runtime/lmod.s b/libsrc/runtime/lmod.s index b3376b60f..ab3d8c0b7 100644 --- a/libsrc/runtime/lmod.s +++ b/libsrc/runtime/lmod.s @@ -15,8 +15,9 @@ tosmodeax: jsr poplsargs ; Get arguments from stack, adjust sign jsr udiv32 ; Do the division, remainder is in (ptr2:tmp3:tmp4) -; Load the result with the exception of the low byte +; Load the result + lda ptr2 ldx ptr2+1 ldy tmp3 sty sreg @@ -25,16 +26,14 @@ tosmodeax: ; Check the sign of the result. It is the sign of the left operand. - lda tmp1 ; Check sign of left operand + bit tmp1 ; Check sign of left operand bpl Pos ; Jump if result is positive ; Result is negative - lda ptr2 ; Load byte 0 of result jmp negeax ; Negate result ; Result is positive -Pos: lda ptr2 ; Load byte 0 of result - rts ; Done +Pos: rts ; Done