Kernel 0.93++

This commit is contained in:
Rémy GIBERT 2020-01-24 22:53:03 +01:00
parent e3971741b1
commit b3e1dbe1bf
3 changed files with 67 additions and 75 deletions

View File

@ -17,6 +17,15 @@ FILEBUF.SIZE .EQ 4096
ZS.START ZS.START
ZPPtr1 .BS 2 ZPPtr1 .BS 2
ZPDataBufPtr .BS 2 ZPDataBufPtr .BS 2
ZPDataLen .BS 2
ArgIndex .BS 1
Arg .BS 1
bText .BS 1
hFile .BS 1
hDataBuf .BS 1
hMD5Ctx .BS 1
ZS.END .ED ZS.END .ED
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
@ -38,24 +47,21 @@ CS.START cld
.DA CS.RUN .DA CS.RUN
.DA CS.DOEVENT .DA CS.DOEVENT
.DA CS.QUIT .DA CS.QUIT
L.LIBCRYPT .DA LIBCRYPT
L.MSG.USAGE .DA MSG.USAGE L.MSG.USAGE .DA MSG.USAGE
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.INIT >LDYA L.LIBCRYPT CS.INIT clc
>SYSCALL LoadLib rts
bcs .9
sta hLIBCRYPT
.9 rts
*-------------------------------------- *--------------------------------------
CS.RUN ldy #S.PS.ARGC CS.RUN ldy #S.PS.ARGC
lda (pPs),y lda (pPs),y
beq .99 beq .99
.1 >INC.G ArgIndex .1 inc ArgIndex
lda ArgIndex
>SYSCALL ArgV >SYSCALL ArgV
bcs .8 bcs .8
>STYA ZPPtr1 >STYA ZPPtr1
lda (ZPPtr1) lda (ZPPtr1)
cmp #'-' cmp #'-'
@ -71,70 +77,83 @@ CS.RUN ldy #S.PS.ARGC
dex dex
bpl .2 bpl .2
.99 >PUSHBI 0 .99 >PUSHW L.MSG.USAGE
>LDYA L.MSG.USAGE >PUSHBI 0
>SYSCALL printf >SYSCALL printf2
lda #E.SYN lda #E.SYN
sec sec
rts rts
.3 ldy OptionVars,x .3 ldy OptionVars,x
lda #$80 lda #$80
sta (pData),y sta 0,y
bra .1 bra .1
.4 >LDA.G Arg .4 lda Arg
bne .99 bne .99
>LDA.G ArgIndex
>STA.G Arg lda ArgIndex
sta Arg
bra .1 bra .1
.8 >LDA.G Arg
.8 lda Arg
beq .99 beq .99
>LDA.G bText
lda bText
beq CS.RUN.FILE beq CS.RUN.FILE
*-------------------------------------- *--------------------------------------
CS.RUN.TEXT >PUSHEA.G MD5Buf CS.RUN.TEXT lda Arg
>LDA.G Arg
>SYSCALL ArgV >SYSCALL ArgV
>PUSHYA >PUSHYA
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5 >PUSHEA.G MD5Buf
>SYSCALL MD5
jmp CS.RUN.PRINT jmp CS.RUN.PRINT
*-------------------------------------- *--------------------------------------
CS.RUN.FILE >LDYAI FILEBUF.SIZE CS.RUN.FILE >LDYAI FILEBUF.SIZE
>SYSCALL getmem >SYSCALL getmem
bcs .9 bcs .9
>STYA ZPDataBufPtr >STYA ZPDataBufPtr
txa stx hDataBuf
>STA.G hDataBuf >PUSHWZ Aux type
>PUSHWZ Aux type
>PUSHBI 0 ftype >PUSHBI 0 ftype
>PUSHBI O.RDONLY >PUSHBI O.RDONLY
>LDA.G Arg lda Arg
>SYSCALL ArgV >SYSCALL ArgV
>SYSCALL FOpen >SYSCALL FOpen
bcs .9 bcs .9
>STA.G hFile
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init sta hFile
>SYSCALL MD5Init
bcs .9 bcs .9
>STA.G hMD5Ctx
sta hMD5Ctx
.1 >PUSHWI FILEBUF.SIZE Bytes To Read .1 >PUSHWI FILEBUF.SIZE Bytes To Read
>PUSHW ZPDataBufPtr Dst Ptr >PUSHW ZPDataBufPtr Dst Ptr
>LDA.G hFile lda hFile
>SYSCALL FRead >SYSCALL FRead
bcc .2 bcc .2
eor #MLI.E.EOF eor #MLI.E.EOF
beq .8 beq .8
.9 rts .9 rts
.2 >PUSHYA MD5 DataLen
.2 >STYA ZPDataLen
>PUSHB hMD5Ctx
>PUSHW ZPDataBufPtr >PUSHW ZPDataBufPtr
>LDA.G hMD5Ctx >PUSHW ZPDataLen
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update >SYSCALL MD5Update
bra .1 bra .1
.8 >PUSHEA.G MD5Buf
>LDA.G hMD5Ctx .8 >PUSHB hMD5Ctx
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize >PUSHEA.G MD5Buf
>SYSCALL MD5Finalize
CS.RUN.PRINT >LEA.G MD5Buf CS.RUN.PRINT >LEA.G MD5Buf
>SYSCALL strlwr
>SYSCALL puts >SYSCALL puts
lda #0 lda #0
* sec * sec
@ -143,18 +162,16 @@ CS.RUN.PRINT >LEA.G MD5Buf
CS.DOEVENT sec CS.DOEVENT sec
rts rts
*-------------------------------------- *--------------------------------------
CS.QUIT >LDA.G hDataBuf CS.QUIT lda hDataBuf
beq .2 beq .2
>SYSCALL FreeMem >SYSCALL FreeMem
.2 >LDA.G hFile .2 lda hFile
beq .3 beq .3
>SYSCALL fclose >SYSCALL fclose
.3 lda hLIBCRYPT .3 clc
beq .4
>SYSCALL UnloadLib
.4 clc
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
@ -163,19 +180,10 @@ OptionList .AZ "Dd"
OptionVars .DA #bText,#bText OptionVars .DA #bText,#bText
*-------------------------------------- *--------------------------------------
MSG.USAGE .AZ "Usage : MD5 [ -d input text | input file ]\r\n" MSG.USAGE .AZ "Usage : MD5 [ -d input text | input file ]\r\n"
*--------------------------------------
LIBCRYPT .AZ "libcrypt"
hLIBCRYPT .BS 1
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR 0 .OR 0
DS.START DS.START
ArgIndex .BS 1
Arg .BS 1
bText .BS 1
hFile .BS 1
hDataBuf .BS 1
hMD5Ctx .BS 1
MD5Buf .BS 33 MD5Buf .BS 33
DS.END .ED DS.END .ED
*-------------------------------------- *--------------------------------------

View File

@ -49,7 +49,6 @@ CS.START cld
.DA CS.RUN .DA CS.RUN
.DA CS.DOEVENT .DA CS.DOEVENT
.DA CS.QUIT .DA CS.QUIT
L.LIBCRYPT .DA LIBCRYPT
L.MSG.USAGE .DA MSG.USAGE L.MSG.USAGE .DA MSG.USAGE
L.MSG.ROOTPWD1 .DA MSG.ROOTPWD1 L.MSG.ROOTPWD1 .DA MSG.ROOTPWD1
L.MSG.ROOTPWD2 .DA MSG.ROOTPWD2 L.MSG.ROOTPWD2 .DA MSG.ROOTPWD2
@ -67,12 +66,8 @@ J.CS.RUN.CheckArg
* Called once at process creation * Called once at process creation
* Put code for loading LIB here * Put code for loading LIB here
*-------------------------------------- *--------------------------------------
CS.INIT >LDYA L.LIBCRYPT CS.INIT clc
>SYSCALL LoadLib rts
bcs .9
sta hLIBCRYPT
.9 rts
*-------------------------------------- *--------------------------------------
* Called until exit with CS * Called until exit with CS
* if RUN exits with CC, RN entered again * if RUN exits with CC, RN entered again
@ -140,9 +135,9 @@ CS.RUN.ROOT ldy #0
jsr CS.RUN.GetStr jsr CS.RUN.GetStr
bcs .90 bcs .90
>PUSHEA.G PW+S.PW.PASSWD
>PUSHW ZPStrPtr >PUSHW ZPStrPtr
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5 >PUSHEA.G PW+S.PW.PASSWD
>SYSCALL MD5
>PUSHBI 0 >PUSHBI 0
>LDYA L.MSG.ROOTPWD2 >LDYA L.MSG.ROOTPWD2
>SYSCALL printf >SYSCALL printf
@ -152,7 +147,7 @@ CS.RUN.ROOT ldy #0
>PUSHW ZPStrPtr >PUSHW ZPStrPtr
>PUSHW ZPStrPtr >PUSHW ZPStrPtr
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5 >SYSCALL MD5
>PUSHW ZPStrPtr >PUSHW ZPStrPtr
>LEA.G PW+S.PW.PASSWD >LEA.G PW+S.PW.PASSWD
>SYSCALL strcmp >SYSCALL strcmp
@ -284,13 +279,9 @@ CS.RUN.CheckArg.P
lda ArgIndex lda ArgIndex
>SYSCALL ArgV >SYSCALL ArgV
bcs CS.RUN.CheckArg.9 bcs CS.RUN.CheckArg.9
phy
pha
>PUSHEA.G S.PW.PASSWD
pla
ply
>PUSHYA >PUSHYA
>LIBCALL hLIBCRYPT,LIBCRYPT.MD5 >PUSHEA.G S.PW.PASSWD
>SYSCALL MD5
jmp CS.RUN.CheckArg jmp CS.RUN.CheckArg
*-------------------------------------- *--------------------------------------
CS.RUN.CheckArg.C CS.RUN.CheckArg.C
@ -355,10 +346,7 @@ CS.QUIT lda ZPhStr
.1 lda ZPhPW .1 lda ZPhPW
beq .2 beq .2
>SYSCALL freemem >SYSCALL freemem
.2 lda hLIBCRYPT .2 clc
beq .8
>SYSCALL UnloadLib
.8 clc
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
@ -367,9 +355,6 @@ OptionList >PSTR "CcDdPpSs"
*-------------------------------------- *--------------------------------------
* Initialized DATA * Initialized DATA
*-------------------------------------- *--------------------------------------
LIBCRYPT .AZ "libcrypt"
hLIBCRYPT .BS 1
*--------------------------------------
MSG.USAGE .AS "Usage : USERADD username\r\n" MSG.USAGE .AS "Usage : USERADD username\r\n"
.AS " -c : Comment (GECOS)\r\n" .AS " -c : Comment (GECOS)\r\n"
.AS " -d : Home Directory\r\n" .AS " -d : Home Directory\r\n"

View File

@ -12,8 +12,7 @@ NEW
* ## RETURN VALUE * ## RETURN VALUE
* CC * CC
*\-------------------------------------- *\--------------------------------------
K.MD5 >DEBUG K.MD5 >PULLW FORPNT
>PULLW FORPNT
>PULLYA >PULLYA
>STYA TXTPTR >STYA TXTPTR