diff --git a/common/parse_base10.s b/common/parse_base10.s index 7478906..6de1838 100644 --- a/common/parse_base10.s +++ b/common/parse_base10.s @@ -3,7 +3,10 @@ .global _parse_base10 _parse_base10: /* r8 = pointer to text ; r1 = number */ + /* return r0 = number of digits */ mov #0,r1 /* r1: accumulated number */ + mov r8,r0 /* r0: number of digits */ + add #1,r0 parse_base10_loop: mov.b @r8+,r2 add #-48,r2 /* ascii '0' */ @@ -18,5 +21,6 @@ parse_base10_loop: bra parse_base10_loop add r2,r1 parse_base10_rts: + sub r8,r0 rts - nop + neg r0,r0