--- /dev/null
+; 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
+
+++ /dev/null
-; 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
-