mirror of
https://github.com/A2osX/A2osX.git
synced 2025-03-04 03:29:50 +00:00
Kernel 0.9.1 : KERNEL, Preemtive mode, KERNEL & LIB Cleaning
This commit is contained in:
parent
b14a8e556d
commit
4e7d011929
35
.Docs/LIBCRYPT.md
Normal file
35
.Docs/LIBCRYPT.md
Normal 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.
@ -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
172
BIN/MD5.S.txt
Normal 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
|
@ -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
|
||||
|
@ -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
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user