10
20
30
40 :
50 PRINT"Station Machine"SPC(15)"Software User"
60 A%=0:X%=1:os%=(USR&FFF4 AND &FF00)DIV256
70 DIM data% 15,ctrl% 31:X%=ctrl%:Y%=X%DIV256
80 mystn%=FNnet_Info(8,0):fs%=FNnet_Ping(FNnet_Info(0,0))<>0
90 FOR stn%=1 TO 254:ping%=FNnet_Ping(stn%):ok%=ping%<>0 OR stn%=mystn%
100 IF ping%=&03350001:ping%=FNpingFix(stn%)
110 IF ok%:IF ping% :PRINTFNd(stn%,3);TAB(5);FNnet_Type(ping%);TAB(33);FNver(ping%);
120 IF ok%:IF ping%=0:PRINTFNd(stn%,3);"*";TAB(5);FNmachine(os%);TAB(30);FNnfsver;
130 IF ok%:IF fs%:PRINTTAB(40);FNnetfs_Who(stn%);
140 IF ok%:PRINT
150 NEXT:END
160 :
170 DEFFNh0(A%,N%)=RIGHT$("0000000"+STR$~A%,N%)
180 DEFFNd(A%,N%)=RIGHT$(" "+STR$A%,N%)
190 :
200 DEFFNmachine(A%)
210 IF A%=0:="Electron"
220 IF A%=1:="BBC Micro"
230 IF A%=2:="BBC B+"
240 IF A%=3:="Master 128"
250 IF A%=4:="Master ET"
260 IF A%=5:="Master Compact"
270 IF A%=6:="RISC OS"
280 ="[Type "+STR$A%+"]"
290 :
300 DEFFNnfsver
310 IF os%>6:=" "
320 IF os%=6:IF HIMEM>&FFFF:SYS "OS_Module",18,"Econet" TO ,,,A%:SYS "OS_WriteN",A%+A%!20 TO A$:=" "+MID$(A$,9,4)
330 LOCAL X%,Y%,F%,A$:Y%=0:X%=&70
340 A%=0:F%=(USR&FFDA)AND&FF:*FX143,18,5
350 A%=4:IF((USR&FFDA)AND&FF)=4:A$="3.40-3.6x" :
360 A%=3:IF((USR&FFDA)AND&FF)=0:A$="4.00-4.1x" :
370 A%=2:IF((USR&FFDA)AND&FF)=2:A$=" 3.3x" :
380 A%=1:IF((USR&FFDA)AND&FF)>0:A$=" 4.2x" :
390 OSCLI"FX143,18,"+STR$F%:=A$
400 :
410 DEFFNver(A%):=LEFT$(FNh0(A%,8+((A%AND&F0000000)=0)),1)+"."+MID$(FNh0(A%,8),3,2)
420 :
430 DEFFNpingFix(S%):!X%=&81:X%!2=S%:X%!4=X%+16:X%!8=X%+20:X%!12=&FFFF820C:X%!16=0
440 A%=&10:REPEATCALL&FFF1:UNTIL?X%:A%=&32:REPEATUNTIL(USR&FFF4 AND &8000)=0
450 IFX%!16=&30342E33:=&03400001 ELSE =&03350001
460 :
470 DEFFNnet_Ping(S%):!X%=&88:X%!2=S%:X%!4=X%+16:X%!8=X%+20:X%!12=0:X%!16=0
480 A%=&10:REPEATCALL&FFF1:UNTIL?X%:A%=&32:REPEATUNTIL(USR&FFF4 AND &8000)=0:=X%!16
490 :
500 DEFFNnet_Type(A%):LOCAL A$:A%=A%AND&FFFF
510 IF A%DIV256=&00:A$="Acorn "
520 IF A%DIV256=&01:A$="Torch "
530 IF A%DIV256=&02:A$="Reuters "
540 IF A%DIV256=&50:A$="PhilBlundell "
550 IF A%DIV256=&FF:A$="SJ Research "
560 :
570 A%=A%AND255
580 IF A%=1:=A$+"BBC Micro"
590 IF A%=2:=A$+"Atom"
600 IF A%=3:=A$+"System 3/4"
610 IF A%=4:=A$+"System 5"
620 IF A%=5:=A$+"Master 128"
630 IF A%=6:=A$+"Electron"
640 IF A%=7:=A$+"RISC OS"
650
660 IF A%=9:="A$+Communicator"
670 IF A%=10:=A$+"Master ET"
680 IF A%=11:=A$+"Filestore"
690 IF A%=12:=A$+"Master Compact"
700 IF A%=13:=A$+"PC EcoLink"
710 IF A%=14:=A$+"RISCiX Workstation"
720 IF A%=15:=A$+"RISC PC"
730 IF A%=16:=A$+"Iyonix"
740 IF A%=17:=A$+"Acorn A9"
750 :
760 IF A%=&40:=A$+"ZX Spectrum"
770 IF A%=&41:=A$+"Amstrad CPC"
780 IF A%=&50:=A$+"Internet Gateway"
790 IF A%=&EE:=A$+"Rasberry Pi"
800 IF A%=&F8:=A$+"GP Server"
810 IF A%=&F9:=A$+"80386 Unix"
820 IF A%=&FA:=A$+"SCSI Interface"
830 IF A%=&FB:=A$+"PC Card"
840 IF A%=&FC:=A$+"Nascom 2"
850 IF A%=&FD:=A$+"RM480Z"
860 IF A%=&FE:=A$+"FileServer"
870 IF A%=&FF:=A$+"380Z or CP/M"
880 =A$+"["+FNh0(A%,4)+"]"
890 :
900 DEFFNnet_Info(A%,D%):?X%=A%:X%!1=D%:A%=&13:CALL&FFF1:=X%!1
910 :
920 DEFFNnetfs_Who(stn%):LOCALu%:REPEAT:A%=FNnetfs_Op(15,CHR$u%+CHR$1)
930 u%=u%+1:UNTILA%<>0ORX%?4=0ORX%?5=stn%:IFA%=0:IFX%?4:=$(X%+7) ELSE =""
940 :
950 DEFFNnetfs_Op(A%,A$)=FNnetfs_OpN(A%,0,7,A$)
960 DEFFNnetfs_OpN(A%,T%,O%,A$):!X%=0:X%?1=O%+1+LENA$:X%!3=A%
970 IFHIMEM>&FFFF:X%?4=T%:$(X%+O%-3)=A$:SYS&60048,A%,X%+4,O%+LENA$,120TOA%:IFA%=0:X%?3=0:=0
980 IFHIMEM>&FFFF:IFA%>&FFFF:X%?3=?A%:SYS&2002B,A%+4TO$(X%+4):=X%?3
990 X%!4=0:X%?7=T%:$(X%+O%)=A$:A%=&14:CALL&FFF1:=X%?3