mirror of
https://github.com/byteworksinc/ORCALib.git
synced 2025-04-13 07:37:09 +00:00
Save a few bytes in printf and scanf.
This commit is contained in:
parent
de978dab48
commit
fca8c1ef85
110
stdio.asm
110
stdio.asm
@ -4916,20 +4916,20 @@ fm4 cmp #'L' else if *format in ['L','h'] then
|
||||
inc ~isByte
|
||||
fm5 inc4 format ++format
|
||||
lda [format] find the proper format character
|
||||
and #$00FF
|
||||
fm6 inc4 format
|
||||
ldx #fListEnd-fList-4
|
||||
short M,I
|
||||
ldx #fListEnd-fList-3
|
||||
fm7 cmp fList,X
|
||||
beq fm8
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
bpl fm7
|
||||
long M,I
|
||||
brl ps1 none found - continue
|
||||
fm8 pea ps1-1 push the return address
|
||||
fm8 long M,I
|
||||
pea ps1-1 push the return address
|
||||
inx call the subroutine
|
||||
inx
|
||||
jmp (fList,X)
|
||||
;
|
||||
; Flag - Read and process a flag character
|
||||
@ -5020,27 +5020,27 @@ val ds 2 value
|
||||
;
|
||||
; List of format specifiers and the equivalent subroutines
|
||||
;
|
||||
fList dc c'%',i1'0',a'~Format_Percent' %
|
||||
dc c'a',i1'0',a'~Format_e' a (not formatted correctly)
|
||||
dc c'A',i1'0',a'~Format_E' A (not formatted correctly)
|
||||
dc c'f',i1'0',a'~Format_f' f
|
||||
dc c'F',i1'0',a'~Format_f' F
|
||||
dc c'e',i1'0',a'~Format_e' e
|
||||
dc c'E',i1'0',a'~Format_E' E
|
||||
dc c'g',i1'0',a'~Format_g' g
|
||||
dc c'G',i1'0',a'~Format_G' G
|
||||
dc c'n',i1'0',a'~Format_n' n
|
||||
dc c's',i1'0',a'~Format_s' s
|
||||
dc c'b',i1'0',a'~Format_b' b
|
||||
dc c'P',i1'0',a'~Format_P' P
|
||||
dc c'p',i1'0',a'~Format_p' p
|
||||
dc c'c',i1'0',a'~Format_c' c
|
||||
dc c'X',i1'0',a'~Format_X' X
|
||||
dc c'x',i1'0',a'~Format_x' x
|
||||
dc c'o',i1'0',a'~Format_o' o
|
||||
dc c'u',i1'0',a'~Format_u' u
|
||||
dc c'd',i1'0',a'~Format_d' d
|
||||
dc c'i',i1'0',a'~Format_d' i
|
||||
fList dc c'%',a'~Format_Percent' %
|
||||
dc c'a',a'~Format_e' a (not formatted correctly)
|
||||
dc c'A',a'~Format_E' A (not formatted correctly)
|
||||
dc c'f',a'~Format_f' f
|
||||
dc c'F',a'~Format_f' F
|
||||
dc c'e',a'~Format_e' e
|
||||
dc c'E',a'~Format_E' E
|
||||
dc c'g',a'~Format_g' g
|
||||
dc c'G',a'~Format_G' G
|
||||
dc c'n',a'~Format_n' n
|
||||
dc c's',a'~Format_s' s
|
||||
dc c'b',a'~Format_b' b
|
||||
dc c'P',a'~Format_P' P
|
||||
dc c'p',a'~Format_p' p
|
||||
dc c'c',a'~Format_c' c
|
||||
dc c'X',a'~Format_X' X
|
||||
dc c'x',a'~Format_x' x
|
||||
dc c'o',a'~Format_o' o
|
||||
dc c'u',a'~Format_u' u
|
||||
dc c'd',a'~Format_d' d
|
||||
dc c'i',a'~Format_d' i
|
||||
fListEnd anop
|
||||
end
|
||||
|
||||
@ -6124,7 +6124,7 @@ fm2b inc ~size
|
||||
fm2c inc ~size
|
||||
bra fm4
|
||||
fm3 cmp #'h' 'h' specifies short int
|
||||
bne fm5
|
||||
bne fm6
|
||||
inc4 format unless it is 'hh' for char types
|
||||
lda [format]
|
||||
and #$00FF
|
||||
@ -6133,21 +6133,21 @@ fm3 cmp #'h' 'h' specifies short int
|
||||
dec ~size
|
||||
fm4 inc4 format ignore the character
|
||||
|
||||
fm5 lda [format] find the proper format character
|
||||
and #$00FF
|
||||
lda [format] find the proper format character
|
||||
fm6 inc4 format
|
||||
ldx #fListEnd-fList-4
|
||||
short M,I
|
||||
ldx #fListEnd-fList-3
|
||||
fm7 cmp fList,X
|
||||
beq fm8
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
dex
|
||||
bpl fm7
|
||||
long M,I
|
||||
brl ps1 none found - continue
|
||||
fm8 pea ps1-1 push the return address
|
||||
fm8 long M,I
|
||||
pea ps1-1 push the return address
|
||||
inx call the subroutine
|
||||
inx
|
||||
jmp (fList,X)
|
||||
;
|
||||
; GetSize - get a numeric value
|
||||
@ -6189,28 +6189,28 @@ val ds 2 value
|
||||
;
|
||||
; List of format specifiers and the equivalent subroutines
|
||||
;
|
||||
fList dc c'd',i1'0',a'~Scan_d' d
|
||||
dc c'i',i1'0',a'~Scan_i' i
|
||||
dc c'u',i1'0',a'~Scan_u' u
|
||||
dc c'o',i1'0',a'~Scan_o' o
|
||||
dc c'x',i1'0',a'~Scan_x' x
|
||||
dc c'X',i1'0',a'~Scan_x' X
|
||||
dc c'p',i1'0',a'~Scan_p' p
|
||||
dc c'c',i1'0',a'~Scan_c' c
|
||||
dc c's',i1'0',a'~Scan_s' s
|
||||
dc c'b',i1'0',a'~Scan_b' b
|
||||
dc c'P',i1'0',a'~Scan_P' P
|
||||
dc c'n',i1'0',a'~Scan_n' n
|
||||
dc c'a',i1'0',a'~Scan_f' a
|
||||
dc c'A',i1'0',a'~Scan_f' A
|
||||
dc c'f',i1'0',a'~Scan_f' f
|
||||
dc c'F',i1'0',a'~Scan_f' F
|
||||
dc c'e',i1'0',a'~Scan_f' e
|
||||
dc c'E',i1'0',a'~Scan_f' E
|
||||
dc c'g',i1'0',a'~Scan_f' g
|
||||
dc c'G',i1'0',a'~Scan_f' G
|
||||
dc c'%',i1'0',a'~Scan_percent' %
|
||||
dc c'[',i1'0',a'~Scan_lbrack' [
|
||||
fList dc c'd',a'~Scan_d' d
|
||||
dc c'i',a'~Scan_i' i
|
||||
dc c'u',a'~Scan_u' u
|
||||
dc c'o',a'~Scan_o' o
|
||||
dc c'x',a'~Scan_x' x
|
||||
dc c'X',a'~Scan_x' X
|
||||
dc c'p',a'~Scan_p' p
|
||||
dc c'c',a'~Scan_c' c
|
||||
dc c's',a'~Scan_s' s
|
||||
dc c'b',a'~Scan_b' b
|
||||
dc c'P',a'~Scan_P' P
|
||||
dc c'n',a'~Scan_n' n
|
||||
dc c'a',a'~Scan_f' a
|
||||
dc c'A',a'~Scan_f' A
|
||||
dc c'f',a'~Scan_f' f
|
||||
dc c'F',a'~Scan_f' F
|
||||
dc c'e',a'~Scan_f' e
|
||||
dc c'E',a'~Scan_f' E
|
||||
dc c'g',a'~Scan_f' g
|
||||
dc c'G',a'~Scan_f' G
|
||||
dc c'%',a'~Scan_percent' %
|
||||
dc c'[',a'~Scan_lbrack' [
|
||||
fListEnd anop
|
||||
;
|
||||
; Other local data
|
||||
|
Loading…
x
Reference in New Issue
Block a user