Kernel 0.9.1 : KERNEL, Preemtive mode, KERNEL & LIB Cleaning

This commit is contained in:
Rémy GIBERT 2018-04-17 16:25:45 +01:00
parent b14a8e556d
commit 4e7d011929
13 changed files with 381 additions and 196 deletions

35
.Docs/LIBCRYPT.md Normal file
View File

@ -0,0 +1,35 @@
*** Auto generated by docgen.cmd ***
# MD5
+ Return MD5 Hash for input String
## In :
+ PUSHW = PTR to Src String
+ PUSHW = PTR to Dst MessageDigest Buffer
## Out :
+ CC
# MD5Init
## In :
## Out :
+ A = hMem To S.MD5
# MD5Update (Append "$80" & Padding & original size)
## In:
* PUSHW DATA LEN
* PUSHW DATA PTR
* PUSHB MD5 Context hMem
## Out :
# MD5Finalize
## In :
+ PUSHW = MessageDigest (PSTR, 16 Bytes, 32 Chars) +Ending 0
+ PUSHB = hMem To S.MD5
## Out:

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -30,6 +30,11 @@ set SRCDIR=%~dp0..\LIB
set FILTER=LIBBLKDEV.S*.txt
Call :SCAN
set DOCFILE=%~dp0..\.Docs\LIBCRYPT.md
set SRCDIR=%~dp0..\LIB
set FILTER=LIBCRYPT.S*.txt
Call :SCAN
echo.
echo All done : !c! Files scanned.
echo.

172
BIN/MD5.S.txt Normal file
View File

@ -0,0 +1,172 @@
NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
.LIST OFF
.OP 65C02
.OR $2000
.TF /A2OSX.BUILD/BIN/MD5
*--------------------------------------
.INB /A2OSX.BUILD/INC/MACROS.I
.INB /A2OSX.BUILD/INC/A2OSX.I
.INB /A2OSX.BUILD/INC/LIBCRYPT.I
*--------------------------------------
ZPPtr1 .EQ ZPBIN
ZPPtr2 .EQ ZPBIN+2
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA 0
.DA CS.END-CS.START CS
.DA DS.END-DS.START DS
.DA #16 SS
.DA #4 ZP
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.LIBCRYPT .DA LIBCRYPT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.INIT .DA MSG.INIT
L.MSG.OK .DA MSG.OK
L.MSG.ERR .DA MSG.ERR
.DA 0
*--------------------------------------
CS.INIT ldy #S.PS.ARGC
lda (pPs),y
beq .99
.1 >INC.G ArgIndex
>SYSCALL GetArg.A
bcs .7
>STYA ZPPtr1
lda (ZPPtr1)
cmp #'-'
bne .4
ldy #1
lda (ZPPtr1),y
beq .99
ldx OptionList
.2 cmp OptionList,x
beq .3
dex
bne .2
.99 >LDYA L.MSG.USAGE
>SYSCALL PrintF.YA
lda #K.E.SYN
sec
rts
.3 ldy OptionVars-1,x
lda #$80
sta (pData),y
bra .1
.4 >LDA.G hFullPath
bne .99
.7 >LDA.G bText
.8 >LDYA L.LIBCRYPT
>SYSCALL LoadLib.YA
sta hLIBCRYPT
* lda (pPs)
* ora #S.PS.F.EVENT Now accept events
* sta (pPs)
clc
rts
*--------------------------------------
CS.RUN
>LDYA L.MSG.OK
>SYSCALL PrintF.YA
lda #0
sec
rts
.9 pha
>PUSHA
>LDYA L.MSG.ERR
>SYSCALL PrintF.YA
pla
sec
rts
*--------------------------------------
CS.DOEVENT sec
rts
*--------------------------------------
CS.QUIT >LDA.G hDataBuf
beq .1
>SYSCALL FreeMem.A
.1 lda hLIBCRYPT
beq .8
>SYSCALL UnloadLib.A
.8 clc
rts
*--------------------------------------
A2CharAX pha
lsr
lsr
lsr
lsr
and #$0F
ora #$30
cmp #'9'+1
bcc .1
adc #6
.1 tax
pla
and #$0F
ora #$30
cmp #'9'+1
bcc .8
adc #6
.8 rts
*--------------------------------------
CS.END
*--------------------------------------
OptionList >PSTR "Dd"
OptionVars .DA #bText,#bText
*--------------------------------------
MSG.USAGE .AZ "Usage : MD5 [ -d input_text | infile… ] \r\n"
MSG.OK .AZ "[OK]\r\n"
MSG.ERR .AZ "[%h]\r\n"
MSG.INIT .AZ "Computing %s ..."
*--------------------------------------
LIBCRYPT .AZ "libcrypt.o"
hLIBCRYPT .BS 1
*--------------------------------------
.DUMMY
.OR 0
DS.START
ArgIndex .BS 1
bText .BS 1
hFullPath .BS 1
hDataBuf .BS 1
hMD5CtxBuf .BS 1
DS.END .ED
*--------------------------------------
MAN
SAVE /A2OSX.SRC/BIN/MD5.S
ASM

View File

@ -431,7 +431,7 @@ S.EVT.W2 .EQ 6
S.EVT .EQ 8
*--------------------------------------
S.TIME.CENTURY .EQ 0 19,20,21....
S.TIME.YEAR .EQ 1 0.99
S.TIME.YEAR .EQ 1 0..99
S.TIME.MONTH .EQ 2 1..12
S.TIME.DAY .EQ 3 1..31
S.TIME.HOUR .EQ 4 0..23

View File

@ -6,10 +6,10 @@ AUTO 6
.LIST OFF
.OP 65C02
*--------------------------------------
LIBCRYPT.MD5PStrA .EQ 4
LIBCRYPT.MD5 .EQ 4
LIBCRYPT.MD5Init .EQ 6
LIBCRYPT.MD5Update .EQ 8
LIBCRYPT.MD5FinalizeA .EQ 10
LIBCRYPT.MD5Finalize .EQ 10
*--------------------------------------
* S.MD5 STRUCT
*--------------------------------------

View File

@ -10,13 +10,11 @@ AUTO 4,1
.INB /A2OSX.BUILD/INC/A2OSX.I
.INB /A2OSX.BUILD/INC/LIBCRYPT.I
*--------------------------------------
ZPTmpPtr1 .EQ ZPLIB
ZPTmpPtr2 .EQ ZPLIB+2
ZPTmpPtr3 .EQ ZPLIB+4
ZPTmpPtr4 .EQ ZPLIB+6
ZPDataPtr .EQ ZPLIB+8
ZPDataLen .EQ ZPLIB+10
ZPChunkLen .EQ ZPLIB+12
ZPCtxPtr .EQ ZPLIB
ZPDataPtr .EQ ZPLIB+2
ZPDataLen .EQ ZPLIB+4
ZPChunkLen .EQ ZPLIB+6
ZPHashPtr .EQ ZPLIB+8
*--------------------------------------
* DWORD Macros : Do NOT disturb carry with cpx, cpy...
*--------------------------------------
@ -103,88 +101,90 @@ CS.START cld
*--------------------------------------
.1 .DA LIB.LOAD
.DA LIB.UNLOAD
.DA MD5PStrA
.DA MD5
.DA MD5Init
.DA MD5Update
.DA MD5FinalizeA
.DA MD5Finalize
.DA 0
*--------------------------------------
LIB.LOAD
LIB.UNLOAD clc
rts
*--------------------------------------
* MD5PStrA
* in :
* A = hMem To PSTR
* out :
* A = hMem To MessageDigest
*--------------------------------------
MD5PStrA >SYSCALL GetMemPtr.A
>STYA ZPTmpPtr3 1 and 2 used by other MD5 functions
ldy #0
lda (ZPTmpPtr3),y get PStr len
sta ZPTmpPtr4 ZPTmpPtr4 = str len
stz ZPTmpPtr4+1 0,PSTR len <= 255
inc ZPTmpPtr3
bne .1
inc ZPTmpPtr3+1 Make DATA skip PSTR Len Byte
*/--------------------------------------
* # MD5
* Return MD5 Hash for input String
* ## In :
* PUSHW = PTR to Src String
* PUSHW = PTR to Dst MessageDigest Buffer
* ## Out :
* CC
*\--------------------------------------
MD5 >PULLW ZPHashPtr
>PULLYA
>STYA ZPDataPtr
>SYSCALL StrLen.YA
>STYA ZPDataLen
.1 jsr MD5Init
bcs .9
pha save MD5 Context hMem
>PUSHW ZPTmpPtr4 Push LEN
>PUSHW ZPTmpPtr3 Push DATA
jsr MD5Update.I
jsr MD5Finalize
pla
pha
>PUSHA Push MD5 Context
jsr MD5Update
pla get back MD5 Context
pha
jsr MD5FinalizeA
plx get back MD5 Context hMem
pha save MessageDigest hMem
txa
>SYSCALL FreeMem.A Free MD5 Context
pla get back MessageDigest hMem
>SYSCALL FreeMem.A Free MD5 Context
clc
.9 rts
*--------------------------------------
* MD5Init
* In :
* Out :
*/--------------------------------------
* # MD5Init
* ## In :
* ## Out :
* A = hMem To S.MD5
*--------------------------------------
*\--------------------------------------
MD5Init >LDYAI S.MD5.SIZE
>SYSCALL GetMem.YA
bcs .9
>STYA ZPTmpPtr1
>STYA ZPCtxPtr
ldy #0
.1 lda MD5.ABCDINIT,y
sta (ZPTmpPtr1),y
sta (ZPCtxPtr),y
iny
cpy #16
bne .1
lda #0
.2 sta (ZPTmpPtr1),y
.2 sta (ZPCtxPtr),y
iny
cpy #S.MD5.SIZE Includes S.MD5.FINALIZED Flag
bne .2
txa
clc
.9 rts
*--------------------------------------
* MD5Update (Append "$80" & Padding & original size)
* In:
* PULLB MD5 Context hMem
* PULLW DATA PTR
* PULLW DATA LEN
*--------------------------------------
*/--------------------------------------
* # MD5Update (Append "$80" & Padding & original size)
* ## In:
* PUSHW DATA LEN
* PUSHW DATA PTR
* PUSHB MD5 Context hMem
* ## Out :
*\--------------------------------------
MD5Update >PULLA get MD5 Context
>SYSCALL GetMemPtr.A
>STYA ZPTmpPtr1 get MD5 Context
>STYA ZPCtxPtr get MD5 Context
>PULLW ZPDataPtr get DATA
>PULLW ZPDataLen get LEN
ldy #S.MD5.FINALIZED
lda (ZPTmpPtr1),y
MD5Update.I ldy #S.MD5.FINALIZED
lda (ZPCtxPtr),y
beq .1
sec
rts
@ -218,7 +218,7 @@ MD5Update >PULLA get MD5 Context
bra .52
.53 ldy #S.MD5.EXTRABIT Mark MD5 Context as Appended
lda #$80
sta (ZPTmpPtr1),y
sta (ZPCtxPtr),y
lda ZPChunkLen
cmp #56 Enough room for BITCOUNT ?
bcs .58 no
@ -238,53 +238,58 @@ MD5Update >PULLA get MD5 Context
bcc .82
inc ZPDataPtr+1
.82 bra .1
*--------------------------------------
* MD5FinalizeA
* In :
* A = hMem To S.MD5
* Out:
* A = MessageDigest (PSTR, 16 Bytes, 32 Chars)
*--------------------------------------
MD5FinalizeA >SYSCALL GetMemPtr.A
>STYA ZPTmpPtr1 get MD5 Context
ldy #S.MD5.FINALIZED
lda (ZPTmpPtr1),y
*/--------------------------------------
* # MD5Finalize
* ## In :
* PUSHW = MessageDigest (PSTR, 16 Bytes, 32 Chars) +Ending 0
* PUSHB = hMem To S.MD5
* ## Out:
*\--------------------------------------
MD5Finalize >PULLA
>SYSCALL GetMemPtr.A
>STYA ZPCtxPtr get MD5 Context
>PULLW ZPHashPtr
MD5Finalize.I ldy #S.MD5.FINALIZED
lda (ZPCtxPtr),y
bne .11
jsr MD5ExtraChunk
.11 >LDYAI 33 Len + 32 Digits
>SYSCALL GetMem.YA
bcs .9
>STYA ZPTmpPtr2
phx save hMem for return
lda #32
sta (ZPTmpPtr2)
inc ZPTmpPtr2
bne .10
inc ZPTmpPtr2+1
.10 ldy #S.MD5.ABCD0
.1 lda (ZPTmpPtr1),y
.11 ldy #S.MD5.ABCD0
.1 lda (ZPCtxPtr),y
lsr
lsr
lsr
lsr
tax
lda MD5.DIGITS,x
sta (ZPTmpPtr2)
inc ZPTmpPtr2
sta (ZPHashPtr)
inc ZPHashPtr
bne .2
inc ZPTmpPtr2+1
.2 lda (ZPTmpPtr1),y
inc ZPHashPtr+1
.2 lda (ZPCtxPtr),y
and #$0F
tax
lda MD5.DIGITS,x
sta (ZPTmpPtr2)
inc ZPTmpPtr2
sta (ZPHashPtr)
inc ZPHashPtr
bne .3
inc ZPTmpPtr2+1
inc ZPHashPtr+1
.3 iny
cpy #S.MD5.ABCD0+16
bne .1
pla get back hMem
lda #0
sta (ZPHashPtr)
clc
.9 rts
*--------------------------------------
@ -292,12 +297,12 @@ MD5FinalizeA >SYSCALL GetMemPtr.A
*--------------------------------------
* MD5AppendBitCount
* In :
* ZPTmpPtr1 = MD5 Context
* ZPCtxPtr = MD5 Context
*--------------------------------------
MD5AppendBitCount
ldx #56
ldy #S.MD5.BITCOUNT Append 8 Bytes of BITCOUNT
.1 lda (ZPTmpPtr1),y
.1 lda (ZPCtxPtr),y
sta MD5.BUFFER64,x
inx
iny
@ -305,13 +310,13 @@ MD5AppendBitCount
bne .1
ldy #S.MD5.FINALIZED Mark MD5 Context as Finalized
lda #$80
sta (ZPTmpPtr1),y
sta (ZPCtxPtr),y
rts
*--------------------------------------
* MD5UpdateBitCount
* In :
* CL = Size (in bytes) to add to MD5 context
* ZPTmpPtr1 = MD5 Context
* ZPCtxPtr = MD5 Context
*--------------------------------------
MD5UpdateBitCount
stz ZPChunkLen+1
@ -324,17 +329,17 @@ MD5UpdateBitCount
rol ZPChunkLen+1
clc
ldy #S.MD5.BITCOUNT
adc (ZPTmpPtr1),y
sta (ZPTmpPtr1),y
adc (ZPCtxPtr),y
sta (ZPCtxPtr),y
iny
lda ZPChunkLen+1
adc (ZPTmpPtr1),y
sta (ZPTmpPtr1),y
adc (ZPCtxPtr),y
sta (ZPCtxPtr),y
bcc .8
.1 iny
lda (ZPTmpPtr1),y
lda (ZPCtxPtr),y
inc
sta (ZPTmpPtr1),y
sta (ZPCtxPtr),y
bne .8
cpy #7
bne .1
@ -342,18 +347,18 @@ MD5UpdateBitCount
*--------------------------------------
* MD5ExtraChunk
* In :
* ZPTmpPtr1 = MD5 Context
* ZPCtxPtr = MD5 Context
*--------------------------------------
MD5ExtraChunk ldy #S.MD5.FINALIZED
lda #$80
sta (ZPTmpPtr1),y Mark MD5 Context as "finalized"
sta (ZPCtxPtr),y Mark MD5 Context as "finalized"
ldx #0
ldy #S.MD5.EXTRABIT Extra Bit already appended ?
lda (ZPTmpPtr1),y
lda (ZPCtxPtr),y
bne .1
lda #$80
sta MD5.BUFFER64 Add extra bit to buffer
sta (ZPTmpPtr1),y Mark Extrabit added
sta (ZPCtxPtr),y Mark Extrabit added
inx
.1 stz MD5.BUFFER64,x pad with "0"...
inx
@ -364,13 +369,13 @@ MD5ExtraChunk ldy #S.MD5.FINALIZED
*--------------------------------------
* MD5UpdateABCD0
* In:
* ZPTmpPtr1 = MD5 Context
* ZPCtxPtr = MD5 Context
*--------------------------------------
MD5UpdateABCD0 ldy #0
.1 clc ADC32 A+A0->A0, B, C, D....
.2 lda MD5.ABCD,y
adc (ZPTmpPtr1),y
sta (ZPTmpPtr1),y
adc (ZPCtxPtr),y
sta (ZPCtxPtr),y
iny
tya
and #3
@ -381,13 +386,13 @@ MD5UpdateABCD0 ldy #0
*--------------------------------------
* MD5Transform
* In:
* ZPTmpPtr1 = MD5 Context
* ZPCtxPtr = MD5 Context
* 512 Bits Padded chunk in MD5.BUFFER64
* Out:
* Updated MD5.ABCD
*--------------------------------------
MD5Transform ldy #15 init ABCD Chunk with Context ABCD0
.1 lda (ZPTmpPtr1),y
.1 lda (ZPCtxPtr),y
sta MD5.ABCD,y
dey
bpl .1
@ -466,18 +471,6 @@ MD5.NEXTi >MOV32 MD5.D,MD5.DTemp
jmp MD5.0015
*--------------------------------------
CS.END
MD5.ABCD
MD5.A .BS 4 Chunk Level,A,B,C,D
MD5.B .BS 4
MD5.C .BS 4
MD5.D .BS 4
MD5.DTemp .BS 4
MD5.F .BS 4
MD5.F1 .BS 4
MD5.F2 .BS 4
MD5.i .BS 1
MD5.BUFFER64 .BS 64
*--------------------------------------
MD5.ABCDINIT .HS 01234567.89ABCDEF.FEDCBA98.76543210
*--------------------------------------
MD5.s .DA #7,#12,#17,#22,#7,#12,#17,#22,#7,#12,#17,#22,#7,#12,#17,#22
@ -509,6 +502,18 @@ MD5.K .HS 78A46AD7.56B7C7E8.DB702024.EECEBDC1
*--------------------------------------
MD5.DIGITS .AS "0123456789ABCDEF"
*--------------------------------------
MD5.ABCD
MD5.A .BS 4 Chunk Level,A,B,C,D
MD5.B .BS 4
MD5.C .BS 4
MD5.D .BS 4
MD5.DTemp .BS 4
MD5.F .BS 4
MD5.F1 .BS 4
MD5.F2 .BS 4
MD5.i .BS 1
MD5.BUFFER64 .BS 64
*--------------------------------------
MAN
SAVE /A2OSX.SRC/LIB/LIBCRYPT.S
ASM

View File

@ -9,13 +9,13 @@ AUTO 4,1
* X = hMem to Expanded String (C-String)
* Y,A = PTR to Expanded String
*\--------------------------------------
K.ExpandStr.YA stz ENV.hStr Reset Intermediate string...
K.ExpandStr.YA stz ENV.hStr Reset Intermediate string...
.1 >STYA ZPPtr2
stz ENV.BufLen init Expanded String len=0
stz ENV.bFound No var found yet
stz ENV.BufLen init Expanded String len=0
stz ENV.bFound No var found yet
stz ENV.bNoExp Reset no expand flag
stz ENV.bNoExp Reset no expand flag
ldy #0
@ -32,7 +32,7 @@ K.ExpandStr.YA stz ENV.hStr Reset Intermediate string...
lda ENV.bNoExp
eor #$ff
sta ENV.bNoExp toggle flag
sta ENV.bNoExp toggle flag
bra .11
.21 bit ENV.bNoExp
@ -44,20 +44,20 @@ K.ExpandStr.YA stz ENV.hStr Reset Intermediate string...
stx ENV.BufLen
bra .11
.23 ldx ENV.bInVar already in a var?
.23 ldx ENV.bInVar already in a var?
bne .3 yes...
cmp #'$' no, found one ?
bne .22 no, store...
sta ENV.bFound Toggle flag
sta ENV.bFound Toggle flag
sta ENV.bInVar
bra .11 skip this char
.3 cmp #'{' we are in var, "{" after "$"?
bne .31
ldx ENV.VarLen No char in var yet ?
ldx ENV.VarLen No char in var yet ?
beq .11 normal, "${" syntax is ok,skip
bne .5 not allowed char in varname, end of var
@ -65,7 +65,7 @@ K.ExpandStr.YA stz ENV.hStr Reset Intermediate string...
.31 cmp #'}' end of var?
beq .50
jsr ENV.IsVarChar
jsr MEM.IsIDValid _,.,a-z,A-Z,0-9 ?
bcc .32 yes, add to varname
ldx ENV.VarLen
@ -95,13 +95,13 @@ K.ExpandStr.YA stz ENV.hStr Reset Intermediate string...
ply restore index in string...
.52 jmp .10 reset start flag and continue
.8 ldx ENV.VarLen end of STR,are we in a var?
.8 ldx ENV.VarLen end of STR,are we in a var?
beq .80 no...exit...
stz ENV.VarName,x
jsr ENV.GetValue yes, expand and add to STR
jsr ENV.GetValue yes, expand and add to STR
.80 lda ENV.hStr working from our temp string ?
.80 lda ENV.hStr working from our temp string ?
beq .81 no...
jsr K.FreeMem.A yes, discard....
@ -122,27 +122,6 @@ K.ExpandStr.YA stz ENV.hStr Reset Intermediate string...
.9 rts
*--------------------------------------
ENV.IsVarChar cmp #'_'
beq .8
cmp #'0'
bcc .9
cmp #'9'+1
bcc .8
cmp #'A'
bcc .9
cmp #'Z'+1
* bcc .8
rts
.8 clc
rts
.9 sec
rts
*--------------------------------------
ENV.GetValue jsr ENV.ExpandSysVar
bcc .9
@ -327,11 +306,11 @@ K.GetEnv.YA >STYA ZPPtr1
*\--------------------------------------
K.UnsetEnv.YA >STYA ZPPtr1 Store VAR Name
K.UnsetEnv.I jsr ENV.FindVarP1
bcs .8 not found, quit
bcs K.UnsetEnv.I.8 not found, quit
jsr ENV.DelVarP3 Ptr3 -> ENVNAME
.8 clc
K.UnsetEnv.I.8 clc
rts
*--------------------------------------
* PRIVATE
@ -350,21 +329,17 @@ ENV.ExpandSysVar
bne .9
lda ENV.VarName
cmp #'0'-1 $0...$9 ??
bcc .1
cmp #'9'+1
jsr MEM.IsDigit $0...$9 ??
bcs .1
and #$0F
jsr K.GetArg.A
bcs .8 Arg# is undefined, do not append anything
bcs K.UnsetEnv.I.8 Arg# is undefined, do not append anything
>STYA ZPPtr3
jmp ENV.AddP3ToBuf
.8 clc
rts
.1 ldx #ENV.SysVarsJmp-ENV.SysVars-1
.2 cmp ENV.SysVars,x

View File

@ -561,34 +561,36 @@ K.SListFree.A
MEM.GetKeyCharY sta CLRREADAUX
lda (ZPSListKeyPtr),y
sta SETREADAUX
beq .9
beq MEM.IsDigit.9
cmp #'.'
beq .8
MEM.IsIDValid cmp #'.'
beq MEM.IsDigit.8
cmp #'_'
beq .8
beq MEM.IsDigit.8
cmp #'0'
bcc .9
cmp #'9'+1
bcc .8
cmp #'A'
bcc .9
cmp #'Z'+1
bcc .8
MEM.IsDigitOrL cmp #'z'+1
bcs MEM.IsDigit.RTS
cmp #'a'
bcc .9
cmp #'z'+1
bcs .9
bcs MEM.IsDigit.8
.8 clc
MEM.IsDigitOrUC cmp #'Z'+1
bcs MEM.IsDigit.RTS
cmp #'A'
bcs MEM.IsDigit.8
MEM.IsDigit cmp #'9'+1
bcs MEM.IsDigit.RTS
cmp #'0'
bcs MEM.IsDigit.8
MEM.IsDigit.9 sec
MEM.IsDigit.RTS rts
MEM.IsDigit.8 clc
rts
.9 sec
rts
*--------------------------------------
MEM.SetKeyCharY sta CLRWRITEAUX
sta (ZPSListKeyPtr),y

View File

@ -666,7 +666,7 @@ K.SScanF jsr PullP1P2P3
* stz ASCBUF
.20 lda (ZPPtr1)
jsr STDIO.IsDigit
jsr MEM.IsDigit
bcs .21
phx
* inc ASCBUF
@ -802,7 +802,7 @@ K.PrintF.YA >STYA ZPPtr1
sta PADCHAR no, this is the first 0, so make it PADCHAR
bra .2
.4 jsr STDIO.IsDigit
.4 jsr MEM.IsDigit
bcs .99
.5 and #$0F we have a digit
@ -1090,15 +1090,6 @@ STDIO.IOERR lda #MLI.E.IO
sec
rts
*--------------------------------------
STDIO.IsDigit cmp #'0'
bcc .1
cmp #'9'+1
rts
.1 sec
rts
*--------------------------------------
STDIO.AT10
*--------------------------------------
PADLEN .BS 1
PADCHAR .BS 1
*--------------------------------------

View File

@ -129,7 +129,7 @@ STDLIB.Dec2Hex jsr STDLIB.32.Clear
lda (ZPPtr2),y
beq .8
jsr STDIO.IsDigit
jsr MEM.IsDigit
bcs .8
phy Save Y, pointing to next char