From ca2e35b7f6873a286b9f4b2cdac1b73194471898 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 3 Feb 2020 08:02:18 +0100 Subject: [PATCH] Kernel 0.93++ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/KILL.S.txt | 2 +- INC/LIBCRYPT.I.txt | 24 -- LIB/LIBCRYPT.S.txt | 549 --------------------------------------- 4 files changed, 1 insertion(+), 574 deletions(-) delete mode 100644 INC/LIBCRYPT.I.txt delete mode 100644 LIB/LIBCRYPT.S.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index a600536351cdff1ed0958748890ad1b20f4f1499..69991f9ca00cee7f8bf404148ce3c6b29be59743 100644 GIT binary patch delta 2687 zcmX}s1yB@i9LMq7^A6CH7evHvK(M>JTkP)c7F$g0I`yy{u@Tg>8@oHP8@rSD_eIB> z`F{3)JJ0Suvo~`gKjS?@ROAbb*~iBoXX$IH5KzL^-qxB`gUQW4(YiQchz@jlVl_(I zf1D00;A#5zaWmrM-zIzu`FGA_O8RGZGo|}`(${Vz%`mU8;bwR_?r*7)%3(A%*S2?Y zZ@oQbvZ_Y3hey;gOZkA*DWYSpwy_#nqWy2j8-~^HADh$9RI^(73iX->HTZigm!T$$ zseskg#jlVpKIEY(Q^GcbV*?G7eR*uAKbwt-4R!r91wDy$U$e}|W~}&VM18hI877A{ z!eChm*U-QS!xv*VF~wl#_h0PF%m8hjoD>YF3MH8Ib(JuZqwNC4fXd*;`H~jSp)R! zoW*T_w&)BhZi`IeFj6M*c6isd#f1mijPQE4k>M9~Ja025T(oV!m~{GV&$lk7aenT$ ztfq&aJ$Xf;OFFo#|CERFRLPW=O0K*WYkX8nl}e>nX;fO3PNi2FR7RCaWmZ{KR^_Yw zl)uWR0#u;Nu5zfHDwoQw@~FHjpUSTasDi4HDy)jAqN zsEVqRs;sK0s;Zi*u4<^7s+Ov)>Zl-9SJhMXRRh&fHByaL6V+5TQ_WQi)l#)mtyLS< zR<%>@RR`5kbyA&G7u8jDQ{7b$)l>CSy;UF8SM^i<)c`e64N}2suo|L5=?s%>h!a;hC_r`n}< zt37J3+Nbub1L~kUqzcd0}t?oWZ(tK!5dP5 z52S=tkQ&lJT1W@!Ap>NDOpqC}KvwVtKk$ca5CDOY9dbZU$OX9}59Eb>kRJ*_K_~=; zp$HU(Vo)4PKuIVCrJ)Rzg>q0HDnLc31eKu*RE26#9cn;Ls0Fp54g^76s0a0-0W^e0 z&={IPQ)mXwp#`*rR?r&SKwD@B?IGbe@5s~%Izt!e3f-VP^njkw3wlEz=nMUzKMa6@ zFbINSFbsjAFbsyn2p9>YAOuFk7#IuVU_4BKP?!jlU@}aBsW1(u!wi@SvtTyZVGhiN zdEkIBm=6nJAuNK$umqOEGFT2PU?r@A)esJAAOhCHI#>@IU?XgT%@7G&APS;kD{O=9 z;DjBp6L!IF*aLfEAMA$%a1ai`VK@RYa1@TgaX0}d;S`*PGjJBp!Fjj<7vU0IhAVIt zuEBM<0XN|m+=e?43wPlj+=mD75FWu}cmhx189av<@Dk$S6}*Nw@D|>|d-wn!;S+p@ YFYpzQ^N#I93M>_lt?^%Og>yA!*yJ9)p4 z@6J4*+4;}z{x)Vd;&+N$go=G-a`bSwCY$=3s`>l4SUZ}%O_lwNcv`2JmubbrJwCws znc3zw-7(6R=UVPV)-cx&_R!=Ub&Pm7x409givC$V;}frknho!G-@7S>k;>|u6zJn$ zzizeaA+3U&I{d#mk8m(K6gNAB`INMzL_Buz^7C_Yu?|fNFaoTrlDsssfG(31nd<+U z!Ovn{SAQ|qUmRgF;=Y>VjBGY@jNxSp^C@MC42Uu80Wpq2y-gv0f$8l-J)FM2bo24%qok@sFca;eesluv=DyoX9 z;;MuysYZ*pSscNa(s*b9wf>b?KUo}t-RU;Lw z8mkc1L^V~-RCCorwN$NCYt=@zRqa%J)j@@-j;fRDth%VKs+;Pr!c-5{Q}t54RUg$? z^;6-hzZ#$hszGY78lr}(VQRP4vYP1@o#;OQ4PK{R+)I>E&O;(X=ikhmXsp)El znyF@~*=mlOtL7=Iny(h9h03NDsVKErEm2F=GPPW-P%G6cwOXxFYt=dxt=6j;wLxuE zo785tMQv5vRIJ*r;#9oap?0cW%C2^+Jt{%%Rr}O_bwC|dhty$pL>*PfRH8brPNsI%&vIYBQ)Zm65;mb$I(sJrT(N>caL1NBfnQjgUW^;A7m z&(#a{QoT~IRkC`c-l})%z51X&s!!^(`l7z7Z|b}Hp?<1g>bLr%{;HJe%exq}6*z(u zn7|CqkP1>m8gKy%qy<+<2X2raGC)Rf2M@>uo{$-`Kvu{G*&zqygj|ptydV$c1#id) zKHv*};12YnqCCZ9Kvk#))u9H| zgj!G=>Ofrxf_hLN8bCv61i{c4LZAsWg=WwkT0l!^1+AeCw1sxi9y&lMbc9aO8UB6q zuIzP#?hpn&peOW#-p~j7LO%$H{xARr!XOw7LtrQjgW)g&M#3l<4P#&|M8G&04-;S_ zOoGV}2~%JyOoQn#17^Z3m<@AaF3bZf%!dWA5NxmrqF^yBfu*nvmct5I39Dc=tbw(# z4x(W_#J~pF2%BItY=Nz?4Ps$C#6djlfSs@l?64d5KmzQAeXt)6z(F_!hv5hug=3Hi z$KeE=gi~-D&cInX2j}4eT!c$-8Lq%pxCYnZ2Hb>Oa2xKxUAPBHa33DPLwE#_;R!s2 zXYd?ez)N@quOS)Uz*~3+@8JV{gir7pzQ9-b2H)Wa{Dfcd8~(swPUSHW L.MSG.USAGE >PUSHBI 0 - >SYSCALL printf + >SYSCALL printf2 lda #E.SYN sec diff --git a/INC/LIBCRYPT.I.txt b/INC/LIBCRYPT.I.txt deleted file mode 100644 index 16aec9ab..00000000 --- a/INC/LIBCRYPT.I.txt +++ /dev/null @@ -1,24 +0,0 @@ -NEW - AUTO 3,1 - .LIST OFF -*-------------------------------------- -LIBCRYPT.MD5 .EQ 4 -LIBCRYPT.MD5Init .EQ 6 -LIBCRYPT.MD5Update .EQ 8 -LIBCRYPT.MD5Finalize .EQ 10 -*-------------------------------------- -* S.MD5 STRUCT -*-------------------------------------- -S.MD5.ABCD0 .EQ 0 -S.MD5.A0 .EQ 0 -S.MD5.B0 .EQ 4 -S.MD5.C0 .EQ 8 -S.MD5.D0 .EQ 12 -S.MD5.BITCOUNT .EQ 16 -S.MD5.EXTRABIT .EQ 24 -S.MD5.FINALIZED .EQ 25 -* -S.MD5 .EQ 26 -*-------------------------------------- -MAN -SAVE INC/LIBCRYPT.I diff --git a/LIB/LIBCRYPT.S.txt b/LIB/LIBCRYPT.S.txt deleted file mode 100644 index 00f8e1a9..00000000 --- a/LIB/LIBCRYPT.S.txt +++ /dev/null @@ -1,549 +0,0 @@ -NEW - AUTO 3,1 - .LIST OFF - .OP 65C02 - .OR $2000 - .TF lib/libcrypt -*-------------------------------------- - .INB INC/MACROS.I - .INB INC/A2OSX.I - .INB INC/LIBCRYPT.I -*-------------------------------------- - .DUMMY - .OR ZPLIB -ZS.START -ZPCtxPtr .BS 2 -ZPDataPtr .BS 2 -ZPHashPtr .BS 2 - -ZPChunkLen .BS 2 - -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.F1 .BS 4 -MD5.F2 .BS 4 - -ZS.END .ED -*-------------------------------------- -* DWORD Macros : Do NOT disturb carry with cpx, cpy... -*-------------------------------------- - .MA ADC32 - ldx #3 - ldy #0 - clc -:1 lda ]1,y - adc ]2,y - sta ]3,y - iny - dex - bpl :1 - .EM -*-------------------------------------- - .MA AND32 - ldx #3 -:1 lda ]1,x - and ]2,x - sta ]3,x - dex - bpl :1 - .EM -*-------------------------------------- - .MA ORA32 - ldx #3 -:1 lda ]1,x - ora ]2,x - sta ]3,x - dex - bpl :1 - .EM -*-------------------------------------- - .MA EOR32 - ldx #3 -:1 lda ]1,x - eor ]2,x - sta ]3,x - dex - bpl :1 - .EM -*-------------------------------------- - .MA NOT32 - ldx #3 -:1 lda ]1,x - eor #$FF - sta ]2,x - dex - bpl :1 - .EM -*-------------------------------------- - .MA MOV32 - ldx #3 -:1 lda ]1,x - sta ]2,x - dex - bpl :1 - .EM -*-------------------------------------- - .MA ROL32x -:2 lda ]1+3 - rol - rol ]1 - rol ]1+1 - rol ]1+2 - rol ]1+3 - dex - bne :2 - .EM -*-------------------------------------- -* 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 - .DA 0 - .DA 0 - .DA 0 -*-------------------------------------- -* Relocation Table -*-------------------------------------- -.1 .DA LIB.LOAD - .DA LIB.UNLOAD - .DA MD5 - .DA MD5Init - .DA MD5Update - .DA MD5Finalize -J.MD5.XXXX .DA MD5.0015 - .DA MD5.1631 - .DA MD5.3247 - .DA MD5.4863 - .DA 0 -*-------------------------------------- -LIB.LOAD -LIB.UNLOAD clc - rts -*/-------------------------------------- -* ## MD5 -* Return MD5 Hash for input String -* # C -* `void md5 (const char* str, char* digest);` -* # ASM -* `>PUSHW digest` -* `>PUSHW str` -* ## RETURN VALUE -* CC -*\-------------------------------------- -MD5 >PULLW ZPDataPtr - >PULLW ZPHashPtr - >LDYA ZPDataPtr - >SYSCALL2 strlen - >STYA ZPDataLen -.1 jsr 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 -* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init` -* ## RETURN VALUE -* A = hMem To S.MD5 -*\-------------------------------------- -MD5Init >LDYAI S.MD5 - >SYSCALL2 getmem - bcs .9 - >STYA ZPCtxPtr - ldy #0 -.1 lda MD5.ABCDINIT,y - sta (ZPCtxPtr),y - iny - cpy #S.MD5.BITCOUNT - bne .1 - lda #0 -.2 sta (ZPCtxPtr),y - iny - cpy #S.MD5 Includes S.MD5.FINALIZED Flag - bne .2 - txa - clc -.9 rts -*/-------------------------------------- -* ## MD5Update -* Add Data to MD5 computation -* # C -* `void md5update (hMD5 md5, char* data, int len);` -* # ASM -* `>PUSHW len` -* `>PUSHW data` -* `>LDA.G md5` -* `>hLIBCRYPT,LIBCRYPT.MD5Update` -* ## RETURN VALUE -*\-------------------------------------- -MD5Update >SYSCALL2 GetMemPtr get MD5 Context - >STYA ZPCtxPtr - >PULLW ZPDataPtr get DATA - >PULLW ZPDataLen get LEN -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 - bne .2 Len = O ? - clc All data processed - rts -.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 .1 - inc ZPDataPtr+1 - bra .1 -*/-------------------------------------- -* ## MD5Finalize -* # C -* `void md5finalize (hMD5 md5, char* digest);` -* # ASM -* `>PUSHW digest` -* `>LDA.G md5` -* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize` -* ## RETURN VALUE -*\-------------------------------------- -MD5Finalize pha - >SYSCALL2 GetMemPtr - >STYA ZPCtxPtr get MD5 Context - >PULLW ZPHashPtr - jsr MD5Finalize.I - pla - >SYSCALL2 FreeMem - rts -MD5Finalize.I ldy #S.MD5.FINALIZED - - lda (ZPCtxPtr),y - bne .11 - jsr MD5ExtraChunk -.11 ldy #S.MD5.ABCD0 - -.1 lda (ZPCtxPtr),y - lsr - lsr - lsr - lsr - tax - lda MD5.DIGITS,x - sta (ZPHashPtr) - inc ZPHashPtr - bne .2 - inc ZPHashPtr+1 -.2 lda (ZPCtxPtr),y - and #$0F - tax - lda MD5.DIGITS,x - sta (ZPHashPtr) - inc ZPHashPtr - bne .3 - inc ZPHashPtr+1 -.3 iny - cpy #S.MD5.ABCD0+16 - bne .1 - lda #0 - sta (ZPHashPtr) - clc -.9 rts -*-------------------------------------- -* PRIVATE -*-------------------------------------- -* MD5AppendBitCount -* In : -* ZPCtxPtr = MD5 Context -*-------------------------------------- -MD5AppendBitCount - ldx #56 - ldy #S.MD5.BITCOUNT Append 8 Bytes of BITCOUNT - -.1 lda (ZPCtxPtr),y - sta MD5.BUFFER64,x - inx - iny - cpy #S.MD5.BITCOUNT+8 - bne .1 - - ldy #S.MD5.FINALIZED Mark MD5 Context as Finalized - lda #$80 - sta (ZPCtxPtr),y - rts -*-------------------------------------- -* MD5UpdateBitCount -* In : -* CL = Size (in bytes) to add to MD5 context -* ZPCtxPtr = MD5 Context -*-------------------------------------- -MD5UpdateBitCount - stz ZPChunkLen+1 - lda ZPChunkLen - asl - rol ZPChunkLen+1 - asl times 8 to get bit count - rol ZPChunkLen+1 - asl - rol ZPChunkLen+1 - clc - ldy #S.MD5.BITCOUNT - adc (ZPCtxPtr),y - sta (ZPCtxPtr),y - iny - lda ZPChunkLen+1 - adc (ZPCtxPtr),y - sta (ZPCtxPtr),y - bcc .8 - -.1 iny - lda (ZPCtxPtr),y - inc - sta (ZPCtxPtr),y - bne .8 - - cpy #7 - bne .1 - -.8 rts -*-------------------------------------- -* MD5ExtraChunk -* In : -* ZPCtxPtr = MD5 Context -*-------------------------------------- -MD5ExtraChunk ldy #S.MD5.FINALIZED - lda #$80 - sta (ZPCtxPtr),y Mark MD5 Context as "finalized" - ldx #0 - ldy #S.MD5.EXTRABIT Extra Bit already appended ? - lda (ZPCtxPtr),y - bne .1 - - lda #$80 - sta MD5.BUFFER64 Add extra bit to buffer - sta (ZPCtxPtr),y Mark Extrabit added - inx - -.1 stz MD5.BUFFER64,x pad with "0"... - inx - cpx #56 - bne .1 ...until room for bitcount - - jsr MD5AppendBitCount - jsr MD5Transform -*-------------------------------------- -* MD5UpdateABCD0 -* In: -* ZPCtxPtr = MD5 Context -*-------------------------------------- -MD5UpdateABCD0 ldy #0 - -.1 clc ADC32 A+A0->A0, B, C, D.... - -.2 lda MD5.ABCD,y - adc (ZPCtxPtr),y - sta (ZPCtxPtr),y - iny - tya - and #3 - bne .2 - - cpy #16 - bne .1 - - rts -*-------------------------------------- -* MD5Transform -* In: -* 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 (ZPCtxPtr),y - sta MD5.ABCD,y - dey - bpl .1 - - stz MD5.i Start Proceed 0 to 63 bytes - lda #0 lda MD5.i - -.2 lsr - lsr - lsr - and #6 - tax - - jsr MD5.XXXX - - inc MD5.i - lda MD5.i - cmp #64 - bne .2 - rts -*-------------------------------------- -MD5.XXXX jmp (J.MD5.XXXX,x) -*-------------------------------------- -MD5.0015 >AND32 MD5.B,MD5.C,MD5.F1 - >NOT32 MD5.B,MD5.F2 - >AND32 MD5.F2,MD5.D,MD5.F2 - >ORA32 MD5.F1,MD5.F2,MD5.F - bra MD5.XXXX.END -*-------------------------------------- -MD5.1631 >AND32 MD5.D,MD5.B,MD5.F1 - >NOT32 MD5.D,MD5.F2 - >AND32 MD5.F2,MD5.C,MD5.F2 - >ORA32 MD5.F1,MD5.F2,MD5.F - bra MD5.XXXX.END -*-------------------------------------- -MD5.3247 >EOR32 MD5.B,MD5.C,MD5.F - >EOR32 MD5.F,MD5.D,MD5.F - bra MD5.XXXX.END -*-------------------------------------- -MD5.4863 >NOT32 MD5.D,MD5.F1 - >ORA32 MD5.F1,MD5.B,MD5.F2 - >EOR32 MD5.F2,MD5.C,MD5.F -*-------------------------------------- -MD5.XXXX.END >MOV32 MD5.D,MD5.DTemp - >MOV32 MD5.C,MD5.D - >MOV32 MD5.B,MD5.C - >ADC32 MD5.A,MD5.F,MD5.F - lda MD5.i - asl - asl - tay - ldx #0 - clc - -.1 lda MD5.K,y ADC32 MD5.K[i],MD5.F,MD5.F - adc MD5.F,x - sta MD5.F,x - iny - inx - txa - eor #4 DO NOT DISTURB carry with cpx !!! - bne .1 - - ldy MD5.i - lda MD5.g,y - asl - asl - tay - ldx #0 - clc -.2 lda MD5.BUFFER64,y ADC32 M[g],MD5.F,MD5.F - adc MD5.F,x - sta MD5.F,x - iny - inx - txa - eor #4 DO NOT DISTURB carry with cpx !!! - bne .2 - - ldy MD5.i - ldx MD5.s,y get s[i] in x - - >ROL32x MD5.F - >ADC32 MD5.B,MD5.F,MD5.B - >MOV32 MD5.DTemp,MD5.A - rts -*-------------------------------------- -CS.END -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 - .DA #5,#9,#14,#20,#5,#9,#14,#20,#5,#9,#14,#20,#5,#9,#14,#20 - .DA #4,#11,#16,#23,#4,#11,#16,#23,#4,#11,#16,#23,#4,#11,#16,#23 - .DA #6,#10,#15,#21,#6,#10,#15,#21,#6,#10,#15,#21,#6,#10,#15,#21 -*-------------------------------------- -MD5.g .DA #0,#1,#2,#3,#4,#5,#6,#7,#8,#9,#10,#11,#12,#13,#14,#15 - .DA #1,#6,#11,#0,#5,#10,#15,#4,#9,#14,#3,#8,#13,#2,#7,#12 - .DA #5,#8,#11,#14,#1,#4,#7,#10,#13,#0,#3,#6,#9,#12,#15,#2 - .DA #0,#7,#14,#5,#12,#3,#10,#1,#8,#15,#6,#13,#4,#11,#2,#9 -*-------------------------------------- -MD5.K .HS 78A46AD7.56B7C7E8.DB702024.EECEBDC1 - .HS AF0F7CF5.2AC68747.134630A8.019546FD - .HS D8988069.AFF7448B.B15BFFFF.BED75C89 - .HS 2211906B.937198FD.8E4379A6.2108B449 - .HS 62251EF6.40B340C0.515A5E26.AAC7B6E9 - .HS 5D102FD6.53144402.81E6A1D8.C8FBD3E7 - .HS E6CDE121.D60737C3.870DD5F4.ED145A45 - .HS 05E9E3A9.F8A3EFFC.D9026F67.8A4C2A8D - .HS 4239FAFF.81F67187.22619D6D.0C38E5FD - .HS 44EABEA4.A9CFDE4B.604BBBF6.70BCBFBE - .HS C67E9B28.FA27A1EA.8530EFD4.051D8804 - .HS 39D0D4D9.E599DBE6.F87CA21F.6556ACC4 - .HS 442229F4.97FF2A43.A72394AB.39A093FC - .HS C3595B65.92CC0C8F.7DF4EFFF.D15D8485 - .HS 4F7EA86F.E0E62CFE.144301A3.A111084E - .HS 827E53F7.35F23ABD.BBD2D72A.91D386EB -*-------------------------------------- -MD5.DIGITS .AS "0123456789ABCDEF" -*-------------------------------------- -ZPDataLen .BS 2 - -MD5.DTemp .BS 4 -MD5.F .BS 4 -MD5.i .BS 1 -MD5.BUFFER64 .BS 64 -*-------------------------------------- -MAN -SAVE USR/SRC/LIB/LIBCRYPT.S -ASM