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