> Talk523 5C00 %7:23;2,53;0;0;0: <>&5C00:Q%= 0test%=:arc%=(-256 &F0)=&A0:arc%:InitEco ( :end 2A$=130," "):ver$="5.23":umx%=20: W%3,Usr% umx%*16,Tx%&80,Rx%&80,ctrl%30,inp%&80:X%=ctrl%:Y%=X%256:A%=&13:!X%=8:&FFF1:stn%=X%?1:Rb%=0: (0)="" &81))/2,12,39,12:"";N$;" C:"+(chn%128),chn%>&81);"";26;0,z%);:win(1): on:Rb%=Rx(0):"FX4,1": "off:A%=fx(&34,Rb%):"FX4": : MݤEdit:?inp%=13:len%=0:93: IFchn%<>&81:PRINT;chn%EOR&80;">"; ELSE VDU93  A%=Key: A%=8:A%=127  A%=20:test%=test% ; A%=21:A%=-1: len%: 127:len%=len%-1: len%<1:len%=0 * A%=127:A%=-1: len%:127:len%=len%-1  A%>31 len%>lmx%-2:7 7 A%>31 len%tim%:tim%=+del%:cnt%=cnt%-1:Tx(&FFFF,&B0,&80,"TALK ",0) 6: Should occasionally Ping to check people still there @A%=(10): A%<>-1:=A% J: TMessage: Rx(Rb%)=0: ^:Rflg%=X%?1:Rprt%=X%?2:Rstn%=X%!3 &FFFF: Rstn%=stn%: h= test%:"Rx: "h(X%!1,8)" -> """;dp(Rx%,X%!9-X%!5);"""" r Rflg%=&80:BrCst: |"":A%=upd(Rstn%,M$) %$(Rx%+3+ M$)="" Rflg%<>chn%:  fon% fon%<>Rstn%: : fno% fno%=Rstn%:Send(Rstn%,"-","Not listening"): )7:win(0):: M$<>"": M$;?Rx%;" "; $(Rx%+3+ M$);:win(1): : &ݤupd(S%,M$):A%=-1: M$="":M$= S% <:A%=A%+1: A%=tot%(Usr%!(A%*16)&FFFF)=S%: A%>umx%:= ֆUsr%?(16*A%)=S%:Usr%?(16*A%+1)=S%256:Usr%?(16*A%+2)=0: A%=tot% M$<>S%:$(Usr%+3+16*A%)=M$,13): A%<10:"KEY"+ A%+"|@:"+M$+" " 0S%=A%=tot%:tot%=tot%-S%:=S%: TRUE=new entry : >BrCst: (!Rx%=&4B4C4154(!Rx%=&20202020 !Rx%=Rx%!4)): a!Rx%=Rx%!4:Tx(Rstn%,port%+1,&80,0+ port%+(("&"+( ver$*10)))+"TALK "+ N$+N$,0): : Rx%!4= &20202020:Tx(Rstn%,port%,&80,"TALK_RPL",0): 7 Rx%!4<>&4C50525F:: Received data not a TALK_RPL y upd(Rstn%,""):win(0):'"Station "stn(Rstn%)" acknowledged";:win(1):Send(Rstn%,">","Logging on"): Send if new & 0: :WݤRx(A%):?X%=A%:X%?1=&7F:X%?2=port%:X%!3=0:X%!5=Rx%:X%!9=Rx%+128:A%=&11:&FFF1:=?X% D: N&Send(S%,F%,A$): S%=0: tot%<1: X~ S%=0: z%=0tot%-1:A%=A$,1)<>";":Tx(Usr%!(16*z%)&FFFF,port%,chn%, F%+0+N$,A%)+13+A$,2+A%)+13,5)::tim%=+del%: bWA%=A$,1)<>";":Tx(S%,port%,chn%, F%+0+N$,A%)+13+A$,2+A%)+13,5):tim%=+del%: l: v+Tx(S%,P%,F%,A$,R%):X%!2=S%: X%?2=0: G?X%=F%:X%?1=P%:X%!4=Tx%:X%!8=Tx%+ A$:$Tx%=A$: S%=&FFFF:$(X%+4)=A$ q test%:"Tx: "h(!X%,8)" -> """;: S%=&FFFF test%: dp(X%+4,8);""""; test%: dp(Tx%,X%!8-Tx%);""""; SA%=&10:?X%=F%:&FFF1:?X%: U%=fx(&32,0)255:(U%&80)=0: test%:" <";~U%">" 'R%=R%-1: R%<0 ((U%-1)&FE)<>&40: : -Do(inp%):(!inp%&FFFF)=&D2A:$inp%="*H" +?inp%=42 inp%?1=42:off:$inp%:on: ?inp%=42:st: ?inp%<32 inp%?1<32: B?inp%=":":Send(st($(inp%+1)),"]",$inp%,1+$inp%," "))): * tot%<1:"Nobody has responded yet": Send(0,":",$inp%): : $st:A%=inp%?1 &DF:A$=$(inp%+2)   A%=65:add: 7 A%=66:cnt%= A$:cnt%=cnt%-(3000 del%)*(cnt%=0):  k A%=67:Send(0,">","Changing channel"):chn%=( A$&80-( A$=0))&FF:Send(0,">","Has arrived"):A%=84 * A%=72:hlp: 4 A%=73:fno%=st(A$): > A%=79:fon%=st(A$): H, A%=81:Send(0,">","Logging off"):end R A%=82:rem: \ A%=83:A%=fx(&34,Rb%): f+ A%=84:z%=:winI: 0,z%);:tit(N$): p A%=85:usr: z : \end:off: arc%:: "KEY0END|M*KEY0|F|M":"FX138,0,192":"Back to BASIC";21:=Q%: hlp::"Commands after '*':"'" A - Add a station to default"'" B - Rebroadcast enquiry"'" C - Set channel number"'" H"6"- Help"'" I - Ignore station"'" O - Listen only to station" " Q"6"- Quit"'" R - Remove user from default"'" S"6"- Start again"'" T"6"- Redisplay title screen"'" U"6"- List users on default";:A%=Key: " sends to all stations"'10"on default list."'": "'10"sends to only,"'10"given their station number"10"or name."'"Current channel is ";chn%128: : .add: tot%>=umx%:"Default list full.": St%=st(A$):(St%255)=0: WUsr%!(16*tot%)=St%:$(Usr%+3+16*tot%)="": tot%<10:"KEY"+ tot%+"|@:"+stn(St%)+" " tot%=tot%+1: : rem: tot%<1 A$<1: *A%= A$:(A%=0 A$,"0")=0)A%>=tot%: tot%=tot%-1: z%=A%14:Usr%!(z%*16)=Usr%!(16+z%*16):$(Usr%+3+z%*16)=$(Usr%+19+z%*16): z%<10:"KEY"+ z%+"|@:"+(?(Usr%+z%*16))+" " ): tot%<10: z%=tot%9:"KEY"+ z%:  $: .!ݤerr:: =15:" - Can't":= 8" <128 <>17:" at line ";; B:=-1 -2 L: V" " bA%=A$,1)>="0"A$,1)<="9": A%:x%= A$:I%=A$,"."): I%>1I%<5:=x%*256+ A$,I%+1) A%:=x% CI%=A$," ")-1::z%=-1: z%=z%+1:$(Usr%+3+16*z%)=A$,I%)z%=tot% ' z%<>tot%:=Usr%!(z%*16)&FFFF =0 : "ݤh(A%,N%)="0000000"+~A%,N%) <ݤstn(A%):=(A%256)+".",(A%>255)4)+"00"+(A%255),3) 6ݤfx(A%,X%): Y%:Y%=X%256:=((&FFF4)&FFFF00)256 ݤS="Talk523" : EݤMyName: "What is your name? "N$: N$>12:"That's too long."  N$<14 N$<>"":=N$ Fݤdp(A%,B%): z%=A%A%+B%-1:?z%<31 ?z%>126:"(";~?z%;")"; ?z%  :=""  InitEco A : : : 254,"Later version of BBCEconet needed": /*RMEnsure BBCEconet 0.00 RMReInit BBCEconet (D*RMEnsure BBCEconet 0.01 RMLoad System:Modules.Network.BBCEconet 2 B(C) H uh0 ݢ u  GuL `KEY0 Q%=PAGE:PAGE=&5C00|MOLD|MV.6:RUN|M BASIC