diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index 538a5183..f976078d 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -46,7 +46,7 @@ And return, if found, the full path to it. + X = DEVID + Y,A = DEVSLOT -# K.GetDevStatus.A +# GetDevStatus.A ## IN: + A = DevID @@ -54,7 +54,7 @@ And return, if found, the full path to it. ## OUT: + Y,A = S.DSTAT -# K.IOCTL +# IOCTL ## IN: + PUSHB = DevID diff --git a/.Docs/LIBCRYPT.md b/.Docs/LIBCRYPT.md index 4dfa8a0f..7e4a294a 100644 --- a/.Docs/LIBCRYPT.md +++ b/.Docs/LIBCRYPT.md @@ -17,7 +17,7 @@ ## Out : + A = hMem To S.MD5 -# MD5Update (Append "$80" & Padding & original size) +# MD5Update ## In: * PUSHW DATA LEN diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index 81dcfa6c..4d27a220 100644 Binary files a/.Floppies/A2OSX.BOOT.po and b/.Floppies/A2OSX.BOOT.po differ diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 569aa9c7..bde82ae2 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index f15f6084..beea6640 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index 40710a41..265d3c0c 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -500,7 +500,7 @@ CS.END OptionList >PSTR "ALRalr" OptionVars .DA #bAllmostAll,#bLong,#bRecurse,#bAllmostAll,#bLong,#bRecurse *-------------------------------------- -MSG.DEVEXT .AZ "%15s S%d,D%d Blocks Used:%5D Total:%5D\r\n" +MSG.DEVEXT .AZ "/%15s S%dD%d Blocks Used:%5D Total:%5D\r\n" MSG.DIR .AZ "\e[32m%s/\e[0m" MSG.ENTER .AZ "Directory:%s\r\n" MSG.DIREXT .AZ "\e[32m%16s\e[0m %s %s %s\r\n" diff --git a/BIN/MD5.S.txt b/BIN/MD5.S.txt index d4eb19d9..7f001198 100644 --- a/BIN/MD5.S.txt +++ b/BIN/MD5.S.txt @@ -8,10 +8,13 @@ AUTO 4,1 *-------------------------------------- .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/A2OSX.I + .INB /A2OSX.BUILD/INC/MLI.ERR.I .INB /A2OSX.BUILD/INC/LIBCRYPT.I *-------------------------------------- +FILEBUF.SIZE .EQ 4096 +*-------------------------------------- ZPPtr1 .EQ ZPBIN -ZPPtr2 .EQ ZPBIN+2 +ZPDataBufPtr .EQ ZPBIN+2 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -46,7 +49,7 @@ CS.INIT ldy #S.PS.ARGC .1 >INC.G ArgIndex >SYSCALL GetArg.A - bcs .7 + bcs .8 >STYA ZPPtr1 @@ -76,13 +79,17 @@ CS.INIT ldy #S.PS.ARGC sta (pData),y bra .1 -.4 >LDA.G hFullPath +.4 >LDA.G Arg bne .99 - -.7 >LDA.G bText - + + >LDA.G ArgIndex + >STA.G Arg + bra .1 + .8 >LDYA L.LIBCRYPT >SYSCALL LoadLib.YA + bcs .9 + sta hLIBCRYPT * lda (pPs) @@ -90,34 +97,117 @@ CS.INIT ldy #S.PS.ARGC * sta (pPs) clc - rts +.9 rts *-------------------------------------- -CS.RUN +CS.RUN >LDA.G bText + beq CS.RUN.FILE +*-------------------------------------- +CS.RUN.TEXT >LDA.G Arg + >SYSCALL GetArg.A + >PUSHYA + >PUSHEA.G MD5Buf - - - >LDYA L.MSG.OK + >LIBCALL hLIBCRYPT,LIBCRYPT.MD5 + bcs .9 + + >LEA.G MD5Buf >SYSCALL PrintF.YA + + lda #13 + >SYSCALL PutChar.A + lda #10 + >SYSCALL PutChar.A + lda #0 sec +.9 rts +*-------------------------------------- +CS.RUN.FILE >LDA.G Arg + >SYSCALL GetArg.A + >SYSCALL RealPath.YA + bcc .10 rts -.9 pha - >PUSHA - >LDYA L.MSG.ERR +.10 txa + >STA.G hFullPath + + >LDYAI FILEBUF.SIZE + >SYSCALL GetMem.YA + bcs .9 + >STYA ZPDataBufPtr + txa + >STA.G hDataBuf + + >PUSHWI 0 Aux type + >PUSHBI 0 + >PUSHBI SYS.FOpen.R + + >LDA.G hFullPath + >SYSCALL GetMemPtr.A + + >PUSHYA + + >SYSCALL FOpen + bcs .9 + >STA.G hFile + + >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init + bcs .9 + + >STA.G hMD5Ctx + +.1 >PUSHW ZPDataBufPtr Dst Ptr + >PUSHWI FILEBUF.SIZE Bytes To Read + >PUSHB.G hFile + >SYSCALL FRead + + bcc .2 + eor #MLI.E.EOF + beq .8 +.9 rts + +.2 >PUSHYA MD5 DataLen + >PUSHW ZPDataBufPtr + >PUSHB.G hMD5Ctx + >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update + bra .1 + +.8 >PUSHEA.G MD5Buf + >PUSHB.G hMD5Ctx + >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize + + >LEA.G MD5Buf >SYSCALL PrintF.YA - pla + + lda #13 + >SYSCALL PutChar.A + lda #10 + >SYSCALL PutChar.A + + lda #0 sec rts *-------------------------------------- CS.DOEVENT sec rts *-------------------------------------- -CS.QUIT >LDA.G hDataBuf +CS.QUIT >LDA.G hFullPath beq .1 + >SYSCALL FreeMem.A + + +.1 >LDA.G hDataBuf + beq .2 + >SYSCALL FreeMem.A + +.2 >LDA.G hFile + beq .3 + + >SYSCALL FClose.A +.3 -.1 lda hLIBCRYPT +.7 lda hLIBCRYPT beq .8 >SYSCALL UnloadLib.A @@ -149,7 +239,7 @@ CS.END OptionList >PSTR "Dd" OptionVars .DA #bText,#bText *-------------------------------------- -MSG.USAGE .AZ "Usage : MD5 [ -d input_text | infile… ] \r\n" +MSG.USAGE .AZ "Usage : MD5 [ -d input text | input file ]\r\n" MSG.OK .AZ "[OK]\r\n" MSG.ERR .AZ "[%h]\r\n" MSG.INIT .AZ "Computing %s ..." @@ -161,10 +251,13 @@ hLIBCRYPT .BS 1 .OR 0 DS.START ArgIndex .BS 1 +Arg .BS 1 bText .BS 1 hFullPath .BS 1 +hFile .BS 1 hDataBuf .BS 1 -hMD5CtxBuf .BS 1 +hMD5Ctx .BS 1 +MD5Buf .BS 33 DS.END .ED *-------------------------------------- MAN diff --git a/LIB/LIBCRYPT.S.txt b/LIB/LIBCRYPT.S.txt index c589bc29..fe066131 100644 --- a/LIB/LIBCRYPT.S.txt +++ b/LIB/LIBCRYPT.S.txt @@ -132,7 +132,7 @@ MD5 >PULLW ZPHashPtr pha save MD5 Context hMem jsr MD5Update.I - jsr MD5Finalize + jsr MD5Finalize.I pla >SYSCALL FreeMem.A Free MD5 Context @@ -170,7 +170,7 @@ MD5Init >LDYAI S.MD5.SIZE clc .9 rts */-------------------------------------- -* # MD5Update (Append "$80" & Padding & original size) +* # MD5Update * ## In: * PUSHW DATA LEN * PUSHW DATA PTR @@ -186,8 +186,10 @@ MD5Update >PULLA get MD5 Context MD5Update.I ldy #S.MD5.FINALIZED lda (ZPCtxPtr),y beq .1 + sec rts + .1 lda ZPDataLen+1 More than 256 Bytes remaining to hash ? bne .3 yes lda ZPDataLen @@ -197,47 +199,61 @@ MD5Update.I ldy #S.MD5.FINALIZED .2 cmp #64 More than 64 Bytes remaining to hash ? bcc .50 yes + .3 lda #64 .50 sta ZPChunkLen Save Chunk Len jsr MD5UpdateBitCount + ldy #0 + .51 lda (ZPDataPtr),y Load Buffer with data sta MD5.BUFFER64,y iny cpy ZPChunkLen bne .51 + cpy #64 Full 64 Bytes DATA ? beq .58 + +* Append "$80" & Padding & original size + lda #$80 no, Append $80 sta MD5.BUFFER64,y + lda #0 + .52 iny Pad with 0 to 64 cpy #64 beq .53 sta MD5.BUFFER64,y bra .52 + .53 ldy #S.MD5.EXTRABIT Mark MD5 Context as Appended lda #$80 sta (ZPCtxPtr),y lda ZPChunkLen cmp #56 Enough room for BITCOUNT ? bcs .58 no + jsr MD5AppendBitCount + .58 jsr MD5Transform jsr MD5UpdateABCD0 + .8 lda ZPDataLen Substract Bytes processed from LEN sec sbc ZPChunkLen get back chunk Len sta ZPDataLen bcs .81 dec ZPDataLen+1 + .81 lda ZPDataPtr Add Bytes processed to DATA clc adc ZPChunkLen sta ZPDataPtr - bcc .82 + bcc .1 inc ZPDataPtr+1 -.82 bra .1 + bra .1 */-------------------------------------- * # MD5Finalize * ## In : @@ -246,11 +262,18 @@ MD5Update.I ldy #S.MD5.FINALIZED * ## Out: *\-------------------------------------- MD5Finalize >PULLA + pha + >SYSCALL GetMemPtr.A >STYA ZPCtxPtr get MD5 Context >PULLW ZPHashPtr + jsr MD5Finalize.I + pla + >SYSCALL FreeMem.A + rts + MD5Finalize.I ldy #S.MD5.FINALIZED lda (ZPCtxPtr),y diff --git a/README.md b/README.md index 0b859fbc..ef93e90e 100644 --- a/README.md +++ b/README.md @@ -234,6 +234,7 @@ note : '$VAR' does NOT expand Variable | CHGRP | In Progress | -C : Continue On Error | 0.9 | | | | -R : Recurse subdirectories | | | FORMAT | In Progress | -L : Low-Level Format | 0.9.1 | +| MD5 | In Progress | -D : String Input | 0.9.1 | | EDIT | Working | still missing : find/replace | 0.9.1 | | NSCUTIL | Working | Tool for setting time in NSC/DL1216E | 0.9 | | ---- | ------ | ------- | ----- | diff --git a/SYS/KERNEL.S.DEV.txt b/SYS/KERNEL.S.DEV.txt index 1efa15f3..3a946ab7 100644 --- a/SYS/KERNEL.S.DEV.txt +++ b/SYS/KERNEL.S.DEV.txt @@ -70,7 +70,7 @@ K.GetDevByName.YA K.GetDevDNF lda #MLI.E.NODEV CS from cpx/beq rts */-------------------------------------- -* # K.GetDevStatus.A +* # GetDevStatus.A * ## IN: * A = DevID * ## OUT: @@ -87,7 +87,7 @@ K.GetDevStatus.A jmp (pDev) */-------------------------------------- -* # K.IOCTL +* # IOCTL * ## IN: * PUSHB = DevID * PUSHB = Operation diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index b5a46359..3caa214b 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -180,8 +180,6 @@ PS.CmdLine2Args >STYA ZPPtr1 .1 lda (ZPPtr1),y compute strlen in Y,X beq .2 - cmp #'"' skip " in computation.... - beq .1 iny bne .1 max 255