From 04c739f31898c92453efcff1bc0dc559deedcb9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 5 Oct 2017 17:39:17 +0200 Subject: [PATCH] Kernel 0.9.1 : More TELNET support.... --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes DRV/CONSOLE.DRV.S.txt | 74 ++++++++---- INC/NET.TELNET.I.txt | 11 +- SBIN/GETTY.S.txt | 250 ++++++++++++++++++++++----------------- SBIN/SHELL.S.CMD.txt | 2 +- 6 files changed, 203 insertions(+), 134 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 505a49a5c7244481e552863c0223bf7362cd94e6..7c57594abfa33b269b87343182bb3155f4cfe950 100644 GIT binary patch delta 2492 zcmY*b3s6(p89wKRgor2s*(C;qlY4WHMv+YdJ{BJayI^M4s{WH=>DZs#8D833{_&uTa5FuGisz4EN# zkPaOavkemZ3=tsbUjEMcKWl-N-`N~`lhQipjvZe@k1yQ_)}Y-2m=r%UvE;seJJf$W zgrg;fQ9Wp~R87U#V4GhW`;;&C)hVyyHBwmc4Rd@-{ zzYkI|fB8OMhfDZ7_i;5QeE2>v%{+4&S7MP@PvcEk;%`sm4cNjzn#L8F@~LTT!HgHq zfa|5aat5MW#`n$OrP#`UJcC!@<-C6eQ@n!TngM1h7vd1hN>1b0hRgWQIBe<#eoU2Y zyekfNcK%5moH_WtI5y*QUXTDv1>cy!%ke6HD1ohbHSbK|QoM#o5_k<>%coW8MNVgd zQpsCp0bIvV&f=BU_38BGY=B~wHEjQ>np+#n-KdJ&om*>9tAHKpU+S;g3!ChFh==X? z{r-^`gc^geOv??Mgq`(kSg-hdu|WD%%#j++UE)DWlFo`hlHQm8B27uT7KFkFN$9J@ z=<*FvUlH>yVZIUS8>QZVUngfpKN`406&-2fU7G~rcG33g@YwYzmN$fNU$^R;2B@MT zTP@)|5!;F|iWr#J5V5+uWO_@cigs9@_T&wILN5&bGv$O1dF~MxHM)Xmt*f+%*}hpC zrv^>qUNM@K_1-x3B|uqE8Z50*w^9@(?Hd;K(XJjE>ZPRJ(&g@!P(Nq#UY{OQ!$9V{WMtMy+VT? zZ=YHxk5}C=kXxAg6wo30-cza1fz-a=-Mv!KpMEaJ$C7Hzx~@FsWB6Gg{on%_4yNP}x*bf`k`F~sW;7G3+DC`w+i6|t zuxt&Nv#3rMgN3l$;4bLGz0^b=T7v7;c~5%24dy8mSrV%1{M62|0ZC z%A8u$SR<((v8-uqk)i?&TijCGRG&_k(G|czQ8EL@sIePg9R5i!jX|J!09UAROSB~g zt2qn9fvZZLKt%_0*{mXRA*4r5#TAS9Dz$pjQiC6kj3+xSgs-Xx2)GS;@A?7iif(Gx zMZeN5SYOiDpW4!$p_a(_UA1TfYSCIx+q@Z(Wk#1it<*eL@}F-OR=aOdUyKIy(-+QU zT?pTxZ8xa*1`Wq(Ta0>Rkk9eI`fjSSHAm6Uv&C*wHFr1Y7Pw?>=}l_T&aeL}JODeYZg z`D|5GOv=kIWC zYeLDm5mh<9arjkLN-CGJz_DQeFTDRA_We?$$Nl;mc pwDs6!``Md9r$PApI~lSDS_U*NG##`|XnJV#pk?)E$n$4^^MA4euc-h4 delta 2493 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 c4~%T>*#%}VPWL3!z5p0~f*H>a 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 delta 12883 zcmZuX33waD)o*vb&RQ$kk}S)2oLJ6DEF}3RkYG!4>_o90OLh)Ih+->=i?7Hc*j$Q; z!%Y%m$e=IPY5il@+=9ID2!) z8IDTR;c)RSi_Jl&zrzQL3zAMh{<@C{wZ?x72i{wLczJ8@S92@=0ZtED7F-|nHU|O; zZ!{8)MY^IReUY)T_03@aCrNk(8+pMixU$D0;b`CXdwhc6IWlXf@R^WZHX$UJbzL?t z+%qoT-zHR%hu@Wo$szMBgRo%goz`OV%26>l#|(>)&aZ|t3wi&jSlVC(f6yEBuW_z! zUKj9pT<-L*Nx17l$!B188*J!m36Dhr?rZ3$4PCzOUMMOc%O4gC$yBvGM4V2+CYK>c zzJrg5MJU7f4*o_gBKc>@?~$&Hvr3QDy5uZDET2EMzppH30mD0YAu;dHnnOlq*!GY-^3dg33c2A?u^{JEHh;E@Jf9<%m%7=j)dN0% zud~hH?DKbD)i>A=#Wm!?X+xn{RZHd=WXGI3B(NozsE2}jNG|gRL*0o=Z)Zp4WJmLA zKg??&D;^W8DjOL(OA{=f@ z=!?y2UQT7uoItFh?#=+%&m@8>7c?}p;m$692jsSJm_TRH4<;{r>qfF6*T-JgcDIN8 zQ0$+&<=n!!(#qB?UI8ne-dJ?dyFDBo+e?@6cdXe{2c|YQt0lOn5pvtvOQ3a++XdE@ z?9ChK4tl#M-5#*4;v?OiJ)uc=4de#cKx=T1#|?R_*&7KJR#;6uVItB{Xu_d5_Q?lD4!Q3)lZ03@es#7*5_Pv zUL-oPdl(9O(qjzc?kL!L(}Vsf8s6?zkiRxP);2N}+1&)4QMPh_}1F|sugjSPklD=(00j#E`U<=P2@CMsK-U3O;>ti1}&x>`%qLA00di4&+Byemc-A{^@ z@$HcO)>t&5$qD2EoTz>al7syd35N^hbMf6i2u?Q{><=eGk-_0etaCKBWCF}XklYg4 zkutA>VTOoWgcH|vcAXakWdxD~!xNy6BJgk|;dFztgRxc^1!|e(!zV>ce2mf-PN1rq z10io)b2nIHsi8)fuRYiW`RB0_w4X*-Fx1)Y2g}aXP*?K`zX#OwDe2*a!wvRv_O017 zGPcgyj3(ztgI6ZFpfBKpzK~M02K~=P;H8^j9~CZ}gHt-FfLPr8IpiZd39cLCih z`>Fg=Y_EvKpgKWbeo9G$^OWA0@QEg zSP?Y})Z0z?91SO&jUeBQxJ$o7E_p^QiGLT8vG4@Qx6rX$!C9-BVaAG~ErV!_>i0N$ zbf>qS%nZNJ&F}|&nOcy42$w_AG&t+Y@#>od`A2X)7=8?PXCu)9!B3dt<)0!QCAX96 zXT@UaXOJZODayw0|j?yK zVZ>|t1zH(O&Vi$#{u061hOykkbdf@#9O348FQ@8PINNYvoGN*Adl>S5ol<{iYbz-C zLvnO545kM-{;GzpV0;kqqO17LiJf2i?*^(c<_^)V)>gNM9FAUT4nY47N54Xgn5 zH%#l^Hc)>{A14ytUa&n1$vBl`FcPCXp*gm0Jt&W{ZDM*HT7#&#@dQpXK7oskjwc)q zO`tx>h@e`33VBeUrfR~)+raP)=(2y7Z@T9gw%q42v<41xbm|Kng&X4Pi`25T>FP^3 zOzo)#OfNIz*XUG#mtOG|T+#S@X8syAuX1OCoV~^|^@995g5|vd&Kk}19913{9#LbMug4_Cy(<52w}l8WZ! zY}~zVBrz5niAEA0^aNWbVv)qcwe5kxlEhkcpy)LgLFxZs@r^Z6_SNZhj*QaCgAbEX z^f7)K*fvb(hX)4}ThU_-kDLz$pWt{jG8Ty?8g$c2K>lZxKtS^z2ty7k&bK~stzuV{G6lLRe>;U)=2c7T#4uyjin zv~)|(#&kA+mVo9wBhtwVj;lF>9-LGIeMD1ofx#FT(DBevlW#(7D0V$Tpza|T$w6aB zYf$n8G_i3|%)xgj$v*& zDS1hphmu8z$aRovgN=5Dqv4^@&?poyChxx_7R8s)m8f7X)f7PnvlgeIB^d2v zzJYD%2|+!TF^O)!z@0XZ6dfjyz(QV?3!PVukfc7Xur?EIdigp!Jdq%i$3&}8PslNG zp3p!ZI3^YqH6og^!4n8>BJbnZoYR6t1@p;yijlCg;}6fZ+u{e8#b zI>ime%gNa<<638)e640}EsGa4^_NNjHz814uUMIaYzF1qD3nqgr(*>P9af~u7nYlDJ?mF5Sq zq@oqA+(9MONp{W8E)crNj_o=2`B*S%sk4jLO3ATE9~gq*Y$6n12{E%M?ICZMXP3l# z>GZXjJk=je$v8L|iHt(Qx(u;nE=;olP}fs#G@CYV;EdJRgZ(TFK{RVv8y<)`LjyyR z5frXzBaUj&2x8nsLD1!*w~(>)0ecw3dE9lvvRh8JY#(3C4RQqM%3JZjylpfeNF`cE ztberF;6@<5`q39mRX^^T>&1~zEPqn0>wFrq2GXnxky%H%O<+)W_WHY9z`8?Mi7y-r zQ|pqWl%p{u$TM>R#Enl>;X$W13{6t(yrqX*b_v^mTd9HOZCZhdq#!_ClUk0 zu?VIbu}D8YVig%3N`xjxBTEvP*=)lE1c_gQ{ReqB6~`osqviy0V4-w^I80b5F>%-I z2KjQF?80)XuMEw_5o~d`2PcO|Vu^5KXLxX+A1m_F!HFf)Z;O=@Ea)a%Bx!y;C}|!H zGYBOlY0ZVg9x2t=aAKjXHJ}<`PH%enYG+$8;i_{rx|&^Hm(N}2M%}KJ^n~de+Sft- zuaorP%ts2=r$#Uf+KXUK2xs4*jq2g=3O0N8SrT*b6f7~LC5B=0IA& zLSiptlM6PHgh8_9oWoeE*-XA`kUXb`b!L}1T=)m&TO{nyX`QF$j$nJD(S^D5$ne<6 zV5AaC`p7p1srdAMeG=qG*khHe$>oB%TP5uHID@h1!0@)KcmqqTajEmJoCIZ?MAjS- z%Hns=FcVO**3mXx9aym9S=QAPY+IWcrA7!=ta|tWiw0o3CqwU;N&AO)f{gVK%(@qx zbp%T9!|wssOgS#J6k-{KCPVJ~P%;}0_cK#j3?&bebKVk*g@?!v?Db`1y#v(`lN;U= zt2~1vBco0y$dBNdRjYGwW2M}zRV#O>o7Fc=@uTFf2c$xA?qg)LSE!h8cwG0Fh9^^b zJ{C5b2Ys4*&}WF?&ngj~B@ca)RbhLc?<(s2Xk@WsJwrA(844F+czX%y$T`MJ5wN~| z!p6p82Ijp&_W83M?KxP<;5rFVUS$gvzebyuYkJy42ec@c=HvAl3PCrdzQI+33C17D zJA1S30W4{t=uPS=wG12EAgfn&JGBl8Sl;4pd(;=%xe}8=`E7(&-r*tUUC!{I7#-z* zCLerbD2xAvt?CH1ulCbg2m8BV{p;~ODgVc3zsF|V{syVwfbzM5h9%42j~CiMPT=UD zoTDaC-q+}w1BQR;+EG4W$PNEa^>zOPM0g(?yZ7curA7Jwg_*W=88|*fo~PozLSsvN zM|1ajaC}4uvVF5<53Rk(IjU4Jb%xJiacjGadNc>Rv^gKc)F$6-@e`Q31b;q-sqgyA z#m`{s0bi;3IZVBdZ(qRFXTEajOVm7KshDc?=jN(kvD^x`Y4z7YE_zt1h_8r*LhCn1 zHx5@q!8bs+*?zw7v@Hil5EdskM$U43wu2%Fnmbdm{BrtwRkD)#k+cXuOuGH-cJWY-JV6*i8&y>c_e!@3kS3k%R3#- z+LBM}5>qEj{T-gVIw2)j3ggjD&()DRo{$~# zK;A^_*mGFrf(lkQ(??dvZV|A@Ma$TNKGOAamThG}M_va?gqN;c*>Cb_dbCaW5;UveIW&&@`YJ|e%8^~JUE zR69x8$;mvQk*SO`MCJ(rgB~gmd$|;a(9#TQMkWajbPrR5-%)LawxTI+vMO(N_ z&|DbSqp4tps%}sdT&#^ya4D-#X`-6$TkobaM$b6O1&Ybx9wA9y?3YX9rYnV(R6k3- zieqwvdNr$NX&dMo9OeC|y^I9bf7-|KVRvCaXW%-Mz_A8>o9OjLq0O{?@#P=17fkpZy%m`%WbK0Q8~ z-YP#O^pef)?Ah_PqTU%&*NKciBy~N1>;+|m$SReyL{_P66tOjWwx~xUH`q3bTA`BB ziNM{2Xz3oLRRT^hhA9kgDNijJw;)EE65_KO??XUZ{~=&M0xA&^JIv!)8sLjzn}{mF z<}_|3N)R?Iu>m-MUkbk^YF(_1HK}h<&*jTv19K3;)FHksrgg(7P>E7g<0E`V4alQ7 z!?=UbKpQtkIidJ0k5P0nPAmeShwsWxPVD*kVi*_EFKNV1aAMm)zJPwYP}F;;7cn6! z7mHdnuw7Cu($j+0*1gow*ujA<&Pc*H|GM^&vpW<7c^Bd-PmqN}N?GZpoGdq3cBeq; z!Gas6J=vp2vTw^quZ=qdJ8#oJ$SymQeUuKc@?rXsY$fh*?pX)MpHhp#jH;#yif$KB z(zGeIP`5g)hb{%>XVlhl-`#=xgf=uhVEZ|6Vkn_nDD>A3x(R=a3!}X<|LW}N0`*ZAebC~R$2hvj zIl3npy3!|w6g)cDaXy=RXY11^Z0cv2*r<5p^tc?%&mOm{pG!kf05nhKc@|pCFQh>= z5Aos*P!E`2N&{#f;@C_8#AW*(_p6;fqq9W_u)awF@sP}qS+5pS zjc;W@zMY1&yxT@WgB&LY3*(;{q_-^r=D*O7*zue|8$@pM{;CVuK^>m@9tZ6O$KM1p z|4e1B;qOd#<^K@KnlqKsdH+mv@jh4Rzqmp_;0pb>K(0GeDUSbFN1k%YAI^{`D(@q@ zU^tO-$^V-PK$Z6~GiviEX;4jhpUwb9<$ab0(3H37^O+D-dtausN0rAk^>wDEw4~r0 zoyXmnadO8ka-SnHpX10Pmp3bwahbUeJnJc$#k{%RB-Zk>YBvTNRY4#vs{?C}m_C=L z=>(_-{77SJ1DK4|QEN`U0aO#8)ChUGEROKADuY>cHZT`y(J{NpbAnVV&aso#tx83_ zFh!M8L|r`6P@F<%D?P!7gIdPDVLhnjDM)!X`b$#<19wzmL!e*|qkl$PVVbK$)FDKr zn4CZ3?2(?Bs}2T2{XmsS6H>6vBbF6P{?hq;GEF)Q7MujVx{%Lp17#7LTd-Jzn{H9E zY7@Rl-@s6KkY+gvFrA{K>qc}-PJ&LZ7L&x)s+5Xz-Q>^;Wlr3~8Af+mgAA*+90l&3 zI{L_*n_7=xR8bfe8>n0wslK&CKWyJNaU59Ro`xT7OBs%g$O_8oTC@fG84RiZjdZ%Q zXT_J%kJvj~PG_G0nutvSE}; zS4t}8H7PLa#;^&SB0fZkSFs!0!>F&AZd0lj$&*M(?j9ya9?~yk=qYnV3BGHur~bK!kY?X=gtmx^6WDzpn6 zrhOtm#z7aY?$^=8LA@@8$8X=I>p;F2m$UtfjidFa)42QS94s4t%|b`c{o3xt9@Ya?yzy$t ze^AV@vAvoU9^%{|W!$Teq#6GWW&F3e5HgA za}@{kQ^)cB^h^lkJO5b*lF9FLxJ>@@3>5iIE&l=~??uLQ&PzJ4$CxSQzbtw?yYyg7 zS&f78J48a2_zFXosl@!>r^ZqXyow7LU!w%EG+TZh2MXWNeUwh4M?2a21Dmf8x^WOC z|3~Is)i=dtT+6^Q7kHaNW~wg#oz$4Vy7DgL%=qUF0{%h?_$&2vbd%|8F#`VYqy)Uj z3HY11QZE6NzjLqs4<;(xKSh3;d_dcA3tV{R;C;U1njr6Ae8VkhT7ViV`vAk(H_s?V z<%WM#S4vxm%6~Y<|1ykoKNQKU8*?hQe?)1zK#!Cy=WX2@i6Rd9f5?aWF=Y&s%0^H= zK{&kcB!7zI%4f7J!-(`bz8Jos(x!*T%9m(fV}qc4#Xj4=W|pEw;pu7Rp1I*cwgA|_ zVV1}Pv_1-C*V#D*#e$@Hvl$?q<=BK=@}EsP z`LpCaT&BoO;+t{`&$1w5^i_(L|K{^w8~arYIF)#UZO2D?Wh#>}wGansL0AiUMG_Wz z^hy$2w3x1Dit;fg_C<`QZIIxhD zvM5ao`aP}Nowqneik6X_!iA4^zJzL+QxlItUNwar*NL_{Qxj9`E2koDc%4FVA+0oo zxHWpfKS~`Ff?6-JQ(-*gX<&5cHcBSEhwbFIq>G!#zRfvB<)`uE zDcYO7ik~zM4M$hCRYK2F^4rZhA-uR;9L@>F&yc)rgf*6p%Or0ve>N|dSSqibf}yiL zQ%dD|S2OVZWy&mThf`J(zbGvhR*_Lrsw@sjtI~HP@uuQs^v3#Pn7^9b zE=u!+4)P-X=_H?sk^@iSOC@QJu!fv2Nsi05IMD%xXg32vxshE6H794#3d*47eDb%DcEm8KI&%h5vP|IZaoPjMtZqa;{#=O8)f7B8EhEo zl~V1X9KZgMqQ*O=?h~&?{ODwuf2?D!2ib>rOtDACQRC5(@pc_Ee#OhCAm2eD?qs(L ZX#y$#90z6{qE~J~z6+nt(~FJ0{}0PEW{Cg* diff --git a/DRV/CONSOLE.DRV.S.txt b/DRV/CONSOLE.DRV.S.txt index 302057ff..3ad8395e 100644 --- a/DRV/CONSOLE.DRV.S.txt +++ b/DRV/CONSOLE.DRV.S.txt @@ -11,7 +11,6 @@ AUTO 6 .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/IO.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I .INB /A2OSX.BUILD/INC/NET.TELNET.I *-------------------------------------- CURSOR.BLINK.SPEED .EQ 8 @@ -175,11 +174,14 @@ READ jsr Char.Out.Get WRITE bit bEscMode bmi COUT.EscMode bit bIACMode - bmi COUT.IACMode + bpl .10 - cmp #IAC + jmp COUT.IACMode + +.10 cmp #IAC bne .1 sta bIACMode + stz IACBuf clc rts @@ -198,10 +200,11 @@ WRITE bit bEscMode *-------------------------------------- FS ldx CH cpx #79 - beq .8 + beq FS.8 inc CH -.8 clc + +FS.8 clc rts *-------------------------------------- DEL ldx CH @@ -210,7 +213,7 @@ DEL ldx CH bra .3 .1 ldy CV - beq .8 + beq FS.8 lda #79 sta CH @@ -221,9 +224,6 @@ DEL ldx CH ldx CH ldy CV jmp SetCharAtXY - -.8 clc - rts *-------------------------------------- COUT.Ctrl ldx #CtrlChars.Cnt-1 @@ -239,17 +239,6 @@ COUT.Ctrl ldx #CtrlChars.Cnt-1 tax jmp (J.CtrlChars,x) *-------------------------------------- -COUT.IACMode tax - bmi .8 go store 2nd byte (WILL, WONT....) - -* 3rd byte...option... -* ignore all for now -* reset bIACMode - -.8 sta bIACMode - clc - rts -*-------------------------------------- COUT.EscMode bit bEscModeCSI bmi COUT.EscModeCSI cmp #'[' @@ -363,6 +352,44 @@ COUT.ExecEscSeq stz EscSeqParamCnt .5 jmp (J.EscSequences,x) *-------------------------------------- +COUT.IACMode inc IACBuf + ldx IACBuf + sta IACBuf,x + + cpx #1 VERB ? + beq .8 yes, wait for additional bytes + + ldy IACBuf+1 get back VERB + cpy #SB + bne .7 not a SB/SE....end of SEQ + + cmp #SE + bne .8 wait for ending SE....keep bIACMode + + lda IACBuf+2 Get OPT + cmp #TELOPT.TTYPE + bne .7 + + lda IACBuf+3 + cmp #SB.SEND + bne .7 + + ldy #0 + +.1 lda SB.IS.TTYPE,y + jsr Char.Out.Put + iny + cpy #SB.IS.TTYPE.LEN + bne .1 + +.7 + + + stz bIACMode + +.8 clc + rts +*-------------------------------------- RESET jsr CLRSCR lda #0 sta SCROLLTOP @@ -853,6 +880,7 @@ TelnetOpt .DA #IAC,#DO,#TELOPT.ECHO CtrlChars.Cnt .EQ 7 CtrlChars .HS 05080A0C0D151B bIACMode .BS 1 +IACBuf .BS 33 bEscMode .BS 1 bEscModeCSI .BS 1 bEscSeqInNum .BS 1 @@ -867,7 +895,11 @@ DEVSTAT .DA #S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ .DA #S.DEVSTAT.T.CHAR .DA #0 .DA $0900 -ENQ.String >CSTR "A2osXTERM" +ENQ.String >CSTR "A2osXTERM" +SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS + .AS 'A2osXTERM' + .DA #IAC,#SE +SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE *-------------------------------------- MAN SAVE /A2OSX.SRC/DRV/CONSOLE.DRV.S diff --git a/INC/NET.TELNET.I.txt b/INC/NET.TELNET.I.txt index b9e4800b..b10955dd 100644 --- a/INC/NET.TELNET.I.txt +++ b/INC/NET.TELNET.I.txt @@ -6,12 +6,10 @@ AUTO 6 *-------------------------------------- * https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/+/jb-dev/sysroot/usr/include/arpa/telnet.h *-------------------------------------- -TCP.PORT.TELNET .EQ 23 +TCP.PORT.TELNET .EQ 23 *-------------------------------------- -SE .EQ 240 -SB .EQ 250 -SB.IS .EQ 0 -SB.SEND .EQ 1 +SE .EQ 240 $F0 +SB .EQ 250 $FA WILL .EQ 251 $FB WONT .EQ 252 $FC DO .EQ 253 $FD @@ -60,5 +58,8 @@ TELOPT.ENCRYPT .EQ 38 Encryption option TELOPT.NEWENVIRON .EQ 39 New - Environment variables TELOPT.EXOPL .EQ 255 extended-options-list *-------------------------------------- +SB.IS .EQ 0 +SB.SEND .EQ 1 +*-------------------------------------- MAN SAVE /A2OSX.BUILD/INC/NET.TELNET.I diff --git a/SBIN/GETTY.S.txt b/SBIN/GETTY.S.txt index fe55e9ba..fb2f608f 100644 --- a/SBIN/GETTY.S.txt +++ b/SBIN/GETTY.S.txt @@ -12,7 +12,7 @@ AUTO 6 .INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/NET.TELNET.I *-------------------------------------- -TIMEOUT.MAX .EQ 10 1 sec. +TIMEOUT.MAX .EQ 100 1 sec. *-------------------------------------- ZPTmp1 .EQ ZPBIN *-------------------------------------- @@ -23,9 +23,10 @@ CS.START cld .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA 0 - .DA CS.END-CS.START - .DA DS.END-DS.START Data Segment to Allocate - .DA 16 SS + .DA CS.END-CS.START CS + .DA DS.END-DS.START DS + .DA #16 SS + .DA #2 ZP .DA 0 *-------------------------------------- * Relocation Table @@ -35,9 +36,11 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE -L.MSG.TELNET.OPT .DA MSG.TELNET.OPT +L.MSG.TELNETOPT .DA MSG.TELNETOPT L.MSG.GREETINGS .DA MSG.GREETINGS -L.TERM .DA TERM +L.ENV.TERM .DA ENV.TERM +L.HEX .DA HEX +L.HEX2 .DA HEX2 .DA 0 End Of Reloc Table *-------------------------------------- CS.INIT ldy #S.PS.ARGC @@ -82,115 +85,52 @@ CS.INIT ldy #S.PS.ARGC sec .9 rts *-------------------------------------- -CS.RUN jsr Init.Timeout - -.66 >SYSCALL Sleep +CS.RUN >SYSCALL Sleep >SYSCALL GetChar - bcc .1 - bcs .66 -* jsr Wait.Timeout -* bcc .66 + bcs CS.RUN + +.11 jsr PRINTA2 + >SYSCALL Sleep + >SYSCALL GetChar + + bcc .11 + + jsr Init.Timeout -* jmp .2 + ldy #0 +.1 lda MSG.TELNETOPT,y + phy + >SYSCALL PutChar.A + ply + iny + cpy #MSG.TELNETOPT.LEN + bne .1 -.10 >SYSCALL Sleep - >SYSCALL GetChar - bcs .1 +* >LDYA L.MSG.TELNETOPT +* >SYSCALL PrintF.YA +* bcs * +CS.RUN.LOOP - -.1 cmp #IAC - beq .11 - - jmp .2 - -.11 >SYSCALL Sleep +.1 >SYSCALL Sleep >SYSCALL GetChar - bcs .11 + bcs .4 - ldy #IAC.VERB - sta (pData),y - -.12 >SYSCALL Sleep - >SYSCALL GetChar - bcs .12 - - ldy #IAC.OPT - sta (pData),y - - ldy #IAC.VERB - lda (pData),y - cmp #SB - bne .10 - - ldy #IAC.OPT - lda (pData),y - cmp #TELOPT.TTYPE - bne .15 only interested in Term Type, go get IAC,SE - -.13 >SYSCALL Sleep - >SYSCALL GetChar - bcs .13 - - cmp #SB.IS not a valid reply, go get IAC,SE - bne .15 - - lda #0 - sta (pData) reset IAC.TERM - -.14 >SYSCALL Sleep - >SYSCALL GetChar - bcs .14 + jsr PRINTA cmp #IAC - beq .16 end of DATA, go wait SE + beq CS.RUN.IACMODE - pha - lda (pData) - inc - tay - sta (pData) - pla - - sta (pData),y - bra .14 - -.15 >SYSCALL Sleep - >SYSCALL GetChar - bcs .15 - - cmp #IAC - bne .15 - -.16 >SYSCALL Sleep - >SYSCALL GetChar - bcs .16 - - cmp #SE - bne .16 - - - jmp .10 - -.2 - - lda (pData) - beq .5 - >PUSHW pData - >PUSHW L.TERM - >SYSCALL SetEnv - -.5 - >LDYA L.MSG.TELNET.OPT - >SYSCALL PrintF.YA - bcs * +.4 jsr Wait.Timeout + bcc .1 + >LDYA L.MSG.GREETINGS >SYSCALL PrintF.YA - bcs .8 unable to send greetings...loop.. + bcs .8 unable to send greetings...reset.. ldy #hBinName lda (pData),y @@ -201,6 +141,87 @@ CS.RUN jsr Init.Timeout .8 clc rts *-------------------------------------- +CS.RUN.IACMODE >SYSCALL Sleep Wait for IAC VERB (or SB) + >SYSCALL GetChar + bcs CS.RUN.IACMODE + + >STA.G IAC.VERB + jsr PRINTA + +.1 >SYSCALL Sleep Wait for IAC OPT + >SYSCALL GetChar + bcs .1 + + >STA.G IAC.OPT + jsr PRINTA + + >LDA.G IAC.VERB + cmp #SB + beq CS.RUN.IACSB +*-------------------------------------- +CS.RUN.IACVERB + lda #'.' + >SYSCALL PutChar.A + jmp CS.RUN.LOOP +*-------------------------------------- +CS.RUN.IACSB +.1 >SYSCALL Sleep + >SYSCALL GetChar + bcs .1 + + >STA.G IAC.SB + + jsr PRINTA + + lda #0 + sta (pData) reset IAC.SB.DATA + +.2 >SYSCALL Sleep + >SYSCALL GetChar + bcs .2 + + cmp #IAC + beq .4 end of DATA, go wait SE + + pha + jsr PRINTA + + ldy #IAC.SB.DATA-1 + +.3 iny + lda (pData),y + bne .3 + + pla + sta (pData),y + iny + lda #0 + sta (pData),y + bra .2 + +.4 >SYSCALL Sleep + >SYSCALL GetChar + bcs .4 + + cmp #SE + bne .8 + + >LDA.G IAC.OPT + cmp #TELOPT.TTYPE + bne .8 + + >LDA.G IAC.SB + cmp #SB.IS + bne .8 + + >PUSHEA.G IAC.SB.DATA + >PUSHW L.ENV.TERM + >SYSCALL SetEnv + +.8 lda #':' + >SYSCALL PutChar.A + jmp CS.RUN.LOOP +*-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? @@ -237,12 +258,24 @@ Wait.TimeOut sec clc .9 rts *-------------------------------------- +PRINTA pha + >PUSHA + >LDYA L.HEX + >SYSCALL PrintF.YA + pla + rts +*-------------------------------------- +PRINTA2 pha + >PUSHA + >LDYA L.HEX2 + >SYSCALL PrintF.YA + pla + rts CS.END MSG.USAGE >CSTR "Usage : GETTY \r\n" -MSG.TELNET.OPT -* .DA #IAC,#WILL,#TELOPT.BINARY -* .DA #IAC,#DO,#TELOPT.LINEMODE -* .DA #IAC,#SB,#TELOPT.LINEMODE,#1,#0,#IAC,#SE +MSG.TELNETOPT .DA #IAC,#WILL,#TELOPT.BINARY + .DA #IAC,#DO,#TELOPT.LINEMODE + .DA #IAC,#SB,#TELOPT.LINEMODE,#SB.SEND,#0,#IAC,#SE .DA #IAC,#DONT,#TELOPT.ECHO .DA #IAC,#WILL,#TELOPT.ECHO .DA #IAC,#WILL,#TELOPT.SGA @@ -250,19 +283,22 @@ MSG.TELNET.OPT * .DA #IAC,#DO,#TELOPT.NAWS .DA #IAC,#DO,#TELOPT.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.SEND,#IAC,#SE - .DA #0 -MSG.GREETINGS >CSTR "\r\nA2osX-GeTTY\r\n" -TERM >CSTR "TERM" +MSG.TELNETOPT.LEN .EQ *-MSG.TELNETOPT +MSG.GREETINGS >CSTR "\r\nA2osX-GeTTY 0.9.1\r\n" +ENV.TERM >CSTR "TERM" +HEX >CSTR "[%h]" +HEX2 >CSTR "{%h}" * \e[12h *-------------------------------------- .DUMMY .OR 0 DS.START -IAC.TERM .BS 64 +IAC.SB.DATA .BS 64 hBinName .BS 1 TimeOut .BS 1 IAC.VERB .BS 1 IAC.OPT .BS 1 +IAC.SB .BS 1 DS.END .ED MAN SAVE /A2OSX.SRC/SBIN/GETTY.S diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index 8dbf54bb..19d2b7bf 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -232,7 +232,7 @@ Cmd.Exec.EXT.BIN >SYSCALL ExecProcessNewEnvYA jmp Cmd.Exec.Done -.2 >SYSCALL CreateProcessYA +.2 >SYSCALL CreateProcessNewEnvYA jmp Cmd.Exec.Done *-------------------------------------- Cmd.Exec.EXT.Search