> UpdateHTML v0.39 EQ%=:ctrl%127,name%127,data%511:A$=OS_GetEnv:X%=ctrl%:Y%=X%256 ver$="0.39" (Lquit$=cl(" -q",1):debug%=cl("-d",0):"Spool"::Close_All:exit(): 2]cl("-?",0):"Syntax: "run$" -path -home -navbar -quit quitcmd":exit(0): "":file(sfx$,5)<>1:"Suffix file '"sfx$"' not found":exit(214) Bsfx$<>"":sfx% X%!10:sfx%?(X%!10)=13:"Load "+sfx$+" "+~sfx% dir$<>"":"Dir "+dir$ %site$,2)<>"::":site$=site$+"::" Gpath$="":path$=Path_Name:path$=s(gbpb(5))+path$,path$,"$")-1) path$="""""":path$="" ver_Scan *IdxHeadr$="Automatic BBC Tree Crawler" mos%<6:ver_mos$="ElectronBBCMasterCompact","010909121218",os%*2+1,2),"833667",os%+1,1))+" "+ver_mos$ .index$="index/htm":out$=index$+"_":dirs%=0 Bf$="."+path$:f$=f$,2):f$,".")=0:path$=path$,path$-f$-1) EA%=1:home$="/.."+home$:A%=path$,".",A%+1):A%=0:home$=home$,5) #fs%=fs::15:DoDir:exit(0): !Scan(f%,path$):p%,t%,r%,f$ ".:f$=gbpb8(p%):p%=X%!9:r%=f$:r%:RdName , r%=0: 6RdName:f$=46: @*f$=95f$=index$f$,1)="_"f$=out$: J?t%=file(f$,5):l%=X%!2:e%=X%!6:n%=X%!10:a%=X%!14:t%=3:t%=1 T3fs%=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% hf$<>"$":t%=2(X%?148): rt%=1:(X%?14&13)<>&11: |t%=1:(X%?14&10)<>&10: t%=2:f$,1)="!":t%=3 &t%=1t%=2:DoObject:f%:f%<>t%: verbose%:t$(t%)": ";f$ t%=1:DoFile: -1:path$;".";f$:  t%<>2: :dirs%=dirs%+1:"Dir "+f$:DoDir:"Dir ^":dirs%=dirs%-1  ݤCheckIndex $A%=file("@."+index$,5):A%=0:= 笤RdTop(index$):= @A%=data%::A%=A%+1+$A%:$A%=0$A%,IdxHeadr$)A%>data%+510 $A%=0:= $A%,IdxHeadr$)=0:= A%=A%+$A%,IdxHeadr$) A%=A%+$A%,"""")-3 &?A%=";":=$(A%+1)= 03ݤRdTop(A$):in%=(A$):#in%<256:#in%:in%=0:= :=A%=0511:#in%:data%?A%=#in%:data%?A%=10:data%?A%=13 D!:#in%:in%=0:data%?511=13:= N8ݤNoRoot(A$):A%=A$,".$"):A%:A$=A$,A%-1)+A$,A%+2) XA$,2)="..":A$=A$,3) b=A$ l DoDir v:path$;".";f$ )index%=CheckIndex:index%:ScanIndex $Scan(2,path$+"."+f$):DoDirPost  ScanIndex :index%=-1:DoDirPre:Scan(1,path$+"."+f$):DoDirMid: index%=2:ScanAddrs:  ScanAddrs soft%=0:"Spool "+out$ in%=("@."+index$) 8:A$=rd(in%):A$,"application/riscos;"):ScanAddr2 &A$;lf;:#in%:#in%:in%=0:*Spool  DoDirMidUpdate(,soft%=0,)   ScanAddr2 ?B$=A$:A%=A$,"a href="""):F$=A$,A%+10):F$=F$,F$,"""")-1)  file(F$,5)<>1: *L%=X%!2:E%=X%!6 4IA%=B$,"load=&"):B%=B$," ",A%):A%:B$=B$,A%+9)+~L%+";"+B$,B%) >JA%=B$,"exec=&"):B%=B$,"""",A%):A%:A$=B$,A%+9)+~E%+";"+B$,B%) HA$<>B$:soft%=soft%+1 R \DoObject:f%<>1: f f1$=f$ p FileType z%f2$=unixname(fn_sfx(f1$,type%)) 'type%=&FC0:Linkf$=f$+f2$,f$+1)  MimeType ]" ",mime$="");:mime$<>"":" TYPE="""+mime$+""">"; f$;" ",html%);  bas%=0 6bas%=0:bas%=f2$,4)=".bbc":bas%:f2$=f2$,f2$-4) 5bas%=0:bas%=f2$,3)=".bb":bas%:f2$=f2$,f2$-3) ?bas%=0:bas%=f2$,2)=".b"type%=&1C7:bas%:f2$=f2$,f2$-2) >bas%=0:bas%=f2$,1)="."type%=&1C7:bas%:f2$=f2$,f2$-1) @bas%=bas%type%=&1C7type%=&FFBmime$,"exec=&FFFF7B00") Dbas%:html%:"(L)";spc(3); #spc(13-f$);:x%=(x%+1)(x%<4) :"DL/"+spc(1),t%=2)"wr/R",t%<>2);"
",x%=0);cr; !mime$<>""bas%:soft%=soft%+1   DoFile $ .DoDirPre 8"Spool "+out$:htmlHdr Bsoft%=0:x%=0: L&DoDirMid:"";:nav%:navbot V%""cr""cr;:*Spool `/A%=file(out$,5):len%=X%!10:A%=file("@",5) j4A%=2:A%=file("@."+index$,5)A%=file(index$,5) tIDoDirMidUpdate(A%,(A%<>0)(len%=X%!10),(A%=0)(php%<>0)(soft%=0)): ~-DoDirMidUpdate(found%,same%,notneeded%) )same%:"No change":"Delete "+out$: /notneeded%:"Not needed":"Delete "+out$: ("Updated":found%:"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 BSdy%=X%?1531:Smn%=X%?1615:Syr%=1981+(X%?1616)+(X%?15&E0)/2 !Sh%=X%?17:Sm%=X%?18:Ss%=X%?19 5Date_FromOrd(data%,Sdy%,Smn%,Syr%,Sh%,Sm%,Ss%,0) HX%!6=!data%:X%!2=&FFFFAF00:X%?2=data%?4:X%?14=&11:A%=file(index$,1)  DoDirPost   htmlHdr L"";cr; ""cr; (X"";cr; 2m"";16-ver_mos$,16)," ");cr; "cr; F/""cr; d:"";site$;NoRoot(path$+"."+f$);"";cr; n!""cr;cr""cr; xnav%:navtop: '"";site$;path$"."f$"
";cr; :"Parent"+spc(1)+"Directory";cr; spc(16);cr; D""; ,"Home"+spc(1)+"Page""",html%)cr; "

";cr;   navtop A$=NoRoot(path$+"."+f$) .D%=-1:A%=0:A%=A$,".",A%+1):D%=D%+1:A%=0 >"
";cr; 6" ";site$,site$-2);"::"; +:A%=A$,"."):P$=A$,A%-1):A$=A$,A%+1) HD%:"";P$;"."; D%=D%-1:D%<1 """;A$;"";cr; ,'""cr; 6n"Search";cr; @%" 

";cr; J ""; T ^ navbot h'"


";cr; rJ"Authored by J.G.Harston"; 5A$=Time,5,11):A$=A$,2)+"-"+A$,4,3)+"-"+A$,4) ,"
Last update: ";A$;"
";cr;  ݤunixname(A$):A%=1A$ <"./",A$,A%,1)):A$=A$,A%-1)+(A$,A%,1)1)+A$,A%+1) 6A$,A%,1)="^":A$=A$,A%-1)+".."+A$,A%+1):A%=A%+1  :=A$ MimeType #t%=2:icon$="folder":mime$="": xt$=uc(f2$,4)) 'xt$=".HTM":icon$="html":mime$="": 'xt$=".TXT":icon$="text":mime$="": &xt$=".GIF":icon$="gif":mime$="": Jxt$=".ZIP":icon$="compressed":mime$="application/zip":soft%=soft%-1: ?type%=&FFF:icon$="text":mime$="text/plain":soft%=soft%-1: 9type%=&FFB:icon$="basic":mime$="application/basic": &>type%=&FAF:icon$="html":mime$="text/html":soft%=soft%-1: 0&type%=&BBC:icon$="rom":mime$="": :&type%=&700:icon$="rom":mime$="": Dtype%=-1:X%!2<&10000:X%!6<&10000:icon$="unknown":mime$="application/riscos; load=&"+~(X%!2)+"; exec=&"+~(X%!6): Ngtype%=-1:icon$="unknown":mime$="application/riscos; load=&"+~(X%!2)+"; exec=&"+~(X%!6): Xicon$="unknown":mime$="" b lFileType:type%=-1 vWX%!2<>X%!6:type%=(X%!2&FFF00)256:type%=&FFFtype%=&FC0X%!6=&FFFF0000X%!6=-1: 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 ]X%?2=0:(X%!4&FFFF)=(X%!8&FFFF):(((X%!4&FFFF)+1)&FFFF)<2:(X%?7&C0)=&80:type%=&FFB %type%>&F0Dtype%<&F20:type%=&FFB   Link 6soft%=soft%+1:"Load "+f$+" "+~data%:data%?253=13 f1$=$data%+0+10 )A%=f1$,0):B%=f1$,10):B%#ݤcr:"FX3,16"::"FX3":13:="" H7ݤspc(A%):=A%(A%>0)," ",html%)+" ",text%)) RClose_All \"in%=in%:in%:A%=in%:in%=0:#A% f'out%=out%:out%:A%=out%:out%=0:#A% p z2ݤOS_GetEnv:A%=0:X%=1:os%=((&FFF4)&FF00)256 3A%=&600-&7B00*(>&8000):!(-&100)=@%:A%=-&300 ;?(P-3)=0:A%=&100:<&FFFF:A%=-&300:!(+512)=@%:A%= cA$=$A%:=&8F00:run$=A$:ș16A$,,A%:ș72,"",A%:A$=A$,1+A$+" "," ",1+A$," "))):A$=0:A$=run$ SY%=-10:A$=" "+A$:A$=A$,2):A$<>32:A$=34:A%=A$,"""",2)+1A%=A$+" "," ") 9Y%:run$=A$,1-(A$=34),A%-1+2*(A$=34)):A$=A$,A%+1)  :=A$ !os(A$):A$=42:A$A$:A$  @exit(A%):"FX1,"+A%:quit$=quit$:A$=quit$:quit$="":os(A$) >&FFFFF:ȘA%  cݤcl(l$,n%):l$="":A$=s(A$):A$=34:A%=A$+" "" ",""" ",2):l$=A$,2,A%-2):A$=s(A$,A%+1)):=l$ "":A%=A$,l$):A%:A$=s(A$,A%-1)+A$,A$," ",A%)+1))+" ":= n%=0:l$<>"":= %A%=" ",l$=32)+A$,l$):A%=0:="" $'A$=A$,A%-1)+s(A$,A$," ",A%)+1)) .Cl$=32:l$=A$,A%):A$=A$,A%-1):=l$,1-(l$=34),l$+2*(l$=34)) 8PA$,A%,1)<>34:l$=A$,A%,A$+" "," ",A%)-A%):A$=A$,A%-1)+A$,A%+l$+1):=l$ BHl$=A$,A%+1,A$+" ",""" ",A%+1)-A%-1):A$=A$,A%-1)+A$,A%+l$+3):=l$ L/ݤs(A$):A$,1)=" ":A$=A$,2):A$,1)<>" " V+A$,1)=" ":A$=A$,A$-1):A$,1)<>" " `=A$ jݤuc(A$):B$:A$="":="" t5B$=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%) Bݤfile(A$,A%):$name%=A$:?X%=name%:X%?1=name%256:=(&FFDD)&FF Yݤgbpb(A%):X%!1=name%:&FFD1:A%=name%+((1+?name%)((A%-2)=6)):A%?(1+?A%)=13:=$(A%+1) Eݤgbpb8(ptr%):X%!1=name%:X%!5=1:X%!9=ptr%:A%=8:&FFD1:X%!5=1:="" 7A%=name%+1:A%!(A%?-1)=&D20:A%?($A%," ")-1)=13:=$A% ݤfs:A%,Y%,E%:=(&FFDA)&FF (ݤtime:?X%=0:A%=14:&FFF1:?X%=0:="" X%?24=13:A%=$(X%+4):$(X%+4)="0"+(A%31),2):$(X%+11)=($(X%+11)+(A%&E0)2-100*($(X%+11)<1981)):X%?6=32:X%?15=46:=$X% 6ݤTime:!X%=1:A%=14:&FFF1:A%=07:X%?A%=~X%?A%: ;?X%=?X%+((X%?2)&E0)2:X%?2=X%?231:?X%<81:?X%=?X%+100 ~!X%=101:!X%=&10000700:X%!4=0:A%=20:&FFF1:!X%=0:X%!4:?X%=81+(X%?516)+((X%?4&E0)2):X%?1=X%?515:X%?2=X%?431:X%!4=X%!6 ;X%?3=0:X%?2:X%?3=Date_DayOfWeek(X%?2,X%?1,1900+X%?0) s=Day(X%?3)+","+d0(X%?2,2)+" "+Mon(X%?1)+" "+d0(1900+X%?0,4)+"."+d0(X%?4,2)+":"+d0(X%?5,2)+":"+d0(X%?6,2) 'ݤdate:A%=14:!X%=1:&FFF1:!X%=1:=0 2?X%=("&"+((~?X%+(((~X%?2)2)&F0))100)) (9=(X%?2&3F)+256*X%?1+65536*(&1900+?X%-&700*(?X%<128)) 2#ݤd0(A%,N%)="00000000"+A%,N%) <4ݤDay(A%):="000SunMonTueWedThuFriSat",A%*3+1,3) FLݤMon(A%):="000JanFebMarAprMayJunJulAugSepOctNovDecDDDEEEFFF",A%*3+1,3) P(ݤDate_DayOfWeek(d%,m%,y%):y%=y%400 Zq=(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 d;Date_FromOrd(mem%,d%,m%,y%,hr%,mn%,sc%,cs%):y%=y%400 nqd%=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 xd%>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: 5ݤfn_sfx(n$,t%):e%,f%,sp%,xt$:n$<10sfx%=0:=n$ MA%=0:e%=A%+1:A%=n$,".",e%):A%=0:n$-e%<9:=n$e%=n$,"/",e%):e%=0:=n$ Wxt$=lc(n$,e%+1)):sp%=sfx%::f%=$sp%,xt$)=xt$:sp%?3=44:f%=f%t%=("&"+$(sp%+4)) 6A%=sp%:sp%=sp%+1+$sp%:?sp%=13f%:f%:xt$=$A%,3) *n$,1)<="_":n$,1)<>"/":xt$=uc(xt$) =n$,e%-1)+"/"+xt$ ݤPath_Name:A%=6 ݤ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$ "UA%=6:X%!1=name%:&FFD1:?(name%+1+?name%)=13:n$=$(name%+1):n$<>"":=":"+n$+"."+p$ ,X%!1=name%:A%=5:&FFD1 6&?(name%+1+?name%)=13:n$=$(name%+1) @)n$=n$,n$+" "," ")-1):=":"+n$+"."+p$ JMݤNetFS_Op(A%,A$):!X%=0:X%?1=8+A$:X%!3=A%:$(X%+7)=A$:A%=&14:&FFF1:=X%?3 T$ver_Scan:tmp$,in%:ver_mos$="" ^.:tmp$="tmp"+Ñ,4):in%=(tmp$):in%:#in% h9in%=0:"Spool "+tmp$:"FX3,70":"HELP":"FX3":*Spool r/in%=(tmp$):A%=01:A%:ver_ttl$(ver_num%) |H#in%=0:ver_num%=-1::A$=rd(in%):A$,1)=")":A$=A$,A$+"(","(")-1) iA$>2:A$<>32:ver_num%=ver_num%+1:A%:ver_ttl$(ver_num%)=A$:A$,3)="OS "A$,4)="MOS ":ver_mos$=A$ (#in%::#in%:in%=0:"Delete "+tmp$ Nos%=6ș"XOS_Byte"A%:ș"OS_WriteN",A%+4A$:ver_mos$=A$,A$+" ("," (")-1)  9ݤrd(i%):A%,B%,A$::A%=#i%:A%<>10A%<>13:A$=A$+A% GA%=10A%=13#i%:#i%:B%=#i%:A%=B%(B%<>13B%<>10):#i%=#i%-1 =A$