> UpdateHTML v0.34 FQ%=: ctrl%127,name%127,data%511:A$=OS_GetEnv:X%=ctrl%:Y%=X%256 ver$="0.34" (Rquit$=cl(" -q",1):debug%=cl("-d",0): "Spool"::Close_All: :exit(): 2^ cl("-?",0):"Syntax: "run$" -path -home -navbar -quit quitcmd":exit(0): <;verbose%=cl("-v",0):path$=cl("-p",1):nav%=cl("-n",0) F"":"Dir "+dir$ & site$,2)<>"::":site$=site$+"::" H path$="":path$=Path_Name:path$=s(gbpb(5))+path$,path$,"$")-1)  path$="""""":path$="" ;IdxHeadr$="Automatic BBC Tree Crawler":IdxHeadrOff%=&6D .index$="index/htm":out$=index$+"_":dirs%=0 H::f$="."+path$: f$=f$,2): f$,".")=0:path$=path$, path$- f$-1) I::A%=1: home$="/.."+home$:A%=path$,".",A%+1): A%=0:home$=home$,5) #fs%=fs::15:DoDir:exit(0): Scan(f%,path$): p%,t%,f$ 8:f$=s(gbpb8(p%)):r%=X%!5:p%=X%!9: f$<>"":RdName f$="": RdName: f$=46: 2 f$=95 f$=index$ f$,1)="_" f$=out$: 4t%=file(f$,5):l%=X%!2:e%=X%!6:n%=X%!10:a%=X%!14 "4 fs%=5:A%=NetFS_Op(&12,64+f$):X%?9=a%:a%=X%!9 ,%X%!2=l%:X%!6=e%:X%!10=n%:X%!14=a% 6$ f$<>"$": t%=2 (X%?14 8): @ t%=1:(X%?14 &13)<>&11: J t%=1:(X%?14 &10)<>&10: T t%=2: f$,1)="!":t%=3 ^+ t%=1 t%=2:DoObject: f%: f%<>t%: h verbose%: t$(t%)": ";f$ r t%=1:DoFile: | -1: f$:  t%<>2: :dirs%=dirs%+1:"Dir "+f$:DoDir:"Dir ^":dirs%=dirs%-1  ݤCheckIndex %A%=file("@."+index$,5): A%=0:=  RdTop(index$):= EA%=data%::A%=A%+1+$A%: $A%=0 $A%,IdxHeadr$) A%>data%+510 =$A%,IdxHeadr$) $A%<>0 4ݤRdTop(A$):in%=(A$): #in%<256:#in%:in%=0:= @ A%=0511: #in%:data%?A%=#in%: data%?A%=10:data%?A%=13 !:#in%:in%=0:data%?511=13:= 9ݤNoRoot(A$):A%=A$,".$"): A%:A$=A$,A%-1)+A$,A%+2)  A$,2)="..":A$=A$,3) =A$  DoDir ; CheckIndex:DoDirPre:Scan(1,path$+"."+f$):DoDirMid &$Scan(2,path$+"."+f$):DoDirPost 0 :DoObject: f%<>1: D f1$=f$ N FileType X"f2$=unixname(ext(f1$,type%)) b+ type%=&FC0:Link f$=f$+f2$, f$+1) l MimeType vX"",mime$="");: mime$<>"":" TYPE="""+mime$+""">"; 7 f$;"",html%);spc(13- f$);:x%=(x%+1)(x%<3) N "DL/"+spc(1),t%=2)"wr/R",t%<>2);spc(1)+" ",x%>0);"
",x%=0);cr;   DoFile  DoDirPre "Spool "+out$:htmlHdr  x%=0: 'DoDirMid:"";: nav%:navbot %""cr""cr;:*Spool /A%=file(out$,5):len%=X%!10:A%=file("@",5) 7 A%=2:A%=file("@."+index$,5) A%=file(index$,5) 6 A%: len%=X%!10:"No change":"Delete "+out$:: %"Updated": A%:"Delete "+index$  7"Rename "+out$+" "+index$:"Access "+index$+" R/r" )X%!14=0:X%!18=0:type%=file(index$,5)  ? fs%=5:A%=NetFS_Op(18,64+index$):X%?19=X%?14:X%!15=X%!10 *FSdy%=X%?15 31:Smn%=X%?16 15:Syr%=1981+(X%?16 16)+(X%?15 &E0)/2 4!Sh%=X%?17:Sm%=X%?18:Ss%=X%?19 >5Date_FromOrd(data%,Sdy%,Smn%,Syr%,Sh%,Sm%,Ss%,0) HHX%!6=!data%:X%!2=&FFFFAF00:X%?2=data%?4:X%?14=&11:A%=file(index$,1) R: \DoDirPost f p z htmlHdr L"";cr; ""cr; X"";cr; F"";cr; >""cr; E""cr; :"";site$;NoRoot(path$+"."+f$);"";cr; !""cr;cr""cr;  nav%:navtop: ( "";site$;path$"."f$"
";cr; :"Parent"+spc(1)+"Directory";cr;  spc(16);cr; F""; ,"Home"+spc(1)+"Page""",html%)cr; "

";cr;  $ navtop .>"
";cr; 83"";site$, site$-2);"::"; L'D%=dirs%: path$+f$,"$")=0:D%=D%-1 VA$=NoRoot(path$+"."+f$) `+:A%=A$,"."):P$=A$,A%-1):A$=A$,A%+1) jI D%:"";P$;"."; tD%=D%-1: D%<1 ~::"";A$;"";cr; ,""cr; q"Search";cr; )"

";cr;  "";   navbot '"


";cr; _::"Hosted by Force9 Internet -";cr; L"Authored by J.G.Harston";cr; 5A$=Time,5,11):A$=A$,2)+"-"+A$,4,3)+"-"+A$,4) ,"
Last update: ";A$;"
";cr;   ݤunixname(A$): A%=1 A$ > "./",A$,A%,1)):A$=A$,A%-1)+( A$,A%,1)1)+A$,A%+1) 7 A$,A%,1)="^":A$=A$,A%-1)+".."+A$,A%+1):A%=A%+1 ( :=A$ 2MimeType <$ t%=2:icon$="folder":mime$="": Fxt$=uc(f2$,4)) P( xt$=".HTM":icon$="html":mime$="": Z( xt$=".TXT":icon$="text":mime$="": d' xt$=".GIF":icon$="gif":mime$="": n= xt$=".ZIP":icon$="compressed":mime$="application/zip": x2 type%=&FFF:icon$="text":mime$="text/plain": : type%=&FFB:icon$="basic":mime$="application/basic": 1 type%=&FAF:icon$="html":mime$="text/html": ' type%=&BBC:icon$="rom":mime$="": ' type%=&700:icon$="rom":mime$="":  type%=-1:icon$="unknown":mime$="application/riscos; load=&"+h0(X%!2,8)+"; exec=&"+h0(X%!6,8)+"; attr=&"+h0(X%!14,2): icon$="unknown":mime$=""  FileType:type%=-1 G X%!2<>X%!6:type%=(X%!2 &FFF00) 256: type%=&FFF type%=&FC0: C(X%!4&FFFF)=(X%!8&FFFF):(((X%!4&FFFF)+1)&FFFF)<2:type%=-1 . X%!2=X%!6:(X%!2&FFFF)=&8000:type%=&BBC b X%?2=0:(X%!4 &FFFF)=(X%!8 &FFFF):(((X%!4 &FFFF)+1)&FFFF)<2:(X%?7 &C0)=&80:type%=&FFB ( type%>&F0D type%<&F20:type%=&FFB  /Link:"Load "+f$+" "+~data%:data%?255=13 &f1$=$data%:f1$=f1$,f1$+0,0)-1) "@ f1$,":")=0:t%=file(f1$,5):FileType:f2$=unixname(f1$): , f2$=f1$: 6#ݤcr:"FX3,16"::"FX3":13:="" @0ݤspc(A%):=A%," ",html%)+" ",text%)) J$ݤext(n$,t%):e%,xt$:n$<10:=n$ T0A%=0:e%=A%:A%=n$,"/",e%+1):A%=0:e%<8:=n$ ^xt$=lc(n$,e%+1)) hxt$="a":t%=&DDC:xt$="arc" rxt$="a":xt$="asm" |xt$="ar":xt$="arc" xt$="as":xt$="asm" xt$="b":t%=&1C7:xt$="bbc" xt$="b":t%=&FDA:xt$="bat" xt$="b":xt$="bbc"  xt$="ba":t%=&FDA:xt$="bat" xt$="ba":xt$="bas" xt$="bb":xt$="bbc" xt$="c":t%=&FFD:xt$="crc" xt$="c":t%=&201:xt$="com" xt$="c":t%=&FD8:xt$="com" xt$="c":t%=&FFF:xt$="c"  xt$="c":t%<>&FFF:xt$="com" xt$="co":xt$="com" xt$="d":xt$="doc" xt$="de":xt$="def" xt$="df":xt$="dfs" &xt$="do":xt$="doc" 0xt$="ds":xt$="dsd" :xt$="e":xt$="exe" Dxt$="ex":xt$="exe" Nxt$="f":xt$="fon" Xxt$="fn":xt$="fnt" bxt$="fo":xt$="fon" lxt$="g":xt$="gif" vxt$="gi":xt$="gif" xt$="h":t%=&FAF:xt$="htm" xt$="ht":xt$="htm" xt$="i":xt$="ini" xt$="in":xt$="ini" xt$="j":xt$="jpg" xt$="jp":xt$="jpg" xt$="l":t%=&FFF:xt$="lst" xt$="l":xt$="lbr" xt$="lb":xt$="lbr" xt$="ls":xt$="lst" xt$="m":xt$="mac" xt$="ma":xt$="mac" xt$="mo":xt$="mod" xt$="o":xt$="ovr"  xt$="ov":xt$="ovr" xt$="p":xt$="pdf"  xt$="pd":xt$="pdf" *xt$="r":t%=&BBC:xt$="rom" 4xt$="r":t%=&700:xt$="rom" >xt$="r":t%=&FFF:xt$="reg" Hxt$="r":xt$="rtf" Rxt$="re":xt$="reg" \xt$="ro":xt$="rom" fxt$="rt":xt$="rtf" pxt$="s":t%=&BA1:xt$="sna" zxt$="s":t%=&FFF:xt$="src" xt$="s":t%=&FFD:xt$="sys" xt$="s":t%=&B22:xt$="ssd" xt$="s":t%=&702:xt$="ssn" xt$="s":t%=&701:xt$="sta" xt$="s":xt$="src" xt$="sn":xt$="sna" xt$="sp":xt$="spl"  xt$="ss":t%=&B22:xt$="ssd"  xt$="ss":t%=&702:xt$="ssn" xt$="st":xt$="sta" xt$="sr":xt$="src" xt$="sy":xt$="sys" xt$="t":t%=&FFF:xt$="txt" xt$="t":t%=&11D:xt$="tap" xt$="t":t%=&FF0:xt$="tif" xt$="t":xt$="txt" $xt$="ta":xt$="tap" .xt$="ti":xt$="tif" 8xt$="tx":xt$="txt" Bxt$="u":xt$="url" Lxt$="ur":xt$="url" Vxt$="w":xt$="wks" `xt$="wk":xt$="wks" jxt$="x":xt$="xls" txt$="xl":xt$="xls" ~xt$="z":t%=&DDC:xt$="zip" xt$="z":t%=&FFF:xt$="z80" xt$="z":t%=&BA0:xt$="z80" xt$="z":xt$="zip" xt$="z8":xt$="z80" xt$="zi":xt$="zip" n$,1)<="_":xt$=uc(xt$) =n$,e%-1)+"/"+xt$ Close_All:*EXEC "in%=in%:in%:A%=in%:in%=0:#A% 'out%=out%:out%:A%=out%:out%=0:#A%  :ݤOS_GetEnv:A$,A%:X%=1:os%=((&FFF4)&FF00)256:X%-1 Jos%=32:>&FFFF:ș"GetModuleFileName",0,X%,255:A$=$$X%:run$=A$:=@cmd$ os%=32:A$=$&100 {A$=0:>&7FFF:run$=$&8100:ș"OS_GetEnv"A$,,A%:ș"OS_WriteEnv","",A%:A$=A$,1+A$+" "," ",1+A$," "))):A$=0:A$=run$ 2A$=0:?(P-3):A$=$&600 A$=0:A$=$(-&300) (7A%=A$+" "," "):run$=A$,A%-1):run$<>"":=A$,A%+1) 2bY%=X%256:A%=9:?X%=0:X%!1=X%+16:X%!16=0:&FFD1:A%=X%+16:!A%?A%+A%?2<>8:A%?(A%+1)=13:=$(A%+1) <="" F&os(A$):A$=42:A$ A$<>"":A$ P Z@exit(A%):"FX1,"+A%:quit$=quit$:A$=quit$:quit$="":os(A$) dos%=32:Ș A% nos%<6: *Quit x Hݤcl(l$,n%):l$="":I%=A$+" "," "):l$=A$,I%-1):A$=s(A$,I%+1)):=l$ l$=32 A$<>"":A$=" "+A$ bI%=A$,l$):l$="":I%>0n%>0:l$=A$,A$+" "," ",I%+1)+1):A$,I%,1)<>" ":l$=l$,l$+" "," ")-1) qI%:A$,I%,1)=" ":A$=A$,2+(A$<>32),I%-2-(I%=1)) I%:A$=A$,I%-1)+A$,A$+" "," ",A$+" "," ",I%)+l$)+1) "A$=s(A$):n%:=s(l$) =I%<>0 /ݤs(A$):A$,1)=" ":A$=A$,2):A$,1)<>" " +A$,1)=" ":A$=A$,A$-1):A$,1)<>" " =A$ /ݤ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$ ݤlc(A$): B$:A$="":="" 5B$=B$+(A$((A$<"_")&20)):A$=A$,2):A$="":=B$ #ݤh0(A%,N%)="0000000"+~A%,N%) "#ݤd0(A%,N%)="00000000"+A%,N%) ,Bݤfile(A$,A%):$name%=A$:?X%=name%:X%?1=name%256:=(&FFDD)&FF 6Bݤgbpb(A%):X%!1=name%:&FFD1:A%=name%+((1+?name%)((A%-2)=6)) @A%?(1+?A%)=13:=$(A%+1) JEݤgbpb8(ptr%):X%!1=name%:X%!5=1:X%!9=ptr%:A%=8:&FFD1:X%!5=1:="" T#A%=name%:A%?(1+?A%)=13:=$(A%+1) ^!ݤfs: A%,Y%,E%:=(&FFDA)&FF hݤPath_Name:A%=6 rݤPath_Full:A%=&106 | n$,p$::X%!1=name%: &FFD1 *?(name%+2+?name%+?(name%+?name%+1))=13 n$=$(name%+2+?name%):*DIR ^ n$=n$,n$+" "," ")-1) p$=n$+"."+p$:n$="$"n$="&" p$=p$,p$-1):"DIR "+p$ VA%=6:X%!1=name%: &FFD1:?(name%+1+?name%)=13:n$=$(name%+1):n$<>"":=":"+n$+"."+p$ X%!1=name%:A%=5: &FFD1 &?(name%+1+?name%)=13:n$=$(name%+1) )n$=n$,n$+" "," ")-1):=":"+n$+"."+p$ 6ݤTime:!X%=1:A%=14:&FFF1:A%=07:X%?A%=~X%?A%: 2((y%4)=0(y%100)<>0y%=0))+3)7+1 :#ݤd0(A%,N%)="00000000"+A%,N%) D4ݤDay(A%):="000SunMonTueWedThuFriSat",A%*3+1,3) NLݤMon(A%):="000JanFebMarAprMayJunJulAugSepOctNovDecDDDEEEFFF",A%*3+1,3) X(ݤDate_DayOfWeek(d%,m%,y%):y%=y%400 bq=(y%*365.25+m%*30+d%+"120112234455",m%,1)+((y%4)=0)-((y%-1)100)-(m%>2((y%4)=0(y%100)<>0y%=0))+3)7+1 l;Date_FromOrd(mem%,d%,m%,y%,hr%,mn%,sc%,cs%):y%=y%400 vqd%=y%*365.25+m%*30+d%+"120112234455",m%,1)+((y%4)=0)-((y%-1)100)-(m%>2((y%4)=0(y%100)<>0y%=0))+36493 d%>146066:d%=d%-146097 =d%=d%*&41EB:mem%!1=d%+d%:d%=((hr%*60+mn%)*60+sc%)*100+cs% #?mem%=d%:mem%!1=mem%!1+d%256: NݤNetFS_Op(A%,A$):!X%=0:X%?1=8+ A$:X%!3=A%:$(X%+7)=A$:A%=&14:&FFF1:=X%?3 `ݤNetFS_OpN(A%,T%,O%,A$):!X%=0:X%?1=O%+1+A$:X%!3=A%:X%?7=T%:$(X%+O%)=A$:A%=&14:&FFF1:=X%?3