; 2005-01-01, Greg King
;
- .export _cscanf
+ .export _cscanf
- .import pushax, addysp, _vcscanf
+ .import pushax, addysp, _vcscanf
- .macpack generic
- .include "zeropage.inc"
+ .macpack generic
+ .include "zeropage.inc"
; ----------------------------------------------------------------------------
; Code
;
_cscanf:
- sty ArgSize ; Number of argument bytes passed in .Y
- dey ; subtract size of format pointer
+ sty ArgSize ; Number of argument bytes passed in .Y
+ dey ; subtract size of format pointer
dey
tya
; Now, calculate the va_list pointer -- which points to format.
- ldx sp+1
- add sp
- bcc @L1
+ ldx sp+1
+ add sp
+ bcc @L1
inx
-@L1: sta ptr1
- stx ptr1+1
+@L1: sta ptr1
+ stx ptr1+1
; Push a copy of the format pointer onto the stack.
- ldy #1
- lda (ptr1),y
+ ldy #1
+ lda (ptr1),y
tax
dey
- lda (ptr1),y
- jsr pushax
+ lda (ptr1),y
+ jsr pushax
; Load va_list [last and __fastcall__ argument for vcscanf()].
- lda ptr1
- ldx ptr1+1
+ lda ptr1
+ ldx ptr1+1
; Call vcscanf().
- jsr _vcscanf
+ jsr _vcscanf
; Clean up the stack. We will return what we got from vcscanf().
- ldy ArgSize
- jmp addysp
+ ldy ArgSize
+ jmp addysp
; ----------------------------------------------------------------------------
; Data
;
.bss
ArgSize:
- .res 1 ; Number of argument bytes
+ .res 1 ; Number of argument bytes