Moved the string that contains the ascii representation of LONG_MIN into its
own file. git-svn-id: svn://svn.cc65.org/cc65/trunk@5941 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -42,6 +42,7 @@ CFLAGS = -Osir -g -T -t $(SYS) --forget-inc-paths -I . -I ../../include
|
|||||||
# From C source-files
|
# From C source-files
|
||||||
C_OBJS = _afailed.o \
|
C_OBJS = _afailed.o \
|
||||||
_hextab.o \
|
_hextab.o \
|
||||||
|
_longminstr.o \
|
||||||
_poserror.o \
|
_poserror.o \
|
||||||
_scanf.o \
|
_scanf.o \
|
||||||
abort.o \
|
abort.o \
|
||||||
|
|||||||
15
libsrc/common/_longminstr.c
Normal file
15
libsrc/common/_longminstr.c
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
/*
|
||||||
|
* Ullrich von Bassewitz, 2012-11-26
|
||||||
|
*
|
||||||
|
* Minimum value of a long. Is used in ascii conversions, since this value
|
||||||
|
* has no positive counterpart than can be represented in 32 bits. In C,
|
||||||
|
* since the compiler will convert to the correct character set for the
|
||||||
|
* target platform.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const unsigned char _longminstr[] = "-2147483648";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -7,20 +7,17 @@
|
|||||||
|
|
||||||
.export _ltoa, _ultoa
|
.export _ltoa, _ultoa
|
||||||
.import popax
|
.import popax
|
||||||
.import __hextab
|
.import __hextab, __longminstr
|
||||||
.importzp sreg, ptr1, ptr2, ptr3, tmp1
|
.importzp sreg, ptr1, ptr2, ptr3, tmp1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.rodata
|
|
||||||
specval:
|
|
||||||
.byte '-', '2', '1', '4', '7', '4', '8', '3', '6', '4', '8', 0
|
|
||||||
.code
|
.code
|
||||||
|
|
||||||
;
|
;
|
||||||
; Common subroutine to pop the parameters and put them into core
|
; Common subroutine to pop the parameters and put them into core
|
||||||
;
|
;
|
||||||
|
|
||||||
dopop: sta tmp1 ; will loose high byte
|
dopop: sta tmp1 ; will loose high byte
|
||||||
jsr popax ; get s
|
jsr popax ; get s
|
||||||
sta ptr1
|
sta ptr1
|
||||||
@@ -56,12 +53,12 @@ _ltoa: jsr dopop ; pop the arguments
|
|||||||
bne L2
|
bne L2
|
||||||
|
|
||||||
ldy #11
|
ldy #11
|
||||||
L1: lda specval,y ; copy -2147483648
|
L1: lda __longminstr,y ; copy -2147483648
|
||||||
sta (ptr1),y
|
sta (ptr1),y
|
||||||
dey
|
dey
|
||||||
bpl L1
|
bpl L1
|
||||||
jmp L10
|
jmp L10
|
||||||
|
|
||||||
; Check if the value is negative. If so, write a - sign and negate the
|
; Check if the value is negative. If so, write a - sign and negate the
|
||||||
; number.
|
; number.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user