Kernel 0.93++

This commit is contained in:
Rémy GIBERT 2020-02-03 23:06:28 +01:00
parent af1f73f0d0
commit 5fa8b09663
7 changed files with 65 additions and 83 deletions

Binary file not shown.

View File

@ -475,6 +475,22 @@ K.SYSCALL2.BANK bpl K.SYSCALL.JMP 0, E000, no BNK change
K.SYSCALL.JMP jmp (K.SYSCALL,x)
*--------------------------------------
K.SYSCALL.JMPX sta SETREADAUX
sta SETWRITEAUX
jsr .1
sta CLRREADAUX
sta CLRWRITEAUX
rts
.1 jmp (.2-SYS.StrFTime,x)
.2 .DA TIMEX.StrFTime
.DA TIMEX.PTime2Time
.DA TIMEX.CTime2Time
.DA MD5X.MD5
.DA MD5X.Init
.DA MD5X.Update
.DA MD5X.Finalize
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.JMP
LOAD USR/SRC/SYS/KERNEL.S

View File

@ -13,30 +13,7 @@ NEW
* CC
*\--------------------------------------
K.MD5 >PULLW FORPNT
>PULLYA
>STYA TXTPTR
>SYSCALL2 strlen
>STYA ZPDataLen
sta SETREADAUX
sta SETWRITEAUX
.1 jsr MD5X.Init
bcs .9
pha save MD5 Context hMem
jsr MD5X.Update
jsr MD5X.Finalize
pla
>SYSCALL2 FreeMem Free MD5 Context
clc
.9 sta CLRREADAUX
sta CLRWRITEAUX
rts
>PULLW TXTPTR
*/--------------------------------------
* ## MD5Init
* Initialize a MD5 computation
@ -47,14 +24,7 @@ K.MD5 >PULLW FORPNT
* ## RETURN VALUE
* A = hMem To S.MD5
*\--------------------------------------
K.MD5Init sta SETREADAUX
sta SETWRITEAUX
jsr MD5X.Init
sta CLRREADAUX
sta CLRWRITEAUX
rts
K.MD5Init jmp K.SYSCALL.JMPX
*/--------------------------------------
* ## MD5Update
* Add Data to MD5 computation
@ -71,17 +41,7 @@ K.MD5Update >PULLW ZPDataLen get LEN
>PULLW TXTPTR get DATA
>PULLA
sta SETREADAUX
sta SETWRITEAUX
>SYSCALL2 GetMemPtr get MD5 Context
>STYA ZPCtxPtr
jsr MD5X.Update
sta CLRREADAUX
sta CLRWRITEAUX
rts
jmp K.SYSCALL.JMPX
*/--------------------------------------
* ## MD5Finalize
* # C
@ -94,21 +54,8 @@ K.MD5Update >PULLW ZPDataLen get LEN
*\--------------------------------------
K.MD5Finalize >PULLW FORPNT
>PULLA
sta .8+1
sta SETREADAUX
sta SETWRITEAUX
>SYSCALL2 GetMemPtr
>STYA ZPCtxPtr get MD5 Context
jsr MD5X.Finalize
.8 lda #$ff SELF MODIFIED
>SYSCALL2 FreeMem
sta CLRREADAUX
sta CLRWRITEAUX
rts
jmp K.SYSCALL.JMPX
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.MD5

View File

@ -80,6 +80,26 @@ ZS.END .ED
bne :2
.EM
*--------------------------------------
MD5X.MD5 ldy #$ff
.1 iny
jsr SHARED.TXTPTR.GetY
bne .1
sty ZPDataLen
stz ZPDataLen+1
jsr MD5X.Init
bcs .9
pha save MD5 Context hMem
jsr MD5X.Update.I
jmp MD5X.Finalize.I
.9 rts
*--------------------------------------
MD5X.Init >LDYAI S.MD5
>SYSCALL2 getmem
bcs .9
@ -106,7 +126,10 @@ MD5X.Init >LDYAI S.MD5
clc
.9 rts
*--------------------------------------
MD5X.Update ldy #S.MD5.FINALIZED
MD5X.Update >SYSCALL2 GetMemPtr get MD5 Context
>STYA ZPCtxPtr
MD5X.Update.I ldy #S.MD5.FINALIZED
lda (ZPCtxPtr),y
beq .1
@ -174,16 +197,20 @@ MD5X.Update ldy #S.MD5.FINALIZED
inc TXTPTR+1
bra .1
*--------------------------------------
MD5X.Finalize ldy #S.MD5.FINALIZED
MD5X.Finalize pha
>SYSCALL2 GetMemPtr
>STYA ZPCtxPtr get MD5 Context
MD5X.Finalize.I ldy #S.MD5.FINALIZED
lda (ZPCtxPtr),y
bne .11
bne .1
jsr MD5ExtraChunk
.11 ldy #S.MD5.ABCD0
.1 ldy #S.MD5.ABCD0
.1 lda (ZPCtxPtr),y
.2 lda (ZPCtxPtr),y
lsr
lsr
lsr
@ -200,12 +227,13 @@ MD5X.Finalize ldy #S.MD5.FINALIZED
iny
cpy #S.MD5.ABCD0+16
bne .1
bne .2
lda #0
jsr SHARED.FORPNT.PutNext
clc
.9 rts
pla
jmp K.FreeMem
*--------------------------------------
* PRIVATE
*--------------------------------------

View File

@ -17,7 +17,7 @@ K.Time >PULLW FORPNT
>STYA TXTPTR
ldx #SYS.PTime2Time
bra TIME.JMP
jmp K.SYSCALL.JMPX
*/--------------------------------------
* # StrFTime
* ## C
@ -48,7 +48,7 @@ K.Time >PULLW FORPNT
K.StrFTime >PULLW ZPPtr3 S.TIME
>PULLW TXTPTR format
>PULLW FORPNT str
bra TIME.JMP
jmp K.SYSCALL.JMPX
*/--------------------------------------
* # PTime2Time
* Convert ProDOS Time To S.TIME
@ -74,18 +74,7 @@ K.PTime2Time
*\--------------------------------------
K.CTime2Time >PULLW FORPNT S.TIME
>PULLW TXTPTR ptime/ctime
TIME.JMP sta SETREADAUX
sta SETWRITEAUX
jsr .1
sta CLRREADAUX
sta CLRWRITEAUX
rts
.1 jmp (.2-SYS.StrFTime,x)
.2 .DA K.StrFTime.I
.DA K.PTime2Time.I
.DA K.CTime2Time.I
jmp K.SYSCALL.JMPX
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.TIME

View File

@ -12,7 +12,7 @@ DAY0 .EQ 4 day 0 was a thursday
* FORPNT str
* TXTPTR format
*--------------------------------------
K.StrFTime.I
TIMEX.StrFTime
.1 jsr SHARED.TXTPTR.GetNext
beq .8
@ -167,7 +167,8 @@ TIMEX.MON >PSTR "???"
>PSTR "November"
>PSTR "December"
*--------------------------------------
K.PTime2Time.I ldy #1
TIMEX.PTime2Time
ldy #1
jsr SHARED.TXTPTR.GetY Get Year
lsr C is high bit of month
ldy #S.Time.YEAR
@ -298,7 +299,8 @@ K.ComputeWDAY.1 ldx #$ff SELF MODIFIED : month
*--------------------------------------
TIMEX.MDAY .DA #3,#0,#3,#2,#3,#2,#3,#3,#2,#3,#2,#3
*--------------------------------------
K.CTime2Time.I ldy #3
TIMEX.CTime2Time
ldy #3
.1 lda (ZPPtr1),y
sta ARG32,y ARG = ctime

View File

@ -86,7 +86,6 @@ A2osX.D2.B .PH $D000
.INB USR/SRC/SYS/KERNEL.S.BIN
.INB USR/SRC/SYS/KERNEL.S.PS
.INB USR/SRC/SYS/KERNEL.S.ARG
.INB USR/SRC/SYS/KERNEL.S.ENV
.EP
A2osX.D2.S .EQ *-A2osX.D2.B
@ -99,6 +98,7 @@ A2osX.E0.B .PH $E000
.INB USR/SRC/SYS/KERNEL.S.SHARED
.INB USR/SRC/SYS/KERNEL.S.MATH
.INB USR/SRC/SYS/KERNEL.S.TERM
.INB USR/SRC/SYS/KERNEL.S.ENV
.INB USR/SRC/SYS/KERNEL.S.TIME
.INB USR/SRC/SYS/KERNEL.S.MD5
.INB USR/SRC/SYS/KERNEL.S.PWD