From 4986ce68c6f6ce5620f9f565ae2688dafab9f3cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 10 Oct 2018 17:39:22 +0200 Subject: [PATCH] Kernel 0.9.2 --- .Docs/LIBTCPIP.md | 38 +++++++------- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/NETSTAT.S.txt | 110 +++++++++++++++++++++++++++++---------- BIN/TELNET.S.txt | 72 ++++++++++++------------- INC/LIBTCPIP.I.txt | 28 +++++----- LIB/LIBTCPIP.S.CFG.txt | 2 +- LIB/LIBTCPIP.S.SKT.txt | 76 +++++++++++++-------------- LIB/LIBTCPIP.S.txt | 10 ++-- SBIN/TELNETD.S.txt | 71 +++++++++++++++++-------- 10 files changed, 242 insertions(+), 165 deletions(-) diff --git a/.Docs/LIBTCPIP.md b/.Docs/LIBTCPIP.md index 5c310bfe..237749f6 100644 --- a/.Docs/LIBTCPIP.md +++ b/.Docs/LIBTCPIP.md @@ -52,7 +52,7 @@ **Out:** Y,A = PTR to DNS.CACHE -# SKT.Socket +# Socket Create a new socket ## C @@ -67,7 +67,7 @@ Create a new socket CC: A = hSOCKET CS: A = EC -# SKT.bind +# Bind bind a name to a socket ## C @@ -82,7 +82,7 @@ bind a name to a socket CC: A = hSOCKET CS: A = EC -# SKT.connect +# Connect Iinitiate a connection on a socket ## C @@ -97,7 +97,7 @@ Iinitiate a connection on a socket CC: A = hSOCKET CS: A = EC -# SKT.listen +# Listen Listen for connections on a socket ## C @@ -110,7 +110,7 @@ Listen for connections on a socket **Out:** CS: A = EC -# SKT.Accept +# Accept Accept a connection on a socket ## C @@ -123,19 +123,19 @@ Accept a connection on a socket **Out:** A = hSocket -# SKT.Close +# Shutdown Close socket ## C -`int close(int fd);` +`int shutdown(int fd);` ## ASM **In:** `lda fd` -`>LIBCALL hLIBTCPIP,LIBTCPIP.close` +`>LIBCALL hLIBTCPIP,LIBTCPIP.shutdown` **Out:** -# SKT.Read (STREAM) +# Read (STREAM) ## C `int skt.read(hFD fd, void *buf, int count);` @@ -150,7 +150,7 @@ Close socket CC: Y,A = bytes read CS: A = EC -# SKT.Write (STREAM) +# Write (STREAM) ## C `int skt.write(hFD fd, const void *buf, int count);` @@ -165,11 +165,13 @@ CS: A = EC CC: Y,A = bytes written CS: A = EC -# SKT.Recv (RAW,DGRAM,SEQPACKET) +# Recv (RAW,DGRAM,SEQPACKET) -# SKT.RecvFrom (RAW,DGRAM,SEQPACKET) -hMem recv(hFD fd); -hMem recvfrom(hFD fd, struct sockaddr *addr); +# RecvFrom (RAW,DGRAM,SEQPACKET) + +## C +`hMem recv(hFD fd);` +`hMem recvfrom(hFD fd, struct sockaddr *addr);` ## ASM **In:** @@ -180,9 +182,9 @@ hMem recvfrom(hFD fd, struct sockaddr *addr); CC: A = hMem CS: A = EC -# SKT.Send (RAW,DGRAM,SEQPACKET) +# Send (RAW,DGRAM,SEQPACKET) -# SKT.SendTo (RAW,DGRAM,SEQPACKET) +# SendTo (RAW,DGRAM,SEQPACKET) ## C `int skt.send(hFD fd, const void *buf, int count);` @@ -199,11 +201,11 @@ CS: A = EC CC: Y,A = bytes written CS: A = EC -# SKT.GetTable +# GetTable Get socket table ## C -`void * skt.gettable();` +`void * gettable();` ## ASM **In:** diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 746a3e7875f541e583371c3dc42a7be6424cf1b4..ede7c628a9cc133f4b8b280da660e1d750f5fb49 100644 GIT binary patch delta 8205 zcmZuWdq7lG-uK*@;i)j7$N&S}nE?e+90+lQaSp^oP~I<5Qpb#Mr9>?;x7UIuu9-uS z*%5`hPGOF6X+}%a!oVk3=2&gJYqlw7xrH{Xo7qdh-??{q)c5fR=bqpD{9fmG?=&hE`8aPLz{$;p`H=yBdd0s;=K?R-36SsczhqxDt-^vw#%l%Gm>)`w1J@^bGl z%P7h%iZ5Nc^pWbi&GA{q>+VZrRB#A2s!VFC4v=L1D(xug_BsEF(dPc1uL9Jf4rtYDYYgar=1tx(Fi6gj@>Lrp5 zNl8q|eIxLBkJZ#wKQA&QGpeK!L`n71$3>%)42){}2)wk~eVFNbX0Ce12!b+XKen<~ z)IL3t2{nx1C{x)=@i^0y7v=vQ2^T^*?Q7oz?_gc{;<9uc^Gj72U!&XslqJi<$#HS~8k5w@8d#G86J3 z`E>_UWiAE1K@W{0kxrV-cvZVK{|_L+{{K(&pClAnwgag>m$^63??7Rscqdq~cPCi! zFzMcjLeL}R?>i9=Sw31=Sy`TxVN7r>nbw9Tq^zLUtQoTFH!J4G13p_$aI>82r0dlFR+sjms(nsUos8 zK07l$lj@4oGm%e>;LHAqPGF`!DWb`Qb~Fh+MNI8zGJ2ZSw4-?R4B6g};!r&~(GEdc zN4{xC5%udwq!q?zX5C*t`#Bo%D18E>d3H1|JtHHls4Szfpg`;fQTjxN+c27-B&)nM zi#nrG5|G4jjid2%v$BfP^KvV)+;{`SZDg?ILpUpFFDxi4DJ(B@6C~&v?ysW-++R|d zo|%zeS|$ld)HB*mPFXzS{pSXI5Qcun=1YG!;3fJ>IFT~{^&3we>8dljkBR&tGsdx`k* zuxukqJmS#Hq?`wT6Vkv#S#2kThaj|)_jwfKu>;~Bv6EcqQTXgONo{2Nh~3bkcvob~hLn6FNig%$1#FJIKP$b$#n(1OCcDlSqoD}yu`JV1Nh`$wf zyXg|-lPC%R_rF2%t$^J_YU#3k7*fUHZb9zkYA63=1)n;2^6OOn?zMqQdm})QJ5DG2_fciGNb;C z6afYLJ6V1LY0y7N(+Q-i_@_jlSz0zqY63Kv3t(-~=OT97h(4$muZxngpH;hj0ZWvZN192xr~s?D*o6W*VO8gdR_Qe2*7g$uja%AEct39O^?lq#&R7 zfnpExQy)^#^c?0Z$&~njEkWc{dyU}I-8e6OJeA8td6R;E5avT3>xWwLC4??x$b0=L zdeYbtKAISCr4-Ent7sFL6W^l%FC{SHe#A?uP*3xB6Q>ts6qXm1iC3r?+qh&VTiBzohx<}n;qgad@F@4hB+F@IQ=d_|EEu+jBRqG^(`u4Qj?r$evs<|6h^aGjvycA zP>}p8HVUfY$sgp23w9a%dK#R!J2!AbBe!LP(b8zNA;7 zg37*YRdl~#Y=6zzj!o@_ruG_B`xB-!%I_fJg0X#(vAx{XUVrFr6{}E=-C~SIuBldE zirGe#%h~YaAu*{!GIn`zy$Nl}SU7BSO_tQySk9!kM_7_^+k?iorAA?mWJ;a1BxCM` zUS;lF#0iTz$g)4b(nJ2ToV|Y;2%E>H$J$H!z{3_(pACusM?G)1d}*>VmP@A28%Krj zk8ZJ;EKQ~@GqEKFLt3WdHY0AEh1*QnhPXqqc3&E_X_IoGsg?YtmYp~Q<4wvtZKK7lx6HuY_1NZd-0I1%mvxj| z2dNu_H}j~aQka2XtmN6lGsx$)Y$V*G=~~59SQ75Y)#GPkXDFol*%a&yv^4;o9O#zZ zkx$Z}!$YNEIg2eH(L&06PUei}gu;H+{ z?#RQY2gh|(s%pkGRyMO=&;JNY?^Eas$WiG|E*tY=rJ2Uai#wiZmvPB)DzoK0N&872 z>^T!EFwK%e7X2ijUzCceuD(7i1N{W!zH67{&L6n=$#XrM{*SH!I1#m8=1MOwxXqhr{f;=x2F|-|}P6c;mnteR?(Nw#?@G*9Ii$=G7j3LWlJFRQLbnTMT$y%Ag%O)4sIbdoUFty$? z*?d}M7#Lcwm^$XPj>8>uTXn!=Fn3)x4Gx%Gh22+7)~_Ja8*&ZLBs)J4>6R zE!9?OtF;W%sp5nX&bpmuquf%Xg#(9jLYUMsJ8QI711Ia=aH;V!^dY9@!XC#Zmr**= zK;xCD{R90h*U$03jsaR3e6X}`>hXo>f5mYg8rwM1vzHC2f6K-g%zTVvpx?KdwfXw& z?M@JjxmzzTX5Pm!U}e7eO5;*oyCieo-V7A65=D%g!rL*h_mXEbYxV4olrRwz1}d{g z3mLlu4xutHuX(U;>8hGl41I0kIIifim318XWiN}_=+z{3A3F<|q|XBclR3L2J)dJ> z>@J!M-wn!2veNSzj4{O_j{rI&GB8bX49pvxh=5TgFSqnyC%eM05boFbO=p}x@LF(8 z8t0*fT!*XG@-corts|WV9BwrYT!2!B=Cw=_Z(k|1&SNw8Z5%%lYQkLyr27aP?0p_{ z>ynzig!AMJ*oK`->GyETxO4+$^$=OjDsvmna^n9k8$M#BxNrOlJ0%fekCW)A zFWzNi^n!7g!{{6bg?E#u1)I|@O#}_T(Er~y!VXH3JEgVzSrxpZJD<$DE9dIh7%h(* zZH)C>nro^J3mU7MRv5WGdixmO=kRi4%L3?`n^k6;2VclV8usg|~P z^ZtupUu;|;{;%Ra9Sd65h+uxq;ib5xqOT{=dE3kf97IEsaC3h2hoUN_#u zPT7rjp-*vd%m9Y5UD(M&ajF~@lFuMA9Sc;oZ(vX)tE$~Yo?oF*>)ycmV2hWq2j}m_ zuIc+9$hq+bb_UA#jcwZlSBoMxa37ekNV2JVv1rqwyWuj0e2!?<)x}_ya7Ls# zgN1$!H2u`7K5Erz%)K>(k9AadD_bf!pOn`Zbu6a+6fEs}n>y>aTp6n=)sR*;gAS8goSq~;2o;T%!mBp&<=X&s@nYo zJ*}8j@1V}#kA?k`^Y@Q(K8Q11EwG5qgxHzZ6#p_7R`R#q&{sCUr{yx3Zz85~i zU1#BJdtAw?+BdP~O}x3*j$=J7b__tW{3$8ikF^H6Byy)&S5JnEqcBI~nd6TG+0gfrR# zxhk?NTNa&p94fp0I4(|e27_TPZreP6&#^L)rzPeo|tIcQdf>*sJ|ww*mSyCY3iqs{3^uVMBsQ`Mfs&AW4CtUtQen7J`a z%++^r=OGd>M;2E9dWwAtcR5+o!PTVLBZN~B-U7=hES$vEg_e^vrB2Y4I*#FBX3Me^ zdV_Jmc*}N=pVpG|oYFOx9z+)_R54 zp~wQ+WpwCnp)6H?2#-;mMC5J_>r;OdjTi6rc+SMVrrEE#rTJOwqYKjgs+pwC&_1GF zrzO9?yDc|0V8ei>lj8)9`|`f20b6C=_6T}?@4uvv=9JyszctNYTPM;E{AIt)`FY+= zE~hh!6QU)aWd?X>xN@Laem2$)F2S0r!K17%D-{2ew?` z8LQH9!4(Jt+#Nnpl0O-+Ds#();ZX$44ss74XOy@3K(ggqR+XMk>8YhQB>or8wW-Bf zCBnv87l0#%NIFE44rUnX14xoGPo@qBbEv{6e+Cl{sCCas z@RlCaa=~oiS@Kq=>>Gd9{R5q}25&_y-rXfrv*l~y@$T*nIXd{E%CQ<1Q3+x@ z2d4WuK66!Yy;{g&>J@>L0*0*n!6m0Ik}b#NUj86M4KkWjXioKM$*%3PkN_#CsOK7d z#e^njkI5tJdvumw9lTOY{4ZYIE{g5diA#^Tz{v8R_yBoh^P&iMN>X9N`439P{EvVa zw*Q;|fTj80?B6+=6XM*VfdkDDq)AnfCRG|5>Vhbs?VQ31QzgogSNz@$Fja5n8M5)X zJYt-idJ2^cS)|J=(30YCuLripE1Ms^ zj3LV(@-Bh4(|T|~?&X8NBi@7Z^y2SQen^>+nw&Z}by4brshd+@O+A>p%jjYBF@BP| zFnURJb#zU%J$j~Tsp$dZLq>~9Gpl!&+V}}xZ+zZZV|dKqFx)VxXO_+^pZVa-RWloB zZX-JfB=E zkoaj~x&_`DAw@{Yb$RqGn0xKg+#8$bV)7oJdLs#5kZw%JLK5!3CrroxzGwG^p|Z!4 zgqx;gGl09MgGMX=3O9?aTP)N1!ECC$L#I(+UU4{|I2Ow^N%R90=4FneRuRi993`#r zF->{Lw%(F~xforuj9aAR{SRm0mP!Ca>OM&<``Bt3ydNAu>~^%Q*7&`yPMvse872?zz8v zPSvHVDz>UB)_RO#CWXa#Z#=~;#fJ#bjfqMvJ_LAdoU7czWQGlQJM>V=I}K&1KmUNLFUT)QDR?4wDkOyZl~B>4BfYiMb&8eU_wG8R+NYo%glgPmW@4DfutNu0 z#wb-cLa2kd*2|ceKa*LY^bY4S2gU=tF0@hs&)lYZ)sdr$bF$GBW$SW zp@+ZaZ>tQBq_QSGUyzzRDK{#ANx$|v)t%$sLiVxKoInhJ^@Xq>vJ z{1xN7lIJ)KDt4eS&p6i}R9qYt^xQyM@v_nihv7IXFm9kQ&p5Agg}j_N9TgZqP?&FY zEHyrwViN|+&~Qb@vhuRkQbh5wRIqNKT(T`Fm)9B}N3n?mr4x-61#@3qWR$F-X*0PR z>YqvB4n*bVMM#!~+IPnl_% zsk!-iMS1eNbd-0&Q^}-UyNg)Lr|>CrYD)eTlk9mM4B>@n#l?-)# zN8(3Q+Bx8{m1wjE)KAIFO-)J7OplU|R$;zOCZ$$Oim_DqTqxK|!d`x{zhXf_);hb` zXI_8)q}=rqdmQCAzdsw3C#%OqQ%WO7>HShasXbBSD3||u5~q4wzc@?bu@vXaXn`sD zf8tySY1>Fxz@q+&3$jzDrpvn%LnW8N>TQHCUEE*c$wDy4<^B1Nh3F{d5-HxL{bWxz z)@7MJUY}P`n4gn6B_%B_FDfNN&OkKfw;V<{5#OX0{iPCOWvGs$l&_-WVXyU*%8qfr zUbp*YS3+eI2_bL5jwTXJ-h|JZ$Y}Bw{M7@ps|#LVVyvFF+_>CG`TYgn+(CTFCfKwC%{Rj*5&^in14G*a zv_K+#8__JkVwrJnS#`xT%ZROzCXf+i8!Qq?gi{lyHn`i|FiRpW@YV+?+YL?9Xb*fUjXs3S60yMV5_2#3n~}6aq8UTm z4>Qde=mDsfh!yroqz%p?aXN^hL>vNkC-H{CJBb(hNO~Sk{t8ofV!(%CITFt!&yp$? zww%Jd z?7@-KIh=X;mvH_#@pk>nK0%TVemPDO$$5x8ffM`}OgTX`~$VF&4frb2Qu$&-) zx^FOK?7X>oIR!bXIayJYQm5w1eJ+Ly`0qc-Fq1Mev61}^9-bfp--GtkxN-O4(rKb558&St`3-{4AoF+N&!FZXFy{=$^>29l3~t0j*m{Np6+d#! zQ76` zYFb{sw92rUPUq;TP8V!`N=WHKY&pUFE}|vQP}@a<5?!7e6r|b>I-R0p>=uEpPlb7D z4xw{&jO;CN5d6@Ei*kcMBya8z(v7Ge3~3S>0;Syueh=8tO@a@fC4<+`pTgIkRoxfd z%*wXp<{WuoDKSmtEwm|E83F3JHXjgsCrlMZcFYaeM7tHzFhGF-{;bF zfj3`csSaO*5F%+duhYve17w#*eRB;gEuz_oU7R@()vBz|{5uRBG1v`qpuLC=2uSC< zI#srN0&OX2DCx4$4JEz?v!Y`P-#iz7DWXGE4tG|SWe|qjlnKGbw2%9F{$NR;r&%Gm zc1(d3=eT1o-t2@hyx8&!~xw%ZLl?pFz(W;>w<`jMN zG=1|zee)aov#OtQ#}9DL2ClhS-&}p<(M(#Y8eGSXBzx;BcW1(4nv^ChI!ZV#oxPINqbGTPVBI-3>eu!yqPwjYPL z7tzlzKxf5l%1CQo7iM^azRN=7-+s?qOjq?5%5+WNdiyi+m(SL3(3|S@>yvmB$0IB! z@J)KYiRYV=c?)5WjI_G3AtSAfrCn#R9Mu`bYkD~eS0Va7GmPk9LKz)EnqcmICfK=2 zU#q%Sw+-Gdqr($Y_*&J2rvC0$na1<%t&#OZ*;gWW6|@wZd!;n`tQAN@i8!8rzeJ$h z$HV0^Is_Y8ibgpGNz4N#a99#=^GB$k<9M5wr3&>J)SLT&84-P+e{wWTU-2fJbdb{C zQ`o`;#;nkFoa6sl(uI|x-dh^Cl{B9N>taOYc{sb64norRfC-5A8P!taTk2j@QcwRl z{YyN07qKdkwh{-pEY$lY25FC6*b}i<1v_q(ufcQyl7C}-oRjbbCYv~z{TnkqcLFcX z)zxLDu%4vwT{o{Vw!3UpBo>?}wMK*5Z_74s$-gV)-{rgzBp0FA?R8Bp50=8?a$1Mo zJNb7e2wwU5~!;uHG`JQOTo0;|+bwYw9=ERqEC1TJ>7>U)0U&z3Rj2W9qZ&uhm!7H`Nr?>dT6Lta*!sK*n@Ojf?bW z#Q=MiY`vp4>sUp{>MJ!@vG!06mp*K}(l^V#ifc93g^0Fm-EP)Ldpkz3S*asXCKgZFx0m))Z?sT4OqO^@jd^_=dsOaP0HVVn=x*@ zbAI>{msa|vAvxIjqH53D?g|!TOC*LB3^*+a2U{)*zIIfu&Fx9)JZlq_!^od{DH?O zbdY-w_N2^G3K7V5L-Iq0b-B*BWRyCYdcg1rJto%%$qjl0{=c$X4?!0P;Gzv zac0#;`(R~%z&fC75d6)|pYaXfeL_b>AK)e&;%r0lNZb*mqm_3 zNyx5S#hKpulkOW&bzgs~D^TshT%Si5w!3?4<@8t{=?rTdgE=hN@`)&_DQ1s8Cobo0 zLx!}j;BBsKjv7;5w;Zm0N>`9sFy}F2Is6%|jU%p`Mk{%kcZbd2Zn>+{`hUp4EcAa;M_K&@l}~Ec(%{u8;T@k-ZKb3 z?M8XvdF0`*v{M8L1}0FEhom@AF%1rsDFfgPwlBC;rd&T{Pl9-WA8h4qw9X*-Ld9a` z#>2r11p|Z1mEqwZB?u$iid0 z@lk>SrfL*HpnOv~%i|osp!t|o`F;^?{Qj?C>6^-cI2&&|!lPLkmi4397kS++WPQSm zpYpem^(k)AEcC?SUS1bL=?kojOmo7e> zt$0KZ=PJfCM<%!{&ydY8(=L_k$S}F!MzV=4r=Fr-uim5q^>Ow0Y9~#gCRQ_`xSH0f zeGTjz>efJ3402T0b!xK{R#$7VR9_EXi4J2`9qcM~{g38w>G1u~t*~9r`hv}DWm!>e zw^^XW7iqzx?MicFr3O=YA4|3T9^x;PR&>cqF8u`0hD)u%tQcaqlRRH$t-)3IGFvsQ zsD0|KHIx;@>?4Z;@$A`lNpcb)IhiJSHCz%Xv#RY<-w4J)9Lsu;vmeegYp9D*}TYHYc>Zzc0G%JpI zw!VWGRjz^)#-K=SxP;5aNiZCoMp~A@;K=bNeacJY=t6>%C8FVyK_@uD=dFsrdkp-S zg3m@m7wz7!2n2J)pv*%m`Y1X4g~H`t<;S!$rE;REXf~65P4lkiW6d`0X-$uY(fVoi z+Cr^C`>J-Gb^u1KgG{G12fuNp-~R^NFa{-|!+{Nte!#JOg^>?w`=)OuyI14ea;cR1 zu;p?oC1qucJwfJ!(wq5HhU6;{ebpyQIB3(dl+D`~T;++?so*KsDK(xNr( z)#A6u!TvtPy;{kiXpxDaz=m?ExkVlz4u7?{NKyy3B##c5?$G`pD8+Cjl-7InN1wDP zCE_YPK!%X?mGLF5*=_A)8cZYADN^i9$wO-(W+ z%}-jN^g+_mq@A1#=gxhdG%IXwm@%w0%o>)YH|l3|FL4|6+6gBn1an{Wt2q<5P*NbgTitTTIvle8;fb-!Voe_fc6Z#@rr)%J;0?&$pMW!(h3%RNP(4SX8G`Qtss~c%cN3KDInXvo zp^lS2!+Al`mfI*x@nqyR;+2Bxfn}8`oo6Go^$K>jR`6&~=Nn3pjR;-2lhE|;K8Bs6 z#M_M+DoEwH+L)G>np2ovAm3lhcSCsJ6XfX-reyzFIF1VPatQHW{!fje#vOf9khGa{by4~B7`B1+9l t$;Z2And-CpjC{}ml^;7 diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index a8cc2af2c2cd3e228d7e95ec7726553507bbc8d6..6fa4bfbe4cfd86977e24f87f71b9ca2d5e9727c6 100644 GIT binary patch delta 9868 zcmZ`x&O}Yp3T{_Nyxsl*}Ov_31rDG;b{vj$pQ;Yc9UH|@VSIQf_af_1Z+!K z(?D1^gpI81fxqd>urb+m$|9C!4CH8xr+k?!<(z?H zm{vZ+RtA6Uh%7JHWuH1`4+%MI3XxhvsrRpvw^a4OLH0sfL0{5Dl#KhgL=1D}7fUa{C(-wKcnI6TL0XZm{IQ z;#Er`fpz|)w8J}VHb^EuFV{@Yx9c5F3#xxfhZhyn*pM(OB)z-*Kkrh#Qq_r=;p=)a= zaXU0GjpS;YG%G@5U$tqz6h_)LuhoLM28O|YCE)a?RSoVyLm+yneZ#gy*-Wsnh2i!M z+Y@CGcOYE1WGVigHWQrdNXZ4ALtAzgkUf_S#cQOiVR%E!c95>2|F?nhS{Pp6-JWoJ zK)eo_=UorO3&N`+%N7R`HM=^y65Tyr@vi2sc5ub$0x`NkBviM;A9bU=(I&rdB}`pU zJVjzrsH^#gmN*!jk!5pl!aWb{Eyyhr^|_ZOS|dF-M)&|}BMf)9#=yQwS!+!q=#Kc@ z!BCwq2vRHdw#T5njWR8)UfkBX0gRiIJjEO68MNcnV0{|nsU2*}hG1K7yrmP2o#T_b zaFU~&O2IJu#EQkdC{xI0%Fub|9C!w5q z#NV{q-vpMCWm=sUZ*?@NwdPbf<_P?XgMr1-x^N)uZfa@15gc>V$Yb?aYs-ZShd+&u z!($sDcS#y~Z1@`OCS4Y4Y0%#=4K*PS6mTmZci4@~?sxmJ z0~-nKcuehBRj+hlgLeE(?Fcli<}(&9T! zFBe$o` zmV)IuXjQN0fO~P|W)GS2p{A9n%-0xA^h#H)T)7rxGd4p_ zi5keX2*@1mqA3bRR`SYoVqwfCL~e)&I?*N%atW+iI$Eq7 z5=KgOnz5|Ox(|gc#lGvpVBRZ?PSGvUn+?=`&MB5<^stv&mY0`J8VgU?owyk2<3^^K zhrg)_>|3E~C}~kkTjF)Cu^!0WhE(PkydZ8zbIiU83C$hdiL%Kx=)b;2N|tJEuJ0hb zo>;<-gLdE`xgXr~2=x|@ouqN8*6vB9TdQ<4cNm6SU>IF^0;F9q+=FH;?nVZsd&tmI zZOM|o>C=q+6n{1o#9MKoWxwiHaS!{E5nkc}&PY1Q13=k#$yWtpss0cSpL!efHCA79 zb4xcmy~B#HnG4P%|L;<3u<+rdtdXUi7V^V9_cXj~u-!EjqAdhlVzgMSZ4b+#}M{vXK6`F-Z)d=~0- zQ1^UvY15JXI>kz2xF!qOI8SLwcf7 z^rq{=sJa*p!8oGqZ6*}_h#Y>;V9oZ`*EeAt67NICdH0iJb7bf82b2)>pt6A<;|6F5 z!ePg8nCl^A%tFv*JIFqvb_Ei%!1)vMc@ZA;Nh*lyzkAv`;~T+vO1X}CAfBc?A5kY> z&T~}l3ZUJ)#+0u$0gMvVuA?m-7>?pCVE-w01?$)P)E;W_V0*M5$?EdG-F$uVF}mo_ zRL++zn)P#a8FUBs$G?uT<%tx&9XE7#Z2<8MauuJ%Kk`}i>g01~Y9UnLrKh->x}F}a z*X0S%kp5z^sQMQ;-1012frd-PQGoF|u3Q+U#b4qO>3Mn^3skV!$Ye1u7xND_ zV6TW$rzD~q2kXn^NWW;w!5u)>Z|J$PjHZTsvrgx%vHea}e9Xmg&R*(vj3_G8MjvFq zqBJo#@_^%2>W^$1>ucnmddac@MWtzr^n2!oKtfsBrM$rp&-$jyJP<RZY!Q=oGO2k*!qnma@{@%1VDyR{AqvsrWDC%mT5f_^-%A)k~Jv7~f&% zL$gKcT^J_emJF-L^>?N$?=xk&@&h~=(?#WeRaG(nKc6@5nT#KfE6+zbMfwN5m}W44 zj3Q0&7UCz^U4Dt{(?1nKKjnhveMVkiC^|DgSD1OA@=K-<9#tR2uW+^*1aysRwugx~ z7zKejMj9kE!Z6shq;ZjGb?LBe6$R85dacP|4-UORgg0@3lpzc=e`x9cH|4Fx-@tf6MK5_dBu*BJNaLeg2g%IS=Q<}9 zD-gpodv_!P*(J*7Y*O@&)=rjp>q|7&DFddUh4gppt5&!wVLavDPr*qt|8`fUbh&-? zdsBO-@#LR+b?mBdf`VyeVNmPx)=cNKn*1w6Q9t(WQKoUiW%FFs_bWehW`-XeFfLeakY@X2}~R01xXLOkZb1RMdbL6qR-`{Cd5M=f~t+1Xpj>Z zqfVCAk)6NSmGsx6>UOlLt|kyhI3fD6-?k*pfWs?7U|yPTk)~yeMXqrB-IzXuA;4@J zvFdVeE8+^|Rv1kB4qO2dAA@<}h`ZU>w6qR#R;uCAL1%4&34vbMnEDu;$k$bj@maNq%Ivu;#2ktd2^CA1+&}G{Yj3U@;R!?AA zD1tXdb{6WZCV9bl%{ZTH86Vem<9xEOSK8=K5k1Gq`9i(D-?~2aka#rBq==Fxh4V02 zZNMGnw$K|(^^mI~zNLOJZ%my`p`5i9N6s5$Za#U)ZR#O!=7(I|uAc8QvSGVu@9#)E zPy~`JQT2iyfn>^l!=WY$A;oSK%D6?@trx64DRN)}?CaSC=H3)qEZ)@yljD>^)eDU; z)lSSSn1NB|AokJy-bjR-M2E1I9b*4BoTpp{%cRS1QV46(Ii)Z%ew&KNY6aqVkZ0u% z8n1cG`TA*8i0K%t`<1A>6Sq$Dw0^7=B#=WkCf;hynhOq0zf*67s{&YeAvqa_lY<0i{sy%0Ju0uXx&vnJ?D~>*2jh6*VIPYZL8b6;E4>?5c(7pRo-8~lRfmHZ zHfh!2yNc8ks}7jcv#JA6>-%}t;V{2!8fT8sYdD&&b|^MAY|Qe<_ej;wbh{#SQs?ea zb#72GY=R7(Ltk%%V6$L$uZBFOY*O((W_SH{U7ejR&2g}QpAAVS3Cu}?`Ob7%#ACRU zfXLv0~EC?i6$B zYi*6hH-zS)qs)1PUu8u%_pX*voT@7H)}A&*2AN~Zsd>;c5G8=)(ZL;}{W=5z>5JG9 z6HHtr&+m@sXw zc>ePJSbl}HiFY^Uzu4Uw*RZp(BZyc(x>MYAGUpvDT$)^J!~%l-I$8l9+v?TdT2dHq z?r!ULcVU6XDI|k4Ezn?+U6V%+|3d55%yf~Qd&OLG-iJ9uKAH5awn8(nfRsn|bA>{3 zZB$>0>CnEYzCb7@BT;>oP(pqk)lU&h$)%{i#8AdltErR8BkQzNyyaLEVeIp!@K){a z^t>i-D(~^~o{`mhsW`=%N)?=AMWvAR-3Q2-b=v%?RY~U4{vGq&>B2BM(P*%CNY$K= z(T!u3GSLid@-k7)c$p~MBebHq999ZGUaSoJXN^O=&pcW!nG21g63UkO~?fL@4#HzQQR=qjSPpx_r&n(>`a^h{Ff}EeF zE6&0cZT8$N@4fBtk^72I4+xr%2fOqJBJ>HL3~Dr3Ah%{nq-d^ApJP%p*4o|c!n-07 zQfbYolnj$u0=A2+wPuu(U2}B{u5zX3qZ3orvT2z6rDAlJbfyx(Me|a%JjZ6MA5cXuOJZB}r6n_YI$eW#SuM{H^Jh_yM=Quj zY0w+#(Jz=u(VCjCgKc(-4F|hoSd?B5<~eCOD2eJcL6do5%2*23#zu7-NociUBA4RQ ze2ZB^KvOznBTH*&JaaZN3rvOqR(_^%(Hu$R3KHgZG{_lNv0#LiGED0br0zMX-*Yl! zgH>Lb!`~!CfSeL2%Ba5?TNnG|8^$KrON0WxM{xtZeXv>rS%rk50FFe>uf90oE z@Xo*@U%v1zxw}-f_Wz9^#yG5$-cyGEoe#IZ50}HN4-^NQgjp9==c(4sjEGlNnDwEO z;(tUVH^bxq;JoFJ%jpfW8tEsTWVtl4KupU){~UPuS%pW88T5milc!MgFAa*4o(LB0r-SbpI{RHyIZpAoqX!irgH3mn zZw=TgxO%Zde$-vRvdD~52 z4Zu>JGM>F0fWJSk%%7^qF&2?TFHm=q&of<#cM zOtlk+)PiZ&1i~yZp$#R^D&n3ECbXXv!W=Nooj{lirg;+x^T0fx5xf*RdfX^l4OkEf zrf{JflfS`9HGrUy74GvF4EP>$^`}~szgQd=atHY0+F#@4sDfN423X&%|b(I(6`C_Hoo8Fd|2 z_jpiX4;dh?#6G!!ramlXLTAFt5$nQqDg%n>N|>R{0kM%XYGS3`t4+*vB$vVL7aa$f z&})n{@K%Bey$8!6d`r+1`lFD!hL-qgVGeI*?Zjs@5Z56O>s2K7p23oTHA>7%yom}X zj+crfB3y)mYiZ#)zyCUH=U$&oj~Ay7lwuT-Y=?sNC_p#M*pw$pd_rV(iE0mjhNQBf z_!KjmS|$h-1`~qCl!rZpTAOg#q*f+cE_(s>%mY&!eve<5XW-#Yc`j!=xaW`sfrh%Y zGk1273x7A{nmX}dl>%iKGIe(kc%G^jwvY=`^c5}yhs+c8aWAbo#dWAR=G`2@x8*ryuZrnD3?gs1Ny9e@LhZve?$sRT@osx} z%PnF2c|Zd3cdY$LQ%grzyybAHJKomS*?V&&9*g(&mO}UhdyeIE%6k*##1oZmr1=9w zRloBm{Hd13LH-tv0r3`m?>(t@uxQ8wENkLJb>S(slSjq9OdQ_E-qXom79Evd*2dTG zN7P<)`?losH!it!6qrKZMucm%mRuSrr>R{eq`9Bx7t1sn6E*Mp8S!=*tSm%yM@uu4VyGMpETpITDRO`$4LmY}QkDmfcDzh5pe7c9b#>+y*!k)&rHkiEimvhaXh;!%m$L$)6W zR#oAX^8BhQFf0+OuBJboDO)O}GTlec{#dq--E}}-r5`ye=VszVA^P)p4-TpveL(&Q zlS)~W83=;SrQtR8(bMwF22FQ6`OV|<9S;7>6X~pmYwS4<`Z9_6JMkg+c%IK z-oi5Q56;O>vhR%S)U)}&CXHuhEBWf2ER8*NMs5%cSNv6jeh2**J!&Ui%1OR)R$ibl ze_w;v%(#s0KPyW@#=OsPbsX6KmgpQq#(H7oY58h$-&69HgT=;O8S{#@tbd%*@nYk< zBc;Zh$WV!~m25gF=Zxii-?&d0IcCfuLwDkv{6oeeapbhoPKHk5*Yievp?}dRlc5*z z>lGuu(7$HXk)c=d>kZoX2cww`T|i!8hc27EbirsCb9`h>7)HJ{&K}FE&HPZn=l-mb z*_k-0MAu60*sPs8Hg$gH7E$Mq*3Tad8%l*QNLkoWDSSy*h7A?MSLDX9p-}?@`DNHJ zS)&oi`(Z=AL94)L9fQwPMUHDdkf-OZ%i(h_KD01|Ym+1eDI3y}a=D!3WBhk~@-hdn z(mHdqIFFKS_Dc)(MRuQ?3@yxT9bKF`B#hQ)BG@0U%iJ`&5kE&-Gc}}fnchZ@Z_12} WZqD2*WJt%w+tDwMeSAZvZ2cEP)?`}% delta 8989 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 uro#pmzSSCT=L&5P^RmHi@X;qw?=Uu7&LDYA L.LIBTCPIP @@ -64,7 +70,7 @@ CS.INIT >LDYA L.LIBTCPIP CS.RUN >LDYA L.MSG0 >SYSCALL puts - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GETTABLE + >LIBCALL hLIBTCPIP,LIBTCPIP.GetTable >STYA ZPPTR1 >STZ.G SocketCount @@ -72,15 +78,15 @@ CS.RUN >LDYA L.MSG0 .1 tay lda (ZPPTR1),y beq .7 + >SYSCALL GetMemPtr >STYA ZPPTR2 - ldy #S.SOCKET.TCP.S - lda (ZPPTR2),y - cmp #S.SOCKET.TCP.S.TIMEWT+1 - bcs * - tax - >PUSHB L.MSG1.S+1,x - >PUSHB L.MSG1.S,x + + lda (ZPPTR2) + cmp #AF.INET +* bne .7 + + jsr CS.RUN.S ldy #S.SOCKET.O >PUSHB (ZPPTR2),y @@ -92,15 +98,10 @@ CS.RUN >LDYA L.MSG0 cpy #S.SOCKET.LOC.ADDR-1 bne .2 - lda (ZPPTR2) - tax - cpx #S.SOCKET.T.SEQPACKET+1 - bcc .3 - - ldx #S.SOCKET.T.SEQPACKET+1 -.3 >PUSHB L.MSG1+1,x - >PUSHB L.MSG1,x - >PUSHBI 17 + jsr CS.RUN.P + jsr CS.RUN.T + + >PUSHBI 19 >LDYA L.MSG1 >SYSCALL printf @@ -112,6 +113,53 @@ CS.RUN >LDYA L.MSG0 sec we do not want to stay in memory rts *-------------------------------------- +CS.RUN.S ldy #S.SOCKET.TCP.S + lda (ZPPTR2),y + + cmp #S.SOCKET.TCP.S.TIMEWT+1 + bcc .1 + + lda #S.SOCKET.TCP.S.TIMEWT+1 + +.1 asl + tax + >PUSHB L.MSG1.S+1,x + >PUSHB L.MSG1.S,x + rts +*-------------------------------------- +CS.RUN.P ldy #S.SOCKET.PROTO + lda (ZPPTR2),y + + ldx #0 + +.3 cmp PROTO,x + beq .4 + inx + cpx #PROTO.Cnt + bne .3 + +.4 txa + asl + tax + + >PUSHB L.MSG1.P+1,x + >PUSHB L.MSG1.P,x + + rts +*-------------------------------------- +CS.RUN.T ldy #S.SOCKET.T + lda (ZPPTR2),y + tax + cpx #S.SOCKET.T.STREAM+1 + bcc .5 + + ldx #S.SOCKET.T.STREAM+1 + +.5 >PUSHB L.MSG1.T+1,x + >PUSHB L.MSG1.T,x + + rts +*-------------------------------------- CS.DOEVENT sec rts *-------------------------------------- @@ -124,12 +172,19 @@ CS.QUIT lda hLIBTCPIP *-------------------------------------- CS.END LIBTCPIP .AZ "libtcpip" -MSG0 .AZ "Proto Local Remote Options Status" -MSG1 .AZ "%s %03d.%03d.%03d.%03d:%05D %03d.%03d.%03d.%03d:%05D %b %s\r\n" -MSG1.UDP .AZ "UDP" -MSG1.TCP .AZ "TCP" -MSG1.RAW .AZ "RAW" -MSG1.INV .AZ "???" +MSG0 .AZ "Type Prot Local Remote Options Status" +MSG1 .AZ "%s %s %03d.%03d.%03d.%03d:%05D %03d.%03d.%03d.%03d:%05D %b %s\r\n" +MSG1.T.RAW .AZ "RAW " +MSG1.T.DGRAM .AZ "DGRAM " +MSG1.T.SEQPKT .AZ "SEQPKT" +MSG1.T.STREAM .AZ "STREAM" +MSG1.T.INV .AZ "??? " +PROTO .DA #S.IP.PROTOCOL.ICMP,#S.IP.PROTOCOL.TCP,#S.IP.PROTOCOL.UDP +PROTO.Cnt .EQ *-PROTO +MSG1.P.ICMP .AZ "ICMP" +MSG1.P.TCP .AZ "TCP " +MSG1.P.UDP .AZ "UDP " +MSG1.P.INV .AZ "??? " MSG1.S.0 .AZ "*" MSG1.S.1 .AZ "LISTENING" MSG1.S.2 .AZ "SYN-SENT" @@ -141,6 +196,7 @@ MSG1.S.7 .AZ "FIN-WAIT-1" MSG1.S.8 .AZ "FIN-WAIT-2" MSG1.S.9 .AZ "CLOSING" MSG1.S.10 .AZ "TIME-WAIT" +MSG1.S.INV .AZ "???" hLIBTCPIP .BS 1 *-------------------------------------- .DUMMY diff --git a/BIN/TELNET.S.txt b/BIN/TELNET.S.txt index 782d54d9..9ee19067 100644 --- a/BIN/TELNET.S.txt +++ b/BIN/TELNET.S.txt @@ -10,6 +10,7 @@ AUTO 4,1 .INB INC/A2OSX.I .INB INC/ETH.I .INB INC/LIBTCPIP.I + .INB INC/NET.TELNET.I *-------------------------------------- TIMEOUT.MAX .EQ 40 4 sec. BUFSIZE .EQ 256 @@ -37,7 +38,10 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.LIBTCPIP .DA LIBTCPIP -L.Socket .DA Socket +L.SA.LOCAL .DA SA.LOCAL +L.SA.LOCAL.AD .DA SA.LOCAL+S.SOCKADDR.ADDR +L.SA.REMOTE .DA SA.REMOTE +L.SA.REMOTE.AD .DA SA.REMOTE+S.SOCKADDR.ADDR L.MSG.IPKO .DA MSG.IPKO L.MSG.USAGE .DA MSG.USAGE L.MSG.UNKNOWN .DA MSG.UNKNOWN @@ -54,12 +58,7 @@ CS.INIT >LDYA L.LIBTCPIP bcs .9 sta hLIBTCPIP - lda (pPs) - ora #S.PS.F.EVENT Now accept events - sta (pPs) - clc - .9 rts *-------------------------------------- CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ? @@ -81,7 +80,7 @@ CS.RUN.IPOK ldy #S.PS.ARGC jsr Init.Timeout -.2 >PUSHEA.G DST.IP +.2 >PUSHW L.SA.REMOTE.AD lda #1 >SYSCALL GetArg >PUSHYA @@ -114,21 +113,17 @@ CS.RUN.HOSTOK ldy #S.PS.ARGC lda #2 >SYSCALL GetArg >SYSCALL atoi - >STYA Socket.Dst.Port + >STYA SA.REMOTE+S.SOCKADDR.PORT CS.RUN.PORTOK lda #1 >SYSCALL GetArg >PUSHYA - >PUSHW Socket.Dst.Port + >PUSHW SA.REMOTE+S.SOCKADDR.PORT - ldy #DST.IP+3 ldx #3 -.1 lda (pData),y - sta Socket.Dst.Addr,x - >PUSHA - dey +.1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x dex bpl .1 @@ -136,26 +131,27 @@ CS.RUN.PORTOK lda #1 >LDYA L.MSG.HOSTOK >SYSCALL printf -CS.RUN.OPENSKT ldx #3 - ldy #S.IPCFG.IP+3 - -.1 lda (ZPIPCfgPtr),y - sta Socket.Src.Addr,x - dey - dex - bpl .1 - - >PUSHW L.Socket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New +CS.RUN.OPENSKT >PUSHBI 0 no protocol + lda #S.SOCKET.T.STREAM + >LIBCALL hLIBTCPIP,LIBTCPIP.Socket + bcs .9 + + >STA.G hSocket + pha + >PUSHW L.SA.LOCAL + pla + >LIBCALL hLIBTCPIP,LIBTCPIP.Bind bcc .2 - >LDYA L.MSG.SKTKO +.9 >LDYA L.MSG.SKTKO >SYSCALL puts lda #K.E.SYN sec -.9 rts + rts -.2 >STA.G hSocket +.2 >PUSHW L.SA.REMOTE + >LDA.G hSocket + >LIBCALL hLIBTCPIP,LIBTCPIP.Connect >LDYA L.MSG.SKTOK >SYSCALL puts @@ -172,7 +168,7 @@ CS.RUN.LOOP >SLEEP >PUSHWI BUFSIZE >PUSHW ZPBufPtr >LDA.G hSocket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Read + >LIBCALL hLIBTCPIP,LIBTCPIP.Read bcc .1 tay @@ -205,7 +201,7 @@ CS.RUN.LOOP >SLEEP >PUSHW ZPBufLen >PUSHW ZPBufPtr >LDA.G hSocket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Write + >LIBCALL hLIBTCPIP,LIBTCPIP.Write bcs CS.RUN.SKTERR @@ -255,7 +251,7 @@ CS.DOEVENT lda (pEvent) CS.QUIT >LDA.G hSocket beq .1 - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close + >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown .1 >LDA.G hBuf beq .2 @@ -293,19 +289,19 @@ MSG.SKTERR .AZ "Socket Error : $%h\r\n" MSG.IOERR .AZ "I/O Error : $%h\r\n" MSG.USER .AZ "User interrupt." *-------------------------------------- -Socket .DA #S.SOCKET.T.STREAM +SA.LOCAL .DA #AF.INET S.SOCKADDR.AF .BS 1 + .BS 4 S.SOCKADDR.ADDR + .BS 2 S.SOCKADDR.PORT +*-------------------------------------- +SA.REMOTE .DA #AF.INET S.SOCKADDR.AF .BS 1 - .BS 1 -Socket.Src.Addr .BS 4 -Socket.Src.Port .DA 0 Dynamic -Socket.Dst.Addr .BS 4 -Socket.Dst.Port .DA TCP.PORT.TELNET + .BS 4 S.SOCKADDR.ADDR + .DA TCP.PORT.TELNET *-------------------------------------- .DUMMY .OR 0 DS.START -DST.IP .BS 4 hBuf .BS 1 hSocket .BS 1 TimeOut .BS 1 diff --git a/INC/LIBTCPIP.I.txt b/INC/LIBTCPIP.I.txt index 6f5a4f71..51dd3d80 100644 --- a/INC/LIBTCPIP.I.txt +++ b/INC/LIBTCPIP.I.txt @@ -39,23 +39,23 @@ LIBTCPIP.DNS.GetCache .EQ 26 LIBTCPIP.HST.GetByName .EQ 28 LIBTCPIP.HST.GetByAddr .EQ 30 -LIBTCPIP.SKT.Socket .EQ 32 -LIBTCPIP.SKT.Bind .EQ 34 -LIBTCPIP.SKT.Connect .EQ 36 -LIBTCPIP.SKT.Listen .EQ 38 +LIBTCPIP.Socket .EQ 32 +LIBTCPIP.Bind .EQ 34 +LIBTCPIP.Connect .EQ 36 +LIBTCPIP.Listen .EQ 38 -LIBTCPIP.SKT.Accept .EQ 40 -LIBTCPIP.SKT.Close .EQ 42 +LIBTCPIP.Accept .EQ 40 +LIBTCPIP.shutdown .EQ 42 -LIBTCPIP.SKT.Read .EQ 44 -LIBTCPIP.SKT.Write .EQ 46 -LIBTCPIP.SKT.Recv .EQ 48 -LIBTCPIP.SKT.Send .EQ 50 +LIBTCPIP.Read .EQ 44 +LIBTCPIP.Write .EQ 46 +LIBTCPIP.Recv .EQ 48 +LIBTCPIP.Send .EQ 50 -LIBTCPIP.SKT.RecvFrom .EQ 52 -LIBTCPIP.SKT.SendTo .EQ 54 +LIBTCPIP.RecvFrom .EQ 52 +LIBTCPIP.SendTo .EQ 54 -LIBTCPIP.SKT.GetTable .EQ 56 +LIBTCPIP.GetTable .EQ 56 *-------------------------------------- ERR.SKT.OOS .EQ $BF ERR.SKT.BUSY .EQ $BE @@ -69,8 +69,6 @@ ERR.ARP.PENDING .EQ $B5 UDP.PORT.DNS .EQ 53 UDP.PORT.PMAP .EQ 111 *-------------------------------------- -TCP.PORT.TELNET .EQ 23 -*-------------------------------------- S.IPCFG.STATUS .EQ 0 S.IPCFG.STATUS.OFF .EQ %00000000 TCPIP Unconfigured S.IPCFG.STATUS.SDISC .EQ %00000001 DISCOVERY Sent diff --git a/LIB/LIBTCPIP.S.CFG.txt b/LIB/LIBTCPIP.S.CFG.txt index 0c24826c..630cc774 100644 --- a/LIB/LIBTCPIP.S.CFG.txt +++ b/LIB/LIBTCPIP.S.CFG.txt @@ -493,7 +493,7 @@ SET.IPCFG.I >LDYA L.DCB.NIC .2 lda hDNSSocket beq .3 - jsr SKT.Close + jsr SKT.Shutdown stz hDNSSocket .3 lda IPCFG+S.IPCFG.DNS1 diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index 6877e2a0..207dbb3b 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -3,7 +3,7 @@ PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF */-------------------------------------- -* # SKT.Socket +* # Socket * Create a new socket * ## C * `hFD socket(short int type, short int protocol);` @@ -101,7 +101,7 @@ SKT.Socket.FindFree clc rts */-------------------------------------- -* # SKT.bind +* # Bind * bind a name to a socket * ## C * `int bind(hFD fd, const struct sockaddr *addr);` @@ -121,13 +121,13 @@ SKT.bind >SYSCALL GetMemPtr lda SKT.LOC.ADDR+S.SOCKADDR.PORT bne .1 - ldy SKT.LOC.ADDR+S.SOCKADDR.PORT+1 + ldx SKT.LOC.ADDR+S.SOCKADDR.PORT+1 bne .1 jsr GetDynPort - sta SKT.LOC.ADDR+S.SOCKADDR.PORT+1 - stx SKT.LOC.ADDR+S.SOCKADDR.PORT + sta SKT.LOC.ADDR+S.SOCKADDR.PORT + stx SKT.LOC.ADDR+S.SOCKADDR.PORT+1 .1 jsr SKT.FindMatchingLoc bcc .9 @@ -141,7 +141,7 @@ SKT.bind >SYSCALL GetMemPtr sec rts */-------------------------------------- -* # SKT.connect +* # Connect * Iinitiate a connection on a socket * ## C * `int connect(hFD fd, const struct sockaddr *addr);` @@ -231,7 +231,7 @@ SKT.connect.9 lda #ERR.SKT.BAD sec SKT.connect.99 rts */-------------------------------------- -* # SKT.listen +* # Listen * Listen for connections on a socket * ## C * `int listen(hFD fd);` @@ -268,7 +268,7 @@ SKT.listen >SYSCALL GetMemPtr sec rts */-------------------------------------- -* # SKT.Accept +* # Accept * Accept a connection on a socket * ## C * `hFD Accept(hFD fd);` @@ -314,17 +314,17 @@ SKT.Accept >SYSCALL GetMemPtr sec .9 rts */-------------------------------------- -* # SKT.Close +* # Shutdown * Close socket * ## C -* `int close(int fd);` +* `int shutdown(int fd);` * ## ASM * **In:** * `lda fd` -* `>LIBCALL hLIBTCPIP,LIBTCPIP.close` +* `>LIBCALL hLIBTCPIP,LIBTCPIP.shutdown` * **Out:** *\-------------------------------------- -SKT.Close >SYSCALL GetMemPtr +SKT.shutdown >SYSCALL GetMemPtr >STYA ZPPtrSKT cmp #S.SOCKET.T.STREAM @@ -391,7 +391,7 @@ SKT.Close >SYSCALL GetMemPtr jmp TCP.OUT Try to push FIN/ACK */-------------------------------------- -* # SKT.Read (STREAM) +* # Read (STREAM) * ## C * `int skt.read(hFD fd, void *buf, int count);` * ## ASM @@ -442,7 +442,7 @@ SKT.Read >SYSCALL GetMemPtr sec .99 rts */-------------------------------------- -* # SKT.Write (STREAM) +* # Write (STREAM) * ## C * `int skt.write(hFD fd, const void *buf, int count);` * ## ASM @@ -495,8 +495,8 @@ SKT.Write >SYSCALL GetMemPtr sec rts */-------------------------------------- -* # SKT.Recv (RAW,DGRAM,SEQPACKET) -* # SKT.RecvFrom (RAW,DGRAM,SEQPACKET) +* # Recv (RAW,DGRAM,SEQPACKET) +* # RecvFrom (RAW,DGRAM,SEQPACKET) * ## C * `hMem recv(hFD fd);` * `hMem recvfrom(hFD fd, struct sockaddr *addr);` @@ -601,8 +601,8 @@ SKT.Recv clc sec rts */-------------------------------------- -* # SKT.Send (RAW,DGRAM,SEQPACKET) -* # SKT.SendTo (RAW,DGRAM,SEQPACKET) +* # Send (RAW,DGRAM,SEQPACKET) +* # SendTo (RAW,DGRAM,SEQPACKET) * ## C * `int skt.send(hFD fd, const void *buf, int count);` * `int skt.sendto(hFD fd, const void *buf, int count, const struct sockaddr *addr);` @@ -669,10 +669,10 @@ SKT.Send.9 rts SKT.Send.SEQPACKET bra * */-------------------------------------- -* # SKT.GetTable +* # GetTable * Get socket table * ## C -* `void * skt.gettable();` +* `void * gettable();` * ## ASM * **In:** * `>LIBCALL hLIBTCPIP,LIBTCPIP.skt.GetTable` @@ -691,7 +691,7 @@ SKT.PullLocAddr >PULLW ZPTmpPtr1 .1 lda (ZPTmpPtr1),y sta SKT.LOC.ADDR,y dey - bne .1 + bpl .1 rts *-------------------------------------- SKT.PullRemAddr >PULLW ZPTmpPtr1 @@ -701,24 +701,24 @@ SKT.PullRemAddr >PULLW ZPTmpPtr1 .1 lda (ZPTmpPtr1),y sta SKT.REM.ADDR,y dey + bpl .1 + rts +*-------------------------------------- +SKT.SetLocAddr ldy #S.SOCKET.LOC.ADDR + +.1 lda SKT.LOC.ADDR+S.SOCKADDR.ADDR-S.SOCKET.LOC.ADDR,y + sta (ZPPtrSKT),y + iny + cpy #S.SOCKET.LOC.PORT+2 bne .1 rts *-------------------------------------- -SKT.SetLocAddr ldy #S.SOCKET.LOC.PORT+1 +SKT.SetRemAddr ldy #S.SOCKET.REM.ADDR -.1 lda SKT.LOC.ADDR-S.SOCKET.LOC.ADDR,y +.1 lda SKT.REM.ADDR+S.SOCKADDR.ADDR-S.SOCKET.REM.ADDR,y sta (ZPPtrSKT),y - dey - cpy #S.SOCKET.LOC.ADDR-1 - bne .1 - rts -*-------------------------------------- -SKT.SetRemAddr ldy #S.SOCKET.REM.PORT+1 - -.1 lda SKT.REM.ADDR-S.SOCKET.REM.ADDR,y - sta (ZPPtrSKT),y - dey - cpy #S.SOCKET.REM.ADDR-1 + iny + cpy #S.SOCKET.REM.PORT+2 bne .1 rts *-------------------------------------- @@ -742,13 +742,13 @@ SKT.FindMatchingLocRem .3 lda (ZPTmpPtr1),y -.4 cmp SKT.LOC.ADDR-S.SOCKET.LOC.ADDR,y +.4 cmp SKT.LOC.ADDR+S.SOCKADDR.ADDR-S.SOCKET.LOC.ADDR,y bne .8 iny cpy #S.SOCKET.REM.ADDR bne .3 - lda SKT.REM.ADDR + lda SKT.REM.ADDR+S.SOCKADDR.ADDR cmp #$ff FF.FF.FF.FF, Broadcast ? bne .5 @@ -760,7 +760,7 @@ SKT.FindMatchingLocRem ldy #S.SOCKET.REM.PORT Boradcast, check port only .5 lda (ZPTmpPtr1),y - cmp SKT.REM.ADDR-S.SOCKET.REM.ADDR,y + cmp SKT.REM.ADDR+S.SOCKADDR.ADDR-S.SOCKET.REM.ADDR,y bne .9 wrong remote host, exit.... iny cpy #S.SOCKET.REM.PORT+2 @@ -797,7 +797,7 @@ SKT.FindMatchingLoc phy .2 lda (ZPTmpPtr1),y - cmp SKT.LOC.ADDR-S.SOCKET.LOC.ADDR,y + cmp SKT.LOC.ADDR+S.SOCKADDR.ADDR-S.SOCKET.LOC.ADDR,y bne .7 dey cpy #S.SOCKET.LOC.ADDR-1 diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index cf5d8849..271182a9 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -78,7 +78,7 @@ CS.START cld .DA SKT.Listen .DA SKT.Accept - .DA SKT.Close + .DA SKT.Shutdown .DA SKT.Read .DA SKT.Write @@ -308,8 +308,8 @@ FD.DSOCK .DA #S.FD.T.DSOCK .BS 1 S.FD.DSOCK.HSKT .DA #0 S.FD.DSOCK.OPEN .DA #0 S.FD.DSOCK.CLOSE - .DA #LIBTCPIP.SKT.Recv - .DA #LIBTCPIP.SKT.Send + .DA #LIBTCPIP.Recv + .DA #LIBTCPIP.Send .DA #0 S.FD.DSOCK.STATUS *-------------------------------------- .DA #AF.INET S.SOCKET.AF @@ -322,8 +322,8 @@ FD.SSOCK .DA #S.FD.T.SSOCK .BS 1 S.FD.DSOCK.HSKT .DA #0 S.FD.DSOCK.OPEN .DA #0 S.FD.DSOCK.CLOSE - .DA #LIBTCPIP.SKT.Read - .DA #LIBTCPIP.SKT.Write + .DA #LIBTCPIP.Read + .DA #LIBTCPIP.Write .DA #0 S.FD.DSOCK.STATUS *-------------------------------------- .DA #AF.INET S.SOCKET.AF diff --git a/SBIN/TELNETD.S.txt b/SBIN/TELNETD.S.txt index 052c425c..d5c6bc01 100644 --- a/SBIN/TELNETD.S.txt +++ b/SBIN/TELNETD.S.txt @@ -10,6 +10,7 @@ AUTO 4,1 .INB INC/A2OSX.I .INB INC/ETH.I .INB INC/LIBTCPIP.I + .INB INC/NET.TELNET.I *-------------------------------------- CONN.MAX .EQ 16 TIMEOUT.MAX .EQ 30 30 sec. @@ -38,7 +39,9 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.LIBTCPIP .DA LIBTCPIP -L.Socket .DA Socket +L.SA.LOCAL .DA SA.LOCAL +L.NOD.Template .DA NOD.Template +L.NOD.Name .DA NOD.Name L.MSG.TCPWAIT .DA MSG.TCPWAIT L.MSG.INITOK .DA MSG.INITOK L.MSG.TCPIPERR .DA MSG.TCPIPERR @@ -85,16 +88,26 @@ CS.RUN jsr Init.Timeout CS.RUN.INIT ldx #3 ldy #S.IPCFG.IP+3 .1 lda (ZPIPCfgPtr),y - sta Socket.Src.Addr,x + sta SA.LOCAL+S.SOCKADDR.ADDR,x dey dex bpl .1 - >PUSHW L.Socket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New + >PUSHBI 0 no protocol + lda #S.SOCKET.T.STREAM + >LIBCALL hLIBTCPIP,LIBTCPIP.Socket bcs .9 >STA.G hSrvSocket + pha + >PUSHW L.SA.LOCAL + pla + >LIBCALL hLIBTCPIP,LIBTCPIP.Bind + bcs .9 + + >LDA.G hSrvSocket + >LIBCALL hLIBTCPIP,LIBTCPIP.Listen + bcs .9 >LDYA L.MSG.INITOK >SYSCALL puts @@ -127,7 +140,7 @@ CS.RUN.ERR sec *-------------------------------------- CS.RUN.SERVER >LDA.G hSrvSocket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Accept + >LIBCALL hLIBTCPIP,LIBTCPIP.Accept bcs .8 >STA.G hClientSocket @@ -135,21 +148,23 @@ CS.RUN.SERVER >LDA.G hSrvSocket ldx #CONN.MAX .1 lda (pData),y - beq .2 + beq CS.RUN.CLIENT iny dex bne .1 - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close - bra .8 + >LDA.G hClientSocket + >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown +.8 clc + rts -.2 sta (pData),y +CS.RUN.CLIENT sta (pData),y - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Get + >SYSCALL GetMemPtr >STYA ZPSktPtr ldx #3 - ldy #S.SOCKET.DST.ADDR+3 + ldy #S.SOCKET.REM.ADDR+3 .3 >PUSHB (ZPSktPtr),y dey @@ -163,8 +178,16 @@ CS.RUN.SERVER >LDA.G hSrvSocket >SYSCALL printf bcs .9 - + >PUSHB.G hClientSocket + >PUSHBI 1 + >PUSHWI L.NOD.Template + >LDYAI L.NOD.Name + >SYSCALL sprintf + >PUSHB.G hClientSocket + >PUSHW 0 + >LDYAI L.NOD.Name + >SYSCALL mknod .8 clc @@ -190,7 +213,7 @@ CS.QUIT ldx #CONN.MAX phx phy - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close + >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown ply plx @@ -201,7 +224,7 @@ CS.QUIT ldx #CONN.MAX ldy #hSrvSocket lda (pData),y beq .3 - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close + >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown .3 lda hLIBTCPIP >SYSCALL UnloadLib @@ -223,7 +246,7 @@ Wait.TimeOut sec CS.END *-------------------------------------- hLIBTCPIP .BS 1 -LIBTCPIP .AZ "libtcpip.o" +LIBTCPIP .AZ "libtcpip" MSG.TCPWAIT .AZ "TELNETD:Waiting for TCP/IP initializing..." MSG.INITOK .AZ "TELNETD:Init Ok, Listening." MSG.TCPIPERR .AZ "TELNETD:TCP/IP Not initialized properly" @@ -234,16 +257,18 @@ CMD.LINE .AS "${A2OSX}SBIN/GETTY " .AZ " ${A2OSX}SBIN/LOGIN" *-------------------------------------- -Socket .DA #S.SOCKET.T.STREAM - .DA #S.SOCKET.O.ACCEPTCONN - .DA #S.SOCKET.TCP.S.LISTEN +SA.LOCAL .DA #AF.INET S.SOCKADDR.AF .BS 1 -Socket.Src.Addr .BS 4 -Socket.Src.Port .DA TCP.PORT.TELNET -Socket.Dst.Addr .BS 4 -Socket.Dst.Port .BS 2 + .BS 4 S.SOCKADDR.ADDR + .DA TCP.PORT.TELNET *-------------------------------------- -NOD.Name .AZ "TTY%h" +SA.REMOTE .DA #AF.INET S.SOCKADDR.AF + .BS 1 + .BS 4 S.SOCKADDR.ADDR + .BS 2 S.SOCKADDR.PORT +*-------------------------------------- +NOD.Template .AZ "/DEV/TTY%h" +NOD.Name .AZ " " *-------------------------------------- .DUMMY .OR 0