From 97acd2e1cece75c41c3ed67de79fcf455fb71b7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 17 Jun 2021 19:38:34 +0200 Subject: [PATCH] CIFS:First blood.... --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/DNSINFO.S.txt | 4 +- INC/NET.SMB.I.txt | 6 + LIB/LIBCIFS.S.IO.txt | 258 +++++++++++++++++++++++++++------------ LIB/LIBCIFS.S.txt | 122 ++++++++++++------ SYS/KERNEL.S.PFT.txt | 13 +- SYS/KERNEL.S.STDIO.txt | 2 + 7 files changed, 283 insertions(+), 122 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 23fd0cfc05f00e9d1af6506e549de6f0b102f13a..2ccfe151d8613efcd5ec22fbbf2b6ba266565b46 100644 GIT binary patch delta 56908 zcmagH30#!b`Z#{xcV=*yVR?sH85Um_SwW>wFTxTXl14? zoNPs|l3Es2SK2J=+wH1t*fq^1_bl5kwqNV&?>Wm1p#498mznoH>vNv-Jm);;S7n<>e_{*qTZSSs9pz}mAFm~X0zIlgcZE-q(9k&~ ze`HHAJ^bC_H0j?OmUtQxDGXDOq)8V=NQ{xtRY?5AHo^bpbw>im0AvQgho3&#AD~9} z`=A)xI3q1U;Cs39)N!TZ4m1VzEkid)`}m@BW1q$)YB^N#ugoQ6heSKVu z#iHyh15LMxf*^eOu=w*NESwMzc3l!R_>ZR|4G)j|MTd1AkR|+jKsfU9hrdozy!5Bg z`?7HPs?ggbh`qgna`#q2Ee@!k7clk@RiF*AW@Go&b7z|XZv!u6iluVzPAIroRQ6Vj z;_jv5U4l=-v~4$Szvc0UGk2k92ku=au25C{6u3k8{)vZ9>_FtR=S~@&?W^xWU+;-9 z3{CD3_KY=jpzf>t`q9vsqewUOYkSyh@TJ;6anQ1FPqg8IUjp}xH$3obVCUhQnjN~H zs|8oDo>mU-?M6Fv>($l=yz#>2;`pc~)(2{>GXA13v0La@4_SATs&lQR>O3o{`oa?H zu3EfnxtQSlQczz_50XFlqOVf^2!Fd=tP(!J#m!=%@DZ+U7N-b5;4RJK9^pHDYl~>g zxE%c2PQ{yJLN+7Cfx%1NukKLvM9Bw(yI+Ba(1L@(J)i9m<=j0RRr`gZmnyny zcBtgfS zv@2wNNVo9P3Ehbyafd*V)-7y0QDNyzQOoL3c~)r5#>{O`Wp9(F@2HB~(fh!^LhzkM z$`JLKP?}$d(^iNxggAWn3UQfH5xVx`vTqQ2=c}Dxc}R8l-J-SBTN@!om?MHC!UiG+ z#r2|4Gw|Z4Vu`T(kf_#-?ekuR($xsX$%o{kaV6vS#xAq9*&epNV0+m%V0#lspA;j7 zK3qV)Ud78#is2z+qc=WU(XH!0HuOsO%Kl@6e%+e>PkVlr(VOzvXxw*Fyi<&f!S+*P zlFz@R`-BQv5!>e_=M2=J5+7DSd*u$GpKrwNB3|{bSS}>s^j5)uU*D1@4TOC!hC~BD zl=uL{Oq3AeBEnh&B?iT-s)h43FQIfJLRoT-To6?hRcCXK&l&&F_@(3bjo&i<$oL<| zN5)Nvn-X_JTw|Ce{B-zP_|N_#WU09D-L~&~mI9D{`D;#hoO$W={t1K0KtHE@yuX-d z!-Xfsh{#2@9qpSDYTv!}^tLl{YxKrl72UH&kFXVQv?}V`PQ~=a%cr9H0wagwysr_yMkoGRlBV6 z`&e0AnND=aI zg4!}*308dlg!tWs-mhUcUR7N2?cJw?E*q#FRA8VI#q%0rzPGy3YmXn? zg!b)K4*t5WP5uSHaz-(;_q;;s-50%~;b4y_e}KoFRph9CvR24;TzXdF1U7v2tl}p4 zGMrO<*Y&mHTcHep_qAe9o90Ac$QpHrcW3)c>YaB!d#L2d(iA@ts*iIa9~8Gq-N!rqI{eo($?u#SR1~12IP^b?wBq!mL#hMP@9k6M zedq4e?362yZtQKJxMN&<)c%Eo;ZSxc90xouCkEB4Gi zDz_io_|cBlDFqjgZ)+He$Ityo5uDsJS+*Y87_fa%pSMGG;l$LzKWZwr)@|~$Y^~c? z4<#2>XRUB9uF0#-FK8*NT;yEb(A;`k?~e-0l!fEQsDpeozTVn}8~m|?l%0|XpO^dM^X`*xKX$n<=Dv0nNtWebjzjUVONuz58y8(tv-OdhYQd&4B~bZ#xPIVo2FvV0DMDA3BtB*73ftewcB*ecO(!7RbGG{_$F&TF4i( z#5&~)WsT75qg00Fi7n!?2U?-+!Xd zvqVj^B}#Mj-$nk(4tuKYYVv2D$?u*j=)pZY2!c?6c^@M-Cr7Jm!f15$ll|N6L@<=g6TW(&r(c&;7jO^QzAuJGSN6Ry-k3=@_Fq z(RkwgiN=8ydCDbgpb9kL{3X-IvD6rv9?h1?&qF=Ttl z;gA#mKV|N@(0^e77ZxbT4&)UmUlKY?l)Fn*1vMbIP4vShuc{s+PZIv_Rn<%?%i*c7 zsosXCct8BV*HoLNZzrPV<6_k4>vP7ek8JU#fu~^X(y_VU_#=Y94phs*tf!V0nDI8-abW8cmS5~GW8 z+i_KtP=XyNRC=$h{8D7Skvv=QrQ<5&n2fCKImlYZQpTN7O%knh$V*_`Ttc7@pi1>T zWZN4x0r}5InPv9;qWtoQs_LqcdI8$p+}eWFH?eHZLXurNy9nuTM)m|;+fe0lG%v|) zT+z^qbhn_*b=8%_2?4jF&1q%x%Q77W1tfJ2(pI3&i>g{&_Q^=M2yLF5R#raW;aX5q z(%PJWbXBZ=41147zSU@RReh5yB6>nJ(mJ7PgVSZ7gtSXY!Bwt^1f;JST_*5|5A~eOUG^lTZbX}_ohy;H36h%XT=qm{Zbln%<=bNn87*jITFLCP zyo`K6hoKeT+>nDTe`m)T3o>@}HlvygNz$3s&|SuAvBz7K~@2{4Mr`)RWU+VxPI zAU+j^Y(VxDOvjq-u;;qU^9x}_t6B(|p@0WROc_m)HbDx3G~Wf?%|(WX@RoPRLSk@Ds#tcslH&#&F z;H1qx&6+cG4>#w@+rlW*+JnbGn-M5%#RpHROy%1~qa&b~)Z~U>Mv?jB)xo$!x zGQI%C35}(ub~qL_Hn;9o+L58pT`++cEJNCUce}{{Wd`D+lFAh=PUQOv+U#s>c11)k zUX1+z!RUtPX?OElz$1mPB6}iURNLxuXTAoR^|geobZ?-|OIw;hp;8|}c2??W~jaS96DhyS-d!-7kqt!DcNXme#lHH=~ktSKMD2wMQDAMx*x`S< z$tzLdAU=IYWywG21~L_y|4nFmK*Jlkeb>>7v-NA=^K9Li?Y3> zG{30aKC`d{1^vPrjG1YNHu2hXD!;a0dGX&y7cb4uMgG47fFrQ_Uw9=8WC~JUMw^k} zA3U4lO8Y0gF^ZF}@QlpHx)t>e$mc50N=!llg239$Sy5L9_>gLlj|fS0;Y~y#O5FYx z?0H_;ab9Ik8Y2udXvvD!GNe`ubnCHb1bbp)7hSLBx(e)tWw~|&vPp~kKCv1kKOd;c z7w$x4@Wqa&y!1YP&=FtmB>eGtRq&Jm0Vs>?X&Sx2S5~z_pqrl6D8OEJZ4cS=%8}8G z!@g7*Ks|wHTvC}PxMC*7B6EnuglbZdUmDM00r{r|Q zOaR@z-cxeY&VuTUB6NkkrBY|rie^}QwMCG?$lX{X;Dg&U^!6JCE_#r~t`zdwVrMLe zhWWnjMiw&7#+5H-7$?m2kk~voiCGq0PrU>=rkgnRE*yblWVo54IQ$k5tlA1rYw<|4 zh)`*518nY90^U;SZOGSFLqS472}rvbaud2pw$BoPy@`lNsYqMHn@U8wrKBlXOfv0d zC63H&q+TX$ZmL;@jCBG&vtO?dsfYJEsNX>9kkvK;L?*_Cq08~Si>i>|W}cOd)GaJW z-O8D01>ST~6{x?RQEOpibz&wVRO>3nJHaS$HOq2S3J6WV(YQqs{-$VPqr# zFW)tC5}6R@b2lGPYCH;TAJtxw^L8Q>04{u7!-e$s2=-*Q(7UJGXANZ2>5fOnPKFea zIdkx_?HQWVwIe3pXC0KJ6CV!})nE07eC{9a%lN=w5yu9+sXxQu=kwrj!N5&j-vaYI z4D=G;Mb;$kBS0|mY*l}h;nUbPnx!&{5U<7n9g)i)F}4}08sz=vCT-Y_3-gB16w{w!m|9gGckj+{ZV zs%xKvvYZWf@rK;CK-UKJ!9p+ghR zM{&XrDiiMcK@}+Z9Tzsk8qt|mnm;ESSx?|5NVT5igX0@oMnQ4rtg`V5$a;$8Td?sz zs&Fy%96t4fDnvL>(=_TY*{))}K;PT^z8=P43Nm~%a^^Yje(Odj@b342#Z82Fe;6*L z8-iy-z-|ihxdaJr&i!c=38?A5g-kzlZu@1pnZVx&w@vx)Ft=SE=C(f=&Mbe9W}vdt z%o0a=9y0w8PaIMi^;h^Z(Ueu$T1gLBSMepi!xV%>MmO^v$WP$U>}yj*RdC(qByABjAHj6v|` z9z_{HW1B)mdlIH+drphFFf?;0Yizc5tfw)(%pXVKC2T~CfS24-Qdt|$@sf-Tk-QEa zaBgYw>=G0*jv~e6T|O^bP{ zn;eRYsencGdB}GefdS4ZM8lw|7pXA05~&+RvLhg4BLk6~uUNgfl_;P|qzbGU&$_2w z4vfOKI&}-{SEFua9S5$!8-7z+l()esx?b>_JTUop)sz3Ade*gvcX{E%yT&Y)o;EUV z>d)sE-NLMiFN_gFg~_<|!!c1{3|;x*n6-*7r803Kad6DXEvatB644M^RuULNvMsYy zBxGh6mCr7nkMye;>~75=D8R<8#)VnxpkjBCfIDDf;DkM5BzN+Wz?uB+(e2L9c9epW z?z%?9+exEgxvuNl`kSXM)0)w36&4r4KBDiquCa(t3LzfMQjf`AdtHm`JS`gT8{J}- z14exRb?t?%r|q?o?0^TZYj1<6J@;_ zVT{&-Z&YZ%$C*m)95FD6rVPBQ)Xo%Cfp&6G|D5r=tcrw>$lY2Q^2*tFU|72cXp zNFJ~Tj`!ETU@?K@L}ibpgpQI%*cYA6t{Fsvdd^Q9h$Ts@ABd5(_lx+|0PTagK(BoT zgA2&?UV}C`BySj_U7S}j=heqVTyarlNY-s8Y*^(2iJNQFA7?W>obUvj(}+UHJbPww z0SbH)OYvHZ`DwzVtA}fxG3|GcNZw`8L@e zI2n4dcYi46YKAJv&227(bUJt+jqsvwWxyllgv~Tf08{j zzzV+USWGwSztAo8sPlGA*r?c(8@K7$z8cK|X$a7QU%ud*KWSO?kZHed$kKm)DBz{D z`)3TP!vSz&M|i*Zl%a5*c9)G@ODN8ht6J3YB_s?*%5gTi$cC4PJLP&^EV#WuA~-?VEEP~Y(>AD;AvOA? z^Me2;o%%KBp=Ob7+j-0KV;$%BZTk|wNK>>9)ELs{?Es|IP!Qx4TTcLC0V}CSe0D6g z<=gKAV2g0rMc+W-4t&E!-vqHY7GG*e4#bUP9V!uqx#6O(S(kflTX^?H--*57_^K5I z6@z0P@wlmdo)-@N(Ko4Wc1z_Fr#w|ID3foR;J6t+GRa2{`6wVCrSJipgtMi|S#|Tm z=7kNiEKhJijk21?+vV!UR+;9yb23R=wJoi3ZG&9DqOP^Jsm>`^QSEk%yG)L|_Tm+} zb#-zR==wc*1&}wp#VOZ;RY9(UhCtw!7dJN7SGKyVmqHPCqOHBnS+|Oo!u`(q27Kd> zzOQ%w?7RDCzr+mTew;Mfe-Zd@4dBWCuZyB0cAzZP-|Q4?V<}}QmdLgE#%KJ4aO2*L zvBGlv&eQ&>3VCBJ{$OuLI9_BBf`qrQ=^6j20xdVSWO?km9TN|p9a8Vxbao%i)>--e zXiG(2ck2ksi6kU*N9;8ub4M(Y%$iuaH?}5a`7t2$9SFYgrPSa_1CzS_v;3!M)pUn{ z^~$+lmJQl0`aiwwv$9KzvJ31)O3%tKMwctp6VXQtXtB4hoJ$HMo}L3QzUY7BV!V8% z($F?12IvraQbA9Y4xfkxI)v2g=&(2T8aliqme!GNKNKh&>NP3Fcs}|+uPe_1cfbUdKxkRM80W3ng zX(VN(t0oW3eRa-eq?!(?A!+!z*QH?Z83+`~l_<`EH3O1O6`hIflkq!U{$^j7TR4b7 zA=%h9AO%m)B__YBCODYPvgZ_(+d;fR+B`mn1Z0@$u^77%h19c{DJ!%9Z}_z-SPU=1 z{l7NJ;@A>weN_sLy^&)v5vj`v238_tIUB(&dtpJoov3zTSVqv>zbYAg=6E_Y&ciN9 z@t)6WB`?5FzbZ{KFB}1ayFLoM8TbFzWRbzifv9BtD^N*JxxKW!>>+BLt7ISsF2Z52 zNfrb6HrVsZT#1<-8TsWdM@AV6tj2|qBP_;?Uz22^2CschvH@)s|K4Pd*DqsMLQwkJ ziHavD3;EOmm{fI|iUJzQT+xG2PL>_|#Z~`pnx;`VGs|jFE1vPXWG!9cnKqbS@K+c` z0mIYl2QCc6O##RtaSc+fBJ;cY+WEbM%* z_u%+9By;#0POD{h0I}Ro_18Wfd<@_m5w;fBz9Gpv>da6H2eX_ks#v=hFMq(_D2CpT z``?g4g!T9n`0{^%VOjeiGk@-WQ@Y7CO+S^W<$!X4s_Z$X&dO>efz^pvQh}D}yZ1D~ zHj#L?_)QmVt_atPh9%C{DioE5*L*6C)6O7?5w1*>l8#^bRGKo=!4e#0g-FVP=L)73 zc2!j%W9Eo=P^CC4>no5sizd3snl)d6OxXesyRSmu7LX&@{+5~Pn(k^@QB~z^X+eIu zg6$p$Bv7{k?>xb_kiaM93$yIA33Qq3sfvFl)9QN9;sfw4AfUN&ikqAb;0FLNYuPnzInse{GbviAz~W&kYD^_9P>D}}CRx21L?~tvEBsmG2Zl38xx zB{DoEata)|Wk>}EHzYR+*wvyl;Ppo&P1|y!vafPAffB508B#S1YmotrZ-mNc7v;m| zN_#-QD~Pott)#fbH5sXIl(r08L$f8=%a^zR+D@}KQVWZnSleY zYjG7RjE$d5fth!*Y(h1@cfqrpoC5A9rOCqL;fOYp;yDGf9)Ww>@$%0lgT}>CH}-G% z!Ox}8q3jgEor-N{E{S&L79E}6%zgKh|myB4i#b+)(`H#gRER=5{( z=uoELhl7tw)9}j=X)R@7opTd=h6mVy4W7iguBO&zApQqOq*M{dHXzoGG|kQAi-Gm4 zVMLqAi1cBmhk!ih#}RtTprEjY=V3REJc55a3Jckzxc|6h$T5Hkk9d*rsiS4}V9p~; zJ0M|hb8V}Wc(XhX%K=@&2ue1|UfgS(djGQnh)IuQT0d6?iKQ} zK&#>Y3V*{yr2d27&W0+o zZ5*eG9-?ajcq)+h34$sBGvEs{O8}&H*+W!5N=D|BIPH{VYCA=+S4Eu~v}XW0Z2ENP zsJWJ`UsM1=hV$1WQw63@6mWsB*p3bc3{rn3P(L;mSU!>NBF_d-*UZeML=*rPP%71y zWoOT_XD1ec1V;>@M7mD`H*he3ve^VN{Xc{*S0W!`?^p){lxamvD82(?{Hp;qdHcgn$Tm z8O8U;NPOn3WSBRO)c^vWU0URt<0zP&jkHmsjfo{l7Y&bOvjIDfi@37tV|YS5tajxz zNfS$ogT#WoZ6cE|L&oF6b5d|I*f053LwK3)w|-!>9OeLGwJ||hkWKeKd*BeFaWKuLR z6>OKJSQ#v|w44r%m?WVjza*O`c&Bpw`c5T?aOIRcLB&7)23&Psnx>t`kOS-LbiDJt z6qT9A5-5IWz_SOxV5A(4Uz3BRcm$Khtvo)R@7MSbRcaGLn@G{B^Nh*DVgngo)qm&uAYuZ+F4v# z4pjljkh_GJQw?1kj84~kwmf{$IZu+FG%C#7qA41rkmi|jV9AVc&T76ZA7EMP5|bc z@umxsNxVhG{cmdZnp-&<-?l6gk82Qa4_u*IZH0E{$=^h@B4 zJ$ppX8d87&nNf>#zmgm|OIZR1av3~(fUJWT_c^7pu9^S}dqMq()CTA6EY;kAKmH0p zZ)BjiHF40#E{7Rp0IVN1g(c7!I1)E|hNNqCvjdg5!4Yx=Tj_Y5f(q=LNP9bvv1*Do-(F=mc6SpsxGwswfaFjm%kp z)Vd8D%sL!@Q8JnDBNIt?$4SWhem<9h>+#JOfteowq$V%7NE^sRdHe!`9>mXFl&n4* zNh+DoiJL@xHF|tn7rJK3%`-Vt&gy>bgCbPXZKVWcj0@# zk%|()KIWNmrarAe(qkhMYb%g;GkFKKR|N`w96$K2WUV(pL5sNM17?DPnomM<4ts-R z95OuRX(@vp@?ar&+LJcd<>~U75s9SBZt~8$+(Nnx%Iu*f+&wOCBF;{Wq07HRI`^C) zT?T9&(Gp17(BU?BO6Pad?(cM8S3}IZT{G}qNq`{&pOMr?JY<$6{N%czoPntqvK|$> ze)iR_)!r5`puJ81FBOfDA2@u6-c~esMQbJrQZNi$YcvA^;8nJlt6$^hw%3`tE#M7O zHmf*$4%q$fqq6Rsyu=<>BIqqF9MD_a-X^S3MGSa1&dx7Kx_3C~*W}P(0*Do0E*17E zNP5qm$9$Ev|MX-9{L7u?j@>Zq7ww=DrLvdXuS$EsL;l7O38~I6!~c3F-Y@B6Lf%v{ z@(G7>kU?oVC;}YAuF-2bcUk|9j~~zn8V-3HR3B#iH0}sif1rSH3f!d4>n zae$G8ES%uqU-0jf?A!O0xVaI8uZTzx;rvf?gKTtaG;!xR!_Wj#McQ-Rvtu#}`jR+r z5biB0EzT+iH5J&-LCrZn!8ss&sQ>Qr!1se`dZBB#K5=d0J_GzW!hh31;y&}oU$i0h z1po|GslH!9i!`tzJ_q@JJratGqoMeQLjexy-wi|Y1M#c+3n)Nb8X|}VISr{VLHQO4 z{rHi7cV=crAj?mzjRJ@*aD!hCj`8ZBnPZFfS6t9*2@L*?cLk#3fBE!W=2qQ5u&dV+ zD*TDNdo8B6|1m`RUm*x@>LiM>(%DFj6b$bI{}%bTLP2E_NeS;jCq#u(2AW%cm4d8d zB(SKk7$POdC;&@M$mmUqQMD*!f-1QXL>u+H`2o$Dhy*GG1)AJ@4)s&jpG z=lYn=^|77nZJq1Kcdn1?TtA_6y}fh&#NPGsCv(V%Va@^-bk5X43VMXl1_PwTLoxvc zgaVF;ODlD(qG%ecV7`d5g8Cwk3sc}t`_m(W!r8kfLIFHZjtA;UmNIr6wl7Tx6{8eb z`ZLUcA6c3Zhc_%unA8@{3gpBnh{MqAGDmLqTDzmn6;2Iuu;3MxxrjjyJ~GKi4*4h` zAEod?bd4T^TsVq|Rcxe{@0s9$s>Cwq0?Qm#=TOU9IGSMd6d}sFT4JMf)i$`?Hagb` z8(lbx9PcTe<8E*#f^4+3s~4$m(W?4*jbm-3>_X}|v^0la8v^m5T@w!4>{@SCTtR+DW_}LD zQx@CH;1-C>=VUWlKOVhg3-zzLdagB(#GMZ4%cg%Hc>@?G!_lM(1f&J7@Ovhd0!Sl_ zgcK@JAup<~ZFW|*Ha6Ef`7n~~_=BYhiROuPA|Nv6A=<*Ygw&RBWRJ&&WeF4P2{aP| z4_M|x=S@k8_2XJ5!b5z0IGUD7^NB|^M7?algS#{AVv?e3AR|Vg0a(8q_}guj&G0tOU9xoiGEseh|ZX|8aP;B14db(E;XnCn; z#{TKdGh_FG>B`T2zl!bl?w>Ol4nh9Gu~^rWmfaQ{+p|KBiG^70`QtaG?<1krzbx2C zOrq)gUdp?WHz;1nhsT|RKSGg3tcYUpmm2xeSb9Ohd$zt}az(_{hfWM-l9Zl!`5W6t zul-jCr@+kzo*os@V|Q@>oK0E#$j7!~VjVwg!JqY{<%>CSSpIvOu`M%B(k;mAR`h@R zQC8fLcg<>g`GhRjtiH2ajzfE;KOT_w?hsNc)|7PID8Foz|BR8n3G5+p6n5XiU*wsw z@=dXiSuM_tj*N}sg-p3GR({9Urzkiao3}&BuMUvEwDqNO;D)pum>q37?UUrov9fG? ziNt!(q@S}cz_YyF#tS`}8E2`0!D&CvjvG=E_~6zANE~jP!sZ6d#sJd-V7C)HYx+L< z`Tq}iLga}ITb3ckj@%U4U>nu!U-XHyx2D}R>2wUkM7OFx2Oug)so2+_vrm^Z7{GAz z8=Ex!;4kgrEJYKC4{l8x8x0UG1c-Ln$j3FXRmjjTV5v<03Y)j3#Z3XcJUOng%qu&uDSh@u2O3JkVufP_T6dRyA!-rh8WTtPtVp0;h?ptuicU?-q?TV6`7sUr`j zDZl$_*XwD);&vMjeLZa=Py%>zqyuu@ll^B*PY`~pBbrdi+3>6Q|j3a0c8QFVE`pQI1K#Cbpr+^*ODM3U>{yO-`gO4FExGzCySHWWs z%Ii+G)QUg^_tgRw)Z|e--sjBh$gIgDc)bsh*^Msu=WUv~@4(>ifL8*3Ah-e5ofz_& zy6FUI+q&sQyK)D5=mcdn_Z=N{jezk5d&Z{#et}Uzypp zrj2dOiz7}rXV+wPWLNYgvVk9C0}mPer2@v|$v(C#gBMQkaDa~F-b*Dz_>DKy z0z*i>j=a3brcO=yGH*3!pLPpL-j;#IJ!!G(thkRe%Fb;~2eX1x9m#-!-I00I?swD1c!^7wVd1dfZ(aM-#$bmg{lC2j(jLe0vzO)IVlRhA42s6WF)u6J zcy;3;rB#Y$7d}KJOztQvL%}xe_z^>Dr1(sgd_wlyHE!(g*p1zX~;M z(R(gRp(;`7z&#h>yh4vNpko666?#w}RuuWn9v+80mzM+*tZi(_Zm6EXoT&#p62;DD>S%uWh+%@HAyz>s zKEGjcV`3SEchHL-Y*4la!Vcp2iHt>f0Q?3!IhYYQXI>UgUh0Yb%oFc9^ModnimO~W zDmB+^P8!vUJ(I?X1SR8*>(c`jVN(>iDK&Sjm;#5O)La7)8A%uAX?Vf<^s#0TIGJk+ zxvK|`lC1I!QplR-VBJI{B#uv7Lpaq{R=XMki8FX52(QXgxOE%DQx=-7AY_XZ9$#jV z$q3*SM%SV#OM=}Kk&BVbEq+2z!NQT*6Uv)Qx+%u(1} zd&kT#bQKmBy7sEFkYO%KQRUUw*SpC7y($RKpT|m@=HoLDq#GRz*m+lflLuNigzANm zL@4JLGPO-eU7?_sC7()woCNWJCs61j1%7%)Zm^|_Ri}Z=)jS^@g`9ZV#&o%G2}f2f zBPjjS>pNQpgCW;=)bUR1`F8{VZe-tMn-q9PdTvN~GrTkGy5aS0@nAFug|sU0-RZeO zez)=S{O$C+_o4K(wpN%wEqH113nldRZWlYx8Xf2^=_p;mFmpPP^lN)J~c83DMr^{pN zplg#4_;pczz~>FbgTL>-IcTTb_bxj-U!COIF_A%>IQVbv|P$?MwidUm6C? z&o2!tP{74tun@teVb($gD08}~T#(RF-F*8>_Aeg!6)8xt=SGq>1^E{%Xow?~DW)LP zjS5)8slC$j)b4NuDND3-rN&HTrb)-2KaD@V9D{8p*mJ24* z90j}Dhc=ji#?6CU3V%(H^dkU!ZZcbd&xop^Hsa)kjNr;gr)%zl4#$d>E}E#{0EuoL zI&*OYS3jn71GCpA@cN@BUFl)6HxsU+@)GiUbOa%zfUXg(P@*?ulEOCMtSTl_5h^r3 zHe521cmsj&8!~JjQ5eb=K$_3vus4&-6ecGl?Gv216OsB!9`W=PV@`V#vOPm?=E1s? z>Eo8cMMazo3_V;@;p_v_8`5qi{S;(pmmqU5Jkq#xaHaLgcgPQJC-U$o3fMjjEW1a` zX9uq~-+_xxrKcyFpa08t0(bFbsskLs)NwBmrVj2soi4Y*=9ZP5Q`=BkNA@ssZ4t4L zl{#;8Hn%#;GV}A1?@L4wAR8-)NpNuycP0ic_+%9D3PaF>62i~~W!iu6(I=z8-RxE) z*uI9B0J3of4j{Oefy`r`jt!d%kB}4eD#E9K%MMI=jUkQ$Z6|UfWUF6iF3mn~xaS4r zq&J~MCNf#}z~x`RXPYA6x+5YjjI2F=@+73$i<+H_;DR0$1Ccl<)1#M?dyc@k0XLGV z-(xp3>?X3vAm5J= z$OoJXbe{~jO@tyO54!7u2{Eg(S9F;4^f&;t`?oC6d=eUtK8SCq%ZO_G6v}#7hx(Ig z|IG&lmlA!(WlQ3>%na;4has292}EZ2+;g3f=@{9QJj~*r%oC(_Myn@>p&Wr2tL4-v zVBK&c<7s^3sdR&Ih7LTJ4_tc|dMExXQ;_vMFmpV++6T;VBiao7k~euB-Cm%L;U7+= zdz%bjUr(wr-;e@PvwXfKC?FdV_|koUJrA1y^VfqJ@{GkZox80LwYVT#5r!l`gu>+{ zd0a$vM0P}3#HNT(BM^GtBJT>6dmbYJFNz0>A}YH5`#&85#aG^i3)?QxOKvas<#=wn zoeWxl(?gnW#nIx3AsNo4cuTU_|x1C{%QOyX|Y*3yEatX(xIDh`QP9=u>PTy7_si z>j!oFKJWNmmfqa<{iCjI1AgOdvX6#jNszVed%XNz(L9B`Yv5h}59wy|d*}Pa8_#au z6p_Dl^QRCll|K0GlLsT742X0$NxJ?XD*xv`l|{cJodjvQn$J*U=1J(1PZSZ@!$szSpXq9EyHMp5NTrb(^f$( zCfY&(4Bqr-5?rCDUJPb&IDGglflTTV6^~4{#G2)~uMRxV$z4&#rOc8@yx|hb^=O68 zdgQar4M{5Ut9M()!3!N3cqnuPcU>n<_<16siOZd?Sxlr0v?u-{0D__E0!izDe+ZJm zjesm7ZpZe>+whBz<^vL8FpL~9 zRY`Y^Zc`1;0`vgU#>|8gcnpl}Q-Zi;Xs5Tp5#9zDQ_-Ljq^A+eqx==L5S~o8AqUcf z(*W6eMtC!5*LrfLd-)@5-t~>u$mc$=1Fo#>tO2w^@TW_crl5#m*eWuy#Fek)p#mV_P?k36^%@L_x@Ekp172+R&y(}91DU063G!w`!( z5u~OdF#S^~$*~;*WvTTV;$x}T*Hds|@`nz6(lgYni)0zP|Dww+o-Wm3!Y3~H*1zK| zvmAjE1iq3T5a=WqcI%*L@h7t!R$)87^`yh-vy*fT#zK&jp2yk-$k>H9-IigHUSLzG zevy2yM8Uh89M8;q2dfzjO6||@=9HKq9<8I*C`#|gHy&_U z!wq`2KxWoCE1Sz2tCl%ik-w3pk;v}VfEcnBS9Ok0Aht5sLYN90Y&O8Iy76!gARO)%l$1J`6Olj{$5voZ zf_4Jmq0XNF@&Z=A?~sH=ShufX2MLl<|DjmeY!CWh0daT5s4z8Dul#)2uLnClP!jTtB^u` zW}hQiDq@)7(E-L1oW9>-kU)tM+gXdpgc ztgB(xK-$%waU1WT9kkuaIxyYM3XdREID;G7S?VZKbwLkocl3jk^axVz7)h#~3=N@c zIjI)T0zfw~slBq=P4?@?dKxpp8JaI?!&@yxRuQ^=fY7bc2nR5_(>};&G6k780VTpt ztA%?Y*gTpa!D$~lOl@6%F-zp2MON@h-I1m&ih?F?PE9oYPlBUX40J3eyg1-Q?(F<#%M z-Q~fO?nS6Gtf_??==wPzTo51{G~G+2Gpdmzt0Bk&Z~&sb<_?7n_yEEU%$58J>W_UL7SCJkQxp=L`2ZPd2Jb_-ovx#p=TI0 z=tj2}hD6Sn5XeCmaO4Mfy|M&y&#@X#Kjflb?f;R~2~ZB`5{^OF?A=HMMdo(B3ZwlCuVyUB+@L*3!glC>kaL?20;o(Osv&x-Cd&fPTJ#v0AK9wmvy3iR+K+TbF= zwj5a7#(VGt_ra3;iwUm=*!d`jci@Roj*244oWKw?ngGBK=$-+_iRvVV7ip3(ii7-; zA%F;0$3a9bC5S+L_1_@mq*4eClOTYX#2Tm}YL}d2Ow)LCL{MxY zQYcXt`Ap}-NCmNP282eo=NNJv1fXl7g!^LY+RS5#)tL-RbrvHyDSLE&a4vrPkRu3g z;Xi)J5$u}}-LTEqI!nNQL>Pkz^N`ORA^t^d_*|YU#%I3O7}|7jNi6f62bm0DMZR!R zEMdPIqBl2`lg>t;bJVl>{hf1IP>zXS6nkwc;{rxEIn7R|XS+5ogb9S(LV=zjNQEe_ z3(FlKcyR=ief3rr-Zok?t8n8E_SHpf6htzs0^rCYqM89>T#UEeo1;%O*FY~Ii(LzM zEiVp%u5_7S#wgfAu8uwAFe;MjhiBIt4;*&*r$K}(S-UAEARh>8rGx-FCp8Ud1yvqg zCQEiSZ7YymJiWSBy@DmdSy_3+5#bG&$&xk6v=YZ3aTsG)jh;UBYIaek`c6hYYPc|# zP*Fr1Za4xb-gfuUQ<2)m2+auLrc^jh=ok-HQc&K*F6h68wacVz1i#HiCyu?s+NWFV zUNm?KHQWnJgeB=-VdPD8$p5~P4Yk3E7$6|ZMerMafQ*bBiHOud8hudUy9P~y%eFSM zMtwH%MiUc}|3f1h1W(n6d3#An_vncBNPvNi1%97|`xZ33;d6(78-$ip4Z~(=2`1eC zan?E?3ArPda14LdKFK?ngmh1j=zsvM=@vlmOPx-)&@7~eYhh`de;?5%_&#hM(PkS! zy^S}TjC9YAXp}&$*+H)7r9aBB6H1Y#0#F0tpp36LSjJtD;87>Ql1KD6^txEauDU*w zPqh4;5q16Ugc{z2?@I(I&YGH6+)J@(H>Gz<5+fvu0X8r-goaXbhiFiuAb@LR33GWC zY}oAU>IknVy>Tu1kAHI%`R{QL4#@v)f&(D`z3e;iU3}{?hsFE<7=;G?6Sp68Slb}l zlR!nmhnra8{#ZbDXUnqMCKpi=lb{;7i5?6T`$v$=ff1Mo#6u9MoBTey2J!y%b~Czy z()$1p66&Gy<)^gcHezxHQl(~Q{l8heEGdz!$q@0$rVHE%4g=)GfBXo;n*Zmc$>Hc| zppJ2%fW%H*1C-_@Au-w(iPxmGb$Uc&zz`6+Ig(z_^2UI)&W~t}(5v|ZAuY0{mcg+Z zW+{5=cTR7uJwzfKzaEFi)o_=p^?JxO<1P z#x&YK?z%0*uT3=r8VpEhg9bG4E+Os_00(VHLI-gvxV0E=@POM)*k~e>IuN;KqYga=46-7EzK{_CJktcMY1};!6E%dGDkMk6c;mQXVtbe zHMZ0e*C%8wrBjt=C}$%cC7aJCXr{&ozqyd@kH3t*Cc`pCAgT zgH-U4OB|olL1b%)TCTqqq}T>LXL4>#Xd?s3*rX%}(i>Men^%!@6LGadG0X9jlXIh^ zn%y9{;cU4c&hf1TAPfB7A8E_8(sKoucUL6DX z=`PCnPzS#zYq=uIVdV13tMSrtV(=o&$pAG$;-rom2--&aD{iub@mDP)B8@);p^Z3!`$G&Ge z;z)~vsAeq05(&TL!T@Wt60bU_L<7k{4+DW@g#1BfflgtEBp5P5NEt<9QU|ftLaHk- zAL${i?3&#{C$rj2goM>VA5NY3I^ER@ijh8IWVJRn1(74`A-FxC9O!5**okRp;6{2) zXWAI<_Xr+3;6O@piBfeud8GT>?c`<}S7bsw7$+t`S;AnGk#VAe9z9s|5u|+r6*!Y# z)4nNzx74*klRA*PI^$n@YkUW9G=Akuq)AeM!w5ln>?DTT$ixH}87dba)XB{0Q9GGC zHNy4x;C@O7A_M}W=xG3gpQt7l!k(yKB&eXK^QnROCOS3X$VTTCyibYPrUP%&(N?xh zH}?1*uLgfp(x@K%Oh=X^69O)$WPaTu2qb|A8tVr<&`3W z7qbBvOIU-W2u54Vnjp(W8EJhb{8$b+#xfHSlZV*}V~(dbk;VwIspoRc%wx{6KJz&{ zz)y<>+@#2%3^6Rv7;a`PLV3<@0s*H}zVw?aI3x*_blucci8DhSiCXRn(Y}@YLO4eF zLb%->`g(}B1Mzb3T--~qoMk_*J=*_)dqqe)q>)|`yzx2i#>xG;X#2L~wTS+rFo~-g zPNL2nQs?>ZvHfSs{j?Xy#QJw!T<3n#z#rAcr#40$SSOuKsn}H%f&UTWi1l&bhf17j z@Rsq4a8bSq`)$m)tLveRI3amp!b2JF3Oc=v$j_G*fR9%lbr;XwvgDUI`D968ty4;F7|r_{x?Ht8fDj?8%UY zX?SW6yiLcm;mw@JtHJLbZgkgz=Yd^4@VkF)hC=2UxZ33z88U!zG%dd<6T*bS8;}af zD4=-Qyup8zvILaiL@I5f&g&MQ}r^n^ci+8K~}w4vzZjmvi;`B=A}LHrNm_ zd}LOEITeM?13Sh~>7ip(^Wn|B0Fxi2jJgRb5di>B&I^h1d?nJ}3`z7Cbdc&6QW8w4 z^j9gdz1b%PZ~k8L70rw3?@OkEHI%M!k>EHTP{VCO)Om&;%WI(}vc3U_FTMUpCYSLa znXJQiZ_5bRg3mG&fF?BH=eA|UO>E@j0l%>(j~T%88hn#_M?5~Y%U5tEI2W?Q*ce*W^~s*W@*bPQ$0VdRxfXBqXwYROXb*h;X&Uw0xDs>p@#{J++YZ z8W{t5Y|!0g;*I@=(M^37JGDyl84BF~yv93ZY1xy-cPDLhT?*5(*FU)zHOV!xbpH}^CN$?f?3 zWV?HBxUWfwZuvEXeey3!Zt2n3754I7sLX5Z+q=Bkx}z-NZg0vE#~a9F$c}#0K&+~5BMJq}X$>2-V<dZs`@Pd^H_A z0_9~TMBt)j3unR+MCY8q%mvV|>QWqE(crY@BtwjgP1N>U+|F4Hi+};xX2gCA20Tq) z3yG=YKRjll=^J^c>RTCpN``+Y!%xfbGd$dH`d)-5{lJ&M?KpGF$`bntnnC6tF)_Lp zY+nJX1H`@JXP|v<`}{>XSJ8aHP9B0^>?ya`cWN~OZvsaw(YTIZg#MQH)hk}Pp}Ezo zSbjwx`^BMvnuzbxATH*cQ^W9;;1E;m(bVI^p{Mf5Gxf*4LZSm4Ns*H zXPSz#BEbCg(;>wmk~xfhlWk}rItTPinsFA1hE{B^@0hi;V<8r&-c9B-feB2iKj4LL zZtcd%nLj6hYiH(2$rIMI4P}8@aq|Gz3`d5LJ<4e>eQ#hV zr~{jUCSFvQCOa`@3+{DBj!s)7xc^z`4D_13xgbjT9kk^Ow|+GP(cF9!MGJgEun7~3 z1ZO=sWffa7D5U)W4l2~*#FJI*CEU@UIw(k!CrDGNl+={ ziMnQ?8_=f@%`L%biDUaU^!UGPXz)_^du;<-g9)Q12HSj6u+1lnrYxMoUfu7t`?bY2 zY;B#2%tMM*uuU^f2uDI4Z8`^28ODc9)8*fDrC8=XF~!B&p~RgZCY1qGe1^y;I|pa` zgmxa)kD)@V6Hc@V5O|A2t_(<;)u(SUR$C{wz^3tR*;&|WDV7eAYuIW8_o`xYV_MD? z{bHHdKh}K2^3xiCXcx$67xs^~Ae7lc8B0pb!-^!4xzNc*w=b5zX|5~QC3w=dn!>1= z64Rwsz>gZlbc;fHyI3Gpm#m!Ns=ZtkYlVQl_p1OL+RJyEv^}_Nrq(L4YeV%cW7GBZx#_7Jw3#f| zqD}nxBRl|I!DhU0mNkB(tZki}8~|;CP6FK74!cr}Ak$TH#%~s6C2pY%rQNeFoO21u zJ7-016ERY*W|{X7Pad?LhJDEHndKS~Cw9?6%V&_n^W`5Geqkl`ivgAl@MlBYWn7I@ zqOX&2Dy~;-*Yij&%MB#xq>2O&A7)76<(I^E6FZaJV9mN2a~Y;>!Gwccx&J&%zk3D_BJ50Bq{dK^b;WyncN;f~CyGFbD z_#l3codDg8=!bN{n~#YHblNdq-abq@s0%+;hF?{Te^@8ZI`U#-;v>45v>ku%(s)-p z%sHGG@Ssu?rzllLuA#1x*|phUhhc+W!W3n&bMN{qs?< zU83P9!JF>Kg_+$)9WaNX9C|V0^okcPN26ex=vdQV+m0PQM!$}}<(iwjuh=y=d!LOv zd5Xhbp)U#+lh+~F^2~h=E_?3QeL3HHB3);4_6>RN+g1NWS;vk>x^`x{BC=hBvY$KU zs?8%eDtU<7{HcpxpEiGSiX!-V3~pU0&xK6%&KbK-5yL5l^PuR0($3QTU%*mI2sTDV z?Vjgca$?(wc`x+EFP-@7=#iaf6fo)D6yby^SvX-Tz0I)y3*vljc^WHQOIhFqGIt2TxV@nOrEcmb*lnoD7-+JPB-6Ov^MQ*5?U(Mx?t-kflX2VX# zv<^)`HTOk}m#$ZH_v!GuS0(N^6&2;|IMH)rkJ53n=VXXm#}d}oScY!ce}a=H{sgI0 z4(*J9J)jdCwEsiiu|%czlV_=9W<2b*meuCLz100dr&2qkgFkU;E9htngJI~=3!VF_ zOndHUuX`hkDt^fB=Mn0I>~N1zh|tF))CVl{$>`CL!Cm@gjFWx-pfQe(xFv3YBYNkO z{l^MUzZicsXI0aSHK!w*Kg)4lpQkyE!Y^_frMsWiW+poZ?1%5ATl2W+p!rmN}F7F=k@Utbax)S z1U;DNdWXFpYs&OrpNoNrFeAdaKcAQL;Liu4{rvg7lh?i|G#n>t9ja6&9Y5N=lO|?-AfQ} zo++gtL!it@obp-Nzer|!$RMqKu4I4rmfXzimz@dL6~GSw_po0cW>{753+bd1vq&>< z0q$;UXYaUcr09d>De+6l(nOe~y(@zFBXm;$BE4>L=iRX^Lg-Zq{{S2KfvG~V!0bYw z+E!XtXp*p?TC90xkjrnqBq*~BDo$oy79q4^FOMLtSgRjxNGAdFD%o&VO5$o!kW?ne zofOj=R0&P#=;7pp57J8+)4X0bC)lhT`VpCMMTAs}ZRN5>#k5fr8NCTbIyv(WT8CGG zR!su|cMZ0%+_!xn9E7kpS9dNoQkbeIX?ku&T1_B(HScI4xtoBv+qJj+G4>AmlH2o+^Y7B$^5>X4LAyS8Z?7))*0Rl;y=Nutm5p92#Ayo--*#?CYE+bLW zmysGss@=L=Q@WTVmGH8Z(u!tG1v2=L{B-EE{MS(Rp235&YD*bH0+1`q%RidPnfPpQ^Z%Fd5Hjp8twmR5Q-z4ls zS=Ja9_X+|pXsuzMkc&y9Q?We;=rb?j@*gnP)=90A^@cFD0B!TMK?II#s+T)2`xPRD zMxP&7!1&e+xoi}q*QAhV6IBn^i=~}$B z6R{S$;Bt@N#B_CZyGj~j7L)6|l2X?)eq-LsL@bd}8Qc6nUq#<*M^v*vZW8kRyoYN)HOeUWPseEco#XrDDt=H%+423}h1>R17l zp+$4uF>~g}@I;NU@7{S37Fwt3nE8j8pJ+0gb#Xn5d0n{ISH*rMiy!W_6<&odL$ykK zWTPsk&7$gYTMS$kL)!APZ)IZuuXJg z)ghgCLGToP1qBYS*i^f8Y5PjzIF^?Mhy_WmXy<~12{tumCV5xi0Zt-++xvEYGPsICPFHW62VgI1 z*@2M4|MKjrwd}xF{G05Oz*gkJoGB~wBdyxv--4I@qfCED4)Hb6jRiw7bpBn|4Os{H ziTqfI^$sjWey9UWkss#c&he3YglxT1c`RA$}(#uGl)c?RSK9mKqNn@fU$1A5Cw*SFOl!77RA9l@z86?Y2zb_ z7UsplTI4xjvcCtv97=IGcN+W@P}lBYGLW(ZF)=gVl|#TM{m^rZMg zO^04sg9+YuDOao|)SH?(PPmYY0>iLe*bw(fQY5=Din9yp$edEHWB*y?O&V39lg8!7 zwaK|@s+4pO?suB5pFJ9uhGK@u7r0pfLv|we_-Z!e&Jj-bx~?|20;Z1xB^L%R>{uD# zzDQyAXQ+tg7^VwvX1<)lv32W7-Fn zyO@YS6#T&QXUF3aLgBaU3HdQSEYls)((w;-{FA|S;zRwEOqcMqO!tiZ2tRueAK?s6 zPs_T`yz4%zJMdZkZ(EG^JjJ{6KzBn{nZ9Elnfm>3$DIvX%o|nn@qyh9JEuWm_*T8@ z(3e)Q7xZc>e9C{WS6g*etU5w{KDN1OT0?!0yJ38wtWt^JWl)m`;#OqP(El#Y7(W8Z z(EpwEEDZhc=7#=tdsu0@>agF17w~d`jZw%wOU~WwymU1ilF8NSYOVzitply_H#>jM zd@RiH!jiX_J&G4_ZG9qLEy7_gIzx4X|1m5>tuoz@*hPWd4t7rl%tKt0p~mYTV0UDw z19cCwS2NU%T`qNi1*VpjyoW^0M%ad4yllaaJk@DBAcE$zC)1(PRh6gOASO%v^qI(*^AiL4-q!rU zKu=YHl6i>LZpEEye%#5T8-DWUNHVuU*nqmfRY9!Pig`W-l44EJCDbc zuUKDZ2?eSp>R-}ZNZu>VT>uK8;z@IC+PJosaYdDDD}{$Q#rm3F@Lk=|@fF(}#eS5n zDo|}_zpfXKxaPNZU+9(lC;J;Ra9rnNq|i1?ZzA^wSX+NfXf~$2&0a51lXdT~Zwk~j z%ex{p{XIA?5v5(p_CFhMNq~~5I2H-b1KTlHQ;2g7G(W|MO0j%|jC*?iooKgvGgU+|B6|P)I9yydUjd8nmf(;4S7Bx@iJKD6B_Et$7$WTGI+(3TBo@C zl=7WW)^%6);0`Elc*I$4v!Pwe zOQ=xnzf;cSjYSRto^#e8dUoc+#-uTx02U1;K~pc)3NrsCm1l=Q*eMRFVTD=rIJ=SH zZg5YoXGP%1fRRd)Ap$I7mg!h(@kblwYuxgS9Uu-eFe3*qWA?MKcJ?6#l{bkvy-74j z$`d3m%S6f3P#rqAwyr_3Loc;&K6Of245>(7!1k1=#c6ROiI7mB>CDhc3iJluA2?Xgk74d_r2q^K{NG)$w(skizD4_CwMkIS)M3zu8>^(;F5k)BAD9HmOSgCQD zBf?n_!NwVv+5Ls`Whw3)LIagowHRUCCj-2~xxoqGlFt?SYp1VhY*fsHWQo}QK+%-u zL<`&#yBj-Jl!-o$hEY>ZX~j_?qR44eJA3xjGBj60C8|*YyBhX(>3%MHFcMKipdzV5 zSgc1)@mIrBg=Ytqpp9I(jZvaugkQ8Cj&H-nIp20RXAbZ!b^bOo!P;*4Oo_)X@-(2-|fTFK)w7qxe2pLtP~{; z>>H0-7*iOa^Iu6*^IN6AsoOUu*|6Ja-%D^FrnuAM$ziHCZtc+SOhF4u|$ugx-pl+h`P zeD76q+F4w=nwX?Zw zN@^gOVbi9t95H&7IIt7L^2=Sr(kj)Qj2@XEKDg`p=eL2)s8mzp!8!~}nzxZ{s#J5c zuarqE6vt+*Tu`x*F5$T8vSZ0s_GYD8?ARvSw57bv%@>bpigP>l$Ll`T;;>yKTDMo% zxpuIc!D`0YU=Q+UzD_hVTG@Dg1a6|;fM;+Scy8`iG#kudB8b*AT-v$`QPOT^Hx9;j z`xf@_U^Q#*PVH@vxRbTKgH-!sZj*z6Zkxv39zh2&GOG#ejdvgct)~@==}w{Yow!?k zjd-CraiaJ4AQCNS<%;nxl<9;Kmm#VH%sxKudVlCj_p;6*st3F6okLWoYoACeYmF`M zm}Lu<$o+g^1eEOi*?U7U?H*vi4N=>o9^}ERm9&T0)G9UAb)Z*?gJU*%4^^B-Z? zR;hWqN7WP_w7u24Xg4@>O2XT6G&GRnc-?5+Ar{{j)4Ousz9;5w^84(v zp=y%#nCOPGx*i&g?Qq(e@&UVRsG98mh*}u4fIHdyn3nkCf>`l+!p4&J;fnbLYDGJ& zY9-+l(J4VS5&Nfqo8q%zinuSrQz*tSQB1{Gyb7#tnCdS4cd*HfUt@H}{D33pq9yFViyXqIPqSkFLu7Im)&TpT zIHbRRwrUyu7XmrON|a*I`dDY+tE^FPz?6(I$g$KXJA*;Y?<&P;q<90^D`#VCcUCCa zgkXE50d3ZITWyUp@WJ2fBVk5LQ2}GL;TpvhW8g}J=2(OiiRDUUJb33c3ZoJXa%7qk z1$#EbV&IvvS;JMQ-zu^aV}*Q=$J-3_(OTC$mV2#L>~=vw@6lv(AQmpOBs%-1Hzo1( z;E)-_)ti)F6=6y$u0;j{Qz9qYI*m)z= z41aE~0{Le(F|TiAQ@$w3G*IMfDG;rqx+%eCGP+?Yqz(!0h-i0XDKg0AjBnQXhNze- zgV-h139|y@{9*$|(amlYOC3_B*gT?lWj~5-p}ADP$DAw|$;D0!A2eHq%rBT70;4K} zBX6)6c?nh2zcg-O6vaDHh3B$r(1-;#ai}5KuA8tl!F~ELgK*sIJe%DzQgsX*ZXhp~ zYU`}_MQUK6wi|?IKsCW=X3{`AC)?TYx(;E?{`7>SI4PTJvCJN!~Cg&&ySE!Dmqj?;S zh1mrn;Z-uW8KIJ5WY-eRC*;!JHb#^&Huz3DaW{{n5K+c>D#Jd+F@Z6L;LP4Hf}S2;dRU6VLT{zNmBQY#6~20p!wcK_}UFp=gOSMCe3> z&KB|7MaVpafVU=cx8asI5kU+#3gj^@vqT^Lo%r0m0T1XT4vV(CVUnABp)QrB}ig_)qT`-M+TzimfF$9&I7m&DK ztRBHxu9!C1Knww2Ys_dvm|c{|IK4aEn3k2{Z;2@ zm(B30j>&svI&9SMGjP_1X`lFO-j7#wB!C{|1HlzJ%%IMLVo|m{geL6GI&dCjuOf5* z!^lDI&mIv?&-Z8LXnp&mvf(+yA-JP^ESMthPn2Vj z1bcx_>FZm`dJ>-+HoH+xk9i6asgp{TqGt?j+oGBzw!2Y{&v_PYirs|exqjrEo)o=c<^$46}EDAn%ySTt_1 z40I&oD5m3*oD-oO!515Jl6`?JU7v{kl;bneoqc#?L%(1Zqt$BNS8UN}HP!#MwgnBH z98LeBA&L#kH)4#4-EukYUCiHtBAQb;!F(6oC!QAMIL?H~Y2C<~8{AOR514n{P?Gyc zxtdEBZ}G}CEV3Er;GbAtGuBdg#%)%M2mBXfvFLy7@@BO#;TM!gCta*DzalvEH}*)g z>Pq-sl7V&R4+{R1eT`t-U;PLkqBF9L7PYcOZ{*CM$OvO$plQrdCB=Xrb>tXT@W}De zlUndfijf6cz|$GPZfb!T=PdSk3j{YN_E8JkD-y|Y@WVGg3csen886O&Ty4vY=UVxU zJN~w4Jj=X;6DJ`Cfm10GKFuU6H^mCNvf_-v{qnf>rR@v5dgubB{94e~&=zmRCnhmG z3==&i(a1Lc+3k!oT8#L9SdE;AXSK2YV^m9|!^pS!X-@Xa7&SE^$;i1&rW6^RO2JM) zh>cD&inRpB=8WmcDItSO(~N1MAd?G;agiu4GyH`TorQ#a{=?%`j*&RS!DPf`G3Cl+ zd11-WnfWNgJP`3qcesh;Yc4=O)Y0hCLaIrTkuR6#Vi}G!B?x!8+2OIOy=oA}@rZgP zmm2vwNMjjbSYg*eePSx3_JGj6LdL9QG2_%E=U_@b#3(po)kYk`=t@=6P&Q&5+GCg? zwbz&0G90vG*9=C3#&=B^A&MQO1sF$CwlyMKQ?2M&n>W<4bgW)a2L)?AC0!}`!CdU6 zm>XnG{naov(6>g4wUHWRR<9(cQPj9A71L;=xZ&3<%C?L#hPL>UTQE*W9goUkuWyHQ(PK7Q>Kv=dxP&o+j9c$+(n{9uc- zk!h~%*ZH!H3qT#+UA<8LT_FE16o2D7jW~aY+>kFudvTFMb$%WOsd)*So;FO?;F+RC zT*iY3zNlr?ikv07+(?>8Rov(J!Ll|rEiy4)xj9wXssHNJS(A?zDv<}<&sA?R6)6@d zSJLq+jL8slF<4i^=@`yi;GGh)*L5koa9d4A7H69Fjt=Ijh~D5)T&uX}EgNf|qngqz zV3hXBoD?sq@~*Wkc8;16Nla6ETqhpa%f}7$m_EP-cIkpHc5AIKMZYnEeO&8HH-J~# zwd1HSx!@|nN^)+7|1!B*7jBH)lk01zDyA)h#gx94eK|}PspRat z;1aKxz(eJHQfOETp^l{_hqjU`Gt zv@h>D>Pw9wwkmCRuqVAKg4>1nSZ_ucR-bUg$WgZh`Dx&*^6tA;kUj7=wtudgUweB* zn8l0Q4Vq{LOjZ7qY{v@&E{b(m?=aZFP#kwg?C4Q#X<)c=*+Ecgus|{G5e4Pn#YQhx z^PG31scFT~)Cys>cGhww;~sX!QZ+sDUJ*HaFWa|N%__PN4M!6byjM=N;I=AJ_XjxZt%SqqeKY7X204+QNS2kGvoldZn3w7S;ROg~(E}UQ+ak_OC6PG4pbA3|Q1DdZ zxxqbRS_}PxgmhR~!UDt9LMehdL&~xt%z+I)e*HI#{$fi7<9nPN_Aj=Jb zdx_Il2rZi~_xw(G7aT&0SFs*F_Li_UzL|e6VWE$kOe|+xHmfQ63Ozgd!EjqjJgo8w zeLrCt-2@wa#M4Wz(zDv^WXN=@MNC)h&|pm1FE@gt;+!Je&N4NWn_P#?=g1M~Q5@&8 z6OB-g%{Y%O-ljT}-EeRV2NIH246kP^IQc3g-(7 zGcO}s6iLwe2^WV)rrqbIvW}OD zIwtuq*Y`GJxsET;9wla#Y+-(4Sxtk8wuFgmM0uFlWJVnyIP+Sxppd=At)tl|HWGty zD|@|cTU;iE&mTUgxjpqwdWi1CN72u18FMc1m8dzkrsk`VN*ti$wve?(J{l>V8D4+* z0K~12tA!cAv#!xYyF`h;R$q9XTr(^?M4dGy6Od@SPS*N*IreS{R@&b^4+k?oQxb2| zW{RwwV!k<8wb)yzk7r2_2tWD`y4T< zc`Mu{TETR;7+dChkY2XN-rlVNCqY_kz^o!|D54&q*5IqegK`W%#BSfNy8NW#M@KP? zAhIIS+%P6EnOL2sgCbt~!}_2Ztf{r#wd;Ei)JLdEdzog8dn{~ZVO$-e1+rZ+Jt2qh z5uyl-^^^QBbX1>4d<4Y7x+2Lp`S3+L7*?b;-}XFTjI1xnTE8fp3Kq;>l7<>z77Y<3 z6Ou(q`zu7d=DufYU)rI5*N67hqu~j-!_(lLG`%k9biX0!%x-m$X=w8{v4Z2ZW|np> z7_@J3C@lkAx7xy*xuvyNIJ#`g<|?Z{{2w=b$?7TOLWJ1tjH6h0?8-Y zsjJnbO0uYkCbGbaA{PP6qQ|x>NuN=B@DD7fW^Ah)U04Jy=Fd3^m6k6>gK71kss5GB z4ki~VJNWUHX<a2t_(8YA z79$5BR(I z4){$_h~tCoFEPj>6{#o_2W>chM#0{^Zk&>+*F>$-0f1tP5Q-pi1`!c$K@qLSJ`t(e z2FUH^Sz>c(Geuw{KpDl7I{w%>bGqOGt1wa+=}RoF6uz5fxE(ec>4I3XS?KsAMvDTe zU$`#X})nLqCHq)txw||T3s;5 zkupit*peKqu@*BSB|IjTl7T8WVM}Fli8@;|Bf_t$ZQzIBEI~?aHtpg0Cz>2mLDx-F zkuT%-+gdtUO_!Pi4dUrtYFgpLBFDr>B53>3$W66n=cu@!^(e&g{1$nOH%rNQEP`F~ zhA%DVkPy-zF=6NOID4fF-Ty=cJN$+(!+#jBzyS61VE+gXjTPDtq~>xY-V-mUQcJ7lJq51~qf!tDzvrc1%m{m{PYVONl-jije=h7GW~nzI0yH6_~T@CUpg?xly(G-w4ICy{W}(ZYgz_ zP4RfjkkMOV5#A0);3bv0OS2R+lp-W?Ht0ogLdLWOnp*-M2oR6~lq59jZSQLtpsxaD zZjVQ$7{|h5e9$|_$dM!Am-s{8w_`fy;xp!kp6xnPkS|nBABo1Zf6Ov%K1+n+I1b0~ zK0AA6pf5@9JjvRvK1b3gg1)kzmf9(SmT^-8bz>)vX;bWROjh~P`o zeMhl9?6}QmN>c2nc?0w+20oV0uuN1`_dOdn(3cG#I_D4cm8JhE+Qjw~PtpeO9ChM^ z55nv}v-<|3&i{q`;}bqdbkzSu+jx|mU)aAXlV4d(fzMO?+uu~c_InuJwXLm_$4;nM z?0-NV_G6!Q(4YN^Yg3$1$Kd0kc4*dGn7_U-&^oVuX@^p(7}z}pzClqs!Ntzg8`$Rs zz8rmofzvg@3T+H(evhXItD3lJXftYe6zQ6wv{{-sKtx18tq}&N)6O!m8HK*&#zN?8 z@GczSDfO(W@92V;wAr<@W}&OFP4P91X_(MdcRnd9r9i1eo9D2Z)H#b^sca=b!|725 zw!hGqGRtWW6~rqca#B*E+d(~Dv91oc_qt)nIAr8I87d!g5Umk!g?)=IB_lTUrfK0~ zT)*gC)V{0Or;iC;=1ht+un|Q*dqhdRflV&*6~Gv50$sN3Gp^vLQBHqu^qX#cVl!kB zEt_LCu=bO_EU!&#JQa&h8q`HJ!kXK=y2-L3Tx-)sklBhIS|j|W!Lv3rdW)Pa)$J?v zC&_%1xz%pi0_JyW-Hq$`5>VPhgF;TQ*p%=x?a(Lrn{3niuq-?jPgt z$%p2PY%TxV{`3#*n?-;6wajr1?e9o0{C`Nd6ltV)E|^W!XAM!3ivPdJC0gV~9T)M) zipebp$RIY>?aS7C_>6XDmWGdogfeZ?$W2XFxq)RI_qp^H23C9Am!+#@OUiu~H}q$; zF@t;5?eiCrUW0u|C^R%c3#tt4j^n=EXvI`58+xdLeRv!+3==fC&hACS@IEwHN3bUc z`7GvQeMR+J*J=^i`zL%!bvVIme5*N3euw>o=4bCK%W$6p`905)H1x=MQ2xOyQ;4=C+N!R_?Ra zPYk6GYa9C{kr2)x!U>x!B8L%HuH;WKu#124$f{2xtO~0*nSU16lxM0Am5;0OJ7@0Ih&Fz(l|#z+}J_ zz*N9Az&U{FfO7%o0nP`^0JH;U0%ieb13Cb60CNHJ0P_JC04@Y904xM70(1fv1C{`m z0=fX*fMtN?fQtYt04o6(11u$O@NyL{{Y+q*a^55a2w#CfZG9g z0CoZH1ndUv0o(<+8*mTcUcg?!eSm#{{eb%c4*(tnJOnrZI0$$c@Ce{hz+-?zfX4w( z01g9=0G7p z;56V2;CsLifFA)r0e%Mj7w|v8FMwYGzX5&+`~mnA@YkmM#_F~J2L#>|&~ic-5n4fLC83K6T|($mLYEP` zoRFW;DnbE5s|l?kw3bj0p>>4T6WT!N3PKwRZ6b6fp{odOCbWgnRzlkdT}@~^p=$_T zOK1lnM(8?1*Au#d(2ay{B6KsMe-OHb&`v_P61t7hKMCDV=ng`=2;E6&H=#X*?jm$I zp?e73OK2~l`v~nLw4c!ZgdQODAfbl{9Uyd&(8GitA@nGr#|RxF^f;j>2puMLgwT_O zo+9)#p=Ss^OXxX5&l7rq(2Im#BJ?t$e-V0x(5r-ABXpF|>xAAQ^d_OV2)#|{9YXIC zdXLcigpLvVfY678J|grnq2q*35IRZd6GER7`i#)$guWp3C84hf{hQF&g#JV58$#a_ zIz{L^LZ=CxA@n_=9|-+O=qExy6Z$Wq{}K9y(65AkBlJ6=KM4J)JB-y&H-7K`0l00| A7ytkO delta 53437 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 diff --git a/BIN/DNSINFO.S.txt b/BIN/DNSINFO.S.txt index 76b8997a..eb180e47 100644 --- a/BIN/DNSINFO.S.txt +++ b/BIN/DNSINFO.S.txt @@ -198,9 +198,11 @@ MSG1.D .AZ "Dynamic" MSG.USAGE .AS "Usage : Add a static entry, DNSINFO \r\n" .AZ " Dump DNS Cache, DNSINFO\r\n" *-------------------------------------- + .DUMMY + .OR 0 DS.START DST.IP .BS 4 -DS.END +DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/dnsinfo.s diff --git a/INC/NET.SMB.I.txt b/INC/NET.SMB.I.txt index 52ff4a6d..7606ad39 100644 --- a/INC/NET.SMB.I.txt +++ b/INC/NET.SMB.I.txt @@ -11,6 +11,12 @@ S.NETBIOS .EQ 4 S.SMB.H.PROTO .EQ 0 \xFF 'SMB' S.SMB.H.CMD .EQ 4 S.SMB.H.CMD.CLOSE .EQ $04 +S.SMB.H.CMD.FLUSH .EQ $05 +S.SMB.H.CMD.DELETE .EQ $06 +S.SMB.H.CMD.RENAME .EQ $07 + +S.SMB.H.CMD.SEEK .EQ $12 + S.SMB.H.CMD.READ.ANDX .EQ $2E S.SMB.H.CMD.WRITE.ANDX .EQ $2F S.SMB.H.CMD.TRANS2 .EQ $32 diff --git a/LIB/LIBCIFS.S.IO.txt b/LIB/LIBCIFS.S.IO.txt index 42e30dec..ab8cb480 100644 --- a/LIB/LIBCIFS.S.IO.txt +++ b/LIB/LIBCIFS.S.IO.txt @@ -9,17 +9,17 @@ CIFS2.ChMod *-------------------------------------- CIFS.FStat *-------------------------------------- -CIFS2.FStat - txa - ora #$80 - -* lda #MLI.E.BADCALL +CIFS2.FStat >DEBUG + lda #MLI.E.BADCALL sec rts *-------------------------------------- CIFS.Stat >STYA pPath resolved path jsr ClearSocket + + jsr GetGTX + jsr MakeTrans2Req ldx #0 @@ -31,14 +31,22 @@ CIFS.Stat >STYA pPath resolved path cpx #SMB.QueryPathInfo.Len bne .1 - jsr AppendPath + jsr ReqT2SetupPtr2 - lda #0 - sta (ZPReqPtr),y - iny + jsr AppendPathPtr2 - jsr SetT2ReqLenYA + tya + inc +1 for \0 + + clc + adc ZPReqLen + sta ZPReqLen + bcc .2 + + inc ZPReqLen+1 + +.2 jsr SetT2ReqLen jsr WriteSocket bcs .9 @@ -55,21 +63,25 @@ CIFS2.Stat jsr ReadSocket lda (ZPRespPtr),y beq .1 + lda hResp + >SYSCALL2 FreeMem + lda #MLI.E.FNOTFND bra .99 -.1 >PULLW ZPPtr2 Stat Buffer +.1 jsr GetRespDataOffset + jsr FileInfo2StatBuf + + >PULLW ZPPtr2 Stat Buffer inc pStack Skip Filename inc pStack - jsr GetRespDataOffset - jsr FileInfo2StatBuf jsr StatBuf2Ptr2 lda hResp >SYSCALL2 FreeMem - + stz CIFS.Status clc rts @@ -92,6 +104,8 @@ CIFS2.Stat jsr ReadSocket *-------------------------------------- CIFS.MKDir >STYA pPath resolved path + jsr GetGTX + jsr MakeTrans2Req ldx #0 @@ -130,7 +144,7 @@ CIFS2.MKDir jsr ReadSocket lda #MLI.E.DUPFILE sec - + .8 jsr FreeRespData stz CIFS.Status @@ -191,6 +205,8 @@ CIFS.ReadDir jsr GetPFD jsr ClearSocket + jsr GetGTX + ldy #S.FD.DIR.EPB lda (pFD),y beq .1 @@ -238,7 +254,7 @@ CIFS.ReadDir.Next dey lda (pFD),y - ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+7 Search ID + ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+7 Search ID sta (ZPReqPtr),y txa iny @@ -301,7 +317,7 @@ CIFS2.ReadDir jsr GetPFD beq .91 lda (ZPRespPtr),y - + ldy #S.FD.DIR.FC sta (pFD),y iny @@ -320,13 +336,13 @@ CIFS2.ReadDir jsr GetPFD >LDYA BufPtr ldx hBuf - + stz CIFS.Status clc rts - + .9 stz CIFS.Status - + jmp FreeRespData .90 cmp #E.NODATA @@ -531,30 +547,51 @@ CIFS.FOpen >STYA pPath resolved path cpx #SMB.ComCreate.H.Len bne .1 - phy save Y = LEN - - jsr GetPathLen - - ldy #S.NETBIOS+S.SMB.H+6 + jsr ReqSetupPtr2 + + jsr AppendPathPtr2 + + tya + + ldy #S.NETBIOS+S.SMB.H+6 NameLength sta (ZPReqPtr),y - ply - phy - - sta (ZPReqPtr),y - - iny Skip ByteCount - iny - - jsr AppendPath + inc +1 for \0 - lda #0 + ldy ByteCountOfs sta (ZPReqPtr),y - iny - pla + clc + adc ZPReqLen + sta ZPReqLen + bcc .2 + + inc ZPReqLen+1 - jsr SetReqLenYAtA +.2 lda #0 + ror + iny ByteCountOfs+1 + sta (ZPReqPtr),y + + jsr SetReqLen + + ldx #1 FILE_OPEN + + ldy #3 fopen flags + lda (pStack),y + bpl .3 O.CREATE + + ldx #3 FILE_OPEN_IF + +.3 bit #O.APPEND + bmi .4 + + ldx #5 FILE_OVERWRITE_IF + +.4 txa + + ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+7 CreateDisposition + sta (ZPReqPtr),y jsr WriteSocket bcs .9 @@ -576,7 +613,7 @@ CIFS2.FOpen jsr ReadSocket lda #MLI.E.DUPFILE sec bra .80 - + .8 >LDYAI S.FD.REG >SYSCALL2 GetMem bcs .99 @@ -595,7 +632,7 @@ CIFS2.FOpen jsr ReadSocket pha iny lda (ZPRespPtr),y - + ldy #S.FD.REG.REF+1 sta (pFD),y dey @@ -608,7 +645,7 @@ CIFS2.FOpen jsr ReadSocket >PUSHA lda (pStack),y >PUSHA - + >PUSHWZ mod txa hFD >PUSHA @@ -638,7 +675,7 @@ CIFS2.FOpen jsr ReadSocket CIFS.FClose jsr GetPFD jsr GetGtx - + ldx #S.SMB.H.CMD.CLOSE jsr RequestSetupX @@ -651,28 +688,22 @@ CIFS.FClose jsr GetPFD cpx #SMB.ComClose.H.Len bne .1 - phy save Y = LEN - + sty ZPReqLen + stz ZPReqLen+1 + ldy #S.FD.REG.REF lda (pFD),y pha iny lda (pFD),y - + ldy #S.NETBIOS+S.SMB.H+2 FileID sta (ZPReqPtr),y pla dey sta (ZPReqPtr),y - - ply - tya - - iny Skip ByteCount - iny - - jsr SetReqLenYAtA + jsr SetReqLen jsr WriteSocket bcs .9 @@ -696,12 +727,12 @@ CIFS2.FClose sta hFILE lda #MLI.E.DUPFILE sec bra .80 - + .8 lda hFILE jsr CIFS.CloseDir clc - + .80 jsr FreeRespData stz CIFS.Status @@ -731,11 +762,11 @@ CIFS2.FRead clc >RET 5 *-------------------------------------- -CIFS.FWrite ldy #4 +CIFS.FWrite ldy #4 hNod lda (pStack),y - + jsr GetPFD - + jsr GetGTX ldx #S.SMB.H.CMD.WRITE.ANDX @@ -750,38 +781,110 @@ CIFS.FWrite ldy #4 cpx #SMB.ComWrite.H.Len bne .1 - sty LenOfs + jsr ReqSetupPtr2 - iny - iny - - sty ZPReqLen - stz ZPReqLen+1 - ldy #S.FD.REG.REF lda (pFD),y pha iny lda (pFD),y - + ldy #S.NETBIOS+S.SMB.H+6 FileID sta (ZPReqPtr),y pla dey sta (ZPReqPtr),y + ldy #3 DataPtr HI + lda (pStack),y + sta ZPPtr1+1 + + dey DataPtr LO + lda (pStack),y + sta ZPPtr1 + + dey DataLen HI + lda (pStack),y + beq .5 + + lda #0 + ldx #1 write $100 + + bra .6 + +.5 dey DataLen LO + lda (pStack),y + ldx #0 write $0xx + +.6 pha + ldy #S.NETBIOS+S.SMB.H+21 DataLength + clc + adc #2 + sta (ZPReqPtr),y + + iny + + txa + adc #0 + sta (ZPReqPtr),y + + pla + pha + clc + adc ZPReqLen + sta ZPReqLen + + txa + adc ZPReqLen+1 + sta ZPReqLen+1 + + pla + pha + ldy ByteCountOfs + sta (ZPReqPtr),y + + txa + iny + sta (ZPReqPtr),y + + ldy #0 + plx + +.70 lda (ZPPtr1),y + sta (ZPPtr2),y + iny + dex + bne .70 + jsr SetReqLen jsr WriteSocket bcs .9 - jmp Sleep + ldy #1 DataLen HI + lda (pStack),y + beq .7 + + dec + sta (pStack),y + + ldy #3 DataPtr HI + lda (pStack),y + inc + sta (pStack),y + + bra .8 + +.7 lda #0 + sta (pStack) DataLen LO + +.8 jmp Sleep .9 >RET 5 *-------------------------------------- CIFS2.FWrite ldy #4 lda (pStack),y - + jsr ReadSocket bcs .9 @@ -794,12 +897,16 @@ CIFS2.FWrite ldy #4 lda #MLI.E.IO sec - + .8 jsr FreeRespData - stz CIFS.Status + ldy #1 + lda (pStack),y + ora (pStack) + clc + beq .90 - >RET 5 + jmp Sleep2 .9 cmp #E.NODATA bne .99 @@ -814,7 +921,8 @@ CIFS2.FWrite ldy #4 .98 lda #MLI.E.IO .99 sec - stz CIFS.Status + +.90 stz CIFS.Status >RET 5 *-------------------------------------- @@ -829,10 +937,8 @@ CIFS2.FEOF CIFS.Remove CIFS2.Remove CIFS.Rename -CIFS2.Rename -* lda #MLI.E.BADCALL - txa - ora #$80 +CIFS2.Rename >DEBUG + lda #MLI.E.BADCALL sec rts *-------------------------------------- diff --git a/LIB/LIBCIFS.S.txt b/LIB/LIBCIFS.S.txt index 3da4d59d..5e18b890 100644 --- a/LIB/LIBCIFS.S.txt +++ b/LIB/LIBCIFS.S.txt @@ -35,7 +35,7 @@ auxtype .BS 2 ZPRespPtr .BS 2 bFlag .BS 1 -LenOfs .BS 1 +ByteCountOfs .BS 1 ZS.END .ED *-------------------------------------- @@ -536,6 +536,7 @@ CIFS.CallBack bit CIFS.Status phy pha + ldy #S.PS.PID lda (pPS),y cmp CIFS.PID @@ -574,9 +575,7 @@ GetGTX lda MountTable+2 >STYA ZPCtxPtr rts *-------------------------------------- -MakeTrans2Req jsr GetGTX - - ldx #S.SMB.H.CMD.TRANS2 +MakeTrans2Req ldx #S.SMB.H.CMD.TRANS2 jsr RequestSetupX ldx #0 @@ -601,15 +600,13 @@ RequestSetupX phx >SYSCALL2 GetMemPtr >STYA ZPReqPtr - plx - ldy #0 .1 lda (ZPCtxPtr),y cpy #S.NETBIOS+S.SMB.H.CMD bne .2 - txa + pla .2 sta (ZPReqPtr),y iny @@ -618,13 +615,52 @@ RequestSetupX phx rts *-------------------------------------- -GetPathLen ldy #$ff - +ReqSetupPtr2 sty ByteCountOfs + + iny + iny +2 for ByteCount + +ReqT2SetupPtr2 sty ZPReqLen + stz ZPReqLen+1 + + tya + + clc + adc ZPReqPtr + sta ZPPtr2 + + lda ZPReqPtr+1 + adc #0 + sta ZPPtr2+1 + + rts +*-------------------------------------- +AppendPathPtr2 ldx #0 + + ldy #$ff + .1 iny lda (pPath),y - bne .1 - - tya + beq .4 + +.2 cmp #'/' + bne .3 + + lda #'\' + +.3 sta (ZPPtr2),y + tax + bra .1 + +.4 cpx #'\' + bne .5 + + dey + +.5 +* lda #0 + sta (ZPPtr2),y + rts *-------------------------------------- AppendPath ldx #0 @@ -654,21 +690,6 @@ AppendPath ldx #0 .5 rts *-------------------------------------- -SetReqLen lda ZPReqLen - sec - sbc LenOfs - - ldy LenOfs - sta (ZPReqPtr),y - - iny - - lda ZPReqLen+1 - sbc #0 - sta (ZPReqPtr),y - - bra SetReqLenNETBIOS -*-------------------------------------- * Y = LEN from S.NETBIOS.TYPE * A = Ptr to LEN Word *-------------------------------------- @@ -691,12 +712,12 @@ SetReqLenYAtA sty ZPReqLen iny lda #0 sta (ZPReqPtr),y - bra SetReqLenNETBIOS + bra SetReqLen *-------------------------------------- SetT2ReqLenYA sty ZPReqLen stz ZPReqLen+1 - tya +SetT2ReqLen lda ZPReqLen sec sbc #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+7 @@ -712,13 +733,13 @@ SetT2ReqLenYA sty ZPReqLen ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+2 sta (ZPReqPtr),y - -SetReqLenNETBIOS - lda ZPReqLen +*-------------------------------------- +SetReqLen lda ZPReqLen sec sbc #S.NETBIOS ldy #S.NETBIOS.LEN+2 sta (ZPReqPtr),y + lda ZPReqLen+1 sec sbc /S.NETBIOS @@ -733,7 +754,7 @@ Sleep ldy #S.PS.PID dec CIFS.Status - stz CIFS.Retries +Sleep2 stz CIFS.Retries lda #0 sec @@ -1008,16 +1029,16 @@ SMB.ComCreate.H .DA #24 WORD COUNT .BS 2 NameLength .HS 00000000 Flags .HS 00000000 RootDirectoryFID - .BS 4 DesiredAccess + .HS 00000010 DesiredAccess = GENERIC_ALL .HS 0000000000000000 AllocationSize .HS 00000000 ExtFileAttributes - .HS 00000000 ShareAccess - .BS 4 CreateDisposition + .HS 00000000 ShareAccess + .BS 4 CreateDisposition .HS 00000000 CreateOptions .HS 00000000 ImpersonationLevel .HS 00 SecurityFlags -SMB.ComCreate.H.Len .EQ *-SMB.ComCreate.H -* .BS 2 ByteCount +SMB.ComCreate.H.Len .EQ *-SMB.ComCreate.H +* .BS 2 ByteCount * .AZ "path\file" *-------------------------------------- SMB.ComClose.H .DA #3 WORD COUNT @@ -1026,6 +1047,27 @@ SMB.ComClose.H .DA #3 WORD COUNT .HS 0000 ByteCount SMB.ComClose.H.Len .EQ *-SMB.ComClose.H *-------------------------------------- +SMB.ComFlush.H .DA #1 WORD COUNT + .BS 2 FID + .HS 0000 ByteCount +SMB.ComFlush.H.Len .EQ *-SMB.ComFlush.H +*-------------------------------------- +SMB.ComDelete.H .DA #1 WORD COUNT + .HS 0000 SearchAttributes +SMB.ComDelete.H.Len .EQ *-SMB.ComDelete.H +* .BS 2 ByteCount +* .HS 04 BufferFormat +* .AZ "path\file" +*-------------------------------------- +SMB.ComRename.H .DA #1 WORD COUNT + .HS 0000 SearchAttributes +SMB.ComRename.H.Len .EQ *-SMB.ComRename.H +* .BS 2 ByteCount +* .HS 04 BufferFormat +* .AZ "oldpath" +* .HS 04 BufferFormat +* .AZ "newpath" +*-------------------------------------- SMB.ComRead.H .DA #10 WORD COUNT .HS FF000000 NO MORE CMD .BS 2 FID @@ -1042,11 +1084,11 @@ SMB.ComWrite.H .DA #12 WORD COUNT .BS 2 FID .BS 4 Offset .HS 00000000 Timeout - .HS 0001 WriteMode=WritethroughMode + .HS 0100 WriteMode=WritethroughMode .HS 0000 Remaining .HS 0000 Reserved .BS 2 DataLength - .BS 2 DataOffset + .DA S.SMB.H+SMB.ComWrite.H.Len DataOffset SMB.ComWrite.H.Len .EQ *-SMB.ComWrite.H * .BS 2 ByteCount * DATA..... diff --git a/SYS/KERNEL.S.PFT.txt b/SYS/KERNEL.S.PFT.txt index 3600ec3c..44a391b1 100644 --- a/SYS/KERNEL.S.PFT.txt +++ b/SYS/KERNEL.S.PFT.txt @@ -43,11 +43,15 @@ PFT.CheckPathYA >PUSHYA bra .8 -.3 lda K.Buf256,y path is "/FILTER/..." ? - cmp #'/' +.3 lda K.Buf256,y + beq .4 path is "/FILTER" ? + + cmp #'/' path is "/FILTER/..." ? bne .8 - lda Flt.Table.cbLO-1,x + iny + +.4 lda Flt.Table.cbLO-1,x sta .7+1 lda Flt.Table.cbHI-1,x @@ -57,9 +61,8 @@ PFT.CheckPathYA >PUSHYA pla discard JSR return @ pla + lda /K.Buf256 pass full path to handler - iny skip "/" -* ldy #K.Buf256 .6 ldx #$ff SELF MODIFIED SYSCALL # diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index f962701c..74f16b10 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -311,6 +311,7 @@ STDIO.Get1 >PUSHA >PUSHA inc read 1 byte >PUSHA + ldx #SYS.FRead jmp K.FRead */-------------------------------------- * # ungetc @@ -834,6 +835,7 @@ K.PrintF.1 sec format string->ptr2 >PUSHA >PUSHWI K.IOBuf >PUSHW PrintF.Cnt Writing to File/dev... + ldx #SYS.FWrite Needed by PFT jsr K.FWrite bcc .81