> NetScan 1.04 J.G.Harston 6 Lists stations connected and various information M FNnet_Ping() doesn't work on Sprow ARMCoPro - works on all other CoPros (: 2&A%=0:X%=1:os%=(&FFF4 &FF00)256 <5 ctrl% 31,txBuf% 31,rxBuf% 63:X%=ctrl%:Y%=X%256 FGrx%=0:tx%=0:mystn%=net_Info(8,0):nfs%=net_Ping(net_Info(0,0))<>0 P: "Scan all networks? "A$:A$=A$,1):all%=A$="Y"A$="y" Z :net_RxKill(rx%):: d: n/"Station Machine"(16)"NetVers"(3)"User" x' net%=0 127 all%:scan(net%):  : scan(net%) ) net_Bridge(net%)<0:: Unreachable $ stn%=net%*256+1 net%*256+254 Wping%=0: stn%<>mystn%:ping%=net_Ping(stn%): ping%=&03350001:ping%=pingFix(stn%) ' ping% stn%=mystn%:probe:print : : print  net_StnFixed(stn%);  "* ",2+(stn%=mystn%),1);  9);mch$;  32);ver$;  42);nfsUser$; O srvFind%: srvError%=0: '(9);srvServ$;" ";h0(srvVers%,2);" ";srvName$; "@ srvFind%: srvError% : '(9);"Server error: ";srvError$; , netServ%: '(9);nfsName$; 68 netPrnt%: '(9);"Printer ";netPrnt$;" ";netStat$; @ Add any more results J: T: ^ probe hnfsUser$="" rnetServ%=0 |netPrnt%=0 srvFind%=0 4 ping% :mch$=net_Type(ping%):ver$=ver(ping%) 3 ping%=0:mch$=machine(os%) :ver$=netfs_ver ' nfs% :nfsUser$=netfs_Who(stn%) - ping%=0 stn%=mystn%:: Local machine : probe_NetFS probe_PrintFS probe_Server  Add any more probes  : probe_NetFS ; net_Send(stn%,&80,&99,&B1+25+0+0+0,&B1,&30)=0: nfsName$=$(rxBuf%+2) netServ%= & 0: :probe_PrintFS D7 net_Send(stn%,&80,&9F,"PRINT "+1+0,&9E,10)=0: NnetStat%=?rxBuf% X6netStat$="Idle Busy Jammed",(netStat%7)*6+1,6) b7 net_Send(stn%,&80,&9F,"PRINT "+6+0,&9E,10)=0: l rxBuf%?6=13:netPrnt$=$rxBuf% vnetPrnt%=  : probe_Server 4 net_Send(stn%,&80,&B0," ",&B1,&20)=0: 7srvError%=?rxBuf%: srvError%:srvError$=$(rxBuf%+1) 2rxBuf%?(12+rxBuf%?11)=13:srvName$=$(rxBuf%+12) %rxBuf%?11=13:srvServ$=$(rxBuf%+3) srvVers%=rxBuf%?2 srvPort%=rxBuf%?1 srvFind%=  :  Add any more probes :  :  Networking routines   ------------------- *: 4ݤnet_Bridge(net%) > net%=0:=0 H@ net_Send(&FFFF,&83,&9C,"BRIDGE"+&B0+net%,&B0,&10)=0:=-1 R =rxBuf%?7 \: f;ݤnet_Send(stn%,txCtrl%,txPort%,txData$,rxPort%,rxLen%) pJ$txBuf%=txData$:rx%=net_RxOpen(stn%,rxPort%,rxBuf%,rxLen%): rx%=0:=0 zS net_TxCount(stn%,txCtrl%,txPort%,txBuf%,txData$,0,5,25):net_RxKill(rx%):=0 Etry%=10::rxok%=net_Rx(rx%): rxok%:A%=+25:>A%:try%=try%-1 4 rxok% try%<1: rxok% net_RxKill(rx%):=0 =net_RxRead(rx%) : Hݤnet_Ping(S%):!X%=&88:X%!2=S%:X%!4=X%+16:X%!8=X%+20:X%!12=0:X%!16=0 :A%=&10:&FFF1:?X%:A%=&32:(&FFF4 &8000)=0:=X%!16 : OݤpingFix(S%):!X%=&81:X%!2=S%:X%!4=X%+16:X%!8=X%+20:X%!12=&FFFF820C:X%!16=0 3A%=&10:&FFF1:?X%:A%=&32:(&FFF4 &8000)=0 ,X%!16=&30342E33:=&03400001 =&03350001 : Jݤnet_TxCount(Stn%,Ctrl%,Port%,Addr%,Len%,RAddr%,Try%,Delay%): TxErr% Wݤnet_Tx(Stn%,Ctrl%,Port%,Addr%,Len%,RAddr%): TxErr%,Try%,Delay%:Try%=10:Delay%=50 @X%?1=Port%:X%!2=Stn%:X%!4=Addr%:X%!8=Addr%+Len%:X%!12=RAddr% )Stn%=&FFFF:X%!4=Addr%!0:X%!8=Addr%!4 '::X%?0=Ctrl%:A%=&10: &FFF1:X%?0 $':TxErr%=byte(&32,0,0):TxErr%<&80 .ATxErr%=&41 TxErr%=&42:Try%:A%=+Delay%:>A%:Try%=Try%-1 80(TxErr%=&41 TxErr%=&42) Try%<1:=TxErr% B: L'ݤnet_RxOpen(Stn%,Port%,Addr%,Len%) VCX%?0=0:X%?1=&7F:X%?2=Port%:X%!3=Stn%:X%!5=Addr%:X%!9=Addr%+Len% `A%=&11:&FFF1:=X%?0 j: t2ݤnet_Rx(RxNum%):=(byte(&33,RxNum%,0)&80)<>0 ~: ݤnet_RxRead(RxNum%) 5X%?0=RxNum%:A%=&11:&FFF1:A%=X%!9-X%!5:X%!5=0:=A% : 1net_RxKill(RxNum%):A%=byte(&34,RxNum%,0): : 8ݤnet_Info(A%,D%):?X%=A%:X%!1=D%:A%=&13:&FFF1:=X%!1 : @ݤnet_Stn(A%):=d0(A%256,3)+".",(A%256)<>0)+d0(A%255,3) 7ݤnet_StnFixed(A%):=d0(A%256,3)+"."+d0(A%255,3) ݤnet_Err(A%):A%=0:="" ="Line jammedNet errorNot listeningNo clockBad Tx blockNo reply","011221344254",(A%-&40)*2+1,2),"110913081208",(A%-&40)*2+1,2)) : #ݤnet_Type(A%): A$:A%=A%&FFFF   A%256=&00:A$="Acorn "  A%256=&01:A$="Torch "  A%256=&02:A$="Reuters " (# A%256=&50:A$="PhilBlundell " 2" A%256=&FF:A$="SJ Research " <: F A%=A%255 P A%=1:=A$+"BBC Micro" Z A%=2:=A$+"Atom" d A%=3:=A$+"System 3/4" n A%=4:=A$+"System 5" x A%=5:=A$+"Master 128"  A%=6:=A$+"Electron"  A%=7:=A$+"RISC OS" A%=8:=A$+"Reserved"  A%=9:="A$+Communicator"  A%=10:=A$+"Master ET"  A%=11:=A$+"Filestore"  A%=12:=A$+"Master Compact"  A%=13:=A$+"PC EcoLink" $ A%=14:=A$+"RISCiX Workstation"  A%=15:=A$+"RISC PC"  A%=16:=A$+"Iyonix"  A%=17:=A$+"A9" :  A%=&40:=A$+"ZX Spectrum"  A%=&41:=A$+"Amstrad CPC" # A%=&50:=A$+"Internet Gateway" " A%=&EE:=A$+"Rasberry Pi" , A%=&F8:=A$+"GP Server" 6 A%=&F9:=A$+"80386 Unix" @! A%=&FA:=A$+"SCSI Interface" J A%=&FB:=A$+"PC Card" T A%=&FC:=A$+"Nascom 2" ^ A%=&FD:=A$+"RM480Z" h A%=&FE:=A$+"FileServer" r A%=&FF:=A$+"380Z or CP/M" |=A$+"["+h0(A%,4)+"]" : :  NetFS routines  -------------- : ݤnetfs_ver os%>6:="" Gos%=6:>&FFFF:ș&1E,18,"Econet",,,A%:ș&46,A%+A%!20A$:=A$,9,4)  X%,Y%,F%,A$:Y%=0:X%=&70 $A%=0:F%=(&FFDA)&FF:*FX143,18,5 OA%=4:((&FFDA)&FF)=4:A$="3.4x-3.6x" : 3.34, 3.35, 3.40, 3.60, 3.62, 3.65 CA%=3:((&FFDA)&FF)=0:A$="4.0x-4.1x" : 4.08, 4.18, 4.21, 4.25 7A%=2:((&FFDA)&FF)=2:A$="3.3x" : 3.34, 3.35 7A%=1:((&FFDA)&FF)>0:A$="4.2x" : 4.21, 4.25 "FX143,18,"+F%:=A$ : &3ݤnetfs_Who(stn%):u%::A%=netfs_Op(15,u%+1) 0>u%=u%+1:A%<>0X%?4=0X%?5=stn%:A%=0:X%?4:=$(X%+7) ="" :: D+ݤnetfs_Op(A%,A$)=netfs_OpN(A%,0,7,A$) N8ݤnetfs_OpN(A%,T%,O%,A$):!X%=0:X%?1=O%+1+A$:X%!3=A% XQ>&FFFF:X%?4=T%:$(X%+O%-3)=A$:ș&60048,A%,X%+4,O%+A$,120A%:A%=0:X%?3=0:=0 b;>&FFFF:A%>&FFFF:X%?3=?A%:ș&2002B,A%+4$(X%+4):=X%?3 l2X%!4=0:X%?7=T%:$(X%+O%)=A$:A%=&14:&FFF1:=X%?3 v: :  Misc. routines  -------------- )ݤbyte(A%,X%,Y%)=((&FFF4)&FF00)256 Cݤver(A%):=h0(A%,8+((A%&F0000000)=0)),1)+"."+h0(A%,8),3,2) #ݤd0(A%,N%)="00000000"+A%,N%) #ݤh0(A%,N%)="0000000"+~A%,N%) "ݤd(A%,N%)=" "+A%,N%) : ݤmachine(A%)  A%=0:="Electron"  A%=1:="BBC Micro"  A%=2:="BBC B+"  A%=3:="Master 128"   A%=4:="Master ET"  A%=5:="Master Compact"   A%=6:="RISC OS" *="[Type "+A%+"]" 4: