]> git.sur5r.net Git - cc65/commitdiff
Saved 2 bytes and fixed error in case of negative result.
authorIrgendwerA8 <c.krueger.b@web.de>
Fri, 9 Nov 2018 14:56:16 +0000 (15:56 +0100)
committergreg-king5 <greg.king5@verizon.net>
Fri, 9 Nov 2018 22:27:35 +0000 (17:27 -0500)
libsrc/common/divt.s

index f1291c86fe7a0b1a045df23bda569b8b1c8fc2ff..914eb569d9ae339d7e4b4ca675eb6e84bac9a93a 100644 (file)
         .importzp       sreg, ptr1, tmp1
 
 _div:   jsr     tosdivax        ; Division-operator does most of the work
-        lda     sreg            ; Unsigned remainder is in sreg
-        ldx     sreg+1
-        ldy     ptr1            ; transfer quotient to sreg
-        sty     sreg
-        ldy     ptr1+1
-        sty     sreg+1
+        
+        ldy     sreg            ; low byte remainder from sreg
+        sta     sreg            ; store low byte quotient to sreg
+        
+        lda     sreg+1          ; high byte remainder from sreg
+        stx     sreg+1          ; store high byte quotient to sreg
+
+        tax                     ; high byte remainder to x
+        tya                     ; low byte remainder to a
 
 ; Adjust the sign of the remainder.
 ; It must be the same as the sign of the dividend.
@@ -33,4 +36,3 @@ _div:   jsr     tosdivax        ; Division-operator does most of the work
         jmp     negax           ; Result is negative, adjust the sign
 
 Pos:    rts
-