]> git.sur5r.net Git - cc65/commitdiff
Moved divt.s from runtime into common because it's a C library function, not a
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 2 Nov 2002 10:52:36 +0000 (10:52 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 2 Nov 2002 10:52:36 +0000 (10:52 +0000)
runtime support function.

git-svn-id: svn://svn.cc65.org/cc65/trunk@1479 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/common/Makefile
libsrc/common/divt.s [new file with mode: 0644]
libsrc/runtime/Makefile
libsrc/runtime/divt.s [deleted file]

index 906ba5773b339b2dc3f07bf0b05c7928ddd548e6..2dd8096e3a2fe63f3163de5abac27daf05312aee 100644 (file)
@@ -62,6 +62,7 @@ S_OBJS =      _fdesc.o        \
                calloc.o        \
                copydata.o      \
                cprintf.o       \
+                divt.o          \
                errno.o         \
                fmisc.o         \
                fprintf.o       \
diff --git a/libsrc/common/divt.s b/libsrc/common/divt.s
new file mode 100644 (file)
index 0000000..c36ea79
--- /dev/null
@@ -0,0 +1,43 @@
+; divt.s
+;
+; 2002-10-22, Greg King
+;
+; This signed-division function returns both the quotient and the remainder,
+; in this structure:
+;
+; typedef struct {
+;     int rem, quot;
+; } div_t;
+;
+; div_t __fastcall__ div (int numer, int denom);
+;
+; Both sides of an assignment-expression must be cast to (long)
+; because cc65 functions can't return structures -- yet.  Example:
+;
+; #include <stdlib.h>
+; div_t answer;
+;
+; (long)answer = (long)div(-41, +3);
+; printf("The quotient is %d, and the remainder is %d.\n",
+;      answer.quot, answer.rem);
+
+       .export         _div
+
+       .import         tosdivax, negax
+       .importzp       sreg, ptr1, tmp1
+
+_div:  jsr     tosdivax        ; Division-operator does most of the work
+        sta     sreg           ; Quotient is in sreg
+        stx     sreg+1
+        lda     ptr1           ; Unsigned remainder is in ptr1
+        ldx     ptr1+1
+
+; Adjust the sign of the remainder.
+; It must be the same as the sign of the dividend.
+;
+       bit     tmp1            ; Load high-byte of left argument
+       bpl     Pos             ; Jump if sign-of-result is positive
+       jmp     negax           ; Result is negative, adjust the sign
+
+Pos:   rts
+
index a0b41c09c1e821b2f0d23f1dd22fbe573651aa2c..a7808a82bdc68e24ce6ea9cc11331687c59bb632 100644 (file)
@@ -54,7 +54,6 @@ OBJS =        add.o           \
        decsp7.o        \
        decsp8.o        \
                div.o           \
-        divt.o          \
                enter.o         \
                eq.o            \
                ge.o            \
diff --git a/libsrc/runtime/divt.s b/libsrc/runtime/divt.s
deleted file mode 100644 (file)
index c36ea79..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-; divt.s
-;
-; 2002-10-22, Greg King
-;
-; This signed-division function returns both the quotient and the remainder,
-; in this structure:
-;
-; typedef struct {
-;     int rem, quot;
-; } div_t;
-;
-; div_t __fastcall__ div (int numer, int denom);
-;
-; Both sides of an assignment-expression must be cast to (long)
-; because cc65 functions can't return structures -- yet.  Example:
-;
-; #include <stdlib.h>
-; div_t answer;
-;
-; (long)answer = (long)div(-41, +3);
-; printf("The quotient is %d, and the remainder is %d.\n",
-;      answer.quot, answer.rem);
-
-       .export         _div
-
-       .import         tosdivax, negax
-       .importzp       sreg, ptr1, tmp1
-
-_div:  jsr     tosdivax        ; Division-operator does most of the work
-        sta     sreg           ; Quotient is in sreg
-        stx     sreg+1
-        lda     ptr1           ; Unsigned remainder is in ptr1
-        ldx     ptr1+1
-
-; Adjust the sign of the remainder.
-; It must be the same as the sign of the dividend.
-;
-       bit     tmp1            ; Load high-byte of left argument
-       bpl     Pos             ; Jump if sign-of-result is positive
-       jmp     negax           ; Result is negative, adjust the sign
-
-Pos:   rts
-