mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-21 05:24:15 +00:00
Kernel 0.93
This commit is contained in:
parent
fd63f01d30
commit
60acd21411
Binary file not shown.
@ -388,7 +388,7 @@ MATH.DIVMOD32 jsr MATH.TMP32ZERO
|
|||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MATH.A2STR10NP ldx #3 3 didgit max
|
MATH.A2STR10NP ldx #3 3 digit max
|
||||||
ldy #0 Disable Padding
|
ldy #0 Disable Padding
|
||||||
MATH.A2STR10 jsr MATH.A2ACC32
|
MATH.A2STR10 jsr MATH.A2ACC32
|
||||||
clc unsigned
|
clc unsigned
|
||||||
|
@ -725,8 +725,6 @@ MEM.NextCharPtr1
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MEM.AddYp1ToPtr1
|
MEM.AddYp1ToPtr1
|
||||||
sec
|
sec
|
||||||
.HS 90 BCC
|
|
||||||
MEM.AddYToPtr1 clc
|
|
||||||
tya
|
tya
|
||||||
adc ZPPtr1
|
adc ZPPtr1
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
@ -742,7 +740,7 @@ MEM.AddYToPtr2 clc
|
|||||||
adc ZPPtr2
|
adc ZPPtr2
|
||||||
sta ZPPtr2
|
sta ZPPtr2
|
||||||
bcc .8
|
bcc .8
|
||||||
clc keep CC as some JMP exkt here
|
clc keep CC as some JMP exit here
|
||||||
inc ZPPtr2+1
|
inc ZPPtr2+1
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -291,63 +291,52 @@ K.PrintF.1 stz PrintF.Cnt
|
|||||||
stz K.PrintF.PadL
|
stz K.PrintF.PadL
|
||||||
stz K.PrintF.PadC
|
stz K.PrintF.PadC
|
||||||
|
|
||||||
ldy #0
|
lda (ZPPtr2)
|
||||||
|
beq .7 end of format... print % and exit
|
||||||
|
|
||||||
.2 lda (ZPPtr2),y
|
jsr IsDigit
|
||||||
beq .7 end of line... print % and exit
|
bcs .6 no digit....go check specifier
|
||||||
iny
|
|
||||||
|
|
||||||
jsr K.PrintF.CheckTBL1 do we have a %x command?
|
|
||||||
bcc .6 yes, jmp to it!
|
|
||||||
|
|
||||||
cmp #'0' ...a 0...mmm... padding char?
|
cmp #'0' ...a 0...mmm... padding char?
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
ldx K.PrintF.PadL K.PrintF.PadL is not nul, so this 0 is second digit
|
sta K.PrintF.PadC
|
||||||
bne .5
|
|
||||||
|
|
||||||
* lda #'0'
|
jsr MEM.NextCharPtr2 skip 0 ...
|
||||||
sta K.PrintF.PadC no, this is the first 0, so make it K.PrintF.PadC
|
|
||||||
bra .2
|
|
||||||
|
|
||||||
.4 jsr IsDigit
|
lda (ZPPtr2)
|
||||||
bcs .7 no TBL1, no digit....abort
|
|
||||||
|
|
||||||
.5 and #$0F we have a digit
|
|
||||||
ldx K.PrintF.PadL
|
|
||||||
bne .51 second digit...
|
|
||||||
|
|
||||||
sta K.PrintF.PadL first digit, store.
|
|
||||||
lda #' '
|
|
||||||
sta K.PrintF.PadC and set pad char as SPACE
|
|
||||||
bra .2
|
|
||||||
|
|
||||||
.51 pha save it...
|
|
||||||
lda K.PrintF.PadL starts K.PrintF.PadL * 10
|
|
||||||
asl
|
|
||||||
asl A=times 4
|
|
||||||
adc K.PrintF.PadL CC by ASL, A=times 5
|
|
||||||
asl times 10
|
|
||||||
sta K.PrintF.PadL
|
|
||||||
|
|
||||||
pla get back digit
|
|
||||||
adc K.PrintF.PadL
|
|
||||||
sta K.PrintF.PadL
|
|
||||||
|
|
||||||
lda (ZPPtr2),y we have 2 digits, must get a letter, now
|
|
||||||
beq .7
|
beq .7
|
||||||
iny
|
|
||||||
jsr K.PrintF.CheckTBL1
|
|
||||||
bcs .7 abort and print %
|
|
||||||
|
|
||||||
.6 jsr MEM.AddYToPtr2 skip all processed chars
|
jsr IsDigit
|
||||||
|
bcs .6 %0x ??????
|
||||||
|
|
||||||
txa
|
.4 jsr MATH.Dec2ACC32
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
lda ACC32
|
||||||
|
sta K.PrintF.PadL
|
||||||
|
lda K.PrintF.PadC
|
||||||
|
bne .6
|
||||||
|
|
||||||
|
lda #C.SPACE
|
||||||
|
sta K.PrintF.PadC
|
||||||
|
|
||||||
|
jsr MEM.AddYToPtr2 skip all processed chars
|
||||||
|
|
||||||
|
lda (ZPPtr2)
|
||||||
|
beq .7
|
||||||
|
|
||||||
|
.6 jsr K.PrintF.CheckTBL1 do we have a %x command?
|
||||||
|
bcs .20
|
||||||
|
|
||||||
|
jsr MEM.NextCharPtr2
|
||||||
|
|
||||||
|
txa yes, jmp to it!
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
jsr PrintF.ESC
|
jsr PrintF.ESC
|
||||||
bcc .1
|
bcc .1
|
||||||
bcs .99
|
bra .99
|
||||||
|
|
||||||
.7 lda #'%'
|
.7 lda #'%'
|
||||||
bra .20
|
bra .20
|
||||||
@ -380,7 +369,7 @@ K.PrintF.1 stz PrintF.Cnt
|
|||||||
|
|
||||||
.20 jsr PrintF.COut
|
.20 jsr PrintF.COut
|
||||||
bcs .99
|
bcs .99
|
||||||
jmp .1
|
.11 jmp .1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.99 pha
|
.99 pha
|
||||||
lda pLocal
|
lda pLocal
|
||||||
@ -415,7 +404,7 @@ K.PrintF.1 stz PrintF.Cnt
|
|||||||
adc (pLocal) ... ByteCnt
|
adc (pLocal) ... ByteCnt
|
||||||
sta pStack CC
|
sta pStack CC
|
||||||
>LDYA PrintF.Cnt
|
>LDYA PrintF.Cnt
|
||||||
clc
|
* clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.PrintF.CheckTBL1
|
K.PrintF.CheckTBL1
|
||||||
@ -448,30 +437,33 @@ PrintFTBL2.OUT .HS 08.1B.0C.0A.0D.09.0B \b\e\f\n\r\t\v
|
|||||||
.DA #'%' \%
|
.DA #'%' \%
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintF.BB jsr PrintF.GetByte
|
PrintF.BB jsr PrintF.GetByte
|
||||||
bcs PrintF.BB.RTS
|
bcs PrintF.B.RTS
|
||||||
pha
|
pha
|
||||||
jsr PrintF.B
|
jsr PrintF.B
|
||||||
pla
|
plx
|
||||||
bcc PrintF.B.1
|
bcs PrintF.B.RTS
|
||||||
PrintF.BB.RTS rts
|
txa
|
||||||
|
bra PrintF.B.1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintF.B jsr PrintF.GetByte
|
PrintF.B jsr PrintF.GetByte
|
||||||
bcs PrintF.BB.RTS
|
bcs PrintF.B.RTS
|
||||||
|
|
||||||
PrintF.B.1 ldx #8
|
PrintF.B.1 ldy #8
|
||||||
|
|
||||||
.1 asl
|
.1 asl
|
||||||
tay
|
pha
|
||||||
lda #'0'/2
|
lda #'0'/2
|
||||||
rol
|
rol
|
||||||
jsr PrintF.COut
|
jsr PrintF.COut
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
tya
|
pla
|
||||||
dex
|
dey
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.9 rts
|
.9 ply
|
||||||
|
PrintF.B.RTS
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintF.I sec signed short
|
PrintF.I sec signed short
|
||||||
.HS 90 BCC
|
.HS 90 BCC
|
||||||
@ -480,14 +472,10 @@ PrintF.D clc unsigned short (BYTE)
|
|||||||
ror ACC32.Sign
|
ror ACC32.Sign
|
||||||
|
|
||||||
jsr PrintF.GetByte
|
jsr PrintF.GetByte
|
||||||
bcs PrintF.BB.RTS
|
bcs PrintF.B.RTS
|
||||||
sta ACC32
|
jsr MATH.A2ACC32
|
||||||
|
|
||||||
stz ACC32+1
|
bra PrintF.NUM
|
||||||
|
|
||||||
ldx #0 one byte
|
|
||||||
|
|
||||||
bra PrintF.DD.1
|
|
||||||
|
|
||||||
PrintF.II sec signed int
|
PrintF.II sec signed int
|
||||||
.HS 90 BCC
|
.HS 90 BCC
|
||||||
@ -496,17 +484,13 @@ PrintF.DD clc unsigned int (WORD)
|
|||||||
ror ACC32.Sign
|
ror ACC32.Sign
|
||||||
|
|
||||||
jsr PrintF.GetByte
|
jsr PrintF.GetByte
|
||||||
bcs PrintF.BB.RTS
|
bcs PrintF.B.RTS
|
||||||
sta ACC32
|
jsr MATH.A2ACC32
|
||||||
|
|
||||||
jsr PrintF.GetByte
|
jsr PrintF.GetByte
|
||||||
bcs PrintF.BB.RTS
|
bcs PrintF.B.RTS
|
||||||
sta ACC32+1
|
sta ACC32+1
|
||||||
|
|
||||||
ldx #1 two bytes
|
|
||||||
|
|
||||||
PrintF.DD.1 stz ACC32+2
|
|
||||||
stz ACC32+3
|
|
||||||
bra PrintF.NUM
|
bra PrintF.NUM
|
||||||
|
|
||||||
PrintF.L sec signed long
|
PrintF.L sec signed long
|
||||||
@ -515,14 +499,13 @@ PrintF.U clc unsigned long (DWORD)
|
|||||||
|
|
||||||
ror ACC32.Sign
|
ror ACC32.Sign
|
||||||
|
|
||||||
ldx #$ff
|
ldx #0
|
||||||
|
|
||||||
.1 jsr PrintF.GetByte
|
.1 jsr PrintF.GetByte
|
||||||
bcs PrintF.BB.RTS
|
bcs PrintF.B.RTS
|
||||||
inx
|
|
||||||
sta ACC32,x
|
sta ACC32,x
|
||||||
|
inx
|
||||||
cpx #3
|
cpx #4
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
PrintF.NUM ldx K.PrintF.PadL
|
PrintF.NUM ldx K.PrintF.PadL
|
||||||
@ -733,9 +716,7 @@ K.FGetS jsr PFT.CheckNodeA
|
|||||||
sta ZPPtr1+1
|
sta ZPPtr1+1
|
||||||
bmi .3 already something in buffer
|
bmi .3 already something in buffer
|
||||||
|
|
||||||
.1 >PUSHWI 1
|
.1 jsr STDIO.Read.1
|
||||||
>PUSHWI K.IOBuf
|
|
||||||
jsr IO.READ.I
|
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
cmp #MLI.E.EOF
|
cmp #MLI.E.EOF
|
||||||
@ -769,9 +750,7 @@ K.FGetS jsr PFT.CheckNodeA
|
|||||||
inc ZPPtr1+1
|
inc ZPPtr1+1
|
||||||
beq .8 Buffer full
|
beq .8 Buffer full
|
||||||
|
|
||||||
.4 >PUSHWI 1
|
.4 jsr STDIO.Read.1
|
||||||
>PUSHWI K.IOBuf
|
|
||||||
jsr IO.READ.I
|
|
||||||
bcs .5
|
bcs .5
|
||||||
|
|
||||||
lda K.IOBuf
|
lda K.IOBuf
|
||||||
@ -840,9 +819,7 @@ K.GetChar ldy #S.PS.hStdIn
|
|||||||
K.GetC jsr PFT.CheckNodeA
|
K.GetC jsr PFT.CheckNodeA
|
||||||
bcs K.GetC.RTS
|
bcs K.GetC.RTS
|
||||||
|
|
||||||
>PUSHWI 1
|
jsr STDIO.Read.1
|
||||||
>PUSHWI K.IOBuf
|
|
||||||
jsr IO.READ.I
|
|
||||||
bcc .8
|
bcc .8
|
||||||
tay
|
tay
|
||||||
bpl K.GetC.RTS I/O error
|
bpl K.GetC.RTS I/O error
|
||||||
@ -853,6 +830,13 @@ K.GetC jsr PFT.CheckNodeA
|
|||||||
.8 lda K.IOBuf
|
.8 lda K.IOBuf
|
||||||
|
|
||||||
K.GetC.RTS rts
|
K.GetC.RTS rts
|
||||||
|
*--------------------------------------
|
||||||
|
STDIO.Read.1 lda #0
|
||||||
|
>PUSHA
|
||||||
|
inc read 1 byte
|
||||||
|
>PUSHA
|
||||||
|
>PUSHWI K.IOBuf
|
||||||
|
jmp IO.READ.I
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # SScanF
|
* # SScanF
|
||||||
* Read formatted data from string
|
* Read formatted data from string
|
||||||
|
@ -89,20 +89,19 @@ K.StrToUL.rts rts
|
|||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.AToL >STYA ZPPtr2 C-String in Ptr2, Dst buffer in Ptr1
|
K.AToL >STYA ZPPtr2 C-String in Ptr2, Dst buffer in Ptr1
|
||||||
|
|
||||||
lda #10 base 10
|
* lda #10 base 10
|
||||||
sec signed
|
sec signed
|
||||||
|
|
||||||
K.AToL.I jsr MATH.Dec2ACC32
|
K.AToL.I jsr MATH.Dec2ACC32
|
||||||
bcs .9
|
bcs .9
|
||||||
phy Save Count processed
|
|
||||||
|
|
||||||
ldy #3
|
ldx #3
|
||||||
|
|
||||||
.3 lda ACC32,y
|
.3 lda ACC32,y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dey
|
dex
|
||||||
bpl .3
|
bpl .3
|
||||||
pla
|
tya Y = A = Count processed
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
|
|
||||||
@ -120,7 +119,7 @@ K.AToL.I jsr MATH.Dec2ACC32
|
|||||||
* Y,A = int
|
* Y,A = int
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.atoi >STYA ZPPtr2
|
K.atoi >STYA ZPPtr2
|
||||||
lda #10 base 10
|
* lda #10 base 10
|
||||||
sec signed
|
sec signed
|
||||||
|
|
||||||
jsr MATH.Dec2ACC32
|
jsr MATH.Dec2ACC32
|
||||||
|
Loading…
Reference in New Issue
Block a user