Use decsp instead of subysp
git-svn-id: svn://svn.cc65.org/cc65/trunk@663 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
;
|
;
|
||||||
|
|
||||||
.export _fprintf
|
.export _fprintf
|
||||||
.import pushax, addysp, subysp, _vfprintf
|
.import pushax, addysp, decsp4, _vfprintf
|
||||||
.importzp sp, ptr1
|
.importzp sp, ptr1
|
||||||
|
|
||||||
.macpack generic
|
.macpack generic
|
||||||
@@ -28,36 +28,35 @@ _fprintf:
|
|||||||
|
|
||||||
; We have to push f and format, both in the order they already have on stack.
|
; We have to push f and format, both in the order they already have on stack.
|
||||||
; To make this somewhat more efficient, we will create space on the stack and
|
; To make this somewhat more efficient, we will create space on the stack and
|
||||||
; the do a copy of the complete block instead of pushing each parameter
|
; then do a copy of the complete block instead of pushing each parameter
|
||||||
; separately. Since the size of the arguments passed is the same as the size
|
; separately. Since the size of the arguments passed is the same as the size
|
||||||
; of the fixed arguments, this will allow us to calculate the pointer to the
|
; of the fixed arguments, this will allow us to calculate the pointer to the
|
||||||
; fixed size arguments easier (they're just ParamSize bytes away).
|
; fixed size arguments easier (they're just ParamSize bytes away).
|
||||||
|
|
||||||
ldy #4
|
jsr decsp4
|
||||||
jsr subysp
|
|
||||||
|
|
||||||
; Calculate a pointer to the Format argument
|
; Calculate a pointer to the Format argument
|
||||||
|
|
||||||
lda ParamSize
|
lda ParamSize
|
||||||
add sp
|
add sp
|
||||||
sta ptr1
|
sta ptr1
|
||||||
ldx sp+1
|
ldx sp+1
|
||||||
bcc @L1
|
bcc @L1
|
||||||
inx
|
inx
|
||||||
@L1: stx ptr1+1
|
@L1: stx ptr1+1
|
||||||
|
|
||||||
; Now copy both, f and format
|
; Now copy both, f and format
|
||||||
|
|
||||||
ldy #4-1
|
ldy #4-1
|
||||||
@L2: lda (ptr1),y
|
@L2: lda (ptr1),y
|
||||||
sta (sp),y
|
sta (sp),y
|
||||||
dey
|
dey
|
||||||
bpl @L2
|
bpl @L2
|
||||||
|
|
||||||
; Load va_list (last and __fastcall__ parameter to vfprintf)
|
; Load va_list (last and __fastcall__ parameter to vfprintf)
|
||||||
|
|
||||||
lda ptr1
|
lda ptr1
|
||||||
ldx ptr1+1
|
ldx ptr1+1
|
||||||
|
|
||||||
; Call vfprintf
|
; Call vfprintf
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
;
|
;
|
||||||
|
|
||||||
.export _sprintf
|
.export _sprintf
|
||||||
.import pushax, addysp, subysp, _vsprintf
|
.import pushax, addysp, decsp4, _vsprintf
|
||||||
.importzp sp, ptr1
|
.importzp sp, ptr1
|
||||||
|
|
||||||
.macpack generic
|
.macpack generic
|
||||||
@@ -33,8 +33,7 @@ _sprintf:
|
|||||||
; of the fixed arguments, this will allow us to calculate the pointer to the
|
; of the fixed arguments, this will allow us to calculate the pointer to the
|
||||||
; fixed size arguments easier (they're just ParamSize bytes away).
|
; fixed size arguments easier (they're just ParamSize bytes away).
|
||||||
|
|
||||||
ldy #4
|
jsr decsp4
|
||||||
jsr subysp
|
|
||||||
|
|
||||||
; Calculate a pointer to the Format argument
|
; Calculate a pointer to the Format argument
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user