From 09923489fd914100ac0a0a75912521b720cf5b6c Mon Sep 17 00:00:00 2001 From: burniouf Date: Tue, 27 Jul 2021 18:21:58 +0200 Subject: [PATCH] LIBCRYPT:Bufixes and MD5 removal (duplicated in KERNEL) ACOS:bugfixes in GET KERNEL:fixes for //c loobing bug --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes .Floppies/A2OSX.TEST.po | Bin 819200 -> 819200 bytes BIN/ACOS.S.EXP.txt | 12 +- BIN/ACOS.S.RT.txt | 25 ++- BIN/ACOS.S.txt | 6 +- BIN/ATTR.S.txt | 25 +-- BIN/HMACMD5.S.txt | 22 +-- BIN/PAK.S.txt | 1 + BIN/XARGS.S.txt | 368 ++++++++++++++++++++------------------- INC/LIBCRYPT.I.txt | 7 +- LIB/LIBCIFS.S.txt | 15 +- LIB/LIBCRYPT.S.txt | 284 +++++++++++------------------- SBIN/CIFSD.S.txt | 47 ++++- SBIN/INITD.S.txt | 2 +- SYS/KERNEL.S.MD5X.txt | 2 +- SYS/KERNEL.S.TERM.txt | 2 +- SYS/KERNEL.S.TERMX.txt | 16 +- 17 files changed, 411 insertions(+), 423 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 435f9c2868597e1a4597d270b73f07e302566775..6d5a8db181d566f84b50b693b23a12fe9e5af4b4 100644 GIT binary patch delta 67422 zcmZ@h3qVvw*K_v)7j_qx-McTI7j}6HE1=?{f-EmV5fJc2R-j@~J`m8<`T|nO%m-LG zSy@Oy;wQCONtPD%^$>eVX7y!OrefYoH^&r%$ak}oSCir z-;j45{BvBA$*xC@^LcncmLmz$KRiWlhVMYnhf9T*5cR{G-A#3+ZP@(8A4Lb>}57GcfZ)B)*tsY6{Y28=Uek~(qH`e^e(CTUKVYS zH0tVx&LjSM6u`av>(lCUUMM0eREKC{fai;)-^4Hp{ZjN{goZ``6N>uyR3cq=Zgx>R za{bTE&NApYgEoamsGY@LeEaOZQtzz0(5>N0FZ7R4*X_l;3x6{N-52vNe#S7jy%=_h z>rw<>-gL6zlkF{9zOXxEH?vQvS=Q0tdW}ct90A+c^>1C@zimVJP#YtWY3^}mcx>O= zzja&xw(Z^8{mjRl3`$DnH&I)CSC!m#ca(j@01nFPFZg=8H(6e}fvGsW0rmBb2P zwpEhF@OWaCBusVUhw=ycLH8DE*D3x)_eZNFZ_1bxxT!|6oiTR@t&x0O!~EL)bHC*6 zDDQU|)NIlDptAxs*6z1CX}WIuP9_+sl?eIsf&9I}_XY0?M#xyw;@x#}F!bWZwu`NI z^5}>od(+v5Zx5dBjp>`z!gQS-^lV|i*cm*?Z^mzg`3LD=e}B7K2@&mFHy12n&W z-)!m84!+%@?XvV<>r?T+cEA3rbPfY_tB*)8N&fyGUppcl^7Pm?x2HLJTTxF*xAb)> z&$ylV!C1lvrwap-hs%AZ{J^A0CWQWy>O3X2lJ{TX{o7O0gyMDmeMK$t{P^>IFY%67_H`g(0Q4X0 zV|;mNYVsyogB*rM2ihs)TVLti+CM1ePyEoLhJs{3^pipwq0rX;7O%q#4>!v;tN#?x zSpBJVVhIeV_5A>L#ReExF0j){jm~xbe8Rvcw+8nX)aBMJ8}vBV_s2!|i}JdkAqyIX zhQu;Z8d~o_Jb&0&(ot?JXx88kuH*b z{!3{XbdBd3X>5x5vLk4de?!1_+mRO3!L-VFNKtJHYzP8w2X5Kv-!W8@1#NDfab#Q8 zkydncXlRf<4NSRqsqUBZoD+D%8L5RaD56`#<3RV|BD0P6n!vJhx=y1#5P%-p;EWvS5CtNt>X@91HR-%pTD zWD<5wmfZ{G{xw+^&IEV2O_qhhP{tqFWR*-XPD+&dLgs=**)Ars`=>-%6p;qL$+E*x z=2Wt52b5VlUG@Ud3|+W|a-;XtZO1=_S*@PZ=g}(RhlU6%CZx!2_evW$s8(ME*`gjC z0A9DG$b8wf0sgiDV@@J|D@B%~03uNX!}os9&&Mje%r|KMK-(QWsplcvsov5eZC1D6 z0i_2@*eu96fivwu=EUy%?6TzyAoD}2j0X&rX|nmV1;{OOn5Ub&)Gemwn$6|SH85`x zzjnY;(&E-!1ASNA;wNUf(~KD{?qWuOn4u;a*pVhHiwL~z_-0d0!M+TJJ(&7nCdjOzi1CEI;9?dn|nX>&r=8PFK zD?HZ1Lw$9?A#WKXBeG+NbO%;{8vRM8YZfTR1NY6C9(%3FL z)Gp7_z@i@IgY#dJKL&5XYCP}?RRFN&u-pPmsiZscuzZ=s`-mr69U8%+3+K}-u18tB zpMOn$=P{hxycs>+P%1Jb-i^0Vsp^$rDf~!qD^kA@NZ4--dc7(+Ff0? z1SuDw-Bqiq>SLqVbzj}&<|SteyO}L+L(Ic!rMz*g+o7%Qo+(Vu!;JE`_7B||{H>Ri z!#lqA3B{8?a$m}PhM)Y%{V2oX;uG%kXD3^>@W~eb9dkzqJRgI9ATk2t;d$w-tnasy z7DmYEIzvlsRu7hRw1_1;TH$3&-HZ+%o=4B}{GmQ~*%T~Qa{p_WvJ7@pvSE1N=Mqk` zwrkg~?(wxPlCHCTLBa~F+T3-vRr=KvVT1DH>OXBIN1hJrsM}3eATD5u(2I?h0L2Pysl4+`j@z#owHB_v%r#y_>|6NwGiK9l6btijFCBpI1WnE%b)U;c!JFABr< z-`q_Sc<%i~62RPz<1VQTZfl!Q^NYf8@CPY=i?z+CTQnUEqPH7zr%Wlh&<0ap-p z{5@f<96@_6r2R^mr-nZcWfno*SfSZh-h8@*4-9o=^UK1r+AbO^QW`F_eGkI=J4hI` z@ThK_Ga!4~0&NPPgDR@W?KX{=JC=zLMt=LY042>~q|~wI)5elb=NitFtgv2oFrsBG z|7xf(5Ck%e0vW!|r}tAzwp94x=6;oy`40Davq2?AVVgU~e|&b3J=T2o7(hHL^w?k! zza@;12!rNb=m}-gF$Xm2}7iWwZ%qLWhjxbO=NAfC~E-vmuNMCl#}i@VKLx zUFWSbw?^^OBb|CPe?6pAg|8N~*=qilTb8a`QChKb(XDH$%c^e0Q*U8A+ZVAtQ(=~V z%hye&^A_f;FmXFP$lH-RUYO`a8nlMoPy+GEIMLtZIh}uK%N8E~JV^d*CV#f`{`fb4 zkA&LLD97bq^PsGEYM(SmAJwZGyqmui=}_{IM>_t+uMT&ttGk6qQI6G+b1O+KJCMwG zPUm_5aECkpL8xOv-Bf-`gkui>d!!?~H>od!luqHtM>&$)F1~ZEFLD2%*RvPezvC~O zTaEl5<~pVGD-ga6q?%jrl))$Ko__YnSULY`jKkfS6NKLk@EE5FifXvb2SxFYaEDLZ zg`JmMnD#)A1z5V)V^`+-{>}~k&#&t@@+U7fF(n7K^>=RXe|~GfZR?KyZB6|xVCXc- zTEME=+T6cwXa9j6{hdwy{6SbUw=eGR+}Th1sIwV=v)03sTG|iOaN8|3Z81^(NUk7W zppsB>hwx}k0Mn_-J&P|UH9Ce`&pvQExD_#1}Ru(cXIyR!Yn&7c!;kVcI%A#Lc295 zFU_8VLOt=E9JfIHQI?xqfx-nyr($+5Us_skF3O&rkvF%Ux@RvS_qNE_?wo!}Hk z$XZ!eZ;eBqzKk^ySC*F|qd!i0Qfa6S5b=panm}l%aA6@}pHpwIx?>(v28m5Cv?DLx ziAHvPJOVkgyK;FcV$Fa#XcVl4*89HzWsM~VWNfFL-6~;)FFp+$ zUsp~FT{{4?aht3MjO>9;(;AY5xtu-JkP5>W9%1~x$yfCAn+L@fR5 zuPXz>ZoRUA*C;Gl}1Hx#5Ra)H1{?!W~+ER^*(^ zo_$=?&+yr#dMrl~wYlqZ>>tPYJHroNR{sT$O9wCaeQYBd-=L@Er&wvuyvUr#BSE=q zGO{jMi^3gx5tad9EedZ^M>P3Amg7U={W=T}=fA1c>mQB0c)3q<@rRO@hhSxIjc`mN zS_S_2O{E|H^G<~lKl7$Cno;1sH) z^l9$UVpWuM^4H$zP?S~KbM1V{QljjCB?+CKKG9m}a<8Fl@xks0D`>)n^A+Ww;CtfI zGL=EC)1c!~QbWo==YJ@@9)-NRHbRXs^%AE6C41w9X3*s107e$+fJxbqybG1{>mqnC6sY zm(F_h{l;gQVf`pE^Q+AK7bNSI82Gw$Rti}b3yAVFe0iuNsRP+crtCa37$>A`4Q+Dk z9qJ4BE#Vhiz(~#P19O&V%`N_2na%0P$RGYii?PlP{&s}hvO44!&rIpVyI=9LE_u>Q zY?oibH`KYYwO=uy6bw0JMimv6XtDc|{&mFTqRHl;UY zlysdLeutG=pvP(z=m`Lu=yc~UoO#%5X}mgS5a{se`#ozW{Ldq{cS@6_!fjh}OnIcY z>uY+<7EjOp9oFWV$BvrtnZsU|UE7WR?XP-G0dH^GvODr?sr@IAo~20s?u9(;)UMuAPe zOyANLMc2vJWTLk(+SeD@8b;mc%VK{lC4kzEiC%KLK~$uQuSFk18YNL?If7|GZxvj+k72Q}92_QehqQm@3YufNA*KQg=UzISKoGo)IhwPR4uKY@oUR8yf&49ve(BVHjPfY&~)59Bgw*K;N}4T5FDgUPt$6^1t91u z&UF!S?d6&c%KFNxRZGgMtIL+wFFSOOpnO4dr?LvMU!dJJrR$LH^r2ksuk!XHZHsbu z#maTaGKr`m)rWr7LfPN7Y%wA%64-PW_*l~RGanbxHVA)Oh6D-BH$^(+@LBisW4t1& z0~vSze(`sZq<@sOYz0aBW<*mi|5SuyE)l1^Uu5G&unwn3f|F!CUht3B#(+8Yk2Vq{ z>udjLL*eo5KiWhl6#ETnlYF0?Fz5z${xw_4HDd``G(4#GpA(3yhO{A)u1GvPOcfGA zwD{28h`wM@{-Gdz8G57pw5~6Y-pD>VeBrZ0S{(~Ehc_4*O_(|AWq4W7b$NB4_Ts{% zAh@-MG+eG%tv3U_SW;h{pSorlOtf)vNTCLGs;ZQzQ$8BTIsxCgqOv~1Ix%`(B;q*6 zIuVmTD#|FBy}$|@9@2njHk^`Cn1(d^ktu0~*+>H_+i;m|dm8cqr43Rhi-2atA|KPp zGBZG#^CQaElI5U&`BU|a4WRl-a3GcibG!+3wk3d^nE+G-yR<-)87BpE#`&PM5!@-N zg&9S&kq_u^aagF6W=+q?L3+^Hh(F0ij*#jDx|&$1FyEe*fxrx)sok)`6aB zV|JHTFGp-5BaBt=DHL^)?OxNIY|qG@gLFy2D4Z6;`9vg-WEoMnb25=``i+U1nYcNG z(=JXcKsx)4nT2^smpUdf8|l(+Ow24q`t%zUNq@5$v|D^L@y{Wg$zuln49UV;GZ!q$ zW-yb%X;WtkLk;O>QEMQgI6plt6~nQR#%OH1xzr^9XT*4+hDXib?=b**xkYf>lfUtnT0sn z!s(}hV!agX0^OpU(4xPM8I47w(CN3+PPdfeCJSeVy*s>GTCGi3B90gs9%UlXWj6t; zEEkQ7$%#l`0UWI~antX-NkPx$!oVcMY=t;$R?_}3uNr|D4E_gju$j|JDk&lpSBr=M zBdSG2YHk8wu?ET!@h|}y@5Y^>oMG0wn=xuV1vi=#h}|H9zUL;O_5Tv+(t0WH8zwfS z7RQEh!L@Z{t_Y@Onw3sUV?FK0!m=7N|LiqsYpU{BRU`I(O0Q|-2zoO!Hl0%eQqy3jY^RNIJ4P1G-b@CFsfiFRc)(y@Sc{4lS{KiV1v$tzLqD#nLb{z} zTSn}|qD*-N#5OTe*+*#;VY_f^I2Y=VX?M|n5QHH67%dUM8=nv7;%c8D?XIggXH+jq zTeY;T+M2eqCMFK)o^(n$X9f{)d&E%!0`4i&m5}r_BvAp!?Y*(FSmgN(>A1>rDEKU$ zi`I#VZ6o&eI;3r9cF!gph9+i{wxJ2_b2kD(o*hK~34(IJC@B9e3d#etD z9-oci^tCTgF;!4jU9+mHjE;-@ZHRNw^ui@otClafrmx&M8*yEu(&kofOh@X2V*LzY z*rp|jdy#%qCKePGZoCC?FWs0Hfw-4xTJ&(iNW>nZ?ACXSeNH+dcDp#Pf?mOUBe_84 zFz$)uILWIFR!`$}Qe=7!{}{;`6OY`i&yR|I{<_%ZZ_pM(dc+oB$$bd>Oyf8i(!EKg zZ`fO+^!?Ax0KQGQxgHtc#Z6J1fjK51!}Q{#QJm3u9Qp&?M3g1~ZOvE*BRl$id?kt- zx99`NC7PlQX+NUASfjs+MOZdkWSHDk&aTEYGR@ZE(PphuTLh4flHQ^&4 zh9C<2jIcnDw~XVwYd@zX`}`OBe<{&d=-Pq2zo7IK=fg@8kNm!*l4E?K)j5g4E}WYQ zdX4tX=&F$9^VP`8B;gxc9hMdXE)uEE(sjvZ4xb*56yJ)(#v|2vT2;W@^c_(vhTJ$ z==%d2BD-ra`~PCBlLV4Rbf?et8)_T>hwU+(q4pofnn0DI>Iy-IK--ET5!htJG7>5( zBoZnr5)dnsP+dqa5yY0KyTm$~PH|R3bs-N4)rCAIf*KcLwUH^VQ%XQ9B+4YvYz5gr zdtq+WzWbnd2#eg*M9?qMyrmSlH#+68?9!{guU}F{1_zWke&7Hf+ zjx?H)De0S1kw!Z*C36#KyWGf>)J^F~ryG%yQ&0=b%f^{Vs~?q`vvC&E8itdyR;?)8 zn1xuQMDRYSO%f-4TZM(h7mAKpNc?CqjlWQglDvg1BkDkjAkLj5LK##GOedY1n26Y5 z+7ZeSNF%cr(o_~#g)F2BBOj&0ctLEqWOrqGCDKGfUlBb!KDGgrNYF7AQDS{qouZ+e zK!sJtI6;DrJf1*tE@gOsDyNvPh=qKjH`tIWUgFfkCnM#A;d-h`&`>2TMP#xm6NWPa zZ1{umoPX^U()X3iD-k;th7DO0r%423aFi~{CW&J!nT{<*io}{|+ePXr?C_enOHjyC zX)c>aS?QlHurj@(y3$@#Qw0nE@U&892)NY3%!oyr8FWAj6T@CqRDis)fuPu3!YT@e z%q&8llZ#{~Is#^&A1lkvgwBJf;H{FKw<3LW`4rR$u zu_3lZoU)~2b?CMwBgTeesW>JQkfO|0#CsVnVotLX!$5lnrB+-zh_$FH7fXcS5{|SL zqx0RMfc{Pi_Nl1mBzH*!vmtT0gjlG^dj&0ps#0ASXR0poeMi)HIXmaV5O^W8uvsGv%0A*0vO1 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 delta 69254 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 TBVIs(^nV?@hU7ZfpymGu4m|fK diff --git a/BIN/ACOS.S.EXP.txt b/BIN/ACOS.S.EXP.txt index 54025dad..d25ee2ca 100644 --- a/BIN/ACOS.S.EXP.txt +++ b/BIN/ACOS.S.EXP.txt @@ -265,16 +265,16 @@ EXP.ComputeY lda EXP.TYPE clc rts -.1 stz EXP.TYPE at the end ....TRUE/FALSE is int - - cpy #3 + +.1 cpy #3 + bne .2 - ldx #SYS.StrCat + ldx #RT.StrAdd.ID clc - jmp CODE.SYSCALL + jmp CODE.JSRRT -.2 cpy #11 <> +.2 stz EXP.TYPE at the end ....TRUE/FALSE is int + + cpy #11 <> bne .3 ldx #SYS.StrCmp diff --git a/BIN/ACOS.S.RT.txt b/BIN/ACOS.S.RT.txt index 94f9f1b2..11f95dd9 100644 --- a/BIN/ACOS.S.RT.txt +++ b/BIN/ACOS.S.RT.txt @@ -14,6 +14,14 @@ RT.NOT lda (pStack) >PUSHA rts *-------------------------------------- +RT.StrAdd >DEBUG + + + inc pStack + inc pStack + clc + rts +*-------------------------------------- RT.StrSet >PUSHB hStrings txa >PUSHA @@ -105,7 +113,7 @@ RT.TIMEd.1 >PUSHW ZPStrBuf >PUSHW ZPStrBuf rts *-------------------------------------- -RT.GET >SYSCALL GetChar +RT.GET jsr RT.GetChar sta (ZPStrBuf) ldy #1 @@ -123,7 +131,7 @@ RT.INPUT lda #0 ldx #0 OUT.ELW jsr RT.OUTX -.1 >SYSCALL GetChar +.1 jsr RT.GetChar bcs RT.INPUT.9 ldy ZPPtr1 @@ -300,6 +308,19 @@ RT.OUTX ldy #S.PS.hStdOut >SYSCALL FPutS rts *-------------------------------------- +* TODO: handle lost conn CS and remap VT100 ESC codes +*-------------------------------------- +RT.GetChar >SYSCALL GetChar + cmp #C.CR + bne .8 + + >SYSCALL GetChar LF + + lda #C.CR + +.8 clc + rts +*-------------------------------------- MAN SAVE usr/src/bin/acos.s.rt LOAD usr/src/bin/acos.s diff --git a/BIN/ACOS.S.txt b/BIN/ACOS.S.txt index 52fb49b7..6a12826a 100644 --- a/BIN/ACOS.S.txt +++ b/BIN/ACOS.S.txt @@ -203,6 +203,8 @@ RT.VAL.ID .EQ *-J.RT *-------------------------------------- RT.NOT.ID .EQ *-J.RT .DA RT.NOT +RT.StrAdd.ID .EQ *-J.RT + .DA RT.StrAdd RT.StrSet.ID .EQ *-J.RT .DA RT.StrSet RT.StrGet.ID .EQ *-J.RT @@ -393,11 +395,11 @@ CS.FClose >LDA.G hFile .1 >LDA.G hInputBuf beq .8 - + >SYSCALL FreeMem >STZ.G hInputBuf -.8 +.8 * clc rts *-------------------------------------- diff --git a/BIN/ATTR.S.txt b/BIN/ATTR.S.txt index 301c23fc..ff0c83a2 100644 --- a/BIN/ATTR.S.txt +++ b/BIN/ATTR.S.txt @@ -27,6 +27,11 @@ ArgIndex .BS 1 bWrite .BS 1 AttrAND .BS 1 AttrORA .BS 1 + +bContinue .BS 1 +bRecurse .BS 1 +bPause .BS 1 + ZS.END .ED *-------------------------------------- * File Header (16 Bytes) @@ -121,13 +126,13 @@ CS.RUN.LOOP ldy #S.PS.hStdIn cmp #$13 Ctrl-S bne .1 - >LDA.G bPause + lda bPause eor #$ff - sta (pData),y + sta bPause bne CS.RUN.LOOP -.1 >LDA.G bPause - bne CS.RUN.LOOP Pause... +.1 lda bPause + bmi CS.RUN.LOOP Pause... *-------------------------------------- jsr GetEntry bcs CS.RUN.LEAVE @@ -213,7 +218,7 @@ CS.RUN.DIR lda (ZPFileName) >SYSCALL PrintF bcs .9 -.7 >LDA.G bRecurse +.7 bit bRecurse bpl .8 >LDYA ZPFileName @@ -272,7 +277,8 @@ CS.RUN.SetAttr >PUSHW ZPFullPath >PUSHA >PUSHBI 1 >SYSCALL PrintF - >LDA.G bContinue + + lda bContinue eor #$80 asl pla @@ -306,6 +312,7 @@ CS.RUN.CheckSwitch .2 cmp OptionList,x beq .3 + dex bpl .2 @@ -314,7 +321,7 @@ CS.RUN.CheckSwitch .3 ldy OptionVars,x lda #$80 - sta (pData),y + sta $0,y clc rts @@ -438,10 +445,6 @@ MSG.FILE .AZ "File:%s..." .DUMMY .OR 0 DS.START -bContinue .BS 1 -bRecurse .BS 1 - -bPause .BS 1 hSrcFullPath .BS 1 ATTR .BS 17 diff --git a/BIN/HMACMD5.S.txt b/BIN/HMACMD5.S.txt index f02ca6ef..65977503 100644 --- a/BIN/HMACMD5.S.txt +++ b/BIN/HMACMD5.S.txt @@ -156,7 +156,7 @@ CS.RUN.FILE >LDYAI FILEBUF.SIZE tay beq .3 -.2 >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init +.2 >SYSCALL MD5Init bcs .9 sta hHMACMD5Ctx @@ -168,10 +168,10 @@ CS.RUN.FILE >LDYAI FILEBUF.SIZE >SYSCALL ArgV >PUSHYA >PUSHW ZPDataLen - >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update + >SYSCALL MD5Update >PUSHB hHMACMD5Ctx >PUSHEA.G HMACMD5Buf - >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize + >SYSCALL MD5Finalize jsr RevertASCII @@ -190,7 +190,7 @@ CS.RUN.FILE >LDYAI FILEBUF.SIZE stz HMACMD5.OPAD+64 rebase - >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init + >SYSCALL MD5Init bcc .6 rts @@ -200,7 +200,7 @@ rebase >PUSHB hHMACMD5Ctx >PUSHW L.HMACMD5.IPAD >PUSHWI 64 - >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update + >SYSCALL MD5Update .7 >SLEEP @@ -222,16 +222,16 @@ rebase >PUSHB hHMACMD5Ctx >PUSHW ZPDataBufPtr >PUSHW ZPDataLen - >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update + >SYSCALL MD5Update bra .7 .10 >PUSHB hHMACMD5Ctx >PUSHEA.G HMACMD5Buf - >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize + >SYSCALL MD5Finalize jsr RevertASCII - >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init + >SYSCALL MD5Init bcs .99 sta hHMACMD5Ctx @@ -239,16 +239,16 @@ rebase >PUSHB hHMACMD5Ctx >PUSHW L.HMACMD5.OPAD >PUSHWI 64 - >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update + >SYSCALL MD5Update >PUSHB hHMACMD5Ctx >PUSHW L.HMACMD5.IPAD >PUSHWI 16 - >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update + >SYSCALL MD5Update >PUSHB hHMACMD5Ctx >PUSHEA.G HMACMD5Buf - >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize + >SYSCALL MD5Finalize CS.RUN.PRINT >LEA.G HMACMD5Buf >SYSCALL PutS diff --git a/BIN/PAK.S.txt b/BIN/PAK.S.txt index 19547978..d1bfbe8c 100644 --- a/BIN/PAK.S.txt +++ b/BIN/PAK.S.txt @@ -84,6 +84,7 @@ CS.RUN >INC.G ArgIndex jsr CS.RUN.CheckOpt bcs .9 + bne CS.RUN >INC.G ArgIndex -X diff --git a/BIN/XARGS.S.txt b/BIN/XARGS.S.txt index 7d77453a..ba52c25f 100644 --- a/BIN/XARGS.S.txt +++ b/BIN/XARGS.S.txt @@ -1,253 +1,255 @@ NEW AUTO 3,1 - .LIST OFF - .OP 65C02 - .OR $2000 - .TF bin/xargs + .LIST OFF + .OP 65C02 + .OR $2000 + .TF bin/xargs *-------------------------------------- - .INB inc/macros.i - .INB inc/a2osx.i - .INB inc/kernel.i - .INB inc/mli.i - .INB inc/mli.e.i + .INB inc/macros.i + .INB inc/a2osx.i + .INB inc/kernel.i + .INB inc/mli.i + .INB inc/mli.e.i *-------------------------------------- - .DUMMY - .OR ZPBIN + .DUMMY + .OR ZPBIN ZS.START -ArgIndex .BS 1 -ArgPattern .BS 1 -ZPPtr1 .BS 2 -ZPCommandPtr .BS 2 -ZPBufPtr .BS 2 -ZPCmdBuf .BS 2 -hFile .BS 1 -hBuf .BS 1 -hCmdBuf .BS 1 -DashArgs .BS 1 +ArgIndex .BS 1 +ArgPattern .BS 1 +ZPPtr1 .BS 2 +ZPCommandPtr .BS 2 +ZPBufPtr .BS 2 +ZPCmdBuf .BS 2 +hFile .BS 1 +hBuf .BS 1 +hCmdBuf .BS 1 +DashArgs .BS 1 -ZS.END .ED +ZS.END .ED *-------------------------------------- -* File Header (16 Bytes) +* File Header (16 Bytes) *-------------------------------------- -CS.START cld - jmp (.1,x) - .DA #$61 6502,Level 1 (65c02) - .DA #1 BIN Layout Version 1 - .DA #0 S.PS.F.EVENT - .DA #0 - .DA CS.END-CS.START Code Size (without Constants) - .DA DS.END-DS.START Data Segment Size - .DA #16 Stack Size - .DA #ZS.END-ZS.START Zero Page Size - .DA 0 +CS.START cld + jmp (.1,x) + .DA #$61 6502,Level 1 (65c02) + .DA #1 BIN Layout Version 1 + .DA #0 S.PS.F.EVENT + .DA #0 + .DA CS.END-CS.START Code Size (without Constants) + .DA DS.END-DS.START Data Segment Size + .DA #16 Stack Size + .DA #ZS.END-ZS.START Zero Page Size + .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- -.1 .DA CS.INIT - .DA CS.RUN - .DA CS.DOEVENT - .DA CS.QUIT -L.MSG.USAGE .DA MSG.USAGE -L.MSG.CRLF .DA MSG.CRLF -L.CMD.SPC .DA CMD.SPC - .DA 0 +.1 .DA CS.INIT + .DA CS.RUN + .DA CS.DOEVENT + .DA CS.QUIT +L.MSG.USAGE .DA MSG.USAGE +L.MSG.CRLF .DA MSG.CRLF +L.CMD.SPC .DA CMD.SPC + .DA 0 *-------------------------------------- -CS.INIT clc - rts +CS.INIT clc + rts *-------------------------------------- -CS.RUN jsr CS.RUN.CheckArgs - bcs CS.RUN.LOOP.RTS +CS.RUN jsr CS.RUN.CheckArgs + bcs CS.RUN.LOOP.RTS -CS.RUN.LOOP >SLEEP +CS.RUN.LOOP >SLEEP - >PUSHB hFile - >PUSHW ZPBufPtr - >PUSHWI 256 - >SYSCALL FGetS - bcs .9 + >PUSHB hFile + >PUSHW ZPBufPtr + >PUSHWI 256 + >SYSCALL FGetS + bcs .9 -.2 jsr CS.RUN.PRINT +.2 jsr CS.RUN.PRINT - bcc CS.RUN.LOOP - rts + bcc CS.RUN.LOOP + rts -.9 cmp #MLI.E.EOF - bne .99 +.9 cmp #MLI.E.EOF + bne .99 - lda #0 Exit with no Error + lda #0 Exit with no Error -.99 sec -CS.RUN.LOOP.RTS rts +.99 sec +CS.RUN.LOOP.RTS rts *-------------------------------------- CS.RUN.CheckArgs - jsr CS.RUN.NextArg - bcs .4 + jsr CS.RUN.NextArg + bcs .4 - lda (ZPPtr1) - cmp #'-' - beq .1 + lda (ZPPtr1) + cmp #'-' + beq .1 - lda ArgPattern - bne .11 + lda ArgPattern + bne .11 - lda ArgIndex - sta ArgPattern - >LDYA ZPPtr1 - >STYA ZPCommandPtr - bra CS.RUN.CheckArgs + lda ArgIndex + sta ArgPattern + >LDYA ZPPtr1 + >STYA ZPCommandPtr + bra CS.RUN.CheckArgs -.11 lda hFile - bne .97 +.11 lda hFile + bne .97 - >LDYA ZPPtr1 - jsr CS.RUN.OPEN - bcs .9 + >LDYA ZPPtr1 + jsr CS.RUN.OPEN + bcs .9 - sta hFile - bra CS.RUN.CheckArgs + sta hFile + bra CS.RUN.CheckArgs -.1 ldy #1 - lda (ZPPtr1),y +.1 ldy #1 + lda (ZPPtr1),y - ldx #OptionList.Cnt-1 + ldx #OptionList.Cnt-1 -.2 cmp OptionList,x - beq .3 +.2 cmp OptionList,x + beq .3 - dex - bpl .2 + dex + bpl .2 - bra .97 + bra .97 -.3 txa - lsr - beq .98 +.3 txa + lsr + beq .98 - tax - lda #$80 - sta DashArgs-1,x - bra CS.RUN.CheckArgs - -.4 lda hFile - bne .80 + tax + lda #$80 + sta DashArgs-1,x + bra CS.RUN.CheckArgs + +.4 lda hFile + bne .80 - ldy #S.PS.hStdIn - lda (pPS),y - tax - - lda hFDs-1,x - >SYSCALL GetMemPtr - >STYA ZPPtr1 - lda (ZPPtr1) - cmp #S.FD.T.PIPE - bne .97 - - ldy #S.PS.hStdIn - lda (pPS),y - sta hFile + ldy #S.PS.hStdIn + lda (pPS),y + tax + + lda hFDs-1,x + >SYSCALL GetMemPtr + >STYA ZPPtr1 + lda (ZPPtr1) + cmp #S.FD.T.PIPE + bne .97 + + ldy #S.PS.hStdIn + lda (pPS),y + sta hFile -.80 >LDYAI 256 - >SYSCALL GetMem - bcs .9 +.80 >LDYAI 256 + >SYSCALL GetMem + bcs .9 - >STYA ZPBufPtr - stx hBuf + >STYA ZPBufPtr + stx hBuf - >LDYAI 256 - >SYSCALL GetMem - bcs .9 + >LDYAI 256 + >SYSCALL GetMem + bcs .9 - >STYA ZPCmdBuf - stx hCmdBuf + >STYA ZPCmdBuf + stx hCmdBuf -* clc +* clc -.9 rts +.9 rts -.97 lda #E.SYN +.97 lda #E.SYN -.98 pha - >PUSHW L.MSG.USAGE - >PUSHBI 0 - >SYSCALL PrintF - pla - sec - rts +.98 pha + >PUSHW L.MSG.USAGE + >PUSHBI 0 + >SYSCALL PrintF + pla + sec + rts *-------------------------------------- -CS.RUN.NextArg inc ArgIndex - lda ArgIndex - >SYSCALL ArgV - bcs .9 +CS.RUN.NextArg inc ArgIndex + lda ArgIndex + >SYSCALL ArgV + bcs .9 - >STYA ZPPtr1 + >STYA ZPPtr1 -.9 rts +.9 rts *-------------------------------------- -CS.RUN.OPEN >PUSHYA - >PUSHBI O.RDONLY+O.TEXT - >PUSHBI S.FI.T.TXT - >PUSHWZ Aux type - >SYSCALL FOpen - bcs .9 +CS.RUN.OPEN >PUSHYA + >PUSHBI O.RDONLY+O.TEXT + >PUSHBI S.FI.T.TXT + >PUSHWZ Aux type + >SYSCALL FOpen + bcs .9 - sta hFile + sta hFile -.9 rts +.9 rts *-------------------------------------- -CS.RUN.PRINT >PUSHW ZPCmdBuf - >PUSHW ZPCommandPtr - >SYSCALL StrCpy +CS.RUN.PRINT >PUSHW ZPCmdBuf + >PUSHW ZPCommandPtr + >SYSCALL StrCpy - >PUSHW ZPCmdBuf - >PUSHW L.CMD.SPC - >SYSCALL StrCat + >PUSHW ZPCmdBuf + >PUSHW L.CMD.SPC + >SYSCALL StrCat - >PUSHW ZPCmdBuf - >LDYA ZPBufPtr - >PUSHYA - >SYSCALL StrCat + >PUSHW ZPCmdBuf + >LDYA ZPBufPtr + >PUSHYA + >SYSCALL StrCat - >LDYA ZPCmdBuf - >SYSCALL PutS + >LDYA ZPCmdBuf + >SYSCALL PutS - >PUSHW ZPCmdBuf - >PUSHBI S.PS.F.HOLD - >SYSCALL ExecL - rts + >PUSHW ZPCmdBuf + >PUSHBI S.PS.F.HOLD + >SYSCALL ExecL + rts *-------------------------------------- -CS.QUIT lda hFile - beq .1 +CS.QUIT lda hFile + beq .1 - >SYSCALL FClose + >SYSCALL FClose -.1 lda hBuf - beq .8 - >SYSCALL FreeMem +.1 lda hBuf + beq .2 + + >SYSCALL FreeMem - lda hCmdBuf - beq .8 - >SYSCALL FreeMem +.2 lda hCmdBuf + beq .8 -.8 clc - rts + >SYSCALL FreeMem + +.8 clc + rts *-------------------------------------- -CS.DOEVENT sec - rts +CS.DOEVENT sec + rts *-------------------------------------- CS.END *-------------------------------------- -OptionList .AS "Hh" -OptionList.Cnt .EQ *-OptionList +OptionList .AS "Hh" +OptionList.Cnt .EQ *-OptionList *-------------------------------------- -MSG.USAGE .AS "Usage : XARGS command \r\n" - .AS " or : CMD|XARGS command" -MSG.CRLF .AZ "\r\n" -CMD.SPC .AZ " " +MSG.USAGE .AS "Usage : XARGS command \r\n" + .AS " or : CMD|XARGS command" +MSG.CRLF .AZ "\r\n" +CMD.SPC .AZ " " *-------------------------------------- - .DUMMY - .OR 0 + .DUMMY + .OR 0 DS.START -DS.END .ED +DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/xargs.s diff --git a/INC/LIBCRYPT.I.txt b/INC/LIBCRYPT.I.txt index 8027f11d..da6d9f30 100644 --- a/INC/LIBCRYPT.I.txt +++ b/INC/LIBCRYPT.I.txt @@ -7,12 +7,7 @@ LIBCRYPT.MD4Init .EQ 6 LIBCRYPT.MD4Update .EQ 8 LIBCRYPT.MD4Finalize .EQ 10 *-------------------------------------- -LIBCRYPT.MD5 .EQ 12 -LIBCRYPT.MD5Init .EQ 14 -LIBCRYPT.MD5Update .EQ 16 -LIBCRYPT.MD5Finalize .EQ LIBCRYPT.MD4Finalize -*-------------------------------------- -LIBCRYPT.HMACMD5 .EQ 18 +LIBCRYPT.HMACMD5 .EQ 12 *-------------------------------------- * S.MD4, S.MD5 STRUCT *-------------------------------------- diff --git a/LIB/LIBCIFS.S.txt b/LIB/LIBCIFS.S.txt index 27c36bd0..02440602 100644 --- a/LIB/LIBCIFS.S.txt +++ b/LIB/LIBCIFS.S.txt @@ -253,12 +253,13 @@ CIFS.Negotiate lda (pStack) .97 jsr FreeRespData -.98 lda #MLI.E.IO +.98 lda #MLI.E.INVPARAM .99 >RET 2 *-------------------------------------- * >PUSHB hSocket * >PUSHB hSMBContext +* >PUSHW domain * >PUSHW username * >PUSHW password * >PUSHBI 0 @@ -272,7 +273,7 @@ CIFS.SessionSetup dec sta (pStack) - ldy #5 hSMBContext + ldy #7 hSMBContext jsr GetSMBContext ldx #S.SMB.H.CMD.SESSION.SETUP.ANDX @@ -309,7 +310,7 @@ CIFS.SessionSetup jsr SetReqLen - ldy #6 hSocket + ldy #8 hSocket lda (pStack),y jsr WriteSocketA bcs .99 @@ -322,7 +323,7 @@ CIFS.SessionSetup sta (pStack) beq .98 - ldy #6 hSocket + ldy #8 hSocket lda (pStack),y jsr ReadSocketA bcc .6 @@ -338,7 +339,7 @@ CIFS.SessionSetup lda (ZPRespPtr),y bne .97 - ldy #5 hSMBContext + ldy #7 hSMBContext jsr GetSMBContext ldy #S.NETBIOS+S.SMB.H.UID @@ -355,7 +356,7 @@ CIFS.SessionSetup .97 jsr FreeRespData -.98 lda #MLI.E.IO +.98 lda #MLI.E.LOCKED sec .99 >RET 7 *-------------------------------------- @@ -1102,7 +1103,7 @@ SMB.SessionSetup.H .DA 2 MAX MPX COUNT .HS 0000 VC NUMBER .HS 00000000 SESSION KEY - .DA 0 CI PASS LEN (ANSI) + .BS 2 CI PASS LEN (ANSI) .DA 0 CS PASS LEN (UNICODE) .HS 00000000 .HS 00000000 CAPABILITIES diff --git a/LIB/LIBCRYPT.S.txt b/LIB/LIBCRYPT.S.txt index 4e9dea96..90be0a87 100644 --- a/LIB/LIBCRYPT.S.txt +++ b/LIB/LIBCRYPT.S.txt @@ -15,11 +15,8 @@ ZS.START ZPCtxPtr .BS 2 ZPDataPtr .BS 2 ZPHashPtr .BS 2 - ZPChunkLen .BS 2 -* MD.MODE .BS 1 32 BYTES MAX !!!!! - MD4.ABCD MD5.ABCD MD4.A @@ -127,9 +124,6 @@ CS.START cld .DA MD4Init .DA MD4Update .DA MD4Finalize - .DA MD5 - .DA MD5Init - .DA MD5Update .DA HMACMD5 *-------------------------------------- J.MD4.XXXX .DA MD4.0015 @@ -139,8 +133,8 @@ J.MD5.XXXX .DA MD5.0015 .DA MD5.1631 .DA MD5.3247 .DA MD5.4863 -L.HMACMD5.IPAD .DA HMACMD5.IPAD -L.HMACMD5.OPAD .DA HMACMD5.OPAD +L.HMACMD5.IPAD .DA HMACMD5.IPAD +L.HMACMD5.OPAD .DA HMACMD5.OPAD .DA 0 *-------------------------------------- LIB.LOAD @@ -158,40 +152,21 @@ LIB.UNLOAD clc * ## RETURN VALUE * CC *\-------------------------------------- -MD4 lda #0 - .HS 2C BIT ABS -*/-------------------------------------- -* ## MD5 -* Return MD5 Hash for input String -* # C -* `void MD5 (const char* str, char* digest);` -* # ASM -* `>PUSHW str` -* `>PUSHW digest` -* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD5` -* ## RETURN VALUE -* CC -*\-------------------------------------- -MD5 lda #1 - sta MD.MODE - >PULLW ZPHashPtr +MD4 >PULLW ZPHashPtr >PULLYA >STYA ZPDataPtr >SYSCALL2 strlen >STYA ZPDataLen -.1 jsr MD4Init.I +.1 jsr MDxInit.I bcs .9 - pha save MD4/MD5 Context hMem - lda MD.MODE - bne .2 - jsr MD4Update.I - bra .3 -.2 jsr MD5Update.I + pha save MD4 Context hMem + + jsr MD4Update.I + jsr MDxFinalize.I -.3 jsr MD4Finalize.I pla - >SYSCALL2 FreeMem Free MD4/MD5 Context + >SYSCALL2 FreeMem Free MD4 Context clc .9 rts */-------------------------------------- @@ -204,28 +179,14 @@ MD5 lda #1 * ## RETURN VALUE * A = hMem To S.MD4 *\-------------------------------------- -MD4Init lda #0 - .HS 2C BIT ABS -*/-------------------------------------- -* ## MD5Init -* Initialize a MD5 computation -* # C -* `hMD5 MD5init();` -* # ASM -* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init` -* ## RETURN VALUE -* A = hMem To S.MD5 -*\-------------------------------------- -MD5Init lda #1 - sta MD.MODE - -MD4Init.I -MD5Init.I >LDYAI S.MD4 +MD4Init +MDxInit.I >LDYAI S.MD4 >SYSCALL2 getmem - bcs .9 + bcs MDxInit.9 >STYA ZPCtxPtr - ldy #0 + +MD5Reset.I ldy #0 .1 lda MD4.ABCDINIT,y sta (ZPCtxPtr),y @@ -237,12 +198,12 @@ MD5Init.I >LDYAI S.MD4 .2 sta (ZPCtxPtr),y iny - cpy #S.MD4 Includes S.MD4/5.FINALIZED Flag + cpy #S.MD4 Includes S.MD4/5.FINALIZED Flag bne .2 txa clc -.9 rts +MDxInit.9 rts */-------------------------------------- * ## MD4Update * Add Data to MD4 computation @@ -255,28 +216,21 @@ MD5Init.I >LDYAI S.MD4 * `>hLIBCRYPT,LIBCRYPT.MD4Update` * ## RETURN VALUE *\-------------------------------------- -*/-------------------------------------- -* ## MD5Update -* Add Data to MD5 computation -* # C -* `void MD5update (hMD5 MD5, char* data, int len);` -* # ASM -* `>PUSHB MD5` -* `>PUSHW data` -* `>PUSHW len` -* `>hLIBCRYPT,LIBCRYPT.MD5Update` -* ## RETURN VALUE -*\-------------------------------------- -MD4Update -MD5Update >PULLW ZPDataLen get LEN +MD4Update >PULLW ZPDataLen get LEN >PULLW ZPDataPtr get DATA >PULLA >SYSCALL2 GetMemPtr get MD5 Context >STYA ZPCtxPtr -MD4Update.I -MD5Update.I ldy #S.MD4.FINALIZED +MD4Update.I clc + .HS B0 BCS + +MD5Update.I sec + + ror MD.MODE + + ldy #S.MD4.FINALIZED lda (ZPCtxPtr),y beq .1 @@ -298,7 +252,7 @@ MD5Update.I ldy #S.MD4.FINALIZED .3 lda #64 .50 sta ZPChunkLen Save Chunk Len - jsr MD4UpdateBitCount + jsr MDxUpdateBitCnt ldy #0 @@ -330,15 +284,11 @@ MD5Update.I ldy #S.MD4.FINALIZED cmp #56 Enough room for BITCOUNT ? bcs .58 no - jsr MD4AppendBitCount + jsr MDxAppendBitCnt -.58 lda MD.MODE - bne .59 - jsr MD4Transform - bra .60 -.59 jsr MD5Transform +.58 jsr MDxTransform -.60 jsr MD4UpdateABCD0 + jsr MDxUpdateABCD0 .8 lda ZPDataLen Substract Bytes processed from LEN sec @@ -366,38 +316,26 @@ MD5Update.I ldy #S.MD4.FINALIZED * `>LIBCALL hLIBCRYPT,LIBCRYPT.MD4Finalize` * ## RETURN VALUE *\-------------------------------------- -*/-------------------------------------- -* ## MD5Finalize -* # C -* `void MD5finalize (hMD5 MD5, char* digest);` -* # ASM -* `>PUSHB MD5` -* `>PUSHW digest` -* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize` -* ## RETURN VALUE -*\-------------------------------------- -MD4Finalize -MD5Finalize >PULLW ZPHashPtr +MD4Finalize >PULLW ZPHashPtr >PULLA pha >SYSCALL2 GetMemPtr >STYA ZPCtxPtr get MD5 Context - jsr MD4Finalize.I + jsr MDxFinalize.I pla >SYSCALL2 FreeMem rts -MD4Finalize.I -MD5Finalize.I ldy #S.MD4.FINALIZED +MDxFinalize.I ldy #S.MD4.FINALIZED lda (ZPCtxPtr),y bne .11 - jsr MD4ExtraChunk + jsr MDxExtraChunk -.11 ldy #S.MD4.ABCD0 +.11 ldy #0 .1 lda (ZPCtxPtr),y lsr @@ -406,30 +344,30 @@ MD5Finalize.I ldy #S.MD4.FINALIZED lsr tax lda MD4.DIGITS,x - sta (ZPHashPtr) - inc ZPHashPtr - bne .2 + jsr .7 - inc ZPHashPtr+1 - -.2 lda (ZPCtxPtr),y + lda (ZPCtxPtr),y and #$0F tax lda MD4.DIGITS,x - sta (ZPHashPtr) - inc ZPHashPtr - bne .3 + jsr .7 - inc ZPHashPtr+1 - -.3 iny - cpy #S.MD4.ABCD0+16 + iny + cpy #16 bne .1 lda #0 sta (ZPHashPtr) clc -.9 rts + rts + +.7 sta (ZPHashPtr) + inc ZPHashPtr + bne MDxFinalize.RTS + + inc ZPHashPtr+1 + +MDxFinalize.RTS rts */-------------------------------------- * ## HMACMD5 * Return HMACMD5 Hash for input String @@ -445,108 +383,111 @@ MD5Finalize.I ldy #S.MD4.FINALIZED *\-------------------------------------- * https://github.com/fab13n/org.eclipse.mihini/blob/master/libs/hmac-md5/hmac_rfc2104/hmac-md5.c *-------------------------------------- -HMACMD5 - >PULLW ZPHashPtr +HMACMD5 >PULLW ZPHashPtr >PULLW ZPDataPtr >PULLW HMAC.DTemp -.1 >LDYA ZPDataPtr + + jsr MDxInit.I + bcs MDxFinalize.RTS + + pha + + >LDYA ZPDataPtr >SYSCALL2 strlen >STYA ZPDataLen cpy #65 bcs .2 + tay beq .4 -.2 jsr MD5Init - bcc .3 - - rts - -.3 >PUSHW ZPHashPtr +.2 >PUSHW ZPHashPtr jsr MD5Update.I - jsr MD5Finalize.I + jsr MDxFinalize.I + >PULLW ZPHashPtr >LDYA ZPCtxPtr >STYA ZPDataPtr + lda #16 sta ZPDataLen .4 ldy #0 + .5 lda #$36 cpy ZPDataLen bcs .6 + eor (ZPDataPtr),y + .6 sta HMACMD5.IPAD,y - eor #$6A #$36 eor #$5C + eor #$6A #$36 eor #$5C sta HMACMD5.OPAD,y iny cpy #64 bne .5 + stz HMACMD5.IPAD+64 stz HMACMD5.OPAD+64 - jsr MD5Init - bcc .7 + jsr MD5Reset.I - rts - -.7 >LDYA L.HMACMD5.IPAD + >LDYA L.HMACMD5.IPAD >STYA ZPDataPtr >LDYAI 64 >STYA ZPDataLen >PUSHW ZPHashPtr jsr MD5Update.I + >LDYA HMAC.DTemp >STYA ZPDataPtr >SYSCALL2 strlen >STYA ZPDataLen jsr MD5Update.I - jsr MD5Finalize.I + + jsr MDxFinalize.I + >PULLW ZPHashPtr - ldy #S.MD5.ABCD0 + ldy #0 .8 lda (ZPCtxPtr),y sta HMACMD5.IPAD,y iny - cpy #S.MD5.ABCD0+16 + cpy #16 bne .8 - jsr MD5Init.I - bcc .9 + jsr MD5Reset.I - rts - -.9 >LDYA L.HMACMD5.OPAD + >LDYA L.HMACMD5.OPAD >STYA ZPDataPtr >LDYAI 64 >STYA ZPDataLen jsr MD5Update.I + >LDYA L.HMACMD5.IPAD >STYA ZPDataPtr + ldy #16 sty ZPDataLen jsr MD5Update.I - jsr MD5Finalize.I + + jsr MDxFinalize.I + + pla + >SYSCALL2 FreeMem rts - *-------------------------------------- * https://waterjuiceweb.wordpress.com/aes/ *-------------------------------------- * PRIVATE *-------------------------------------- -* MD4AppendBitCount +* MDxAppendBitCount * In : * ZPCtxPtr = MD4 Context *-------------------------------------- -* MD5AppendBitCount -* In : -* ZPCtxPtr = MD5 Context -*-------------------------------------- -MD4AppendBitCount -MD5AppendBitCount - ldx #56 +MDxAppendBitCnt ldx #56 ldy #S.MD4.BITCOUNT Append 8 Bytes of BITCOUNT .1 lda (ZPCtxPtr),y @@ -561,20 +502,12 @@ MD5AppendBitCount sta (ZPCtxPtr),y rts *-------------------------------------- -* MD4UpdateBitCount +* MDxUpdateBitCnt * In : -* CL = Size (in bytes) to add to MD4 context -* ZPCtxPtr = MD4 Context +* CL = Size (in bytes) to add to MDx context +* ZPCtxPtr = MDx Context *-------------------------------------- -*-------------------------------------- -* MD5UpdateBitCount -* In : -* CL = Size (in bytes) to add to MD5 context -* ZPCtxPtr = MD5 Context -*-------------------------------------- -MD4UpdateBitCount -MD5UpdateBitCount - stz ZPChunkLen+1 +MDxUpdateBitCnt stz ZPChunkLen+1 lda ZPChunkLen asl rol ZPChunkLen+1 @@ -603,17 +536,11 @@ MD5UpdateBitCount .8 rts *-------------------------------------- -* MD4ExtraChunk +* MDxExtraChunk * In : -* ZPCtxPtr = MD4 Context +* ZPCtxPtr = MDx Context *-------------------------------------- -*-------------------------------------- -* MD5ExtraChunk -* In : -* ZPCtxPtr = MD5 Context -*-------------------------------------- -MD4ExtraChunk -MD5ExtraChunk ldy #S.MD4.FINALIZED +MDxExtraChunk ldy #S.MD4.FINALIZED lda #$80 sta (ZPCtxPtr),y Mark MD5 Context as "finalized" ldx #0 @@ -631,25 +558,14 @@ MD5ExtraChunk ldy #S.MD4.FINALIZED cpx #56 bne .1 ...until room for bitcount - jsr MD4AppendBitCount - lda MD.MODE - bne .2 - jsr MD4Transform - bra .3 -.2 jsr MD5Transform -.3 + jsr MDxAppendBitCnt + jsr MDxTransform *-------------------------------------- -* MD4UpdateABCD0 +* MDxUpdateABCD0 * In: -* ZPCtxPtr = MD4 Context +* ZPCtxPtr = MDx Context *-------------------------------------- -*-------------------------------------- -* MD5UpdateABCD0 -* In: -* ZPCtxPtr = MD5 Context -*-------------------------------------- -MD4UpdateABCD0 -MD5UpdateABCD0 ldy #0 +MDxUpdateABCD0 ldy #0 .1 clc ADC32 A+A0->A0, B, C, D.... @@ -666,6 +582,11 @@ MD5UpdateABCD0 ldy #0 rts *-------------------------------------- +MDxTransform bit MD.MODE + bpl MD4Transform + + jmp MD5Transform +*-------------------------------------- * MD4Transform * In: * ZPCtxPtr = MD4 Context @@ -730,6 +651,7 @@ MD4.XXXX.END >MOV32 MD4.D,MD4.DTemp lsr and #$0C beq .3 + tay ldx #0 diff --git a/SBIN/CIFSD.S.txt b/SBIN/CIFSD.S.txt index 0e8098f0..375e766a 100644 --- a/SBIN/CIFSD.S.txt +++ b/SBIN/CIFSD.S.txt @@ -4,6 +4,8 @@ NEW .OP 65C02 Target CPU, must match CPU level in header .OR $2000 usualy $2000, but any value > $100 allowed .TF sbin/cifsd +*-------------------------------------- +AUTH .EQ 0 *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i @@ -12,6 +14,9 @@ NEW .INB inc/libtcpip.i .INB inc/net.smb.i .INB inc/libcifs.i + .DO AUTH + .INB inc/libcrypt.i + .FIN *-------------------------------------- TIMEOUT.MAX .EQ 250 25 sec. *-------------------------------------- @@ -49,6 +54,9 @@ CS.START cld .DA CS.QUIT L.LIBTCPIP .DA LIBTCPIP L.LIBCIFS .DA LIBCIFS + .DO AUTH +L.LIBCRYPT .DA LIBCRYPT + .FIN L.MSG.USAGE .DA MSG.USAGE L.MSG.TCPIPERR .DA MSG.TCPIPERR L.MSG.UNKNOWN .DA MSG.UNKNOWN @@ -72,6 +80,13 @@ CS.INIT >LDYA L.LIBTCPIP sta hLIBCIFS + .DO AUTH + >LDYA L.LIBCRYPT + >SYSCALL LoadLib + bcs .9 + + sta hLIBCRYPT + .FIN * clc .9 CS.INIT.RTS rts @@ -106,6 +121,7 @@ CS.RUN lda hSocket >PUSHB hSMBContext >PUSHWZ >PUSHWZ + >PUSHWZ >PUSHBI 0 >LIBCALL hLIBCIFS,LIBCIFS.SessionSetup bcs CS.INIT.RTS @@ -226,10 +242,15 @@ CS.RUN.CheckArgs sec rts -.3 lda #2 +.3 lda #4 >SYSCALL ArgV + bcc .4 + + + +.4 - clc +.8 clc CS.RUN.CheckArgs.RTS rts *-------------------------------------- @@ -299,13 +320,16 @@ CS.QUIT lda hMount >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown -.2 lda hLIBCIFS - beq .3 +.2 + .DO AUTH + lda hLIBCRYPT + jsr .7 + .FIN + lda hLIBCIFS + jsr .7 - >SYSCALL UnloadLib - -.3 lda hLIBTCPIP - beq .8 + lda hLIBTCPIP +.7 beq .8 >SYSCALL UnloadLib @@ -320,7 +344,12 @@ LIBTCPIP .AZ "libtcpip" hLIBTCPIP .BS 1 LIBCIFS .AZ "libcifs" hLIBCIFS .BS 1 -MSG.USAGE .AZ "Usage : CIFSD sharename mountpoint" + .DO AUTH +LIBCRYPT .AZ "libcrypt" +hLIBCRYPT .BS 1 + .FIN +*-------------------------------------- +MSG.USAGE .AZ "Usage : CIFSD sharename mountpoint [[domain\]user]" MSG.TCPIPERR .AZ "CIFSD:TCP/IP Not initialized properly." MSG.UNKNOWN .AZ "CIFSD:%s: Unknown host\r\n" MSG.NOCONN .AZ "CIFSD:No Connection To %s\r\n" diff --git a/SBIN/INITD.S.txt b/SBIN/INITD.S.txt index 0837c87d..7726e505 100644 --- a/SBIN/INITD.S.txt +++ b/SBIN/INITD.S.txt @@ -5,7 +5,7 @@ NEW .OR $2000 .TF sbin/initd *-------------------------------------- -INITDDBG .EQ 1 +INITDDBG .EQ 0 *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i diff --git a/SYS/KERNEL.S.MD5X.txt b/SYS/KERNEL.S.MD5X.txt index 3e96cc4a..da6bc1f9 100644 --- a/SYS/KERNEL.S.MD5X.txt +++ b/SYS/KERNEL.S.MD5X.txt @@ -106,7 +106,7 @@ MD5X.Init >LDYAI S.MD5 .1 lda MD5.ABCDINIT,y sta (ZPCtxPtr),y iny - cpy #16 + cpy #S.MD5.BITCOUNT bne .1 lda #0 diff --git a/SYS/KERNEL.S.TERM.txt b/SYS/KERNEL.S.TERM.txt index 328d6635..fe08e4a1 100644 --- a/SYS/KERNEL.S.TERM.txt +++ b/SYS/KERNEL.S.TERM.txt @@ -45,7 +45,7 @@ TERM.TOAUX lda A2osX.ASCREEN clc .1 ror bActive - sta SET80STORE + jsr .8 sta CLRREADAUX diff --git a/SYS/KERNEL.S.TERMX.txt b/SYS/KERNEL.S.TERMX.txt index d6ca07e1..0a208642 100644 --- a/SYS/KERNEL.S.TERMX.txt +++ b/SYS/KERNEL.S.TERMX.txt @@ -267,6 +267,7 @@ TERMX.WRITE jsr TERMX.CUROFF inc ZPBufPtr bne .1 + inc ZPBufPtr+1 bra .1 @@ -632,20 +633,25 @@ Csi.Query ldx CsiPCnt *-------------------------------------- Csi.Scroll ldy CsiPCnt bne .1 + lda #0 ldx #23 bra .8 + .1 cpy #2 bne .9 + lda CsiP dec ldx CsiP+1 dex + .8 ldy #S.DCB.TTY.SCROLLTOP sta (ZPDCBPtr),y iny S.DCB.TTY.SCROLLBOT txa sta (ZPDCBPtr),y + .9 clc rts *-------------------------------------- @@ -1325,6 +1331,7 @@ TERMX.COPY.XtoL1 sta SETPAGE2 jsr .6 + sta CLRPAGE2 .6 ldy #39 @@ -1348,8 +1355,10 @@ SetCharAtCurPos pha *-------------------------------------- SetCharAtYX cmp #$40 bcc .1 + cmp #$60 bcs .1 + and #$1F remap UPPERCASE .1 phy @@ -1362,10 +1371,12 @@ SetCharAtYX cmp #$40 lda (ZPDCBPtr),y clc bpl .2 + sec .2 lda #$80 bcc .21 + lsr .21 iny #S.DCB.TTY.bG0G1ALT @@ -1395,12 +1406,13 @@ SetCharAtY.SCR pha pla bcs .2 + sta SETPAGE2 sta (ZPScrBL1),y + sta CLRPAGE2 rts -.2 sta CLRPAGE2 - sta (ZPScrBL1),y +.2 sta (ZPScrBL1),y SetCharAtYX.8 rts *--------------------------------------