Kernel 0.93++

This commit is contained in:
Rémy GIBERT 2020-01-24 08:00:30 +01:00
parent b6f7d0ec1a
commit c0a6c74550
2 changed files with 116 additions and 80 deletions

112
SYS/KERNEL.S.MD5.txt Normal file
View File

@ -0,0 +1,112 @@
NEW
AUTO 3,1
*/--------------------------------------
* ## MD5
* Return MD5 Hash for input String
* # C
* `void md5 (const char* str, char* digest);`
* # ASM
* `>PUSHW str`
* `>PUSHW digest`
* `>SYSCALL md5`
* ## RETURN VALUE
* CC
*\--------------------------------------
K.MD5 >PULLW FORPNT
>PULLYA
>STYA TXTPTR
>SYSCALL2 strlen
>STYA ZPDataLen
sta SETREADAUX
sta SETWRITEAUX
.1 jsr K.MD5Init.I
bcs .9
pha save MD5 Context hMem
jsr MD5Update.I
jsr MD5Finalize.I
pla
>SYSCALL2 FreeMem Free MD5 Context
clc
.9 sta CLRREADAUX
sta CLRWRITEAUX
rts
*/--------------------------------------
* ## MD5Init
* Initialize a MD5 computation
* # C
* `hMD5 md5init ();`
* # ASM
* `>SYSCALL MD5Init`
* ## RETURN VALUE
* A = hMem To S.MD5
*\--------------------------------------
K.MD5Init sta SETREADAUX
sta SETWRITEAUX
jsr K.MD5Init.I
sta CLRREADAUX
sta CLRWRITEAUX
rts
*/--------------------------------------
* ## MD5Update
* Add Data to MD5 computation
* # C
* `void md5update (hMD5 md5, char* data, int len);`
* # ASM
* `>PUSHB md5`
* `>PUSHW data`
* `>PUSHW len`
* `>SYSCALL MD5Update`
* ## RETURN VALUE
*\--------------------------------------
K.MD5Update >PULLW ZPDataLen get LEN
>PULLW TXTPTR get DATA
>PULLA
>SYSCALL2 GetMemPtr get MD5 Context
>STYA ZPCtxPtr
sta SETREADAUX
sta SETWRITEAUX
jsr K.MD5Update.I
sta CLRREADAUX
sta CLRWRITEAUX
rts
*/--------------------------------------
* ## MD5Finalize
* # C
* `void md5finalize (hMD5 md5, char* digest);`
* # ASM
* `>PUSHB md5`
* `>PUSHW digest`
* `>SYSCALL MD5Finalize`
* ## RETURN VALUE
*\--------------------------------------
K.MD5Finalize >PULLW FORPNT
>PULLA
sta .8+1
>SYSCALL2 GetMemPtr
>STYA ZPCtxPtr get MD5 Context
sta SETREADAUX
sta SETWRITEAUX
jsr MD5Finalize.I
.8 lda #$ff SELF MODIFIED
>SYSCALL2 FreeMem
sta CLRREADAUX
sta CLRWRITEAUX
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.MD5
LOAD USR/SRC/SYS/KERNEL.S
ASM

View File

@ -79,46 +79,8 @@ ZS.END .ED
dex dex
bne :2 bne :2
.EM .EM
*/-------------------------------------- *--------------------------------------
* ## MD5 K.MD5Init.I >LDYAI S.MD5
* Return MD5 Hash for input String
* # C
* `void md5 (const char* str, char* digest);`
* # ASM
* `>PUSHW str`
* `>PUSHW digest`
* `>SYSCALL md5`
* ## RETURN VALUE
* CC
*\--------------------------------------
K.MD5 >PULLW FORPNT
>PULLYA
>STYA TXTPTR
>SYSCALL2 strlen
>STYA ZPDataLen
.1 jsr K.MD5Init
bcs .9
pha save MD5 Context hMem
jsr MD5Update.I
jsr MD5Finalize.I
pla
>SYSCALL2 FreeMem Free MD5 Context
clc
.9 rts
*/--------------------------------------
* ## MD5Init
* Initialize a MD5 computation
* # C
* `hMD5 md5init ();`
* # ASM
* `>SYSCALL MD5Init`
* ## RETURN VALUE
* A = hMem To S.MD5
*\--------------------------------------
K.MD5Init >LDYAI S.MD5
>SYSCALL2 getmem >SYSCALL2 getmem
bcs .9 bcs .9
@ -142,24 +104,7 @@ K.MD5Init >LDYAI S.MD5
clc clc
.9 rts .9 rts
*/-------------------------------------- *--------------------------------------
* ## MD5Update
* Add Data to MD5 computation
* # C
* `void md5update (hMD5 md5, char* data, int len);`
* # ASM
* `>PUSHB md5`
* `>PUSHW data`
* `>PUSHW len`
* `>SYSCALL MD5Update`
* ## RETURN VALUE
*\--------------------------------------
K.MD5Update >PULLW ZPDataLen get LEN
>PULLW TXTPTR get DATA
>PULLA
>SYSCALL2 GetMemPtr get MD5 Context
>STYA ZPCtxPtr
MD5Update.I ldy #S.MD5.FINALIZED MD5Update.I ldy #S.MD5.FINALIZED
lda (ZPCtxPtr),y lda (ZPCtxPtr),y
beq .1 beq .1
@ -220,28 +165,7 @@ MD5Update.I ldy #S.MD5.FINALIZED
bcc .1 bcc .1
inc TXTPTR+1 inc TXTPTR+1
bra .1 bra .1
*/-------------------------------------- *--------------------------------------
* ## MD5Finalize
* # C
* `void md5finalize (hMD5 md5, char* digest);`
* # ASM
* `>PUSHB md5`
* `>PUSHW digest`
* `>SYSCALL MD5Finalize`
* ## RETURN VALUE
*\--------------------------------------
K.MD5Finalize >PULLW FORPNT
>PULLA
sta .8+1
>SYSCALL2 GetMemPtr
>STYA ZPCtxPtr get MD5 Context
jsr MD5Finalize.I
.8 lda #$ff SELF MODIFIED
>SYSCALL2 FreeMem
rts
MD5Finalize.I ldy #S.MD5.FINALIZED MD5Finalize.I ldy #S.MD5.FINALIZED
lda (ZPCtxPtr),y lda (ZPCtxPtr),y