From 345bf1dfbaab6e654c828354f826c5f4ff6d0d9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 10 Sep 2018 17:07:26 +0200 Subject: [PATCH] Kernel 0.9.2 --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes LIB/LIBTCPIP.S.CFG.txt | 121 +++++++++++++++++++-------------- LIB/LIBTCPIP.S.DNS.txt | 143 +++++++++++++++++++-------------------- LIB/LIBTCPIP.S.txt | 16 ++--- SBIN/DHCPCLNT.S.txt | 1 + 6 files changed, 149 insertions(+), 132 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 25902993bf931b483c189725980073fbb86d2c29..eb47e53e837e07f33d9df9deaabb685d739b3011 100644 GIT binary patch delta 5871 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 S9yaVAPTxJ8(LbE|>;DGSKO43H delta 5796 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 diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 45b954f4267b47301b4ea78833af8105d5e85deb..e2d079c81cb5a4889763fc60a4ea5f10c52fb406 100644 GIT binary patch delta 19799 zcmZ`>2Y6h?)t#q(PhRbli?n^!yDiCUtz^qG2JE$(*H&M-0R{_M?v`XpfK38o!G&OA ziiro&35fzpXd$770HK5s2qlm}AcUGgeu|w?LIU_dcV^!1N+$X8;eAu?lshx`+;eAi z-g(vMomYLwd%9j;vS7x+5A-7ZIL>jG)0j2o;1lV=%N?nA4W{Qh=GPW5`d<-y`>C$- z64x}7mA6Eebk}!8I)YJ=^&fl64Az=s6}xL?dC9yPcRlVYN)aM2_`rA12R_Y};nEt~ zqQTZ^b1>3yQE*8#R?YI;`QOX6yowHOEZ7i^6-9$oq$$|dZ~=37%EaPORn_j!hWhpu zZQZP}i-#(-0xim;61^g+5f|Ok*mgk5wy%_#zE%9(3e6i>tu=ME20K?Y zu4oJ{?dw^;mx_gAtaJ^(y+SL|PU0_BXr;!SpfKwM`hLtPm1?4Ka6bQew4A%v;YhuGVt3K3;XT=GQjxWmjw2qZ_s8^6p@F{gV2g z-c7QxD1EYwOpxrp)5Z*=FVxu1=l z-nSzbtYK3xW@EkE2V+HLu`*_U7wP?dv0ybb4zMxizk~&A__p;uv6f(cQ*&^6->$PT z#9@|sDH|Ie>4}}xfkAeR3{^A#Wo+!&f)yd=x_na6ijb2T2O-_Of~xF{6;-jUL;T@u zw7}?qHjs1Dt9sawQOvC9|n8fBpIPu z$ThEzOR?V|8#8ZIN%Pngn&$v$WkKTz+xPB(5JZb#Qyh{ycE;D|PGUhK59lsmjj(b?J zj`wcsWz+9vW5K1-*pjL}OX{P{aUTmV;M9BX{TMe^1Sz}=n>Sd$ZD6>M84sX(?k`cj z>d=-^Kh(ro`;mSqrpfAt+YQN-nL{js$2l?~(s{R!!Iv>);PV86_UAhXzBklFw zEzJM0N?H<$i4;1GyH`Y6;1OOhuK8RyNX)jF~6OzkP4&K;x^Il)d-9FooTbGey7A#;h7fM?}x~`9QcU9xZ z`D;$Ve`CWVL!0|I#B)aRYZwW`C<2IJrJh`5Isj3o@RTLmhs$VByf`En0Y*#`7**cENCi~WjUi-V)n4Io#^}z7zU{|=Up}jR! z%iK|9M7wbYsfhsIVMaHqq?N2tSv+Ht&F`S}l}OK8#gA;X1+>-t@D^KcYB$ayfX&XW zHUgXYr%9eAdfLmi*1559?X-Ba9R=VT|S(Pz0U)VSdhLTeTO6Al^UwE?F<{Y{ttf zrsRx%OAQs%@on_Md5)#{lRAJNA)C3*CA})EfIWl#!tCc^h4t)YW(?H{mZJLk>{{l# z0ML%i*>W-5*6?bqx!ECR?xtyxXT~0y^}T8pj#lky>|amYu!{NjO+cg$3nk2x(5e z1R$_~eXOW>{)SOD6@Xd7>>yw^u(EZe10A!eK*KUKT*lIYiiK`ril%?h$~dVEnyqtM&=bi6!^ac~b1ZPfY}%v4jZ{4j2EDPLu*0D}7L&HNT3V zH4nwlnuj6%gh%MCDd6vKwPmFO%Cg)?xnr9x$Nm_8`yXdxJb%5-os#ziZ`x+d-3q8l zo(CzUDbm&uZ0c%+X@2V1O#@gN-!%PwXJOwk6OdAE0{b)AKRbI^;P<3*0skPfJ`8U$ zxQVpPywCE^?Kbxm<2m+y=6#+Y*oEo-Y>lEN1)xUG=`m4-eYh`Nm7s z?>}1JA$1gvpeT%4^ZtpXdQN#+8Vc7dP`^Zx#MHx6PQAK@RO zYxDkzB-g(nT_WxHp&9t(e=7D06uj4&t0e^Ac-U&ghI9nOVc$|-SurOq0GD&%0DU(22+4b?oV#LQ=I#tTkyxJES~ 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 F{|_d05J3O{ delta 19813 zcmaKU2Yg(`_4T~n_vEL2l5Ayz&{YufbZOy*&@mL_yO9Ta_7#SnLFp6nc2O2 ztM~4$KKh=npHPyUe)R`>5k3@~4?B(7Gp?Rx3tZ($dU!Y`*Rfzx0i%D4*zce1C@o1z zu~>Oa^NP;e_U86LNM!xnw578}xv^qhg(b66AAZJDWYcp>=FPm|1K%Sb_%v6##mr`{ z{E5;NS=maydcY{PR%sJ~6`@EC^S1Ew1`N-F)mmL^C=hC^T~*&12(@1rs0&6a_t)(i z>>lXrVcyon?7HBERCyjNY~wEu7zN|)Qn-7KD78A&7-*?)JxFD$nbi?ZWUf&3W1zY2 z5}BRf2~E(}+)#iNXb5!FUC_|qy=`>K&RyY=J8?}ax)qyo#^{kqT{)ubiV5YG?3)Imq11ug0J8ZYj~ZMe7J}tsUAmICdGSUR23E zJ=*rrP|uF=SZDW^{_sVziQ-ZNhv_L!)D@-2<`_h=bKu2iL>kbE;V0cE0d>EjO!A3wE>zItPYp zyL-0FlA!>SSk9Sz=k;2)wu2wMUh|LlYbdi~&sg{>sd2^tCDg4O8tJ`^Qsyz|Af>cz z-8vc`yOffuS;mmIyhz5ToMRwjARwE)Qi|efA5}1QSsKT%y9_|RP(;UJzA#NHz0cMdG_7 zErHsG#=xrZp0m-lQCP}#^^~GWGp>Os>sqR@n?^N@v%ow)ynWAs(eAUtksY#jq(3~! z%n3Fzwx^r9u9sS!Ae!`1o3oj9gVJt3Gj4=P-%b3>8#V9v&1|AKjK1BHSO-@TC z)~&Hh=512Ab-PMBi5Yi5PWCt0#Bl$f1HFBtJ>4U{lN3t%CYv~ObR-g3Sjns-s5jCb z37|`NqMqk27MRcb`879bv&Qd6zr#H&;~qBA-P@C3s*HQ5ScF;kK~7IkB(Q+F?q?Hy zg9*jSTn|9D<6A7S07JH$nMbL}ZkG9=)N&+@DKkk&;~_RN&Rh@6A(19i7W=m9={#n9 z2U4wL@g6)vt$ddS7V@6{9yarPY$DJUima&IzoIt89FMZVB2FFhejf(F{Gf5}2zU1e zYWs&q!_4>rs^>n2>XnBno8Nx3<~sF0HT-M>Wij@2e(jFueGl`l06Id++^ ztE3gpax??AZLOUhZ7nSGXJWj^e?D!ztzV#hjCWuWGk%HoJ#T1m(xgGc#>K2Rl__di z#;-KtibAV8)gpBLnp8YzQU&8JlJy%cP?IQYIkr$>hTke-^H|33rU`p{sxVmp9WwU2 z8r<~*&)7X>Rm}Rm5&<9l2V`1*jL(@r;d|bnwZKWDaB3Bd?R!s+#gTio{+g2BK=j{2 zHgi-1;A*bBLhgRNh)JgBIiqnQuFFgb%uh}47x7kR4 zk=2AOp+7U4$^EX3?#td)vNsB@t?As*ULOdujFzd=&GFSzmbX>)Ujn#Tjkc*ZjCQnS zu93C;9h2Ls1%Sc?Z)F*wsrAfGRi$fEL;QxVc58g?)Y8T}YGu8wVs22o_{K@a2)#1v zR3#4RZqu}E+Wt->gP+bOmbTPw2u6a{L!;{h9l_SRw$)YhnfnZ6gm}p|`>dqRC|J_X zPu^xPF4%(4Sv^X$L~rf&t#!?s>hc;R_mymNN~qv)Yz`$G*->e?z2~~$MlX1 z+=Ied=P=~~VhcpsgE`KP?(OE+2$}iYZ5sbv9 z18FB4O+KckL*XNQ@vyyM{JXMI6KIo~G#^!f@%xM_3A3-*ARI9B{2*$1xrU@f_hV%I zPB@0RshIIYvd-g)t6!83gqkQ2t{b<+B0 z6g%{Wd#KB*$JWnLQEolvFCZ4k-tkMI_bxH?<{N4p-W21|)m|6utPfx$n(LV7SH~TP zUmtHA-eT7<|8HQQoty2hJZAhB+IW9=d^5jIX3nqlyaUAs`XYh(`w=G$^`8~)jVxo{ z-z#4cpTVSy_YcD4_M$&BUNvejaQ{j5YCbdnEa$%WJz1pWFQQ0ZI;>*-HCC+n1K|-0 zvp+oEiu)Ul;75!PZF0D?{2w20t@uU08<4uCEAltz-F$s1vO9Nz6LvI5d!_b>{ zO|Cy(P%m~?WN^nWd*OHz!PKd%YX)$g-<0UMNbIeNt1DR|y!ccz94Mb^sq(}>q^HEn z2o8ifQzs{2jGSpm>Xyq?6q-}boHM5sgYTLJ;okHp{Ga473o{fpUAR9yFg&)0d~BqL zn3_m36E(q0B>0yjXW3hq!|N(?vW~(x^DnBkzpB-4mdlF1CK856*&oqADGxn^)f1oVId~lGT zBi;IE%t*$+@ICL}8ecwphC3O9S`AHo|KZv*cJJK(DuusL3NK*Bm!$Al$5j|U;Tddc zn>{vNv+*+^V6EL2i>idqx-F`+Vc4!=t|Z$O#j&Di*s#D%o8nF!$u_lxnhu*FKu)yy zYaUxgMvARG($>`(S>Ay2VeP!ro%?ApqVQk4C~VWp&| z&775<;T%79?aS7+>9$W&YzhDHug0{$AIs2}Bo!5$&RPOQGt*{_cuKI<3Ex@P8GM;f z&jfM1(WmE*ccXYyTc|U16;ZI_6LW7tqM!>zqWHwTJxG+KkDzwtM^@CUlBp_1T?a@G zWkwTNPFNKQwloJr2c!Aoo1M+s${+RV<=Qs>N1tA(ZRe(6FV*_^T)*zi1bUAa7sOSR z9LnCoyZw5W*3ZB0*E2H*(12o3E~WD7GxHDf2O&lq;xG91+y%oZMrMIIL^1W54RQ-xxn5Q_r2d3pE69AT1>6p|eQ7WGtk7`I(iT&F{<9 zOR{#$-r$%5;aXtj>h?fObEp#mRn{KKTeT*z`S1E6?ISB&U7iK>;(aVmGq%tEDJ0+Xnl_n1u*H)p8yt=9BPK^vr>o z*U4SjF%d-AK-Iyb&vmBQ}yYn57x2Fqf(u9 z4^C6Z{ZQ1bi}tq;MZ_5fGag2>>ED*%C3>#GtnU!6!zloEv12GO{}FhyN}?F~tw%IB ze>Ye6twfL@PaD)}2)r8{KE(`zwtN(=MQO|LLxvxLf`}{OvpSpTzxod1PniEP{?1yv zH^W4DFxCwTh!7||@;@QcXNV{u=P7<^o}QiZG^9$9l=CB=ldpTLFfo~h06--h!2N9I zvzSt#yJ^ybH8Gw;TJH1Yjd6y;^Ik}Hr&=$lDvMb5izF$l5rAI^S;W!+_o+THU#Jey z&w%o=dkEf7^_RH`3ifBe$=bVGLiJa45B5^fSiiOtCx)F>q54{80sgDW z>w1foU$>4HCw0GmeS32U0%XAb=z3L20`@xv?2qQOx3#n|=i9RLbZ*#D-`TNYA2Z*P z+ULE?`wFn50QM_$1L}+LCVH$#&WQq?Kf+`L`$Y_$a0@Lya{#GVdF=5{~is95(_dfA_kJ4m&(3F4kmKAv-CFUtX-w(`N9eiuD@Jb zw%8KswA+G$J19hgnnI8W7cth?6WIGO}iQdAXp8 zBi(#wiJm`8mNZjkXUfv}tx!dq$)7FJ%gbkJ0?}L{+AKadSlt#{|MmLL+PNaRkeTVS zT2ThiD#h;ZQvRmeODK~&M+!O`BK zf$l!^#X>Yf*aU~C8Gen7L;z2n5_>XbO6}Hd?cHPJ+tn$#Co7iR&=)&9pOr0Ao7)w` zUX&xg|NjoZ^K(U!V1Hlts5o-Qk|7`zJshvdlOhNR210fmLmxXq|J=2x4?e2$aBS-u z-UY(PI#aGjbi~|&)k3jozna(sa$;u=^2#N;UmNB--_gs)chXW65IAE*x(`gaj;_|g zsy1efVmUd+XgLw%=G;YFQ)e*H7*Sw=8E2t{`)s6(P)VX&*sqFZ08mZV%?$)a{;C;J zA<)@35FXk!#%37jLPEjU_~%RXd>=4V?Bu7e2~e!AIaCY0#OE%B#^a=M;o(2%MxF(P z6jeJiRqgx>_!Ud_yqWvtJ|`iv?*M;nsqUS9A)506ACV@ir^M_EAZGzGDXH#Dcy~dP zbKC>CL>^NW?PzOgsPAAFSW&0K&~@zERU8ywrp+_&+9al={Vi2^FYzSAh7Y39Ep zI(E$wF?4iVN(U0NzY!ZYSH?Fd^&3+x=T83kay{DxKt-5Dj+JpY+2|hr(Q@5A`(AwZ z0ZJWrz`(Rd2kZekU@pL`!~r9~Z5>rM#U+pjk&QbB36mV?ig_QNHeA7;9n1xMl{ii$ z3GRh|AgKEZ!ss(Rcva@UY0*fhRO5b;*w0T1ke)T zE$=a2wnESC1hNvff&yF-JhPsFN@_5PWwoB7zKKdXPe%zgA#d_=vIV|XisBD!wEIs^ z1GI`xf`!ccJibj{!q_L63s`IFG{}3Ae+bor0A0epye!>|0p!Kfe;PH*s_^70Nl)pSBs}*1hDc*i`ENyrptD8B3h>4Im;>NRlJe%;vVp93_|iH= z-tY3@G9$Mu9q344Uh-2Q;#mf85smW+!*w9h#KjllMgbxNI9~=dV#xqP6uPhsfPh9e_vRj1QGN{u|fob$`l7N?H{w|3q}MKwShONaKn@n(YWP#8o=r z8UEEr$?nYm1z?K)$*-%|3&;N@r!cAcZxZz%*^!OyF?+D&{|XEgVZJZo1Su`-w)W2E zHUJ&xm$FN$5&{P1VUmDMkOMU30~boybLgB^3NWPvw~YrIbXOLLQRdcVRgjB92XPvc zZ}8y;J+B4~sX(Yumv~W2@S-?ssb*dG3K*iaR~ z2&EdE0d+cX`NRSzs@9GHDwJi;;yI1F|KxPZ7RKC|tUxgm7*M(jWjYlr1~3v`jKp*L zJ$z@Q?n~e~4Im4a>8Gm)`Hi|eFNcUuOpcgrn3(*hxH^%QMK@3~>jm41R={?OB~MhR zWIYAV>B^7whptq1)KXXCoTpJpO&0OWChVETd}R{|k`i&Xg`eA`r(}cZ6ny~8DWrqw z6w+(hf^vRGlRm$6jOTK+slFLhg#8MMIrD4z@|Aj? zR>wE5)LrTIDz`!AmN)YKEA`ohP0CJH%+su9lGwF@A6ExMt60uT{>n-{yKxm7%xNJ` zT?A0EwIP;9pm80uRx3&1K3h@P)iy;O%H*^QVJp`lKevM>)bWH-SYm~gG>`zDDDCN* zA`OMASk79Kmt`wh&yTIr^KtJqwrDn@l69(@WEk&F_+EM%|9q8Ra^mSQCIajty03Qz zs?f;JV=0@dGyu^8tlMrBpS^`HweXu;bl=GcC58|+i~EN?nxG1dUX*c!=`IT~2Hvf* zdZI_b(k|F0r|r=eJ*8s1ny!6HPYm*z+BM9vLyNldemOe60gd0XN(WOg80$jm5O=KB zOT5EM`$f#!sg%d<(-GdV8o}`>=`=>eL^>I}=<8WzXxhn)v+>ot`?z|}+9PMZ*mlWH zoTJVb&ZWP*nejE$HNUROE$%$(NDs5dRYx%9dnrFXqGs9ovL6K(@K0Ck`Q!UYQF)JP zKgzidNF5R!FH62qOmR5yi{i%+lN|WP)7GWu(rI$YfnWB&9QftZfggkl?klF7f#qK* z9rz*DElh-~P}aJd%1Q@*&Gc#*<@{^KB5$CjOrXm;9GAc$!F!!t?FzC{ND%BmKs=$A z_4R65-+;3I8|AXTNiFM}l}T@rCM~>`-`%Dcq~Au0NS5q&)XKbr{Jzgt^bP)5n_hV8 zH)9HzN0hU?Q_a4+kfqSq-Kc5aqm;N;DRCbX9rx3e6yWFq)&93+`#DE>#Jw??0<{gD4PanzJk+&l_fxn~hEPx3FH>%hnNQ2Mihjgj>Cg+UXAoDfp!@p8KjvR_=tbJIydVS$ z;5ptD!nfz?o0E^@f5|V%nkT-~h6hytYf9qy2^tb?NSm z-^x1iF8)q*@wB&9dc2ES??@w2sI@`#ZND&%S;?I5#!IViXZ=22S|XZQ>9RlYw6%I^ z%O6n*!xcBhpJYPZ6n~atr z`;h+%X(@k`X)sRSM_gN{=dS!%8Ykrwtq!z@cyy5df11MM>fV3)-=psrRKl!J)s24j z_`vZQYV*ez8~n(6{qXpI$+;_(0n~|okdS=p7w~z+%oZ=$%2K~nTSQp^_w{kgDKH0o zG{c!>s)mz9+WpFcWelf$a{I$=$(cCilo=b#;6+oShn&btHEi-^xVU;87lCoy$*dVR zV&!RTuuKRc%!0i-nX()n78IU<5(d<;&s9E8yG8^jt46s36pE>8LJ1k0#d8y^o~r`&Yj80jv5M~`6u_jftgNgGR4%Nn3{=h!V6Kt7a4pVFh{ytUt$odooY9`P&lbWf&l#sAR0mfzoRl;+lnvUH3=rxX~&jv(P! z1TpQ*UC%%1H(W~^;?2c$bT`Hl6MEAWPmGp4GH9GN4k}CBWOU&4MzW74_yZ#9XT2t4 zRCNl@%-2C30H9@nLZGFs(yaZH}fTPX5w&$VkHawLUdid1^OrVH@r`CWas&aUXb_Ka8e(8B*cv0QKbDg zfAtTBa~v12XhmhbE47I}^1;yqPGiRKn!*6tz+8%8h-Fg;KryHexWF#Nm>BsK371JE zmEd_l{w5+uYBLvz2C@hLh5EF7~aQqA>A^!k&! z1OcUHDlP)ULwApiPoccyv*<-@&p+q^lq)$8_pnH8^N~Lpwsyh^F**ttjf2gt@LJYC z73Z;#dB9SL8(aDX3u&uBCa0}#!Zr14kxJ3OT`;NS^d<4oB^x+^&bQB{v;GrvRQsh?Wj zG%LC@6fsYV#^3(TaxDS1z_Qa6Ktr@=>UgSRr=F z!|k732gUa>Ba_s@1uOOB%8{c*-zw!w4-kE;loy4w-h9Zx_D9+zyj3#C3#7^6^D;V^fgLIHS7pckd7UJIZmMd(K!UR0pSVKaSe+ma|<3#K_eWp znR6(-+{2upEu=4y8MKx_TBx;@9Z(H#2u}9~l?v!r!7z$*sm61myc&MEE-5z~zJF3z zR5xj?8~8_y9qv*W-21eZ3c^Cn(M8fwd5gJKpOlm01T_&Iu_Ip^4dbdGE>IPduO9(` zEQJwLmZ|nP1etre`n)b-@y>!Pr|CgcgJy-h_Be$M_;9?VAR7rMYc$}yuTcwVRb0DC zbBhI2Hcq$8aXGRIb}{5ou60C(FIZ2^R} zU3SjX$3JRJa?d_fD&^iG=WtX2&K|cjs~@cp35LhE1HAny!<96M#_;xGb5oM15%h+l z$Xq)UHSCdZ3P(`XF-pc4T>BVxW*Covl#$PpdSsr>vl^28nczCa7zJ6{9`zB!1?v7B z-rA7l(az-$J~_kb0k9T=CMY4!C(VdzOK}`I7x2fLlCp{8 zP|GU554rbGHh{38^FV^gt=qzM$^Akl^CGFg>tf-Bg4MO#yGMfSFQO4PFM+Jl5oTVh z{$8g3UM~KQv($sy#1L?JQE?5>JopWX<`)r~x2~k2#gxX!L&}THXO62Vm=O0~Kyi>k zQ?Eg$h$AW+Sn9Qj0uN6X$d$l_%mTU5-8&AD0*MneG{R3@FS}BFgBFS&4_yiawX`Ix z_4DPak#QpoZry}_&|*fca5KL9ZXxAVq!ZoAu;tFWRnAJuR3UJsTd;))LcWOLvvX*7ku3&k0@i&o_PJD>-p4dRP1dgms zdiykb9@q-T25%$+cqv5e*v}L@_H*TG5nc;di?hf#MAm`P9eu+Q+>sB`0iuZ@ng}`T zSJX$aHt6H8(N@-58Xx+b?zjC$31hdbJb%LSjd`kuk#Kl*cmOx!(E@;}(?k#~M(;0j^z#0y z@hAH1IcwfWyR>LQiG4su`VdAEt~2)N!S%Os4DwEh({rulE_;f?=5i1$Fn zi~|+sv5Mqvug&U;{Y1mPU3n$B&PUGvGWohH?e{!A#rWhAt;+FLZmXv(5dy1wrY!9Q zl`0+lY!Ag;nWd0V@~al%}M0q3#QDnhhT+*wVy zvnGl=Gw1OLs%j_kp--*6W!C%{ax@m;oZPoC`m{&BcO&AhgPyxBQU}ZM(ou)O3Ko-) zY-7%RR&X*uxWsfldTFX?eg{)vX)ygjkqDtlpdW^4}TT4Lx z3VWT4*4o4ev2IN4+Uz;#%E{!kT4&I_v(qx|c76lN6xvJ$egv7TfH8s5Z zB1g4-o;D#MNrihp&8{iW4$^^BqDVnJ#d0hn_j5Sa=Cb9V!auyok+&rQhQ#i`tK$S}ywmpA&rx6r^djBEcU;Ma^b~wS4emM*)sm@NA%fj#-4ufwd(fk*@{- zM#Q?udsToDT5A54{KJbKzEl7ax?~2A;BC>4obD(M;i;g26m`d$arM(@Ty|r8Bn6^P z7$2hv!{=|7bI}cSX{}W83jD_^`I^z|~(6F`CPrMovI$k_@nH2^PV zY=mNX94Ze>fI2qGaLIjIJa~)&aQEqP?L^`XB1S!D;NIGMhHLibDMsrEkM8Qn_1|vT zM>(V|XwBEdU)k^Q&gxakh_S**b{#q3u<>^X?XFWzfJJicW~#3;RUd$ zHbfJ6k*1*u$S55C>C)jBo}rPWrPXwqa8%rRsUt(%eD$IG-Sez&)R)lB0DNR_0LE#1 zNosF&onTJ8!~E4zyR*yOs+!p*o5|iTnxQ+NXlBZL_CD3hLY597Nef(DZxRL%{YHjO+0Y(Umz;li}p#(kcu=DIFlx!{{ZFrY!}L` zlIA+JWL$)f`7fR%C)g@}xQFz(M2JhZ04r6SIhXNQuW)3S09Z2r!AbSj)WzxnVA9AP zxy)f(7(Mh9y(K<62Ou-v;eG8x*c|B@FaaWF0&EiK%)W-NywZ_112B_i9oG1j+md~$ z7FT*yGtYJW(3K81wt)2V8UBjvWgo2@P=M%W#FGj)(oay(Pr{hMjRfS&Z{h88W_b8O z`3z?T;3CD-7GR>H2@C*525^X297c;U6X1}nm;Fs1JmknKJ|e#wccNJOUE<4uLHwXj zWOxX?24Tefd-&c%j=c1HAyWa&`;eS_KR*0AM^%?iN_Zr)EW$D$5`8=o$7Q5R%D0uWs9}6ZyAZ$10%=u;L?<6no&0XRlm73i zPCgo~$BgeoiGm;SiSilwI2NP1w%GeaEPCSp|0CIo_ZgwVB#7J6#!7xn3Kds8D@&QrDTnwxq?3_w!{Y^|9$?^$Xvg~! zzZK(D`LZ(jPmq@W)2Rl31*z7nG@rzAXVz=rt)5Hvx>@P#(lwI9!e%Y@(RCPUSHBI 0 CFG.EtcFiles >LDYAI 256 >SYSCALL GetMem - bcc .1 - rts + bcs .9 + + >STYA ZPTmpPtr1 + stx CFG.hBuf1 -.1 >STYA ZPTmpPtr1 - stx CFG.hBuf - - >PUSHW L.HOSTNAME - >PUSHBI 2 - >LDYA L.MSG.CFG - >SYSCALL printf + >LDYA L.HOSTNAME + jsr CFG.Read.PrintF jsr CFG.Read.HOSTNAME @@ -63,10 +60,8 @@ CFG.EtcFiles >LDYAI 256 sta IPCFG+S.IPCFG.HOSTNAME+8 stx IPCFG+S.IPCFG.HOSTNAME+9 -.4 >PUSHW L.TCPIP.CONF - >PUSHBI 2 - >LDYA L.MSG.CFG - >SYSCALL printf +.4 >LDYA L.TCPIP.CONF + jsr CFG.Read.PrintF jsr CFG.Read.TCPIP.CONF @@ -76,20 +71,24 @@ CFG.EtcFiles >LDYAI 256 lda #S.IPCFG.STATUS.OK sta IPCFG+S.IPCFG.STATUS -.5 >PUSHW L.HOSTS - >PUSHBI 2 - >LDYA L.MSG.CFG - >SYSCALL printf +.5 >LDYA L.HOSTS + jsr CFG.Read.PrintF jsr CFG.Read.HOSTS jsr SET.IPCFG.I - lda CFG.hBuf + lda CFG.hBuf1 >SYSCALL freemem .9 rts *-------------------------------------- +CFG.Read.PrintF >PUSHYA + >PUSHBI 2 + >LDYA L.MSG.CFG + >SYSCALL printf + rts +*-------------------------------------- CFG.Read.HOSTNAME >LDYA L.HOSTNAME jsr CFG.Read.Open @@ -252,13 +251,28 @@ CFG.Read.dnsdomain sta IPCFG+S.IPCFG.DOMAIN,y .8 rts *-------------------------------------- - -*-------------------------------------- -CFG.Read.HOSTS >LDYA L.HOSTS +CFG.Read.HOSTS stz CFG.hBuf2 + stz CFG.hBuf3 + + >LDYA L.HOSTS jsr CFG.Read.Open jsr CFG.Read.Result bcs .9 + + >LDYAI 256 + >SYSCALL GetMem + bcs .9 + + >STYA ZPTmpPtr2 + stx CFG.hBuf2 + >LDYAI 256 + >SYSCALL GetMem + bcs .9 + + >STYA ZPTmpPtr3 + stx CFG.hBuf3 + .1 jsr CFG.Read.GetS bcs .8 @@ -274,10 +288,10 @@ CFG.Read.HOSTS >LDYA L.HOSTS bcc .1 less than 5 parameters, ignore beq .2 no alias - >LDYA L.CFG.ALIAS + >LDYA ZPTmpPtr3 jsr CFG.DNS.Add -.2 >LDYA L.CFG.HOSTNAME +.2 >LDYA ZPTmpPtr2 jsr CFG.DNS.Add bra .1 @@ -285,11 +299,21 @@ CFG.Read.HOSTS >LDYA L.HOSTS .8 clc .HS B0 BCS .9 sec - jmp CFG.Read.Close + + php + pha + lda CFG.hBuf3 + beq .90 + >SYSCALL freemem +.90 lda CFG.hBuf2 + beq .91 + >SYSCALL freemem + +.91 jmp CFG.Read.Close2 *-------------------------------------- CFG.Read.HOSTS.Scan - >PUSHW L.CFG.ALIAS - >PUSHW L.CFG.HOSTNAME + >PUSHW ZPTmpPtr3 + >PUSHW ZPTmpPtr2 ldx #3 @@ -313,28 +337,35 @@ CFG.Read.HOSTS.Scan *-------------------------------------- CFG.DNS.ADD >STYA ZPTmpPtr1 - >LDYA L.CFG.IP - >STYA ZPTmpPtr2 - - >PUSHYA - >PUSHW ZPTmpPtr1 - jsr DNS.Add - >PUSHW ZPTmpPtr1 ldy #3 -.1 lda (ZPTmpPtr2),y +.1 lda CFG.IP,y >PUSHA dey bpl .1 + >PUSHBI 6 >LDYA L.MSG.DNS.ADD - bcc .8 - >LDYA L.MSG.DNS.ERR -.8 >PUSHBI 2 >SYSCALL printf - + + >LDYA L.CFG.IP + + >PUSHYA + >PUSHW ZPTmpPtr1 + jsr DNS.Add +*-------------------------------------- +CFG.Read.Result bcc .1 + >PUSHA + >PUSHBI 1 + >LDYA L.MSG.CFG.KO + >SYSCALL printf + sec + rts + +.1 >LDYA L.MSG.CFG.OK + >SYSCALL puts rts *-------------------------------------- CFG.Read.Open stz CFG.hCfgFile @@ -360,6 +391,8 @@ CFG.Read.Open stz CFG.hCfgFile *-------------------------------------- CFG.Read.Close php pha + +CFG.Read.Close2 lda CFG.hCfgPath beq .1 >SYSCALL FreeMem @@ -372,18 +405,6 @@ CFG.Read.Close php plp rts *-------------------------------------- -CFG.Read.Result bcc .1 - >PUSHA - >PUSHBI 1 - >LDYA L.MSG.CFG.KO - >SYSCALL printf - sec - rts - -.1 >LDYA L.MSG.CFG.OK - >SYSCALL puts - rts -*-------------------------------------- CFG.Read.GetS >PUSHWI 255 >PUSHW ZPTmpPtr1 lda CFG.hCfgFile diff --git a/LIB/LIBTCPIP.S.DNS.txt b/LIB/LIBTCPIP.S.DNS.txt index c3380cb0..27137604 100644 --- a/LIB/LIBTCPIP.S.DNS.txt +++ b/LIB/LIBTCPIP.S.DNS.txt @@ -54,24 +54,12 @@ DNS.Query.I jsr DNS.FIND.BY.NAME rts *-------------------------------------- DNS.REQUEST lda hDNSSocket1 - bne .10 - lda #ERR.DNS.ERROR - sec - rts + beq .99 -.10 jsr DNS.CSTR2DNS - - ldx #0 - ldy #DNS.MSG.NAME-DNS.MSG + jsr DNS.CSTR2DNS Y=DNS string len+0 + bcs .99 -.1 lda DNS.Hostname,x - sta DNS.MSG,y - beq .2 - inx iny - bne .1 - -.2 iny lda /S.DNS.QTYPE.A sta DNS.MSG,y iny @@ -106,22 +94,80 @@ DNS.REQUEST lda hDNSSocket1 jsr DNS.ADD.I bcs .9 - >PUSHB hDNSSocket1 - >PUSHW L.DNS.MSG - >PUSHW DNS.MSG.LEN - jsr SKT.Send + lda hDNSSocket1 + jsr DNS.REQUEST.SEND + bcs .99 lda hDNSSocket2 - beq .3 + beq .8 - >PUSHB hDNSSocket2 - >PUSHW L.DNS.MSG - >PUSHW DNS.MSG.LEN + jsr DNS.REQUEST.SEND jsr SKT.Send - -.3 lda #ERR.DNS.PENDING + bcc .8 + +.99 lda #ERR.DNS.ERROR .9 sec rts + +.8 lda #ERR.DNS.PENDING + sec + rts +*-------------------------------------- +DNS.REQUEST.SEND + >PUSHA + >PUSHW L.DNS.MSG + >PUSHW DNS.MSG.LEN + jmp SKT.Send +*-------------------------------------- +DNS.CSTR2DNS lda (ZPPtrDNS) + beq .9 + + >LDYA ZPPtrDNS + >SYSCALL strlen + + tax + bne .9 + + cpy #K.DNS.MAXLEN-1 + bcs .9 + + lda #0 Ending 0 + sta DNS.MSG.NAME+1,y + + phy save len for later + + ldx #0 + dey + +.1 lda (ZPPtrDNS),y + and #$7f + cmp #'.' + beq .2 + + cmp #'A' + bcc .10 + cmp #'Z'+1 + bcs .10 + adc #$20 + +.10 inx + bra .3 + +.2 txa + ldx #0 + +.3 sta DNS.MSG.NAME+1,y + dey + bpl .1 + + stx DNS.MSG.NAME + + ply Get back Len + clc + rts + +.9 sec + rts */-------------------------------------- * # DNS.Add * Add a static DNS record @@ -487,53 +533,6 @@ DNS.DecodeMsg sta hFrameIn clc rts *-------------------------------------- -DNS.CSTR2DNS lda (ZPPtrDNS) - beq .9 - - >LDYA ZPPtrDNS - >SYSCALL strlen - - tax - bne .9 - - cpy #K.DNS.MAXLEN-1 - bcs .9 - - lda #0 Ending 0 - sta DNS.HostName+1,y - - ldx #0 - dey - -.1 lda (ZPPtrDNS),y - and #$7f - cmp #'.' - beq .2 - - cmp #'A' - bcc .10 - cmp #'Z'+1 - bcs .10 - adc #$20 - -.10 inx - bra .3 - -.2 txa - ldx #0 - -.3 sta DNS.HostName+1,y - dey - bpl .1 - - stx DNS.HostName - - clc - rts - -.9 sec - rts -*-------------------------------------- MAN SAVE /A2OSX.SRC/LIB/LIBTCPIP.S.DNS LOAD /A2OSX.SRC/LIB/LIBTCPIP.S diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index 05d1ad0b..46b8aead 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -91,14 +91,11 @@ L.MSG.CFG .DA MSG.CFG L.MSG.CFG.KO .DA MSG.CFG.KO L.MSG.CFG.OK .DA MSG.CFG.OK L.MSG.DNS.ADD .DA MSG.DNS.ADD -L.MSG.DNS.ERR .DA MSG.DNS.ERR L.HOSTNAME .DA HOSTNAME L.TCPIP.CONF .DA TCPIP.CONF L.HOSTS .DA HOSTS L.IPCFG .DA IPCFG L.CFG.IP .DA CFG.IP -L.CFG.HOSTNAME .DA CFG.HOSTNAME -L.CFG.ALIAS .DA CFG.ALIAS L.CFG.HOSTS.SScanF .DA CFG.HOSTS.SScanF L.CFG.Keywords .DA CFG.Keywords J.CFG.Keywords .DA CFG.Read.address @@ -264,8 +261,7 @@ MSG.DEV.OK .AZ "TCPIPD:Bound To Device : %s\r\n" MSG.CFG .AZ "TCPIPD:Reading %s..." MSG.CFG.KO .AZ "Failed!!! [%h]\r\n" MSG.CFG.OK .AZ "OK." -MSG.DNS.ADD .AZ "Added static host %d.%d.%d.%d %s\r\n" -MSG.DNS.ERR .AZ "***ERROR adding static host %d.%d.%d.%d %s\r\n" +MSG.DNS.ADD .AZ " - Adding static host %d.%d.%d.%d %s..." *-------------------------------------- HOSTNAME .AZ "${A2OSX}ETC/HOSTNAME" TCPIP.CONF .AZ "${A2OSX}ETC/TCPIP.CONF" @@ -278,12 +274,12 @@ CFG.Keywords >PSTR "address" >PSTR "nameserver" >PSTR "dnsdomain" .DA #0 -CFG.hBuf .BS 1 +CFG.hBuf1 .BS 1 +CFG.hBuf2 .BS 1 +CFG.hBuf3 .BS 1 CFG.hCfgPath .BS 1 CFG.hCfgFile .BS 1 CFG.IP .BS 4 -CFG.HostName .BS K.DNS.MAXLEN+1 -CFG.Alias .BS K.DNS.MAXLEN+1 CFG.HOSTS.SScanF .AZ "%d.%d.%d.%d %s %s" *-------------------------------------- FD.SSOCK .BS 1 S.FD.HANDLER @@ -334,7 +330,6 @@ DNS.SOCKET.SP .DA 0 Dynamic DNS.SOCKET.DA .BS 4 DNS.SOCKET.DP .DA UDP.PORT.DNS *-------------------------------------- -DNS.MSG.LEN .BS 2 DNS.MSG DNS.MSG.ID .BS 2 .DA /S.DNS.F.RD Flags=query @@ -343,6 +338,8 @@ DNS.MSG.ID .BS 2 .BS 6 ANCOUNT,NSCOUNT,ARCOUNT DNS.MSG.NAME .BS K.DNS.MAXLEN+6 *-------------------------------------- +DNS.MSG.LEN .BS 2 +*-------------------------------------- FRM.QUEUE.Tail .BS 1 FRM.QUEUE.Head .BS 1 FRM.QUEUE.hMem .BS K.FRMQUEUE.SIZE @@ -356,7 +353,6 @@ hSocketTable .BS 1 DYNPORT.LAST .DA K.DYNPORT.START hDNSSocket1 .BS 1 hDNSSocket2 .BS 1 -DNS.HostName .BS K.DNS.MAXLEN+1 DNS.TmpCache .BS S.DNSCACHE ARP.TmpCache .BS S.ARP SKT.Template .BS S.SOCKET diff --git a/SBIN/DHCPCLNT.S.txt b/SBIN/DHCPCLNT.S.txt index 9d179cdd..b534e4c2 100644 --- a/SBIN/DHCPCLNT.S.txt +++ b/SBIN/DHCPCLNT.S.txt @@ -102,6 +102,7 @@ CS.INIT >LDYA L.LIBTCPIP .98 >LDYA L.MSG.CFG.ND bra .90 .99 >LDYA L.MSG.CFG.NA + .90 >SYSCALL puts lda #0 sec