> BBCHost   ESC%=&9B (MTxStatus=&FEED:TxRdy=&10:TxData=&FEE0:TxSetup=&FEE2:TxInit=&FF:RxStop=&00 2MRxStatus=&FEED:RxRdy=&02:RxData=&FEE1:RxSetup=&FEEC:RxInit=&AA:RxCont=&00 <: F: ctrl% 31, string% 255 P8 A%=?RxData: (?RxStatus RxRdy)=0 ?RxStatus>&7F ZB?TxSetup=TxInit:?RxSetup=RxInit : Reset I/O system and client d* _ERROR: =17: -1:'"Stopped": nX%=ctrl%:Y%=X% 256 x4 A%=RdByte: A%: A% : Display startup banner * A%=0:WrByte(&7F) : Ack=NoExec $: RdByte: : Main VDU loop  : WrCmd(A%) ( (?TxStatus TxRdy):?TxData=ESC% ( (?TxStatus TxRdy):?TxData=A%: WrBlock(N%): N%=0: , D%=N%-1 0 -1:WrByte(ctrl%?D%):: RdBlock(N%): N%=0: + D%=N%-1 0 -1:ctrl%?D%=RdByte:: @WrString:D%=0::B%=string%?D%:WrByte(B%):D%=D%+1:B%=13: ?RdString:D%=0::B%=RdByte:string%?D%=B%:D%=D%+1:B%=13: WrByte(A%) 3 (?TxStatus TxRdy):?TxData=A%: A%<>ESC%: ( (?TxStatus TxRdy):?TxData=A%: " ݤRdByte ,(: (?RxStatus RxRdy):A%=?RxData 6X A%=ESC%: (?RxStatus RxRdy):A%=?RxData: A%<>ESC%:A%=("FN_"+~(A%&1E)):A%=-1 @ A%>=0:=A% J: TAݤ_0:EscOff:A%=:EscOn:WrByte((A%=27)&80):WrByte(A%):=-1 ^Tݤ_2:RdString:$string%:uc($string%,4))="HELP":string%?4<64:'"Serial TUBE" hWrByte(&7F):=-1 rOݤ_4:X%=RdByte:A%=RdByte:A%=((&FFF4)&FF00)256:X%=ctrl%:WrByte(A%):=-1 |Dݤ_6:X%=RdByte:Y%=RdByte:A%=RdByte:A%=((&FFF4)&1FFFF00)256 WX%=ctrl%:Y%=X%256:WrByte((A%&10000)512):WrByte((A%&FF00)256):WrByte(A%):=-1 aݤ_8:A%=RdByte:inlen%=RdByte:RdBlock(inlen%):outlen%=RdByte: &FFF1:WrBlock(outlen%):=-1 <ݤ_A:RdBlock(5):""$string%:WrByte(&7F):WrString:=-1 *ݤ_C:Y%=RdByte:RdBlock(4):A%=RdByte OX%=&70:!X%=!ctrl%:A%=&FFDA:!ctrl%=!X%:X%=ctrl%:WrByte(A%):WrBlock(4):=-1 Uݤ_E:Y%=RdByte:A%=&FFD7:Y%=X%256:WrByte((A%&1000000)&20000):WrByte(A%):=-1 ,ݤ_10:#RdByte,RdByte:WrByte(&7F):=-1 (ݤ_12:A%=RdByte:A%=0:#RdByte:=-1 ORdString:X%=string%:Y%=X%256:A%=&FFCE:X%=ctrl%:Y%=X%256:WrByte(A%):=-1 +ݤ_14:RdBlock(16):RdString:A%=RdByte  Manually do OSFILE call  WrByte(A%):WrBlock(16):=-1 !ݤ_16:RdBlock(13):A%=RdByte  Manually do OSGBPB call 5WrBlock(13):WrByte((A%&100)2):WrByte(A%):=-1 *ݤ_18:X%=RdByte:H%=RdByte:L%=RdByte &Q A%>127 A%<2 A%=6 A%=7 A%=8:WrByte(&FF):WrByte(H%):WrByte(L%):=-1 0WrByte(&7F):RdString : Manually do OSFSC call D A%>=0:WrByte(A%) N=-1 X ݤ_1A:=-1 b ݤ_1C:=-1 lݤ_1E:WrByte(0):=-1 v:  _ERROR fA%=-1::A%=A%+1:string%?A%=?(A%+!&FD+1):string%?A%=0:A%=:A%=28:A%=253:$string%="Bad address"+0 OWrCmd(&00):WrByte(A%):A%=-1::A%=A%+1:WrByte(string%?A%):string%?A%=0: : EscOff:"FX229": EscOn:"FX229,1": : /ݤs(A$):A$,1)=" ":A$=A$,2):A$,1)<>" " +A$,1)=" ":A$=A$,A$-1):A$,1)<>" " =A$ ݤuc(A$): B$:A$="":="" 5B$=B$+(A$((A$<"@")&DF)):A$=A$,2):A$="":=B$